commit 6b0ae6ff694e3b268afa29867a8f36ff4a4b9362 Author: Luke Hagar Date: Fri Nov 17 10:57:16 2023 -0600 Saving current progress diff --git a/Electron-App/.editorconfig b/Electron-App/.editorconfig new file mode 100644 index 0000000..3dce414 --- /dev/null +++ b/Electron-App/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true \ No newline at end of file diff --git a/Electron-App/.eslintignore b/Electron-App/.eslintignore new file mode 100644 index 0000000..a6f34fe --- /dev/null +++ b/Electron-App/.eslintignore @@ -0,0 +1,4 @@ +node_modules +dist +out +.gitignore diff --git a/Electron-App/.eslintrc.js b/Electron-App/.eslintrc.js new file mode 100644 index 0000000..510e905 --- /dev/null +++ b/Electron-App/.eslintrc.js @@ -0,0 +1,7 @@ +module.exports = { + extends: [ + 'eslint:recommended', + '@electron-toolkit/eslint-config-ts/recommended', + '@electron-toolkit/eslint-config-prettier' + ] +} diff --git a/Electron-App/.gitignore b/Electron-App/.gitignore new file mode 100644 index 0000000..e7c3088 --- /dev/null +++ b/Electron-App/.gitignore @@ -0,0 +1,4 @@ +node_modules +dist +out +*.log* diff --git a/Electron-App/.npmrc b/Electron-App/.npmrc new file mode 100644 index 0000000..fdc1a98 --- /dev/null +++ b/Electron-App/.npmrc @@ -0,0 +1 @@ +ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ diff --git a/Electron-App/.prettierignore b/Electron-App/.prettierignore new file mode 100644 index 0000000..9c6b791 --- /dev/null +++ b/Electron-App/.prettierignore @@ -0,0 +1,6 @@ +out +dist +pnpm-lock.yaml +LICENSE.md +tsconfig.json +tsconfig.*.json diff --git a/Electron-App/.prettierrc.yaml b/Electron-App/.prettierrc.yaml new file mode 100644 index 0000000..35893b3 --- /dev/null +++ b/Electron-App/.prettierrc.yaml @@ -0,0 +1,4 @@ +singleQuote: true +semi: false +printWidth: 100 +trailingComma: none diff --git a/Electron-App/.vscode/extensions.json b/Electron-App/.vscode/extensions.json new file mode 100644 index 0000000..940260d --- /dev/null +++ b/Electron-App/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["dbaeumer.vscode-eslint"] +} diff --git a/Electron-App/.vscode/launch.json b/Electron-App/.vscode/launch.json new file mode 100644 index 0000000..0b6b9a6 --- /dev/null +++ b/Electron-App/.vscode/launch.json @@ -0,0 +1,39 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug Main Process", + "type": "node", + "request": "launch", + "cwd": "${workspaceRoot}", + "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite", + "windows": { + "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite.cmd" + }, + "runtimeArgs": ["--sourcemap"], + "env": { + "REMOTE_DEBUGGING_PORT": "9222" + } + }, + { + "name": "Debug Renderer Process", + "port": 9222, + "request": "attach", + "type": "chrome", + "webRoot": "${workspaceFolder}/src/renderer", + "timeout": 60000, + "presentation": { + "hidden": true + } + } + ], + "compounds": [ + { + "name": "Debug All", + "configurations": ["Debug Main Process", "Debug Renderer Process"], + "presentation": { + "order": 1 + } + } + ] +} diff --git a/Electron-App/.vscode/settings.json b/Electron-App/.vscode/settings.json new file mode 100644 index 0000000..4c05394 --- /dev/null +++ b/Electron-App/.vscode/settings.json @@ -0,0 +1,11 @@ +{ + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[javascript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[json]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} diff --git a/Electron-App/README.md b/Electron-App/README.md new file mode 100644 index 0000000..c6fd5a4 --- /dev/null +++ b/Electron-App/README.md @@ -0,0 +1,34 @@ +# electron-app + +A minimal Electron application with TypeScript + +## Recommended IDE Setup + +- [VSCode](https://code.visualstudio.com/) + [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) + [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) + +## Project Setup + +### Install + +```bash +$ npm install +``` + +### Development + +```bash +$ npm run dev +``` + +### Build + +```bash +# For windows +$ npm run build:win + +# For macOS +$ npm run build:mac + +# For Linux +$ npm run build:linux +``` diff --git a/Electron-App/build/entitlements.mac.plist b/Electron-App/build/entitlements.mac.plist new file mode 100644 index 0000000..38c887b --- /dev/null +++ b/Electron-App/build/entitlements.mac.plist @@ -0,0 +1,12 @@ + + + + + com.apple.security.cs.allow-jit + + com.apple.security.cs.allow-unsigned-executable-memory + + com.apple.security.cs.allow-dyld-environment-variables + + + diff --git a/Electron-App/build/icon.icns b/Electron-App/build/icon.icns new file mode 100644 index 0000000..28644aa Binary files /dev/null and b/Electron-App/build/icon.icns differ diff --git a/Electron-App/build/icon.ico b/Electron-App/build/icon.ico new file mode 100644 index 0000000..72c391e Binary files /dev/null and b/Electron-App/build/icon.ico differ diff --git a/Electron-App/build/icon.png b/Electron-App/build/icon.png new file mode 100644 index 0000000..cf9e8b2 Binary files /dev/null and b/Electron-App/build/icon.png differ diff --git a/Electron-App/dev-app-update.yml b/Electron-App/dev-app-update.yml new file mode 100644 index 0000000..0a21494 --- /dev/null +++ b/Electron-App/dev-app-update.yml @@ -0,0 +1,3 @@ +provider: generic +url: https://example.com/auto-updates +updaterCacheDirName: electron-app-updater diff --git a/Electron-App/electron-builder.yml b/Electron-App/electron-builder.yml new file mode 100644 index 0000000..7e3c23d --- /dev/null +++ b/Electron-App/electron-builder.yml @@ -0,0 +1,43 @@ +appId: com.electron.app +productName: electron-app +directories: + buildResources: build +files: + - '!**/.vscode/*' + - '!src/*' + - '!electron.vite.config.{js,ts,mjs,cjs}' + - '!{.eslintignore,.eslintrc.js,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}' + - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}' + - '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}' +asarUnpack: + - resources/** +win: + executableName: electron-app +nsis: + artifactName: ${name}-${version}-setup.${ext} + shortcutName: ${productName} + uninstallDisplayName: ${productName} + createDesktopShortcut: always +mac: + entitlementsInherit: build/entitlements.mac.plist + extendInfo: + - NSCameraUsageDescription: Application requests access to the device's camera. + - NSMicrophoneUsageDescription: Application requests access to the device's microphone. + - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder. + - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder. + notarize: false +dmg: + artifactName: ${name}-${version}.${ext} +linux: + target: + - AppImage + - snap + - deb + maintainer: electronjs.org + category: Utility +appImage: + artifactName: ${name}-${version}.${ext} +npmRebuild: false +publish: + provider: generic + url: https://example.com/auto-updates diff --git a/Electron-App/electron.vite.config.ts b/Electron-App/electron.vite.config.ts new file mode 100644 index 0000000..3acc2e8 --- /dev/null +++ b/Electron-App/electron.vite.config.ts @@ -0,0 +1,11 @@ +import { defineConfig, externalizeDepsPlugin } from 'electron-vite' + +export default defineConfig({ + main: { + plugins: [externalizeDepsPlugin()] + }, + preload: { + plugins: [externalizeDepsPlugin()] + }, + renderer: {} +}) diff --git a/Electron-App/package-lock.json b/Electron-App/package-lock.json new file mode 100644 index 0000000..97da5e9 --- /dev/null +++ b/Electron-App/package-lock.json @@ -0,0 +1,6755 @@ +{ + "name": "electron-app", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "electron-app", + "version": "1.0.0", + "hasInstallScript": true, + "dependencies": { + "@electron-toolkit/preload": "^2.0.0", + "@electron-toolkit/utils": "^2.0.1", + "electron-updater": "^6.1.4" + }, + "devDependencies": { + "@electron-toolkit/eslint-config-prettier": "^1.0.1", + "@electron-toolkit/eslint-config-ts": "^1.0.0", + "@electron-toolkit/tsconfig": "^1.0.1", + "@types/node": "^18.18.9", + "electron": "^25.9.5", + "electron-builder": "^24.6.4", + "electron-vite": "^1.0.29", + "eslint": "^8.53.0", + "express": "^4.18.2", + "prettier": "^3.1.0", + "typescript": "^5.2.2", + "vite": "^4.5.0" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", + "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.22.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz", + "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.22.13", + "chalk": "^2.4.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/code-frame/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/code-frame/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/code-frame/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.3.tgz", + "integrity": "sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.3.tgz", + "integrity": "sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.2", + "@babel/parser": "^7.23.3", + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.3.tgz", + "integrity": "sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.23.3", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz", + "integrity": "sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.9", + "@babel/helper-validator-option": "^7.22.15", + "browserslist": "^4.21.9", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", + "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", + "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", + "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", + "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", + "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-module-imports": "^7.22.15", + "@babel/helper-simple-access": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/helper-validator-identifier": "^7.22.20" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", + "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", + "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.22.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", + "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "dev": true, + "dependencies": { + "@babel/types": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.22.5", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz", + "integrity": "sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz", + "integrity": "sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.2.tgz", + "integrity": "sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==", + "dev": true, + "dependencies": { + "@babel/template": "^7.22.15", + "@babel/traverse": "^7.23.2", + "@babel/types": "^7.23.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.3.tgz", + "integrity": "sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz", + "integrity": "sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.22.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.22.15", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", + "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/parser": "^7.22.15", + "@babel/types": "^7.22.15" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.3.tgz", + "integrity": "sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.22.13", + "@babel/generator": "^7.23.3", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-hoist-variables": "^7.22.5", + "@babel/helper-split-export-declaration": "^7.22.6", + "@babel/parser": "^7.23.3", + "@babel/types": "^7.23.3", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.23.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.3.tgz", + "integrity": "sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-validator-identifier": "^7.22.20", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "dependencies": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/@electron-toolkit/eslint-config-prettier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@electron-toolkit/eslint-config-prettier/-/eslint-config-prettier-1.0.1.tgz", + "integrity": "sha512-JERUehgy64/J369nr4AVmCskYAX8DQg8eWkQAHk56Qfh6JGnoiZVsv4nDJLBOdG7M7HKrHiqDgaAEXPOCMiijg==", + "dev": true, + "dependencies": { + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-prettier": "^5.0.0" + }, + "peerDependencies": { + "eslint": ">= 8.0.0", + "prettier": ">= 3.0.0" + } + }, + "node_modules/@electron-toolkit/eslint-config-ts": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@electron-toolkit/eslint-config-ts/-/eslint-config-ts-1.0.0.tgz", + "integrity": "sha512-AiZwiVZehwf7tDWuvZJxkwKWzriW4/d/2Sh+YmEtDvHqvneP8gaqKoPLC3yUZioN8jAU7yPbaxKdYims2RsfwA==", + "dev": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "^6.1.0", + "@typescript-eslint/parser": "^6.1.0" + }, + "peerDependencies": { + "eslint": ">=8.0.0", + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@electron-toolkit/preload": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@electron-toolkit/preload/-/preload-2.0.0.tgz", + "integrity": "sha512-zpZDzbqJTZQC5d4LRs2EKruKWnqah+T75s+niBYFemYLtiW5TTZcWi3Q8UxHqnwTudDMuWJb233aaS2yjx3Xiw==", + "peerDependencies": { + "electron": ">=13.0.0" + } + }, + "node_modules/@electron-toolkit/tsconfig": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@electron-toolkit/tsconfig/-/tsconfig-1.0.1.tgz", + "integrity": "sha512-M0Mol3odspvtCuheyujLNAW7bXq7KFNYVMRtpjFa4ZfES4MuklXBC7Nli/omvc+PRKlrklgAGx3l4VakjNo8jg==", + "dev": true, + "peerDependencies": { + "@types/node": "*" + } + }, + "node_modules/@electron-toolkit/utils": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@electron-toolkit/utils/-/utils-2.0.1.tgz", + "integrity": "sha512-3nnjd3D1NIjxdzNrvR5fkJ3kbJNbRkpHppv0/pSbMX6I0DaBzpPXeSfDYuJJKzZrAc3CmGcJa0MU4+AjEOlT4g==", + "peerDependencies": { + "electron": ">=13.0.0" + } + }, + "node_modules/@electron/asar": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@electron/asar/-/asar-3.2.8.tgz", + "integrity": "sha512-cmskk5M06ewHMZAplSiF4AlME3IrnnZhKnWbtwKVLRkdJkKyUVjMLhDIiPIx/+6zQWVlKX/LtmK9xDme7540Sg==", + "dev": true, + "dependencies": { + "commander": "^5.0.0", + "glob": "^7.1.6", + "minimatch": "^3.0.4" + }, + "bin": { + "asar": "bin/asar.js" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@electron/asar/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/asar/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@electron/get": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", + "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", + "dependencies": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "got": "^11.8.5", + "progress": "^2.0.3", + "semver": "^6.2.0", + "sumchecker": "^3.0.1" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "global-agent": "^3.0.0" + } + }, + "node_modules/@electron/get/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@electron/notarize": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@electron/notarize/-/notarize-2.1.0.tgz", + "integrity": "sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.1", + "promise-retry": "^2.0.1" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/notarize/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/notarize/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/notarize/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/osx-sign": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@electron/osx-sign/-/osx-sign-1.0.5.tgz", + "integrity": "sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==", + "dev": true, + "dependencies": { + "compare-version": "^0.1.2", + "debug": "^4.3.4", + "fs-extra": "^10.0.0", + "isbinaryfile": "^4.0.8", + "minimist": "^1.2.6", + "plist": "^3.0.5" + }, + "bin": { + "electron-osx-flat": "bin/electron-osx-flat.js", + "electron-osx-sign": "bin/electron-osx-sign.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@electron/osx-sign/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@electron/osx-sign/node_modules/isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/@electron/osx-sign/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/osx-sign/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@electron/universal": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-1.4.1.tgz", + "integrity": "sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ==", + "dev": true, + "dependencies": { + "@electron/asar": "^3.2.1", + "@malept/cross-spawn-promise": "^1.1.0", + "debug": "^4.3.1", + "dir-compare": "^3.0.0", + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4", + "plist": "^3.0.4" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/@electron/universal/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@electron/universal/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@electron/universal/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@electron/universal/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@electron/universal/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", + "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", + "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@malept/cross-spawn-promise": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@malept/cross-spawn-promise/-/cross-spawn-promise-1.1.1.tgz", + "integrity": "sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.malept-cross-spawn-promise?utm_medium=referral&utm_source=npm_fund" + } + ], + "dependencies": { + "cross-spawn": "^7.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@malept/flatpak-bundler": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@malept/flatpak-bundler/-/flatpak-bundler-0.4.0.tgz", + "integrity": "sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "lodash": "^4.17.15", + "tmp-promise": "^3.0.2" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@malept/flatpak-bundler/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgr/utils": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/@pkgr/utils/-/utils-2.4.2.tgz", + "integrity": "sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "fast-glob": "^3.3.0", + "is-glob": "^4.0.3", + "open": "^9.1.0", + "picocolors": "^1.0.0", + "tslib": "^2.6.0" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/fs-extra": { + "version": "9.0.13", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.13.tgz", + "integrity": "sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", + "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.18.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.18.9.tgz", + "integrity": "sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/plist": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.5.tgz", + "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*", + "xmlbuilder": ">=11.0.1" + } + }, + "node_modules/@types/responselike": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", + "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/semver": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", + "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "dev": true + }, + "node_modules/@types/verror": { + "version": "1.10.9", + "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.9.tgz", + "integrity": "sha512-MLx9Z+9lGzwEuW16ubGeNkpBDE84RpB/NyGgg6z2BTpWzKkGU451cAY3UkUzZEp72RHF585oJ3V8JVNqIplcAQ==", + "dev": true, + "optional": true + }, + "node_modules/@types/yauzl": { + "version": "2.10.3", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", + "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.11.0.tgz", + "integrity": "sha512-uXnpZDc4VRjY4iuypDBKzW1rz9T5YBBK0snMn8MaTSNd2kMlj50LnLBABELjJiOL5YHk7ZD8hbSpI9ubzqYI0w==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.5.1", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/type-utils": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4", + "graphemer": "^1.4.0", + "ignore": "^5.2.4", + "natural-compare": "^1.4.0", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^6.0.0 || ^6.0.0-alpha", + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.11.0.tgz", + "integrity": "sha512-+whEdjk+d5do5nxfxx73oanLL9ghKO3EwM9kBCkUtWMRwWuPaFv9ScuqlYfQ6pAD6ZiJhky7TZ2ZYhrMsfMxVQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz", + "integrity": "sha512-0A8KoVvIURG4uhxAdjSaxy8RdRE//HztaZdG8KiHLP8WOXSk0vlF7Pvogv+vlJA5Rnjj/wDcFENvDaHb+gKd1A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.11.0.tgz", + "integrity": "sha512-nA4IOXwZtqBjIoYrJcYxLRO+F9ri+leVGoJcMW1uqr4r1Hq7vW5cyWrA43lFbpRvQ9XgNrnfLpIkO3i1emDBIA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "6.11.0", + "@typescript-eslint/utils": "6.11.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.11.0.tgz", + "integrity": "sha512-ZbEzuD4DwEJxwPqhv3QULlRj8KYTAnNsXxmfuUXFCxZmO6CF2gM/y+ugBSAQhrqaJL3M+oe4owdWunaHM6beqA==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz", + "integrity": "sha512-Aezzv1o2tWJwvZhedzvD5Yv7+Lpu1by/U1LZ5gLc4tCx8jUmuSCMioPFRjliN/6SJIvY6HpTtJIWubKuYYYesQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/visitor-keys": "6.11.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.11.0.tgz", + "integrity": "sha512-p23ibf68fxoZy605dc0dQAEoUsoiNoP3MD9WQGiHLDuTSOuqoTsa4oAy+h3KDkTcxbbfOtUjb9h3Ta0gT4ug2g==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@types/json-schema": "^7.0.12", + "@types/semver": "^7.5.0", + "@typescript-eslint/scope-manager": "6.11.0", + "@typescript-eslint/types": "6.11.0", + "@typescript-eslint/typescript-estree": "6.11.0", + "semver": "^7.5.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz", + "integrity": "sha512-+SUN/W7WjBr05uRxPggJPSzyB8zUpaYo2hByKasWbqr3PM8AXfZt8UHdNpBS1v9SA62qnSSMF3380SwDqqprgQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.11.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "dev": true, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/7zip-bin": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.1.1.tgz", + "integrity": "sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/app-builder-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-4.0.0.tgz", + "integrity": "sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==", + "dev": true + }, + "node_modules/app-builder-lib": { + "version": "24.6.4", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-24.6.4.tgz", + "integrity": "sha512-m9931WXb83teb32N0rKg+ulbn6+Hl8NV5SUpVDOVz9MWOXfhV6AQtTdftf51zJJvCQnQugGtSqoLvgw6mdF/Rg==", + "dev": true, + "dependencies": { + "@develar/schema-utils": "~2.6.5", + "@electron/notarize": "2.1.0", + "@electron/osx-sign": "1.0.5", + "@electron/universal": "1.4.1", + "@malept/flatpak-bundler": "^0.4.0", + "@types/fs-extra": "9.0.13", + "7zip-bin": "~5.1.1", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "24.5.0", + "builder-util-runtime": "9.2.1", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.3.4", + "ejs": "^3.1.8", + "electron-publish": "24.5.0", + "form-data": "^4.0.0", + "fs-extra": "^10.1.0", + "hosted-git-info": "^4.1.0", + "is-ci": "^3.0.0", + "isbinaryfile": "^5.0.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "minimatch": "^5.1.1", + "read-config-file": "6.3.2", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.8", + "tar": "^6.1.12", + "temp-file": "^3.4.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/app-builder-lib/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/app-builder-lib/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/app-builder-lib/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/async": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", + "dev": true + }, + "node_modules/async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/boolean": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", + "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", + "optional": true + }, + "node_modules/bplist-parser": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz", + "integrity": "sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==", + "dev": true, + "dependencies": { + "big-integer": "^1.6.44" + }, + "engines": { + "node": ">= 5.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz", + "integrity": "sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==", + "dev": true, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/builder-util": { + "version": "24.5.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-24.5.0.tgz", + "integrity": "sha512-STnBmZN/M5vGcv01u/K8l+H+kplTaq4PAIn3yeuufUKSpcdro0DhJWxPI81k5XcNfC//bjM3+n9nr8F9uV4uAQ==", + "dev": true, + "dependencies": { + "@types/debug": "^4.1.6", + "7zip-bin": "~5.1.1", + "app-builder-bin": "4.0.0", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "9.2.1", + "chalk": "^4.1.2", + "cross-spawn": "^7.0.3", + "debug": "^4.3.4", + "fs-extra": "^10.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.1", + "is-ci": "^3.0.0", + "js-yaml": "^4.1.0", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.4.0" + } + }, + "node_modules/builder-util-runtime": { + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-9.2.1.tgz", + "integrity": "sha512-2rLv/uQD2x+dJ0J3xtsmI12AlRyk7p45TEbE/6o/fbb633e/S3pPgm+ct+JHsoY7r39dKHnGEFk/AASRFdnXmA==", + "dependencies": { + "debug": "^4.3.4", + "sax": "^1.2.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/builder-util/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/builder-util/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/builder-util/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bundle-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-3.0.0.tgz", + "integrity": "sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==", + "dev": true, + "dependencies": { + "run-applescript": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cac": { + "version": "6.7.14", + "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", + "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", + "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001563", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001563.tgz", + "integrity": "sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==", + "dev": true + }, + "node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-truncate": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", + "dev": true, + "optional": true, + "dependencies": { + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/compare-version": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/compare-version/-/compare-version-0.1.2.tgz", + "integrity": "sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/config-file-ts": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/config-file-ts/-/config-file-ts-0.2.4.tgz", + "integrity": "sha512-cKSW0BfrSaAUnxpgvpXPLaaW/umg4bqg4k3GO1JqlRfpx+d5W0GDXznCMkWotJQek5Mmz1MJVChQnz3IVaeMZQ==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "typescript": "^4.0.2" + } + }, + "node_modules/config-file-ts/node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", + "dev": true, + "optional": true + }, + "node_modules/crc": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", + "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", + "dev": true, + "optional": true, + "dependencies": { + "buffer": "^5.1.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/default-browser": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-4.0.0.tgz", + "integrity": "sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==", + "dev": true, + "dependencies": { + "bundle-name": "^3.0.0", + "default-browser-id": "^3.0.0", + "execa": "^7.1.1", + "titleize": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-3.0.0.tgz", + "integrity": "sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==", + "dev": true, + "dependencies": { + "bplist-parser": "^0.2.0", + "untildify": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "devOptional": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "optional": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", + "optional": true + }, + "node_modules/dir-compare": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/dir-compare/-/dir-compare-3.3.0.tgz", + "integrity": "sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==", + "dev": true, + "dependencies": { + "buffer-equal": "^1.0.0", + "minimatch": "^3.0.4" + } + }, + "node_modules/dir-compare/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/dir-compare/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dmg-builder": { + "version": "24.6.4", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-24.6.4.tgz", + "integrity": "sha512-BNcHRc9CWEuI9qt0E655bUBU/j/3wUCYBVKGu1kVpbN5lcUdEJJJeiO0NHK3dgKmra6LUUZlo+mWqc+OCbi0zw==", + "dev": true, + "dependencies": { + "app-builder-lib": "24.6.4", + "builder-util": "24.5.0", + "builder-util-runtime": "9.2.1", + "fs-extra": "^10.1.0", + "iconv-lite": "^0.6.2", + "js-yaml": "^4.1.0" + }, + "optionalDependencies": { + "dmg-license": "^1.0.11" + } + }, + "node_modules/dmg-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/dmg-builder/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/dmg-builder/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/dmg-license": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", + "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "@types/plist": "^3.0.1", + "@types/verror": "^1.10.3", + "ajv": "^6.10.0", + "crc": "^3.8.0", + "iconv-corefoundation": "^1.1.7", + "plist": "^3.0.4", + "smart-buffer": "^4.0.2", + "verror": "^1.10.0" + }, + "bin": { + "dmg-license": "bin/dmg-license.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dotenv": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", + "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz", + "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/ejs": { + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", + "dev": true, + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron": { + "version": "25.9.5", + "resolved": "https://registry.npmjs.org/electron/-/electron-25.9.5.tgz", + "integrity": "sha512-gM7GXUSd3JVRcYbBnNOtZeNnE5MCJjtZTT8QyIxJvpQ0Dh9dz3hTuEL62dOwnMFW/l47ACQ6es/8qi01P4QGZA==", + "hasInstallScript": true, + "dependencies": { + "@electron/get": "^2.0.0", + "@types/node": "^18.11.18", + "extract-zip": "^2.0.1" + }, + "bin": { + "electron": "cli.js" + }, + "engines": { + "node": ">= 12.20.55" + } + }, + "node_modules/electron-builder": { + "version": "24.6.4", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-24.6.4.tgz", + "integrity": "sha512-uNWQoU7pE7qOaIQ6CJHpBi44RJFVG8OHRBIadUxrsDJVwLLo8Nma3K/EEtx5/UyWAQYdcK4nVPYKoRqBb20hbA==", + "dev": true, + "dependencies": { + "app-builder-lib": "24.6.4", + "builder-util": "24.5.0", + "builder-util-runtime": "9.2.1", + "chalk": "^4.1.2", + "dmg-builder": "24.6.4", + "fs-extra": "^10.1.0", + "is-ci": "^3.0.0", + "lazy-val": "^1.0.5", + "read-config-file": "6.3.2", + "simple-update-notifier": "2.0.0", + "yargs": "^17.6.2" + }, + "bin": { + "electron-builder": "cli.js", + "install-app-deps": "install-app-deps.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/electron-builder/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-builder/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-builder/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-publish": { + "version": "24.5.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-24.5.0.tgz", + "integrity": "sha512-zwo70suH15L15B4ZWNDoEg27HIYoPsGJUF7xevLJLSI7JUPC8l2yLBdLGwqueJ5XkDL7ucYyRZzxJVR8ElV9BA==", + "dev": true, + "dependencies": { + "@types/fs-extra": "^9.0.11", + "builder-util": "24.5.0", + "builder-util-runtime": "9.2.1", + "chalk": "^4.1.2", + "fs-extra": "^10.1.0", + "lazy-val": "^1.0.5", + "mime": "^2.5.2" + } + }, + "node_modules/electron-publish/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-publish/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-publish/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.587", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.587.tgz", + "integrity": "sha512-RyJX0q/zOkAoefZhB9XHghGeATVP0Q3mwA253XD/zj2OeXc+JZB9pCaEv6R578JUYaWM9PRhye0kXvd/V1cQ3Q==", + "dev": true + }, + "node_modules/electron-updater": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-6.1.4.tgz", + "integrity": "sha512-yYAJc6RQjjV4WtInZVn+ZcLyXRhbVXoomKEfUUwDqIk5s2wxzLhWaor7lrNgxODyODhipjg4SVPMhJHi5EnsCA==", + "dependencies": { + "builder-util-runtime": "9.2.1", + "fs-extra": "^10.1.0", + "js-yaml": "^4.1.0", + "lazy-val": "^1.0.5", + "lodash.escaperegexp": "^4.1.2", + "lodash.isequal": "^4.5.0", + "semver": "^7.3.8", + "tiny-typed-emitter": "^2.1.0" + } + }, + "node_modules/electron-updater/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/electron-updater/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/electron-updater/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/electron-vite": { + "version": "1.0.29", + "resolved": "https://registry.npmjs.org/electron-vite/-/electron-vite-1.0.29.tgz", + "integrity": "sha512-BDTmVTLIri8W4Lz1tn5RAV1slSTinBBb6G77+qKcjkF0vEwdiUp2ntSU6FDqwP9pmy1t96U1CZqIYIStF8H6Jw==", + "dev": true, + "dependencies": { + "@babel/core": "^7.22.8", + "@babel/plugin-transform-arrow-functions": "^7.22.5", + "cac": "^6.7.14", + "esbuild": "^0.18.11", + "magic-string": "^0.30.1", + "picocolors": "^1.0.0" + }, + "bin": { + "electron-vite": "bin/electron-vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "@swc/core": "^1.0.0", + "vite": "^3.0.0 || ^4.0.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + } + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "node_modules/es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "optional": true + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "devOptional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.53.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", + "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.3", + "@eslint/js": "8.53.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", + "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.0.1.tgz", + "integrity": "sha512-m3u5RnR56asrwV/lDC4GHorlW75DsFfmUcjfCYylTUs85dBRnB7VM6xG8eCMJdeDRnppzmxZVf1GEPJvl1JmNg==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.5" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/execa": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", + "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.1", + "human-signals": "^4.3.0", + "is-stream": "^3.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^5.1.0", + "onetime": "^6.0.0", + "signal-exit": "^3.0.7", + "strip-final-newline": "^3.0.0" + }, + "engines": { + "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "optional": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "dev": true, + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-minipass/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "devOptional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "devOptional": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/global-agent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", + "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "es6-error": "^4.1.1", + "matcher": "^3.0.0", + "roarr": "^2.15.3", + "semver": "^7.3.2", + "serialize-error": "^7.0.1" + }, + "engines": { + "node": ">=10.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "optional": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "devOptional": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/got": { + "version": "11.8.6", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", + "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "devOptional": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "devOptional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "devOptional": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "devOptional": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/hosted-git-info/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dev": true, + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", + "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "dev": true, + "engines": { + "node": ">=14.18.0" + } + }, + "node_modules/iconv-corefoundation": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", + "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "cli-truncate": "^2.1.0", + "node-addon-api": "^1.6.3" + }, + "engines": { + "node": "^8.11.2 || >=10" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "optional": true + }, + "node_modules/ignore": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-ci": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", + "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", + "dev": true, + "dependencies": { + "ci-info": "^3.2.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", + "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-wsl/node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isbinaryfile": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.0.tgz", + "integrity": "sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/gjtorikian/" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jake": { + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jake/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/jake/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "optional": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lazy-val": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.5.tgz", + "integrity": "sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==" + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/matcher": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", + "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", + "optional": true, + "dependencies": { + "escape-string-regexp": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", + "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", + "dev": true, + "optional": true + }, + "node_modules/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", + "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "dev": true, + "dependencies": { + "path-key": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", + "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "optional": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", + "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "dev": true, + "dependencies": { + "mimic-fn": "^4.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/open": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-9.1.0.tgz", + "integrity": "sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==", + "dev": true, + "dependencies": { + "default-browser": "^4.0.0", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/plist": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/plist/-/plist-3.1.0.tgz", + "integrity": "sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==", + "dev": true, + "dependencies": { + "@xmldom/xmldom": "^0.8.8", + "base64-js": "^1.5.1", + "xmlbuilder": "^15.1.1" + }, + "engines": { + "node": ">=10.4.0" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "dev": true, + "dependencies": { + "err-code": "^2.0.2", + "retry": "^0.12.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-config-file": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.3.2.tgz", + "integrity": "sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==", + "dev": true, + "dependencies": { + "config-file-ts": "^0.2.4", + "dotenv": "^9.0.2", + "dotenv-expand": "^5.1.0", + "js-yaml": "^4.1.0", + "json5": "^2.2.0", + "lazy-val": "^1.0.4" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/roarr": { + "version": "2.15.4", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", + "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", + "optional": true, + "dependencies": { + "boolean": "^3.0.1", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/run-applescript": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-5.0.0.tgz", + "integrity": "sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==", + "dev": true, + "dependencies": { + "execa": "^5.0.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/run-applescript/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "dev": true, + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/run-applescript/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-applescript/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/run-applescript/node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/run-applescript/node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "dependencies": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", + "optional": true + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/serialize-error": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", + "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", + "optional": true, + "dependencies": { + "type-fest": "^0.13.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/simple-update-notifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", + "dev": true, + "dependencies": { + "semver": "^7.5.3" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slice-ansi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", + "dev": true, + "optional": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true, + "optional": true, + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "optional": true + }, + "node_modules/stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", + "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dependencies": { + "debug": "^4.1.0" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/synckit": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.5.tgz", + "integrity": "sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==", + "dev": true, + "dependencies": { + "@pkgr/utils": "^2.3.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tar": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", + "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", + "dev": true, + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/temp-file": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.4.0.tgz", + "integrity": "sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==", + "dev": true, + "dependencies": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^10.0.0" + } + }, + "node_modules/temp-file/node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/temp-file/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/temp-file/node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tiny-typed-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-typed-emitter/-/tiny-typed-emitter-2.1.0.tgz", + "integrity": "sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==" + }, + "node_modules/titleize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", + "integrity": "sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/tmp-promise": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/tmp-promise/-/tmp-promise-3.0.3.tgz", + "integrity": "sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==", + "dev": true, + "dependencies": { + "tmp": "^0.2.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "dev": true, + "dependencies": { + "utf8-byte-length": "^1.0.1" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/verror": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", + "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/vite": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==", + "dev": true, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/Electron-App/package.json b/Electron-App/package.json new file mode 100644 index 0000000..fb820db --- /dev/null +++ b/Electron-App/package.json @@ -0,0 +1,42 @@ +{ + "name": "electron-app", + "version": "1.0.0", + "description": "A minimal Electron application with TypeScript", + "main": "./out/main/index.js", + "author": "example.com", + "homepage": "https://www.electronjs.org", + "type": "module", + "scripts": { + "format": "prettier --write .", + "lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix", + "typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false", + "typecheck:web": "tsc --noEmit -p tsconfig.web.json --composite false", + "typecheck": "npm run typecheck:node && npm run typecheck:web", + "start": "electron-vite preview", + "dev": "electron-vite dev --watch", + "build": "npm run typecheck && electron-vite build", + "postinstall": "electron-builder install-app-deps", + "build:win": "npm run build && electron-builder --win --config", + "build:mac": "npm run build && electron-builder --mac --config", + "build:linux": "npm run build && electron-builder --linux --config" + }, + "dependencies": { + "@electron-toolkit/preload": "^2.0.0", + "@electron-toolkit/utils": "^2.0.1", + "electron-updater": "^6.1.4" + }, + "devDependencies": { + "@electron-toolkit/eslint-config-prettier": "^1.0.1", + "@electron-toolkit/eslint-config-ts": "^1.0.0", + "@electron-toolkit/tsconfig": "^1.0.1", + "@types/node": "^18.18.9", + "electron": "^25.9.5", + "electron-builder": "^24.6.4", + "electron-vite": "^1.0.29", + "eslint": "^8.53.0", + "express": "^4.18.2", + "prettier": "^3.1.0", + "typescript": "^5.2.2", + "vite": "^4.5.0" + } +} diff --git a/Electron-App/resources/icon.png b/Electron-App/resources/icon.png new file mode 100644 index 0000000..cf9e8b2 Binary files /dev/null and b/Electron-App/resources/icon.png differ diff --git a/Electron-App/src/main/index.ts b/Electron-App/src/main/index.ts new file mode 100644 index 0000000..dedf2a4 --- /dev/null +++ b/Electron-App/src/main/index.ts @@ -0,0 +1,87 @@ +import { app, shell, BrowserWindow } from 'electron' +import { join } from 'path' +import { electronApp, optimizer, is } from '@electron-toolkit/utils' +import { handler } from '../../../Built-App/src/handler.js' +import icon from '../../resources/icon.png?asset' +import express from 'express' + +const port = 3000 +const origin = `http://localhost:${port}` + +const server = express() + +// add a route that lives separately from the SvelteKit app +server.get('/healthcheck', (req, res) => { + res.end('ok') +}) + +// let SvelteKit handle everything else, including serving prerendered pages and static assets +server.use(handler) + +server.listen(3000, () => { + console.log(`Server listening on ${origin}`) +}) + +function createWindow(): void { + // Create the browser window. + const mainWindow = new BrowserWindow({ + width: 900, + height: 670, + show: false, + autoHideMenuBar: true, + ...(process.platform === 'linux' ? { icon } : {}), + webPreferences: { + preload: join(__dirname, '../preload/index.js'), + sandbox: false + } + }) + + mainWindow.on('ready-to-show', () => { + mainWindow.show() + }) + + mainWindow.webContents.setWindowOpenHandler((details) => { + shell.openExternal(details.url) + return { action: 'deny' } + }) + + // HMR for renderer base on electron-vite cli. + // Load the remote URL for development or the local html file for production. + + mainWindow.loadURL(origin) +} + +// This method will be called when Electron has finished +// initialization and is ready to create browser windows. +// Some APIs can only be used after this event occurs. +app.whenReady().then(() => { + // Set app user model id for windows + electronApp.setAppUserModelId('com.electron') + + // Default open or close DevTools by F12 in development + // and ignore CommandOrControl + R in production. + // see https://github.com/alex8088/electron-toolkit/tree/master/packages/utils + app.on('browser-window-created', (_, window) => { + optimizer.watchWindowShortcuts(window) + }) + + createWindow() + + app.on('activate', function () { + // On macOS it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (BrowserWindow.getAllWindows().length === 0) createWindow() + }) +}) + +// Quit when all windows are closed, except on macOS. There, it's common +// for applications and their menu bar to stay active until the user quits +// explicitly with Cmd + Q. +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit() + } +}) + +// In this file you can include the rest of your app"s specific main process +// code. You can also put them in separate files and require them here. diff --git a/Electron-App/src/preload/index.d.ts b/Electron-App/src/preload/index.d.ts new file mode 100644 index 0000000..a153669 --- /dev/null +++ b/Electron-App/src/preload/index.d.ts @@ -0,0 +1,8 @@ +import { ElectronAPI } from '@electron-toolkit/preload' + +declare global { + interface Window { + electron: ElectronAPI + api: unknown + } +} diff --git a/Electron-App/src/preload/index.ts b/Electron-App/src/preload/index.ts new file mode 100644 index 0000000..2d18524 --- /dev/null +++ b/Electron-App/src/preload/index.ts @@ -0,0 +1,22 @@ +import { contextBridge } from 'electron' +import { electronAPI } from '@electron-toolkit/preload' + +// Custom APIs for renderer +const api = {} + +// Use `contextBridge` APIs to expose Electron APIs to +// renderer only if context isolation is enabled, otherwise +// just add to the DOM global. +if (process.contextIsolated) { + try { + contextBridge.exposeInMainWorld('electron', electronAPI) + contextBridge.exposeInMainWorld('api', api) + } catch (error) { + console.error(error) + } +} else { + // @ts-ignore (define in dts) + window.electron = electronAPI + // @ts-ignore (define in dts) + window.api = api +} diff --git a/Electron-App/src/renderer/index.html b/Electron-App/src/renderer/index.html new file mode 100644 index 0000000..e69de29 diff --git a/Electron-App/tsconfig.json b/Electron-App/tsconfig.json new file mode 100644 index 0000000..eabf496 --- /dev/null +++ b/Electron-App/tsconfig.json @@ -0,0 +1,4 @@ +{ + "files": [], + "references": [{ "path": "./tsconfig.node.json" }, { "path": "./tsconfig.web.json" }] +} diff --git a/Electron-App/tsconfig.node.json b/Electron-App/tsconfig.node.json new file mode 100644 index 0000000..2178c60 --- /dev/null +++ b/Electron-App/tsconfig.node.json @@ -0,0 +1,8 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.node.json", + "include": ["electron.vite.config.*", "src/main/*", "src/preload/*"], + "compilerOptions": { + "composite": true, + "types": ["electron-vite/node"] + } +} diff --git a/Electron-App/tsconfig.web.json b/Electron-App/tsconfig.web.json new file mode 100644 index 0000000..9f8ebb6 --- /dev/null +++ b/Electron-App/tsconfig.web.json @@ -0,0 +1,7 @@ +{ + "extends": "@electron-toolkit/tsconfig/tsconfig.web.json", + "include": ["src/renderer/**/*.ts", "src/preload/*.d.ts"], + "compilerOptions": { + "composite": true + } +} diff --git a/Svelte-Build/package.json b/Svelte-Build/package.json new file mode 100644 index 0000000..c6288c4 --- /dev/null +++ b/Svelte-Build/package.json @@ -0,0 +1,8 @@ +{ + "name": "built-app", + "version": "0.0.1", + "scripts": { + "start": "node ./src" + }, + "type": "module" +} diff --git a/Svelte-Build/src/client/_app/immutable/assets/0.fa9427ff.css b/Svelte-Build/src/client/_app/immutable/assets/0.fa9427ff.css new file mode 100644 index 0000000..a7bfe6a --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/0.fa9427ff.css @@ -0,0 +1 @@ +header.svelte-1u9z1tp.svelte-1u9z1tp{display:flex;justify-content:space-between}.corner.svelte-1u9z1tp.svelte-1u9z1tp{width:3em;height:3em}.corner.svelte-1u9z1tp a.svelte-1u9z1tp{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.corner.svelte-1u9z1tp img.svelte-1u9z1tp{width:2em;height:2em;object-fit:contain}nav.svelte-1u9z1tp.svelte-1u9z1tp{display:flex;justify-content:center;--background:rgba(255, 255, 255, .7)}svg.svelte-1u9z1tp.svelte-1u9z1tp{width:2em;height:3em;display:block}path.svelte-1u9z1tp.svelte-1u9z1tp{fill:var(--background)}ul.svelte-1u9z1tp.svelte-1u9z1tp{position:relative;padding:0;margin:0;height:3em;display:flex;justify-content:center;align-items:center;list-style:none;background:var(--background);background-size:contain}li.svelte-1u9z1tp.svelte-1u9z1tp{position:relative;height:100%}li[aria-current=page].svelte-1u9z1tp.svelte-1u9z1tp:before{--size:6px;content:"";width:0;height:0;position:absolute;top:0;left:calc(50% - var(--size));border:var(--size) solid transparent;border-top:var(--size) solid var(--color-theme-1)}nav.svelte-1u9z1tp a.svelte-1u9z1tp{display:flex;height:100%;align-items:center;padding:0 .5rem;color:var(--color-text);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;transition:color .2s linear}a.svelte-1u9z1tp.svelte-1u9z1tp:hover{color:var(--color-theme-1)}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./fira-mono-cyrillic-ext-400-normal.3df7909e.woff2) format("woff2"),url(./fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./fira-mono-cyrillic-400-normal.c7d433fd.woff2) format("woff2"),url(./fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./fira-mono-greek-ext-400-normal.9e2fe623.woff2) format("woff2"),url(./fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./fira-mono-greek-400-normal.a8be01ce.woff2) format("woff2"),url(./fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./fira-mono-latin-ext-400-normal.6bfabd30.woff2) format("woff2"),url(./fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./fira-mono-latin-400-normal.e43b3538.woff2) format("woff2"),url(./fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-body: Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-mono: "Fira Mono", monospace;--color-bg-0: rgb(202, 216, 228);--color-bg-1: hsl(209, 36%, 86%);--color-bg-2: hsl(224, 44%, 95%);--color-theme-1: #ff3e00;--color-theme-2: #4075a6;--color-text: rgba(0, 0, 0, .7);--column-width: 42rem;--column-margin-top: 4rem;font-family:var(--font-body);color:var(--color-text)}body{min-height:100vh;margin:0;background-attachment:fixed;background-color:var(--color-bg-1);background-size:100vw 100vh;background-image:radial-gradient(50% 50% at 50% 50%,rgba(255,255,255,.75) 0%,rgba(255,255,255,0) 100%),linear-gradient(180deg,var(--color-bg-0) 0%,var(--color-bg-1) 15%,var(--color-bg-2) 50%)}h1,h2,p{font-weight:400}p{line-height:1.5}a{color:var(--color-theme-1);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:2rem;text-align:center}h2{font-size:1rem}pre{font-size:16px;font-family:var(--font-mono);background-color:#ffffff73;border-radius:3px;box-shadow:2px 2px 6px #ffffff40;padding:.5em;overflow-x:auto;color:var(--color-text)}.text-column{display:flex;max-width:48rem;flex:.6;flex-direction:column;justify-content:center;margin:0 auto}input,button{font-size:inherit;font-family:inherit}button:focus:not(:focus-visible){outline:none}@media (min-width: 720px){h1{font-size:2.4rem}}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.app.svelte-8o1gnw.svelte-8o1gnw{display:flex;flex-direction:column;min-height:100vh}main.svelte-8o1gnw.svelte-8o1gnw{flex:1;display:flex;flex-direction:column;padding:1rem;width:100%;max-width:64rem;margin:0 auto;box-sizing:border-box}footer.svelte-8o1gnw.svelte-8o1gnw{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:12px}footer.svelte-8o1gnw a.svelte-8o1gnw{font-weight:700}@media (min-width: 480px){footer.svelte-8o1gnw.svelte-8o1gnw{padding:12px 0}} diff --git a/Svelte-Build/src/client/_app/immutable/assets/2.57239003.css b/Svelte-Build/src/client/_app/immutable/assets/2.57239003.css new file mode 100644 index 0000000..d1a9c69 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/2.57239003.css @@ -0,0 +1 @@ +.counter.svelte-y96mxt.svelte-y96mxt{display:flex;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);margin:1rem 0}.counter.svelte-y96mxt button.svelte-y96mxt{width:2em;padding:0;display:flex;align-items:center;justify-content:center;border:0;background-color:transparent;touch-action:manipulation;font-size:2rem}.counter.svelte-y96mxt button.svelte-y96mxt:hover{background-color:var(--color-bg-1)}svg.svelte-y96mxt.svelte-y96mxt{width:25%;height:25%}path.svelte-y96mxt.svelte-y96mxt{vector-effect:non-scaling-stroke;stroke-width:2px;stroke:#444}.counter-viewport.svelte-y96mxt.svelte-y96mxt{width:8em;height:4em;overflow:hidden;text-align:center;position:relative}.counter-viewport.svelte-y96mxt strong.svelte-y96mxt{position:absolute;display:flex;width:100%;height:100%;font-weight:400;color:var(--color-theme-1);font-size:4rem;align-items:center;justify-content:center}.counter-digits.svelte-y96mxt.svelte-y96mxt{position:absolute;width:100%;height:100%}.hidden.svelte-y96mxt.svelte-y96mxt{top:-100%;-webkit-user-select:none;user-select:none}section.svelte-19xx0bt.svelte-19xx0bt{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:.6}h1.svelte-19xx0bt.svelte-19xx0bt{width:100%}.welcome.svelte-19xx0bt.svelte-19xx0bt{display:block;position:relative;width:100%;height:0;padding:0 0 calc(100% * 495 / 2048) 0}.welcome.svelte-19xx0bt img.svelte-19xx0bt{position:absolute;width:100%;height:100%;top:0;display:block} diff --git a/Svelte-Build/src/client/_app/immutable/assets/4.9d501049.css b/Svelte-Build/src/client/_app/immutable/assets/4.9d501049.css new file mode 100644 index 0000000..88c4094 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/4.9d501049.css @@ -0,0 +1 @@ +form.svelte-1pg2j5l.svelte-1pg2j5l{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;flex:1}.how-to-play.svelte-1pg2j5l.svelte-1pg2j5l{color:var(--color-text)}.how-to-play.svelte-1pg2j5l.svelte-1pg2j5l:before{content:"i";display:inline-block;font-size:.8em;font-weight:900;width:1em;height:1em;padding:.2em;line-height:1;border:1.5px solid var(--color-text);border-radius:50%;text-align:center;margin:0 .5em 0 0;position:relative;top:-.05em}.grid.svelte-1pg2j5l.svelte-1pg2j5l{--width:min(100vw, 40vh, 380px);max-width:var(--width);align-self:center;justify-self:center;width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-start}.grid.svelte-1pg2j5l .row.svelte-1pg2j5l{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:.2rem;margin:0 0 .2rem}@media (prefers-reduced-motion: no-preference){.grid.bad-guess.svelte-1pg2j5l .row.current.svelte-1pg2j5l{animation:svelte-1pg2j5l-wiggle .5s}}.grid.playing.svelte-1pg2j5l .row.current.svelte-1pg2j5l{filter:drop-shadow(3px 3px 10px var(--color-bg-0))}.letter.svelte-1pg2j5l.svelte-1pg2j5l{aspect-ratio:1;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;text-transform:lowercase;border:none;font-size:calc(.08 * var(--width));border-radius:2px;background:white;margin:0;color:#000000b3}.letter.missing.svelte-1pg2j5l.svelte-1pg2j5l{background:rgba(255,255,255,.5);color:#00000080}.letter.exact.svelte-1pg2j5l.svelte-1pg2j5l{background:var(--color-theme-2);color:#fff}.letter.close.svelte-1pg2j5l.svelte-1pg2j5l{border:2px solid var(--color-theme-2)}.selected.svelte-1pg2j5l.svelte-1pg2j5l{outline:2px solid var(--color-theme-1)}.controls.svelte-1pg2j5l.svelte-1pg2j5l{text-align:center;justify-content:center;height:min(18vh,10rem)}.keyboard.svelte-1pg2j5l.svelte-1pg2j5l{--gap:.2rem;position:relative;display:flex;flex-direction:column;gap:var(--gap);height:100%}.keyboard.svelte-1pg2j5l .row.svelte-1pg2j5l{display:flex;justify-content:center;gap:.2rem;flex:1}.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l,.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l:disabled{--size:min(8vw, 4vh, 40px);background-color:#fff;color:#000;width:var(--size);border:none;border-radius:2px;font-size:calc(var(--size) * .5);margin:0}.keyboard.svelte-1pg2j5l button.exact.svelte-1pg2j5l{background:var(--color-theme-2);color:#fff}.keyboard.svelte-1pg2j5l button.missing.svelte-1pg2j5l{opacity:.5}.keyboard.svelte-1pg2j5l button.close.svelte-1pg2j5l{border:2px solid var(--color-theme-2)}.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l:focus{background:var(--color-theme-1);color:#fff;outline:none}.keyboard.svelte-1pg2j5l button[data-key=enter].svelte-1pg2j5l,.keyboard.svelte-1pg2j5l button[data-key=backspace].svelte-1pg2j5l{position:absolute;bottom:0;width:calc(1.5 * var(--size));height:calc(1 / 3 * (100% - 2 * var(--gap)));text-transform:uppercase;font-size:calc(.3 * var(--size));padding-top:calc(.15 * var(--size))}.keyboard.svelte-1pg2j5l button[data-key=enter].svelte-1pg2j5l{right:calc(50% + 3.5 * var(--size) + .8rem)}.keyboard.svelte-1pg2j5l button[data-key=backspace].svelte-1pg2j5l{left:calc(50% + 3.5 * var(--size) + .8rem)}.keyboard.svelte-1pg2j5l button[data-key=enter].svelte-1pg2j5l:disabled{opacity:.5}.restart.svelte-1pg2j5l.svelte-1pg2j5l{width:100%;padding:1rem;background:rgba(255,255,255,.5);border-radius:2px;border:none}.restart.svelte-1pg2j5l.svelte-1pg2j5l:focus,.restart.svelte-1pg2j5l.svelte-1pg2j5l:hover{background:var(--color-theme-1);color:#fff;outline:none}@keyframes svelte-1pg2j5l-wiggle{0%{transform:translate(0)}10%{transform:translate(-2px)}30%{transform:translate(4px)}50%{transform:translate(-6px)}70%{transform:translate(+4px)}90%{transform:translate(-2px)}to{transform:translate(0)}} diff --git a/Svelte-Build/src/client/_app/immutable/assets/5.89a9e780.css b/Svelte-Build/src/client/_app/immutable/assets/5.89a9e780.css new file mode 100644 index 0000000..8ced30e --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/5.89a9e780.css @@ -0,0 +1 @@ +span.svelte-1x5nq1n.svelte-1x5nq1n{display:inline-flex;justify-content:center;align-items:center;font-size:.8em;width:2.4em;height:2.4em;background-color:#fff;box-sizing:border-box;border-radius:2px;border-width:2px;color:#000000b3}.missing.svelte-1x5nq1n.svelte-1x5nq1n{background:rgba(255,255,255,.5);color:#00000080}.close.svelte-1x5nq1n.svelte-1x5nq1n{border-style:solid;border-color:var(--color-theme-2)}.exact.svelte-1x5nq1n.svelte-1x5nq1n{background:var(--color-theme-2);color:#fff}.example.svelte-1x5nq1n.svelte-1x5nq1n{display:flex;justify-content:flex-start;margin:1rem 0;gap:.2rem}.example.svelte-1x5nq1n span.svelte-1x5nq1n{font-size:1.4rem}p.svelte-1x5nq1n span.svelte-1x5nq1n{position:relative;border-width:1px;border-radius:1px;font-size:.4em;transform:scale(2) translateY(-10%);margin:0 1em} diff --git a/Svelte-Build/src/client/_app/immutable/assets/_layout.2f593b13.css b/Svelte-Build/src/client/_app/immutable/assets/_layout.2f593b13.css new file mode 100644 index 0000000..87b43ab --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/_layout.2f593b13.css @@ -0,0 +1 @@ +header.svelte-1u9z1tp.svelte-1u9z1tp{display:flex;justify-content:space-between}.corner.svelte-1u9z1tp.svelte-1u9z1tp{width:3em;height:3em}.corner.svelte-1u9z1tp a.svelte-1u9z1tp{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.corner.svelte-1u9z1tp img.svelte-1u9z1tp{width:2em;height:2em;object-fit:contain}nav.svelte-1u9z1tp.svelte-1u9z1tp{display:flex;justify-content:center;--background:rgba(255, 255, 255, .7)}svg.svelte-1u9z1tp.svelte-1u9z1tp{width:2em;height:3em;display:block}path.svelte-1u9z1tp.svelte-1u9z1tp{fill:var(--background)}ul.svelte-1u9z1tp.svelte-1u9z1tp{position:relative;padding:0;margin:0;height:3em;display:flex;justify-content:center;align-items:center;list-style:none;background:var(--background);background-size:contain}li.svelte-1u9z1tp.svelte-1u9z1tp{position:relative;height:100%}li[aria-current=page].svelte-1u9z1tp.svelte-1u9z1tp:before{--size:6px;content:"";width:0;height:0;position:absolute;top:0;left:calc(50% - var(--size));border:var(--size) solid transparent;border-top:var(--size) solid var(--color-theme-1)}nav.svelte-1u9z1tp a.svelte-1u9z1tp{display:flex;height:100%;align-items:center;padding:0 .5rem;color:var(--color-text);font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;transition:color .2s linear}a.svelte-1u9z1tp.svelte-1u9z1tp:hover{color:var(--color-theme-1)}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_app/immutable/assets/fira-mono-cyrillic-ext-400-normal.3df7909e.woff2) format("woff2"),url(/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_app/immutable/assets/fira-mono-cyrillic-400-normal.c7d433fd.woff2) format("woff2"),url(/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_app/immutable/assets/fira-mono-greek-ext-400-normal.9e2fe623.woff2) format("woff2"),url(/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_app/immutable/assets/fira-mono-greek-400-normal.a8be01ce.woff2) format("woff2"),url(/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0370-03FF}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_app/immutable/assets/fira-mono-latin-ext-400-normal.6bfabd30.woff2) format("woff2"),url(/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_app/immutable/assets/fira-mono-latin-400-normal.e43b3538.woff2) format("woff2"),url(/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-body: Arial, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--font-mono: "Fira Mono", monospace;--color-bg-0: rgb(202, 216, 228);--color-bg-1: hsl(209, 36%, 86%);--color-bg-2: hsl(224, 44%, 95%);--color-theme-1: #ff3e00;--color-theme-2: #4075a6;--color-text: rgba(0, 0, 0, .7);--column-width: 42rem;--column-margin-top: 4rem;font-family:var(--font-body);color:var(--color-text)}body{min-height:100vh;margin:0;background-attachment:fixed;background-color:var(--color-bg-1);background-size:100vw 100vh;background-image:radial-gradient(50% 50% at 50% 50%,rgba(255,255,255,.75) 0%,rgba(255,255,255,0) 100%),linear-gradient(180deg,var(--color-bg-0) 0%,var(--color-bg-1) 15%,var(--color-bg-2) 50%)}h1,h2,p{font-weight:400}p{line-height:1.5}a{color:var(--color-theme-1);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:2rem;text-align:center}h2{font-size:1rem}pre{font-size:16px;font-family:var(--font-mono);background-color:#ffffff73;border-radius:3px;box-shadow:2px 2px 6px #ffffff40;padding:.5em;overflow-x:auto;color:var(--color-text)}.text-column{display:flex;max-width:48rem;flex:.6;flex-direction:column;justify-content:center;margin:0 auto}input,button{font-size:inherit;font-family:inherit}button:focus:not(:focus-visible){outline:none}@media (min-width: 720px){h1{font-size:2.4rem}}.visually-hidden{border:0;clip:rect(0 0 0 0);height:auto;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.app.svelte-8o1gnw.svelte-8o1gnw{display:flex;flex-direction:column;min-height:100vh}main.svelte-8o1gnw.svelte-8o1gnw{flex:1;display:flex;flex-direction:column;padding:1rem;width:100%;max-width:64rem;margin:0 auto;box-sizing:border-box}footer.svelte-8o1gnw.svelte-8o1gnw{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:12px}footer.svelte-8o1gnw a.svelte-8o1gnw{font-weight:700}@media (min-width: 480px){footer.svelte-8o1gnw.svelte-8o1gnw{padding:12px 0}} diff --git a/Svelte-Build/src/client/_app/immutable/assets/_page.265a38f0.css b/Svelte-Build/src/client/_app/immutable/assets/_page.265a38f0.css new file mode 100644 index 0000000..c71d3c5 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/_page.265a38f0.css @@ -0,0 +1 @@ +.counter.svelte-y96mxt.svelte-y96mxt{display:flex;border-top:1px solid rgba(0,0,0,.1);border-bottom:1px solid rgba(0,0,0,.1);margin:1rem 0}.counter.svelte-y96mxt button.svelte-y96mxt{width:2em;padding:0;display:flex;align-items:center;justify-content:center;border:0;background-color:transparent;touch-action:manipulation;font-size:2rem}.counter.svelte-y96mxt button.svelte-y96mxt:hover{background-color:var(--color-bg-1)}svg.svelte-y96mxt.svelte-y96mxt{width:25%;height:25%}path.svelte-y96mxt.svelte-y96mxt{vector-effect:non-scaling-stroke;stroke-width:2px;stroke:#444}.counter-viewport.svelte-y96mxt.svelte-y96mxt{width:8em;height:4em;overflow:hidden;text-align:center;position:relative}.counter-viewport.svelte-y96mxt strong.svelte-y96mxt{position:absolute;display:flex;width:100%;height:100%;font-weight:400;color:var(--color-theme-1);font-size:4rem;align-items:center;justify-content:center}.counter-digits.svelte-y96mxt.svelte-y96mxt{position:absolute;width:100%;height:100%}.hidden.svelte-y96mxt.svelte-y96mxt{top:-100%;user-select:none}section.svelte-19xx0bt.svelte-19xx0bt{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:.6}h1.svelte-19xx0bt.svelte-19xx0bt{width:100%}.welcome.svelte-19xx0bt.svelte-19xx0bt{display:block;position:relative;width:100%;height:0;padding:0 0 calc(100% * 495 / 2048) 0}.welcome.svelte-19xx0bt img.svelte-19xx0bt{position:absolute;width:100%;height:100%;top:0;display:block} diff --git a/Svelte-Build/src/client/_app/immutable/assets/_page.89a9e780.css b/Svelte-Build/src/client/_app/immutable/assets/_page.89a9e780.css new file mode 100644 index 0000000..8ced30e --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/_page.89a9e780.css @@ -0,0 +1 @@ +span.svelte-1x5nq1n.svelte-1x5nq1n{display:inline-flex;justify-content:center;align-items:center;font-size:.8em;width:2.4em;height:2.4em;background-color:#fff;box-sizing:border-box;border-radius:2px;border-width:2px;color:#000000b3}.missing.svelte-1x5nq1n.svelte-1x5nq1n{background:rgba(255,255,255,.5);color:#00000080}.close.svelte-1x5nq1n.svelte-1x5nq1n{border-style:solid;border-color:var(--color-theme-2)}.exact.svelte-1x5nq1n.svelte-1x5nq1n{background:var(--color-theme-2);color:#fff}.example.svelte-1x5nq1n.svelte-1x5nq1n{display:flex;justify-content:flex-start;margin:1rem 0;gap:.2rem}.example.svelte-1x5nq1n span.svelte-1x5nq1n{font-size:1.4rem}p.svelte-1x5nq1n span.svelte-1x5nq1n{position:relative;border-width:1px;border-radius:1px;font-size:.4em;transform:scale(2) translateY(-10%);margin:0 1em} diff --git a/Svelte-Build/src/client/_app/immutable/assets/_page.9d501049.css b/Svelte-Build/src/client/_app/immutable/assets/_page.9d501049.css new file mode 100644 index 0000000..88c4094 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/_page.9d501049.css @@ -0,0 +1 @@ +form.svelte-1pg2j5l.svelte-1pg2j5l{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;flex:1}.how-to-play.svelte-1pg2j5l.svelte-1pg2j5l{color:var(--color-text)}.how-to-play.svelte-1pg2j5l.svelte-1pg2j5l:before{content:"i";display:inline-block;font-size:.8em;font-weight:900;width:1em;height:1em;padding:.2em;line-height:1;border:1.5px solid var(--color-text);border-radius:50%;text-align:center;margin:0 .5em 0 0;position:relative;top:-.05em}.grid.svelte-1pg2j5l.svelte-1pg2j5l{--width:min(100vw, 40vh, 380px);max-width:var(--width);align-self:center;justify-self:center;width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-start}.grid.svelte-1pg2j5l .row.svelte-1pg2j5l{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:.2rem;margin:0 0 .2rem}@media (prefers-reduced-motion: no-preference){.grid.bad-guess.svelte-1pg2j5l .row.current.svelte-1pg2j5l{animation:svelte-1pg2j5l-wiggle .5s}}.grid.playing.svelte-1pg2j5l .row.current.svelte-1pg2j5l{filter:drop-shadow(3px 3px 10px var(--color-bg-0))}.letter.svelte-1pg2j5l.svelte-1pg2j5l{aspect-ratio:1;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;text-transform:lowercase;border:none;font-size:calc(.08 * var(--width));border-radius:2px;background:white;margin:0;color:#000000b3}.letter.missing.svelte-1pg2j5l.svelte-1pg2j5l{background:rgba(255,255,255,.5);color:#00000080}.letter.exact.svelte-1pg2j5l.svelte-1pg2j5l{background:var(--color-theme-2);color:#fff}.letter.close.svelte-1pg2j5l.svelte-1pg2j5l{border:2px solid var(--color-theme-2)}.selected.svelte-1pg2j5l.svelte-1pg2j5l{outline:2px solid var(--color-theme-1)}.controls.svelte-1pg2j5l.svelte-1pg2j5l{text-align:center;justify-content:center;height:min(18vh,10rem)}.keyboard.svelte-1pg2j5l.svelte-1pg2j5l{--gap:.2rem;position:relative;display:flex;flex-direction:column;gap:var(--gap);height:100%}.keyboard.svelte-1pg2j5l .row.svelte-1pg2j5l{display:flex;justify-content:center;gap:.2rem;flex:1}.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l,.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l:disabled{--size:min(8vw, 4vh, 40px);background-color:#fff;color:#000;width:var(--size);border:none;border-radius:2px;font-size:calc(var(--size) * .5);margin:0}.keyboard.svelte-1pg2j5l button.exact.svelte-1pg2j5l{background:var(--color-theme-2);color:#fff}.keyboard.svelte-1pg2j5l button.missing.svelte-1pg2j5l{opacity:.5}.keyboard.svelte-1pg2j5l button.close.svelte-1pg2j5l{border:2px solid var(--color-theme-2)}.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l:focus{background:var(--color-theme-1);color:#fff;outline:none}.keyboard.svelte-1pg2j5l button[data-key=enter].svelte-1pg2j5l,.keyboard.svelte-1pg2j5l button[data-key=backspace].svelte-1pg2j5l{position:absolute;bottom:0;width:calc(1.5 * var(--size));height:calc(1 / 3 * (100% - 2 * var(--gap)));text-transform:uppercase;font-size:calc(.3 * var(--size));padding-top:calc(.15 * var(--size))}.keyboard.svelte-1pg2j5l button[data-key=enter].svelte-1pg2j5l{right:calc(50% + 3.5 * var(--size) + .8rem)}.keyboard.svelte-1pg2j5l button[data-key=backspace].svelte-1pg2j5l{left:calc(50% + 3.5 * var(--size) + .8rem)}.keyboard.svelte-1pg2j5l button[data-key=enter].svelte-1pg2j5l:disabled{opacity:.5}.restart.svelte-1pg2j5l.svelte-1pg2j5l{width:100%;padding:1rem;background:rgba(255,255,255,.5);border-radius:2px;border:none}.restart.svelte-1pg2j5l.svelte-1pg2j5l:focus,.restart.svelte-1pg2j5l.svelte-1pg2j5l:hover{background:var(--color-theme-1);color:#fff;outline:none}@keyframes svelte-1pg2j5l-wiggle{0%{transform:translate(0)}10%{transform:translate(-2px)}30%{transform:translate(4px)}50%{transform:translate(-6px)}70%{transform:translate(+4px)}90%{transform:translate(-2px)}to{transform:translate(0)}} diff --git a/Svelte-Build/src/client/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff new file mode 100644 index 0000000..7f61fe9 Binary files /dev/null and b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff differ diff --git a/Svelte-Build/src/client/_app/immutable/assets/fira-mono-cyrillic-400-normal.c7d433fd.woff2 b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-cyrillic-400-normal.c7d433fd.woff2 new file mode 100644 index 0000000..48cf9cf Binary files /dev/null and b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-cyrillic-400-normal.c7d433fd.woff2 differ diff --git a/Svelte-Build/src/client/_app/immutable/assets/fira-mono-cyrillic-ext-400-normal.3df7909e.woff2 b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-cyrillic-ext-400-normal.3df7909e.woff2 new file mode 100644 index 0000000..d633202 Binary files /dev/null and b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-cyrillic-ext-400-normal.3df7909e.woff2 differ diff --git a/Svelte-Build/src/client/_app/immutable/assets/fira-mono-greek-400-normal.a8be01ce.woff2 b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-greek-400-normal.a8be01ce.woff2 new file mode 100644 index 0000000..01061b4 Binary files /dev/null and b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-greek-400-normal.a8be01ce.woff2 differ diff --git a/Svelte-Build/src/client/_app/immutable/assets/fira-mono-greek-ext-400-normal.9e2fe623.woff2 b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-greek-ext-400-normal.9e2fe623.woff2 new file mode 100644 index 0000000..4dc2f4b Binary files /dev/null and b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-greek-ext-400-normal.9e2fe623.woff2 differ diff --git a/Svelte-Build/src/client/_app/immutable/assets/fira-mono-latin-400-normal.e43b3538.woff2 b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-latin-400-normal.e43b3538.woff2 new file mode 100644 index 0000000..edc71a8 Binary files /dev/null and b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-latin-400-normal.e43b3538.woff2 differ diff --git a/Svelte-Build/src/client/_app/immutable/assets/fira-mono-latin-ext-400-normal.6bfabd30.woff2 b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-latin-ext-400-normal.6bfabd30.woff2 new file mode 100644 index 0000000..43e41c8 Binary files /dev/null and b/Svelte-Build/src/client/_app/immutable/assets/fira-mono-latin-ext-400-normal.6bfabd30.woff2 differ diff --git a/Svelte-Build/src/client/_app/immutable/assets/github.1ea8d62e.svg b/Svelte-Build/src/client/_app/immutable/assets/github.1ea8d62e.svg new file mode 100644 index 0000000..bc5d249 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/github.1ea8d62e.svg @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/Svelte-Build/src/client/_app/immutable/assets/svelte-logo.87df40b8.svg b/Svelte-Build/src/client/_app/immutable/assets/svelte-logo.87df40b8.svg new file mode 100644 index 0000000..49492a8 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/assets/svelte-logo.87df40b8.svg @@ -0,0 +1 @@ +svelte-logo \ No newline at end of file diff --git a/Svelte-Build/src/client/_app/immutable/assets/svelte-welcome.6c300099.png b/Svelte-Build/src/client/_app/immutable/assets/svelte-welcome.6c300099.png new file mode 100644 index 0000000..fe7d2d6 Binary files /dev/null and b/Svelte-Build/src/client/_app/immutable/assets/svelte-welcome.6c300099.png differ diff --git a/Svelte-Build/src/client/_app/immutable/assets/svelte-welcome.c18bcf5a.webp b/Svelte-Build/src/client/_app/immutable/assets/svelte-welcome.c18bcf5a.webp new file mode 100644 index 0000000..6ec1a28 Binary files /dev/null and b/Svelte-Build/src/client/_app/immutable/assets/svelte-welcome.c18bcf5a.webp differ diff --git a/Svelte-Build/src/client/_app/immutable/chunks/environment.9aa685ef.js b/Svelte-Build/src/client/_app/immutable/chunks/environment.9aa685ef.js new file mode 100644 index 0000000..0e90be4 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/chunks/environment.9aa685ef.js @@ -0,0 +1 @@ +const s=!1;export{s as d}; diff --git a/Svelte-Build/src/client/_app/immutable/chunks/index.14349a18.js b/Svelte-Build/src/client/_app/immutable/chunks/index.14349a18.js new file mode 100644 index 0000000..4efa903 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/chunks/index.14349a18.js @@ -0,0 +1 @@ +import{n as b,s as l}from"./scheduler.cbf234a0.js";const n=[];function h(e,o){return{subscribe:p(e,o).subscribe}}function p(e,o=b){let r;const i=new Set;function u(t){if(l(e,t)&&(e=t,r)){const c=!n.length;for(const s of i)s[1](),n.push(s,e);if(c){for(let s=0;s{i.delete(s),i.size===0&&r&&(r(),r=null)}}return{set:u,update:f,subscribe:a}}export{h as r,p as w}; diff --git a/Svelte-Build/src/client/_app/immutable/chunks/index.200976ee.js b/Svelte-Build/src/client/_app/immutable/chunks/index.200976ee.js new file mode 100644 index 0000000..0b57465 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/chunks/index.200976ee.js @@ -0,0 +1 @@ +var C=Object.defineProperty;var D=(e,t,n)=>t in e?C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var p=(e,t,n)=>(D(e,typeof t!="symbol"?t+"":t,n),n);import{r as h,n as y,j as w,k as T,i as E,l as j,m as N,p as B,q as H,v as b,w as L,x as I,y as P}from"./scheduler.cbf234a0.js";let $=!1;function q(){$=!0}function M(){$=!1}function O(e,t,n,i){for(;e>1);n(r)<=i?e=r+1:t=r}return e}function R(e){if(e.hydrate_init)return;e.hydrate_init=!0;let t=e.childNodes;if(e.nodeName==="HEAD"){const s=[];for(let l=0;l0&&t[n[r]].claim_order<=l?r+1:O(1,r,d=>t[n[d]].claim_order,l))-1;i[s]=n[o]+1;const u=o+1;n[u]=s,r=Math.max(u,r)}const c=[],a=[];let f=t.length-1;for(let s=n[r]+1;s!=0;s=i[s-1]){for(c.push(t[s-1]);f>=s;f--)a.push(t[f]);f--}for(;f>=0;f--)a.push(t[f]);c.reverse(),a.sort((s,l)=>s.claim_order-l.claim_order);for(let s=0,l=0;s=c[l].claim_order;)l++;const o=le.removeEventListener(t,n,i)}function le(e){return function(t){return t.preventDefault(),e.call(this,t)}}function ae(e,t,n){n==null?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function ce(e){return e.dataset.svelteH}function W(e){return Array.from(e.childNodes)}function G(e){e.claim_info===void 0&&(e.claim_info={last_index:0,total_claimed:0})}function A(e,t,n,i,r=!1){G(e);const c=(()=>{for(let a=e.claim_info.last_index;a=0;a--){const f=e[a];if(t(f)){const s=n(f);return s===void 0?e.splice(a,1):e[a]=s,r?s===void 0&&e.claim_info.last_index--:e.claim_info.last_index=a,f}}return i()})();return c.claim_order=e.claim_info.total_claimed,e.claim_info.total_claimed+=1,c}function S(e,t,n,i){return A(e,r=>r.nodeName===t,r=>{const c=[];for(let a=0;ar.removeAttribute(a))},()=>i(t))}function fe(e,t,n){return S(e,t,n,U)}function ue(e,t,n){return S(e,t,n,V)}function J(e,t){return A(e,n=>n.nodeType===3,n=>{const i=""+t;if(n.data.startsWith(i)){if(n.data.length!==i.length)return n.splitText(i.length)}else n.data=i},()=>x(t),!0)}function oe(e){return J(e," ")}function _e(e,t){t=""+t,e.data!==t&&(e.data=t)}function de(e,t,n,i){n==null?e.style.removeProperty(t):e.style.setProperty(t,n,i?"important":"")}function me(e,t,n){e.classList.toggle(t,!!n)}function he(e,t){const n=[];let i=0;for(const r of t.childNodes)if(r.nodeType===8){const c=r.textContent.trim();c===`HEAD_${e}_END`?(i-=1,n.push(r)):c===`HEAD_${e}_START`&&(i+=1,n.push(r))}else i>0&&n.push(r);return n}function $e(e,t){return new e(t)}const m=new Set;let _;function pe(){_={r:0,c:[],p:_}}function ye(){_.r||h(_.c),_=_.p}function K(e,t){e&&e.i&&(m.delete(e),e.i(t))}function xe(e,t,n,i){if(e&&e.o){if(m.has(e))return;m.add(e),_.c.push(()=>{m.delete(e),i&&(n&&e.d(1),i())}),e.o(t)}else i&&i()}function ge(e){e&&e.c()}function ve(e,t){e&&e.l(t)}function Q(e,t,n){const{fragment:i,after_update:r}=e.$$;i&&i.m(t,n),N(()=>{const c=e.$$.on_mount.map(L).filter(E);e.$$.on_destroy?e.$$.on_destroy.push(...c):h(c),e.$$.on_mount=[]}),r.forEach(N)}function X(e,t){const n=e.$$;n.fragment!==null&&(B(n.after_update),h(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function Y(e,t){e.$$.dirty[0]===-1&&(I.push(e),P(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const v=g.length?g[0]:d;return l.ctx&&r(l.ctx[u],l.ctx[u]=v)&&(!l.skip_bound&&l.bound[u]&&l.bound[u](v),o&&Y(e,u)),d}):[],l.update(),o=!0,h(l.before_update),l.fragment=i?i(l.ctx):!1,t.target){if(t.hydrate){q();const u=W(t.target);l.fragment&&l.fragment.l(u),u.forEach(F)}else l.fragment&&l.fragment.c();t.intro&&K(e.$$.fragment),Q(e,t.target,t.anchor),M(),T()}b(s)}class Ne{constructor(){p(this,"$$");p(this,"$$set")}$destroy(){X(this,1),this.$destroy=y}$on(t,n){if(!E(n))return y;const i=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return i.push(n),()=>{const r=i.indexOf(n);r!==-1&&i.splice(r,1)}}$set(t){this.$$set&&!j(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const Z="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Z);export{z as A,se as B,he as C,me as D,le as E,ne as F,Ne as S,te as a,ye as b,oe as c,K as d,re as e,F as f,U as g,fe as h,we as i,W as j,ae as k,de as l,x as m,J as n,_e as o,pe as p,$e as q,ge as r,ie as s,xe as t,ve as u,Q as v,X as w,V as x,ce as y,ue as z}; diff --git a/Svelte-Build/src/client/_app/immutable/chunks/parse.bee59afc.js b/Svelte-Build/src/client/_app/immutable/chunks/parse.bee59afc.js new file mode 100644 index 0000000..887430a --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/chunks/parse.bee59afc.js @@ -0,0 +1 @@ +function y(s,I){return i(JSON.parse(s),I)}function i(s,I){if(typeof s=="number")return a(s,!0);if(!Array.isArray(s)||s.length===0)throw new Error("Invalid input");const u=s,r=Array(u.length);function a(n,N=!1){if(n===-1)return;if(n===-3)return NaN;if(n===-4)return 1/0;if(n===-5)return-1/0;if(n===-6)return-0;if(N)throw new Error("Invalid input");if(n in r)return r[n];const t=u[n];if(!t||typeof t!="object")r[n]=t;else if(Array.isArray(t))if(typeof t[0]=="string"){const c=t[0],o=I==null?void 0:I[c];if(o)return r[n]=o(a(t[1]));switch(c){case"Date":r[n]=new Date(t[1]);break;case"Set":const f=new Set;r[n]=f;for(let e=1;ee.unsubscribe():e}function U(t,n,e){t.$$.on_destroy.push(v(n,e))}function A(t,n,e,o){if(t){const r=y(t,n,e,o);return t[0](r)}}function y(t,n,e,o){return t[1]&&o?k(e.ctx.slice(),t[1](o(n))):e.ctx}function B(t,n,e,o){if(t[2]&&o){const r=t[2](o(e));if(n.dirty===void 0)return r;if(typeof r=="object"){const i=[],f=Math.max(n.dirty.length,r.length);for(let s=0;s32){const n=[],e=t.ctx.length/32;for(let o=0;ot.indexOf(o)===-1?n.push(o):e.push(o)),e.forEach(o=>o()),u=n}export{J as a,p as b,U as c,A as d,B as e,H as f,D as g,G as h,E as i,F as j,M as k,S as l,q as m,g as n,I as o,L as p,a as q,j as r,P as s,K as t,C as u,d as v,w,l as x,O as y}; diff --git a/Svelte-Build/src/client/_app/immutable/chunks/singletons.13d7fb5f.js b/Svelte-Build/src/client/_app/immutable/chunks/singletons.13d7fb5f.js new file mode 100644 index 0000000..d6bc114 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/chunks/singletons.13d7fb5f.js @@ -0,0 +1 @@ +import{w as u}from"./index.14349a18.js";var p;const m=((p=globalThis.__sveltekit_16q4axl)==null?void 0:p.base)??"";var h;const w=((h=globalThis.__sveltekit_16q4axl)==null?void 0:h.assets)??m,E="1700239351764",x="sveltekit:snapshot",y="sveltekit:scroll",I="sveltekit:index",f={tap:1,hover:2,viewport:3,eager:4,off:-1},g=location.origin;function S(e){let t=e.baseURI;if(!t){const n=e.getElementsByTagName("base");t=n.length?n[0].href:e.URL}return t}function O(){return{x:pageXOffset,y:pageYOffset}}function c(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const d={...f,"":f.hover};function b(e){let t=e.assignedSlot??e.parentNode;return(t==null?void 0:t.nodeType)===11&&(t=t.host),t}function U(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=b(e)}}function L(e,t){let n;try{n=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI)}catch{}const o=e instanceof SVGAElement?e.target.baseVal:e.target,l=!n||!!o||R(n,t)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),r=(n==null?void 0:n.origin)===g&&e.hasAttribute("download");return{url:n,external:l,target:o,download:r}}function N(e){let t=null,n=null,o=null,l=null,r=null,a=null,s=e;for(;s&&s!==document.documentElement;)o===null&&(o=c(s,"preload-code")),l===null&&(l=c(s,"preload-data")),t===null&&(t=c(s,"keepfocus")),n===null&&(n=c(s,"noscroll")),r===null&&(r=c(s,"reload")),a===null&&(a=c(s,"replacestate")),s=b(s);function i(k){switch(k){case"":case"true":return!0;case"off":case"false":return!1;default:return null}}return{preload_code:d[o??"off"],preload_data:d[l??"off"],keep_focus:i(t),noscroll:i(n),reload:i(r),replace_state:i(a)}}function _(e){const t=u(e);let n=!0;function o(){n=!0,t.update(a=>a)}function l(a){n=!1,t.set(a)}function r(a){let s;return t.subscribe(i=>{(s===void 0||n&&i!==s)&&a(s=i)})}return{notify:o,set:l,subscribe:r}}function A(){const{set:e,subscribe:t}=u(!1);let n;async function o(){clearTimeout(n);try{const l=await fetch(`${w}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!l.ok)return!1;const a=(await l.json()).version!==E;return a&&(e(!0),clearTimeout(n)),a}catch{return!1}}return{subscribe:t,check:o}}function R(e,t){return e.origin!==g||!e.pathname.startsWith(t)}let v;function P(e){v=e.client}function V(e){return(...t)=>v[e](...t)}const Y={url:_({}),page:_({}),navigating:u(null),updated:A()};export{I,f as P,y as S,x as a,L as b,N as c,Y as d,m as e,U as f,S as g,P as h,R as i,V as j,v as k,g as o,O as s}; diff --git a/Svelte-Build/src/client/_app/immutable/chunks/stores.c94eb2b9.js b/Svelte-Build/src/client/_app/immutable/chunks/stores.c94eb2b9.js new file mode 100644 index 0000000..0a3cff9 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/chunks/stores.c94eb2b9.js @@ -0,0 +1 @@ +import{d as e}from"./singletons.13d7fb5f.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p}; diff --git a/Svelte-Build/src/client/_app/immutable/entry/app.db385fd8.js b/Svelte-Build/src/client/_app/immutable/entry/app.db385fd8.js new file mode 100644 index 0000000..c84679b --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/entry/app.db385fd8.js @@ -0,0 +1 @@ +import{s as q,a as B,o as U,t as j,b as D}from"../chunks/scheduler.cbf234a0.js";import{S as W,i as z,s as F,e as d,c as G,a as g,t as h,b as L,d as p,f as w,g as H,h as J,j as K,k as I,l as m,m as M,n as Q,o as X,p as P,q as v,r as E,u as O,v as y,w as R}from"../chunks/index.200976ee.js";const Y="modulepreload",Z=function(o,e){return new URL(o,e).href},T={},k=function(e,n,i){if(!n||n.length===0)return e();const s=document.getElementsByTagName("link");return Promise.all(n.map(f=>{if(f=Z(f,i),f in T)return;T[f]=!0;const t=f.endsWith(".css"),r=t?'[rel="stylesheet"]':"";if(!!i)for(let a=s.length-1;a>=0;a--){const u=s[a];if(u.href===f&&(!t||u.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${f}"]${r}`))return;const c=document.createElement("link");if(c.rel=t?"stylesheet":Y,t||(c.as="script",c.crossOrigin=""),c.href=f,document.head.appendChild(c),t)return new Promise((a,u)=>{c.addEventListener("load",a),c.addEventListener("error",()=>u(new Error(`Unable to preload CSS for ${f}`)))})})).then(()=>e()).catch(f=>{const t=new Event("vite:preloadError",{cancelable:!0});if(t.payload=f,window.dispatchEvent(t),!t.defaultPrevented)throw f})},re={};function $(o){let e,n,i;var s=o[1][0];function f(t,r){return{props:{data:t[3],form:t[2]}}}return s&&(e=v(s,f(o)),o[12](e)),{c(){e&&E(e.$$.fragment),n=d()},l(t){e&&O(e.$$.fragment,t),n=d()},m(t,r){e&&y(e,t,r),g(t,n,r),i=!0},p(t,r){if(r&2&&s!==(s=t[1][0])){if(e){P();const l=e;h(l.$$.fragment,1,0,()=>{R(l,1)}),L()}s?(e=v(s,f(t)),t[12](e),E(e.$$.fragment),p(e.$$.fragment,1),y(e,n.parentNode,n)):e=null}else if(s){const l={};r&8&&(l.data=t[3]),r&4&&(l.form=t[2]),e.$set(l)}},i(t){i||(e&&p(e.$$.fragment,t),i=!0)},o(t){e&&h(e.$$.fragment,t),i=!1},d(t){t&&w(n),o[12](null),e&&R(e,t)}}}function x(o){let e,n,i;var s=o[1][0];function f(t,r){return{props:{data:t[3],$$slots:{default:[ee]},$$scope:{ctx:t}}}}return s&&(e=v(s,f(o)),o[11](e)),{c(){e&&E(e.$$.fragment),n=d()},l(t){e&&O(e.$$.fragment,t),n=d()},m(t,r){e&&y(e,t,r),g(t,n,r),i=!0},p(t,r){if(r&2&&s!==(s=t[1][0])){if(e){P();const l=e;h(l.$$.fragment,1,0,()=>{R(l,1)}),L()}s?(e=v(s,f(t)),t[11](e),E(e.$$.fragment),p(e.$$.fragment,1),y(e,n.parentNode,n)):e=null}else if(s){const l={};r&8&&(l.data=t[3]),r&8215&&(l.$$scope={dirty:r,ctx:t}),e.$set(l)}},i(t){i||(e&&p(e.$$.fragment,t),i=!0)},o(t){e&&h(e.$$.fragment,t),i=!1},d(t){t&&w(n),o[11](null),e&&R(e,t)}}}function ee(o){let e,n,i;var s=o[1][1];function f(t,r){return{props:{data:t[4],form:t[2]}}}return s&&(e=v(s,f(o)),o[10](e)),{c(){e&&E(e.$$.fragment),n=d()},l(t){e&&O(e.$$.fragment,t),n=d()},m(t,r){e&&y(e,t,r),g(t,n,r),i=!0},p(t,r){if(r&2&&s!==(s=t[1][1])){if(e){P();const l=e;h(l.$$.fragment,1,0,()=>{R(l,1)}),L()}s?(e=v(s,f(t)),t[10](e),E(e.$$.fragment),p(e.$$.fragment,1),y(e,n.parentNode,n)):e=null}else if(s){const l={};r&16&&(l.data=t[4]),r&4&&(l.form=t[2]),e.$set(l)}},i(t){i||(e&&p(e.$$.fragment,t),i=!0)},o(t){e&&h(e.$$.fragment,t),i=!1},d(t){t&&w(n),o[10](null),e&&R(e,t)}}}function V(o){let e,n=o[6]&&A(o);return{c(){e=H("div"),n&&n.c(),this.h()},l(i){e=J(i,"DIV",{id:!0,"aria-live":!0,"aria-atomic":!0,style:!0});var s=K(e);n&&n.l(s),s.forEach(w),this.h()},h(){I(e,"id","svelte-announcer"),I(e,"aria-live","assertive"),I(e,"aria-atomic","true"),m(e,"position","absolute"),m(e,"left","0"),m(e,"top","0"),m(e,"clip","rect(0 0 0 0)"),m(e,"clip-path","inset(50%)"),m(e,"overflow","hidden"),m(e,"white-space","nowrap"),m(e,"width","1px"),m(e,"height","1px")},m(i,s){g(i,e,s),n&&n.m(e,null)},p(i,s){i[6]?n?n.p(i,s):(n=A(i),n.c(),n.m(e,null)):n&&(n.d(1),n=null)},d(i){i&&w(e),n&&n.d()}}}function A(o){let e;return{c(){e=M(o[7])},l(n){e=Q(n,o[7])},m(n,i){g(n,e,i)},p(n,i){i&128&&X(e,n[7])},d(n){n&&w(e)}}}function te(o){let e,n,i,s,f;const t=[x,$],r=[];function l(a,u){return a[1][1]?0:1}e=l(o),n=r[e]=t[e](o);let c=o[5]&&V(o);return{c(){n.c(),i=F(),c&&c.c(),s=d()},l(a){n.l(a),i=G(a),c&&c.l(a),s=d()},m(a,u){r[e].m(a,u),g(a,i,u),c&&c.m(a,u),g(a,s,u),f=!0},p(a,[u]){let b=e;e=l(a),e===b?r[e].p(a,u):(P(),h(r[b],1,1,()=>{r[b]=null}),L(),n=r[e],n?n.p(a,u):(n=r[e]=t[e](a),n.c()),p(n,1),n.m(i.parentNode,i)),a[5]?c?c.p(a,u):(c=V(a),c.c(),c.m(s.parentNode,s)):c&&(c.d(1),c=null)},i(a){f||(p(n),f=!0)},o(a){h(n),f=!1},d(a){a&&(w(i),w(s)),r[e].d(a),c&&c.d(a)}}}function ne(o,e,n){let{stores:i}=e,{page:s}=e,{constructors:f}=e,{components:t=[]}=e,{form:r}=e,{data_0:l=null}=e,{data_1:c=null}=e;B(i.page.notify);let a=!1,u=!1,b=null;U(()=>{const _=i.page.subscribe(()=>{a&&(n(6,u=!0),j().then(()=>{n(7,b=document.title||"untitled page")}))});return n(5,a=!0),_});function N(_){D[_?"unshift":"push"](()=>{t[1]=_,n(0,t)})}function S(_){D[_?"unshift":"push"](()=>{t[0]=_,n(0,t)})}function C(_){D[_?"unshift":"push"](()=>{t[0]=_,n(0,t)})}return o.$$set=_=>{"stores"in _&&n(8,i=_.stores),"page"in _&&n(9,s=_.page),"constructors"in _&&n(1,f=_.constructors),"components"in _&&n(0,t=_.components),"form"in _&&n(2,r=_.form),"data_0"in _&&n(3,l=_.data_0),"data_1"in _&&n(4,c=_.data_1)},o.$$.update=()=>{o.$$.dirty&768&&i.page.set(s)},[t,f,r,l,c,a,u,b,i,s,N,S,C]}class oe extends W{constructor(e){super(),z(this,e,ne,te,q,{stores:8,page:9,constructors:1,components:0,form:2,data_0:3,data_1:4})}}const ae=[()=>k(()=>import("../nodes/0.7447a5e8.js"),["..\\nodes\\0.7447a5e8.js","..\\chunks\\scheduler.cbf234a0.js","..\\chunks\\index.200976ee.js","..\\chunks\\stores.c94eb2b9.js","..\\chunks\\singletons.13d7fb5f.js","..\\chunks\\index.14349a18.js","..\\assets\\0.fa9427ff.css"],import.meta.url),()=>k(()=>import("../nodes/1.f6506935.js"),["..\\nodes\\1.f6506935.js","..\\chunks\\scheduler.cbf234a0.js","..\\chunks\\index.200976ee.js","..\\chunks\\stores.c94eb2b9.js","..\\chunks\\singletons.13d7fb5f.js","..\\chunks\\index.14349a18.js"],import.meta.url),()=>k(()=>import("../nodes/2.549c4b9e.js"),["..\\nodes\\2.549c4b9e.js","..\\chunks\\scheduler.cbf234a0.js","..\\chunks\\index.200976ee.js","..\\chunks\\index.14349a18.js","..\\assets\\2.57239003.css"],import.meta.url),()=>k(()=>import("../nodes/3.26c2dad3.js"),["..\\nodes\\3.26c2dad3.js","..\\chunks\\environment.9aa685ef.js","..\\chunks\\scheduler.cbf234a0.js","..\\chunks\\index.200976ee.js"],import.meta.url),()=>k(()=>import("../nodes/4.125b71e3.js"),["..\\nodes\\4.125b71e3.js","..\\chunks\\scheduler.cbf234a0.js","..\\chunks\\index.200976ee.js","..\\chunks\\parse.bee59afc.js","..\\chunks\\singletons.13d7fb5f.js","..\\chunks\\index.14349a18.js","..\\assets\\4.9d501049.css"],import.meta.url),()=>k(()=>import("../nodes/5.b8aa3391.js"),["..\\nodes\\5.b8aa3391.js","..\\chunks\\environment.9aa685ef.js","..\\chunks\\scheduler.cbf234a0.js","..\\chunks\\index.200976ee.js","..\\assets\\5.89a9e780.css"],import.meta.url)],le=[],fe={"/":[2],"/about":[3],"/sverdle":[-5],"/sverdle/how-to-play":[5]},ce={handleError:({error:o})=>{console.error(o)}};export{fe as dictionary,ce as hooks,re as matchers,ae as nodes,oe as root,le as server_loads}; diff --git a/Svelte-Build/src/client/_app/immutable/entry/start.972c3fc2.js b/Svelte-Build/src/client/_app/immutable/entry/start.972c3fc2.js new file mode 100644 index 0000000..ff59c67 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/entry/start.972c3fc2.js @@ -0,0 +1,3 @@ +import{o as me,t as _e}from"../chunks/scheduler.cbf234a0.js";import{S as Ke,a as ze,I as M,g as De,f as Ne,b as we,c as le,s as te,i as ye,d as H,o as qe,e as K,P as Me,h as Qe}from"../chunks/singletons.13d7fb5f.js";import{u as Ze}from"../chunks/parse.bee59afc.js";function et(n,o){return n==="/"||o==="ignore"?n:o==="never"?n.endsWith("/")?n.slice(0,-1):n:o==="always"&&!n.endsWith("/")?n+"/":n}function tt(n){return n.split("%25").map(decodeURI).join("%25")}function nt(n){for(const o in n)n[o]=decodeURIComponent(n[o]);return n}const at=["href","pathname","search","searchParams","toString","toJSON"];function rt(n,o){const l=new URL(n);for(const c of at)Object.defineProperty(l,c,{get(){return o(),n[c]},enumerable:!0,configurable:!0});return ot(l),l}function ot(n){Object.defineProperty(n,"hash",{get(){throw new Error("Cannot access event.url.hash. Consider using `$page.url.hash` inside a component instead")}})}const it="/__data.json";function st(n){return n.replace(/\/$/,"")+it}function ct(...n){let o=5381;for(const l of n)if(typeof l=="string"){let c=l.length;for(;c;)o=o*33^l.charCodeAt(--c)}else if(ArrayBuffer.isView(l)){const c=new Uint8Array(l.buffer,l.byteOffset,l.byteLength);let h=c.length;for(;h;)o=o*33^c[--h]}else throw new TypeError("value must be a string or TypedArray");return(o>>>0).toString(36)}const Be=window.fetch;window.fetch=(n,o)=>((n instanceof Request?n.method:(o==null?void 0:o.method)||"GET")!=="GET"&&ae.delete(Ee(n)),Be(n,o));const ae=new Map;function lt(n,o){const l=Ee(n,o),c=document.querySelector(l);if(c!=null&&c.textContent){const{body:h,...v}=JSON.parse(c.textContent),S=c.getAttribute("data-ttl");return S&&ae.set(l,{body:h,init:v,ttl:1e3*Number(S)}),Promise.resolve(new Response(h,v))}return window.fetch(n,o)}function ft(n,o,l){if(ae.size>0){const c=Ee(n,l),h=ae.get(c);if(h){if(performance.now(){const h=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(c);if(h)return o.push({name:h[1],matcher:h[2],optional:!1,rest:!0,chained:!0}),"(?:/(.*))?";const v=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(c);if(v)return o.push({name:v[1],matcher:v[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!c)return;const S=c.split(/\[(.+?)\](?!\])/);return"/"+S.map((_,b)=>{if(b%2){if(_.startsWith("x+"))return ve(String.fromCharCode(parseInt(_.slice(2),16)));if(_.startsWith("u+"))return ve(String.fromCharCode(..._.slice(2).split("-").map(U=>parseInt(U,16))));const u=ut.exec(_);if(!u)throw new Error(`Invalid param: ${_}. Params and matcher names can only have underscores and alphanumeric characters.`);const[,j,D,C,N]=u;return o.push({name:C,matcher:N,optional:!!j,rest:!!D,chained:D?b===1&&S[0]==="":!1}),D?"(.*?)":j?"([^/]*)?":"([^/]+?)"}return ve(_)}).join("")}).join("")}/?$`),params:o}}function pt(n){return!/^\([^)]+\)$/.test(n)}function ht(n){return n.slice(1).split("/").filter(pt)}function gt(n,o,l){const c={},h=n.slice(1),v=h.filter(m=>m!==void 0);let S=0;for(let m=0;mu).join("/"),S=0),b===void 0){_.rest&&(c[_.name]="");continue}if(!_.matcher||l[_.matcher](b)){c[_.name]=b;const u=o[m+1],j=h[m+1];u&&!u.rest&&u.optional&&j&&_.chained&&(S=0),!u&&!j&&Object.keys(c).length===v.length&&(S=0);continue}if(_.optional&&_.chained){S++;continue}return}if(!S)return c}function ve(n){return n.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function mt({nodes:n,server_loads:o,dictionary:l,matchers:c}){const h=new Set(o);return Object.entries(l).map(([m,[_,b,u]])=>{const{pattern:j,params:D}=dt(m),C={id:m,exec:N=>{const U=j.exec(N);if(U)return gt(U,D,c)},errors:[1,...u||[]].map(N=>n[N]),layouts:[0,...b||[]].map(S),leaf:v(_)};return C.errors.length=C.layouts.length=Math.max(C.errors.length,C.layouts.length),C});function v(m){const _=m<0;return _&&(m=~m),[_,n[m]]}function S(m){return m===void 0?m:[h.has(m),n[m]]}}function Ge(n){try{return JSON.parse(sessionStorage[n])}catch{}}function Ve(n,o){const l=JSON.stringify(o);try{sessionStorage[n]=l}catch{}}function _t(n){return n.filter(o=>o!=null)}const We=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...We];const wt=new Set([...We]);[...wt];async function yt(n){var o;for(const l in n)if(typeof((o=n[l])==null?void 0:o.then)=="function")return Object.fromEntries(await Promise.all(Object.entries(n).map(async([c,h])=>[c,await h])));return n}class ne{constructor(o,l){this.status=o,typeof l=="string"?this.body={message:l}:l?this.body=l:this.body={message:`Error: ${o}`}}toString(){return JSON.stringify(this.body)}}class Fe{constructor(o,l){this.status=o,this.location=l}}const vt="x-sveltekit-invalidated",bt="x-sveltekit-trailing-slash",z=Ge(Ke)??{},ee=Ge(ze)??{};function be(n){z[n]=te()}function B(n){return location.href=n.href,new Promise(()=>{})}function St(n,o){var je;const l=mt(n),c=n.nodes[0],h=n.nodes[1];c(),h();const v=document.documentElement,S=[],m=[];let _=null;const b={before_navigate:[],on_navigate:[],after_navigate:[]};let u={branch:[],error:null,url:null},j=!1,D=!1,C=!0,N=!1,U=!1,T=!1,G=!1,V,O=(je=history.state)==null?void 0:je[M];O||(O=Date.now(),history.replaceState({...history.state,[M]:O},"",location.href));const fe=z[O];fe&&(history.scrollRestoration="manual",scrollTo(fe.x,fe.y));let F,W,Y;async function xe(){if(Y=Y||Promise.resolve(),await Y,!Y)return;Y=null;const e=new URL(location.href),i=Q(e,!0);_=null;const t=W={},r=i&&await pe(i);if(t===W&&r){if(r.type==="redirect")return re(new URL(r.location,e).href,{},1,t);r.props.page!==void 0&&(F=r.props.page),V.$set(r.props)}}function Re(e){m.some(i=>i==null?void 0:i.snapshot)&&(ee[e]=m.map(i=>{var t;return(t=i==null?void 0:i.snapshot)==null?void 0:t.capture()}))}function ke(e){var i;(i=ee[e])==null||i.forEach((t,r)=>{var a,s;(s=(a=m[r])==null?void 0:a.snapshot)==null||s.restore(t)})}function Le(){be(O),Ve(Ke,z),Re(O),Ve(ze,ee)}async function re(e,{noScroll:i=!1,replaceState:t=!1,keepFocus:r=!1,state:a={},invalidateAll:s=!1},f,w){return typeof e=="string"&&(e=new URL(e,De(document))),ce({url:e,scroll:i?te():null,keepfocus:r,redirect_count:f,details:{state:a,replaceState:t},nav_token:w,accepted:()=>{s&&(G=!0)},blocked:()=>{},type:"goto"})}async function Ae(e){return _={id:e.id,promise:pe(e).then(i=>(i.type==="loaded"&&i.state.error&&(_=null),i))},_.promise}async function oe(...e){const t=l.filter(r=>e.some(a=>r.exec(a))).map(r=>Promise.all([...r.layouts,r.leaf].map(a=>a==null?void 0:a[1]())));await Promise.all(t)}function Pe(e){var r;u=e.state;const i=document.querySelector("style[data-sveltekit]");i&&i.remove(),F=e.props.page,V=new n.root({target:o,props:{...e.props,stores:H,components:m},hydrate:!0}),ke(O);const t={from:null,to:{params:u.params,route:{id:((r=u.route)==null?void 0:r.id)??null},url:new URL(location.href)},willUnload:!1,type:"enter",complete:Promise.resolve()};b.after_navigate.forEach(a=>a(t)),D=!0}async function X({url:e,params:i,branch:t,status:r,error:a,route:s,form:f}){let w="never";for(const p of t)(p==null?void 0:p.slash)!==void 0&&(w=p.slash);e.pathname=et(e.pathname,w),e.search=e.search;const y={type:"loaded",state:{url:e,params:i,branch:t,error:a,route:s},props:{constructors:_t(t).map(p=>p.node.component)}};f!==void 0&&(y.props.form=f);let g={},L=!F,R=0;for(let p=0;p(w.route=!0,d[P])}),params:new Proxy(r,{get:(d,P)=>(w.params.add(P),d[P])}),data:(s==null?void 0:s.data)??null,url:rt(t,()=>{w.url=!0}),async fetch(d,P){let I;d instanceof Request?(I=d.url,P={body:d.method==="GET"||d.method==="HEAD"?void 0:await d.blob(),cache:d.cache,credentials:d.credentials,headers:d.headers,integrity:d.integrity,keepalive:d.keepalive,method:d.method,mode:d.mode,redirect:d.redirect,referrer:d.referrer,referrerPolicy:d.referrerPolicy,signal:d.signal,...P}):I=d;const q=new URL(I,t);return A(q.href),q.origin===t.origin&&(I=q.href.slice(t.origin.length)),D?ft(I,q.href,P):lt(I,P)},setHeaders:()=>{},depends:A,parent(){return w.parent=!0,i()}};f=await y.universal.load.call(null,p)??null,f=f?await yt(f):null}return{node:y,loader:e,server:s,universal:(L=y.universal)!=null&&L.load?{type:"data",data:f,uses:w}:null,data:f??(s==null?void 0:s.data)??null,slash:((R=y.universal)==null?void 0:R.trailingSlash)??(s==null?void 0:s.slash)}}function Oe(e,i,t,r,a){if(G)return!0;if(!r)return!1;if(r.parent&&e||r.route&&i||r.url&&t)return!0;for(const s of r.params)if(a[s]!==u.params[s])return!0;for(const s of r.dependencies)if(S.some(f=>f(new URL(s))))return!0;return!1}function de(e,i){return(e==null?void 0:e.type)==="data"?e:(e==null?void 0:e.type)==="skip"?i??null:null}async function pe({id:e,invalidating:i,url:t,params:r,route:a}){if((_==null?void 0:_.id)===e)return _.promise;const{errors:s,layouts:f,leaf:w}=a,y=[...f,w];s.forEach(E=>E==null?void 0:E().catch(()=>{})),y.forEach(E=>E==null?void 0:E[1]().catch(()=>{}));let g=null;const L=u.url?e!==u.url.pathname+u.url.search:!1,R=u.route?a.id!==u.route.id:!1;let A=!1;const p=y.map((E,k)=>{var J;const x=u.branch[k],$=!!(E!=null&&E[0])&&((x==null?void 0:x.loader)!==E[1]||Oe(A,R,L,(J=x.server)==null?void 0:J.uses,r));return $&&(A=!0),$});if(p.some(Boolean)){try{g=await He(t,p)}catch(E){return ie({status:E instanceof ne?E.status:500,error:await Z(E,{url:t,params:r,route:{id:a.id}}),url:t,route:a})}if(g.type==="redirect")return g}const d=g==null?void 0:g.nodes;let P=!1;const I=y.map(async(E,k)=>{var he;if(!E)return;const x=u.branch[k],$=d==null?void 0:d[k];if((!$||$.type==="skip")&&E[1]===(x==null?void 0:x.loader)&&!Oe(P,R,L,(he=x.universal)==null?void 0:he.uses,r))return x;if(P=!0,($==null?void 0:$.type)==="error")throw $;return ue({loader:E[1],url:t,params:r,route:a,parent:async()=>{var Te;const Ce={};for(let ge=0;ge{});const q=[];for(let E=0;EPromise.resolve({}),server_data_node:de(s)}),y={node:await h(),loader:h,universal:null,server:null,data:null};return await X({url:t,params:a,branch:[w,y],status:e,error:i,route:null})}function Q(e,i){if(ye(e,K))return;const t=se(e);for(const r of l){const a=r.exec(t);if(a)return{id:e.pathname+e.search,invalidating:i,route:r,params:nt(a),url:e}}}function se(e){return tt(e.pathname.slice(K.length)||"/")}function Ie({url:e,type:i,intent:t,delta:r}){let a=!1;const s=Je(u,t,e,i);r!==void 0&&(s.navigation.delta=r);const f={...s.navigation,cancel:()=>{a=!0,s.reject(new Error("navigation was cancelled"))}};return U||b.before_navigate.forEach(w=>w(f)),a?null:s}async function ce({url:e,scroll:i,keepfocus:t,redirect_count:r,details:a,type:s,delta:f,nav_token:w={},accepted:y,blocked:g}){var I,q,E;const L=Q(e,!1),R=Ie({url:e,type:s,delta:f,intent:L});if(!R){g();return}const A=O;y(),U=!0,D&&H.navigating.set(R.navigation),W=w;let p=L&&await pe(L);if(!p){if(ye(e,K))return await B(e);p=await $e(e,{id:null},await Z(new Error(`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404)}if(e=(L==null?void 0:L.url)||e,W!==w)return R.reject(new Error("navigation was aborted")),!1;if(p.type==="redirect")if(r>=20)p=await ie({status:500,error:await Z(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}});else return re(new URL(p.location,e).href,{},r+1,w),!1;else((I=p.props.page)==null?void 0:I.status)>=400&&await H.updated.check()&&await B(e);if(S.length=0,G=!1,N=!0,be(A),Re(A),(q=p.props.page)!=null&&q.url&&p.props.page.url.pathname!==e.pathname&&(e.pathname=(E=p.props.page)==null?void 0:E.url.pathname),a){const k=a.replaceState?0:1;if(a.state[M]=O+=k,history[a.replaceState?"replaceState":"pushState"](a.state,"",e),!a.replaceState){let x=O+1;for(;ee[x]||z[x];)delete ee[x],delete z[x],x+=1}}if(_=null,D){u=p.state,p.props.page&&(p.props.page.url=e);const k=(await Promise.all(b.on_navigate.map(x=>x(R.navigation)))).filter(x=>typeof x=="function");if(k.length>0){let x=function(){b.after_navigate=b.after_navigate.filter($=>!k.includes($))};k.push(x),b.after_navigate.push(...k)}V.$set(p.props)}else Pe(p);const{activeElement:d}=document;if(await _e(),C){const k=e.hash&&document.getElementById(decodeURIComponent(e.hash.slice(1)));i?scrollTo(i.x,i.y):k?k.scrollIntoView():scrollTo(0,0)}const P=document.activeElement!==d&&document.activeElement!==document.body;!t&&!P&&Se(),C=!0,p.props.page&&(F=p.props.page),U=!1,s==="popstate"&&ke(O),R.fulfil(void 0),b.after_navigate.forEach(k=>k(R.navigation)),H.navigating.set(null),N=!1}async function $e(e,i,t,r){return e.origin===qe&&e.pathname===location.pathname&&!j?await ie({status:r,error:t,url:e,route:i}):await B(e)}function Xe(){let e;v.addEventListener("mousemove",s=>{const f=s.target;clearTimeout(e),e=setTimeout(()=>{r(f,2)},20)});function i(s){r(s.composedPath()[0],1)}v.addEventListener("mousedown",i),v.addEventListener("touchstart",i,{passive:!0});const t=new IntersectionObserver(s=>{for(const f of s)f.isIntersecting&&(oe(se(new URL(f.target.href))),t.unobserve(f.target))},{threshold:0});function r(s,f){const w=Ne(s,v);if(!w)return;const{url:y,external:g,download:L}=we(w,K);if(g||L)return;const R=le(w);if(!R.reload)if(f<=R.preload_data){const A=Q(y,!1);A&&Ae(A)}else f<=R.preload_code&&oe(se(y))}function a(){t.disconnect();for(const s of v.querySelectorAll("a")){const{url:f,external:w,download:y}=we(s,K);if(w||y)continue;const g=le(s);g.reload||(g.preload_code===Me.viewport&&t.observe(s),g.preload_code===Me.eager&&oe(se(f)))}}b.after_navigate.push(a),a()}function Z(e,i){return e instanceof ne?e.body:n.hooks.handleError({error:e,event:i})??{message:i.route.id!=null?"Internal Error":"Not Found"}}return{after_navigate:e=>{me(()=>(b.after_navigate.push(e),()=>{const i=b.after_navigate.indexOf(e);b.after_navigate.splice(i,1)}))},before_navigate:e=>{me(()=>(b.before_navigate.push(e),()=>{const i=b.before_navigate.indexOf(e);b.before_navigate.splice(i,1)}))},on_navigate:e=>{me(()=>(b.on_navigate.push(e),()=>{const i=b.on_navigate.indexOf(e);b.on_navigate.splice(i,1)}))},disable_scroll_handling:()=>{(N||!D)&&(C=!1)},goto:(e,i={})=>re(e,i,0),invalidate:e=>{if(typeof e=="function")S.push(e);else{const{href:i}=new URL(e,location.href);S.push(t=>t.href===i)}return xe()},invalidate_all:()=>(G=!0,xe()),preload_data:async e=>{const i=new URL(e,De(document)),t=Q(i,!1);if(!t)throw new Error(`Attempted to preload a URL that does not belong to this app: ${i}`);await Ae(t)},preload_code:oe,apply_action:async e=>{if(e.type==="error"){const i=new URL(location.href),{branch:t,route:r}=u;if(!r)return;const a=await Ue(u.branch.length,t,r.errors);if(a){const s=await X({url:i,params:u.params,branch:t.slice(0,a.idx).concat(a.node),status:e.status??500,error:e.error,route:r});u=s.state,V.$set(s.props),_e().then(Se)}}else e.type==="redirect"?re(e.location,{invalidateAll:!0},0):(V.$set({form:null,page:{...F,form:e.data,status:e.status}}),await _e(),V.$set({form:e.data}),e.type==="success"&&Se())},_start_router:()=>{var i;history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let r=!1;if(Le(),!U){const a=Je(u,void 0,null,"leave"),s={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation was cancelled"))}};b.before_navigate.forEach(f=>f(s))}r?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Le()}),(i=navigator.connection)!=null&&i.saveData||Xe(),v.addEventListener("click",t=>{var A;if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const r=Ne(t.composedPath()[0],v);if(!r)return;const{url:a,external:s,target:f,download:w}=we(r,K);if(!a)return;if(f==="_parent"||f==="_top"){if(window.parent!==window)return}else if(f&&f!=="_self")return;const y=le(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||w)return;if(s||y.reload){Ie({url:a,type:"link"})?U=!0:t.preventDefault();return}const[L,R]=a.href.split("#");if(R!==void 0&&L===location.href.split("#")[0]){if(u.url.hash===a.hash){t.preventDefault(),(A=r.ownerDocument.getElementById(R))==null||A.scrollIntoView();return}if(T=!0,be(O),e(a),!y.replace_state)return;T=!1,t.preventDefault()}ce({url:a,scroll:y.noscroll?te():null,keepfocus:y.keep_focus??!1,redirect_count:0,details:{state:{},replaceState:y.replace_state??a.href===location.href},accepted:()=>t.preventDefault(),blocked:()=>t.preventDefault(),type:"link"})}),v.addEventListener("submit",t=>{if(t.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(t.target),a=t.submitter;if(((a==null?void 0:a.formMethod)||r.method)!=="get")return;const f=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(ye(f,K))return;const w=t.target,{keep_focus:y,noscroll:g,reload:L,replace_state:R}=le(w);if(L)return;t.preventDefault(),t.stopPropagation();const A=new FormData(w),p=a==null?void 0:a.getAttribute("name");p&&A.append(p,(a==null?void 0:a.getAttribute("value"))??""),f.search=new URLSearchParams(A).toString(),ce({url:f,scroll:g?te():null,keepfocus:y??!1,redirect_count:0,details:{state:{},replaceState:R??f.href===location.href},nav_token:{},accepted:()=>{},blocked:()=>{},type:"form"})}),addEventListener("popstate",async t=>{var r;if(W={},(r=t.state)!=null&&r[M]){if(t.state[M]===O)return;const a=z[t.state[M]],s=new URL(location.href);if(u.url.href.split("#")[0]===location.href.split("#")[0]){e(s),z[O]=te(),O=t.state[M],scrollTo(a.x,a.y);return}const f=t.state[M]-O;await ce({url:s,scroll:a,keepfocus:!1,redirect_count:0,details:null,accepted:()=>{O=t.state[M]},blocked:()=>{history.go(-f)},type:"popstate",delta:f,nav_token:W})}else if(!T){const a=new URL(location.href);e(a)}}),addEventListener("hashchange",()=>{T&&(T=!1,history.replaceState({...history.state,[M]:++O},"",location.href))});for(const t of document.querySelectorAll("link"))t.rel==="icon"&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&H.navigating.set(null)});function e(t){u.url=t,H.page.set({...F,url:t}),H.page.notify()}},_hydrate:async({status:e=200,error:i,node_ids:t,params:r,route:a,data:s,form:f})=>{j=!0;const w=new URL(location.href);({params:r={},route:a={id:null}}=Q(w,!1)||{});let y;try{const g=t.map(async(A,p)=>{const d=s[p];return d!=null&&d.uses&&(d.uses=Ye(d.uses)),ue({loader:n.nodes[A],url:w,params:r,route:a,parent:async()=>{const P={};for(let I=0;IA===a.id);if(R){const A=R.layouts;for(let p=0;pv?"1":"0").join(""));const c=await Be(l.href);if((h=c.headers.get("content-type"))!=null&&h.includes("text/html")&&await B(n),!c.ok)throw new ne(c.status,await c.json());return new Promise(async v=>{var j;const S=new Map,m=c.body.getReader(),_=new TextDecoder;function b(D){return Ze(D,{Promise:C=>new Promise((N,U)=>{S.set(C,{fulfil:N,reject:U})})})}let u="";for(;;){const{done:D,value:C}=await m.read();if(D&&!u)break;for(u+=!C&&u?` +`:_.decode(C);;){const N=u.indexOf(` +`);if(N===-1)break;const U=JSON.parse(u.slice(0,N));if(u=u.slice(N+1),U.type==="redirect")return v(U);if(U.type==="data")(j=U.nodes)==null||j.forEach(T=>{(T==null?void 0:T.type)==="data"&&(T.uses=Ye(T.uses),T.data=b(T.data))}),v(U);else if(U.type==="chunk"){const{id:T,data:G,error:V}=U,O=S.get(T);S.delete(T),V?O.reject(b(V)):O.fulfil(b(G))}}}})}function Ye(n){return{dependencies:new Set((n==null?void 0:n.dependencies)??[]),params:new Set((n==null?void 0:n.params)??[]),parent:!!(n!=null&&n.parent),route:!!(n!=null&&n.route),url:!!(n!=null&&n.url)}}function Se(){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const o=document.body,l=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),l!==null?o.setAttribute("tabindex",l):o.removeAttribute("tabindex");const c=getSelection();if(c&&c.type!=="None"){const h=[];for(let v=0;v{if(c.rangeCount===h.length){for(let v=0;v{h=u,v=j});return S.catch(()=>{}),{navigation:{from:{params:n.params,route:{id:((_=n.route)==null?void 0:_.id)??null},url:n.url},to:l&&{params:(o==null?void 0:o.params)??null,route:{id:((b=o==null?void 0:o.route)==null?void 0:b.id)??null},url:l},willUnload:!o,type:c,complete:S},fulfil:h,reject:v}}async function kt(n,o,l){const c=St(n,o);Qe({client:c}),l?await c._hydrate(l):c.goto(location.href,{replaceState:!0}),c._start_router()}export{kt as start}; diff --git a/Svelte-Build/src/client/_app/immutable/nodes/0.7447a5e8.js b/Svelte-Build/src/client/_app/immutable/nodes/0.7447a5e8.js new file mode 100644 index 0000000..42aadbc --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/nodes/0.7447a5e8.js @@ -0,0 +1 @@ +import{s as Y,n as P,c as ae,d as le,u as re,g as ne,e as ue}from"../chunks/scheduler.cbf234a0.js";import{S as ee,i as te,g as v,s as x,x as D,h as p,j as _,y as k,c as H,z as R,f as d,k as e,a as se,A as a,r as ie,u as oe,v as ce,d as Q,t as X,w as ve}from"../chunks/index.200976ee.js";import{p as pe}from"../chunks/stores.c94eb2b9.js";const de=""+new URL("../assets/svelte-logo.87df40b8.svg",import.meta.url).href,he=""+new URL("../assets/github.1ea8d62e.svg",import.meta.url).href;function fe(h){let t,r,m=`SvelteKit`,i,n,u,$,g,o,l,s,c="Home",y,V,L,C,N="About",S,j,E,b,O="Sverdle",B,U,w,A,K,M,W=`GitHub`;return{c(){t=v("header"),r=v("div"),r.innerHTML=m,i=x(),n=v("nav"),u=D("svg"),$=D("path"),g=x(),o=v("ul"),l=v("li"),s=v("a"),s.textContent=c,V=x(),L=v("li"),C=v("a"),C.textContent=N,j=x(),E=v("li"),b=v("a"),b.textContent=O,U=x(),w=D("svg"),A=D("path"),K=x(),M=v("div"),M.innerHTML=W,this.h()},l(z){t=p(z,"HEADER",{class:!0});var f=_(t);r=p(f,"DIV",{class:!0,"data-svelte-h":!0}),k(r)!=="svelte-1jb641n"&&(r.innerHTML=m),i=H(f),n=p(f,"NAV",{class:!0});var I=_(n);u=R(I,"svg",{viewBox:!0,"aria-hidden":!0,class:!0});var Z=_(u);$=R(Z,"path",{d:!0,class:!0}),_($).forEach(d),Z.forEach(d),g=H(I),o=p(I,"UL",{class:!0});var T=_(o);l=p(T,"LI",{"aria-current":!0,class:!0});var q=_(l);s=p(q,"A",{href:!0,class:!0,"data-svelte-h":!0}),k(s)!=="svelte-5a0zws"&&(s.textContent=c),q.forEach(d),V=H(T),L=p(T,"LI",{"aria-current":!0,class:!0});var F=_(L);C=p(F,"A",{href:!0,class:!0,"data-svelte-h":!0}),k(C)!=="svelte-iphxk9"&&(C.textContent=N),F.forEach(d),j=H(T),E=p(T,"LI",{"aria-current":!0,class:!0});var G=_(E);b=p(G,"A",{href:!0,class:!0,"data-svelte-h":!0}),k(b)!=="svelte-1mtf8rh"&&(b.textContent=O),G.forEach(d),T.forEach(d),U=H(I),w=R(I,"svg",{viewBox:!0,"aria-hidden":!0,class:!0});var J=_(w);A=R(J,"path",{d:!0,class:!0}),_(A).forEach(d),J.forEach(d),I.forEach(d),K=H(f),M=p(f,"DIV",{class:!0,"data-svelte-h":!0}),k(M)!=="svelte-1gilmbv"&&(M.innerHTML=W),f.forEach(d),this.h()},h(){e(r,"class","corner svelte-1u9z1tp"),e($,"d","M0,0 L1,2 C1.5,3 1.5,3 2,3 L2,0 Z"),e($,"class","svelte-1u9z1tp"),e(u,"viewBox","0 0 2 3"),e(u,"aria-hidden","true"),e(u,"class","svelte-1u9z1tp"),e(s,"href","/"),e(s,"class","svelte-1u9z1tp"),e(l,"aria-current",y=h[0].url.pathname==="/"?"page":void 0),e(l,"class","svelte-1u9z1tp"),e(C,"href","/about"),e(C,"class","svelte-1u9z1tp"),e(L,"aria-current",S=h[0].url.pathname==="/about"?"page":void 0),e(L,"class","svelte-1u9z1tp"),e(b,"href","/sverdle"),e(b,"class","svelte-1u9z1tp"),e(E,"aria-current",B=h[0].url.pathname.startsWith("/sverdle")?"page":void 0),e(E,"class","svelte-1u9z1tp"),e(o,"class","svelte-1u9z1tp"),e(A,"d","M0,0 L0,3 C0.5,3 0.5,3 1,2 L2,0 Z"),e(A,"class","svelte-1u9z1tp"),e(w,"viewBox","0 0 2 3"),e(w,"aria-hidden","true"),e(w,"class","svelte-1u9z1tp"),e(n,"class","svelte-1u9z1tp"),e(M,"class","corner svelte-1u9z1tp"),e(t,"class","svelte-1u9z1tp")},m(z,f){se(z,t,f),a(t,r),a(t,i),a(t,n),a(n,u),a(u,$),a(n,g),a(n,o),a(o,l),a(l,s),a(o,V),a(o,L),a(L,C),a(o,j),a(o,E),a(E,b),a(n,U),a(n,w),a(w,A),a(t,K),a(t,M)},p(z,[f]){f&1&&y!==(y=z[0].url.pathname==="/"?"page":void 0)&&e(l,"aria-current",y),f&1&&S!==(S=z[0].url.pathname==="/about"?"page":void 0)&&e(L,"aria-current",S),f&1&&B!==(B=z[0].url.pathname.startsWith("/sverdle")?"page":void 0)&&e(E,"aria-current",B)},i:P,o:P,d(z){z&&d(t)}}}function _e(h,t,r){let m;return ae(h,pe,i=>r(0,m=i)),[m]}class me extends ee{constructor(t){super(),te(this,t,_e,fe,Y,{})}}function ge(h){let t,r,m,i,n,u,$='

visit kit.svelte.dev to learn SvelteKit

',g;r=new me({});const o=h[1].default,l=le(o,h,h[0],null);return{c(){t=v("div"),ie(r.$$.fragment),m=x(),i=v("main"),l&&l.c(),n=x(),u=v("footer"),u.innerHTML=$,this.h()},l(s){t=p(s,"DIV",{class:!0});var c=_(t);oe(r.$$.fragment,c),m=H(c),i=p(c,"MAIN",{class:!0});var y=_(i);l&&l.l(y),y.forEach(d),n=H(c),u=p(c,"FOOTER",{class:!0,"data-svelte-h":!0}),k(u)!=="svelte-1dlfr5"&&(u.innerHTML=$),c.forEach(d),this.h()},h(){e(i,"class","svelte-8o1gnw"),e(u,"class","svelte-8o1gnw"),e(t,"class","app svelte-8o1gnw")},m(s,c){se(s,t,c),ce(r,t,null),a(t,m),a(t,i),l&&l.m(i,null),a(t,n),a(t,u),g=!0},p(s,[c]){l&&l.p&&(!g||c&1)&&re(l,o,s,s[0],g?ue(o,s[0],c,null):ne(s[0]),null)},i(s){g||(Q(r.$$.fragment,s),Q(l,s),g=!0)},o(s){X(r.$$.fragment,s),X(l,s),g=!1},d(s){s&&d(t),ve(r),l&&l.d(s)}}}function $e(h,t,r){let{$$slots:m={},$$scope:i}=t;return h.$$set=n=>{"$$scope"in n&&r(0,i=n.$$scope)},[i,m]}class Ee extends ee{constructor(t){super(),te(this,t,$e,ge,Y,{})}}export{Ee as component}; diff --git a/Svelte-Build/src/client/_app/immutable/nodes/1.f6506935.js b/Svelte-Build/src/client/_app/immutable/nodes/1.f6506935.js new file mode 100644 index 0000000..36a91e3 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/nodes/1.f6506935.js @@ -0,0 +1 @@ +import{s as x,n as u,c as S}from"../chunks/scheduler.cbf234a0.js";import{S as j,i as q,g as h,m as d,s as y,h as v,j as g,n as E,f as m,c as A,a as _,A as $,o as b}from"../chunks/index.200976ee.js";import{p as C}from"../chunks/stores.c94eb2b9.js";function H(p){var f;let a,t=p[0].status+"",r,o,n,i=((f=p[0].error)==null?void 0:f.message)+"",c;return{c(){a=h("h1"),r=d(t),o=y(),n=h("p"),c=d(i)},l(e){a=v(e,"H1",{});var s=g(a);r=E(s,t),s.forEach(m),o=A(e),n=v(e,"P",{});var l=g(n);c=E(l,i),l.forEach(m)},m(e,s){_(e,a,s),$(a,r),_(e,o,s),_(e,n,s),$(n,c)},p(e,[s]){var l;s&1&&t!==(t=e[0].status+"")&&b(r,t),s&1&&i!==(i=((l=e[0].error)==null?void 0:l.message)+"")&&b(c,i)},i:u,o:u,d(e){e&&(m(a),m(o),m(n))}}}function P(p,a,t){let r;return S(p,C,o=>t(0,r=o)),[r]}class B extends j{constructor(a){super(),q(this,a,P,H,x,{})}}export{B as component}; diff --git a/Svelte-Build/src/client/_app/immutable/nodes/2.549c4b9e.js b/Svelte-Build/src/client/_app/immutable/nodes/2.549c4b9e.js new file mode 100644 index 0000000..4025a59 --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/nodes/2.549c4b9e.js @@ -0,0 +1,3 @@ +import{n as O,s as G,r as X,c as Y}from"../chunks/scheduler.cbf234a0.js";import{S as F,i as K,g as b,s as L,m as N,h as w,j as k,y as j,c as E,n as P,f as M,k as g,l as z,a as D,A as p,B as R,o as U,r as Z,C as ee,u as te,v as se,d as ne,t as oe,w as re}from"../chunks/index.200976ee.js";import{w as ae}from"../chunks/index.14349a18.js";const W=typeof window<"u";let V=W?()=>window.performance.now():()=>Date.now(),J=W?e=>requestAnimationFrame(e):O;const H=new Set;function Q(e){H.forEach(t=>{t.c(e)||(H.delete(t),t.f())}),H.size!==0&&J(Q)}function le(e){let t;return H.size===0&&J(Q),{promise:new Promise(s=>{H.add(t={c:e,f:s})}),abort(){H.delete(t)}}}const ie=!0,be=Object.freeze(Object.defineProperty({__proto__:null,prerender:ie},Symbol.toStringTag,{value:"Module"}));function q(e){return Object.prototype.toString.call(e)==="[object Date]"}function A(e,t,s,r){if(typeof s=="number"||q(s)){const a=r-s,n=(s-t)/(e.dt||1/60),o=e.opts.stiffness*a,l=e.opts.damping*n,u=(o-l)*e.inv_mass,c=(n+u)*e.dt;return Math.abs(c)A(e,t[n],s[n],r[n]));if(typeof s=="object"){const a={};for(const n in s)a[n]=A(e,t[n],s[n],r[n]);return a}else throw new Error(`Cannot spring ${typeof s} values`)}}function ce(e,t={}){const s=ae(e),{stiffness:r=.15,damping:a=.8,precision:n=.01}=t;let o,l,u,c=e,f=e,d=1,i=0,h=!1;function y(T,x={}){f=T;const S=u={};return e==null||x.hard||v.stiffness>=1&&v.damping>=1?(h=!0,o=V(),c=T,s.set(e=f),Promise.resolve()):(x.soft&&(i=1/((x.soft===!0?.5:+x.soft)*60),d=0),l||(o=V(),h=!1,l=le(_=>{if(h)return h=!1,l=null,!1;d=Math.min(d+i,1);const m={inv_mass:d,opts:v,settled:!0,dt:(_-o)*60/1e3},C=A(m,c,e,f);return o=_,c=e,s.set(e=C),m.settled&&(l=null),!m.settled})),new Promise(_=>{l.promise.then(()=>{S===u&&_()})}))}const v={set:y,update:(T,x)=>y(T(f,e),x),subscribe:s.subscribe,stiffness:r,damping:a,precision:n};return v}function fe(e){let t,s,r='',a,n,o,l,u=Math.floor(e[1]+1)+"",c,f,d,i=Math.floor(e[1])+"",h,y,v,T='',x,S;return{c(){t=b("div"),s=b("button"),s.innerHTML=r,a=L(),n=b("div"),o=b("div"),l=b("strong"),c=N(u),f=L(),d=b("strong"),h=N(i),y=L(),v=b("button"),v.innerHTML=T,this.h()},l(_){t=w(_,"DIV",{class:!0});var m=k(t);s=w(m,"BUTTON",{"aria-label":!0,class:!0,"data-svelte-h":!0}),j(s)!=="svelte-97ppyc"&&(s.innerHTML=r),a=E(m),n=w(m,"DIV",{class:!0});var C=k(n);o=w(C,"DIV",{class:!0,style:!0});var $=k(o);l=w($,"STRONG",{class:!0,"aria-hidden":!0});var B=k(l);c=P(B,u),B.forEach(M),f=E($),d=w($,"STRONG",{class:!0});var I=k(d);h=P(I,i),I.forEach(M),$.forEach(M),C.forEach(M),y=E(m),v=w(m,"BUTTON",{"aria-label":!0,class:!0,"data-svelte-h":!0}),j(v)!=="svelte-irev0c"&&(v.innerHTML=T),m.forEach(M),this.h()},h(){g(s,"aria-label","Decrease the counter by one"),g(s,"class","svelte-y96mxt"),g(l,"class","hidden svelte-y96mxt"),g(l,"aria-hidden","true"),g(d,"class","svelte-y96mxt"),g(o,"class","counter-digits svelte-y96mxt"),z(o,"transform","translate(0, "+100*e[2]+"%)"),g(n,"class","counter-viewport svelte-y96mxt"),g(v,"aria-label","Increase the counter by one"),g(v,"class","svelte-y96mxt"),g(t,"class","counter svelte-y96mxt")},m(_,m){D(_,t,m),p(t,s),p(t,a),p(t,n),p(n,o),p(o,l),p(l,c),p(o,f),p(o,d),p(d,h),p(t,y),p(t,v),x||(S=[R(s,"click",e[4]),R(v,"click",e[5])],x=!0)},p(_,[m]){m&2&&u!==(u=Math.floor(_[1]+1)+"")&&U(c,u),m&2&&i!==(i=Math.floor(_[1])+"")&&U(h,i),m&4&&z(o,"transform","translate(0, "+100*_[2]+"%)")},i:O,o:O,d(_){_&&M(t),x=!1,X(S)}}}function de(e,t){return(e%t+t)%t}function me(e,t,s){let r,a,n=0;const o=ce();Y(e,o,c=>s(1,a=c));const l=()=>s(0,n-=1),u=()=>s(0,n+=1);return e.$$.update=()=>{e.$$.dirty&1&&o.set(n),e.$$.dirty&2&&s(2,r=de(a,1))},[n,a,r,o,l,u]}class pe extends F{constructor(t){super(),K(this,t,me,fe,G,{})}}const ue=""+new URL("../assets/svelte-welcome.c18bcf5a.webp",import.meta.url).href,he=""+new URL("../assets/svelte-welcome.6c300099.png",import.meta.url).href;function _e(e){let t,s,r,a,n=` Welcome + + to your new
SvelteKit app`,o,l,u="try editing src/routes/+page.svelte",c,f,d;return f=new pe({}),{c(){t=b("meta"),s=L(),r=b("section"),a=b("h1"),a.innerHTML=n,o=L(),l=b("h2"),l.innerHTML=u,c=L(),Z(f.$$.fragment),this.h()},l(i){const h=ee("svelte-t32ptj",document.head);t=w(h,"META",{name:!0,content:!0}),h.forEach(M),s=E(i),r=w(i,"SECTION",{class:!0});var y=k(r);a=w(y,"H1",{class:!0,"data-svelte-h":!0}),j(a)!=="svelte-11s73ib"&&(a.innerHTML=n),o=E(y),l=w(y,"H2",{"data-svelte-h":!0}),j(l)!=="svelte-1e36z0s"&&(l.innerHTML=u),c=E(y),te(f.$$.fragment,y),y.forEach(M),this.h()},h(){document.title="Home",g(t,"name","description"),g(t,"content","Svelte demo app"),g(a,"class","svelte-19xx0bt"),g(r,"class","svelte-19xx0bt")},m(i,h){p(document.head,t),D(i,s,h),D(i,r,h),p(r,a),p(r,o),p(r,l),p(r,c),se(f,r,null),d=!0},p:O,i(i){d||(ne(f.$$.fragment,i),d=!0)},o(i){oe(f.$$.fragment,i),d=!1},d(i){i&&(M(s),M(r)),M(t),re(f)}}}class we extends F{constructor(t){super(),K(this,t,null,_e,G,{})}}export{we as component,be as universal}; diff --git a/Svelte-Build/src/client/_app/immutable/nodes/3.26c2dad3.js b/Svelte-Build/src/client/_app/immutable/nodes/3.26c2dad3.js new file mode 100644 index 0000000..e7371fc --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/nodes/3.26c2dad3.js @@ -0,0 +1,5 @@ +import{d as u}from"../chunks/environment.9aa685ef.js";import{s as m,n as i}from"../chunks/scheduler.cbf234a0.js";import{S as v,i as g,g as p,s as f,C as y,h as d,f as o,c as _,y as T,k as r,A as b,a as c}from"../chunks/index.200976ee.js";const w=u,S=!0,C=Object.freeze(Object.defineProperty({__proto__:null,csr:w,prerender:S},Symbol.toStringTag,{value:"Module"}));function k(h){let e,s,t,l=`

About this app

This is a SvelteKit app. You can make your own by typing the + following into your command line and following the prompts:

npm create svelte@latest

The page you're looking at is purely static HTML, with no client-side interactivity needed. + Because of that, we don't need to load any JavaScript. Try viewing the page's source, or opening + the devtools network panel and reloading.

The Sverdle page illustrates SvelteKit's data loading and form handling. Try + using it with JavaScript disabled!

`;return{c(){e=p("meta"),s=f(),t=p("div"),t.innerHTML=l,this.h()},l(a){const n=y("svelte-1ds1qyu",document.head);e=d(n,"META",{name:!0,content:!0}),n.forEach(o),s=_(a),t=d(a,"DIV",{class:!0,"data-svelte-h":!0}),T(t)!=="svelte-h1zwnb"&&(t.innerHTML=l),this.h()},h(){document.title="About",r(e,"name","description"),r(e,"content","About this app"),r(t,"class","text-column")},m(a,n){b(document.head,e),c(a,s,n),c(a,t,n)},p:i,i,o:i,d(a){a&&(o(s),o(t)),o(e)}}}class H extends v{constructor(e){super(),g(this,e,null,k,m,{})}}export{H as component,C as universal}; diff --git a/Svelte-Build/src/client/_app/immutable/nodes/4.125b71e3.js b/Svelte-Build/src/client/_app/immutable/nodes/4.125b71e3.js new file mode 100644 index 0000000..545810b --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/nodes/4.125b71e3.js @@ -0,0 +1 @@ +import{r as Ae,s as He,f as Se,n as le,c as Ne,i as De,h as se}from"../chunks/scheduler.cbf234a0.js";import{d as Pe,S as Le,i as Oe,g as M,s as P,e as re,C as Xe,h as W,f as g,c as L,y as Q,j as H,k as v,D as G,A as S,a as T,B as ee,m as N,n as D,l as R,o as te,E as Ce,F as Te}from"../chunks/index.200976ee.js";import{p as ze}from"../chunks/parse.bee59afc.js";import{j as Fe,k as Ie}from"../chunks/singletons.13d7fb5f.js";import{r as qe}from"../chunks/index.14349a18.js";const Be=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;function I(n){return(n==null?void 0:n.length)!==void 0?n:Array.from(n)}function Me(n,e){n.d(1),e.delete(n.key)}function We(n,e,t,a,r,o,s,l,u,b,h,p){let m=n.length,f=o.length,c=m;const i={};for(;c--;)i[n[c].key]=c;const _=[],C=new Map,y=new Map,A=[];for(c=f;c--;){const k=p(r,o,c),E=t(k);let d=s.get(E);d?a&&A.push(()=>d.p(k,e)):(d=b(E,k),d.c()),C.set(E,_[c]=d),E in i&&y.set(E,Math.abs(c-i[E]))}const X=new Set,F=new Set;function O(k){Pe(k,1),k.m(l,h),s.set(k.key,k),h=k.first,f--}for(;m&&f;){const k=_[f-1],E=n[m-1],d=k.key,w=E.key;k===E?(h=k.first,m--,f--):C.has(w)?!s.has(d)||X.has(d)?O(k):F.has(w)?m--:y.get(d)>y.get(w)?(F.add(d),O(k)):(X.add(w),m--):(u(E,s),m--)}for(;m--;){const k=n[m];C.has(k.key)||u(k,s)}for(;f;)O(_[f-1]);return Ae(A),_}const Ve=(n,e={})=>{de(e);let{colors:t=["#FFC700","#FF0000","#2E3191","#41BBC7"],duration:a=3500,force:r=.5,particleCount:o=150,particleShape:s="mix",particleSize:l=12,destroyAfterDone:u=!0,stageHeight:b=800,stageWidth:h=1600}=e;(function(i){const _=Y("style");_.dataset.neoconfetti="",_.textContent='@keyframes fk9XWG_y-axis{to{transform:translate3d(0,var(--stage-height),0)}}@keyframes fk9XWG_x-axis{to{transform:translate3d(var(--x-landing-point),0,0)}}@keyframes fk9XWG_rotation{50%{transform:rotate3d(var(--half-rotation),180deg)}to{transform:rotate3d(var(--rotation),360deg)}}.fk9XWG_container{width:0;height:0;z-index:1200;position:relative;overflow:visible}.fk9XWG_particle{animation:x-axis var(--duration-chaos)forwards cubic-bezier(var(--x1),var(--x2),var(--x3),var(--x4));animation-name:fk9XWG_x-axis}.fk9XWG_particle>div{animation:y-axis var(--duration-chaos)forwards cubic-bezier(var(--y1),var(--y2),var(--y3),var(--y4));width:var(--width);height:var(--height);animation-name:fk9XWG_y-axis;position:absolute;top:0;left:0}.fk9XWG_particle>div:before{height:100%;width:100%;content:"";background-color:var(--bgcolor);animation:rotation var(--rotation-duration)infinite linear;border-radius:var(--border-radius);animation-name:fk9XWG_rotation;display:block}',Z(document.head,_)})(),n.classList.add("fk9XWG_container"),n.style.setProperty("--stage-height",b+"px");let p,m=fe(o,t),f=ie(n,m);function c(i,_){const C=V(z()*(Ke-1)),y=s!=="rectangles"&&(s==="circles"||Qe(C)),A=(O,k)=>i.style.setProperty(O,k+"");A("--x-landing-point",J(U(ue(_,90)-180),0,180,-h/2,h/2)+"px"),A("--duration-chaos",a-V(1e3*z())+"ms");const X=z()+O/2+"")),A("--rotation",F),A("--rotation-duration",q(z()*(Ue-oe)+oe)+"ms"),A("--border-radius",y?"50%":0)}for(const[i,_]of Object.entries(f))c(_,m[+i].degree);return Promise.resolve().then(()=>p=setTimeout(()=>u&&(n.innerHTML=""),a)),{update(i){de(i);const _=i.particleCount??o,C=i.colors??t,y=i.stageHeight??b;if(m=fe(_,C),_===o&&JSON.stringify(t)!==JSON.stringify(C))for(const[A,{color:X}]of Object.entries(m))f[+A].style.setProperty("--bgcolor",X);_!==o&&(n.innerHTML="",f=ie(n,m)),u&&!i.destroyAfterDone&&clearTimeout(p),n.style.setProperty("--stage-height",y+"px"),t=C,a=i.duration??a,r=i.force??r,o=_,s=i.particleShape??s,l=i.particleSize??l,u=i.destroyAfterDone??u,b=y,h=i.stageWidth??h},destroy(){clearTimeout(p)}}};function ie(n,e=[]){const t=[];for(const{color:a}of e){const r=Y("div");r.className="fk9XWG_particle",r.style.setProperty("--bgcolor",a);const o=Y("div");Z(r,o),Z(n,r),t.push(r)}return t}const oe=200,Ue=800,xe=.1,Re=.3,ce=.5,U=Math.abs,z=Math.random,V=Math.round,Je=Math.max,Y=n=>document.createElement(n),Z=(n,e)=>n.appendChild(e),fe=(n,e)=>Array.from({length:n},(t,a)=>({color:e[a%e.length],degree:360*a/n})),q=(n,e=2)=>V((n+Number.EPSILON)*10**e)/10**e,J=(n,e,t,a,r)=>(n-e)*(r-a)/(t-e)+a,ue=(n,e)=>n+e>360?n+e-360:n+e,je=()=>z()>.5,Ke=6,Qe=n=>n!==1&&je(),$=n=>n===void 0,B=(n,e)=>{if(!$(n)&&Number.isSafeInteger(n)&&n<0)throw new Error(e+" must be a positive integer")},de=({particleCount:n,duration:e,colors:t,particleSize:a,force:r,stageHeight:o,stageWidth:s,particleShape:l})=>{if(B(n,"particleCount"),B(e,"duration"),B(a,"particleSize"),B(r,"force"),B(o,"stageHeight"),B(s,"stageWidth"),!$(l)&&!/^(mix|circles|rectangles)$/i.test(l))throw new Error('particlesShape should be either "mix" or "circles" or "rectangle"');if(!$(t)&&!Array.isArray(t))throw new Error("colors must be an array of strings");if(r>1)throw new Error("force must be within 0 and 1")},Ye=Fe("invalidate_all");function Ze(n){return Ie.apply_action(n)}function $e(n){const e=JSON.parse(n);return e.data&&(e.data=ze(e.data)),e}function he(n){return HTMLElement.prototype.cloneNode.call(n)}function et(n,e=()=>{}){const t=async({action:r,result:o,reset:s=!0,invalidateAll:l=!0})=>{o.type==="success"&&(s&&HTMLFormElement.prototype.reset.call(n),l&&await Ye()),(location.origin+location.pathname===r.origin+r.pathname||o.type==="redirect"||o.type==="error")&&Ze(o)};async function a(r){var c,i,_,C;if(((c=r.submitter)!=null&&c.hasAttribute("formmethod")?r.submitter.formMethod:he(n).method)!=="post")return;r.preventDefault();const s=new URL((i=r.submitter)!=null&&i.hasAttribute("formaction")?r.submitter.formAction:he(n).action),l=new FormData(n),u=(_=r.submitter)==null?void 0:_.getAttribute("name");u&&l.append(u,((C=r.submitter)==null?void 0:C.getAttribute("value"))??"");const b=new AbortController;let h=!1;const m=await e({action:s,cancel:()=>h=!0,controller:b,get data(){return l},formData:l,get form(){return n},formElement:n,submitter:r.submitter})??t;if(h)return;let f;try{const y=await fetch(s,{method:"POST",headers:{accept:"application/json","x-sveltekit-action":"true"},cache:"no-store",body:l,signal:b.signal});f=$e(await y.text()),f.type==="error"&&(f.status=y.status)}catch(y){if((y==null?void 0:y.name)==="AbortError")return;f={type:"error",error:y}}m({action:s,get data(){return l},formData:l,get form(){return n},formElement:n,update:y=>t({action:s,result:f,reset:y==null?void 0:y.reset,invalidateAll:y==null?void 0:y.invalidateAll}),result:f})}return HTMLFormElement.prototype.addEventListener.call(n,"submit",a),{destroy(){HTMLFormElement.prototype.removeEventListener.call(n,"submit",a)}}}const Ge="(prefers-reduced-motion: reduce)",tt=()=>window.matchMedia(Ge).matches,nt=qe(tt(),n=>{{const e=a=>{n(a.matches)},t=window.matchMedia(Ge);return t.addEventListener("change",e),()=>{t.removeEventListener("change",e)}}});const{document:K,window:at}=Be;function me(n,e,t){const a=n.slice();return a[11]=e[t],a}function _e(n,e,t){const a=n.slice();return a[14]=e[t],a}function pe(n,e,t){const a=n.slice();a[11]=e[t];const r=a[11]===a[4];return a[17]=r,a}function ge(n,e,t){var p,m;const a=n.slice();a[20]=e[t];const r=a[17]?a[3]:a[1].guesses[a[11]];a[21]=r;const o=(p=a[1].answers[a[11]])==null?void 0:p[a[20]];a[22]=o;const s=((m=a[21])==null?void 0:m[a[20]])??"";a[23]=s;const l=a[17]&&a[20]===a[21].length;a[24]=l;const u=a[22]==="x";a[25]=u;const b=a[22]==="c";a[26]=b;const h=a[22]==="_";return a[27]=h,a}function lt(n){let e;return{c(){e=N("empty")},l(t){e=D(t,"empty")},m(t,a){T(t,e,a)},d(t){t&&g(e)}}}function st(n){let e;return{c(){e=N("(absent)")},l(t){e=D(t,"(absent)")},m(t,a){T(t,e,a)},d(t){t&&g(e)}}}function rt(n){let e;return{c(){e=N("(present)")},l(t){e=D(t,"(present)")},m(t,a){T(t,e,a)},d(t){t&&g(e)}}}function it(n){let e;return{c(){e=N("(correct)")},l(t){e=D(t,"(correct)")},m(t,a){T(t,e,a)},d(t){t&&g(e)}}}function be(n,e){let t,a=e[23]+"",r,o,s,l,u,b,h;function p(c,i){return c[25]?it:c[26]?rt:c[27]?st:lt}let m=p(e),f=m(e);return{key:n,first:null,c(){t=M("div"),r=N(a),o=P(),s=M("span"),f.c(),l=P(),u=M("input"),this.h()},l(c){t=W(c,"DIV",{class:!0});var i=H(t);r=D(i,a),o=L(i),s=W(i,"SPAN",{class:!0});var _=H(s);f.l(_),_.forEach(g),l=L(i),u=W(i,"INPUT",{name:!0,type:!0}),i.forEach(g),this.h()},h(){v(s,"class","visually-hidden"),v(u,"name","guess"),u.disabled=b=!e[17],v(u,"type","hidden"),u.value=h=e[23],v(t,"class","letter svelte-1pg2j5l"),G(t,"exact",e[25]),G(t,"close",e[26]),G(t,"missing",e[27]),G(t,"selected",e[24]),this.first=t},m(c,i){T(c,t,i),S(t,r),S(t,o),S(t,s),f.m(s,null),S(t,l),S(t,u)},p(c,i){e=c,i&26&&a!==(a=e[23]+"")&&te(r,a),m!==(m=p(e))&&(f.d(1),f=m(e),f&&(f.c(),f.m(s,null))),i&16&&b!==(b=!e[17])&&(u.disabled=b),i&26&&h!==(h=e[23])&&(u.value=h),i&2&&G(t,"exact",e[25]),i&2&&G(t,"close",e[26]),i&2&&G(t,"missing",e[27]),i&26&&G(t,"selected",e[24])},d(c){c&&g(t),f.d()}}}function ye(n,e){let t,a,r=e[11]+1+"",o,s,l,u=[],b=new Map,h,p=I(Array.from(Array(5).keys()));const m=f=>f[20];for(let f=0;fd[11];for(let d=0;d=6?ct:ot}let O=F(n),k=O(n),E=n[5]&&Ee(n);return{c(){e=M("meta"),t=P(),a=M("h1"),a.textContent=r,o=P(),s=M("form"),l=M("a"),l.textContent=u,b=P(),h=M("div");for(let d=0;d({update:n})=>{n({reset:!1})};function dt(n,e,t){let a,r,o,s,l;Ne(n,nt,c=>t(8,l=c));let{data:u}=e,{form:b}=e,h,p;function m(c){const i=c.target.getAttribute("data-key");i==="backspace"?(t(3,o=o.slice(0,-1)),b!=null&&b.badGuess&&t(0,b.badGuess=!1,b)):o.length<5&&t(3,o+=i)}function f(c){var i;c.metaKey||c.key==="Enter"&&!s||(i=document.querySelector(`[data-key="${c.key}" i]`))==null||i.dispatchEvent(new MouseEvent("click",{cancelable:!0}))}return n.$$set=c=>{"data"in c&&t(1,u=c.data),"form"in c&&t(0,b=c.form)},n.$$.update=()=>{n.$$.dirty&2&&t(5,a=u.answers.at(-1)==="xxxxx"),n.$$.dirty&34&&t(4,r=a?-1:u.answers.length),n.$$.dirty&18&&t(3,o=u.guesses[r]||""),n.$$.dirty&8&&t(7,s=o.length===5),n.$$.dirty&6&&(t(2,h={}),t(6,p={}),u.answers.forEach((c,i)=>{const _=u.guesses[i];for(let C=0;C<5;C+=1){const y=_[C];c[C]==="x"?(t(2,h[y]="exact",h),t(6,p[y]="correct",p)):h[y]||(t(2,h[y]=c[C]==="c"?"close":"missing",h),t(6,p[y]=c[C]==="c"?"present":"absent",p))}}))},[b,u,h,o,r,a,p,s,l,m,f]}class bt extends Le{constructor(e){super(),Oe(this,e,dt,ft,He,{data:1,form:0})}}export{bt as component}; diff --git a/Svelte-Build/src/client/_app/immutable/nodes/5.b8aa3391.js b/Svelte-Build/src/client/_app/immutable/nodes/5.b8aa3391.js new file mode 100644 index 0000000..e7bd98b --- /dev/null +++ b/Svelte-Build/src/client/_app/immutable/nodes/5.b8aa3391.js @@ -0,0 +1,7 @@ +import{d as h}from"../chunks/environment.9aa685ef.js";import{s as m,n as o}from"../chunks/scheduler.cbf234a0.js";import{S as x,i as g,g as i,s as u,C as _,h as p,f as l,c as q,y,k as r,A as f,a as d}from"../chunks/index.200976ee.js";const w=h,S=!0,M=Object.freeze(Object.defineProperty({__proto__:null,csr:w,prerender:S},Symbol.toStringTag,{value:"Module"}));function b(v){let e,n,s,c=`

How to play Sverdle

Sverdle is a clone of Wordle, the + word guessing game. To play, enter a five-letter English word. For example:

r i t z y

The y is in the right place. r and + t + are the right letters, but in the wrong place. The other letters are wrong, and can be discarded. + Let's make another guess:

p a r t y

This time we guessed right! You have six guesses to get the word.

Unlike the original Wordle, Sverdle runs on the server instead of in the browser, making it + impossible to cheat. It uses <form> and cookies to submit data, meaning you can + even play with JavaScript disabled!

`;return{c(){e=i("meta"),n=u(),s=i("div"),s.innerHTML=c,this.h()},l(t){const a=_("svelte-1fqqyy5",document.head);e=p(a,"META",{name:!0,content:!0}),a.forEach(l),n=q(t),s=p(t,"DIV",{class:!0,"data-svelte-h":!0}),y(s)!=="svelte-rdttnt"&&(s.innerHTML=c),this.h()},h(){document.title="How to play Sverdle",r(e,"name","description"),r(e,"content","How to play Sverdle"),r(s,"class","text-column")},m(t,a){f(document.head,e),d(t,n,a),d(t,s,a)},p:o,i:o,o,d(t){t&&(l(n),l(s)),l(e)}}}class C extends x{constructor(e){super(),g(this,e,null,b,m,{})}}export{C as component,M as universal}; diff --git a/Svelte-Build/src/client/_app/version.json b/Svelte-Build/src/client/_app/version.json new file mode 100644 index 0000000..fe81949 --- /dev/null +++ b/Svelte-Build/src/client/_app/version.json @@ -0,0 +1 @@ +{"version":"1700239351764"} \ No newline at end of file diff --git a/Svelte-Build/src/client/favicon.png b/Svelte-Build/src/client/favicon.png new file mode 100644 index 0000000..825b9e6 Binary files /dev/null and b/Svelte-Build/src/client/favicon.png differ diff --git a/Svelte-Build/src/client/robots.txt b/Svelte-Build/src/client/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/Svelte-Build/src/client/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/Svelte-Build/src/env.js b/Svelte-Build/src/env.js new file mode 100644 index 0000000..74787fe --- /dev/null +++ b/Svelte-Build/src/env.js @@ -0,0 +1,37 @@ +/* global "" */ + +const expected = new Set([ + 'SOCKET_PATH', + 'HOST', + 'PORT', + 'ORIGIN', + 'XFF_DEPTH', + 'ADDRESS_HEADER', + 'PROTOCOL_HEADER', + 'HOST_HEADER', + 'BODY_SIZE_LIMIT' +]); + +if ("") { + for (const name in process.env) { + if (name.startsWith("")) { + const unprefixed = name.slice("".length); + if (!expected.has(unprefixed)) { + throw new Error( + `You should change envPrefix (${""}) to avoid conflicts with existing environment variables — unexpectedly saw ${name}` + ); + } + } + } +} + +/** + * @param {string} name + * @param {any} fallback + */ +function env(name, fallback) { + const prefixed = "" + name; + return prefixed in process.env ? process.env[prefixed] : fallback; +} + +export { env }; diff --git a/Svelte-Build/src/handler.js b/Svelte-Build/src/handler.js new file mode 100644 index 0000000..877183d --- /dev/null +++ b/Svelte-Build/src/handler.js @@ -0,0 +1,1307 @@ +import './shims.js'; +import fs$1 from 'node:fs'; +import path from 'node:path'; +import * as fs from 'fs'; +import { readdirSync, statSync } from 'fs'; +import { resolve, join, normalize } from 'path'; +import * as qs from 'querystring'; +import { fileURLToPath } from 'node:url'; +import { Server } from './server/index.js'; +import { manifest, prerendered } from './server/manifest.js'; +import { env } from './env.js'; + +function totalist(dir, callback, pre='') { + dir = resolve('.', dir); + let arr = readdirSync(dir); + let i=0, abs, stats; + for (; i < arr.length; i++) { + abs = join(dir, arr[i]); + stats = statSync(abs); + stats.isDirectory() + ? totalist(abs, callback, join(pre, arr[i])) + : callback(join(pre, arr[i]), abs, stats); + } +} + +/** + * @typedef ParsedURL + * @type {import('.').ParsedURL} + */ + +/** + * @typedef Request + * @property {string} url + * @property {ParsedURL} _parsedUrl + */ + +/** + * @param {Request} req + * @returns {ParsedURL|void} + */ +function parse$1(req) { + let raw = req.url; + if (raw == null) return; + + let prev = req._parsedUrl; + if (prev && prev.raw === raw) return prev; + + let pathname=raw, search='', query; + + if (raw.length > 1) { + let idx = raw.indexOf('?', 1); + + if (idx !== -1) { + search = raw.substring(idx); + pathname = raw.substring(0, idx); + if (search.length > 1) { + query = qs.parse(search.substring(1)); + } + } + } + + return req._parsedUrl = { pathname, search, query, raw }; +} + +const mimes = { + "ez": "application/andrew-inset", + "aw": "application/applixware", + "atom": "application/atom+xml", + "atomcat": "application/atomcat+xml", + "atomdeleted": "application/atomdeleted+xml", + "atomsvc": "application/atomsvc+xml", + "dwd": "application/atsc-dwd+xml", + "held": "application/atsc-held+xml", + "rsat": "application/atsc-rsat+xml", + "bdoc": "application/bdoc", + "xcs": "application/calendar+xml", + "ccxml": "application/ccxml+xml", + "cdfx": "application/cdfx+xml", + "cdmia": "application/cdmi-capability", + "cdmic": "application/cdmi-container", + "cdmid": "application/cdmi-domain", + "cdmio": "application/cdmi-object", + "cdmiq": "application/cdmi-queue", + "cu": "application/cu-seeme", + "mpd": "application/dash+xml", + "davmount": "application/davmount+xml", + "dbk": "application/docbook+xml", + "dssc": "application/dssc+der", + "xdssc": "application/dssc+xml", + "es": "application/ecmascript", + "ecma": "application/ecmascript", + "emma": "application/emma+xml", + "emotionml": "application/emotionml+xml", + "epub": "application/epub+zip", + "exi": "application/exi", + "fdt": "application/fdt+xml", + "pfr": "application/font-tdpfr", + "geojson": "application/geo+json", + "gml": "application/gml+xml", + "gpx": "application/gpx+xml", + "gxf": "application/gxf", + "gz": "application/gzip", + "hjson": "application/hjson", + "stk": "application/hyperstudio", + "ink": "application/inkml+xml", + "inkml": "application/inkml+xml", + "ipfix": "application/ipfix", + "its": "application/its+xml", + "jar": "application/java-archive", + "war": "application/java-archive", + "ear": "application/java-archive", + "ser": "application/java-serialized-object", + "class": "application/java-vm", + "js": "application/javascript", + "mjs": "application/javascript", + "json": "application/json", + "map": "application/json", + "json5": "application/json5", + "jsonml": "application/jsonml+json", + "jsonld": "application/ld+json", + "lgr": "application/lgr+xml", + "lostxml": "application/lost+xml", + "hqx": "application/mac-binhex40", + "cpt": "application/mac-compactpro", + "mads": "application/mads+xml", + "webmanifest": "application/manifest+json", + "mrc": "application/marc", + "mrcx": "application/marcxml+xml", + "ma": "application/mathematica", + "nb": "application/mathematica", + "mb": "application/mathematica", + "mathml": "application/mathml+xml", + "mbox": "application/mbox", + "mscml": "application/mediaservercontrol+xml", + "metalink": "application/metalink+xml", + "meta4": "application/metalink4+xml", + "mets": "application/mets+xml", + "maei": "application/mmt-aei+xml", + "musd": "application/mmt-usd+xml", + "mods": "application/mods+xml", + "m21": "application/mp21", + "mp21": "application/mp21", + "mp4s": "application/mp4", + "m4p": "application/mp4", + "doc": "application/msword", + "dot": "application/msword", + "mxf": "application/mxf", + "nq": "application/n-quads", + "nt": "application/n-triples", + "cjs": "application/node", + "bin": "application/octet-stream", + "dms": "application/octet-stream", + "lrf": "application/octet-stream", + "mar": "application/octet-stream", + "so": "application/octet-stream", + "dist": "application/octet-stream", + "distz": "application/octet-stream", + "pkg": "application/octet-stream", + "bpk": "application/octet-stream", + "dump": "application/octet-stream", + "elc": "application/octet-stream", + "deploy": "application/octet-stream", + "exe": "application/octet-stream", + "dll": "application/octet-stream", + "deb": "application/octet-stream", + "dmg": "application/octet-stream", + "iso": "application/octet-stream", + "img": "application/octet-stream", + "msi": "application/octet-stream", + "msp": "application/octet-stream", + "msm": "application/octet-stream", + "buffer": "application/octet-stream", + "oda": "application/oda", + "opf": "application/oebps-package+xml", + "ogx": "application/ogg", + "omdoc": "application/omdoc+xml", + "onetoc": "application/onenote", + "onetoc2": "application/onenote", + "onetmp": "application/onenote", + "onepkg": "application/onenote", + "oxps": "application/oxps", + "relo": "application/p2p-overlay+xml", + "xer": "application/patch-ops-error+xml", + "pdf": "application/pdf", + "pgp": "application/pgp-encrypted", + "asc": "application/pgp-signature", + "sig": "application/pgp-signature", + "prf": "application/pics-rules", + "p10": "application/pkcs10", + "p7m": "application/pkcs7-mime", + "p7c": "application/pkcs7-mime", + "p7s": "application/pkcs7-signature", + "p8": "application/pkcs8", + "ac": "application/pkix-attr-cert", + "cer": "application/pkix-cert", + "crl": "application/pkix-crl", + "pkipath": "application/pkix-pkipath", + "pki": "application/pkixcmp", + "pls": "application/pls+xml", + "ai": "application/postscript", + "eps": "application/postscript", + "ps": "application/postscript", + "provx": "application/provenance+xml", + "cww": "application/prs.cww", + "pskcxml": "application/pskc+xml", + "raml": "application/raml+yaml", + "rdf": "application/rdf+xml", + "owl": "application/rdf+xml", + "rif": "application/reginfo+xml", + "rnc": "application/relax-ng-compact-syntax", + "rl": "application/resource-lists+xml", + "rld": "application/resource-lists-diff+xml", + "rs": "application/rls-services+xml", + "rapd": "application/route-apd+xml", + "sls": "application/route-s-tsid+xml", + "rusd": "application/route-usd+xml", + "gbr": "application/rpki-ghostbusters", + "mft": "application/rpki-manifest", + "roa": "application/rpki-roa", + "rsd": "application/rsd+xml", + "rss": "application/rss+xml", + "rtf": "application/rtf", + "sbml": "application/sbml+xml", + "scq": "application/scvp-cv-request", + "scs": "application/scvp-cv-response", + "spq": "application/scvp-vp-request", + "spp": "application/scvp-vp-response", + "sdp": "application/sdp", + "senmlx": "application/senml+xml", + "sensmlx": "application/sensml+xml", + "setpay": "application/set-payment-initiation", + "setreg": "application/set-registration-initiation", + "shf": "application/shf+xml", + "siv": "application/sieve", + "sieve": "application/sieve", + "smi": "application/smil+xml", + "smil": "application/smil+xml", + "rq": "application/sparql-query", + "srx": "application/sparql-results+xml", + "gram": "application/srgs", + "grxml": "application/srgs+xml", + "sru": "application/sru+xml", + "ssdl": "application/ssdl+xml", + "ssml": "application/ssml+xml", + "swidtag": "application/swid+xml", + "tei": "application/tei+xml", + "teicorpus": "application/tei+xml", + "tfi": "application/thraud+xml", + "tsd": "application/timestamped-data", + "toml": "application/toml", + "trig": "application/trig", + "ttml": "application/ttml+xml", + "ubj": "application/ubjson", + "rsheet": "application/urc-ressheet+xml", + "td": "application/urc-targetdesc+xml", + "vxml": "application/voicexml+xml", + "wasm": "application/wasm", + "wgt": "application/widget", + "hlp": "application/winhlp", + "wsdl": "application/wsdl+xml", + "wspolicy": "application/wspolicy+xml", + "xaml": "application/xaml+xml", + "xav": "application/xcap-att+xml", + "xca": "application/xcap-caps+xml", + "xdf": "application/xcap-diff+xml", + "xel": "application/xcap-el+xml", + "xns": "application/xcap-ns+xml", + "xenc": "application/xenc+xml", + "xhtml": "application/xhtml+xml", + "xht": "application/xhtml+xml", + "xlf": "application/xliff+xml", + "xml": "application/xml", + "xsl": "application/xml", + "xsd": "application/xml", + "rng": "application/xml", + "dtd": "application/xml-dtd", + "xop": "application/xop+xml", + "xpl": "application/xproc+xml", + "xslt": "application/xml", + "xspf": "application/xspf+xml", + "mxml": "application/xv+xml", + "xhvml": "application/xv+xml", + "xvml": "application/xv+xml", + "xvm": "application/xv+xml", + "yang": "application/yang", + "yin": "application/yin+xml", + "zip": "application/zip", + "3gpp": "video/3gpp", + "adp": "audio/adpcm", + "amr": "audio/amr", + "au": "audio/basic", + "snd": "audio/basic", + "mid": "audio/midi", + "midi": "audio/midi", + "kar": "audio/midi", + "rmi": "audio/midi", + "mxmf": "audio/mobile-xmf", + "mp3": "audio/mpeg", + "m4a": "audio/mp4", + "mp4a": "audio/mp4", + "mpga": "audio/mpeg", + "mp2": "audio/mpeg", + "mp2a": "audio/mpeg", + "m2a": "audio/mpeg", + "m3a": "audio/mpeg", + "oga": "audio/ogg", + "ogg": "audio/ogg", + "spx": "audio/ogg", + "opus": "audio/ogg", + "s3m": "audio/s3m", + "sil": "audio/silk", + "wav": "audio/wav", + "weba": "audio/webm", + "xm": "audio/xm", + "ttc": "font/collection", + "otf": "font/otf", + "ttf": "font/ttf", + "woff": "font/woff", + "woff2": "font/woff2", + "exr": "image/aces", + "apng": "image/apng", + "avif": "image/avif", + "bmp": "image/bmp", + "cgm": "image/cgm", + "drle": "image/dicom-rle", + "emf": "image/emf", + "fits": "image/fits", + "g3": "image/g3fax", + "gif": "image/gif", + "heic": "image/heic", + "heics": "image/heic-sequence", + "heif": "image/heif", + "heifs": "image/heif-sequence", + "hej2": "image/hej2k", + "hsj2": "image/hsj2", + "ief": "image/ief", + "jls": "image/jls", + "jp2": "image/jp2", + "jpg2": "image/jp2", + "jpeg": "image/jpeg", + "jpg": "image/jpeg", + "jpe": "image/jpeg", + "jph": "image/jph", + "jhc": "image/jphc", + "jpm": "image/jpm", + "jpx": "image/jpx", + "jpf": "image/jpx", + "jxr": "image/jxr", + "jxra": "image/jxra", + "jxrs": "image/jxrs", + "jxs": "image/jxs", + "jxsc": "image/jxsc", + "jxsi": "image/jxsi", + "jxss": "image/jxss", + "ktx": "image/ktx", + "ktx2": "image/ktx2", + "png": "image/png", + "btif": "image/prs.btif", + "pti": "image/prs.pti", + "sgi": "image/sgi", + "svg": "image/svg+xml", + "svgz": "image/svg+xml", + "t38": "image/t38", + "tif": "image/tiff", + "tiff": "image/tiff", + "tfx": "image/tiff-fx", + "webp": "image/webp", + "wmf": "image/wmf", + "disposition-notification": "message/disposition-notification", + "u8msg": "message/global", + "u8dsn": "message/global-delivery-status", + "u8mdn": "message/global-disposition-notification", + "u8hdr": "message/global-headers", + "eml": "message/rfc822", + "mime": "message/rfc822", + "3mf": "model/3mf", + "gltf": "model/gltf+json", + "glb": "model/gltf-binary", + "igs": "model/iges", + "iges": "model/iges", + "msh": "model/mesh", + "mesh": "model/mesh", + "silo": "model/mesh", + "mtl": "model/mtl", + "obj": "model/obj", + "stpz": "model/step+zip", + "stpxz": "model/step-xml+zip", + "stl": "model/stl", + "wrl": "model/vrml", + "vrml": "model/vrml", + "x3db": "model/x3d+fastinfoset", + "x3dbz": "model/x3d+binary", + "x3dv": "model/x3d-vrml", + "x3dvz": "model/x3d+vrml", + "x3d": "model/x3d+xml", + "x3dz": "model/x3d+xml", + "appcache": "text/cache-manifest", + "manifest": "text/cache-manifest", + "ics": "text/calendar", + "ifb": "text/calendar", + "coffee": "text/coffeescript", + "litcoffee": "text/coffeescript", + "css": "text/css", + "csv": "text/csv", + "html": "text/html", + "htm": "text/html", + "shtml": "text/html", + "jade": "text/jade", + "jsx": "text/jsx", + "less": "text/less", + "markdown": "text/markdown", + "md": "text/markdown", + "mml": "text/mathml", + "mdx": "text/mdx", + "n3": "text/n3", + "txt": "text/plain", + "text": "text/plain", + "conf": "text/plain", + "def": "text/plain", + "list": "text/plain", + "log": "text/plain", + "in": "text/plain", + "ini": "text/plain", + "dsc": "text/prs.lines.tag", + "rtx": "text/richtext", + "sgml": "text/sgml", + "sgm": "text/sgml", + "shex": "text/shex", + "slim": "text/slim", + "slm": "text/slim", + "spdx": "text/spdx", + "stylus": "text/stylus", + "styl": "text/stylus", + "tsv": "text/tab-separated-values", + "t": "text/troff", + "tr": "text/troff", + "roff": "text/troff", + "man": "text/troff", + "me": "text/troff", + "ms": "text/troff", + "ttl": "text/turtle", + "uri": "text/uri-list", + "uris": "text/uri-list", + "urls": "text/uri-list", + "vcard": "text/vcard", + "vtt": "text/vtt", + "yaml": "text/yaml", + "yml": "text/yaml", + "3gp": "video/3gpp", + "3g2": "video/3gpp2", + "h261": "video/h261", + "h263": "video/h263", + "h264": "video/h264", + "m4s": "video/iso.segment", + "jpgv": "video/jpeg", + "jpgm": "image/jpm", + "mj2": "video/mj2", + "mjp2": "video/mj2", + "ts": "video/mp2t", + "mp4": "video/mp4", + "mp4v": "video/mp4", + "mpg4": "video/mp4", + "mpeg": "video/mpeg", + "mpg": "video/mpeg", + "mpe": "video/mpeg", + "m1v": "video/mpeg", + "m2v": "video/mpeg", + "ogv": "video/ogg", + "qt": "video/quicktime", + "mov": "video/quicktime", + "webm": "video/webm" +}; + +function lookup(extn) { + let tmp = ('' + extn).trim().toLowerCase(); + let idx = tmp.lastIndexOf('.'); + return mimes[!~idx ? tmp : tmp.substring(++idx)]; +} + +const noop = () => {}; + +function isMatch(uri, arr) { + for (let i=0; i < arr.length; i++) { + if (arr[i].test(uri)) return true; + } +} + +function toAssume(uri, extns) { + let i=0, x, len=uri.length - 1; + if (uri.charCodeAt(len) === 47) { + uri = uri.substring(0, len); + } + + let arr=[], tmp=`${uri}/index`; + for (; i < extns.length; i++) { + x = extns[i] ? `.${extns[i]}` : ''; + if (uri) arr.push(uri + x); + arr.push(tmp + x); + } + + return arr; +} + +function viaCache(cache, uri, extns) { + let i=0, data, arr=toAssume(uri, extns); + for (; i < arr.length; i++) { + if (data = cache[arr[i]]) return data; + } +} + +function viaLocal(dir, isEtag, uri, extns) { + let i=0, arr=toAssume(uri, extns); + let abs, stats, name, headers; + for (; i < arr.length; i++) { + abs = normalize(join(dir, name=arr[i])); + if (abs.startsWith(dir) && fs.existsSync(abs)) { + stats = fs.statSync(abs); + if (stats.isDirectory()) continue; + headers = toHeaders(name, stats, isEtag); + headers['Cache-Control'] = isEtag ? 'no-cache' : 'no-store'; + return { abs, stats, headers }; + } + } +} + +function is404(req, res) { + return (res.statusCode=404,res.end()); +} + +function send(req, res, file, stats, headers) { + let code=200, tmp, opts={}; + headers = { ...headers }; + + for (let key in headers) { + tmp = res.getHeader(key); + if (tmp) headers[key] = tmp; + } + + if (tmp = res.getHeader('content-type')) { + headers['Content-Type'] = tmp; + } + + if (req.headers.range) { + code = 206; + let [x, y] = req.headers.range.replace('bytes=', '').split('-'); + let end = opts.end = parseInt(y, 10) || stats.size - 1; + let start = opts.start = parseInt(x, 10) || 0; + + if (end >= stats.size) { + end = stats.size - 1; + } + + if (start >= stats.size) { + res.setHeader('Content-Range', `bytes */${stats.size}`); + res.statusCode = 416; + return res.end(); + } + + headers['Content-Range'] = `bytes ${start}-${end}/${stats.size}`; + headers['Content-Length'] = (end - start + 1); + headers['Accept-Ranges'] = 'bytes'; + } + + res.writeHead(code, headers); + fs.createReadStream(file, opts).pipe(res); +} + +const ENCODING = { + '.br': 'br', + '.gz': 'gzip', +}; + +function toHeaders(name, stats, isEtag) { + let enc = ENCODING[name.slice(-3)]; + + let ctype = lookup(name.slice(0, enc && -3)) || ''; + if (ctype === 'text/html') ctype += ';charset=utf-8'; + + let headers = { + 'Content-Length': stats.size, + 'Content-Type': ctype, + 'Last-Modified': stats.mtime.toUTCString(), + }; + + if (enc) headers['Content-Encoding'] = enc; + if (isEtag) headers['ETag'] = `W/"${stats.size}-${stats.mtime.getTime()}"`; + + return headers; +} + +function sirv (dir, opts={}) { + dir = resolve(dir || '.'); + + let isNotFound = opts.onNoMatch || is404; + let setHeaders = opts.setHeaders || noop; + + let extensions = opts.extensions || ['html', 'htm']; + let gzips = opts.gzip && extensions.map(x => `${x}.gz`).concat('gz'); + let brots = opts.brotli && extensions.map(x => `${x}.br`).concat('br'); + + const FILES = {}; + + let fallback = '/'; + let isEtag = !!opts.etag; + let isSPA = !!opts.single; + if (typeof opts.single === 'string') { + let idx = opts.single.lastIndexOf('.'); + fallback += !!~idx ? opts.single.substring(0, idx) : opts.single; + } + + let ignores = []; + if (opts.ignores !== false) { + ignores.push(/[/]([A-Za-z\s\d~$._-]+\.\w+){1,}$/); // any extn + if (opts.dotfiles) ignores.push(/\/\.\w/); + else ignores.push(/\/\.well-known/); + [].concat(opts.ignores || []).forEach(x => { + ignores.push(new RegExp(x, 'i')); + }); + } + + let cc = opts.maxAge != null && `public,max-age=${opts.maxAge}`; + if (cc && opts.immutable) cc += ',immutable'; + else if (cc && opts.maxAge === 0) cc += ',must-revalidate'; + + if (!opts.dev) { + totalist(dir, (name, abs, stats) => { + if (/\.well-known[\\+\/]/.test(name)) ; // keep + else if (!opts.dotfiles && /(^\.|[\\+|\/+]\.)/.test(name)) return; + + let headers = toHeaders(name, stats, isEtag); + if (cc) headers['Cache-Control'] = cc; + + FILES['/' + name.normalize().replace(/\\+/g, '/')] = { abs, stats, headers }; + }); + } + + let lookup = opts.dev ? viaLocal.bind(0, dir, isEtag) : viaCache.bind(0, FILES); + + return function (req, res, next) { + let extns = ['']; + let pathname = parse$1(req).pathname; + let val = req.headers['accept-encoding'] || ''; + if (gzips && val.includes('gzip')) extns.unshift(...gzips); + if (brots && /(br|brotli)/i.test(val)) extns.unshift(...brots); + extns.push(...extensions); // [...br, ...gz, orig, ...exts] + + if (pathname.indexOf('%') !== -1) { + try { pathname = decodeURI(pathname); } + catch (err) { /* malform uri */ } + } + + let data = lookup(pathname, extns) || isSPA && !isMatch(pathname, ignores) && lookup(fallback, extns); + if (!data) return next ? next() : isNotFound(req, res); + + if (isEtag && req.headers['if-none-match'] === data.headers['ETag']) { + res.writeHead(304); + return res.end(); + } + + if (gzips || brots) { + res.setHeader('Vary', 'Accept-Encoding'); + } + + setHeaders(res, pathname, data.stats); + send(req, res, data.abs, data.stats, data.headers); + }; +} + +var setCookie = {exports: {}}; + +var defaultParseOptions = { + decodeValues: true, + map: false, + silent: false, +}; + +function isNonEmptyString(str) { + return typeof str === "string" && !!str.trim(); +} + +function parseString(setCookieValue, options) { + var parts = setCookieValue.split(";").filter(isNonEmptyString); + + var nameValuePairStr = parts.shift(); + var parsed = parseNameValuePair(nameValuePairStr); + var name = parsed.name; + var value = parsed.value; + + options = options + ? Object.assign({}, defaultParseOptions, options) + : defaultParseOptions; + + try { + value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value + } catch (e) { + console.error( + "set-cookie-parser encountered an error while decoding a cookie with value '" + + value + + "'. Set options.decodeValues to false to disable this feature.", + e + ); + } + + var cookie = { + name: name, + value: value, + }; + + parts.forEach(function (part) { + var sides = part.split("="); + var key = sides.shift().trimLeft().toLowerCase(); + var value = sides.join("="); + if (key === "expires") { + cookie.expires = new Date(value); + } else if (key === "max-age") { + cookie.maxAge = parseInt(value, 10); + } else if (key === "secure") { + cookie.secure = true; + } else if (key === "httponly") { + cookie.httpOnly = true; + } else if (key === "samesite") { + cookie.sameSite = value; + } else { + cookie[key] = value; + } + }); + + return cookie; +} + +function parseNameValuePair(nameValuePairStr) { + // Parses name-value-pair according to rfc6265bis draft + + var name = ""; + var value = ""; + var nameValueArr = nameValuePairStr.split("="); + if (nameValueArr.length > 1) { + name = nameValueArr.shift(); + value = nameValueArr.join("="); // everything after the first =, joined by a "=" if there was more than one part + } else { + value = nameValuePairStr; + } + + return { name: name, value: value }; +} + +function parse(input, options) { + options = options + ? Object.assign({}, defaultParseOptions, options) + : defaultParseOptions; + + if (!input) { + if (!options.map) { + return []; + } else { + return {}; + } + } + + if (input.headers) { + if (typeof input.headers.getSetCookie === "function") { + // for fetch responses - they combine headers of the same type in the headers array, + // but getSetCookie returns an uncombined array + input = input.headers.getSetCookie(); + } else if (input.headers["set-cookie"]) { + // fast-path for node.js (which automatically normalizes header names to lower-case + input = input.headers["set-cookie"]; + } else { + // slow-path for other environments - see #25 + var sch = + input.headers[ + Object.keys(input.headers).find(function (key) { + return key.toLowerCase() === "set-cookie"; + }) + ]; + // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36 + if (!sch && input.headers.cookie && !options.silent) { + console.warn( + "Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning." + ); + } + input = sch; + } + } + if (!Array.isArray(input)) { + input = [input]; + } + + options = options + ? Object.assign({}, defaultParseOptions, options) + : defaultParseOptions; + + if (!options.map) { + return input.filter(isNonEmptyString).map(function (str) { + return parseString(str, options); + }); + } else { + var cookies = {}; + return input.filter(isNonEmptyString).reduce(function (cookies, str) { + var cookie = parseString(str, options); + cookies[cookie.name] = cookie; + return cookies; + }, cookies); + } +} + +/* + Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas + that are within a single set-cookie field-value, such as in the Expires portion. + + This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2 + Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128 + React Native's fetch does this for *every* header, including set-cookie. + + Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25 + Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation +*/ +function splitCookiesString(cookiesString) { + if (Array.isArray(cookiesString)) { + return cookiesString; + } + if (typeof cookiesString !== "string") { + return []; + } + + var cookiesStrings = []; + var pos = 0; + var start; + var ch; + var lastComma; + var nextStart; + var cookiesSeparatorFound; + + function skipWhitespace() { + while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) { + pos += 1; + } + return pos < cookiesString.length; + } + + function notSpecialChar() { + ch = cookiesString.charAt(pos); + + return ch !== "=" && ch !== ";" && ch !== ","; + } + + while (pos < cookiesString.length) { + start = pos; + cookiesSeparatorFound = false; + + while (skipWhitespace()) { + ch = cookiesString.charAt(pos); + if (ch === ",") { + // ',' is a cookie separator if we have later first '=', not ';' or ',' + lastComma = pos; + pos += 1; + + skipWhitespace(); + nextStart = pos; + + while (pos < cookiesString.length && notSpecialChar()) { + pos += 1; + } + + // currently special character + if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") { + // we found cookies separator + cookiesSeparatorFound = true; + // pos is inside the next cookie, so back up and return it. + pos = nextStart; + cookiesStrings.push(cookiesString.substring(start, lastComma)); + start = pos; + } else { + // in param ',' or param separator ';', + // we continue from that comma + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); + } + } + + return cookiesStrings; +} + +setCookie.exports = parse; +setCookie.exports.parse = parse; +setCookie.exports.parseString = parseString; +var splitCookiesString_1 = setCookie.exports.splitCookiesString = splitCookiesString; + +class HttpError { + /** + * @param {number} status + * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body + */ + constructor(status, body) { + this.status = status; + if (typeof body === 'string') { + this.body = { message: body }; + } else if (body) { + this.body = body; + } else { + this.body = { message: `Error: ${status}` }; + } + } + + toString() { + return JSON.stringify(this.body); + } +} + +/** + * @overload + * @param {number} status + * @param {App.Error} body + * @return {HttpError} + */ + +/** + * @overload + * @param {number} status + * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} [body] + * @return {HttpError} + */ + +/** + * Creates an `HttpError` object with an HTTP status code and an optional message. + * This object, if thrown during request handling, will cause SvelteKit to + * return an error response without invoking `handleError`. + * Make sure you're not catching the thrown error, which would prevent SvelteKit from handling it. + * @param {number} status The [HTTP status code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#client_error_responses). Must be in the range 400-599. + * @param {{ message: string } extends App.Error ? App.Error | string | undefined : never} body An object that conforms to the App.Error type. If a string is passed, it will be used as the message property. + */ +function error(status, body) { + if ((isNaN(status) || status < 400 || status > 599)) { + throw new Error(`HTTP error status codes must be between 400 and 599 — ${status} is invalid`); + } + + return new HttpError(status, body); +} + +new TextEncoder(); + +/** + * @param {import('http').IncomingMessage} req + * @param {number} [body_size_limit] + */ +function get_raw_body(req, body_size_limit) { + const h = req.headers; + + if (!h['content-type']) { + return null; + } + + const content_length = Number(h['content-length']); + + // check if no request body + if ( + (req.httpVersionMajor === 1 && isNaN(content_length) && h['transfer-encoding'] == null) || + content_length === 0 + ) { + return null; + } + + let length = content_length; + + if (body_size_limit) { + if (!length) { + length = body_size_limit; + } else if (length > body_size_limit) { + throw error( + 413, + `Received content-length of ${length}, but only accept up to ${body_size_limit} bytes.` + ); + } + } + + if (req.destroyed) { + const readable = new ReadableStream(); + readable.cancel(); + return readable; + } + + let size = 0; + let cancelled = false; + + return new ReadableStream({ + start(controller) { + req.on('error', (error) => { + cancelled = true; + controller.error(error); + }); + + req.on('end', () => { + if (cancelled) return; + controller.close(); + }); + + req.on('data', (chunk) => { + if (cancelled) return; + + size += chunk.length; + if (size > length) { + cancelled = true; + controller.error( + error( + 413, + `request body size exceeded ${ + content_length ? "'content-length'" : 'BODY_SIZE_LIMIT' + } of ${length}` + ) + ); + return; + } + + controller.enqueue(chunk); + + if (controller.desiredSize === null || controller.desiredSize <= 0) { + req.pause(); + } + }); + }, + + pull() { + req.resume(); + }, + + cancel(reason) { + cancelled = true; + req.destroy(reason); + } + }); +} + +/** + * @param {{ + * request: import('http').IncomingMessage; + * base: string; + * bodySizeLimit?: number; + * }} options + * @returns {Promise} + */ +async function getRequest({ request, base, bodySizeLimit }) { + return new Request(base + request.url, { + // @ts-expect-error + duplex: 'half', + method: request.method, + headers: /** @type {Record} */ (request.headers), + body: get_raw_body(request, bodySizeLimit) + }); +} + +/** + * @param {import('http').ServerResponse} res + * @param {Response} response + * @returns {Promise} + */ +async function setResponse(res, response) { + for (const [key, value] of response.headers) { + try { + res.setHeader( + key, + key === 'set-cookie' + ? splitCookiesString_1( + // This is absurd but necessary, TODO: investigate why + /** @type {string}*/ (response.headers.get(key)) + ) + : value + ); + } catch (error) { + res.getHeaderNames().forEach((name) => res.removeHeader(name)); + res.writeHead(500).end(String(error)); + return; + } + } + + res.writeHead(response.status); + + if (!response.body) { + res.end(); + return; + } + + if (response.body.locked) { + res.end( + 'Fatal error: Response body is locked. ' + + "This can happen when the response was already read (for example through 'response.json()' or 'response.text()')." + ); + return; + } + + const reader = response.body.getReader(); + + if (res.destroyed) { + reader.cancel(); + return; + } + + const cancel = (/** @type {Error|undefined} */ error) => { + res.off('close', cancel); + res.off('error', cancel); + + // If the reader has already been interrupted with an error earlier, + // then it will appear here, it is useless, but it needs to be catch. + reader.cancel(error).catch(() => {}); + if (error) res.destroy(error); + }; + + res.on('close', cancel); + res.on('error', cancel); + + next(); + async function next() { + try { + for (;;) { + const { done, value } = await reader.read(); + + if (done) break; + + if (!res.write(value)) { + res.once('drain', next); + return; + } + } + res.end(); + } catch (error) { + cancel(error instanceof Error ? error : new Error(String(error))); + } + } +} + +/* global "" */ + +const server = new Server(manifest); +await server.init({ env: process.env }); +const origin = env('ORIGIN', undefined); +const xff_depth = parseInt(env('XFF_DEPTH', '1')); +const address_header = env('ADDRESS_HEADER', '').toLowerCase(); +const protocol_header = env('PROTOCOL_HEADER', '').toLowerCase(); +const host_header = env('HOST_HEADER', 'host').toLowerCase(); +const body_size_limit = parseInt(env('BODY_SIZE_LIMIT', '524288')); + +const dir = path.dirname(fileURLToPath(import.meta.url)); + +/** + * @param {string} path + * @param {boolean} client + */ +function serve(path, client = false) { + return ( + fs$1.existsSync(path) && + sirv(path, { + etag: true, + gzip: true, + brotli: true, + setHeaders: + client && + ((res, pathname) => { + // only apply to build directory, not e.g. version.json + if (pathname.startsWith(`/${manifest.appPath}/immutable/`) && res.statusCode === 200) { + res.setHeader('cache-control', 'public,max-age=31536000,immutable'); + } + }) + }) + ); +} + +// required because the static file server ignores trailing slashes +/** @returns {import('polka').Middleware} */ +function serve_prerendered() { + const handler = serve(path.join(dir, 'prerendered')); + + return (req, res, next) => { + let { pathname, search, query } = parse$1(req); + + try { + pathname = decodeURIComponent(pathname); + } catch { + // ignore invalid URI + } + + if (prerendered.has(pathname)) { + return handler(req, res, next); + } + + // remove or add trailing slash as appropriate + let location = pathname.at(-1) === '/' ? pathname.slice(0, -1) : pathname + '/'; + if (prerendered.has(location)) { + if (query) location += search; + res.writeHead(308, { location }).end(); + } else { + next(); + } + }; +} + +/** @type {import('polka').Middleware} */ +const ssr = async (req, res) => { + /** @type {Request | undefined} */ + let request; + + try { + request = await getRequest({ + base: origin || get_origin(req.headers), + request: req, + bodySizeLimit: body_size_limit + }); + } catch (err) { + res.statusCode = err.status || 400; + res.end('Invalid request body'); + return; + } + + setResponse( + res, + await server.respond(request, { + platform: { req }, + getClientAddress: () => { + if (address_header) { + if (!(address_header in req.headers)) { + throw new Error( + `Address header was specified with ${ + "" + 'ADDRESS_HEADER' + }=${address_header} but is absent from request` + ); + } + + const value = /** @type {string} */ (req.headers[address_header]) || ''; + + if (address_header === 'x-forwarded-for') { + const addresses = value.split(','); + + if (xff_depth < 1) { + throw new Error(`${"" + 'XFF_DEPTH'} must be a positive integer`); + } + + if (xff_depth > addresses.length) { + throw new Error( + `${"" + 'XFF_DEPTH'} is ${xff_depth}, but only found ${ + addresses.length + } addresses` + ); + } + return addresses[addresses.length - xff_depth].trim(); + } + + return value; + } + + return ( + req.connection?.remoteAddress || + // @ts-expect-error + req.connection?.socket?.remoteAddress || + req.socket?.remoteAddress || + // @ts-expect-error + req.info?.remoteAddress + ); + } + }) + ); +}; + +/** @param {import('polka').Middleware[]} handlers */ +function sequence(handlers) { + /** @type {import('polka').Middleware} */ + return (req, res, next) => { + /** + * @param {number} i + * @returns {ReturnType} + */ + function handle(i) { + if (i < handlers.length) { + return handlers[i](req, res, () => handle(i + 1)); + } else { + return next(); + } + } + + return handle(0); + }; +} + +/** + * @param {import('http').IncomingHttpHeaders} headers + * @returns + */ +function get_origin(headers) { + const protocol = (protocol_header && headers[protocol_header]) || 'https'; + const host = headers[host_header]; + return `${protocol}://${host}`; +} + +const handler = sequence( + [ + serve(path.join(dir, 'client'), true), + serve(path.join(dir, 'static')), + serve_prerendered(), + ssr + ].filter(Boolean) +); + +export { handler }; diff --git a/Svelte-Build/src/index.js b/Svelte-Build/src/index.js new file mode 100644 index 0000000..ff85152 --- /dev/null +++ b/Svelte-Build/src/index.js @@ -0,0 +1,225 @@ +import { handler } from './handler.js'; +import { env } from './env.js'; +import http from 'http'; +import * as qs from 'querystring'; + +function parse$1 (str, loose) { + if (str instanceof RegExp) return { keys:false, pattern:str }; + var c, o, tmp, ext, keys=[], pattern='', arr = str.split('/'); + arr[0] || arr.shift(); + + while (tmp = arr.shift()) { + c = tmp[0]; + if (c === '*') { + keys.push('wild'); + pattern += '/(.*)'; + } else if (c === ':') { + o = tmp.indexOf('?', 1); + ext = tmp.indexOf('.', 1); + keys.push( tmp.substring(1, !!~o ? o : !!~ext ? ext : tmp.length) ); + pattern += !!~o && !~ext ? '(?:/([^/]+?))?' : '/([^/]+?)'; + if (!!~ext) pattern += (!!~o ? '?' : '') + '\\' + tmp.substring(ext); + } else { + pattern += '/' + tmp; + } + } + + return { + keys: keys, + pattern: new RegExp('^' + pattern + (loose ? '(?=$|\/)' : '\/?$'), 'i') + }; +} + +class Trouter { + constructor() { + this.routes = []; + + this.all = this.add.bind(this, ''); + this.get = this.add.bind(this, 'GET'); + this.head = this.add.bind(this, 'HEAD'); + this.patch = this.add.bind(this, 'PATCH'); + this.options = this.add.bind(this, 'OPTIONS'); + this.connect = this.add.bind(this, 'CONNECT'); + this.delete = this.add.bind(this, 'DELETE'); + this.trace = this.add.bind(this, 'TRACE'); + this.post = this.add.bind(this, 'POST'); + this.put = this.add.bind(this, 'PUT'); + } + + use(route, ...fns) { + let handlers = [].concat.apply([], fns); + let { keys, pattern } = parse$1(route, true); + this.routes.push({ keys, pattern, method:'', handlers }); + return this; + } + + add(method, route, ...fns) { + let { keys, pattern } = parse$1(route); + let handlers = [].concat.apply([], fns); + this.routes.push({ keys, pattern, method, handlers }); + return this; + } + + find(method, url) { + let isHEAD=(method === 'HEAD'); + let i=0, j=0, k, tmp, arr=this.routes; + let matches=[], params={}, handlers=[]; + for (; i < arr.length; i++) { + tmp = arr[i]; + if (tmp.method.length === 0 || tmp.method === method || isHEAD && tmp.method === 'GET') { + if (tmp.keys === false) { + matches = tmp.pattern.exec(url); + if (matches === null) continue; + if (matches.groups !== void 0) for (k in matches.groups) params[k]=matches.groups[k]; + tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]); + } else if (tmp.keys.length > 0) { + matches = tmp.pattern.exec(url); + if (matches === null) continue; + for (j=0; j < tmp.keys.length;) params[tmp.keys[j]]=matches[++j]; + tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]); + } else if (tmp.pattern.test(url)) { + tmp.handlers.length > 1 ? (handlers=handlers.concat(tmp.handlers)) : handlers.push(tmp.handlers[0]); + } + } // else not a match + } + + return { params, handlers }; + } +} + +/** + * @typedef ParsedURL + * @type {import('.').ParsedURL} + */ + +/** + * @typedef Request + * @property {string} url + * @property {ParsedURL} _parsedUrl + */ + +/** + * @param {Request} req + * @returns {ParsedURL|void} + */ +function parse(req) { + let raw = req.url; + if (raw == null) return; + + let prev = req._parsedUrl; + if (prev && prev.raw === raw) return prev; + + let pathname=raw, search='', query; + + if (raw.length > 1) { + let idx = raw.indexOf('?', 1); + + if (idx !== -1) { + search = raw.substring(idx); + pathname = raw.substring(0, idx); + if (search.length > 1) { + query = qs.parse(search.substring(1)); + } + } + } + + return req._parsedUrl = { pathname, search, query, raw }; +} + +function onError(err, req, res) { + let code = typeof err.status === 'number' && err.status; + code = res.statusCode = (code && code >= 100 ? code : 500); + if (typeof err === 'string' || Buffer.isBuffer(err)) res.end(err); + else res.end(err.message || http.STATUS_CODES[code]); +} + +const mount = fn => fn instanceof Polka ? fn.attach : fn; + +class Polka extends Trouter { + constructor(opts={}) { + super(); + this.parse = parse; + this.server = opts.server; + this.handler = this.handler.bind(this); + this.onError = opts.onError || onError; // catch-all handler + this.onNoMatch = opts.onNoMatch || this.onError.bind(null, { status: 404 }); + this.attach = (req, res) => setImmediate(this.handler, req, res); + } + + use(base, ...fns) { + if (base === '/') { + super.use(base, fns.map(mount)); + } else if (typeof base === 'function' || base instanceof Polka) { + super.use('/', [base, ...fns].map(mount)); + } else { + super.use(base, + (req, _, next) => { + if (typeof base === 'string') { + let len = base.length; + base.startsWith('/') || len++; + req.url = req.url.substring(len) || '/'; + req.path = req.path.substring(len) || '/'; + } else { + req.url = req.url.replace(base, '') || '/'; + req.path = req.path.replace(base, '') || '/'; + } + if (req.url.charAt(0) !== '/') { + req.url = '/' + req.url; + } + next(); + }, + fns.map(mount), + (req, _, next) => { + req.path = req._parsedUrl.pathname; + req.url = req.path + req._parsedUrl.search; + next(); + } + ); + } + return this; // chainable + } + + listen() { + (this.server = this.server || http.createServer()).on('request', this.attach); + this.server.listen.apply(this.server, arguments); + return this; + } + + handler(req, res, next) { + let info = this.parse(req), path = info.pathname; + let obj = this.find(req.method, req.path=path); + + req.url = path + info.search; + req.originalUrl = req.originalUrl || req.url; + req.query = info.query || {}; + req.search = info.search; + req.params = obj.params; + + if (path.length > 1 && path.indexOf('%', 1) !== -1) { + for (let k in req.params) { + try { req.params[k] = decodeURIComponent(req.params[k]); } + catch (e) { /* malform uri segment */ } + } + } + + let i=0, arr=obj.handlers.concat(this.onNoMatch), len=arr.length; + let loop = async () => res.finished || (i < len) && arr[i++](req, res, next); + (next = next || (err => err ? this.onError(err, req, res, next) : loop().catch(next)))(); // init + } +} + +function polka (opts) { + return new Polka(opts); +} + +const path = env('SOCKET_PATH', false); +const host = env('HOST', '0.0.0.0'); +const port = env('PORT', !path && '3000'); + +const server = polka().use(handler); + +server.listen({ path, host, port }, () => { + console.log(`Listening on ${path ? path : host + ':' + port}`); +}); + +export { host, path, port, server }; diff --git a/Svelte-Build/src/prerendered/about.html b/Svelte-Build/src/prerendered/about.html new file mode 100644 index 0000000..6fabbcb --- /dev/null +++ b/Svelte-Build/src/prerendered/about.html @@ -0,0 +1,17 @@ + + + + + + + + About + + +
SvelteKit
GitHub

About this app

This is a SvelteKit app. You can make your own by typing the + following into your command line and following the prompts:

npm create svelte@latest

The page you're looking at is purely static HTML, with no client-side interactivity needed. + Because of that, we don't need to load any JavaScript. Try viewing the page's source, or opening + the devtools network panel and reloading.

The Sverdle page illustrates SvelteKit's data loading and form handling. Try + using it with JavaScript disabled!

+ + diff --git a/Svelte-Build/src/prerendered/index.html b/Svelte-Build/src/prerendered/index.html new file mode 100644 index 0000000..4191894 --- /dev/null +++ b/Svelte-Build/src/prerendered/index.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + Home + + +
SvelteKit
GitHub

Welcome + + to your new
SvelteKit app

try editing src/routes/+page.svelte

0
+ + +
+ + diff --git a/Svelte-Build/src/prerendered/sverdle/how-to-play.html b/Svelte-Build/src/prerendered/sverdle/how-to-play.html new file mode 100644 index 0000000..1f4765d --- /dev/null +++ b/Svelte-Build/src/prerendered/sverdle/how-to-play.html @@ -0,0 +1,20 @@ + + + + + + + + + How to play Sverdle + + +
SvelteKit
GitHub

How to play Sverdle

Sverdle is a clone of Wordle, the + word guessing game. To play, enter a five-letter English word. For example:

r i t z y

The y is in the right place. r and + t + are the right letters, but in the wrong place. The other letters are wrong, and can be discarded. + Let's make another guess:

p a r t y

This time we guessed right! You have six guesses to get the word.

Unlike the original Wordle, Sverdle runs on the server instead of in the browser, making it + impossible to cheat. It uses <form> and cookies to submit data, meaning you can + even play with JavaScript disabled!

+ + diff --git a/Svelte-Build/src/server/chunks/0-a54bfeef.js b/Svelte-Build/src/server/chunks/0-a54bfeef.js new file mode 100644 index 0000000..5d3554d --- /dev/null +++ b/Svelte-Build/src/server/chunks/0-a54bfeef.js @@ -0,0 +1,9 @@ +const index = 0; +let component_cache; +const component = async () => component_cache ??= (await import('./_layout.svelte-f428a28b.js')).default; +const imports = ["_app/immutable/nodes/0.7447a5e8.js","_app/immutable/chunks/scheduler.cbf234a0.js","_app/immutable/chunks/index.200976ee.js","_app/immutable/chunks/stores.c94eb2b9.js","_app/immutable/chunks/singletons.13d7fb5f.js","_app/immutable/chunks/index.14349a18.js"]; +const stylesheets = ["_app/immutable/assets/0.fa9427ff.css"]; +const fonts = ["_app/immutable/assets/fira-mono-cyrillic-ext-400-normal.3df7909e.woff2","_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff","_app/immutable/assets/fira-mono-cyrillic-400-normal.c7d433fd.woff2","_app/immutable/assets/fira-mono-greek-ext-400-normal.9e2fe623.woff2","_app/immutable/assets/fira-mono-greek-400-normal.a8be01ce.woff2","_app/immutable/assets/fira-mono-latin-ext-400-normal.6bfabd30.woff2","_app/immutable/assets/fira-mono-latin-400-normal.e43b3538.woff2"]; + +export { component, fonts, imports, index, stylesheets }; +//# sourceMappingURL=0-a54bfeef.js.map diff --git a/Svelte-Build/src/server/chunks/0-a54bfeef.js.map b/Svelte-Build/src/server/chunks/0-a54bfeef.js.map new file mode 100644 index 0000000..cd504a0 --- /dev/null +++ b/Svelte-Build/src/server/chunks/0-a54bfeef.js.map @@ -0,0 +1 @@ +{"version":3,"file":"0-a54bfeef.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/0.7447a5e8.js\",\"_app/immutable/chunks/scheduler.cbf234a0.js\",\"_app/immutable/chunks/index.200976ee.js\",\"_app/immutable/chunks/stores.c94eb2b9.js\",\"_app/immutable/chunks/singletons.13d7fb5f.js\",\"_app/immutable/chunks/index.14349a18.js\"];\nexport const stylesheets = [\"_app/immutable/assets/0.fa9427ff.css\"];\nexport const fonts = [\"_app/immutable/assets/fira-mono-cyrillic-ext-400-normal.3df7909e.woff2\",\"_app/immutable/assets/fira-mono-all-400-normal.1e3b098c.woff\",\"_app/immutable/assets/fira-mono-cyrillic-400-normal.c7d433fd.woff2\",\"_app/immutable/assets/fira-mono-greek-ext-400-normal.9e2fe623.woff2\",\"_app/immutable/assets/fira-mono-greek-400-normal.a8be01ce.woff2\",\"_app/immutable/assets/fira-mono-latin-ext-400-normal.6bfabd30.woff2\",\"_app/immutable/assets/fira-mono-latin-400-normal.e43b3538.woff2\"];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE,QAAQ;AAC1G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,0CAA0C,CAAC,8CAA8C,CAAC,yCAAyC,EAAE;AAC9Q,MAAC,WAAW,GAAG,CAAC,sCAAsC,EAAE;AACxD,MAAC,KAAK,GAAG,CAAC,wEAAwE,CAAC,8DAA8D,CAAC,oEAAoE,CAAC,qEAAqE,CAAC,iEAAiE,CAAC,qEAAqE,CAAC,iEAAiE;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/chunks/1-5db98e8e.js b/Svelte-Build/src/server/chunks/1-5db98e8e.js new file mode 100644 index 0000000..987be4c --- /dev/null +++ b/Svelte-Build/src/server/chunks/1-5db98e8e.js @@ -0,0 +1,9 @@ +const index = 1; +let component_cache; +const component = async () => component_cache ??= (await import('./error.svelte-6fe9e439.js')).default; +const imports = ["_app/immutable/nodes/1.f6506935.js","_app/immutable/chunks/scheduler.cbf234a0.js","_app/immutable/chunks/index.200976ee.js","_app/immutable/chunks/stores.c94eb2b9.js","_app/immutable/chunks/singletons.13d7fb5f.js","_app/immutable/chunks/index.14349a18.js"]; +const stylesheets = []; +const fonts = []; + +export { component, fonts, imports, index, stylesheets }; +//# sourceMappingURL=1-5db98e8e.js.map diff --git a/Svelte-Build/src/server/chunks/1-5db98e8e.js.map b/Svelte-Build/src/server/chunks/1-5db98e8e.js.map new file mode 100644 index 0000000..476a6b8 --- /dev/null +++ b/Svelte-Build/src/server/chunks/1-5db98e8e.js.map @@ -0,0 +1 @@ +{"version":3,"file":"1-5db98e8e.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.f6506935.js\",\"_app/immutable/chunks/scheduler.cbf234a0.js\",\"_app/immutable/chunks/index.200976ee.js\",\"_app/immutable/chunks/stores.c94eb2b9.js\",\"_app/immutable/chunks/singletons.13d7fb5f.js\",\"_app/immutable/chunks/index.14349a18.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAsC,CAAC,EAAE,QAAQ;AAC5G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,0CAA0C,CAAC,8CAA8C,CAAC,yCAAyC,EAAE;AAC9Q,MAAC,WAAW,GAAG,GAAG;AAClB,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/chunks/4-45ccd4e8.js b/Svelte-Build/src/server/chunks/4-45ccd4e8.js new file mode 100644 index 0000000..f698ae3 --- /dev/null +++ b/Svelte-Build/src/server/chunks/4-45ccd4e8.js @@ -0,0 +1,13102 @@ +import { f as fail } from './index-916a7dc8.js'; + +const words = [ + "aback", + "abase", + "abate", + "abbey", + "abbot", + "abhor", + "abide", + "abled", + "abode", + "abort", + "about", + "above", + "abuse", + "abyss", + "acorn", + "acrid", + "actor", + "acute", + "adage", + "adapt", + "adept", + "admin", + "admit", + "adobe", + "adopt", + "adore", + "adorn", + "adult", + "affix", + "afire", + "afoot", + "afoul", + "after", + "again", + "agape", + "agate", + "agent", + "agile", + "aging", + "aglow", + "agony", + "agora", + "agree", + "ahead", + "aider", + "aisle", + "alarm", + "album", + "alert", + "algae", + "alibi", + "alien", + "align", + "alike", + "alive", + "allay", + "alley", + "allot", + "allow", + "alloy", + "aloft", + "alone", + "along", + "aloof", + "aloud", + "alpha", + "altar", + "alter", + "amass", + "amaze", + "amber", + "amble", + "amend", + "amiss", + "amity", + "among", + "ample", + "amply", + "amuse", + "angel", + "anger", + "angle", + "angry", + "angst", + "anime", + "ankle", + "annex", + "annoy", + "annul", + "anode", + "antic", + "anvil", + "aorta", + "apart", + "aphid", + "aping", + "apnea", + "apple", + "apply", + "apron", + "aptly", + "arbor", + "ardor", + "arena", + "argue", + "arise", + "armor", + "aroma", + "arose", + "array", + "arrow", + "arson", + "artsy", + "ascot", + "ashen", + "aside", + "askew", + "assay", + "asset", + "atoll", + "atone", + "attic", + "audio", + "audit", + "augur", + "aunty", + "avail", + "avert", + "avian", + "avoid", + "await", + "awake", + "award", + "aware", + "awash", + "awful", + "awoke", + "axial", + "axiom", + "axion", + "azure", + "bacon", + "badge", + "badly", + "bagel", + "baggy", + "baker", + "baler", + "balmy", + "banal", + "banjo", + "barge", + "baron", + "basal", + "basic", + "basil", + "basin", + "basis", + "baste", + "batch", + "bathe", + "baton", + "batty", + "bawdy", + "bayou", + "beach", + "beady", + "beard", + "beast", + "beech", + "beefy", + "befit", + "began", + "begat", + "beget", + "begin", + "begun", + "being", + "belch", + "belie", + "belle", + "belly", + "below", + "bench", + "beret", + "berry", + "berth", + "beset", + "betel", + "bevel", + "bezel", + "bible", + "bicep", + "biddy", + "bigot", + "bilge", + "billy", + "binge", + "bingo", + "biome", + "birch", + "birth", + "bison", + "bitty", + "black", + "blade", + "blame", + "bland", + "blank", + "blare", + "blast", + "blaze", + "bleak", + "bleat", + "bleed", + "bleep", + "blend", + "bless", + "blimp", + "blind", + "blink", + "bliss", + "blitz", + "bloat", + "block", + "bloke", + "blond", + "blood", + "bloom", + "blown", + "bluer", + "bluff", + "blunt", + "blurb", + "blurt", + "blush", + "board", + "boast", + "bobby", + "boney", + "bongo", + "bonus", + "booby", + "boost", + "booth", + "booty", + "booze", + "boozy", + "borax", + "borne", + "bosom", + "bossy", + "botch", + "bough", + "boule", + "bound", + "bowel", + "boxer", + "brace", + "braid", + "brain", + "brake", + "brand", + "brash", + "brass", + "brave", + "bravo", + "brawl", + "brawn", + "bread", + "break", + "breed", + "briar", + "bribe", + "brick", + "bride", + "brief", + "brine", + "bring", + "brink", + "briny", + "brisk", + "broad", + "broil", + "broke", + "brood", + "brook", + "broom", + "broth", + "brown", + "brunt", + "brush", + "brute", + "buddy", + "budge", + "buggy", + "bugle", + "build", + "built", + "bulge", + "bulky", + "bully", + "bunch", + "bunny", + "burly", + "burnt", + "burst", + "bused", + "bushy", + "butch", + "butte", + "buxom", + "buyer", + "bylaw", + "cabal", + "cabby", + "cabin", + "cable", + "cacao", + "cache", + "cacti", + "caddy", + "cadet", + "cagey", + "cairn", + "camel", + "cameo", + "canal", + "candy", + "canny", + "canoe", + "canon", + "caper", + "caput", + "carat", + "cargo", + "carol", + "carry", + "carve", + "caste", + "catch", + "cater", + "catty", + "caulk", + "cause", + "cavil", + "cease", + "cedar", + "cello", + "chafe", + "chaff", + "chain", + "chair", + "chalk", + "champ", + "chant", + "chaos", + "chard", + "charm", + "chart", + "chase", + "chasm", + "cheap", + "cheat", + "check", + "cheek", + "cheer", + "chess", + "chest", + "chick", + "chide", + "chief", + "child", + "chili", + "chill", + "chime", + "china", + "chirp", + "chock", + "choir", + "choke", + "chord", + "chore", + "chose", + "chuck", + "chump", + "chunk", + "churn", + "chute", + "cider", + "cigar", + "cinch", + "circa", + "civic", + "civil", + "clack", + "claim", + "clamp", + "clang", + "clank", + "clash", + "clasp", + "class", + "clean", + "clear", + "cleat", + "cleft", + "clerk", + "click", + "cliff", + "climb", + "cling", + "clink", + "cloak", + "clock", + "clone", + "close", + "cloth", + "cloud", + "clout", + "clove", + "clown", + "cluck", + "clued", + "clump", + "clung", + "coach", + "coast", + "cobra", + "cocoa", + "colon", + "color", + "comet", + "comfy", + "comic", + "comma", + "conch", + "condo", + "conic", + "copse", + "coral", + "corer", + "corny", + "couch", + "cough", + "could", + "count", + "coupe", + "court", + "coven", + "cover", + "covet", + "covey", + "cower", + "coyly", + "crack", + "craft", + "cramp", + "crane", + "crank", + "crash", + "crass", + "crate", + "crave", + "crawl", + "craze", + "crazy", + "creak", + "cream", + "credo", + "creed", + "creek", + "creep", + "creme", + "crepe", + "crept", + "cress", + "crest", + "crick", + "cried", + "crier", + "crime", + "crimp", + "crisp", + "croak", + "crock", + "crone", + "crony", + "crook", + "cross", + "croup", + "crowd", + "crown", + "crude", + "cruel", + "crumb", + "crump", + "crush", + "crust", + "crypt", + "cubic", + "cumin", + "curio", + "curly", + "curry", + "curse", + "curve", + "curvy", + "cutie", + "cyber", + "cycle", + "cynic", + "daddy", + "daily", + "dairy", + "daisy", + "dally", + "dance", + "dandy", + "datum", + "daunt", + "dealt", + "death", + "debar", + "debit", + "debug", + "debut", + "decal", + "decay", + "decor", + "decoy", + "decry", + "defer", + "deign", + "deity", + "delay", + "delta", + "delve", + "demon", + "demur", + "denim", + "dense", + "depot", + "depth", + "derby", + "deter", + "detox", + "deuce", + "devil", + "diary", + "dicey", + "digit", + "dilly", + "dimly", + "diner", + "dingo", + "dingy", + "diode", + "dirge", + "dirty", + "disco", + "ditch", + "ditto", + "ditty", + "diver", + "dizzy", + "dodge", + "dodgy", + "dogma", + "doing", + "dolly", + "donor", + "donut", + "dopey", + "doubt", + "dough", + "dowdy", + "dowel", + "downy", + "dowry", + "dozen", + "draft", + "drain", + "drake", + "drama", + "drank", + "drape", + "drawl", + "drawn", + "dread", + "dream", + "dress", + "dried", + "drier", + "drift", + "drill", + "drink", + "drive", + "droit", + "droll", + "drone", + "drool", + "droop", + "dross", + "drove", + "drown", + "druid", + "drunk", + "dryer", + "dryly", + "duchy", + "dully", + "dummy", + "dumpy", + "dunce", + "dusky", + "dusty", + "dutch", + "duvet", + "dwarf", + "dwell", + "dwelt", + "dying", + "eager", + "eagle", + "early", + "earth", + "easel", + "eaten", + "eater", + "ebony", + "eclat", + "edict", + "edify", + "eerie", + "egret", + "eight", + "eject", + "eking", + "elate", + "elbow", + "elder", + "elect", + "elegy", + "elfin", + "elide", + "elite", + "elope", + "elude", + "email", + "embed", + "ember", + "emcee", + "empty", + "enact", + "endow", + "enema", + "enemy", + "enjoy", + "ennui", + "ensue", + "enter", + "entry", + "envoy", + "epoch", + "epoxy", + "equal", + "equip", + "erase", + "erect", + "erode", + "error", + "erupt", + "essay", + "ester", + "ether", + "ethic", + "ethos", + "etude", + "evade", + "event", + "every", + "evict", + "evoke", + "exact", + "exalt", + "excel", + "exert", + "exile", + "exist", + "expel", + "extol", + "extra", + "exult", + "eying", + "fable", + "facet", + "faint", + "fairy", + "faith", + "false", + "fancy", + "fanny", + "farce", + "fatal", + "fatty", + "fault", + "fauna", + "favor", + "feast", + "fecal", + "feign", + "fella", + "felon", + "femme", + "femur", + "fence", + "feral", + "ferry", + "fetal", + "fetch", + "fetid", + "fetus", + "fever", + "fewer", + "fiber", + "fibre", + "ficus", + "field", + "fiend", + "fiery", + "fifth", + "fifty", + "fight", + "filer", + "filet", + "filly", + "filmy", + "filth", + "final", + "finch", + "finer", + "first", + "fishy", + "fixer", + "fizzy", + "fjord", + "flack", + "flail", + "flair", + "flake", + "flaky", + "flame", + "flank", + "flare", + "flash", + "flask", + "fleck", + "fleet", + "flesh", + "flick", + "flier", + "fling", + "flint", + "flirt", + "float", + "flock", + "flood", + "floor", + "flora", + "floss", + "flour", + "flout", + "flown", + "fluff", + "fluid", + "fluke", + "flume", + "flung", + "flunk", + "flush", + "flute", + "flyer", + "foamy", + "focal", + "focus", + "foggy", + "foist", + "folio", + "folly", + "foray", + "force", + "forge", + "forgo", + "forte", + "forth", + "forty", + "forum", + "found", + "foyer", + "frail", + "frame", + "frank", + "fraud", + "freak", + "freed", + "freer", + "fresh", + "friar", + "fried", + "frill", + "frisk", + "fritz", + "frock", + "frond", + "front", + "frost", + "froth", + "frown", + "froze", + "fruit", + "fudge", + "fugue", + "fully", + "fungi", + "funky", + "funny", + "furor", + "furry", + "fussy", + "fuzzy", + "gaffe", + "gaily", + "gamer", + "gamma", + "gamut", + "gassy", + "gaudy", + "gauge", + "gaunt", + "gauze", + "gavel", + "gawky", + "gayer", + "gayly", + "gazer", + "gecko", + "geeky", + "geese", + "genie", + "genre", + "ghost", + "ghoul", + "giant", + "giddy", + "gipsy", + "girly", + "girth", + "given", + "giver", + "glade", + "gland", + "glare", + "glass", + "glaze", + "gleam", + "glean", + "glide", + "glint", + "gloat", + "globe", + "gloom", + "glory", + "gloss", + "glove", + "glyph", + "gnash", + "gnome", + "godly", + "going", + "golem", + "golly", + "gonad", + "goner", + "goody", + "gooey", + "goofy", + "goose", + "gorge", + "gouge", + "gourd", + "grace", + "grade", + "graft", + "grail", + "grain", + "grand", + "grant", + "grape", + "graph", + "grasp", + "grass", + "grate", + "grave", + "gravy", + "graze", + "great", + "greed", + "green", + "greet", + "grief", + "grill", + "grime", + "grimy", + "grind", + "gripe", + "groan", + "groin", + "groom", + "grope", + "gross", + "group", + "grout", + "grove", + "growl", + "grown", + "gruel", + "gruff", + "grunt", + "guard", + "guava", + "guess", + "guest", + "guide", + "guild", + "guile", + "guilt", + "guise", + "gulch", + "gully", + "gumbo", + "gummy", + "guppy", + "gusto", + "gusty", + "gypsy", + "habit", + "hairy", + "halve", + "handy", + "happy", + "hardy", + "harem", + "harpy", + "harry", + "harsh", + "haste", + "hasty", + "hatch", + "hater", + "haunt", + "haute", + "haven", + "havoc", + "hazel", + "heady", + "heard", + "heart", + "heath", + "heave", + "heavy", + "hedge", + "hefty", + "heist", + "helix", + "hello", + "hence", + "heron", + "hilly", + "hinge", + "hippo", + "hippy", + "hitch", + "hoard", + "hobby", + "hoist", + "holly", + "homer", + "honey", + "honor", + "horde", + "horny", + "horse", + "hotel", + "hotly", + "hound", + "house", + "hovel", + "hover", + "howdy", + "human", + "humid", + "humor", + "humph", + "humus", + "hunch", + "hunky", + "hurry", + "husky", + "hussy", + "hutch", + "hydro", + "hyena", + "hymen", + "hyper", + "icily", + "icing", + "ideal", + "idiom", + "idiot", + "idler", + "idyll", + "igloo", + "iliac", + "image", + "imbue", + "impel", + "imply", + "inane", + "inbox", + "incur", + "index", + "inept", + "inert", + "infer", + "ingot", + "inlay", + "inlet", + "inner", + "input", + "inter", + "intro", + "ionic", + "irate", + "irony", + "islet", + "issue", + "itchy", + "ivory", + "jaunt", + "jazzy", + "jelly", + "jerky", + "jetty", + "jewel", + "jiffy", + "joint", + "joist", + "joker", + "jolly", + "joust", + "judge", + "juice", + "juicy", + "jumbo", + "jumpy", + "junta", + "junto", + "juror", + "kappa", + "karma", + "kayak", + "kebab", + "khaki", + "kinky", + "kiosk", + "kitty", + "knack", + "knave", + "knead", + "kneed", + "kneel", + "knelt", + "knife", + "knock", + "knoll", + "known", + "koala", + "krill", + "label", + "labor", + "laden", + "ladle", + "lager", + "lance", + "lanky", + "lapel", + "lapse", + "large", + "larva", + "lasso", + "latch", + "later", + "lathe", + "latte", + "laugh", + "layer", + "leach", + "leafy", + "leaky", + "leant", + "leapt", + "learn", + "lease", + "leash", + "least", + "leave", + "ledge", + "leech", + "leery", + "lefty", + "legal", + "leggy", + "lemon", + "lemur", + "leper", + "level", + "lever", + "libel", + "liege", + "light", + "liken", + "lilac", + "limbo", + "limit", + "linen", + "liner", + "lingo", + "lipid", + "lithe", + "liver", + "livid", + "llama", + "loamy", + "loath", + "lobby", + "local", + "locus", + "lodge", + "lofty", + "logic", + "login", + "loopy", + "loose", + "lorry", + "loser", + "louse", + "lousy", + "lover", + "lower", + "lowly", + "loyal", + "lucid", + "lucky", + "lumen", + "lumpy", + "lunar", + "lunch", + "lunge", + "lupus", + "lurch", + "lurid", + "lusty", + "lying", + "lymph", + "lynch", + "lyric", + "macaw", + "macho", + "macro", + "madam", + "madly", + "mafia", + "magic", + "magma", + "maize", + "major", + "maker", + "mambo", + "mamma", + "mammy", + "manga", + "mange", + "mango", + "mangy", + "mania", + "manic", + "manly", + "manor", + "maple", + "march", + "marry", + "marsh", + "mason", + "masse", + "match", + "matey", + "mauve", + "maxim", + "maybe", + "mayor", + "mealy", + "meant", + "meaty", + "mecca", + "medal", + "media", + "medic", + "melee", + "melon", + "mercy", + "merge", + "merit", + "merry", + "metal", + "meter", + "metro", + "micro", + "midge", + "midst", + "might", + "milky", + "mimic", + "mince", + "miner", + "minim", + "minor", + "minty", + "minus", + "mirth", + "miser", + "missy", + "mocha", + "modal", + "model", + "modem", + "mogul", + "moist", + "molar", + "moldy", + "money", + "month", + "moody", + "moose", + "moral", + "moron", + "morph", + "mossy", + "motel", + "motif", + "motor", + "motto", + "moult", + "mound", + "mount", + "mourn", + "mouse", + "mouth", + "mover", + "movie", + "mower", + "mucky", + "mucus", + "muddy", + "mulch", + "mummy", + "munch", + "mural", + "murky", + "mushy", + "music", + "musky", + "musty", + "myrrh", + "nadir", + "naive", + "nanny", + "nasal", + "nasty", + "natal", + "naval", + "navel", + "needy", + "neigh", + "nerdy", + "nerve", + "never", + "newer", + "newly", + "nicer", + "niche", + "niece", + "night", + "ninja", + "ninny", + "ninth", + "noble", + "nobly", + "noise", + "noisy", + "nomad", + "noose", + "north", + "nosey", + "notch", + "novel", + "nudge", + "nurse", + "nutty", + "nylon", + "nymph", + "oaken", + "obese", + "occur", + "ocean", + "octal", + "octet", + "odder", + "oddly", + "offal", + "offer", + "often", + "olden", + "older", + "olive", + "ombre", + "omega", + "onion", + "onset", + "opera", + "opine", + "opium", + "optic", + "orbit", + "order", + "organ", + "other", + "otter", + "ought", + "ounce", + "outdo", + "outer", + "outgo", + "ovary", + "ovate", + "overt", + "ovine", + "ovoid", + "owing", + "owner", + "oxide", + "ozone", + "paddy", + "pagan", + "paint", + "paler", + "palsy", + "panel", + "panic", + "pansy", + "papal", + "paper", + "parer", + "parka", + "parry", + "parse", + "party", + "pasta", + "paste", + "pasty", + "patch", + "patio", + "patsy", + "patty", + "pause", + "payee", + "payer", + "peace", + "peach", + "pearl", + "pecan", + "pedal", + "penal", + "pence", + "penne", + "penny", + "perch", + "peril", + "perky", + "pesky", + "pesto", + "petal", + "petty", + "phase", + "phone", + "phony", + "photo", + "piano", + "picky", + "piece", + "piety", + "piggy", + "pilot", + "pinch", + "piney", + "pinky", + "pinto", + "piper", + "pique", + "pitch", + "pithy", + "pivot", + "pixel", + "pixie", + "pizza", + "place", + "plaid", + "plain", + "plait", + "plane", + "plank", + "plant", + "plate", + "plaza", + "plead", + "pleat", + "plied", + "plier", + "pluck", + "plumb", + "plume", + "plump", + "plunk", + "plush", + "poesy", + "point", + "poise", + "poker", + "polar", + "polka", + "polyp", + "pooch", + "poppy", + "porch", + "poser", + "posit", + "posse", + "pouch", + "pound", + "pouty", + "power", + "prank", + "prawn", + "preen", + "press", + "price", + "prick", + "pride", + "pried", + "prime", + "primo", + "print", + "prior", + "prism", + "privy", + "prize", + "probe", + "prone", + "prong", + "proof", + "prose", + "proud", + "prove", + "prowl", + "proxy", + "prude", + "prune", + "psalm", + "pubic", + "pudgy", + "puffy", + "pulpy", + "pulse", + "punch", + "pupal", + "pupil", + "puppy", + "puree", + "purer", + "purge", + "purse", + "pushy", + "putty", + "pygmy", + "quack", + "quail", + "quake", + "qualm", + "quark", + "quart", + "quash", + "quasi", + "queen", + "queer", + "quell", + "query", + "quest", + "queue", + "quick", + "quiet", + "quill", + "quilt", + "quirk", + "quite", + "quota", + "quote", + "quoth", + "rabbi", + "rabid", + "racer", + "radar", + "radii", + "radio", + "rainy", + "raise", + "rajah", + "rally", + "ralph", + "ramen", + "ranch", + "randy", + "range", + "rapid", + "rarer", + "raspy", + "ratio", + "ratty", + "raven", + "rayon", + "razor", + "reach", + "react", + "ready", + "realm", + "rearm", + "rebar", + "rebel", + "rebus", + "rebut", + "recap", + "recur", + "recut", + "reedy", + "refer", + "refit", + "regal", + "rehab", + "reign", + "relax", + "relay", + "relic", + "remit", + "renal", + "renew", + "repay", + "repel", + "reply", + "rerun", + "reset", + "resin", + "retch", + "retro", + "retry", + "reuse", + "revel", + "revue", + "rhino", + "rhyme", + "rider", + "ridge", + "rifle", + "right", + "rigid", + "rigor", + "rinse", + "ripen", + "riper", + "risen", + "riser", + "risky", + "rival", + "river", + "rivet", + "roach", + "roast", + "robin", + "robot", + "rocky", + "rodeo", + "roger", + "rogue", + "roomy", + "roost", + "rotor", + "rouge", + "rough", + "round", + "rouse", + "route", + "rover", + "rowdy", + "rower", + "royal", + "ruddy", + "ruder", + "rugby", + "ruler", + "rumba", + "rumor", + "rupee", + "rural", + "rusty", + "sadly", + "safer", + "saint", + "salad", + "sally", + "salon", + "salsa", + "salty", + "salve", + "salvo", + "sandy", + "saner", + "sappy", + "sassy", + "satin", + "satyr", + "sauce", + "saucy", + "sauna", + "saute", + "savor", + "savoy", + "savvy", + "scald", + "scale", + "scalp", + "scaly", + "scamp", + "scant", + "scare", + "scarf", + "scary", + "scene", + "scent", + "scion", + "scoff", + "scold", + "scone", + "scoop", + "scope", + "score", + "scorn", + "scour", + "scout", + "scowl", + "scram", + "scrap", + "scree", + "screw", + "scrub", + "scrum", + "scuba", + "sedan", + "seedy", + "segue", + "seize", + "semen", + "sense", + "sepia", + "serif", + "serum", + "serve", + "setup", + "seven", + "sever", + "sewer", + "shack", + "shade", + "shady", + "shaft", + "shake", + "shaky", + "shale", + "shall", + "shalt", + "shame", + "shank", + "shape", + "shard", + "share", + "shark", + "sharp", + "shave", + "shawl", + "shear", + "sheen", + "sheep", + "sheer", + "sheet", + "sheik", + "shelf", + "shell", + "shied", + "shift", + "shine", + "shiny", + "shire", + "shirk", + "shirt", + "shoal", + "shock", + "shone", + "shook", + "shoot", + "shore", + "shorn", + "short", + "shout", + "shove", + "shown", + "showy", + "shrew", + "shrub", + "shrug", + "shuck", + "shunt", + "shush", + "shyly", + "siege", + "sieve", + "sight", + "sigma", + "silky", + "silly", + "since", + "sinew", + "singe", + "siren", + "sissy", + "sixth", + "sixty", + "skate", + "skier", + "skiff", + "skill", + "skimp", + "skirt", + "skulk", + "skull", + "skunk", + "slack", + "slain", + "slang", + "slant", + "slash", + "slate", + "slave", + "sleek", + "sleep", + "sleet", + "slept", + "slice", + "slick", + "slide", + "slime", + "slimy", + "sling", + "slink", + "sloop", + "slope", + "slosh", + "sloth", + "slump", + "slung", + "slunk", + "slurp", + "slush", + "slyly", + "smack", + "small", + "smart", + "smash", + "smear", + "smell", + "smelt", + "smile", + "smirk", + "smite", + "smith", + "smock", + "smoke", + "smoky", + "smote", + "snack", + "snail", + "snake", + "snaky", + "snare", + "snarl", + "sneak", + "sneer", + "snide", + "sniff", + "snipe", + "snoop", + "snore", + "snort", + "snout", + "snowy", + "snuck", + "snuff", + "soapy", + "sober", + "soggy", + "solar", + "solid", + "solve", + "sonar", + "sonic", + "sooth", + "sooty", + "sorry", + "sound", + "south", + "sower", + "space", + "spade", + "spank", + "spare", + "spark", + "spasm", + "spawn", + "speak", + "spear", + "speck", + "speed", + "spell", + "spelt", + "spend", + "spent", + "sperm", + "spice", + "spicy", + "spied", + "spiel", + "spike", + "spiky", + "spill", + "spilt", + "spine", + "spiny", + "spire", + "spite", + "splat", + "split", + "spoil", + "spoke", + "spoof", + "spook", + "spool", + "spoon", + "spore", + "sport", + "spout", + "spray", + "spree", + "sprig", + "spunk", + "spurn", + "spurt", + "squad", + "squat", + "squib", + "stack", + "staff", + "stage", + "staid", + "stain", + "stair", + "stake", + "stale", + "stalk", + "stall", + "stamp", + "stand", + "stank", + "stare", + "stark", + "start", + "stash", + "state", + "stave", + "stead", + "steak", + "steal", + "steam", + "steed", + "steel", + "steep", + "steer", + "stein", + "stern", + "stick", + "stiff", + "still", + "stilt", + "sting", + "stink", + "stint", + "stock", + "stoic", + "stoke", + "stole", + "stomp", + "stone", + "stony", + "stood", + "stool", + "stoop", + "store", + "stork", + "storm", + "story", + "stout", + "stove", + "strap", + "straw", + "stray", + "strip", + "strut", + "stuck", + "study", + "stuff", + "stump", + "stung", + "stunk", + "stunt", + "style", + "suave", + "sugar", + "suing", + "suite", + "sulky", + "sully", + "sumac", + "sunny", + "super", + "surer", + "surge", + "surly", + "sushi", + "swami", + "swamp", + "swarm", + "swash", + "swath", + "swear", + "sweat", + "sweep", + "sweet", + "swell", + "swept", + "swift", + "swill", + "swine", + "swing", + "swirl", + "swish", + "swoon", + "swoop", + "sword", + "swore", + "sworn", + "swung", + "synod", + "syrup", + "tabby", + "table", + "taboo", + "tacit", + "tacky", + "taffy", + "taint", + "taken", + "taker", + "tally", + "talon", + "tamer", + "tango", + "tangy", + "taper", + "tapir", + "tardy", + "tarot", + "taste", + "tasty", + "tatty", + "taunt", + "tawny", + "teach", + "teary", + "tease", + "teddy", + "teeth", + "tempo", + "tenet", + "tenor", + "tense", + "tenth", + "tepee", + "tepid", + "terra", + "terse", + "testy", + "thank", + "theft", + "their", + "theme", + "there", + "these", + "theta", + "thick", + "thief", + "thigh", + "thing", + "think", + "third", + "thong", + "thorn", + "those", + "three", + "threw", + "throb", + "throw", + "thrum", + "thumb", + "thump", + "thyme", + "tiara", + "tibia", + "tidal", + "tiger", + "tight", + "tilde", + "timer", + "timid", + "tipsy", + "titan", + "tithe", + "title", + "toast", + "today", + "toddy", + "token", + "tonal", + "tonga", + "tonic", + "tooth", + "topaz", + "topic", + "torch", + "torso", + "torus", + "total", + "totem", + "touch", + "tough", + "towel", + "tower", + "toxic", + "toxin", + "trace", + "track", + "tract", + "trade", + "trail", + "train", + "trait", + "tramp", + "trash", + "trawl", + "tread", + "treat", + "trend", + "triad", + "trial", + "tribe", + "trice", + "trick", + "tried", + "tripe", + "trite", + "troll", + "troop", + "trope", + "trout", + "trove", + "truce", + "truck", + "truer", + "truly", + "trump", + "trunk", + "truss", + "trust", + "truth", + "tryst", + "tubal", + "tuber", + "tulip", + "tulle", + "tumor", + "tunic", + "turbo", + "tutor", + "twang", + "tweak", + "tweed", + "tweet", + "twice", + "twine", + "twirl", + "twist", + "twixt", + "tying", + "udder", + "ulcer", + "ultra", + "umbra", + "uncle", + "uncut", + "under", + "undid", + "undue", + "unfed", + "unfit", + "unify", + "union", + "unite", + "unity", + "unlit", + "unmet", + "unset", + "untie", + "until", + "unwed", + "unzip", + "upper", + "upset", + "urban", + "urine", + "usage", + "usher", + "using", + "usual", + "usurp", + "utile", + "utter", + "vague", + "valet", + "valid", + "valor", + "value", + "valve", + "vapid", + "vapor", + "vault", + "vaunt", + "vegan", + "venom", + "venue", + "verge", + "verse", + "verso", + "verve", + "vicar", + "video", + "vigil", + "vigor", + "villa", + "vinyl", + "viola", + "viper", + "viral", + "virus", + "visit", + "visor", + "vista", + "vital", + "vivid", + "vixen", + "vocal", + "vodka", + "vogue", + "voice", + "voila", + "vomit", + "voter", + "vouch", + "vowel", + "vying", + "wacky", + "wafer", + "wager", + "wagon", + "waist", + "waive", + "waltz", + "warty", + "waste", + "watch", + "water", + "waver", + "waxen", + "weary", + "weave", + "wedge", + "weedy", + "weigh", + "weird", + "welch", + "welsh", + "wench", + "whack", + "whale", + "wharf", + "wheat", + "wheel", + "whelp", + "where", + "which", + "whiff", + "while", + "whine", + "whiny", + "whirl", + "whisk", + "white", + "whole", + "whoop", + "whose", + "widen", + "wider", + "widow", + "width", + "wield", + "wight", + "willy", + "wimpy", + "wince", + "winch", + "windy", + "wiser", + "wispy", + "witch", + "witty", + "woken", + "woman", + "women", + "woody", + "wooer", + "wooly", + "woozy", + "wordy", + "world", + "worry", + "worse", + "worst", + "worth", + "would", + "wound", + "woven", + "wrack", + "wrath", + "wreak", + "wreck", + "wrest", + "wring", + "wrist", + "write", + "wrong", + "wrote", + "wrung", + "wryly", + "yacht", + "yearn", + "yeast", + "yield", + "young", + "youth", + "zebra", + "zesty", + "zonal" +]; +const allowed = /* @__PURE__ */ new Set([ + ...words, + "aahed", + "aalii", + "aargh", + "aarti", + "abaca", + "abaci", + "abacs", + "abaft", + "abaka", + "abamp", + "aband", + "abash", + "abask", + "abaya", + "abbas", + "abbed", + "abbes", + "abcee", + "abeam", + "abear", + "abele", + "abers", + "abets", + "abies", + "abler", + "ables", + "ablet", + "ablow", + "abmho", + "abohm", + "aboil", + "aboma", + "aboon", + "abord", + "abore", + "abram", + "abray", + "abrim", + "abrin", + "abris", + "absey", + "absit", + "abuna", + "abune", + "abuts", + "abuzz", + "abyes", + "abysm", + "acais", + "acari", + "accas", + "accoy", + "acerb", + "acers", + "aceta", + "achar", + "ached", + "aches", + "achoo", + "acids", + "acidy", + "acing", + "acini", + "ackee", + "acker", + "acmes", + "acmic", + "acned", + "acnes", + "acock", + "acold", + "acred", + "acres", + "acros", + "acted", + "actin", + "acton", + "acyls", + "adaws", + "adays", + "adbot", + "addax", + "added", + "adder", + "addio", + "addle", + "adeem", + "adhan", + "adieu", + "adios", + "adits", + "adman", + "admen", + "admix", + "adobo", + "adown", + "adoze", + "adrad", + "adred", + "adsum", + "aduki", + "adunc", + "adust", + "advew", + "adyta", + "adzed", + "adzes", + "aecia", + "aedes", + "aegis", + "aeons", + "aerie", + "aeros", + "aesir", + "afald", + "afara", + "afars", + "afear", + "aflaj", + "afore", + "afrit", + "afros", + "agama", + "agami", + "agars", + "agast", + "agave", + "agaze", + "agene", + "agers", + "agger", + "aggie", + "aggri", + "aggro", + "aggry", + "aghas", + "agila", + "agios", + "agism", + "agist", + "agita", + "aglee", + "aglet", + "agley", + "agloo", + "aglus", + "agmas", + "agoge", + "agone", + "agons", + "agood", + "agria", + "agrin", + "agros", + "agued", + "agues", + "aguna", + "aguti", + "aheap", + "ahent", + "ahigh", + "ahind", + "ahing", + "ahint", + "ahold", + "ahull", + "ahuru", + "aidas", + "aided", + "aides", + "aidoi", + "aidos", + "aiery", + "aigas", + "aight", + "ailed", + "aimed", + "aimer", + "ainee", + "ainga", + "aioli", + "aired", + "airer", + "airns", + "airth", + "airts", + "aitch", + "aitus", + "aiver", + "aiyee", + "aizle", + "ajies", + "ajiva", + "ajuga", + "ajwan", + "akees", + "akela", + "akene", + "aking", + "akita", + "akkas", + "alaap", + "alack", + "alamo", + "aland", + "alane", + "alang", + "alans", + "alant", + "alapa", + "alaps", + "alary", + "alate", + "alays", + "albas", + "albee", + "alcid", + "alcos", + "aldea", + "alder", + "aldol", + "aleck", + "alecs", + "alefs", + "aleft", + "aleph", + "alews", + "aleye", + "alfas", + "algal", + "algas", + "algid", + "algin", + "algor", + "algum", + "alias", + "alifs", + "aline", + "alist", + "aliya", + "alkie", + "alkos", + "alkyd", + "alkyl", + "allee", + "allel", + "allis", + "allod", + "allyl", + "almah", + "almas", + "almeh", + "almes", + "almud", + "almug", + "alods", + "aloed", + "aloes", + "aloha", + "aloin", + "aloos", + "alowe", + "altho", + "altos", + "alula", + "alums", + "alure", + "alvar", + "alway", + "amahs", + "amain", + "amate", + "amaut", + "amban", + "ambit", + "ambos", + "ambry", + "ameba", + "ameer", + "amene", + "amens", + "ament", + "amias", + "amice", + "amici", + "amide", + "amido", + "amids", + "amies", + "amiga", + "amigo", + "amine", + "amino", + "amins", + "amirs", + "amlas", + "amman", + "ammon", + "ammos", + "amnia", + "amnic", + "amnio", + "amoks", + "amole", + "amort", + "amour", + "amove", + "amowt", + "amped", + "ampul", + "amrit", + "amuck", + "amyls", + "anana", + "anata", + "ancho", + "ancle", + "ancon", + "andro", + "anear", + "anele", + "anent", + "angas", + "anglo", + "anigh", + "anile", + "anils", + "anima", + "animi", + "anion", + "anise", + "anker", + "ankhs", + "ankus", + "anlas", + "annal", + "annas", + "annat", + "anoas", + "anole", + "anomy", + "ansae", + "antae", + "antar", + "antas", + "anted", + "antes", + "antis", + "antra", + "antre", + "antsy", + "anura", + "anyon", + "apace", + "apage", + "apaid", + "apayd", + "apays", + "apeak", + "apeek", + "apers", + "apert", + "apery", + "apgar", + "aphis", + "apian", + "apiol", + "apish", + "apism", + "apode", + "apods", + "apoop", + "aport", + "appal", + "appay", + "appel", + "appro", + "appui", + "appuy", + "apres", + "apses", + "apsis", + "apsos", + "apted", + "apter", + "aquae", + "aquas", + "araba", + "araks", + "arame", + "arars", + "arbas", + "arced", + "archi", + "arcos", + "arcus", + "ardeb", + "ardri", + "aread", + "areae", + "areal", + "arear", + "areas", + "areca", + "aredd", + "arede", + "arefy", + "areic", + "arene", + "arepa", + "arere", + "arete", + "arets", + "arett", + "argal", + "argan", + "argil", + "argle", + "argol", + "argon", + "argot", + "argus", + "arhat", + "arias", + "ariel", + "ariki", + "arils", + "ariot", + "arish", + "arked", + "arled", + "arles", + "armed", + "armer", + "armet", + "armil", + "arnas", + "arnut", + "aroba", + "aroha", + "aroid", + "arpas", + "arpen", + "arrah", + "arras", + "arret", + "arris", + "arroz", + "arsed", + "arses", + "arsey", + "arsis", + "artal", + "artel", + "artic", + "artis", + "aruhe", + "arums", + "arval", + "arvee", + "arvos", + "aryls", + "asana", + "ascon", + "ascus", + "asdic", + "ashed", + "ashes", + "ashet", + "asked", + "asker", + "askoi", + "askos", + "aspen", + "asper", + "aspic", + "aspie", + "aspis", + "aspro", + "assai", + "assam", + "asses", + "assez", + "assot", + "aster", + "astir", + "astun", + "asura", + "asway", + "aswim", + "asyla", + "ataps", + "ataxy", + "atigi", + "atilt", + "atimy", + "atlas", + "atman", + "atmas", + "atmos", + "atocs", + "atoke", + "atoks", + "atoms", + "atomy", + "atony", + "atopy", + "atria", + "atrip", + "attap", + "attar", + "atuas", + "audad", + "auger", + "aught", + "aulas", + "aulic", + "auloi", + "aulos", + "aumil", + "aunes", + "aunts", + "aurae", + "aural", + "aurar", + "auras", + "aurei", + "aures", + "auric", + "auris", + "aurum", + "autos", + "auxin", + "avale", + "avant", + "avast", + "avels", + "avens", + "avers", + "avgas", + "avine", + "avion", + "avise", + "aviso", + "avize", + "avows", + "avyze", + "awarn", + "awato", + "awave", + "aways", + "awdls", + "aweel", + "aweto", + "awing", + "awmry", + "awned", + "awner", + "awols", + "awork", + "axels", + "axile", + "axils", + "axing", + "axite", + "axled", + "axles", + "axman", + "axmen", + "axoid", + "axone", + "axons", + "ayahs", + "ayaya", + "ayelp", + "aygre", + "ayins", + "ayont", + "ayres", + "ayrie", + "azans", + "azide", + "azido", + "azine", + "azlon", + "azoic", + "azole", + "azons", + "azote", + "azoth", + "azuki", + "azurn", + "azury", + "azygy", + "azyme", + "azyms", + "baaed", + "baals", + "babas", + "babel", + "babes", + "babka", + "baboo", + "babul", + "babus", + "bacca", + "bacco", + "baccy", + "bacha", + "bachs", + "backs", + "baddy", + "baels", + "baffs", + "baffy", + "bafts", + "baghs", + "bagie", + "bahts", + "bahus", + "bahut", + "bails", + "bairn", + "baisa", + "baith", + "baits", + "baiza", + "baize", + "bajan", + "bajra", + "bajri", + "bajus", + "baked", + "baken", + "bakes", + "bakra", + "balas", + "balds", + "baldy", + "baled", + "bales", + "balks", + "balky", + "balls", + "bally", + "balms", + "baloo", + "balsa", + "balti", + "balun", + "balus", + "bambi", + "banak", + "banco", + "bancs", + "banda", + "bandh", + "bands", + "bandy", + "baned", + "banes", + "bangs", + "bania", + "banks", + "banns", + "bants", + "bantu", + "banty", + "banya", + "bapus", + "barbe", + "barbs", + "barby", + "barca", + "barde", + "bardo", + "bards", + "bardy", + "bared", + "barer", + "bares", + "barfi", + "barfs", + "baric", + "barks", + "barky", + "barms", + "barmy", + "barns", + "barny", + "barps", + "barra", + "barre", + "barro", + "barry", + "barye", + "basan", + "based", + "basen", + "baser", + "bases", + "basho", + "basij", + "basks", + "bason", + "basse", + "bassi", + "basso", + "bassy", + "basta", + "basti", + "basto", + "basts", + "bated", + "bates", + "baths", + "batik", + "batta", + "batts", + "battu", + "bauds", + "bauks", + "baulk", + "baurs", + "bavin", + "bawds", + "bawks", + "bawls", + "bawns", + "bawrs", + "bawty", + "bayed", + "bayer", + "bayes", + "bayle", + "bayts", + "bazar", + "bazoo", + "beads", + "beaks", + "beaky", + "beals", + "beams", + "beamy", + "beano", + "beans", + "beany", + "beare", + "bears", + "beath", + "beats", + "beaty", + "beaus", + "beaut", + "beaux", + "bebop", + "becap", + "becke", + "becks", + "bedad", + "bedel", + "bedes", + "bedew", + "bedim", + "bedye", + "beedi", + "beefs", + "beeps", + "beers", + "beery", + "beets", + "befog", + "begad", + "begar", + "begem", + "begot", + "begum", + "beige", + "beigy", + "beins", + "bekah", + "belah", + "belar", + "belay", + "belee", + "belga", + "bells", + "belon", + "belts", + "bemad", + "bemas", + "bemix", + "bemud", + "bends", + "bendy", + "benes", + "benet", + "benga", + "benis", + "benne", + "benni", + "benny", + "bento", + "bents", + "benty", + "bepat", + "beray", + "beres", + "bergs", + "berko", + "berks", + "berme", + "berms", + "berob", + "beryl", + "besat", + "besaw", + "besee", + "beses", + "besit", + "besom", + "besot", + "besti", + "bests", + "betas", + "beted", + "betes", + "beths", + "betid", + "beton", + "betta", + "betty", + "bever", + "bevor", + "bevue", + "bevvy", + "bewet", + "bewig", + "bezes", + "bezil", + "bezzy", + "bhais", + "bhaji", + "bhang", + "bhats", + "bhels", + "bhoot", + "bhuna", + "bhuts", + "biach", + "biali", + "bialy", + "bibbs", + "bibes", + "biccy", + "bices", + "bided", + "bider", + "bides", + "bidet", + "bidis", + "bidon", + "bield", + "biers", + "biffo", + "biffs", + "biffy", + "bifid", + "bigae", + "biggs", + "biggy", + "bigha", + "bight", + "bigly", + "bigos", + "bijou", + "biked", + "biker", + "bikes", + "bikie", + "bilbo", + "bilby", + "biled", + "biles", + "bilgy", + "bilks", + "bills", + "bimah", + "bimas", + "bimbo", + "binal", + "bindi", + "binds", + "biner", + "bines", + "bings", + "bingy", + "binit", + "binks", + "bints", + "biogs", + "biont", + "biota", + "biped", + "bipod", + "birds", + "birks", + "birle", + "birls", + "biros", + "birrs", + "birse", + "birsy", + "bises", + "bisks", + "bisom", + "bitch", + "biter", + "bites", + "bitos", + "bitou", + "bitsy", + "bitte", + "bitts", + "bivia", + "bivvy", + "bizes", + "bizzo", + "bizzy", + "blabs", + "blads", + "blady", + "blaer", + "blaes", + "blaff", + "blags", + "blahs", + "blain", + "blams", + "blart", + "blase", + "blash", + "blate", + "blats", + "blatt", + "blaud", + "blawn", + "blaws", + "blays", + "blear", + "blebs", + "blech", + "blees", + "blent", + "blert", + "blest", + "blets", + "bleys", + "blimy", + "bling", + "blini", + "blins", + "bliny", + "blips", + "blist", + "blite", + "blits", + "blive", + "blobs", + "blocs", + "blogs", + "blook", + "bloop", + "blore", + "blots", + "blows", + "blowy", + "blubs", + "blude", + "bluds", + "bludy", + "blued", + "blues", + "bluet", + "bluey", + "bluid", + "blume", + "blunk", + "blurs", + "blype", + "boabs", + "boaks", + "boars", + "boart", + "boats", + "bobac", + "bobak", + "bobas", + "bobol", + "bobos", + "bocca", + "bocce", + "bocci", + "boche", + "bocks", + "boded", + "bodes", + "bodge", + "bodhi", + "bodle", + "boeps", + "boets", + "boeuf", + "boffo", + "boffs", + "bogan", + "bogey", + "boggy", + "bogie", + "bogle", + "bogue", + "bogus", + "bohea", + "bohos", + "boils", + "boing", + "boink", + "boite", + "boked", + "bokeh", + "bokes", + "bokos", + "bolar", + "bolas", + "bolds", + "boles", + "bolix", + "bolls", + "bolos", + "bolts", + "bolus", + "bomas", + "bombe", + "bombo", + "bombs", + "bonce", + "bonds", + "boned", + "boner", + "bones", + "bongs", + "bonie", + "bonks", + "bonne", + "bonny", + "bonza", + "bonze", + "booai", + "booay", + "boobs", + "boody", + "booed", + "boofy", + "boogy", + "boohs", + "books", + "booky", + "bools", + "booms", + "boomy", + "boong", + "boons", + "boord", + "boors", + "boose", + "boots", + "boppy", + "borak", + "boral", + "boras", + "borde", + "bords", + "bored", + "boree", + "borel", + "borer", + "bores", + "borgo", + "boric", + "borks", + "borms", + "borna", + "boron", + "borts", + "borty", + "bortz", + "bosie", + "bosks", + "bosky", + "boson", + "bosun", + "botas", + "botel", + "botes", + "bothy", + "botte", + "botts", + "botty", + "bouge", + "bouks", + "boult", + "bouns", + "bourd", + "bourg", + "bourn", + "bouse", + "bousy", + "bouts", + "bovid", + "bowat", + "bowed", + "bower", + "bowes", + "bowet", + "bowie", + "bowls", + "bowne", + "bowrs", + "bowse", + "boxed", + "boxen", + "boxes", + "boxla", + "boxty", + "boyar", + "boyau", + "boyed", + "boyfs", + "boygs", + "boyla", + "boyos", + "boysy", + "bozos", + "braai", + "brach", + "brack", + "bract", + "brads", + "braes", + "brags", + "brail", + "braks", + "braky", + "brame", + "brane", + "brank", + "brans", + "brant", + "brast", + "brats", + "brava", + "bravi", + "braws", + "braxy", + "brays", + "braza", + "braze", + "bream", + "brede", + "breds", + "breem", + "breer", + "brees", + "breid", + "breis", + "breme", + "brens", + "brent", + "brere", + "brers", + "breve", + "brews", + "breys", + "brier", + "bries", + "brigs", + "briki", + "briks", + "brill", + "brims", + "brins", + "brios", + "brise", + "briss", + "brith", + "brits", + "britt", + "brize", + "broch", + "brock", + "brods", + "brogh", + "brogs", + "brome", + "bromo", + "bronc", + "brond", + "brool", + "broos", + "brose", + "brosy", + "brows", + "brugh", + "bruin", + "bruit", + "brule", + "brume", + "brung", + "brusk", + "brust", + "bruts", + "buats", + "buaze", + "bubal", + "bubas", + "bubba", + "bubbe", + "bubby", + "bubus", + "buchu", + "bucko", + "bucks", + "bucku", + "budas", + "budis", + "budos", + "buffa", + "buffe", + "buffi", + "buffo", + "buffs", + "buffy", + "bufos", + "bufty", + "buhls", + "buhrs", + "buiks", + "buist", + "bukes", + "bulbs", + "bulgy", + "bulks", + "bulla", + "bulls", + "bulse", + "bumbo", + "bumfs", + "bumph", + "bumps", + "bumpy", + "bunas", + "bunce", + "bunco", + "bunde", + "bundh", + "bunds", + "bundt", + "bundu", + "bundy", + "bungs", + "bungy", + "bunia", + "bunje", + "bunjy", + "bunko", + "bunks", + "bunns", + "bunts", + "bunty", + "bunya", + "buoys", + "buppy", + "buran", + "buras", + "burbs", + "burds", + "buret", + "burfi", + "burgh", + "burgs", + "burin", + "burka", + "burke", + "burks", + "burls", + "burns", + "buroo", + "burps", + "burqa", + "burro", + "burrs", + "burry", + "bursa", + "burse", + "busby", + "buses", + "busks", + "busky", + "bussu", + "busti", + "busts", + "busty", + "buteo", + "butes", + "butle", + "butoh", + "butts", + "butty", + "butut", + "butyl", + "buzzy", + "bwana", + "bwazi", + "byded", + "bydes", + "byked", + "bykes", + "byres", + "byrls", + "byssi", + "bytes", + "byway", + "caaed", + "cabas", + "caber", + "cabob", + "caboc", + "cabre", + "cacas", + "cacks", + "cacky", + "cadee", + "cades", + "cadge", + "cadgy", + "cadie", + "cadis", + "cadre", + "caeca", + "caese", + "cafes", + "caffs", + "caged", + "cager", + "cages", + "cagot", + "cahow", + "caids", + "cains", + "caird", + "cajon", + "cajun", + "caked", + "cakes", + "cakey", + "calfs", + "calid", + "calif", + "calix", + "calks", + "calla", + "calls", + "calms", + "calmy", + "calos", + "calpa", + "calps", + "calve", + "calyx", + "caman", + "camas", + "cames", + "camis", + "camos", + "campi", + "campo", + "camps", + "campy", + "camus", + "caned", + "caneh", + "caner", + "canes", + "cangs", + "canid", + "canna", + "canns", + "canso", + "canst", + "canto", + "cants", + "canty", + "capas", + "caped", + "capes", + "capex", + "caphs", + "capiz", + "caple", + "capon", + "capos", + "capot", + "capri", + "capul", + "carap", + "carbo", + "carbs", + "carby", + "cardi", + "cards", + "cardy", + "cared", + "carer", + "cares", + "caret", + "carex", + "carks", + "carle", + "carls", + "carns", + "carny", + "carob", + "carom", + "caron", + "carpi", + "carps", + "carrs", + "carse", + "carta", + "carte", + "carts", + "carvy", + "casas", + "casco", + "cased", + "cases", + "casks", + "casky", + "casts", + "casus", + "cates", + "cauda", + "cauks", + "cauld", + "cauls", + "caums", + "caups", + "cauri", + "causa", + "cavas", + "caved", + "cavel", + "caver", + "caves", + "cavie", + "cawed", + "cawks", + "caxon", + "ceaze", + "cebid", + "cecal", + "cecum", + "ceded", + "ceder", + "cedes", + "cedis", + "ceiba", + "ceili", + "ceils", + "celeb", + "cella", + "celli", + "cells", + "celom", + "celts", + "cense", + "cento", + "cents", + "centu", + "ceorl", + "cepes", + "cerci", + "cered", + "ceres", + "cerge", + "ceria", + "ceric", + "cerne", + "ceroc", + "ceros", + "certs", + "certy", + "cesse", + "cesta", + "cesti", + "cetes", + "cetyl", + "cezve", + "chace", + "chack", + "chaco", + "chado", + "chads", + "chaft", + "chais", + "chals", + "chams", + "chana", + "chang", + "chank", + "chape", + "chaps", + "chapt", + "chara", + "chare", + "chark", + "charr", + "chars", + "chary", + "chats", + "chave", + "chavs", + "chawk", + "chaws", + "chaya", + "chays", + "cheep", + "chefs", + "cheka", + "chela", + "chelp", + "chemo", + "chems", + "chere", + "chert", + "cheth", + "chevy", + "chews", + "chewy", + "chiao", + "chias", + "chibs", + "chica", + "chich", + "chico", + "chics", + "chiel", + "chiks", + "chile", + "chimb", + "chimo", + "chimp", + "chine", + "ching", + "chink", + "chino", + "chins", + "chips", + "chirk", + "chirl", + "chirm", + "chiro", + "chirr", + "chirt", + "chiru", + "chits", + "chive", + "chivs", + "chivy", + "chizz", + "choco", + "chocs", + "chode", + "chogs", + "choil", + "choko", + "choky", + "chola", + "choli", + "cholo", + "chomp", + "chons", + "choof", + "chook", + "choom", + "choon", + "chops", + "chota", + "chott", + "chout", + "choux", + "chowk", + "chows", + "chubs", + "chufa", + "chuff", + "chugs", + "chums", + "churl", + "churr", + "chuse", + "chuts", + "chyle", + "chyme", + "chynd", + "cibol", + "cided", + "cides", + "ciels", + "ciggy", + "cilia", + "cills", + "cimar", + "cimex", + "cinct", + "cines", + "cinqs", + "cions", + "cippi", + "circs", + "cires", + "cirls", + "cirri", + "cisco", + "cissy", + "cists", + "cital", + "cited", + "citer", + "cites", + "cives", + "civet", + "civie", + "civvy", + "clach", + "clade", + "clads", + "claes", + "clags", + "clame", + "clams", + "clans", + "claps", + "clapt", + "claro", + "clart", + "clary", + "clast", + "clats", + "claut", + "clave", + "clavi", + "claws", + "clays", + "cleck", + "cleek", + "cleep", + "clefs", + "clegs", + "cleik", + "clems", + "clepe", + "clept", + "cleve", + "clews", + "clied", + "clies", + "clift", + "clime", + "cline", + "clint", + "clipe", + "clips", + "clipt", + "clits", + "cloam", + "clods", + "cloff", + "clogs", + "cloke", + "clomb", + "clomp", + "clonk", + "clons", + "cloop", + "cloot", + "clops", + "clote", + "clots", + "clour", + "clous", + "clows", + "cloye", + "cloys", + "cloze", + "clubs", + "clues", + "cluey", + "clunk", + "clype", + "cnida", + "coact", + "coady", + "coala", + "coals", + "coaly", + "coapt", + "coarb", + "coate", + "coati", + "coats", + "cobbs", + "cobby", + "cobia", + "coble", + "cobza", + "cocas", + "cocci", + "cocco", + "cocks", + "cocky", + "cocos", + "codas", + "codec", + "coded", + "coden", + "coder", + "codes", + "codex", + "codon", + "coeds", + "coffs", + "cogie", + "cogon", + "cogue", + "cohab", + "cohen", + "cohoe", + "cohog", + "cohos", + "coifs", + "coign", + "coils", + "coins", + "coirs", + "coits", + "coked", + "cokes", + "colas", + "colby", + "colds", + "coled", + "coles", + "coley", + "colic", + "colin", + "colls", + "colly", + "colog", + "colts", + "colza", + "comae", + "comal", + "comas", + "combe", + "combi", + "combo", + "combs", + "comby", + "comer", + "comes", + "comix", + "commo", + "comms", + "commy", + "compo", + "comps", + "compt", + "comte", + "comus", + "coned", + "cones", + "coney", + "confs", + "conga", + "conge", + "congo", + "conia", + "conin", + "conks", + "conky", + "conne", + "conns", + "conte", + "conto", + "conus", + "convo", + "cooch", + "cooed", + "cooee", + "cooer", + "cooey", + "coofs", + "cooks", + "cooky", + "cools", + "cooly", + "coomb", + "cooms", + "coomy", + "coons", + "coops", + "coopt", + "coost", + "coots", + "cooze", + "copal", + "copay", + "coped", + "copen", + "coper", + "copes", + "coppy", + "copra", + "copsy", + "coqui", + "coram", + "corbe", + "corby", + "cords", + "cored", + "cores", + "corey", + "corgi", + "coria", + "corks", + "corky", + "corms", + "corni", + "corno", + "corns", + "cornu", + "corps", + "corse", + "corso", + "cosec", + "cosed", + "coses", + "coset", + "cosey", + "cosie", + "costa", + "coste", + "costs", + "cotan", + "coted", + "cotes", + "coths", + "cotta", + "cotts", + "coude", + "coups", + "courb", + "courd", + "coure", + "cours", + "couta", + "couth", + "coved", + "coves", + "covin", + "cowal", + "cowan", + "cowed", + "cowks", + "cowls", + "cowps", + "cowry", + "coxae", + "coxal", + "coxed", + "coxes", + "coxib", + "coyau", + "coyed", + "coyer", + "coypu", + "cozed", + "cozen", + "cozes", + "cozey", + "cozie", + "craal", + "crabs", + "crags", + "craic", + "craig", + "crake", + "crame", + "crams", + "crans", + "crape", + "craps", + "crapy", + "crare", + "craws", + "crays", + "creds", + "creel", + "crees", + "crems", + "crena", + "creps", + "crepy", + "crewe", + "crews", + "crias", + "cribs", + "cries", + "crims", + "crine", + "crios", + "cripe", + "crips", + "crise", + "crith", + "crits", + "croci", + "crocs", + "croft", + "crogs", + "cromb", + "crome", + "cronk", + "crons", + "crool", + "croon", + "crops", + "crore", + "crost", + "crout", + "crows", + "croze", + "cruck", + "crudo", + "cruds", + "crudy", + "crues", + "cruet", + "cruft", + "crunk", + "cruor", + "crura", + "cruse", + "crusy", + "cruve", + "crwth", + "cryer", + "ctene", + "cubby", + "cubeb", + "cubed", + "cuber", + "cubes", + "cubit", + "cuddy", + "cuffo", + "cuffs", + "cuifs", + "cuing", + "cuish", + "cuits", + "cukes", + "culch", + "culet", + "culex", + "culls", + "cully", + "culms", + "culpa", + "culti", + "cults", + "culty", + "cumec", + "cundy", + "cunei", + "cunit", + "cunts", + "cupel", + "cupid", + "cuppa", + "cuppy", + "curat", + "curbs", + "curch", + "curds", + "curdy", + "cured", + "curer", + "cures", + "curet", + "curfs", + "curia", + "curie", + "curli", + "curls", + "curns", + "curny", + "currs", + "cursi", + "curst", + "cusec", + "cushy", + "cusks", + "cusps", + "cuspy", + "cusso", + "cusum", + "cutch", + "cuter", + "cutes", + "cutey", + "cutin", + "cutis", + "cutto", + "cutty", + "cutup", + "cuvee", + "cuzes", + "cwtch", + "cyano", + "cyans", + "cycad", + "cycas", + "cyclo", + "cyder", + "cylix", + "cymae", + "cymar", + "cymas", + "cymes", + "cymol", + "cysts", + "cytes", + "cyton", + "czars", + "daals", + "dabba", + "daces", + "dacha", + "dacks", + "dadah", + "dadas", + "dados", + "daffs", + "daffy", + "dagga", + "daggy", + "dagos", + "dahls", + "daiko", + "daine", + "daint", + "daker", + "daled", + "dales", + "dalis", + "dalle", + "dalts", + "daman", + "damar", + "dames", + "damme", + "damns", + "damps", + "dampy", + "dancy", + "dangs", + "danio", + "danks", + "danny", + "dants", + "daraf", + "darbs", + "darcy", + "dared", + "darer", + "dares", + "darga", + "dargs", + "daric", + "daris", + "darks", + "darky", + "darns", + "darre", + "darts", + "darzi", + "dashi", + "dashy", + "datal", + "dated", + "dater", + "dates", + "datos", + "datto", + "daube", + "daubs", + "dauby", + "dauds", + "dault", + "daurs", + "dauts", + "daven", + "davit", + "dawah", + "dawds", + "dawed", + "dawen", + "dawks", + "dawns", + "dawts", + "dayan", + "daych", + "daynt", + "dazed", + "dazer", + "dazes", + "deads", + "deair", + "deals", + "deans", + "deare", + "dearn", + "dears", + "deary", + "deash", + "deave", + "deaws", + "deawy", + "debag", + "debby", + "debel", + "debes", + "debts", + "debud", + "debur", + "debus", + "debye", + "decad", + "decaf", + "decan", + "decko", + "decks", + "decos", + "dedal", + "deeds", + "deedy", + "deely", + "deems", + "deens", + "deeps", + "deere", + "deers", + "deets", + "deeve", + "deevs", + "defat", + "deffo", + "defis", + "defog", + "degas", + "degum", + "degus", + "deice", + "deids", + "deify", + "deils", + "deism", + "deist", + "deked", + "dekes", + "dekko", + "deled", + "deles", + "delfs", + "delft", + "delis", + "dells", + "delly", + "delos", + "delph", + "delts", + "deman", + "demes", + "demic", + "demit", + "demob", + "demoi", + "demos", + "dempt", + "denar", + "denay", + "dench", + "denes", + "denet", + "denis", + "dents", + "deoxy", + "derat", + "deray", + "dered", + "deres", + "derig", + "derma", + "derms", + "derns", + "derny", + "deros", + "derro", + "derry", + "derth", + "dervs", + "desex", + "deshi", + "desis", + "desks", + "desse", + "devas", + "devel", + "devis", + "devon", + "devos", + "devot", + "dewan", + "dewar", + "dewax", + "dewed", + "dexes", + "dexie", + "dhaba", + "dhaks", + "dhals", + "dhikr", + "dhobi", + "dhole", + "dholl", + "dhols", + "dhoti", + "dhows", + "dhuti", + "diact", + "dials", + "diane", + "diazo", + "dibbs", + "diced", + "dicer", + "dices", + "dicht", + "dicks", + "dicky", + "dicot", + "dicta", + "dicts", + "dicty", + "diddy", + "didie", + "didos", + "didst", + "diebs", + "diels", + "diene", + "diets", + "diffs", + "dight", + "dikas", + "diked", + "diker", + "dikes", + "dikey", + "dildo", + "dilli", + "dills", + "dimbo", + "dimer", + "dimes", + "dimps", + "dinar", + "dined", + "dines", + "dinge", + "dings", + "dinic", + "dinks", + "dinky", + "dinna", + "dinos", + "dints", + "diols", + "diota", + "dippy", + "dipso", + "diram", + "direr", + "dirke", + "dirks", + "dirls", + "dirts", + "disas", + "disci", + "discs", + "dishy", + "disks", + "disme", + "dital", + "ditas", + "dited", + "dites", + "ditsy", + "ditts", + "ditzy", + "divan", + "divas", + "dived", + "dives", + "divis", + "divna", + "divos", + "divot", + "divvy", + "diwan", + "dixie", + "dixit", + "diyas", + "dizen", + "djinn", + "djins", + "doabs", + "doats", + "dobby", + "dobes", + "dobie", + "dobla", + "dobra", + "dobro", + "docht", + "docks", + "docos", + "docus", + "doddy", + "dodos", + "doeks", + "doers", + "doest", + "doeth", + "doffs", + "dogan", + "doges", + "dogey", + "doggo", + "doggy", + "dogie", + "dohyo", + "doilt", + "doily", + "doits", + "dojos", + "dolce", + "dolci", + "doled", + "doles", + "dolia", + "dolls", + "dolma", + "dolor", + "dolos", + "dolts", + "domal", + "domed", + "domes", + "domic", + "donah", + "donas", + "donee", + "doner", + "donga", + "dongs", + "donko", + "donna", + "donne", + "donny", + "donsy", + "doobs", + "dooce", + "doody", + "dooks", + "doole", + "dools", + "dooly", + "dooms", + "doomy", + "doona", + "doorn", + "doors", + "doozy", + "dopas", + "doped", + "doper", + "dopes", + "dorad", + "dorba", + "dorbs", + "doree", + "dores", + "doric", + "doris", + "dorks", + "dorky", + "dorms", + "dormy", + "dorps", + "dorrs", + "dorsa", + "dorse", + "dorts", + "dorty", + "dosai", + "dosas", + "dosed", + "doseh", + "doser", + "doses", + "dosha", + "dotal", + "doted", + "doter", + "dotes", + "dotty", + "douar", + "douce", + "doucs", + "douks", + "doula", + "douma", + "doums", + "doups", + "doura", + "douse", + "douts", + "doved", + "doven", + "dover", + "doves", + "dovie", + "dowar", + "dowds", + "dowed", + "dower", + "dowie", + "dowle", + "dowls", + "dowly", + "downa", + "downs", + "dowps", + "dowse", + "dowts", + "doxed", + "doxes", + "doxie", + "doyen", + "doyly", + "dozed", + "dozer", + "dozes", + "drabs", + "drack", + "draco", + "draff", + "drags", + "drail", + "drams", + "drant", + "draps", + "drats", + "drave", + "draws", + "drays", + "drear", + "dreck", + "dreed", + "dreer", + "drees", + "dregs", + "dreks", + "drent", + "drere", + "drest", + "dreys", + "dribs", + "drice", + "dries", + "drily", + "drips", + "dript", + "droid", + "droil", + "droke", + "drole", + "drome", + "drony", + "droob", + "droog", + "drook", + "drops", + "dropt", + "drouk", + "drows", + "drubs", + "drugs", + "drums", + "drupe", + "druse", + "drusy", + "druxy", + "dryad", + "dryas", + "dsobo", + "dsomo", + "duads", + "duals", + "duans", + "duars", + "dubbo", + "ducal", + "ducat", + "duces", + "ducks", + "ducky", + "ducts", + "duddy", + "duded", + "dudes", + "duels", + "duets", + "duett", + "duffs", + "dufus", + "duing", + "duits", + "dukas", + "duked", + "dukes", + "dukka", + "dulce", + "dules", + "dulia", + "dulls", + "dulse", + "dumas", + "dumbo", + "dumbs", + "dumka", + "dumky", + "dumps", + "dunam", + "dunch", + "dunes", + "dungs", + "dungy", + "dunks", + "dunno", + "dunny", + "dunsh", + "dunts", + "duomi", + "duomo", + "duped", + "duper", + "dupes", + "duple", + "duply", + "duppy", + "dural", + "duras", + "dured", + "dures", + "durgy", + "durns", + "duroc", + "duros", + "duroy", + "durra", + "durrs", + "durry", + "durst", + "durum", + "durzi", + "dusks", + "dusts", + "duxes", + "dwaal", + "dwale", + "dwalm", + "dwams", + "dwang", + "dwaum", + "dweeb", + "dwile", + "dwine", + "dyads", + "dyers", + "dyked", + "dykes", + "dykey", + "dykon", + "dynel", + "dynes", + "dzhos", + "eagre", + "ealed", + "eales", + "eaned", + "eards", + "eared", + "earls", + "earns", + "earnt", + "earst", + "eased", + "easer", + "eases", + "easle", + "easts", + "eathe", + "eaved", + "eaves", + "ebbed", + "ebbet", + "ebons", + "ebook", + "ecads", + "eched", + "eches", + "echos", + "ecrus", + "edema", + "edged", + "edger", + "edges", + "edile", + "edits", + "educe", + "educt", + "eejit", + "eensy", + "eeven", + "eevns", + "effed", + "egads", + "egers", + "egest", + "eggar", + "egged", + "egger", + "egmas", + "ehing", + "eider", + "eidos", + "eigne", + "eiked", + "eikon", + "eilds", + "eisel", + "ejido", + "ekkas", + "elain", + "eland", + "elans", + "elchi", + "eldin", + "elemi", + "elfed", + "eliad", + "elint", + "elmen", + "eloge", + "elogy", + "eloin", + "elops", + "elpee", + "elsin", + "elute", + "elvan", + "elven", + "elver", + "elves", + "emacs", + "embar", + "embay", + "embog", + "embow", + "embox", + "embus", + "emeer", + "emend", + "emerg", + "emery", + "emeus", + "emics", + "emirs", + "emits", + "emmas", + "emmer", + "emmet", + "emmew", + "emmys", + "emoji", + "emong", + "emote", + "emove", + "empts", + "emule", + "emure", + "emyde", + "emyds", + "enarm", + "enate", + "ended", + "ender", + "endew", + "endue", + "enews", + "enfix", + "eniac", + "enlit", + "enmew", + "ennog", + "enoki", + "enols", + "enorm", + "enows", + "enrol", + "ensew", + "ensky", + "entia", + "enure", + "enurn", + "envoi", + "enzym", + "eorls", + "eosin", + "epact", + "epees", + "ephah", + "ephas", + "ephod", + "ephor", + "epics", + "epode", + "epopt", + "epris", + "eques", + "equid", + "erbia", + "erevs", + "ergon", + "ergos", + "ergot", + "erhus", + "erica", + "erick", + "erics", + "ering", + "erned", + "ernes", + "erose", + "erred", + "erses", + "eruct", + "erugo", + "eruvs", + "erven", + "ervil", + "escar", + "escot", + "esile", + "eskar", + "esker", + "esnes", + "esses", + "estoc", + "estop", + "estro", + "etage", + "etape", + "etats", + "etens", + "ethal", + "ethne", + "ethyl", + "etics", + "etnas", + "ettin", + "ettle", + "etuis", + "etwee", + "etyma", + "eughs", + "euked", + "eupad", + "euros", + "eusol", + "evens", + "evert", + "evets", + "evhoe", + "evils", + "evite", + "evohe", + "ewers", + "ewest", + "ewhow", + "ewked", + "exams", + "exeat", + "execs", + "exeem", + "exeme", + "exfil", + "exies", + "exine", + "exing", + "exits", + "exode", + "exome", + "exons", + "expat", + "expos", + "exude", + "exuls", + "exurb", + "eyass", + "eyers", + "eyots", + "eyras", + "eyres", + "eyrie", + "eyrir", + "ezine", + "fabby", + "faced", + "facer", + "faces", + "facia", + "facta", + "facts", + "faddy", + "faded", + "fader", + "fades", + "fadge", + "fados", + "faena", + "faery", + "faffs", + "faffy", + "faggy", + "fagin", + "fagot", + "faiks", + "fails", + "faine", + "fains", + "fairs", + "faked", + "faker", + "fakes", + "fakey", + "fakie", + "fakir", + "falaj", + "falls", + "famed", + "fames", + "fanal", + "fands", + "fanes", + "fanga", + "fango", + "fangs", + "fanks", + "fanon", + "fanos", + "fanum", + "faqir", + "farad", + "farci", + "farcy", + "fards", + "fared", + "farer", + "fares", + "farle", + "farls", + "farms", + "faros", + "farro", + "farse", + "farts", + "fasci", + "fasti", + "fasts", + "fated", + "fates", + "fatly", + "fatso", + "fatwa", + "faugh", + "fauld", + "fauns", + "faurd", + "fauts", + "fauve", + "favas", + "favel", + "faver", + "faves", + "favus", + "fawns", + "fawny", + "faxed", + "faxes", + "fayed", + "fayer", + "fayne", + "fayre", + "fazed", + "fazes", + "feals", + "feare", + "fears", + "feart", + "fease", + "feats", + "feaze", + "feces", + "fecht", + "fecit", + "fecks", + "fedex", + "feebs", + "feeds", + "feels", + "feens", + "feers", + "feese", + "feeze", + "fehme", + "feint", + "feist", + "felch", + "felid", + "fells", + "felly", + "felts", + "felty", + "femal", + "femes", + "femmy", + "fends", + "fendy", + "fenis", + "fenks", + "fenny", + "fents", + "feods", + "feoff", + "ferer", + "feres", + "feria", + "ferly", + "fermi", + "ferms", + "ferns", + "ferny", + "fesse", + "festa", + "fests", + "festy", + "fetas", + "feted", + "fetes", + "fetor", + "fetta", + "fetts", + "fetwa", + "feuar", + "feuds", + "feued", + "feyed", + "feyer", + "feyly", + "fezes", + "fezzy", + "fiars", + "fiats", + "fibro", + "fices", + "fiche", + "fichu", + "ficin", + "ficos", + "fides", + "fidge", + "fidos", + "fiefs", + "fient", + "fiere", + "fiers", + "fiest", + "fifed", + "fifer", + "fifes", + "fifis", + "figgy", + "figos", + "fiked", + "fikes", + "filar", + "filch", + "filed", + "files", + "filii", + "filks", + "fille", + "fillo", + "fills", + "filmi", + "films", + "filos", + "filum", + "finca", + "finds", + "fined", + "fines", + "finis", + "finks", + "finny", + "finos", + "fiord", + "fiqhs", + "fique", + "fired", + "firer", + "fires", + "firie", + "firks", + "firms", + "firns", + "firry", + "firth", + "fiscs", + "fisks", + "fists", + "fisty", + "fitch", + "fitly", + "fitna", + "fitte", + "fitts", + "fiver", + "fives", + "fixed", + "fixes", + "fixit", + "fjeld", + "flabs", + "flaff", + "flags", + "flaks", + "flamm", + "flams", + "flamy", + "flane", + "flans", + "flaps", + "flary", + "flats", + "flava", + "flawn", + "flaws", + "flawy", + "flaxy", + "flays", + "fleam", + "fleas", + "fleek", + "fleer", + "flees", + "flegs", + "fleme", + "fleur", + "flews", + "flexi", + "flexo", + "fleys", + "flics", + "flied", + "flies", + "flimp", + "flims", + "flips", + "flirs", + "flisk", + "flite", + "flits", + "flitt", + "flobs", + "flocs", + "floes", + "flogs", + "flong", + "flops", + "flors", + "flory", + "flosh", + "flota", + "flote", + "flows", + "flubs", + "flued", + "flues", + "fluey", + "fluky", + "flump", + "fluor", + "flurr", + "fluty", + "fluyt", + "flyby", + "flype", + "flyte", + "foals", + "foams", + "foehn", + "fogey", + "fogie", + "fogle", + "fogou", + "fohns", + "foids", + "foils", + "foins", + "folds", + "foley", + "folia", + "folic", + "folie", + "folks", + "folky", + "fomes", + "fonda", + "fonds", + "fondu", + "fones", + "fonly", + "fonts", + "foods", + "foody", + "fools", + "foots", + "footy", + "foram", + "forbs", + "forby", + "fordo", + "fords", + "forel", + "fores", + "forex", + "forks", + "forky", + "forme", + "forms", + "forts", + "forza", + "forze", + "fossa", + "fosse", + "fouat", + "fouds", + "fouer", + "fouet", + "foule", + "fouls", + "fount", + "fours", + "fouth", + "fovea", + "fowls", + "fowth", + "foxed", + "foxes", + "foxie", + "foyle", + "foyne", + "frabs", + "frack", + "fract", + "frags", + "fraim", + "franc", + "frape", + "fraps", + "frass", + "frate", + "frati", + "frats", + "fraus", + "frays", + "frees", + "freet", + "freit", + "fremd", + "frena", + "freon", + "frere", + "frets", + "fribs", + "frier", + "fries", + "frigs", + "frise", + "frist", + "frith", + "frits", + "fritt", + "frize", + "frizz", + "froes", + "frogs", + "frons", + "frore", + "frorn", + "frory", + "frosh", + "frows", + "frowy", + "frugs", + "frump", + "frush", + "frust", + "fryer", + "fubar", + "fubby", + "fubsy", + "fucks", + "fucus", + "fuddy", + "fudgy", + "fuels", + "fuero", + "fuffs", + "fuffy", + "fugal", + "fuggy", + "fugie", + "fugio", + "fugle", + "fugly", + "fugus", + "fujis", + "fulls", + "fumed", + "fumer", + "fumes", + "fumet", + "fundi", + "funds", + "fundy", + "fungo", + "fungs", + "funks", + "fural", + "furan", + "furca", + "furls", + "furol", + "furrs", + "furth", + "furze", + "furzy", + "fused", + "fusee", + "fusel", + "fuses", + "fusil", + "fusks", + "fusts", + "fusty", + "futon", + "fuzed", + "fuzee", + "fuzes", + "fuzil", + "fyces", + "fyked", + "fykes", + "fyles", + "fyrds", + "fytte", + "gabba", + "gabby", + "gable", + "gaddi", + "gades", + "gadge", + "gadid", + "gadis", + "gadje", + "gadjo", + "gadso", + "gaffs", + "gaged", + "gager", + "gages", + "gaids", + "gains", + "gairs", + "gaita", + "gaits", + "gaitt", + "gajos", + "galah", + "galas", + "galax", + "galea", + "galed", + "gales", + "galls", + "gally", + "galop", + "galut", + "galvo", + "gamas", + "gamay", + "gamba", + "gambe", + "gambo", + "gambs", + "gamed", + "games", + "gamey", + "gamic", + "gamin", + "gamme", + "gammy", + "gamps", + "ganch", + "gandy", + "ganef", + "ganev", + "gangs", + "ganja", + "ganof", + "gants", + "gaols", + "gaped", + "gaper", + "gapes", + "gapos", + "gappy", + "garbe", + "garbo", + "garbs", + "garda", + "gares", + "garis", + "garms", + "garni", + "garre", + "garth", + "garum", + "gases", + "gasps", + "gaspy", + "gasts", + "gatch", + "gated", + "gater", + "gates", + "gaths", + "gator", + "gauch", + "gaucy", + "gauds", + "gauje", + "gault", + "gaums", + "gaumy", + "gaups", + "gaurs", + "gauss", + "gauzy", + "gavot", + "gawcy", + "gawds", + "gawks", + "gawps", + "gawsy", + "gayal", + "gazal", + "gazar", + "gazed", + "gazes", + "gazon", + "gazoo", + "geals", + "geans", + "geare", + "gears", + "geats", + "gebur", + "gecks", + "geeks", + "geeps", + "geest", + "geist", + "geits", + "gelds", + "gelee", + "gelid", + "gelly", + "gelts", + "gemel", + "gemma", + "gemmy", + "gemot", + "genal", + "genas", + "genes", + "genet", + "genic", + "genii", + "genip", + "genny", + "genoa", + "genom", + "genro", + "gents", + "genty", + "genua", + "genus", + "geode", + "geoid", + "gerah", + "gerbe", + "geres", + "gerle", + "germs", + "germy", + "gerne", + "gesse", + "gesso", + "geste", + "gests", + "getas", + "getup", + "geums", + "geyan", + "geyer", + "ghast", + "ghats", + "ghaut", + "ghazi", + "ghees", + "ghest", + "ghyll", + "gibed", + "gibel", + "giber", + "gibes", + "gibli", + "gibus", + "gifts", + "gigas", + "gighe", + "gigot", + "gigue", + "gilas", + "gilds", + "gilet", + "gills", + "gilly", + "gilpy", + "gilts", + "gimel", + "gimme", + "gimps", + "gimpy", + "ginch", + "ginge", + "gings", + "ginks", + "ginny", + "ginzo", + "gipon", + "gippo", + "gippy", + "girds", + "girls", + "girns", + "giron", + "giros", + "girrs", + "girsh", + "girts", + "gismo", + "gisms", + "gists", + "gitch", + "gites", + "giust", + "gived", + "gives", + "gizmo", + "glace", + "glads", + "glady", + "glaik", + "glair", + "glams", + "glans", + "glary", + "glaum", + "glaur", + "glazy", + "gleba", + "glebe", + "gleby", + "glede", + "gleds", + "gleed", + "gleek", + "glees", + "gleet", + "gleis", + "glens", + "glent", + "gleys", + "glial", + "glias", + "glibs", + "gliff", + "glift", + "glike", + "glime", + "glims", + "glisk", + "glits", + "glitz", + "gloam", + "globi", + "globs", + "globy", + "glode", + "glogg", + "gloms", + "gloop", + "glops", + "glost", + "glout", + "glows", + "gloze", + "glued", + "gluer", + "glues", + "gluey", + "glugs", + "glume", + "glums", + "gluon", + "glute", + "gluts", + "gnarl", + "gnarr", + "gnars", + "gnats", + "gnawn", + "gnaws", + "gnows", + "goads", + "goafs", + "goals", + "goary", + "goats", + "goaty", + "goban", + "gobar", + "gobbi", + "gobbo", + "gobby", + "gobis", + "gobos", + "godet", + "godso", + "goels", + "goers", + "goest", + "goeth", + "goety", + "gofer", + "goffs", + "gogga", + "gogos", + "goier", + "gojis", + "golds", + "goldy", + "goles", + "golfs", + "golpe", + "golps", + "gombo", + "gomer", + "gompa", + "gonch", + "gonef", + "gongs", + "gonia", + "gonif", + "gonks", + "gonna", + "gonof", + "gonys", + "gonzo", + "gooby", + "goods", + "goofs", + "googs", + "gooks", + "gooky", + "goold", + "gools", + "gooly", + "goons", + "goony", + "goops", + "goopy", + "goors", + "goory", + "goosy", + "gopak", + "gopik", + "goral", + "goras", + "gored", + "gores", + "goris", + "gorms", + "gormy", + "gorps", + "gorse", + "gorsy", + "gosht", + "gosse", + "gotch", + "goths", + "gothy", + "gotta", + "gouch", + "gouks", + "goura", + "gouts", + "gouty", + "gowan", + "gowds", + "gowfs", + "gowks", + "gowls", + "gowns", + "goxes", + "goyim", + "goyle", + "graal", + "grabs", + "grads", + "graff", + "graip", + "grama", + "grame", + "gramp", + "grams", + "grana", + "grans", + "grapy", + "gravs", + "grays", + "grebe", + "grebo", + "grece", + "greek", + "grees", + "grege", + "grego", + "grein", + "grens", + "grese", + "greve", + "grews", + "greys", + "grice", + "gride", + "grids", + "griff", + "grift", + "grigs", + "grike", + "grins", + "griot", + "grips", + "gript", + "gripy", + "grise", + "grist", + "grisy", + "grith", + "grits", + "grize", + "groat", + "grody", + "grogs", + "groks", + "groma", + "grone", + "groof", + "grosz", + "grots", + "grouf", + "grovy", + "grows", + "grrls", + "grrrl", + "grubs", + "grued", + "grues", + "grufe", + "grume", + "grump", + "grund", + "gryce", + "gryde", + "gryke", + "grype", + "grypt", + "guaco", + "guana", + "guano", + "guans", + "guars", + "gucks", + "gucky", + "gudes", + "guffs", + "gugas", + "guids", + "guimp", + "guiro", + "gulag", + "gular", + "gulas", + "gules", + "gulet", + "gulfs", + "gulfy", + "gulls", + "gulph", + "gulps", + "gulpy", + "gumma", + "gummi", + "gumps", + "gundy", + "gunge", + "gungy", + "gunks", + "gunky", + "gunny", + "guqin", + "gurdy", + "gurge", + "gurls", + "gurly", + "gurns", + "gurry", + "gursh", + "gurus", + "gushy", + "gusla", + "gusle", + "gusli", + "gussy", + "gusts", + "gutsy", + "gutta", + "gutty", + "guyed", + "guyle", + "guyot", + "guyse", + "gwine", + "gyals", + "gyans", + "gybed", + "gybes", + "gyeld", + "gymps", + "gynae", + "gynie", + "gynny", + "gynos", + "gyoza", + "gypos", + "gyppo", + "gyppy", + "gyral", + "gyred", + "gyres", + "gyron", + "gyros", + "gyrus", + "gytes", + "gyved", + "gyves", + "haafs", + "haars", + "hable", + "habus", + "hacek", + "hacks", + "hadal", + "haded", + "hades", + "hadji", + "hadst", + "haems", + "haets", + "haffs", + "hafiz", + "hafts", + "haggs", + "hahas", + "haick", + "haika", + "haiks", + "haiku", + "hails", + "haily", + "hains", + "haint", + "hairs", + "haith", + "hajes", + "hajis", + "hajji", + "hakam", + "hakas", + "hakea", + "hakes", + "hakim", + "hakus", + "halal", + "haled", + "haler", + "hales", + "halfa", + "halfs", + "halid", + "hallo", + "halls", + "halma", + "halms", + "halon", + "halos", + "halse", + "halts", + "halva", + "halwa", + "hamal", + "hamba", + "hamed", + "hames", + "hammy", + "hamza", + "hanap", + "hance", + "hanch", + "hands", + "hangi", + "hangs", + "hanks", + "hanky", + "hansa", + "hanse", + "hants", + "haole", + "haoma", + "hapax", + "haply", + "happi", + "hapus", + "haram", + "hards", + "hared", + "hares", + "harim", + "harks", + "harls", + "harms", + "harns", + "haros", + "harps", + "harts", + "hashy", + "hasks", + "hasps", + "hasta", + "hated", + "hates", + "hatha", + "hauds", + "haufs", + "haugh", + "hauld", + "haulm", + "hauls", + "hault", + "hauns", + "hause", + "haver", + "haves", + "hawed", + "hawks", + "hawms", + "hawse", + "hayed", + "hayer", + "hayey", + "hayle", + "hazan", + "hazed", + "hazer", + "hazes", + "heads", + "heald", + "heals", + "heame", + "heaps", + "heapy", + "heare", + "hears", + "heast", + "heats", + "heben", + "hebes", + "hecht", + "hecks", + "heder", + "hedgy", + "heeds", + "heedy", + "heels", + "heeze", + "hefte", + "hefts", + "heids", + "heigh", + "heils", + "heirs", + "hejab", + "hejra", + "heled", + "heles", + "helio", + "hells", + "helms", + "helos", + "helot", + "helps", + "helve", + "hemal", + "hemes", + "hemic", + "hemin", + "hemps", + "hempy", + "hench", + "hends", + "henge", + "henna", + "henny", + "henry", + "hents", + "hepar", + "herbs", + "herby", + "herds", + "heres", + "herls", + "herma", + "herms", + "herns", + "heros", + "herry", + "herse", + "hertz", + "herye", + "hesps", + "hests", + "hetes", + "heths", + "heuch", + "heugh", + "hevea", + "hewed", + "hewer", + "hewgh", + "hexad", + "hexed", + "hexer", + "hexes", + "hexyl", + "heyed", + "hiant", + "hicks", + "hided", + "hider", + "hides", + "hiems", + "highs", + "hight", + "hijab", + "hijra", + "hiked", + "hiker", + "hikes", + "hikoi", + "hilar", + "hilch", + "hillo", + "hills", + "hilts", + "hilum", + "hilus", + "himbo", + "hinau", + "hinds", + "hings", + "hinky", + "hinny", + "hints", + "hiois", + "hiply", + "hired", + "hiree", + "hirer", + "hires", + "hissy", + "hists", + "hithe", + "hived", + "hiver", + "hives", + "hizen", + "hoaed", + "hoagy", + "hoars", + "hoary", + "hoast", + "hobos", + "hocks", + "hocus", + "hodad", + "hodja", + "hoers", + "hogan", + "hogen", + "hoggs", + "hoghs", + "hohed", + "hoick", + "hoied", + "hoiks", + "hoing", + "hoise", + "hokas", + "hoked", + "hokes", + "hokey", + "hokis", + "hokku", + "hokum", + "holds", + "holed", + "holes", + "holey", + "holks", + "holla", + "hollo", + "holme", + "holms", + "holon", + "holos", + "holts", + "homas", + "homed", + "homes", + "homey", + "homie", + "homme", + "homos", + "honan", + "honda", + "honds", + "honed", + "honer", + "hones", + "hongi", + "hongs", + "honks", + "honky", + "hooch", + "hoods", + "hoody", + "hooey", + "hoofs", + "hooka", + "hooks", + "hooky", + "hooly", + "hoons", + "hoops", + "hoord", + "hoors", + "hoosh", + "hoots", + "hooty", + "hoove", + "hopak", + "hoped", + "hoper", + "hopes", + "hoppy", + "horah", + "horal", + "horas", + "horis", + "horks", + "horme", + "horns", + "horst", + "horsy", + "hosed", + "hosel", + "hosen", + "hoser", + "hoses", + "hosey", + "hosta", + "hosts", + "hotch", + "hoten", + "hotty", + "houff", + "houfs", + "hough", + "houri", + "hours", + "houts", + "hovea", + "hoved", + "hoven", + "hoves", + "howbe", + "howes", + "howff", + "howfs", + "howks", + "howls", + "howre", + "howso", + "hoxed", + "hoxes", + "hoyas", + "hoyed", + "hoyle", + "hubby", + "hucks", + "hudna", + "hudud", + "huers", + "huffs", + "huffy", + "huger", + "huggy", + "huhus", + "huias", + "hulas", + "hules", + "hulks", + "hulky", + "hullo", + "hulls", + "hully", + "humas", + "humfs", + "humic", + "humps", + "humpy", + "hunks", + "hunts", + "hurds", + "hurls", + "hurly", + "hurra", + "hurst", + "hurts", + "hushy", + "husks", + "husos", + "hutia", + "huzza", + "huzzy", + "hwyls", + "hydra", + "hyens", + "hygge", + "hying", + "hykes", + "hylas", + "hyleg", + "hyles", + "hylic", + "hymns", + "hynde", + "hyoid", + "hyped", + "hypes", + "hypha", + "hyphy", + "hypos", + "hyrax", + "hyson", + "hythe", + "iambi", + "iambs", + "ibrik", + "icers", + "iched", + "iches", + "ichor", + "icier", + "icker", + "ickle", + "icons", + "ictal", + "ictic", + "ictus", + "idant", + "ideas", + "idees", + "ident", + "idled", + "idles", + "idola", + "idols", + "idyls", + "iftar", + "igapo", + "igged", + "iglus", + "ihram", + "ikans", + "ikats", + "ikons", + "ileac", + "ileal", + "ileum", + "ileus", + "iliad", + "ilial", + "ilium", + "iller", + "illth", + "imago", + "imams", + "imari", + "imaum", + "imbar", + "imbed", + "imide", + "imido", + "imids", + "imine", + "imino", + "immew", + "immit", + "immix", + "imped", + "impis", + "impot", + "impro", + "imshi", + "imshy", + "inapt", + "inarm", + "inbye", + "incel", + "incle", + "incog", + "incus", + "incut", + "indew", + "india", + "indie", + "indol", + "indow", + "indri", + "indue", + "inerm", + "infix", + "infos", + "infra", + "ingan", + "ingle", + "inion", + "inked", + "inker", + "inkle", + "inned", + "innit", + "inorb", + "inrun", + "inset", + "inspo", + "intel", + "intil", + "intis", + "intra", + "inula", + "inure", + "inurn", + "inust", + "invar", + "inwit", + "iodic", + "iodid", + "iodin", + "iotas", + "ippon", + "irade", + "irids", + "iring", + "irked", + "iroko", + "irone", + "irons", + "isbas", + "ishes", + "isled", + "isles", + "isnae", + "issei", + "istle", + "items", + "ither", + "ivied", + "ivies", + "ixias", + "ixnay", + "ixora", + "ixtle", + "izard", + "izars", + "izzat", + "jaaps", + "jabot", + "jacal", + "jacks", + "jacky", + "jaded", + "jades", + "jafas", + "jaffa", + "jagas", + "jager", + "jaggs", + "jaggy", + "jagir", + "jagra", + "jails", + "jaker", + "jakes", + "jakey", + "jalap", + "jalop", + "jambe", + "jambo", + "jambs", + "jambu", + "james", + "jammy", + "jamon", + "janes", + "janns", + "janny", + "janty", + "japan", + "japed", + "japer", + "japes", + "jarks", + "jarls", + "jarps", + "jarta", + "jarul", + "jasey", + "jaspe", + "jasps", + "jatos", + "jauks", + "jaups", + "javas", + "javel", + "jawan", + "jawed", + "jaxie", + "jeans", + "jeats", + "jebel", + "jedis", + "jeels", + "jeely", + "jeeps", + "jeers", + "jeeze", + "jefes", + "jeffs", + "jehad", + "jehus", + "jelab", + "jello", + "jells", + "jembe", + "jemmy", + "jenny", + "jeons", + "jerid", + "jerks", + "jerry", + "jesse", + "jests", + "jesus", + "jetes", + "jeton", + "jeune", + "jewed", + "jewie", + "jhala", + "jiaos", + "jibba", + "jibbs", + "jibed", + "jiber", + "jibes", + "jiffs", + "jiggy", + "jigot", + "jihad", + "jills", + "jilts", + "jimmy", + "jimpy", + "jingo", + "jinks", + "jinne", + "jinni", + "jinns", + "jirds", + "jirga", + "jirre", + "jisms", + "jived", + "jiver", + "jives", + "jivey", + "jnana", + "jobed", + "jobes", + "jocko", + "jocks", + "jocky", + "jocos", + "jodel", + "joeys", + "johns", + "joins", + "joked", + "jokes", + "jokey", + "jokol", + "joled", + "joles", + "jolls", + "jolts", + "jolty", + "jomon", + "jomos", + "jones", + "jongs", + "jonty", + "jooks", + "joram", + "jorum", + "jotas", + "jotty", + "jotun", + "joual", + "jougs", + "jouks", + "joule", + "jours", + "jowar", + "jowed", + "jowls", + "jowly", + "joyed", + "jubas", + "jubes", + "jucos", + "judas", + "judgy", + "judos", + "jugal", + "jugum", + "jujus", + "juked", + "jukes", + "jukus", + "julep", + "jumar", + "jumby", + "jumps", + "junco", + "junks", + "junky", + "jupes", + "jupon", + "jural", + "jurat", + "jurel", + "jures", + "justs", + "jutes", + "jutty", + "juves", + "juvie", + "kaama", + "kabab", + "kabar", + "kabob", + "kacha", + "kacks", + "kadai", + "kades", + "kadis", + "kafir", + "kagos", + "kagus", + "kahal", + "kaiak", + "kaids", + "kaies", + "kaifs", + "kaika", + "kaiks", + "kails", + "kaims", + "kaing", + "kains", + "kakas", + "kakis", + "kalam", + "kales", + "kalif", + "kalis", + "kalpa", + "kamas", + "kames", + "kamik", + "kamis", + "kamme", + "kanae", + "kanas", + "kandy", + "kaneh", + "kanes", + "kanga", + "kangs", + "kanji", + "kants", + "kanzu", + "kaons", + "kapas", + "kaphs", + "kapok", + "kapow", + "kapus", + "kaput", + "karas", + "karat", + "karks", + "karns", + "karoo", + "karos", + "karri", + "karst", + "karsy", + "karts", + "karzy", + "kasha", + "kasme", + "katal", + "katas", + "katis", + "katti", + "kaugh", + "kauri", + "kauru", + "kaury", + "kaval", + "kavas", + "kawas", + "kawau", + "kawed", + "kayle", + "kayos", + "kazis", + "kazoo", + "kbars", + "kebar", + "kebob", + "kecks", + "kedge", + "kedgy", + "keech", + "keefs", + "keeks", + "keels", + "keema", + "keeno", + "keens", + "keeps", + "keets", + "keeve", + "kefir", + "kehua", + "keirs", + "kelep", + "kelim", + "kells", + "kelly", + "kelps", + "kelpy", + "kelts", + "kelty", + "kembo", + "kembs", + "kemps", + "kempt", + "kempy", + "kenaf", + "kench", + "kendo", + "kenos", + "kente", + "kents", + "kepis", + "kerbs", + "kerel", + "kerfs", + "kerky", + "kerma", + "kerne", + "kerns", + "keros", + "kerry", + "kerve", + "kesar", + "kests", + "ketas", + "ketch", + "ketes", + "ketol", + "kevel", + "kevil", + "kexes", + "keyed", + "keyer", + "khadi", + "khafs", + "khans", + "khaph", + "khats", + "khaya", + "khazi", + "kheda", + "kheth", + "khets", + "khoja", + "khors", + "khoum", + "khuds", + "kiaat", + "kiack", + "kiang", + "kibbe", + "kibbi", + "kibei", + "kibes", + "kibla", + "kicks", + "kicky", + "kiddo", + "kiddy", + "kidel", + "kidge", + "kiefs", + "kiers", + "kieve", + "kievs", + "kight", + "kikes", + "kikoi", + "kiley", + "kilim", + "kills", + "kilns", + "kilos", + "kilps", + "kilts", + "kilty", + "kimbo", + "kinas", + "kinda", + "kinds", + "kindy", + "kines", + "kings", + "kinin", + "kinks", + "kinos", + "kiore", + "kipes", + "kippa", + "kipps", + "kirby", + "kirks", + "kirns", + "kirri", + "kisan", + "kissy", + "kists", + "kited", + "kiter", + "kites", + "kithe", + "kiths", + "kitul", + "kivas", + "kiwis", + "klang", + "klaps", + "klett", + "klick", + "klieg", + "kliks", + "klong", + "kloof", + "kluge", + "klutz", + "knags", + "knaps", + "knarl", + "knars", + "knaur", + "knawe", + "knees", + "knell", + "knish", + "knits", + "knive", + "knobs", + "knops", + "knosp", + "knots", + "knout", + "knowe", + "knows", + "knubs", + "knurl", + "knurr", + "knurs", + "knuts", + "koans", + "koaps", + "koban", + "kobos", + "koels", + "koffs", + "kofta", + "kogal", + "kohas", + "kohen", + "kohls", + "koine", + "kojis", + "kokam", + "kokas", + "koker", + "kokra", + "kokum", + "kolas", + "kolos", + "kombu", + "konbu", + "kondo", + "konks", + "kooks", + "kooky", + "koori", + "kopek", + "kophs", + "kopje", + "koppa", + "korai", + "koras", + "korat", + "kores", + "korma", + "koros", + "korun", + "korus", + "koses", + "kotch", + "kotos", + "kotow", + "koura", + "kraal", + "krabs", + "kraft", + "krais", + "krait", + "krang", + "krans", + "kranz", + "kraut", + "krays", + "kreep", + "kreng", + "krewe", + "krona", + "krone", + "kroon", + "krubi", + "krunk", + "ksars", + "kubie", + "kudos", + "kudus", + "kudzu", + "kufis", + "kugel", + "kuias", + "kukri", + "kukus", + "kulak", + "kulan", + "kulas", + "kulfi", + "kumis", + "kumys", + "kuris", + "kurre", + "kurta", + "kurus", + "kusso", + "kutas", + "kutch", + "kutis", + "kutus", + "kuzus", + "kvass", + "kvell", + "kwela", + "kyack", + "kyaks", + "kyang", + "kyars", + "kyats", + "kybos", + "kydst", + "kyles", + "kylie", + "kylin", + "kylix", + "kyloe", + "kynde", + "kynds", + "kypes", + "kyrie", + "kytes", + "kythe", + "laari", + "labda", + "labia", + "labis", + "labra", + "laced", + "lacer", + "laces", + "lacet", + "lacey", + "lacks", + "laddy", + "laded", + "lader", + "lades", + "laers", + "laevo", + "lagan", + "lahal", + "lahar", + "laich", + "laics", + "laids", + "laigh", + "laika", + "laiks", + "laird", + "lairs", + "lairy", + "laith", + "laity", + "laked", + "laker", + "lakes", + "lakhs", + "lakin", + "laksa", + "laldy", + "lalls", + "lamas", + "lambs", + "lamby", + "lamed", + "lamer", + "lames", + "lamia", + "lammy", + "lamps", + "lanai", + "lanas", + "lanch", + "lande", + "lands", + "lanes", + "lanks", + "lants", + "lapin", + "lapis", + "lapje", + "larch", + "lards", + "lardy", + "laree", + "lares", + "largo", + "laris", + "larks", + "larky", + "larns", + "larnt", + "larum", + "lased", + "laser", + "lases", + "lassi", + "lassu", + "lassy", + "lasts", + "latah", + "lated", + "laten", + "latex", + "lathi", + "laths", + "lathy", + "latke", + "latus", + "lauan", + "lauch", + "lauds", + "laufs", + "laund", + "laura", + "laval", + "lavas", + "laved", + "laver", + "laves", + "lavra", + "lavvy", + "lawed", + "lawer", + "lawin", + "lawks", + "lawns", + "lawny", + "laxed", + "laxer", + "laxes", + "laxly", + "layed", + "layin", + "layup", + "lazar", + "lazed", + "lazes", + "lazos", + "lazzi", + "lazzo", + "leads", + "leady", + "leafs", + "leaks", + "leams", + "leans", + "leany", + "leaps", + "leare", + "lears", + "leary", + "leats", + "leavy", + "leaze", + "leben", + "leccy", + "ledes", + "ledgy", + "ledum", + "leear", + "leeks", + "leeps", + "leers", + "leese", + "leets", + "leeze", + "lefte", + "lefts", + "leger", + "leges", + "legge", + "leggo", + "legit", + "lehrs", + "lehua", + "leirs", + "leish", + "leman", + "lemed", + "lemel", + "lemes", + "lemma", + "lemme", + "lends", + "lenes", + "lengs", + "lenis", + "lenos", + "lense", + "lenti", + "lento", + "leone", + "lepid", + "lepra", + "lepta", + "lered", + "leres", + "lerps", + "lesbo", + "leses", + "lests", + "letch", + "lethe", + "letup", + "leuch", + "leuco", + "leuds", + "leugh", + "levas", + "levee", + "leves", + "levin", + "levis", + "lewis", + "lexes", + "lexis", + "lezes", + "lezza", + "lezzy", + "liana", + "liane", + "liang", + "liard", + "liars", + "liart", + "liber", + "libra", + "libri", + "lichi", + "licht", + "licit", + "licks", + "lidar", + "lidos", + "liefs", + "liens", + "liers", + "lieus", + "lieve", + "lifer", + "lifes", + "lifts", + "ligan", + "liger", + "ligge", + "ligne", + "liked", + "liker", + "likes", + "likin", + "lills", + "lilos", + "lilts", + "liman", + "limas", + "limax", + "limba", + "limbi", + "limbs", + "limby", + "limed", + "limen", + "limes", + "limey", + "limma", + "limns", + "limos", + "limpa", + "limps", + "linac", + "linch", + "linds", + "lindy", + "lined", + "lines", + "liney", + "linga", + "lings", + "lingy", + "linin", + "links", + "linky", + "linns", + "linny", + "linos", + "lints", + "linty", + "linum", + "linux", + "lions", + "lipas", + "lipes", + "lipin", + "lipos", + "lippy", + "liras", + "lirks", + "lirot", + "lisks", + "lisle", + "lisps", + "lists", + "litai", + "litas", + "lited", + "liter", + "lites", + "litho", + "liths", + "litre", + "lived", + "liven", + "lives", + "livor", + "livre", + "llano", + "loach", + "loads", + "loafs", + "loams", + "loans", + "loast", + "loave", + "lobar", + "lobed", + "lobes", + "lobos", + "lobus", + "loche", + "lochs", + "locie", + "locis", + "locks", + "locos", + "locum", + "loden", + "lodes", + "loess", + "lofts", + "logan", + "loges", + "loggy", + "logia", + "logie", + "logoi", + "logon", + "logos", + "lohan", + "loids", + "loins", + "loipe", + "loirs", + "lokes", + "lolls", + "lolly", + "lolog", + "lomas", + "lomed", + "lomes", + "loner", + "longa", + "longe", + "longs", + "looby", + "looed", + "looey", + "loofa", + "loofs", + "looie", + "looks", + "looky", + "looms", + "loons", + "loony", + "loops", + "loord", + "loots", + "loped", + "loper", + "lopes", + "loppy", + "loral", + "loran", + "lords", + "lordy", + "lorel", + "lores", + "loric", + "loris", + "losed", + "losel", + "losen", + "loses", + "lossy", + "lotah", + "lotas", + "lotes", + "lotic", + "lotos", + "lotsa", + "lotta", + "lotte", + "lotto", + "lotus", + "loued", + "lough", + "louie", + "louis", + "louma", + "lound", + "louns", + "loupe", + "loups", + "loure", + "lours", + "loury", + "louts", + "lovat", + "loved", + "loves", + "lovey", + "lovie", + "lowan", + "lowed", + "lowes", + "lownd", + "lowne", + "lowns", + "lowps", + "lowry", + "lowse", + "lowts", + "loxed", + "loxes", + "lozen", + "luach", + "luaus", + "lubed", + "lubes", + "lubra", + "luces", + "lucks", + "lucre", + "ludes", + "ludic", + "ludos", + "luffa", + "luffs", + "luged", + "luger", + "luges", + "lulls", + "lulus", + "lumas", + "lumbi", + "lumme", + "lummy", + "lumps", + "lunas", + "lunes", + "lunet", + "lungi", + "lungs", + "lunks", + "lunts", + "lupin", + "lured", + "lurer", + "lures", + "lurex", + "lurgi", + "lurgy", + "lurks", + "lurry", + "lurve", + "luser", + "lushy", + "lusks", + "lusts", + "lusus", + "lutea", + "luted", + "luter", + "lutes", + "luvvy", + "luxed", + "luxer", + "luxes", + "lweis", + "lyams", + "lyard", + "lyart", + "lyase", + "lycea", + "lycee", + "lycra", + "lymes", + "lynes", + "lyres", + "lysed", + "lyses", + "lysin", + "lysis", + "lysol", + "lyssa", + "lyted", + "lytes", + "lythe", + "lytic", + "lytta", + "maaed", + "maare", + "maars", + "mabes", + "macas", + "maced", + "macer", + "maces", + "mache", + "machi", + "machs", + "macks", + "macle", + "macon", + "madge", + "madid", + "madre", + "maerl", + "mafic", + "mages", + "maggs", + "magot", + "magus", + "mahoe", + "mahua", + "mahwa", + "maids", + "maiko", + "maiks", + "maile", + "maill", + "mails", + "maims", + "mains", + "maire", + "mairs", + "maise", + "maist", + "makar", + "makes", + "makis", + "makos", + "malam", + "malar", + "malas", + "malax", + "males", + "malic", + "malik", + "malis", + "malls", + "malms", + "malmy", + "malts", + "malty", + "malus", + "malva", + "malwa", + "mamas", + "mamba", + "mamee", + "mamey", + "mamie", + "manas", + "manat", + "mandi", + "maneb", + "maned", + "maneh", + "manes", + "manet", + "mangs", + "manis", + "manky", + "manna", + "manos", + "manse", + "manta", + "manto", + "manty", + "manul", + "manus", + "mapau", + "maqui", + "marae", + "marah", + "maras", + "marcs", + "mardy", + "mares", + "marge", + "margs", + "maria", + "marid", + "marka", + "marks", + "marle", + "marls", + "marly", + "marms", + "maron", + "maror", + "marra", + "marri", + "marse", + "marts", + "marvy", + "masas", + "mased", + "maser", + "mases", + "mashy", + "masks", + "massa", + "massy", + "masts", + "masty", + "masus", + "matai", + "mated", + "mater", + "mates", + "maths", + "matin", + "matlo", + "matte", + "matts", + "matza", + "matzo", + "mauby", + "mauds", + "mauls", + "maund", + "mauri", + "mausy", + "mauts", + "mauzy", + "maven", + "mavie", + "mavin", + "mavis", + "mawed", + "mawks", + "mawky", + "mawns", + "mawrs", + "maxed", + "maxes", + "maxis", + "mayan", + "mayas", + "mayed", + "mayos", + "mayst", + "mazed", + "mazer", + "mazes", + "mazey", + "mazut", + "mbira", + "meads", + "meals", + "meane", + "means", + "meany", + "meare", + "mease", + "meath", + "meats", + "mebos", + "mechs", + "mecks", + "medii", + "medle", + "meeds", + "meers", + "meets", + "meffs", + "meins", + "meint", + "meiny", + "meith", + "mekka", + "melas", + "melba", + "melds", + "melic", + "melik", + "mells", + "melts", + "melty", + "memes", + "memos", + "menad", + "mends", + "mened", + "menes", + "menge", + "mengs", + "mensa", + "mense", + "mensh", + "menta", + "mento", + "menus", + "meous", + "meows", + "merch", + "mercs", + "merde", + "mered", + "merel", + "merer", + "meres", + "meril", + "meris", + "merks", + "merle", + "merls", + "merse", + "mesal", + "mesas", + "mesel", + "meses", + "meshy", + "mesic", + "mesne", + "meson", + "messy", + "mesto", + "meted", + "metes", + "metho", + "meths", + "metic", + "metif", + "metis", + "metol", + "metre", + "meuse", + "meved", + "meves", + "mewed", + "mewls", + "meynt", + "mezes", + "mezze", + "mezzo", + "mhorr", + "miaou", + "miaow", + "miasm", + "miaul", + "micas", + "miche", + "micht", + "micks", + "micky", + "micos", + "micra", + "middy", + "midgy", + "midis", + "miens", + "mieve", + "miffs", + "miffy", + "mifty", + "miggs", + "mihas", + "mihis", + "miked", + "mikes", + "mikra", + "mikva", + "milch", + "milds", + "miler", + "miles", + "milfs", + "milia", + "milko", + "milks", + "mille", + "mills", + "milor", + "milos", + "milpa", + "milts", + "milty", + "miltz", + "mimed", + "mimeo", + "mimer", + "mimes", + "mimsy", + "minae", + "minar", + "minas", + "mincy", + "minds", + "mined", + "mines", + "minge", + "mings", + "mingy", + "minis", + "minke", + "minks", + "minny", + "minos", + "mints", + "mired", + "mires", + "mirex", + "mirid", + "mirin", + "mirks", + "mirky", + "mirly", + "miros", + "mirvs", + "mirza", + "misch", + "misdo", + "mises", + "misgo", + "misos", + "missa", + "mists", + "misty", + "mitch", + "miter", + "mites", + "mitis", + "mitre", + "mitts", + "mixed", + "mixen", + "mixer", + "mixes", + "mixte", + "mixup", + "mizen", + "mizzy", + "mneme", + "moans", + "moats", + "mobby", + "mobes", + "mobey", + "mobie", + "moble", + "mochi", + "mochs", + "mochy", + "mocks", + "moder", + "modes", + "modge", + "modii", + "modus", + "moers", + "mofos", + "moggy", + "mohel", + "mohos", + "mohrs", + "mohua", + "mohur", + "moile", + "moils", + "moira", + "moire", + "moits", + "mojos", + "mokes", + "mokis", + "mokos", + "molal", + "molas", + "molds", + "moled", + "moles", + "molla", + "molls", + "molly", + "molto", + "molts", + "molys", + "momes", + "momma", + "mommy", + "momus", + "monad", + "monal", + "monas", + "monde", + "mondo", + "moner", + "mongo", + "mongs", + "monic", + "monie", + "monks", + "monos", + "monte", + "monty", + "moobs", + "mooch", + "moods", + "mooed", + "mooks", + "moola", + "mooli", + "mools", + "mooly", + "moong", + "moons", + "moony", + "moops", + "moors", + "moory", + "moots", + "moove", + "moped", + "moper", + "mopes", + "mopey", + "moppy", + "mopsy", + "mopus", + "morae", + "moras", + "morat", + "moray", + "morel", + "mores", + "moria", + "morne", + "morns", + "morra", + "morro", + "morse", + "morts", + "mosed", + "moses", + "mosey", + "mosks", + "mosso", + "moste", + "mosts", + "moted", + "moten", + "motes", + "motet", + "motey", + "moths", + "mothy", + "motis", + "motte", + "motts", + "motty", + "motus", + "motza", + "mouch", + "moues", + "mould", + "mouls", + "moups", + "moust", + "mousy", + "moved", + "moves", + "mowas", + "mowed", + "mowra", + "moxas", + "moxie", + "moyas", + "moyle", + "moyls", + "mozed", + "mozes", + "mozos", + "mpret", + "mucho", + "mucic", + "mucid", + "mucin", + "mucks", + "mucor", + "mucro", + "mudge", + "mudir", + "mudra", + "muffs", + "mufti", + "mugga", + "muggs", + "muggy", + "muhly", + "muids", + "muils", + "muirs", + "muist", + "mujik", + "mulct", + "muled", + "mules", + "muley", + "mulga", + "mulie", + "mulla", + "mulls", + "mulse", + "mulsh", + "mumms", + "mumps", + "mumsy", + "mumus", + "munga", + "munge", + "mungo", + "mungs", + "munis", + "munts", + "muntu", + "muons", + "muras", + "mured", + "mures", + "murex", + "murid", + "murks", + "murls", + "murly", + "murra", + "murre", + "murri", + "murrs", + "murry", + "murti", + "murva", + "musar", + "musca", + "mused", + "muser", + "muses", + "muset", + "musha", + "musit", + "musks", + "musos", + "musse", + "mussy", + "musth", + "musts", + "mutch", + "muted", + "muter", + "mutes", + "mutha", + "mutis", + "muton", + "mutts", + "muxed", + "muxes", + "muzak", + "muzzy", + "mvule", + "myall", + "mylar", + "mynah", + "mynas", + "myoid", + "myoma", + "myope", + "myops", + "myopy", + "mysid", + "mythi", + "myths", + "mythy", + "myxos", + "mzees", + "naams", + "naans", + "nabes", + "nabis", + "nabks", + "nabla", + "nabob", + "nache", + "nacho", + "nacre", + "nadas", + "naeve", + "naevi", + "naffs", + "nagas", + "naggy", + "nagor", + "nahal", + "naiad", + "naifs", + "naiks", + "nails", + "naira", + "nairu", + "naked", + "naker", + "nakfa", + "nalas", + "naled", + "nalla", + "named", + "namer", + "names", + "namma", + "namus", + "nanas", + "nance", + "nancy", + "nandu", + "nanna", + "nanos", + "nanua", + "napas", + "naped", + "napes", + "napoo", + "nappa", + "nappe", + "nappy", + "naras", + "narco", + "narcs", + "nards", + "nares", + "naric", + "naris", + "narks", + "narky", + "narre", + "nashi", + "natch", + "nates", + "natis", + "natty", + "nauch", + "naunt", + "navar", + "naves", + "navew", + "navvy", + "nawab", + "nazes", + "nazir", + "nazis", + "nduja", + "neafe", + "neals", + "neaps", + "nears", + "neath", + "neats", + "nebek", + "nebel", + "necks", + "neddy", + "needs", + "neeld", + "neele", + "neemb", + "neems", + "neeps", + "neese", + "neeze", + "negro", + "negus", + "neifs", + "neist", + "neive", + "nelis", + "nelly", + "nemas", + "nemns", + "nempt", + "nenes", + "neons", + "neper", + "nepit", + "neral", + "nerds", + "nerka", + "nerks", + "nerol", + "nerts", + "nertz", + "nervy", + "nests", + "netes", + "netop", + "netts", + "netty", + "neuks", + "neume", + "neums", + "nevel", + "neves", + "nevus", + "newbs", + "newed", + "newel", + "newie", + "newsy", + "newts", + "nexts", + "nexus", + "ngaio", + "ngana", + "ngati", + "ngoma", + "ngwee", + "nicad", + "nicht", + "nicks", + "nicol", + "nidal", + "nided", + "nides", + "nidor", + "nidus", + "niefs", + "nieve", + "nifes", + "niffs", + "niffy", + "nifty", + "niger", + "nighs", + "nihil", + "nikab", + "nikah", + "nikau", + "nills", + "nimbi", + "nimbs", + "nimps", + "niner", + "nines", + "ninon", + "nipas", + "nippy", + "niqab", + "nirls", + "nirly", + "nisei", + "nisse", + "nisus", + "niter", + "nites", + "nitid", + "niton", + "nitre", + "nitro", + "nitry", + "nitty", + "nival", + "nixed", + "nixer", + "nixes", + "nixie", + "nizam", + "nkosi", + "noahs", + "nobby", + "nocks", + "nodal", + "noddy", + "nodes", + "nodus", + "noels", + "noggs", + "nohow", + "noils", + "noily", + "noint", + "noirs", + "noles", + "nolls", + "nolos", + "nomas", + "nomen", + "nomes", + "nomic", + "nomoi", + "nomos", + "nonas", + "nonce", + "nones", + "nonet", + "nongs", + "nonis", + "nonny", + "nonyl", + "noobs", + "nooit", + "nooks", + "nooky", + "noons", + "noops", + "nopal", + "noria", + "noris", + "norks", + "norma", + "norms", + "nosed", + "noser", + "noses", + "notal", + "noted", + "noter", + "notes", + "notum", + "nould", + "noule", + "nouls", + "nouns", + "nouny", + "noups", + "novae", + "novas", + "novum", + "noway", + "nowed", + "nowls", + "nowts", + "nowty", + "noxal", + "noxes", + "noyau", + "noyed", + "noyes", + "nubby", + "nubia", + "nucha", + "nuddy", + "nuder", + "nudes", + "nudie", + "nudzh", + "nuffs", + "nugae", + "nuked", + "nukes", + "nulla", + "nulls", + "numbs", + "numen", + "nummy", + "nunny", + "nurds", + "nurdy", + "nurls", + "nurrs", + "nutso", + "nutsy", + "nyaff", + "nyala", + "nying", + "nyssa", + "oaked", + "oaker", + "oakum", + "oared", + "oases", + "oasis", + "oasts", + "oaten", + "oater", + "oaths", + "oaves", + "obang", + "obeah", + "obeli", + "obeys", + "obias", + "obied", + "obiit", + "obits", + "objet", + "oboes", + "obole", + "oboli", + "obols", + "occam", + "ocher", + "oches", + "ochre", + "ochry", + "ocker", + "ocrea", + "octad", + "octan", + "octas", + "octyl", + "oculi", + "odahs", + "odals", + "odeon", + "odeum", + "odism", + "odist", + "odium", + "odors", + "odour", + "odyle", + "odyls", + "ofays", + "offed", + "offie", + "oflag", + "ofter", + "ogams", + "ogeed", + "ogees", + "oggin", + "ogham", + "ogive", + "ogled", + "ogler", + "ogles", + "ogmic", + "ogres", + "ohias", + "ohing", + "ohmic", + "ohone", + "oidia", + "oiled", + "oiler", + "oinks", + "oints", + "ojime", + "okapi", + "okays", + "okehs", + "okras", + "oktas", + "oldie", + "oleic", + "olein", + "olent", + "oleos", + "oleum", + "olios", + "ollas", + "ollav", + "oller", + "ollie", + "ology", + "olpae", + "olpes", + "omasa", + "omber", + "ombus", + "omens", + "omers", + "omits", + "omlah", + "omovs", + "omrah", + "oncer", + "onces", + "oncet", + "oncus", + "onely", + "oners", + "onery", + "onium", + "onkus", + "onlay", + "onned", + "ontic", + "oobit", + "oohed", + "oomph", + "oonts", + "ooped", + "oorie", + "ooses", + "ootid", + "oozed", + "oozes", + "opahs", + "opals", + "opens", + "opepe", + "oping", + "oppos", + "opsin", + "opted", + "opter", + "orach", + "oracy", + "orals", + "orang", + "orant", + "orate", + "orbed", + "orcas", + "orcin", + "ordos", + "oread", + "orfes", + "orgia", + "orgic", + "orgue", + "oribi", + "oriel", + "orixa", + "orles", + "orlon", + "orlop", + "ormer", + "ornis", + "orpin", + "orris", + "ortho", + "orval", + "orzos", + "oscar", + "oshac", + "osier", + "osmic", + "osmol", + "ossia", + "ostia", + "otaku", + "otary", + "ottar", + "ottos", + "oubit", + "oucht", + "ouens", + "ouija", + "oulks", + "oumas", + "oundy", + "oupas", + "ouped", + "ouphe", + "ouphs", + "ourie", + "ousel", + "ousts", + "outby", + "outed", + "outre", + "outro", + "outta", + "ouzel", + "ouzos", + "ovals", + "ovels", + "ovens", + "overs", + "ovist", + "ovoli", + "ovolo", + "ovule", + "owche", + "owies", + "owled", + "owler", + "owlet", + "owned", + "owres", + "owrie", + "owsen", + "oxbow", + "oxers", + "oxeye", + "oxids", + "oxies", + "oxime", + "oxims", + "oxlip", + "oxter", + "oyers", + "ozeki", + "ozzie", + "paals", + "paans", + "pacas", + "paced", + "pacer", + "paces", + "pacey", + "pacha", + "packs", + "pacos", + "pacta", + "pacts", + "padis", + "padle", + "padma", + "padre", + "padri", + "paean", + "paedo", + "paeon", + "paged", + "pager", + "pages", + "pagle", + "pagod", + "pagri", + "paiks", + "pails", + "pains", + "paire", + "pairs", + "paisa", + "paise", + "pakka", + "palas", + "palay", + "palea", + "paled", + "pales", + "palet", + "palis", + "palki", + "palla", + "palls", + "pally", + "palms", + "palmy", + "palpi", + "palps", + "palsa", + "pampa", + "panax", + "pance", + "panda", + "pands", + "pandy", + "paned", + "panes", + "panga", + "pangs", + "panim", + "panko", + "panne", + "panni", + "panto", + "pants", + "panty", + "paoli", + "paolo", + "papas", + "papaw", + "papes", + "pappi", + "pappy", + "parae", + "paras", + "parch", + "pardi", + "pards", + "pardy", + "pared", + "paren", + "pareo", + "pares", + "pareu", + "parev", + "parge", + "pargo", + "paris", + "parki", + "parks", + "parky", + "parle", + "parly", + "parma", + "parol", + "parps", + "parra", + "parrs", + "parti", + "parts", + "parve", + "parvo", + "paseo", + "pases", + "pasha", + "pashm", + "paska", + "paspy", + "passe", + "pasts", + "pated", + "paten", + "pater", + "pates", + "paths", + "patin", + "patka", + "patly", + "patte", + "patus", + "pauas", + "pauls", + "pavan", + "paved", + "paven", + "paver", + "paves", + "pavid", + "pavin", + "pavis", + "pawas", + "pawaw", + "pawed", + "pawer", + "pawks", + "pawky", + "pawls", + "pawns", + "paxes", + "payed", + "payor", + "paysd", + "peage", + "peags", + "peaks", + "peaky", + "peals", + "peans", + "peare", + "pears", + "peart", + "pease", + "peats", + "peaty", + "peavy", + "peaze", + "pebas", + "pechs", + "pecke", + "pecks", + "pecky", + "pedes", + "pedis", + "pedro", + "peece", + "peeks", + "peels", + "peens", + "peeoy", + "peepe", + "peeps", + "peers", + "peery", + "peeve", + "peggy", + "peghs", + "peins", + "peise", + "peize", + "pekan", + "pekes", + "pekin", + "pekoe", + "pelas", + "pelau", + "peles", + "pelfs", + "pells", + "pelma", + "pelon", + "pelta", + "pelts", + "pends", + "pendu", + "pened", + "penes", + "pengo", + "penie", + "penis", + "penks", + "penna", + "penni", + "pents", + "peons", + "peony", + "pepla", + "pepos", + "peppy", + "pepsi", + "perai", + "perce", + "percs", + "perdu", + "perdy", + "perea", + "peres", + "peris", + "perks", + "perms", + "perns", + "perog", + "perps", + "perry", + "perse", + "perst", + "perts", + "perve", + "pervo", + "pervs", + "pervy", + "pesos", + "pests", + "pesty", + "petar", + "peter", + "petit", + "petre", + "petri", + "petti", + "petto", + "pewee", + "pewit", + "peyse", + "phage", + "phang", + "phare", + "pharm", + "pheer", + "phene", + "pheon", + "phese", + "phial", + "phish", + "phizz", + "phlox", + "phoca", + "phono", + "phons", + "phots", + "phpht", + "phuts", + "phyla", + "phyle", + "piani", + "pians", + "pibal", + "pical", + "picas", + "piccy", + "picks", + "picot", + "picra", + "picul", + "piend", + "piers", + "piert", + "pieta", + "piets", + "piezo", + "pight", + "pigmy", + "piing", + "pikas", + "pikau", + "piked", + "piker", + "pikes", + "pikey", + "pikis", + "pikul", + "pilae", + "pilaf", + "pilao", + "pilar", + "pilau", + "pilaw", + "pilch", + "pilea", + "piled", + "pilei", + "piler", + "piles", + "pilis", + "pills", + "pilow", + "pilum", + "pilus", + "pimas", + "pimps", + "pinas", + "pined", + "pines", + "pingo", + "pings", + "pinko", + "pinks", + "pinna", + "pinny", + "pinon", + "pinot", + "pinta", + "pints", + "pinup", + "pions", + "piony", + "pious", + "pioye", + "pioys", + "pipal", + "pipas", + "piped", + "pipes", + "pipet", + "pipis", + "pipit", + "pippy", + "pipul", + "pirai", + "pirls", + "pirns", + "pirog", + "pisco", + "pises", + "pisky", + "pisos", + "pissy", + "piste", + "pitas", + "piths", + "piton", + "pitot", + "pitta", + "piums", + "pixes", + "pized", + "pizes", + "plaas", + "plack", + "plage", + "plans", + "plaps", + "plash", + "plasm", + "plast", + "plats", + "platt", + "platy", + "playa", + "plays", + "pleas", + "plebe", + "plebs", + "plena", + "pleon", + "plesh", + "plews", + "plica", + "plies", + "plims", + "pling", + "plink", + "ploat", + "plods", + "plong", + "plonk", + "plook", + "plops", + "plots", + "plotz", + "plouk", + "plows", + "ploye", + "ploys", + "plues", + "pluff", + "plugs", + "plums", + "plumy", + "pluot", + "pluto", + "plyer", + "poach", + "poaka", + "poake", + "poboy", + "pocks", + "pocky", + "podal", + "poddy", + "podex", + "podge", + "podgy", + "podia", + "poems", + "poeps", + "poets", + "pogey", + "pogge", + "pogos", + "pohed", + "poilu", + "poind", + "pokal", + "poked", + "pokes", + "pokey", + "pokie", + "poled", + "poler", + "poles", + "poley", + "polio", + "polis", + "polje", + "polks", + "polls", + "polly", + "polos", + "polts", + "polys", + "pombe", + "pomes", + "pommy", + "pomos", + "pomps", + "ponce", + "poncy", + "ponds", + "pones", + "poney", + "ponga", + "pongo", + "pongs", + "pongy", + "ponks", + "ponts", + "ponty", + "ponzu", + "poods", + "pooed", + "poofs", + "poofy", + "poohs", + "pooja", + "pooka", + "pooks", + "pools", + "poons", + "poops", + "poopy", + "poori", + "poort", + "poots", + "poove", + "poovy", + "popes", + "poppa", + "popsy", + "porae", + "poral", + "pored", + "porer", + "pores", + "porge", + "porgy", + "porin", + "porks", + "porky", + "porno", + "porns", + "porny", + "porta", + "ports", + "porty", + "posed", + "poses", + "posey", + "posho", + "posts", + "potae", + "potch", + "poted", + "potes", + "potin", + "potoo", + "potsy", + "potto", + "potts", + "potty", + "pouff", + "poufs", + "pouke", + "pouks", + "poule", + "poulp", + "poult", + "poupe", + "poupt", + "pours", + "pouts", + "powan", + "powin", + "pownd", + "powns", + "powny", + "powre", + "poxed", + "poxes", + "poynt", + "poyou", + "poyse", + "pozzy", + "praam", + "prads", + "prahu", + "prams", + "prana", + "prang", + "praos", + "prase", + "prate", + "prats", + "pratt", + "praty", + "praus", + "prays", + "predy", + "preed", + "prees", + "preif", + "prems", + "premy", + "prent", + "preon", + "preop", + "preps", + "presa", + "prese", + "prest", + "preve", + "prexy", + "preys", + "prial", + "pricy", + "prief", + "prier", + "pries", + "prigs", + "prill", + "prima", + "primi", + "primp", + "prims", + "primy", + "prink", + "prion", + "prise", + "priss", + "proas", + "probs", + "prods", + "proem", + "profs", + "progs", + "proin", + "proke", + "prole", + "proll", + "promo", + "proms", + "pronk", + "props", + "prore", + "proso", + "pross", + "prost", + "prosy", + "proto", + "proul", + "prows", + "proyn", + "prunt", + "pruta", + "pryer", + "pryse", + "pseud", + "pshaw", + "psion", + "psoae", + "psoai", + "psoas", + "psora", + "psych", + "psyop", + "pubco", + "pubes", + "pubis", + "pucan", + "pucer", + "puces", + "pucka", + "pucks", + "puddy", + "pudge", + "pudic", + "pudor", + "pudsy", + "pudus", + "puers", + "puffa", + "puffs", + "puggy", + "pugil", + "puhas", + "pujah", + "pujas", + "pukas", + "puked", + "puker", + "pukes", + "pukey", + "pukka", + "pukus", + "pulao", + "pulas", + "puled", + "puler", + "pules", + "pulik", + "pulis", + "pulka", + "pulks", + "pulli", + "pulls", + "pully", + "pulmo", + "pulps", + "pulus", + "pumas", + "pumie", + "pumps", + "punas", + "punce", + "punga", + "pungs", + "punji", + "punka", + "punks", + "punky", + "punny", + "punto", + "punts", + "punty", + "pupae", + "pupas", + "pupus", + "purda", + "pured", + "pures", + "purin", + "puris", + "purls", + "purpy", + "purrs", + "pursy", + "purty", + "puses", + "pusle", + "pussy", + "putid", + "puton", + "putti", + "putto", + "putts", + "puzel", + "pwned", + "pyats", + "pyets", + "pygal", + "pyins", + "pylon", + "pyned", + "pynes", + "pyoid", + "pyots", + "pyral", + "pyran", + "pyres", + "pyrex", + "pyric", + "pyros", + "pyxed", + "pyxes", + "pyxie", + "pyxis", + "pzazz", + "qadis", + "qaids", + "qajaq", + "qanat", + "qapik", + "qibla", + "qophs", + "qorma", + "quads", + "quaff", + "quags", + "quair", + "quais", + "quaky", + "quale", + "quant", + "quare", + "quass", + "quate", + "quats", + "quayd", + "quays", + "qubit", + "quean", + "queme", + "quena", + "quern", + "queyn", + "queys", + "quich", + "quids", + "quiff", + "quims", + "quina", + "quine", + "quino", + "quins", + "quint", + "quipo", + "quips", + "quipu", + "quire", + "quirt", + "quist", + "quits", + "quoad", + "quods", + "quoif", + "quoin", + "quoit", + "quoll", + "quonk", + "quops", + "qursh", + "quyte", + "rabat", + "rabic", + "rabis", + "raced", + "races", + "rache", + "racks", + "racon", + "radge", + "radix", + "radon", + "raffs", + "rafts", + "ragas", + "ragde", + "raged", + "ragee", + "rager", + "rages", + "ragga", + "raggs", + "raggy", + "ragis", + "ragus", + "rahed", + "rahui", + "raias", + "raids", + "raiks", + "raile", + "rails", + "raine", + "rains", + "raird", + "raita", + "raits", + "rajas", + "rajes", + "raked", + "rakee", + "raker", + "rakes", + "rakia", + "rakis", + "rakus", + "rales", + "ramal", + "ramee", + "ramet", + "ramie", + "ramin", + "ramis", + "rammy", + "ramps", + "ramus", + "ranas", + "rance", + "rands", + "ranee", + "ranga", + "rangi", + "rangs", + "rangy", + "ranid", + "ranis", + "ranke", + "ranks", + "rants", + "raped", + "raper", + "rapes", + "raphe", + "rappe", + "rared", + "raree", + "rares", + "rarks", + "rased", + "raser", + "rases", + "rasps", + "rasse", + "rasta", + "ratal", + "ratan", + "ratas", + "ratch", + "rated", + "ratel", + "rater", + "rates", + "ratha", + "rathe", + "raths", + "ratoo", + "ratos", + "ratus", + "rauns", + "raupo", + "raved", + "ravel", + "raver", + "raves", + "ravey", + "ravin", + "rawer", + "rawin", + "rawly", + "rawns", + "raxed", + "raxes", + "rayah", + "rayas", + "rayed", + "rayle", + "rayne", + "razed", + "razee", + "razer", + "razes", + "razoo", + "readd", + "reads", + "reais", + "reaks", + "realo", + "reals", + "reame", + "reams", + "reamy", + "reans", + "reaps", + "rears", + "reast", + "reata", + "reate", + "reave", + "rebbe", + "rebec", + "rebid", + "rebit", + "rebop", + "rebuy", + "recal", + "recce", + "recco", + "reccy", + "recit", + "recks", + "recon", + "recta", + "recti", + "recto", + "redan", + "redds", + "reddy", + "reded", + "redes", + "redia", + "redid", + "redip", + "redly", + "redon", + "redos", + "redox", + "redry", + "redub", + "redux", + "redye", + "reech", + "reede", + "reeds", + "reefs", + "reefy", + "reeks", + "reeky", + "reels", + "reens", + "reest", + "reeve", + "refed", + "refel", + "reffo", + "refis", + "refix", + "refly", + "refry", + "regar", + "reges", + "reggo", + "regie", + "regma", + "regna", + "regos", + "regur", + "rehem", + "reifs", + "reify", + "reiki", + "reiks", + "reink", + "reins", + "reird", + "reist", + "reive", + "rejig", + "rejon", + "reked", + "rekes", + "rekey", + "relet", + "relie", + "relit", + "rello", + "reman", + "remap", + "remen", + "remet", + "remex", + "remix", + "renay", + "rends", + "reney", + "renga", + "renig", + "renin", + "renne", + "renos", + "rente", + "rents", + "reoil", + "reorg", + "repeg", + "repin", + "repla", + "repos", + "repot", + "repps", + "repro", + "reran", + "rerig", + "resat", + "resaw", + "resay", + "resee", + "reses", + "resew", + "resid", + "resit", + "resod", + "resow", + "resto", + "rests", + "resty", + "resus", + "retag", + "retax", + "retem", + "retia", + "retie", + "retox", + "revet", + "revie", + "rewan", + "rewax", + "rewed", + "rewet", + "rewin", + "rewon", + "rewth", + "rexes", + "rezes", + "rheas", + "rheme", + "rheum", + "rhies", + "rhime", + "rhine", + "rhody", + "rhomb", + "rhone", + "rhumb", + "rhyne", + "rhyta", + "riads", + "rials", + "riant", + "riata", + "ribas", + "ribby", + "ribes", + "riced", + "ricer", + "rices", + "ricey", + "richt", + "ricin", + "ricks", + "rides", + "ridgy", + "ridic", + "riels", + "riems", + "rieve", + "rifer", + "riffs", + "rifte", + "rifts", + "rifty", + "riggs", + "rigol", + "riled", + "riles", + "riley", + "rille", + "rills", + "rimae", + "rimed", + "rimer", + "rimes", + "rimus", + "rinds", + "rindy", + "rines", + "rings", + "rinks", + "rioja", + "riots", + "riped", + "ripes", + "ripps", + "rises", + "rishi", + "risks", + "risps", + "risus", + "rites", + "ritts", + "ritzy", + "rivas", + "rived", + "rivel", + "riven", + "rives", + "riyal", + "rizas", + "roads", + "roams", + "roans", + "roars", + "roary", + "roate", + "robed", + "robes", + "roble", + "rocks", + "roded", + "rodes", + "roguy", + "rohes", + "roids", + "roils", + "roily", + "roins", + "roist", + "rojak", + "rojis", + "roked", + "roker", + "rokes", + "rolag", + "roles", + "rolfs", + "rolls", + "romal", + "roman", + "romeo", + "romps", + "ronde", + "rondo", + "roneo", + "rones", + "ronin", + "ronne", + "ronte", + "ronts", + "roods", + "roofs", + "roofy", + "rooks", + "rooky", + "rooms", + "roons", + "roops", + "roopy", + "roosa", + "roose", + "roots", + "rooty", + "roped", + "roper", + "ropes", + "ropey", + "roque", + "roral", + "rores", + "roric", + "rorid", + "rorie", + "rorts", + "rorty", + "rosed", + "roses", + "roset", + "roshi", + "rosin", + "rosit", + "rosti", + "rosts", + "rotal", + "rotan", + "rotas", + "rotch", + "roted", + "rotes", + "rotis", + "rotls", + "roton", + "rotos", + "rotte", + "rouen", + "roues", + "roule", + "rouls", + "roums", + "roups", + "roupy", + "roust", + "routh", + "routs", + "roved", + "roven", + "roves", + "rowan", + "rowed", + "rowel", + "rowen", + "rowie", + "rowme", + "rownd", + "rowth", + "rowts", + "royne", + "royst", + "rozet", + "rozit", + "ruana", + "rubai", + "rubby", + "rubel", + "rubes", + "rubin", + "ruble", + "rubli", + "rubus", + "ruche", + "rucks", + "rudas", + "rudds", + "rudes", + "rudie", + "rudis", + "rueda", + "ruers", + "ruffe", + "ruffs", + "rugae", + "rugal", + "ruggy", + "ruing", + "ruins", + "rukhs", + "ruled", + "rules", + "rumal", + "rumbo", + "rumen", + "rumes", + "rumly", + "rummy", + "rumpo", + "rumps", + "rumpy", + "runch", + "runds", + "runed", + "runes", + "rungs", + "runic", + "runny", + "runts", + "runty", + "rupia", + "rurps", + "rurus", + "rusas", + "ruses", + "rushy", + "rusks", + "rusma", + "russe", + "rusts", + "ruths", + "rutin", + "rutty", + "ryals", + "rybat", + "ryked", + "rykes", + "rymme", + "rynds", + "ryots", + "ryper", + "saags", + "sabal", + "sabed", + "saber", + "sabes", + "sabha", + "sabin", + "sabir", + "sable", + "sabot", + "sabra", + "sabre", + "sacks", + "sacra", + "saddo", + "sades", + "sadhe", + "sadhu", + "sadis", + "sados", + "sadza", + "safed", + "safes", + "sagas", + "sager", + "sages", + "saggy", + "sagos", + "sagum", + "saheb", + "sahib", + "saice", + "saick", + "saics", + "saids", + "saiga", + "sails", + "saims", + "saine", + "sains", + "sairs", + "saist", + "saith", + "sajou", + "sakai", + "saker", + "sakes", + "sakia", + "sakis", + "sakti", + "salal", + "salat", + "salep", + "sales", + "salet", + "salic", + "salix", + "salle", + "salmi", + "salol", + "salop", + "salpa", + "salps", + "salse", + "salto", + "salts", + "salue", + "salut", + "saman", + "samas", + "samba", + "sambo", + "samek", + "samel", + "samen", + "sames", + "samey", + "samfu", + "sammy", + "sampi", + "samps", + "sands", + "saned", + "sanes", + "sanga", + "sangh", + "sango", + "sangs", + "sanko", + "sansa", + "santo", + "sants", + "saola", + "sapan", + "sapid", + "sapor", + "saran", + "sards", + "sared", + "saree", + "sarge", + "sargo", + "sarin", + "saris", + "sarks", + "sarky", + "sarod", + "saros", + "sarus", + "saser", + "sasin", + "sasse", + "satai", + "satay", + "sated", + "satem", + "sates", + "satis", + "sauba", + "sauch", + "saugh", + "sauls", + "sault", + "saunt", + "saury", + "sauts", + "saved", + "saver", + "saves", + "savey", + "savin", + "sawah", + "sawed", + "sawer", + "saxes", + "sayed", + "sayer", + "sayid", + "sayne", + "sayon", + "sayst", + "sazes", + "scabs", + "scads", + "scaff", + "scags", + "scail", + "scala", + "scall", + "scams", + "scand", + "scans", + "scapa", + "scape", + "scapi", + "scarp", + "scars", + "scart", + "scath", + "scats", + "scatt", + "scaud", + "scaup", + "scaur", + "scaws", + "sceat", + "scena", + "scend", + "schav", + "schmo", + "schul", + "schwa", + "sclim", + "scody", + "scogs", + "scoog", + "scoot", + "scopa", + "scops", + "scots", + "scoug", + "scoup", + "scowp", + "scows", + "scrab", + "scrae", + "scrag", + "scran", + "scrat", + "scraw", + "scray", + "scrim", + "scrip", + "scrob", + "scrod", + "scrog", + "scrow", + "scudi", + "scudo", + "scuds", + "scuff", + "scuft", + "scugs", + "sculk", + "scull", + "sculp", + "sculs", + "scums", + "scups", + "scurf", + "scurs", + "scuse", + "scuta", + "scute", + "scuts", + "scuzz", + "scyes", + "sdayn", + "sdein", + "seals", + "seame", + "seams", + "seamy", + "seans", + "seare", + "sears", + "sease", + "seats", + "seaze", + "sebum", + "secco", + "sechs", + "sects", + "seder", + "sedes", + "sedge", + "sedgy", + "sedum", + "seeds", + "seeks", + "seeld", + "seels", + "seely", + "seems", + "seeps", + "seepy", + "seers", + "sefer", + "segar", + "segni", + "segno", + "segol", + "segos", + "sehri", + "seifs", + "seils", + "seine", + "seirs", + "seise", + "seism", + "seity", + "seiza", + "sekos", + "sekts", + "selah", + "seles", + "selfs", + "sella", + "selle", + "sells", + "selva", + "semee", + "semes", + "semie", + "semis", + "senas", + "sends", + "senes", + "sengi", + "senna", + "senor", + "sensa", + "sensi", + "sente", + "senti", + "sents", + "senvy", + "senza", + "sepad", + "sepal", + "sepic", + "sepoy", + "septa", + "septs", + "serac", + "serai", + "seral", + "sered", + "serer", + "seres", + "serfs", + "serge", + "seric", + "serin", + "serks", + "seron", + "serow", + "serra", + "serre", + "serrs", + "serry", + "servo", + "sesey", + "sessa", + "setae", + "setal", + "seton", + "setts", + "sewan", + "sewar", + "sewed", + "sewel", + "sewen", + "sewin", + "sexed", + "sexer", + "sexes", + "sexto", + "sexts", + "seyen", + "shads", + "shags", + "shahs", + "shako", + "shakt", + "shalm", + "shaly", + "shama", + "shams", + "shand", + "shans", + "shaps", + "sharn", + "shash", + "shaul", + "shawm", + "shawn", + "shaws", + "shaya", + "shays", + "shchi", + "sheaf", + "sheal", + "sheas", + "sheds", + "sheel", + "shend", + "shent", + "sheol", + "sherd", + "shere", + "shero", + "shets", + "sheva", + "shewn", + "shews", + "shiai", + "shiel", + "shier", + "shies", + "shill", + "shily", + "shims", + "shins", + "ships", + "shirr", + "shirs", + "shish", + "shiso", + "shist", + "shite", + "shits", + "shiur", + "shiva", + "shive", + "shivs", + "shlep", + "shlub", + "shmek", + "shmoe", + "shoat", + "shoed", + "shoer", + "shoes", + "shogi", + "shogs", + "shoji", + "shojo", + "shola", + "shool", + "shoon", + "shoos", + "shope", + "shops", + "shorl", + "shote", + "shots", + "shott", + "showd", + "shows", + "shoyu", + "shred", + "shris", + "shrow", + "shtik", + "shtum", + "shtup", + "shule", + "shuln", + "shuls", + "shuns", + "shura", + "shute", + "shuts", + "shwas", + "shyer", + "sials", + "sibbs", + "sibyl", + "sices", + "sicht", + "sicko", + "sicks", + "sicky", + "sidas", + "sided", + "sider", + "sides", + "sidha", + "sidhe", + "sidle", + "sield", + "siens", + "sient", + "sieth", + "sieur", + "sifts", + "sighs", + "sigil", + "sigla", + "signa", + "signs", + "sijos", + "sikas", + "siker", + "sikes", + "silds", + "siled", + "silen", + "siler", + "siles", + "silex", + "silks", + "sills", + "silos", + "silts", + "silty", + "silva", + "simar", + "simas", + "simba", + "simis", + "simps", + "simul", + "sinds", + "sined", + "sines", + "sings", + "sinhs", + "sinks", + "sinky", + "sinus", + "siped", + "sipes", + "sippy", + "sired", + "siree", + "sires", + "sirih", + "siris", + "siroc", + "sirra", + "sirup", + "sisal", + "sises", + "sista", + "sists", + "sitar", + "sited", + "sites", + "sithe", + "sitka", + "situp", + "situs", + "siver", + "sixer", + "sixes", + "sixmo", + "sixte", + "sizar", + "sized", + "sizel", + "sizer", + "sizes", + "skags", + "skail", + "skald", + "skank", + "skart", + "skats", + "skatt", + "skaws", + "skean", + "skear", + "skeds", + "skeed", + "skeef", + "skeen", + "skeer", + "skees", + "skeet", + "skegg", + "skegs", + "skein", + "skelf", + "skell", + "skelm", + "skelp", + "skene", + "skens", + "skeos", + "skeps", + "skers", + "skets", + "skews", + "skids", + "skied", + "skies", + "skiey", + "skimo", + "skims", + "skink", + "skins", + "skint", + "skios", + "skips", + "skirl", + "skirr", + "skite", + "skits", + "skive", + "skivy", + "sklim", + "skoal", + "skody", + "skoff", + "skogs", + "skols", + "skool", + "skort", + "skosh", + "skran", + "skrik", + "skuas", + "skugs", + "skyed", + "skyer", + "skyey", + "skyfs", + "skyre", + "skyrs", + "skyte", + "slabs", + "slade", + "slaes", + "slags", + "slaid", + "slake", + "slams", + "slane", + "slank", + "slaps", + "slart", + "slats", + "slaty", + "slaws", + "slays", + "slebs", + "sleds", + "sleer", + "slews", + "sleys", + "slier", + "slily", + "slims", + "slipe", + "slips", + "slipt", + "slish", + "slits", + "slive", + "sloan", + "slobs", + "sloes", + "slogs", + "sloid", + "slojd", + "slomo", + "sloom", + "sloot", + "slops", + "slopy", + "slorm", + "slots", + "slove", + "slows", + "sloyd", + "slubb", + "slubs", + "slued", + "slues", + "sluff", + "slugs", + "sluit", + "slums", + "slurb", + "slurs", + "sluse", + "sluts", + "slyer", + "slype", + "smaak", + "smaik", + "smalm", + "smalt", + "smarm", + "smaze", + "smeek", + "smees", + "smeik", + "smeke", + "smerk", + "smews", + "smirr", + "smirs", + "smits", + "smogs", + "smoko", + "smolt", + "smoor", + "smoot", + "smore", + "smorg", + "smout", + "smowt", + "smugs", + "smurs", + "smush", + "smuts", + "snabs", + "snafu", + "snags", + "snaps", + "snarf", + "snark", + "snars", + "snary", + "snash", + "snath", + "snaws", + "snead", + "sneap", + "snebs", + "sneck", + "sneds", + "sneed", + "snees", + "snell", + "snibs", + "snick", + "snies", + "snift", + "snigs", + "snips", + "snipy", + "snirt", + "snits", + "snobs", + "snods", + "snoek", + "snoep", + "snogs", + "snoke", + "snood", + "snook", + "snool", + "snoot", + "snots", + "snowk", + "snows", + "snubs", + "snugs", + "snush", + "snyes", + "soaks", + "soaps", + "soare", + "soars", + "soave", + "sobas", + "socas", + "soces", + "socko", + "socks", + "socle", + "sodas", + "soddy", + "sodic", + "sodom", + "sofar", + "sofas", + "softa", + "softs", + "softy", + "soger", + "sohur", + "soils", + "soily", + "sojas", + "sojus", + "sokah", + "soken", + "sokes", + "sokol", + "solah", + "solan", + "solas", + "solde", + "soldi", + "soldo", + "solds", + "soled", + "solei", + "soler", + "soles", + "solon", + "solos", + "solum", + "solus", + "soman", + "somas", + "sonce", + "sonde", + "sones", + "songs", + "sonly", + "sonne", + "sonny", + "sonse", + "sonsy", + "sooey", + "sooks", + "sooky", + "soole", + "sools", + "sooms", + "soops", + "soote", + "soots", + "sophs", + "sophy", + "sopor", + "soppy", + "sopra", + "soral", + "soras", + "sorbo", + "sorbs", + "sorda", + "sordo", + "sords", + "sored", + "soree", + "sorel", + "sorer", + "sores", + "sorex", + "sorgo", + "sorns", + "sorra", + "sorta", + "sorts", + "sorus", + "soths", + "sotol", + "souce", + "souct", + "sough", + "souks", + "souls", + "soums", + "soups", + "soupy", + "sours", + "souse", + "souts", + "sowar", + "sowce", + "sowed", + "sowff", + "sowfs", + "sowle", + "sowls", + "sowms", + "sownd", + "sowne", + "sowps", + "sowse", + "sowth", + "soyas", + "soyle", + "soyuz", + "sozin", + "spacy", + "spado", + "spaed", + "spaer", + "spaes", + "spags", + "spahi", + "spail", + "spain", + "spait", + "spake", + "spald", + "spale", + "spall", + "spalt", + "spams", + "spane", + "spang", + "spans", + "spard", + "spars", + "spart", + "spate", + "spats", + "spaul", + "spawl", + "spaws", + "spayd", + "spays", + "spaza", + "spazz", + "speal", + "spean", + "speat", + "specs", + "spect", + "speel", + "speer", + "speil", + "speir", + "speks", + "speld", + "spelk", + "speos", + "spets", + "speug", + "spews", + "spewy", + "spial", + "spica", + "spick", + "spics", + "spide", + "spier", + "spies", + "spiff", + "spifs", + "spiks", + "spile", + "spims", + "spina", + "spink", + "spins", + "spirt", + "spiry", + "spits", + "spitz", + "spivs", + "splay", + "splog", + "spode", + "spods", + "spoom", + "spoor", + "spoot", + "spork", + "sposh", + "spots", + "sprad", + "sprag", + "sprat", + "spred", + "sprew", + "sprit", + "sprod", + "sprog", + "sprue", + "sprug", + "spuds", + "spued", + "spuer", + "spues", + "spugs", + "spule", + "spume", + "spumy", + "spurs", + "sputa", + "spyal", + "spyre", + "squab", + "squaw", + "squeg", + "squid", + "squit", + "squiz", + "stabs", + "stade", + "stags", + "stagy", + "staig", + "stane", + "stang", + "staph", + "staps", + "starn", + "starr", + "stars", + "stats", + "staun", + "staws", + "stays", + "stean", + "stear", + "stedd", + "stede", + "steds", + "steek", + "steem", + "steen", + "steil", + "stela", + "stele", + "stell", + "steme", + "stems", + "stend", + "steno", + "stens", + "stent", + "steps", + "stept", + "stere", + "stets", + "stews", + "stewy", + "steys", + "stich", + "stied", + "sties", + "stilb", + "stile", + "stime", + "stims", + "stimy", + "stipa", + "stipe", + "stire", + "stirk", + "stirp", + "stirs", + "stive", + "stivy", + "stoae", + "stoai", + "stoas", + "stoat", + "stobs", + "stoep", + "stogy", + "stoit", + "stoln", + "stoma", + "stond", + "stong", + "stonk", + "stonn", + "stook", + "stoor", + "stope", + "stops", + "stopt", + "stoss", + "stots", + "stott", + "stoun", + "stoup", + "stour", + "stown", + "stowp", + "stows", + "strad", + "strae", + "strag", + "strak", + "strep", + "strew", + "stria", + "strig", + "strim", + "strop", + "strow", + "stroy", + "strum", + "stubs", + "stude", + "studs", + "stull", + "stulm", + "stumm", + "stums", + "stuns", + "stupa", + "stupe", + "sture", + "sturt", + "styed", + "styes", + "styli", + "stylo", + "styme", + "stymy", + "styre", + "styte", + "subah", + "subas", + "subby", + "suber", + "subha", + "succi", + "sucks", + "sucky", + "sucre", + "sudds", + "sudor", + "sudsy", + "suede", + "suent", + "suers", + "suete", + "suets", + "suety", + "sugan", + "sughs", + "sugos", + "suhur", + "suids", + "suint", + "suits", + "sujee", + "sukhs", + "sukuk", + "sulci", + "sulfa", + "sulfo", + "sulks", + "sulph", + "sulus", + "sumis", + "summa", + "sumos", + "sumph", + "sumps", + "sunis", + "sunks", + "sunna", + "sunns", + "sunup", + "supes", + "supra", + "surah", + "sural", + "suras", + "surat", + "surds", + "sured", + "sures", + "surfs", + "surfy", + "surgy", + "surra", + "sused", + "suses", + "susus", + "sutor", + "sutra", + "sutta", + "swabs", + "swack", + "swads", + "swage", + "swags", + "swail", + "swain", + "swale", + "swaly", + "swamy", + "swang", + "swank", + "swans", + "swaps", + "swapt", + "sward", + "sware", + "swarf", + "swart", + "swats", + "swayl", + "sways", + "sweal", + "swede", + "sweed", + "sweel", + "sweer", + "swees", + "sweir", + "swelt", + "swerf", + "sweys", + "swies", + "swigs", + "swile", + "swims", + "swink", + "swipe", + "swire", + "swiss", + "swith", + "swits", + "swive", + "swizz", + "swobs", + "swole", + "swoln", + "swops", + "swopt", + "swots", + "swoun", + "sybbe", + "sybil", + "syboe", + "sybow", + "sycee", + "syces", + "sycon", + "syens", + "syker", + "sykes", + "sylis", + "sylph", + "sylva", + "symar", + "synch", + "syncs", + "synds", + "syned", + "synes", + "synth", + "syped", + "sypes", + "syphs", + "syrah", + "syren", + "sysop", + "sythe", + "syver", + "taals", + "taata", + "taber", + "tabes", + "tabid", + "tabis", + "tabla", + "tabor", + "tabun", + "tabus", + "tacan", + "taces", + "tacet", + "tache", + "tacho", + "tachs", + "tacks", + "tacos", + "tacts", + "taels", + "tafia", + "taggy", + "tagma", + "tahas", + "tahrs", + "taiga", + "taigs", + "taiko", + "tails", + "tains", + "taira", + "taish", + "taits", + "tajes", + "takas", + "takes", + "takhi", + "takin", + "takis", + "takky", + "talak", + "talaq", + "talar", + "talas", + "talcs", + "talcy", + "talea", + "taler", + "tales", + "talks", + "talky", + "talls", + "talma", + "talpa", + "taluk", + "talus", + "tamal", + "tamed", + "tames", + "tamin", + "tamis", + "tammy", + "tamps", + "tanas", + "tanga", + "tangi", + "tangs", + "tanhs", + "tanka", + "tanks", + "tanky", + "tanna", + "tansy", + "tanti", + "tanto", + "tanty", + "tapas", + "taped", + "tapen", + "tapes", + "tapet", + "tapis", + "tappa", + "tapus", + "taras", + "tardo", + "tared", + "tares", + "targa", + "targe", + "tarns", + "taroc", + "tarok", + "taros", + "tarps", + "tarre", + "tarry", + "tarsi", + "tarts", + "tarty", + "tasar", + "tased", + "taser", + "tases", + "tasks", + "tassa", + "tasse", + "tasso", + "tatar", + "tater", + "tates", + "taths", + "tatie", + "tatou", + "tatts", + "tatus", + "taube", + "tauld", + "tauon", + "taupe", + "tauts", + "tavah", + "tavas", + "taver", + "tawai", + "tawas", + "tawed", + "tawer", + "tawie", + "tawse", + "tawts", + "taxed", + "taxer", + "taxes", + "taxis", + "taxol", + "taxon", + "taxor", + "taxus", + "tayra", + "tazza", + "tazze", + "teade", + "teads", + "teaed", + "teaks", + "teals", + "teams", + "tears", + "teats", + "teaze", + "techs", + "techy", + "tecta", + "teels", + "teems", + "teend", + "teene", + "teens", + "teeny", + "teers", + "teffs", + "teggs", + "tegua", + "tegus", + "tehrs", + "teiid", + "teils", + "teind", + "teins", + "telae", + "telco", + "teles", + "telex", + "telia", + "telic", + "tells", + "telly", + "teloi", + "telos", + "temed", + "temes", + "tempi", + "temps", + "tempt", + "temse", + "tench", + "tends", + "tendu", + "tenes", + "tenge", + "tenia", + "tenne", + "tenno", + "tenny", + "tenon", + "tents", + "tenty", + "tenue", + "tepal", + "tepas", + "tepoy", + "terai", + "teras", + "terce", + "terek", + "teres", + "terfe", + "terfs", + "terga", + "terms", + "terne", + "terns", + "terry", + "terts", + "tesla", + "testa", + "teste", + "tests", + "tetes", + "teths", + "tetra", + "tetri", + "teuch", + "teugh", + "tewed", + "tewel", + "tewit", + "texas", + "texes", + "texts", + "thack", + "thagi", + "thaim", + "thale", + "thali", + "thana", + "thane", + "thang", + "thans", + "thanx", + "tharm", + "thars", + "thaws", + "thawy", + "thebe", + "theca", + "theed", + "theek", + "thees", + "thegn", + "theic", + "thein", + "thelf", + "thema", + "thens", + "theow", + "therm", + "thesp", + "thete", + "thews", + "thewy", + "thigs", + "thilk", + "thill", + "thine", + "thins", + "thiol", + "thirl", + "thoft", + "thole", + "tholi", + "thoro", + "thorp", + "thous", + "thowl", + "thrae", + "thraw", + "thrid", + "thrip", + "throe", + "thuds", + "thugs", + "thuja", + "thunk", + "thurl", + "thuya", + "thymi", + "thymy", + "tians", + "tiars", + "tical", + "ticca", + "ticed", + "tices", + "tichy", + "ticks", + "ticky", + "tiddy", + "tided", + "tides", + "tiers", + "tiffs", + "tifos", + "tifts", + "tiges", + "tigon", + "tikas", + "tikes", + "tikis", + "tikka", + "tilak", + "tiled", + "tiler", + "tiles", + "tills", + "tilly", + "tilth", + "tilts", + "timbo", + "timed", + "times", + "timon", + "timps", + "tinas", + "tinct", + "tinds", + "tinea", + "tined", + "tines", + "tinge", + "tings", + "tinks", + "tinny", + "tints", + "tinty", + "tipis", + "tippy", + "tired", + "tires", + "tirls", + "tiros", + "tirrs", + "titch", + "titer", + "titis", + "titre", + "titty", + "titup", + "tiyin", + "tiyns", + "tizes", + "tizzy", + "toads", + "toady", + "toaze", + "tocks", + "tocky", + "tocos", + "todde", + "toeas", + "toffs", + "toffy", + "tofts", + "tofus", + "togae", + "togas", + "toged", + "toges", + "togue", + "tohos", + "toile", + "toils", + "toing", + "toise", + "toits", + "tokay", + "toked", + "toker", + "tokes", + "tokos", + "tolan", + "tolar", + "tolas", + "toled", + "toles", + "tolls", + "tolly", + "tolts", + "tolus", + "tolyl", + "toman", + "tombs", + "tomes", + "tomia", + "tommy", + "tomos", + "tondi", + "tondo", + "toned", + "toner", + "tones", + "toney", + "tongs", + "tonka", + "tonks", + "tonne", + "tonus", + "tools", + "tooms", + "toons", + "toots", + "toped", + "topee", + "topek", + "toper", + "topes", + "tophe", + "tophi", + "tophs", + "topis", + "topoi", + "topos", + "toppy", + "toque", + "torah", + "toran", + "toras", + "torcs", + "tores", + "toric", + "torii", + "toros", + "torot", + "torrs", + "torse", + "torsi", + "torsk", + "torta", + "torte", + "torts", + "tosas", + "tosed", + "toses", + "toshy", + "tossy", + "toted", + "toter", + "totes", + "totty", + "touks", + "touns", + "tours", + "touse", + "tousy", + "touts", + "touze", + "touzy", + "towed", + "towie", + "towns", + "towny", + "towse", + "towsy", + "towts", + "towze", + "towzy", + "toyed", + "toyer", + "toyon", + "toyos", + "tozed", + "tozes", + "tozie", + "trabs", + "trads", + "tragi", + "traik", + "trams", + "trank", + "tranq", + "trans", + "trant", + "trape", + "traps", + "trapt", + "trass", + "trats", + "tratt", + "trave", + "trayf", + "trays", + "treck", + "treed", + "treen", + "trees", + "trefa", + "treif", + "treks", + "trema", + "trems", + "tress", + "trest", + "trets", + "trews", + "treyf", + "treys", + "triac", + "tride", + "trier", + "tries", + "triff", + "trigo", + "trigs", + "trike", + "trild", + "trill", + "trims", + "trine", + "trins", + "triol", + "trior", + "trios", + "trips", + "tripy", + "trist", + "troad", + "troak", + "troat", + "trock", + "trode", + "trods", + "trogs", + "trois", + "troke", + "tromp", + "trona", + "tronc", + "trone", + "tronk", + "trons", + "trooz", + "troth", + "trots", + "trows", + "troys", + "trued", + "trues", + "trugo", + "trugs", + "trull", + "tryer", + "tryke", + "tryma", + "tryps", + "tsade", + "tsadi", + "tsars", + "tsked", + "tsuba", + "tsubo", + "tuans", + "tuart", + "tuath", + "tubae", + "tubar", + "tubas", + "tubby", + "tubed", + "tubes", + "tucks", + "tufas", + "tuffe", + "tuffs", + "tufts", + "tufty", + "tugra", + "tuile", + "tuina", + "tuism", + "tuktu", + "tules", + "tulpa", + "tulsi", + "tumid", + "tummy", + "tumps", + "tumpy", + "tunas", + "tunds", + "tuned", + "tuner", + "tunes", + "tungs", + "tunny", + "tupek", + "tupik", + "tuple", + "tuque", + "turds", + "turfs", + "turfy", + "turks", + "turme", + "turms", + "turns", + "turnt", + "turps", + "turrs", + "tushy", + "tusks", + "tusky", + "tutee", + "tutti", + "tutty", + "tutus", + "tuxes", + "tuyer", + "twaes", + "twain", + "twals", + "twank", + "twats", + "tways", + "tweel", + "tween", + "tweep", + "tweer", + "twerk", + "twerp", + "twier", + "twigs", + "twill", + "twilt", + "twink", + "twins", + "twiny", + "twire", + "twirp", + "twite", + "twits", + "twoer", + "twyer", + "tyees", + "tyers", + "tyiyn", + "tykes", + "tyler", + "tymps", + "tynde", + "tyned", + "tynes", + "typal", + "typed", + "types", + "typey", + "typic", + "typos", + "typps", + "typto", + "tyran", + "tyred", + "tyres", + "tyros", + "tythe", + "tzars", + "udals", + "udons", + "ugali", + "ugged", + "uhlan", + "uhuru", + "ukase", + "ulama", + "ulans", + "ulema", + "ulmin", + "ulnad", + "ulnae", + "ulnar", + "ulnas", + "ulpan", + "ulvas", + "ulyie", + "ulzie", + "umami", + "umbel", + "umber", + "umble", + "umbos", + "umbre", + "umiac", + "umiak", + "umiaq", + "ummah", + "ummas", + "ummed", + "umped", + "umphs", + "umpie", + "umpty", + "umrah", + "umras", + "unais", + "unapt", + "unarm", + "unary", + "unaus", + "unbag", + "unban", + "unbar", + "unbed", + "unbid", + "unbox", + "uncap", + "unces", + "uncia", + "uncos", + "uncoy", + "uncus", + "undam", + "undee", + "undos", + "undug", + "uneth", + "unfix", + "ungag", + "unget", + "ungod", + "ungot", + "ungum", + "unhat", + "unhip", + "unica", + "units", + "unjam", + "unked", + "unket", + "unkid", + "unlaw", + "unlay", + "unled", + "unlet", + "unlid", + "unman", + "unmew", + "unmix", + "unpay", + "unpeg", + "unpen", + "unpin", + "unred", + "unrid", + "unrig", + "unrip", + "unsaw", + "unsay", + "unsee", + "unsew", + "unsex", + "unsod", + "untax", + "untin", + "unwet", + "unwit", + "unwon", + "upbow", + "upbye", + "updos", + "updry", + "upend", + "upjet", + "uplay", + "upled", + "uplit", + "upped", + "upran", + "uprun", + "upsee", + "upsey", + "uptak", + "upter", + "uptie", + "uraei", + "urali", + "uraos", + "urare", + "urari", + "urase", + "urate", + "urbex", + "urbia", + "urdee", + "ureal", + "ureas", + "uredo", + "ureic", + "urena", + "urent", + "urged", + "urger", + "urges", + "urial", + "urite", + "urman", + "urnal", + "urned", + "urped", + "ursae", + "ursid", + "urson", + "urubu", + "urvas", + "users", + "usnea", + "usque", + "usure", + "usury", + "uteri", + "uveal", + "uveas", + "uvula", + "vacua", + "vaded", + "vades", + "vagal", + "vagus", + "vails", + "vaire", + "vairs", + "vairy", + "vakas", + "vakil", + "vales", + "valis", + "valse", + "vamps", + "vampy", + "vanda", + "vaned", + "vanes", + "vangs", + "vants", + "vaped", + "vaper", + "vapes", + "varan", + "varas", + "vardy", + "varec", + "vares", + "varia", + "varix", + "varna", + "varus", + "varve", + "vasal", + "vases", + "vasts", + "vasty", + "vatic", + "vatus", + "vauch", + "vaute", + "vauts", + "vawte", + "vaxes", + "veale", + "veals", + "vealy", + "veena", + "veeps", + "veers", + "veery", + "vegas", + "veges", + "vegie", + "vegos", + "vehme", + "veils", + "veily", + "veins", + "veiny", + "velar", + "velds", + "veldt", + "veles", + "vells", + "velum", + "venae", + "venal", + "vends", + "vendu", + "veney", + "venge", + "venin", + "vents", + "venus", + "verbs", + "verra", + "verry", + "verst", + "verts", + "vertu", + "vespa", + "vesta", + "vests", + "vetch", + "vexed", + "vexer", + "vexes", + "vexil", + "vezir", + "vials", + "viand", + "vibes", + "vibex", + "vibey", + "viced", + "vices", + "vichy", + "viers", + "views", + "viewy", + "vifda", + "viffs", + "vigas", + "vigia", + "vilde", + "viler", + "villi", + "vills", + "vimen", + "vinal", + "vinas", + "vinca", + "vined", + "viner", + "vines", + "vinew", + "vinic", + "vinos", + "vints", + "viold", + "viols", + "vired", + "vireo", + "vires", + "virga", + "virge", + "virid", + "virls", + "virtu", + "visas", + "vised", + "vises", + "visie", + "visne", + "vison", + "visto", + "vitae", + "vitas", + "vitex", + "vitro", + "vitta", + "vivas", + "vivat", + "vivda", + "viver", + "vives", + "vizir", + "vizor", + "vleis", + "vlies", + "vlogs", + "voars", + "vocab", + "voces", + "voddy", + "vodou", + "vodun", + "voema", + "vogie", + "voids", + "voile", + "voips", + "volae", + "volar", + "voled", + "voles", + "volet", + "volks", + "volta", + "volte", + "volti", + "volts", + "volva", + "volve", + "vomer", + "voted", + "votes", + "vouge", + "voulu", + "vowed", + "vower", + "voxel", + "vozhd", + "vraic", + "vrils", + "vroom", + "vrous", + "vrouw", + "vrows", + "vuggs", + "vuggy", + "vughs", + "vughy", + "vulgo", + "vulns", + "vulva", + "vutty", + "waacs", + "wacke", + "wacko", + "wacks", + "wadds", + "waddy", + "waded", + "wader", + "wades", + "wadge", + "wadis", + "wadts", + "waffs", + "wafts", + "waged", + "wages", + "wagga", + "wagyu", + "wahoo", + "waide", + "waifs", + "waift", + "wails", + "wains", + "wairs", + "waite", + "waits", + "wakas", + "waked", + "waken", + "waker", + "wakes", + "wakfs", + "waldo", + "walds", + "waled", + "waler", + "wales", + "walie", + "walis", + "walks", + "walla", + "walls", + "wally", + "walty", + "wamed", + "wames", + "wamus", + "wands", + "waned", + "wanes", + "waney", + "wangs", + "wanks", + "wanky", + "wanle", + "wanly", + "wanna", + "wants", + "wanty", + "wanze", + "waqfs", + "warbs", + "warby", + "wards", + "wared", + "wares", + "warez", + "warks", + "warms", + "warns", + "warps", + "warre", + "warst", + "warts", + "wases", + "washy", + "wasms", + "wasps", + "waspy", + "wasts", + "watap", + "watts", + "wauff", + "waugh", + "wauks", + "waulk", + "wauls", + "waurs", + "waved", + "waves", + "wavey", + "wawas", + "wawes", + "wawls", + "waxed", + "waxer", + "waxes", + "wayed", + "wazir", + "wazoo", + "weald", + "weals", + "weamb", + "weans", + "wears", + "webby", + "weber", + "wecht", + "wedel", + "wedgy", + "weeds", + "weeke", + "weeks", + "weels", + "weems", + "weens", + "weeny", + "weeps", + "weepy", + "weest", + "weete", + "weets", + "wefte", + "wefts", + "weids", + "weils", + "weirs", + "weise", + "weize", + "wekas", + "welds", + "welke", + "welks", + "welkt", + "wells", + "welly", + "welts", + "wembs", + "wends", + "wenge", + "wenny", + "wents", + "weros", + "wersh", + "wests", + "wetas", + "wetly", + "wexed", + "wexes", + "whamo", + "whams", + "whang", + "whaps", + "whare", + "whata", + "whats", + "whaup", + "whaur", + "wheal", + "whear", + "wheen", + "wheep", + "wheft", + "whelk", + "whelm", + "whens", + "whets", + "whews", + "wheys", + "whids", + "whift", + "whigs", + "whilk", + "whims", + "whins", + "whios", + "whips", + "whipt", + "whirr", + "whirs", + "whish", + "whiss", + "whist", + "whits", + "whity", + "whizz", + "whomp", + "whoof", + "whoot", + "whops", + "whore", + "whorl", + "whort", + "whoso", + "whows", + "whump", + "whups", + "whyda", + "wicca", + "wicks", + "wicky", + "widdy", + "wides", + "wiels", + "wifed", + "wifes", + "wifey", + "wifie", + "wifty", + "wigan", + "wigga", + "wiggy", + "wikis", + "wilco", + "wilds", + "wiled", + "wiles", + "wilga", + "wilis", + "wilja", + "wills", + "wilts", + "wimps", + "winds", + "wined", + "wines", + "winey", + "winge", + "wings", + "wingy", + "winks", + "winna", + "winns", + "winos", + "winze", + "wiped", + "wiper", + "wipes", + "wired", + "wirer", + "wires", + "wirra", + "wised", + "wises", + "wisha", + "wisht", + "wisps", + "wists", + "witan", + "wited", + "wites", + "withe", + "withs", + "withy", + "wived", + "wiver", + "wives", + "wizen", + "wizes", + "woads", + "woald", + "wocks", + "wodge", + "woful", + "wojus", + "woker", + "wokka", + "wolds", + "wolfs", + "wolly", + "wolve", + "wombs", + "womby", + "womyn", + "wonga", + "wongi", + "wonks", + "wonky", + "wonts", + "woods", + "wooed", + "woofs", + "woofy", + "woold", + "wools", + "woons", + "woops", + "woopy", + "woose", + "woosh", + "wootz", + "words", + "works", + "worms", + "wormy", + "worts", + "wowed", + "wowee", + "woxen", + "wrang", + "wraps", + "wrapt", + "wrast", + "wrate", + "wrawl", + "wrens", + "wrick", + "wried", + "wrier", + "wries", + "writs", + "wroke", + "wroot", + "wroth", + "wryer", + "wuddy", + "wudus", + "wulls", + "wurst", + "wuses", + "wushu", + "wussy", + "wuxia", + "wyled", + "wyles", + "wynds", + "wynns", + "wyted", + "wytes", + "xebec", + "xenia", + "xenic", + "xenon", + "xeric", + "xerox", + "xerus", + "xoana", + "xrays", + "xylan", + "xylem", + "xylic", + "xylol", + "xylyl", + "xysti", + "xysts", + "yaars", + "yabas", + "yabba", + "yabby", + "yacca", + "yacka", + "yacks", + "yaffs", + "yager", + "yages", + "yagis", + "yahoo", + "yaird", + "yakka", + "yakow", + "yales", + "yamen", + "yampy", + "yamun", + "yangs", + "yanks", + "yapok", + "yapon", + "yapps", + "yappy", + "yarak", + "yarco", + "yards", + "yarer", + "yarfa", + "yarks", + "yarns", + "yarrs", + "yarta", + "yarto", + "yates", + "yauds", + "yauld", + "yaups", + "yawed", + "yawey", + "yawls", + "yawns", + "yawny", + "yawps", + "ybore", + "yclad", + "ycled", + "ycond", + "ydrad", + "ydred", + "yeads", + "yeahs", + "yealm", + "yeans", + "yeard", + "years", + "yecch", + "yechs", + "yechy", + "yedes", + "yeeds", + "yeesh", + "yeggs", + "yelks", + "yells", + "yelms", + "yelps", + "yelts", + "yenta", + "yente", + "yerba", + "yerds", + "yerks", + "yeses", + "yesks", + "yests", + "yesty", + "yetis", + "yetts", + "yeuks", + "yeuky", + "yeven", + "yeves", + "yewen", + "yexed", + "yexes", + "yfere", + "yiked", + "yikes", + "yills", + "yince", + "yipes", + "yippy", + "yirds", + "yirks", + "yirrs", + "yirth", + "yites", + "yitie", + "ylems", + "ylike", + "ylkes", + "ymolt", + "ympes", + "yobbo", + "yobby", + "yocks", + "yodel", + "yodhs", + "yodle", + "yogas", + "yogee", + "yoghs", + "yogic", + "yogin", + "yogis", + "yoick", + "yojan", + "yoked", + "yokel", + "yoker", + "yokes", + "yokul", + "yolks", + "yolky", + "yomim", + "yomps", + "yonic", + "yonis", + "yonks", + "yoofs", + "yoops", + "yores", + "yorks", + "yorps", + "youks", + "yourn", + "yours", + "yourt", + "youse", + "yowed", + "yowes", + "yowie", + "yowls", + "yowza", + "yrapt", + "yrent", + "yrivd", + "yrneh", + "ysame", + "ytost", + "yuans", + "yucas", + "yucca", + "yucch", + "yucko", + "yucks", + "yucky", + "yufts", + "yugas", + "yuked", + "yukes", + "yukky", + "yukos", + "yulan", + "yules", + "yummo", + "yummy", + "yumps", + "yupon", + "yuppy", + "yurta", + "yurts", + "yuzus", + "zabra", + "zacks", + "zaida", + "zaidy", + "zaire", + "zakat", + "zaman", + "zambo", + "zamia", + "zanja", + "zante", + "zanza", + "zanze", + "zappy", + "zarfs", + "zaris", + "zatis", + "zaxes", + "zayin", + "zazen", + "zeals", + "zebec", + "zebub", + "zebus", + "zedas", + "zeins", + "zendo", + "zerda", + "zerks", + "zeros", + "zests", + "zetas", + "zexes", + "zezes", + "zhomo", + "zibet", + "ziffs", + "zigan", + "zilas", + "zilch", + "zilla", + "zills", + "zimbi", + "zimbs", + "zinco", + "zincs", + "zincy", + "zineb", + "zines", + "zings", + "zingy", + "zinke", + "zinky", + "zippo", + "zippy", + "ziram", + "zitis", + "zizel", + "zizit", + "zlote", + "zloty", + "zoaea", + "zobos", + "zobus", + "zocco", + "zoeae", + "zoeal", + "zoeas", + "zoism", + "zoist", + "zombi", + "zonae", + "zonda", + "zoned", + "zoner", + "zones", + "zonks", + "zooea", + "zooey", + "zooid", + "zooks", + "zooms", + "zoons", + "zooty", + "zoppa", + "zoppo", + "zoril", + "zoris", + "zorro", + "zouks", + "zowee", + "zowie", + "zulus", + "zupan", + "zupas", + "zuppa", + "zurfs", + "zuzim", + "zygal", + "zygon", + "zymes", + "zymic" +]); +class Game { + /** + * Create a game object from the player's cookie, or initialise a new game + */ + constructor(serialized = void 0) { + if (serialized) { + const [index, guesses, answers] = serialized.split("-"); + this.index = +index; + this.guesses = guesses ? guesses.split(" ") : []; + this.answers = answers ? answers.split(" ") : []; + } else { + this.index = Math.floor(Math.random() * words.length); + this.guesses = ["", "", "", "", "", ""]; + this.answers = []; + } + this.answer = words[this.index]; + } + /** + * Update game state based on a guess of a five-letter word. Returns + * true if the guess was valid, false otherwise + */ + enter(letters) { + const word = letters.join(""); + const valid = allowed.has(word); + if (!valid) + return false; + this.guesses[this.answers.length] = word; + const available = Array.from(this.answer); + const answer = Array(5).fill("_"); + for (let i = 0; i < 5; i += 1) { + if (letters[i] === available[i]) { + answer[i] = "x"; + available[i] = " "; + } + } + for (let i = 0; i < 5; i += 1) { + if (answer[i] === "_") { + const index = available.indexOf(letters[i]); + if (index !== -1) { + answer[i] = "c"; + available[index] = " "; + } + } + } + this.answers.push(answer.join("")); + return true; + } + /** + * Serialize game state so it can be set as a cookie + */ + toString() { + return `${this.index}-${this.guesses.join(" ")}-${this.answers.join(" ")}`; + } +} +const load = ({ cookies }) => { + const game = new Game(cookies.get("sverdle")); + return { + /** + * The player's guessed words so far + */ + guesses: game.guesses, + /** + * An array of strings like '__x_c' corresponding to the guesses, where 'x' means + * an exact match, and 'c' means a close match (right letter, wrong place) + */ + answers: game.answers, + /** + * The correct answer, revealed if the game is over + */ + answer: game.answers.length >= 6 ? game.answer : null + }; +}; +const actions = { + /** + * Modify game state in reaction to a keypress. If client-side JavaScript + * is available, this will happen in the browser instead of here + */ + update: async ({ request, cookies }) => { + const game = new Game(cookies.get("sverdle")); + const data = await request.formData(); + const key = data.get("key"); + const i = game.answers.length; + if (key === "backspace") { + game.guesses[i] = game.guesses[i].slice(0, -1); + } else { + game.guesses[i] += key; + } + cookies.set("sverdle", game.toString()); + }, + /** + * Modify game state in reaction to a guessed word. This logic always runs on + * the server, so that people can't cheat by peeking at the JavaScript + */ + enter: async ({ request, cookies }) => { + const game = new Game(cookies.get("sverdle")); + const data = await request.formData(); + const guess = data.getAll("guess"); + if (!game.enter(guess)) { + return fail(400, { badGuess: true }); + } + cookies.set("sverdle", game.toString()); + }, + restart: async ({ cookies }) => { + cookies.delete("sverdle"); + } +}; + +var _page_server_ts = /*#__PURE__*/Object.freeze({ + __proto__: null, + actions: actions, + load: load +}); + +const index = 4; +let component_cache; +const component = async () => component_cache ??= (await import('./_page.svelte-c6e4b665.js')).default; +const server_id = "src/routes/sverdle/+page.server.ts"; +const imports = ["_app/immutable/nodes/4.125b71e3.js","_app/immutable/chunks/scheduler.cbf234a0.js","_app/immutable/chunks/index.200976ee.js","_app/immutable/chunks/parse.bee59afc.js","_app/immutable/chunks/singletons.13d7fb5f.js","_app/immutable/chunks/index.14349a18.js"]; +const stylesheets = ["_app/immutable/assets/4.9d501049.css"]; +const fonts = []; + +export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets }; +//# sourceMappingURL=4-45ccd4e8.js.map diff --git a/Svelte-Build/src/server/chunks/4-45ccd4e8.js.map b/Svelte-Build/src/server/chunks/4-45ccd4e8.js.map new file mode 100644 index 0000000..748de18 --- /dev/null +++ b/Svelte-Build/src/server/chunks/4-45ccd4e8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"4-45ccd4e8.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/entries/pages/sverdle/_page.server.ts.js","../../../../SvelteKit-App/.svelte-kit/adapter-node/nodes/4.js"],"sourcesContent":["import { f as fail } from \"../../../chunks/index.js\";\nconst words = [\n \"aback\",\n \"abase\",\n \"abate\",\n \"abbey\",\n \"abbot\",\n \"abhor\",\n \"abide\",\n \"abled\",\n \"abode\",\n \"abort\",\n \"about\",\n \"above\",\n \"abuse\",\n \"abyss\",\n \"acorn\",\n \"acrid\",\n \"actor\",\n \"acute\",\n \"adage\",\n \"adapt\",\n \"adept\",\n \"admin\",\n \"admit\",\n \"adobe\",\n \"adopt\",\n \"adore\",\n \"adorn\",\n \"adult\",\n \"affix\",\n \"afire\",\n \"afoot\",\n \"afoul\",\n \"after\",\n \"again\",\n \"agape\",\n \"agate\",\n \"agent\",\n \"agile\",\n \"aging\",\n \"aglow\",\n \"agony\",\n \"agora\",\n \"agree\",\n \"ahead\",\n \"aider\",\n \"aisle\",\n \"alarm\",\n \"album\",\n \"alert\",\n \"algae\",\n \"alibi\",\n \"alien\",\n \"align\",\n \"alike\",\n \"alive\",\n \"allay\",\n \"alley\",\n \"allot\",\n \"allow\",\n \"alloy\",\n \"aloft\",\n \"alone\",\n \"along\",\n \"aloof\",\n \"aloud\",\n \"alpha\",\n \"altar\",\n \"alter\",\n \"amass\",\n \"amaze\",\n \"amber\",\n \"amble\",\n \"amend\",\n \"amiss\",\n \"amity\",\n \"among\",\n \"ample\",\n \"amply\",\n \"amuse\",\n \"angel\",\n \"anger\",\n \"angle\",\n \"angry\",\n \"angst\",\n \"anime\",\n \"ankle\",\n \"annex\",\n \"annoy\",\n \"annul\",\n \"anode\",\n \"antic\",\n \"anvil\",\n \"aorta\",\n \"apart\",\n \"aphid\",\n \"aping\",\n \"apnea\",\n \"apple\",\n \"apply\",\n \"apron\",\n \"aptly\",\n \"arbor\",\n \"ardor\",\n \"arena\",\n \"argue\",\n \"arise\",\n \"armor\",\n \"aroma\",\n \"arose\",\n \"array\",\n \"arrow\",\n \"arson\",\n \"artsy\",\n \"ascot\",\n \"ashen\",\n \"aside\",\n \"askew\",\n \"assay\",\n \"asset\",\n \"atoll\",\n \"atone\",\n \"attic\",\n \"audio\",\n \"audit\",\n \"augur\",\n \"aunty\",\n \"avail\",\n \"avert\",\n \"avian\",\n \"avoid\",\n \"await\",\n \"awake\",\n \"award\",\n \"aware\",\n \"awash\",\n \"awful\",\n \"awoke\",\n \"axial\",\n \"axiom\",\n \"axion\",\n \"azure\",\n \"bacon\",\n \"badge\",\n \"badly\",\n \"bagel\",\n \"baggy\",\n \"baker\",\n \"baler\",\n \"balmy\",\n \"banal\",\n \"banjo\",\n \"barge\",\n \"baron\",\n \"basal\",\n \"basic\",\n \"basil\",\n \"basin\",\n \"basis\",\n \"baste\",\n \"batch\",\n \"bathe\",\n \"baton\",\n \"batty\",\n \"bawdy\",\n \"bayou\",\n \"beach\",\n \"beady\",\n \"beard\",\n \"beast\",\n \"beech\",\n \"beefy\",\n \"befit\",\n \"began\",\n \"begat\",\n \"beget\",\n \"begin\",\n \"begun\",\n \"being\",\n \"belch\",\n \"belie\",\n \"belle\",\n \"belly\",\n \"below\",\n \"bench\",\n \"beret\",\n \"berry\",\n \"berth\",\n \"beset\",\n \"betel\",\n \"bevel\",\n \"bezel\",\n \"bible\",\n \"bicep\",\n \"biddy\",\n \"bigot\",\n \"bilge\",\n \"billy\",\n \"binge\",\n \"bingo\",\n \"biome\",\n \"birch\",\n \"birth\",\n \"bison\",\n \"bitty\",\n \"black\",\n \"blade\",\n \"blame\",\n \"bland\",\n \"blank\",\n \"blare\",\n \"blast\",\n \"blaze\",\n \"bleak\",\n \"bleat\",\n \"bleed\",\n \"bleep\",\n \"blend\",\n \"bless\",\n \"blimp\",\n \"blind\",\n \"blink\",\n \"bliss\",\n \"blitz\",\n \"bloat\",\n \"block\",\n \"bloke\",\n \"blond\",\n \"blood\",\n \"bloom\",\n \"blown\",\n \"bluer\",\n \"bluff\",\n \"blunt\",\n \"blurb\",\n \"blurt\",\n \"blush\",\n \"board\",\n \"boast\",\n \"bobby\",\n \"boney\",\n \"bongo\",\n \"bonus\",\n \"booby\",\n \"boost\",\n \"booth\",\n \"booty\",\n \"booze\",\n \"boozy\",\n \"borax\",\n \"borne\",\n \"bosom\",\n \"bossy\",\n \"botch\",\n \"bough\",\n \"boule\",\n \"bound\",\n \"bowel\",\n \"boxer\",\n \"brace\",\n \"braid\",\n \"brain\",\n \"brake\",\n \"brand\",\n \"brash\",\n \"brass\",\n \"brave\",\n \"bravo\",\n \"brawl\",\n \"brawn\",\n \"bread\",\n \"break\",\n \"breed\",\n \"briar\",\n \"bribe\",\n \"brick\",\n \"bride\",\n \"brief\",\n \"brine\",\n \"bring\",\n \"brink\",\n \"briny\",\n \"brisk\",\n \"broad\",\n \"broil\",\n \"broke\",\n \"brood\",\n \"brook\",\n \"broom\",\n \"broth\",\n \"brown\",\n \"brunt\",\n \"brush\",\n \"brute\",\n \"buddy\",\n \"budge\",\n \"buggy\",\n \"bugle\",\n \"build\",\n \"built\",\n \"bulge\",\n \"bulky\",\n \"bully\",\n \"bunch\",\n \"bunny\",\n \"burly\",\n \"burnt\",\n \"burst\",\n \"bused\",\n \"bushy\",\n \"butch\",\n \"butte\",\n \"buxom\",\n \"buyer\",\n \"bylaw\",\n \"cabal\",\n \"cabby\",\n \"cabin\",\n \"cable\",\n \"cacao\",\n \"cache\",\n \"cacti\",\n \"caddy\",\n \"cadet\",\n \"cagey\",\n \"cairn\",\n \"camel\",\n \"cameo\",\n \"canal\",\n \"candy\",\n \"canny\",\n \"canoe\",\n \"canon\",\n \"caper\",\n \"caput\",\n \"carat\",\n \"cargo\",\n \"carol\",\n \"carry\",\n \"carve\",\n \"caste\",\n \"catch\",\n \"cater\",\n \"catty\",\n \"caulk\",\n \"cause\",\n \"cavil\",\n \"cease\",\n \"cedar\",\n \"cello\",\n \"chafe\",\n \"chaff\",\n \"chain\",\n \"chair\",\n \"chalk\",\n \"champ\",\n \"chant\",\n \"chaos\",\n \"chard\",\n \"charm\",\n \"chart\",\n \"chase\",\n \"chasm\",\n \"cheap\",\n \"cheat\",\n \"check\",\n \"cheek\",\n \"cheer\",\n \"chess\",\n \"chest\",\n \"chick\",\n \"chide\",\n \"chief\",\n \"child\",\n \"chili\",\n \"chill\",\n \"chime\",\n \"china\",\n \"chirp\",\n \"chock\",\n \"choir\",\n \"choke\",\n \"chord\",\n \"chore\",\n \"chose\",\n \"chuck\",\n \"chump\",\n \"chunk\",\n \"churn\",\n \"chute\",\n \"cider\",\n \"cigar\",\n \"cinch\",\n \"circa\",\n \"civic\",\n \"civil\",\n \"clack\",\n \"claim\",\n \"clamp\",\n \"clang\",\n \"clank\",\n \"clash\",\n \"clasp\",\n \"class\",\n \"clean\",\n \"clear\",\n \"cleat\",\n \"cleft\",\n \"clerk\",\n \"click\",\n \"cliff\",\n \"climb\",\n \"cling\",\n \"clink\",\n \"cloak\",\n \"clock\",\n \"clone\",\n \"close\",\n \"cloth\",\n \"cloud\",\n \"clout\",\n \"clove\",\n \"clown\",\n \"cluck\",\n \"clued\",\n \"clump\",\n \"clung\",\n \"coach\",\n \"coast\",\n \"cobra\",\n \"cocoa\",\n \"colon\",\n \"color\",\n \"comet\",\n \"comfy\",\n \"comic\",\n \"comma\",\n \"conch\",\n \"condo\",\n \"conic\",\n \"copse\",\n \"coral\",\n \"corer\",\n \"corny\",\n \"couch\",\n \"cough\",\n \"could\",\n \"count\",\n \"coupe\",\n \"court\",\n \"coven\",\n \"cover\",\n \"covet\",\n \"covey\",\n \"cower\",\n \"coyly\",\n \"crack\",\n \"craft\",\n \"cramp\",\n \"crane\",\n \"crank\",\n \"crash\",\n \"crass\",\n \"crate\",\n \"crave\",\n \"crawl\",\n \"craze\",\n \"crazy\",\n \"creak\",\n \"cream\",\n \"credo\",\n \"creed\",\n \"creek\",\n \"creep\",\n \"creme\",\n \"crepe\",\n \"crept\",\n \"cress\",\n \"crest\",\n \"crick\",\n \"cried\",\n \"crier\",\n \"crime\",\n \"crimp\",\n \"crisp\",\n \"croak\",\n \"crock\",\n \"crone\",\n \"crony\",\n \"crook\",\n \"cross\",\n \"croup\",\n \"crowd\",\n \"crown\",\n \"crude\",\n \"cruel\",\n \"crumb\",\n \"crump\",\n \"crush\",\n \"crust\",\n \"crypt\",\n \"cubic\",\n \"cumin\",\n \"curio\",\n \"curly\",\n \"curry\",\n \"curse\",\n \"curve\",\n \"curvy\",\n \"cutie\",\n \"cyber\",\n \"cycle\",\n \"cynic\",\n \"daddy\",\n \"daily\",\n \"dairy\",\n \"daisy\",\n \"dally\",\n \"dance\",\n \"dandy\",\n \"datum\",\n \"daunt\",\n \"dealt\",\n \"death\",\n \"debar\",\n \"debit\",\n \"debug\",\n \"debut\",\n \"decal\",\n \"decay\",\n \"decor\",\n \"decoy\",\n \"decry\",\n \"defer\",\n \"deign\",\n \"deity\",\n \"delay\",\n \"delta\",\n \"delve\",\n \"demon\",\n \"demur\",\n \"denim\",\n \"dense\",\n \"depot\",\n \"depth\",\n \"derby\",\n \"deter\",\n \"detox\",\n \"deuce\",\n \"devil\",\n \"diary\",\n \"dicey\",\n \"digit\",\n \"dilly\",\n \"dimly\",\n \"diner\",\n \"dingo\",\n \"dingy\",\n \"diode\",\n \"dirge\",\n \"dirty\",\n \"disco\",\n \"ditch\",\n \"ditto\",\n \"ditty\",\n \"diver\",\n \"dizzy\",\n \"dodge\",\n \"dodgy\",\n \"dogma\",\n \"doing\",\n \"dolly\",\n \"donor\",\n \"donut\",\n \"dopey\",\n \"doubt\",\n \"dough\",\n \"dowdy\",\n \"dowel\",\n \"downy\",\n \"dowry\",\n \"dozen\",\n \"draft\",\n \"drain\",\n \"drake\",\n \"drama\",\n \"drank\",\n \"drape\",\n \"drawl\",\n \"drawn\",\n \"dread\",\n \"dream\",\n \"dress\",\n \"dried\",\n \"drier\",\n \"drift\",\n \"drill\",\n \"drink\",\n \"drive\",\n \"droit\",\n \"droll\",\n \"drone\",\n \"drool\",\n \"droop\",\n \"dross\",\n \"drove\",\n \"drown\",\n \"druid\",\n \"drunk\",\n \"dryer\",\n \"dryly\",\n \"duchy\",\n \"dully\",\n \"dummy\",\n \"dumpy\",\n \"dunce\",\n \"dusky\",\n \"dusty\",\n \"dutch\",\n \"duvet\",\n \"dwarf\",\n \"dwell\",\n \"dwelt\",\n \"dying\",\n \"eager\",\n \"eagle\",\n \"early\",\n \"earth\",\n \"easel\",\n \"eaten\",\n \"eater\",\n \"ebony\",\n \"eclat\",\n \"edict\",\n \"edify\",\n \"eerie\",\n \"egret\",\n \"eight\",\n \"eject\",\n \"eking\",\n \"elate\",\n \"elbow\",\n \"elder\",\n \"elect\",\n \"elegy\",\n \"elfin\",\n \"elide\",\n \"elite\",\n \"elope\",\n \"elude\",\n \"email\",\n \"embed\",\n \"ember\",\n \"emcee\",\n \"empty\",\n \"enact\",\n \"endow\",\n \"enema\",\n \"enemy\",\n \"enjoy\",\n \"ennui\",\n \"ensue\",\n \"enter\",\n \"entry\",\n \"envoy\",\n \"epoch\",\n \"epoxy\",\n \"equal\",\n \"equip\",\n \"erase\",\n \"erect\",\n \"erode\",\n \"error\",\n \"erupt\",\n \"essay\",\n \"ester\",\n \"ether\",\n \"ethic\",\n \"ethos\",\n \"etude\",\n \"evade\",\n \"event\",\n \"every\",\n \"evict\",\n \"evoke\",\n \"exact\",\n \"exalt\",\n \"excel\",\n \"exert\",\n \"exile\",\n \"exist\",\n \"expel\",\n \"extol\",\n \"extra\",\n \"exult\",\n \"eying\",\n \"fable\",\n \"facet\",\n \"faint\",\n \"fairy\",\n \"faith\",\n \"false\",\n \"fancy\",\n \"fanny\",\n \"farce\",\n \"fatal\",\n \"fatty\",\n \"fault\",\n \"fauna\",\n \"favor\",\n \"feast\",\n \"fecal\",\n \"feign\",\n \"fella\",\n \"felon\",\n \"femme\",\n \"femur\",\n \"fence\",\n \"feral\",\n \"ferry\",\n \"fetal\",\n \"fetch\",\n \"fetid\",\n \"fetus\",\n \"fever\",\n \"fewer\",\n \"fiber\",\n \"fibre\",\n \"ficus\",\n \"field\",\n \"fiend\",\n \"fiery\",\n \"fifth\",\n \"fifty\",\n \"fight\",\n \"filer\",\n \"filet\",\n \"filly\",\n \"filmy\",\n \"filth\",\n \"final\",\n \"finch\",\n \"finer\",\n \"first\",\n \"fishy\",\n \"fixer\",\n \"fizzy\",\n \"fjord\",\n \"flack\",\n \"flail\",\n \"flair\",\n \"flake\",\n \"flaky\",\n \"flame\",\n \"flank\",\n \"flare\",\n \"flash\",\n \"flask\",\n \"fleck\",\n \"fleet\",\n \"flesh\",\n \"flick\",\n \"flier\",\n \"fling\",\n \"flint\",\n \"flirt\",\n \"float\",\n \"flock\",\n \"flood\",\n \"floor\",\n \"flora\",\n \"floss\",\n \"flour\",\n \"flout\",\n \"flown\",\n \"fluff\",\n \"fluid\",\n \"fluke\",\n \"flume\",\n \"flung\",\n \"flunk\",\n \"flush\",\n \"flute\",\n \"flyer\",\n \"foamy\",\n \"focal\",\n \"focus\",\n \"foggy\",\n \"foist\",\n \"folio\",\n \"folly\",\n \"foray\",\n \"force\",\n \"forge\",\n \"forgo\",\n \"forte\",\n \"forth\",\n \"forty\",\n \"forum\",\n \"found\",\n \"foyer\",\n \"frail\",\n \"frame\",\n \"frank\",\n \"fraud\",\n \"freak\",\n \"freed\",\n \"freer\",\n \"fresh\",\n \"friar\",\n \"fried\",\n \"frill\",\n \"frisk\",\n \"fritz\",\n \"frock\",\n \"frond\",\n \"front\",\n \"frost\",\n \"froth\",\n \"frown\",\n \"froze\",\n \"fruit\",\n \"fudge\",\n \"fugue\",\n \"fully\",\n \"fungi\",\n \"funky\",\n \"funny\",\n \"furor\",\n \"furry\",\n \"fussy\",\n \"fuzzy\",\n \"gaffe\",\n \"gaily\",\n \"gamer\",\n \"gamma\",\n \"gamut\",\n \"gassy\",\n \"gaudy\",\n \"gauge\",\n \"gaunt\",\n \"gauze\",\n \"gavel\",\n \"gawky\",\n \"gayer\",\n \"gayly\",\n \"gazer\",\n \"gecko\",\n \"geeky\",\n \"geese\",\n \"genie\",\n \"genre\",\n \"ghost\",\n \"ghoul\",\n \"giant\",\n \"giddy\",\n \"gipsy\",\n \"girly\",\n \"girth\",\n \"given\",\n \"giver\",\n \"glade\",\n \"gland\",\n \"glare\",\n \"glass\",\n \"glaze\",\n \"gleam\",\n \"glean\",\n \"glide\",\n \"glint\",\n \"gloat\",\n \"globe\",\n \"gloom\",\n \"glory\",\n \"gloss\",\n \"glove\",\n \"glyph\",\n \"gnash\",\n \"gnome\",\n \"godly\",\n \"going\",\n \"golem\",\n \"golly\",\n \"gonad\",\n \"goner\",\n \"goody\",\n \"gooey\",\n \"goofy\",\n \"goose\",\n \"gorge\",\n \"gouge\",\n \"gourd\",\n \"grace\",\n \"grade\",\n \"graft\",\n \"grail\",\n \"grain\",\n \"grand\",\n \"grant\",\n \"grape\",\n \"graph\",\n \"grasp\",\n \"grass\",\n \"grate\",\n \"grave\",\n \"gravy\",\n \"graze\",\n \"great\",\n \"greed\",\n \"green\",\n \"greet\",\n \"grief\",\n \"grill\",\n \"grime\",\n \"grimy\",\n \"grind\",\n \"gripe\",\n \"groan\",\n \"groin\",\n \"groom\",\n \"grope\",\n \"gross\",\n \"group\",\n \"grout\",\n \"grove\",\n \"growl\",\n \"grown\",\n \"gruel\",\n \"gruff\",\n \"grunt\",\n \"guard\",\n \"guava\",\n \"guess\",\n \"guest\",\n \"guide\",\n \"guild\",\n \"guile\",\n \"guilt\",\n \"guise\",\n \"gulch\",\n \"gully\",\n \"gumbo\",\n \"gummy\",\n \"guppy\",\n \"gusto\",\n \"gusty\",\n \"gypsy\",\n \"habit\",\n \"hairy\",\n \"halve\",\n \"handy\",\n \"happy\",\n \"hardy\",\n \"harem\",\n \"harpy\",\n \"harry\",\n \"harsh\",\n \"haste\",\n \"hasty\",\n \"hatch\",\n \"hater\",\n \"haunt\",\n \"haute\",\n \"haven\",\n \"havoc\",\n \"hazel\",\n \"heady\",\n \"heard\",\n \"heart\",\n \"heath\",\n \"heave\",\n \"heavy\",\n \"hedge\",\n \"hefty\",\n \"heist\",\n \"helix\",\n \"hello\",\n \"hence\",\n \"heron\",\n \"hilly\",\n \"hinge\",\n \"hippo\",\n \"hippy\",\n \"hitch\",\n \"hoard\",\n \"hobby\",\n \"hoist\",\n \"holly\",\n \"homer\",\n \"honey\",\n \"honor\",\n \"horde\",\n \"horny\",\n \"horse\",\n \"hotel\",\n \"hotly\",\n \"hound\",\n \"house\",\n \"hovel\",\n \"hover\",\n \"howdy\",\n \"human\",\n \"humid\",\n \"humor\",\n \"humph\",\n \"humus\",\n \"hunch\",\n \"hunky\",\n \"hurry\",\n \"husky\",\n \"hussy\",\n \"hutch\",\n \"hydro\",\n \"hyena\",\n \"hymen\",\n \"hyper\",\n \"icily\",\n \"icing\",\n \"ideal\",\n \"idiom\",\n \"idiot\",\n \"idler\",\n \"idyll\",\n \"igloo\",\n \"iliac\",\n \"image\",\n \"imbue\",\n \"impel\",\n \"imply\",\n \"inane\",\n \"inbox\",\n \"incur\",\n \"index\",\n \"inept\",\n \"inert\",\n \"infer\",\n \"ingot\",\n \"inlay\",\n \"inlet\",\n \"inner\",\n \"input\",\n \"inter\",\n \"intro\",\n \"ionic\",\n \"irate\",\n \"irony\",\n \"islet\",\n \"issue\",\n \"itchy\",\n \"ivory\",\n \"jaunt\",\n \"jazzy\",\n \"jelly\",\n \"jerky\",\n \"jetty\",\n \"jewel\",\n \"jiffy\",\n \"joint\",\n \"joist\",\n \"joker\",\n \"jolly\",\n \"joust\",\n \"judge\",\n \"juice\",\n \"juicy\",\n \"jumbo\",\n \"jumpy\",\n \"junta\",\n \"junto\",\n \"juror\",\n \"kappa\",\n \"karma\",\n \"kayak\",\n \"kebab\",\n \"khaki\",\n \"kinky\",\n \"kiosk\",\n \"kitty\",\n \"knack\",\n \"knave\",\n \"knead\",\n \"kneed\",\n \"kneel\",\n \"knelt\",\n \"knife\",\n \"knock\",\n \"knoll\",\n \"known\",\n \"koala\",\n \"krill\",\n \"label\",\n \"labor\",\n \"laden\",\n \"ladle\",\n \"lager\",\n \"lance\",\n \"lanky\",\n \"lapel\",\n \"lapse\",\n \"large\",\n \"larva\",\n \"lasso\",\n \"latch\",\n \"later\",\n \"lathe\",\n \"latte\",\n \"laugh\",\n \"layer\",\n \"leach\",\n \"leafy\",\n \"leaky\",\n \"leant\",\n \"leapt\",\n \"learn\",\n \"lease\",\n \"leash\",\n \"least\",\n \"leave\",\n \"ledge\",\n \"leech\",\n \"leery\",\n \"lefty\",\n \"legal\",\n \"leggy\",\n \"lemon\",\n \"lemur\",\n \"leper\",\n \"level\",\n \"lever\",\n \"libel\",\n \"liege\",\n \"light\",\n \"liken\",\n \"lilac\",\n \"limbo\",\n \"limit\",\n \"linen\",\n \"liner\",\n \"lingo\",\n \"lipid\",\n \"lithe\",\n \"liver\",\n \"livid\",\n \"llama\",\n \"loamy\",\n \"loath\",\n \"lobby\",\n \"local\",\n \"locus\",\n \"lodge\",\n \"lofty\",\n \"logic\",\n \"login\",\n \"loopy\",\n \"loose\",\n \"lorry\",\n \"loser\",\n \"louse\",\n \"lousy\",\n \"lover\",\n \"lower\",\n \"lowly\",\n \"loyal\",\n \"lucid\",\n \"lucky\",\n \"lumen\",\n \"lumpy\",\n \"lunar\",\n \"lunch\",\n \"lunge\",\n \"lupus\",\n \"lurch\",\n \"lurid\",\n \"lusty\",\n \"lying\",\n \"lymph\",\n \"lynch\",\n \"lyric\",\n \"macaw\",\n \"macho\",\n \"macro\",\n \"madam\",\n \"madly\",\n \"mafia\",\n \"magic\",\n \"magma\",\n \"maize\",\n \"major\",\n \"maker\",\n \"mambo\",\n \"mamma\",\n \"mammy\",\n \"manga\",\n \"mange\",\n \"mango\",\n \"mangy\",\n \"mania\",\n \"manic\",\n \"manly\",\n \"manor\",\n \"maple\",\n \"march\",\n \"marry\",\n \"marsh\",\n \"mason\",\n \"masse\",\n \"match\",\n \"matey\",\n \"mauve\",\n \"maxim\",\n \"maybe\",\n \"mayor\",\n \"mealy\",\n \"meant\",\n \"meaty\",\n \"mecca\",\n \"medal\",\n \"media\",\n \"medic\",\n \"melee\",\n \"melon\",\n \"mercy\",\n \"merge\",\n \"merit\",\n \"merry\",\n \"metal\",\n \"meter\",\n \"metro\",\n \"micro\",\n \"midge\",\n \"midst\",\n \"might\",\n \"milky\",\n \"mimic\",\n \"mince\",\n \"miner\",\n \"minim\",\n \"minor\",\n \"minty\",\n \"minus\",\n \"mirth\",\n \"miser\",\n \"missy\",\n \"mocha\",\n \"modal\",\n \"model\",\n \"modem\",\n \"mogul\",\n \"moist\",\n \"molar\",\n \"moldy\",\n \"money\",\n \"month\",\n \"moody\",\n \"moose\",\n \"moral\",\n \"moron\",\n \"morph\",\n \"mossy\",\n \"motel\",\n \"motif\",\n \"motor\",\n \"motto\",\n \"moult\",\n \"mound\",\n \"mount\",\n \"mourn\",\n \"mouse\",\n \"mouth\",\n \"mover\",\n \"movie\",\n \"mower\",\n \"mucky\",\n \"mucus\",\n \"muddy\",\n \"mulch\",\n \"mummy\",\n \"munch\",\n \"mural\",\n \"murky\",\n \"mushy\",\n \"music\",\n \"musky\",\n \"musty\",\n \"myrrh\",\n \"nadir\",\n \"naive\",\n \"nanny\",\n \"nasal\",\n \"nasty\",\n \"natal\",\n \"naval\",\n \"navel\",\n \"needy\",\n \"neigh\",\n \"nerdy\",\n \"nerve\",\n \"never\",\n \"newer\",\n \"newly\",\n \"nicer\",\n \"niche\",\n \"niece\",\n \"night\",\n \"ninja\",\n \"ninny\",\n \"ninth\",\n \"noble\",\n \"nobly\",\n \"noise\",\n \"noisy\",\n \"nomad\",\n \"noose\",\n \"north\",\n \"nosey\",\n \"notch\",\n \"novel\",\n \"nudge\",\n \"nurse\",\n \"nutty\",\n \"nylon\",\n \"nymph\",\n \"oaken\",\n \"obese\",\n \"occur\",\n \"ocean\",\n \"octal\",\n \"octet\",\n \"odder\",\n \"oddly\",\n \"offal\",\n \"offer\",\n \"often\",\n \"olden\",\n \"older\",\n \"olive\",\n \"ombre\",\n \"omega\",\n \"onion\",\n \"onset\",\n \"opera\",\n \"opine\",\n \"opium\",\n \"optic\",\n \"orbit\",\n \"order\",\n \"organ\",\n \"other\",\n \"otter\",\n \"ought\",\n \"ounce\",\n \"outdo\",\n \"outer\",\n \"outgo\",\n \"ovary\",\n \"ovate\",\n \"overt\",\n \"ovine\",\n \"ovoid\",\n \"owing\",\n \"owner\",\n \"oxide\",\n \"ozone\",\n \"paddy\",\n \"pagan\",\n \"paint\",\n \"paler\",\n \"palsy\",\n \"panel\",\n \"panic\",\n \"pansy\",\n \"papal\",\n \"paper\",\n \"parer\",\n \"parka\",\n \"parry\",\n \"parse\",\n \"party\",\n \"pasta\",\n \"paste\",\n \"pasty\",\n \"patch\",\n \"patio\",\n \"patsy\",\n \"patty\",\n \"pause\",\n \"payee\",\n \"payer\",\n \"peace\",\n \"peach\",\n \"pearl\",\n \"pecan\",\n \"pedal\",\n \"penal\",\n \"pence\",\n \"penne\",\n \"penny\",\n \"perch\",\n \"peril\",\n \"perky\",\n \"pesky\",\n \"pesto\",\n \"petal\",\n \"petty\",\n \"phase\",\n \"phone\",\n \"phony\",\n \"photo\",\n \"piano\",\n \"picky\",\n \"piece\",\n \"piety\",\n \"piggy\",\n \"pilot\",\n \"pinch\",\n \"piney\",\n \"pinky\",\n \"pinto\",\n \"piper\",\n \"pique\",\n \"pitch\",\n \"pithy\",\n \"pivot\",\n \"pixel\",\n \"pixie\",\n \"pizza\",\n \"place\",\n \"plaid\",\n \"plain\",\n \"plait\",\n \"plane\",\n \"plank\",\n \"plant\",\n \"plate\",\n \"plaza\",\n \"plead\",\n \"pleat\",\n \"plied\",\n \"plier\",\n \"pluck\",\n \"plumb\",\n \"plume\",\n \"plump\",\n \"plunk\",\n \"plush\",\n \"poesy\",\n \"point\",\n \"poise\",\n \"poker\",\n \"polar\",\n \"polka\",\n \"polyp\",\n \"pooch\",\n \"poppy\",\n \"porch\",\n \"poser\",\n \"posit\",\n \"posse\",\n \"pouch\",\n \"pound\",\n \"pouty\",\n \"power\",\n \"prank\",\n \"prawn\",\n \"preen\",\n \"press\",\n \"price\",\n \"prick\",\n \"pride\",\n \"pried\",\n \"prime\",\n \"primo\",\n \"print\",\n \"prior\",\n \"prism\",\n \"privy\",\n \"prize\",\n \"probe\",\n \"prone\",\n \"prong\",\n \"proof\",\n \"prose\",\n \"proud\",\n \"prove\",\n \"prowl\",\n \"proxy\",\n \"prude\",\n \"prune\",\n \"psalm\",\n \"pubic\",\n \"pudgy\",\n \"puffy\",\n \"pulpy\",\n \"pulse\",\n \"punch\",\n \"pupal\",\n \"pupil\",\n \"puppy\",\n \"puree\",\n \"purer\",\n \"purge\",\n \"purse\",\n \"pushy\",\n \"putty\",\n \"pygmy\",\n \"quack\",\n \"quail\",\n \"quake\",\n \"qualm\",\n \"quark\",\n \"quart\",\n \"quash\",\n \"quasi\",\n \"queen\",\n \"queer\",\n \"quell\",\n \"query\",\n \"quest\",\n \"queue\",\n \"quick\",\n \"quiet\",\n \"quill\",\n \"quilt\",\n \"quirk\",\n \"quite\",\n \"quota\",\n \"quote\",\n \"quoth\",\n \"rabbi\",\n \"rabid\",\n \"racer\",\n \"radar\",\n \"radii\",\n \"radio\",\n \"rainy\",\n \"raise\",\n \"rajah\",\n \"rally\",\n \"ralph\",\n \"ramen\",\n \"ranch\",\n \"randy\",\n \"range\",\n \"rapid\",\n \"rarer\",\n \"raspy\",\n \"ratio\",\n \"ratty\",\n \"raven\",\n \"rayon\",\n \"razor\",\n \"reach\",\n \"react\",\n \"ready\",\n \"realm\",\n \"rearm\",\n \"rebar\",\n \"rebel\",\n \"rebus\",\n \"rebut\",\n \"recap\",\n \"recur\",\n \"recut\",\n \"reedy\",\n \"refer\",\n \"refit\",\n \"regal\",\n \"rehab\",\n \"reign\",\n \"relax\",\n \"relay\",\n \"relic\",\n \"remit\",\n \"renal\",\n \"renew\",\n \"repay\",\n \"repel\",\n \"reply\",\n \"rerun\",\n \"reset\",\n \"resin\",\n \"retch\",\n \"retro\",\n \"retry\",\n \"reuse\",\n \"revel\",\n \"revue\",\n \"rhino\",\n \"rhyme\",\n \"rider\",\n \"ridge\",\n \"rifle\",\n \"right\",\n \"rigid\",\n \"rigor\",\n \"rinse\",\n \"ripen\",\n \"riper\",\n \"risen\",\n \"riser\",\n \"risky\",\n \"rival\",\n \"river\",\n \"rivet\",\n \"roach\",\n \"roast\",\n \"robin\",\n \"robot\",\n \"rocky\",\n \"rodeo\",\n \"roger\",\n \"rogue\",\n \"roomy\",\n \"roost\",\n \"rotor\",\n \"rouge\",\n \"rough\",\n \"round\",\n \"rouse\",\n \"route\",\n \"rover\",\n \"rowdy\",\n \"rower\",\n \"royal\",\n \"ruddy\",\n \"ruder\",\n \"rugby\",\n \"ruler\",\n \"rumba\",\n \"rumor\",\n \"rupee\",\n \"rural\",\n \"rusty\",\n \"sadly\",\n \"safer\",\n \"saint\",\n \"salad\",\n \"sally\",\n \"salon\",\n \"salsa\",\n \"salty\",\n \"salve\",\n \"salvo\",\n \"sandy\",\n \"saner\",\n \"sappy\",\n \"sassy\",\n \"satin\",\n \"satyr\",\n \"sauce\",\n \"saucy\",\n \"sauna\",\n \"saute\",\n \"savor\",\n \"savoy\",\n \"savvy\",\n \"scald\",\n \"scale\",\n \"scalp\",\n \"scaly\",\n \"scamp\",\n \"scant\",\n \"scare\",\n \"scarf\",\n \"scary\",\n \"scene\",\n \"scent\",\n \"scion\",\n \"scoff\",\n \"scold\",\n \"scone\",\n \"scoop\",\n \"scope\",\n \"score\",\n \"scorn\",\n \"scour\",\n \"scout\",\n \"scowl\",\n \"scram\",\n \"scrap\",\n \"scree\",\n \"screw\",\n \"scrub\",\n \"scrum\",\n \"scuba\",\n \"sedan\",\n \"seedy\",\n \"segue\",\n \"seize\",\n \"semen\",\n \"sense\",\n \"sepia\",\n \"serif\",\n \"serum\",\n \"serve\",\n \"setup\",\n \"seven\",\n \"sever\",\n \"sewer\",\n \"shack\",\n \"shade\",\n \"shady\",\n \"shaft\",\n \"shake\",\n \"shaky\",\n \"shale\",\n \"shall\",\n \"shalt\",\n \"shame\",\n \"shank\",\n \"shape\",\n \"shard\",\n \"share\",\n \"shark\",\n \"sharp\",\n \"shave\",\n \"shawl\",\n \"shear\",\n \"sheen\",\n \"sheep\",\n \"sheer\",\n \"sheet\",\n \"sheik\",\n \"shelf\",\n \"shell\",\n \"shied\",\n \"shift\",\n \"shine\",\n \"shiny\",\n \"shire\",\n \"shirk\",\n \"shirt\",\n \"shoal\",\n \"shock\",\n \"shone\",\n \"shook\",\n \"shoot\",\n \"shore\",\n \"shorn\",\n \"short\",\n \"shout\",\n \"shove\",\n \"shown\",\n \"showy\",\n \"shrew\",\n \"shrub\",\n \"shrug\",\n \"shuck\",\n \"shunt\",\n \"shush\",\n \"shyly\",\n \"siege\",\n \"sieve\",\n \"sight\",\n \"sigma\",\n \"silky\",\n \"silly\",\n \"since\",\n \"sinew\",\n \"singe\",\n \"siren\",\n \"sissy\",\n \"sixth\",\n \"sixty\",\n \"skate\",\n \"skier\",\n \"skiff\",\n \"skill\",\n \"skimp\",\n \"skirt\",\n \"skulk\",\n \"skull\",\n \"skunk\",\n \"slack\",\n \"slain\",\n \"slang\",\n \"slant\",\n \"slash\",\n \"slate\",\n \"slave\",\n \"sleek\",\n \"sleep\",\n \"sleet\",\n \"slept\",\n \"slice\",\n \"slick\",\n \"slide\",\n \"slime\",\n \"slimy\",\n \"sling\",\n \"slink\",\n \"sloop\",\n \"slope\",\n \"slosh\",\n \"sloth\",\n \"slump\",\n \"slung\",\n \"slunk\",\n \"slurp\",\n \"slush\",\n \"slyly\",\n \"smack\",\n \"small\",\n \"smart\",\n \"smash\",\n \"smear\",\n \"smell\",\n \"smelt\",\n \"smile\",\n \"smirk\",\n \"smite\",\n \"smith\",\n \"smock\",\n \"smoke\",\n \"smoky\",\n \"smote\",\n \"snack\",\n \"snail\",\n \"snake\",\n \"snaky\",\n \"snare\",\n \"snarl\",\n \"sneak\",\n \"sneer\",\n \"snide\",\n \"sniff\",\n \"snipe\",\n \"snoop\",\n \"snore\",\n \"snort\",\n \"snout\",\n \"snowy\",\n \"snuck\",\n \"snuff\",\n \"soapy\",\n \"sober\",\n \"soggy\",\n \"solar\",\n \"solid\",\n \"solve\",\n \"sonar\",\n \"sonic\",\n \"sooth\",\n \"sooty\",\n \"sorry\",\n \"sound\",\n \"south\",\n \"sower\",\n \"space\",\n \"spade\",\n \"spank\",\n \"spare\",\n \"spark\",\n \"spasm\",\n \"spawn\",\n \"speak\",\n \"spear\",\n \"speck\",\n \"speed\",\n \"spell\",\n \"spelt\",\n \"spend\",\n \"spent\",\n \"sperm\",\n \"spice\",\n \"spicy\",\n \"spied\",\n \"spiel\",\n \"spike\",\n \"spiky\",\n \"spill\",\n \"spilt\",\n \"spine\",\n \"spiny\",\n \"spire\",\n \"spite\",\n \"splat\",\n \"split\",\n \"spoil\",\n \"spoke\",\n \"spoof\",\n \"spook\",\n \"spool\",\n \"spoon\",\n \"spore\",\n \"sport\",\n \"spout\",\n \"spray\",\n \"spree\",\n \"sprig\",\n \"spunk\",\n \"spurn\",\n \"spurt\",\n \"squad\",\n \"squat\",\n \"squib\",\n \"stack\",\n \"staff\",\n \"stage\",\n \"staid\",\n \"stain\",\n \"stair\",\n \"stake\",\n \"stale\",\n \"stalk\",\n \"stall\",\n \"stamp\",\n \"stand\",\n \"stank\",\n \"stare\",\n \"stark\",\n \"start\",\n \"stash\",\n \"state\",\n \"stave\",\n \"stead\",\n \"steak\",\n \"steal\",\n \"steam\",\n \"steed\",\n \"steel\",\n \"steep\",\n \"steer\",\n \"stein\",\n \"stern\",\n \"stick\",\n \"stiff\",\n \"still\",\n \"stilt\",\n \"sting\",\n \"stink\",\n \"stint\",\n \"stock\",\n \"stoic\",\n \"stoke\",\n \"stole\",\n \"stomp\",\n \"stone\",\n \"stony\",\n \"stood\",\n \"stool\",\n \"stoop\",\n \"store\",\n \"stork\",\n \"storm\",\n \"story\",\n \"stout\",\n \"stove\",\n \"strap\",\n \"straw\",\n \"stray\",\n \"strip\",\n \"strut\",\n \"stuck\",\n \"study\",\n \"stuff\",\n \"stump\",\n \"stung\",\n \"stunk\",\n \"stunt\",\n \"style\",\n \"suave\",\n \"sugar\",\n \"suing\",\n \"suite\",\n \"sulky\",\n \"sully\",\n \"sumac\",\n \"sunny\",\n \"super\",\n \"surer\",\n \"surge\",\n \"surly\",\n \"sushi\",\n \"swami\",\n \"swamp\",\n \"swarm\",\n \"swash\",\n \"swath\",\n \"swear\",\n \"sweat\",\n \"sweep\",\n \"sweet\",\n \"swell\",\n \"swept\",\n \"swift\",\n \"swill\",\n \"swine\",\n \"swing\",\n \"swirl\",\n \"swish\",\n \"swoon\",\n \"swoop\",\n \"sword\",\n \"swore\",\n \"sworn\",\n \"swung\",\n \"synod\",\n \"syrup\",\n \"tabby\",\n \"table\",\n \"taboo\",\n \"tacit\",\n \"tacky\",\n \"taffy\",\n \"taint\",\n \"taken\",\n \"taker\",\n \"tally\",\n \"talon\",\n \"tamer\",\n \"tango\",\n \"tangy\",\n \"taper\",\n \"tapir\",\n \"tardy\",\n \"tarot\",\n \"taste\",\n \"tasty\",\n \"tatty\",\n \"taunt\",\n \"tawny\",\n \"teach\",\n \"teary\",\n \"tease\",\n \"teddy\",\n \"teeth\",\n \"tempo\",\n \"tenet\",\n \"tenor\",\n \"tense\",\n \"tenth\",\n \"tepee\",\n \"tepid\",\n \"terra\",\n \"terse\",\n \"testy\",\n \"thank\",\n \"theft\",\n \"their\",\n \"theme\",\n \"there\",\n \"these\",\n \"theta\",\n \"thick\",\n \"thief\",\n \"thigh\",\n \"thing\",\n \"think\",\n \"third\",\n \"thong\",\n \"thorn\",\n \"those\",\n \"three\",\n \"threw\",\n \"throb\",\n \"throw\",\n \"thrum\",\n \"thumb\",\n \"thump\",\n \"thyme\",\n \"tiara\",\n \"tibia\",\n \"tidal\",\n \"tiger\",\n \"tight\",\n \"tilde\",\n \"timer\",\n \"timid\",\n \"tipsy\",\n \"titan\",\n \"tithe\",\n \"title\",\n \"toast\",\n \"today\",\n \"toddy\",\n \"token\",\n \"tonal\",\n \"tonga\",\n \"tonic\",\n \"tooth\",\n \"topaz\",\n \"topic\",\n \"torch\",\n \"torso\",\n \"torus\",\n \"total\",\n \"totem\",\n \"touch\",\n \"tough\",\n \"towel\",\n \"tower\",\n \"toxic\",\n \"toxin\",\n \"trace\",\n \"track\",\n \"tract\",\n \"trade\",\n \"trail\",\n \"train\",\n \"trait\",\n \"tramp\",\n \"trash\",\n \"trawl\",\n \"tread\",\n \"treat\",\n \"trend\",\n \"triad\",\n \"trial\",\n \"tribe\",\n \"trice\",\n \"trick\",\n \"tried\",\n \"tripe\",\n \"trite\",\n \"troll\",\n \"troop\",\n \"trope\",\n \"trout\",\n \"trove\",\n \"truce\",\n \"truck\",\n \"truer\",\n \"truly\",\n \"trump\",\n \"trunk\",\n \"truss\",\n \"trust\",\n \"truth\",\n \"tryst\",\n \"tubal\",\n \"tuber\",\n \"tulip\",\n \"tulle\",\n \"tumor\",\n \"tunic\",\n \"turbo\",\n \"tutor\",\n \"twang\",\n \"tweak\",\n \"tweed\",\n \"tweet\",\n \"twice\",\n \"twine\",\n \"twirl\",\n \"twist\",\n \"twixt\",\n \"tying\",\n \"udder\",\n \"ulcer\",\n \"ultra\",\n \"umbra\",\n \"uncle\",\n \"uncut\",\n \"under\",\n \"undid\",\n \"undue\",\n \"unfed\",\n \"unfit\",\n \"unify\",\n \"union\",\n \"unite\",\n \"unity\",\n \"unlit\",\n \"unmet\",\n \"unset\",\n \"untie\",\n \"until\",\n \"unwed\",\n \"unzip\",\n \"upper\",\n \"upset\",\n \"urban\",\n \"urine\",\n \"usage\",\n \"usher\",\n \"using\",\n \"usual\",\n \"usurp\",\n \"utile\",\n \"utter\",\n \"vague\",\n \"valet\",\n \"valid\",\n \"valor\",\n \"value\",\n \"valve\",\n \"vapid\",\n \"vapor\",\n \"vault\",\n \"vaunt\",\n \"vegan\",\n \"venom\",\n \"venue\",\n \"verge\",\n \"verse\",\n \"verso\",\n \"verve\",\n \"vicar\",\n \"video\",\n \"vigil\",\n \"vigor\",\n \"villa\",\n \"vinyl\",\n \"viola\",\n \"viper\",\n \"viral\",\n \"virus\",\n \"visit\",\n \"visor\",\n \"vista\",\n \"vital\",\n \"vivid\",\n \"vixen\",\n \"vocal\",\n \"vodka\",\n \"vogue\",\n \"voice\",\n \"voila\",\n \"vomit\",\n \"voter\",\n \"vouch\",\n \"vowel\",\n \"vying\",\n \"wacky\",\n \"wafer\",\n \"wager\",\n \"wagon\",\n \"waist\",\n \"waive\",\n \"waltz\",\n \"warty\",\n \"waste\",\n \"watch\",\n \"water\",\n \"waver\",\n \"waxen\",\n \"weary\",\n \"weave\",\n \"wedge\",\n \"weedy\",\n \"weigh\",\n \"weird\",\n \"welch\",\n \"welsh\",\n \"wench\",\n \"whack\",\n \"whale\",\n \"wharf\",\n \"wheat\",\n \"wheel\",\n \"whelp\",\n \"where\",\n \"which\",\n \"whiff\",\n \"while\",\n \"whine\",\n \"whiny\",\n \"whirl\",\n \"whisk\",\n \"white\",\n \"whole\",\n \"whoop\",\n \"whose\",\n \"widen\",\n \"wider\",\n \"widow\",\n \"width\",\n \"wield\",\n \"wight\",\n \"willy\",\n \"wimpy\",\n \"wince\",\n \"winch\",\n \"windy\",\n \"wiser\",\n \"wispy\",\n \"witch\",\n \"witty\",\n \"woken\",\n \"woman\",\n \"women\",\n \"woody\",\n \"wooer\",\n \"wooly\",\n \"woozy\",\n \"wordy\",\n \"world\",\n \"worry\",\n \"worse\",\n \"worst\",\n \"worth\",\n \"would\",\n \"wound\",\n \"woven\",\n \"wrack\",\n \"wrath\",\n \"wreak\",\n \"wreck\",\n \"wrest\",\n \"wring\",\n \"wrist\",\n \"write\",\n \"wrong\",\n \"wrote\",\n \"wrung\",\n \"wryly\",\n \"yacht\",\n \"yearn\",\n \"yeast\",\n \"yield\",\n \"young\",\n \"youth\",\n \"zebra\",\n \"zesty\",\n \"zonal\"\n];\nconst allowed = /* @__PURE__ */ new Set([\n ...words,\n \"aahed\",\n \"aalii\",\n \"aargh\",\n \"aarti\",\n \"abaca\",\n \"abaci\",\n \"abacs\",\n \"abaft\",\n \"abaka\",\n \"abamp\",\n \"aband\",\n \"abash\",\n \"abask\",\n \"abaya\",\n \"abbas\",\n \"abbed\",\n \"abbes\",\n \"abcee\",\n \"abeam\",\n \"abear\",\n \"abele\",\n \"abers\",\n \"abets\",\n \"abies\",\n \"abler\",\n \"ables\",\n \"ablet\",\n \"ablow\",\n \"abmho\",\n \"abohm\",\n \"aboil\",\n \"aboma\",\n \"aboon\",\n \"abord\",\n \"abore\",\n \"abram\",\n \"abray\",\n \"abrim\",\n \"abrin\",\n \"abris\",\n \"absey\",\n \"absit\",\n \"abuna\",\n \"abune\",\n \"abuts\",\n \"abuzz\",\n \"abyes\",\n \"abysm\",\n \"acais\",\n \"acari\",\n \"accas\",\n \"accoy\",\n \"acerb\",\n \"acers\",\n \"aceta\",\n \"achar\",\n \"ached\",\n \"aches\",\n \"achoo\",\n \"acids\",\n \"acidy\",\n \"acing\",\n \"acini\",\n \"ackee\",\n \"acker\",\n \"acmes\",\n \"acmic\",\n \"acned\",\n \"acnes\",\n \"acock\",\n \"acold\",\n \"acred\",\n \"acres\",\n \"acros\",\n \"acted\",\n \"actin\",\n \"acton\",\n \"acyls\",\n \"adaws\",\n \"adays\",\n \"adbot\",\n \"addax\",\n \"added\",\n \"adder\",\n \"addio\",\n \"addle\",\n \"adeem\",\n \"adhan\",\n \"adieu\",\n \"adios\",\n \"adits\",\n \"adman\",\n \"admen\",\n \"admix\",\n \"adobo\",\n \"adown\",\n \"adoze\",\n \"adrad\",\n \"adred\",\n \"adsum\",\n \"aduki\",\n \"adunc\",\n \"adust\",\n \"advew\",\n \"adyta\",\n \"adzed\",\n \"adzes\",\n \"aecia\",\n \"aedes\",\n \"aegis\",\n \"aeons\",\n \"aerie\",\n \"aeros\",\n \"aesir\",\n \"afald\",\n \"afara\",\n \"afars\",\n \"afear\",\n \"aflaj\",\n \"afore\",\n \"afrit\",\n \"afros\",\n \"agama\",\n \"agami\",\n \"agars\",\n \"agast\",\n \"agave\",\n \"agaze\",\n \"agene\",\n \"agers\",\n \"agger\",\n \"aggie\",\n \"aggri\",\n \"aggro\",\n \"aggry\",\n \"aghas\",\n \"agila\",\n \"agios\",\n \"agism\",\n \"agist\",\n \"agita\",\n \"aglee\",\n \"aglet\",\n \"agley\",\n \"agloo\",\n \"aglus\",\n \"agmas\",\n \"agoge\",\n \"agone\",\n \"agons\",\n \"agood\",\n \"agria\",\n \"agrin\",\n \"agros\",\n \"agued\",\n \"agues\",\n \"aguna\",\n \"aguti\",\n \"aheap\",\n \"ahent\",\n \"ahigh\",\n \"ahind\",\n \"ahing\",\n \"ahint\",\n \"ahold\",\n \"ahull\",\n \"ahuru\",\n \"aidas\",\n \"aided\",\n \"aides\",\n \"aidoi\",\n \"aidos\",\n \"aiery\",\n \"aigas\",\n \"aight\",\n \"ailed\",\n \"aimed\",\n \"aimer\",\n \"ainee\",\n \"ainga\",\n \"aioli\",\n \"aired\",\n \"airer\",\n \"airns\",\n \"airth\",\n \"airts\",\n \"aitch\",\n \"aitus\",\n \"aiver\",\n \"aiyee\",\n \"aizle\",\n \"ajies\",\n \"ajiva\",\n \"ajuga\",\n \"ajwan\",\n \"akees\",\n \"akela\",\n \"akene\",\n \"aking\",\n \"akita\",\n \"akkas\",\n \"alaap\",\n \"alack\",\n \"alamo\",\n \"aland\",\n \"alane\",\n \"alang\",\n \"alans\",\n \"alant\",\n \"alapa\",\n \"alaps\",\n \"alary\",\n \"alate\",\n \"alays\",\n \"albas\",\n \"albee\",\n \"alcid\",\n \"alcos\",\n \"aldea\",\n \"alder\",\n \"aldol\",\n \"aleck\",\n \"alecs\",\n \"alefs\",\n \"aleft\",\n \"aleph\",\n \"alews\",\n \"aleye\",\n \"alfas\",\n \"algal\",\n \"algas\",\n \"algid\",\n \"algin\",\n \"algor\",\n \"algum\",\n \"alias\",\n \"alifs\",\n \"aline\",\n \"alist\",\n \"aliya\",\n \"alkie\",\n \"alkos\",\n \"alkyd\",\n \"alkyl\",\n \"allee\",\n \"allel\",\n \"allis\",\n \"allod\",\n \"allyl\",\n \"almah\",\n \"almas\",\n \"almeh\",\n \"almes\",\n \"almud\",\n \"almug\",\n \"alods\",\n \"aloed\",\n \"aloes\",\n \"aloha\",\n \"aloin\",\n \"aloos\",\n \"alowe\",\n \"altho\",\n \"altos\",\n \"alula\",\n \"alums\",\n \"alure\",\n \"alvar\",\n \"alway\",\n \"amahs\",\n \"amain\",\n \"amate\",\n \"amaut\",\n \"amban\",\n \"ambit\",\n \"ambos\",\n \"ambry\",\n \"ameba\",\n \"ameer\",\n \"amene\",\n \"amens\",\n \"ament\",\n \"amias\",\n \"amice\",\n \"amici\",\n \"amide\",\n \"amido\",\n \"amids\",\n \"amies\",\n \"amiga\",\n \"amigo\",\n \"amine\",\n \"amino\",\n \"amins\",\n \"amirs\",\n \"amlas\",\n \"amman\",\n \"ammon\",\n \"ammos\",\n \"amnia\",\n \"amnic\",\n \"amnio\",\n \"amoks\",\n \"amole\",\n \"amort\",\n \"amour\",\n \"amove\",\n \"amowt\",\n \"amped\",\n \"ampul\",\n \"amrit\",\n \"amuck\",\n \"amyls\",\n \"anana\",\n \"anata\",\n \"ancho\",\n \"ancle\",\n \"ancon\",\n \"andro\",\n \"anear\",\n \"anele\",\n \"anent\",\n \"angas\",\n \"anglo\",\n \"anigh\",\n \"anile\",\n \"anils\",\n \"anima\",\n \"animi\",\n \"anion\",\n \"anise\",\n \"anker\",\n \"ankhs\",\n \"ankus\",\n \"anlas\",\n \"annal\",\n \"annas\",\n \"annat\",\n \"anoas\",\n \"anole\",\n \"anomy\",\n \"ansae\",\n \"antae\",\n \"antar\",\n \"antas\",\n \"anted\",\n \"antes\",\n \"antis\",\n \"antra\",\n \"antre\",\n \"antsy\",\n \"anura\",\n \"anyon\",\n \"apace\",\n \"apage\",\n \"apaid\",\n \"apayd\",\n \"apays\",\n \"apeak\",\n \"apeek\",\n \"apers\",\n \"apert\",\n \"apery\",\n \"apgar\",\n \"aphis\",\n \"apian\",\n \"apiol\",\n \"apish\",\n \"apism\",\n \"apode\",\n \"apods\",\n \"apoop\",\n \"aport\",\n \"appal\",\n \"appay\",\n \"appel\",\n \"appro\",\n \"appui\",\n \"appuy\",\n \"apres\",\n \"apses\",\n \"apsis\",\n \"apsos\",\n \"apted\",\n \"apter\",\n \"aquae\",\n \"aquas\",\n \"araba\",\n \"araks\",\n \"arame\",\n \"arars\",\n \"arbas\",\n \"arced\",\n \"archi\",\n \"arcos\",\n \"arcus\",\n \"ardeb\",\n \"ardri\",\n \"aread\",\n \"areae\",\n \"areal\",\n \"arear\",\n \"areas\",\n \"areca\",\n \"aredd\",\n \"arede\",\n \"arefy\",\n \"areic\",\n \"arene\",\n \"arepa\",\n \"arere\",\n \"arete\",\n \"arets\",\n \"arett\",\n \"argal\",\n \"argan\",\n \"argil\",\n \"argle\",\n \"argol\",\n \"argon\",\n \"argot\",\n \"argus\",\n \"arhat\",\n \"arias\",\n \"ariel\",\n \"ariki\",\n \"arils\",\n \"ariot\",\n \"arish\",\n \"arked\",\n \"arled\",\n \"arles\",\n \"armed\",\n \"armer\",\n \"armet\",\n \"armil\",\n \"arnas\",\n \"arnut\",\n \"aroba\",\n \"aroha\",\n \"aroid\",\n \"arpas\",\n \"arpen\",\n \"arrah\",\n \"arras\",\n \"arret\",\n \"arris\",\n \"arroz\",\n \"arsed\",\n \"arses\",\n \"arsey\",\n \"arsis\",\n \"artal\",\n \"artel\",\n \"artic\",\n \"artis\",\n \"aruhe\",\n \"arums\",\n \"arval\",\n \"arvee\",\n \"arvos\",\n \"aryls\",\n \"asana\",\n \"ascon\",\n \"ascus\",\n \"asdic\",\n \"ashed\",\n \"ashes\",\n \"ashet\",\n \"asked\",\n \"asker\",\n \"askoi\",\n \"askos\",\n \"aspen\",\n \"asper\",\n \"aspic\",\n \"aspie\",\n \"aspis\",\n \"aspro\",\n \"assai\",\n \"assam\",\n \"asses\",\n \"assez\",\n \"assot\",\n \"aster\",\n \"astir\",\n \"astun\",\n \"asura\",\n \"asway\",\n \"aswim\",\n \"asyla\",\n \"ataps\",\n \"ataxy\",\n \"atigi\",\n \"atilt\",\n \"atimy\",\n \"atlas\",\n \"atman\",\n \"atmas\",\n \"atmos\",\n \"atocs\",\n \"atoke\",\n \"atoks\",\n \"atoms\",\n \"atomy\",\n \"atony\",\n \"atopy\",\n \"atria\",\n \"atrip\",\n \"attap\",\n \"attar\",\n \"atuas\",\n \"audad\",\n \"auger\",\n \"aught\",\n \"aulas\",\n \"aulic\",\n \"auloi\",\n \"aulos\",\n \"aumil\",\n \"aunes\",\n \"aunts\",\n \"aurae\",\n \"aural\",\n \"aurar\",\n \"auras\",\n \"aurei\",\n \"aures\",\n \"auric\",\n \"auris\",\n \"aurum\",\n \"autos\",\n \"auxin\",\n \"avale\",\n \"avant\",\n \"avast\",\n \"avels\",\n \"avens\",\n \"avers\",\n \"avgas\",\n \"avine\",\n \"avion\",\n \"avise\",\n \"aviso\",\n \"avize\",\n \"avows\",\n \"avyze\",\n \"awarn\",\n \"awato\",\n \"awave\",\n \"aways\",\n \"awdls\",\n \"aweel\",\n \"aweto\",\n \"awing\",\n \"awmry\",\n \"awned\",\n \"awner\",\n \"awols\",\n \"awork\",\n \"axels\",\n \"axile\",\n \"axils\",\n \"axing\",\n \"axite\",\n \"axled\",\n \"axles\",\n \"axman\",\n \"axmen\",\n \"axoid\",\n \"axone\",\n \"axons\",\n \"ayahs\",\n \"ayaya\",\n \"ayelp\",\n \"aygre\",\n \"ayins\",\n \"ayont\",\n \"ayres\",\n \"ayrie\",\n \"azans\",\n \"azide\",\n \"azido\",\n \"azine\",\n \"azlon\",\n \"azoic\",\n \"azole\",\n \"azons\",\n \"azote\",\n \"azoth\",\n \"azuki\",\n \"azurn\",\n \"azury\",\n \"azygy\",\n \"azyme\",\n \"azyms\",\n \"baaed\",\n \"baals\",\n \"babas\",\n \"babel\",\n \"babes\",\n \"babka\",\n \"baboo\",\n \"babul\",\n \"babus\",\n \"bacca\",\n \"bacco\",\n \"baccy\",\n \"bacha\",\n \"bachs\",\n \"backs\",\n \"baddy\",\n \"baels\",\n \"baffs\",\n \"baffy\",\n \"bafts\",\n \"baghs\",\n \"bagie\",\n \"bahts\",\n \"bahus\",\n \"bahut\",\n \"bails\",\n \"bairn\",\n \"baisa\",\n \"baith\",\n \"baits\",\n \"baiza\",\n \"baize\",\n \"bajan\",\n \"bajra\",\n \"bajri\",\n \"bajus\",\n \"baked\",\n \"baken\",\n \"bakes\",\n \"bakra\",\n \"balas\",\n \"balds\",\n \"baldy\",\n \"baled\",\n \"bales\",\n \"balks\",\n \"balky\",\n \"balls\",\n \"bally\",\n \"balms\",\n \"baloo\",\n \"balsa\",\n \"balti\",\n \"balun\",\n \"balus\",\n \"bambi\",\n \"banak\",\n \"banco\",\n \"bancs\",\n \"banda\",\n \"bandh\",\n \"bands\",\n \"bandy\",\n \"baned\",\n \"banes\",\n \"bangs\",\n \"bania\",\n \"banks\",\n \"banns\",\n \"bants\",\n \"bantu\",\n \"banty\",\n \"banya\",\n \"bapus\",\n \"barbe\",\n \"barbs\",\n \"barby\",\n \"barca\",\n \"barde\",\n \"bardo\",\n \"bards\",\n \"bardy\",\n \"bared\",\n \"barer\",\n \"bares\",\n \"barfi\",\n \"barfs\",\n \"baric\",\n \"barks\",\n \"barky\",\n \"barms\",\n \"barmy\",\n \"barns\",\n \"barny\",\n \"barps\",\n \"barra\",\n \"barre\",\n \"barro\",\n \"barry\",\n \"barye\",\n \"basan\",\n \"based\",\n \"basen\",\n \"baser\",\n \"bases\",\n \"basho\",\n \"basij\",\n \"basks\",\n \"bason\",\n \"basse\",\n \"bassi\",\n \"basso\",\n \"bassy\",\n \"basta\",\n \"basti\",\n \"basto\",\n \"basts\",\n \"bated\",\n \"bates\",\n \"baths\",\n \"batik\",\n \"batta\",\n \"batts\",\n \"battu\",\n \"bauds\",\n \"bauks\",\n \"baulk\",\n \"baurs\",\n \"bavin\",\n \"bawds\",\n \"bawks\",\n \"bawls\",\n \"bawns\",\n \"bawrs\",\n \"bawty\",\n \"bayed\",\n \"bayer\",\n \"bayes\",\n \"bayle\",\n \"bayts\",\n \"bazar\",\n \"bazoo\",\n \"beads\",\n \"beaks\",\n \"beaky\",\n \"beals\",\n \"beams\",\n \"beamy\",\n \"beano\",\n \"beans\",\n \"beany\",\n \"beare\",\n \"bears\",\n \"beath\",\n \"beats\",\n \"beaty\",\n \"beaus\",\n \"beaut\",\n \"beaux\",\n \"bebop\",\n \"becap\",\n \"becke\",\n \"becks\",\n \"bedad\",\n \"bedel\",\n \"bedes\",\n \"bedew\",\n \"bedim\",\n \"bedye\",\n \"beedi\",\n \"beefs\",\n \"beeps\",\n \"beers\",\n \"beery\",\n \"beets\",\n \"befog\",\n \"begad\",\n \"begar\",\n \"begem\",\n \"begot\",\n \"begum\",\n \"beige\",\n \"beigy\",\n \"beins\",\n \"bekah\",\n \"belah\",\n \"belar\",\n \"belay\",\n \"belee\",\n \"belga\",\n \"bells\",\n \"belon\",\n \"belts\",\n \"bemad\",\n \"bemas\",\n \"bemix\",\n \"bemud\",\n \"bends\",\n \"bendy\",\n \"benes\",\n \"benet\",\n \"benga\",\n \"benis\",\n \"benne\",\n \"benni\",\n \"benny\",\n \"bento\",\n \"bents\",\n \"benty\",\n \"bepat\",\n \"beray\",\n \"beres\",\n \"bergs\",\n \"berko\",\n \"berks\",\n \"berme\",\n \"berms\",\n \"berob\",\n \"beryl\",\n \"besat\",\n \"besaw\",\n \"besee\",\n \"beses\",\n \"besit\",\n \"besom\",\n \"besot\",\n \"besti\",\n \"bests\",\n \"betas\",\n \"beted\",\n \"betes\",\n \"beths\",\n \"betid\",\n \"beton\",\n \"betta\",\n \"betty\",\n \"bever\",\n \"bevor\",\n \"bevue\",\n \"bevvy\",\n \"bewet\",\n \"bewig\",\n \"bezes\",\n \"bezil\",\n \"bezzy\",\n \"bhais\",\n \"bhaji\",\n \"bhang\",\n \"bhats\",\n \"bhels\",\n \"bhoot\",\n \"bhuna\",\n \"bhuts\",\n \"biach\",\n \"biali\",\n \"bialy\",\n \"bibbs\",\n \"bibes\",\n \"biccy\",\n \"bices\",\n \"bided\",\n \"bider\",\n \"bides\",\n \"bidet\",\n \"bidis\",\n \"bidon\",\n \"bield\",\n \"biers\",\n \"biffo\",\n \"biffs\",\n \"biffy\",\n \"bifid\",\n \"bigae\",\n \"biggs\",\n \"biggy\",\n \"bigha\",\n \"bight\",\n \"bigly\",\n \"bigos\",\n \"bijou\",\n \"biked\",\n \"biker\",\n \"bikes\",\n \"bikie\",\n \"bilbo\",\n \"bilby\",\n \"biled\",\n \"biles\",\n \"bilgy\",\n \"bilks\",\n \"bills\",\n \"bimah\",\n \"bimas\",\n \"bimbo\",\n \"binal\",\n \"bindi\",\n \"binds\",\n \"biner\",\n \"bines\",\n \"bings\",\n \"bingy\",\n \"binit\",\n \"binks\",\n \"bints\",\n \"biogs\",\n \"biont\",\n \"biota\",\n \"biped\",\n \"bipod\",\n \"birds\",\n \"birks\",\n \"birle\",\n \"birls\",\n \"biros\",\n \"birrs\",\n \"birse\",\n \"birsy\",\n \"bises\",\n \"bisks\",\n \"bisom\",\n \"bitch\",\n \"biter\",\n \"bites\",\n \"bitos\",\n \"bitou\",\n \"bitsy\",\n \"bitte\",\n \"bitts\",\n \"bivia\",\n \"bivvy\",\n \"bizes\",\n \"bizzo\",\n \"bizzy\",\n \"blabs\",\n \"blads\",\n \"blady\",\n \"blaer\",\n \"blaes\",\n \"blaff\",\n \"blags\",\n \"blahs\",\n \"blain\",\n \"blams\",\n \"blart\",\n \"blase\",\n \"blash\",\n \"blate\",\n \"blats\",\n \"blatt\",\n \"blaud\",\n \"blawn\",\n \"blaws\",\n \"blays\",\n \"blear\",\n \"blebs\",\n \"blech\",\n \"blees\",\n \"blent\",\n \"blert\",\n \"blest\",\n \"blets\",\n \"bleys\",\n \"blimy\",\n \"bling\",\n \"blini\",\n \"blins\",\n \"bliny\",\n \"blips\",\n \"blist\",\n \"blite\",\n \"blits\",\n \"blive\",\n \"blobs\",\n \"blocs\",\n \"blogs\",\n \"blook\",\n \"bloop\",\n \"blore\",\n \"blots\",\n \"blows\",\n \"blowy\",\n \"blubs\",\n \"blude\",\n \"bluds\",\n \"bludy\",\n \"blued\",\n \"blues\",\n \"bluet\",\n \"bluey\",\n \"bluid\",\n \"blume\",\n \"blunk\",\n \"blurs\",\n \"blype\",\n \"boabs\",\n \"boaks\",\n \"boars\",\n \"boart\",\n \"boats\",\n \"bobac\",\n \"bobak\",\n \"bobas\",\n \"bobol\",\n \"bobos\",\n \"bocca\",\n \"bocce\",\n \"bocci\",\n \"boche\",\n \"bocks\",\n \"boded\",\n \"bodes\",\n \"bodge\",\n \"bodhi\",\n \"bodle\",\n \"boeps\",\n \"boets\",\n \"boeuf\",\n \"boffo\",\n \"boffs\",\n \"bogan\",\n \"bogey\",\n \"boggy\",\n \"bogie\",\n \"bogle\",\n \"bogue\",\n \"bogus\",\n \"bohea\",\n \"bohos\",\n \"boils\",\n \"boing\",\n \"boink\",\n \"boite\",\n \"boked\",\n \"bokeh\",\n \"bokes\",\n \"bokos\",\n \"bolar\",\n \"bolas\",\n \"bolds\",\n \"boles\",\n \"bolix\",\n \"bolls\",\n \"bolos\",\n \"bolts\",\n \"bolus\",\n \"bomas\",\n \"bombe\",\n \"bombo\",\n \"bombs\",\n \"bonce\",\n \"bonds\",\n \"boned\",\n \"boner\",\n \"bones\",\n \"bongs\",\n \"bonie\",\n \"bonks\",\n \"bonne\",\n \"bonny\",\n \"bonza\",\n \"bonze\",\n \"booai\",\n \"booay\",\n \"boobs\",\n \"boody\",\n \"booed\",\n \"boofy\",\n \"boogy\",\n \"boohs\",\n \"books\",\n \"booky\",\n \"bools\",\n \"booms\",\n \"boomy\",\n \"boong\",\n \"boons\",\n \"boord\",\n \"boors\",\n \"boose\",\n \"boots\",\n \"boppy\",\n \"borak\",\n \"boral\",\n \"boras\",\n \"borde\",\n \"bords\",\n \"bored\",\n \"boree\",\n \"borel\",\n \"borer\",\n \"bores\",\n \"borgo\",\n \"boric\",\n \"borks\",\n \"borms\",\n \"borna\",\n \"boron\",\n \"borts\",\n \"borty\",\n \"bortz\",\n \"bosie\",\n \"bosks\",\n \"bosky\",\n \"boson\",\n \"bosun\",\n \"botas\",\n \"botel\",\n \"botes\",\n \"bothy\",\n \"botte\",\n \"botts\",\n \"botty\",\n \"bouge\",\n \"bouks\",\n \"boult\",\n \"bouns\",\n \"bourd\",\n \"bourg\",\n \"bourn\",\n \"bouse\",\n \"bousy\",\n \"bouts\",\n \"bovid\",\n \"bowat\",\n \"bowed\",\n \"bower\",\n \"bowes\",\n \"bowet\",\n \"bowie\",\n \"bowls\",\n \"bowne\",\n \"bowrs\",\n \"bowse\",\n \"boxed\",\n \"boxen\",\n \"boxes\",\n \"boxla\",\n \"boxty\",\n \"boyar\",\n \"boyau\",\n \"boyed\",\n \"boyfs\",\n \"boygs\",\n \"boyla\",\n \"boyos\",\n \"boysy\",\n \"bozos\",\n \"braai\",\n \"brach\",\n \"brack\",\n \"bract\",\n \"brads\",\n \"braes\",\n \"brags\",\n \"brail\",\n \"braks\",\n \"braky\",\n \"brame\",\n \"brane\",\n \"brank\",\n \"brans\",\n \"brant\",\n \"brast\",\n \"brats\",\n \"brava\",\n \"bravi\",\n \"braws\",\n \"braxy\",\n \"brays\",\n \"braza\",\n \"braze\",\n \"bream\",\n \"brede\",\n \"breds\",\n \"breem\",\n \"breer\",\n \"brees\",\n \"breid\",\n \"breis\",\n \"breme\",\n \"brens\",\n \"brent\",\n \"brere\",\n \"brers\",\n \"breve\",\n \"brews\",\n \"breys\",\n \"brier\",\n \"bries\",\n \"brigs\",\n \"briki\",\n \"briks\",\n \"brill\",\n \"brims\",\n \"brins\",\n \"brios\",\n \"brise\",\n \"briss\",\n \"brith\",\n \"brits\",\n \"britt\",\n \"brize\",\n \"broch\",\n \"brock\",\n \"brods\",\n \"brogh\",\n \"brogs\",\n \"brome\",\n \"bromo\",\n \"bronc\",\n \"brond\",\n \"brool\",\n \"broos\",\n \"brose\",\n \"brosy\",\n \"brows\",\n \"brugh\",\n \"bruin\",\n \"bruit\",\n \"brule\",\n \"brume\",\n \"brung\",\n \"brusk\",\n \"brust\",\n \"bruts\",\n \"buats\",\n \"buaze\",\n \"bubal\",\n \"bubas\",\n \"bubba\",\n \"bubbe\",\n \"bubby\",\n \"bubus\",\n \"buchu\",\n \"bucko\",\n \"bucks\",\n \"bucku\",\n \"budas\",\n \"budis\",\n \"budos\",\n \"buffa\",\n \"buffe\",\n \"buffi\",\n \"buffo\",\n \"buffs\",\n \"buffy\",\n \"bufos\",\n \"bufty\",\n \"buhls\",\n \"buhrs\",\n \"buiks\",\n \"buist\",\n \"bukes\",\n \"bulbs\",\n \"bulgy\",\n \"bulks\",\n \"bulla\",\n \"bulls\",\n \"bulse\",\n \"bumbo\",\n \"bumfs\",\n \"bumph\",\n \"bumps\",\n \"bumpy\",\n \"bunas\",\n \"bunce\",\n \"bunco\",\n \"bunde\",\n \"bundh\",\n \"bunds\",\n \"bundt\",\n \"bundu\",\n \"bundy\",\n \"bungs\",\n \"bungy\",\n \"bunia\",\n \"bunje\",\n \"bunjy\",\n \"bunko\",\n \"bunks\",\n \"bunns\",\n \"bunts\",\n \"bunty\",\n \"bunya\",\n \"buoys\",\n \"buppy\",\n \"buran\",\n \"buras\",\n \"burbs\",\n \"burds\",\n \"buret\",\n \"burfi\",\n \"burgh\",\n \"burgs\",\n \"burin\",\n \"burka\",\n \"burke\",\n \"burks\",\n \"burls\",\n \"burns\",\n \"buroo\",\n \"burps\",\n \"burqa\",\n \"burro\",\n \"burrs\",\n \"burry\",\n \"bursa\",\n \"burse\",\n \"busby\",\n \"buses\",\n \"busks\",\n \"busky\",\n \"bussu\",\n \"busti\",\n \"busts\",\n \"busty\",\n \"buteo\",\n \"butes\",\n \"butle\",\n \"butoh\",\n \"butts\",\n \"butty\",\n \"butut\",\n \"butyl\",\n \"buzzy\",\n \"bwana\",\n \"bwazi\",\n \"byded\",\n \"bydes\",\n \"byked\",\n \"bykes\",\n \"byres\",\n \"byrls\",\n \"byssi\",\n \"bytes\",\n \"byway\",\n \"caaed\",\n \"cabas\",\n \"caber\",\n \"cabob\",\n \"caboc\",\n \"cabre\",\n \"cacas\",\n \"cacks\",\n \"cacky\",\n \"cadee\",\n \"cades\",\n \"cadge\",\n \"cadgy\",\n \"cadie\",\n \"cadis\",\n \"cadre\",\n \"caeca\",\n \"caese\",\n \"cafes\",\n \"caffs\",\n \"caged\",\n \"cager\",\n \"cages\",\n \"cagot\",\n \"cahow\",\n \"caids\",\n \"cains\",\n \"caird\",\n \"cajon\",\n \"cajun\",\n \"caked\",\n \"cakes\",\n \"cakey\",\n \"calfs\",\n \"calid\",\n \"calif\",\n \"calix\",\n \"calks\",\n \"calla\",\n \"calls\",\n \"calms\",\n \"calmy\",\n \"calos\",\n \"calpa\",\n \"calps\",\n \"calve\",\n \"calyx\",\n \"caman\",\n \"camas\",\n \"cames\",\n \"camis\",\n \"camos\",\n \"campi\",\n \"campo\",\n \"camps\",\n \"campy\",\n \"camus\",\n \"caned\",\n \"caneh\",\n \"caner\",\n \"canes\",\n \"cangs\",\n \"canid\",\n \"canna\",\n \"canns\",\n \"canso\",\n \"canst\",\n \"canto\",\n \"cants\",\n \"canty\",\n \"capas\",\n \"caped\",\n \"capes\",\n \"capex\",\n \"caphs\",\n \"capiz\",\n \"caple\",\n \"capon\",\n \"capos\",\n \"capot\",\n \"capri\",\n \"capul\",\n \"carap\",\n \"carbo\",\n \"carbs\",\n \"carby\",\n \"cardi\",\n \"cards\",\n \"cardy\",\n \"cared\",\n \"carer\",\n \"cares\",\n \"caret\",\n \"carex\",\n \"carks\",\n \"carle\",\n \"carls\",\n \"carns\",\n \"carny\",\n \"carob\",\n \"carom\",\n \"caron\",\n \"carpi\",\n \"carps\",\n \"carrs\",\n \"carse\",\n \"carta\",\n \"carte\",\n \"carts\",\n \"carvy\",\n \"casas\",\n \"casco\",\n \"cased\",\n \"cases\",\n \"casks\",\n \"casky\",\n \"casts\",\n \"casus\",\n \"cates\",\n \"cauda\",\n \"cauks\",\n \"cauld\",\n \"cauls\",\n \"caums\",\n \"caups\",\n \"cauri\",\n \"causa\",\n \"cavas\",\n \"caved\",\n \"cavel\",\n \"caver\",\n \"caves\",\n \"cavie\",\n \"cawed\",\n \"cawks\",\n \"caxon\",\n \"ceaze\",\n \"cebid\",\n \"cecal\",\n \"cecum\",\n \"ceded\",\n \"ceder\",\n \"cedes\",\n \"cedis\",\n \"ceiba\",\n \"ceili\",\n \"ceils\",\n \"celeb\",\n \"cella\",\n \"celli\",\n \"cells\",\n \"celom\",\n \"celts\",\n \"cense\",\n \"cento\",\n \"cents\",\n \"centu\",\n \"ceorl\",\n \"cepes\",\n \"cerci\",\n \"cered\",\n \"ceres\",\n \"cerge\",\n \"ceria\",\n \"ceric\",\n \"cerne\",\n \"ceroc\",\n \"ceros\",\n \"certs\",\n \"certy\",\n \"cesse\",\n \"cesta\",\n \"cesti\",\n \"cetes\",\n \"cetyl\",\n \"cezve\",\n \"chace\",\n \"chack\",\n \"chaco\",\n \"chado\",\n \"chads\",\n \"chaft\",\n \"chais\",\n \"chals\",\n \"chams\",\n \"chana\",\n \"chang\",\n \"chank\",\n \"chape\",\n \"chaps\",\n \"chapt\",\n \"chara\",\n \"chare\",\n \"chark\",\n \"charr\",\n \"chars\",\n \"chary\",\n \"chats\",\n \"chave\",\n \"chavs\",\n \"chawk\",\n \"chaws\",\n \"chaya\",\n \"chays\",\n \"cheep\",\n \"chefs\",\n \"cheka\",\n \"chela\",\n \"chelp\",\n \"chemo\",\n \"chems\",\n \"chere\",\n \"chert\",\n \"cheth\",\n \"chevy\",\n \"chews\",\n \"chewy\",\n \"chiao\",\n \"chias\",\n \"chibs\",\n \"chica\",\n \"chich\",\n \"chico\",\n \"chics\",\n \"chiel\",\n \"chiks\",\n \"chile\",\n \"chimb\",\n \"chimo\",\n \"chimp\",\n \"chine\",\n \"ching\",\n \"chink\",\n \"chino\",\n \"chins\",\n \"chips\",\n \"chirk\",\n \"chirl\",\n \"chirm\",\n \"chiro\",\n \"chirr\",\n \"chirt\",\n \"chiru\",\n \"chits\",\n \"chive\",\n \"chivs\",\n \"chivy\",\n \"chizz\",\n \"choco\",\n \"chocs\",\n \"chode\",\n \"chogs\",\n \"choil\",\n \"choko\",\n \"choky\",\n \"chola\",\n \"choli\",\n \"cholo\",\n \"chomp\",\n \"chons\",\n \"choof\",\n \"chook\",\n \"choom\",\n \"choon\",\n \"chops\",\n \"chota\",\n \"chott\",\n \"chout\",\n \"choux\",\n \"chowk\",\n \"chows\",\n \"chubs\",\n \"chufa\",\n \"chuff\",\n \"chugs\",\n \"chums\",\n \"churl\",\n \"churr\",\n \"chuse\",\n \"chuts\",\n \"chyle\",\n \"chyme\",\n \"chynd\",\n \"cibol\",\n \"cided\",\n \"cides\",\n \"ciels\",\n \"ciggy\",\n \"cilia\",\n \"cills\",\n \"cimar\",\n \"cimex\",\n \"cinct\",\n \"cines\",\n \"cinqs\",\n \"cions\",\n \"cippi\",\n \"circs\",\n \"cires\",\n \"cirls\",\n \"cirri\",\n \"cisco\",\n \"cissy\",\n \"cists\",\n \"cital\",\n \"cited\",\n \"citer\",\n \"cites\",\n \"cives\",\n \"civet\",\n \"civie\",\n \"civvy\",\n \"clach\",\n \"clade\",\n \"clads\",\n \"claes\",\n \"clags\",\n \"clame\",\n \"clams\",\n \"clans\",\n \"claps\",\n \"clapt\",\n \"claro\",\n \"clart\",\n \"clary\",\n \"clast\",\n \"clats\",\n \"claut\",\n \"clave\",\n \"clavi\",\n \"claws\",\n \"clays\",\n \"cleck\",\n \"cleek\",\n \"cleep\",\n \"clefs\",\n \"clegs\",\n \"cleik\",\n \"clems\",\n \"clepe\",\n \"clept\",\n \"cleve\",\n \"clews\",\n \"clied\",\n \"clies\",\n \"clift\",\n \"clime\",\n \"cline\",\n \"clint\",\n \"clipe\",\n \"clips\",\n \"clipt\",\n \"clits\",\n \"cloam\",\n \"clods\",\n \"cloff\",\n \"clogs\",\n \"cloke\",\n \"clomb\",\n \"clomp\",\n \"clonk\",\n \"clons\",\n \"cloop\",\n \"cloot\",\n \"clops\",\n \"clote\",\n \"clots\",\n \"clour\",\n \"clous\",\n \"clows\",\n \"cloye\",\n \"cloys\",\n \"cloze\",\n \"clubs\",\n \"clues\",\n \"cluey\",\n \"clunk\",\n \"clype\",\n \"cnida\",\n \"coact\",\n \"coady\",\n \"coala\",\n \"coals\",\n \"coaly\",\n \"coapt\",\n \"coarb\",\n \"coate\",\n \"coati\",\n \"coats\",\n \"cobbs\",\n \"cobby\",\n \"cobia\",\n \"coble\",\n \"cobza\",\n \"cocas\",\n \"cocci\",\n \"cocco\",\n \"cocks\",\n \"cocky\",\n \"cocos\",\n \"codas\",\n \"codec\",\n \"coded\",\n \"coden\",\n \"coder\",\n \"codes\",\n \"codex\",\n \"codon\",\n \"coeds\",\n \"coffs\",\n \"cogie\",\n \"cogon\",\n \"cogue\",\n \"cohab\",\n \"cohen\",\n \"cohoe\",\n \"cohog\",\n \"cohos\",\n \"coifs\",\n \"coign\",\n \"coils\",\n \"coins\",\n \"coirs\",\n \"coits\",\n \"coked\",\n \"cokes\",\n \"colas\",\n \"colby\",\n \"colds\",\n \"coled\",\n \"coles\",\n \"coley\",\n \"colic\",\n \"colin\",\n \"colls\",\n \"colly\",\n \"colog\",\n \"colts\",\n \"colza\",\n \"comae\",\n \"comal\",\n \"comas\",\n \"combe\",\n \"combi\",\n \"combo\",\n \"combs\",\n \"comby\",\n \"comer\",\n \"comes\",\n \"comix\",\n \"commo\",\n \"comms\",\n \"commy\",\n \"compo\",\n \"comps\",\n \"compt\",\n \"comte\",\n \"comus\",\n \"coned\",\n \"cones\",\n \"coney\",\n \"confs\",\n \"conga\",\n \"conge\",\n \"congo\",\n \"conia\",\n \"conin\",\n \"conks\",\n \"conky\",\n \"conne\",\n \"conns\",\n \"conte\",\n \"conto\",\n \"conus\",\n \"convo\",\n \"cooch\",\n \"cooed\",\n \"cooee\",\n \"cooer\",\n \"cooey\",\n \"coofs\",\n \"cooks\",\n \"cooky\",\n \"cools\",\n \"cooly\",\n \"coomb\",\n \"cooms\",\n \"coomy\",\n \"coons\",\n \"coops\",\n \"coopt\",\n \"coost\",\n \"coots\",\n \"cooze\",\n \"copal\",\n \"copay\",\n \"coped\",\n \"copen\",\n \"coper\",\n \"copes\",\n \"coppy\",\n \"copra\",\n \"copsy\",\n \"coqui\",\n \"coram\",\n \"corbe\",\n \"corby\",\n \"cords\",\n \"cored\",\n \"cores\",\n \"corey\",\n \"corgi\",\n \"coria\",\n \"corks\",\n \"corky\",\n \"corms\",\n \"corni\",\n \"corno\",\n \"corns\",\n \"cornu\",\n \"corps\",\n \"corse\",\n \"corso\",\n \"cosec\",\n \"cosed\",\n \"coses\",\n \"coset\",\n \"cosey\",\n \"cosie\",\n \"costa\",\n \"coste\",\n \"costs\",\n \"cotan\",\n \"coted\",\n \"cotes\",\n \"coths\",\n \"cotta\",\n \"cotts\",\n \"coude\",\n \"coups\",\n \"courb\",\n \"courd\",\n \"coure\",\n \"cours\",\n \"couta\",\n \"couth\",\n \"coved\",\n \"coves\",\n \"covin\",\n \"cowal\",\n \"cowan\",\n \"cowed\",\n \"cowks\",\n \"cowls\",\n \"cowps\",\n \"cowry\",\n \"coxae\",\n \"coxal\",\n \"coxed\",\n \"coxes\",\n \"coxib\",\n \"coyau\",\n \"coyed\",\n \"coyer\",\n \"coypu\",\n \"cozed\",\n \"cozen\",\n \"cozes\",\n \"cozey\",\n \"cozie\",\n \"craal\",\n \"crabs\",\n \"crags\",\n \"craic\",\n \"craig\",\n \"crake\",\n \"crame\",\n \"crams\",\n \"crans\",\n \"crape\",\n \"craps\",\n \"crapy\",\n \"crare\",\n \"craws\",\n \"crays\",\n \"creds\",\n \"creel\",\n \"crees\",\n \"crems\",\n \"crena\",\n \"creps\",\n \"crepy\",\n \"crewe\",\n \"crews\",\n \"crias\",\n \"cribs\",\n \"cries\",\n \"crims\",\n \"crine\",\n \"crios\",\n \"cripe\",\n \"crips\",\n \"crise\",\n \"crith\",\n \"crits\",\n \"croci\",\n \"crocs\",\n \"croft\",\n \"crogs\",\n \"cromb\",\n \"crome\",\n \"cronk\",\n \"crons\",\n \"crool\",\n \"croon\",\n \"crops\",\n \"crore\",\n \"crost\",\n \"crout\",\n \"crows\",\n \"croze\",\n \"cruck\",\n \"crudo\",\n \"cruds\",\n \"crudy\",\n \"crues\",\n \"cruet\",\n \"cruft\",\n \"crunk\",\n \"cruor\",\n \"crura\",\n \"cruse\",\n \"crusy\",\n \"cruve\",\n \"crwth\",\n \"cryer\",\n \"ctene\",\n \"cubby\",\n \"cubeb\",\n \"cubed\",\n \"cuber\",\n \"cubes\",\n \"cubit\",\n \"cuddy\",\n \"cuffo\",\n \"cuffs\",\n \"cuifs\",\n \"cuing\",\n \"cuish\",\n \"cuits\",\n \"cukes\",\n \"culch\",\n \"culet\",\n \"culex\",\n \"culls\",\n \"cully\",\n \"culms\",\n \"culpa\",\n \"culti\",\n \"cults\",\n \"culty\",\n \"cumec\",\n \"cundy\",\n \"cunei\",\n \"cunit\",\n \"cunts\",\n \"cupel\",\n \"cupid\",\n \"cuppa\",\n \"cuppy\",\n \"curat\",\n \"curbs\",\n \"curch\",\n \"curds\",\n \"curdy\",\n \"cured\",\n \"curer\",\n \"cures\",\n \"curet\",\n \"curfs\",\n \"curia\",\n \"curie\",\n \"curli\",\n \"curls\",\n \"curns\",\n \"curny\",\n \"currs\",\n \"cursi\",\n \"curst\",\n \"cusec\",\n \"cushy\",\n \"cusks\",\n \"cusps\",\n \"cuspy\",\n \"cusso\",\n \"cusum\",\n \"cutch\",\n \"cuter\",\n \"cutes\",\n \"cutey\",\n \"cutin\",\n \"cutis\",\n \"cutto\",\n \"cutty\",\n \"cutup\",\n \"cuvee\",\n \"cuzes\",\n \"cwtch\",\n \"cyano\",\n \"cyans\",\n \"cycad\",\n \"cycas\",\n \"cyclo\",\n \"cyder\",\n \"cylix\",\n \"cymae\",\n \"cymar\",\n \"cymas\",\n \"cymes\",\n \"cymol\",\n \"cysts\",\n \"cytes\",\n \"cyton\",\n \"czars\",\n \"daals\",\n \"dabba\",\n \"daces\",\n \"dacha\",\n \"dacks\",\n \"dadah\",\n \"dadas\",\n \"dados\",\n \"daffs\",\n \"daffy\",\n \"dagga\",\n \"daggy\",\n \"dagos\",\n \"dahls\",\n \"daiko\",\n \"daine\",\n \"daint\",\n \"daker\",\n \"daled\",\n \"dales\",\n \"dalis\",\n \"dalle\",\n \"dalts\",\n \"daman\",\n \"damar\",\n \"dames\",\n \"damme\",\n \"damns\",\n \"damps\",\n \"dampy\",\n \"dancy\",\n \"dangs\",\n \"danio\",\n \"danks\",\n \"danny\",\n \"dants\",\n \"daraf\",\n \"darbs\",\n \"darcy\",\n \"dared\",\n \"darer\",\n \"dares\",\n \"darga\",\n \"dargs\",\n \"daric\",\n \"daris\",\n \"darks\",\n \"darky\",\n \"darns\",\n \"darre\",\n \"darts\",\n \"darzi\",\n \"dashi\",\n \"dashy\",\n \"datal\",\n \"dated\",\n \"dater\",\n \"dates\",\n \"datos\",\n \"datto\",\n \"daube\",\n \"daubs\",\n \"dauby\",\n \"dauds\",\n \"dault\",\n \"daurs\",\n \"dauts\",\n \"daven\",\n \"davit\",\n \"dawah\",\n \"dawds\",\n \"dawed\",\n \"dawen\",\n \"dawks\",\n \"dawns\",\n \"dawts\",\n \"dayan\",\n \"daych\",\n \"daynt\",\n \"dazed\",\n \"dazer\",\n \"dazes\",\n \"deads\",\n \"deair\",\n \"deals\",\n \"deans\",\n \"deare\",\n \"dearn\",\n \"dears\",\n \"deary\",\n \"deash\",\n \"deave\",\n \"deaws\",\n \"deawy\",\n \"debag\",\n \"debby\",\n \"debel\",\n \"debes\",\n \"debts\",\n \"debud\",\n \"debur\",\n \"debus\",\n \"debye\",\n \"decad\",\n \"decaf\",\n \"decan\",\n \"decko\",\n \"decks\",\n \"decos\",\n \"dedal\",\n \"deeds\",\n \"deedy\",\n \"deely\",\n \"deems\",\n \"deens\",\n \"deeps\",\n \"deere\",\n \"deers\",\n \"deets\",\n \"deeve\",\n \"deevs\",\n \"defat\",\n \"deffo\",\n \"defis\",\n \"defog\",\n \"degas\",\n \"degum\",\n \"degus\",\n \"deice\",\n \"deids\",\n \"deify\",\n \"deils\",\n \"deism\",\n \"deist\",\n \"deked\",\n \"dekes\",\n \"dekko\",\n \"deled\",\n \"deles\",\n \"delfs\",\n \"delft\",\n \"delis\",\n \"dells\",\n \"delly\",\n \"delos\",\n \"delph\",\n \"delts\",\n \"deman\",\n \"demes\",\n \"demic\",\n \"demit\",\n \"demob\",\n \"demoi\",\n \"demos\",\n \"dempt\",\n \"denar\",\n \"denay\",\n \"dench\",\n \"denes\",\n \"denet\",\n \"denis\",\n \"dents\",\n \"deoxy\",\n \"derat\",\n \"deray\",\n \"dered\",\n \"deres\",\n \"derig\",\n \"derma\",\n \"derms\",\n \"derns\",\n \"derny\",\n \"deros\",\n \"derro\",\n \"derry\",\n \"derth\",\n \"dervs\",\n \"desex\",\n \"deshi\",\n \"desis\",\n \"desks\",\n \"desse\",\n \"devas\",\n \"devel\",\n \"devis\",\n \"devon\",\n \"devos\",\n \"devot\",\n \"dewan\",\n \"dewar\",\n \"dewax\",\n \"dewed\",\n \"dexes\",\n \"dexie\",\n \"dhaba\",\n \"dhaks\",\n \"dhals\",\n \"dhikr\",\n \"dhobi\",\n \"dhole\",\n \"dholl\",\n \"dhols\",\n \"dhoti\",\n \"dhows\",\n \"dhuti\",\n \"diact\",\n \"dials\",\n \"diane\",\n \"diazo\",\n \"dibbs\",\n \"diced\",\n \"dicer\",\n \"dices\",\n \"dicht\",\n \"dicks\",\n \"dicky\",\n \"dicot\",\n \"dicta\",\n \"dicts\",\n \"dicty\",\n \"diddy\",\n \"didie\",\n \"didos\",\n \"didst\",\n \"diebs\",\n \"diels\",\n \"diene\",\n \"diets\",\n \"diffs\",\n \"dight\",\n \"dikas\",\n \"diked\",\n \"diker\",\n \"dikes\",\n \"dikey\",\n \"dildo\",\n \"dilli\",\n \"dills\",\n \"dimbo\",\n \"dimer\",\n \"dimes\",\n \"dimps\",\n \"dinar\",\n \"dined\",\n \"dines\",\n \"dinge\",\n \"dings\",\n \"dinic\",\n \"dinks\",\n \"dinky\",\n \"dinna\",\n \"dinos\",\n \"dints\",\n \"diols\",\n \"diota\",\n \"dippy\",\n \"dipso\",\n \"diram\",\n \"direr\",\n \"dirke\",\n \"dirks\",\n \"dirls\",\n \"dirts\",\n \"disas\",\n \"disci\",\n \"discs\",\n \"dishy\",\n \"disks\",\n \"disme\",\n \"dital\",\n \"ditas\",\n \"dited\",\n \"dites\",\n \"ditsy\",\n \"ditts\",\n \"ditzy\",\n \"divan\",\n \"divas\",\n \"dived\",\n \"dives\",\n \"divis\",\n \"divna\",\n \"divos\",\n \"divot\",\n \"divvy\",\n \"diwan\",\n \"dixie\",\n \"dixit\",\n \"diyas\",\n \"dizen\",\n \"djinn\",\n \"djins\",\n \"doabs\",\n \"doats\",\n \"dobby\",\n \"dobes\",\n \"dobie\",\n \"dobla\",\n \"dobra\",\n \"dobro\",\n \"docht\",\n \"docks\",\n \"docos\",\n \"docus\",\n \"doddy\",\n \"dodos\",\n \"doeks\",\n \"doers\",\n \"doest\",\n \"doeth\",\n \"doffs\",\n \"dogan\",\n \"doges\",\n \"dogey\",\n \"doggo\",\n \"doggy\",\n \"dogie\",\n \"dohyo\",\n \"doilt\",\n \"doily\",\n \"doits\",\n \"dojos\",\n \"dolce\",\n \"dolci\",\n \"doled\",\n \"doles\",\n \"dolia\",\n \"dolls\",\n \"dolma\",\n \"dolor\",\n \"dolos\",\n \"dolts\",\n \"domal\",\n \"domed\",\n \"domes\",\n \"domic\",\n \"donah\",\n \"donas\",\n \"donee\",\n \"doner\",\n \"donga\",\n \"dongs\",\n \"donko\",\n \"donna\",\n \"donne\",\n \"donny\",\n \"donsy\",\n \"doobs\",\n \"dooce\",\n \"doody\",\n \"dooks\",\n \"doole\",\n \"dools\",\n \"dooly\",\n \"dooms\",\n \"doomy\",\n \"doona\",\n \"doorn\",\n \"doors\",\n \"doozy\",\n \"dopas\",\n \"doped\",\n \"doper\",\n \"dopes\",\n \"dorad\",\n \"dorba\",\n \"dorbs\",\n \"doree\",\n \"dores\",\n \"doric\",\n \"doris\",\n \"dorks\",\n \"dorky\",\n \"dorms\",\n \"dormy\",\n \"dorps\",\n \"dorrs\",\n \"dorsa\",\n \"dorse\",\n \"dorts\",\n \"dorty\",\n \"dosai\",\n \"dosas\",\n \"dosed\",\n \"doseh\",\n \"doser\",\n \"doses\",\n \"dosha\",\n \"dotal\",\n \"doted\",\n \"doter\",\n \"dotes\",\n \"dotty\",\n \"douar\",\n \"douce\",\n \"doucs\",\n \"douks\",\n \"doula\",\n \"douma\",\n \"doums\",\n \"doups\",\n \"doura\",\n \"douse\",\n \"douts\",\n \"doved\",\n \"doven\",\n \"dover\",\n \"doves\",\n \"dovie\",\n \"dowar\",\n \"dowds\",\n \"dowed\",\n \"dower\",\n \"dowie\",\n \"dowle\",\n \"dowls\",\n \"dowly\",\n \"downa\",\n \"downs\",\n \"dowps\",\n \"dowse\",\n \"dowts\",\n \"doxed\",\n \"doxes\",\n \"doxie\",\n \"doyen\",\n \"doyly\",\n \"dozed\",\n \"dozer\",\n \"dozes\",\n \"drabs\",\n \"drack\",\n \"draco\",\n \"draff\",\n \"drags\",\n \"drail\",\n \"drams\",\n \"drant\",\n \"draps\",\n \"drats\",\n \"drave\",\n \"draws\",\n \"drays\",\n \"drear\",\n \"dreck\",\n \"dreed\",\n \"dreer\",\n \"drees\",\n \"dregs\",\n \"dreks\",\n \"drent\",\n \"drere\",\n \"drest\",\n \"dreys\",\n \"dribs\",\n \"drice\",\n \"dries\",\n \"drily\",\n \"drips\",\n \"dript\",\n \"droid\",\n \"droil\",\n \"droke\",\n \"drole\",\n \"drome\",\n \"drony\",\n \"droob\",\n \"droog\",\n \"drook\",\n \"drops\",\n \"dropt\",\n \"drouk\",\n \"drows\",\n \"drubs\",\n \"drugs\",\n \"drums\",\n \"drupe\",\n \"druse\",\n \"drusy\",\n \"druxy\",\n \"dryad\",\n \"dryas\",\n \"dsobo\",\n \"dsomo\",\n \"duads\",\n \"duals\",\n \"duans\",\n \"duars\",\n \"dubbo\",\n \"ducal\",\n \"ducat\",\n \"duces\",\n \"ducks\",\n \"ducky\",\n \"ducts\",\n \"duddy\",\n \"duded\",\n \"dudes\",\n \"duels\",\n \"duets\",\n \"duett\",\n \"duffs\",\n \"dufus\",\n \"duing\",\n \"duits\",\n \"dukas\",\n \"duked\",\n \"dukes\",\n \"dukka\",\n \"dulce\",\n \"dules\",\n \"dulia\",\n \"dulls\",\n \"dulse\",\n \"dumas\",\n \"dumbo\",\n \"dumbs\",\n \"dumka\",\n \"dumky\",\n \"dumps\",\n \"dunam\",\n \"dunch\",\n \"dunes\",\n \"dungs\",\n \"dungy\",\n \"dunks\",\n \"dunno\",\n \"dunny\",\n \"dunsh\",\n \"dunts\",\n \"duomi\",\n \"duomo\",\n \"duped\",\n \"duper\",\n \"dupes\",\n \"duple\",\n \"duply\",\n \"duppy\",\n \"dural\",\n \"duras\",\n \"dured\",\n \"dures\",\n \"durgy\",\n \"durns\",\n \"duroc\",\n \"duros\",\n \"duroy\",\n \"durra\",\n \"durrs\",\n \"durry\",\n \"durst\",\n \"durum\",\n \"durzi\",\n \"dusks\",\n \"dusts\",\n \"duxes\",\n \"dwaal\",\n \"dwale\",\n \"dwalm\",\n \"dwams\",\n \"dwang\",\n \"dwaum\",\n \"dweeb\",\n \"dwile\",\n \"dwine\",\n \"dyads\",\n \"dyers\",\n \"dyked\",\n \"dykes\",\n \"dykey\",\n \"dykon\",\n \"dynel\",\n \"dynes\",\n \"dzhos\",\n \"eagre\",\n \"ealed\",\n \"eales\",\n \"eaned\",\n \"eards\",\n \"eared\",\n \"earls\",\n \"earns\",\n \"earnt\",\n \"earst\",\n \"eased\",\n \"easer\",\n \"eases\",\n \"easle\",\n \"easts\",\n \"eathe\",\n \"eaved\",\n \"eaves\",\n \"ebbed\",\n \"ebbet\",\n \"ebons\",\n \"ebook\",\n \"ecads\",\n \"eched\",\n \"eches\",\n \"echos\",\n \"ecrus\",\n \"edema\",\n \"edged\",\n \"edger\",\n \"edges\",\n \"edile\",\n \"edits\",\n \"educe\",\n \"educt\",\n \"eejit\",\n \"eensy\",\n \"eeven\",\n \"eevns\",\n \"effed\",\n \"egads\",\n \"egers\",\n \"egest\",\n \"eggar\",\n \"egged\",\n \"egger\",\n \"egmas\",\n \"ehing\",\n \"eider\",\n \"eidos\",\n \"eigne\",\n \"eiked\",\n \"eikon\",\n \"eilds\",\n \"eisel\",\n \"ejido\",\n \"ekkas\",\n \"elain\",\n \"eland\",\n \"elans\",\n \"elchi\",\n \"eldin\",\n \"elemi\",\n \"elfed\",\n \"eliad\",\n \"elint\",\n \"elmen\",\n \"eloge\",\n \"elogy\",\n \"eloin\",\n \"elops\",\n \"elpee\",\n \"elsin\",\n \"elute\",\n \"elvan\",\n \"elven\",\n \"elver\",\n \"elves\",\n \"emacs\",\n \"embar\",\n \"embay\",\n \"embog\",\n \"embow\",\n \"embox\",\n \"embus\",\n \"emeer\",\n \"emend\",\n \"emerg\",\n \"emery\",\n \"emeus\",\n \"emics\",\n \"emirs\",\n \"emits\",\n \"emmas\",\n \"emmer\",\n \"emmet\",\n \"emmew\",\n \"emmys\",\n \"emoji\",\n \"emong\",\n \"emote\",\n \"emove\",\n \"empts\",\n \"emule\",\n \"emure\",\n \"emyde\",\n \"emyds\",\n \"enarm\",\n \"enate\",\n \"ended\",\n \"ender\",\n \"endew\",\n \"endue\",\n \"enews\",\n \"enfix\",\n \"eniac\",\n \"enlit\",\n \"enmew\",\n \"ennog\",\n \"enoki\",\n \"enols\",\n \"enorm\",\n \"enows\",\n \"enrol\",\n \"ensew\",\n \"ensky\",\n \"entia\",\n \"enure\",\n \"enurn\",\n \"envoi\",\n \"enzym\",\n \"eorls\",\n \"eosin\",\n \"epact\",\n \"epees\",\n \"ephah\",\n \"ephas\",\n \"ephod\",\n \"ephor\",\n \"epics\",\n \"epode\",\n \"epopt\",\n \"epris\",\n \"eques\",\n \"equid\",\n \"erbia\",\n \"erevs\",\n \"ergon\",\n \"ergos\",\n \"ergot\",\n \"erhus\",\n \"erica\",\n \"erick\",\n \"erics\",\n \"ering\",\n \"erned\",\n \"ernes\",\n \"erose\",\n \"erred\",\n \"erses\",\n \"eruct\",\n \"erugo\",\n \"eruvs\",\n \"erven\",\n \"ervil\",\n \"escar\",\n \"escot\",\n \"esile\",\n \"eskar\",\n \"esker\",\n \"esnes\",\n \"esses\",\n \"estoc\",\n \"estop\",\n \"estro\",\n \"etage\",\n \"etape\",\n \"etats\",\n \"etens\",\n \"ethal\",\n \"ethne\",\n \"ethyl\",\n \"etics\",\n \"etnas\",\n \"ettin\",\n \"ettle\",\n \"etuis\",\n \"etwee\",\n \"etyma\",\n \"eughs\",\n \"euked\",\n \"eupad\",\n \"euros\",\n \"eusol\",\n \"evens\",\n \"evert\",\n \"evets\",\n \"evhoe\",\n \"evils\",\n \"evite\",\n \"evohe\",\n \"ewers\",\n \"ewest\",\n \"ewhow\",\n \"ewked\",\n \"exams\",\n \"exeat\",\n \"execs\",\n \"exeem\",\n \"exeme\",\n \"exfil\",\n \"exies\",\n \"exine\",\n \"exing\",\n \"exits\",\n \"exode\",\n \"exome\",\n \"exons\",\n \"expat\",\n \"expos\",\n \"exude\",\n \"exuls\",\n \"exurb\",\n \"eyass\",\n \"eyers\",\n \"eyots\",\n \"eyras\",\n \"eyres\",\n \"eyrie\",\n \"eyrir\",\n \"ezine\",\n \"fabby\",\n \"faced\",\n \"facer\",\n \"faces\",\n \"facia\",\n \"facta\",\n \"facts\",\n \"faddy\",\n \"faded\",\n \"fader\",\n \"fades\",\n \"fadge\",\n \"fados\",\n \"faena\",\n \"faery\",\n \"faffs\",\n \"faffy\",\n \"faggy\",\n \"fagin\",\n \"fagot\",\n \"faiks\",\n \"fails\",\n \"faine\",\n \"fains\",\n \"fairs\",\n \"faked\",\n \"faker\",\n \"fakes\",\n \"fakey\",\n \"fakie\",\n \"fakir\",\n \"falaj\",\n \"falls\",\n \"famed\",\n \"fames\",\n \"fanal\",\n \"fands\",\n \"fanes\",\n \"fanga\",\n \"fango\",\n \"fangs\",\n \"fanks\",\n \"fanon\",\n \"fanos\",\n \"fanum\",\n \"faqir\",\n \"farad\",\n \"farci\",\n \"farcy\",\n \"fards\",\n \"fared\",\n \"farer\",\n \"fares\",\n \"farle\",\n \"farls\",\n \"farms\",\n \"faros\",\n \"farro\",\n \"farse\",\n \"farts\",\n \"fasci\",\n \"fasti\",\n \"fasts\",\n \"fated\",\n \"fates\",\n \"fatly\",\n \"fatso\",\n \"fatwa\",\n \"faugh\",\n \"fauld\",\n \"fauns\",\n \"faurd\",\n \"fauts\",\n \"fauve\",\n \"favas\",\n \"favel\",\n \"faver\",\n \"faves\",\n \"favus\",\n \"fawns\",\n \"fawny\",\n \"faxed\",\n \"faxes\",\n \"fayed\",\n \"fayer\",\n \"fayne\",\n \"fayre\",\n \"fazed\",\n \"fazes\",\n \"feals\",\n \"feare\",\n \"fears\",\n \"feart\",\n \"fease\",\n \"feats\",\n \"feaze\",\n \"feces\",\n \"fecht\",\n \"fecit\",\n \"fecks\",\n \"fedex\",\n \"feebs\",\n \"feeds\",\n \"feels\",\n \"feens\",\n \"feers\",\n \"feese\",\n \"feeze\",\n \"fehme\",\n \"feint\",\n \"feist\",\n \"felch\",\n \"felid\",\n \"fells\",\n \"felly\",\n \"felts\",\n \"felty\",\n \"femal\",\n \"femes\",\n \"femmy\",\n \"fends\",\n \"fendy\",\n \"fenis\",\n \"fenks\",\n \"fenny\",\n \"fents\",\n \"feods\",\n \"feoff\",\n \"ferer\",\n \"feres\",\n \"feria\",\n \"ferly\",\n \"fermi\",\n \"ferms\",\n \"ferns\",\n \"ferny\",\n \"fesse\",\n \"festa\",\n \"fests\",\n \"festy\",\n \"fetas\",\n \"feted\",\n \"fetes\",\n \"fetor\",\n \"fetta\",\n \"fetts\",\n \"fetwa\",\n \"feuar\",\n \"feuds\",\n \"feued\",\n \"feyed\",\n \"feyer\",\n \"feyly\",\n \"fezes\",\n \"fezzy\",\n \"fiars\",\n \"fiats\",\n \"fibro\",\n \"fices\",\n \"fiche\",\n \"fichu\",\n \"ficin\",\n \"ficos\",\n \"fides\",\n \"fidge\",\n \"fidos\",\n \"fiefs\",\n \"fient\",\n \"fiere\",\n \"fiers\",\n \"fiest\",\n \"fifed\",\n \"fifer\",\n \"fifes\",\n \"fifis\",\n \"figgy\",\n \"figos\",\n \"fiked\",\n \"fikes\",\n \"filar\",\n \"filch\",\n \"filed\",\n \"files\",\n \"filii\",\n \"filks\",\n \"fille\",\n \"fillo\",\n \"fills\",\n \"filmi\",\n \"films\",\n \"filos\",\n \"filum\",\n \"finca\",\n \"finds\",\n \"fined\",\n \"fines\",\n \"finis\",\n \"finks\",\n \"finny\",\n \"finos\",\n \"fiord\",\n \"fiqhs\",\n \"fique\",\n \"fired\",\n \"firer\",\n \"fires\",\n \"firie\",\n \"firks\",\n \"firms\",\n \"firns\",\n \"firry\",\n \"firth\",\n \"fiscs\",\n \"fisks\",\n \"fists\",\n \"fisty\",\n \"fitch\",\n \"fitly\",\n \"fitna\",\n \"fitte\",\n \"fitts\",\n \"fiver\",\n \"fives\",\n \"fixed\",\n \"fixes\",\n \"fixit\",\n \"fjeld\",\n \"flabs\",\n \"flaff\",\n \"flags\",\n \"flaks\",\n \"flamm\",\n \"flams\",\n \"flamy\",\n \"flane\",\n \"flans\",\n \"flaps\",\n \"flary\",\n \"flats\",\n \"flava\",\n \"flawn\",\n \"flaws\",\n \"flawy\",\n \"flaxy\",\n \"flays\",\n \"fleam\",\n \"fleas\",\n \"fleek\",\n \"fleer\",\n \"flees\",\n \"flegs\",\n \"fleme\",\n \"fleur\",\n \"flews\",\n \"flexi\",\n \"flexo\",\n \"fleys\",\n \"flics\",\n \"flied\",\n \"flies\",\n \"flimp\",\n \"flims\",\n \"flips\",\n \"flirs\",\n \"flisk\",\n \"flite\",\n \"flits\",\n \"flitt\",\n \"flobs\",\n \"flocs\",\n \"floes\",\n \"flogs\",\n \"flong\",\n \"flops\",\n \"flors\",\n \"flory\",\n \"flosh\",\n \"flota\",\n \"flote\",\n \"flows\",\n \"flubs\",\n \"flued\",\n \"flues\",\n \"fluey\",\n \"fluky\",\n \"flump\",\n \"fluor\",\n \"flurr\",\n \"fluty\",\n \"fluyt\",\n \"flyby\",\n \"flype\",\n \"flyte\",\n \"foals\",\n \"foams\",\n \"foehn\",\n \"fogey\",\n \"fogie\",\n \"fogle\",\n \"fogou\",\n \"fohns\",\n \"foids\",\n \"foils\",\n \"foins\",\n \"folds\",\n \"foley\",\n \"folia\",\n \"folic\",\n \"folie\",\n \"folks\",\n \"folky\",\n \"fomes\",\n \"fonda\",\n \"fonds\",\n \"fondu\",\n \"fones\",\n \"fonly\",\n \"fonts\",\n \"foods\",\n \"foody\",\n \"fools\",\n \"foots\",\n \"footy\",\n \"foram\",\n \"forbs\",\n \"forby\",\n \"fordo\",\n \"fords\",\n \"forel\",\n \"fores\",\n \"forex\",\n \"forks\",\n \"forky\",\n \"forme\",\n \"forms\",\n \"forts\",\n \"forza\",\n \"forze\",\n \"fossa\",\n \"fosse\",\n \"fouat\",\n \"fouds\",\n \"fouer\",\n \"fouet\",\n \"foule\",\n \"fouls\",\n \"fount\",\n \"fours\",\n \"fouth\",\n \"fovea\",\n \"fowls\",\n \"fowth\",\n \"foxed\",\n \"foxes\",\n \"foxie\",\n \"foyle\",\n \"foyne\",\n \"frabs\",\n \"frack\",\n \"fract\",\n \"frags\",\n \"fraim\",\n \"franc\",\n \"frape\",\n \"fraps\",\n \"frass\",\n \"frate\",\n \"frati\",\n \"frats\",\n \"fraus\",\n \"frays\",\n \"frees\",\n \"freet\",\n \"freit\",\n \"fremd\",\n \"frena\",\n \"freon\",\n \"frere\",\n \"frets\",\n \"fribs\",\n \"frier\",\n \"fries\",\n \"frigs\",\n \"frise\",\n \"frist\",\n \"frith\",\n \"frits\",\n \"fritt\",\n \"frize\",\n \"frizz\",\n \"froes\",\n \"frogs\",\n \"frons\",\n \"frore\",\n \"frorn\",\n \"frory\",\n \"frosh\",\n \"frows\",\n \"frowy\",\n \"frugs\",\n \"frump\",\n \"frush\",\n \"frust\",\n \"fryer\",\n \"fubar\",\n \"fubby\",\n \"fubsy\",\n \"fucks\",\n \"fucus\",\n \"fuddy\",\n \"fudgy\",\n \"fuels\",\n \"fuero\",\n \"fuffs\",\n \"fuffy\",\n \"fugal\",\n \"fuggy\",\n \"fugie\",\n \"fugio\",\n \"fugle\",\n \"fugly\",\n \"fugus\",\n \"fujis\",\n \"fulls\",\n \"fumed\",\n \"fumer\",\n \"fumes\",\n \"fumet\",\n \"fundi\",\n \"funds\",\n \"fundy\",\n \"fungo\",\n \"fungs\",\n \"funks\",\n \"fural\",\n \"furan\",\n \"furca\",\n \"furls\",\n \"furol\",\n \"furrs\",\n \"furth\",\n \"furze\",\n \"furzy\",\n \"fused\",\n \"fusee\",\n \"fusel\",\n \"fuses\",\n \"fusil\",\n \"fusks\",\n \"fusts\",\n \"fusty\",\n \"futon\",\n \"fuzed\",\n \"fuzee\",\n \"fuzes\",\n \"fuzil\",\n \"fyces\",\n \"fyked\",\n \"fykes\",\n \"fyles\",\n \"fyrds\",\n \"fytte\",\n \"gabba\",\n \"gabby\",\n \"gable\",\n \"gaddi\",\n \"gades\",\n \"gadge\",\n \"gadid\",\n \"gadis\",\n \"gadje\",\n \"gadjo\",\n \"gadso\",\n \"gaffs\",\n \"gaged\",\n \"gager\",\n \"gages\",\n \"gaids\",\n \"gains\",\n \"gairs\",\n \"gaita\",\n \"gaits\",\n \"gaitt\",\n \"gajos\",\n \"galah\",\n \"galas\",\n \"galax\",\n \"galea\",\n \"galed\",\n \"gales\",\n \"galls\",\n \"gally\",\n \"galop\",\n \"galut\",\n \"galvo\",\n \"gamas\",\n \"gamay\",\n \"gamba\",\n \"gambe\",\n \"gambo\",\n \"gambs\",\n \"gamed\",\n \"games\",\n \"gamey\",\n \"gamic\",\n \"gamin\",\n \"gamme\",\n \"gammy\",\n \"gamps\",\n \"ganch\",\n \"gandy\",\n \"ganef\",\n \"ganev\",\n \"gangs\",\n \"ganja\",\n \"ganof\",\n \"gants\",\n \"gaols\",\n \"gaped\",\n \"gaper\",\n \"gapes\",\n \"gapos\",\n \"gappy\",\n \"garbe\",\n \"garbo\",\n \"garbs\",\n \"garda\",\n \"gares\",\n \"garis\",\n \"garms\",\n \"garni\",\n \"garre\",\n \"garth\",\n \"garum\",\n \"gases\",\n \"gasps\",\n \"gaspy\",\n \"gasts\",\n \"gatch\",\n \"gated\",\n \"gater\",\n \"gates\",\n \"gaths\",\n \"gator\",\n \"gauch\",\n \"gaucy\",\n \"gauds\",\n \"gauje\",\n \"gault\",\n \"gaums\",\n \"gaumy\",\n \"gaups\",\n \"gaurs\",\n \"gauss\",\n \"gauzy\",\n \"gavot\",\n \"gawcy\",\n \"gawds\",\n \"gawks\",\n \"gawps\",\n \"gawsy\",\n \"gayal\",\n \"gazal\",\n \"gazar\",\n \"gazed\",\n \"gazes\",\n \"gazon\",\n \"gazoo\",\n \"geals\",\n \"geans\",\n \"geare\",\n \"gears\",\n \"geats\",\n \"gebur\",\n \"gecks\",\n \"geeks\",\n \"geeps\",\n \"geest\",\n \"geist\",\n \"geits\",\n \"gelds\",\n \"gelee\",\n \"gelid\",\n \"gelly\",\n \"gelts\",\n \"gemel\",\n \"gemma\",\n \"gemmy\",\n \"gemot\",\n \"genal\",\n \"genas\",\n \"genes\",\n \"genet\",\n \"genic\",\n \"genii\",\n \"genip\",\n \"genny\",\n \"genoa\",\n \"genom\",\n \"genro\",\n \"gents\",\n \"genty\",\n \"genua\",\n \"genus\",\n \"geode\",\n \"geoid\",\n \"gerah\",\n \"gerbe\",\n \"geres\",\n \"gerle\",\n \"germs\",\n \"germy\",\n \"gerne\",\n \"gesse\",\n \"gesso\",\n \"geste\",\n \"gests\",\n \"getas\",\n \"getup\",\n \"geums\",\n \"geyan\",\n \"geyer\",\n \"ghast\",\n \"ghats\",\n \"ghaut\",\n \"ghazi\",\n \"ghees\",\n \"ghest\",\n \"ghyll\",\n \"gibed\",\n \"gibel\",\n \"giber\",\n \"gibes\",\n \"gibli\",\n \"gibus\",\n \"gifts\",\n \"gigas\",\n \"gighe\",\n \"gigot\",\n \"gigue\",\n \"gilas\",\n \"gilds\",\n \"gilet\",\n \"gills\",\n \"gilly\",\n \"gilpy\",\n \"gilts\",\n \"gimel\",\n \"gimme\",\n \"gimps\",\n \"gimpy\",\n \"ginch\",\n \"ginge\",\n \"gings\",\n \"ginks\",\n \"ginny\",\n \"ginzo\",\n \"gipon\",\n \"gippo\",\n \"gippy\",\n \"girds\",\n \"girls\",\n \"girns\",\n \"giron\",\n \"giros\",\n \"girrs\",\n \"girsh\",\n \"girts\",\n \"gismo\",\n \"gisms\",\n \"gists\",\n \"gitch\",\n \"gites\",\n \"giust\",\n \"gived\",\n \"gives\",\n \"gizmo\",\n \"glace\",\n \"glads\",\n \"glady\",\n \"glaik\",\n \"glair\",\n \"glams\",\n \"glans\",\n \"glary\",\n \"glaum\",\n \"glaur\",\n \"glazy\",\n \"gleba\",\n \"glebe\",\n \"gleby\",\n \"glede\",\n \"gleds\",\n \"gleed\",\n \"gleek\",\n \"glees\",\n \"gleet\",\n \"gleis\",\n \"glens\",\n \"glent\",\n \"gleys\",\n \"glial\",\n \"glias\",\n \"glibs\",\n \"gliff\",\n \"glift\",\n \"glike\",\n \"glime\",\n \"glims\",\n \"glisk\",\n \"glits\",\n \"glitz\",\n \"gloam\",\n \"globi\",\n \"globs\",\n \"globy\",\n \"glode\",\n \"glogg\",\n \"gloms\",\n \"gloop\",\n \"glops\",\n \"glost\",\n \"glout\",\n \"glows\",\n \"gloze\",\n \"glued\",\n \"gluer\",\n \"glues\",\n \"gluey\",\n \"glugs\",\n \"glume\",\n \"glums\",\n \"gluon\",\n \"glute\",\n \"gluts\",\n \"gnarl\",\n \"gnarr\",\n \"gnars\",\n \"gnats\",\n \"gnawn\",\n \"gnaws\",\n \"gnows\",\n \"goads\",\n \"goafs\",\n \"goals\",\n \"goary\",\n \"goats\",\n \"goaty\",\n \"goban\",\n \"gobar\",\n \"gobbi\",\n \"gobbo\",\n \"gobby\",\n \"gobis\",\n \"gobos\",\n \"godet\",\n \"godso\",\n \"goels\",\n \"goers\",\n \"goest\",\n \"goeth\",\n \"goety\",\n \"gofer\",\n \"goffs\",\n \"gogga\",\n \"gogos\",\n \"goier\",\n \"gojis\",\n \"golds\",\n \"goldy\",\n \"goles\",\n \"golfs\",\n \"golpe\",\n \"golps\",\n \"gombo\",\n \"gomer\",\n \"gompa\",\n \"gonch\",\n \"gonef\",\n \"gongs\",\n \"gonia\",\n \"gonif\",\n \"gonks\",\n \"gonna\",\n \"gonof\",\n \"gonys\",\n \"gonzo\",\n \"gooby\",\n \"goods\",\n \"goofs\",\n \"googs\",\n \"gooks\",\n \"gooky\",\n \"goold\",\n \"gools\",\n \"gooly\",\n \"goons\",\n \"goony\",\n \"goops\",\n \"goopy\",\n \"goors\",\n \"goory\",\n \"goosy\",\n \"gopak\",\n \"gopik\",\n \"goral\",\n \"goras\",\n \"gored\",\n \"gores\",\n \"goris\",\n \"gorms\",\n \"gormy\",\n \"gorps\",\n \"gorse\",\n \"gorsy\",\n \"gosht\",\n \"gosse\",\n \"gotch\",\n \"goths\",\n \"gothy\",\n \"gotta\",\n \"gouch\",\n \"gouks\",\n \"goura\",\n \"gouts\",\n \"gouty\",\n \"gowan\",\n \"gowds\",\n \"gowfs\",\n \"gowks\",\n \"gowls\",\n \"gowns\",\n \"goxes\",\n \"goyim\",\n \"goyle\",\n \"graal\",\n \"grabs\",\n \"grads\",\n \"graff\",\n \"graip\",\n \"grama\",\n \"grame\",\n \"gramp\",\n \"grams\",\n \"grana\",\n \"grans\",\n \"grapy\",\n \"gravs\",\n \"grays\",\n \"grebe\",\n \"grebo\",\n \"grece\",\n \"greek\",\n \"grees\",\n \"grege\",\n \"grego\",\n \"grein\",\n \"grens\",\n \"grese\",\n \"greve\",\n \"grews\",\n \"greys\",\n \"grice\",\n \"gride\",\n \"grids\",\n \"griff\",\n \"grift\",\n \"grigs\",\n \"grike\",\n \"grins\",\n \"griot\",\n \"grips\",\n \"gript\",\n \"gripy\",\n \"grise\",\n \"grist\",\n \"grisy\",\n \"grith\",\n \"grits\",\n \"grize\",\n \"groat\",\n \"grody\",\n \"grogs\",\n \"groks\",\n \"groma\",\n \"grone\",\n \"groof\",\n \"grosz\",\n \"grots\",\n \"grouf\",\n \"grovy\",\n \"grows\",\n \"grrls\",\n \"grrrl\",\n \"grubs\",\n \"grued\",\n \"grues\",\n \"grufe\",\n \"grume\",\n \"grump\",\n \"grund\",\n \"gryce\",\n \"gryde\",\n \"gryke\",\n \"grype\",\n \"grypt\",\n \"guaco\",\n \"guana\",\n \"guano\",\n \"guans\",\n \"guars\",\n \"gucks\",\n \"gucky\",\n \"gudes\",\n \"guffs\",\n \"gugas\",\n \"guids\",\n \"guimp\",\n \"guiro\",\n \"gulag\",\n \"gular\",\n \"gulas\",\n \"gules\",\n \"gulet\",\n \"gulfs\",\n \"gulfy\",\n \"gulls\",\n \"gulph\",\n \"gulps\",\n \"gulpy\",\n \"gumma\",\n \"gummi\",\n \"gumps\",\n \"gundy\",\n \"gunge\",\n \"gungy\",\n \"gunks\",\n \"gunky\",\n \"gunny\",\n \"guqin\",\n \"gurdy\",\n \"gurge\",\n \"gurls\",\n \"gurly\",\n \"gurns\",\n \"gurry\",\n \"gursh\",\n \"gurus\",\n \"gushy\",\n \"gusla\",\n \"gusle\",\n \"gusli\",\n \"gussy\",\n \"gusts\",\n \"gutsy\",\n \"gutta\",\n \"gutty\",\n \"guyed\",\n \"guyle\",\n \"guyot\",\n \"guyse\",\n \"gwine\",\n \"gyals\",\n \"gyans\",\n \"gybed\",\n \"gybes\",\n \"gyeld\",\n \"gymps\",\n \"gynae\",\n \"gynie\",\n \"gynny\",\n \"gynos\",\n \"gyoza\",\n \"gypos\",\n \"gyppo\",\n \"gyppy\",\n \"gyral\",\n \"gyred\",\n \"gyres\",\n \"gyron\",\n \"gyros\",\n \"gyrus\",\n \"gytes\",\n \"gyved\",\n \"gyves\",\n \"haafs\",\n \"haars\",\n \"hable\",\n \"habus\",\n \"hacek\",\n \"hacks\",\n \"hadal\",\n \"haded\",\n \"hades\",\n \"hadji\",\n \"hadst\",\n \"haems\",\n \"haets\",\n \"haffs\",\n \"hafiz\",\n \"hafts\",\n \"haggs\",\n \"hahas\",\n \"haick\",\n \"haika\",\n \"haiks\",\n \"haiku\",\n \"hails\",\n \"haily\",\n \"hains\",\n \"haint\",\n \"hairs\",\n \"haith\",\n \"hajes\",\n \"hajis\",\n \"hajji\",\n \"hakam\",\n \"hakas\",\n \"hakea\",\n \"hakes\",\n \"hakim\",\n \"hakus\",\n \"halal\",\n \"haled\",\n \"haler\",\n \"hales\",\n \"halfa\",\n \"halfs\",\n \"halid\",\n \"hallo\",\n \"halls\",\n \"halma\",\n \"halms\",\n \"halon\",\n \"halos\",\n \"halse\",\n \"halts\",\n \"halva\",\n \"halwa\",\n \"hamal\",\n \"hamba\",\n \"hamed\",\n \"hames\",\n \"hammy\",\n \"hamza\",\n \"hanap\",\n \"hance\",\n \"hanch\",\n \"hands\",\n \"hangi\",\n \"hangs\",\n \"hanks\",\n \"hanky\",\n \"hansa\",\n \"hanse\",\n \"hants\",\n \"haole\",\n \"haoma\",\n \"hapax\",\n \"haply\",\n \"happi\",\n \"hapus\",\n \"haram\",\n \"hards\",\n \"hared\",\n \"hares\",\n \"harim\",\n \"harks\",\n \"harls\",\n \"harms\",\n \"harns\",\n \"haros\",\n \"harps\",\n \"harts\",\n \"hashy\",\n \"hasks\",\n \"hasps\",\n \"hasta\",\n \"hated\",\n \"hates\",\n \"hatha\",\n \"hauds\",\n \"haufs\",\n \"haugh\",\n \"hauld\",\n \"haulm\",\n \"hauls\",\n \"hault\",\n \"hauns\",\n \"hause\",\n \"haver\",\n \"haves\",\n \"hawed\",\n \"hawks\",\n \"hawms\",\n \"hawse\",\n \"hayed\",\n \"hayer\",\n \"hayey\",\n \"hayle\",\n \"hazan\",\n \"hazed\",\n \"hazer\",\n \"hazes\",\n \"heads\",\n \"heald\",\n \"heals\",\n \"heame\",\n \"heaps\",\n \"heapy\",\n \"heare\",\n \"hears\",\n \"heast\",\n \"heats\",\n \"heben\",\n \"hebes\",\n \"hecht\",\n \"hecks\",\n \"heder\",\n \"hedgy\",\n \"heeds\",\n \"heedy\",\n \"heels\",\n \"heeze\",\n \"hefte\",\n \"hefts\",\n \"heids\",\n \"heigh\",\n \"heils\",\n \"heirs\",\n \"hejab\",\n \"hejra\",\n \"heled\",\n \"heles\",\n \"helio\",\n \"hells\",\n \"helms\",\n \"helos\",\n \"helot\",\n \"helps\",\n \"helve\",\n \"hemal\",\n \"hemes\",\n \"hemic\",\n \"hemin\",\n \"hemps\",\n \"hempy\",\n \"hench\",\n \"hends\",\n \"henge\",\n \"henna\",\n \"henny\",\n \"henry\",\n \"hents\",\n \"hepar\",\n \"herbs\",\n \"herby\",\n \"herds\",\n \"heres\",\n \"herls\",\n \"herma\",\n \"herms\",\n \"herns\",\n \"heros\",\n \"herry\",\n \"herse\",\n \"hertz\",\n \"herye\",\n \"hesps\",\n \"hests\",\n \"hetes\",\n \"heths\",\n \"heuch\",\n \"heugh\",\n \"hevea\",\n \"hewed\",\n \"hewer\",\n \"hewgh\",\n \"hexad\",\n \"hexed\",\n \"hexer\",\n \"hexes\",\n \"hexyl\",\n \"heyed\",\n \"hiant\",\n \"hicks\",\n \"hided\",\n \"hider\",\n \"hides\",\n \"hiems\",\n \"highs\",\n \"hight\",\n \"hijab\",\n \"hijra\",\n \"hiked\",\n \"hiker\",\n \"hikes\",\n \"hikoi\",\n \"hilar\",\n \"hilch\",\n \"hillo\",\n \"hills\",\n \"hilts\",\n \"hilum\",\n \"hilus\",\n \"himbo\",\n \"hinau\",\n \"hinds\",\n \"hings\",\n \"hinky\",\n \"hinny\",\n \"hints\",\n \"hiois\",\n \"hiply\",\n \"hired\",\n \"hiree\",\n \"hirer\",\n \"hires\",\n \"hissy\",\n \"hists\",\n \"hithe\",\n \"hived\",\n \"hiver\",\n \"hives\",\n \"hizen\",\n \"hoaed\",\n \"hoagy\",\n \"hoars\",\n \"hoary\",\n \"hoast\",\n \"hobos\",\n \"hocks\",\n \"hocus\",\n \"hodad\",\n \"hodja\",\n \"hoers\",\n \"hogan\",\n \"hogen\",\n \"hoggs\",\n \"hoghs\",\n \"hohed\",\n \"hoick\",\n \"hoied\",\n \"hoiks\",\n \"hoing\",\n \"hoise\",\n \"hokas\",\n \"hoked\",\n \"hokes\",\n \"hokey\",\n \"hokis\",\n \"hokku\",\n \"hokum\",\n \"holds\",\n \"holed\",\n \"holes\",\n \"holey\",\n \"holks\",\n \"holla\",\n \"hollo\",\n \"holme\",\n \"holms\",\n \"holon\",\n \"holos\",\n \"holts\",\n \"homas\",\n \"homed\",\n \"homes\",\n \"homey\",\n \"homie\",\n \"homme\",\n \"homos\",\n \"honan\",\n \"honda\",\n \"honds\",\n \"honed\",\n \"honer\",\n \"hones\",\n \"hongi\",\n \"hongs\",\n \"honks\",\n \"honky\",\n \"hooch\",\n \"hoods\",\n \"hoody\",\n \"hooey\",\n \"hoofs\",\n \"hooka\",\n \"hooks\",\n \"hooky\",\n \"hooly\",\n \"hoons\",\n \"hoops\",\n \"hoord\",\n \"hoors\",\n \"hoosh\",\n \"hoots\",\n \"hooty\",\n \"hoove\",\n \"hopak\",\n \"hoped\",\n \"hoper\",\n \"hopes\",\n \"hoppy\",\n \"horah\",\n \"horal\",\n \"horas\",\n \"horis\",\n \"horks\",\n \"horme\",\n \"horns\",\n \"horst\",\n \"horsy\",\n \"hosed\",\n \"hosel\",\n \"hosen\",\n \"hoser\",\n \"hoses\",\n \"hosey\",\n \"hosta\",\n \"hosts\",\n \"hotch\",\n \"hoten\",\n \"hotty\",\n \"houff\",\n \"houfs\",\n \"hough\",\n \"houri\",\n \"hours\",\n \"houts\",\n \"hovea\",\n \"hoved\",\n \"hoven\",\n \"hoves\",\n \"howbe\",\n \"howes\",\n \"howff\",\n \"howfs\",\n \"howks\",\n \"howls\",\n \"howre\",\n \"howso\",\n \"hoxed\",\n \"hoxes\",\n \"hoyas\",\n \"hoyed\",\n \"hoyle\",\n \"hubby\",\n \"hucks\",\n \"hudna\",\n \"hudud\",\n \"huers\",\n \"huffs\",\n \"huffy\",\n \"huger\",\n \"huggy\",\n \"huhus\",\n \"huias\",\n \"hulas\",\n \"hules\",\n \"hulks\",\n \"hulky\",\n \"hullo\",\n \"hulls\",\n \"hully\",\n \"humas\",\n \"humfs\",\n \"humic\",\n \"humps\",\n \"humpy\",\n \"hunks\",\n \"hunts\",\n \"hurds\",\n \"hurls\",\n \"hurly\",\n \"hurra\",\n \"hurst\",\n \"hurts\",\n \"hushy\",\n \"husks\",\n \"husos\",\n \"hutia\",\n \"huzza\",\n \"huzzy\",\n \"hwyls\",\n \"hydra\",\n \"hyens\",\n \"hygge\",\n \"hying\",\n \"hykes\",\n \"hylas\",\n \"hyleg\",\n \"hyles\",\n \"hylic\",\n \"hymns\",\n \"hynde\",\n \"hyoid\",\n \"hyped\",\n \"hypes\",\n \"hypha\",\n \"hyphy\",\n \"hypos\",\n \"hyrax\",\n \"hyson\",\n \"hythe\",\n \"iambi\",\n \"iambs\",\n \"ibrik\",\n \"icers\",\n \"iched\",\n \"iches\",\n \"ichor\",\n \"icier\",\n \"icker\",\n \"ickle\",\n \"icons\",\n \"ictal\",\n \"ictic\",\n \"ictus\",\n \"idant\",\n \"ideas\",\n \"idees\",\n \"ident\",\n \"idled\",\n \"idles\",\n \"idola\",\n \"idols\",\n \"idyls\",\n \"iftar\",\n \"igapo\",\n \"igged\",\n \"iglus\",\n \"ihram\",\n \"ikans\",\n \"ikats\",\n \"ikons\",\n \"ileac\",\n \"ileal\",\n \"ileum\",\n \"ileus\",\n \"iliad\",\n \"ilial\",\n \"ilium\",\n \"iller\",\n \"illth\",\n \"imago\",\n \"imams\",\n \"imari\",\n \"imaum\",\n \"imbar\",\n \"imbed\",\n \"imide\",\n \"imido\",\n \"imids\",\n \"imine\",\n \"imino\",\n \"immew\",\n \"immit\",\n \"immix\",\n \"imped\",\n \"impis\",\n \"impot\",\n \"impro\",\n \"imshi\",\n \"imshy\",\n \"inapt\",\n \"inarm\",\n \"inbye\",\n \"incel\",\n \"incle\",\n \"incog\",\n \"incus\",\n \"incut\",\n \"indew\",\n \"india\",\n \"indie\",\n \"indol\",\n \"indow\",\n \"indri\",\n \"indue\",\n \"inerm\",\n \"infix\",\n \"infos\",\n \"infra\",\n \"ingan\",\n \"ingle\",\n \"inion\",\n \"inked\",\n \"inker\",\n \"inkle\",\n \"inned\",\n \"innit\",\n \"inorb\",\n \"inrun\",\n \"inset\",\n \"inspo\",\n \"intel\",\n \"intil\",\n \"intis\",\n \"intra\",\n \"inula\",\n \"inure\",\n \"inurn\",\n \"inust\",\n \"invar\",\n \"inwit\",\n \"iodic\",\n \"iodid\",\n \"iodin\",\n \"iotas\",\n \"ippon\",\n \"irade\",\n \"irids\",\n \"iring\",\n \"irked\",\n \"iroko\",\n \"irone\",\n \"irons\",\n \"isbas\",\n \"ishes\",\n \"isled\",\n \"isles\",\n \"isnae\",\n \"issei\",\n \"istle\",\n \"items\",\n \"ither\",\n \"ivied\",\n \"ivies\",\n \"ixias\",\n \"ixnay\",\n \"ixora\",\n \"ixtle\",\n \"izard\",\n \"izars\",\n \"izzat\",\n \"jaaps\",\n \"jabot\",\n \"jacal\",\n \"jacks\",\n \"jacky\",\n \"jaded\",\n \"jades\",\n \"jafas\",\n \"jaffa\",\n \"jagas\",\n \"jager\",\n \"jaggs\",\n \"jaggy\",\n \"jagir\",\n \"jagra\",\n \"jails\",\n \"jaker\",\n \"jakes\",\n \"jakey\",\n \"jalap\",\n \"jalop\",\n \"jambe\",\n \"jambo\",\n \"jambs\",\n \"jambu\",\n \"james\",\n \"jammy\",\n \"jamon\",\n \"janes\",\n \"janns\",\n \"janny\",\n \"janty\",\n \"japan\",\n \"japed\",\n \"japer\",\n \"japes\",\n \"jarks\",\n \"jarls\",\n \"jarps\",\n \"jarta\",\n \"jarul\",\n \"jasey\",\n \"jaspe\",\n \"jasps\",\n \"jatos\",\n \"jauks\",\n \"jaups\",\n \"javas\",\n \"javel\",\n \"jawan\",\n \"jawed\",\n \"jaxie\",\n \"jeans\",\n \"jeats\",\n \"jebel\",\n \"jedis\",\n \"jeels\",\n \"jeely\",\n \"jeeps\",\n \"jeers\",\n \"jeeze\",\n \"jefes\",\n \"jeffs\",\n \"jehad\",\n \"jehus\",\n \"jelab\",\n \"jello\",\n \"jells\",\n \"jembe\",\n \"jemmy\",\n \"jenny\",\n \"jeons\",\n \"jerid\",\n \"jerks\",\n \"jerry\",\n \"jesse\",\n \"jests\",\n \"jesus\",\n \"jetes\",\n \"jeton\",\n \"jeune\",\n \"jewed\",\n \"jewie\",\n \"jhala\",\n \"jiaos\",\n \"jibba\",\n \"jibbs\",\n \"jibed\",\n \"jiber\",\n \"jibes\",\n \"jiffs\",\n \"jiggy\",\n \"jigot\",\n \"jihad\",\n \"jills\",\n \"jilts\",\n \"jimmy\",\n \"jimpy\",\n \"jingo\",\n \"jinks\",\n \"jinne\",\n \"jinni\",\n \"jinns\",\n \"jirds\",\n \"jirga\",\n \"jirre\",\n \"jisms\",\n \"jived\",\n \"jiver\",\n \"jives\",\n \"jivey\",\n \"jnana\",\n \"jobed\",\n \"jobes\",\n \"jocko\",\n \"jocks\",\n \"jocky\",\n \"jocos\",\n \"jodel\",\n \"joeys\",\n \"johns\",\n \"joins\",\n \"joked\",\n \"jokes\",\n \"jokey\",\n \"jokol\",\n \"joled\",\n \"joles\",\n \"jolls\",\n \"jolts\",\n \"jolty\",\n \"jomon\",\n \"jomos\",\n \"jones\",\n \"jongs\",\n \"jonty\",\n \"jooks\",\n \"joram\",\n \"jorum\",\n \"jotas\",\n \"jotty\",\n \"jotun\",\n \"joual\",\n \"jougs\",\n \"jouks\",\n \"joule\",\n \"jours\",\n \"jowar\",\n \"jowed\",\n \"jowls\",\n \"jowly\",\n \"joyed\",\n \"jubas\",\n \"jubes\",\n \"jucos\",\n \"judas\",\n \"judgy\",\n \"judos\",\n \"jugal\",\n \"jugum\",\n \"jujus\",\n \"juked\",\n \"jukes\",\n \"jukus\",\n \"julep\",\n \"jumar\",\n \"jumby\",\n \"jumps\",\n \"junco\",\n \"junks\",\n \"junky\",\n \"jupes\",\n \"jupon\",\n \"jural\",\n \"jurat\",\n \"jurel\",\n \"jures\",\n \"justs\",\n \"jutes\",\n \"jutty\",\n \"juves\",\n \"juvie\",\n \"kaama\",\n \"kabab\",\n \"kabar\",\n \"kabob\",\n \"kacha\",\n \"kacks\",\n \"kadai\",\n \"kades\",\n \"kadis\",\n \"kafir\",\n \"kagos\",\n \"kagus\",\n \"kahal\",\n \"kaiak\",\n \"kaids\",\n \"kaies\",\n \"kaifs\",\n \"kaika\",\n \"kaiks\",\n \"kails\",\n \"kaims\",\n \"kaing\",\n \"kains\",\n \"kakas\",\n \"kakis\",\n \"kalam\",\n \"kales\",\n \"kalif\",\n \"kalis\",\n \"kalpa\",\n \"kamas\",\n \"kames\",\n \"kamik\",\n \"kamis\",\n \"kamme\",\n \"kanae\",\n \"kanas\",\n \"kandy\",\n \"kaneh\",\n \"kanes\",\n \"kanga\",\n \"kangs\",\n \"kanji\",\n \"kants\",\n \"kanzu\",\n \"kaons\",\n \"kapas\",\n \"kaphs\",\n \"kapok\",\n \"kapow\",\n \"kapus\",\n \"kaput\",\n \"karas\",\n \"karat\",\n \"karks\",\n \"karns\",\n \"karoo\",\n \"karos\",\n \"karri\",\n \"karst\",\n \"karsy\",\n \"karts\",\n \"karzy\",\n \"kasha\",\n \"kasme\",\n \"katal\",\n \"katas\",\n \"katis\",\n \"katti\",\n \"kaugh\",\n \"kauri\",\n \"kauru\",\n \"kaury\",\n \"kaval\",\n \"kavas\",\n \"kawas\",\n \"kawau\",\n \"kawed\",\n \"kayle\",\n \"kayos\",\n \"kazis\",\n \"kazoo\",\n \"kbars\",\n \"kebar\",\n \"kebob\",\n \"kecks\",\n \"kedge\",\n \"kedgy\",\n \"keech\",\n \"keefs\",\n \"keeks\",\n \"keels\",\n \"keema\",\n \"keeno\",\n \"keens\",\n \"keeps\",\n \"keets\",\n \"keeve\",\n \"kefir\",\n \"kehua\",\n \"keirs\",\n \"kelep\",\n \"kelim\",\n \"kells\",\n \"kelly\",\n \"kelps\",\n \"kelpy\",\n \"kelts\",\n \"kelty\",\n \"kembo\",\n \"kembs\",\n \"kemps\",\n \"kempt\",\n \"kempy\",\n \"kenaf\",\n \"kench\",\n \"kendo\",\n \"kenos\",\n \"kente\",\n \"kents\",\n \"kepis\",\n \"kerbs\",\n \"kerel\",\n \"kerfs\",\n \"kerky\",\n \"kerma\",\n \"kerne\",\n \"kerns\",\n \"keros\",\n \"kerry\",\n \"kerve\",\n \"kesar\",\n \"kests\",\n \"ketas\",\n \"ketch\",\n \"ketes\",\n \"ketol\",\n \"kevel\",\n \"kevil\",\n \"kexes\",\n \"keyed\",\n \"keyer\",\n \"khadi\",\n \"khafs\",\n \"khans\",\n \"khaph\",\n \"khats\",\n \"khaya\",\n \"khazi\",\n \"kheda\",\n \"kheth\",\n \"khets\",\n \"khoja\",\n \"khors\",\n \"khoum\",\n \"khuds\",\n \"kiaat\",\n \"kiack\",\n \"kiang\",\n \"kibbe\",\n \"kibbi\",\n \"kibei\",\n \"kibes\",\n \"kibla\",\n \"kicks\",\n \"kicky\",\n \"kiddo\",\n \"kiddy\",\n \"kidel\",\n \"kidge\",\n \"kiefs\",\n \"kiers\",\n \"kieve\",\n \"kievs\",\n \"kight\",\n \"kikes\",\n \"kikoi\",\n \"kiley\",\n \"kilim\",\n \"kills\",\n \"kilns\",\n \"kilos\",\n \"kilps\",\n \"kilts\",\n \"kilty\",\n \"kimbo\",\n \"kinas\",\n \"kinda\",\n \"kinds\",\n \"kindy\",\n \"kines\",\n \"kings\",\n \"kinin\",\n \"kinks\",\n \"kinos\",\n \"kiore\",\n \"kipes\",\n \"kippa\",\n \"kipps\",\n \"kirby\",\n \"kirks\",\n \"kirns\",\n \"kirri\",\n \"kisan\",\n \"kissy\",\n \"kists\",\n \"kited\",\n \"kiter\",\n \"kites\",\n \"kithe\",\n \"kiths\",\n \"kitul\",\n \"kivas\",\n \"kiwis\",\n \"klang\",\n \"klaps\",\n \"klett\",\n \"klick\",\n \"klieg\",\n \"kliks\",\n \"klong\",\n \"kloof\",\n \"kluge\",\n \"klutz\",\n \"knags\",\n \"knaps\",\n \"knarl\",\n \"knars\",\n \"knaur\",\n \"knawe\",\n \"knees\",\n \"knell\",\n \"knish\",\n \"knits\",\n \"knive\",\n \"knobs\",\n \"knops\",\n \"knosp\",\n \"knots\",\n \"knout\",\n \"knowe\",\n \"knows\",\n \"knubs\",\n \"knurl\",\n \"knurr\",\n \"knurs\",\n \"knuts\",\n \"koans\",\n \"koaps\",\n \"koban\",\n \"kobos\",\n \"koels\",\n \"koffs\",\n \"kofta\",\n \"kogal\",\n \"kohas\",\n \"kohen\",\n \"kohls\",\n \"koine\",\n \"kojis\",\n \"kokam\",\n \"kokas\",\n \"koker\",\n \"kokra\",\n \"kokum\",\n \"kolas\",\n \"kolos\",\n \"kombu\",\n \"konbu\",\n \"kondo\",\n \"konks\",\n \"kooks\",\n \"kooky\",\n \"koori\",\n \"kopek\",\n \"kophs\",\n \"kopje\",\n \"koppa\",\n \"korai\",\n \"koras\",\n \"korat\",\n \"kores\",\n \"korma\",\n \"koros\",\n \"korun\",\n \"korus\",\n \"koses\",\n \"kotch\",\n \"kotos\",\n \"kotow\",\n \"koura\",\n \"kraal\",\n \"krabs\",\n \"kraft\",\n \"krais\",\n \"krait\",\n \"krang\",\n \"krans\",\n \"kranz\",\n \"kraut\",\n \"krays\",\n \"kreep\",\n \"kreng\",\n \"krewe\",\n \"krona\",\n \"krone\",\n \"kroon\",\n \"krubi\",\n \"krunk\",\n \"ksars\",\n \"kubie\",\n \"kudos\",\n \"kudus\",\n \"kudzu\",\n \"kufis\",\n \"kugel\",\n \"kuias\",\n \"kukri\",\n \"kukus\",\n \"kulak\",\n \"kulan\",\n \"kulas\",\n \"kulfi\",\n \"kumis\",\n \"kumys\",\n \"kuris\",\n \"kurre\",\n \"kurta\",\n \"kurus\",\n \"kusso\",\n \"kutas\",\n \"kutch\",\n \"kutis\",\n \"kutus\",\n \"kuzus\",\n \"kvass\",\n \"kvell\",\n \"kwela\",\n \"kyack\",\n \"kyaks\",\n \"kyang\",\n \"kyars\",\n \"kyats\",\n \"kybos\",\n \"kydst\",\n \"kyles\",\n \"kylie\",\n \"kylin\",\n \"kylix\",\n \"kyloe\",\n \"kynde\",\n \"kynds\",\n \"kypes\",\n \"kyrie\",\n \"kytes\",\n \"kythe\",\n \"laari\",\n \"labda\",\n \"labia\",\n \"labis\",\n \"labra\",\n \"laced\",\n \"lacer\",\n \"laces\",\n \"lacet\",\n \"lacey\",\n \"lacks\",\n \"laddy\",\n \"laded\",\n \"lader\",\n \"lades\",\n \"laers\",\n \"laevo\",\n \"lagan\",\n \"lahal\",\n \"lahar\",\n \"laich\",\n \"laics\",\n \"laids\",\n \"laigh\",\n \"laika\",\n \"laiks\",\n \"laird\",\n \"lairs\",\n \"lairy\",\n \"laith\",\n \"laity\",\n \"laked\",\n \"laker\",\n \"lakes\",\n \"lakhs\",\n \"lakin\",\n \"laksa\",\n \"laldy\",\n \"lalls\",\n \"lamas\",\n \"lambs\",\n \"lamby\",\n \"lamed\",\n \"lamer\",\n \"lames\",\n \"lamia\",\n \"lammy\",\n \"lamps\",\n \"lanai\",\n \"lanas\",\n \"lanch\",\n \"lande\",\n \"lands\",\n \"lanes\",\n \"lanks\",\n \"lants\",\n \"lapin\",\n \"lapis\",\n \"lapje\",\n \"larch\",\n \"lards\",\n \"lardy\",\n \"laree\",\n \"lares\",\n \"largo\",\n \"laris\",\n \"larks\",\n \"larky\",\n \"larns\",\n \"larnt\",\n \"larum\",\n \"lased\",\n \"laser\",\n \"lases\",\n \"lassi\",\n \"lassu\",\n \"lassy\",\n \"lasts\",\n \"latah\",\n \"lated\",\n \"laten\",\n \"latex\",\n \"lathi\",\n \"laths\",\n \"lathy\",\n \"latke\",\n \"latus\",\n \"lauan\",\n \"lauch\",\n \"lauds\",\n \"laufs\",\n \"laund\",\n \"laura\",\n \"laval\",\n \"lavas\",\n \"laved\",\n \"laver\",\n \"laves\",\n \"lavra\",\n \"lavvy\",\n \"lawed\",\n \"lawer\",\n \"lawin\",\n \"lawks\",\n \"lawns\",\n \"lawny\",\n \"laxed\",\n \"laxer\",\n \"laxes\",\n \"laxly\",\n \"layed\",\n \"layin\",\n \"layup\",\n \"lazar\",\n \"lazed\",\n \"lazes\",\n \"lazos\",\n \"lazzi\",\n \"lazzo\",\n \"leads\",\n \"leady\",\n \"leafs\",\n \"leaks\",\n \"leams\",\n \"leans\",\n \"leany\",\n \"leaps\",\n \"leare\",\n \"lears\",\n \"leary\",\n \"leats\",\n \"leavy\",\n \"leaze\",\n \"leben\",\n \"leccy\",\n \"ledes\",\n \"ledgy\",\n \"ledum\",\n \"leear\",\n \"leeks\",\n \"leeps\",\n \"leers\",\n \"leese\",\n \"leets\",\n \"leeze\",\n \"lefte\",\n \"lefts\",\n \"leger\",\n \"leges\",\n \"legge\",\n \"leggo\",\n \"legit\",\n \"lehrs\",\n \"lehua\",\n \"leirs\",\n \"leish\",\n \"leman\",\n \"lemed\",\n \"lemel\",\n \"lemes\",\n \"lemma\",\n \"lemme\",\n \"lends\",\n \"lenes\",\n \"lengs\",\n \"lenis\",\n \"lenos\",\n \"lense\",\n \"lenti\",\n \"lento\",\n \"leone\",\n \"lepid\",\n \"lepra\",\n \"lepta\",\n \"lered\",\n \"leres\",\n \"lerps\",\n \"lesbo\",\n \"leses\",\n \"lests\",\n \"letch\",\n \"lethe\",\n \"letup\",\n \"leuch\",\n \"leuco\",\n \"leuds\",\n \"leugh\",\n \"levas\",\n \"levee\",\n \"leves\",\n \"levin\",\n \"levis\",\n \"lewis\",\n \"lexes\",\n \"lexis\",\n \"lezes\",\n \"lezza\",\n \"lezzy\",\n \"liana\",\n \"liane\",\n \"liang\",\n \"liard\",\n \"liars\",\n \"liart\",\n \"liber\",\n \"libra\",\n \"libri\",\n \"lichi\",\n \"licht\",\n \"licit\",\n \"licks\",\n \"lidar\",\n \"lidos\",\n \"liefs\",\n \"liens\",\n \"liers\",\n \"lieus\",\n \"lieve\",\n \"lifer\",\n \"lifes\",\n \"lifts\",\n \"ligan\",\n \"liger\",\n \"ligge\",\n \"ligne\",\n \"liked\",\n \"liker\",\n \"likes\",\n \"likin\",\n \"lills\",\n \"lilos\",\n \"lilts\",\n \"liman\",\n \"limas\",\n \"limax\",\n \"limba\",\n \"limbi\",\n \"limbs\",\n \"limby\",\n \"limed\",\n \"limen\",\n \"limes\",\n \"limey\",\n \"limma\",\n \"limns\",\n \"limos\",\n \"limpa\",\n \"limps\",\n \"linac\",\n \"linch\",\n \"linds\",\n \"lindy\",\n \"lined\",\n \"lines\",\n \"liney\",\n \"linga\",\n \"lings\",\n \"lingy\",\n \"linin\",\n \"links\",\n \"linky\",\n \"linns\",\n \"linny\",\n \"linos\",\n \"lints\",\n \"linty\",\n \"linum\",\n \"linux\",\n \"lions\",\n \"lipas\",\n \"lipes\",\n \"lipin\",\n \"lipos\",\n \"lippy\",\n \"liras\",\n \"lirks\",\n \"lirot\",\n \"lisks\",\n \"lisle\",\n \"lisps\",\n \"lists\",\n \"litai\",\n \"litas\",\n \"lited\",\n \"liter\",\n \"lites\",\n \"litho\",\n \"liths\",\n \"litre\",\n \"lived\",\n \"liven\",\n \"lives\",\n \"livor\",\n \"livre\",\n \"llano\",\n \"loach\",\n \"loads\",\n \"loafs\",\n \"loams\",\n \"loans\",\n \"loast\",\n \"loave\",\n \"lobar\",\n \"lobed\",\n \"lobes\",\n \"lobos\",\n \"lobus\",\n \"loche\",\n \"lochs\",\n \"locie\",\n \"locis\",\n \"locks\",\n \"locos\",\n \"locum\",\n \"loden\",\n \"lodes\",\n \"loess\",\n \"lofts\",\n \"logan\",\n \"loges\",\n \"loggy\",\n \"logia\",\n \"logie\",\n \"logoi\",\n \"logon\",\n \"logos\",\n \"lohan\",\n \"loids\",\n \"loins\",\n \"loipe\",\n \"loirs\",\n \"lokes\",\n \"lolls\",\n \"lolly\",\n \"lolog\",\n \"lomas\",\n \"lomed\",\n \"lomes\",\n \"loner\",\n \"longa\",\n \"longe\",\n \"longs\",\n \"looby\",\n \"looed\",\n \"looey\",\n \"loofa\",\n \"loofs\",\n \"looie\",\n \"looks\",\n \"looky\",\n \"looms\",\n \"loons\",\n \"loony\",\n \"loops\",\n \"loord\",\n \"loots\",\n \"loped\",\n \"loper\",\n \"lopes\",\n \"loppy\",\n \"loral\",\n \"loran\",\n \"lords\",\n \"lordy\",\n \"lorel\",\n \"lores\",\n \"loric\",\n \"loris\",\n \"losed\",\n \"losel\",\n \"losen\",\n \"loses\",\n \"lossy\",\n \"lotah\",\n \"lotas\",\n \"lotes\",\n \"lotic\",\n \"lotos\",\n \"lotsa\",\n \"lotta\",\n \"lotte\",\n \"lotto\",\n \"lotus\",\n \"loued\",\n \"lough\",\n \"louie\",\n \"louis\",\n \"louma\",\n \"lound\",\n \"louns\",\n \"loupe\",\n \"loups\",\n \"loure\",\n \"lours\",\n \"loury\",\n \"louts\",\n \"lovat\",\n \"loved\",\n \"loves\",\n \"lovey\",\n \"lovie\",\n \"lowan\",\n \"lowed\",\n \"lowes\",\n \"lownd\",\n \"lowne\",\n \"lowns\",\n \"lowps\",\n \"lowry\",\n \"lowse\",\n \"lowts\",\n \"loxed\",\n \"loxes\",\n \"lozen\",\n \"luach\",\n \"luaus\",\n \"lubed\",\n \"lubes\",\n \"lubra\",\n \"luces\",\n \"lucks\",\n \"lucre\",\n \"ludes\",\n \"ludic\",\n \"ludos\",\n \"luffa\",\n \"luffs\",\n \"luged\",\n \"luger\",\n \"luges\",\n \"lulls\",\n \"lulus\",\n \"lumas\",\n \"lumbi\",\n \"lumme\",\n \"lummy\",\n \"lumps\",\n \"lunas\",\n \"lunes\",\n \"lunet\",\n \"lungi\",\n \"lungs\",\n \"lunks\",\n \"lunts\",\n \"lupin\",\n \"lured\",\n \"lurer\",\n \"lures\",\n \"lurex\",\n \"lurgi\",\n \"lurgy\",\n \"lurks\",\n \"lurry\",\n \"lurve\",\n \"luser\",\n \"lushy\",\n \"lusks\",\n \"lusts\",\n \"lusus\",\n \"lutea\",\n \"luted\",\n \"luter\",\n \"lutes\",\n \"luvvy\",\n \"luxed\",\n \"luxer\",\n \"luxes\",\n \"lweis\",\n \"lyams\",\n \"lyard\",\n \"lyart\",\n \"lyase\",\n \"lycea\",\n \"lycee\",\n \"lycra\",\n \"lymes\",\n \"lynes\",\n \"lyres\",\n \"lysed\",\n \"lyses\",\n \"lysin\",\n \"lysis\",\n \"lysol\",\n \"lyssa\",\n \"lyted\",\n \"lytes\",\n \"lythe\",\n \"lytic\",\n \"lytta\",\n \"maaed\",\n \"maare\",\n \"maars\",\n \"mabes\",\n \"macas\",\n \"maced\",\n \"macer\",\n \"maces\",\n \"mache\",\n \"machi\",\n \"machs\",\n \"macks\",\n \"macle\",\n \"macon\",\n \"madge\",\n \"madid\",\n \"madre\",\n \"maerl\",\n \"mafic\",\n \"mages\",\n \"maggs\",\n \"magot\",\n \"magus\",\n \"mahoe\",\n \"mahua\",\n \"mahwa\",\n \"maids\",\n \"maiko\",\n \"maiks\",\n \"maile\",\n \"maill\",\n \"mails\",\n \"maims\",\n \"mains\",\n \"maire\",\n \"mairs\",\n \"maise\",\n \"maist\",\n \"makar\",\n \"makes\",\n \"makis\",\n \"makos\",\n \"malam\",\n \"malar\",\n \"malas\",\n \"malax\",\n \"males\",\n \"malic\",\n \"malik\",\n \"malis\",\n \"malls\",\n \"malms\",\n \"malmy\",\n \"malts\",\n \"malty\",\n \"malus\",\n \"malva\",\n \"malwa\",\n \"mamas\",\n \"mamba\",\n \"mamee\",\n \"mamey\",\n \"mamie\",\n \"manas\",\n \"manat\",\n \"mandi\",\n \"maneb\",\n \"maned\",\n \"maneh\",\n \"manes\",\n \"manet\",\n \"mangs\",\n \"manis\",\n \"manky\",\n \"manna\",\n \"manos\",\n \"manse\",\n \"manta\",\n \"manto\",\n \"manty\",\n \"manul\",\n \"manus\",\n \"mapau\",\n \"maqui\",\n \"marae\",\n \"marah\",\n \"maras\",\n \"marcs\",\n \"mardy\",\n \"mares\",\n \"marge\",\n \"margs\",\n \"maria\",\n \"marid\",\n \"marka\",\n \"marks\",\n \"marle\",\n \"marls\",\n \"marly\",\n \"marms\",\n \"maron\",\n \"maror\",\n \"marra\",\n \"marri\",\n \"marse\",\n \"marts\",\n \"marvy\",\n \"masas\",\n \"mased\",\n \"maser\",\n \"mases\",\n \"mashy\",\n \"masks\",\n \"massa\",\n \"massy\",\n \"masts\",\n \"masty\",\n \"masus\",\n \"matai\",\n \"mated\",\n \"mater\",\n \"mates\",\n \"maths\",\n \"matin\",\n \"matlo\",\n \"matte\",\n \"matts\",\n \"matza\",\n \"matzo\",\n \"mauby\",\n \"mauds\",\n \"mauls\",\n \"maund\",\n \"mauri\",\n \"mausy\",\n \"mauts\",\n \"mauzy\",\n \"maven\",\n \"mavie\",\n \"mavin\",\n \"mavis\",\n \"mawed\",\n \"mawks\",\n \"mawky\",\n \"mawns\",\n \"mawrs\",\n \"maxed\",\n \"maxes\",\n \"maxis\",\n \"mayan\",\n \"mayas\",\n \"mayed\",\n \"mayos\",\n \"mayst\",\n \"mazed\",\n \"mazer\",\n \"mazes\",\n \"mazey\",\n \"mazut\",\n \"mbira\",\n \"meads\",\n \"meals\",\n \"meane\",\n \"means\",\n \"meany\",\n \"meare\",\n \"mease\",\n \"meath\",\n \"meats\",\n \"mebos\",\n \"mechs\",\n \"mecks\",\n \"medii\",\n \"medle\",\n \"meeds\",\n \"meers\",\n \"meets\",\n \"meffs\",\n \"meins\",\n \"meint\",\n \"meiny\",\n \"meith\",\n \"mekka\",\n \"melas\",\n \"melba\",\n \"melds\",\n \"melic\",\n \"melik\",\n \"mells\",\n \"melts\",\n \"melty\",\n \"memes\",\n \"memos\",\n \"menad\",\n \"mends\",\n \"mened\",\n \"menes\",\n \"menge\",\n \"mengs\",\n \"mensa\",\n \"mense\",\n \"mensh\",\n \"menta\",\n \"mento\",\n \"menus\",\n \"meous\",\n \"meows\",\n \"merch\",\n \"mercs\",\n \"merde\",\n \"mered\",\n \"merel\",\n \"merer\",\n \"meres\",\n \"meril\",\n \"meris\",\n \"merks\",\n \"merle\",\n \"merls\",\n \"merse\",\n \"mesal\",\n \"mesas\",\n \"mesel\",\n \"meses\",\n \"meshy\",\n \"mesic\",\n \"mesne\",\n \"meson\",\n \"messy\",\n \"mesto\",\n \"meted\",\n \"metes\",\n \"metho\",\n \"meths\",\n \"metic\",\n \"metif\",\n \"metis\",\n \"metol\",\n \"metre\",\n \"meuse\",\n \"meved\",\n \"meves\",\n \"mewed\",\n \"mewls\",\n \"meynt\",\n \"mezes\",\n \"mezze\",\n \"mezzo\",\n \"mhorr\",\n \"miaou\",\n \"miaow\",\n \"miasm\",\n \"miaul\",\n \"micas\",\n \"miche\",\n \"micht\",\n \"micks\",\n \"micky\",\n \"micos\",\n \"micra\",\n \"middy\",\n \"midgy\",\n \"midis\",\n \"miens\",\n \"mieve\",\n \"miffs\",\n \"miffy\",\n \"mifty\",\n \"miggs\",\n \"mihas\",\n \"mihis\",\n \"miked\",\n \"mikes\",\n \"mikra\",\n \"mikva\",\n \"milch\",\n \"milds\",\n \"miler\",\n \"miles\",\n \"milfs\",\n \"milia\",\n \"milko\",\n \"milks\",\n \"mille\",\n \"mills\",\n \"milor\",\n \"milos\",\n \"milpa\",\n \"milts\",\n \"milty\",\n \"miltz\",\n \"mimed\",\n \"mimeo\",\n \"mimer\",\n \"mimes\",\n \"mimsy\",\n \"minae\",\n \"minar\",\n \"minas\",\n \"mincy\",\n \"minds\",\n \"mined\",\n \"mines\",\n \"minge\",\n \"mings\",\n \"mingy\",\n \"minis\",\n \"minke\",\n \"minks\",\n \"minny\",\n \"minos\",\n \"mints\",\n \"mired\",\n \"mires\",\n \"mirex\",\n \"mirid\",\n \"mirin\",\n \"mirks\",\n \"mirky\",\n \"mirly\",\n \"miros\",\n \"mirvs\",\n \"mirza\",\n \"misch\",\n \"misdo\",\n \"mises\",\n \"misgo\",\n \"misos\",\n \"missa\",\n \"mists\",\n \"misty\",\n \"mitch\",\n \"miter\",\n \"mites\",\n \"mitis\",\n \"mitre\",\n \"mitts\",\n \"mixed\",\n \"mixen\",\n \"mixer\",\n \"mixes\",\n \"mixte\",\n \"mixup\",\n \"mizen\",\n \"mizzy\",\n \"mneme\",\n \"moans\",\n \"moats\",\n \"mobby\",\n \"mobes\",\n \"mobey\",\n \"mobie\",\n \"moble\",\n \"mochi\",\n \"mochs\",\n \"mochy\",\n \"mocks\",\n \"moder\",\n \"modes\",\n \"modge\",\n \"modii\",\n \"modus\",\n \"moers\",\n \"mofos\",\n \"moggy\",\n \"mohel\",\n \"mohos\",\n \"mohrs\",\n \"mohua\",\n \"mohur\",\n \"moile\",\n \"moils\",\n \"moira\",\n \"moire\",\n \"moits\",\n \"mojos\",\n \"mokes\",\n \"mokis\",\n \"mokos\",\n \"molal\",\n \"molas\",\n \"molds\",\n \"moled\",\n \"moles\",\n \"molla\",\n \"molls\",\n \"molly\",\n \"molto\",\n \"molts\",\n \"molys\",\n \"momes\",\n \"momma\",\n \"mommy\",\n \"momus\",\n \"monad\",\n \"monal\",\n \"monas\",\n \"monde\",\n \"mondo\",\n \"moner\",\n \"mongo\",\n \"mongs\",\n \"monic\",\n \"monie\",\n \"monks\",\n \"monos\",\n \"monte\",\n \"monty\",\n \"moobs\",\n \"mooch\",\n \"moods\",\n \"mooed\",\n \"mooks\",\n \"moola\",\n \"mooli\",\n \"mools\",\n \"mooly\",\n \"moong\",\n \"moons\",\n \"moony\",\n \"moops\",\n \"moors\",\n \"moory\",\n \"moots\",\n \"moove\",\n \"moped\",\n \"moper\",\n \"mopes\",\n \"mopey\",\n \"moppy\",\n \"mopsy\",\n \"mopus\",\n \"morae\",\n \"moras\",\n \"morat\",\n \"moray\",\n \"morel\",\n \"mores\",\n \"moria\",\n \"morne\",\n \"morns\",\n \"morra\",\n \"morro\",\n \"morse\",\n \"morts\",\n \"mosed\",\n \"moses\",\n \"mosey\",\n \"mosks\",\n \"mosso\",\n \"moste\",\n \"mosts\",\n \"moted\",\n \"moten\",\n \"motes\",\n \"motet\",\n \"motey\",\n \"moths\",\n \"mothy\",\n \"motis\",\n \"motte\",\n \"motts\",\n \"motty\",\n \"motus\",\n \"motza\",\n \"mouch\",\n \"moues\",\n \"mould\",\n \"mouls\",\n \"moups\",\n \"moust\",\n \"mousy\",\n \"moved\",\n \"moves\",\n \"mowas\",\n \"mowed\",\n \"mowra\",\n \"moxas\",\n \"moxie\",\n \"moyas\",\n \"moyle\",\n \"moyls\",\n \"mozed\",\n \"mozes\",\n \"mozos\",\n \"mpret\",\n \"mucho\",\n \"mucic\",\n \"mucid\",\n \"mucin\",\n \"mucks\",\n \"mucor\",\n \"mucro\",\n \"mudge\",\n \"mudir\",\n \"mudra\",\n \"muffs\",\n \"mufti\",\n \"mugga\",\n \"muggs\",\n \"muggy\",\n \"muhly\",\n \"muids\",\n \"muils\",\n \"muirs\",\n \"muist\",\n \"mujik\",\n \"mulct\",\n \"muled\",\n \"mules\",\n \"muley\",\n \"mulga\",\n \"mulie\",\n \"mulla\",\n \"mulls\",\n \"mulse\",\n \"mulsh\",\n \"mumms\",\n \"mumps\",\n \"mumsy\",\n \"mumus\",\n \"munga\",\n \"munge\",\n \"mungo\",\n \"mungs\",\n \"munis\",\n \"munts\",\n \"muntu\",\n \"muons\",\n \"muras\",\n \"mured\",\n \"mures\",\n \"murex\",\n \"murid\",\n \"murks\",\n \"murls\",\n \"murly\",\n \"murra\",\n \"murre\",\n \"murri\",\n \"murrs\",\n \"murry\",\n \"murti\",\n \"murva\",\n \"musar\",\n \"musca\",\n \"mused\",\n \"muser\",\n \"muses\",\n \"muset\",\n \"musha\",\n \"musit\",\n \"musks\",\n \"musos\",\n \"musse\",\n \"mussy\",\n \"musth\",\n \"musts\",\n \"mutch\",\n \"muted\",\n \"muter\",\n \"mutes\",\n \"mutha\",\n \"mutis\",\n \"muton\",\n \"mutts\",\n \"muxed\",\n \"muxes\",\n \"muzak\",\n \"muzzy\",\n \"mvule\",\n \"myall\",\n \"mylar\",\n \"mynah\",\n \"mynas\",\n \"myoid\",\n \"myoma\",\n \"myope\",\n \"myops\",\n \"myopy\",\n \"mysid\",\n \"mythi\",\n \"myths\",\n \"mythy\",\n \"myxos\",\n \"mzees\",\n \"naams\",\n \"naans\",\n \"nabes\",\n \"nabis\",\n \"nabks\",\n \"nabla\",\n \"nabob\",\n \"nache\",\n \"nacho\",\n \"nacre\",\n \"nadas\",\n \"naeve\",\n \"naevi\",\n \"naffs\",\n \"nagas\",\n \"naggy\",\n \"nagor\",\n \"nahal\",\n \"naiad\",\n \"naifs\",\n \"naiks\",\n \"nails\",\n \"naira\",\n \"nairu\",\n \"naked\",\n \"naker\",\n \"nakfa\",\n \"nalas\",\n \"naled\",\n \"nalla\",\n \"named\",\n \"namer\",\n \"names\",\n \"namma\",\n \"namus\",\n \"nanas\",\n \"nance\",\n \"nancy\",\n \"nandu\",\n \"nanna\",\n \"nanos\",\n \"nanua\",\n \"napas\",\n \"naped\",\n \"napes\",\n \"napoo\",\n \"nappa\",\n \"nappe\",\n \"nappy\",\n \"naras\",\n \"narco\",\n \"narcs\",\n \"nards\",\n \"nares\",\n \"naric\",\n \"naris\",\n \"narks\",\n \"narky\",\n \"narre\",\n \"nashi\",\n \"natch\",\n \"nates\",\n \"natis\",\n \"natty\",\n \"nauch\",\n \"naunt\",\n \"navar\",\n \"naves\",\n \"navew\",\n \"navvy\",\n \"nawab\",\n \"nazes\",\n \"nazir\",\n \"nazis\",\n \"nduja\",\n \"neafe\",\n \"neals\",\n \"neaps\",\n \"nears\",\n \"neath\",\n \"neats\",\n \"nebek\",\n \"nebel\",\n \"necks\",\n \"neddy\",\n \"needs\",\n \"neeld\",\n \"neele\",\n \"neemb\",\n \"neems\",\n \"neeps\",\n \"neese\",\n \"neeze\",\n \"negro\",\n \"negus\",\n \"neifs\",\n \"neist\",\n \"neive\",\n \"nelis\",\n \"nelly\",\n \"nemas\",\n \"nemns\",\n \"nempt\",\n \"nenes\",\n \"neons\",\n \"neper\",\n \"nepit\",\n \"neral\",\n \"nerds\",\n \"nerka\",\n \"nerks\",\n \"nerol\",\n \"nerts\",\n \"nertz\",\n \"nervy\",\n \"nests\",\n \"netes\",\n \"netop\",\n \"netts\",\n \"netty\",\n \"neuks\",\n \"neume\",\n \"neums\",\n \"nevel\",\n \"neves\",\n \"nevus\",\n \"newbs\",\n \"newed\",\n \"newel\",\n \"newie\",\n \"newsy\",\n \"newts\",\n \"nexts\",\n \"nexus\",\n \"ngaio\",\n \"ngana\",\n \"ngati\",\n \"ngoma\",\n \"ngwee\",\n \"nicad\",\n \"nicht\",\n \"nicks\",\n \"nicol\",\n \"nidal\",\n \"nided\",\n \"nides\",\n \"nidor\",\n \"nidus\",\n \"niefs\",\n \"nieve\",\n \"nifes\",\n \"niffs\",\n \"niffy\",\n \"nifty\",\n \"niger\",\n \"nighs\",\n \"nihil\",\n \"nikab\",\n \"nikah\",\n \"nikau\",\n \"nills\",\n \"nimbi\",\n \"nimbs\",\n \"nimps\",\n \"niner\",\n \"nines\",\n \"ninon\",\n \"nipas\",\n \"nippy\",\n \"niqab\",\n \"nirls\",\n \"nirly\",\n \"nisei\",\n \"nisse\",\n \"nisus\",\n \"niter\",\n \"nites\",\n \"nitid\",\n \"niton\",\n \"nitre\",\n \"nitro\",\n \"nitry\",\n \"nitty\",\n \"nival\",\n \"nixed\",\n \"nixer\",\n \"nixes\",\n \"nixie\",\n \"nizam\",\n \"nkosi\",\n \"noahs\",\n \"nobby\",\n \"nocks\",\n \"nodal\",\n \"noddy\",\n \"nodes\",\n \"nodus\",\n \"noels\",\n \"noggs\",\n \"nohow\",\n \"noils\",\n \"noily\",\n \"noint\",\n \"noirs\",\n \"noles\",\n \"nolls\",\n \"nolos\",\n \"nomas\",\n \"nomen\",\n \"nomes\",\n \"nomic\",\n \"nomoi\",\n \"nomos\",\n \"nonas\",\n \"nonce\",\n \"nones\",\n \"nonet\",\n \"nongs\",\n \"nonis\",\n \"nonny\",\n \"nonyl\",\n \"noobs\",\n \"nooit\",\n \"nooks\",\n \"nooky\",\n \"noons\",\n \"noops\",\n \"nopal\",\n \"noria\",\n \"noris\",\n \"norks\",\n \"norma\",\n \"norms\",\n \"nosed\",\n \"noser\",\n \"noses\",\n \"notal\",\n \"noted\",\n \"noter\",\n \"notes\",\n \"notum\",\n \"nould\",\n \"noule\",\n \"nouls\",\n \"nouns\",\n \"nouny\",\n \"noups\",\n \"novae\",\n \"novas\",\n \"novum\",\n \"noway\",\n \"nowed\",\n \"nowls\",\n \"nowts\",\n \"nowty\",\n \"noxal\",\n \"noxes\",\n \"noyau\",\n \"noyed\",\n \"noyes\",\n \"nubby\",\n \"nubia\",\n \"nucha\",\n \"nuddy\",\n \"nuder\",\n \"nudes\",\n \"nudie\",\n \"nudzh\",\n \"nuffs\",\n \"nugae\",\n \"nuked\",\n \"nukes\",\n \"nulla\",\n \"nulls\",\n \"numbs\",\n \"numen\",\n \"nummy\",\n \"nunny\",\n \"nurds\",\n \"nurdy\",\n \"nurls\",\n \"nurrs\",\n \"nutso\",\n \"nutsy\",\n \"nyaff\",\n \"nyala\",\n \"nying\",\n \"nyssa\",\n \"oaked\",\n \"oaker\",\n \"oakum\",\n \"oared\",\n \"oases\",\n \"oasis\",\n \"oasts\",\n \"oaten\",\n \"oater\",\n \"oaths\",\n \"oaves\",\n \"obang\",\n \"obeah\",\n \"obeli\",\n \"obeys\",\n \"obias\",\n \"obied\",\n \"obiit\",\n \"obits\",\n \"objet\",\n \"oboes\",\n \"obole\",\n \"oboli\",\n \"obols\",\n \"occam\",\n \"ocher\",\n \"oches\",\n \"ochre\",\n \"ochry\",\n \"ocker\",\n \"ocrea\",\n \"octad\",\n \"octan\",\n \"octas\",\n \"octyl\",\n \"oculi\",\n \"odahs\",\n \"odals\",\n \"odeon\",\n \"odeum\",\n \"odism\",\n \"odist\",\n \"odium\",\n \"odors\",\n \"odour\",\n \"odyle\",\n \"odyls\",\n \"ofays\",\n \"offed\",\n \"offie\",\n \"oflag\",\n \"ofter\",\n \"ogams\",\n \"ogeed\",\n \"ogees\",\n \"oggin\",\n \"ogham\",\n \"ogive\",\n \"ogled\",\n \"ogler\",\n \"ogles\",\n \"ogmic\",\n \"ogres\",\n \"ohias\",\n \"ohing\",\n \"ohmic\",\n \"ohone\",\n \"oidia\",\n \"oiled\",\n \"oiler\",\n \"oinks\",\n \"oints\",\n \"ojime\",\n \"okapi\",\n \"okays\",\n \"okehs\",\n \"okras\",\n \"oktas\",\n \"oldie\",\n \"oleic\",\n \"olein\",\n \"olent\",\n \"oleos\",\n \"oleum\",\n \"olios\",\n \"ollas\",\n \"ollav\",\n \"oller\",\n \"ollie\",\n \"ology\",\n \"olpae\",\n \"olpes\",\n \"omasa\",\n \"omber\",\n \"ombus\",\n \"omens\",\n \"omers\",\n \"omits\",\n \"omlah\",\n \"omovs\",\n \"omrah\",\n \"oncer\",\n \"onces\",\n \"oncet\",\n \"oncus\",\n \"onely\",\n \"oners\",\n \"onery\",\n \"onium\",\n \"onkus\",\n \"onlay\",\n \"onned\",\n \"ontic\",\n \"oobit\",\n \"oohed\",\n \"oomph\",\n \"oonts\",\n \"ooped\",\n \"oorie\",\n \"ooses\",\n \"ootid\",\n \"oozed\",\n \"oozes\",\n \"opahs\",\n \"opals\",\n \"opens\",\n \"opepe\",\n \"oping\",\n \"oppos\",\n \"opsin\",\n \"opted\",\n \"opter\",\n \"orach\",\n \"oracy\",\n \"orals\",\n \"orang\",\n \"orant\",\n \"orate\",\n \"orbed\",\n \"orcas\",\n \"orcin\",\n \"ordos\",\n \"oread\",\n \"orfes\",\n \"orgia\",\n \"orgic\",\n \"orgue\",\n \"oribi\",\n \"oriel\",\n \"orixa\",\n \"orles\",\n \"orlon\",\n \"orlop\",\n \"ormer\",\n \"ornis\",\n \"orpin\",\n \"orris\",\n \"ortho\",\n \"orval\",\n \"orzos\",\n \"oscar\",\n \"oshac\",\n \"osier\",\n \"osmic\",\n \"osmol\",\n \"ossia\",\n \"ostia\",\n \"otaku\",\n \"otary\",\n \"ottar\",\n \"ottos\",\n \"oubit\",\n \"oucht\",\n \"ouens\",\n \"ouija\",\n \"oulks\",\n \"oumas\",\n \"oundy\",\n \"oupas\",\n \"ouped\",\n \"ouphe\",\n \"ouphs\",\n \"ourie\",\n \"ousel\",\n \"ousts\",\n \"outby\",\n \"outed\",\n \"outre\",\n \"outro\",\n \"outta\",\n \"ouzel\",\n \"ouzos\",\n \"ovals\",\n \"ovels\",\n \"ovens\",\n \"overs\",\n \"ovist\",\n \"ovoli\",\n \"ovolo\",\n \"ovule\",\n \"owche\",\n \"owies\",\n \"owled\",\n \"owler\",\n \"owlet\",\n \"owned\",\n \"owres\",\n \"owrie\",\n \"owsen\",\n \"oxbow\",\n \"oxers\",\n \"oxeye\",\n \"oxids\",\n \"oxies\",\n \"oxime\",\n \"oxims\",\n \"oxlip\",\n \"oxter\",\n \"oyers\",\n \"ozeki\",\n \"ozzie\",\n \"paals\",\n \"paans\",\n \"pacas\",\n \"paced\",\n \"pacer\",\n \"paces\",\n \"pacey\",\n \"pacha\",\n \"packs\",\n \"pacos\",\n \"pacta\",\n \"pacts\",\n \"padis\",\n \"padle\",\n \"padma\",\n \"padre\",\n \"padri\",\n \"paean\",\n \"paedo\",\n \"paeon\",\n \"paged\",\n \"pager\",\n \"pages\",\n \"pagle\",\n \"pagod\",\n \"pagri\",\n \"paiks\",\n \"pails\",\n \"pains\",\n \"paire\",\n \"pairs\",\n \"paisa\",\n \"paise\",\n \"pakka\",\n \"palas\",\n \"palay\",\n \"palea\",\n \"paled\",\n \"pales\",\n \"palet\",\n \"palis\",\n \"palki\",\n \"palla\",\n \"palls\",\n \"pally\",\n \"palms\",\n \"palmy\",\n \"palpi\",\n \"palps\",\n \"palsa\",\n \"pampa\",\n \"panax\",\n \"pance\",\n \"panda\",\n \"pands\",\n \"pandy\",\n \"paned\",\n \"panes\",\n \"panga\",\n \"pangs\",\n \"panim\",\n \"panko\",\n \"panne\",\n \"panni\",\n \"panto\",\n \"pants\",\n \"panty\",\n \"paoli\",\n \"paolo\",\n \"papas\",\n \"papaw\",\n \"papes\",\n \"pappi\",\n \"pappy\",\n \"parae\",\n \"paras\",\n \"parch\",\n \"pardi\",\n \"pards\",\n \"pardy\",\n \"pared\",\n \"paren\",\n \"pareo\",\n \"pares\",\n \"pareu\",\n \"parev\",\n \"parge\",\n \"pargo\",\n \"paris\",\n \"parki\",\n \"parks\",\n \"parky\",\n \"parle\",\n \"parly\",\n \"parma\",\n \"parol\",\n \"parps\",\n \"parra\",\n \"parrs\",\n \"parti\",\n \"parts\",\n \"parve\",\n \"parvo\",\n \"paseo\",\n \"pases\",\n \"pasha\",\n \"pashm\",\n \"paska\",\n \"paspy\",\n \"passe\",\n \"pasts\",\n \"pated\",\n \"paten\",\n \"pater\",\n \"pates\",\n \"paths\",\n \"patin\",\n \"patka\",\n \"patly\",\n \"patte\",\n \"patus\",\n \"pauas\",\n \"pauls\",\n \"pavan\",\n \"paved\",\n \"paven\",\n \"paver\",\n \"paves\",\n \"pavid\",\n \"pavin\",\n \"pavis\",\n \"pawas\",\n \"pawaw\",\n \"pawed\",\n \"pawer\",\n \"pawks\",\n \"pawky\",\n \"pawls\",\n \"pawns\",\n \"paxes\",\n \"payed\",\n \"payor\",\n \"paysd\",\n \"peage\",\n \"peags\",\n \"peaks\",\n \"peaky\",\n \"peals\",\n \"peans\",\n \"peare\",\n \"pears\",\n \"peart\",\n \"pease\",\n \"peats\",\n \"peaty\",\n \"peavy\",\n \"peaze\",\n \"pebas\",\n \"pechs\",\n \"pecke\",\n \"pecks\",\n \"pecky\",\n \"pedes\",\n \"pedis\",\n \"pedro\",\n \"peece\",\n \"peeks\",\n \"peels\",\n \"peens\",\n \"peeoy\",\n \"peepe\",\n \"peeps\",\n \"peers\",\n \"peery\",\n \"peeve\",\n \"peggy\",\n \"peghs\",\n \"peins\",\n \"peise\",\n \"peize\",\n \"pekan\",\n \"pekes\",\n \"pekin\",\n \"pekoe\",\n \"pelas\",\n \"pelau\",\n \"peles\",\n \"pelfs\",\n \"pells\",\n \"pelma\",\n \"pelon\",\n \"pelta\",\n \"pelts\",\n \"pends\",\n \"pendu\",\n \"pened\",\n \"penes\",\n \"pengo\",\n \"penie\",\n \"penis\",\n \"penks\",\n \"penna\",\n \"penni\",\n \"pents\",\n \"peons\",\n \"peony\",\n \"pepla\",\n \"pepos\",\n \"peppy\",\n \"pepsi\",\n \"perai\",\n \"perce\",\n \"percs\",\n \"perdu\",\n \"perdy\",\n \"perea\",\n \"peres\",\n \"peris\",\n \"perks\",\n \"perms\",\n \"perns\",\n \"perog\",\n \"perps\",\n \"perry\",\n \"perse\",\n \"perst\",\n \"perts\",\n \"perve\",\n \"pervo\",\n \"pervs\",\n \"pervy\",\n \"pesos\",\n \"pests\",\n \"pesty\",\n \"petar\",\n \"peter\",\n \"petit\",\n \"petre\",\n \"petri\",\n \"petti\",\n \"petto\",\n \"pewee\",\n \"pewit\",\n \"peyse\",\n \"phage\",\n \"phang\",\n \"phare\",\n \"pharm\",\n \"pheer\",\n \"phene\",\n \"pheon\",\n \"phese\",\n \"phial\",\n \"phish\",\n \"phizz\",\n \"phlox\",\n \"phoca\",\n \"phono\",\n \"phons\",\n \"phots\",\n \"phpht\",\n \"phuts\",\n \"phyla\",\n \"phyle\",\n \"piani\",\n \"pians\",\n \"pibal\",\n \"pical\",\n \"picas\",\n \"piccy\",\n \"picks\",\n \"picot\",\n \"picra\",\n \"picul\",\n \"piend\",\n \"piers\",\n \"piert\",\n \"pieta\",\n \"piets\",\n \"piezo\",\n \"pight\",\n \"pigmy\",\n \"piing\",\n \"pikas\",\n \"pikau\",\n \"piked\",\n \"piker\",\n \"pikes\",\n \"pikey\",\n \"pikis\",\n \"pikul\",\n \"pilae\",\n \"pilaf\",\n \"pilao\",\n \"pilar\",\n \"pilau\",\n \"pilaw\",\n \"pilch\",\n \"pilea\",\n \"piled\",\n \"pilei\",\n \"piler\",\n \"piles\",\n \"pilis\",\n \"pills\",\n \"pilow\",\n \"pilum\",\n \"pilus\",\n \"pimas\",\n \"pimps\",\n \"pinas\",\n \"pined\",\n \"pines\",\n \"pingo\",\n \"pings\",\n \"pinko\",\n \"pinks\",\n \"pinna\",\n \"pinny\",\n \"pinon\",\n \"pinot\",\n \"pinta\",\n \"pints\",\n \"pinup\",\n \"pions\",\n \"piony\",\n \"pious\",\n \"pioye\",\n \"pioys\",\n \"pipal\",\n \"pipas\",\n \"piped\",\n \"pipes\",\n \"pipet\",\n \"pipis\",\n \"pipit\",\n \"pippy\",\n \"pipul\",\n \"pirai\",\n \"pirls\",\n \"pirns\",\n \"pirog\",\n \"pisco\",\n \"pises\",\n \"pisky\",\n \"pisos\",\n \"pissy\",\n \"piste\",\n \"pitas\",\n \"piths\",\n \"piton\",\n \"pitot\",\n \"pitta\",\n \"piums\",\n \"pixes\",\n \"pized\",\n \"pizes\",\n \"plaas\",\n \"plack\",\n \"plage\",\n \"plans\",\n \"plaps\",\n \"plash\",\n \"plasm\",\n \"plast\",\n \"plats\",\n \"platt\",\n \"platy\",\n \"playa\",\n \"plays\",\n \"pleas\",\n \"plebe\",\n \"plebs\",\n \"plena\",\n \"pleon\",\n \"plesh\",\n \"plews\",\n \"plica\",\n \"plies\",\n \"plims\",\n \"pling\",\n \"plink\",\n \"ploat\",\n \"plods\",\n \"plong\",\n \"plonk\",\n \"plook\",\n \"plops\",\n \"plots\",\n \"plotz\",\n \"plouk\",\n \"plows\",\n \"ploye\",\n \"ploys\",\n \"plues\",\n \"pluff\",\n \"plugs\",\n \"plums\",\n \"plumy\",\n \"pluot\",\n \"pluto\",\n \"plyer\",\n \"poach\",\n \"poaka\",\n \"poake\",\n \"poboy\",\n \"pocks\",\n \"pocky\",\n \"podal\",\n \"poddy\",\n \"podex\",\n \"podge\",\n \"podgy\",\n \"podia\",\n \"poems\",\n \"poeps\",\n \"poets\",\n \"pogey\",\n \"pogge\",\n \"pogos\",\n \"pohed\",\n \"poilu\",\n \"poind\",\n \"pokal\",\n \"poked\",\n \"pokes\",\n \"pokey\",\n \"pokie\",\n \"poled\",\n \"poler\",\n \"poles\",\n \"poley\",\n \"polio\",\n \"polis\",\n \"polje\",\n \"polks\",\n \"polls\",\n \"polly\",\n \"polos\",\n \"polts\",\n \"polys\",\n \"pombe\",\n \"pomes\",\n \"pommy\",\n \"pomos\",\n \"pomps\",\n \"ponce\",\n \"poncy\",\n \"ponds\",\n \"pones\",\n \"poney\",\n \"ponga\",\n \"pongo\",\n \"pongs\",\n \"pongy\",\n \"ponks\",\n \"ponts\",\n \"ponty\",\n \"ponzu\",\n \"poods\",\n \"pooed\",\n \"poofs\",\n \"poofy\",\n \"poohs\",\n \"pooja\",\n \"pooka\",\n \"pooks\",\n \"pools\",\n \"poons\",\n \"poops\",\n \"poopy\",\n \"poori\",\n \"poort\",\n \"poots\",\n \"poove\",\n \"poovy\",\n \"popes\",\n \"poppa\",\n \"popsy\",\n \"porae\",\n \"poral\",\n \"pored\",\n \"porer\",\n \"pores\",\n \"porge\",\n \"porgy\",\n \"porin\",\n \"porks\",\n \"porky\",\n \"porno\",\n \"porns\",\n \"porny\",\n \"porta\",\n \"ports\",\n \"porty\",\n \"posed\",\n \"poses\",\n \"posey\",\n \"posho\",\n \"posts\",\n \"potae\",\n \"potch\",\n \"poted\",\n \"potes\",\n \"potin\",\n \"potoo\",\n \"potsy\",\n \"potto\",\n \"potts\",\n \"potty\",\n \"pouff\",\n \"poufs\",\n \"pouke\",\n \"pouks\",\n \"poule\",\n \"poulp\",\n \"poult\",\n \"poupe\",\n \"poupt\",\n \"pours\",\n \"pouts\",\n \"powan\",\n \"powin\",\n \"pownd\",\n \"powns\",\n \"powny\",\n \"powre\",\n \"poxed\",\n \"poxes\",\n \"poynt\",\n \"poyou\",\n \"poyse\",\n \"pozzy\",\n \"praam\",\n \"prads\",\n \"prahu\",\n \"prams\",\n \"prana\",\n \"prang\",\n \"praos\",\n \"prase\",\n \"prate\",\n \"prats\",\n \"pratt\",\n \"praty\",\n \"praus\",\n \"prays\",\n \"predy\",\n \"preed\",\n \"prees\",\n \"preif\",\n \"prems\",\n \"premy\",\n \"prent\",\n \"preon\",\n \"preop\",\n \"preps\",\n \"presa\",\n \"prese\",\n \"prest\",\n \"preve\",\n \"prexy\",\n \"preys\",\n \"prial\",\n \"pricy\",\n \"prief\",\n \"prier\",\n \"pries\",\n \"prigs\",\n \"prill\",\n \"prima\",\n \"primi\",\n \"primp\",\n \"prims\",\n \"primy\",\n \"prink\",\n \"prion\",\n \"prise\",\n \"priss\",\n \"proas\",\n \"probs\",\n \"prods\",\n \"proem\",\n \"profs\",\n \"progs\",\n \"proin\",\n \"proke\",\n \"prole\",\n \"proll\",\n \"promo\",\n \"proms\",\n \"pronk\",\n \"props\",\n \"prore\",\n \"proso\",\n \"pross\",\n \"prost\",\n \"prosy\",\n \"proto\",\n \"proul\",\n \"prows\",\n \"proyn\",\n \"prunt\",\n \"pruta\",\n \"pryer\",\n \"pryse\",\n \"pseud\",\n \"pshaw\",\n \"psion\",\n \"psoae\",\n \"psoai\",\n \"psoas\",\n \"psora\",\n \"psych\",\n \"psyop\",\n \"pubco\",\n \"pubes\",\n \"pubis\",\n \"pucan\",\n \"pucer\",\n \"puces\",\n \"pucka\",\n \"pucks\",\n \"puddy\",\n \"pudge\",\n \"pudic\",\n \"pudor\",\n \"pudsy\",\n \"pudus\",\n \"puers\",\n \"puffa\",\n \"puffs\",\n \"puggy\",\n \"pugil\",\n \"puhas\",\n \"pujah\",\n \"pujas\",\n \"pukas\",\n \"puked\",\n \"puker\",\n \"pukes\",\n \"pukey\",\n \"pukka\",\n \"pukus\",\n \"pulao\",\n \"pulas\",\n \"puled\",\n \"puler\",\n \"pules\",\n \"pulik\",\n \"pulis\",\n \"pulka\",\n \"pulks\",\n \"pulli\",\n \"pulls\",\n \"pully\",\n \"pulmo\",\n \"pulps\",\n \"pulus\",\n \"pumas\",\n \"pumie\",\n \"pumps\",\n \"punas\",\n \"punce\",\n \"punga\",\n \"pungs\",\n \"punji\",\n \"punka\",\n \"punks\",\n \"punky\",\n \"punny\",\n \"punto\",\n \"punts\",\n \"punty\",\n \"pupae\",\n \"pupas\",\n \"pupus\",\n \"purda\",\n \"pured\",\n \"pures\",\n \"purin\",\n \"puris\",\n \"purls\",\n \"purpy\",\n \"purrs\",\n \"pursy\",\n \"purty\",\n \"puses\",\n \"pusle\",\n \"pussy\",\n \"putid\",\n \"puton\",\n \"putti\",\n \"putto\",\n \"putts\",\n \"puzel\",\n \"pwned\",\n \"pyats\",\n \"pyets\",\n \"pygal\",\n \"pyins\",\n \"pylon\",\n \"pyned\",\n \"pynes\",\n \"pyoid\",\n \"pyots\",\n \"pyral\",\n \"pyran\",\n \"pyres\",\n \"pyrex\",\n \"pyric\",\n \"pyros\",\n \"pyxed\",\n \"pyxes\",\n \"pyxie\",\n \"pyxis\",\n \"pzazz\",\n \"qadis\",\n \"qaids\",\n \"qajaq\",\n \"qanat\",\n \"qapik\",\n \"qibla\",\n \"qophs\",\n \"qorma\",\n \"quads\",\n \"quaff\",\n \"quags\",\n \"quair\",\n \"quais\",\n \"quaky\",\n \"quale\",\n \"quant\",\n \"quare\",\n \"quass\",\n \"quate\",\n \"quats\",\n \"quayd\",\n \"quays\",\n \"qubit\",\n \"quean\",\n \"queme\",\n \"quena\",\n \"quern\",\n \"queyn\",\n \"queys\",\n \"quich\",\n \"quids\",\n \"quiff\",\n \"quims\",\n \"quina\",\n \"quine\",\n \"quino\",\n \"quins\",\n \"quint\",\n \"quipo\",\n \"quips\",\n \"quipu\",\n \"quire\",\n \"quirt\",\n \"quist\",\n \"quits\",\n \"quoad\",\n \"quods\",\n \"quoif\",\n \"quoin\",\n \"quoit\",\n \"quoll\",\n \"quonk\",\n \"quops\",\n \"qursh\",\n \"quyte\",\n \"rabat\",\n \"rabic\",\n \"rabis\",\n \"raced\",\n \"races\",\n \"rache\",\n \"racks\",\n \"racon\",\n \"radge\",\n \"radix\",\n \"radon\",\n \"raffs\",\n \"rafts\",\n \"ragas\",\n \"ragde\",\n \"raged\",\n \"ragee\",\n \"rager\",\n \"rages\",\n \"ragga\",\n \"raggs\",\n \"raggy\",\n \"ragis\",\n \"ragus\",\n \"rahed\",\n \"rahui\",\n \"raias\",\n \"raids\",\n \"raiks\",\n \"raile\",\n \"rails\",\n \"raine\",\n \"rains\",\n \"raird\",\n \"raita\",\n \"raits\",\n \"rajas\",\n \"rajes\",\n \"raked\",\n \"rakee\",\n \"raker\",\n \"rakes\",\n \"rakia\",\n \"rakis\",\n \"rakus\",\n \"rales\",\n \"ramal\",\n \"ramee\",\n \"ramet\",\n \"ramie\",\n \"ramin\",\n \"ramis\",\n \"rammy\",\n \"ramps\",\n \"ramus\",\n \"ranas\",\n \"rance\",\n \"rands\",\n \"ranee\",\n \"ranga\",\n \"rangi\",\n \"rangs\",\n \"rangy\",\n \"ranid\",\n \"ranis\",\n \"ranke\",\n \"ranks\",\n \"rants\",\n \"raped\",\n \"raper\",\n \"rapes\",\n \"raphe\",\n \"rappe\",\n \"rared\",\n \"raree\",\n \"rares\",\n \"rarks\",\n \"rased\",\n \"raser\",\n \"rases\",\n \"rasps\",\n \"rasse\",\n \"rasta\",\n \"ratal\",\n \"ratan\",\n \"ratas\",\n \"ratch\",\n \"rated\",\n \"ratel\",\n \"rater\",\n \"rates\",\n \"ratha\",\n \"rathe\",\n \"raths\",\n \"ratoo\",\n \"ratos\",\n \"ratus\",\n \"rauns\",\n \"raupo\",\n \"raved\",\n \"ravel\",\n \"raver\",\n \"raves\",\n \"ravey\",\n \"ravin\",\n \"rawer\",\n \"rawin\",\n \"rawly\",\n \"rawns\",\n \"raxed\",\n \"raxes\",\n \"rayah\",\n \"rayas\",\n \"rayed\",\n \"rayle\",\n \"rayne\",\n \"razed\",\n \"razee\",\n \"razer\",\n \"razes\",\n \"razoo\",\n \"readd\",\n \"reads\",\n \"reais\",\n \"reaks\",\n \"realo\",\n \"reals\",\n \"reame\",\n \"reams\",\n \"reamy\",\n \"reans\",\n \"reaps\",\n \"rears\",\n \"reast\",\n \"reata\",\n \"reate\",\n \"reave\",\n \"rebbe\",\n \"rebec\",\n \"rebid\",\n \"rebit\",\n \"rebop\",\n \"rebuy\",\n \"recal\",\n \"recce\",\n \"recco\",\n \"reccy\",\n \"recit\",\n \"recks\",\n \"recon\",\n \"recta\",\n \"recti\",\n \"recto\",\n \"redan\",\n \"redds\",\n \"reddy\",\n \"reded\",\n \"redes\",\n \"redia\",\n \"redid\",\n \"redip\",\n \"redly\",\n \"redon\",\n \"redos\",\n \"redox\",\n \"redry\",\n \"redub\",\n \"redux\",\n \"redye\",\n \"reech\",\n \"reede\",\n \"reeds\",\n \"reefs\",\n \"reefy\",\n \"reeks\",\n \"reeky\",\n \"reels\",\n \"reens\",\n \"reest\",\n \"reeve\",\n \"refed\",\n \"refel\",\n \"reffo\",\n \"refis\",\n \"refix\",\n \"refly\",\n \"refry\",\n \"regar\",\n \"reges\",\n \"reggo\",\n \"regie\",\n \"regma\",\n \"regna\",\n \"regos\",\n \"regur\",\n \"rehem\",\n \"reifs\",\n \"reify\",\n \"reiki\",\n \"reiks\",\n \"reink\",\n \"reins\",\n \"reird\",\n \"reist\",\n \"reive\",\n \"rejig\",\n \"rejon\",\n \"reked\",\n \"rekes\",\n \"rekey\",\n \"relet\",\n \"relie\",\n \"relit\",\n \"rello\",\n \"reman\",\n \"remap\",\n \"remen\",\n \"remet\",\n \"remex\",\n \"remix\",\n \"renay\",\n \"rends\",\n \"reney\",\n \"renga\",\n \"renig\",\n \"renin\",\n \"renne\",\n \"renos\",\n \"rente\",\n \"rents\",\n \"reoil\",\n \"reorg\",\n \"repeg\",\n \"repin\",\n \"repla\",\n \"repos\",\n \"repot\",\n \"repps\",\n \"repro\",\n \"reran\",\n \"rerig\",\n \"resat\",\n \"resaw\",\n \"resay\",\n \"resee\",\n \"reses\",\n \"resew\",\n \"resid\",\n \"resit\",\n \"resod\",\n \"resow\",\n \"resto\",\n \"rests\",\n \"resty\",\n \"resus\",\n \"retag\",\n \"retax\",\n \"retem\",\n \"retia\",\n \"retie\",\n \"retox\",\n \"revet\",\n \"revie\",\n \"rewan\",\n \"rewax\",\n \"rewed\",\n \"rewet\",\n \"rewin\",\n \"rewon\",\n \"rewth\",\n \"rexes\",\n \"rezes\",\n \"rheas\",\n \"rheme\",\n \"rheum\",\n \"rhies\",\n \"rhime\",\n \"rhine\",\n \"rhody\",\n \"rhomb\",\n \"rhone\",\n \"rhumb\",\n \"rhyne\",\n \"rhyta\",\n \"riads\",\n \"rials\",\n \"riant\",\n \"riata\",\n \"ribas\",\n \"ribby\",\n \"ribes\",\n \"riced\",\n \"ricer\",\n \"rices\",\n \"ricey\",\n \"richt\",\n \"ricin\",\n \"ricks\",\n \"rides\",\n \"ridgy\",\n \"ridic\",\n \"riels\",\n \"riems\",\n \"rieve\",\n \"rifer\",\n \"riffs\",\n \"rifte\",\n \"rifts\",\n \"rifty\",\n \"riggs\",\n \"rigol\",\n \"riled\",\n \"riles\",\n \"riley\",\n \"rille\",\n \"rills\",\n \"rimae\",\n \"rimed\",\n \"rimer\",\n \"rimes\",\n \"rimus\",\n \"rinds\",\n \"rindy\",\n \"rines\",\n \"rings\",\n \"rinks\",\n \"rioja\",\n \"riots\",\n \"riped\",\n \"ripes\",\n \"ripps\",\n \"rises\",\n \"rishi\",\n \"risks\",\n \"risps\",\n \"risus\",\n \"rites\",\n \"ritts\",\n \"ritzy\",\n \"rivas\",\n \"rived\",\n \"rivel\",\n \"riven\",\n \"rives\",\n \"riyal\",\n \"rizas\",\n \"roads\",\n \"roams\",\n \"roans\",\n \"roars\",\n \"roary\",\n \"roate\",\n \"robed\",\n \"robes\",\n \"roble\",\n \"rocks\",\n \"roded\",\n \"rodes\",\n \"roguy\",\n \"rohes\",\n \"roids\",\n \"roils\",\n \"roily\",\n \"roins\",\n \"roist\",\n \"rojak\",\n \"rojis\",\n \"roked\",\n \"roker\",\n \"rokes\",\n \"rolag\",\n \"roles\",\n \"rolfs\",\n \"rolls\",\n \"romal\",\n \"roman\",\n \"romeo\",\n \"romps\",\n \"ronde\",\n \"rondo\",\n \"roneo\",\n \"rones\",\n \"ronin\",\n \"ronne\",\n \"ronte\",\n \"ronts\",\n \"roods\",\n \"roofs\",\n \"roofy\",\n \"rooks\",\n \"rooky\",\n \"rooms\",\n \"roons\",\n \"roops\",\n \"roopy\",\n \"roosa\",\n \"roose\",\n \"roots\",\n \"rooty\",\n \"roped\",\n \"roper\",\n \"ropes\",\n \"ropey\",\n \"roque\",\n \"roral\",\n \"rores\",\n \"roric\",\n \"rorid\",\n \"rorie\",\n \"rorts\",\n \"rorty\",\n \"rosed\",\n \"roses\",\n \"roset\",\n \"roshi\",\n \"rosin\",\n \"rosit\",\n \"rosti\",\n \"rosts\",\n \"rotal\",\n \"rotan\",\n \"rotas\",\n \"rotch\",\n \"roted\",\n \"rotes\",\n \"rotis\",\n \"rotls\",\n \"roton\",\n \"rotos\",\n \"rotte\",\n \"rouen\",\n \"roues\",\n \"roule\",\n \"rouls\",\n \"roums\",\n \"roups\",\n \"roupy\",\n \"roust\",\n \"routh\",\n \"routs\",\n \"roved\",\n \"roven\",\n \"roves\",\n \"rowan\",\n \"rowed\",\n \"rowel\",\n \"rowen\",\n \"rowie\",\n \"rowme\",\n \"rownd\",\n \"rowth\",\n \"rowts\",\n \"royne\",\n \"royst\",\n \"rozet\",\n \"rozit\",\n \"ruana\",\n \"rubai\",\n \"rubby\",\n \"rubel\",\n \"rubes\",\n \"rubin\",\n \"ruble\",\n \"rubli\",\n \"rubus\",\n \"ruche\",\n \"rucks\",\n \"rudas\",\n \"rudds\",\n \"rudes\",\n \"rudie\",\n \"rudis\",\n \"rueda\",\n \"ruers\",\n \"ruffe\",\n \"ruffs\",\n \"rugae\",\n \"rugal\",\n \"ruggy\",\n \"ruing\",\n \"ruins\",\n \"rukhs\",\n \"ruled\",\n \"rules\",\n \"rumal\",\n \"rumbo\",\n \"rumen\",\n \"rumes\",\n \"rumly\",\n \"rummy\",\n \"rumpo\",\n \"rumps\",\n \"rumpy\",\n \"runch\",\n \"runds\",\n \"runed\",\n \"runes\",\n \"rungs\",\n \"runic\",\n \"runny\",\n \"runts\",\n \"runty\",\n \"rupia\",\n \"rurps\",\n \"rurus\",\n \"rusas\",\n \"ruses\",\n \"rushy\",\n \"rusks\",\n \"rusma\",\n \"russe\",\n \"rusts\",\n \"ruths\",\n \"rutin\",\n \"rutty\",\n \"ryals\",\n \"rybat\",\n \"ryked\",\n \"rykes\",\n \"rymme\",\n \"rynds\",\n \"ryots\",\n \"ryper\",\n \"saags\",\n \"sabal\",\n \"sabed\",\n \"saber\",\n \"sabes\",\n \"sabha\",\n \"sabin\",\n \"sabir\",\n \"sable\",\n \"sabot\",\n \"sabra\",\n \"sabre\",\n \"sacks\",\n \"sacra\",\n \"saddo\",\n \"sades\",\n \"sadhe\",\n \"sadhu\",\n \"sadis\",\n \"sados\",\n \"sadza\",\n \"safed\",\n \"safes\",\n \"sagas\",\n \"sager\",\n \"sages\",\n \"saggy\",\n \"sagos\",\n \"sagum\",\n \"saheb\",\n \"sahib\",\n \"saice\",\n \"saick\",\n \"saics\",\n \"saids\",\n \"saiga\",\n \"sails\",\n \"saims\",\n \"saine\",\n \"sains\",\n \"sairs\",\n \"saist\",\n \"saith\",\n \"sajou\",\n \"sakai\",\n \"saker\",\n \"sakes\",\n \"sakia\",\n \"sakis\",\n \"sakti\",\n \"salal\",\n \"salat\",\n \"salep\",\n \"sales\",\n \"salet\",\n \"salic\",\n \"salix\",\n \"salle\",\n \"salmi\",\n \"salol\",\n \"salop\",\n \"salpa\",\n \"salps\",\n \"salse\",\n \"salto\",\n \"salts\",\n \"salue\",\n \"salut\",\n \"saman\",\n \"samas\",\n \"samba\",\n \"sambo\",\n \"samek\",\n \"samel\",\n \"samen\",\n \"sames\",\n \"samey\",\n \"samfu\",\n \"sammy\",\n \"sampi\",\n \"samps\",\n \"sands\",\n \"saned\",\n \"sanes\",\n \"sanga\",\n \"sangh\",\n \"sango\",\n \"sangs\",\n \"sanko\",\n \"sansa\",\n \"santo\",\n \"sants\",\n \"saola\",\n \"sapan\",\n \"sapid\",\n \"sapor\",\n \"saran\",\n \"sards\",\n \"sared\",\n \"saree\",\n \"sarge\",\n \"sargo\",\n \"sarin\",\n \"saris\",\n \"sarks\",\n \"sarky\",\n \"sarod\",\n \"saros\",\n \"sarus\",\n \"saser\",\n \"sasin\",\n \"sasse\",\n \"satai\",\n \"satay\",\n \"sated\",\n \"satem\",\n \"sates\",\n \"satis\",\n \"sauba\",\n \"sauch\",\n \"saugh\",\n \"sauls\",\n \"sault\",\n \"saunt\",\n \"saury\",\n \"sauts\",\n \"saved\",\n \"saver\",\n \"saves\",\n \"savey\",\n \"savin\",\n \"sawah\",\n \"sawed\",\n \"sawer\",\n \"saxes\",\n \"sayed\",\n \"sayer\",\n \"sayid\",\n \"sayne\",\n \"sayon\",\n \"sayst\",\n \"sazes\",\n \"scabs\",\n \"scads\",\n \"scaff\",\n \"scags\",\n \"scail\",\n \"scala\",\n \"scall\",\n \"scams\",\n \"scand\",\n \"scans\",\n \"scapa\",\n \"scape\",\n \"scapi\",\n \"scarp\",\n \"scars\",\n \"scart\",\n \"scath\",\n \"scats\",\n \"scatt\",\n \"scaud\",\n \"scaup\",\n \"scaur\",\n \"scaws\",\n \"sceat\",\n \"scena\",\n \"scend\",\n \"schav\",\n \"schmo\",\n \"schul\",\n \"schwa\",\n \"sclim\",\n \"scody\",\n \"scogs\",\n \"scoog\",\n \"scoot\",\n \"scopa\",\n \"scops\",\n \"scots\",\n \"scoug\",\n \"scoup\",\n \"scowp\",\n \"scows\",\n \"scrab\",\n \"scrae\",\n \"scrag\",\n \"scran\",\n \"scrat\",\n \"scraw\",\n \"scray\",\n \"scrim\",\n \"scrip\",\n \"scrob\",\n \"scrod\",\n \"scrog\",\n \"scrow\",\n \"scudi\",\n \"scudo\",\n \"scuds\",\n \"scuff\",\n \"scuft\",\n \"scugs\",\n \"sculk\",\n \"scull\",\n \"sculp\",\n \"sculs\",\n \"scums\",\n \"scups\",\n \"scurf\",\n \"scurs\",\n \"scuse\",\n \"scuta\",\n \"scute\",\n \"scuts\",\n \"scuzz\",\n \"scyes\",\n \"sdayn\",\n \"sdein\",\n \"seals\",\n \"seame\",\n \"seams\",\n \"seamy\",\n \"seans\",\n \"seare\",\n \"sears\",\n \"sease\",\n \"seats\",\n \"seaze\",\n \"sebum\",\n \"secco\",\n \"sechs\",\n \"sects\",\n \"seder\",\n \"sedes\",\n \"sedge\",\n \"sedgy\",\n \"sedum\",\n \"seeds\",\n \"seeks\",\n \"seeld\",\n \"seels\",\n \"seely\",\n \"seems\",\n \"seeps\",\n \"seepy\",\n \"seers\",\n \"sefer\",\n \"segar\",\n \"segni\",\n \"segno\",\n \"segol\",\n \"segos\",\n \"sehri\",\n \"seifs\",\n \"seils\",\n \"seine\",\n \"seirs\",\n \"seise\",\n \"seism\",\n \"seity\",\n \"seiza\",\n \"sekos\",\n \"sekts\",\n \"selah\",\n \"seles\",\n \"selfs\",\n \"sella\",\n \"selle\",\n \"sells\",\n \"selva\",\n \"semee\",\n \"semes\",\n \"semie\",\n \"semis\",\n \"senas\",\n \"sends\",\n \"senes\",\n \"sengi\",\n \"senna\",\n \"senor\",\n \"sensa\",\n \"sensi\",\n \"sente\",\n \"senti\",\n \"sents\",\n \"senvy\",\n \"senza\",\n \"sepad\",\n \"sepal\",\n \"sepic\",\n \"sepoy\",\n \"septa\",\n \"septs\",\n \"serac\",\n \"serai\",\n \"seral\",\n \"sered\",\n \"serer\",\n \"seres\",\n \"serfs\",\n \"serge\",\n \"seric\",\n \"serin\",\n \"serks\",\n \"seron\",\n \"serow\",\n \"serra\",\n \"serre\",\n \"serrs\",\n \"serry\",\n \"servo\",\n \"sesey\",\n \"sessa\",\n \"setae\",\n \"setal\",\n \"seton\",\n \"setts\",\n \"sewan\",\n \"sewar\",\n \"sewed\",\n \"sewel\",\n \"sewen\",\n \"sewin\",\n \"sexed\",\n \"sexer\",\n \"sexes\",\n \"sexto\",\n \"sexts\",\n \"seyen\",\n \"shads\",\n \"shags\",\n \"shahs\",\n \"shako\",\n \"shakt\",\n \"shalm\",\n \"shaly\",\n \"shama\",\n \"shams\",\n \"shand\",\n \"shans\",\n \"shaps\",\n \"sharn\",\n \"shash\",\n \"shaul\",\n \"shawm\",\n \"shawn\",\n \"shaws\",\n \"shaya\",\n \"shays\",\n \"shchi\",\n \"sheaf\",\n \"sheal\",\n \"sheas\",\n \"sheds\",\n \"sheel\",\n \"shend\",\n \"shent\",\n \"sheol\",\n \"sherd\",\n \"shere\",\n \"shero\",\n \"shets\",\n \"sheva\",\n \"shewn\",\n \"shews\",\n \"shiai\",\n \"shiel\",\n \"shier\",\n \"shies\",\n \"shill\",\n \"shily\",\n \"shims\",\n \"shins\",\n \"ships\",\n \"shirr\",\n \"shirs\",\n \"shish\",\n \"shiso\",\n \"shist\",\n \"shite\",\n \"shits\",\n \"shiur\",\n \"shiva\",\n \"shive\",\n \"shivs\",\n \"shlep\",\n \"shlub\",\n \"shmek\",\n \"shmoe\",\n \"shoat\",\n \"shoed\",\n \"shoer\",\n \"shoes\",\n \"shogi\",\n \"shogs\",\n \"shoji\",\n \"shojo\",\n \"shola\",\n \"shool\",\n \"shoon\",\n \"shoos\",\n \"shope\",\n \"shops\",\n \"shorl\",\n \"shote\",\n \"shots\",\n \"shott\",\n \"showd\",\n \"shows\",\n \"shoyu\",\n \"shred\",\n \"shris\",\n \"shrow\",\n \"shtik\",\n \"shtum\",\n \"shtup\",\n \"shule\",\n \"shuln\",\n \"shuls\",\n \"shuns\",\n \"shura\",\n \"shute\",\n \"shuts\",\n \"shwas\",\n \"shyer\",\n \"sials\",\n \"sibbs\",\n \"sibyl\",\n \"sices\",\n \"sicht\",\n \"sicko\",\n \"sicks\",\n \"sicky\",\n \"sidas\",\n \"sided\",\n \"sider\",\n \"sides\",\n \"sidha\",\n \"sidhe\",\n \"sidle\",\n \"sield\",\n \"siens\",\n \"sient\",\n \"sieth\",\n \"sieur\",\n \"sifts\",\n \"sighs\",\n \"sigil\",\n \"sigla\",\n \"signa\",\n \"signs\",\n \"sijos\",\n \"sikas\",\n \"siker\",\n \"sikes\",\n \"silds\",\n \"siled\",\n \"silen\",\n \"siler\",\n \"siles\",\n \"silex\",\n \"silks\",\n \"sills\",\n \"silos\",\n \"silts\",\n \"silty\",\n \"silva\",\n \"simar\",\n \"simas\",\n \"simba\",\n \"simis\",\n \"simps\",\n \"simul\",\n \"sinds\",\n \"sined\",\n \"sines\",\n \"sings\",\n \"sinhs\",\n \"sinks\",\n \"sinky\",\n \"sinus\",\n \"siped\",\n \"sipes\",\n \"sippy\",\n \"sired\",\n \"siree\",\n \"sires\",\n \"sirih\",\n \"siris\",\n \"siroc\",\n \"sirra\",\n \"sirup\",\n \"sisal\",\n \"sises\",\n \"sista\",\n \"sists\",\n \"sitar\",\n \"sited\",\n \"sites\",\n \"sithe\",\n \"sitka\",\n \"situp\",\n \"situs\",\n \"siver\",\n \"sixer\",\n \"sixes\",\n \"sixmo\",\n \"sixte\",\n \"sizar\",\n \"sized\",\n \"sizel\",\n \"sizer\",\n \"sizes\",\n \"skags\",\n \"skail\",\n \"skald\",\n \"skank\",\n \"skart\",\n \"skats\",\n \"skatt\",\n \"skaws\",\n \"skean\",\n \"skear\",\n \"skeds\",\n \"skeed\",\n \"skeef\",\n \"skeen\",\n \"skeer\",\n \"skees\",\n \"skeet\",\n \"skegg\",\n \"skegs\",\n \"skein\",\n \"skelf\",\n \"skell\",\n \"skelm\",\n \"skelp\",\n \"skene\",\n \"skens\",\n \"skeos\",\n \"skeps\",\n \"skers\",\n \"skets\",\n \"skews\",\n \"skids\",\n \"skied\",\n \"skies\",\n \"skiey\",\n \"skimo\",\n \"skims\",\n \"skink\",\n \"skins\",\n \"skint\",\n \"skios\",\n \"skips\",\n \"skirl\",\n \"skirr\",\n \"skite\",\n \"skits\",\n \"skive\",\n \"skivy\",\n \"sklim\",\n \"skoal\",\n \"skody\",\n \"skoff\",\n \"skogs\",\n \"skols\",\n \"skool\",\n \"skort\",\n \"skosh\",\n \"skran\",\n \"skrik\",\n \"skuas\",\n \"skugs\",\n \"skyed\",\n \"skyer\",\n \"skyey\",\n \"skyfs\",\n \"skyre\",\n \"skyrs\",\n \"skyte\",\n \"slabs\",\n \"slade\",\n \"slaes\",\n \"slags\",\n \"slaid\",\n \"slake\",\n \"slams\",\n \"slane\",\n \"slank\",\n \"slaps\",\n \"slart\",\n \"slats\",\n \"slaty\",\n \"slaws\",\n \"slays\",\n \"slebs\",\n \"sleds\",\n \"sleer\",\n \"slews\",\n \"sleys\",\n \"slier\",\n \"slily\",\n \"slims\",\n \"slipe\",\n \"slips\",\n \"slipt\",\n \"slish\",\n \"slits\",\n \"slive\",\n \"sloan\",\n \"slobs\",\n \"sloes\",\n \"slogs\",\n \"sloid\",\n \"slojd\",\n \"slomo\",\n \"sloom\",\n \"sloot\",\n \"slops\",\n \"slopy\",\n \"slorm\",\n \"slots\",\n \"slove\",\n \"slows\",\n \"sloyd\",\n \"slubb\",\n \"slubs\",\n \"slued\",\n \"slues\",\n \"sluff\",\n \"slugs\",\n \"sluit\",\n \"slums\",\n \"slurb\",\n \"slurs\",\n \"sluse\",\n \"sluts\",\n \"slyer\",\n \"slype\",\n \"smaak\",\n \"smaik\",\n \"smalm\",\n \"smalt\",\n \"smarm\",\n \"smaze\",\n \"smeek\",\n \"smees\",\n \"smeik\",\n \"smeke\",\n \"smerk\",\n \"smews\",\n \"smirr\",\n \"smirs\",\n \"smits\",\n \"smogs\",\n \"smoko\",\n \"smolt\",\n \"smoor\",\n \"smoot\",\n \"smore\",\n \"smorg\",\n \"smout\",\n \"smowt\",\n \"smugs\",\n \"smurs\",\n \"smush\",\n \"smuts\",\n \"snabs\",\n \"snafu\",\n \"snags\",\n \"snaps\",\n \"snarf\",\n \"snark\",\n \"snars\",\n \"snary\",\n \"snash\",\n \"snath\",\n \"snaws\",\n \"snead\",\n \"sneap\",\n \"snebs\",\n \"sneck\",\n \"sneds\",\n \"sneed\",\n \"snees\",\n \"snell\",\n \"snibs\",\n \"snick\",\n \"snies\",\n \"snift\",\n \"snigs\",\n \"snips\",\n \"snipy\",\n \"snirt\",\n \"snits\",\n \"snobs\",\n \"snods\",\n \"snoek\",\n \"snoep\",\n \"snogs\",\n \"snoke\",\n \"snood\",\n \"snook\",\n \"snool\",\n \"snoot\",\n \"snots\",\n \"snowk\",\n \"snows\",\n \"snubs\",\n \"snugs\",\n \"snush\",\n \"snyes\",\n \"soaks\",\n \"soaps\",\n \"soare\",\n \"soars\",\n \"soave\",\n \"sobas\",\n \"socas\",\n \"soces\",\n \"socko\",\n \"socks\",\n \"socle\",\n \"sodas\",\n \"soddy\",\n \"sodic\",\n \"sodom\",\n \"sofar\",\n \"sofas\",\n \"softa\",\n \"softs\",\n \"softy\",\n \"soger\",\n \"sohur\",\n \"soils\",\n \"soily\",\n \"sojas\",\n \"sojus\",\n \"sokah\",\n \"soken\",\n \"sokes\",\n \"sokol\",\n \"solah\",\n \"solan\",\n \"solas\",\n \"solde\",\n \"soldi\",\n \"soldo\",\n \"solds\",\n \"soled\",\n \"solei\",\n \"soler\",\n \"soles\",\n \"solon\",\n \"solos\",\n \"solum\",\n \"solus\",\n \"soman\",\n \"somas\",\n \"sonce\",\n \"sonde\",\n \"sones\",\n \"songs\",\n \"sonly\",\n \"sonne\",\n \"sonny\",\n \"sonse\",\n \"sonsy\",\n \"sooey\",\n \"sooks\",\n \"sooky\",\n \"soole\",\n \"sools\",\n \"sooms\",\n \"soops\",\n \"soote\",\n \"soots\",\n \"sophs\",\n \"sophy\",\n \"sopor\",\n \"soppy\",\n \"sopra\",\n \"soral\",\n \"soras\",\n \"sorbo\",\n \"sorbs\",\n \"sorda\",\n \"sordo\",\n \"sords\",\n \"sored\",\n \"soree\",\n \"sorel\",\n \"sorer\",\n \"sores\",\n \"sorex\",\n \"sorgo\",\n \"sorns\",\n \"sorra\",\n \"sorta\",\n \"sorts\",\n \"sorus\",\n \"soths\",\n \"sotol\",\n \"souce\",\n \"souct\",\n \"sough\",\n \"souks\",\n \"souls\",\n \"soums\",\n \"soups\",\n \"soupy\",\n \"sours\",\n \"souse\",\n \"souts\",\n \"sowar\",\n \"sowce\",\n \"sowed\",\n \"sowff\",\n \"sowfs\",\n \"sowle\",\n \"sowls\",\n \"sowms\",\n \"sownd\",\n \"sowne\",\n \"sowps\",\n \"sowse\",\n \"sowth\",\n \"soyas\",\n \"soyle\",\n \"soyuz\",\n \"sozin\",\n \"spacy\",\n \"spado\",\n \"spaed\",\n \"spaer\",\n \"spaes\",\n \"spags\",\n \"spahi\",\n \"spail\",\n \"spain\",\n \"spait\",\n \"spake\",\n \"spald\",\n \"spale\",\n \"spall\",\n \"spalt\",\n \"spams\",\n \"spane\",\n \"spang\",\n \"spans\",\n \"spard\",\n \"spars\",\n \"spart\",\n \"spate\",\n \"spats\",\n \"spaul\",\n \"spawl\",\n \"spaws\",\n \"spayd\",\n \"spays\",\n \"spaza\",\n \"spazz\",\n \"speal\",\n \"spean\",\n \"speat\",\n \"specs\",\n \"spect\",\n \"speel\",\n \"speer\",\n \"speil\",\n \"speir\",\n \"speks\",\n \"speld\",\n \"spelk\",\n \"speos\",\n \"spets\",\n \"speug\",\n \"spews\",\n \"spewy\",\n \"spial\",\n \"spica\",\n \"spick\",\n \"spics\",\n \"spide\",\n \"spier\",\n \"spies\",\n \"spiff\",\n \"spifs\",\n \"spiks\",\n \"spile\",\n \"spims\",\n \"spina\",\n \"spink\",\n \"spins\",\n \"spirt\",\n \"spiry\",\n \"spits\",\n \"spitz\",\n \"spivs\",\n \"splay\",\n \"splog\",\n \"spode\",\n \"spods\",\n \"spoom\",\n \"spoor\",\n \"spoot\",\n \"spork\",\n \"sposh\",\n \"spots\",\n \"sprad\",\n \"sprag\",\n \"sprat\",\n \"spred\",\n \"sprew\",\n \"sprit\",\n \"sprod\",\n \"sprog\",\n \"sprue\",\n \"sprug\",\n \"spuds\",\n \"spued\",\n \"spuer\",\n \"spues\",\n \"spugs\",\n \"spule\",\n \"spume\",\n \"spumy\",\n \"spurs\",\n \"sputa\",\n \"spyal\",\n \"spyre\",\n \"squab\",\n \"squaw\",\n \"squeg\",\n \"squid\",\n \"squit\",\n \"squiz\",\n \"stabs\",\n \"stade\",\n \"stags\",\n \"stagy\",\n \"staig\",\n \"stane\",\n \"stang\",\n \"staph\",\n \"staps\",\n \"starn\",\n \"starr\",\n \"stars\",\n \"stats\",\n \"staun\",\n \"staws\",\n \"stays\",\n \"stean\",\n \"stear\",\n \"stedd\",\n \"stede\",\n \"steds\",\n \"steek\",\n \"steem\",\n \"steen\",\n \"steil\",\n \"stela\",\n \"stele\",\n \"stell\",\n \"steme\",\n \"stems\",\n \"stend\",\n \"steno\",\n \"stens\",\n \"stent\",\n \"steps\",\n \"stept\",\n \"stere\",\n \"stets\",\n \"stews\",\n \"stewy\",\n \"steys\",\n \"stich\",\n \"stied\",\n \"sties\",\n \"stilb\",\n \"stile\",\n \"stime\",\n \"stims\",\n \"stimy\",\n \"stipa\",\n \"stipe\",\n \"stire\",\n \"stirk\",\n \"stirp\",\n \"stirs\",\n \"stive\",\n \"stivy\",\n \"stoae\",\n \"stoai\",\n \"stoas\",\n \"stoat\",\n \"stobs\",\n \"stoep\",\n \"stogy\",\n \"stoit\",\n \"stoln\",\n \"stoma\",\n \"stond\",\n \"stong\",\n \"stonk\",\n \"stonn\",\n \"stook\",\n \"stoor\",\n \"stope\",\n \"stops\",\n \"stopt\",\n \"stoss\",\n \"stots\",\n \"stott\",\n \"stoun\",\n \"stoup\",\n \"stour\",\n \"stown\",\n \"stowp\",\n \"stows\",\n \"strad\",\n \"strae\",\n \"strag\",\n \"strak\",\n \"strep\",\n \"strew\",\n \"stria\",\n \"strig\",\n \"strim\",\n \"strop\",\n \"strow\",\n \"stroy\",\n \"strum\",\n \"stubs\",\n \"stude\",\n \"studs\",\n \"stull\",\n \"stulm\",\n \"stumm\",\n \"stums\",\n \"stuns\",\n \"stupa\",\n \"stupe\",\n \"sture\",\n \"sturt\",\n \"styed\",\n \"styes\",\n \"styli\",\n \"stylo\",\n \"styme\",\n \"stymy\",\n \"styre\",\n \"styte\",\n \"subah\",\n \"subas\",\n \"subby\",\n \"suber\",\n \"subha\",\n \"succi\",\n \"sucks\",\n \"sucky\",\n \"sucre\",\n \"sudds\",\n \"sudor\",\n \"sudsy\",\n \"suede\",\n \"suent\",\n \"suers\",\n \"suete\",\n \"suets\",\n \"suety\",\n \"sugan\",\n \"sughs\",\n \"sugos\",\n \"suhur\",\n \"suids\",\n \"suint\",\n \"suits\",\n \"sujee\",\n \"sukhs\",\n \"sukuk\",\n \"sulci\",\n \"sulfa\",\n \"sulfo\",\n \"sulks\",\n \"sulph\",\n \"sulus\",\n \"sumis\",\n \"summa\",\n \"sumos\",\n \"sumph\",\n \"sumps\",\n \"sunis\",\n \"sunks\",\n \"sunna\",\n \"sunns\",\n \"sunup\",\n \"supes\",\n \"supra\",\n \"surah\",\n \"sural\",\n \"suras\",\n \"surat\",\n \"surds\",\n \"sured\",\n \"sures\",\n \"surfs\",\n \"surfy\",\n \"surgy\",\n \"surra\",\n \"sused\",\n \"suses\",\n \"susus\",\n \"sutor\",\n \"sutra\",\n \"sutta\",\n \"swabs\",\n \"swack\",\n \"swads\",\n \"swage\",\n \"swags\",\n \"swail\",\n \"swain\",\n \"swale\",\n \"swaly\",\n \"swamy\",\n \"swang\",\n \"swank\",\n \"swans\",\n \"swaps\",\n \"swapt\",\n \"sward\",\n \"sware\",\n \"swarf\",\n \"swart\",\n \"swats\",\n \"swayl\",\n \"sways\",\n \"sweal\",\n \"swede\",\n \"sweed\",\n \"sweel\",\n \"sweer\",\n \"swees\",\n \"sweir\",\n \"swelt\",\n \"swerf\",\n \"sweys\",\n \"swies\",\n \"swigs\",\n \"swile\",\n \"swims\",\n \"swink\",\n \"swipe\",\n \"swire\",\n \"swiss\",\n \"swith\",\n \"swits\",\n \"swive\",\n \"swizz\",\n \"swobs\",\n \"swole\",\n \"swoln\",\n \"swops\",\n \"swopt\",\n \"swots\",\n \"swoun\",\n \"sybbe\",\n \"sybil\",\n \"syboe\",\n \"sybow\",\n \"sycee\",\n \"syces\",\n \"sycon\",\n \"syens\",\n \"syker\",\n \"sykes\",\n \"sylis\",\n \"sylph\",\n \"sylva\",\n \"symar\",\n \"synch\",\n \"syncs\",\n \"synds\",\n \"syned\",\n \"synes\",\n \"synth\",\n \"syped\",\n \"sypes\",\n \"syphs\",\n \"syrah\",\n \"syren\",\n \"sysop\",\n \"sythe\",\n \"syver\",\n \"taals\",\n \"taata\",\n \"taber\",\n \"tabes\",\n \"tabid\",\n \"tabis\",\n \"tabla\",\n \"tabor\",\n \"tabun\",\n \"tabus\",\n \"tacan\",\n \"taces\",\n \"tacet\",\n \"tache\",\n \"tacho\",\n \"tachs\",\n \"tacks\",\n \"tacos\",\n \"tacts\",\n \"taels\",\n \"tafia\",\n \"taggy\",\n \"tagma\",\n \"tahas\",\n \"tahrs\",\n \"taiga\",\n \"taigs\",\n \"taiko\",\n \"tails\",\n \"tains\",\n \"taira\",\n \"taish\",\n \"taits\",\n \"tajes\",\n \"takas\",\n \"takes\",\n \"takhi\",\n \"takin\",\n \"takis\",\n \"takky\",\n \"talak\",\n \"talaq\",\n \"talar\",\n \"talas\",\n \"talcs\",\n \"talcy\",\n \"talea\",\n \"taler\",\n \"tales\",\n \"talks\",\n \"talky\",\n \"talls\",\n \"talma\",\n \"talpa\",\n \"taluk\",\n \"talus\",\n \"tamal\",\n \"tamed\",\n \"tames\",\n \"tamin\",\n \"tamis\",\n \"tammy\",\n \"tamps\",\n \"tanas\",\n \"tanga\",\n \"tangi\",\n \"tangs\",\n \"tanhs\",\n \"tanka\",\n \"tanks\",\n \"tanky\",\n \"tanna\",\n \"tansy\",\n \"tanti\",\n \"tanto\",\n \"tanty\",\n \"tapas\",\n \"taped\",\n \"tapen\",\n \"tapes\",\n \"tapet\",\n \"tapis\",\n \"tappa\",\n \"tapus\",\n \"taras\",\n \"tardo\",\n \"tared\",\n \"tares\",\n \"targa\",\n \"targe\",\n \"tarns\",\n \"taroc\",\n \"tarok\",\n \"taros\",\n \"tarps\",\n \"tarre\",\n \"tarry\",\n \"tarsi\",\n \"tarts\",\n \"tarty\",\n \"tasar\",\n \"tased\",\n \"taser\",\n \"tases\",\n \"tasks\",\n \"tassa\",\n \"tasse\",\n \"tasso\",\n \"tatar\",\n \"tater\",\n \"tates\",\n \"taths\",\n \"tatie\",\n \"tatou\",\n \"tatts\",\n \"tatus\",\n \"taube\",\n \"tauld\",\n \"tauon\",\n \"taupe\",\n \"tauts\",\n \"tavah\",\n \"tavas\",\n \"taver\",\n \"tawai\",\n \"tawas\",\n \"tawed\",\n \"tawer\",\n \"tawie\",\n \"tawse\",\n \"tawts\",\n \"taxed\",\n \"taxer\",\n \"taxes\",\n \"taxis\",\n \"taxol\",\n \"taxon\",\n \"taxor\",\n \"taxus\",\n \"tayra\",\n \"tazza\",\n \"tazze\",\n \"teade\",\n \"teads\",\n \"teaed\",\n \"teaks\",\n \"teals\",\n \"teams\",\n \"tears\",\n \"teats\",\n \"teaze\",\n \"techs\",\n \"techy\",\n \"tecta\",\n \"teels\",\n \"teems\",\n \"teend\",\n \"teene\",\n \"teens\",\n \"teeny\",\n \"teers\",\n \"teffs\",\n \"teggs\",\n \"tegua\",\n \"tegus\",\n \"tehrs\",\n \"teiid\",\n \"teils\",\n \"teind\",\n \"teins\",\n \"telae\",\n \"telco\",\n \"teles\",\n \"telex\",\n \"telia\",\n \"telic\",\n \"tells\",\n \"telly\",\n \"teloi\",\n \"telos\",\n \"temed\",\n \"temes\",\n \"tempi\",\n \"temps\",\n \"tempt\",\n \"temse\",\n \"tench\",\n \"tends\",\n \"tendu\",\n \"tenes\",\n \"tenge\",\n \"tenia\",\n \"tenne\",\n \"tenno\",\n \"tenny\",\n \"tenon\",\n \"tents\",\n \"tenty\",\n \"tenue\",\n \"tepal\",\n \"tepas\",\n \"tepoy\",\n \"terai\",\n \"teras\",\n \"terce\",\n \"terek\",\n \"teres\",\n \"terfe\",\n \"terfs\",\n \"terga\",\n \"terms\",\n \"terne\",\n \"terns\",\n \"terry\",\n \"terts\",\n \"tesla\",\n \"testa\",\n \"teste\",\n \"tests\",\n \"tetes\",\n \"teths\",\n \"tetra\",\n \"tetri\",\n \"teuch\",\n \"teugh\",\n \"tewed\",\n \"tewel\",\n \"tewit\",\n \"texas\",\n \"texes\",\n \"texts\",\n \"thack\",\n \"thagi\",\n \"thaim\",\n \"thale\",\n \"thali\",\n \"thana\",\n \"thane\",\n \"thang\",\n \"thans\",\n \"thanx\",\n \"tharm\",\n \"thars\",\n \"thaws\",\n \"thawy\",\n \"thebe\",\n \"theca\",\n \"theed\",\n \"theek\",\n \"thees\",\n \"thegn\",\n \"theic\",\n \"thein\",\n \"thelf\",\n \"thema\",\n \"thens\",\n \"theow\",\n \"therm\",\n \"thesp\",\n \"thete\",\n \"thews\",\n \"thewy\",\n \"thigs\",\n \"thilk\",\n \"thill\",\n \"thine\",\n \"thins\",\n \"thiol\",\n \"thirl\",\n \"thoft\",\n \"thole\",\n \"tholi\",\n \"thoro\",\n \"thorp\",\n \"thous\",\n \"thowl\",\n \"thrae\",\n \"thraw\",\n \"thrid\",\n \"thrip\",\n \"throe\",\n \"thuds\",\n \"thugs\",\n \"thuja\",\n \"thunk\",\n \"thurl\",\n \"thuya\",\n \"thymi\",\n \"thymy\",\n \"tians\",\n \"tiars\",\n \"tical\",\n \"ticca\",\n \"ticed\",\n \"tices\",\n \"tichy\",\n \"ticks\",\n \"ticky\",\n \"tiddy\",\n \"tided\",\n \"tides\",\n \"tiers\",\n \"tiffs\",\n \"tifos\",\n \"tifts\",\n \"tiges\",\n \"tigon\",\n \"tikas\",\n \"tikes\",\n \"tikis\",\n \"tikka\",\n \"tilak\",\n \"tiled\",\n \"tiler\",\n \"tiles\",\n \"tills\",\n \"tilly\",\n \"tilth\",\n \"tilts\",\n \"timbo\",\n \"timed\",\n \"times\",\n \"timon\",\n \"timps\",\n \"tinas\",\n \"tinct\",\n \"tinds\",\n \"tinea\",\n \"tined\",\n \"tines\",\n \"tinge\",\n \"tings\",\n \"tinks\",\n \"tinny\",\n \"tints\",\n \"tinty\",\n \"tipis\",\n \"tippy\",\n \"tired\",\n \"tires\",\n \"tirls\",\n \"tiros\",\n \"tirrs\",\n \"titch\",\n \"titer\",\n \"titis\",\n \"titre\",\n \"titty\",\n \"titup\",\n \"tiyin\",\n \"tiyns\",\n \"tizes\",\n \"tizzy\",\n \"toads\",\n \"toady\",\n \"toaze\",\n \"tocks\",\n \"tocky\",\n \"tocos\",\n \"todde\",\n \"toeas\",\n \"toffs\",\n \"toffy\",\n \"tofts\",\n \"tofus\",\n \"togae\",\n \"togas\",\n \"toged\",\n \"toges\",\n \"togue\",\n \"tohos\",\n \"toile\",\n \"toils\",\n \"toing\",\n \"toise\",\n \"toits\",\n \"tokay\",\n \"toked\",\n \"toker\",\n \"tokes\",\n \"tokos\",\n \"tolan\",\n \"tolar\",\n \"tolas\",\n \"toled\",\n \"toles\",\n \"tolls\",\n \"tolly\",\n \"tolts\",\n \"tolus\",\n \"tolyl\",\n \"toman\",\n \"tombs\",\n \"tomes\",\n \"tomia\",\n \"tommy\",\n \"tomos\",\n \"tondi\",\n \"tondo\",\n \"toned\",\n \"toner\",\n \"tones\",\n \"toney\",\n \"tongs\",\n \"tonka\",\n \"tonks\",\n \"tonne\",\n \"tonus\",\n \"tools\",\n \"tooms\",\n \"toons\",\n \"toots\",\n \"toped\",\n \"topee\",\n \"topek\",\n \"toper\",\n \"topes\",\n \"tophe\",\n \"tophi\",\n \"tophs\",\n \"topis\",\n \"topoi\",\n \"topos\",\n \"toppy\",\n \"toque\",\n \"torah\",\n \"toran\",\n \"toras\",\n \"torcs\",\n \"tores\",\n \"toric\",\n \"torii\",\n \"toros\",\n \"torot\",\n \"torrs\",\n \"torse\",\n \"torsi\",\n \"torsk\",\n \"torta\",\n \"torte\",\n \"torts\",\n \"tosas\",\n \"tosed\",\n \"toses\",\n \"toshy\",\n \"tossy\",\n \"toted\",\n \"toter\",\n \"totes\",\n \"totty\",\n \"touks\",\n \"touns\",\n \"tours\",\n \"touse\",\n \"tousy\",\n \"touts\",\n \"touze\",\n \"touzy\",\n \"towed\",\n \"towie\",\n \"towns\",\n \"towny\",\n \"towse\",\n \"towsy\",\n \"towts\",\n \"towze\",\n \"towzy\",\n \"toyed\",\n \"toyer\",\n \"toyon\",\n \"toyos\",\n \"tozed\",\n \"tozes\",\n \"tozie\",\n \"trabs\",\n \"trads\",\n \"tragi\",\n \"traik\",\n \"trams\",\n \"trank\",\n \"tranq\",\n \"trans\",\n \"trant\",\n \"trape\",\n \"traps\",\n \"trapt\",\n \"trass\",\n \"trats\",\n \"tratt\",\n \"trave\",\n \"trayf\",\n \"trays\",\n \"treck\",\n \"treed\",\n \"treen\",\n \"trees\",\n \"trefa\",\n \"treif\",\n \"treks\",\n \"trema\",\n \"trems\",\n \"tress\",\n \"trest\",\n \"trets\",\n \"trews\",\n \"treyf\",\n \"treys\",\n \"triac\",\n \"tride\",\n \"trier\",\n \"tries\",\n \"triff\",\n \"trigo\",\n \"trigs\",\n \"trike\",\n \"trild\",\n \"trill\",\n \"trims\",\n \"trine\",\n \"trins\",\n \"triol\",\n \"trior\",\n \"trios\",\n \"trips\",\n \"tripy\",\n \"trist\",\n \"troad\",\n \"troak\",\n \"troat\",\n \"trock\",\n \"trode\",\n \"trods\",\n \"trogs\",\n \"trois\",\n \"troke\",\n \"tromp\",\n \"trona\",\n \"tronc\",\n \"trone\",\n \"tronk\",\n \"trons\",\n \"trooz\",\n \"troth\",\n \"trots\",\n \"trows\",\n \"troys\",\n \"trued\",\n \"trues\",\n \"trugo\",\n \"trugs\",\n \"trull\",\n \"tryer\",\n \"tryke\",\n \"tryma\",\n \"tryps\",\n \"tsade\",\n \"tsadi\",\n \"tsars\",\n \"tsked\",\n \"tsuba\",\n \"tsubo\",\n \"tuans\",\n \"tuart\",\n \"tuath\",\n \"tubae\",\n \"tubar\",\n \"tubas\",\n \"tubby\",\n \"tubed\",\n \"tubes\",\n \"tucks\",\n \"tufas\",\n \"tuffe\",\n \"tuffs\",\n \"tufts\",\n \"tufty\",\n \"tugra\",\n \"tuile\",\n \"tuina\",\n \"tuism\",\n \"tuktu\",\n \"tules\",\n \"tulpa\",\n \"tulsi\",\n \"tumid\",\n \"tummy\",\n \"tumps\",\n \"tumpy\",\n \"tunas\",\n \"tunds\",\n \"tuned\",\n \"tuner\",\n \"tunes\",\n \"tungs\",\n \"tunny\",\n \"tupek\",\n \"tupik\",\n \"tuple\",\n \"tuque\",\n \"turds\",\n \"turfs\",\n \"turfy\",\n \"turks\",\n \"turme\",\n \"turms\",\n \"turns\",\n \"turnt\",\n \"turps\",\n \"turrs\",\n \"tushy\",\n \"tusks\",\n \"tusky\",\n \"tutee\",\n \"tutti\",\n \"tutty\",\n \"tutus\",\n \"tuxes\",\n \"tuyer\",\n \"twaes\",\n \"twain\",\n \"twals\",\n \"twank\",\n \"twats\",\n \"tways\",\n \"tweel\",\n \"tween\",\n \"tweep\",\n \"tweer\",\n \"twerk\",\n \"twerp\",\n \"twier\",\n \"twigs\",\n \"twill\",\n \"twilt\",\n \"twink\",\n \"twins\",\n \"twiny\",\n \"twire\",\n \"twirp\",\n \"twite\",\n \"twits\",\n \"twoer\",\n \"twyer\",\n \"tyees\",\n \"tyers\",\n \"tyiyn\",\n \"tykes\",\n \"tyler\",\n \"tymps\",\n \"tynde\",\n \"tyned\",\n \"tynes\",\n \"typal\",\n \"typed\",\n \"types\",\n \"typey\",\n \"typic\",\n \"typos\",\n \"typps\",\n \"typto\",\n \"tyran\",\n \"tyred\",\n \"tyres\",\n \"tyros\",\n \"tythe\",\n \"tzars\",\n \"udals\",\n \"udons\",\n \"ugali\",\n \"ugged\",\n \"uhlan\",\n \"uhuru\",\n \"ukase\",\n \"ulama\",\n \"ulans\",\n \"ulema\",\n \"ulmin\",\n \"ulnad\",\n \"ulnae\",\n \"ulnar\",\n \"ulnas\",\n \"ulpan\",\n \"ulvas\",\n \"ulyie\",\n \"ulzie\",\n \"umami\",\n \"umbel\",\n \"umber\",\n \"umble\",\n \"umbos\",\n \"umbre\",\n \"umiac\",\n \"umiak\",\n \"umiaq\",\n \"ummah\",\n \"ummas\",\n \"ummed\",\n \"umped\",\n \"umphs\",\n \"umpie\",\n \"umpty\",\n \"umrah\",\n \"umras\",\n \"unais\",\n \"unapt\",\n \"unarm\",\n \"unary\",\n \"unaus\",\n \"unbag\",\n \"unban\",\n \"unbar\",\n \"unbed\",\n \"unbid\",\n \"unbox\",\n \"uncap\",\n \"unces\",\n \"uncia\",\n \"uncos\",\n \"uncoy\",\n \"uncus\",\n \"undam\",\n \"undee\",\n \"undos\",\n \"undug\",\n \"uneth\",\n \"unfix\",\n \"ungag\",\n \"unget\",\n \"ungod\",\n \"ungot\",\n \"ungum\",\n \"unhat\",\n \"unhip\",\n \"unica\",\n \"units\",\n \"unjam\",\n \"unked\",\n \"unket\",\n \"unkid\",\n \"unlaw\",\n \"unlay\",\n \"unled\",\n \"unlet\",\n \"unlid\",\n \"unman\",\n \"unmew\",\n \"unmix\",\n \"unpay\",\n \"unpeg\",\n \"unpen\",\n \"unpin\",\n \"unred\",\n \"unrid\",\n \"unrig\",\n \"unrip\",\n \"unsaw\",\n \"unsay\",\n \"unsee\",\n \"unsew\",\n \"unsex\",\n \"unsod\",\n \"untax\",\n \"untin\",\n \"unwet\",\n \"unwit\",\n \"unwon\",\n \"upbow\",\n \"upbye\",\n \"updos\",\n \"updry\",\n \"upend\",\n \"upjet\",\n \"uplay\",\n \"upled\",\n \"uplit\",\n \"upped\",\n \"upran\",\n \"uprun\",\n \"upsee\",\n \"upsey\",\n \"uptak\",\n \"upter\",\n \"uptie\",\n \"uraei\",\n \"urali\",\n \"uraos\",\n \"urare\",\n \"urari\",\n \"urase\",\n \"urate\",\n \"urbex\",\n \"urbia\",\n \"urdee\",\n \"ureal\",\n \"ureas\",\n \"uredo\",\n \"ureic\",\n \"urena\",\n \"urent\",\n \"urged\",\n \"urger\",\n \"urges\",\n \"urial\",\n \"urite\",\n \"urman\",\n \"urnal\",\n \"urned\",\n \"urped\",\n \"ursae\",\n \"ursid\",\n \"urson\",\n \"urubu\",\n \"urvas\",\n \"users\",\n \"usnea\",\n \"usque\",\n \"usure\",\n \"usury\",\n \"uteri\",\n \"uveal\",\n \"uveas\",\n \"uvula\",\n \"vacua\",\n \"vaded\",\n \"vades\",\n \"vagal\",\n \"vagus\",\n \"vails\",\n \"vaire\",\n \"vairs\",\n \"vairy\",\n \"vakas\",\n \"vakil\",\n \"vales\",\n \"valis\",\n \"valse\",\n \"vamps\",\n \"vampy\",\n \"vanda\",\n \"vaned\",\n \"vanes\",\n \"vangs\",\n \"vants\",\n \"vaped\",\n \"vaper\",\n \"vapes\",\n \"varan\",\n \"varas\",\n \"vardy\",\n \"varec\",\n \"vares\",\n \"varia\",\n \"varix\",\n \"varna\",\n \"varus\",\n \"varve\",\n \"vasal\",\n \"vases\",\n \"vasts\",\n \"vasty\",\n \"vatic\",\n \"vatus\",\n \"vauch\",\n \"vaute\",\n \"vauts\",\n \"vawte\",\n \"vaxes\",\n \"veale\",\n \"veals\",\n \"vealy\",\n \"veena\",\n \"veeps\",\n \"veers\",\n \"veery\",\n \"vegas\",\n \"veges\",\n \"vegie\",\n \"vegos\",\n \"vehme\",\n \"veils\",\n \"veily\",\n \"veins\",\n \"veiny\",\n \"velar\",\n \"velds\",\n \"veldt\",\n \"veles\",\n \"vells\",\n \"velum\",\n \"venae\",\n \"venal\",\n \"vends\",\n \"vendu\",\n \"veney\",\n \"venge\",\n \"venin\",\n \"vents\",\n \"venus\",\n \"verbs\",\n \"verra\",\n \"verry\",\n \"verst\",\n \"verts\",\n \"vertu\",\n \"vespa\",\n \"vesta\",\n \"vests\",\n \"vetch\",\n \"vexed\",\n \"vexer\",\n \"vexes\",\n \"vexil\",\n \"vezir\",\n \"vials\",\n \"viand\",\n \"vibes\",\n \"vibex\",\n \"vibey\",\n \"viced\",\n \"vices\",\n \"vichy\",\n \"viers\",\n \"views\",\n \"viewy\",\n \"vifda\",\n \"viffs\",\n \"vigas\",\n \"vigia\",\n \"vilde\",\n \"viler\",\n \"villi\",\n \"vills\",\n \"vimen\",\n \"vinal\",\n \"vinas\",\n \"vinca\",\n \"vined\",\n \"viner\",\n \"vines\",\n \"vinew\",\n \"vinic\",\n \"vinos\",\n \"vints\",\n \"viold\",\n \"viols\",\n \"vired\",\n \"vireo\",\n \"vires\",\n \"virga\",\n \"virge\",\n \"virid\",\n \"virls\",\n \"virtu\",\n \"visas\",\n \"vised\",\n \"vises\",\n \"visie\",\n \"visne\",\n \"vison\",\n \"visto\",\n \"vitae\",\n \"vitas\",\n \"vitex\",\n \"vitro\",\n \"vitta\",\n \"vivas\",\n \"vivat\",\n \"vivda\",\n \"viver\",\n \"vives\",\n \"vizir\",\n \"vizor\",\n \"vleis\",\n \"vlies\",\n \"vlogs\",\n \"voars\",\n \"vocab\",\n \"voces\",\n \"voddy\",\n \"vodou\",\n \"vodun\",\n \"voema\",\n \"vogie\",\n \"voids\",\n \"voile\",\n \"voips\",\n \"volae\",\n \"volar\",\n \"voled\",\n \"voles\",\n \"volet\",\n \"volks\",\n \"volta\",\n \"volte\",\n \"volti\",\n \"volts\",\n \"volva\",\n \"volve\",\n \"vomer\",\n \"voted\",\n \"votes\",\n \"vouge\",\n \"voulu\",\n \"vowed\",\n \"vower\",\n \"voxel\",\n \"vozhd\",\n \"vraic\",\n \"vrils\",\n \"vroom\",\n \"vrous\",\n \"vrouw\",\n \"vrows\",\n \"vuggs\",\n \"vuggy\",\n \"vughs\",\n \"vughy\",\n \"vulgo\",\n \"vulns\",\n \"vulva\",\n \"vutty\",\n \"waacs\",\n \"wacke\",\n \"wacko\",\n \"wacks\",\n \"wadds\",\n \"waddy\",\n \"waded\",\n \"wader\",\n \"wades\",\n \"wadge\",\n \"wadis\",\n \"wadts\",\n \"waffs\",\n \"wafts\",\n \"waged\",\n \"wages\",\n \"wagga\",\n \"wagyu\",\n \"wahoo\",\n \"waide\",\n \"waifs\",\n \"waift\",\n \"wails\",\n \"wains\",\n \"wairs\",\n \"waite\",\n \"waits\",\n \"wakas\",\n \"waked\",\n \"waken\",\n \"waker\",\n \"wakes\",\n \"wakfs\",\n \"waldo\",\n \"walds\",\n \"waled\",\n \"waler\",\n \"wales\",\n \"walie\",\n \"walis\",\n \"walks\",\n \"walla\",\n \"walls\",\n \"wally\",\n \"walty\",\n \"wamed\",\n \"wames\",\n \"wamus\",\n \"wands\",\n \"waned\",\n \"wanes\",\n \"waney\",\n \"wangs\",\n \"wanks\",\n \"wanky\",\n \"wanle\",\n \"wanly\",\n \"wanna\",\n \"wants\",\n \"wanty\",\n \"wanze\",\n \"waqfs\",\n \"warbs\",\n \"warby\",\n \"wards\",\n \"wared\",\n \"wares\",\n \"warez\",\n \"warks\",\n \"warms\",\n \"warns\",\n \"warps\",\n \"warre\",\n \"warst\",\n \"warts\",\n \"wases\",\n \"washy\",\n \"wasms\",\n \"wasps\",\n \"waspy\",\n \"wasts\",\n \"watap\",\n \"watts\",\n \"wauff\",\n \"waugh\",\n \"wauks\",\n \"waulk\",\n \"wauls\",\n \"waurs\",\n \"waved\",\n \"waves\",\n \"wavey\",\n \"wawas\",\n \"wawes\",\n \"wawls\",\n \"waxed\",\n \"waxer\",\n \"waxes\",\n \"wayed\",\n \"wazir\",\n \"wazoo\",\n \"weald\",\n \"weals\",\n \"weamb\",\n \"weans\",\n \"wears\",\n \"webby\",\n \"weber\",\n \"wecht\",\n \"wedel\",\n \"wedgy\",\n \"weeds\",\n \"weeke\",\n \"weeks\",\n \"weels\",\n \"weems\",\n \"weens\",\n \"weeny\",\n \"weeps\",\n \"weepy\",\n \"weest\",\n \"weete\",\n \"weets\",\n \"wefte\",\n \"wefts\",\n \"weids\",\n \"weils\",\n \"weirs\",\n \"weise\",\n \"weize\",\n \"wekas\",\n \"welds\",\n \"welke\",\n \"welks\",\n \"welkt\",\n \"wells\",\n \"welly\",\n \"welts\",\n \"wembs\",\n \"wends\",\n \"wenge\",\n \"wenny\",\n \"wents\",\n \"weros\",\n \"wersh\",\n \"wests\",\n \"wetas\",\n \"wetly\",\n \"wexed\",\n \"wexes\",\n \"whamo\",\n \"whams\",\n \"whang\",\n \"whaps\",\n \"whare\",\n \"whata\",\n \"whats\",\n \"whaup\",\n \"whaur\",\n \"wheal\",\n \"whear\",\n \"wheen\",\n \"wheep\",\n \"wheft\",\n \"whelk\",\n \"whelm\",\n \"whens\",\n \"whets\",\n \"whews\",\n \"wheys\",\n \"whids\",\n \"whift\",\n \"whigs\",\n \"whilk\",\n \"whims\",\n \"whins\",\n \"whios\",\n \"whips\",\n \"whipt\",\n \"whirr\",\n \"whirs\",\n \"whish\",\n \"whiss\",\n \"whist\",\n \"whits\",\n \"whity\",\n \"whizz\",\n \"whomp\",\n \"whoof\",\n \"whoot\",\n \"whops\",\n \"whore\",\n \"whorl\",\n \"whort\",\n \"whoso\",\n \"whows\",\n \"whump\",\n \"whups\",\n \"whyda\",\n \"wicca\",\n \"wicks\",\n \"wicky\",\n \"widdy\",\n \"wides\",\n \"wiels\",\n \"wifed\",\n \"wifes\",\n \"wifey\",\n \"wifie\",\n \"wifty\",\n \"wigan\",\n \"wigga\",\n \"wiggy\",\n \"wikis\",\n \"wilco\",\n \"wilds\",\n \"wiled\",\n \"wiles\",\n \"wilga\",\n \"wilis\",\n \"wilja\",\n \"wills\",\n \"wilts\",\n \"wimps\",\n \"winds\",\n \"wined\",\n \"wines\",\n \"winey\",\n \"winge\",\n \"wings\",\n \"wingy\",\n \"winks\",\n \"winna\",\n \"winns\",\n \"winos\",\n \"winze\",\n \"wiped\",\n \"wiper\",\n \"wipes\",\n \"wired\",\n \"wirer\",\n \"wires\",\n \"wirra\",\n \"wised\",\n \"wises\",\n \"wisha\",\n \"wisht\",\n \"wisps\",\n \"wists\",\n \"witan\",\n \"wited\",\n \"wites\",\n \"withe\",\n \"withs\",\n \"withy\",\n \"wived\",\n \"wiver\",\n \"wives\",\n \"wizen\",\n \"wizes\",\n \"woads\",\n \"woald\",\n \"wocks\",\n \"wodge\",\n \"woful\",\n \"wojus\",\n \"woker\",\n \"wokka\",\n \"wolds\",\n \"wolfs\",\n \"wolly\",\n \"wolve\",\n \"wombs\",\n \"womby\",\n \"womyn\",\n \"wonga\",\n \"wongi\",\n \"wonks\",\n \"wonky\",\n \"wonts\",\n \"woods\",\n \"wooed\",\n \"woofs\",\n \"woofy\",\n \"woold\",\n \"wools\",\n \"woons\",\n \"woops\",\n \"woopy\",\n \"woose\",\n \"woosh\",\n \"wootz\",\n \"words\",\n \"works\",\n \"worms\",\n \"wormy\",\n \"worts\",\n \"wowed\",\n \"wowee\",\n \"woxen\",\n \"wrang\",\n \"wraps\",\n \"wrapt\",\n \"wrast\",\n \"wrate\",\n \"wrawl\",\n \"wrens\",\n \"wrick\",\n \"wried\",\n \"wrier\",\n \"wries\",\n \"writs\",\n \"wroke\",\n \"wroot\",\n \"wroth\",\n \"wryer\",\n \"wuddy\",\n \"wudus\",\n \"wulls\",\n \"wurst\",\n \"wuses\",\n \"wushu\",\n \"wussy\",\n \"wuxia\",\n \"wyled\",\n \"wyles\",\n \"wynds\",\n \"wynns\",\n \"wyted\",\n \"wytes\",\n \"xebec\",\n \"xenia\",\n \"xenic\",\n \"xenon\",\n \"xeric\",\n \"xerox\",\n \"xerus\",\n \"xoana\",\n \"xrays\",\n \"xylan\",\n \"xylem\",\n \"xylic\",\n \"xylol\",\n \"xylyl\",\n \"xysti\",\n \"xysts\",\n \"yaars\",\n \"yabas\",\n \"yabba\",\n \"yabby\",\n \"yacca\",\n \"yacka\",\n \"yacks\",\n \"yaffs\",\n \"yager\",\n \"yages\",\n \"yagis\",\n \"yahoo\",\n \"yaird\",\n \"yakka\",\n \"yakow\",\n \"yales\",\n \"yamen\",\n \"yampy\",\n \"yamun\",\n \"yangs\",\n \"yanks\",\n \"yapok\",\n \"yapon\",\n \"yapps\",\n \"yappy\",\n \"yarak\",\n \"yarco\",\n \"yards\",\n \"yarer\",\n \"yarfa\",\n \"yarks\",\n \"yarns\",\n \"yarrs\",\n \"yarta\",\n \"yarto\",\n \"yates\",\n \"yauds\",\n \"yauld\",\n \"yaups\",\n \"yawed\",\n \"yawey\",\n \"yawls\",\n \"yawns\",\n \"yawny\",\n \"yawps\",\n \"ybore\",\n \"yclad\",\n \"ycled\",\n \"ycond\",\n \"ydrad\",\n \"ydred\",\n \"yeads\",\n \"yeahs\",\n \"yealm\",\n \"yeans\",\n \"yeard\",\n \"years\",\n \"yecch\",\n \"yechs\",\n \"yechy\",\n \"yedes\",\n \"yeeds\",\n \"yeesh\",\n \"yeggs\",\n \"yelks\",\n \"yells\",\n \"yelms\",\n \"yelps\",\n \"yelts\",\n \"yenta\",\n \"yente\",\n \"yerba\",\n \"yerds\",\n \"yerks\",\n \"yeses\",\n \"yesks\",\n \"yests\",\n \"yesty\",\n \"yetis\",\n \"yetts\",\n \"yeuks\",\n \"yeuky\",\n \"yeven\",\n \"yeves\",\n \"yewen\",\n \"yexed\",\n \"yexes\",\n \"yfere\",\n \"yiked\",\n \"yikes\",\n \"yills\",\n \"yince\",\n \"yipes\",\n \"yippy\",\n \"yirds\",\n \"yirks\",\n \"yirrs\",\n \"yirth\",\n \"yites\",\n \"yitie\",\n \"ylems\",\n \"ylike\",\n \"ylkes\",\n \"ymolt\",\n \"ympes\",\n \"yobbo\",\n \"yobby\",\n \"yocks\",\n \"yodel\",\n \"yodhs\",\n \"yodle\",\n \"yogas\",\n \"yogee\",\n \"yoghs\",\n \"yogic\",\n \"yogin\",\n \"yogis\",\n \"yoick\",\n \"yojan\",\n \"yoked\",\n \"yokel\",\n \"yoker\",\n \"yokes\",\n \"yokul\",\n \"yolks\",\n \"yolky\",\n \"yomim\",\n \"yomps\",\n \"yonic\",\n \"yonis\",\n \"yonks\",\n \"yoofs\",\n \"yoops\",\n \"yores\",\n \"yorks\",\n \"yorps\",\n \"youks\",\n \"yourn\",\n \"yours\",\n \"yourt\",\n \"youse\",\n \"yowed\",\n \"yowes\",\n \"yowie\",\n \"yowls\",\n \"yowza\",\n \"yrapt\",\n \"yrent\",\n \"yrivd\",\n \"yrneh\",\n \"ysame\",\n \"ytost\",\n \"yuans\",\n \"yucas\",\n \"yucca\",\n \"yucch\",\n \"yucko\",\n \"yucks\",\n \"yucky\",\n \"yufts\",\n \"yugas\",\n \"yuked\",\n \"yukes\",\n \"yukky\",\n \"yukos\",\n \"yulan\",\n \"yules\",\n \"yummo\",\n \"yummy\",\n \"yumps\",\n \"yupon\",\n \"yuppy\",\n \"yurta\",\n \"yurts\",\n \"yuzus\",\n \"zabra\",\n \"zacks\",\n \"zaida\",\n \"zaidy\",\n \"zaire\",\n \"zakat\",\n \"zaman\",\n \"zambo\",\n \"zamia\",\n \"zanja\",\n \"zante\",\n \"zanza\",\n \"zanze\",\n \"zappy\",\n \"zarfs\",\n \"zaris\",\n \"zatis\",\n \"zaxes\",\n \"zayin\",\n \"zazen\",\n \"zeals\",\n \"zebec\",\n \"zebub\",\n \"zebus\",\n \"zedas\",\n \"zeins\",\n \"zendo\",\n \"zerda\",\n \"zerks\",\n \"zeros\",\n \"zests\",\n \"zetas\",\n \"zexes\",\n \"zezes\",\n \"zhomo\",\n \"zibet\",\n \"ziffs\",\n \"zigan\",\n \"zilas\",\n \"zilch\",\n \"zilla\",\n \"zills\",\n \"zimbi\",\n \"zimbs\",\n \"zinco\",\n \"zincs\",\n \"zincy\",\n \"zineb\",\n \"zines\",\n \"zings\",\n \"zingy\",\n \"zinke\",\n \"zinky\",\n \"zippo\",\n \"zippy\",\n \"ziram\",\n \"zitis\",\n \"zizel\",\n \"zizit\",\n \"zlote\",\n \"zloty\",\n \"zoaea\",\n \"zobos\",\n \"zobus\",\n \"zocco\",\n \"zoeae\",\n \"zoeal\",\n \"zoeas\",\n \"zoism\",\n \"zoist\",\n \"zombi\",\n \"zonae\",\n \"zonda\",\n \"zoned\",\n \"zoner\",\n \"zones\",\n \"zonks\",\n \"zooea\",\n \"zooey\",\n \"zooid\",\n \"zooks\",\n \"zooms\",\n \"zoons\",\n \"zooty\",\n \"zoppa\",\n \"zoppo\",\n \"zoril\",\n \"zoris\",\n \"zorro\",\n \"zouks\",\n \"zowee\",\n \"zowie\",\n \"zulus\",\n \"zupan\",\n \"zupas\",\n \"zuppa\",\n \"zurfs\",\n \"zuzim\",\n \"zygal\",\n \"zygon\",\n \"zymes\",\n \"zymic\"\n]);\nclass Game {\n /**\n * Create a game object from the player's cookie, or initialise a new game\n */\n constructor(serialized = void 0) {\n if (serialized) {\n const [index, guesses, answers] = serialized.split(\"-\");\n this.index = +index;\n this.guesses = guesses ? guesses.split(\" \") : [];\n this.answers = answers ? answers.split(\" \") : [];\n } else {\n this.index = Math.floor(Math.random() * words.length);\n this.guesses = [\"\", \"\", \"\", \"\", \"\", \"\"];\n this.answers = [];\n }\n this.answer = words[this.index];\n }\n /**\n * Update game state based on a guess of a five-letter word. Returns\n * true if the guess was valid, false otherwise\n */\n enter(letters) {\n const word = letters.join(\"\");\n const valid = allowed.has(word);\n if (!valid)\n return false;\n this.guesses[this.answers.length] = word;\n const available = Array.from(this.answer);\n const answer = Array(5).fill(\"_\");\n for (let i = 0; i < 5; i += 1) {\n if (letters[i] === available[i]) {\n answer[i] = \"x\";\n available[i] = \" \";\n }\n }\n for (let i = 0; i < 5; i += 1) {\n if (answer[i] === \"_\") {\n const index = available.indexOf(letters[i]);\n if (index !== -1) {\n answer[i] = \"c\";\n available[index] = \" \";\n }\n }\n }\n this.answers.push(answer.join(\"\"));\n return true;\n }\n /**\n * Serialize game state so it can be set as a cookie\n */\n toString() {\n return `${this.index}-${this.guesses.join(\" \")}-${this.answers.join(\" \")}`;\n }\n}\nconst load = ({ cookies }) => {\n const game = new Game(cookies.get(\"sverdle\"));\n return {\n /**\n * The player's guessed words so far\n */\n guesses: game.guesses,\n /**\n * An array of strings like '__x_c' corresponding to the guesses, where 'x' means\n * an exact match, and 'c' means a close match (right letter, wrong place)\n */\n answers: game.answers,\n /**\n * The correct answer, revealed if the game is over\n */\n answer: game.answers.length >= 6 ? game.answer : null\n };\n};\nconst actions = {\n /**\n * Modify game state in reaction to a keypress. If client-side JavaScript\n * is available, this will happen in the browser instead of here\n */\n update: async ({ request, cookies }) => {\n const game = new Game(cookies.get(\"sverdle\"));\n const data = await request.formData();\n const key = data.get(\"key\");\n const i = game.answers.length;\n if (key === \"backspace\") {\n game.guesses[i] = game.guesses[i].slice(0, -1);\n } else {\n game.guesses[i] += key;\n }\n cookies.set(\"sverdle\", game.toString());\n },\n /**\n * Modify game state in reaction to a guessed word. This logic always runs on\n * the server, so that people can't cheat by peeking at the JavaScript\n */\n enter: async ({ request, cookies }) => {\n const game = new Game(cookies.get(\"sverdle\"));\n const data = await request.formData();\n const guess = data.getAll(\"guess\");\n if (!game.enter(guess)) {\n return fail(400, { badGuess: true });\n }\n cookies.set(\"sverdle\", game.toString());\n },\n restart: async ({ cookies }) => {\n cookies.delete(\"sverdle\");\n }\n};\nexport {\n actions,\n load\n};\n","import * as server from '../entries/pages/sverdle/_page.server.ts.js';\n\nexport const index = 4;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/sverdle/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/sverdle/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/4.125b71e3.js\",\"_app/immutable/chunks/scheduler.cbf234a0.js\",\"_app/immutable/chunks/index.200976ee.js\",\"_app/immutable/chunks/parse.bee59afc.js\",\"_app/immutable/chunks/singletons.13d7fb5f.js\",\"_app/immutable/chunks/index.14349a18.js\"];\nexport const stylesheets = [\"_app/immutable/assets/4.9d501049.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,MAAM,KAAK,GAAG;AACd,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,CAAC,CAAC;AACF,MAAM,OAAO,mBAAmB,IAAI,GAAG,CAAC;AACxC,EAAE,GAAG,KAAK;AACV,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,EAAE,OAAO;AACT,CAAC,CAAC,CAAC;AACH,MAAM,IAAI,CAAC;AACX;AACA;AACA;AACA,EAAE,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC,EAAE;AACnC,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC;AAC1B,MAAM,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACvD,MAAM,IAAI,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AACvD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;AAC5D,MAAM,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAC9C,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;AACxB,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACpC,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,KAAK,CAAC,OAAO,EAAE;AACjB,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClC,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,IAAI,IAAI,CAAC,KAAK;AACd,MAAM,OAAO,KAAK,CAAC;AACnB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;AAC7C,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC9C,IAAI,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE;AACvC,QAAQ,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACxB,QAAQ,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC3B,OAAO;AACP,KAAK;AACL,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;AACnC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC7B,QAAQ,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,QAAQ,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAC1B,UAAU,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AAC1B,UAAU,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AACjC,SAAS;AACT,OAAO;AACP,KAAK;AACL,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACvC,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH;AACA;AACA;AACA,EAAE,QAAQ,GAAG;AACb,IAAI,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/E,GAAG;AACH,CAAC;AACD,MAAM,IAAI,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK;AAC9B,EAAE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAChD,EAAE,OAAO;AACT;AACA;AACA;AACA,IAAI,OAAO,EAAE,IAAI,CAAC,OAAO;AACzB;AACA;AACA;AACA;AACA,IAAI,OAAO,EAAE,IAAI,CAAC,OAAO;AACzB;AACA;AACA;AACA,IAAI,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI;AACzD,GAAG,CAAC;AACJ,CAAC,CAAC;AACF,MAAM,OAAO,GAAG;AAChB;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK;AAC1C,IAAI,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,IAAI,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC1C,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAClC,IAAI,IAAI,GAAG,KAAK,WAAW,EAAE;AAC7B,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrD,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK;AACzC,IAAI,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;AAClD,IAAI,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC1C,IAAI,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AACvC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5B,MAAM,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,KAAK;AACL,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC5C,GAAG;AACH,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK;AAClC,IAAI,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC9B,GAAG;AACH,CAAC;;;;;;;;ACzxZW,MAAC,KAAK,GAAG,EAAE;AACvB,IAAI,eAAe,CAAC;AACR,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA0C,CAAC,EAAE,QAAQ;AAEhH,MAAC,SAAS,GAAG,qCAAqC;AAClD,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,6CAA6C,CAAC,yCAAyC,CAAC,yCAAyC,CAAC,8CAA8C,CAAC,yCAAyC,EAAE;AAC7Q,MAAC,WAAW,GAAG,CAAC,sCAAsC,EAAE;AACxD,MAAC,KAAK,GAAG;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/chunks/_layout.svelte-f428a28b.js b/Svelte-Build/src/server/chunks/_layout.svelte-f428a28b.js new file mode 100644 index 0000000..ba121f8 --- /dev/null +++ b/Svelte-Build/src/server/chunks/_layout.svelte-f428a28b.js @@ -0,0 +1,31 @@ +import { c as create_ssr_component, v as validate_component, a as subscribe, b as add_attribute } from './ssr-37307467.js'; +import { p as page } from './stores-c0aac90b.js'; + +const logo = "/_app/immutable/assets/svelte-logo.87df40b8.svg"; +const github = "/_app/immutable/assets/github.1ea8d62e.svg"; +const css$1 = { + code: "header.svelte-1u9z1tp.svelte-1u9z1tp{display:flex;justify-content:space-between}.corner.svelte-1u9z1tp.svelte-1u9z1tp{width:3em;height:3em}.corner.svelte-1u9z1tp a.svelte-1u9z1tp{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.corner.svelte-1u9z1tp img.svelte-1u9z1tp{width:2em;height:2em;object-fit:contain}nav.svelte-1u9z1tp.svelte-1u9z1tp{display:flex;justify-content:center;--background:rgba(255, 255, 255, 0.7)}svg.svelte-1u9z1tp.svelte-1u9z1tp{width:2em;height:3em;display:block}path.svelte-1u9z1tp.svelte-1u9z1tp{fill:var(--background)}ul.svelte-1u9z1tp.svelte-1u9z1tp{position:relative;padding:0;margin:0;height:3em;display:flex;justify-content:center;align-items:center;list-style:none;background:var(--background);background-size:contain}li.svelte-1u9z1tp.svelte-1u9z1tp{position:relative;height:100%}li[aria-current='page'].svelte-1u9z1tp.svelte-1u9z1tp::before{--size:6px;content:'';width:0;height:0;position:absolute;top:0;left:calc(50% - var(--size));border:var(--size) solid transparent;border-top:var(--size) solid var(--color-theme-1)}nav.svelte-1u9z1tp a.svelte-1u9z1tp{display:flex;height:100%;align-items:center;padding:0 0.5rem;color:var(--color-text);font-weight:700;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.1em;text-decoration:none;transition:color 0.2s linear}a.svelte-1u9z1tp.svelte-1u9z1tp:hover{color:var(--color-theme-1)}", + map: null +}; +const Header = create_ssr_component(($$result, $$props, $$bindings, slots) => { + let $page, $$unsubscribe_page; + $$unsubscribe_page = subscribe(page, (value) => $page = value); + $$result.css.add(css$1); + $$unsubscribe_page(); + return `
`; +}); +const css = { + code: ".app.svelte-8o1gnw.svelte-8o1gnw{display:flex;flex-direction:column;min-height:100vh}main.svelte-8o1gnw.svelte-8o1gnw{flex:1;display:flex;flex-direction:column;padding:1rem;width:100%;max-width:64rem;margin:0 auto;box-sizing:border-box}footer.svelte-8o1gnw.svelte-8o1gnw{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:12px}footer.svelte-8o1gnw a.svelte-8o1gnw{font-weight:bold}@media(min-width: 480px){footer.svelte-8o1gnw.svelte-8o1gnw{padding:12px 0}}", + map: null +}; +const Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => { + $$result.css.add(css); + return `
${validate_component(Header, "Header").$$render($$result, {}, {}, {})}
${slots.default ? slots.default({}) : ``}
`; +}); + +export { Layout as default }; +//# sourceMappingURL=_layout.svelte-f428a28b.js.map diff --git a/Svelte-Build/src/server/chunks/_layout.svelte-f428a28b.js.map b/Svelte-Build/src/server/chunks/_layout.svelte-f428a28b.js.map new file mode 100644 index 0000000..e99cb4c --- /dev/null +++ b/Svelte-Build/src/server/chunks/_layout.svelte-f428a28b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"_layout.svelte-f428a28b.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js"],"sourcesContent":["import { c as create_ssr_component, a as subscribe, b as add_attribute, v as validate_component } from \"../../chunks/ssr.js\";\nimport { p as page } from \"../../chunks/stores.js\";\nconst logo = \"/_app/immutable/assets/svelte-logo.87df40b8.svg\";\nconst github = \"/_app/immutable/assets/github.1ea8d62e.svg\";\nconst Header_svelte_svelte_type_style_lang = \"\";\nconst css$1 = {\n code: \"header.svelte-1u9z1tp.svelte-1u9z1tp{display:flex;justify-content:space-between}.corner.svelte-1u9z1tp.svelte-1u9z1tp{width:3em;height:3em}.corner.svelte-1u9z1tp a.svelte-1u9z1tp{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.corner.svelte-1u9z1tp img.svelte-1u9z1tp{width:2em;height:2em;object-fit:contain}nav.svelte-1u9z1tp.svelte-1u9z1tp{display:flex;justify-content:center;--background:rgba(255, 255, 255, 0.7)}svg.svelte-1u9z1tp.svelte-1u9z1tp{width:2em;height:3em;display:block}path.svelte-1u9z1tp.svelte-1u9z1tp{fill:var(--background)}ul.svelte-1u9z1tp.svelte-1u9z1tp{position:relative;padding:0;margin:0;height:3em;display:flex;justify-content:center;align-items:center;list-style:none;background:var(--background);background-size:contain}li.svelte-1u9z1tp.svelte-1u9z1tp{position:relative;height:100%}li[aria-current='page'].svelte-1u9z1tp.svelte-1u9z1tp::before{--size:6px;content:'';width:0;height:0;position:absolute;top:0;left:calc(50% - var(--size));border:var(--size) solid transparent;border-top:var(--size) solid var(--color-theme-1)}nav.svelte-1u9z1tp a.svelte-1u9z1tp{display:flex;height:100%;align-items:center;padding:0 0.5rem;color:var(--color-text);font-weight:700;font-size:0.8rem;text-transform:uppercase;letter-spacing:0.1em;text-decoration:none;transition:color 0.2s linear}a.svelte-1u9z1tp.svelte-1u9z1tp:hover{color:var(--color-theme-1)}\",\n map: null\n};\nconst Header = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let $page, $$unsubscribe_page;\n $$unsubscribe_page = subscribe(page, (value) => $page = value);\n $$result.css.add(css$1);\n $$unsubscribe_page();\n return `
`;\n});\nconst styles = \"\";\nconst _layout_svelte_svelte_type_style_lang = \"\";\nconst css = {\n code: \".app.svelte-8o1gnw.svelte-8o1gnw{display:flex;flex-direction:column;min-height:100vh}main.svelte-8o1gnw.svelte-8o1gnw{flex:1;display:flex;flex-direction:column;padding:1rem;width:100%;max-width:64rem;margin:0 auto;box-sizing:border-box}footer.svelte-8o1gnw.svelte-8o1gnw{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:12px}footer.svelte-8o1gnw a.svelte-8o1gnw{font-weight:bold}@media(min-width: 480px){footer.svelte-8o1gnw.svelte-8o1gnw{padding:12px 0}}\",\n map: null\n};\nconst Layout = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n $$result.css.add(css);\n return `
${validate_component(Header, \"Header\").$$render($$result, {}, {}, {})}
${slots.default ? slots.default({}) : ``}
`;\n});\nexport {\n Layout as default\n};\n"],"names":[],"mappings":";;;AAEA,MAAM,IAAI,GAAG,iDAAiD,CAAC;AAC/D,MAAM,MAAM,GAAG,4CAA4C,CAAC;AAE5D,MAAM,KAAK,GAAG;AACd,EAAE,IAAI,EAAE,w3CAAw3C;AACh4C,EAAE,GAAG,EAAE,IAAI;AACX,CAAC,CAAC;AACF,MAAM,MAAM,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC9E,EAAE,IAAI,KAAK,EAAE,kBAAkB,CAAC;AAChC,EAAE,kBAAkB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;AACjE,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC1B,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,OAAO,CAAC,6JAA6J,EAAE,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,+PAA+P,EAAE,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,GAAG,GAAG,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,0GAA0G,EAAE,aAAa,CAAC,cAAc,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,gHAAgH,EAAE,aAAa;AACt1B,IAAI,cAAc;AAClB,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC;AAC/D,IAAI,CAAC;AACL,GAAG,CAAC,sZAAsZ,EAAE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC;AACvf,CAAC,CAAC,CAAC;AAGH,MAAM,GAAG,GAAG;AACZ,EAAE,IAAI,EAAE,6eAA6e;AACrf,EAAE,GAAG,EAAE,IAAI;AACX,CAAC,CAAC;AACG,MAAC,MAAM,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC9E,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,EAAE,OAAO,CAAC,+BAA+B,EAAE,kBAAkB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,6BAA6B,EAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,6LAA6L,CAAC,CAAC;AACpX,CAAC;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/chunks/_page.svelte-c6e4b665.js b/Svelte-Build/src/server/chunks/_page.svelte-c6e4b665.js new file mode 100644 index 0000000..7f9a487 --- /dev/null +++ b/Svelte-Build/src/server/chunks/_page.svelte-c6e4b665.js @@ -0,0 +1,73 @@ +import { c as create_ssr_component, a as subscribe, d as each, e as escape, b as add_attribute, n as null_to_empty } from './ssr-37307467.js'; +import { r as readable } from './index2-874ff619.js'; + +const get_initial_motion_preference = () => { + return false; +}; +const reduced_motion = readable(get_initial_motion_preference(), (set) => { +}); +const css = { + code: "form.svelte-1pg2j5l.svelte-1pg2j5l{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;flex:1}.how-to-play.svelte-1pg2j5l.svelte-1pg2j5l{color:var(--color-text)}.how-to-play.svelte-1pg2j5l.svelte-1pg2j5l::before{content:'i';display:inline-block;font-size:0.8em;font-weight:900;width:1em;height:1em;padding:0.2em;line-height:1;border:1.5px solid var(--color-text);border-radius:50%;text-align:center;margin:0 0.5em 0 0;position:relative;top:-0.05em}.grid.svelte-1pg2j5l.svelte-1pg2j5l{--width:min(100vw, 40vh, 380px);max-width:var(--width);align-self:center;justify-self:center;width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-start}.grid.svelte-1pg2j5l .row.svelte-1pg2j5l{display:grid;grid-template-columns:repeat(5, 1fr);grid-gap:0.2rem;margin:0 0 0.2rem 0}@media(prefers-reduced-motion: no-preference){.grid.bad-guess.svelte-1pg2j5l .row.current.svelte-1pg2j5l{animation:svelte-1pg2j5l-wiggle 0.5s}}.grid.playing.svelte-1pg2j5l .row.current.svelte-1pg2j5l{filter:drop-shadow(3px 3px 10px var(--color-bg-0))}.letter.svelte-1pg2j5l.svelte-1pg2j5l{aspect-ratio:1;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;text-transform:lowercase;border:none;font-size:calc(0.08 * var(--width));border-radius:2px;background:white;margin:0;color:rgba(0, 0, 0, 0.7)}.letter.missing.svelte-1pg2j5l.svelte-1pg2j5l{background:rgba(255, 255, 255, 0.5);color:rgba(0, 0, 0, 0.5)}.letter.exact.svelte-1pg2j5l.svelte-1pg2j5l{background:var(--color-theme-2);color:white}.letter.close.svelte-1pg2j5l.svelte-1pg2j5l{border:2px solid var(--color-theme-2)}.selected.svelte-1pg2j5l.svelte-1pg2j5l{outline:2px solid var(--color-theme-1)}.controls.svelte-1pg2j5l.svelte-1pg2j5l{text-align:center;justify-content:center;height:min(18vh, 10rem)}.keyboard.svelte-1pg2j5l.svelte-1pg2j5l{--gap:0.2rem;position:relative;display:flex;flex-direction:column;gap:var(--gap);height:100%}.keyboard.svelte-1pg2j5l .row.svelte-1pg2j5l{display:flex;justify-content:center;gap:0.2rem;flex:1}.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l,.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l:disabled{--size:min(8vw, 4vh, 40px);background-color:white;color:black;width:var(--size);border:none;border-radius:2px;font-size:calc(var(--size) * 0.5);margin:0}.keyboard.svelte-1pg2j5l button.exact.svelte-1pg2j5l{background:var(--color-theme-2);color:white}.keyboard.svelte-1pg2j5l button.missing.svelte-1pg2j5l{opacity:0.5}.keyboard.svelte-1pg2j5l button.close.svelte-1pg2j5l{border:2px solid var(--color-theme-2)}.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l:focus{background:var(--color-theme-1);color:white;outline:none}.keyboard.svelte-1pg2j5l button[data-key='enter'].svelte-1pg2j5l,.keyboard.svelte-1pg2j5l button[data-key='backspace'].svelte-1pg2j5l{position:absolute;bottom:0;width:calc(1.5 * var(--size));height:calc(1 / 3 * (100% - 2 * var(--gap)));text-transform:uppercase;font-size:calc(0.3 * var(--size));padding-top:calc(0.15 * var(--size))}.keyboard.svelte-1pg2j5l button[data-key='enter'].svelte-1pg2j5l{right:calc(50% + 3.5 * var(--size) + 0.8rem)}.keyboard.svelte-1pg2j5l button[data-key='backspace'].svelte-1pg2j5l{left:calc(50% + 3.5 * var(--size) + 0.8rem)}.keyboard.svelte-1pg2j5l button[data-key='enter'].svelte-1pg2j5l:disabled{opacity:0.5}.restart.svelte-1pg2j5l.svelte-1pg2j5l{width:100%;padding:1rem;background:rgba(255, 255, 255, 0.5);border-radius:2px;border:none}.restart.svelte-1pg2j5l.svelte-1pg2j5l:focus,.restart.svelte-1pg2j5l.svelte-1pg2j5l:hover{background:var(--color-theme-1);color:white;outline:none}@keyframes svelte-1pg2j5l-wiggle{0%{transform:translateX(0)}10%{transform:translateX(-2px)}30%{transform:translateX(4px)}50%{transform:translateX(-6px)}70%{transform:translateX(+4px)}90%{transform:translateX(-2px)}100%{transform:translateX(0)}}", + map: null +}; +const Page = create_ssr_component(($$result, $$props, $$bindings, slots) => { + let won; + let i; + let currentGuess; + let submittable; + let $$unsubscribe_reduced_motion; + $$unsubscribe_reduced_motion = subscribe(reduced_motion, (value) => value); + let { data } = $$props; + let { form } = $$props; + let classnames; + let description; + if ($$props.data === void 0 && $$bindings.data && data !== void 0) + $$bindings.data(data); + if ($$props.form === void 0 && $$bindings.form && form !== void 0) + $$bindings.form(form); + $$result.css.add(css); + won = data.answers.at(-1) === "xxxxx"; + i = won ? -1 : data.answers.length; + currentGuess = data.guesses[i] || ""; + submittable = currentGuess.length === 5; + { + { + classnames = {}; + description = {}; + data.answers.forEach((answer, i2) => { + const guess = data.guesses[i2]; + for (let i3 = 0; i3 < 5; i3 += 1) { + const letter = guess[i3]; + if (answer[i3] === "x") { + classnames[letter] = "exact"; + description[letter] = "correct"; + } else if (!classnames[letter]) { + classnames[letter] = answer[i3] === "c" ? "close" : "missing"; + description[letter] = answer[i3] === "c" ? "present" : "absent"; + } + } + }); + } + } + $$unsubscribe_reduced_motion(); + return ` ${$$result.head += `${$$result.title = `Sverdle`, ""}`, ""}

Sverdle

How to play
${each(Array.from(Array(6).keys()), (row) => { + let current = row === i; + return `

Row ${escape(row + 1)}

${each(Array.from(Array(5).keys()), (column) => { + let guess = current ? currentGuess : data.guesses[row], answer = data.answers[row]?.[column], value = guess?.[column] ?? "", selected = current && column === guess.length, exact = answer === "x", close = answer === "c", missing = answer === "_"; + return `
${escape(value)} ${exact ? `(correct)` : `${close ? `(present)` : `${missing ? `(absent)` : `empty`}`}`}
`; + })}
`; + })}
${won || data.answers.length >= 6 ? `${!won && data.answer ? `

the answer was "${escape(data.answer)}"

` : ``} ` : `
${each(["qwertyuiop", "asdfghjkl", "zxcvbnm"], (row) => { + return `
${each(row, (letter) => { + return `${escape(letter)} `; + })}
`; + })}
`}
${won ? `
` : ``}`; +}); + +export { Page as default }; +//# sourceMappingURL=_page.svelte-c6e4b665.js.map diff --git a/Svelte-Build/src/server/chunks/_page.svelte-c6e4b665.js.map b/Svelte-Build/src/server/chunks/_page.svelte-c6e4b665.js.map new file mode 100644 index 0000000..fdd1fac --- /dev/null +++ b/Svelte-Build/src/server/chunks/_page.svelte-c6e4b665.js.map @@ -0,0 +1 @@ +{"version":3,"file":"_page.svelte-c6e4b665.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/entries/pages/sverdle/_page.svelte.js"],"sourcesContent":["import { c as create_ssr_component, a as subscribe, d as each, e as escape, b as add_attribute, f as null_to_empty } from \"../../../chunks/ssr.js\";\nimport \"devalue\";\nimport { r as readable } from \"../../../chunks/index2.js\";\nconst get_initial_motion_preference = () => {\n return false;\n};\nconst reduced_motion = readable(get_initial_motion_preference(), (set) => {\n});\nconst _page_svelte_svelte_type_style_lang = \"\";\nconst css = {\n code: \"form.svelte-1pg2j5l.svelte-1pg2j5l{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;flex:1}.how-to-play.svelte-1pg2j5l.svelte-1pg2j5l{color:var(--color-text)}.how-to-play.svelte-1pg2j5l.svelte-1pg2j5l::before{content:'i';display:inline-block;font-size:0.8em;font-weight:900;width:1em;height:1em;padding:0.2em;line-height:1;border:1.5px solid var(--color-text);border-radius:50%;text-align:center;margin:0 0.5em 0 0;position:relative;top:-0.05em}.grid.svelte-1pg2j5l.svelte-1pg2j5l{--width:min(100vw, 40vh, 380px);max-width:var(--width);align-self:center;justify-self:center;width:100%;height:100%;display:flex;flex-direction:column;justify-content:flex-start}.grid.svelte-1pg2j5l .row.svelte-1pg2j5l{display:grid;grid-template-columns:repeat(5, 1fr);grid-gap:0.2rem;margin:0 0 0.2rem 0}@media(prefers-reduced-motion: no-preference){.grid.bad-guess.svelte-1pg2j5l .row.current.svelte-1pg2j5l{animation:svelte-1pg2j5l-wiggle 0.5s}}.grid.playing.svelte-1pg2j5l .row.current.svelte-1pg2j5l{filter:drop-shadow(3px 3px 10px var(--color-bg-0))}.letter.svelte-1pg2j5l.svelte-1pg2j5l{aspect-ratio:1;width:100%;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;text-transform:lowercase;border:none;font-size:calc(0.08 * var(--width));border-radius:2px;background:white;margin:0;color:rgba(0, 0, 0, 0.7)}.letter.missing.svelte-1pg2j5l.svelte-1pg2j5l{background:rgba(255, 255, 255, 0.5);color:rgba(0, 0, 0, 0.5)}.letter.exact.svelte-1pg2j5l.svelte-1pg2j5l{background:var(--color-theme-2);color:white}.letter.close.svelte-1pg2j5l.svelte-1pg2j5l{border:2px solid var(--color-theme-2)}.selected.svelte-1pg2j5l.svelte-1pg2j5l{outline:2px solid var(--color-theme-1)}.controls.svelte-1pg2j5l.svelte-1pg2j5l{text-align:center;justify-content:center;height:min(18vh, 10rem)}.keyboard.svelte-1pg2j5l.svelte-1pg2j5l{--gap:0.2rem;position:relative;display:flex;flex-direction:column;gap:var(--gap);height:100%}.keyboard.svelte-1pg2j5l .row.svelte-1pg2j5l{display:flex;justify-content:center;gap:0.2rem;flex:1}.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l,.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l:disabled{--size:min(8vw, 4vh, 40px);background-color:white;color:black;width:var(--size);border:none;border-radius:2px;font-size:calc(var(--size) * 0.5);margin:0}.keyboard.svelte-1pg2j5l button.exact.svelte-1pg2j5l{background:var(--color-theme-2);color:white}.keyboard.svelte-1pg2j5l button.missing.svelte-1pg2j5l{opacity:0.5}.keyboard.svelte-1pg2j5l button.close.svelte-1pg2j5l{border:2px solid var(--color-theme-2)}.keyboard.svelte-1pg2j5l button.svelte-1pg2j5l:focus{background:var(--color-theme-1);color:white;outline:none}.keyboard.svelte-1pg2j5l button[data-key='enter'].svelte-1pg2j5l,.keyboard.svelte-1pg2j5l button[data-key='backspace'].svelte-1pg2j5l{position:absolute;bottom:0;width:calc(1.5 * var(--size));height:calc(1 / 3 * (100% - 2 * var(--gap)));text-transform:uppercase;font-size:calc(0.3 * var(--size));padding-top:calc(0.15 * var(--size))}.keyboard.svelte-1pg2j5l button[data-key='enter'].svelte-1pg2j5l{right:calc(50% + 3.5 * var(--size) + 0.8rem)}.keyboard.svelte-1pg2j5l button[data-key='backspace'].svelte-1pg2j5l{left:calc(50% + 3.5 * var(--size) + 0.8rem)}.keyboard.svelte-1pg2j5l button[data-key='enter'].svelte-1pg2j5l:disabled{opacity:0.5}.restart.svelte-1pg2j5l.svelte-1pg2j5l{width:100%;padding:1rem;background:rgba(255, 255, 255, 0.5);border-radius:2px;border:none}.restart.svelte-1pg2j5l.svelte-1pg2j5l:focus,.restart.svelte-1pg2j5l.svelte-1pg2j5l:hover{background:var(--color-theme-1);color:white;outline:none}@keyframes svelte-1pg2j5l-wiggle{0%{transform:translateX(0)}10%{transform:translateX(-2px)}30%{transform:translateX(4px)}50%{transform:translateX(-6px)}70%{transform:translateX(+4px)}90%{transform:translateX(-2px)}100%{transform:translateX(0)}}\",\n map: null\n};\nconst Page = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let won;\n let i;\n let currentGuess;\n let submittable;\n let $$unsubscribe_reduced_motion;\n $$unsubscribe_reduced_motion = subscribe(reduced_motion, (value) => value);\n let { data } = $$props;\n let { form } = $$props;\n let classnames;\n let description;\n if ($$props.data === void 0 && $$bindings.data && data !== void 0)\n $$bindings.data(data);\n if ($$props.form === void 0 && $$bindings.form && form !== void 0)\n $$bindings.form(form);\n $$result.css.add(css);\n won = data.answers.at(-1) === \"xxxxx\";\n i = won ? -1 : data.answers.length;\n currentGuess = data.guesses[i] || \"\";\n submittable = currentGuess.length === 5;\n {\n {\n classnames = {};\n description = {};\n data.answers.forEach((answer, i2) => {\n const guess = data.guesses[i2];\n for (let i3 = 0; i3 < 5; i3 += 1) {\n const letter = guess[i3];\n if (answer[i3] === \"x\") {\n classnames[letter] = \"exact\";\n description[letter] = \"correct\";\n } else if (!classnames[letter]) {\n classnames[letter] = answer[i3] === \"c\" ? \"close\" : \"missing\";\n description[letter] = answer[i3] === \"c\" ? \"present\" : \"absent\";\n }\n }\n });\n }\n }\n $$unsubscribe_reduced_motion();\n return ` ${$$result.head += `${$$result.title = `Sverdle`, \"\"}`, \"\"}

Sverdle

How to play
${each(Array.from(Array(6).keys()), (row) => {\n let current = row === i;\n return `

Row ${escape(row + 1)}

${each(Array.from(Array(5).keys()), (column) => {\n let guess = current ? currentGuess : data.guesses[row], answer = data.answers[row]?.[column], value = guess?.[column] ?? \"\", selected = current && column === guess.length, exact = answer === \"x\", close = answer === \"c\", missing = answer === \"_\";\n return `
${escape(value)} ${exact ? `(correct)` : `${close ? `(present)` : `${missing ? `(absent)` : `empty`}`}`}
`;\n })}
`;\n })}
${won || data.answers.length >= 6 ? `${!won && data.answer ? `

the answer was "${escape(data.answer)}"

` : ``} ` : `
${each([\"qwertyuiop\", \"asdfghjkl\", \"zxcvbnm\"], (row) => {\n return `
${each(row, (letter) => {\n return `${escape(letter)} `;\n })}
`;\n })}
`}
${won ? `
` : ``}`;\n});\nexport {\n Page as default\n};\n"],"names":[],"mappings":";;;AAGA,MAAM,6BAA6B,GAAG,MAAM;AAC5C,EAAE,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,QAAQ,CAAC,6BAA6B,EAAE,EAAE,CAAC,GAAG,KAAK;AAC1E,CAAC,CAAC,CAAC;AAEH,MAAM,GAAG,GAAG;AACZ,EAAE,IAAI,EAAE,myHAAmyH;AAC3yH,EAAE,GAAG,EAAE,IAAI;AACX,CAAC,CAAC;AACG,MAAC,IAAI,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC5E,EAAE,IAAI,GAAG,CAAC;AACV,EAAE,IAAI,CAAC,CAAC;AACR,EAAE,IAAI,YAAY,CAAC;AACnB,EAAE,IAAI,WAAW,CAAC;AAClB,EAAE,IAAI,4BAA4B,CAAC;AACnC,EAAE,4BAA4B,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAC7E,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;AACzB,EAAE,IAAI,UAAU,CAAC;AACjB,EAAE,IAAI,WAAW,CAAC;AAClB,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC;AACnE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,IAAI,IAAI,KAAK,KAAK,CAAC;AACnE,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACxB,EAAE,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC;AACxC,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AACrC,EAAE,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACvC,EAAE,WAAW,GAAG,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1C,EAAE;AACF,IAAI;AACJ,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,KAAK;AAC3C,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;AACvC,QAAQ,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE;AAC1C,UAAU,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;AACnC,UAAU,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,EAAE;AAClC,YAAY,UAAU,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;AACzC,YAAY,WAAW,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;AAC5C,WAAW,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AAC1C,YAAY,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,OAAO,GAAG,SAAS,CAAC;AAC1E,YAAY,WAAW,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC5E,WAAW;AACX,SAAS;AACT,OAAO,CAAC,CAAC;AACT,KAAK;AACL,GAAG;AACH,EAAE,4BAA4B,EAAE,CAAC;AACjC,EAAE,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,kCAAkC,EAAE,QAAQ,CAAC,KAAK,GAAG,CAAC,sBAAsB,CAAC,EAAE,EAAE,CAAC,uGAAuG,CAAC,EAAE,EAAE,CAAC,kQAAkQ,EAAE;AACle,IAAI,qBAAqB;AACzB,IAAI,CAAC,CAAC,GAAG,GAAG,SAAS,GAAG,EAAE,IAAI,GAAG,IAAI,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,EAAE,CAAC;AACvE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,GAAG,KAAK;AACpE,IAAI,IAAI,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC;AAC5B,IAAI,OAAO,CAAC,iCAAiC,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,oBAAoB,EAAE,OAAO,GAAG,SAAS,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK;AACvM,MAAM,IAAI,KAAK,GAAG,OAAO,GAAG,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,GAAG,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,KAAK,GAAG,MAAM,KAAK,GAAG,EAAE,KAAK,GAAG,MAAM,KAAK,GAAG,EAAE,OAAO,GAAG,MAAM,KAAK,GAAG,CAAC;AAC3P,MAAM,OAAO,CAAC,mBAAmB,EAAE;AACnC,QAAQ,uBAAuB;AAC/B,QAAQ,CAAC,KAAK,GAAG,OAAO,GAAG,EAAE,IAAI,GAAG,IAAI,KAAK,GAAG,OAAO,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,OAAO,GAAG,SAAS,GAAG,EAAE,CAAC,GAAG,GAAG,IAAI,QAAQ,GAAG,UAAU,GAAG,EAAE,CAAC;AACrI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,+BAA+B,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,4BAA4B,EAAE,CAAC,OAAO,GAAG,UAAU,GAAG,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrR,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAChB,GAAG,CAAC,CAAC,4CAA4C,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,yFAAyF,EAAE,MAAM,CAAC,GAAG,GAAG,YAAY,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAqB,CAAC,GAAG,CAAC,8DAA8D,EAAE,CAAC,WAAW,GAAG,UAAU,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,WAAW,GAAG,UAAU,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,qKAAqK,EAAE,IAAI,CAAC,CAAC,YAAY,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK;AACxtB,IAAI,OAAO,CAAC,gCAAgC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,KAAK;AACpE,MAAM,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,iBAAiB,CAAC,EAAE,EAAE,WAAW,GAAG,UAAU,GAAG,EAAE,CAAC,iCAAiC,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;AACpW,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAChB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,EAAE,GAAG,GAAG,CAAC,2DAA2D,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACxG,CAAC;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/chunks/error.svelte-6fe9e439.js b/Svelte-Build/src/server/chunks/error.svelte-6fe9e439.js new file mode 100644 index 0000000..7f900f8 --- /dev/null +++ b/Svelte-Build/src/server/chunks/error.svelte-6fe9e439.js @@ -0,0 +1,12 @@ +import { c as create_ssr_component, a as subscribe, e as escape } from './ssr-37307467.js'; +import { p as page } from './stores-c0aac90b.js'; + +const Error = create_ssr_component(($$result, $$props, $$bindings, slots) => { + let $page, $$unsubscribe_page; + $$unsubscribe_page = subscribe(page, (value) => $page = value); + $$unsubscribe_page(); + return `

${escape($page.status)}

${escape($page.error?.message)}

`; +}); + +export { Error as default }; +//# sourceMappingURL=error.svelte-6fe9e439.js.map diff --git a/Svelte-Build/src/server/chunks/error.svelte-6fe9e439.js.map b/Svelte-Build/src/server/chunks/error.svelte-6fe9e439.js.map new file mode 100644 index 0000000..9a1765e --- /dev/null +++ b/Svelte-Build/src/server/chunks/error.svelte-6fe9e439.js.map @@ -0,0 +1 @@ +{"version":3,"file":"error.svelte-6fe9e439.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { c as create_ssr_component, a as subscribe, e as escape } from \"../../chunks/ssr.js\";\nimport { p as page } from \"../../chunks/stores.js\";\nconst Error = create_ssr_component(($$result, $$props, $$bindings, slots) => {\n let $page, $$unsubscribe_page;\n $$unsubscribe_page = subscribe(page, (value) => $page = value);\n $$unsubscribe_page();\n return `

${escape($page.status)}

${escape($page.error?.message)}

`;\n});\nexport {\n Error as default\n};\n"],"names":[],"mappings":";;;AAEK,MAAC,KAAK,GAAG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,KAAK;AAC7E,EAAE,IAAI,KAAK,EAAE,kBAAkB,CAAC;AAChC,EAAE,kBAAkB,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,KAAK,KAAK,GAAG,KAAK,CAAC,CAAC;AACjE,EAAE,kBAAkB,EAAE,CAAC;AACvB,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACnF,CAAC;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/chunks/index-916a7dc8.js b/Svelte-Build/src/server/chunks/index-916a7dc8.js new file mode 100644 index 0000000..15b6cc4 --- /dev/null +++ b/Svelte-Build/src/server/chunks/index-916a7dc8.js @@ -0,0 +1,81 @@ +class HttpError { + /** + * @param {number} status + * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body + */ + constructor(status, body) { + this.status = status; + if (typeof body === "string") { + this.body = { message: body }; + } else if (body) { + this.body = body; + } else { + this.body = { message: `Error: ${status}` }; + } + } + toString() { + return JSON.stringify(this.body); + } +} +class Redirect { + /** + * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status + * @param {string} location + */ + constructor(status, location) { + this.status = status; + this.location = location; + } +} +class ActionFailure { + /** + * @param {number} status + * @param {T} [data] + */ + constructor(status, data) { + this.status = status; + this.data = data; + } +} +function error(status, body) { + if (isNaN(status) || status < 400 || status > 599) { + throw new Error(`HTTP error status codes must be between 400 and 599 — ${status} is invalid`); + } + return new HttpError(status, body); +} +function json(data, init) { + const body = JSON.stringify(data); + const headers = new Headers(init?.headers); + if (!headers.has("content-length")) { + headers.set("content-length", encoder.encode(body).byteLength.toString()); + } + if (!headers.has("content-type")) { + headers.set("content-type", "application/json"); + } + return new Response(body, { + ...init, + headers + }); +} +const encoder = new TextEncoder(); +function text(body, init) { + const headers = new Headers(init?.headers); + if (!headers.has("content-length")) { + const encoded = encoder.encode(body); + headers.set("content-length", encoded.byteLength.toString()); + return new Response(encoded, { + ...init, + headers + }); + } + return new Response(body, { + ...init, + headers + }); +} +function fail(status, data) { + return new ActionFailure(status, data); +} + +export { ActionFailure as A, HttpError as H, Redirect as R, error as e, fail as f, json as j, text as t }; +//# sourceMappingURL=index-916a7dc8.js.map diff --git a/Svelte-Build/src/server/chunks/index-916a7dc8.js.map b/Svelte-Build/src/server/chunks/index-916a7dc8.js.map new file mode 100644 index 0000000..5f5351c --- /dev/null +++ b/Svelte-Build/src/server/chunks/index-916a7dc8.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index-916a7dc8.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/chunks/index.js"],"sourcesContent":["class HttpError {\n /**\n * @param {number} status\n * @param {{message: string} extends App.Error ? (App.Error | string | undefined) : App.Error} body\n */\n constructor(status, body) {\n this.status = status;\n if (typeof body === \"string\") {\n this.body = { message: body };\n } else if (body) {\n this.body = body;\n } else {\n this.body = { message: `Error: ${status}` };\n }\n }\n toString() {\n return JSON.stringify(this.body);\n }\n}\nclass Redirect {\n /**\n * @param {300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308} status\n * @param {string} location\n */\n constructor(status, location) {\n this.status = status;\n this.location = location;\n }\n}\nclass ActionFailure {\n /**\n * @param {number} status\n * @param {T} [data]\n */\n constructor(status, data) {\n this.status = status;\n this.data = data;\n }\n}\nfunction error(status, body) {\n if (isNaN(status) || status < 400 || status > 599) {\n throw new Error(`HTTP error status codes must be between 400 and 599 — ${status} is invalid`);\n }\n return new HttpError(status, body);\n}\nfunction json(data, init) {\n const body = JSON.stringify(data);\n const headers = new Headers(init?.headers);\n if (!headers.has(\"content-length\")) {\n headers.set(\"content-length\", encoder.encode(body).byteLength.toString());\n }\n if (!headers.has(\"content-type\")) {\n headers.set(\"content-type\", \"application/json\");\n }\n return new Response(body, {\n ...init,\n headers\n });\n}\nconst encoder = new TextEncoder();\nfunction text(body, init) {\n const headers = new Headers(init?.headers);\n if (!headers.has(\"content-length\")) {\n const encoded = encoder.encode(body);\n headers.set(\"content-length\", encoded.byteLength.toString());\n return new Response(encoded, {\n ...init,\n headers\n });\n }\n return new Response(body, {\n ...init,\n headers\n });\n}\nfunction fail(status, data) {\n return new ActionFailure(status, data);\n}\nexport {\n ActionFailure as A,\n HttpError as H,\n Redirect as R,\n error as e,\n fail as f,\n json as j,\n text as t\n};\n"],"names":[],"mappings":"AAAA,MAAM,SAAS,CAAC;AAChB;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;AAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAClC,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACpC,KAAK,MAAM,IAAI,IAAI,EAAE;AACrB,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACvB,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;AAClD,KAAK;AACL,GAAG;AACH,EAAE,QAAQ,GAAG;AACb,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrC,GAAG;AACH,CAAC;AACD,MAAM,QAAQ,CAAC;AACf;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE;AAChC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC7B,GAAG;AACH,CAAC;AACD,MAAM,aAAa,CAAC;AACpB;AACA;AACA;AACA;AACA,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE;AAC5B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACzB,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACrB,GAAG;AACH,CAAC;AACD,SAAS,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE;AAC7B,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE;AACrD,IAAI,MAAM,IAAI,KAAK,CAAC,CAAC,sDAAsD,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;AAClG,GAAG;AACH,EAAE,OAAO,IAAI,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AACD,SAAS,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AAC1B,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACpC,EAAE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;AACtC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9E,GAAG;AACH,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;AACpC,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AACpD,GAAG;AACH,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC5B,IAAI,GAAG,IAAI;AACX,IAAI,OAAO;AACX,GAAG,CAAC,CAAC;AACL,CAAC;AACD,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,SAAS,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;AAC1B,EAAE,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC7C,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE;AACtC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjE,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE;AACjC,MAAM,GAAG,IAAI;AACb,MAAM,OAAO;AACb,KAAK,CAAC,CAAC;AACP,GAAG;AACH,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;AAC5B,IAAI,GAAG,IAAI;AACX,IAAI,OAAO;AACX,GAAG,CAAC,CAAC;AACL,CAAC;AACD,SAAS,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;AAC5B,EAAE,OAAO,IAAI,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACzC;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/chunks/index2-874ff619.js b/Svelte-Build/src/server/chunks/index2-874ff619.js new file mode 100644 index 0000000..007348c --- /dev/null +++ b/Svelte-Build/src/server/chunks/index2-874ff619.js @@ -0,0 +1,52 @@ +import { f as noop, h as safe_not_equal } from './ssr-37307467.js'; + +const subscriber_queue = []; +function readable(value, start) { + return { + subscribe: writable(value, start).subscribe + }; +} +function writable(value, start = noop) { + let stop; + const subscribers = /* @__PURE__ */ new Set(); + function set(new_value) { + if (safe_not_equal(value, new_value)) { + value = new_value; + if (stop) { + const run_queue = !subscriber_queue.length; + for (const subscriber of subscribers) { + subscriber[1](); + subscriber_queue.push(subscriber, value); + } + if (run_queue) { + for (let i = 0; i < subscriber_queue.length; i += 2) { + subscriber_queue[i][0](subscriber_queue[i + 1]); + } + subscriber_queue.length = 0; + } + } + } + } + function update(fn) { + set(fn(value)); + } + function subscribe(run, invalidate = noop) { + const subscriber = [run, invalidate]; + subscribers.add(subscriber); + if (subscribers.size === 1) { + stop = start(set, update) || noop; + } + run(value); + return () => { + subscribers.delete(subscriber); + if (subscribers.size === 0 && stop) { + stop(); + stop = null; + } + }; + } + return { set, update, subscribe }; +} + +export { readable as r, writable as w }; +//# sourceMappingURL=index2-874ff619.js.map diff --git a/Svelte-Build/src/server/chunks/index2-874ff619.js.map b/Svelte-Build/src/server/chunks/index2-874ff619.js.map new file mode 100644 index 0000000..fe00bd8 --- /dev/null +++ b/Svelte-Build/src/server/chunks/index2-874ff619.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index2-874ff619.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/chunks/index2.js"],"sourcesContent":["import { n as noop, h as safe_not_equal } from \"./ssr.js\";\nconst subscriber_queue = [];\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = /* @__PURE__ */ new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) {\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set, update) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0 && stop) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nexport {\n readable as r,\n writable as w\n};\n"],"names":[],"mappings":";;AACA,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE;AAChC,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,SAAS;AAC/C,GAAG,CAAC;AACJ,CAAC;AACD,SAAS,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,EAAE;AACvC,EAAE,IAAI,IAAI,CAAC;AACX,EAAE,MAAM,WAAW,mBAAmB,IAAI,GAAG,EAAE,CAAC;AAChD,EAAE,SAAS,GAAG,CAAC,SAAS,EAAE;AAC1B,IAAI,IAAI,cAAc,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE;AAC1C,MAAM,KAAK,GAAG,SAAS,CAAC;AACxB,MAAM,IAAI,IAAI,EAAE;AAChB,QAAQ,MAAM,SAAS,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC;AACnD,QAAQ,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;AAC9C,UAAU,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1B,UAAU,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACnD,SAAS;AACT,QAAQ,IAAI,SAAS,EAAE;AACvB,UAAU,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC/D,YAAY,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC5D,WAAW;AACX,UAAU,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;AACtC,SAAS;AACT,OAAO;AACP,KAAK;AACL,GAAG;AACH,EAAE,SAAS,MAAM,CAAC,EAAE,EAAE;AACtB,IAAI,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACnB,GAAG;AACH,EAAE,SAAS,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAAE;AAC7C,IAAI,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACzC,IAAI,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAChC,IAAI,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE;AAChC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC;AACxC,KAAK;AACL,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;AACf,IAAI,OAAO,MAAM;AACjB,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACrC,MAAM,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;AAC1C,QAAQ,IAAI,EAAE,CAAC;AACf,QAAQ,IAAI,GAAG,IAAI,CAAC;AACpB,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AACpC;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/chunks/ssr-37307467.js b/Svelte-Build/src/server/chunks/ssr-37307467.js new file mode 100644 index 0000000..6f67de2 --- /dev/null +++ b/Svelte-Build/src/server/chunks/ssr-37307467.js @@ -0,0 +1,129 @@ +function noop() { +} +function run(fn) { + return fn(); +} +function blank_object() { + return /* @__PURE__ */ Object.create(null); +} +function run_all(fns) { + fns.forEach(run); +} +function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || a && typeof a === "object" || typeof a === "function"; +} +function subscribe(store, ...callbacks) { + if (store == null) { + for (const callback of callbacks) { + callback(void 0); + } + return noop; + } + const unsub = store.subscribe(...callbacks); + return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub; +} +function null_to_empty(value) { + return value == null ? "" : value; +} +let current_component; +function set_current_component(component) { + current_component = component; +} +function get_current_component() { + if (!current_component) + throw new Error("Function called outside component initialization"); + return current_component; +} +function setContext(key, context) { + get_current_component().$$.context.set(key, context); + return context; +} +function getContext(key) { + return get_current_component().$$.context.get(key); +} +function ensure_array_like(array_like_or_iterator) { + return array_like_or_iterator?.length !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator); +} +const ATTR_REGEX = /[&"]/g; +const CONTENT_REGEX = /[&<]/g; +function escape(value, is_attr = false) { + const str = String(value); + const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX; + pattern.lastIndex = 0; + let escaped = ""; + let last = 0; + while (pattern.test(str)) { + const i = pattern.lastIndex - 1; + const ch = str[i]; + escaped += str.substring(last, i) + (ch === "&" ? "&" : ch === '"' ? """ : "<"); + last = i + 1; + } + return escaped + str.substring(last); +} +function each(items, fn) { + items = ensure_array_like(items); + let str = ""; + for (let i = 0; i < items.length; i += 1) { + str += fn(items[i], i); + } + return str; +} +const missing_component = { + $$render: () => "" +}; +function validate_component(component, name) { + if (!component || !component.$$render) { + if (name === "svelte:component") + name += " this={...}"; + throw new Error( + `<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.` + ); + } + return component; +} +let on_destroy; +function create_ssr_component(fn) { + function $$render(result, props, bindings, slots, context) { + const parent_component = current_component; + const $$ = { + on_destroy, + context: new Map(context || (parent_component ? parent_component.$$.context : [])), + // these will be immediately discarded + on_mount: [], + before_update: [], + after_update: [], + callbacks: blank_object() + }; + set_current_component({ $$ }); + const html = fn(result, props, bindings, slots); + set_current_component(parent_component); + return html; + } + return { + render: (props = {}, { $$slots = {}, context = /* @__PURE__ */ new Map() } = {}) => { + on_destroy = []; + const result = { title: "", head: "", css: /* @__PURE__ */ new Set() }; + const html = $$render(result, props, {}, $$slots, context); + run_all(on_destroy); + return { + html, + css: { + code: Array.from(result.css).map((css) => css.code).join("\n"), + map: null + // TODO + }, + head: result.title + result.head + }; + }, + $$render + }; +} +function add_attribute(name, value, boolean) { + if (value == null || boolean && !value) + return ""; + const assignment = boolean && value === true ? "" : `="${escape(value, true)}"`; + return ` ${name}${assignment}`; +} + +export { subscribe as a, add_attribute as b, create_ssr_component as c, each as d, escape as e, noop as f, getContext as g, safe_not_equal as h, missing_component as m, null_to_empty as n, setContext as s, validate_component as v }; +//# sourceMappingURL=ssr-37307467.js.map diff --git a/Svelte-Build/src/server/chunks/ssr-37307467.js.map b/Svelte-Build/src/server/chunks/ssr-37307467.js.map new file mode 100644 index 0000000..2da07ba --- /dev/null +++ b/Svelte-Build/src/server/chunks/ssr-37307467.js.map @@ -0,0 +1 @@ +{"version":3,"file":"ssr-37307467.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/chunks/ssr.js"],"sourcesContent":["function noop() {\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return /* @__PURE__ */ Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || a && typeof a === \"object\" || typeof a === \"function\";\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n for (const callback of callbacks) {\n callback(void 0);\n }\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction null_to_empty(value) {\n return value == null ? \"\" : value;\n}\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error(\"Function called outside component initialization\");\n return current_component;\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction ensure_array_like(array_like_or_iterator) {\n return array_like_or_iterator?.length !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator);\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = \"\";\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === \"&\" ? \"&\" : ch === '\"' ? \""\" : \"<\");\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction each(items, fn) {\n items = ensure_array_like(items);\n let str = \"\";\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => \"\"\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === \"svelte:component\")\n name += \" this={...}\";\n throw new Error(\n `<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules. Otherwise you may need to fix a <${name}>.`\n );\n }\n return component;\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = /* @__PURE__ */ new Map() } = {}) => {\n on_destroy = [];\n const result = { title: \"\", head: \"\", css: /* @__PURE__ */ new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map((css) => css.code).join(\"\\n\"),\n map: null\n // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || boolean && !value)\n return \"\";\n const assignment = boolean && value === true ? \"\" : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nexport {\n subscribe as a,\n add_attribute as b,\n create_ssr_component as c,\n each as d,\n escape as e,\n null_to_empty as f,\n getContext as g,\n safe_not_equal as h,\n missing_component as m,\n noop as n,\n setContext as s,\n validate_component as v\n};\n"],"names":[],"mappings":"AAAA,SAAS,IAAI,GAAG;AAChB,CAAC;AACD,SAAS,GAAG,CAAC,EAAE,EAAE;AACjB,EAAE,OAAO,EAAE,EAAE,CAAC;AACd,CAAC;AACD,SAAS,YAAY,GAAG;AACxB,EAAE,uBAAuB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AACD,SAAS,OAAO,CAAC,GAAG,EAAE;AACtB,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC;AACD,SAAS,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE;AAC9B,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,UAAU,CAAC;AAC5F,CAAC;AACD,SAAS,SAAS,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE;AACxC,EAAE,IAAI,KAAK,IAAI,IAAI,EAAE;AACrB,IAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AACtC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC;AAC9C,EAAE,OAAO,KAAK,CAAC,WAAW,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC;AAC/D,CAAC;AACD,SAAS,aAAa,CAAC,KAAK,EAAE;AAC9B,EAAE,OAAO,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;AACpC,CAAC;AACD,IAAI,iBAAiB,CAAC;AACtB,SAAS,qBAAqB,CAAC,SAAS,EAAE;AAC1C,EAAE,iBAAiB,GAAG,SAAS,CAAC;AAChC,CAAC;AACD,SAAS,qBAAqB,GAAG;AACjC,EAAE,IAAI,CAAC,iBAAiB;AACxB,IAAI,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACxE,EAAE,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AACD,SAAS,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE;AAClC,EAAE,qBAAqB,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AACvD,EAAE,OAAO,OAAO,CAAC;AACjB,CAAC;AACD,SAAS,UAAU,CAAC,GAAG,EAAE;AACzB,EAAE,OAAO,qBAAqB,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACrD,CAAC;AACD,SAAS,iBAAiB,CAAC,sBAAsB,EAAE;AACnD,EAAE,OAAO,sBAAsB,EAAE,MAAM,KAAK,KAAK,CAAC,GAAG,sBAAsB,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACjH,CAAC;AACD,MAAM,UAAU,GAAG,OAAO,CAAC;AAC3B,MAAM,aAAa,GAAG,OAAO,CAAC;AAC9B,SAAS,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE;AACxC,EAAE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5B,EAAE,MAAM,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,CAAC;AACvD,EAAE,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACxB,EAAE,IAAI,OAAO,GAAG,EAAE,CAAC;AACnB,EAAE,IAAI,IAAI,GAAG,CAAC,CAAC;AACf,EAAE,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC5B,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,CAAC,CAAC;AACpC,IAAI,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACtB,IAAI,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,GAAG,OAAO,GAAG,EAAE,KAAK,GAAG,GAAG,QAAQ,GAAG,MAAM,CAAC,CAAC;AAChG,IAAI,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AACjB,GAAG;AACH,EAAE,OAAO,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AACD,SAAS,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE;AACzB,EAAE,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACnC,EAAE,IAAI,GAAG,GAAG,EAAE,CAAC;AACf,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;AAC5C,IAAI,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3B,GAAG;AACH,EAAE,OAAO,GAAG,CAAC;AACb,CAAC;AACI,MAAC,iBAAiB,GAAG;AAC1B,EAAE,QAAQ,EAAE,MAAM,EAAE;AACpB,EAAE;AACF,SAAS,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE;AAC7C,EAAE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACzC,IAAI,IAAI,IAAI,KAAK,kBAAkB;AACnC,MAAM,IAAI,IAAI,aAAa,CAAC;AAC5B,IAAI,MAAM,IAAI,KAAK;AACnB,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,kMAAkM,EAAE,IAAI,CAAC,EAAE,CAAC;AAC3N,KAAK,CAAC;AACN,GAAG;AACH,EAAE,OAAO,SAAS,CAAC;AACnB,CAAC;AACD,IAAI,UAAU,CAAC;AACf,SAAS,oBAAoB,CAAC,EAAE,EAAE;AAClC,EAAE,SAAS,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE;AAC7D,IAAI,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAC/C,IAAI,MAAM,EAAE,GAAG;AACf,MAAM,UAAU;AAChB,MAAM,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,KAAK,gBAAgB,GAAG,gBAAgB,CAAC,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AACxF;AACA,MAAM,QAAQ,EAAE,EAAE;AAClB,MAAM,aAAa,EAAE,EAAE;AACvB,MAAM,YAAY,EAAE,EAAE;AACtB,MAAM,SAAS,EAAE,YAAY,EAAE;AAC/B,KAAK,CAAC;AACN,IAAI,qBAAqB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AAClC,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AACpD,IAAI,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;AAC5C,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG;AACH,EAAE,OAAO;AACT,IAAI,MAAM,EAAE,CAAC,KAAK,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,mBAAmB,IAAI,GAAG,EAAE,EAAE,GAAG,EAAE,KAAK;AACxF,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,kBAAkB,IAAI,GAAG,EAAE,EAAE,CAAC;AAC7E,MAAM,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;AAC1B,MAAM,OAAO;AACb,QAAQ,IAAI;AACZ,QAAQ,GAAG,EAAE;AACb,UAAU,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACxE,UAAU,GAAG,EAAE,IAAI;AACnB;AACA,SAAS;AACT,QAAQ,IAAI,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI;AACxC,OAAO,CAAC;AACR,KAAK;AACL,IAAI,QAAQ;AACZ,GAAG,CAAC;AACJ,CAAC;AACD,SAAS,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE;AAC7C,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,KAAK;AACxC,IAAI,OAAO,EAAE,CAAC;AACd,EAAE,MAAM,UAAU,GAAG,OAAO,IAAI,KAAK,KAAK,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,EAAE,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACjC;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/chunks/stores-c0aac90b.js b/Svelte-Build/src/server/chunks/stores-c0aac90b.js new file mode 100644 index 0000000..efbe255 --- /dev/null +++ b/Svelte-Build/src/server/chunks/stores-c0aac90b.js @@ -0,0 +1,26 @@ +import { g as getContext } from './ssr-37307467.js'; + +const getStores = () => { + const stores = getContext("__svelte__"); + return { + /** @type {typeof page} */ + page: { + subscribe: stores.page.subscribe + }, + /** @type {typeof navigating} */ + navigating: { + subscribe: stores.navigating.subscribe + }, + /** @type {typeof updated} */ + updated: stores.updated + }; +}; +const page = { + subscribe(fn) { + const store = getStores().page; + return store.subscribe(fn); + } +}; + +export { page as p }; +//# sourceMappingURL=stores-c0aac90b.js.map diff --git a/Svelte-Build/src/server/chunks/stores-c0aac90b.js.map b/Svelte-Build/src/server/chunks/stores-c0aac90b.js.map new file mode 100644 index 0000000..82d3b69 --- /dev/null +++ b/Svelte-Build/src/server/chunks/stores-c0aac90b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"stores-c0aac90b.js","sources":["../../../../SvelteKit-App/.svelte-kit/adapter-node/chunks/stores.js"],"sourcesContent":["import { g as getContext } from \"./ssr.js\";\nconst getStores = () => {\n const stores = getContext(\"__svelte__\");\n return {\n /** @type {typeof page} */\n page: {\n subscribe: stores.page.subscribe\n },\n /** @type {typeof navigating} */\n navigating: {\n subscribe: stores.navigating.subscribe\n },\n /** @type {typeof updated} */\n updated: stores.updated\n };\n};\nconst page = {\n subscribe(fn) {\n const store = getStores().page;\n return store.subscribe(fn);\n }\n};\nexport {\n page as p\n};\n"],"names":[],"mappings":";;AACA,MAAM,SAAS,GAAG,MAAM;AACxB,EAAE,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;AAC1C,EAAE,OAAO;AACT;AACA,IAAI,IAAI,EAAE;AACV,MAAM,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS;AACtC,KAAK;AACL;AACA,IAAI,UAAU,EAAE;AAChB,MAAM,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,SAAS;AAC5C,KAAK;AACL;AACA,IAAI,OAAO,EAAE,MAAM,CAAC,OAAO;AAC3B,GAAG,CAAC;AACJ,CAAC,CAAC;AACG,MAAC,IAAI,GAAG;AACb,EAAE,SAAS,CAAC,EAAE,EAAE;AAChB,IAAI,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC,IAAI,CAAC;AACnC,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC/B,GAAG;AACH;;;;"} \ No newline at end of file diff --git a/Svelte-Build/src/server/index.js b/Svelte-Build/src/server/index.js new file mode 100644 index 0000000..ede26b8 --- /dev/null +++ b/Svelte-Build/src/server/index.js @@ -0,0 +1,4053 @@ +import { c as create_ssr_component, s as setContext, v as validate_component, m as missing_component } from './chunks/ssr-37307467.js'; +import { e as error, j as json, t as text, R as Redirect, H as HttpError, A as ActionFailure } from './chunks/index-916a7dc8.js'; +import { w as writable, r as readable } from './chunks/index2-874ff619.js'; + +const DEV = false; + +let base = ""; +let assets = base; +const initial = { base, assets }; +function reset() { + base = initial.base; + assets = initial.assets; +} +let public_env = {}; +function set_private_env(environment) { +} +function set_public_env(environment) { + public_env = environment; +} +function afterUpdate() { +} +const Root = create_ssr_component(($$result, $$props, $$bindings, slots) => { + let { stores } = $$props; + let { page } = $$props; + let { constructors } = $$props; + let { components = [] } = $$props; + let { form } = $$props; + let { data_0 = null } = $$props; + let { data_1 = null } = $$props; + { + setContext("__svelte__", stores); + } + afterUpdate(stores.page.notify); + if ($$props.stores === void 0 && $$bindings.stores && stores !== void 0) + $$bindings.stores(stores); + if ($$props.page === void 0 && $$bindings.page && page !== void 0) + $$bindings.page(page); + if ($$props.constructors === void 0 && $$bindings.constructors && constructors !== void 0) + $$bindings.constructors(constructors); + if ($$props.components === void 0 && $$bindings.components && components !== void 0) + $$bindings.components(components); + if ($$props.form === void 0 && $$bindings.form && form !== void 0) + $$bindings.form(form); + if ($$props.data_0 === void 0 && $$bindings.data_0 && data_0 !== void 0) + $$bindings.data_0(data_0); + if ($$props.data_1 === void 0 && $$bindings.data_1 && data_1 !== void 0) + $$bindings.data_1(data_1); + let $$settled; + let $$rendered; + let previous_head = $$result.head; + do { + $$settled = true; + $$result.head = previous_head; + { + stores.page.set(page); + } + $$rendered = ` ${constructors[1] ? `${validate_component(constructors[0] || missing_component, "svelte:component").$$render( + $$result, + { data: data_0, this: components[0] }, + { + this: ($$value) => { + components[0] = $$value; + $$settled = false; + } + }, + { + default: () => { + return `${validate_component(constructors[1] || missing_component, "svelte:component").$$render( + $$result, + { data: data_1, form, this: components[1] }, + { + this: ($$value) => { + components[1] = $$value; + $$settled = false; + } + }, + {} + )}`; + } + } + )}` : `${validate_component(constructors[0] || missing_component, "svelte:component").$$render( + $$result, + { data: data_0, form, this: components[0] }, + { + this: ($$value) => { + components[0] = $$value; + $$settled = false; + } + }, + {} + )}`} ${``}`; + } while (!$$settled); + return $$rendered; +}); +const options = { + app_template_contains_nonce: false, + csp: { "mode": "auto", "directives": { "upgrade-insecure-requests": false, "block-all-mixed-content": false }, "reportOnly": { "upgrade-insecure-requests": false, "block-all-mixed-content": false } }, + csrf_check_origin: true, + track_server_fetches: false, + embedded: false, + env_public_prefix: "PUBLIC_", + env_private_prefix: "", + hooks: null, + // added lazily, via `get_hooks` + preload_strategy: "modulepreload", + root: Root, + service_worker: false, + templates: { + app: ({ head, body, assets: assets2, nonce, env }) => '\n\n \n \n \n \n ' + head + '\n \n \n
' + body + "
\n \n\n", + error: ({ status, message }) => '\n\n \n \n ' + message + ` + + + + +
+ ` + status + '\n
\n

' + message + "

\n
\n
\n \n\n" + }, + version_hash: "16q4axl" +}; +function get_hooks() { + return {}; +} + +/** @type {Record} */ +const escaped = { + '<': '\\u003C', + '\\': '\\\\', + '\b': '\\b', + '\f': '\\f', + '\n': '\\n', + '\r': '\\r', + '\t': '\\t', + '\u2028': '\\u2028', + '\u2029': '\\u2029' +}; + +class DevalueError extends Error { + /** + * @param {string} message + * @param {string[]} keys + */ + constructor(message, keys) { + super(message); + this.name = 'DevalueError'; + this.path = keys.join(''); + } +} + +/** @param {any} thing */ +function is_primitive(thing) { + return Object(thing) !== thing; +} + +const object_proto_names = /* @__PURE__ */ Object.getOwnPropertyNames( + Object.prototype +) + .sort() + .join('\0'); + +/** @param {any} thing */ +function is_plain_object(thing) { + const proto = Object.getPrototypeOf(thing); + + return ( + proto === Object.prototype || + proto === null || + Object.getOwnPropertyNames(proto).sort().join('\0') === object_proto_names + ); +} + +/** @param {any} thing */ +function get_type(thing) { + return Object.prototype.toString.call(thing).slice(8, -1); +} + +/** @param {string} char */ +function get_escaped_char(char) { + switch (char) { + case '"': + return '\\"'; + case '<': + return '\\u003C'; + case '\\': + return '\\\\'; + case '\n': + return '\\n'; + case '\r': + return '\\r'; + case '\t': + return '\\t'; + case '\b': + return '\\b'; + case '\f': + return '\\f'; + case '\u2028': + return '\\u2028'; + case '\u2029': + return '\\u2029'; + default: + return char < ' ' + ? `\\u${char.charCodeAt(0).toString(16).padStart(4, '0')}` + : ''; + } +} + +/** @param {string} str */ +function stringify_string(str) { + let result = ''; + let last_pos = 0; + const len = str.length; + + for (let i = 0; i < len; i += 1) { + const char = str[i]; + const replacement = get_escaped_char(char); + if (replacement) { + result += str.slice(last_pos, i) + replacement; + last_pos = i + 1; + } + } + + return `"${last_pos === 0 ? str : result + str.slice(last_pos)}"`; +} + +const chars$1 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_$'; +const unsafe_chars = /[<\b\f\n\r\t\0\u2028\u2029]/g; +const reserved = + /^(?:do|if|in|for|int|let|new|try|var|byte|case|char|else|enum|goto|long|this|void|with|await|break|catch|class|const|final|float|short|super|throw|while|yield|delete|double|export|import|native|return|switch|throws|typeof|boolean|default|extends|finally|package|private|abstract|continue|debugger|function|volatile|interface|protected|transient|implements|instanceof|synchronized)$/; + +/** + * Turn a value into the JavaScript that creates an equivalent value + * @param {any} value + * @param {(value: any) => string | void} [replacer] + */ +function uneval(value, replacer) { + const counts = new Map(); + + /** @type {string[]} */ + const keys = []; + + const custom = new Map(); + + /** @param {any} thing */ + function walk(thing) { + if (typeof thing === 'function') { + throw new DevalueError(`Cannot stringify a function`, keys); + } + + if (!is_primitive(thing)) { + if (counts.has(thing)) { + counts.set(thing, counts.get(thing) + 1); + return; + } + + counts.set(thing, 1); + + if (replacer) { + const str = replacer(thing); + + if (typeof str === 'string') { + custom.set(thing, str); + return; + } + } + + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'BigInt': + case 'String': + case 'Boolean': + case 'Date': + case 'RegExp': + return; + + case 'Array': + /** @type {any[]} */ (thing).forEach((value, i) => { + keys.push(`[${i}]`); + walk(value); + keys.pop(); + }); + break; + + case 'Set': + Array.from(thing).forEach(walk); + break; + + case 'Map': + for (const [key, value] of thing) { + keys.push( + `.get(${is_primitive(key) ? stringify_primitive$1(key) : '...'})` + ); + walk(value); + keys.pop(); + } + break; + + default: + if (!is_plain_object(thing)) { + throw new DevalueError( + `Cannot stringify arbitrary non-POJOs`, + keys + ); + } + + if (Object.getOwnPropertySymbols(thing).length > 0) { + throw new DevalueError( + `Cannot stringify POJOs with symbolic keys`, + keys + ); + } + + for (const key in thing) { + keys.push(`.${key}`); + walk(thing[key]); + keys.pop(); + } + } + } + } + + walk(value); + + const names = new Map(); + + Array.from(counts) + .filter((entry) => entry[1] > 1) + .sort((a, b) => b[1] - a[1]) + .forEach((entry, i) => { + names.set(entry[0], get_name(i)); + }); + + /** + * @param {any} thing + * @returns {string} + */ + function stringify(thing) { + if (names.has(thing)) { + return names.get(thing); + } + + if (is_primitive(thing)) { + return stringify_primitive$1(thing); + } + + if (custom.has(thing)) { + return custom.get(thing); + } + + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'String': + case 'Boolean': + return `Object(${stringify(thing.valueOf())})`; + + case 'RegExp': + return `new RegExp(${stringify_string(thing.source)}, "${ + thing.flags + }")`; + + case 'Date': + return `new Date(${thing.getTime()})`; + + case 'Array': + const members = /** @type {any[]} */ (thing).map((v, i) => + i in thing ? stringify(v) : '' + ); + const tail = thing.length === 0 || thing.length - 1 in thing ? '' : ','; + return `[${members.join(',')}${tail}]`; + + case 'Set': + case 'Map': + return `new ${type}([${Array.from(thing).map(stringify).join(',')}])`; + + default: + const obj = `{${Object.keys(thing) + .map((key) => `${safe_key(key)}:${stringify(thing[key])}`) + .join(',')}}`; + const proto = Object.getPrototypeOf(thing); + if (proto === null) { + return Object.keys(thing).length > 0 + ? `Object.assign(Object.create(null),${obj})` + : `Object.create(null)`; + } + + return obj; + } + } + + const str = stringify(value); + + if (names.size) { + /** @type {string[]} */ + const params = []; + + /** @type {string[]} */ + const statements = []; + + /** @type {string[]} */ + const values = []; + + names.forEach((name, thing) => { + params.push(name); + + if (custom.has(thing)) { + values.push(/** @type {string} */ (custom.get(thing))); + return; + } + + if (is_primitive(thing)) { + values.push(stringify_primitive$1(thing)); + return; + } + + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'String': + case 'Boolean': + values.push(`Object(${stringify(thing.valueOf())})`); + break; + + case 'RegExp': + values.push(thing.toString()); + break; + + case 'Date': + values.push(`new Date(${thing.getTime()})`); + break; + + case 'Array': + values.push(`Array(${thing.length})`); + /** @type {any[]} */ (thing).forEach((v, i) => { + statements.push(`${name}[${i}]=${stringify(v)}`); + }); + break; + + case 'Set': + values.push(`new Set`); + statements.push( + `${name}.${Array.from(thing) + .map((v) => `add(${stringify(v)})`) + .join('.')}` + ); + break; + + case 'Map': + values.push(`new Map`); + statements.push( + `${name}.${Array.from(thing) + .map(([k, v]) => `set(${stringify(k)}, ${stringify(v)})`) + .join('.')}` + ); + break; + + default: + values.push( + Object.getPrototypeOf(thing) === null ? 'Object.create(null)' : '{}' + ); + Object.keys(thing).forEach((key) => { + statements.push( + `${name}${safe_prop(key)}=${stringify(thing[key])}` + ); + }); + } + }); + + statements.push(`return ${str}`); + + return `(function(${params.join(',')}){${statements.join( + ';' + )}}(${values.join(',')}))`; + } else { + return str; + } +} + +/** @param {number} num */ +function get_name(num) { + let name = ''; + + do { + name = chars$1[num % chars$1.length] + name; + num = ~~(num / chars$1.length) - 1; + } while (num >= 0); + + return reserved.test(name) ? `${name}0` : name; +} + +/** @param {string} c */ +function escape_unsafe_char(c) { + return escaped[c] || c; +} + +/** @param {string} str */ +function escape_unsafe_chars(str) { + return str.replace(unsafe_chars, escape_unsafe_char); +} + +/** @param {string} key */ +function safe_key(key) { + return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) + ? key + : escape_unsafe_chars(JSON.stringify(key)); +} + +/** @param {string} key */ +function safe_prop(key) { + return /^[_$a-zA-Z][_$a-zA-Z0-9]*$/.test(key) + ? `.${key}` + : `[${escape_unsafe_chars(JSON.stringify(key))}]`; +} + +/** @param {any} thing */ +function stringify_primitive$1(thing) { + if (typeof thing === 'string') return stringify_string(thing); + if (thing === void 0) return 'void 0'; + if (thing === 0 && 1 / thing < 0) return '-0'; + const str = String(thing); + if (typeof thing === 'number') return str.replace(/^(-)?0\./, '$1.'); + if (typeof thing === 'bigint') return thing + 'n'; + return str; +} + +const UNDEFINED = -1; +const HOLE = -2; +const NAN = -3; +const POSITIVE_INFINITY = -4; +const NEGATIVE_INFINITY = -5; +const NEGATIVE_ZERO = -6; + +/** + * Turn a value into a JSON string that can be parsed with `devalue.parse` + * @param {any} value + * @param {Record any>} [reducers] + */ +function stringify(value, reducers) { + /** @type {any[]} */ + const stringified = []; + + /** @type {Map} */ + const indexes = new Map(); + + /** @type {Array<{ key: string, fn: (value: any) => any }>} */ + const custom = []; + for (const key in reducers) { + custom.push({ key, fn: reducers[key] }); + } + + /** @type {string[]} */ + const keys = []; + + let p = 0; + + /** @param {any} thing */ + function flatten(thing) { + if (typeof thing === 'function') { + throw new DevalueError(`Cannot stringify a function`, keys); + } + + if (indexes.has(thing)) return indexes.get(thing); + + if (thing === undefined) return UNDEFINED; + if (Number.isNaN(thing)) return NAN; + if (thing === Infinity) return POSITIVE_INFINITY; + if (thing === -Infinity) return NEGATIVE_INFINITY; + if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO; + + const index = p++; + indexes.set(thing, index); + + for (const { key, fn } of custom) { + const value = fn(thing); + if (value) { + stringified[index] = `["${key}",${flatten(value)}]`; + return index; + } + } + + let str = ''; + + if (is_primitive(thing)) { + str = stringify_primitive(thing); + } else { + const type = get_type(thing); + + switch (type) { + case 'Number': + case 'String': + case 'Boolean': + str = `["Object",${stringify_primitive(thing)}]`; + break; + + case 'BigInt': + str = `["BigInt",${thing}]`; + break; + + case 'Date': + str = `["Date","${thing.toISOString()}"]`; + break; + + case 'RegExp': + const { source, flags } = thing; + str = flags + ? `["RegExp",${stringify_string(source)},"${flags}"]` + : `["RegExp",${stringify_string(source)}]`; + break; + + case 'Array': + str = '['; + + for (let i = 0; i < thing.length; i += 1) { + if (i > 0) str += ','; + + if (i in thing) { + keys.push(`[${i}]`); + str += flatten(thing[i]); + keys.pop(); + } else { + str += HOLE; + } + } + + str += ']'; + + break; + + case 'Set': + str = '["Set"'; + + for (const value of thing) { + str += `,${flatten(value)}`; + } + + str += ']'; + break; + + case 'Map': + str = '["Map"'; + + for (const [key, value] of thing) { + keys.push( + `.get(${is_primitive(key) ? stringify_primitive(key) : '...'})` + ); + str += `,${flatten(key)},${flatten(value)}`; + } + + str += ']'; + break; + + default: + if (!is_plain_object(thing)) { + throw new DevalueError( + `Cannot stringify arbitrary non-POJOs`, + keys + ); + } + + if (Object.getOwnPropertySymbols(thing).length > 0) { + throw new DevalueError( + `Cannot stringify POJOs with symbolic keys`, + keys + ); + } + + if (Object.getPrototypeOf(thing) === null) { + str = '["null"'; + for (const key in thing) { + keys.push(`.${key}`); + str += `,${stringify_string(key)},${flatten(thing[key])}`; + keys.pop(); + } + str += ']'; + } else { + str = '{'; + let started = false; + for (const key in thing) { + if (started) str += ','; + started = true; + keys.push(`.${key}`); + str += `${stringify_string(key)}:${flatten(thing[key])}`; + keys.pop(); + } + str += '}'; + } + } + } + + stringified[index] = str; + return index; + } + + const index = flatten(value); + + // special case — value is represented as a negative index + if (index < 0) return `${index}`; + + return `[${stringified.join(',')}]`; +} + +/** + * @param {any} thing + * @returns {string} + */ +function stringify_primitive(thing) { + const type = typeof thing; + if (type === 'string') return stringify_string(thing); + if (thing instanceof String) return stringify_string(thing.toString()); + if (thing === void 0) return UNDEFINED.toString(); + if (thing === 0 && 1 / thing < 0) return NEGATIVE_ZERO.toString(); + if (type === 'bigint') return `["BigInt","${thing}"]`; + return String(thing); +} + +var cookie = {}; + +/*! + * cookie + * Copyright(c) 2012-2014 Roman Shtylman + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + +var hasRequiredCookie; + +function requireCookie () { + if (hasRequiredCookie) return cookie; + hasRequiredCookie = 1; + + /** + * Module exports. + * @public + */ + + cookie.parse = parse; + cookie.serialize = serialize; + + /** + * Module variables. + * @private + */ + + var __toString = Object.prototype.toString; + + /** + * RegExp to match field-content in RFC 7230 sec 3.2 + * + * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] + * field-vchar = VCHAR / obs-text + * obs-text = %x80-FF + */ + + var fieldContentRegExp = /^[\u0009\u0020-\u007e\u0080-\u00ff]+$/; + + /** + * Parse a cookie header. + * + * Parse the given cookie header string into an object + * The object has the various cookies as keys(names) => values + * + * @param {string} str + * @param {object} [options] + * @return {object} + * @public + */ + + function parse(str, options) { + if (typeof str !== 'string') { + throw new TypeError('argument str must be a string'); + } + + var obj = {}; + var opt = options || {}; + var dec = opt.decode || decode; + + var index = 0; + while (index < str.length) { + var eqIdx = str.indexOf('=', index); + + // no more cookie pairs + if (eqIdx === -1) { + break + } + + var endIdx = str.indexOf(';', index); + + if (endIdx === -1) { + endIdx = str.length; + } else if (endIdx < eqIdx) { + // backtrack on prior semicolon + index = str.lastIndexOf(';', eqIdx - 1) + 1; + continue + } + + var key = str.slice(index, eqIdx).trim(); + + // only assign once + if (undefined === obj[key]) { + var val = str.slice(eqIdx + 1, endIdx).trim(); + + // quoted values + if (val.charCodeAt(0) === 0x22) { + val = val.slice(1, -1); + } + + obj[key] = tryDecode(val, dec); + } + + index = endIdx + 1; + } + + return obj; + } + + /** + * Serialize data into a cookie header. + * + * Serialize the a name value pair into a cookie string suitable for + * http headers. An optional options object specified cookie parameters. + * + * serialize('foo', 'bar', { httpOnly: true }) + * => "foo=bar; httpOnly" + * + * @param {string} name + * @param {string} val + * @param {object} [options] + * @return {string} + * @public + */ + + function serialize(name, val, options) { + var opt = options || {}; + var enc = opt.encode || encode; + + if (typeof enc !== 'function') { + throw new TypeError('option encode is invalid'); + } + + if (!fieldContentRegExp.test(name)) { + throw new TypeError('argument name is invalid'); + } + + var value = enc(val); + + if (value && !fieldContentRegExp.test(value)) { + throw new TypeError('argument val is invalid'); + } + + var str = name + '=' + value; + + if (null != opt.maxAge) { + var maxAge = opt.maxAge - 0; + + if (isNaN(maxAge) || !isFinite(maxAge)) { + throw new TypeError('option maxAge is invalid') + } + + str += '; Max-Age=' + Math.floor(maxAge); + } + + if (opt.domain) { + if (!fieldContentRegExp.test(opt.domain)) { + throw new TypeError('option domain is invalid'); + } + + str += '; Domain=' + opt.domain; + } + + if (opt.path) { + if (!fieldContentRegExp.test(opt.path)) { + throw new TypeError('option path is invalid'); + } + + str += '; Path=' + opt.path; + } + + if (opt.expires) { + var expires = opt.expires; + + if (!isDate(expires) || isNaN(expires.valueOf())) { + throw new TypeError('option expires is invalid'); + } + + str += '; Expires=' + expires.toUTCString(); + } + + if (opt.httpOnly) { + str += '; HttpOnly'; + } + + if (opt.secure) { + str += '; Secure'; + } + + if (opt.priority) { + var priority = typeof opt.priority === 'string' + ? opt.priority.toLowerCase() + : opt.priority; + + switch (priority) { + case 'low': + str += '; Priority=Low'; + break + case 'medium': + str += '; Priority=Medium'; + break + case 'high': + str += '; Priority=High'; + break + default: + throw new TypeError('option priority is invalid') + } + } + + if (opt.sameSite) { + var sameSite = typeof opt.sameSite === 'string' + ? opt.sameSite.toLowerCase() : opt.sameSite; + + switch (sameSite) { + case true: + str += '; SameSite=Strict'; + break; + case 'lax': + str += '; SameSite=Lax'; + break; + case 'strict': + str += '; SameSite=Strict'; + break; + case 'none': + str += '; SameSite=None'; + break; + default: + throw new TypeError('option sameSite is invalid'); + } + } + + return str; + } + + /** + * URL-decode string value. Optimized to skip native call when no %. + * + * @param {string} str + * @returns {string} + */ + + function decode (str) { + return str.indexOf('%') !== -1 + ? decodeURIComponent(str) + : str + } + + /** + * URL-encode value. + * + * @param {string} str + * @returns {string} + */ + + function encode (val) { + return encodeURIComponent(val) + } + + /** + * Determine if value is a Date. + * + * @param {*} val + * @private + */ + + function isDate (val) { + return __toString.call(val) === '[object Date]' || + val instanceof Date + } + + /** + * Try decoding a string using a decoding function. + * + * @param {string} str + * @param {function} decode + * @private + */ + + function tryDecode(str, decode) { + try { + return decode(str); + } catch (e) { + return str; + } + } + return cookie; +} + +var cookieExports = requireCookie(); + +var setCookie = {exports: {}}; + +var hasRequiredSetCookie; + +function requireSetCookie () { + if (hasRequiredSetCookie) return setCookie.exports; + hasRequiredSetCookie = 1; + + var defaultParseOptions = { + decodeValues: true, + map: false, + silent: false, + }; + + function isNonEmptyString(str) { + return typeof str === "string" && !!str.trim(); + } + + function parseString(setCookieValue, options) { + var parts = setCookieValue.split(";").filter(isNonEmptyString); + + var nameValuePairStr = parts.shift(); + var parsed = parseNameValuePair(nameValuePairStr); + var name = parsed.name; + var value = parsed.value; + + options = options + ? Object.assign({}, defaultParseOptions, options) + : defaultParseOptions; + + try { + value = options.decodeValues ? decodeURIComponent(value) : value; // decode cookie value + } catch (e) { + console.error( + "set-cookie-parser encountered an error while decoding a cookie with value '" + + value + + "'. Set options.decodeValues to false to disable this feature.", + e + ); + } + + var cookie = { + name: name, + value: value, + }; + + parts.forEach(function (part) { + var sides = part.split("="); + var key = sides.shift().trimLeft().toLowerCase(); + var value = sides.join("="); + if (key === "expires") { + cookie.expires = new Date(value); + } else if (key === "max-age") { + cookie.maxAge = parseInt(value, 10); + } else if (key === "secure") { + cookie.secure = true; + } else if (key === "httponly") { + cookie.httpOnly = true; + } else if (key === "samesite") { + cookie.sameSite = value; + } else { + cookie[key] = value; + } + }); + + return cookie; + } + + function parseNameValuePair(nameValuePairStr) { + // Parses name-value-pair according to rfc6265bis draft + + var name = ""; + var value = ""; + var nameValueArr = nameValuePairStr.split("="); + if (nameValueArr.length > 1) { + name = nameValueArr.shift(); + value = nameValueArr.join("="); // everything after the first =, joined by a "=" if there was more than one part + } else { + value = nameValuePairStr; + } + + return { name: name, value: value }; + } + + function parse(input, options) { + options = options + ? Object.assign({}, defaultParseOptions, options) + : defaultParseOptions; + + if (!input) { + if (!options.map) { + return []; + } else { + return {}; + } + } + + if (input.headers) { + if (typeof input.headers.getSetCookie === "function") { + // for fetch responses - they combine headers of the same type in the headers array, + // but getSetCookie returns an uncombined array + input = input.headers.getSetCookie(); + } else if (input.headers["set-cookie"]) { + // fast-path for node.js (which automatically normalizes header names to lower-case + input = input.headers["set-cookie"]; + } else { + // slow-path for other environments - see #25 + var sch = + input.headers[ + Object.keys(input.headers).find(function (key) { + return key.toLowerCase() === "set-cookie"; + }) + ]; + // warn if called on a request-like object with a cookie header rather than a set-cookie header - see #34, 36 + if (!sch && input.headers.cookie && !options.silent) { + console.warn( + "Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning." + ); + } + input = sch; + } + } + if (!Array.isArray(input)) { + input = [input]; + } + + options = options + ? Object.assign({}, defaultParseOptions, options) + : defaultParseOptions; + + if (!options.map) { + return input.filter(isNonEmptyString).map(function (str) { + return parseString(str, options); + }); + } else { + var cookies = {}; + return input.filter(isNonEmptyString).reduce(function (cookies, str) { + var cookie = parseString(str, options); + cookies[cookie.name] = cookie; + return cookies; + }, cookies); + } + } + + /* + Set-Cookie header field-values are sometimes comma joined in one string. This splits them without choking on commas + that are within a single set-cookie field-value, such as in the Expires portion. + + This is uncommon, but explicitly allowed - see https://tools.ietf.org/html/rfc2616#section-4.2 + Node.js does this for every header *except* set-cookie - see https://github.com/nodejs/node/blob/d5e363b77ebaf1caf67cd7528224b651c86815c1/lib/_http_incoming.js#L128 + React Native's fetch does this for *every* header, including set-cookie. + + Based on: https://github.com/google/j2objc/commit/16820fdbc8f76ca0c33472810ce0cb03d20efe25 + Credits to: https://github.com/tomball for original and https://github.com/chrusart for JavaScript implementation + */ + function splitCookiesString(cookiesString) { + if (Array.isArray(cookiesString)) { + return cookiesString; + } + if (typeof cookiesString !== "string") { + return []; + } + + var cookiesStrings = []; + var pos = 0; + var start; + var ch; + var lastComma; + var nextStart; + var cookiesSeparatorFound; + + function skipWhitespace() { + while (pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))) { + pos += 1; + } + return pos < cookiesString.length; + } + + function notSpecialChar() { + ch = cookiesString.charAt(pos); + + return ch !== "=" && ch !== ";" && ch !== ","; + } + + while (pos < cookiesString.length) { + start = pos; + cookiesSeparatorFound = false; + + while (skipWhitespace()) { + ch = cookiesString.charAt(pos); + if (ch === ",") { + // ',' is a cookie separator if we have later first '=', not ';' or ',' + lastComma = pos; + pos += 1; + + skipWhitespace(); + nextStart = pos; + + while (pos < cookiesString.length && notSpecialChar()) { + pos += 1; + } + + // currently special character + if (pos < cookiesString.length && cookiesString.charAt(pos) === "=") { + // we found cookies separator + cookiesSeparatorFound = true; + // pos is inside the next cookie, so back up and return it. + pos = nextStart; + cookiesStrings.push(cookiesString.substring(start, lastComma)); + start = pos; + } else { + // in param ',' or param separator ';', + // we continue from that comma + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); + } + } + + return cookiesStrings; + } + + setCookie.exports = parse; + setCookie.exports.parse = parse; + setCookie.exports.parseString = parseString; + setCookie.exports.splitCookiesString = splitCookiesString; + return setCookie.exports; +} + +var setCookieExports = requireSetCookie(); + +const SVELTE_KIT_ASSETS = "/_svelte_kit_assets"; +const ENDPOINT_METHODS = /* @__PURE__ */ new Set([ + "GET", + "POST", + "PUT", + "PATCH", + "DELETE", + "OPTIONS", + "HEAD" +]); +const PAGE_METHODS = /* @__PURE__ */ new Set(["GET", "POST", "HEAD"]); +function negotiate(accept, types) { + const parts = []; + accept.split(",").forEach((str, i) => { + const match = /([^/]+)\/([^;]+)(?:;q=([0-9.]+))?/.exec(str); + if (match) { + const [, type, subtype, q = "1"] = match; + parts.push({ type, subtype, q: +q, i }); + } + }); + parts.sort((a, b) => { + if (a.q !== b.q) { + return b.q - a.q; + } + if (a.subtype === "*" !== (b.subtype === "*")) { + return a.subtype === "*" ? 1 : -1; + } + if (a.type === "*" !== (b.type === "*")) { + return a.type === "*" ? 1 : -1; + } + return a.i - b.i; + }); + let accepted; + let min_priority = Infinity; + for (const mimetype of types) { + const [type, subtype] = mimetype.split("/"); + const priority = parts.findIndex( + (part) => (part.type === type || part.type === "*") && (part.subtype === subtype || part.subtype === "*") + ); + if (priority !== -1 && priority < min_priority) { + accepted = mimetype; + min_priority = priority; + } + } + return accepted; +} +function is_content_type(request, ...types) { + const type = request.headers.get("content-type")?.split(";", 1)[0].trim() ?? ""; + return types.includes(type.toLowerCase()); +} +function is_form_content_type(request) { + return is_content_type( + request, + "application/x-www-form-urlencoded", + "multipart/form-data", + "text/plain" + ); +} +function exec(match, params, matchers) { + const result = {}; + const values = match.slice(1); + const values_needing_match = values.filter((value) => value !== void 0); + let buffered = 0; + for (let i = 0; i < params.length; i += 1) { + const param = params[i]; + let value = values[i - buffered]; + if (param.chained && param.rest && buffered) { + value = values.slice(i - buffered, i + 1).filter((s2) => s2).join("/"); + buffered = 0; + } + if (value === void 0) { + if (param.rest) + result[param.name] = ""; + continue; + } + if (!param.matcher || matchers[param.matcher](value)) { + result[param.name] = value; + const next_param = params[i + 1]; + const next_value = values[i + 1]; + if (next_param && !next_param.rest && next_param.optional && next_value && param.chained) { + buffered = 0; + } + if (!next_param && !next_value && Object.keys(result).length === values_needing_match.length) { + buffered = 0; + } + continue; + } + if (param.optional && param.chained) { + buffered++; + continue; + } + return; + } + if (buffered) + return; + return result; +} +function coalesce_to_error(err) { + return err instanceof Error || err && /** @type {any} */ + err.name && /** @type {any} */ + err.message ? ( + /** @type {Error} */ + err + ) : new Error(JSON.stringify(err)); +} +function normalize_error(error2) { + return ( + /** @type {import('../runtime/control.js').Redirect | import('../runtime/control.js').HttpError | Error} */ + error2 + ); +} +function method_not_allowed(mod, method) { + return text(`${method} method not allowed`, { + status: 405, + headers: { + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405 + // "The server must generate an Allow header field in a 405 status code response" + allow: allowed_methods(mod).join(", ") + } + }); +} +function allowed_methods(mod) { + const allowed = Array.from(ENDPOINT_METHODS).filter((method) => method in mod); + if ("GET" in mod || "HEAD" in mod) + allowed.push("HEAD"); + return allowed; +} +function static_error_page(options2, status, message) { + let page = options2.templates.error({ status, message }); + return text(page, { + headers: { "content-type": "text/html; charset=utf-8" }, + status + }); +} +async function handle_fatal_error(event, options2, error2) { + error2 = error2 instanceof HttpError ? error2 : coalesce_to_error(error2); + const status = error2 instanceof HttpError ? error2.status : 500; + const body = await handle_error_and_jsonify(event, options2, error2); + const type = negotiate(event.request.headers.get("accept") || "text/html", [ + "application/json", + "text/html" + ]); + if (event.isDataRequest || type === "application/json") { + return json(body, { + status + }); + } + return static_error_page(options2, status, body.message); +} +async function handle_error_and_jsonify(event, options2, error2) { + if (error2 instanceof HttpError) { + return error2.body; + } else { + return await options2.hooks.handleError({ error: error2, event }) ?? { + message: event.route.id != null ? "Internal Error" : "Not Found" + }; + } +} +function redirect_response(status, location) { + const response = new Response(void 0, { + status, + headers: { location } + }); + return response; +} +function clarify_devalue_error(event, error2) { + if (error2.path) { + return `Data returned from \`load\` while rendering ${event.route.id} is not serializable: ${error2.message} (data${error2.path})`; + } + if (error2.path === "") { + return `Data returned from \`load\` while rendering ${event.route.id} is not a plain object`; + } + return error2.message; +} +function stringify_uses(node) { + const uses = []; + if (node.uses && node.uses.dependencies.size > 0) { + uses.push(`"dependencies":${JSON.stringify(Array.from(node.uses.dependencies))}`); + } + if (node.uses && node.uses.params.size > 0) { + uses.push(`"params":${JSON.stringify(Array.from(node.uses.params))}`); + } + if (node.uses?.parent) + uses.push('"parent":1'); + if (node.uses?.route) + uses.push('"route":1'); + if (node.uses?.url) + uses.push('"url":1'); + return `"uses":{${uses.join(",")}}`; +} +async function render_endpoint(event, mod, state) { + const method = ( + /** @type {import('types').HttpMethod} */ + event.request.method + ); + let handler = mod[method] || mod.fallback; + if (method === "HEAD" && mod.GET && !mod.HEAD) { + handler = mod.GET; + } + if (!handler) { + return method_not_allowed(mod, method); + } + const prerender = mod.prerender ?? state.prerender_default; + if (prerender && (mod.POST || mod.PATCH || mod.PUT || mod.DELETE)) { + throw new Error("Cannot prerender endpoints that have mutative methods"); + } + if (state.prerendering && !prerender) { + if (state.depth > 0) { + throw new Error(`${event.route.id} is not prerenderable`); + } else { + return new Response(void 0, { status: 204 }); + } + } + try { + let response = await handler( + /** @type {import('@sveltejs/kit').RequestEvent>} */ + event + ); + if (!(response instanceof Response)) { + throw new Error( + `Invalid response from route ${event.url.pathname}: handler should return a Response object` + ); + } + if (state.prerendering) { + response = new Response(response.body, { + status: response.status, + statusText: response.statusText, + headers: new Headers(response.headers) + }); + response.headers.set("x-sveltekit-prerender", String(prerender)); + } + return response; + } catch (e) { + if (e instanceof Redirect) { + return new Response(void 0, { + status: e.status, + headers: { location: e.location } + }); + } + throw e; + } +} +function is_endpoint_request(event) { + const { method, headers } = event.request; + if (ENDPOINT_METHODS.has(method) && !PAGE_METHODS.has(method)) { + return true; + } + if (method === "POST" && headers.get("x-sveltekit-action") === "true") + return false; + const accept = event.request.headers.get("accept") ?? "*/*"; + return negotiate(accept, ["*", "text/html"]) !== "text/html"; +} +function compact(arr) { + return arr.filter( + /** @returns {val is NonNullable} */ + (val) => val != null + ); +} +function normalize_path(path, trailing_slash) { + if (path === "/" || trailing_slash === "ignore") + return path; + if (trailing_slash === "never") { + return path.endsWith("/") ? path.slice(0, -1) : path; + } else if (trailing_slash === "always" && !path.endsWith("/")) { + return path + "/"; + } + return path; +} +function decode_pathname(pathname) { + return pathname.split("%25").map(decodeURI).join("%25"); +} +function decode_params(params) { + for (const key2 in params) { + params[key2] = decodeURIComponent(params[key2]); + } + return params; +} +const tracked_url_properties = ( + /** @type {const} */ + [ + "href", + "pathname", + "search", + "searchParams", + "toString", + "toJSON" + ] +); +function make_trackable(url, callback) { + const tracked = new URL(url); + for (const property of tracked_url_properties) { + Object.defineProperty(tracked, property, { + get() { + callback(); + return url[property]; + }, + enumerable: true, + configurable: true + }); + } + { + tracked[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => { + return inspect(url, opts); + }; + } + disable_hash(tracked); + return tracked; +} +function disable_hash(url) { + allow_nodejs_console_log(url); + Object.defineProperty(url, "hash", { + get() { + throw new Error( + "Cannot access event.url.hash. Consider using `$page.url.hash` inside a component instead" + ); + } + }); +} +function disable_search(url) { + allow_nodejs_console_log(url); + for (const property of ["search", "searchParams"]) { + Object.defineProperty(url, property, { + get() { + throw new Error(`Cannot access url.${property} on a page with prerendering enabled`); + } + }); + } +} +function allow_nodejs_console_log(url) { + { + url[Symbol.for("nodejs.util.inspect.custom")] = (depth, opts, inspect) => { + return inspect(new URL(url), opts); + }; + } +} +const DATA_SUFFIX = "/__data.json"; +function has_data_suffix(pathname) { + return pathname.endsWith(DATA_SUFFIX); +} +function add_data_suffix(pathname) { + return pathname.replace(/\/$/, "") + DATA_SUFFIX; +} +function strip_data_suffix(pathname) { + return pathname.slice(0, -DATA_SUFFIX.length); +} +function is_action_json_request(event) { + const accept = negotiate(event.request.headers.get("accept") ?? "*/*", [ + "application/json", + "text/html" + ]); + return accept === "application/json" && event.request.method === "POST"; +} +async function handle_action_json_request(event, options2, server) { + const actions = server?.actions; + if (!actions) { + const no_actions_error = error(405, "POST method not allowed. No actions exist for this page"); + return action_json( + { + type: "error", + error: await handle_error_and_jsonify(event, options2, no_actions_error) + }, + { + status: no_actions_error.status, + headers: { + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405 + // "The server must generate an Allow header field in a 405 status code response" + allow: "GET" + } + } + ); + } + check_named_default_separate(actions); + try { + const data = await call_action(event, actions); + if (false) + ; + if (data instanceof ActionFailure) { + return action_json({ + type: "failure", + status: data.status, + // @ts-expect-error we assign a string to what is supposed to be an object. That's ok + // because we don't use the object outside, and this way we have better code navigation + // through knowing where the related interface is used. + data: stringify_action_response( + data.data, + /** @type {string} */ + event.route.id + ) + }); + } else { + return action_json({ + type: "success", + status: data ? 200 : 204, + // @ts-expect-error see comment above + data: stringify_action_response( + data, + /** @type {string} */ + event.route.id + ) + }); + } + } catch (e) { + const err = normalize_error(e); + if (err instanceof Redirect) { + return action_json_redirect(err); + } + return action_json( + { + type: "error", + error: await handle_error_and_jsonify(event, options2, check_incorrect_fail_use(err)) + }, + { + status: err instanceof HttpError ? err.status : 500 + } + ); + } +} +function check_incorrect_fail_use(error2) { + return error2 instanceof ActionFailure ? new Error('Cannot "throw fail()". Use "return fail()"') : error2; +} +function action_json_redirect(redirect) { + return action_json({ + type: "redirect", + status: redirect.status, + location: redirect.location + }); +} +function action_json(data, init2) { + return json(data, init2); +} +function is_action_request(event) { + return event.request.method === "POST"; +} +async function handle_action_request(event, server) { + const actions = server?.actions; + if (!actions) { + event.setHeaders({ + // https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405 + // "The server must generate an Allow header field in a 405 status code response" + allow: "GET" + }); + return { + type: "error", + error: error(405, "POST method not allowed. No actions exist for this page") + }; + } + check_named_default_separate(actions); + try { + const data = await call_action(event, actions); + if (false) + ; + if (data instanceof ActionFailure) { + return { + type: "failure", + status: data.status, + data: data.data + }; + } else { + return { + type: "success", + status: 200, + // @ts-expect-error this will be removed upon serialization, so `undefined` is the same as omission + data + }; + } + } catch (e) { + const err = normalize_error(e); + if (err instanceof Redirect) { + return { + type: "redirect", + status: err.status, + location: err.location + }; + } + return { + type: "error", + error: check_incorrect_fail_use(err) + }; + } +} +function check_named_default_separate(actions) { + if (actions.default && Object.keys(actions).length > 1) { + throw new Error( + "When using named actions, the default action cannot be used. See the docs for more info: https://kit.svelte.dev/docs/form-actions#named-actions" + ); + } +} +async function call_action(event, actions) { + const url = new URL(event.request.url); + let name = "default"; + for (const param of url.searchParams) { + if (param[0].startsWith("/")) { + name = param[0].slice(1); + if (name === "default") { + throw new Error('Cannot use reserved action name "default"'); + } + break; + } + } + const action = actions[name]; + if (!action) { + throw new Error(`No action with name '${name}' found`); + } + if (!is_form_content_type(event.request)) { + throw new Error( + `Actions expect form-encoded data (received ${event.request.headers.get("content-type")})` + ); + } + return action(event); +} +function uneval_action_response(data, route_id) { + return try_deserialize(data, uneval, route_id); +} +function stringify_action_response(data, route_id) { + return try_deserialize(data, stringify, route_id); +} +function try_deserialize(data, fn, route_id) { + try { + return fn(data); + } catch (e) { + const error2 = ( + /** @type {any} */ + e + ); + if ("path" in error2) { + let message = `Data returned from action inside ${route_id} is not serializable: ${error2.message}`; + if (error2.path !== "") + message += ` (data.${error2.path})`; + throw new Error(message); + } + throw error2; + } +} +async function unwrap_promises(object) { + for (const key2 in object) { + if (typeof object[key2]?.then === "function") { + return Object.fromEntries( + await Promise.all(Object.entries(object).map(async ([key3, value]) => [key3, await value])) + ); + } + } + return object; +} +const INVALIDATED_PARAM = "x-sveltekit-invalidated"; +const TRAILING_SLASH_PARAM = "x-sveltekit-trailing-slash"; +async function load_server_data({ + event, + state, + node, + parent, + // TODO 2.0: Remove this + track_server_fetches +}) { + if (!node?.server) + return null; + const uses = { + dependencies: /* @__PURE__ */ new Set(), + params: /* @__PURE__ */ new Set(), + parent: false, + route: false, + url: false + }; + const url = make_trackable(event.url, () => { + uses.url = true; + }); + if (state.prerendering) { + disable_search(url); + } + const result = await node.server.load?.call(null, { + ...event, + fetch: (info, init2) => { + const url2 = new URL(info instanceof Request ? info.url : info, event.url); + if (track_server_fetches) { + uses.dependencies.add(url2.href); + } + return event.fetch(info, init2); + }, + /** @param {string[]} deps */ + depends: (...deps) => { + for (const dep of deps) { + const { href } = new URL(dep, event.url); + uses.dependencies.add(href); + } + }, + params: new Proxy(event.params, { + get: (target, key2) => { + uses.params.add(key2); + return target[ + /** @type {string} */ + key2 + ]; + } + }), + parent: async () => { + uses.parent = true; + return parent(); + }, + route: new Proxy(event.route, { + get: (target, key2) => { + uses.route = true; + return target[ + /** @type {'id'} */ + key2 + ]; + } + }), + url + }); + const data = result ? await unwrap_promises(result) : null; + return { + type: "data", + data, + uses, + slash: node.server.trailingSlash + }; +} +async function load_data({ + event, + fetched, + node, + parent, + server_data_promise, + state, + resolve_opts, + csr +}) { + const server_data_node = await server_data_promise; + if (!node?.universal?.load) { + return server_data_node?.data ?? null; + } + const result = await node.universal.load.call(null, { + url: event.url, + params: event.params, + data: server_data_node?.data ?? null, + route: event.route, + fetch: create_universal_fetch(event, state, fetched, csr, resolve_opts), + setHeaders: event.setHeaders, + depends: () => { + }, + parent + }); + const data = result ? await unwrap_promises(result) : null; + return data; +} +function create_universal_fetch(event, state, fetched, csr, resolve_opts) { + return async (input, init2) => { + const cloned_body = input instanceof Request && input.body ? input.clone().body : null; + const cloned_headers = input instanceof Request && [...input.headers].length ? new Headers(input.headers) : init2?.headers; + let response = await event.fetch(input, init2); + const url = new URL(input instanceof Request ? input.url : input, event.url); + const same_origin = url.origin === event.url.origin; + let dependency; + if (same_origin) { + if (state.prerendering) { + dependency = { response, body: null }; + state.prerendering.dependencies.set(url.pathname, dependency); + } + } else { + const mode = input instanceof Request ? input.mode : init2?.mode ?? "cors"; + if (mode === "no-cors") { + response = new Response("", { + status: response.status, + statusText: response.statusText, + headers: response.headers + }); + } else { + const acao = response.headers.get("access-control-allow-origin"); + if (!acao || acao !== event.url.origin && acao !== "*") { + throw new Error( + `CORS error: ${acao ? "Incorrect" : "No"} 'Access-Control-Allow-Origin' header is present on the requested resource` + ); + } + } + } + const proxy = new Proxy(response, { + get(response2, key2, _receiver) { + async function text2() { + const body = await response2.text(); + if (!body || typeof body === "string") { + const status_number = Number(response2.status); + if (isNaN(status_number)) { + throw new Error( + `response.status is not a number. value: "${response2.status}" type: ${typeof response2.status}` + ); + } + fetched.push({ + url: same_origin ? url.href.slice(event.url.origin.length) : url.href, + method: event.request.method, + request_body: ( + /** @type {string | ArrayBufferView | undefined} */ + input instanceof Request && cloned_body ? await stream_to_string(cloned_body) : init2?.body + ), + request_headers: cloned_headers, + response_body: body, + response: response2 + }); + } + if (dependency) { + dependency.body = body; + } + return body; + } + if (key2 === "arrayBuffer") { + return async () => { + const buffer = await response2.arrayBuffer(); + if (dependency) { + dependency.body = new Uint8Array(buffer); + } + return buffer; + }; + } + if (key2 === "text") { + return text2; + } + if (key2 === "json") { + return async () => { + return JSON.parse(await text2()); + }; + } + return Reflect.get(response2, key2, response2); + } + }); + if (csr) { + const get = response.headers.get; + response.headers.get = (key2) => { + const lower = key2.toLowerCase(); + const value = get.call(response.headers, lower); + if (value && !lower.startsWith("x-sveltekit-")) { + const included = resolve_opts.filterSerializedResponseHeaders(lower, value); + if (!included) { + throw new Error( + `Failed to get response header "${lower}" — it must be included by the \`filterSerializedResponseHeaders\` option: https://kit.svelte.dev/docs/hooks#server-hooks-handle (at ${event.route.id})` + ); + } + } + return value; + }; + } + return proxy; + }; +} +async function stream_to_string(stream) { + let result = ""; + const reader = stream.getReader(); + const decoder = new TextDecoder(); + while (true) { + const { done, value } = await reader.read(); + if (done) { + break; + } + result += decoder.decode(value); + } + return result; +} +function hash(...values) { + let hash2 = 5381; + for (const value of values) { + if (typeof value === "string") { + let i = value.length; + while (i) + hash2 = hash2 * 33 ^ value.charCodeAt(--i); + } else if (ArrayBuffer.isView(value)) { + const buffer = new Uint8Array(value.buffer, value.byteOffset, value.byteLength); + let i = buffer.length; + while (i) + hash2 = hash2 * 33 ^ buffer[--i]; + } else { + throw new TypeError("value must be a string or TypedArray"); + } + } + return (hash2 >>> 0).toString(36); +} +const escape_html_attr_dict = { + "&": "&", + '"': """ +}; +const escape_html_attr_regex = new RegExp( + // special characters + `[${Object.keys(escape_html_attr_dict).join("")}]|[\\ud800-\\udbff](?![\\udc00-\\udfff])|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\udc00-\\udfff]`, + "g" +); +function escape_html_attr(str) { + const escaped_str = str.replace(escape_html_attr_regex, (match) => { + if (match.length === 2) { + return match; + } + return escape_html_attr_dict[match] ?? `&#${match.charCodeAt(0)};`; + }); + return `"${escaped_str}"`; +} +const replacements = { + "<": "\\u003C", + "\u2028": "\\u2028", + "\u2029": "\\u2029" +}; +const pattern = new RegExp(`[${Object.keys(replacements).join("")}]`, "g"); +function serialize_data(fetched, filter, prerendering = false) { + const headers = {}; + let cache_control = null; + let age = null; + let varyAny = false; + for (const [key2, value] of fetched.response.headers) { + if (filter(key2, value)) { + headers[key2] = value; + } + if (key2 === "cache-control") + cache_control = value; + else if (key2 === "age") + age = value; + else if (key2 === "vary" && value.trim() === "*") + varyAny = true; + } + const payload = { + status: fetched.response.status, + statusText: fetched.response.statusText, + headers, + body: fetched.response_body + }; + const safe_payload = JSON.stringify(payload).replace(pattern, (match) => replacements[match]); + const attrs = [ + 'type="application/json"', + "data-sveltekit-fetched", + `data-url=${escape_html_attr(fetched.url)}` + ]; + if (fetched.request_headers || fetched.request_body) { + const values = []; + if (fetched.request_headers) { + values.push([...new Headers(fetched.request_headers)].join(",")); + } + if (fetched.request_body) { + values.push(fetched.request_body); + } + attrs.push(`data-hash="${hash(...values)}"`); + } + if (!prerendering && fetched.method === "GET" && cache_control && !varyAny) { + const match = /s-maxage=(\d+)/g.exec(cache_control) ?? /max-age=(\d+)/g.exec(cache_control); + if (match) { + const ttl = +match[1] - +(age ?? "0"); + attrs.push(`data-ttl="${ttl}"`); + } + } + return ` + +
+
+ +
+ +
+ + +
+ + diff --git a/SvelteKit-App/src/routes/+page.svelte b/SvelteKit-App/src/routes/+page.svelte new file mode 100644 index 0000000..97201ef --- /dev/null +++ b/SvelteKit-App/src/routes/+page.svelte @@ -0,0 +1,59 @@ + + + + Home + + + +
+

+ + + + Welcome + + + + to your new
SvelteKit app +

+ +

+ try editing src/routes/+page.svelte +

+ + +
+ + diff --git a/SvelteKit-App/src/routes/+page.ts b/SvelteKit-App/src/routes/+page.ts new file mode 100644 index 0000000..a72419a --- /dev/null +++ b/SvelteKit-App/src/routes/+page.ts @@ -0,0 +1,3 @@ +// since there's no dynamic data here, we can prerender +// it so that it gets served as a static asset in production +export const prerender = true; diff --git a/SvelteKit-App/src/routes/Counter.svelte b/SvelteKit-App/src/routes/Counter.svelte new file mode 100644 index 0000000..96ef556 --- /dev/null +++ b/SvelteKit-App/src/routes/Counter.svelte @@ -0,0 +1,102 @@ + + +
+ + +
+
+ + {Math.floor($displayed_count)} +
+
+ + +
+ + diff --git a/SvelteKit-App/src/routes/Header.svelte b/SvelteKit-App/src/routes/Header.svelte new file mode 100644 index 0000000..368b721 --- /dev/null +++ b/SvelteKit-App/src/routes/Header.svelte @@ -0,0 +1,129 @@ + + +
+
+ + SvelteKit + +
+ + + +
+ + GitHub + +
+
+ + diff --git a/SvelteKit-App/src/routes/about/+page.svelte b/SvelteKit-App/src/routes/about/+page.svelte new file mode 100644 index 0000000..7f7946d --- /dev/null +++ b/SvelteKit-App/src/routes/about/+page.svelte @@ -0,0 +1,26 @@ + + About + + + +
+

About this app

+ +

+ This is a SvelteKit app. You can make your own by typing the + following into your command line and following the prompts: +

+ +
npm create svelte@latest
+ +

+ The page you're looking at is purely static HTML, with no client-side interactivity needed. + Because of that, we don't need to load any JavaScript. Try viewing the page's source, or opening + the devtools network panel and reloading. +

+ +

+ The Sverdle page illustrates SvelteKit's data loading and form handling. Try + using it with JavaScript disabled! +

+
diff --git a/SvelteKit-App/src/routes/about/+page.ts b/SvelteKit-App/src/routes/about/+page.ts new file mode 100644 index 0000000..e739ef4 --- /dev/null +++ b/SvelteKit-App/src/routes/about/+page.ts @@ -0,0 +1,9 @@ +import { dev } from '$app/environment'; + +// we don't need any JS on this page, though we'll load +// it in dev so that we get hot module replacement +export const csr = dev; + +// since there's no dynamic data here, we can prerender +// it so that it gets served as a static asset in production +export const prerender = true; diff --git a/SvelteKit-App/src/routes/styles.css b/SvelteKit-App/src/routes/styles.css new file mode 100644 index 0000000..1441d94 --- /dev/null +++ b/SvelteKit-App/src/routes/styles.css @@ -0,0 +1,107 @@ +@import '@fontsource/fira-mono'; + +:root { + --font-body: Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, + Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + --font-mono: 'Fira Mono', monospace; + --color-bg-0: rgb(202, 216, 228); + --color-bg-1: hsl(209, 36%, 86%); + --color-bg-2: hsl(224, 44%, 95%); + --color-theme-1: #ff3e00; + --color-theme-2: #4075a6; + --color-text: rgba(0, 0, 0, 0.7); + --column-width: 42rem; + --column-margin-top: 4rem; + font-family: var(--font-body); + color: var(--color-text); +} + +body { + min-height: 100vh; + margin: 0; + background-attachment: fixed; + background-color: var(--color-bg-1); + background-size: 100vw 100vh; + background-image: radial-gradient( + 50% 50% at 50% 50%, + rgba(255, 255, 255, 0.75) 0%, + rgba(255, 255, 255, 0) 100% + ), + linear-gradient(180deg, var(--color-bg-0) 0%, var(--color-bg-1) 15%, var(--color-bg-2) 50%); +} + +h1, +h2, +p { + font-weight: 400; +} + +p { + line-height: 1.5; +} + +a { + color: var(--color-theme-1); + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +h1 { + font-size: 2rem; + text-align: center; +} + +h2 { + font-size: 1rem; +} + +pre { + font-size: 16px; + font-family: var(--font-mono); + background-color: rgba(255, 255, 255, 0.45); + border-radius: 3px; + box-shadow: 2px 2px 6px rgb(255 255 255 / 25%); + padding: 0.5em; + overflow-x: auto; + color: var(--color-text); +} + +.text-column { + display: flex; + max-width: 48rem; + flex: 0.6; + flex-direction: column; + justify-content: center; + margin: 0 auto; +} + +input, +button { + font-size: inherit; + font-family: inherit; +} + +button:focus:not(:focus-visible) { + outline: none; +} + +@media (min-width: 720px) { + h1 { + font-size: 2.4rem; + } +} + +.visually-hidden { + border: 0; + clip: rect(0 0 0 0); + height: auto; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; + white-space: nowrap; +} diff --git a/SvelteKit-App/src/routes/sverdle/+page.server.ts b/SvelteKit-App/src/routes/sverdle/+page.server.ts new file mode 100644 index 0000000..113afaf --- /dev/null +++ b/SvelteKit-App/src/routes/sverdle/+page.server.ts @@ -0,0 +1,69 @@ +import { fail } from '@sveltejs/kit'; +import { Game } from './game'; +import type { PageServerLoad, Actions } from './$types'; + +export const load = (({ cookies }) => { + const game = new Game(cookies.get('sverdle')); + + return { + /** + * The player's guessed words so far + */ + guesses: game.guesses, + + /** + * An array of strings like '__x_c' corresponding to the guesses, where 'x' means + * an exact match, and 'c' means a close match (right letter, wrong place) + */ + answers: game.answers, + + /** + * The correct answer, revealed if the game is over + */ + answer: game.answers.length >= 6 ? game.answer : null + }; +}) satisfies PageServerLoad; + +export const actions = { + /** + * Modify game state in reaction to a keypress. If client-side JavaScript + * is available, this will happen in the browser instead of here + */ + update: async ({ request, cookies }) => { + const game = new Game(cookies.get('sverdle')); + + const data = await request.formData(); + const key = data.get('key'); + + const i = game.answers.length; + + if (key === 'backspace') { + game.guesses[i] = game.guesses[i].slice(0, -1); + } else { + game.guesses[i] += key; + } + + cookies.set('sverdle', game.toString()); + }, + + /** + * Modify game state in reaction to a guessed word. This logic always runs on + * the server, so that people can't cheat by peeking at the JavaScript + */ + enter: async ({ request, cookies }) => { + const game = new Game(cookies.get('sverdle')); + + const data = await request.formData(); + const guess = data.getAll('guess') as string[]; + + if (!game.enter(guess)) { + return fail(400, { badGuess: true }); + } + + cookies.set('sverdle', game.toString()); + }, + + restart: async ({ cookies }) => { + cookies.delete('sverdle'); + } +} satisfies Actions; diff --git a/SvelteKit-App/src/routes/sverdle/+page.svelte b/SvelteKit-App/src/routes/sverdle/+page.svelte new file mode 100644 index 0000000..517abd8 --- /dev/null +++ b/SvelteKit-App/src/routes/sverdle/+page.svelte @@ -0,0 +1,411 @@ + + + + + + Sverdle + + + +

Sverdle

+ +
{ + // prevent default callback from resetting the form + return ({ update }) => { + update({ reset: false }); + }; + }} +> + How to play + +
+ {#each Array.from(Array(6).keys()) as row (row)} + {@const current = row === i} +

Row {row + 1}

+
+ {#each Array.from(Array(5).keys()) as column (column)} + {@const guess = current ? currentGuess : data.guesses[row]} + {@const answer = data.answers[row]?.[column]} + {@const value = guess?.[column] ?? ''} + {@const selected = current && column === guess.length} + {@const exact = answer === 'x'} + {@const close = answer === 'c'} + {@const missing = answer === '_'} +
+ {value} + + {#if exact} + (correct) + {:else if close} + (present) + {:else if missing} + (absent) + {:else} + empty + {/if} + + +
+ {/each} +
+ {/each} +
+ +
+ {#if won || data.answers.length >= 6} + {#if !won && data.answer} +

the answer was "{data.answer}"

+ {/if} + + {:else} +
+ + + + + {#each ['qwertyuiop', 'asdfghjkl', 'zxcvbnm'] as row} +
+ {#each row as letter} + + {/each} +
+ {/each} +
+ {/if} +
+
+ +{#if won} +
+{/if} + + diff --git a/SvelteKit-App/src/routes/sverdle/game.test.ts b/SvelteKit-App/src/routes/sverdle/game.test.ts new file mode 100644 index 0000000..99028b6 --- /dev/null +++ b/SvelteKit-App/src/routes/sverdle/game.test.ts @@ -0,0 +1,9 @@ +import { describe, it, expect } from 'vitest'; +import { Game } from './game'; + +describe('game test', () => { + it('returns true when a valid word is entered', () => { + const game = new Game(); + expect(game.enter('zorro'.split(''))).toBe(true); + }); +}); diff --git a/SvelteKit-App/src/routes/sverdle/game.ts b/SvelteKit-App/src/routes/sverdle/game.ts new file mode 100644 index 0000000..72aef85 --- /dev/null +++ b/SvelteKit-App/src/routes/sverdle/game.ts @@ -0,0 +1,75 @@ +import { words, allowed } from './words.server'; + +export class Game { + index: number; + guesses: string[]; + answers: string[]; + answer: string; + + /** + * Create a game object from the player's cookie, or initialise a new game + */ + constructor(serialized: string | undefined = undefined) { + if (serialized) { + const [index, guesses, answers] = serialized.split('-'); + + this.index = +index; + this.guesses = guesses ? guesses.split(' ') : []; + this.answers = answers ? answers.split(' ') : []; + } else { + this.index = Math.floor(Math.random() * words.length); + this.guesses = ['', '', '', '', '', '']; + this.answers = []; + } + + this.answer = words[this.index]; + } + + /** + * Update game state based on a guess of a five-letter word. Returns + * true if the guess was valid, false otherwise + */ + enter(letters: string[]) { + const word = letters.join(''); + const valid = allowed.has(word); + + if (!valid) return false; + + this.guesses[this.answers.length] = word; + + const available = Array.from(this.answer); + const answer = Array(5).fill('_'); + + // first, find exact matches + for (let i = 0; i < 5; i += 1) { + if (letters[i] === available[i]) { + answer[i] = 'x'; + available[i] = ' '; + } + } + + // then find close matches (this has to happen + // in a second step, otherwise an early close + // match can prevent a later exact match) + for (let i = 0; i < 5; i += 1) { + if (answer[i] === '_') { + const index = available.indexOf(letters[i]); + if (index !== -1) { + answer[i] = 'c'; + available[index] = ' '; + } + } + } + + this.answers.push(answer.join('')); + + return true; + } + + /** + * Serialize game state so it can be set as a cookie + */ + toString() { + return `${this.index}-${this.guesses.join(' ')}-${this.answers.join(' ')}`; + } +} diff --git a/SvelteKit-App/src/routes/sverdle/how-to-play/+page.svelte b/SvelteKit-App/src/routes/sverdle/how-to-play/+page.svelte new file mode 100644 index 0000000..e8e2cec --- /dev/null +++ b/SvelteKit-App/src/routes/sverdle/how-to-play/+page.svelte @@ -0,0 +1,95 @@ + + How to play Sverdle + + + +
+

How to play Sverdle

+ +

+ Sverdle is a clone of Wordle, the + word guessing game. To play, enter a five-letter English word. For example: +

+ +
+ r + i + t + z + y +
+ +

+ The y is in the right place. r and + t + are the right letters, but in the wrong place. The other letters are wrong, and can be discarded. + Let's make another guess: +

+ +
+ p + a + r + t + y +
+ +

This time we guessed right! You have six guesses to get the word.

+ +

+ Unlike the original Wordle, Sverdle runs on the server instead of in the browser, making it + impossible to cheat. It uses <form> and cookies to submit data, meaning you can + even play with JavaScript disabled! +

+
+ + diff --git a/SvelteKit-App/src/routes/sverdle/how-to-play/+page.ts b/SvelteKit-App/src/routes/sverdle/how-to-play/+page.ts new file mode 100644 index 0000000..e739ef4 --- /dev/null +++ b/SvelteKit-App/src/routes/sverdle/how-to-play/+page.ts @@ -0,0 +1,9 @@ +import { dev } from '$app/environment'; + +// we don't need any JS on this page, though we'll load +// it in dev so that we get hot module replacement +export const csr = dev; + +// since there's no dynamic data here, we can prerender +// it so that it gets served as a static asset in production +export const prerender = true; diff --git a/SvelteKit-App/src/routes/sverdle/reduced-motion.ts b/SvelteKit-App/src/routes/sverdle/reduced-motion.ts new file mode 100644 index 0000000..7a4e95e --- /dev/null +++ b/SvelteKit-App/src/routes/sverdle/reduced-motion.ts @@ -0,0 +1,23 @@ +import { readable } from 'svelte/store'; +import { browser } from '$app/environment'; + +const reduced_motion_query = '(prefers-reduced-motion: reduce)'; + +const get_initial_motion_preference = () => { + if (!browser) return false; + return window.matchMedia(reduced_motion_query).matches; +}; + +export const reduced_motion = readable(get_initial_motion_preference(), (set) => { + if (browser) { + const set_reduced_motion = (event: MediaQueryListEvent) => { + set(event.matches); + }; + const media_query_list = window.matchMedia(reduced_motion_query); + media_query_list.addEventListener('change', set_reduced_motion); + + return () => { + media_query_list.removeEventListener('change', set_reduced_motion); + }; + } +}); diff --git a/SvelteKit-App/src/routes/sverdle/words.server.ts b/SvelteKit-App/src/routes/sverdle/words.server.ts new file mode 100644 index 0000000..56082a3 --- /dev/null +++ b/SvelteKit-App/src/routes/sverdle/words.server.ts @@ -0,0 +1,12980 @@ +/** The list of possible words */ +export const words = [ + 'aback', + 'abase', + 'abate', + 'abbey', + 'abbot', + 'abhor', + 'abide', + 'abled', + 'abode', + 'abort', + 'about', + 'above', + 'abuse', + 'abyss', + 'acorn', + 'acrid', + 'actor', + 'acute', + 'adage', + 'adapt', + 'adept', + 'admin', + 'admit', + 'adobe', + 'adopt', + 'adore', + 'adorn', + 'adult', + 'affix', + 'afire', + 'afoot', + 'afoul', + 'after', + 'again', + 'agape', + 'agate', + 'agent', + 'agile', + 'aging', + 'aglow', + 'agony', + 'agora', + 'agree', + 'ahead', + 'aider', + 'aisle', + 'alarm', + 'album', + 'alert', + 'algae', + 'alibi', + 'alien', + 'align', + 'alike', + 'alive', + 'allay', + 'alley', + 'allot', + 'allow', + 'alloy', + 'aloft', + 'alone', + 'along', + 'aloof', + 'aloud', + 'alpha', + 'altar', + 'alter', + 'amass', + 'amaze', + 'amber', + 'amble', + 'amend', + 'amiss', + 'amity', + 'among', + 'ample', + 'amply', + 'amuse', + 'angel', + 'anger', + 'angle', + 'angry', + 'angst', + 'anime', + 'ankle', + 'annex', + 'annoy', + 'annul', + 'anode', + 'antic', + 'anvil', + 'aorta', + 'apart', + 'aphid', + 'aping', + 'apnea', + 'apple', + 'apply', + 'apron', + 'aptly', + 'arbor', + 'ardor', + 'arena', + 'argue', + 'arise', + 'armor', + 'aroma', + 'arose', + 'array', + 'arrow', + 'arson', + 'artsy', + 'ascot', + 'ashen', + 'aside', + 'askew', + 'assay', + 'asset', + 'atoll', + 'atone', + 'attic', + 'audio', + 'audit', + 'augur', + 'aunty', + 'avail', + 'avert', + 'avian', + 'avoid', + 'await', + 'awake', + 'award', + 'aware', + 'awash', + 'awful', + 'awoke', + 'axial', + 'axiom', + 'axion', + 'azure', + 'bacon', + 'badge', + 'badly', + 'bagel', + 'baggy', + 'baker', + 'baler', + 'balmy', + 'banal', + 'banjo', + 'barge', + 'baron', + 'basal', + 'basic', + 'basil', + 'basin', + 'basis', + 'baste', + 'batch', + 'bathe', + 'baton', + 'batty', + 'bawdy', + 'bayou', + 'beach', + 'beady', + 'beard', + 'beast', + 'beech', + 'beefy', + 'befit', + 'began', + 'begat', + 'beget', + 'begin', + 'begun', + 'being', + 'belch', + 'belie', + 'belle', + 'belly', + 'below', + 'bench', + 'beret', + 'berry', + 'berth', + 'beset', + 'betel', + 'bevel', + 'bezel', + 'bible', + 'bicep', + 'biddy', + 'bigot', + 'bilge', + 'billy', + 'binge', + 'bingo', + 'biome', + 'birch', + 'birth', + 'bison', + 'bitty', + 'black', + 'blade', + 'blame', + 'bland', + 'blank', + 'blare', + 'blast', + 'blaze', + 'bleak', + 'bleat', + 'bleed', + 'bleep', + 'blend', + 'bless', + 'blimp', + 'blind', + 'blink', + 'bliss', + 'blitz', + 'bloat', + 'block', + 'bloke', + 'blond', + 'blood', + 'bloom', + 'blown', + 'bluer', + 'bluff', + 'blunt', + 'blurb', + 'blurt', + 'blush', + 'board', + 'boast', + 'bobby', + 'boney', + 'bongo', + 'bonus', + 'booby', + 'boost', + 'booth', + 'booty', + 'booze', + 'boozy', + 'borax', + 'borne', + 'bosom', + 'bossy', + 'botch', + 'bough', + 'boule', + 'bound', + 'bowel', + 'boxer', + 'brace', + 'braid', + 'brain', + 'brake', + 'brand', + 'brash', + 'brass', + 'brave', + 'bravo', + 'brawl', + 'brawn', + 'bread', + 'break', + 'breed', + 'briar', + 'bribe', + 'brick', + 'bride', + 'brief', + 'brine', + 'bring', + 'brink', + 'briny', + 'brisk', + 'broad', + 'broil', + 'broke', + 'brood', + 'brook', + 'broom', + 'broth', + 'brown', + 'brunt', + 'brush', + 'brute', + 'buddy', + 'budge', + 'buggy', + 'bugle', + 'build', + 'built', + 'bulge', + 'bulky', + 'bully', + 'bunch', + 'bunny', + 'burly', + 'burnt', + 'burst', + 'bused', + 'bushy', + 'butch', + 'butte', + 'buxom', + 'buyer', + 'bylaw', + 'cabal', + 'cabby', + 'cabin', + 'cable', + 'cacao', + 'cache', + 'cacti', + 'caddy', + 'cadet', + 'cagey', + 'cairn', + 'camel', + 'cameo', + 'canal', + 'candy', + 'canny', + 'canoe', + 'canon', + 'caper', + 'caput', + 'carat', + 'cargo', + 'carol', + 'carry', + 'carve', + 'caste', + 'catch', + 'cater', + 'catty', + 'caulk', + 'cause', + 'cavil', + 'cease', + 'cedar', + 'cello', + 'chafe', + 'chaff', + 'chain', + 'chair', + 'chalk', + 'champ', + 'chant', + 'chaos', + 'chard', + 'charm', + 'chart', + 'chase', + 'chasm', + 'cheap', + 'cheat', + 'check', + 'cheek', + 'cheer', + 'chess', + 'chest', + 'chick', + 'chide', + 'chief', + 'child', + 'chili', + 'chill', + 'chime', + 'china', + 'chirp', + 'chock', + 'choir', + 'choke', + 'chord', + 'chore', + 'chose', + 'chuck', + 'chump', + 'chunk', + 'churn', + 'chute', + 'cider', + 'cigar', + 'cinch', + 'circa', + 'civic', + 'civil', + 'clack', + 'claim', + 'clamp', + 'clang', + 'clank', + 'clash', + 'clasp', + 'class', + 'clean', + 'clear', + 'cleat', + 'cleft', + 'clerk', + 'click', + 'cliff', + 'climb', + 'cling', + 'clink', + 'cloak', + 'clock', + 'clone', + 'close', + 'cloth', + 'cloud', + 'clout', + 'clove', + 'clown', + 'cluck', + 'clued', + 'clump', + 'clung', + 'coach', + 'coast', + 'cobra', + 'cocoa', + 'colon', + 'color', + 'comet', + 'comfy', + 'comic', + 'comma', + 'conch', + 'condo', + 'conic', + 'copse', + 'coral', + 'corer', + 'corny', + 'couch', + 'cough', + 'could', + 'count', + 'coupe', + 'court', + 'coven', + 'cover', + 'covet', + 'covey', + 'cower', + 'coyly', + 'crack', + 'craft', + 'cramp', + 'crane', + 'crank', + 'crash', + 'crass', + 'crate', + 'crave', + 'crawl', + 'craze', + 'crazy', + 'creak', + 'cream', + 'credo', + 'creed', + 'creek', + 'creep', + 'creme', + 'crepe', + 'crept', + 'cress', + 'crest', + 'crick', + 'cried', + 'crier', + 'crime', + 'crimp', + 'crisp', + 'croak', + 'crock', + 'crone', + 'crony', + 'crook', + 'cross', + 'croup', + 'crowd', + 'crown', + 'crude', + 'cruel', + 'crumb', + 'crump', + 'crush', + 'crust', + 'crypt', + 'cubic', + 'cumin', + 'curio', + 'curly', + 'curry', + 'curse', + 'curve', + 'curvy', + 'cutie', + 'cyber', + 'cycle', + 'cynic', + 'daddy', + 'daily', + 'dairy', + 'daisy', + 'dally', + 'dance', + 'dandy', + 'datum', + 'daunt', + 'dealt', + 'death', + 'debar', + 'debit', + 'debug', + 'debut', + 'decal', + 'decay', + 'decor', + 'decoy', + 'decry', + 'defer', + 'deign', + 'deity', + 'delay', + 'delta', + 'delve', + 'demon', + 'demur', + 'denim', + 'dense', + 'depot', + 'depth', + 'derby', + 'deter', + 'detox', + 'deuce', + 'devil', + 'diary', + 'dicey', + 'digit', + 'dilly', + 'dimly', + 'diner', + 'dingo', + 'dingy', + 'diode', + 'dirge', + 'dirty', + 'disco', + 'ditch', + 'ditto', + 'ditty', + 'diver', + 'dizzy', + 'dodge', + 'dodgy', + 'dogma', + 'doing', + 'dolly', + 'donor', + 'donut', + 'dopey', + 'doubt', + 'dough', + 'dowdy', + 'dowel', + 'downy', + 'dowry', + 'dozen', + 'draft', + 'drain', + 'drake', + 'drama', + 'drank', + 'drape', + 'drawl', + 'drawn', + 'dread', + 'dream', + 'dress', + 'dried', + 'drier', + 'drift', + 'drill', + 'drink', + 'drive', + 'droit', + 'droll', + 'drone', + 'drool', + 'droop', + 'dross', + 'drove', + 'drown', + 'druid', + 'drunk', + 'dryer', + 'dryly', + 'duchy', + 'dully', + 'dummy', + 'dumpy', + 'dunce', + 'dusky', + 'dusty', + 'dutch', + 'duvet', + 'dwarf', + 'dwell', + 'dwelt', + 'dying', + 'eager', + 'eagle', + 'early', + 'earth', + 'easel', + 'eaten', + 'eater', + 'ebony', + 'eclat', + 'edict', + 'edify', + 'eerie', + 'egret', + 'eight', + 'eject', + 'eking', + 'elate', + 'elbow', + 'elder', + 'elect', + 'elegy', + 'elfin', + 'elide', + 'elite', + 'elope', + 'elude', + 'email', + 'embed', + 'ember', + 'emcee', + 'empty', + 'enact', + 'endow', + 'enema', + 'enemy', + 'enjoy', + 'ennui', + 'ensue', + 'enter', + 'entry', + 'envoy', + 'epoch', + 'epoxy', + 'equal', + 'equip', + 'erase', + 'erect', + 'erode', + 'error', + 'erupt', + 'essay', + 'ester', + 'ether', + 'ethic', + 'ethos', + 'etude', + 'evade', + 'event', + 'every', + 'evict', + 'evoke', + 'exact', + 'exalt', + 'excel', + 'exert', + 'exile', + 'exist', + 'expel', + 'extol', + 'extra', + 'exult', + 'eying', + 'fable', + 'facet', + 'faint', + 'fairy', + 'faith', + 'false', + 'fancy', + 'fanny', + 'farce', + 'fatal', + 'fatty', + 'fault', + 'fauna', + 'favor', + 'feast', + 'fecal', + 'feign', + 'fella', + 'felon', + 'femme', + 'femur', + 'fence', + 'feral', + 'ferry', + 'fetal', + 'fetch', + 'fetid', + 'fetus', + 'fever', + 'fewer', + 'fiber', + 'fibre', + 'ficus', + 'field', + 'fiend', + 'fiery', + 'fifth', + 'fifty', + 'fight', + 'filer', + 'filet', + 'filly', + 'filmy', + 'filth', + 'final', + 'finch', + 'finer', + 'first', + 'fishy', + 'fixer', + 'fizzy', + 'fjord', + 'flack', + 'flail', + 'flair', + 'flake', + 'flaky', + 'flame', + 'flank', + 'flare', + 'flash', + 'flask', + 'fleck', + 'fleet', + 'flesh', + 'flick', + 'flier', + 'fling', + 'flint', + 'flirt', + 'float', + 'flock', + 'flood', + 'floor', + 'flora', + 'floss', + 'flour', + 'flout', + 'flown', + 'fluff', + 'fluid', + 'fluke', + 'flume', + 'flung', + 'flunk', + 'flush', + 'flute', + 'flyer', + 'foamy', + 'focal', + 'focus', + 'foggy', + 'foist', + 'folio', + 'folly', + 'foray', + 'force', + 'forge', + 'forgo', + 'forte', + 'forth', + 'forty', + 'forum', + 'found', + 'foyer', + 'frail', + 'frame', + 'frank', + 'fraud', + 'freak', + 'freed', + 'freer', + 'fresh', + 'friar', + 'fried', + 'frill', + 'frisk', + 'fritz', + 'frock', + 'frond', + 'front', + 'frost', + 'froth', + 'frown', + 'froze', + 'fruit', + 'fudge', + 'fugue', + 'fully', + 'fungi', + 'funky', + 'funny', + 'furor', + 'furry', + 'fussy', + 'fuzzy', + 'gaffe', + 'gaily', + 'gamer', + 'gamma', + 'gamut', + 'gassy', + 'gaudy', + 'gauge', + 'gaunt', + 'gauze', + 'gavel', + 'gawky', + 'gayer', + 'gayly', + 'gazer', + 'gecko', + 'geeky', + 'geese', + 'genie', + 'genre', + 'ghost', + 'ghoul', + 'giant', + 'giddy', + 'gipsy', + 'girly', + 'girth', + 'given', + 'giver', + 'glade', + 'gland', + 'glare', + 'glass', + 'glaze', + 'gleam', + 'glean', + 'glide', + 'glint', + 'gloat', + 'globe', + 'gloom', + 'glory', + 'gloss', + 'glove', + 'glyph', + 'gnash', + 'gnome', + 'godly', + 'going', + 'golem', + 'golly', + 'gonad', + 'goner', + 'goody', + 'gooey', + 'goofy', + 'goose', + 'gorge', + 'gouge', + 'gourd', + 'grace', + 'grade', + 'graft', + 'grail', + 'grain', + 'grand', + 'grant', + 'grape', + 'graph', + 'grasp', + 'grass', + 'grate', + 'grave', + 'gravy', + 'graze', + 'great', + 'greed', + 'green', + 'greet', + 'grief', + 'grill', + 'grime', + 'grimy', + 'grind', + 'gripe', + 'groan', + 'groin', + 'groom', + 'grope', + 'gross', + 'group', + 'grout', + 'grove', + 'growl', + 'grown', + 'gruel', + 'gruff', + 'grunt', + 'guard', + 'guava', + 'guess', + 'guest', + 'guide', + 'guild', + 'guile', + 'guilt', + 'guise', + 'gulch', + 'gully', + 'gumbo', + 'gummy', + 'guppy', + 'gusto', + 'gusty', + 'gypsy', + 'habit', + 'hairy', + 'halve', + 'handy', + 'happy', + 'hardy', + 'harem', + 'harpy', + 'harry', + 'harsh', + 'haste', + 'hasty', + 'hatch', + 'hater', + 'haunt', + 'haute', + 'haven', + 'havoc', + 'hazel', + 'heady', + 'heard', + 'heart', + 'heath', + 'heave', + 'heavy', + 'hedge', + 'hefty', + 'heist', + 'helix', + 'hello', + 'hence', + 'heron', + 'hilly', + 'hinge', + 'hippo', + 'hippy', + 'hitch', + 'hoard', + 'hobby', + 'hoist', + 'holly', + 'homer', + 'honey', + 'honor', + 'horde', + 'horny', + 'horse', + 'hotel', + 'hotly', + 'hound', + 'house', + 'hovel', + 'hover', + 'howdy', + 'human', + 'humid', + 'humor', + 'humph', + 'humus', + 'hunch', + 'hunky', + 'hurry', + 'husky', + 'hussy', + 'hutch', + 'hydro', + 'hyena', + 'hymen', + 'hyper', + 'icily', + 'icing', + 'ideal', + 'idiom', + 'idiot', + 'idler', + 'idyll', + 'igloo', + 'iliac', + 'image', + 'imbue', + 'impel', + 'imply', + 'inane', + 'inbox', + 'incur', + 'index', + 'inept', + 'inert', + 'infer', + 'ingot', + 'inlay', + 'inlet', + 'inner', + 'input', + 'inter', + 'intro', + 'ionic', + 'irate', + 'irony', + 'islet', + 'issue', + 'itchy', + 'ivory', + 'jaunt', + 'jazzy', + 'jelly', + 'jerky', + 'jetty', + 'jewel', + 'jiffy', + 'joint', + 'joist', + 'joker', + 'jolly', + 'joust', + 'judge', + 'juice', + 'juicy', + 'jumbo', + 'jumpy', + 'junta', + 'junto', + 'juror', + 'kappa', + 'karma', + 'kayak', + 'kebab', + 'khaki', + 'kinky', + 'kiosk', + 'kitty', + 'knack', + 'knave', + 'knead', + 'kneed', + 'kneel', + 'knelt', + 'knife', + 'knock', + 'knoll', + 'known', + 'koala', + 'krill', + 'label', + 'labor', + 'laden', + 'ladle', + 'lager', + 'lance', + 'lanky', + 'lapel', + 'lapse', + 'large', + 'larva', + 'lasso', + 'latch', + 'later', + 'lathe', + 'latte', + 'laugh', + 'layer', + 'leach', + 'leafy', + 'leaky', + 'leant', + 'leapt', + 'learn', + 'lease', + 'leash', + 'least', + 'leave', + 'ledge', + 'leech', + 'leery', + 'lefty', + 'legal', + 'leggy', + 'lemon', + 'lemur', + 'leper', + 'level', + 'lever', + 'libel', + 'liege', + 'light', + 'liken', + 'lilac', + 'limbo', + 'limit', + 'linen', + 'liner', + 'lingo', + 'lipid', + 'lithe', + 'liver', + 'livid', + 'llama', + 'loamy', + 'loath', + 'lobby', + 'local', + 'locus', + 'lodge', + 'lofty', + 'logic', + 'login', + 'loopy', + 'loose', + 'lorry', + 'loser', + 'louse', + 'lousy', + 'lover', + 'lower', + 'lowly', + 'loyal', + 'lucid', + 'lucky', + 'lumen', + 'lumpy', + 'lunar', + 'lunch', + 'lunge', + 'lupus', + 'lurch', + 'lurid', + 'lusty', + 'lying', + 'lymph', + 'lynch', + 'lyric', + 'macaw', + 'macho', + 'macro', + 'madam', + 'madly', + 'mafia', + 'magic', + 'magma', + 'maize', + 'major', + 'maker', + 'mambo', + 'mamma', + 'mammy', + 'manga', + 'mange', + 'mango', + 'mangy', + 'mania', + 'manic', + 'manly', + 'manor', + 'maple', + 'march', + 'marry', + 'marsh', + 'mason', + 'masse', + 'match', + 'matey', + 'mauve', + 'maxim', + 'maybe', + 'mayor', + 'mealy', + 'meant', + 'meaty', + 'mecca', + 'medal', + 'media', + 'medic', + 'melee', + 'melon', + 'mercy', + 'merge', + 'merit', + 'merry', + 'metal', + 'meter', + 'metro', + 'micro', + 'midge', + 'midst', + 'might', + 'milky', + 'mimic', + 'mince', + 'miner', + 'minim', + 'minor', + 'minty', + 'minus', + 'mirth', + 'miser', + 'missy', + 'mocha', + 'modal', + 'model', + 'modem', + 'mogul', + 'moist', + 'molar', + 'moldy', + 'money', + 'month', + 'moody', + 'moose', + 'moral', + 'moron', + 'morph', + 'mossy', + 'motel', + 'motif', + 'motor', + 'motto', + 'moult', + 'mound', + 'mount', + 'mourn', + 'mouse', + 'mouth', + 'mover', + 'movie', + 'mower', + 'mucky', + 'mucus', + 'muddy', + 'mulch', + 'mummy', + 'munch', + 'mural', + 'murky', + 'mushy', + 'music', + 'musky', + 'musty', + 'myrrh', + 'nadir', + 'naive', + 'nanny', + 'nasal', + 'nasty', + 'natal', + 'naval', + 'navel', + 'needy', + 'neigh', + 'nerdy', + 'nerve', + 'never', + 'newer', + 'newly', + 'nicer', + 'niche', + 'niece', + 'night', + 'ninja', + 'ninny', + 'ninth', + 'noble', + 'nobly', + 'noise', + 'noisy', + 'nomad', + 'noose', + 'north', + 'nosey', + 'notch', + 'novel', + 'nudge', + 'nurse', + 'nutty', + 'nylon', + 'nymph', + 'oaken', + 'obese', + 'occur', + 'ocean', + 'octal', + 'octet', + 'odder', + 'oddly', + 'offal', + 'offer', + 'often', + 'olden', + 'older', + 'olive', + 'ombre', + 'omega', + 'onion', + 'onset', + 'opera', + 'opine', + 'opium', + 'optic', + 'orbit', + 'order', + 'organ', + 'other', + 'otter', + 'ought', + 'ounce', + 'outdo', + 'outer', + 'outgo', + 'ovary', + 'ovate', + 'overt', + 'ovine', + 'ovoid', + 'owing', + 'owner', + 'oxide', + 'ozone', + 'paddy', + 'pagan', + 'paint', + 'paler', + 'palsy', + 'panel', + 'panic', + 'pansy', + 'papal', + 'paper', + 'parer', + 'parka', + 'parry', + 'parse', + 'party', + 'pasta', + 'paste', + 'pasty', + 'patch', + 'patio', + 'patsy', + 'patty', + 'pause', + 'payee', + 'payer', + 'peace', + 'peach', + 'pearl', + 'pecan', + 'pedal', + 'penal', + 'pence', + 'penne', + 'penny', + 'perch', + 'peril', + 'perky', + 'pesky', + 'pesto', + 'petal', + 'petty', + 'phase', + 'phone', + 'phony', + 'photo', + 'piano', + 'picky', + 'piece', + 'piety', + 'piggy', + 'pilot', + 'pinch', + 'piney', + 'pinky', + 'pinto', + 'piper', + 'pique', + 'pitch', + 'pithy', + 'pivot', + 'pixel', + 'pixie', + 'pizza', + 'place', + 'plaid', + 'plain', + 'plait', + 'plane', + 'plank', + 'plant', + 'plate', + 'plaza', + 'plead', + 'pleat', + 'plied', + 'plier', + 'pluck', + 'plumb', + 'plume', + 'plump', + 'plunk', + 'plush', + 'poesy', + 'point', + 'poise', + 'poker', + 'polar', + 'polka', + 'polyp', + 'pooch', + 'poppy', + 'porch', + 'poser', + 'posit', + 'posse', + 'pouch', + 'pound', + 'pouty', + 'power', + 'prank', + 'prawn', + 'preen', + 'press', + 'price', + 'prick', + 'pride', + 'pried', + 'prime', + 'primo', + 'print', + 'prior', + 'prism', + 'privy', + 'prize', + 'probe', + 'prone', + 'prong', + 'proof', + 'prose', + 'proud', + 'prove', + 'prowl', + 'proxy', + 'prude', + 'prune', + 'psalm', + 'pubic', + 'pudgy', + 'puffy', + 'pulpy', + 'pulse', + 'punch', + 'pupal', + 'pupil', + 'puppy', + 'puree', + 'purer', + 'purge', + 'purse', + 'pushy', + 'putty', + 'pygmy', + 'quack', + 'quail', + 'quake', + 'qualm', + 'quark', + 'quart', + 'quash', + 'quasi', + 'queen', + 'queer', + 'quell', + 'query', + 'quest', + 'queue', + 'quick', + 'quiet', + 'quill', + 'quilt', + 'quirk', + 'quite', + 'quota', + 'quote', + 'quoth', + 'rabbi', + 'rabid', + 'racer', + 'radar', + 'radii', + 'radio', + 'rainy', + 'raise', + 'rajah', + 'rally', + 'ralph', + 'ramen', + 'ranch', + 'randy', + 'range', + 'rapid', + 'rarer', + 'raspy', + 'ratio', + 'ratty', + 'raven', + 'rayon', + 'razor', + 'reach', + 'react', + 'ready', + 'realm', + 'rearm', + 'rebar', + 'rebel', + 'rebus', + 'rebut', + 'recap', + 'recur', + 'recut', + 'reedy', + 'refer', + 'refit', + 'regal', + 'rehab', + 'reign', + 'relax', + 'relay', + 'relic', + 'remit', + 'renal', + 'renew', + 'repay', + 'repel', + 'reply', + 'rerun', + 'reset', + 'resin', + 'retch', + 'retro', + 'retry', + 'reuse', + 'revel', + 'revue', + 'rhino', + 'rhyme', + 'rider', + 'ridge', + 'rifle', + 'right', + 'rigid', + 'rigor', + 'rinse', + 'ripen', + 'riper', + 'risen', + 'riser', + 'risky', + 'rival', + 'river', + 'rivet', + 'roach', + 'roast', + 'robin', + 'robot', + 'rocky', + 'rodeo', + 'roger', + 'rogue', + 'roomy', + 'roost', + 'rotor', + 'rouge', + 'rough', + 'round', + 'rouse', + 'route', + 'rover', + 'rowdy', + 'rower', + 'royal', + 'ruddy', + 'ruder', + 'rugby', + 'ruler', + 'rumba', + 'rumor', + 'rupee', + 'rural', + 'rusty', + 'sadly', + 'safer', + 'saint', + 'salad', + 'sally', + 'salon', + 'salsa', + 'salty', + 'salve', + 'salvo', + 'sandy', + 'saner', + 'sappy', + 'sassy', + 'satin', + 'satyr', + 'sauce', + 'saucy', + 'sauna', + 'saute', + 'savor', + 'savoy', + 'savvy', + 'scald', + 'scale', + 'scalp', + 'scaly', + 'scamp', + 'scant', + 'scare', + 'scarf', + 'scary', + 'scene', + 'scent', + 'scion', + 'scoff', + 'scold', + 'scone', + 'scoop', + 'scope', + 'score', + 'scorn', + 'scour', + 'scout', + 'scowl', + 'scram', + 'scrap', + 'scree', + 'screw', + 'scrub', + 'scrum', + 'scuba', + 'sedan', + 'seedy', + 'segue', + 'seize', + 'semen', + 'sense', + 'sepia', + 'serif', + 'serum', + 'serve', + 'setup', + 'seven', + 'sever', + 'sewer', + 'shack', + 'shade', + 'shady', + 'shaft', + 'shake', + 'shaky', + 'shale', + 'shall', + 'shalt', + 'shame', + 'shank', + 'shape', + 'shard', + 'share', + 'shark', + 'sharp', + 'shave', + 'shawl', + 'shear', + 'sheen', + 'sheep', + 'sheer', + 'sheet', + 'sheik', + 'shelf', + 'shell', + 'shied', + 'shift', + 'shine', + 'shiny', + 'shire', + 'shirk', + 'shirt', + 'shoal', + 'shock', + 'shone', + 'shook', + 'shoot', + 'shore', + 'shorn', + 'short', + 'shout', + 'shove', + 'shown', + 'showy', + 'shrew', + 'shrub', + 'shrug', + 'shuck', + 'shunt', + 'shush', + 'shyly', + 'siege', + 'sieve', + 'sight', + 'sigma', + 'silky', + 'silly', + 'since', + 'sinew', + 'singe', + 'siren', + 'sissy', + 'sixth', + 'sixty', + 'skate', + 'skier', + 'skiff', + 'skill', + 'skimp', + 'skirt', + 'skulk', + 'skull', + 'skunk', + 'slack', + 'slain', + 'slang', + 'slant', + 'slash', + 'slate', + 'slave', + 'sleek', + 'sleep', + 'sleet', + 'slept', + 'slice', + 'slick', + 'slide', + 'slime', + 'slimy', + 'sling', + 'slink', + 'sloop', + 'slope', + 'slosh', + 'sloth', + 'slump', + 'slung', + 'slunk', + 'slurp', + 'slush', + 'slyly', + 'smack', + 'small', + 'smart', + 'smash', + 'smear', + 'smell', + 'smelt', + 'smile', + 'smirk', + 'smite', + 'smith', + 'smock', + 'smoke', + 'smoky', + 'smote', + 'snack', + 'snail', + 'snake', + 'snaky', + 'snare', + 'snarl', + 'sneak', + 'sneer', + 'snide', + 'sniff', + 'snipe', + 'snoop', + 'snore', + 'snort', + 'snout', + 'snowy', + 'snuck', + 'snuff', + 'soapy', + 'sober', + 'soggy', + 'solar', + 'solid', + 'solve', + 'sonar', + 'sonic', + 'sooth', + 'sooty', + 'sorry', + 'sound', + 'south', + 'sower', + 'space', + 'spade', + 'spank', + 'spare', + 'spark', + 'spasm', + 'spawn', + 'speak', + 'spear', + 'speck', + 'speed', + 'spell', + 'spelt', + 'spend', + 'spent', + 'sperm', + 'spice', + 'spicy', + 'spied', + 'spiel', + 'spike', + 'spiky', + 'spill', + 'spilt', + 'spine', + 'spiny', + 'spire', + 'spite', + 'splat', + 'split', + 'spoil', + 'spoke', + 'spoof', + 'spook', + 'spool', + 'spoon', + 'spore', + 'sport', + 'spout', + 'spray', + 'spree', + 'sprig', + 'spunk', + 'spurn', + 'spurt', + 'squad', + 'squat', + 'squib', + 'stack', + 'staff', + 'stage', + 'staid', + 'stain', + 'stair', + 'stake', + 'stale', + 'stalk', + 'stall', + 'stamp', + 'stand', + 'stank', + 'stare', + 'stark', + 'start', + 'stash', + 'state', + 'stave', + 'stead', + 'steak', + 'steal', + 'steam', + 'steed', + 'steel', + 'steep', + 'steer', + 'stein', + 'stern', + 'stick', + 'stiff', + 'still', + 'stilt', + 'sting', + 'stink', + 'stint', + 'stock', + 'stoic', + 'stoke', + 'stole', + 'stomp', + 'stone', + 'stony', + 'stood', + 'stool', + 'stoop', + 'store', + 'stork', + 'storm', + 'story', + 'stout', + 'stove', + 'strap', + 'straw', + 'stray', + 'strip', + 'strut', + 'stuck', + 'study', + 'stuff', + 'stump', + 'stung', + 'stunk', + 'stunt', + 'style', + 'suave', + 'sugar', + 'suing', + 'suite', + 'sulky', + 'sully', + 'sumac', + 'sunny', + 'super', + 'surer', + 'surge', + 'surly', + 'sushi', + 'swami', + 'swamp', + 'swarm', + 'swash', + 'swath', + 'swear', + 'sweat', + 'sweep', + 'sweet', + 'swell', + 'swept', + 'swift', + 'swill', + 'swine', + 'swing', + 'swirl', + 'swish', + 'swoon', + 'swoop', + 'sword', + 'swore', + 'sworn', + 'swung', + 'synod', + 'syrup', + 'tabby', + 'table', + 'taboo', + 'tacit', + 'tacky', + 'taffy', + 'taint', + 'taken', + 'taker', + 'tally', + 'talon', + 'tamer', + 'tango', + 'tangy', + 'taper', + 'tapir', + 'tardy', + 'tarot', + 'taste', + 'tasty', + 'tatty', + 'taunt', + 'tawny', + 'teach', + 'teary', + 'tease', + 'teddy', + 'teeth', + 'tempo', + 'tenet', + 'tenor', + 'tense', + 'tenth', + 'tepee', + 'tepid', + 'terra', + 'terse', + 'testy', + 'thank', + 'theft', + 'their', + 'theme', + 'there', + 'these', + 'theta', + 'thick', + 'thief', + 'thigh', + 'thing', + 'think', + 'third', + 'thong', + 'thorn', + 'those', + 'three', + 'threw', + 'throb', + 'throw', + 'thrum', + 'thumb', + 'thump', + 'thyme', + 'tiara', + 'tibia', + 'tidal', + 'tiger', + 'tight', + 'tilde', + 'timer', + 'timid', + 'tipsy', + 'titan', + 'tithe', + 'title', + 'toast', + 'today', + 'toddy', + 'token', + 'tonal', + 'tonga', + 'tonic', + 'tooth', + 'topaz', + 'topic', + 'torch', + 'torso', + 'torus', + 'total', + 'totem', + 'touch', + 'tough', + 'towel', + 'tower', + 'toxic', + 'toxin', + 'trace', + 'track', + 'tract', + 'trade', + 'trail', + 'train', + 'trait', + 'tramp', + 'trash', + 'trawl', + 'tread', + 'treat', + 'trend', + 'triad', + 'trial', + 'tribe', + 'trice', + 'trick', + 'tried', + 'tripe', + 'trite', + 'troll', + 'troop', + 'trope', + 'trout', + 'trove', + 'truce', + 'truck', + 'truer', + 'truly', + 'trump', + 'trunk', + 'truss', + 'trust', + 'truth', + 'tryst', + 'tubal', + 'tuber', + 'tulip', + 'tulle', + 'tumor', + 'tunic', + 'turbo', + 'tutor', + 'twang', + 'tweak', + 'tweed', + 'tweet', + 'twice', + 'twine', + 'twirl', + 'twist', + 'twixt', + 'tying', + 'udder', + 'ulcer', + 'ultra', + 'umbra', + 'uncle', + 'uncut', + 'under', + 'undid', + 'undue', + 'unfed', + 'unfit', + 'unify', + 'union', + 'unite', + 'unity', + 'unlit', + 'unmet', + 'unset', + 'untie', + 'until', + 'unwed', + 'unzip', + 'upper', + 'upset', + 'urban', + 'urine', + 'usage', + 'usher', + 'using', + 'usual', + 'usurp', + 'utile', + 'utter', + 'vague', + 'valet', + 'valid', + 'valor', + 'value', + 'valve', + 'vapid', + 'vapor', + 'vault', + 'vaunt', + 'vegan', + 'venom', + 'venue', + 'verge', + 'verse', + 'verso', + 'verve', + 'vicar', + 'video', + 'vigil', + 'vigor', + 'villa', + 'vinyl', + 'viola', + 'viper', + 'viral', + 'virus', + 'visit', + 'visor', + 'vista', + 'vital', + 'vivid', + 'vixen', + 'vocal', + 'vodka', + 'vogue', + 'voice', + 'voila', + 'vomit', + 'voter', + 'vouch', + 'vowel', + 'vying', + 'wacky', + 'wafer', + 'wager', + 'wagon', + 'waist', + 'waive', + 'waltz', + 'warty', + 'waste', + 'watch', + 'water', + 'waver', + 'waxen', + 'weary', + 'weave', + 'wedge', + 'weedy', + 'weigh', + 'weird', + 'welch', + 'welsh', + 'wench', + 'whack', + 'whale', + 'wharf', + 'wheat', + 'wheel', + 'whelp', + 'where', + 'which', + 'whiff', + 'while', + 'whine', + 'whiny', + 'whirl', + 'whisk', + 'white', + 'whole', + 'whoop', + 'whose', + 'widen', + 'wider', + 'widow', + 'width', + 'wield', + 'wight', + 'willy', + 'wimpy', + 'wince', + 'winch', + 'windy', + 'wiser', + 'wispy', + 'witch', + 'witty', + 'woken', + 'woman', + 'women', + 'woody', + 'wooer', + 'wooly', + 'woozy', + 'wordy', + 'world', + 'worry', + 'worse', + 'worst', + 'worth', + 'would', + 'wound', + 'woven', + 'wrack', + 'wrath', + 'wreak', + 'wreck', + 'wrest', + 'wring', + 'wrist', + 'write', + 'wrong', + 'wrote', + 'wrung', + 'wryly', + 'yacht', + 'yearn', + 'yeast', + 'yield', + 'young', + 'youth', + 'zebra', + 'zesty', + 'zonal' +]; + +/** The list of valid guesses, of which the list of possible words is a subset */ +export const allowed = new Set([ + ...words, + 'aahed', + 'aalii', + 'aargh', + 'aarti', + 'abaca', + 'abaci', + 'abacs', + 'abaft', + 'abaka', + 'abamp', + 'aband', + 'abash', + 'abask', + 'abaya', + 'abbas', + 'abbed', + 'abbes', + 'abcee', + 'abeam', + 'abear', + 'abele', + 'abers', + 'abets', + 'abies', + 'abler', + 'ables', + 'ablet', + 'ablow', + 'abmho', + 'abohm', + 'aboil', + 'aboma', + 'aboon', + 'abord', + 'abore', + 'abram', + 'abray', + 'abrim', + 'abrin', + 'abris', + 'absey', + 'absit', + 'abuna', + 'abune', + 'abuts', + 'abuzz', + 'abyes', + 'abysm', + 'acais', + 'acari', + 'accas', + 'accoy', + 'acerb', + 'acers', + 'aceta', + 'achar', + 'ached', + 'aches', + 'achoo', + 'acids', + 'acidy', + 'acing', + 'acini', + 'ackee', + 'acker', + 'acmes', + 'acmic', + 'acned', + 'acnes', + 'acock', + 'acold', + 'acred', + 'acres', + 'acros', + 'acted', + 'actin', + 'acton', + 'acyls', + 'adaws', + 'adays', + 'adbot', + 'addax', + 'added', + 'adder', + 'addio', + 'addle', + 'adeem', + 'adhan', + 'adieu', + 'adios', + 'adits', + 'adman', + 'admen', + 'admix', + 'adobo', + 'adown', + 'adoze', + 'adrad', + 'adred', + 'adsum', + 'aduki', + 'adunc', + 'adust', + 'advew', + 'adyta', + 'adzed', + 'adzes', + 'aecia', + 'aedes', + 'aegis', + 'aeons', + 'aerie', + 'aeros', + 'aesir', + 'afald', + 'afara', + 'afars', + 'afear', + 'aflaj', + 'afore', + 'afrit', + 'afros', + 'agama', + 'agami', + 'agars', + 'agast', + 'agave', + 'agaze', + 'agene', + 'agers', + 'agger', + 'aggie', + 'aggri', + 'aggro', + 'aggry', + 'aghas', + 'agila', + 'agios', + 'agism', + 'agist', + 'agita', + 'aglee', + 'aglet', + 'agley', + 'agloo', + 'aglus', + 'agmas', + 'agoge', + 'agone', + 'agons', + 'agood', + 'agria', + 'agrin', + 'agros', + 'agued', + 'agues', + 'aguna', + 'aguti', + 'aheap', + 'ahent', + 'ahigh', + 'ahind', + 'ahing', + 'ahint', + 'ahold', + 'ahull', + 'ahuru', + 'aidas', + 'aided', + 'aides', + 'aidoi', + 'aidos', + 'aiery', + 'aigas', + 'aight', + 'ailed', + 'aimed', + 'aimer', + 'ainee', + 'ainga', + 'aioli', + 'aired', + 'airer', + 'airns', + 'airth', + 'airts', + 'aitch', + 'aitus', + 'aiver', + 'aiyee', + 'aizle', + 'ajies', + 'ajiva', + 'ajuga', + 'ajwan', + 'akees', + 'akela', + 'akene', + 'aking', + 'akita', + 'akkas', + 'alaap', + 'alack', + 'alamo', + 'aland', + 'alane', + 'alang', + 'alans', + 'alant', + 'alapa', + 'alaps', + 'alary', + 'alate', + 'alays', + 'albas', + 'albee', + 'alcid', + 'alcos', + 'aldea', + 'alder', + 'aldol', + 'aleck', + 'alecs', + 'alefs', + 'aleft', + 'aleph', + 'alews', + 'aleye', + 'alfas', + 'algal', + 'algas', + 'algid', + 'algin', + 'algor', + 'algum', + 'alias', + 'alifs', + 'aline', + 'alist', + 'aliya', + 'alkie', + 'alkos', + 'alkyd', + 'alkyl', + 'allee', + 'allel', + 'allis', + 'allod', + 'allyl', + 'almah', + 'almas', + 'almeh', + 'almes', + 'almud', + 'almug', + 'alods', + 'aloed', + 'aloes', + 'aloha', + 'aloin', + 'aloos', + 'alowe', + 'altho', + 'altos', + 'alula', + 'alums', + 'alure', + 'alvar', + 'alway', + 'amahs', + 'amain', + 'amate', + 'amaut', + 'amban', + 'ambit', + 'ambos', + 'ambry', + 'ameba', + 'ameer', + 'amene', + 'amens', + 'ament', + 'amias', + 'amice', + 'amici', + 'amide', + 'amido', + 'amids', + 'amies', + 'amiga', + 'amigo', + 'amine', + 'amino', + 'amins', + 'amirs', + 'amlas', + 'amman', + 'ammon', + 'ammos', + 'amnia', + 'amnic', + 'amnio', + 'amoks', + 'amole', + 'amort', + 'amour', + 'amove', + 'amowt', + 'amped', + 'ampul', + 'amrit', + 'amuck', + 'amyls', + 'anana', + 'anata', + 'ancho', + 'ancle', + 'ancon', + 'andro', + 'anear', + 'anele', + 'anent', + 'angas', + 'anglo', + 'anigh', + 'anile', + 'anils', + 'anima', + 'animi', + 'anion', + 'anise', + 'anker', + 'ankhs', + 'ankus', + 'anlas', + 'annal', + 'annas', + 'annat', + 'anoas', + 'anole', + 'anomy', + 'ansae', + 'antae', + 'antar', + 'antas', + 'anted', + 'antes', + 'antis', + 'antra', + 'antre', + 'antsy', + 'anura', + 'anyon', + 'apace', + 'apage', + 'apaid', + 'apayd', + 'apays', + 'apeak', + 'apeek', + 'apers', + 'apert', + 'apery', + 'apgar', + 'aphis', + 'apian', + 'apiol', + 'apish', + 'apism', + 'apode', + 'apods', + 'apoop', + 'aport', + 'appal', + 'appay', + 'appel', + 'appro', + 'appui', + 'appuy', + 'apres', + 'apses', + 'apsis', + 'apsos', + 'apted', + 'apter', + 'aquae', + 'aquas', + 'araba', + 'araks', + 'arame', + 'arars', + 'arbas', + 'arced', + 'archi', + 'arcos', + 'arcus', + 'ardeb', + 'ardri', + 'aread', + 'areae', + 'areal', + 'arear', + 'areas', + 'areca', + 'aredd', + 'arede', + 'arefy', + 'areic', + 'arene', + 'arepa', + 'arere', + 'arete', + 'arets', + 'arett', + 'argal', + 'argan', + 'argil', + 'argle', + 'argol', + 'argon', + 'argot', + 'argus', + 'arhat', + 'arias', + 'ariel', + 'ariki', + 'arils', + 'ariot', + 'arish', + 'arked', + 'arled', + 'arles', + 'armed', + 'armer', + 'armet', + 'armil', + 'arnas', + 'arnut', + 'aroba', + 'aroha', + 'aroid', + 'arpas', + 'arpen', + 'arrah', + 'arras', + 'arret', + 'arris', + 'arroz', + 'arsed', + 'arses', + 'arsey', + 'arsis', + 'artal', + 'artel', + 'artic', + 'artis', + 'aruhe', + 'arums', + 'arval', + 'arvee', + 'arvos', + 'aryls', + 'asana', + 'ascon', + 'ascus', + 'asdic', + 'ashed', + 'ashes', + 'ashet', + 'asked', + 'asker', + 'askoi', + 'askos', + 'aspen', + 'asper', + 'aspic', + 'aspie', + 'aspis', + 'aspro', + 'assai', + 'assam', + 'asses', + 'assez', + 'assot', + 'aster', + 'astir', + 'astun', + 'asura', + 'asway', + 'aswim', + 'asyla', + 'ataps', + 'ataxy', + 'atigi', + 'atilt', + 'atimy', + 'atlas', + 'atman', + 'atmas', + 'atmos', + 'atocs', + 'atoke', + 'atoks', + 'atoms', + 'atomy', + 'atony', + 'atopy', + 'atria', + 'atrip', + 'attap', + 'attar', + 'atuas', + 'audad', + 'auger', + 'aught', + 'aulas', + 'aulic', + 'auloi', + 'aulos', + 'aumil', + 'aunes', + 'aunts', + 'aurae', + 'aural', + 'aurar', + 'auras', + 'aurei', + 'aures', + 'auric', + 'auris', + 'aurum', + 'autos', + 'auxin', + 'avale', + 'avant', + 'avast', + 'avels', + 'avens', + 'avers', + 'avgas', + 'avine', + 'avion', + 'avise', + 'aviso', + 'avize', + 'avows', + 'avyze', + 'awarn', + 'awato', + 'awave', + 'aways', + 'awdls', + 'aweel', + 'aweto', + 'awing', + 'awmry', + 'awned', + 'awner', + 'awols', + 'awork', + 'axels', + 'axile', + 'axils', + 'axing', + 'axite', + 'axled', + 'axles', + 'axman', + 'axmen', + 'axoid', + 'axone', + 'axons', + 'ayahs', + 'ayaya', + 'ayelp', + 'aygre', + 'ayins', + 'ayont', + 'ayres', + 'ayrie', + 'azans', + 'azide', + 'azido', + 'azine', + 'azlon', + 'azoic', + 'azole', + 'azons', + 'azote', + 'azoth', + 'azuki', + 'azurn', + 'azury', + 'azygy', + 'azyme', + 'azyms', + 'baaed', + 'baals', + 'babas', + 'babel', + 'babes', + 'babka', + 'baboo', + 'babul', + 'babus', + 'bacca', + 'bacco', + 'baccy', + 'bacha', + 'bachs', + 'backs', + 'baddy', + 'baels', + 'baffs', + 'baffy', + 'bafts', + 'baghs', + 'bagie', + 'bahts', + 'bahus', + 'bahut', + 'bails', + 'bairn', + 'baisa', + 'baith', + 'baits', + 'baiza', + 'baize', + 'bajan', + 'bajra', + 'bajri', + 'bajus', + 'baked', + 'baken', + 'bakes', + 'bakra', + 'balas', + 'balds', + 'baldy', + 'baled', + 'bales', + 'balks', + 'balky', + 'balls', + 'bally', + 'balms', + 'baloo', + 'balsa', + 'balti', + 'balun', + 'balus', + 'bambi', + 'banak', + 'banco', + 'bancs', + 'banda', + 'bandh', + 'bands', + 'bandy', + 'baned', + 'banes', + 'bangs', + 'bania', + 'banks', + 'banns', + 'bants', + 'bantu', + 'banty', + 'banya', + 'bapus', + 'barbe', + 'barbs', + 'barby', + 'barca', + 'barde', + 'bardo', + 'bards', + 'bardy', + 'bared', + 'barer', + 'bares', + 'barfi', + 'barfs', + 'baric', + 'barks', + 'barky', + 'barms', + 'barmy', + 'barns', + 'barny', + 'barps', + 'barra', + 'barre', + 'barro', + 'barry', + 'barye', + 'basan', + 'based', + 'basen', + 'baser', + 'bases', + 'basho', + 'basij', + 'basks', + 'bason', + 'basse', + 'bassi', + 'basso', + 'bassy', + 'basta', + 'basti', + 'basto', + 'basts', + 'bated', + 'bates', + 'baths', + 'batik', + 'batta', + 'batts', + 'battu', + 'bauds', + 'bauks', + 'baulk', + 'baurs', + 'bavin', + 'bawds', + 'bawks', + 'bawls', + 'bawns', + 'bawrs', + 'bawty', + 'bayed', + 'bayer', + 'bayes', + 'bayle', + 'bayts', + 'bazar', + 'bazoo', + 'beads', + 'beaks', + 'beaky', + 'beals', + 'beams', + 'beamy', + 'beano', + 'beans', + 'beany', + 'beare', + 'bears', + 'beath', + 'beats', + 'beaty', + 'beaus', + 'beaut', + 'beaux', + 'bebop', + 'becap', + 'becke', + 'becks', + 'bedad', + 'bedel', + 'bedes', + 'bedew', + 'bedim', + 'bedye', + 'beedi', + 'beefs', + 'beeps', + 'beers', + 'beery', + 'beets', + 'befog', + 'begad', + 'begar', + 'begem', + 'begot', + 'begum', + 'beige', + 'beigy', + 'beins', + 'bekah', + 'belah', + 'belar', + 'belay', + 'belee', + 'belga', + 'bells', + 'belon', + 'belts', + 'bemad', + 'bemas', + 'bemix', + 'bemud', + 'bends', + 'bendy', + 'benes', + 'benet', + 'benga', + 'benis', + 'benne', + 'benni', + 'benny', + 'bento', + 'bents', + 'benty', + 'bepat', + 'beray', + 'beres', + 'bergs', + 'berko', + 'berks', + 'berme', + 'berms', + 'berob', + 'beryl', + 'besat', + 'besaw', + 'besee', + 'beses', + 'besit', + 'besom', + 'besot', + 'besti', + 'bests', + 'betas', + 'beted', + 'betes', + 'beths', + 'betid', + 'beton', + 'betta', + 'betty', + 'bever', + 'bevor', + 'bevue', + 'bevvy', + 'bewet', + 'bewig', + 'bezes', + 'bezil', + 'bezzy', + 'bhais', + 'bhaji', + 'bhang', + 'bhats', + 'bhels', + 'bhoot', + 'bhuna', + 'bhuts', + 'biach', + 'biali', + 'bialy', + 'bibbs', + 'bibes', + 'biccy', + 'bices', + 'bided', + 'bider', + 'bides', + 'bidet', + 'bidis', + 'bidon', + 'bield', + 'biers', + 'biffo', + 'biffs', + 'biffy', + 'bifid', + 'bigae', + 'biggs', + 'biggy', + 'bigha', + 'bight', + 'bigly', + 'bigos', + 'bijou', + 'biked', + 'biker', + 'bikes', + 'bikie', + 'bilbo', + 'bilby', + 'biled', + 'biles', + 'bilgy', + 'bilks', + 'bills', + 'bimah', + 'bimas', + 'bimbo', + 'binal', + 'bindi', + 'binds', + 'biner', + 'bines', + 'bings', + 'bingy', + 'binit', + 'binks', + 'bints', + 'biogs', + 'biont', + 'biota', + 'biped', + 'bipod', + 'birds', + 'birks', + 'birle', + 'birls', + 'biros', + 'birrs', + 'birse', + 'birsy', + 'bises', + 'bisks', + 'bisom', + 'bitch', + 'biter', + 'bites', + 'bitos', + 'bitou', + 'bitsy', + 'bitte', + 'bitts', + 'bivia', + 'bivvy', + 'bizes', + 'bizzo', + 'bizzy', + 'blabs', + 'blads', + 'blady', + 'blaer', + 'blaes', + 'blaff', + 'blags', + 'blahs', + 'blain', + 'blams', + 'blart', + 'blase', + 'blash', + 'blate', + 'blats', + 'blatt', + 'blaud', + 'blawn', + 'blaws', + 'blays', + 'blear', + 'blebs', + 'blech', + 'blees', + 'blent', + 'blert', + 'blest', + 'blets', + 'bleys', + 'blimy', + 'bling', + 'blini', + 'blins', + 'bliny', + 'blips', + 'blist', + 'blite', + 'blits', + 'blive', + 'blobs', + 'blocs', + 'blogs', + 'blook', + 'bloop', + 'blore', + 'blots', + 'blows', + 'blowy', + 'blubs', + 'blude', + 'bluds', + 'bludy', + 'blued', + 'blues', + 'bluet', + 'bluey', + 'bluid', + 'blume', + 'blunk', + 'blurs', + 'blype', + 'boabs', + 'boaks', + 'boars', + 'boart', + 'boats', + 'bobac', + 'bobak', + 'bobas', + 'bobol', + 'bobos', + 'bocca', + 'bocce', + 'bocci', + 'boche', + 'bocks', + 'boded', + 'bodes', + 'bodge', + 'bodhi', + 'bodle', + 'boeps', + 'boets', + 'boeuf', + 'boffo', + 'boffs', + 'bogan', + 'bogey', + 'boggy', + 'bogie', + 'bogle', + 'bogue', + 'bogus', + 'bohea', + 'bohos', + 'boils', + 'boing', + 'boink', + 'boite', + 'boked', + 'bokeh', + 'bokes', + 'bokos', + 'bolar', + 'bolas', + 'bolds', + 'boles', + 'bolix', + 'bolls', + 'bolos', + 'bolts', + 'bolus', + 'bomas', + 'bombe', + 'bombo', + 'bombs', + 'bonce', + 'bonds', + 'boned', + 'boner', + 'bones', + 'bongs', + 'bonie', + 'bonks', + 'bonne', + 'bonny', + 'bonza', + 'bonze', + 'booai', + 'booay', + 'boobs', + 'boody', + 'booed', + 'boofy', + 'boogy', + 'boohs', + 'books', + 'booky', + 'bools', + 'booms', + 'boomy', + 'boong', + 'boons', + 'boord', + 'boors', + 'boose', + 'boots', + 'boppy', + 'borak', + 'boral', + 'boras', + 'borde', + 'bords', + 'bored', + 'boree', + 'borel', + 'borer', + 'bores', + 'borgo', + 'boric', + 'borks', + 'borms', + 'borna', + 'boron', + 'borts', + 'borty', + 'bortz', + 'bosie', + 'bosks', + 'bosky', + 'boson', + 'bosun', + 'botas', + 'botel', + 'botes', + 'bothy', + 'botte', + 'botts', + 'botty', + 'bouge', + 'bouks', + 'boult', + 'bouns', + 'bourd', + 'bourg', + 'bourn', + 'bouse', + 'bousy', + 'bouts', + 'bovid', + 'bowat', + 'bowed', + 'bower', + 'bowes', + 'bowet', + 'bowie', + 'bowls', + 'bowne', + 'bowrs', + 'bowse', + 'boxed', + 'boxen', + 'boxes', + 'boxla', + 'boxty', + 'boyar', + 'boyau', + 'boyed', + 'boyfs', + 'boygs', + 'boyla', + 'boyos', + 'boysy', + 'bozos', + 'braai', + 'brach', + 'brack', + 'bract', + 'brads', + 'braes', + 'brags', + 'brail', + 'braks', + 'braky', + 'brame', + 'brane', + 'brank', + 'brans', + 'brant', + 'brast', + 'brats', + 'brava', + 'bravi', + 'braws', + 'braxy', + 'brays', + 'braza', + 'braze', + 'bream', + 'brede', + 'breds', + 'breem', + 'breer', + 'brees', + 'breid', + 'breis', + 'breme', + 'brens', + 'brent', + 'brere', + 'brers', + 'breve', + 'brews', + 'breys', + 'brier', + 'bries', + 'brigs', + 'briki', + 'briks', + 'brill', + 'brims', + 'brins', + 'brios', + 'brise', + 'briss', + 'brith', + 'brits', + 'britt', + 'brize', + 'broch', + 'brock', + 'brods', + 'brogh', + 'brogs', + 'brome', + 'bromo', + 'bronc', + 'brond', + 'brool', + 'broos', + 'brose', + 'brosy', + 'brows', + 'brugh', + 'bruin', + 'bruit', + 'brule', + 'brume', + 'brung', + 'brusk', + 'brust', + 'bruts', + 'buats', + 'buaze', + 'bubal', + 'bubas', + 'bubba', + 'bubbe', + 'bubby', + 'bubus', + 'buchu', + 'bucko', + 'bucks', + 'bucku', + 'budas', + 'budis', + 'budos', + 'buffa', + 'buffe', + 'buffi', + 'buffo', + 'buffs', + 'buffy', + 'bufos', + 'bufty', + 'buhls', + 'buhrs', + 'buiks', + 'buist', + 'bukes', + 'bulbs', + 'bulgy', + 'bulks', + 'bulla', + 'bulls', + 'bulse', + 'bumbo', + 'bumfs', + 'bumph', + 'bumps', + 'bumpy', + 'bunas', + 'bunce', + 'bunco', + 'bunde', + 'bundh', + 'bunds', + 'bundt', + 'bundu', + 'bundy', + 'bungs', + 'bungy', + 'bunia', + 'bunje', + 'bunjy', + 'bunko', + 'bunks', + 'bunns', + 'bunts', + 'bunty', + 'bunya', + 'buoys', + 'buppy', + 'buran', + 'buras', + 'burbs', + 'burds', + 'buret', + 'burfi', + 'burgh', + 'burgs', + 'burin', + 'burka', + 'burke', + 'burks', + 'burls', + 'burns', + 'buroo', + 'burps', + 'burqa', + 'burro', + 'burrs', + 'burry', + 'bursa', + 'burse', + 'busby', + 'buses', + 'busks', + 'busky', + 'bussu', + 'busti', + 'busts', + 'busty', + 'buteo', + 'butes', + 'butle', + 'butoh', + 'butts', + 'butty', + 'butut', + 'butyl', + 'buzzy', + 'bwana', + 'bwazi', + 'byded', + 'bydes', + 'byked', + 'bykes', + 'byres', + 'byrls', + 'byssi', + 'bytes', + 'byway', + 'caaed', + 'cabas', + 'caber', + 'cabob', + 'caboc', + 'cabre', + 'cacas', + 'cacks', + 'cacky', + 'cadee', + 'cades', + 'cadge', + 'cadgy', + 'cadie', + 'cadis', + 'cadre', + 'caeca', + 'caese', + 'cafes', + 'caffs', + 'caged', + 'cager', + 'cages', + 'cagot', + 'cahow', + 'caids', + 'cains', + 'caird', + 'cajon', + 'cajun', + 'caked', + 'cakes', + 'cakey', + 'calfs', + 'calid', + 'calif', + 'calix', + 'calks', + 'calla', + 'calls', + 'calms', + 'calmy', + 'calos', + 'calpa', + 'calps', + 'calve', + 'calyx', + 'caman', + 'camas', + 'cames', + 'camis', + 'camos', + 'campi', + 'campo', + 'camps', + 'campy', + 'camus', + 'caned', + 'caneh', + 'caner', + 'canes', + 'cangs', + 'canid', + 'canna', + 'canns', + 'canso', + 'canst', + 'canto', + 'cants', + 'canty', + 'capas', + 'caped', + 'capes', + 'capex', + 'caphs', + 'capiz', + 'caple', + 'capon', + 'capos', + 'capot', + 'capri', + 'capul', + 'carap', + 'carbo', + 'carbs', + 'carby', + 'cardi', + 'cards', + 'cardy', + 'cared', + 'carer', + 'cares', + 'caret', + 'carex', + 'carks', + 'carle', + 'carls', + 'carns', + 'carny', + 'carob', + 'carom', + 'caron', + 'carpi', + 'carps', + 'carrs', + 'carse', + 'carta', + 'carte', + 'carts', + 'carvy', + 'casas', + 'casco', + 'cased', + 'cases', + 'casks', + 'casky', + 'casts', + 'casus', + 'cates', + 'cauda', + 'cauks', + 'cauld', + 'cauls', + 'caums', + 'caups', + 'cauri', + 'causa', + 'cavas', + 'caved', + 'cavel', + 'caver', + 'caves', + 'cavie', + 'cawed', + 'cawks', + 'caxon', + 'ceaze', + 'cebid', + 'cecal', + 'cecum', + 'ceded', + 'ceder', + 'cedes', + 'cedis', + 'ceiba', + 'ceili', + 'ceils', + 'celeb', + 'cella', + 'celli', + 'cells', + 'celom', + 'celts', + 'cense', + 'cento', + 'cents', + 'centu', + 'ceorl', + 'cepes', + 'cerci', + 'cered', + 'ceres', + 'cerge', + 'ceria', + 'ceric', + 'cerne', + 'ceroc', + 'ceros', + 'certs', + 'certy', + 'cesse', + 'cesta', + 'cesti', + 'cetes', + 'cetyl', + 'cezve', + 'chace', + 'chack', + 'chaco', + 'chado', + 'chads', + 'chaft', + 'chais', + 'chals', + 'chams', + 'chana', + 'chang', + 'chank', + 'chape', + 'chaps', + 'chapt', + 'chara', + 'chare', + 'chark', + 'charr', + 'chars', + 'chary', + 'chats', + 'chave', + 'chavs', + 'chawk', + 'chaws', + 'chaya', + 'chays', + 'cheep', + 'chefs', + 'cheka', + 'chela', + 'chelp', + 'chemo', + 'chems', + 'chere', + 'chert', + 'cheth', + 'chevy', + 'chews', + 'chewy', + 'chiao', + 'chias', + 'chibs', + 'chica', + 'chich', + 'chico', + 'chics', + 'chiel', + 'chiks', + 'chile', + 'chimb', + 'chimo', + 'chimp', + 'chine', + 'ching', + 'chink', + 'chino', + 'chins', + 'chips', + 'chirk', + 'chirl', + 'chirm', + 'chiro', + 'chirr', + 'chirt', + 'chiru', + 'chits', + 'chive', + 'chivs', + 'chivy', + 'chizz', + 'choco', + 'chocs', + 'chode', + 'chogs', + 'choil', + 'choko', + 'choky', + 'chola', + 'choli', + 'cholo', + 'chomp', + 'chons', + 'choof', + 'chook', + 'choom', + 'choon', + 'chops', + 'chota', + 'chott', + 'chout', + 'choux', + 'chowk', + 'chows', + 'chubs', + 'chufa', + 'chuff', + 'chugs', + 'chums', + 'churl', + 'churr', + 'chuse', + 'chuts', + 'chyle', + 'chyme', + 'chynd', + 'cibol', + 'cided', + 'cides', + 'ciels', + 'ciggy', + 'cilia', + 'cills', + 'cimar', + 'cimex', + 'cinct', + 'cines', + 'cinqs', + 'cions', + 'cippi', + 'circs', + 'cires', + 'cirls', + 'cirri', + 'cisco', + 'cissy', + 'cists', + 'cital', + 'cited', + 'citer', + 'cites', + 'cives', + 'civet', + 'civie', + 'civvy', + 'clach', + 'clade', + 'clads', + 'claes', + 'clags', + 'clame', + 'clams', + 'clans', + 'claps', + 'clapt', + 'claro', + 'clart', + 'clary', + 'clast', + 'clats', + 'claut', + 'clave', + 'clavi', + 'claws', + 'clays', + 'cleck', + 'cleek', + 'cleep', + 'clefs', + 'clegs', + 'cleik', + 'clems', + 'clepe', + 'clept', + 'cleve', + 'clews', + 'clied', + 'clies', + 'clift', + 'clime', + 'cline', + 'clint', + 'clipe', + 'clips', + 'clipt', + 'clits', + 'cloam', + 'clods', + 'cloff', + 'clogs', + 'cloke', + 'clomb', + 'clomp', + 'clonk', + 'clons', + 'cloop', + 'cloot', + 'clops', + 'clote', + 'clots', + 'clour', + 'clous', + 'clows', + 'cloye', + 'cloys', + 'cloze', + 'clubs', + 'clues', + 'cluey', + 'clunk', + 'clype', + 'cnida', + 'coact', + 'coady', + 'coala', + 'coals', + 'coaly', + 'coapt', + 'coarb', + 'coate', + 'coati', + 'coats', + 'cobbs', + 'cobby', + 'cobia', + 'coble', + 'cobza', + 'cocas', + 'cocci', + 'cocco', + 'cocks', + 'cocky', + 'cocos', + 'codas', + 'codec', + 'coded', + 'coden', + 'coder', + 'codes', + 'codex', + 'codon', + 'coeds', + 'coffs', + 'cogie', + 'cogon', + 'cogue', + 'cohab', + 'cohen', + 'cohoe', + 'cohog', + 'cohos', + 'coifs', + 'coign', + 'coils', + 'coins', + 'coirs', + 'coits', + 'coked', + 'cokes', + 'colas', + 'colby', + 'colds', + 'coled', + 'coles', + 'coley', + 'colic', + 'colin', + 'colls', + 'colly', + 'colog', + 'colts', + 'colza', + 'comae', + 'comal', + 'comas', + 'combe', + 'combi', + 'combo', + 'combs', + 'comby', + 'comer', + 'comes', + 'comix', + 'commo', + 'comms', + 'commy', + 'compo', + 'comps', + 'compt', + 'comte', + 'comus', + 'coned', + 'cones', + 'coney', + 'confs', + 'conga', + 'conge', + 'congo', + 'conia', + 'conin', + 'conks', + 'conky', + 'conne', + 'conns', + 'conte', + 'conto', + 'conus', + 'convo', + 'cooch', + 'cooed', + 'cooee', + 'cooer', + 'cooey', + 'coofs', + 'cooks', + 'cooky', + 'cools', + 'cooly', + 'coomb', + 'cooms', + 'coomy', + 'coons', + 'coops', + 'coopt', + 'coost', + 'coots', + 'cooze', + 'copal', + 'copay', + 'coped', + 'copen', + 'coper', + 'copes', + 'coppy', + 'copra', + 'copsy', + 'coqui', + 'coram', + 'corbe', + 'corby', + 'cords', + 'cored', + 'cores', + 'corey', + 'corgi', + 'coria', + 'corks', + 'corky', + 'corms', + 'corni', + 'corno', + 'corns', + 'cornu', + 'corps', + 'corse', + 'corso', + 'cosec', + 'cosed', + 'coses', + 'coset', + 'cosey', + 'cosie', + 'costa', + 'coste', + 'costs', + 'cotan', + 'coted', + 'cotes', + 'coths', + 'cotta', + 'cotts', + 'coude', + 'coups', + 'courb', + 'courd', + 'coure', + 'cours', + 'couta', + 'couth', + 'coved', + 'coves', + 'covin', + 'cowal', + 'cowan', + 'cowed', + 'cowks', + 'cowls', + 'cowps', + 'cowry', + 'coxae', + 'coxal', + 'coxed', + 'coxes', + 'coxib', + 'coyau', + 'coyed', + 'coyer', + 'coypu', + 'cozed', + 'cozen', + 'cozes', + 'cozey', + 'cozie', + 'craal', + 'crabs', + 'crags', + 'craic', + 'craig', + 'crake', + 'crame', + 'crams', + 'crans', + 'crape', + 'craps', + 'crapy', + 'crare', + 'craws', + 'crays', + 'creds', + 'creel', + 'crees', + 'crems', + 'crena', + 'creps', + 'crepy', + 'crewe', + 'crews', + 'crias', + 'cribs', + 'cries', + 'crims', + 'crine', + 'crios', + 'cripe', + 'crips', + 'crise', + 'crith', + 'crits', + 'croci', + 'crocs', + 'croft', + 'crogs', + 'cromb', + 'crome', + 'cronk', + 'crons', + 'crool', + 'croon', + 'crops', + 'crore', + 'crost', + 'crout', + 'crows', + 'croze', + 'cruck', + 'crudo', + 'cruds', + 'crudy', + 'crues', + 'cruet', + 'cruft', + 'crunk', + 'cruor', + 'crura', + 'cruse', + 'crusy', + 'cruve', + 'crwth', + 'cryer', + 'ctene', + 'cubby', + 'cubeb', + 'cubed', + 'cuber', + 'cubes', + 'cubit', + 'cuddy', + 'cuffo', + 'cuffs', + 'cuifs', + 'cuing', + 'cuish', + 'cuits', + 'cukes', + 'culch', + 'culet', + 'culex', + 'culls', + 'cully', + 'culms', + 'culpa', + 'culti', + 'cults', + 'culty', + 'cumec', + 'cundy', + 'cunei', + 'cunit', + 'cunts', + 'cupel', + 'cupid', + 'cuppa', + 'cuppy', + 'curat', + 'curbs', + 'curch', + 'curds', + 'curdy', + 'cured', + 'curer', + 'cures', + 'curet', + 'curfs', + 'curia', + 'curie', + 'curli', + 'curls', + 'curns', + 'curny', + 'currs', + 'cursi', + 'curst', + 'cusec', + 'cushy', + 'cusks', + 'cusps', + 'cuspy', + 'cusso', + 'cusum', + 'cutch', + 'cuter', + 'cutes', + 'cutey', + 'cutin', + 'cutis', + 'cutto', + 'cutty', + 'cutup', + 'cuvee', + 'cuzes', + 'cwtch', + 'cyano', + 'cyans', + 'cycad', + 'cycas', + 'cyclo', + 'cyder', + 'cylix', + 'cymae', + 'cymar', + 'cymas', + 'cymes', + 'cymol', + 'cysts', + 'cytes', + 'cyton', + 'czars', + 'daals', + 'dabba', + 'daces', + 'dacha', + 'dacks', + 'dadah', + 'dadas', + 'dados', + 'daffs', + 'daffy', + 'dagga', + 'daggy', + 'dagos', + 'dahls', + 'daiko', + 'daine', + 'daint', + 'daker', + 'daled', + 'dales', + 'dalis', + 'dalle', + 'dalts', + 'daman', + 'damar', + 'dames', + 'damme', + 'damns', + 'damps', + 'dampy', + 'dancy', + 'dangs', + 'danio', + 'danks', + 'danny', + 'dants', + 'daraf', + 'darbs', + 'darcy', + 'dared', + 'darer', + 'dares', + 'darga', + 'dargs', + 'daric', + 'daris', + 'darks', + 'darky', + 'darns', + 'darre', + 'darts', + 'darzi', + 'dashi', + 'dashy', + 'datal', + 'dated', + 'dater', + 'dates', + 'datos', + 'datto', + 'daube', + 'daubs', + 'dauby', + 'dauds', + 'dault', + 'daurs', + 'dauts', + 'daven', + 'davit', + 'dawah', + 'dawds', + 'dawed', + 'dawen', + 'dawks', + 'dawns', + 'dawts', + 'dayan', + 'daych', + 'daynt', + 'dazed', + 'dazer', + 'dazes', + 'deads', + 'deair', + 'deals', + 'deans', + 'deare', + 'dearn', + 'dears', + 'deary', + 'deash', + 'deave', + 'deaws', + 'deawy', + 'debag', + 'debby', + 'debel', + 'debes', + 'debts', + 'debud', + 'debur', + 'debus', + 'debye', + 'decad', + 'decaf', + 'decan', + 'decko', + 'decks', + 'decos', + 'dedal', + 'deeds', + 'deedy', + 'deely', + 'deems', + 'deens', + 'deeps', + 'deere', + 'deers', + 'deets', + 'deeve', + 'deevs', + 'defat', + 'deffo', + 'defis', + 'defog', + 'degas', + 'degum', + 'degus', + 'deice', + 'deids', + 'deify', + 'deils', + 'deism', + 'deist', + 'deked', + 'dekes', + 'dekko', + 'deled', + 'deles', + 'delfs', + 'delft', + 'delis', + 'dells', + 'delly', + 'delos', + 'delph', + 'delts', + 'deman', + 'demes', + 'demic', + 'demit', + 'demob', + 'demoi', + 'demos', + 'dempt', + 'denar', + 'denay', + 'dench', + 'denes', + 'denet', + 'denis', + 'dents', + 'deoxy', + 'derat', + 'deray', + 'dered', + 'deres', + 'derig', + 'derma', + 'derms', + 'derns', + 'derny', + 'deros', + 'derro', + 'derry', + 'derth', + 'dervs', + 'desex', + 'deshi', + 'desis', + 'desks', + 'desse', + 'devas', + 'devel', + 'devis', + 'devon', + 'devos', + 'devot', + 'dewan', + 'dewar', + 'dewax', + 'dewed', + 'dexes', + 'dexie', + 'dhaba', + 'dhaks', + 'dhals', + 'dhikr', + 'dhobi', + 'dhole', + 'dholl', + 'dhols', + 'dhoti', + 'dhows', + 'dhuti', + 'diact', + 'dials', + 'diane', + 'diazo', + 'dibbs', + 'diced', + 'dicer', + 'dices', + 'dicht', + 'dicks', + 'dicky', + 'dicot', + 'dicta', + 'dicts', + 'dicty', + 'diddy', + 'didie', + 'didos', + 'didst', + 'diebs', + 'diels', + 'diene', + 'diets', + 'diffs', + 'dight', + 'dikas', + 'diked', + 'diker', + 'dikes', + 'dikey', + 'dildo', + 'dilli', + 'dills', + 'dimbo', + 'dimer', + 'dimes', + 'dimps', + 'dinar', + 'dined', + 'dines', + 'dinge', + 'dings', + 'dinic', + 'dinks', + 'dinky', + 'dinna', + 'dinos', + 'dints', + 'diols', + 'diota', + 'dippy', + 'dipso', + 'diram', + 'direr', + 'dirke', + 'dirks', + 'dirls', + 'dirts', + 'disas', + 'disci', + 'discs', + 'dishy', + 'disks', + 'disme', + 'dital', + 'ditas', + 'dited', + 'dites', + 'ditsy', + 'ditts', + 'ditzy', + 'divan', + 'divas', + 'dived', + 'dives', + 'divis', + 'divna', + 'divos', + 'divot', + 'divvy', + 'diwan', + 'dixie', + 'dixit', + 'diyas', + 'dizen', + 'djinn', + 'djins', + 'doabs', + 'doats', + 'dobby', + 'dobes', + 'dobie', + 'dobla', + 'dobra', + 'dobro', + 'docht', + 'docks', + 'docos', + 'docus', + 'doddy', + 'dodos', + 'doeks', + 'doers', + 'doest', + 'doeth', + 'doffs', + 'dogan', + 'doges', + 'dogey', + 'doggo', + 'doggy', + 'dogie', + 'dohyo', + 'doilt', + 'doily', + 'doits', + 'dojos', + 'dolce', + 'dolci', + 'doled', + 'doles', + 'dolia', + 'dolls', + 'dolma', + 'dolor', + 'dolos', + 'dolts', + 'domal', + 'domed', + 'domes', + 'domic', + 'donah', + 'donas', + 'donee', + 'doner', + 'donga', + 'dongs', + 'donko', + 'donna', + 'donne', + 'donny', + 'donsy', + 'doobs', + 'dooce', + 'doody', + 'dooks', + 'doole', + 'dools', + 'dooly', + 'dooms', + 'doomy', + 'doona', + 'doorn', + 'doors', + 'doozy', + 'dopas', + 'doped', + 'doper', + 'dopes', + 'dorad', + 'dorba', + 'dorbs', + 'doree', + 'dores', + 'doric', + 'doris', + 'dorks', + 'dorky', + 'dorms', + 'dormy', + 'dorps', + 'dorrs', + 'dorsa', + 'dorse', + 'dorts', + 'dorty', + 'dosai', + 'dosas', + 'dosed', + 'doseh', + 'doser', + 'doses', + 'dosha', + 'dotal', + 'doted', + 'doter', + 'dotes', + 'dotty', + 'douar', + 'douce', + 'doucs', + 'douks', + 'doula', + 'douma', + 'doums', + 'doups', + 'doura', + 'douse', + 'douts', + 'doved', + 'doven', + 'dover', + 'doves', + 'dovie', + 'dowar', + 'dowds', + 'dowed', + 'dower', + 'dowie', + 'dowle', + 'dowls', + 'dowly', + 'downa', + 'downs', + 'dowps', + 'dowse', + 'dowts', + 'doxed', + 'doxes', + 'doxie', + 'doyen', + 'doyly', + 'dozed', + 'dozer', + 'dozes', + 'drabs', + 'drack', + 'draco', + 'draff', + 'drags', + 'drail', + 'drams', + 'drant', + 'draps', + 'drats', + 'drave', + 'draws', + 'drays', + 'drear', + 'dreck', + 'dreed', + 'dreer', + 'drees', + 'dregs', + 'dreks', + 'drent', + 'drere', + 'drest', + 'dreys', + 'dribs', + 'drice', + 'dries', + 'drily', + 'drips', + 'dript', + 'droid', + 'droil', + 'droke', + 'drole', + 'drome', + 'drony', + 'droob', + 'droog', + 'drook', + 'drops', + 'dropt', + 'drouk', + 'drows', + 'drubs', + 'drugs', + 'drums', + 'drupe', + 'druse', + 'drusy', + 'druxy', + 'dryad', + 'dryas', + 'dsobo', + 'dsomo', + 'duads', + 'duals', + 'duans', + 'duars', + 'dubbo', + 'ducal', + 'ducat', + 'duces', + 'ducks', + 'ducky', + 'ducts', + 'duddy', + 'duded', + 'dudes', + 'duels', + 'duets', + 'duett', + 'duffs', + 'dufus', + 'duing', + 'duits', + 'dukas', + 'duked', + 'dukes', + 'dukka', + 'dulce', + 'dules', + 'dulia', + 'dulls', + 'dulse', + 'dumas', + 'dumbo', + 'dumbs', + 'dumka', + 'dumky', + 'dumps', + 'dunam', + 'dunch', + 'dunes', + 'dungs', + 'dungy', + 'dunks', + 'dunno', + 'dunny', + 'dunsh', + 'dunts', + 'duomi', + 'duomo', + 'duped', + 'duper', + 'dupes', + 'duple', + 'duply', + 'duppy', + 'dural', + 'duras', + 'dured', + 'dures', + 'durgy', + 'durns', + 'duroc', + 'duros', + 'duroy', + 'durra', + 'durrs', + 'durry', + 'durst', + 'durum', + 'durzi', + 'dusks', + 'dusts', + 'duxes', + 'dwaal', + 'dwale', + 'dwalm', + 'dwams', + 'dwang', + 'dwaum', + 'dweeb', + 'dwile', + 'dwine', + 'dyads', + 'dyers', + 'dyked', + 'dykes', + 'dykey', + 'dykon', + 'dynel', + 'dynes', + 'dzhos', + 'eagre', + 'ealed', + 'eales', + 'eaned', + 'eards', + 'eared', + 'earls', + 'earns', + 'earnt', + 'earst', + 'eased', + 'easer', + 'eases', + 'easle', + 'easts', + 'eathe', + 'eaved', + 'eaves', + 'ebbed', + 'ebbet', + 'ebons', + 'ebook', + 'ecads', + 'eched', + 'eches', + 'echos', + 'ecrus', + 'edema', + 'edged', + 'edger', + 'edges', + 'edile', + 'edits', + 'educe', + 'educt', + 'eejit', + 'eensy', + 'eeven', + 'eevns', + 'effed', + 'egads', + 'egers', + 'egest', + 'eggar', + 'egged', + 'egger', + 'egmas', + 'ehing', + 'eider', + 'eidos', + 'eigne', + 'eiked', + 'eikon', + 'eilds', + 'eisel', + 'ejido', + 'ekkas', + 'elain', + 'eland', + 'elans', + 'elchi', + 'eldin', + 'elemi', + 'elfed', + 'eliad', + 'elint', + 'elmen', + 'eloge', + 'elogy', + 'eloin', + 'elops', + 'elpee', + 'elsin', + 'elute', + 'elvan', + 'elven', + 'elver', + 'elves', + 'emacs', + 'embar', + 'embay', + 'embog', + 'embow', + 'embox', + 'embus', + 'emeer', + 'emend', + 'emerg', + 'emery', + 'emeus', + 'emics', + 'emirs', + 'emits', + 'emmas', + 'emmer', + 'emmet', + 'emmew', + 'emmys', + 'emoji', + 'emong', + 'emote', + 'emove', + 'empts', + 'emule', + 'emure', + 'emyde', + 'emyds', + 'enarm', + 'enate', + 'ended', + 'ender', + 'endew', + 'endue', + 'enews', + 'enfix', + 'eniac', + 'enlit', + 'enmew', + 'ennog', + 'enoki', + 'enols', + 'enorm', + 'enows', + 'enrol', + 'ensew', + 'ensky', + 'entia', + 'enure', + 'enurn', + 'envoi', + 'enzym', + 'eorls', + 'eosin', + 'epact', + 'epees', + 'ephah', + 'ephas', + 'ephod', + 'ephor', + 'epics', + 'epode', + 'epopt', + 'epris', + 'eques', + 'equid', + 'erbia', + 'erevs', + 'ergon', + 'ergos', + 'ergot', + 'erhus', + 'erica', + 'erick', + 'erics', + 'ering', + 'erned', + 'ernes', + 'erose', + 'erred', + 'erses', + 'eruct', + 'erugo', + 'eruvs', + 'erven', + 'ervil', + 'escar', + 'escot', + 'esile', + 'eskar', + 'esker', + 'esnes', + 'esses', + 'estoc', + 'estop', + 'estro', + 'etage', + 'etape', + 'etats', + 'etens', + 'ethal', + 'ethne', + 'ethyl', + 'etics', + 'etnas', + 'ettin', + 'ettle', + 'etuis', + 'etwee', + 'etyma', + 'eughs', + 'euked', + 'eupad', + 'euros', + 'eusol', + 'evens', + 'evert', + 'evets', + 'evhoe', + 'evils', + 'evite', + 'evohe', + 'ewers', + 'ewest', + 'ewhow', + 'ewked', + 'exams', + 'exeat', + 'execs', + 'exeem', + 'exeme', + 'exfil', + 'exies', + 'exine', + 'exing', + 'exits', + 'exode', + 'exome', + 'exons', + 'expat', + 'expos', + 'exude', + 'exuls', + 'exurb', + 'eyass', + 'eyers', + 'eyots', + 'eyras', + 'eyres', + 'eyrie', + 'eyrir', + 'ezine', + 'fabby', + 'faced', + 'facer', + 'faces', + 'facia', + 'facta', + 'facts', + 'faddy', + 'faded', + 'fader', + 'fades', + 'fadge', + 'fados', + 'faena', + 'faery', + 'faffs', + 'faffy', + 'faggy', + 'fagin', + 'fagot', + 'faiks', + 'fails', + 'faine', + 'fains', + 'fairs', + 'faked', + 'faker', + 'fakes', + 'fakey', + 'fakie', + 'fakir', + 'falaj', + 'falls', + 'famed', + 'fames', + 'fanal', + 'fands', + 'fanes', + 'fanga', + 'fango', + 'fangs', + 'fanks', + 'fanon', + 'fanos', + 'fanum', + 'faqir', + 'farad', + 'farci', + 'farcy', + 'fards', + 'fared', + 'farer', + 'fares', + 'farle', + 'farls', + 'farms', + 'faros', + 'farro', + 'farse', + 'farts', + 'fasci', + 'fasti', + 'fasts', + 'fated', + 'fates', + 'fatly', + 'fatso', + 'fatwa', + 'faugh', + 'fauld', + 'fauns', + 'faurd', + 'fauts', + 'fauve', + 'favas', + 'favel', + 'faver', + 'faves', + 'favus', + 'fawns', + 'fawny', + 'faxed', + 'faxes', + 'fayed', + 'fayer', + 'fayne', + 'fayre', + 'fazed', + 'fazes', + 'feals', + 'feare', + 'fears', + 'feart', + 'fease', + 'feats', + 'feaze', + 'feces', + 'fecht', + 'fecit', + 'fecks', + 'fedex', + 'feebs', + 'feeds', + 'feels', + 'feens', + 'feers', + 'feese', + 'feeze', + 'fehme', + 'feint', + 'feist', + 'felch', + 'felid', + 'fells', + 'felly', + 'felts', + 'felty', + 'femal', + 'femes', + 'femmy', + 'fends', + 'fendy', + 'fenis', + 'fenks', + 'fenny', + 'fents', + 'feods', + 'feoff', + 'ferer', + 'feres', + 'feria', + 'ferly', + 'fermi', + 'ferms', + 'ferns', + 'ferny', + 'fesse', + 'festa', + 'fests', + 'festy', + 'fetas', + 'feted', + 'fetes', + 'fetor', + 'fetta', + 'fetts', + 'fetwa', + 'feuar', + 'feuds', + 'feued', + 'feyed', + 'feyer', + 'feyly', + 'fezes', + 'fezzy', + 'fiars', + 'fiats', + 'fibro', + 'fices', + 'fiche', + 'fichu', + 'ficin', + 'ficos', + 'fides', + 'fidge', + 'fidos', + 'fiefs', + 'fient', + 'fiere', + 'fiers', + 'fiest', + 'fifed', + 'fifer', + 'fifes', + 'fifis', + 'figgy', + 'figos', + 'fiked', + 'fikes', + 'filar', + 'filch', + 'filed', + 'files', + 'filii', + 'filks', + 'fille', + 'fillo', + 'fills', + 'filmi', + 'films', + 'filos', + 'filum', + 'finca', + 'finds', + 'fined', + 'fines', + 'finis', + 'finks', + 'finny', + 'finos', + 'fiord', + 'fiqhs', + 'fique', + 'fired', + 'firer', + 'fires', + 'firie', + 'firks', + 'firms', + 'firns', + 'firry', + 'firth', + 'fiscs', + 'fisks', + 'fists', + 'fisty', + 'fitch', + 'fitly', + 'fitna', + 'fitte', + 'fitts', + 'fiver', + 'fives', + 'fixed', + 'fixes', + 'fixit', + 'fjeld', + 'flabs', + 'flaff', + 'flags', + 'flaks', + 'flamm', + 'flams', + 'flamy', + 'flane', + 'flans', + 'flaps', + 'flary', + 'flats', + 'flava', + 'flawn', + 'flaws', + 'flawy', + 'flaxy', + 'flays', + 'fleam', + 'fleas', + 'fleek', + 'fleer', + 'flees', + 'flegs', + 'fleme', + 'fleur', + 'flews', + 'flexi', + 'flexo', + 'fleys', + 'flics', + 'flied', + 'flies', + 'flimp', + 'flims', + 'flips', + 'flirs', + 'flisk', + 'flite', + 'flits', + 'flitt', + 'flobs', + 'flocs', + 'floes', + 'flogs', + 'flong', + 'flops', + 'flors', + 'flory', + 'flosh', + 'flota', + 'flote', + 'flows', + 'flubs', + 'flued', + 'flues', + 'fluey', + 'fluky', + 'flump', + 'fluor', + 'flurr', + 'fluty', + 'fluyt', + 'flyby', + 'flype', + 'flyte', + 'foals', + 'foams', + 'foehn', + 'fogey', + 'fogie', + 'fogle', + 'fogou', + 'fohns', + 'foids', + 'foils', + 'foins', + 'folds', + 'foley', + 'folia', + 'folic', + 'folie', + 'folks', + 'folky', + 'fomes', + 'fonda', + 'fonds', + 'fondu', + 'fones', + 'fonly', + 'fonts', + 'foods', + 'foody', + 'fools', + 'foots', + 'footy', + 'foram', + 'forbs', + 'forby', + 'fordo', + 'fords', + 'forel', + 'fores', + 'forex', + 'forks', + 'forky', + 'forme', + 'forms', + 'forts', + 'forza', + 'forze', + 'fossa', + 'fosse', + 'fouat', + 'fouds', + 'fouer', + 'fouet', + 'foule', + 'fouls', + 'fount', + 'fours', + 'fouth', + 'fovea', + 'fowls', + 'fowth', + 'foxed', + 'foxes', + 'foxie', + 'foyle', + 'foyne', + 'frabs', + 'frack', + 'fract', + 'frags', + 'fraim', + 'franc', + 'frape', + 'fraps', + 'frass', + 'frate', + 'frati', + 'frats', + 'fraus', + 'frays', + 'frees', + 'freet', + 'freit', + 'fremd', + 'frena', + 'freon', + 'frere', + 'frets', + 'fribs', + 'frier', + 'fries', + 'frigs', + 'frise', + 'frist', + 'frith', + 'frits', + 'fritt', + 'frize', + 'frizz', + 'froes', + 'frogs', + 'frons', + 'frore', + 'frorn', + 'frory', + 'frosh', + 'frows', + 'frowy', + 'frugs', + 'frump', + 'frush', + 'frust', + 'fryer', + 'fubar', + 'fubby', + 'fubsy', + 'fucks', + 'fucus', + 'fuddy', + 'fudgy', + 'fuels', + 'fuero', + 'fuffs', + 'fuffy', + 'fugal', + 'fuggy', + 'fugie', + 'fugio', + 'fugle', + 'fugly', + 'fugus', + 'fujis', + 'fulls', + 'fumed', + 'fumer', + 'fumes', + 'fumet', + 'fundi', + 'funds', + 'fundy', + 'fungo', + 'fungs', + 'funks', + 'fural', + 'furan', + 'furca', + 'furls', + 'furol', + 'furrs', + 'furth', + 'furze', + 'furzy', + 'fused', + 'fusee', + 'fusel', + 'fuses', + 'fusil', + 'fusks', + 'fusts', + 'fusty', + 'futon', + 'fuzed', + 'fuzee', + 'fuzes', + 'fuzil', + 'fyces', + 'fyked', + 'fykes', + 'fyles', + 'fyrds', + 'fytte', + 'gabba', + 'gabby', + 'gable', + 'gaddi', + 'gades', + 'gadge', + 'gadid', + 'gadis', + 'gadje', + 'gadjo', + 'gadso', + 'gaffs', + 'gaged', + 'gager', + 'gages', + 'gaids', + 'gains', + 'gairs', + 'gaita', + 'gaits', + 'gaitt', + 'gajos', + 'galah', + 'galas', + 'galax', + 'galea', + 'galed', + 'gales', + 'galls', + 'gally', + 'galop', + 'galut', + 'galvo', + 'gamas', + 'gamay', + 'gamba', + 'gambe', + 'gambo', + 'gambs', + 'gamed', + 'games', + 'gamey', + 'gamic', + 'gamin', + 'gamme', + 'gammy', + 'gamps', + 'ganch', + 'gandy', + 'ganef', + 'ganev', + 'gangs', + 'ganja', + 'ganof', + 'gants', + 'gaols', + 'gaped', + 'gaper', + 'gapes', + 'gapos', + 'gappy', + 'garbe', + 'garbo', + 'garbs', + 'garda', + 'gares', + 'garis', + 'garms', + 'garni', + 'garre', + 'garth', + 'garum', + 'gases', + 'gasps', + 'gaspy', + 'gasts', + 'gatch', + 'gated', + 'gater', + 'gates', + 'gaths', + 'gator', + 'gauch', + 'gaucy', + 'gauds', + 'gauje', + 'gault', + 'gaums', + 'gaumy', + 'gaups', + 'gaurs', + 'gauss', + 'gauzy', + 'gavot', + 'gawcy', + 'gawds', + 'gawks', + 'gawps', + 'gawsy', + 'gayal', + 'gazal', + 'gazar', + 'gazed', + 'gazes', + 'gazon', + 'gazoo', + 'geals', + 'geans', + 'geare', + 'gears', + 'geats', + 'gebur', + 'gecks', + 'geeks', + 'geeps', + 'geest', + 'geist', + 'geits', + 'gelds', + 'gelee', + 'gelid', + 'gelly', + 'gelts', + 'gemel', + 'gemma', + 'gemmy', + 'gemot', + 'genal', + 'genas', + 'genes', + 'genet', + 'genic', + 'genii', + 'genip', + 'genny', + 'genoa', + 'genom', + 'genro', + 'gents', + 'genty', + 'genua', + 'genus', + 'geode', + 'geoid', + 'gerah', + 'gerbe', + 'geres', + 'gerle', + 'germs', + 'germy', + 'gerne', + 'gesse', + 'gesso', + 'geste', + 'gests', + 'getas', + 'getup', + 'geums', + 'geyan', + 'geyer', + 'ghast', + 'ghats', + 'ghaut', + 'ghazi', + 'ghees', + 'ghest', + 'ghyll', + 'gibed', + 'gibel', + 'giber', + 'gibes', + 'gibli', + 'gibus', + 'gifts', + 'gigas', + 'gighe', + 'gigot', + 'gigue', + 'gilas', + 'gilds', + 'gilet', + 'gills', + 'gilly', + 'gilpy', + 'gilts', + 'gimel', + 'gimme', + 'gimps', + 'gimpy', + 'ginch', + 'ginge', + 'gings', + 'ginks', + 'ginny', + 'ginzo', + 'gipon', + 'gippo', + 'gippy', + 'girds', + 'girls', + 'girns', + 'giron', + 'giros', + 'girrs', + 'girsh', + 'girts', + 'gismo', + 'gisms', + 'gists', + 'gitch', + 'gites', + 'giust', + 'gived', + 'gives', + 'gizmo', + 'glace', + 'glads', + 'glady', + 'glaik', + 'glair', + 'glams', + 'glans', + 'glary', + 'glaum', + 'glaur', + 'glazy', + 'gleba', + 'glebe', + 'gleby', + 'glede', + 'gleds', + 'gleed', + 'gleek', + 'glees', + 'gleet', + 'gleis', + 'glens', + 'glent', + 'gleys', + 'glial', + 'glias', + 'glibs', + 'gliff', + 'glift', + 'glike', + 'glime', + 'glims', + 'glisk', + 'glits', + 'glitz', + 'gloam', + 'globi', + 'globs', + 'globy', + 'glode', + 'glogg', + 'gloms', + 'gloop', + 'glops', + 'glost', + 'glout', + 'glows', + 'gloze', + 'glued', + 'gluer', + 'glues', + 'gluey', + 'glugs', + 'glume', + 'glums', + 'gluon', + 'glute', + 'gluts', + 'gnarl', + 'gnarr', + 'gnars', + 'gnats', + 'gnawn', + 'gnaws', + 'gnows', + 'goads', + 'goafs', + 'goals', + 'goary', + 'goats', + 'goaty', + 'goban', + 'gobar', + 'gobbi', + 'gobbo', + 'gobby', + 'gobis', + 'gobos', + 'godet', + 'godso', + 'goels', + 'goers', + 'goest', + 'goeth', + 'goety', + 'gofer', + 'goffs', + 'gogga', + 'gogos', + 'goier', + 'gojis', + 'golds', + 'goldy', + 'goles', + 'golfs', + 'golpe', + 'golps', + 'gombo', + 'gomer', + 'gompa', + 'gonch', + 'gonef', + 'gongs', + 'gonia', + 'gonif', + 'gonks', + 'gonna', + 'gonof', + 'gonys', + 'gonzo', + 'gooby', + 'goods', + 'goofs', + 'googs', + 'gooks', + 'gooky', + 'goold', + 'gools', + 'gooly', + 'goons', + 'goony', + 'goops', + 'goopy', + 'goors', + 'goory', + 'goosy', + 'gopak', + 'gopik', + 'goral', + 'goras', + 'gored', + 'gores', + 'goris', + 'gorms', + 'gormy', + 'gorps', + 'gorse', + 'gorsy', + 'gosht', + 'gosse', + 'gotch', + 'goths', + 'gothy', + 'gotta', + 'gouch', + 'gouks', + 'goura', + 'gouts', + 'gouty', + 'gowan', + 'gowds', + 'gowfs', + 'gowks', + 'gowls', + 'gowns', + 'goxes', + 'goyim', + 'goyle', + 'graal', + 'grabs', + 'grads', + 'graff', + 'graip', + 'grama', + 'grame', + 'gramp', + 'grams', + 'grana', + 'grans', + 'grapy', + 'gravs', + 'grays', + 'grebe', + 'grebo', + 'grece', + 'greek', + 'grees', + 'grege', + 'grego', + 'grein', + 'grens', + 'grese', + 'greve', + 'grews', + 'greys', + 'grice', + 'gride', + 'grids', + 'griff', + 'grift', + 'grigs', + 'grike', + 'grins', + 'griot', + 'grips', + 'gript', + 'gripy', + 'grise', + 'grist', + 'grisy', + 'grith', + 'grits', + 'grize', + 'groat', + 'grody', + 'grogs', + 'groks', + 'groma', + 'grone', + 'groof', + 'grosz', + 'grots', + 'grouf', + 'grovy', + 'grows', + 'grrls', + 'grrrl', + 'grubs', + 'grued', + 'grues', + 'grufe', + 'grume', + 'grump', + 'grund', + 'gryce', + 'gryde', + 'gryke', + 'grype', + 'grypt', + 'guaco', + 'guana', + 'guano', + 'guans', + 'guars', + 'gucks', + 'gucky', + 'gudes', + 'guffs', + 'gugas', + 'guids', + 'guimp', + 'guiro', + 'gulag', + 'gular', + 'gulas', + 'gules', + 'gulet', + 'gulfs', + 'gulfy', + 'gulls', + 'gulph', + 'gulps', + 'gulpy', + 'gumma', + 'gummi', + 'gumps', + 'gundy', + 'gunge', + 'gungy', + 'gunks', + 'gunky', + 'gunny', + 'guqin', + 'gurdy', + 'gurge', + 'gurls', + 'gurly', + 'gurns', + 'gurry', + 'gursh', + 'gurus', + 'gushy', + 'gusla', + 'gusle', + 'gusli', + 'gussy', + 'gusts', + 'gutsy', + 'gutta', + 'gutty', + 'guyed', + 'guyle', + 'guyot', + 'guyse', + 'gwine', + 'gyals', + 'gyans', + 'gybed', + 'gybes', + 'gyeld', + 'gymps', + 'gynae', + 'gynie', + 'gynny', + 'gynos', + 'gyoza', + 'gypos', + 'gyppo', + 'gyppy', + 'gyral', + 'gyred', + 'gyres', + 'gyron', + 'gyros', + 'gyrus', + 'gytes', + 'gyved', + 'gyves', + 'haafs', + 'haars', + 'hable', + 'habus', + 'hacek', + 'hacks', + 'hadal', + 'haded', + 'hades', + 'hadji', + 'hadst', + 'haems', + 'haets', + 'haffs', + 'hafiz', + 'hafts', + 'haggs', + 'hahas', + 'haick', + 'haika', + 'haiks', + 'haiku', + 'hails', + 'haily', + 'hains', + 'haint', + 'hairs', + 'haith', + 'hajes', + 'hajis', + 'hajji', + 'hakam', + 'hakas', + 'hakea', + 'hakes', + 'hakim', + 'hakus', + 'halal', + 'haled', + 'haler', + 'hales', + 'halfa', + 'halfs', + 'halid', + 'hallo', + 'halls', + 'halma', + 'halms', + 'halon', + 'halos', + 'halse', + 'halts', + 'halva', + 'halwa', + 'hamal', + 'hamba', + 'hamed', + 'hames', + 'hammy', + 'hamza', + 'hanap', + 'hance', + 'hanch', + 'hands', + 'hangi', + 'hangs', + 'hanks', + 'hanky', + 'hansa', + 'hanse', + 'hants', + 'haole', + 'haoma', + 'hapax', + 'haply', + 'happi', + 'hapus', + 'haram', + 'hards', + 'hared', + 'hares', + 'harim', + 'harks', + 'harls', + 'harms', + 'harns', + 'haros', + 'harps', + 'harts', + 'hashy', + 'hasks', + 'hasps', + 'hasta', + 'hated', + 'hates', + 'hatha', + 'hauds', + 'haufs', + 'haugh', + 'hauld', + 'haulm', + 'hauls', + 'hault', + 'hauns', + 'hause', + 'haver', + 'haves', + 'hawed', + 'hawks', + 'hawms', + 'hawse', + 'hayed', + 'hayer', + 'hayey', + 'hayle', + 'hazan', + 'hazed', + 'hazer', + 'hazes', + 'heads', + 'heald', + 'heals', + 'heame', + 'heaps', + 'heapy', + 'heare', + 'hears', + 'heast', + 'heats', + 'heben', + 'hebes', + 'hecht', + 'hecks', + 'heder', + 'hedgy', + 'heeds', + 'heedy', + 'heels', + 'heeze', + 'hefte', + 'hefts', + 'heids', + 'heigh', + 'heils', + 'heirs', + 'hejab', + 'hejra', + 'heled', + 'heles', + 'helio', + 'hells', + 'helms', + 'helos', + 'helot', + 'helps', + 'helve', + 'hemal', + 'hemes', + 'hemic', + 'hemin', + 'hemps', + 'hempy', + 'hench', + 'hends', + 'henge', + 'henna', + 'henny', + 'henry', + 'hents', + 'hepar', + 'herbs', + 'herby', + 'herds', + 'heres', + 'herls', + 'herma', + 'herms', + 'herns', + 'heros', + 'herry', + 'herse', + 'hertz', + 'herye', + 'hesps', + 'hests', + 'hetes', + 'heths', + 'heuch', + 'heugh', + 'hevea', + 'hewed', + 'hewer', + 'hewgh', + 'hexad', + 'hexed', + 'hexer', + 'hexes', + 'hexyl', + 'heyed', + 'hiant', + 'hicks', + 'hided', + 'hider', + 'hides', + 'hiems', + 'highs', + 'hight', + 'hijab', + 'hijra', + 'hiked', + 'hiker', + 'hikes', + 'hikoi', + 'hilar', + 'hilch', + 'hillo', + 'hills', + 'hilts', + 'hilum', + 'hilus', + 'himbo', + 'hinau', + 'hinds', + 'hings', + 'hinky', + 'hinny', + 'hints', + 'hiois', + 'hiply', + 'hired', + 'hiree', + 'hirer', + 'hires', + 'hissy', + 'hists', + 'hithe', + 'hived', + 'hiver', + 'hives', + 'hizen', + 'hoaed', + 'hoagy', + 'hoars', + 'hoary', + 'hoast', + 'hobos', + 'hocks', + 'hocus', + 'hodad', + 'hodja', + 'hoers', + 'hogan', + 'hogen', + 'hoggs', + 'hoghs', + 'hohed', + 'hoick', + 'hoied', + 'hoiks', + 'hoing', + 'hoise', + 'hokas', + 'hoked', + 'hokes', + 'hokey', + 'hokis', + 'hokku', + 'hokum', + 'holds', + 'holed', + 'holes', + 'holey', + 'holks', + 'holla', + 'hollo', + 'holme', + 'holms', + 'holon', + 'holos', + 'holts', + 'homas', + 'homed', + 'homes', + 'homey', + 'homie', + 'homme', + 'homos', + 'honan', + 'honda', + 'honds', + 'honed', + 'honer', + 'hones', + 'hongi', + 'hongs', + 'honks', + 'honky', + 'hooch', + 'hoods', + 'hoody', + 'hooey', + 'hoofs', + 'hooka', + 'hooks', + 'hooky', + 'hooly', + 'hoons', + 'hoops', + 'hoord', + 'hoors', + 'hoosh', + 'hoots', + 'hooty', + 'hoove', + 'hopak', + 'hoped', + 'hoper', + 'hopes', + 'hoppy', + 'horah', + 'horal', + 'horas', + 'horis', + 'horks', + 'horme', + 'horns', + 'horst', + 'horsy', + 'hosed', + 'hosel', + 'hosen', + 'hoser', + 'hoses', + 'hosey', + 'hosta', + 'hosts', + 'hotch', + 'hoten', + 'hotty', + 'houff', + 'houfs', + 'hough', + 'houri', + 'hours', + 'houts', + 'hovea', + 'hoved', + 'hoven', + 'hoves', + 'howbe', + 'howes', + 'howff', + 'howfs', + 'howks', + 'howls', + 'howre', + 'howso', + 'hoxed', + 'hoxes', + 'hoyas', + 'hoyed', + 'hoyle', + 'hubby', + 'hucks', + 'hudna', + 'hudud', + 'huers', + 'huffs', + 'huffy', + 'huger', + 'huggy', + 'huhus', + 'huias', + 'hulas', + 'hules', + 'hulks', + 'hulky', + 'hullo', + 'hulls', + 'hully', + 'humas', + 'humfs', + 'humic', + 'humps', + 'humpy', + 'hunks', + 'hunts', + 'hurds', + 'hurls', + 'hurly', + 'hurra', + 'hurst', + 'hurts', + 'hushy', + 'husks', + 'husos', + 'hutia', + 'huzza', + 'huzzy', + 'hwyls', + 'hydra', + 'hyens', + 'hygge', + 'hying', + 'hykes', + 'hylas', + 'hyleg', + 'hyles', + 'hylic', + 'hymns', + 'hynde', + 'hyoid', + 'hyped', + 'hypes', + 'hypha', + 'hyphy', + 'hypos', + 'hyrax', + 'hyson', + 'hythe', + 'iambi', + 'iambs', + 'ibrik', + 'icers', + 'iched', + 'iches', + 'ichor', + 'icier', + 'icker', + 'ickle', + 'icons', + 'ictal', + 'ictic', + 'ictus', + 'idant', + 'ideas', + 'idees', + 'ident', + 'idled', + 'idles', + 'idola', + 'idols', + 'idyls', + 'iftar', + 'igapo', + 'igged', + 'iglus', + 'ihram', + 'ikans', + 'ikats', + 'ikons', + 'ileac', + 'ileal', + 'ileum', + 'ileus', + 'iliad', + 'ilial', + 'ilium', + 'iller', + 'illth', + 'imago', + 'imams', + 'imari', + 'imaum', + 'imbar', + 'imbed', + 'imide', + 'imido', + 'imids', + 'imine', + 'imino', + 'immew', + 'immit', + 'immix', + 'imped', + 'impis', + 'impot', + 'impro', + 'imshi', + 'imshy', + 'inapt', + 'inarm', + 'inbye', + 'incel', + 'incle', + 'incog', + 'incus', + 'incut', + 'indew', + 'india', + 'indie', + 'indol', + 'indow', + 'indri', + 'indue', + 'inerm', + 'infix', + 'infos', + 'infra', + 'ingan', + 'ingle', + 'inion', + 'inked', + 'inker', + 'inkle', + 'inned', + 'innit', + 'inorb', + 'inrun', + 'inset', + 'inspo', + 'intel', + 'intil', + 'intis', + 'intra', + 'inula', + 'inure', + 'inurn', + 'inust', + 'invar', + 'inwit', + 'iodic', + 'iodid', + 'iodin', + 'iotas', + 'ippon', + 'irade', + 'irids', + 'iring', + 'irked', + 'iroko', + 'irone', + 'irons', + 'isbas', + 'ishes', + 'isled', + 'isles', + 'isnae', + 'issei', + 'istle', + 'items', + 'ither', + 'ivied', + 'ivies', + 'ixias', + 'ixnay', + 'ixora', + 'ixtle', + 'izard', + 'izars', + 'izzat', + 'jaaps', + 'jabot', + 'jacal', + 'jacks', + 'jacky', + 'jaded', + 'jades', + 'jafas', + 'jaffa', + 'jagas', + 'jager', + 'jaggs', + 'jaggy', + 'jagir', + 'jagra', + 'jails', + 'jaker', + 'jakes', + 'jakey', + 'jalap', + 'jalop', + 'jambe', + 'jambo', + 'jambs', + 'jambu', + 'james', + 'jammy', + 'jamon', + 'janes', + 'janns', + 'janny', + 'janty', + 'japan', + 'japed', + 'japer', + 'japes', + 'jarks', + 'jarls', + 'jarps', + 'jarta', + 'jarul', + 'jasey', + 'jaspe', + 'jasps', + 'jatos', + 'jauks', + 'jaups', + 'javas', + 'javel', + 'jawan', + 'jawed', + 'jaxie', + 'jeans', + 'jeats', + 'jebel', + 'jedis', + 'jeels', + 'jeely', + 'jeeps', + 'jeers', + 'jeeze', + 'jefes', + 'jeffs', + 'jehad', + 'jehus', + 'jelab', + 'jello', + 'jells', + 'jembe', + 'jemmy', + 'jenny', + 'jeons', + 'jerid', + 'jerks', + 'jerry', + 'jesse', + 'jests', + 'jesus', + 'jetes', + 'jeton', + 'jeune', + 'jewed', + 'jewie', + 'jhala', + 'jiaos', + 'jibba', + 'jibbs', + 'jibed', + 'jiber', + 'jibes', + 'jiffs', + 'jiggy', + 'jigot', + 'jihad', + 'jills', + 'jilts', + 'jimmy', + 'jimpy', + 'jingo', + 'jinks', + 'jinne', + 'jinni', + 'jinns', + 'jirds', + 'jirga', + 'jirre', + 'jisms', + 'jived', + 'jiver', + 'jives', + 'jivey', + 'jnana', + 'jobed', + 'jobes', + 'jocko', + 'jocks', + 'jocky', + 'jocos', + 'jodel', + 'joeys', + 'johns', + 'joins', + 'joked', + 'jokes', + 'jokey', + 'jokol', + 'joled', + 'joles', + 'jolls', + 'jolts', + 'jolty', + 'jomon', + 'jomos', + 'jones', + 'jongs', + 'jonty', + 'jooks', + 'joram', + 'jorum', + 'jotas', + 'jotty', + 'jotun', + 'joual', + 'jougs', + 'jouks', + 'joule', + 'jours', + 'jowar', + 'jowed', + 'jowls', + 'jowly', + 'joyed', + 'jubas', + 'jubes', + 'jucos', + 'judas', + 'judgy', + 'judos', + 'jugal', + 'jugum', + 'jujus', + 'juked', + 'jukes', + 'jukus', + 'julep', + 'jumar', + 'jumby', + 'jumps', + 'junco', + 'junks', + 'junky', + 'jupes', + 'jupon', + 'jural', + 'jurat', + 'jurel', + 'jures', + 'justs', + 'jutes', + 'jutty', + 'juves', + 'juvie', + 'kaama', + 'kabab', + 'kabar', + 'kabob', + 'kacha', + 'kacks', + 'kadai', + 'kades', + 'kadis', + 'kafir', + 'kagos', + 'kagus', + 'kahal', + 'kaiak', + 'kaids', + 'kaies', + 'kaifs', + 'kaika', + 'kaiks', + 'kails', + 'kaims', + 'kaing', + 'kains', + 'kakas', + 'kakis', + 'kalam', + 'kales', + 'kalif', + 'kalis', + 'kalpa', + 'kamas', + 'kames', + 'kamik', + 'kamis', + 'kamme', + 'kanae', + 'kanas', + 'kandy', + 'kaneh', + 'kanes', + 'kanga', + 'kangs', + 'kanji', + 'kants', + 'kanzu', + 'kaons', + 'kapas', + 'kaphs', + 'kapok', + 'kapow', + 'kapus', + 'kaput', + 'karas', + 'karat', + 'karks', + 'karns', + 'karoo', + 'karos', + 'karri', + 'karst', + 'karsy', + 'karts', + 'karzy', + 'kasha', + 'kasme', + 'katal', + 'katas', + 'katis', + 'katti', + 'kaugh', + 'kauri', + 'kauru', + 'kaury', + 'kaval', + 'kavas', + 'kawas', + 'kawau', + 'kawed', + 'kayle', + 'kayos', + 'kazis', + 'kazoo', + 'kbars', + 'kebar', + 'kebob', + 'kecks', + 'kedge', + 'kedgy', + 'keech', + 'keefs', + 'keeks', + 'keels', + 'keema', + 'keeno', + 'keens', + 'keeps', + 'keets', + 'keeve', + 'kefir', + 'kehua', + 'keirs', + 'kelep', + 'kelim', + 'kells', + 'kelly', + 'kelps', + 'kelpy', + 'kelts', + 'kelty', + 'kembo', + 'kembs', + 'kemps', + 'kempt', + 'kempy', + 'kenaf', + 'kench', + 'kendo', + 'kenos', + 'kente', + 'kents', + 'kepis', + 'kerbs', + 'kerel', + 'kerfs', + 'kerky', + 'kerma', + 'kerne', + 'kerns', + 'keros', + 'kerry', + 'kerve', + 'kesar', + 'kests', + 'ketas', + 'ketch', + 'ketes', + 'ketol', + 'kevel', + 'kevil', + 'kexes', + 'keyed', + 'keyer', + 'khadi', + 'khafs', + 'khans', + 'khaph', + 'khats', + 'khaya', + 'khazi', + 'kheda', + 'kheth', + 'khets', + 'khoja', + 'khors', + 'khoum', + 'khuds', + 'kiaat', + 'kiack', + 'kiang', + 'kibbe', + 'kibbi', + 'kibei', + 'kibes', + 'kibla', + 'kicks', + 'kicky', + 'kiddo', + 'kiddy', + 'kidel', + 'kidge', + 'kiefs', + 'kiers', + 'kieve', + 'kievs', + 'kight', + 'kikes', + 'kikoi', + 'kiley', + 'kilim', + 'kills', + 'kilns', + 'kilos', + 'kilps', + 'kilts', + 'kilty', + 'kimbo', + 'kinas', + 'kinda', + 'kinds', + 'kindy', + 'kines', + 'kings', + 'kinin', + 'kinks', + 'kinos', + 'kiore', + 'kipes', + 'kippa', + 'kipps', + 'kirby', + 'kirks', + 'kirns', + 'kirri', + 'kisan', + 'kissy', + 'kists', + 'kited', + 'kiter', + 'kites', + 'kithe', + 'kiths', + 'kitul', + 'kivas', + 'kiwis', + 'klang', + 'klaps', + 'klett', + 'klick', + 'klieg', + 'kliks', + 'klong', + 'kloof', + 'kluge', + 'klutz', + 'knags', + 'knaps', + 'knarl', + 'knars', + 'knaur', + 'knawe', + 'knees', + 'knell', + 'knish', + 'knits', + 'knive', + 'knobs', + 'knops', + 'knosp', + 'knots', + 'knout', + 'knowe', + 'knows', + 'knubs', + 'knurl', + 'knurr', + 'knurs', + 'knuts', + 'koans', + 'koaps', + 'koban', + 'kobos', + 'koels', + 'koffs', + 'kofta', + 'kogal', + 'kohas', + 'kohen', + 'kohls', + 'koine', + 'kojis', + 'kokam', + 'kokas', + 'koker', + 'kokra', + 'kokum', + 'kolas', + 'kolos', + 'kombu', + 'konbu', + 'kondo', + 'konks', + 'kooks', + 'kooky', + 'koori', + 'kopek', + 'kophs', + 'kopje', + 'koppa', + 'korai', + 'koras', + 'korat', + 'kores', + 'korma', + 'koros', + 'korun', + 'korus', + 'koses', + 'kotch', + 'kotos', + 'kotow', + 'koura', + 'kraal', + 'krabs', + 'kraft', + 'krais', + 'krait', + 'krang', + 'krans', + 'kranz', + 'kraut', + 'krays', + 'kreep', + 'kreng', + 'krewe', + 'krona', + 'krone', + 'kroon', + 'krubi', + 'krunk', + 'ksars', + 'kubie', + 'kudos', + 'kudus', + 'kudzu', + 'kufis', + 'kugel', + 'kuias', + 'kukri', + 'kukus', + 'kulak', + 'kulan', + 'kulas', + 'kulfi', + 'kumis', + 'kumys', + 'kuris', + 'kurre', + 'kurta', + 'kurus', + 'kusso', + 'kutas', + 'kutch', + 'kutis', + 'kutus', + 'kuzus', + 'kvass', + 'kvell', + 'kwela', + 'kyack', + 'kyaks', + 'kyang', + 'kyars', + 'kyats', + 'kybos', + 'kydst', + 'kyles', + 'kylie', + 'kylin', + 'kylix', + 'kyloe', + 'kynde', + 'kynds', + 'kypes', + 'kyrie', + 'kytes', + 'kythe', + 'laari', + 'labda', + 'labia', + 'labis', + 'labra', + 'laced', + 'lacer', + 'laces', + 'lacet', + 'lacey', + 'lacks', + 'laddy', + 'laded', + 'lader', + 'lades', + 'laers', + 'laevo', + 'lagan', + 'lahal', + 'lahar', + 'laich', + 'laics', + 'laids', + 'laigh', + 'laika', + 'laiks', + 'laird', + 'lairs', + 'lairy', + 'laith', + 'laity', + 'laked', + 'laker', + 'lakes', + 'lakhs', + 'lakin', + 'laksa', + 'laldy', + 'lalls', + 'lamas', + 'lambs', + 'lamby', + 'lamed', + 'lamer', + 'lames', + 'lamia', + 'lammy', + 'lamps', + 'lanai', + 'lanas', + 'lanch', + 'lande', + 'lands', + 'lanes', + 'lanks', + 'lants', + 'lapin', + 'lapis', + 'lapje', + 'larch', + 'lards', + 'lardy', + 'laree', + 'lares', + 'largo', + 'laris', + 'larks', + 'larky', + 'larns', + 'larnt', + 'larum', + 'lased', + 'laser', + 'lases', + 'lassi', + 'lassu', + 'lassy', + 'lasts', + 'latah', + 'lated', + 'laten', + 'latex', + 'lathi', + 'laths', + 'lathy', + 'latke', + 'latus', + 'lauan', + 'lauch', + 'lauds', + 'laufs', + 'laund', + 'laura', + 'laval', + 'lavas', + 'laved', + 'laver', + 'laves', + 'lavra', + 'lavvy', + 'lawed', + 'lawer', + 'lawin', + 'lawks', + 'lawns', + 'lawny', + 'laxed', + 'laxer', + 'laxes', + 'laxly', + 'layed', + 'layin', + 'layup', + 'lazar', + 'lazed', + 'lazes', + 'lazos', + 'lazzi', + 'lazzo', + 'leads', + 'leady', + 'leafs', + 'leaks', + 'leams', + 'leans', + 'leany', + 'leaps', + 'leare', + 'lears', + 'leary', + 'leats', + 'leavy', + 'leaze', + 'leben', + 'leccy', + 'ledes', + 'ledgy', + 'ledum', + 'leear', + 'leeks', + 'leeps', + 'leers', + 'leese', + 'leets', + 'leeze', + 'lefte', + 'lefts', + 'leger', + 'leges', + 'legge', + 'leggo', + 'legit', + 'lehrs', + 'lehua', + 'leirs', + 'leish', + 'leman', + 'lemed', + 'lemel', + 'lemes', + 'lemma', + 'lemme', + 'lends', + 'lenes', + 'lengs', + 'lenis', + 'lenos', + 'lense', + 'lenti', + 'lento', + 'leone', + 'lepid', + 'lepra', + 'lepta', + 'lered', + 'leres', + 'lerps', + 'lesbo', + 'leses', + 'lests', + 'letch', + 'lethe', + 'letup', + 'leuch', + 'leuco', + 'leuds', + 'leugh', + 'levas', + 'levee', + 'leves', + 'levin', + 'levis', + 'lewis', + 'lexes', + 'lexis', + 'lezes', + 'lezza', + 'lezzy', + 'liana', + 'liane', + 'liang', + 'liard', + 'liars', + 'liart', + 'liber', + 'libra', + 'libri', + 'lichi', + 'licht', + 'licit', + 'licks', + 'lidar', + 'lidos', + 'liefs', + 'liens', + 'liers', + 'lieus', + 'lieve', + 'lifer', + 'lifes', + 'lifts', + 'ligan', + 'liger', + 'ligge', + 'ligne', + 'liked', + 'liker', + 'likes', + 'likin', + 'lills', + 'lilos', + 'lilts', + 'liman', + 'limas', + 'limax', + 'limba', + 'limbi', + 'limbs', + 'limby', + 'limed', + 'limen', + 'limes', + 'limey', + 'limma', + 'limns', + 'limos', + 'limpa', + 'limps', + 'linac', + 'linch', + 'linds', + 'lindy', + 'lined', + 'lines', + 'liney', + 'linga', + 'lings', + 'lingy', + 'linin', + 'links', + 'linky', + 'linns', + 'linny', + 'linos', + 'lints', + 'linty', + 'linum', + 'linux', + 'lions', + 'lipas', + 'lipes', + 'lipin', + 'lipos', + 'lippy', + 'liras', + 'lirks', + 'lirot', + 'lisks', + 'lisle', + 'lisps', + 'lists', + 'litai', + 'litas', + 'lited', + 'liter', + 'lites', + 'litho', + 'liths', + 'litre', + 'lived', + 'liven', + 'lives', + 'livor', + 'livre', + 'llano', + 'loach', + 'loads', + 'loafs', + 'loams', + 'loans', + 'loast', + 'loave', + 'lobar', + 'lobed', + 'lobes', + 'lobos', + 'lobus', + 'loche', + 'lochs', + 'locie', + 'locis', + 'locks', + 'locos', + 'locum', + 'loden', + 'lodes', + 'loess', + 'lofts', + 'logan', + 'loges', + 'loggy', + 'logia', + 'logie', + 'logoi', + 'logon', + 'logos', + 'lohan', + 'loids', + 'loins', + 'loipe', + 'loirs', + 'lokes', + 'lolls', + 'lolly', + 'lolog', + 'lomas', + 'lomed', + 'lomes', + 'loner', + 'longa', + 'longe', + 'longs', + 'looby', + 'looed', + 'looey', + 'loofa', + 'loofs', + 'looie', + 'looks', + 'looky', + 'looms', + 'loons', + 'loony', + 'loops', + 'loord', + 'loots', + 'loped', + 'loper', + 'lopes', + 'loppy', + 'loral', + 'loran', + 'lords', + 'lordy', + 'lorel', + 'lores', + 'loric', + 'loris', + 'losed', + 'losel', + 'losen', + 'loses', + 'lossy', + 'lotah', + 'lotas', + 'lotes', + 'lotic', + 'lotos', + 'lotsa', + 'lotta', + 'lotte', + 'lotto', + 'lotus', + 'loued', + 'lough', + 'louie', + 'louis', + 'louma', + 'lound', + 'louns', + 'loupe', + 'loups', + 'loure', + 'lours', + 'loury', + 'louts', + 'lovat', + 'loved', + 'loves', + 'lovey', + 'lovie', + 'lowan', + 'lowed', + 'lowes', + 'lownd', + 'lowne', + 'lowns', + 'lowps', + 'lowry', + 'lowse', + 'lowts', + 'loxed', + 'loxes', + 'lozen', + 'luach', + 'luaus', + 'lubed', + 'lubes', + 'lubra', + 'luces', + 'lucks', + 'lucre', + 'ludes', + 'ludic', + 'ludos', + 'luffa', + 'luffs', + 'luged', + 'luger', + 'luges', + 'lulls', + 'lulus', + 'lumas', + 'lumbi', + 'lumme', + 'lummy', + 'lumps', + 'lunas', + 'lunes', + 'lunet', + 'lungi', + 'lungs', + 'lunks', + 'lunts', + 'lupin', + 'lured', + 'lurer', + 'lures', + 'lurex', + 'lurgi', + 'lurgy', + 'lurks', + 'lurry', + 'lurve', + 'luser', + 'lushy', + 'lusks', + 'lusts', + 'lusus', + 'lutea', + 'luted', + 'luter', + 'lutes', + 'luvvy', + 'luxed', + 'luxer', + 'luxes', + 'lweis', + 'lyams', + 'lyard', + 'lyart', + 'lyase', + 'lycea', + 'lycee', + 'lycra', + 'lymes', + 'lynes', + 'lyres', + 'lysed', + 'lyses', + 'lysin', + 'lysis', + 'lysol', + 'lyssa', + 'lyted', + 'lytes', + 'lythe', + 'lytic', + 'lytta', + 'maaed', + 'maare', + 'maars', + 'mabes', + 'macas', + 'maced', + 'macer', + 'maces', + 'mache', + 'machi', + 'machs', + 'macks', + 'macle', + 'macon', + 'madge', + 'madid', + 'madre', + 'maerl', + 'mafic', + 'mages', + 'maggs', + 'magot', + 'magus', + 'mahoe', + 'mahua', + 'mahwa', + 'maids', + 'maiko', + 'maiks', + 'maile', + 'maill', + 'mails', + 'maims', + 'mains', + 'maire', + 'mairs', + 'maise', + 'maist', + 'makar', + 'makes', + 'makis', + 'makos', + 'malam', + 'malar', + 'malas', + 'malax', + 'males', + 'malic', + 'malik', + 'malis', + 'malls', + 'malms', + 'malmy', + 'malts', + 'malty', + 'malus', + 'malva', + 'malwa', + 'mamas', + 'mamba', + 'mamee', + 'mamey', + 'mamie', + 'manas', + 'manat', + 'mandi', + 'maneb', + 'maned', + 'maneh', + 'manes', + 'manet', + 'mangs', + 'manis', + 'manky', + 'manna', + 'manos', + 'manse', + 'manta', + 'manto', + 'manty', + 'manul', + 'manus', + 'mapau', + 'maqui', + 'marae', + 'marah', + 'maras', + 'marcs', + 'mardy', + 'mares', + 'marge', + 'margs', + 'maria', + 'marid', + 'marka', + 'marks', + 'marle', + 'marls', + 'marly', + 'marms', + 'maron', + 'maror', + 'marra', + 'marri', + 'marse', + 'marts', + 'marvy', + 'masas', + 'mased', + 'maser', + 'mases', + 'mashy', + 'masks', + 'massa', + 'massy', + 'masts', + 'masty', + 'masus', + 'matai', + 'mated', + 'mater', + 'mates', + 'maths', + 'matin', + 'matlo', + 'matte', + 'matts', + 'matza', + 'matzo', + 'mauby', + 'mauds', + 'mauls', + 'maund', + 'mauri', + 'mausy', + 'mauts', + 'mauzy', + 'maven', + 'mavie', + 'mavin', + 'mavis', + 'mawed', + 'mawks', + 'mawky', + 'mawns', + 'mawrs', + 'maxed', + 'maxes', + 'maxis', + 'mayan', + 'mayas', + 'mayed', + 'mayos', + 'mayst', + 'mazed', + 'mazer', + 'mazes', + 'mazey', + 'mazut', + 'mbira', + 'meads', + 'meals', + 'meane', + 'means', + 'meany', + 'meare', + 'mease', + 'meath', + 'meats', + 'mebos', + 'mechs', + 'mecks', + 'medii', + 'medle', + 'meeds', + 'meers', + 'meets', + 'meffs', + 'meins', + 'meint', + 'meiny', + 'meith', + 'mekka', + 'melas', + 'melba', + 'melds', + 'melic', + 'melik', + 'mells', + 'melts', + 'melty', + 'memes', + 'memos', + 'menad', + 'mends', + 'mened', + 'menes', + 'menge', + 'mengs', + 'mensa', + 'mense', + 'mensh', + 'menta', + 'mento', + 'menus', + 'meous', + 'meows', + 'merch', + 'mercs', + 'merde', + 'mered', + 'merel', + 'merer', + 'meres', + 'meril', + 'meris', + 'merks', + 'merle', + 'merls', + 'merse', + 'mesal', + 'mesas', + 'mesel', + 'meses', + 'meshy', + 'mesic', + 'mesne', + 'meson', + 'messy', + 'mesto', + 'meted', + 'metes', + 'metho', + 'meths', + 'metic', + 'metif', + 'metis', + 'metol', + 'metre', + 'meuse', + 'meved', + 'meves', + 'mewed', + 'mewls', + 'meynt', + 'mezes', + 'mezze', + 'mezzo', + 'mhorr', + 'miaou', + 'miaow', + 'miasm', + 'miaul', + 'micas', + 'miche', + 'micht', + 'micks', + 'micky', + 'micos', + 'micra', + 'middy', + 'midgy', + 'midis', + 'miens', + 'mieve', + 'miffs', + 'miffy', + 'mifty', + 'miggs', + 'mihas', + 'mihis', + 'miked', + 'mikes', + 'mikra', + 'mikva', + 'milch', + 'milds', + 'miler', + 'miles', + 'milfs', + 'milia', + 'milko', + 'milks', + 'mille', + 'mills', + 'milor', + 'milos', + 'milpa', + 'milts', + 'milty', + 'miltz', + 'mimed', + 'mimeo', + 'mimer', + 'mimes', + 'mimsy', + 'minae', + 'minar', + 'minas', + 'mincy', + 'minds', + 'mined', + 'mines', + 'minge', + 'mings', + 'mingy', + 'minis', + 'minke', + 'minks', + 'minny', + 'minos', + 'mints', + 'mired', + 'mires', + 'mirex', + 'mirid', + 'mirin', + 'mirks', + 'mirky', + 'mirly', + 'miros', + 'mirvs', + 'mirza', + 'misch', + 'misdo', + 'mises', + 'misgo', + 'misos', + 'missa', + 'mists', + 'misty', + 'mitch', + 'miter', + 'mites', + 'mitis', + 'mitre', + 'mitts', + 'mixed', + 'mixen', + 'mixer', + 'mixes', + 'mixte', + 'mixup', + 'mizen', + 'mizzy', + 'mneme', + 'moans', + 'moats', + 'mobby', + 'mobes', + 'mobey', + 'mobie', + 'moble', + 'mochi', + 'mochs', + 'mochy', + 'mocks', + 'moder', + 'modes', + 'modge', + 'modii', + 'modus', + 'moers', + 'mofos', + 'moggy', + 'mohel', + 'mohos', + 'mohrs', + 'mohua', + 'mohur', + 'moile', + 'moils', + 'moira', + 'moire', + 'moits', + 'mojos', + 'mokes', + 'mokis', + 'mokos', + 'molal', + 'molas', + 'molds', + 'moled', + 'moles', + 'molla', + 'molls', + 'molly', + 'molto', + 'molts', + 'molys', + 'momes', + 'momma', + 'mommy', + 'momus', + 'monad', + 'monal', + 'monas', + 'monde', + 'mondo', + 'moner', + 'mongo', + 'mongs', + 'monic', + 'monie', + 'monks', + 'monos', + 'monte', + 'monty', + 'moobs', + 'mooch', + 'moods', + 'mooed', + 'mooks', + 'moola', + 'mooli', + 'mools', + 'mooly', + 'moong', + 'moons', + 'moony', + 'moops', + 'moors', + 'moory', + 'moots', + 'moove', + 'moped', + 'moper', + 'mopes', + 'mopey', + 'moppy', + 'mopsy', + 'mopus', + 'morae', + 'moras', + 'morat', + 'moray', + 'morel', + 'mores', + 'moria', + 'morne', + 'morns', + 'morra', + 'morro', + 'morse', + 'morts', + 'mosed', + 'moses', + 'mosey', + 'mosks', + 'mosso', + 'moste', + 'mosts', + 'moted', + 'moten', + 'motes', + 'motet', + 'motey', + 'moths', + 'mothy', + 'motis', + 'motte', + 'motts', + 'motty', + 'motus', + 'motza', + 'mouch', + 'moues', + 'mould', + 'mouls', + 'moups', + 'moust', + 'mousy', + 'moved', + 'moves', + 'mowas', + 'mowed', + 'mowra', + 'moxas', + 'moxie', + 'moyas', + 'moyle', + 'moyls', + 'mozed', + 'mozes', + 'mozos', + 'mpret', + 'mucho', + 'mucic', + 'mucid', + 'mucin', + 'mucks', + 'mucor', + 'mucro', + 'mudge', + 'mudir', + 'mudra', + 'muffs', + 'mufti', + 'mugga', + 'muggs', + 'muggy', + 'muhly', + 'muids', + 'muils', + 'muirs', + 'muist', + 'mujik', + 'mulct', + 'muled', + 'mules', + 'muley', + 'mulga', + 'mulie', + 'mulla', + 'mulls', + 'mulse', + 'mulsh', + 'mumms', + 'mumps', + 'mumsy', + 'mumus', + 'munga', + 'munge', + 'mungo', + 'mungs', + 'munis', + 'munts', + 'muntu', + 'muons', + 'muras', + 'mured', + 'mures', + 'murex', + 'murid', + 'murks', + 'murls', + 'murly', + 'murra', + 'murre', + 'murri', + 'murrs', + 'murry', + 'murti', + 'murva', + 'musar', + 'musca', + 'mused', + 'muser', + 'muses', + 'muset', + 'musha', + 'musit', + 'musks', + 'musos', + 'musse', + 'mussy', + 'musth', + 'musts', + 'mutch', + 'muted', + 'muter', + 'mutes', + 'mutha', + 'mutis', + 'muton', + 'mutts', + 'muxed', + 'muxes', + 'muzak', + 'muzzy', + 'mvule', + 'myall', + 'mylar', + 'mynah', + 'mynas', + 'myoid', + 'myoma', + 'myope', + 'myops', + 'myopy', + 'mysid', + 'mythi', + 'myths', + 'mythy', + 'myxos', + 'mzees', + 'naams', + 'naans', + 'nabes', + 'nabis', + 'nabks', + 'nabla', + 'nabob', + 'nache', + 'nacho', + 'nacre', + 'nadas', + 'naeve', + 'naevi', + 'naffs', + 'nagas', + 'naggy', + 'nagor', + 'nahal', + 'naiad', + 'naifs', + 'naiks', + 'nails', + 'naira', + 'nairu', + 'naked', + 'naker', + 'nakfa', + 'nalas', + 'naled', + 'nalla', + 'named', + 'namer', + 'names', + 'namma', + 'namus', + 'nanas', + 'nance', + 'nancy', + 'nandu', + 'nanna', + 'nanos', + 'nanua', + 'napas', + 'naped', + 'napes', + 'napoo', + 'nappa', + 'nappe', + 'nappy', + 'naras', + 'narco', + 'narcs', + 'nards', + 'nares', + 'naric', + 'naris', + 'narks', + 'narky', + 'narre', + 'nashi', + 'natch', + 'nates', + 'natis', + 'natty', + 'nauch', + 'naunt', + 'navar', + 'naves', + 'navew', + 'navvy', + 'nawab', + 'nazes', + 'nazir', + 'nazis', + 'nduja', + 'neafe', + 'neals', + 'neaps', + 'nears', + 'neath', + 'neats', + 'nebek', + 'nebel', + 'necks', + 'neddy', + 'needs', + 'neeld', + 'neele', + 'neemb', + 'neems', + 'neeps', + 'neese', + 'neeze', + 'negro', + 'negus', + 'neifs', + 'neist', + 'neive', + 'nelis', + 'nelly', + 'nemas', + 'nemns', + 'nempt', + 'nenes', + 'neons', + 'neper', + 'nepit', + 'neral', + 'nerds', + 'nerka', + 'nerks', + 'nerol', + 'nerts', + 'nertz', + 'nervy', + 'nests', + 'netes', + 'netop', + 'netts', + 'netty', + 'neuks', + 'neume', + 'neums', + 'nevel', + 'neves', + 'nevus', + 'newbs', + 'newed', + 'newel', + 'newie', + 'newsy', + 'newts', + 'nexts', + 'nexus', + 'ngaio', + 'ngana', + 'ngati', + 'ngoma', + 'ngwee', + 'nicad', + 'nicht', + 'nicks', + 'nicol', + 'nidal', + 'nided', + 'nides', + 'nidor', + 'nidus', + 'niefs', + 'nieve', + 'nifes', + 'niffs', + 'niffy', + 'nifty', + 'niger', + 'nighs', + 'nihil', + 'nikab', + 'nikah', + 'nikau', + 'nills', + 'nimbi', + 'nimbs', + 'nimps', + 'niner', + 'nines', + 'ninon', + 'nipas', + 'nippy', + 'niqab', + 'nirls', + 'nirly', + 'nisei', + 'nisse', + 'nisus', + 'niter', + 'nites', + 'nitid', + 'niton', + 'nitre', + 'nitro', + 'nitry', + 'nitty', + 'nival', + 'nixed', + 'nixer', + 'nixes', + 'nixie', + 'nizam', + 'nkosi', + 'noahs', + 'nobby', + 'nocks', + 'nodal', + 'noddy', + 'nodes', + 'nodus', + 'noels', + 'noggs', + 'nohow', + 'noils', + 'noily', + 'noint', + 'noirs', + 'noles', + 'nolls', + 'nolos', + 'nomas', + 'nomen', + 'nomes', + 'nomic', + 'nomoi', + 'nomos', + 'nonas', + 'nonce', + 'nones', + 'nonet', + 'nongs', + 'nonis', + 'nonny', + 'nonyl', + 'noobs', + 'nooit', + 'nooks', + 'nooky', + 'noons', + 'noops', + 'nopal', + 'noria', + 'noris', + 'norks', + 'norma', + 'norms', + 'nosed', + 'noser', + 'noses', + 'notal', + 'noted', + 'noter', + 'notes', + 'notum', + 'nould', + 'noule', + 'nouls', + 'nouns', + 'nouny', + 'noups', + 'novae', + 'novas', + 'novum', + 'noway', + 'nowed', + 'nowls', + 'nowts', + 'nowty', + 'noxal', + 'noxes', + 'noyau', + 'noyed', + 'noyes', + 'nubby', + 'nubia', + 'nucha', + 'nuddy', + 'nuder', + 'nudes', + 'nudie', + 'nudzh', + 'nuffs', + 'nugae', + 'nuked', + 'nukes', + 'nulla', + 'nulls', + 'numbs', + 'numen', + 'nummy', + 'nunny', + 'nurds', + 'nurdy', + 'nurls', + 'nurrs', + 'nutso', + 'nutsy', + 'nyaff', + 'nyala', + 'nying', + 'nyssa', + 'oaked', + 'oaker', + 'oakum', + 'oared', + 'oases', + 'oasis', + 'oasts', + 'oaten', + 'oater', + 'oaths', + 'oaves', + 'obang', + 'obeah', + 'obeli', + 'obeys', + 'obias', + 'obied', + 'obiit', + 'obits', + 'objet', + 'oboes', + 'obole', + 'oboli', + 'obols', + 'occam', + 'ocher', + 'oches', + 'ochre', + 'ochry', + 'ocker', + 'ocrea', + 'octad', + 'octan', + 'octas', + 'octyl', + 'oculi', + 'odahs', + 'odals', + 'odeon', + 'odeum', + 'odism', + 'odist', + 'odium', + 'odors', + 'odour', + 'odyle', + 'odyls', + 'ofays', + 'offed', + 'offie', + 'oflag', + 'ofter', + 'ogams', + 'ogeed', + 'ogees', + 'oggin', + 'ogham', + 'ogive', + 'ogled', + 'ogler', + 'ogles', + 'ogmic', + 'ogres', + 'ohias', + 'ohing', + 'ohmic', + 'ohone', + 'oidia', + 'oiled', + 'oiler', + 'oinks', + 'oints', + 'ojime', + 'okapi', + 'okays', + 'okehs', + 'okras', + 'oktas', + 'oldie', + 'oleic', + 'olein', + 'olent', + 'oleos', + 'oleum', + 'olios', + 'ollas', + 'ollav', + 'oller', + 'ollie', + 'ology', + 'olpae', + 'olpes', + 'omasa', + 'omber', + 'ombus', + 'omens', + 'omers', + 'omits', + 'omlah', + 'omovs', + 'omrah', + 'oncer', + 'onces', + 'oncet', + 'oncus', + 'onely', + 'oners', + 'onery', + 'onium', + 'onkus', + 'onlay', + 'onned', + 'ontic', + 'oobit', + 'oohed', + 'oomph', + 'oonts', + 'ooped', + 'oorie', + 'ooses', + 'ootid', + 'oozed', + 'oozes', + 'opahs', + 'opals', + 'opens', + 'opepe', + 'oping', + 'oppos', + 'opsin', + 'opted', + 'opter', + 'orach', + 'oracy', + 'orals', + 'orang', + 'orant', + 'orate', + 'orbed', + 'orcas', + 'orcin', + 'ordos', + 'oread', + 'orfes', + 'orgia', + 'orgic', + 'orgue', + 'oribi', + 'oriel', + 'orixa', + 'orles', + 'orlon', + 'orlop', + 'ormer', + 'ornis', + 'orpin', + 'orris', + 'ortho', + 'orval', + 'orzos', + 'oscar', + 'oshac', + 'osier', + 'osmic', + 'osmol', + 'ossia', + 'ostia', + 'otaku', + 'otary', + 'ottar', + 'ottos', + 'oubit', + 'oucht', + 'ouens', + 'ouija', + 'oulks', + 'oumas', + 'oundy', + 'oupas', + 'ouped', + 'ouphe', + 'ouphs', + 'ourie', + 'ousel', + 'ousts', + 'outby', + 'outed', + 'outre', + 'outro', + 'outta', + 'ouzel', + 'ouzos', + 'ovals', + 'ovels', + 'ovens', + 'overs', + 'ovist', + 'ovoli', + 'ovolo', + 'ovule', + 'owche', + 'owies', + 'owled', + 'owler', + 'owlet', + 'owned', + 'owres', + 'owrie', + 'owsen', + 'oxbow', + 'oxers', + 'oxeye', + 'oxids', + 'oxies', + 'oxime', + 'oxims', + 'oxlip', + 'oxter', + 'oyers', + 'ozeki', + 'ozzie', + 'paals', + 'paans', + 'pacas', + 'paced', + 'pacer', + 'paces', + 'pacey', + 'pacha', + 'packs', + 'pacos', + 'pacta', + 'pacts', + 'padis', + 'padle', + 'padma', + 'padre', + 'padri', + 'paean', + 'paedo', + 'paeon', + 'paged', + 'pager', + 'pages', + 'pagle', + 'pagod', + 'pagri', + 'paiks', + 'pails', + 'pains', + 'paire', + 'pairs', + 'paisa', + 'paise', + 'pakka', + 'palas', + 'palay', + 'palea', + 'paled', + 'pales', + 'palet', + 'palis', + 'palki', + 'palla', + 'palls', + 'pally', + 'palms', + 'palmy', + 'palpi', + 'palps', + 'palsa', + 'pampa', + 'panax', + 'pance', + 'panda', + 'pands', + 'pandy', + 'paned', + 'panes', + 'panga', + 'pangs', + 'panim', + 'panko', + 'panne', + 'panni', + 'panto', + 'pants', + 'panty', + 'paoli', + 'paolo', + 'papas', + 'papaw', + 'papes', + 'pappi', + 'pappy', + 'parae', + 'paras', + 'parch', + 'pardi', + 'pards', + 'pardy', + 'pared', + 'paren', + 'pareo', + 'pares', + 'pareu', + 'parev', + 'parge', + 'pargo', + 'paris', + 'parki', + 'parks', + 'parky', + 'parle', + 'parly', + 'parma', + 'parol', + 'parps', + 'parra', + 'parrs', + 'parti', + 'parts', + 'parve', + 'parvo', + 'paseo', + 'pases', + 'pasha', + 'pashm', + 'paska', + 'paspy', + 'passe', + 'pasts', + 'pated', + 'paten', + 'pater', + 'pates', + 'paths', + 'patin', + 'patka', + 'patly', + 'patte', + 'patus', + 'pauas', + 'pauls', + 'pavan', + 'paved', + 'paven', + 'paver', + 'paves', + 'pavid', + 'pavin', + 'pavis', + 'pawas', + 'pawaw', + 'pawed', + 'pawer', + 'pawks', + 'pawky', + 'pawls', + 'pawns', + 'paxes', + 'payed', + 'payor', + 'paysd', + 'peage', + 'peags', + 'peaks', + 'peaky', + 'peals', + 'peans', + 'peare', + 'pears', + 'peart', + 'pease', + 'peats', + 'peaty', + 'peavy', + 'peaze', + 'pebas', + 'pechs', + 'pecke', + 'pecks', + 'pecky', + 'pedes', + 'pedis', + 'pedro', + 'peece', + 'peeks', + 'peels', + 'peens', + 'peeoy', + 'peepe', + 'peeps', + 'peers', + 'peery', + 'peeve', + 'peggy', + 'peghs', + 'peins', + 'peise', + 'peize', + 'pekan', + 'pekes', + 'pekin', + 'pekoe', + 'pelas', + 'pelau', + 'peles', + 'pelfs', + 'pells', + 'pelma', + 'pelon', + 'pelta', + 'pelts', + 'pends', + 'pendu', + 'pened', + 'penes', + 'pengo', + 'penie', + 'penis', + 'penks', + 'penna', + 'penni', + 'pents', + 'peons', + 'peony', + 'pepla', + 'pepos', + 'peppy', + 'pepsi', + 'perai', + 'perce', + 'percs', + 'perdu', + 'perdy', + 'perea', + 'peres', + 'peris', + 'perks', + 'perms', + 'perns', + 'perog', + 'perps', + 'perry', + 'perse', + 'perst', + 'perts', + 'perve', + 'pervo', + 'pervs', + 'pervy', + 'pesos', + 'pests', + 'pesty', + 'petar', + 'peter', + 'petit', + 'petre', + 'petri', + 'petti', + 'petto', + 'pewee', + 'pewit', + 'peyse', + 'phage', + 'phang', + 'phare', + 'pharm', + 'pheer', + 'phene', + 'pheon', + 'phese', + 'phial', + 'phish', + 'phizz', + 'phlox', + 'phoca', + 'phono', + 'phons', + 'phots', + 'phpht', + 'phuts', + 'phyla', + 'phyle', + 'piani', + 'pians', + 'pibal', + 'pical', + 'picas', + 'piccy', + 'picks', + 'picot', + 'picra', + 'picul', + 'piend', + 'piers', + 'piert', + 'pieta', + 'piets', + 'piezo', + 'pight', + 'pigmy', + 'piing', + 'pikas', + 'pikau', + 'piked', + 'piker', + 'pikes', + 'pikey', + 'pikis', + 'pikul', + 'pilae', + 'pilaf', + 'pilao', + 'pilar', + 'pilau', + 'pilaw', + 'pilch', + 'pilea', + 'piled', + 'pilei', + 'piler', + 'piles', + 'pilis', + 'pills', + 'pilow', + 'pilum', + 'pilus', + 'pimas', + 'pimps', + 'pinas', + 'pined', + 'pines', + 'pingo', + 'pings', + 'pinko', + 'pinks', + 'pinna', + 'pinny', + 'pinon', + 'pinot', + 'pinta', + 'pints', + 'pinup', + 'pions', + 'piony', + 'pious', + 'pioye', + 'pioys', + 'pipal', + 'pipas', + 'piped', + 'pipes', + 'pipet', + 'pipis', + 'pipit', + 'pippy', + 'pipul', + 'pirai', + 'pirls', + 'pirns', + 'pirog', + 'pisco', + 'pises', + 'pisky', + 'pisos', + 'pissy', + 'piste', + 'pitas', + 'piths', + 'piton', + 'pitot', + 'pitta', + 'piums', + 'pixes', + 'pized', + 'pizes', + 'plaas', + 'plack', + 'plage', + 'plans', + 'plaps', + 'plash', + 'plasm', + 'plast', + 'plats', + 'platt', + 'platy', + 'playa', + 'plays', + 'pleas', + 'plebe', + 'plebs', + 'plena', + 'pleon', + 'plesh', + 'plews', + 'plica', + 'plies', + 'plims', + 'pling', + 'plink', + 'ploat', + 'plods', + 'plong', + 'plonk', + 'plook', + 'plops', + 'plots', + 'plotz', + 'plouk', + 'plows', + 'ploye', + 'ploys', + 'plues', + 'pluff', + 'plugs', + 'plums', + 'plumy', + 'pluot', + 'pluto', + 'plyer', + 'poach', + 'poaka', + 'poake', + 'poboy', + 'pocks', + 'pocky', + 'podal', + 'poddy', + 'podex', + 'podge', + 'podgy', + 'podia', + 'poems', + 'poeps', + 'poets', + 'pogey', + 'pogge', + 'pogos', + 'pohed', + 'poilu', + 'poind', + 'pokal', + 'poked', + 'pokes', + 'pokey', + 'pokie', + 'poled', + 'poler', + 'poles', + 'poley', + 'polio', + 'polis', + 'polje', + 'polks', + 'polls', + 'polly', + 'polos', + 'polts', + 'polys', + 'pombe', + 'pomes', + 'pommy', + 'pomos', + 'pomps', + 'ponce', + 'poncy', + 'ponds', + 'pones', + 'poney', + 'ponga', + 'pongo', + 'pongs', + 'pongy', + 'ponks', + 'ponts', + 'ponty', + 'ponzu', + 'poods', + 'pooed', + 'poofs', + 'poofy', + 'poohs', + 'pooja', + 'pooka', + 'pooks', + 'pools', + 'poons', + 'poops', + 'poopy', + 'poori', + 'poort', + 'poots', + 'poove', + 'poovy', + 'popes', + 'poppa', + 'popsy', + 'porae', + 'poral', + 'pored', + 'porer', + 'pores', + 'porge', + 'porgy', + 'porin', + 'porks', + 'porky', + 'porno', + 'porns', + 'porny', + 'porta', + 'ports', + 'porty', + 'posed', + 'poses', + 'posey', + 'posho', + 'posts', + 'potae', + 'potch', + 'poted', + 'potes', + 'potin', + 'potoo', + 'potsy', + 'potto', + 'potts', + 'potty', + 'pouff', + 'poufs', + 'pouke', + 'pouks', + 'poule', + 'poulp', + 'poult', + 'poupe', + 'poupt', + 'pours', + 'pouts', + 'powan', + 'powin', + 'pownd', + 'powns', + 'powny', + 'powre', + 'poxed', + 'poxes', + 'poynt', + 'poyou', + 'poyse', + 'pozzy', + 'praam', + 'prads', + 'prahu', + 'prams', + 'prana', + 'prang', + 'praos', + 'prase', + 'prate', + 'prats', + 'pratt', + 'praty', + 'praus', + 'prays', + 'predy', + 'preed', + 'prees', + 'preif', + 'prems', + 'premy', + 'prent', + 'preon', + 'preop', + 'preps', + 'presa', + 'prese', + 'prest', + 'preve', + 'prexy', + 'preys', + 'prial', + 'pricy', + 'prief', + 'prier', + 'pries', + 'prigs', + 'prill', + 'prima', + 'primi', + 'primp', + 'prims', + 'primy', + 'prink', + 'prion', + 'prise', + 'priss', + 'proas', + 'probs', + 'prods', + 'proem', + 'profs', + 'progs', + 'proin', + 'proke', + 'prole', + 'proll', + 'promo', + 'proms', + 'pronk', + 'props', + 'prore', + 'proso', + 'pross', + 'prost', + 'prosy', + 'proto', + 'proul', + 'prows', + 'proyn', + 'prunt', + 'pruta', + 'pryer', + 'pryse', + 'pseud', + 'pshaw', + 'psion', + 'psoae', + 'psoai', + 'psoas', + 'psora', + 'psych', + 'psyop', + 'pubco', + 'pubes', + 'pubis', + 'pucan', + 'pucer', + 'puces', + 'pucka', + 'pucks', + 'puddy', + 'pudge', + 'pudic', + 'pudor', + 'pudsy', + 'pudus', + 'puers', + 'puffa', + 'puffs', + 'puggy', + 'pugil', + 'puhas', + 'pujah', + 'pujas', + 'pukas', + 'puked', + 'puker', + 'pukes', + 'pukey', + 'pukka', + 'pukus', + 'pulao', + 'pulas', + 'puled', + 'puler', + 'pules', + 'pulik', + 'pulis', + 'pulka', + 'pulks', + 'pulli', + 'pulls', + 'pully', + 'pulmo', + 'pulps', + 'pulus', + 'pumas', + 'pumie', + 'pumps', + 'punas', + 'punce', + 'punga', + 'pungs', + 'punji', + 'punka', + 'punks', + 'punky', + 'punny', + 'punto', + 'punts', + 'punty', + 'pupae', + 'pupas', + 'pupus', + 'purda', + 'pured', + 'pures', + 'purin', + 'puris', + 'purls', + 'purpy', + 'purrs', + 'pursy', + 'purty', + 'puses', + 'pusle', + 'pussy', + 'putid', + 'puton', + 'putti', + 'putto', + 'putts', + 'puzel', + 'pwned', + 'pyats', + 'pyets', + 'pygal', + 'pyins', + 'pylon', + 'pyned', + 'pynes', + 'pyoid', + 'pyots', + 'pyral', + 'pyran', + 'pyres', + 'pyrex', + 'pyric', + 'pyros', + 'pyxed', + 'pyxes', + 'pyxie', + 'pyxis', + 'pzazz', + 'qadis', + 'qaids', + 'qajaq', + 'qanat', + 'qapik', + 'qibla', + 'qophs', + 'qorma', + 'quads', + 'quaff', + 'quags', + 'quair', + 'quais', + 'quaky', + 'quale', + 'quant', + 'quare', + 'quass', + 'quate', + 'quats', + 'quayd', + 'quays', + 'qubit', + 'quean', + 'queme', + 'quena', + 'quern', + 'queyn', + 'queys', + 'quich', + 'quids', + 'quiff', + 'quims', + 'quina', + 'quine', + 'quino', + 'quins', + 'quint', + 'quipo', + 'quips', + 'quipu', + 'quire', + 'quirt', + 'quist', + 'quits', + 'quoad', + 'quods', + 'quoif', + 'quoin', + 'quoit', + 'quoll', + 'quonk', + 'quops', + 'qursh', + 'quyte', + 'rabat', + 'rabic', + 'rabis', + 'raced', + 'races', + 'rache', + 'racks', + 'racon', + 'radge', + 'radix', + 'radon', + 'raffs', + 'rafts', + 'ragas', + 'ragde', + 'raged', + 'ragee', + 'rager', + 'rages', + 'ragga', + 'raggs', + 'raggy', + 'ragis', + 'ragus', + 'rahed', + 'rahui', + 'raias', + 'raids', + 'raiks', + 'raile', + 'rails', + 'raine', + 'rains', + 'raird', + 'raita', + 'raits', + 'rajas', + 'rajes', + 'raked', + 'rakee', + 'raker', + 'rakes', + 'rakia', + 'rakis', + 'rakus', + 'rales', + 'ramal', + 'ramee', + 'ramet', + 'ramie', + 'ramin', + 'ramis', + 'rammy', + 'ramps', + 'ramus', + 'ranas', + 'rance', + 'rands', + 'ranee', + 'ranga', + 'rangi', + 'rangs', + 'rangy', + 'ranid', + 'ranis', + 'ranke', + 'ranks', + 'rants', + 'raped', + 'raper', + 'rapes', + 'raphe', + 'rappe', + 'rared', + 'raree', + 'rares', + 'rarks', + 'rased', + 'raser', + 'rases', + 'rasps', + 'rasse', + 'rasta', + 'ratal', + 'ratan', + 'ratas', + 'ratch', + 'rated', + 'ratel', + 'rater', + 'rates', + 'ratha', + 'rathe', + 'raths', + 'ratoo', + 'ratos', + 'ratus', + 'rauns', + 'raupo', + 'raved', + 'ravel', + 'raver', + 'raves', + 'ravey', + 'ravin', + 'rawer', + 'rawin', + 'rawly', + 'rawns', + 'raxed', + 'raxes', + 'rayah', + 'rayas', + 'rayed', + 'rayle', + 'rayne', + 'razed', + 'razee', + 'razer', + 'razes', + 'razoo', + 'readd', + 'reads', + 'reais', + 'reaks', + 'realo', + 'reals', + 'reame', + 'reams', + 'reamy', + 'reans', + 'reaps', + 'rears', + 'reast', + 'reata', + 'reate', + 'reave', + 'rebbe', + 'rebec', + 'rebid', + 'rebit', + 'rebop', + 'rebuy', + 'recal', + 'recce', + 'recco', + 'reccy', + 'recit', + 'recks', + 'recon', + 'recta', + 'recti', + 'recto', + 'redan', + 'redds', + 'reddy', + 'reded', + 'redes', + 'redia', + 'redid', + 'redip', + 'redly', + 'redon', + 'redos', + 'redox', + 'redry', + 'redub', + 'redux', + 'redye', + 'reech', + 'reede', + 'reeds', + 'reefs', + 'reefy', + 'reeks', + 'reeky', + 'reels', + 'reens', + 'reest', + 'reeve', + 'refed', + 'refel', + 'reffo', + 'refis', + 'refix', + 'refly', + 'refry', + 'regar', + 'reges', + 'reggo', + 'regie', + 'regma', + 'regna', + 'regos', + 'regur', + 'rehem', + 'reifs', + 'reify', + 'reiki', + 'reiks', + 'reink', + 'reins', + 'reird', + 'reist', + 'reive', + 'rejig', + 'rejon', + 'reked', + 'rekes', + 'rekey', + 'relet', + 'relie', + 'relit', + 'rello', + 'reman', + 'remap', + 'remen', + 'remet', + 'remex', + 'remix', + 'renay', + 'rends', + 'reney', + 'renga', + 'renig', + 'renin', + 'renne', + 'renos', + 'rente', + 'rents', + 'reoil', + 'reorg', + 'repeg', + 'repin', + 'repla', + 'repos', + 'repot', + 'repps', + 'repro', + 'reran', + 'rerig', + 'resat', + 'resaw', + 'resay', + 'resee', + 'reses', + 'resew', + 'resid', + 'resit', + 'resod', + 'resow', + 'resto', + 'rests', + 'resty', + 'resus', + 'retag', + 'retax', + 'retem', + 'retia', + 'retie', + 'retox', + 'revet', + 'revie', + 'rewan', + 'rewax', + 'rewed', + 'rewet', + 'rewin', + 'rewon', + 'rewth', + 'rexes', + 'rezes', + 'rheas', + 'rheme', + 'rheum', + 'rhies', + 'rhime', + 'rhine', + 'rhody', + 'rhomb', + 'rhone', + 'rhumb', + 'rhyne', + 'rhyta', + 'riads', + 'rials', + 'riant', + 'riata', + 'ribas', + 'ribby', + 'ribes', + 'riced', + 'ricer', + 'rices', + 'ricey', + 'richt', + 'ricin', + 'ricks', + 'rides', + 'ridgy', + 'ridic', + 'riels', + 'riems', + 'rieve', + 'rifer', + 'riffs', + 'rifte', + 'rifts', + 'rifty', + 'riggs', + 'rigol', + 'riled', + 'riles', + 'riley', + 'rille', + 'rills', + 'rimae', + 'rimed', + 'rimer', + 'rimes', + 'rimus', + 'rinds', + 'rindy', + 'rines', + 'rings', + 'rinks', + 'rioja', + 'riots', + 'riped', + 'ripes', + 'ripps', + 'rises', + 'rishi', + 'risks', + 'risps', + 'risus', + 'rites', + 'ritts', + 'ritzy', + 'rivas', + 'rived', + 'rivel', + 'riven', + 'rives', + 'riyal', + 'rizas', + 'roads', + 'roams', + 'roans', + 'roars', + 'roary', + 'roate', + 'robed', + 'robes', + 'roble', + 'rocks', + 'roded', + 'rodes', + 'roguy', + 'rohes', + 'roids', + 'roils', + 'roily', + 'roins', + 'roist', + 'rojak', + 'rojis', + 'roked', + 'roker', + 'rokes', + 'rolag', + 'roles', + 'rolfs', + 'rolls', + 'romal', + 'roman', + 'romeo', + 'romps', + 'ronde', + 'rondo', + 'roneo', + 'rones', + 'ronin', + 'ronne', + 'ronte', + 'ronts', + 'roods', + 'roofs', + 'roofy', + 'rooks', + 'rooky', + 'rooms', + 'roons', + 'roops', + 'roopy', + 'roosa', + 'roose', + 'roots', + 'rooty', + 'roped', + 'roper', + 'ropes', + 'ropey', + 'roque', + 'roral', + 'rores', + 'roric', + 'rorid', + 'rorie', + 'rorts', + 'rorty', + 'rosed', + 'roses', + 'roset', + 'roshi', + 'rosin', + 'rosit', + 'rosti', + 'rosts', + 'rotal', + 'rotan', + 'rotas', + 'rotch', + 'roted', + 'rotes', + 'rotis', + 'rotls', + 'roton', + 'rotos', + 'rotte', + 'rouen', + 'roues', + 'roule', + 'rouls', + 'roums', + 'roups', + 'roupy', + 'roust', + 'routh', + 'routs', + 'roved', + 'roven', + 'roves', + 'rowan', + 'rowed', + 'rowel', + 'rowen', + 'rowie', + 'rowme', + 'rownd', + 'rowth', + 'rowts', + 'royne', + 'royst', + 'rozet', + 'rozit', + 'ruana', + 'rubai', + 'rubby', + 'rubel', + 'rubes', + 'rubin', + 'ruble', + 'rubli', + 'rubus', + 'ruche', + 'rucks', + 'rudas', + 'rudds', + 'rudes', + 'rudie', + 'rudis', + 'rueda', + 'ruers', + 'ruffe', + 'ruffs', + 'rugae', + 'rugal', + 'ruggy', + 'ruing', + 'ruins', + 'rukhs', + 'ruled', + 'rules', + 'rumal', + 'rumbo', + 'rumen', + 'rumes', + 'rumly', + 'rummy', + 'rumpo', + 'rumps', + 'rumpy', + 'runch', + 'runds', + 'runed', + 'runes', + 'rungs', + 'runic', + 'runny', + 'runts', + 'runty', + 'rupia', + 'rurps', + 'rurus', + 'rusas', + 'ruses', + 'rushy', + 'rusks', + 'rusma', + 'russe', + 'rusts', + 'ruths', + 'rutin', + 'rutty', + 'ryals', + 'rybat', + 'ryked', + 'rykes', + 'rymme', + 'rynds', + 'ryots', + 'ryper', + 'saags', + 'sabal', + 'sabed', + 'saber', + 'sabes', + 'sabha', + 'sabin', + 'sabir', + 'sable', + 'sabot', + 'sabra', + 'sabre', + 'sacks', + 'sacra', + 'saddo', + 'sades', + 'sadhe', + 'sadhu', + 'sadis', + 'sados', + 'sadza', + 'safed', + 'safes', + 'sagas', + 'sager', + 'sages', + 'saggy', + 'sagos', + 'sagum', + 'saheb', + 'sahib', + 'saice', + 'saick', + 'saics', + 'saids', + 'saiga', + 'sails', + 'saims', + 'saine', + 'sains', + 'sairs', + 'saist', + 'saith', + 'sajou', + 'sakai', + 'saker', + 'sakes', + 'sakia', + 'sakis', + 'sakti', + 'salal', + 'salat', + 'salep', + 'sales', + 'salet', + 'salic', + 'salix', + 'salle', + 'salmi', + 'salol', + 'salop', + 'salpa', + 'salps', + 'salse', + 'salto', + 'salts', + 'salue', + 'salut', + 'saman', + 'samas', + 'samba', + 'sambo', + 'samek', + 'samel', + 'samen', + 'sames', + 'samey', + 'samfu', + 'sammy', + 'sampi', + 'samps', + 'sands', + 'saned', + 'sanes', + 'sanga', + 'sangh', + 'sango', + 'sangs', + 'sanko', + 'sansa', + 'santo', + 'sants', + 'saola', + 'sapan', + 'sapid', + 'sapor', + 'saran', + 'sards', + 'sared', + 'saree', + 'sarge', + 'sargo', + 'sarin', + 'saris', + 'sarks', + 'sarky', + 'sarod', + 'saros', + 'sarus', + 'saser', + 'sasin', + 'sasse', + 'satai', + 'satay', + 'sated', + 'satem', + 'sates', + 'satis', + 'sauba', + 'sauch', + 'saugh', + 'sauls', + 'sault', + 'saunt', + 'saury', + 'sauts', + 'saved', + 'saver', + 'saves', + 'savey', + 'savin', + 'sawah', + 'sawed', + 'sawer', + 'saxes', + 'sayed', + 'sayer', + 'sayid', + 'sayne', + 'sayon', + 'sayst', + 'sazes', + 'scabs', + 'scads', + 'scaff', + 'scags', + 'scail', + 'scala', + 'scall', + 'scams', + 'scand', + 'scans', + 'scapa', + 'scape', + 'scapi', + 'scarp', + 'scars', + 'scart', + 'scath', + 'scats', + 'scatt', + 'scaud', + 'scaup', + 'scaur', + 'scaws', + 'sceat', + 'scena', + 'scend', + 'schav', + 'schmo', + 'schul', + 'schwa', + 'sclim', + 'scody', + 'scogs', + 'scoog', + 'scoot', + 'scopa', + 'scops', + 'scots', + 'scoug', + 'scoup', + 'scowp', + 'scows', + 'scrab', + 'scrae', + 'scrag', + 'scran', + 'scrat', + 'scraw', + 'scray', + 'scrim', + 'scrip', + 'scrob', + 'scrod', + 'scrog', + 'scrow', + 'scudi', + 'scudo', + 'scuds', + 'scuff', + 'scuft', + 'scugs', + 'sculk', + 'scull', + 'sculp', + 'sculs', + 'scums', + 'scups', + 'scurf', + 'scurs', + 'scuse', + 'scuta', + 'scute', + 'scuts', + 'scuzz', + 'scyes', + 'sdayn', + 'sdein', + 'seals', + 'seame', + 'seams', + 'seamy', + 'seans', + 'seare', + 'sears', + 'sease', + 'seats', + 'seaze', + 'sebum', + 'secco', + 'sechs', + 'sects', + 'seder', + 'sedes', + 'sedge', + 'sedgy', + 'sedum', + 'seeds', + 'seeks', + 'seeld', + 'seels', + 'seely', + 'seems', + 'seeps', + 'seepy', + 'seers', + 'sefer', + 'segar', + 'segni', + 'segno', + 'segol', + 'segos', + 'sehri', + 'seifs', + 'seils', + 'seine', + 'seirs', + 'seise', + 'seism', + 'seity', + 'seiza', + 'sekos', + 'sekts', + 'selah', + 'seles', + 'selfs', + 'sella', + 'selle', + 'sells', + 'selva', + 'semee', + 'semes', + 'semie', + 'semis', + 'senas', + 'sends', + 'senes', + 'sengi', + 'senna', + 'senor', + 'sensa', + 'sensi', + 'sente', + 'senti', + 'sents', + 'senvy', + 'senza', + 'sepad', + 'sepal', + 'sepic', + 'sepoy', + 'septa', + 'septs', + 'serac', + 'serai', + 'seral', + 'sered', + 'serer', + 'seres', + 'serfs', + 'serge', + 'seric', + 'serin', + 'serks', + 'seron', + 'serow', + 'serra', + 'serre', + 'serrs', + 'serry', + 'servo', + 'sesey', + 'sessa', + 'setae', + 'setal', + 'seton', + 'setts', + 'sewan', + 'sewar', + 'sewed', + 'sewel', + 'sewen', + 'sewin', + 'sexed', + 'sexer', + 'sexes', + 'sexto', + 'sexts', + 'seyen', + 'shads', + 'shags', + 'shahs', + 'shako', + 'shakt', + 'shalm', + 'shaly', + 'shama', + 'shams', + 'shand', + 'shans', + 'shaps', + 'sharn', + 'shash', + 'shaul', + 'shawm', + 'shawn', + 'shaws', + 'shaya', + 'shays', + 'shchi', + 'sheaf', + 'sheal', + 'sheas', + 'sheds', + 'sheel', + 'shend', + 'shent', + 'sheol', + 'sherd', + 'shere', + 'shero', + 'shets', + 'sheva', + 'shewn', + 'shews', + 'shiai', + 'shiel', + 'shier', + 'shies', + 'shill', + 'shily', + 'shims', + 'shins', + 'ships', + 'shirr', + 'shirs', + 'shish', + 'shiso', + 'shist', + 'shite', + 'shits', + 'shiur', + 'shiva', + 'shive', + 'shivs', + 'shlep', + 'shlub', + 'shmek', + 'shmoe', + 'shoat', + 'shoed', + 'shoer', + 'shoes', + 'shogi', + 'shogs', + 'shoji', + 'shojo', + 'shola', + 'shool', + 'shoon', + 'shoos', + 'shope', + 'shops', + 'shorl', + 'shote', + 'shots', + 'shott', + 'showd', + 'shows', + 'shoyu', + 'shred', + 'shris', + 'shrow', + 'shtik', + 'shtum', + 'shtup', + 'shule', + 'shuln', + 'shuls', + 'shuns', + 'shura', + 'shute', + 'shuts', + 'shwas', + 'shyer', + 'sials', + 'sibbs', + 'sibyl', + 'sices', + 'sicht', + 'sicko', + 'sicks', + 'sicky', + 'sidas', + 'sided', + 'sider', + 'sides', + 'sidha', + 'sidhe', + 'sidle', + 'sield', + 'siens', + 'sient', + 'sieth', + 'sieur', + 'sifts', + 'sighs', + 'sigil', + 'sigla', + 'signa', + 'signs', + 'sijos', + 'sikas', + 'siker', + 'sikes', + 'silds', + 'siled', + 'silen', + 'siler', + 'siles', + 'silex', + 'silks', + 'sills', + 'silos', + 'silts', + 'silty', + 'silva', + 'simar', + 'simas', + 'simba', + 'simis', + 'simps', + 'simul', + 'sinds', + 'sined', + 'sines', + 'sings', + 'sinhs', + 'sinks', + 'sinky', + 'sinus', + 'siped', + 'sipes', + 'sippy', + 'sired', + 'siree', + 'sires', + 'sirih', + 'siris', + 'siroc', + 'sirra', + 'sirup', + 'sisal', + 'sises', + 'sista', + 'sists', + 'sitar', + 'sited', + 'sites', + 'sithe', + 'sitka', + 'situp', + 'situs', + 'siver', + 'sixer', + 'sixes', + 'sixmo', + 'sixte', + 'sizar', + 'sized', + 'sizel', + 'sizer', + 'sizes', + 'skags', + 'skail', + 'skald', + 'skank', + 'skart', + 'skats', + 'skatt', + 'skaws', + 'skean', + 'skear', + 'skeds', + 'skeed', + 'skeef', + 'skeen', + 'skeer', + 'skees', + 'skeet', + 'skegg', + 'skegs', + 'skein', + 'skelf', + 'skell', + 'skelm', + 'skelp', + 'skene', + 'skens', + 'skeos', + 'skeps', + 'skers', + 'skets', + 'skews', + 'skids', + 'skied', + 'skies', + 'skiey', + 'skimo', + 'skims', + 'skink', + 'skins', + 'skint', + 'skios', + 'skips', + 'skirl', + 'skirr', + 'skite', + 'skits', + 'skive', + 'skivy', + 'sklim', + 'skoal', + 'skody', + 'skoff', + 'skogs', + 'skols', + 'skool', + 'skort', + 'skosh', + 'skran', + 'skrik', + 'skuas', + 'skugs', + 'skyed', + 'skyer', + 'skyey', + 'skyfs', + 'skyre', + 'skyrs', + 'skyte', + 'slabs', + 'slade', + 'slaes', + 'slags', + 'slaid', + 'slake', + 'slams', + 'slane', + 'slank', + 'slaps', + 'slart', + 'slats', + 'slaty', + 'slaws', + 'slays', + 'slebs', + 'sleds', + 'sleer', + 'slews', + 'sleys', + 'slier', + 'slily', + 'slims', + 'slipe', + 'slips', + 'slipt', + 'slish', + 'slits', + 'slive', + 'sloan', + 'slobs', + 'sloes', + 'slogs', + 'sloid', + 'slojd', + 'slomo', + 'sloom', + 'sloot', + 'slops', + 'slopy', + 'slorm', + 'slots', + 'slove', + 'slows', + 'sloyd', + 'slubb', + 'slubs', + 'slued', + 'slues', + 'sluff', + 'slugs', + 'sluit', + 'slums', + 'slurb', + 'slurs', + 'sluse', + 'sluts', + 'slyer', + 'slype', + 'smaak', + 'smaik', + 'smalm', + 'smalt', + 'smarm', + 'smaze', + 'smeek', + 'smees', + 'smeik', + 'smeke', + 'smerk', + 'smews', + 'smirr', + 'smirs', + 'smits', + 'smogs', + 'smoko', + 'smolt', + 'smoor', + 'smoot', + 'smore', + 'smorg', + 'smout', + 'smowt', + 'smugs', + 'smurs', + 'smush', + 'smuts', + 'snabs', + 'snafu', + 'snags', + 'snaps', + 'snarf', + 'snark', + 'snars', + 'snary', + 'snash', + 'snath', + 'snaws', + 'snead', + 'sneap', + 'snebs', + 'sneck', + 'sneds', + 'sneed', + 'snees', + 'snell', + 'snibs', + 'snick', + 'snies', + 'snift', + 'snigs', + 'snips', + 'snipy', + 'snirt', + 'snits', + 'snobs', + 'snods', + 'snoek', + 'snoep', + 'snogs', + 'snoke', + 'snood', + 'snook', + 'snool', + 'snoot', + 'snots', + 'snowk', + 'snows', + 'snubs', + 'snugs', + 'snush', + 'snyes', + 'soaks', + 'soaps', + 'soare', + 'soars', + 'soave', + 'sobas', + 'socas', + 'soces', + 'socko', + 'socks', + 'socle', + 'sodas', + 'soddy', + 'sodic', + 'sodom', + 'sofar', + 'sofas', + 'softa', + 'softs', + 'softy', + 'soger', + 'sohur', + 'soils', + 'soily', + 'sojas', + 'sojus', + 'sokah', + 'soken', + 'sokes', + 'sokol', + 'solah', + 'solan', + 'solas', + 'solde', + 'soldi', + 'soldo', + 'solds', + 'soled', + 'solei', + 'soler', + 'soles', + 'solon', + 'solos', + 'solum', + 'solus', + 'soman', + 'somas', + 'sonce', + 'sonde', + 'sones', + 'songs', + 'sonly', + 'sonne', + 'sonny', + 'sonse', + 'sonsy', + 'sooey', + 'sooks', + 'sooky', + 'soole', + 'sools', + 'sooms', + 'soops', + 'soote', + 'soots', + 'sophs', + 'sophy', + 'sopor', + 'soppy', + 'sopra', + 'soral', + 'soras', + 'sorbo', + 'sorbs', + 'sorda', + 'sordo', + 'sords', + 'sored', + 'soree', + 'sorel', + 'sorer', + 'sores', + 'sorex', + 'sorgo', + 'sorns', + 'sorra', + 'sorta', + 'sorts', + 'sorus', + 'soths', + 'sotol', + 'souce', + 'souct', + 'sough', + 'souks', + 'souls', + 'soums', + 'soups', + 'soupy', + 'sours', + 'souse', + 'souts', + 'sowar', + 'sowce', + 'sowed', + 'sowff', + 'sowfs', + 'sowle', + 'sowls', + 'sowms', + 'sownd', + 'sowne', + 'sowps', + 'sowse', + 'sowth', + 'soyas', + 'soyle', + 'soyuz', + 'sozin', + 'spacy', + 'spado', + 'spaed', + 'spaer', + 'spaes', + 'spags', + 'spahi', + 'spail', + 'spain', + 'spait', + 'spake', + 'spald', + 'spale', + 'spall', + 'spalt', + 'spams', + 'spane', + 'spang', + 'spans', + 'spard', + 'spars', + 'spart', + 'spate', + 'spats', + 'spaul', + 'spawl', + 'spaws', + 'spayd', + 'spays', + 'spaza', + 'spazz', + 'speal', + 'spean', + 'speat', + 'specs', + 'spect', + 'speel', + 'speer', + 'speil', + 'speir', + 'speks', + 'speld', + 'spelk', + 'speos', + 'spets', + 'speug', + 'spews', + 'spewy', + 'spial', + 'spica', + 'spick', + 'spics', + 'spide', + 'spier', + 'spies', + 'spiff', + 'spifs', + 'spiks', + 'spile', + 'spims', + 'spina', + 'spink', + 'spins', + 'spirt', + 'spiry', + 'spits', + 'spitz', + 'spivs', + 'splay', + 'splog', + 'spode', + 'spods', + 'spoom', + 'spoor', + 'spoot', + 'spork', + 'sposh', + 'spots', + 'sprad', + 'sprag', + 'sprat', + 'spred', + 'sprew', + 'sprit', + 'sprod', + 'sprog', + 'sprue', + 'sprug', + 'spuds', + 'spued', + 'spuer', + 'spues', + 'spugs', + 'spule', + 'spume', + 'spumy', + 'spurs', + 'sputa', + 'spyal', + 'spyre', + 'squab', + 'squaw', + 'squeg', + 'squid', + 'squit', + 'squiz', + 'stabs', + 'stade', + 'stags', + 'stagy', + 'staig', + 'stane', + 'stang', + 'staph', + 'staps', + 'starn', + 'starr', + 'stars', + 'stats', + 'staun', + 'staws', + 'stays', + 'stean', + 'stear', + 'stedd', + 'stede', + 'steds', + 'steek', + 'steem', + 'steen', + 'steil', + 'stela', + 'stele', + 'stell', + 'steme', + 'stems', + 'stend', + 'steno', + 'stens', + 'stent', + 'steps', + 'stept', + 'stere', + 'stets', + 'stews', + 'stewy', + 'steys', + 'stich', + 'stied', + 'sties', + 'stilb', + 'stile', + 'stime', + 'stims', + 'stimy', + 'stipa', + 'stipe', + 'stire', + 'stirk', + 'stirp', + 'stirs', + 'stive', + 'stivy', + 'stoae', + 'stoai', + 'stoas', + 'stoat', + 'stobs', + 'stoep', + 'stogy', + 'stoit', + 'stoln', + 'stoma', + 'stond', + 'stong', + 'stonk', + 'stonn', + 'stook', + 'stoor', + 'stope', + 'stops', + 'stopt', + 'stoss', + 'stots', + 'stott', + 'stoun', + 'stoup', + 'stour', + 'stown', + 'stowp', + 'stows', + 'strad', + 'strae', + 'strag', + 'strak', + 'strep', + 'strew', + 'stria', + 'strig', + 'strim', + 'strop', + 'strow', + 'stroy', + 'strum', + 'stubs', + 'stude', + 'studs', + 'stull', + 'stulm', + 'stumm', + 'stums', + 'stuns', + 'stupa', + 'stupe', + 'sture', + 'sturt', + 'styed', + 'styes', + 'styli', + 'stylo', + 'styme', + 'stymy', + 'styre', + 'styte', + 'subah', + 'subas', + 'subby', + 'suber', + 'subha', + 'succi', + 'sucks', + 'sucky', + 'sucre', + 'sudds', + 'sudor', + 'sudsy', + 'suede', + 'suent', + 'suers', + 'suete', + 'suets', + 'suety', + 'sugan', + 'sughs', + 'sugos', + 'suhur', + 'suids', + 'suint', + 'suits', + 'sujee', + 'sukhs', + 'sukuk', + 'sulci', + 'sulfa', + 'sulfo', + 'sulks', + 'sulph', + 'sulus', + 'sumis', + 'summa', + 'sumos', + 'sumph', + 'sumps', + 'sunis', + 'sunks', + 'sunna', + 'sunns', + 'sunup', + 'supes', + 'supra', + 'surah', + 'sural', + 'suras', + 'surat', + 'surds', + 'sured', + 'sures', + 'surfs', + 'surfy', + 'surgy', + 'surra', + 'sused', + 'suses', + 'susus', + 'sutor', + 'sutra', + 'sutta', + 'swabs', + 'swack', + 'swads', + 'swage', + 'swags', + 'swail', + 'swain', + 'swale', + 'swaly', + 'swamy', + 'swang', + 'swank', + 'swans', + 'swaps', + 'swapt', + 'sward', + 'sware', + 'swarf', + 'swart', + 'swats', + 'swayl', + 'sways', + 'sweal', + 'swede', + 'sweed', + 'sweel', + 'sweer', + 'swees', + 'sweir', + 'swelt', + 'swerf', + 'sweys', + 'swies', + 'swigs', + 'swile', + 'swims', + 'swink', + 'swipe', + 'swire', + 'swiss', + 'swith', + 'swits', + 'swive', + 'swizz', + 'swobs', + 'swole', + 'swoln', + 'swops', + 'swopt', + 'swots', + 'swoun', + 'sybbe', + 'sybil', + 'syboe', + 'sybow', + 'sycee', + 'syces', + 'sycon', + 'syens', + 'syker', + 'sykes', + 'sylis', + 'sylph', + 'sylva', + 'symar', + 'synch', + 'syncs', + 'synds', + 'syned', + 'synes', + 'synth', + 'syped', + 'sypes', + 'syphs', + 'syrah', + 'syren', + 'sysop', + 'sythe', + 'syver', + 'taals', + 'taata', + 'taber', + 'tabes', + 'tabid', + 'tabis', + 'tabla', + 'tabor', + 'tabun', + 'tabus', + 'tacan', + 'taces', + 'tacet', + 'tache', + 'tacho', + 'tachs', + 'tacks', + 'tacos', + 'tacts', + 'taels', + 'tafia', + 'taggy', + 'tagma', + 'tahas', + 'tahrs', + 'taiga', + 'taigs', + 'taiko', + 'tails', + 'tains', + 'taira', + 'taish', + 'taits', + 'tajes', + 'takas', + 'takes', + 'takhi', + 'takin', + 'takis', + 'takky', + 'talak', + 'talaq', + 'talar', + 'talas', + 'talcs', + 'talcy', + 'talea', + 'taler', + 'tales', + 'talks', + 'talky', + 'talls', + 'talma', + 'talpa', + 'taluk', + 'talus', + 'tamal', + 'tamed', + 'tames', + 'tamin', + 'tamis', + 'tammy', + 'tamps', + 'tanas', + 'tanga', + 'tangi', + 'tangs', + 'tanhs', + 'tanka', + 'tanks', + 'tanky', + 'tanna', + 'tansy', + 'tanti', + 'tanto', + 'tanty', + 'tapas', + 'taped', + 'tapen', + 'tapes', + 'tapet', + 'tapis', + 'tappa', + 'tapus', + 'taras', + 'tardo', + 'tared', + 'tares', + 'targa', + 'targe', + 'tarns', + 'taroc', + 'tarok', + 'taros', + 'tarps', + 'tarre', + 'tarry', + 'tarsi', + 'tarts', + 'tarty', + 'tasar', + 'tased', + 'taser', + 'tases', + 'tasks', + 'tassa', + 'tasse', + 'tasso', + 'tatar', + 'tater', + 'tates', + 'taths', + 'tatie', + 'tatou', + 'tatts', + 'tatus', + 'taube', + 'tauld', + 'tauon', + 'taupe', + 'tauts', + 'tavah', + 'tavas', + 'taver', + 'tawai', + 'tawas', + 'tawed', + 'tawer', + 'tawie', + 'tawse', + 'tawts', + 'taxed', + 'taxer', + 'taxes', + 'taxis', + 'taxol', + 'taxon', + 'taxor', + 'taxus', + 'tayra', + 'tazza', + 'tazze', + 'teade', + 'teads', + 'teaed', + 'teaks', + 'teals', + 'teams', + 'tears', + 'teats', + 'teaze', + 'techs', + 'techy', + 'tecta', + 'teels', + 'teems', + 'teend', + 'teene', + 'teens', + 'teeny', + 'teers', + 'teffs', + 'teggs', + 'tegua', + 'tegus', + 'tehrs', + 'teiid', + 'teils', + 'teind', + 'teins', + 'telae', + 'telco', + 'teles', + 'telex', + 'telia', + 'telic', + 'tells', + 'telly', + 'teloi', + 'telos', + 'temed', + 'temes', + 'tempi', + 'temps', + 'tempt', + 'temse', + 'tench', + 'tends', + 'tendu', + 'tenes', + 'tenge', + 'tenia', + 'tenne', + 'tenno', + 'tenny', + 'tenon', + 'tents', + 'tenty', + 'tenue', + 'tepal', + 'tepas', + 'tepoy', + 'terai', + 'teras', + 'terce', + 'terek', + 'teres', + 'terfe', + 'terfs', + 'terga', + 'terms', + 'terne', + 'terns', + 'terry', + 'terts', + 'tesla', + 'testa', + 'teste', + 'tests', + 'tetes', + 'teths', + 'tetra', + 'tetri', + 'teuch', + 'teugh', + 'tewed', + 'tewel', + 'tewit', + 'texas', + 'texes', + 'texts', + 'thack', + 'thagi', + 'thaim', + 'thale', + 'thali', + 'thana', + 'thane', + 'thang', + 'thans', + 'thanx', + 'tharm', + 'thars', + 'thaws', + 'thawy', + 'thebe', + 'theca', + 'theed', + 'theek', + 'thees', + 'thegn', + 'theic', + 'thein', + 'thelf', + 'thema', + 'thens', + 'theow', + 'therm', + 'thesp', + 'thete', + 'thews', + 'thewy', + 'thigs', + 'thilk', + 'thill', + 'thine', + 'thins', + 'thiol', + 'thirl', + 'thoft', + 'thole', + 'tholi', + 'thoro', + 'thorp', + 'thous', + 'thowl', + 'thrae', + 'thraw', + 'thrid', + 'thrip', + 'throe', + 'thuds', + 'thugs', + 'thuja', + 'thunk', + 'thurl', + 'thuya', + 'thymi', + 'thymy', + 'tians', + 'tiars', + 'tical', + 'ticca', + 'ticed', + 'tices', + 'tichy', + 'ticks', + 'ticky', + 'tiddy', + 'tided', + 'tides', + 'tiers', + 'tiffs', + 'tifos', + 'tifts', + 'tiges', + 'tigon', + 'tikas', + 'tikes', + 'tikis', + 'tikka', + 'tilak', + 'tiled', + 'tiler', + 'tiles', + 'tills', + 'tilly', + 'tilth', + 'tilts', + 'timbo', + 'timed', + 'times', + 'timon', + 'timps', + 'tinas', + 'tinct', + 'tinds', + 'tinea', + 'tined', + 'tines', + 'tinge', + 'tings', + 'tinks', + 'tinny', + 'tints', + 'tinty', + 'tipis', + 'tippy', + 'tired', + 'tires', + 'tirls', + 'tiros', + 'tirrs', + 'titch', + 'titer', + 'titis', + 'titre', + 'titty', + 'titup', + 'tiyin', + 'tiyns', + 'tizes', + 'tizzy', + 'toads', + 'toady', + 'toaze', + 'tocks', + 'tocky', + 'tocos', + 'todde', + 'toeas', + 'toffs', + 'toffy', + 'tofts', + 'tofus', + 'togae', + 'togas', + 'toged', + 'toges', + 'togue', + 'tohos', + 'toile', + 'toils', + 'toing', + 'toise', + 'toits', + 'tokay', + 'toked', + 'toker', + 'tokes', + 'tokos', + 'tolan', + 'tolar', + 'tolas', + 'toled', + 'toles', + 'tolls', + 'tolly', + 'tolts', + 'tolus', + 'tolyl', + 'toman', + 'tombs', + 'tomes', + 'tomia', + 'tommy', + 'tomos', + 'tondi', + 'tondo', + 'toned', + 'toner', + 'tones', + 'toney', + 'tongs', + 'tonka', + 'tonks', + 'tonne', + 'tonus', + 'tools', + 'tooms', + 'toons', + 'toots', + 'toped', + 'topee', + 'topek', + 'toper', + 'topes', + 'tophe', + 'tophi', + 'tophs', + 'topis', + 'topoi', + 'topos', + 'toppy', + 'toque', + 'torah', + 'toran', + 'toras', + 'torcs', + 'tores', + 'toric', + 'torii', + 'toros', + 'torot', + 'torrs', + 'torse', + 'torsi', + 'torsk', + 'torta', + 'torte', + 'torts', + 'tosas', + 'tosed', + 'toses', + 'toshy', + 'tossy', + 'toted', + 'toter', + 'totes', + 'totty', + 'touks', + 'touns', + 'tours', + 'touse', + 'tousy', + 'touts', + 'touze', + 'touzy', + 'towed', + 'towie', + 'towns', + 'towny', + 'towse', + 'towsy', + 'towts', + 'towze', + 'towzy', + 'toyed', + 'toyer', + 'toyon', + 'toyos', + 'tozed', + 'tozes', + 'tozie', + 'trabs', + 'trads', + 'tragi', + 'traik', + 'trams', + 'trank', + 'tranq', + 'trans', + 'trant', + 'trape', + 'traps', + 'trapt', + 'trass', + 'trats', + 'tratt', + 'trave', + 'trayf', + 'trays', + 'treck', + 'treed', + 'treen', + 'trees', + 'trefa', + 'treif', + 'treks', + 'trema', + 'trems', + 'tress', + 'trest', + 'trets', + 'trews', + 'treyf', + 'treys', + 'triac', + 'tride', + 'trier', + 'tries', + 'triff', + 'trigo', + 'trigs', + 'trike', + 'trild', + 'trill', + 'trims', + 'trine', + 'trins', + 'triol', + 'trior', + 'trios', + 'trips', + 'tripy', + 'trist', + 'troad', + 'troak', + 'troat', + 'trock', + 'trode', + 'trods', + 'trogs', + 'trois', + 'troke', + 'tromp', + 'trona', + 'tronc', + 'trone', + 'tronk', + 'trons', + 'trooz', + 'troth', + 'trots', + 'trows', + 'troys', + 'trued', + 'trues', + 'trugo', + 'trugs', + 'trull', + 'tryer', + 'tryke', + 'tryma', + 'tryps', + 'tsade', + 'tsadi', + 'tsars', + 'tsked', + 'tsuba', + 'tsubo', + 'tuans', + 'tuart', + 'tuath', + 'tubae', + 'tubar', + 'tubas', + 'tubby', + 'tubed', + 'tubes', + 'tucks', + 'tufas', + 'tuffe', + 'tuffs', + 'tufts', + 'tufty', + 'tugra', + 'tuile', + 'tuina', + 'tuism', + 'tuktu', + 'tules', + 'tulpa', + 'tulsi', + 'tumid', + 'tummy', + 'tumps', + 'tumpy', + 'tunas', + 'tunds', + 'tuned', + 'tuner', + 'tunes', + 'tungs', + 'tunny', + 'tupek', + 'tupik', + 'tuple', + 'tuque', + 'turds', + 'turfs', + 'turfy', + 'turks', + 'turme', + 'turms', + 'turns', + 'turnt', + 'turps', + 'turrs', + 'tushy', + 'tusks', + 'tusky', + 'tutee', + 'tutti', + 'tutty', + 'tutus', + 'tuxes', + 'tuyer', + 'twaes', + 'twain', + 'twals', + 'twank', + 'twats', + 'tways', + 'tweel', + 'tween', + 'tweep', + 'tweer', + 'twerk', + 'twerp', + 'twier', + 'twigs', + 'twill', + 'twilt', + 'twink', + 'twins', + 'twiny', + 'twire', + 'twirp', + 'twite', + 'twits', + 'twoer', + 'twyer', + 'tyees', + 'tyers', + 'tyiyn', + 'tykes', + 'tyler', + 'tymps', + 'tynde', + 'tyned', + 'tynes', + 'typal', + 'typed', + 'types', + 'typey', + 'typic', + 'typos', + 'typps', + 'typto', + 'tyran', + 'tyred', + 'tyres', + 'tyros', + 'tythe', + 'tzars', + 'udals', + 'udons', + 'ugali', + 'ugged', + 'uhlan', + 'uhuru', + 'ukase', + 'ulama', + 'ulans', + 'ulema', + 'ulmin', + 'ulnad', + 'ulnae', + 'ulnar', + 'ulnas', + 'ulpan', + 'ulvas', + 'ulyie', + 'ulzie', + 'umami', + 'umbel', + 'umber', + 'umble', + 'umbos', + 'umbre', + 'umiac', + 'umiak', + 'umiaq', + 'ummah', + 'ummas', + 'ummed', + 'umped', + 'umphs', + 'umpie', + 'umpty', + 'umrah', + 'umras', + 'unais', + 'unapt', + 'unarm', + 'unary', + 'unaus', + 'unbag', + 'unban', + 'unbar', + 'unbed', + 'unbid', + 'unbox', + 'uncap', + 'unces', + 'uncia', + 'uncos', + 'uncoy', + 'uncus', + 'undam', + 'undee', + 'undos', + 'undug', + 'uneth', + 'unfix', + 'ungag', + 'unget', + 'ungod', + 'ungot', + 'ungum', + 'unhat', + 'unhip', + 'unica', + 'units', + 'unjam', + 'unked', + 'unket', + 'unkid', + 'unlaw', + 'unlay', + 'unled', + 'unlet', + 'unlid', + 'unman', + 'unmew', + 'unmix', + 'unpay', + 'unpeg', + 'unpen', + 'unpin', + 'unred', + 'unrid', + 'unrig', + 'unrip', + 'unsaw', + 'unsay', + 'unsee', + 'unsew', + 'unsex', + 'unsod', + 'untax', + 'untin', + 'unwet', + 'unwit', + 'unwon', + 'upbow', + 'upbye', + 'updos', + 'updry', + 'upend', + 'upjet', + 'uplay', + 'upled', + 'uplit', + 'upped', + 'upran', + 'uprun', + 'upsee', + 'upsey', + 'uptak', + 'upter', + 'uptie', + 'uraei', + 'urali', + 'uraos', + 'urare', + 'urari', + 'urase', + 'urate', + 'urbex', + 'urbia', + 'urdee', + 'ureal', + 'ureas', + 'uredo', + 'ureic', + 'urena', + 'urent', + 'urged', + 'urger', + 'urges', + 'urial', + 'urite', + 'urman', + 'urnal', + 'urned', + 'urped', + 'ursae', + 'ursid', + 'urson', + 'urubu', + 'urvas', + 'users', + 'usnea', + 'usque', + 'usure', + 'usury', + 'uteri', + 'uveal', + 'uveas', + 'uvula', + 'vacua', + 'vaded', + 'vades', + 'vagal', + 'vagus', + 'vails', + 'vaire', + 'vairs', + 'vairy', + 'vakas', + 'vakil', + 'vales', + 'valis', + 'valse', + 'vamps', + 'vampy', + 'vanda', + 'vaned', + 'vanes', + 'vangs', + 'vants', + 'vaped', + 'vaper', + 'vapes', + 'varan', + 'varas', + 'vardy', + 'varec', + 'vares', + 'varia', + 'varix', + 'varna', + 'varus', + 'varve', + 'vasal', + 'vases', + 'vasts', + 'vasty', + 'vatic', + 'vatus', + 'vauch', + 'vaute', + 'vauts', + 'vawte', + 'vaxes', + 'veale', + 'veals', + 'vealy', + 'veena', + 'veeps', + 'veers', + 'veery', + 'vegas', + 'veges', + 'vegie', + 'vegos', + 'vehme', + 'veils', + 'veily', + 'veins', + 'veiny', + 'velar', + 'velds', + 'veldt', + 'veles', + 'vells', + 'velum', + 'venae', + 'venal', + 'vends', + 'vendu', + 'veney', + 'venge', + 'venin', + 'vents', + 'venus', + 'verbs', + 'verra', + 'verry', + 'verst', + 'verts', + 'vertu', + 'vespa', + 'vesta', + 'vests', + 'vetch', + 'vexed', + 'vexer', + 'vexes', + 'vexil', + 'vezir', + 'vials', + 'viand', + 'vibes', + 'vibex', + 'vibey', + 'viced', + 'vices', + 'vichy', + 'viers', + 'views', + 'viewy', + 'vifda', + 'viffs', + 'vigas', + 'vigia', + 'vilde', + 'viler', + 'villi', + 'vills', + 'vimen', + 'vinal', + 'vinas', + 'vinca', + 'vined', + 'viner', + 'vines', + 'vinew', + 'vinic', + 'vinos', + 'vints', + 'viold', + 'viols', + 'vired', + 'vireo', + 'vires', + 'virga', + 'virge', + 'virid', + 'virls', + 'virtu', + 'visas', + 'vised', + 'vises', + 'visie', + 'visne', + 'vison', + 'visto', + 'vitae', + 'vitas', + 'vitex', + 'vitro', + 'vitta', + 'vivas', + 'vivat', + 'vivda', + 'viver', + 'vives', + 'vizir', + 'vizor', + 'vleis', + 'vlies', + 'vlogs', + 'voars', + 'vocab', + 'voces', + 'voddy', + 'vodou', + 'vodun', + 'voema', + 'vogie', + 'voids', + 'voile', + 'voips', + 'volae', + 'volar', + 'voled', + 'voles', + 'volet', + 'volks', + 'volta', + 'volte', + 'volti', + 'volts', + 'volva', + 'volve', + 'vomer', + 'voted', + 'votes', + 'vouge', + 'voulu', + 'vowed', + 'vower', + 'voxel', + 'vozhd', + 'vraic', + 'vrils', + 'vroom', + 'vrous', + 'vrouw', + 'vrows', + 'vuggs', + 'vuggy', + 'vughs', + 'vughy', + 'vulgo', + 'vulns', + 'vulva', + 'vutty', + 'waacs', + 'wacke', + 'wacko', + 'wacks', + 'wadds', + 'waddy', + 'waded', + 'wader', + 'wades', + 'wadge', + 'wadis', + 'wadts', + 'waffs', + 'wafts', + 'waged', + 'wages', + 'wagga', + 'wagyu', + 'wahoo', + 'waide', + 'waifs', + 'waift', + 'wails', + 'wains', + 'wairs', + 'waite', + 'waits', + 'wakas', + 'waked', + 'waken', + 'waker', + 'wakes', + 'wakfs', + 'waldo', + 'walds', + 'waled', + 'waler', + 'wales', + 'walie', + 'walis', + 'walks', + 'walla', + 'walls', + 'wally', + 'walty', + 'wamed', + 'wames', + 'wamus', + 'wands', + 'waned', + 'wanes', + 'waney', + 'wangs', + 'wanks', + 'wanky', + 'wanle', + 'wanly', + 'wanna', + 'wants', + 'wanty', + 'wanze', + 'waqfs', + 'warbs', + 'warby', + 'wards', + 'wared', + 'wares', + 'warez', + 'warks', + 'warms', + 'warns', + 'warps', + 'warre', + 'warst', + 'warts', + 'wases', + 'washy', + 'wasms', + 'wasps', + 'waspy', + 'wasts', + 'watap', + 'watts', + 'wauff', + 'waugh', + 'wauks', + 'waulk', + 'wauls', + 'waurs', + 'waved', + 'waves', + 'wavey', + 'wawas', + 'wawes', + 'wawls', + 'waxed', + 'waxer', + 'waxes', + 'wayed', + 'wazir', + 'wazoo', + 'weald', + 'weals', + 'weamb', + 'weans', + 'wears', + 'webby', + 'weber', + 'wecht', + 'wedel', + 'wedgy', + 'weeds', + 'weeke', + 'weeks', + 'weels', + 'weems', + 'weens', + 'weeny', + 'weeps', + 'weepy', + 'weest', + 'weete', + 'weets', + 'wefte', + 'wefts', + 'weids', + 'weils', + 'weirs', + 'weise', + 'weize', + 'wekas', + 'welds', + 'welke', + 'welks', + 'welkt', + 'wells', + 'welly', + 'welts', + 'wembs', + 'wends', + 'wenge', + 'wenny', + 'wents', + 'weros', + 'wersh', + 'wests', + 'wetas', + 'wetly', + 'wexed', + 'wexes', + 'whamo', + 'whams', + 'whang', + 'whaps', + 'whare', + 'whata', + 'whats', + 'whaup', + 'whaur', + 'wheal', + 'whear', + 'wheen', + 'wheep', + 'wheft', + 'whelk', + 'whelm', + 'whens', + 'whets', + 'whews', + 'wheys', + 'whids', + 'whift', + 'whigs', + 'whilk', + 'whims', + 'whins', + 'whios', + 'whips', + 'whipt', + 'whirr', + 'whirs', + 'whish', + 'whiss', + 'whist', + 'whits', + 'whity', + 'whizz', + 'whomp', + 'whoof', + 'whoot', + 'whops', + 'whore', + 'whorl', + 'whort', + 'whoso', + 'whows', + 'whump', + 'whups', + 'whyda', + 'wicca', + 'wicks', + 'wicky', + 'widdy', + 'wides', + 'wiels', + 'wifed', + 'wifes', + 'wifey', + 'wifie', + 'wifty', + 'wigan', + 'wigga', + 'wiggy', + 'wikis', + 'wilco', + 'wilds', + 'wiled', + 'wiles', + 'wilga', + 'wilis', + 'wilja', + 'wills', + 'wilts', + 'wimps', + 'winds', + 'wined', + 'wines', + 'winey', + 'winge', + 'wings', + 'wingy', + 'winks', + 'winna', + 'winns', + 'winos', + 'winze', + 'wiped', + 'wiper', + 'wipes', + 'wired', + 'wirer', + 'wires', + 'wirra', + 'wised', + 'wises', + 'wisha', + 'wisht', + 'wisps', + 'wists', + 'witan', + 'wited', + 'wites', + 'withe', + 'withs', + 'withy', + 'wived', + 'wiver', + 'wives', + 'wizen', + 'wizes', + 'woads', + 'woald', + 'wocks', + 'wodge', + 'woful', + 'wojus', + 'woker', + 'wokka', + 'wolds', + 'wolfs', + 'wolly', + 'wolve', + 'wombs', + 'womby', + 'womyn', + 'wonga', + 'wongi', + 'wonks', + 'wonky', + 'wonts', + 'woods', + 'wooed', + 'woofs', + 'woofy', + 'woold', + 'wools', + 'woons', + 'woops', + 'woopy', + 'woose', + 'woosh', + 'wootz', + 'words', + 'works', + 'worms', + 'wormy', + 'worts', + 'wowed', + 'wowee', + 'woxen', + 'wrang', + 'wraps', + 'wrapt', + 'wrast', + 'wrate', + 'wrawl', + 'wrens', + 'wrick', + 'wried', + 'wrier', + 'wries', + 'writs', + 'wroke', + 'wroot', + 'wroth', + 'wryer', + 'wuddy', + 'wudus', + 'wulls', + 'wurst', + 'wuses', + 'wushu', + 'wussy', + 'wuxia', + 'wyled', + 'wyles', + 'wynds', + 'wynns', + 'wyted', + 'wytes', + 'xebec', + 'xenia', + 'xenic', + 'xenon', + 'xeric', + 'xerox', + 'xerus', + 'xoana', + 'xrays', + 'xylan', + 'xylem', + 'xylic', + 'xylol', + 'xylyl', + 'xysti', + 'xysts', + 'yaars', + 'yabas', + 'yabba', + 'yabby', + 'yacca', + 'yacka', + 'yacks', + 'yaffs', + 'yager', + 'yages', + 'yagis', + 'yahoo', + 'yaird', + 'yakka', + 'yakow', + 'yales', + 'yamen', + 'yampy', + 'yamun', + 'yangs', + 'yanks', + 'yapok', + 'yapon', + 'yapps', + 'yappy', + 'yarak', + 'yarco', + 'yards', + 'yarer', + 'yarfa', + 'yarks', + 'yarns', + 'yarrs', + 'yarta', + 'yarto', + 'yates', + 'yauds', + 'yauld', + 'yaups', + 'yawed', + 'yawey', + 'yawls', + 'yawns', + 'yawny', + 'yawps', + 'ybore', + 'yclad', + 'ycled', + 'ycond', + 'ydrad', + 'ydred', + 'yeads', + 'yeahs', + 'yealm', + 'yeans', + 'yeard', + 'years', + 'yecch', + 'yechs', + 'yechy', + 'yedes', + 'yeeds', + 'yeesh', + 'yeggs', + 'yelks', + 'yells', + 'yelms', + 'yelps', + 'yelts', + 'yenta', + 'yente', + 'yerba', + 'yerds', + 'yerks', + 'yeses', + 'yesks', + 'yests', + 'yesty', + 'yetis', + 'yetts', + 'yeuks', + 'yeuky', + 'yeven', + 'yeves', + 'yewen', + 'yexed', + 'yexes', + 'yfere', + 'yiked', + 'yikes', + 'yills', + 'yince', + 'yipes', + 'yippy', + 'yirds', + 'yirks', + 'yirrs', + 'yirth', + 'yites', + 'yitie', + 'ylems', + 'ylike', + 'ylkes', + 'ymolt', + 'ympes', + 'yobbo', + 'yobby', + 'yocks', + 'yodel', + 'yodhs', + 'yodle', + 'yogas', + 'yogee', + 'yoghs', + 'yogic', + 'yogin', + 'yogis', + 'yoick', + 'yojan', + 'yoked', + 'yokel', + 'yoker', + 'yokes', + 'yokul', + 'yolks', + 'yolky', + 'yomim', + 'yomps', + 'yonic', + 'yonis', + 'yonks', + 'yoofs', + 'yoops', + 'yores', + 'yorks', + 'yorps', + 'youks', + 'yourn', + 'yours', + 'yourt', + 'youse', + 'yowed', + 'yowes', + 'yowie', + 'yowls', + 'yowza', + 'yrapt', + 'yrent', + 'yrivd', + 'yrneh', + 'ysame', + 'ytost', + 'yuans', + 'yucas', + 'yucca', + 'yucch', + 'yucko', + 'yucks', + 'yucky', + 'yufts', + 'yugas', + 'yuked', + 'yukes', + 'yukky', + 'yukos', + 'yulan', + 'yules', + 'yummo', + 'yummy', + 'yumps', + 'yupon', + 'yuppy', + 'yurta', + 'yurts', + 'yuzus', + 'zabra', + 'zacks', + 'zaida', + 'zaidy', + 'zaire', + 'zakat', + 'zaman', + 'zambo', + 'zamia', + 'zanja', + 'zante', + 'zanza', + 'zanze', + 'zappy', + 'zarfs', + 'zaris', + 'zatis', + 'zaxes', + 'zayin', + 'zazen', + 'zeals', + 'zebec', + 'zebub', + 'zebus', + 'zedas', + 'zeins', + 'zendo', + 'zerda', + 'zerks', + 'zeros', + 'zests', + 'zetas', + 'zexes', + 'zezes', + 'zhomo', + 'zibet', + 'ziffs', + 'zigan', + 'zilas', + 'zilch', + 'zilla', + 'zills', + 'zimbi', + 'zimbs', + 'zinco', + 'zincs', + 'zincy', + 'zineb', + 'zines', + 'zings', + 'zingy', + 'zinke', + 'zinky', + 'zippo', + 'zippy', + 'ziram', + 'zitis', + 'zizel', + 'zizit', + 'zlote', + 'zloty', + 'zoaea', + 'zobos', + 'zobus', + 'zocco', + 'zoeae', + 'zoeal', + 'zoeas', + 'zoism', + 'zoist', + 'zombi', + 'zonae', + 'zonda', + 'zoned', + 'zoner', + 'zones', + 'zonks', + 'zooea', + 'zooey', + 'zooid', + 'zooks', + 'zooms', + 'zoons', + 'zooty', + 'zoppa', + 'zoppo', + 'zoril', + 'zoris', + 'zorro', + 'zouks', + 'zowee', + 'zowie', + 'zulus', + 'zupan', + 'zupas', + 'zuppa', + 'zurfs', + 'zuzim', + 'zygal', + 'zygon', + 'zymes', + 'zymic' +]); diff --git a/SvelteKit-App/static/favicon.png b/SvelteKit-App/static/favicon.png new file mode 100644 index 0000000..825b9e6 Binary files /dev/null and b/SvelteKit-App/static/favicon.png differ diff --git a/SvelteKit-App/static/robots.txt b/SvelteKit-App/static/robots.txt new file mode 100644 index 0000000..e9e57dc --- /dev/null +++ b/SvelteKit-App/static/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/SvelteKit-App/svelte.config.js b/SvelteKit-App/svelte.config.js new file mode 100644 index 0000000..139bee1 --- /dev/null +++ b/SvelteKit-App/svelte.config.js @@ -0,0 +1,18 @@ +import adapter from '@sveltejs/adapter-node'; +import { vitePreprocess } from '@sveltejs/kit/vite'; + +/** @type {import('@sveltejs/kit').Config} */ +const config = { + // Consult https://kit.svelte.dev/docs/integrations#preprocessors + // for more information about preprocessors + preprocess: vitePreprocess(), + + kit: { + // adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list. + // If your environment is not supported or you settled on a specific environment, switch out the adapter. + // See https://kit.svelte.dev/docs/adapters for more information about adapters. + adapter: adapter({ out: '../Built-App/src' }) + } +}; + +export default config; diff --git a/SvelteKit-App/tests/test.ts b/SvelteKit-App/tests/test.ts new file mode 100644 index 0000000..09d2c03 --- /dev/null +++ b/SvelteKit-App/tests/test.ts @@ -0,0 +1,6 @@ +import { expect, test } from '@playwright/test'; + +test('about page has expected h1', async ({ page }) => { + await page.goto('/about'); + await expect(page.getByRole('heading', { name: 'About this app' })).toBeVisible(); +}); diff --git a/SvelteKit-App/tsconfig.json b/SvelteKit-App/tsconfig.json new file mode 100644 index 0000000..4612154 --- /dev/null +++ b/SvelteKit-App/tsconfig.json @@ -0,0 +1,19 @@ +{ + "extends": "./.svelte-kit/tsconfig.json", + "compilerOptions": { + "target": "es2017", + "allowJs": true, + "checkJs": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "skipLibCheck": true, + "sourceMap": true, + "strict": true, + "moduleResolution": "bundler" + } + // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias + // + // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes + // from the referenced tsconfig.json - TypeScript does not merge them in +} diff --git a/SvelteKit-App/vite.config.ts b/SvelteKit-App/vite.config.ts new file mode 100644 index 0000000..686a7ee --- /dev/null +++ b/SvelteKit-App/vite.config.ts @@ -0,0 +1,12 @@ +import { sveltekit } from '@sveltejs/kit/vite'; +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + plugins: [sveltekit()], + test: { + include: ['src/**/*.{test,spec}.{js,ts}'] + }, + server: { + port: 3000 + } +});