diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 0000000..7078b83
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,24 @@
+module.exports = {
+ root: true,
+ parser: "@typescript-eslint/parser",
+ extends: [
+ "eslint:recommended",
+ "plugin:@typescript-eslint/recommended",
+ "prettier",
+ ],
+ plugins: ["svelte3", "@typescript-eslint"],
+ ignorePatterns: ["*.cjs"],
+ overrides: [{ files: ["*.svelte"], processor: "svelte3/svelte3" }],
+ settings: {
+ "svelte3/typescript": () => require("typescript"),
+ },
+ parserOptions: {
+ sourceType: "module",
+ ecmaVersion: 2020,
+ },
+ env: {
+ browser: true,
+ es2017: true,
+ node: true,
+ },
+};
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e6c6aaf
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+.output
+vite.config.js.timestamp-*
+vite.config.ts.timestamp-*
+.netlify
diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile
new file mode 100644
index 0000000..ae85198
--- /dev/null
+++ b/.gitpod.Dockerfile
@@ -0,0 +1,7 @@
+FROM gitpod/workspace-full:latest
+
+RUN bash -c 'VERSION="18.13.0" \
+ && source $HOME/.nvm/nvm.sh && nvm install $VERSION \
+ && nvm use $VERSION && nvm alias default $VERSION'
+
+RUN echo "nvm use default &>/dev/null" >> ~/.bashrc.d/51-nvm-fix
diff --git a/.gitpod.yml b/.gitpod.yml
new file mode 100644
index 0000000..25bd768
--- /dev/null
+++ b/.gitpod.yml
@@ -0,0 +1,40 @@
+image:
+ file: .gitpod.Dockerfile
+
+ports:
+ - port: 3000
+ onOpen: open-preview
+ visibility: public
+ name: Website
+ description: Preview of Website
+
+# List the start up tasks. You can start them in parallel in multiple terminals. See https://www.gitpod.io/docs/configure/workspaces/tasks/
+tasks:
+ - name: Installing Dependencies
+ init: npm install
+ - name: Start Dev Server
+ command: npm run dev
+
+github:
+ prebuilds:
+ # enable for the master/default branch (defaults to true)
+ master: true
+ # enable for all branches in this repo (defaults to false)
+ branches: true
+ # enable for pull requests coming from this repo (defaults to true)
+ pullRequests: true
+ # enable for pull requests coming from forks (defaults to false)
+ pullRequestsFromForks: true
+ # add a check to pull requests (defaults to true)
+ addCheck: true
+ # add a "Review in Gitpod" button as a comment to pull requests (defaults to false)
+ addComment: false
+ # add a "Review in Gitpod" button to the pull request's description (defaults to false)
+ addBadge: true
+ # add a label once the prebuild is ready to pull requests (defaults to false)
+ addLabel: false
+
+vscode:
+ extensions:
+ - svelte.svelte-vscode
+ - bradlc.vscode-tailwindcss
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 0000000..36af219
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+npx lint-staged
diff --git a/.husky/pre-push b/.husky/pre-push
new file mode 100755
index 0000000..cdb4f6a
--- /dev/null
+++ b/.husky/pre-push
@@ -0,0 +1,4 @@
+#!/bin/sh
+. "$(dirname "$0")/_/husky.sh"
+
+npx svelte-check --fail-on-hints
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..b6f27f1
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+engine-strict=true
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..27a5fa6
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2023 Gitpod
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0c0fd47
--- /dev/null
+++ b/README.md
@@ -0,0 +1,19 @@
+# CDE Universe Website
+
+[![Gitpod Ready-to-Code](https://img.shields.io/badge/Gitpod-ready--to--code-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/gitpod-io/CDE-Universe)
+
+> This repository contains the website will be hosted on [cdeuniverse.com](https://cdeuniverse.com/)
+
+Contributing is as easy as starting a new workspace:
+
+[![Open in Gitpod](https://www.gitpod.io/svg/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/gitpod-io/CDE-Universe)
+
+---
+
+
+
+
+
+
+
+Owned by [Gitpod](https://www.gitpod.io/)
diff --git a/netlify.toml b/netlify.toml
new file mode 100644
index 0000000..aba0ad1
--- /dev/null
+++ b/netlify.toml
@@ -0,0 +1,71 @@
+[build]
+ command = "npm run build"
+ publish = "build/"
+
+[functions]
+ directory = "src/functions"
+ node_bundler = "esbuild"
+
+[[headers]]
+ for = "/*"
+ [headers.values]
+ X-Frame-Options = "DENY"
+ X-XSS-Protection = "1; mode=block"
+ #
+ # X-Content-Type-Options controls whether browsers attempt to detect
+ # the content type, rather than relyihng on the Content-Type header.
+ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
+ X-Content-Type-Options = "nosniff"
+ #
+ # Strict-Transport-Security to require HTTPS connections in supported
+ # browsers. These settings are required to be eligible for inclusion
+ # in the HSTS Preload list; see: https://hstspreload.org/
+ Strict-Transport-Security = """
+ max-age=31536000; \
+ includeSubDomains; \
+ preload \
+ """
+ #
+ # Referrer-Policy controls the Referer header in requests.
+ #
+ # same-origin allows analytics tools to understand user journeys.
+ Referrer-Policy = "same-origin"
+ #
+ # Content-Security-Policy controls what resources can be loaded on the page.
+ Content-Security-Policy = "frame-ancestors 'self' *.gitpod.io *.staging.gitpod-dev.com"
+ #
+ # Permissions-Policy controls the features that the site can request.
+ #
+ # https://developer.chrome.com/en/docs/privacy-sandbox/permissions-policy/
+ # https://github.com/w3c/webappsec-permissions-policy/blob/main/features.md
+ Permissions-Policy = """\
+ accelerometer=(), \
+ ambient-light-sensor=(), \
+ autoplay=(), \
+ battery=(), \
+ camera=(), \
+ cross-origin-isolated=(), \
+ display-capture=(), \
+ document-domain=(), \
+ encrypted-media=(), \
+ execution-while-not-rendered=(), \
+ execution-while-out-of-viewport=(), \
+ fullscreen=(), \
+ geolocation=(), \
+ gyroscope=(), \
+ hid=(), \
+ idle-detection=(), \
+ magnetometer=(), \
+ microphone=(), \
+ midi=(), \
+ navigation-override=(), \
+ payment=(), \
+ picture-in-picture=(), \
+ publickey-credentials-get=(), \
+ screen-wake-lock=(), \
+ serial=(), \
+ sync-xhr=(), \
+ usb=(), \
+ web-share=(), \
+ xr-spatial-tracking=() \
+ """
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..74e6b12
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,5441 @@
+{
+ "name": "cde-universe",
+ "version": "0.0.1",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "cde-universe",
+ "version": "0.0.1",
+ "devDependencies": {
+ "@fontsource/fira-mono": "^4.5.10",
+ "@neoconfetti/svelte": "^1.0.0",
+ "@sveltejs/adapter-auto": "^2.0.0",
+ "@sveltejs/adapter-netlify": "^2.0.6",
+ "@sveltejs/kit": "^1.5.0",
+ "@types/cookie": "^0.5.1",
+ "@typescript-eslint/eslint-plugin": "^5.54.1",
+ "@typescript-eslint/parser": "^5.54.1",
+ "eslint": "^8.36.0",
+ "eslint-config-prettier": "^8.7.0",
+ "eslint-plugin-svelte3": "^4.0.0",
+ "husky": "^8.0.3",
+ "prettier": "^2.8.4",
+ "prettier-plugin-svelte": "^2.9.0",
+ "svelte": "^3.54.0",
+ "svelte-check": "^3.0.1",
+ "svelte-preprocess": "^5.0.1",
+ "tslib": "^2.4.1",
+ "typescript": "^4.9.3",
+ "vite": "^4.0.0"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz",
+ "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz",
+ "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz",
+ "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz",
+ "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz",
+ "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz",
+ "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz",
+ "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz",
+ "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz",
+ "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz",
+ "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz",
+ "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz",
+ "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz",
+ "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz",
+ "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz",
+ "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz",
+ "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz",
+ "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz",
+ "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz",
+ "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz",
+ "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz",
+ "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz",
+ "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz",
+ "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==",
+ "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.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
+ "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+ "dev": true,
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
+ "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.5.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/js": {
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
+ "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@fontsource/fira-mono": {
+ "version": "4.5.10",
+ "resolved": "https://registry.npmjs.org/@fontsource/fira-mono/-/fira-mono-4.5.10.tgz",
+ "integrity": "sha512-bxUnRP8xptGRo8YXeY073DSpfK74XpSb0ZyRNpHV9WvLnJ7TwPOjZll8hTMin7zLC6iOp59pDZ8EQDj1gzgAQQ==",
+ "dev": true
+ },
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ },
+ "engines": {
+ "node": ">=10.10.0"
+ }
+ },
+ "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": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "node_modules/@iarna/toml": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
+ "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "node_modules/@neoconfetti/svelte": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@neoconfetti/svelte/-/svelte-1.0.0.tgz",
+ "integrity": "sha512-SmksyaJAdSlMa9cTidVSIqYo1qti+WTsviNDwgjNVm+KQ3DRP2Df9umDIzC4vCcpEYY+chQe0i2IKnLw03AT8Q==",
+ "dev": true
+ },
+ "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/@polka/url": {
+ "version": "1.0.0-next.21",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
+ "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
+ "dev": true
+ },
+ "node_modules/@sveltejs/adapter-auto": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.0.0.tgz",
+ "integrity": "sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==",
+ "dev": true,
+ "dependencies": {
+ "import-meta-resolve": "^2.2.0"
+ },
+ "peerDependencies": {
+ "@sveltejs/kit": "^1.0.0"
+ }
+ },
+ "node_modules/@sveltejs/adapter-netlify": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-netlify/-/adapter-netlify-2.0.6.tgz",
+ "integrity": "sha512-9guxI9jG/v/JTr/I1E1YGKppKWRyvs60VuhPJcGBrj2MfoBxR40vhxkrWPFcNJoAdyQUSjqxbg7sZLA4WbNfgA==",
+ "dev": true,
+ "dependencies": {
+ "@iarna/toml": "^2.2.5",
+ "esbuild": "^0.16.3",
+ "set-cookie-parser": "^2.5.1"
+ },
+ "peerDependencies": {
+ "@sveltejs/kit": "^1.5.0"
+ }
+ },
+ "node_modules/@sveltejs/kit": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.13.0.tgz",
+ "integrity": "sha512-t44xqlSTn/k+BridiJFTD8dCRPNd9msCSSPLZT+/3P9deNp/al6ed396MSpsskK7r2kevYmmxywK16qtn6Rvjw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@sveltejs/vite-plugin-svelte": "^2.0.0",
+ "@types/cookie": "^0.5.1",
+ "cookie": "^0.5.0",
+ "devalue": "^4.3.0",
+ "esm-env": "^1.0.0",
+ "kleur": "^4.1.5",
+ "magic-string": "^0.30.0",
+ "mime": "^3.0.0",
+ "sade": "^1.8.1",
+ "set-cookie-parser": "^2.5.1",
+ "sirv": "^2.0.2",
+ "tiny-glob": "^0.2.9",
+ "undici": "5.21.0"
+ },
+ "bin": {
+ "svelte-kit": "svelte-kit.js"
+ },
+ "engines": {
+ "node": "^16.14 || >=18"
+ },
+ "peerDependencies": {
+ "svelte": "^3.54.0",
+ "vite": "^4.0.0"
+ }
+ },
+ "node_modules/@sveltejs/vite-plugin-svelte": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.3.tgz",
+ "integrity": "sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==",
+ "dev": true,
+ "dependencies": {
+ "debug": "^4.3.4",
+ "deepmerge": "^4.3.0",
+ "kleur": "^4.1.5",
+ "magic-string": "^0.29.0",
+ "svelte-hmr": "^0.15.1",
+ "vitefu": "^0.2.4"
+ },
+ "engines": {
+ "node": "^14.18.0 || >= 16"
+ },
+ "peerDependencies": {
+ "svelte": "^3.54.0",
+ "vite": "^4.0.0"
+ }
+ },
+ "node_modules/@sveltejs/vite-plugin-svelte/node_modules/magic-string": {
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz",
+ "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@types/cookie": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz",
+ "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==",
+ "dev": true
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true
+ },
+ "node_modules/@types/pug": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
+ "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==",
+ "dev": true
+ },
+ "node_modules/@types/semver": {
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
+ "dev": true
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.56.0.tgz",
+ "integrity": "sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.56.0",
+ "@typescript-eslint/type-utils": "5.56.0",
+ "@typescript-eslint/utils": "5.56.0",
+ "debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^5.0.0",
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.56.0.tgz",
+ "integrity": "sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "5.56.0",
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/typescript-estree": "5.56.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.56.0.tgz",
+ "integrity": "sha512-jGYKyt+iBakD0SA5Ww8vFqGpoV2asSjwt60Gl6YcO8ksQ8s2HlUEyHBMSa38bdLopYqGf7EYQMUIGdT/Luw+sw==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/visitor-keys": "5.56.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.56.0.tgz",
+ "integrity": "sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/typescript-estree": "5.56.0",
+ "@typescript-eslint/utils": "5.56.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "*"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.56.0.tgz",
+ "integrity": "sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.56.0.tgz",
+ "integrity": "sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/visitor-keys": "5.56.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependenciesMeta": {
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.56.0.tgz",
+ "integrity": "sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.56.0",
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/typescript-estree": "5.56.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.56.0.tgz",
+ "integrity": "sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q==",
+ "dev": true,
+ "dependencies": {
+ "@typescript-eslint/types": "5.56.0",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "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/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/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/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "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==",
+ "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/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/binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/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/buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dev": true,
+ "dependencies": {
+ "streamsearch": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=10.16.0"
+ }
+ },
+ "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/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/chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/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/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/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/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/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==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "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/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/detect-indent": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
+ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/devalue": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.0.tgz",
+ "integrity": "sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==",
+ "dev": true
+ },
+ "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/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/es6-promise": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
+ "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
+ "dev": true
+ },
+ "node_modules/esbuild": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz",
+ "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.16.17",
+ "@esbuild/android-arm64": "0.16.17",
+ "@esbuild/android-x64": "0.16.17",
+ "@esbuild/darwin-arm64": "0.16.17",
+ "@esbuild/darwin-x64": "0.16.17",
+ "@esbuild/freebsd-arm64": "0.16.17",
+ "@esbuild/freebsd-x64": "0.16.17",
+ "@esbuild/linux-arm": "0.16.17",
+ "@esbuild/linux-arm64": "0.16.17",
+ "@esbuild/linux-ia32": "0.16.17",
+ "@esbuild/linux-loong64": "0.16.17",
+ "@esbuild/linux-mips64el": "0.16.17",
+ "@esbuild/linux-ppc64": "0.16.17",
+ "@esbuild/linux-riscv64": "0.16.17",
+ "@esbuild/linux-s390x": "0.16.17",
+ "@esbuild/linux-x64": "0.16.17",
+ "@esbuild/netbsd-x64": "0.16.17",
+ "@esbuild/openbsd-x64": "0.16.17",
+ "@esbuild/sunos-x64": "0.16.17",
+ "@esbuild/win32-arm64": "0.16.17",
+ "@esbuild/win32-ia32": "0.16.17",
+ "@esbuild/win32-x64": "0.16.17"
+ }
+ },
+ "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==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
+ "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "dev": true,
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.1",
+ "@eslint/js": "8.36.0",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "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.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.5.0",
+ "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",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "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.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "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.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz",
+ "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==",
+ "dev": true,
+ "bin": {
+ "eslint-config-prettier": "bin/cli.js"
+ },
+ "peerDependencies": {
+ "eslint": ">=7.0.0"
+ }
+ },
+ "node_modules/eslint-plugin-svelte3": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz",
+ "integrity": "sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==",
+ "dev": true,
+ "peerDependencies": {
+ "eslint": ">=8.0.0",
+ "svelte": "^3.2.0"
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/node_modules/eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ }
+ },
+ "node_modules/eslint/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/esm-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
+ "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==",
+ "dev": true
+ },
+ "node_modules/espree": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
+ "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ },
+ "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/esquery/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/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/esrecurse/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/estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "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/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-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "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/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/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/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.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "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.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "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.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "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/globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dev": true,
+ "dependencies": {
+ "type-fest": "^0.20.2"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globalyzer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
+ "dev": true
+ },
+ "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/globrex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "node_modules/grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "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/husky": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "dev": true,
+ "bin": {
+ "husky": "lib/bin.js"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/typicode"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "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/import-meta-resolve": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz",
+ "integrity": "sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "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/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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-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-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/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "node_modules/js-sdsl": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
+ "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
+ "dev": true,
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/js-sdsl"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "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/kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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.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/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/magic-string": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
+ "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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/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": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "dev": true,
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "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/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/mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "dependencies": {
+ "minimist": "^1.2.6"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/mri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mrmime": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
+ "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
+ "dev": true,
+ "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==",
+ "dev": true
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "dev": true,
+ "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/natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "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/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-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "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/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/postcss": {
+ "version": "8.4.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
+ "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.4",
+ "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": "2.8.6",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.6.tgz",
+ "integrity": "sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-plugin-svelte": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.9.0.tgz",
+ "integrity": "sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==",
+ "dev": true,
+ "peerDependencies": {
+ "prettier": "^1.16.4 || ^2.0.0",
+ "svelte": "^3.2.0"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/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/rollup": {
+ "version": "3.20.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.0.tgz",
+ "integrity": "sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==",
+ "dev": true,
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=14.18.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "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/sade": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
+ "dev": true,
+ "dependencies": {
+ "mri": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/sander": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
+ "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
+ "dev": true,
+ "dependencies": {
+ "es6-promise": "^3.1.2",
+ "graceful-fs": "^4.1.3",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.2"
+ }
+ },
+ "node_modules/sander/node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/set-cookie-parser": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
+ "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
+ "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/sirv": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz",
+ "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==",
+ "dev": true,
+ "dependencies": {
+ "@polka/url": "^1.0.0-next.20",
+ "mrmime": "^1.0.0",
+ "totalist": "^3.0.0"
+ },
+ "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/sorcery": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
+ "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.14",
+ "buffer-crc32": "^0.2.5",
+ "minimist": "^1.2.0",
+ "sander": "^0.5.0"
+ },
+ "bin": {
+ "sorcery": "bin/sorcery"
+ }
+ },
+ "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/streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "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-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "dependencies": {
+ "min-indent": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "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/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/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/svelte": {
+ "version": "3.57.0",
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.57.0.tgz",
+ "integrity": "sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/svelte-check": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.1.4.tgz",
+ "integrity": "sha512-25Lb46ZS4IK/XpBMe4IBMrtYf23V8alqBX+szXoccb7uM0D2Wqq5rMRzYBONZnFVuU1bQG3R50lyIT5eRewv2g==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "chokidar": "^3.4.1",
+ "fast-glob": "^3.2.7",
+ "import-fresh": "^3.2.1",
+ "picocolors": "^1.0.0",
+ "sade": "^1.7.4",
+ "svelte-preprocess": "^5.0.0",
+ "typescript": "^4.9.4"
+ },
+ "bin": {
+ "svelte-check": "bin/svelte-check"
+ },
+ "peerDependencies": {
+ "svelte": "^3.55.0"
+ }
+ },
+ "node_modules/svelte-hmr": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz",
+ "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==",
+ "dev": true,
+ "engines": {
+ "node": "^12.20 || ^14.13.1 || >= 16"
+ },
+ "peerDependencies": {
+ "svelte": ">=3.19.0"
+ }
+ },
+ "node_modules/svelte-preprocess": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.3.tgz",
+ "integrity": "sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "@types/pug": "^2.0.6",
+ "detect-indent": "^6.1.0",
+ "magic-string": "^0.27.0",
+ "sorcery": "^0.11.0",
+ "strip-indent": "^3.0.0"
+ },
+ "engines": {
+ "node": ">= 14.10.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.10.2",
+ "coffeescript": "^2.5.1",
+ "less": "^3.11.3 || ^4.0.0",
+ "postcss": "^7 || ^8",
+ "postcss-load-config": "^2.1.0 || ^3.0.0 || ^4.0.0",
+ "pug": "^3.0.0",
+ "sass": "^1.26.8",
+ "stylus": "^0.55.0",
+ "sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
+ "svelte": "^3.23.0",
+ "typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "coffeescript": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "postcss": {
+ "optional": true
+ },
+ "postcss-load-config": {
+ "optional": true
+ },
+ "pug": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "typescript": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/svelte-preprocess/node_modules/magic-string": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "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-glob": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
+ "dev": true,
+ "dependencies": {
+ "globalyzer": "0.1.0",
+ "globrex": "^0.1.2"
+ }
+ },
+ "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/totalist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz",
+ "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
+ "dev": true
+ },
+ "node_modules/tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.8.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "peerDependencies": {
+ "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta"
+ }
+ },
+ "node_modules/tsutils/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "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.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/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/undici": {
+ "version": "5.21.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz",
+ "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==",
+ "dev": true,
+ "dependencies": {
+ "busboy": "^1.6.0"
+ },
+ "engines": {
+ "node": ">=12.18"
+ }
+ },
+ "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/vite": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz",
+ "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==",
+ "dev": true,
+ "dependencies": {
+ "esbuild": "^0.17.5",
+ "postcss": "^8.4.21",
+ "resolve": "^1.22.1",
+ "rollup": "^3.18.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^14.18.0 || >=16.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ },
+ "peerDependencies": {
+ "@types/node": ">= 14",
+ "less": "*",
+ "sass": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/android-arm": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.12.tgz",
+ "integrity": "sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/android-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz",
+ "integrity": "sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/android-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.12.tgz",
+ "integrity": "sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/darwin-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz",
+ "integrity": "sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/darwin-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz",
+ "integrity": "sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz",
+ "integrity": "sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/freebsd-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz",
+ "integrity": "sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-arm": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz",
+ "integrity": "sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz",
+ "integrity": "sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-ia32": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz",
+ "integrity": "sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-loong64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz",
+ "integrity": "sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-mips64el": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz",
+ "integrity": "sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-ppc64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz",
+ "integrity": "sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-riscv64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz",
+ "integrity": "sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-s390x": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz",
+ "integrity": "sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/linux-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz",
+ "integrity": "sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/netbsd-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz",
+ "integrity": "sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/openbsd-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz",
+ "integrity": "sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/sunos-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz",
+ "integrity": "sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz",
+ "integrity": "sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-ia32": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz",
+ "integrity": "sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/@esbuild/win32-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz",
+ "integrity": "sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/vite/node_modules/esbuild": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.12.tgz",
+ "integrity": "sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "optionalDependencies": {
+ "@esbuild/android-arm": "0.17.12",
+ "@esbuild/android-arm64": "0.17.12",
+ "@esbuild/android-x64": "0.17.12",
+ "@esbuild/darwin-arm64": "0.17.12",
+ "@esbuild/darwin-x64": "0.17.12",
+ "@esbuild/freebsd-arm64": "0.17.12",
+ "@esbuild/freebsd-x64": "0.17.12",
+ "@esbuild/linux-arm": "0.17.12",
+ "@esbuild/linux-arm64": "0.17.12",
+ "@esbuild/linux-ia32": "0.17.12",
+ "@esbuild/linux-loong64": "0.17.12",
+ "@esbuild/linux-mips64el": "0.17.12",
+ "@esbuild/linux-ppc64": "0.17.12",
+ "@esbuild/linux-riscv64": "0.17.12",
+ "@esbuild/linux-s390x": "0.17.12",
+ "@esbuild/linux-x64": "0.17.12",
+ "@esbuild/netbsd-x64": "0.17.12",
+ "@esbuild/openbsd-x64": "0.17.12",
+ "@esbuild/sunos-x64": "0.17.12",
+ "@esbuild/win32-arm64": "0.17.12",
+ "@esbuild/win32-ia32": "0.17.12",
+ "@esbuild/win32-x64": "0.17.12"
+ }
+ },
+ "node_modules/vitefu": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz",
+ "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==",
+ "dev": true,
+ "peerDependencies": {
+ "vite": "^3.0.0 || ^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "vite": {
+ "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/word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "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/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"
+ }
+ }
+ },
+ "dependencies": {
+ "@esbuild/android-arm": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.16.17.tgz",
+ "integrity": "sha512-N9x1CMXVhtWEAMS7pNNONyA14f71VPQN9Cnavj1XQh6T7bskqiLLrSca4O0Vr8Wdcga943eThxnVp3JLnBMYtw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.16.17.tgz",
+ "integrity": "sha512-MIGl6p5sc3RDTLLkYL1MyL8BMRN4tLMRCn+yRJJmEDvYZ2M7tmAf80hx1kbNEUX2KJ50RRtxZ4JHLvCfuB6kBg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.16.17.tgz",
+ "integrity": "sha512-a3kTv3m0Ghh4z1DaFEuEDfz3OLONKuFvI4Xqczqx4BqLyuFaFkuaG4j2MtA6fuWEFeC5x9IvqnX7drmRq/fyAQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.16.17.tgz",
+ "integrity": "sha512-/2agbUEfmxWHi9ARTX6OQ/KgXnOWfsNlTeLcoV7HSuSTv63E4DqtAc+2XqGw1KHxKMHGZgbVCZge7HXWX9Vn+w==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.16.17.tgz",
+ "integrity": "sha512-2By45OBHulkd9Svy5IOCZt376Aa2oOkiE9QWUK9fe6Tb+WDr8hXL3dpqi+DeLiMed8tVXspzsTAvd0jUl96wmg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.17.tgz",
+ "integrity": "sha512-mt+cxZe1tVx489VTb4mBAOo2aKSnJ33L9fr25JXpqQqzbUIw/yzIzi+NHwAXK2qYV1lEFp4OoVeThGjUbmWmdw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.16.17.tgz",
+ "integrity": "sha512-8ScTdNJl5idAKjH8zGAsN7RuWcyHG3BAvMNpKOBaqqR7EbUhhVHOqXRdL7oZvz8WNHL2pr5+eIT5c65kA6NHug==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.16.17.tgz",
+ "integrity": "sha512-iihzrWbD4gIT7j3caMzKb/RsFFHCwqqbrbH9SqUSRrdXkXaygSZCZg1FybsZz57Ju7N/SHEgPyaR0LZ8Zbe9gQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.16.17.tgz",
+ "integrity": "sha512-7S8gJnSlqKGVJunnMCrXHU9Q8Q/tQIxk/xL8BqAP64wchPCTzuM6W3Ra8cIa1HIflAvDnNOt2jaL17vaW+1V0g==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ia32": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.16.17.tgz",
+ "integrity": "sha512-kiX69+wcPAdgl3Lonh1VI7MBr16nktEvOfViszBSxygRQqSpzv7BffMKRPMFwzeJGPxcio0pdD3kYQGpqQ2SSg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.16.17.tgz",
+ "integrity": "sha512-dTzNnQwembNDhd654cA4QhbS9uDdXC3TKqMJjgOWsC0yNCbpzfWoXdZvp0mY7HU6nzk5E0zpRGGx3qoQg8T2DQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-mips64el": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.16.17.tgz",
+ "integrity": "sha512-ezbDkp2nDl0PfIUn0CsQ30kxfcLTlcx4Foz2kYv8qdC6ia2oX5Q3E/8m6lq84Dj/6b0FrkgD582fJMIfHhJfSw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ppc64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.16.17.tgz",
+ "integrity": "sha512-dzS678gYD1lJsW73zrFhDApLVdM3cUF2MvAa1D8K8KtcSKdLBPP4zZSLy6LFZ0jYqQdQ29bjAHJDgz0rVbLB3g==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-riscv64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.16.17.tgz",
+ "integrity": "sha512-ylNlVsxuFjZK8DQtNUwiMskh6nT0vI7kYl/4fZgV1llP5d6+HIeL/vmmm3jpuoo8+NuXjQVZxmKuhDApK0/cKw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-s390x": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.16.17.tgz",
+ "integrity": "sha512-gzy7nUTO4UA4oZ2wAMXPNBGTzZFP7mss3aKR2hH+/4UUkCOyqmjXiKpzGrY2TlEUhbbejzXVKKGazYcQTZWA/w==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.16.17.tgz",
+ "integrity": "sha512-mdPjPxfnmoqhgpiEArqi4egmBAMYvaObgn4poorpUaqmvzzbvqbowRllQ+ZgzGVMGKaPkqUmPDOOFQRUFDmeUw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/netbsd-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.16.17.tgz",
+ "integrity": "sha512-/PzmzD/zyAeTUsduZa32bn0ORug+Jd1EGGAUJvqfeixoEISYpGnAezN6lnJoskauoai0Jrs+XSyvDhppCPoKOA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openbsd-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.16.17.tgz",
+ "integrity": "sha512-2yaWJhvxGEz2RiftSk0UObqJa/b+rIAjnODJgv2GbGGpRwAfpgzyrg1WLK8rqA24mfZa9GvpjLcBBg8JHkoodg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/sunos-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.16.17.tgz",
+ "integrity": "sha512-xtVUiev38tN0R3g8VhRfN7Zl42YCJvyBhRKw1RJjwE1d2emWTVToPLNEQj/5Qxc6lVFATDiy6LjVHYhIPrLxzw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-arm64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.16.17.tgz",
+ "integrity": "sha512-ga8+JqBDHY4b6fQAmOgtJJue36scANy4l/rL97W+0wYmijhxKetzZdKOJI7olaBaMhWt8Pac2McJdZLxXWUEQw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-ia32": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.16.17.tgz",
+ "integrity": "sha512-WnsKaf46uSSF/sZhwnqE4L/F89AYNMiD4YtEcYekBt9Q7nj0DiId2XH2Ng2PHM54qi5oPrQ8luuzGszqi/veig==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-x64": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.16.17.tgz",
+ "integrity": "sha512-y+EHuSchhL7FjHgvQL/0fnnFmO4T1bhvWANX6gcnqTjtnKWbTvUMCpGnv2+t+31d7RzyEAYAd4u2fnIhHL6N/Q==",
+ "dev": true,
+ "optional": true
+ },
+ "@eslint-community/eslint-utils": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz",
+ "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "@eslint-community/regexpp": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.4.0.tgz",
+ "integrity": "sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==",
+ "dev": true
+ },
+ "@eslint/eslintrc": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.0.1.tgz",
+ "integrity": "sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==",
+ "dev": true,
+ "requires": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^9.5.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"
+ }
+ },
+ "@eslint/js": {
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.36.0.tgz",
+ "integrity": "sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==",
+ "dev": true
+ },
+ "@fontsource/fira-mono": {
+ "version": "4.5.10",
+ "resolved": "https://registry.npmjs.org/@fontsource/fira-mono/-/fira-mono-4.5.10.tgz",
+ "integrity": "sha512-bxUnRP8xptGRo8YXeY073DSpfK74XpSb0ZyRNpHV9WvLnJ7TwPOjZll8hTMin7zLC6iOp59pDZ8EQDj1gzgAQQ==",
+ "dev": true
+ },
+ "@humanwhocodes/config-array": {
+ "version": "0.11.8",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
+ "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.1",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.5"
+ }
+ },
+ "@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
+ },
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "@iarna/toml": {
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz",
+ "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==",
+ "dev": true
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
+ "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
+ "dev": true
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.14",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
+ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
+ "dev": true
+ },
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.17",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
+ "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/resolve-uri": "3.1.0",
+ "@jridgewell/sourcemap-codec": "1.4.14"
+ }
+ },
+ "@neoconfetti/svelte": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@neoconfetti/svelte/-/svelte-1.0.0.tgz",
+ "integrity": "sha512-SmksyaJAdSlMa9cTidVSIqYo1qti+WTsviNDwgjNVm+KQ3DRP2Df9umDIzC4vCcpEYY+chQe0i2IKnLw03AT8Q==",
+ "dev": true
+ },
+ "@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,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@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
+ },
+ "@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,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@polka/url": {
+ "version": "1.0.0-next.21",
+ "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
+ "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
+ "dev": true
+ },
+ "@sveltejs/adapter-auto": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-2.0.0.tgz",
+ "integrity": "sha512-b+gkHFZgD771kgV3aO4avHFd7y1zhmMYy9i6xOK7m/rwmwaRO8gnF5zBc0Rgca80B2PMU1bKNxyBTHA14OzUAQ==",
+ "dev": true,
+ "requires": {
+ "import-meta-resolve": "^2.2.0"
+ }
+ },
+ "@sveltejs/adapter-netlify": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@sveltejs/adapter-netlify/-/adapter-netlify-2.0.6.tgz",
+ "integrity": "sha512-9guxI9jG/v/JTr/I1E1YGKppKWRyvs60VuhPJcGBrj2MfoBxR40vhxkrWPFcNJoAdyQUSjqxbg7sZLA4WbNfgA==",
+ "dev": true,
+ "requires": {
+ "@iarna/toml": "^2.2.5",
+ "esbuild": "^0.16.3",
+ "set-cookie-parser": "^2.5.1"
+ }
+ },
+ "@sveltejs/kit": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.13.0.tgz",
+ "integrity": "sha512-t44xqlSTn/k+BridiJFTD8dCRPNd9msCSSPLZT+/3P9deNp/al6ed396MSpsskK7r2kevYmmxywK16qtn6Rvjw==",
+ "dev": true,
+ "requires": {
+ "@sveltejs/vite-plugin-svelte": "^2.0.0",
+ "@types/cookie": "^0.5.1",
+ "cookie": "^0.5.0",
+ "devalue": "^4.3.0",
+ "esm-env": "^1.0.0",
+ "kleur": "^4.1.5",
+ "magic-string": "^0.30.0",
+ "mime": "^3.0.0",
+ "sade": "^1.8.1",
+ "set-cookie-parser": "^2.5.1",
+ "sirv": "^2.0.2",
+ "tiny-glob": "^0.2.9",
+ "undici": "5.21.0"
+ }
+ },
+ "@sveltejs/vite-plugin-svelte": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.0.3.tgz",
+ "integrity": "sha512-o+cguBFdwIGtRbNkYOyqTM7KvRUffxh5bfK4oJsWKG2obu+v/cbpT03tJrGl58C7tRXo/aEC0/axN5FVHBj0nA==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.3.4",
+ "deepmerge": "^4.3.0",
+ "kleur": "^4.1.5",
+ "magic-string": "^0.29.0",
+ "svelte-hmr": "^0.15.1",
+ "vitefu": "^0.2.4"
+ },
+ "dependencies": {
+ "magic-string": {
+ "version": "0.29.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.29.0.tgz",
+ "integrity": "sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ }
+ }
+ }
+ },
+ "@types/cookie": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz",
+ "integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==",
+ "dev": true
+ },
+ "@types/json-schema": {
+ "version": "7.0.11",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
+ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
+ "dev": true
+ },
+ "@types/pug": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
+ "integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==",
+ "dev": true
+ },
+ "@types/semver": {
+ "version": "7.3.13",
+ "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.13.tgz",
+ "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==",
+ "dev": true
+ },
+ "@typescript-eslint/eslint-plugin": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.56.0.tgz",
+ "integrity": "sha512-ZNW37Ccl3oMZkzxrYDUX4o7cnuPgU+YrcaYXzsRtLB16I1FR5SHMqga3zGsaSliZADCWo2v8qHWqAYIj8nWCCg==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/regexpp": "^4.4.0",
+ "@typescript-eslint/scope-manager": "5.56.0",
+ "@typescript-eslint/type-utils": "5.56.0",
+ "@typescript-eslint/utils": "5.56.0",
+ "debug": "^4.3.4",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "natural-compare-lite": "^1.4.0",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.56.0.tgz",
+ "integrity": "sha512-sn1OZmBxUsgxMmR8a8U5QM/Wl+tyqlH//jTqCg8daTAmhAk26L2PFhcqPLlYBhYUJMZJK276qLXlHN3a83o2cg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/scope-manager": "5.56.0",
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/typescript-estree": "5.56.0",
+ "debug": "^4.3.4"
+ }
+ },
+ "@typescript-eslint/scope-manager": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.56.0.tgz",
+ "integrity": "sha512-jGYKyt+iBakD0SA5Ww8vFqGpoV2asSjwt60Gl6YcO8ksQ8s2HlUEyHBMSa38bdLopYqGf7EYQMUIGdT/Luw+sw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/visitor-keys": "5.56.0"
+ }
+ },
+ "@typescript-eslint/type-utils": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.56.0.tgz",
+ "integrity": "sha512-8WxgOgJjWRy6m4xg9KoSHPzBNZeQbGlQOH7l2QEhQID/+YseaFxg5J/DLwWSsi9Axj4e/cCiKx7PVzOq38tY4A==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/typescript-estree": "5.56.0",
+ "@typescript-eslint/utils": "5.56.0",
+ "debug": "^4.3.4",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/types": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.56.0.tgz",
+ "integrity": "sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w==",
+ "dev": true
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.56.0.tgz",
+ "integrity": "sha512-41CH/GncsLXOJi0jb74SnC7jVPWeVJ0pxQj8bOjH1h2O26jXN3YHKDT1ejkVz5YeTEQPeLCCRY0U2r68tfNOcg==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/visitor-keys": "5.56.0",
+ "debug": "^4.3.4",
+ "globby": "^11.1.0",
+ "is-glob": "^4.0.3",
+ "semver": "^7.3.7",
+ "tsutils": "^3.21.0"
+ }
+ },
+ "@typescript-eslint/utils": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.56.0.tgz",
+ "integrity": "sha512-XhZDVdLnUJNtbzaJeDSCIYaM+Tgr59gZGbFuELgF7m0IY03PlciidS7UQNKLE0+WpUTn1GlycEr6Ivb/afjbhA==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@types/json-schema": "^7.0.9",
+ "@types/semver": "^7.3.12",
+ "@typescript-eslint/scope-manager": "5.56.0",
+ "@typescript-eslint/types": "5.56.0",
+ "@typescript-eslint/typescript-estree": "5.56.0",
+ "eslint-scope": "^5.1.1",
+ "semver": "^7.3.7"
+ }
+ },
+ "@typescript-eslint/visitor-keys": {
+ "version": "5.56.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.56.0.tgz",
+ "integrity": "sha512-1mFdED7u5bZpX6Xxf5N9U2c18sb+8EvU3tyOIj6LQZ5OOvnmj8BVeNNP603OFPm5KkS1a7IvCIcwrdHXaEMG/Q==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/types": "5.56.0",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "acorn": {
+ "version": "8.8.2",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz",
+ "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==",
+ "dev": true
+ },
+ "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,
+ "requires": {}
+ },
+ "ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "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
+ },
+ "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,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "dev": true,
+ "requires": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ }
+ },
+ "argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "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
+ },
+ "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
+ },
+ "binary-extensions": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "buffer-crc32": {
+ "version": "0.2.13",
+ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
+ "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==",
+ "dev": true
+ },
+ "busboy": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+ "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
+ "dev": true,
+ "requires": {
+ "streamsearch": "^1.1.0"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
+ "chokidar": {
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "dev": true,
+ "requires": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "fsevents": "~2.3.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "dependencies": {
+ "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,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
+ "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,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "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
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "dev": true
+ },
+ "cookie": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ }
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "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
+ },
+ "deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "dev": true
+ },
+ "detect-indent": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz",
+ "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==",
+ "dev": true
+ },
+ "devalue": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/devalue/-/devalue-4.3.0.tgz",
+ "integrity": "sha512-n94yQo4LI3w7erwf84mhRUkUJfhLoCZiLyoOZ/QFsDbcWNZePrLwbQpvZBUG2TNxwV3VjCKPxkiiQA6pe3TrTA==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "doctrine": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
+ "dev": true,
+ "requires": {
+ "esutils": "^2.0.2"
+ }
+ },
+ "es6-promise": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz",
+ "integrity": "sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==",
+ "dev": true
+ },
+ "esbuild": {
+ "version": "0.16.17",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.16.17.tgz",
+ "integrity": "sha512-G8LEkV0XzDMNwXKgM0Jwu3nY3lSTwSGY6XbxM9cr9+s0T/qSV1q1JVPBGzm3dcjhCic9+emZDmMffkwgPeOeLg==",
+ "dev": true,
+ "requires": {
+ "@esbuild/android-arm": "0.16.17",
+ "@esbuild/android-arm64": "0.16.17",
+ "@esbuild/android-x64": "0.16.17",
+ "@esbuild/darwin-arm64": "0.16.17",
+ "@esbuild/darwin-x64": "0.16.17",
+ "@esbuild/freebsd-arm64": "0.16.17",
+ "@esbuild/freebsd-x64": "0.16.17",
+ "@esbuild/linux-arm": "0.16.17",
+ "@esbuild/linux-arm64": "0.16.17",
+ "@esbuild/linux-ia32": "0.16.17",
+ "@esbuild/linux-loong64": "0.16.17",
+ "@esbuild/linux-mips64el": "0.16.17",
+ "@esbuild/linux-ppc64": "0.16.17",
+ "@esbuild/linux-riscv64": "0.16.17",
+ "@esbuild/linux-s390x": "0.16.17",
+ "@esbuild/linux-x64": "0.16.17",
+ "@esbuild/netbsd-x64": "0.16.17",
+ "@esbuild/openbsd-x64": "0.16.17",
+ "@esbuild/sunos-x64": "0.16.17",
+ "@esbuild/win32-arm64": "0.16.17",
+ "@esbuild/win32-ia32": "0.16.17",
+ "@esbuild/win32-x64": "0.16.17"
+ }
+ },
+ "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==",
+ "dev": true
+ },
+ "eslint": {
+ "version": "8.36.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.36.0.tgz",
+ "integrity": "sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==",
+ "dev": true,
+ "requires": {
+ "@eslint-community/eslint-utils": "^4.2.0",
+ "@eslint-community/regexpp": "^4.4.0",
+ "@eslint/eslintrc": "^2.0.1",
+ "@eslint/js": "8.36.0",
+ "@humanwhocodes/config-array": "^0.11.8",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@nodelib/fs.walk": "^1.2.8",
+ "ajv": "^6.10.0",
+ "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.1.1",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.5.0",
+ "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",
+ "grapheme-splitter": "^1.0.4",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "is-path-inside": "^3.0.3",
+ "js-sdsl": "^4.1.4",
+ "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.1",
+ "strip-ansi": "^6.0.1",
+ "strip-json-comments": "^3.1.0",
+ "text-table": "^0.2.0"
+ },
+ "dependencies": {
+ "eslint-scope": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ }
+ },
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ }
+ }
+ },
+ "eslint-config-prettier": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.8.0.tgz",
+ "integrity": "sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-plugin-svelte3": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-svelte3/-/eslint-plugin-svelte3-4.0.0.tgz",
+ "integrity": "sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==",
+ "dev": true,
+ "requires": {}
+ },
+ "eslint-scope": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
+ "dev": true,
+ "requires": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^4.1.1"
+ }
+ },
+ "eslint-visitor-keys": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
+ "dev": true
+ },
+ "esm-env": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/esm-env/-/esm-env-1.0.0.tgz",
+ "integrity": "sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==",
+ "dev": true
+ },
+ "espree": {
+ "version": "9.5.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.5.0.tgz",
+ "integrity": "sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.8.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.3.0"
+ }
+ },
+ "esquery": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
+ "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
+ "dev": true,
+ "requires": {
+ "estraverse": "^5.1.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ }
+ }
+ },
+ "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,
+ "requires": {
+ "estraverse": "^5.2.0"
+ },
+ "dependencies": {
+ "estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true
+ }
+ }
+ },
+ "estraverse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+ "dev": true
+ },
+ "esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true
+ },
+ "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
+ },
+ "fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "requires": {
+ "@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"
+ },
+ "dependencies": {
+ "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,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ }
+ }
+ },
+ "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
+ },
+ "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
+ },
+ "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,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "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,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "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,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "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,
+ "requires": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
+ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
+ "dev": true
+ },
+ "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
+ },
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "dev": true,
+ "requires": {
+ "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"
+ }
+ },
+ "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,
+ "requires": {
+ "is-glob": "^4.0.3"
+ }
+ },
+ "globals": {
+ "version": "13.20.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz",
+ "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==",
+ "dev": true,
+ "requires": {
+ "type-fest": "^0.20.2"
+ }
+ },
+ "globalyzer": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
+ "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
+ "dev": true
+ },
+ "globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "requires": {
+ "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"
+ }
+ },
+ "globrex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
+ "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
+ "dev": true
+ },
+ "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==",
+ "dev": true
+ },
+ "grapheme-splitter": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
+ "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "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
+ },
+ "husky": {
+ "version": "8.0.3",
+ "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz",
+ "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "5.2.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
+ "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ }
+ },
+ "import-meta-resolve": {
+ "version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.2.2.tgz",
+ "integrity": "sha512-f8KcQ1D80V7RnqVm+/lirO9zkOxjGxhaTC1IPrBGd3MEfNgmNG67tSUO9gTi2F3Blr2Az6g1vocaxzkVnWl9MA==",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "requires": {
+ "binary-extensions": "^2.0.0"
+ }
+ },
+ "is-core-module": {
+ "version": "2.11.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz",
+ "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "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
+ },
+ "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
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true
+ },
+ "js-sdsl": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
+ "integrity": "sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==",
+ "dev": true
+ },
+ "js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "requires": {
+ "argparse": "^2.0.1"
+ }
+ },
+ "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
+ },
+ "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
+ },
+ "kleur": {
+ "version": "4.1.5",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz",
+ "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ }
+ },
+ "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,
+ "requires": {
+ "p-locate": "^5.0.0"
+ }
+ },
+ "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
+ },
+ "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,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "magic-string": {
+ "version": "0.30.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
+ "integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ }
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "mime": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
+ "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
+ "dev": true
+ },
+ "min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true
+ },
+ "mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.6"
+ }
+ },
+ "mri": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz",
+ "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==",
+ "dev": true
+ },
+ "mrmime": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz",
+ "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==",
+ "dev": true
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "dev": true
+ },
+ "natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
+ },
+ "natural-compare-lite": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz",
+ "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==",
+ "dev": true
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "optionator": {
+ "version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
+ "dev": true,
+ "requires": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.3"
+ }
+ },
+ "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,
+ "requires": {
+ "yocto-queue": "^0.1.0"
+ }
+ },
+ "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,
+ "requires": {
+ "p-limit": "^3.0.2"
+ }
+ },
+ "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,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "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
+ },
+ "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
+ },
+ "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
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "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
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "postcss": {
+ "version": "8.4.21",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz",
+ "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==",
+ "dev": true,
+ "requires": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "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
+ },
+ "prettier": {
+ "version": "2.8.6",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.6.tgz",
+ "integrity": "sha512-mtuzdiBbHwPEgl7NxWlqOkithPyp4VN93V7VeHVWBF+ad3I5avc0RVDT4oImXQy9H/AqxA2NSQH8pSxHW6FYbQ==",
+ "dev": true
+ },
+ "prettier-plugin-svelte": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/prettier-plugin-svelte/-/prettier-plugin-svelte-2.9.0.tgz",
+ "integrity": "sha512-3doBi5NO4IVgaNPtwewvrgPpqAcvNv0NwJNflr76PIGgi9nf1oguQV1Hpdm9TI2ALIQVn/9iIwLpBO5UcD2Jiw==",
+ "dev": true,
+ "requires": {}
+ },
+ "punycode": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
+ "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
+ "dev": true
+ },
+ "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
+ },
+ "readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "requires": {
+ "picomatch": "^2.2.1"
+ }
+ },
+ "resolve": {
+ "version": "1.22.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
+ "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.9.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "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
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "rollup": {
+ "version": "3.20.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.20.0.tgz",
+ "integrity": "sha512-YsIfrk80NqUDrxrjWPXUa7PWvAfegZEXHuPsEZg58fGCdjL1I9C1i/NaG+L+27kxxwkrG/QEDEQc8s/ynXWWGQ==",
+ "dev": true,
+ "requires": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "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,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "sade": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz",
+ "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==",
+ "dev": true,
+ "requires": {
+ "mri": "^1.1.0"
+ }
+ },
+ "sander": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz",
+ "integrity": "sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==",
+ "dev": true,
+ "requires": {
+ "es6-promise": "^3.1.2",
+ "graceful-fs": "^4.1.3",
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.2"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
+ },
+ "semver": {
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "set-cookie-parser": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz",
+ "integrity": "sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "shebang-regex": "^3.0.0"
+ }
+ },
+ "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
+ },
+ "sirv": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz",
+ "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==",
+ "dev": true,
+ "requires": {
+ "@polka/url": "^1.0.0-next.20",
+ "mrmime": "^1.0.0",
+ "totalist": "^3.0.0"
+ }
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "sorcery": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.11.0.tgz",
+ "integrity": "sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.14",
+ "buffer-crc32": "^0.2.5",
+ "minimist": "^1.2.0",
+ "sander": "^0.5.0"
+ }
+ },
+ "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
+ },
+ "streamsearch": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+ "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
+ "dev": true
+ },
+ "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,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "requires": {
+ "min-indent": "^1.0.0"
+ }
+ },
+ "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
+ },
+ "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,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
+ "svelte": {
+ "version": "3.57.0",
+ "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.57.0.tgz",
+ "integrity": "sha512-WMXEvF+RtAaclw0t3bPDTUe19pplMlfyKDsixbHQYgCWi9+O9VN0kXU1OppzrB9gPAvz4NALuoca2LfW2bOjTQ==",
+ "dev": true
+ },
+ "svelte-check": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.1.4.tgz",
+ "integrity": "sha512-25Lb46ZS4IK/XpBMe4IBMrtYf23V8alqBX+szXoccb7uM0D2Wqq5rMRzYBONZnFVuU1bQG3R50lyIT5eRewv2g==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/trace-mapping": "^0.3.17",
+ "chokidar": "^3.4.1",
+ "fast-glob": "^3.2.7",
+ "import-fresh": "^3.2.1",
+ "picocolors": "^1.0.0",
+ "sade": "^1.7.4",
+ "svelte-preprocess": "^5.0.0",
+ "typescript": "^4.9.4"
+ }
+ },
+ "svelte-hmr": {
+ "version": "0.15.1",
+ "resolved": "https://registry.npmjs.org/svelte-hmr/-/svelte-hmr-0.15.1.tgz",
+ "integrity": "sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==",
+ "dev": true,
+ "requires": {}
+ },
+ "svelte-preprocess": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.3.tgz",
+ "integrity": "sha512-GrHF1rusdJVbOZOwgPWtpqmaexkydznKzy5qIC2FabgpFyKN57bjMUUUqPRfbBXK5igiEWn1uO/DXsa2vJ5VHA==",
+ "dev": true,
+ "requires": {
+ "@types/pug": "^2.0.6",
+ "detect-indent": "^6.1.0",
+ "magic-string": "^0.27.0",
+ "sorcery": "^0.11.0",
+ "strip-indent": "^3.0.0"
+ },
+ "dependencies": {
+ "magic-string": {
+ "version": "0.27.0",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.27.0.tgz",
+ "integrity": "sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/sourcemap-codec": "^1.4.13"
+ }
+ }
+ }
+ },
+ "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
+ },
+ "tiny-glob": {
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
+ "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
+ "dev": true,
+ "requires": {
+ "globalyzer": "0.1.0",
+ "globrex": "^0.1.2"
+ }
+ },
+ "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,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "totalist": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz",
+ "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==",
+ "dev": true
+ },
+ "tslib": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz",
+ "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==",
+ "dev": true
+ },
+ "tsutils": {
+ "version": "3.21.0",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
+ "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ },
+ "dependencies": {
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ }
+ }
+ },
+ "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,
+ "requires": {
+ "prelude-ls": "^1.2.1"
+ }
+ },
+ "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
+ },
+ "typescript": {
+ "version": "4.9.5",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz",
+ "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
+ "dev": true
+ },
+ "undici": {
+ "version": "5.21.0",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-5.21.0.tgz",
+ "integrity": "sha512-HOjK8l6a57b2ZGXOcUsI5NLfoTrfmbOl90ixJDl0AEFG4wgHNDQxtZy15/ZQp7HhjkpaGlp/eneMgtsu1dIlUA==",
+ "dev": true,
+ "requires": {
+ "busboy": "^1.6.0"
+ }
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "vite": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-4.2.1.tgz",
+ "integrity": "sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==",
+ "dev": true,
+ "requires": {
+ "esbuild": "^0.17.5",
+ "fsevents": "~2.3.2",
+ "postcss": "^8.4.21",
+ "resolve": "^1.22.1",
+ "rollup": "^3.18.0"
+ },
+ "dependencies": {
+ "@esbuild/android-arm": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.17.12.tgz",
+ "integrity": "sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz",
+ "integrity": "sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/android-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.17.12.tgz",
+ "integrity": "sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz",
+ "integrity": "sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/darwin-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz",
+ "integrity": "sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz",
+ "integrity": "sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/freebsd-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz",
+ "integrity": "sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz",
+ "integrity": "sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz",
+ "integrity": "sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ia32": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz",
+ "integrity": "sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-loong64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz",
+ "integrity": "sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-mips64el": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz",
+ "integrity": "sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-ppc64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz",
+ "integrity": "sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-riscv64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz",
+ "integrity": "sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-s390x": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz",
+ "integrity": "sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/linux-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz",
+ "integrity": "sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/netbsd-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz",
+ "integrity": "sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/openbsd-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz",
+ "integrity": "sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/sunos-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz",
+ "integrity": "sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-arm64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz",
+ "integrity": "sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-ia32": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz",
+ "integrity": "sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng==",
+ "dev": true,
+ "optional": true
+ },
+ "@esbuild/win32-x64": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz",
+ "integrity": "sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild": {
+ "version": "0.17.12",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.17.12.tgz",
+ "integrity": "sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ==",
+ "dev": true,
+ "requires": {
+ "@esbuild/android-arm": "0.17.12",
+ "@esbuild/android-arm64": "0.17.12",
+ "@esbuild/android-x64": "0.17.12",
+ "@esbuild/darwin-arm64": "0.17.12",
+ "@esbuild/darwin-x64": "0.17.12",
+ "@esbuild/freebsd-arm64": "0.17.12",
+ "@esbuild/freebsd-x64": "0.17.12",
+ "@esbuild/linux-arm": "0.17.12",
+ "@esbuild/linux-arm64": "0.17.12",
+ "@esbuild/linux-ia32": "0.17.12",
+ "@esbuild/linux-loong64": "0.17.12",
+ "@esbuild/linux-mips64el": "0.17.12",
+ "@esbuild/linux-ppc64": "0.17.12",
+ "@esbuild/linux-riscv64": "0.17.12",
+ "@esbuild/linux-s390x": "0.17.12",
+ "@esbuild/linux-x64": "0.17.12",
+ "@esbuild/netbsd-x64": "0.17.12",
+ "@esbuild/openbsd-x64": "0.17.12",
+ "@esbuild/sunos-x64": "0.17.12",
+ "@esbuild/win32-arm64": "0.17.12",
+ "@esbuild/win32-ia32": "0.17.12",
+ "@esbuild/win32-x64": "0.17.12"
+ }
+ }
+ }
+ },
+ "vitefu": {
+ "version": "0.2.4",
+ "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz",
+ "integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==",
+ "dev": true,
+ "requires": {}
+ },
+ "which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "word-wrap": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+ "dev": true
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "dev": true
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "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
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..628f5ff
--- /dev/null
+++ b/package.json
@@ -0,0 +1,43 @@
+{
+ "name": "cde-universe",
+ "version": "0.0.1",
+ "type": "module",
+ "scripts": {
+ "build": "vite build",
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
+ "dev": "vite dev",
+ "format": "prettier --write .",
+ "lint": "prettier --check . && eslint .",
+ "prepare": "husky install",
+ "preview": "vite preview"
+ },
+ "lint-staged": {
+ "*.{cjs,js,ts,css,scss,svelte}": [
+ "eslint --fix",
+ "prettier --write"
+ ]
+ },
+ "devDependencies": {
+ "@fontsource/fira-mono": "^4.5.10",
+ "@neoconfetti/svelte": "^1.0.0",
+ "@sveltejs/adapter-auto": "^2.0.0",
+ "@sveltejs/adapter-netlify": "^2.0.6",
+ "@sveltejs/kit": "^1.5.0",
+ "@types/cookie": "^0.5.1",
+ "@typescript-eslint/eslint-plugin": "^5.54.1",
+ "@typescript-eslint/parser": "^5.54.1",
+ "eslint": "^8.36.0",
+ "eslint-config-prettier": "^8.7.0",
+ "eslint-plugin-svelte3": "^4.0.0",
+ "husky": "^8.0.3",
+ "prettier": "^2.8.4",
+ "prettier-plugin-svelte": "^2.9.0",
+ "svelte": "^3.54.0",
+ "svelte-check": "^3.0.1",
+ "svelte-preprocess": "^5.0.1",
+ "tslib": "^2.4.1",
+ "typescript": "^4.9.3",
+ "vite": "^4.0.0"
+ }
+}
diff --git a/src/app.d.ts b/src/app.d.ts
new file mode 100644
index 0000000..899c7e8
--- /dev/null
+++ b/src/app.d.ts
@@ -0,0 +1,12 @@
+// See https://kit.svelte.dev/docs/types#app
+// for information about these interfaces
+declare global {
+ namespace App {
+ // interface Error {}
+ // interface Locals {}
+ // interface PageData {}
+ // interface Platform {}
+ }
+}
+
+export {};
diff --git a/src/app.html b/src/app.html
new file mode 100644
index 0000000..117bd02
--- /dev/null
+++ b/src/app.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
+
diff --git a/src/lib/images/github.svg b/src/lib/images/github.svg
new file mode 100644
index 0000000..bc5d249
--- /dev/null
+++ b/src/lib/images/github.svg
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/lib/images/svelte-logo.svg b/src/lib/images/svelte-logo.svg
new file mode 100644
index 0000000..49492a8
--- /dev/null
+++ b/src/lib/images/svelte-logo.svg
@@ -0,0 +1 @@
+svelte-logo
\ No newline at end of file
diff --git a/src/lib/images/svelte-welcome.png b/src/lib/images/svelte-welcome.png
new file mode 100644
index 0000000..fe7d2d6
Binary files /dev/null and b/src/lib/images/svelte-welcome.png differ
diff --git a/src/lib/images/svelte-welcome.webp b/src/lib/images/svelte-welcome.webp
new file mode 100644
index 0000000..6ec1a28
Binary files /dev/null and b/src/lib/images/svelte-welcome.webp differ
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
new file mode 100644
index 0000000..a4aea7f
--- /dev/null
+++ b/src/routes/+layout.svelte
@@ -0,0 +1,55 @@
+
+
+
+
+
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
new file mode 100644
index 0000000..cb86aef
--- /dev/null
+++ b/src/routes/+page.svelte
@@ -0,0 +1,59 @@
+
+
+
+ Home
+
+
+
+
+
+
+
+
+
+
+
+
+ to your new SvelteKit app
+
+
+
+ try editing src/routes/+page.svelte
+
+
+
+
+
+
diff --git a/src/routes/+page.ts b/src/routes/+page.ts
new file mode 100644
index 0000000..a72419a
--- /dev/null
+++ b/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/src/routes/Counter.svelte b/src/routes/Counter.svelte
new file mode 100644
index 0000000..84e2a9e
--- /dev/null
+++ b/src/routes/Counter.svelte
@@ -0,0 +1,113 @@
+
+
+
+
(count -= 1)}
+ aria-label="Decrease the counter by one"
+ >
+
+
+
+
+
+
+
+ {Math.floor($displayed_count + 1)}
+ {Math.floor($displayed_count)}
+
+
+
+
(count += 1)}
+ aria-label="Increase the counter by one"
+ >
+
+
+
+
+
+
+
diff --git a/src/routes/Header.svelte b/src/routes/Header.svelte
new file mode 100644
index 0000000..c867ca2
--- /dev/null
+++ b/src/routes/Header.svelte
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/routes/about/+page.svelte b/src/routes/about/+page.svelte
new file mode 100644
index 0000000..b590233
--- /dev/null
+++ b/src/routes/about/+page.svelte
@@ -0,0 +1,27 @@
+
+ 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/src/routes/about/+page.ts b/src/routes/about/+page.ts
new file mode 100644
index 0000000..cd03567
--- /dev/null
+++ b/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/src/routes/styles.css b/src/routes/styles.css
new file mode 100644
index 0000000..d75a05d
--- /dev/null
+++ b/src/routes/styles.css
@@ -0,0 +1,112 @@
+@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/src/routes/sverdle/+page.server.ts b/src/routes/sverdle/+page.server.ts
new file mode 100644
index 0000000..6b77347
--- /dev/null
+++ b/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/src/routes/sverdle/+page.svelte b/src/routes/sverdle/+page.svelte
new file mode 100644
index 0000000..1e89b66
--- /dev/null
+++ b/src/routes/sverdle/+page.svelte
@@ -0,0 +1,414 @@
+
+
+
+
+
+ Sverdle
+
+
+
+Sverdle
+
+
+
+{#if won}
+
+{/if}
+
+
diff --git a/src/routes/sverdle/game.ts b/src/routes/sverdle/game.ts
new file mode 100644
index 0000000..a0f4ca3
--- /dev/null
+++ b/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/src/routes/sverdle/how-to-play/+page.svelte b/src/routes/sverdle/how-to-play/+page.svelte
new file mode 100644
index 0000000..a253ede
--- /dev/null
+++ b/src/routes/sverdle/how-to-play/+page.svelte
@@ -0,0 +1,102 @@
+
+ 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/src/routes/sverdle/how-to-play/+page.ts b/src/routes/sverdle/how-to-play/+page.ts
new file mode 100644
index 0000000..cd03567
--- /dev/null
+++ b/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/src/routes/sverdle/reduced-motion.ts b/src/routes/sverdle/reduced-motion.ts
new file mode 100644
index 0000000..c57cb78
--- /dev/null
+++ b/src/routes/sverdle/reduced-motion.ts
@@ -0,0 +1,26 @@
+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/src/routes/sverdle/words.server.ts b/src/routes/sverdle/words.server.ts
new file mode 100644
index 0000000..bef4674
--- /dev/null
+++ b/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/static/favicon.png b/static/favicon.png
new file mode 100644
index 0000000..825b9e6
Binary files /dev/null and b/static/favicon.png differ
diff --git a/static/robots.txt b/static/robots.txt
new file mode 100644
index 0000000..e9e57dc
--- /dev/null
+++ b/static/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/svelte.config.js b/svelte.config.js
new file mode 100644
index 0000000..e308e65
--- /dev/null
+++ b/svelte.config.js
@@ -0,0 +1,20 @@
+import adapter from "@sveltejs/adapter-netlify";
+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({
+ split: true,
+ }),
+ },
+};
+
+export default config;
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..794b95b
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,17 @@
+{
+ "extends": "./.svelte-kit/tsconfig.json",
+ "compilerOptions": {
+ "allowJs": true,
+ "checkJs": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "sourceMap": true,
+ "strict": true
+ }
+ // 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/vite.config.ts b/vite.config.ts
new file mode 100644
index 0000000..281635f
--- /dev/null
+++ b/vite.config.ts
@@ -0,0 +1,13 @@
+import { sveltekit } from "@sveltejs/kit/vite";
+import { defineConfig } from "vite";
+
+export default defineConfig({
+ plugins: [sveltekit()],
+ preview: {
+ port: 3000,
+ open: true,
+ },
+ server: {
+ port: 3000,
+ },
+});