diff --git a/.changeset/README.md b/.changeset/README.md
new file mode 100644
index 0000000..e5b6d8d
--- /dev/null
+++ b/.changeset/README.md
@@ -0,0 +1,8 @@
+# Changesets
+
+Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
+with multi-package repos, or single-package repos to help you version and publish your code. You can
+find the full documentation for it [in our repository](https://github.com/changesets/changesets)
+
+We have a quick list of common questions to get you started engaging with this project in
+[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
diff --git a/.changeset/config.json b/.changeset/config.json
new file mode 100644
index 0000000..91b6a95
--- /dev/null
+++ b/.changeset/config.json
@@ -0,0 +1,11 @@
+{
+ "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json",
+ "changelog": "@changesets/cli/changelog",
+ "commit": false,
+ "fixed": [],
+ "linked": [],
+ "access": "restricted",
+ "baseBranch": "main",
+ "updateInternalDependencies": "patch",
+ "ignore": []
+}
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
new file mode 100644
index 0000000..992bfc9
--- /dev/null
+++ b/.eslintrc.cjs
@@ -0,0 +1,5 @@
+module.exports = {
+ root: true,
+ // This tells ESLint to load the config from the package `eslint-config-custom`
+ extends: ['custom']
+};
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index e928b86..0000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// This configuration only applies to the package manager root.
-/** @type {import("eslint").Linter.Config} */
-module.exports = {
- ignorePatterns: ["apps/**", "packages/**"],
- extends: ["@repo/eslint-config/library.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
-};
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..ddb095d
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,35 @@
+name: Changesets
+on:
+ push:
+ branches:
+ - main
+env:
+ CI: true
+ PNPM_CACHE_FOLDER: .pnpm-store
+jobs:
+ version:
+ timeout-minutes: 15
+ runs-on: ubuntu-latest
+ steps:
+ - name: checkout code repository
+ uses: actions/checkout@v3
+ with:
+ fetch-depth: 0
+ - name: setup node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: 14
+ - name: install pnpm
+ run: npm i pnpm@latest -g
+ - name: Setup npmrc
+ run: echo "//registry.npmjs.org/:_authToken=${{ secrets.PUBLISH_TOKEN }}" > .npmrc
+ - name: setup pnpm config
+ run: pnpm config set store-dir $PNPM_CACHE_FOLDER
+ - name: install dependencies
+ run: pnpm install
+ - name: create and publish versions
+ uses: changesets/action@v1
+ with:
+ publish: pnpm ci:publish
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
index 96fab4f..fa3a702 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,38 +1,35 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
-# Dependencies
+# dependencies
node_modules
.pnp
.pnp.js
-# Local env files
-.env
+# testing
+coverage
+
+# svelte
+.svelte-kit
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+
+# local env files
.env.local
.env.development.local
.env.test.local
.env.production.local
-# Testing
-coverage
-
-# Turbo
+# turbo
.turbo
-# Vercel
-.vercel
-
-# Build Outputs
-.next/
-out/
+# builds
build
+out
dist
-
-
-# Debug
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# Misc
-.DS_Store
-*.pem
diff --git a/.npmrc b/.npmrc
index e69de29..1560b99 100644
--- a/.npmrc
+++ b/.npmrc
@@ -0,0 +1 @@
+auto-install-peers = true
\ No newline at end of file
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..3c5376b
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,15 @@
+.DS_Store
+.svelte-kit
+node_modules
+/build
+/package
+.env
+.env.*
+!.env.example
+vite.config.js*
+
+# Ignore files for PNPM, NPM and YARN
+pnpm-lock.yaml
+pnpm-workspace.yaml
+package-lock.json
+yarn.lock
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..ab57af6
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,5 @@
+{
+ "singleQuote": true,
+ "trailingComma": "none",
+ "printWidth": 100
+}
diff --git a/apps/docs/.eslintrc.js b/apps/docs/.eslintrc.js
deleted file mode 100644
index 7d644a4..0000000
--- a/apps/docs/.eslintrc.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/** @type {import("eslint").Linter.Config} */
-module.exports = {
- root: true,
- extends: ["@repo/eslint-config/next.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
-};
diff --git a/apps/docs/README.md b/apps/docs/README.md
deleted file mode 100644
index d364535..0000000
--- a/apps/docs/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-## Getting Started
-
-First, run the development server:
-
-```bash
-yarn dev
-```
-
-Open [http://localhost:3001](http://localhost:3001) with your browser to see the result.
-
-You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
-
-To create [API routes](https://nextjs.org/docs/app/building-your-application/routing/router-handlers) add an `api/` directory to the `app/` directory with a `route.ts` file. For individual endpoints, create a subfolder in the `api` directory, like `api/hello/route.ts` would map to [http://localhost:3001/api/hello](http://localhost:3001/api/hello).
-
-## Learn More
-
-To learn more about Next.js, take a look at the following resources:
-
-- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
-- [Learn Next.js](https://nextjs.org/learn/foundations/about-nextjs) - an interactive Next.js tutorial.
-
-You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
-
-## Deploy on Vercel
-
-The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js.
-
-Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
diff --git a/apps/docs/app/favicon.ico b/apps/docs/app/favicon.ico
deleted file mode 100644
index 3f804c0..0000000
Binary files a/apps/docs/app/favicon.ico and /dev/null differ
diff --git a/apps/docs/app/globals.css b/apps/docs/app/globals.css
deleted file mode 100644
index 8eee6cb..0000000
--- a/apps/docs/app/globals.css
+++ /dev/null
@@ -1,50 +0,0 @@
-:root {
- --max-width: 1100px;
- --border-radius: 12px;
- --font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono",
- "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro",
- "Fira Mono", "Droid Sans Mono", "Courier New", monospace;
-
- --foreground-rgb: 255, 255, 255;
- --background-start-rgb: 0, 0, 0;
- --background-end-rgb: 0, 0, 0;
-
- --callout-rgb: 20, 20, 20;
- --callout-border-rgb: 108, 108, 108;
- --card-rgb: 100, 100, 100;
- --card-border-rgb: 200, 200, 200;
-
- --glow-conic: conic-gradient(
- from 180deg at 50% 50%,
- #2a8af6 0deg,
- #a853ba 180deg,
- #e92a67 360deg
- );
-}
-
-* {
- box-sizing: border-box;
- padding: 0;
- margin: 0;
-}
-
-html,
-body {
- max-width: 100vw;
- overflow-x: hidden;
-}
-
-body {
- color: rgb(var(--foreground-rgb));
- background: linear-gradient(
- to bottom,
- transparent,
- rgb(var(--background-end-rgb))
- )
- rgb(var(--background-start-rgb));
-}
-
-a {
- color: inherit;
- text-decoration: none;
-}
diff --git a/apps/docs/app/layout.tsx b/apps/docs/app/layout.tsx
deleted file mode 100644
index 5f90d11..0000000
--- a/apps/docs/app/layout.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import "./globals.css";
-import type { Metadata } from "next";
-import { Inter } from "next/font/google";
-
-const inter = Inter({ subsets: ["latin"] });
-
-export const metadata: Metadata = {
- title: "Create Turborepo",
- description: "Generated by create turbo",
-};
-
-export default function RootLayout({
- children,
-}: {
- children: React.ReactNode;
-}): JSX.Element {
- return (
-
-
{children}
-
- );
-}
diff --git a/apps/docs/app/page.module.css b/apps/docs/app/page.module.css
deleted file mode 100644
index 98481c6..0000000
--- a/apps/docs/app/page.module.css
+++ /dev/null
@@ -1,335 +0,0 @@
-.main {
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- align-items: center;
- padding: 6rem;
- min-height: 100vh;
-}
-
-.vercelLogo {
- filter: invert(1);
-}
-
-.description {
- display: inherit;
- justify-content: inherit;
- align-items: inherit;
- font-size: 0.85rem;
- max-width: var(--max-width);
- width: 100%;
- z-index: 2;
- font-family: var(--font-mono);
-}
-
-.description a {
- display: flex;
- justify-content: center;
- align-items: center;
- gap: 0.5rem;
-}
-
-.description p {
- position: relative;
- margin: 0;
- padding: 1rem;
- background-color: rgba(var(--callout-rgb), 0.5);
- border: 1px solid rgba(var(--callout-border-rgb), 0.3);
- border-radius: var(--border-radius);
-}
-
-.code {
- font-weight: 700;
- font-family: var(--font-mono);
-}
-
-.hero {
- display: flex;
- position: relative;
- place-items: center;
-}
-
-.heroContent {
- display: flex;
- position: relative;
- z-index: 0;
- padding-bottom: 4rem;
- flex-direction: column;
- gap: 2rem;
- justify-content: space-between;
- align-items: center;
- width: auto;
- font-family: system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial,
- "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
- "Segoe UI Symbol", "Noto Color Emoji";
- padding-top: 48px;
-
- @media (min-width: 768px) {
- padding-top: 4rem;
- padding-bottom: 6rem;
- }
- @media (min-width: 1024px) {
- padding-top: 5rem;
- padding-bottom: 8rem;
- }
-}
-
-.logos {
- display: flex;
- z-index: 50;
- justify-content: center;
- align-items: center;
- width: 100%;
-}
-
-.grid {
- display: grid;
- grid-template-columns: repeat(4, minmax(25%, auto));
- max-width: 100%;
- width: var(--max-width);
-}
-
-.card {
- padding: 1rem 1.2rem;
- border-radius: var(--border-radius);
- background: rgba(var(--card-rgb), 0);
- border: 1px solid rgba(var(--card-border-rgb), 0);
- transition: background 200ms, border 200ms;
-}
-
-.card span {
- display: inline-block;
- transition: transform 200ms;
-}
-
-.card h2 {
- font-weight: 600;
- margin-bottom: 0.7rem;
-}
-
-.card p {
- margin: 0;
- opacity: 0.6;
- font-size: 0.9rem;
- line-height: 1.5;
- max-width: 30ch;
-}
-
-@media (prefers-reduced-motion) {
- .card:hover span {
- transform: none;
- }
-}
-
-/* Mobile */
-@media (max-width: 700px) {
- .content {
- padding: 4rem;
- }
-
- .grid {
- grid-template-columns: 1fr;
- margin-bottom: 120px;
- max-width: 320px;
- text-align: center;
- }
-
- .card {
- padding: 1rem 2.5rem;
- }
-
- .card h2 {
- margin-bottom: 0.5rem;
- }
-
- .center {
- padding: 8rem 0 6rem;
- }
-
- .center::before {
- transform: none;
- height: 300px;
- }
-
- .description {
- font-size: 0.8rem;
- }
-
- .description a {
- padding: 1rem;
- }
-
- .description p,
- .description div {
- display: flex;
- justify-content: center;
- position: fixed;
- width: 100%;
- }
-
- .description p {
- align-items: center;
- inset: 0 0 auto;
- padding: 2rem 1rem 1.4rem;
- border-radius: 0;
- border: none;
- border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25);
- background: linear-gradient(
- to bottom,
- rgba(var(--background-start-rgb), 1),
- rgba(var(--callout-rgb), 0.5)
- );
- background-clip: padding-box;
- backdrop-filter: blur(24px);
- }
-
- .description div {
- align-items: flex-end;
- pointer-events: none;
- inset: auto 0 0;
- padding: 2rem;
- height: 200px;
- background: linear-gradient(
- to bottom,
- transparent 0%,
- rgb(var(--background-end-rgb)) 40%
- );
- z-index: 1;
- }
-}
-
-/* Enable hover only on non-touch devices */
-@media (hover: hover) and (pointer: fine) {
- .card:hover {
- background: rgba(var(--card-rgb), 0.1);
- border: 1px solid rgba(var(--card-border-rgb), 0.15);
- }
-
- .card:hover span {
- transform: translateX(4px);
- }
-}
-
-.circles {
- position: absolute;
- min-width: 614px;
- min-height: 614px;
- pointer-events: none;
-}
-
-.logo {
- z-index: 50;
- width: 120px;
- height: 120px;
-}
-
-.logoGradientContainer {
- display: flex;
- position: absolute;
- z-index: 50;
- justify-content: center;
- align-items: center;
- width: 16rem;
- height: 16rem;
-}
-
-.turborepoWordmarkContainer {
- display: flex;
- z-index: 50;
- padding-left: 1.5rem;
- padding-right: 1.5rem;
- flex-direction: column;
- gap: 1.25rem;
- justify-content: center;
- align-items: center;
- text-align: center;
-
- @media (min-width: 1024px) {
- gap: 1.5rem;
- }
-}
-
-.turborepoWordmark {
- width: 160px;
- fill: white;
-
- @media (min-width: 768px) {
- width: 200px;
- }
-}
-
-.code {
- font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
- monospace;
- font-weight: 700;
-}
-
-/* Tablet and Smaller Desktop */
-@media (min-width: 701px) and (max-width: 1120px) {
- .grid {
- grid-template-columns: repeat(2, 50%);
- }
-}
-
-/* Gradients */
-.gradient {
- position: absolute;
- mix-blend-mode: normal;
- will-change: filter;
- pointer-events: none;
-}
-
-.gradientSmall {
- filter: blur(32px);
-}
-
-.gradientLarge {
- filter: blur(75px);
-}
-
-.glowConic {
- background-image: var(--glow-conic);
-}
-
-.logoGradient {
- opacity: 0.9;
- width: 120px;
- height: 120px;
-}
-
-.backgroundGradient {
- top: -500px;
- width: 1000px;
- height: 1000px;
- opacity: 0.15;
-}
-
-.button {
- background-color: #ffffff;
- border-radius: 8px;
- border-style: none;
- box-sizing: border-box;
- color: #000000;
- cursor: pointer;
- display: inline-block;
- font-size: 16px;
- height: 40px;
- line-height: 20px;
- list-style: none;
- margin: 0;
- outline: none;
- padding: 10px 16px;
- position: relative;
- text-align: center;
- text-decoration: none;
- transition: color 100ms;
- vertical-align: baseline;
- user-select: none;
- -webkit-user-select: none;
- touch-action: manipulation;
-}
-
-.button:hover,
-.button:focus {
- background-color: #e5e4e2;
-}
diff --git a/apps/docs/app/page.tsx b/apps/docs/app/page.tsx
deleted file mode 100644
index 5ca2020..0000000
--- a/apps/docs/app/page.tsx
+++ /dev/null
@@ -1,144 +0,0 @@
-import Image from "next/image";
-import { Card } from "@repo/ui/card";
-import { Code } from "@repo/ui/code";
-import styles from "./page.module.css";
-import { Button } from "@repo/ui/button";
-
-function Gradient({
- conic,
- className,
- small,
-}: {
- small?: boolean;
- conic?: boolean;
- className?: string;
-}): JSX.Element {
- return (
-
- );
-}
-
-const LINKS = [
- {
- title: "Docs",
- href: "https://turbo.build/repo/docs",
- description: "Find in-depth information about Turborepo features and API.",
- },
- {
- title: "Learn",
- href: "https://turbo.build/repo/docs/handbook",
- description: "Learn more about monorepos with our handbook.",
- },
- {
- title: "Templates",
- href: "https://turbo.build/repo/docs/getting-started/from-example",
- description: "Choose from over 15 examples and deploy with a single click.",
- },
- {
- title: "Deploy",
- href: "https://vercel.com/new",
- description:
- "Instantly deploy your Turborepo to a shareable URL with Vercel.",
- },
-];
-
-export default function Page(): JSX.Element {
- return (
-
-
-
- examples/basic
- docs
-
-
-
-
-
- Click me!
-
-
-
-
-
-
-
-
- Turborepo logo
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {LINKS.map(({ title, href, description }) => (
-
- {description}
-
- ))}
-
-
- );
-}
diff --git a/apps/docs/next-env.d.ts b/apps/docs/next-env.d.ts
deleted file mode 100644
index 4f11a03..0000000
--- a/apps/docs/next-env.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-///
-///
-
-// NOTE: This file should not be edited
-// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/apps/docs/next.config.js b/apps/docs/next.config.js
deleted file mode 100644
index a5b0aec..0000000
--- a/apps/docs/next.config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** @type {import('next').NextConfig} */
-module.exports = {
- transpilePackages: ["@repo/ui"],
-};
diff --git a/apps/docs/package.json b/apps/docs/package.json
deleted file mode 100644
index 37fb11e..0000000
--- a/apps/docs/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "docs",
- "version": "1.0.0",
- "private": true,
- "scripts": {
- "dev": "next dev --port 3001",
- "build": "next build",
- "start": "next start",
- "lint": "eslint . --max-warnings 0"
- },
- "dependencies": {
- "@repo/ui": "workspace:*",
- "next": "^14.0.4",
- "react": "^18.2.0",
- "react-dom": "^18.2.0"
- },
- "devDependencies": {
- "@next/eslint-plugin-next": "^14.0.4",
- "@repo/eslint-config": "workspace:*",
- "@repo/typescript-config": "workspace:*",
- "@types/eslint": "^8.56.1",
- "@types/node": "^20.10.6",
- "@types/react": "^18.2.46",
- "@types/react-dom": "^18.2.18",
- "eslint": "^8.56.0",
- "typescript": "^5.3.3"
- }
-}
diff --git a/apps/docs/public/circles.svg b/apps/docs/public/circles.svg
deleted file mode 100644
index 6533be5..0000000
--- a/apps/docs/public/circles.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/apps/docs/public/next.svg b/apps/docs/public/next.svg
deleted file mode 100644
index 5174b28..0000000
--- a/apps/docs/public/next.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/docs/public/turborepo.svg b/apps/docs/public/turborepo.svg
deleted file mode 100644
index 2f9aa1f..0000000
--- a/apps/docs/public/turborepo.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/docs/public/vercel.svg b/apps/docs/public/vercel.svg
deleted file mode 100644
index d2f8422..0000000
--- a/apps/docs/public/vercel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/docs/tsconfig.json b/apps/docs/tsconfig.json
deleted file mode 100644
index 24e7548..0000000
--- a/apps/docs/tsconfig.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@repo/typescript-config/nextjs.json",
- "compilerOptions": {
- "plugins": [
- {
- "name": "next"
- }
- ]
- },
- "include": [
- "next-env.d.ts",
- "next.config.js",
- "**/*.ts",
- "**/*.tsx",
- ".next/types/**/*.ts"
- ],
- "exclude": ["node_modules"]
-}
diff --git a/apps/web/.eslintrc.js b/apps/web/.eslintrc.js
deleted file mode 100644
index 7d644a4..0000000
--- a/apps/web/.eslintrc.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/** @type {import("eslint").Linter.Config} */
-module.exports = {
- root: true,
- extends: ["@repo/eslint-config/next.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: true,
- },
-};
diff --git a/apps/web/README.md b/apps/web/README.md
deleted file mode 100644
index 3d7b63a..0000000
--- a/apps/web/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-## Getting Started
-
-First, run the development server:
-
-```bash
-yarn dev
-```
-
-Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
-
-You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
-
-To create [API routes](https://nextjs.org/docs/app/building-your-application/routing/router-handlers) add an `api/` directory to the `app/` directory with a `route.ts` file. For individual endpoints, create a subfolder in the `api` directory, like `api/hello/route.ts` would map to [http://localhost:3000/api/hello](http://localhost:3000/api/hello).
-
-## Learn More
-
-To learn more about Next.js, take a look at the following resources:
-
-- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
-- [Learn Next.js](https://nextjs.org/learn/foundations/about-nextjs) - an interactive Next.js tutorial.
-
-You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!
-
-## Deploy on Vercel
-
-The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_source=github.com&utm_medium=referral&utm_campaign=turborepo-readme) from the creators of Next.js.
-
-Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
diff --git a/apps/web/app/favicon.ico b/apps/web/app/favicon.ico
deleted file mode 100644
index 3f804c0..0000000
Binary files a/apps/web/app/favicon.ico and /dev/null differ
diff --git a/apps/web/app/globals.css b/apps/web/app/globals.css
deleted file mode 100644
index 8eee6cb..0000000
--- a/apps/web/app/globals.css
+++ /dev/null
@@ -1,50 +0,0 @@
-:root {
- --max-width: 1100px;
- --border-radius: 12px;
- --font-mono: ui-monospace, Menlo, Monaco, "Cascadia Mono", "Segoe UI Mono",
- "Roboto Mono", "Oxygen Mono", "Ubuntu Monospace", "Source Code Pro",
- "Fira Mono", "Droid Sans Mono", "Courier New", monospace;
-
- --foreground-rgb: 255, 255, 255;
- --background-start-rgb: 0, 0, 0;
- --background-end-rgb: 0, 0, 0;
-
- --callout-rgb: 20, 20, 20;
- --callout-border-rgb: 108, 108, 108;
- --card-rgb: 100, 100, 100;
- --card-border-rgb: 200, 200, 200;
-
- --glow-conic: conic-gradient(
- from 180deg at 50% 50%,
- #2a8af6 0deg,
- #a853ba 180deg,
- #e92a67 360deg
- );
-}
-
-* {
- box-sizing: border-box;
- padding: 0;
- margin: 0;
-}
-
-html,
-body {
- max-width: 100vw;
- overflow-x: hidden;
-}
-
-body {
- color: rgb(var(--foreground-rgb));
- background: linear-gradient(
- to bottom,
- transparent,
- rgb(var(--background-end-rgb))
- )
- rgb(var(--background-start-rgb));
-}
-
-a {
- color: inherit;
- text-decoration: none;
-}
diff --git a/apps/web/app/layout.tsx b/apps/web/app/layout.tsx
deleted file mode 100644
index 5f90d11..0000000
--- a/apps/web/app/layout.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import "./globals.css";
-import type { Metadata } from "next";
-import { Inter } from "next/font/google";
-
-const inter = Inter({ subsets: ["latin"] });
-
-export const metadata: Metadata = {
- title: "Create Turborepo",
- description: "Generated by create turbo",
-};
-
-export default function RootLayout({
- children,
-}: {
- children: React.ReactNode;
-}): JSX.Element {
- return (
-
- {children}
-
- );
-}
diff --git a/apps/web/app/page.module.css b/apps/web/app/page.module.css
deleted file mode 100644
index 98481c6..0000000
--- a/apps/web/app/page.module.css
+++ /dev/null
@@ -1,335 +0,0 @@
-.main {
- display: flex;
- flex-direction: column;
- justify-content: space-between;
- align-items: center;
- padding: 6rem;
- min-height: 100vh;
-}
-
-.vercelLogo {
- filter: invert(1);
-}
-
-.description {
- display: inherit;
- justify-content: inherit;
- align-items: inherit;
- font-size: 0.85rem;
- max-width: var(--max-width);
- width: 100%;
- z-index: 2;
- font-family: var(--font-mono);
-}
-
-.description a {
- display: flex;
- justify-content: center;
- align-items: center;
- gap: 0.5rem;
-}
-
-.description p {
- position: relative;
- margin: 0;
- padding: 1rem;
- background-color: rgba(var(--callout-rgb), 0.5);
- border: 1px solid rgba(var(--callout-border-rgb), 0.3);
- border-radius: var(--border-radius);
-}
-
-.code {
- font-weight: 700;
- font-family: var(--font-mono);
-}
-
-.hero {
- display: flex;
- position: relative;
- place-items: center;
-}
-
-.heroContent {
- display: flex;
- position: relative;
- z-index: 0;
- padding-bottom: 4rem;
- flex-direction: column;
- gap: 2rem;
- justify-content: space-between;
- align-items: center;
- width: auto;
- font-family: system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial,
- "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
- "Segoe UI Symbol", "Noto Color Emoji";
- padding-top: 48px;
-
- @media (min-width: 768px) {
- padding-top: 4rem;
- padding-bottom: 6rem;
- }
- @media (min-width: 1024px) {
- padding-top: 5rem;
- padding-bottom: 8rem;
- }
-}
-
-.logos {
- display: flex;
- z-index: 50;
- justify-content: center;
- align-items: center;
- width: 100%;
-}
-
-.grid {
- display: grid;
- grid-template-columns: repeat(4, minmax(25%, auto));
- max-width: 100%;
- width: var(--max-width);
-}
-
-.card {
- padding: 1rem 1.2rem;
- border-radius: var(--border-radius);
- background: rgba(var(--card-rgb), 0);
- border: 1px solid rgba(var(--card-border-rgb), 0);
- transition: background 200ms, border 200ms;
-}
-
-.card span {
- display: inline-block;
- transition: transform 200ms;
-}
-
-.card h2 {
- font-weight: 600;
- margin-bottom: 0.7rem;
-}
-
-.card p {
- margin: 0;
- opacity: 0.6;
- font-size: 0.9rem;
- line-height: 1.5;
- max-width: 30ch;
-}
-
-@media (prefers-reduced-motion) {
- .card:hover span {
- transform: none;
- }
-}
-
-/* Mobile */
-@media (max-width: 700px) {
- .content {
- padding: 4rem;
- }
-
- .grid {
- grid-template-columns: 1fr;
- margin-bottom: 120px;
- max-width: 320px;
- text-align: center;
- }
-
- .card {
- padding: 1rem 2.5rem;
- }
-
- .card h2 {
- margin-bottom: 0.5rem;
- }
-
- .center {
- padding: 8rem 0 6rem;
- }
-
- .center::before {
- transform: none;
- height: 300px;
- }
-
- .description {
- font-size: 0.8rem;
- }
-
- .description a {
- padding: 1rem;
- }
-
- .description p,
- .description div {
- display: flex;
- justify-content: center;
- position: fixed;
- width: 100%;
- }
-
- .description p {
- align-items: center;
- inset: 0 0 auto;
- padding: 2rem 1rem 1.4rem;
- border-radius: 0;
- border: none;
- border-bottom: 1px solid rgba(var(--callout-border-rgb), 0.25);
- background: linear-gradient(
- to bottom,
- rgba(var(--background-start-rgb), 1),
- rgba(var(--callout-rgb), 0.5)
- );
- background-clip: padding-box;
- backdrop-filter: blur(24px);
- }
-
- .description div {
- align-items: flex-end;
- pointer-events: none;
- inset: auto 0 0;
- padding: 2rem;
- height: 200px;
- background: linear-gradient(
- to bottom,
- transparent 0%,
- rgb(var(--background-end-rgb)) 40%
- );
- z-index: 1;
- }
-}
-
-/* Enable hover only on non-touch devices */
-@media (hover: hover) and (pointer: fine) {
- .card:hover {
- background: rgba(var(--card-rgb), 0.1);
- border: 1px solid rgba(var(--card-border-rgb), 0.15);
- }
-
- .card:hover span {
- transform: translateX(4px);
- }
-}
-
-.circles {
- position: absolute;
- min-width: 614px;
- min-height: 614px;
- pointer-events: none;
-}
-
-.logo {
- z-index: 50;
- width: 120px;
- height: 120px;
-}
-
-.logoGradientContainer {
- display: flex;
- position: absolute;
- z-index: 50;
- justify-content: center;
- align-items: center;
- width: 16rem;
- height: 16rem;
-}
-
-.turborepoWordmarkContainer {
- display: flex;
- z-index: 50;
- padding-left: 1.5rem;
- padding-right: 1.5rem;
- flex-direction: column;
- gap: 1.25rem;
- justify-content: center;
- align-items: center;
- text-align: center;
-
- @media (min-width: 1024px) {
- gap: 1.5rem;
- }
-}
-
-.turborepoWordmark {
- width: 160px;
- fill: white;
-
- @media (min-width: 768px) {
- width: 200px;
- }
-}
-
-.code {
- font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New",
- monospace;
- font-weight: 700;
-}
-
-/* Tablet and Smaller Desktop */
-@media (min-width: 701px) and (max-width: 1120px) {
- .grid {
- grid-template-columns: repeat(2, 50%);
- }
-}
-
-/* Gradients */
-.gradient {
- position: absolute;
- mix-blend-mode: normal;
- will-change: filter;
- pointer-events: none;
-}
-
-.gradientSmall {
- filter: blur(32px);
-}
-
-.gradientLarge {
- filter: blur(75px);
-}
-
-.glowConic {
- background-image: var(--glow-conic);
-}
-
-.logoGradient {
- opacity: 0.9;
- width: 120px;
- height: 120px;
-}
-
-.backgroundGradient {
- top: -500px;
- width: 1000px;
- height: 1000px;
- opacity: 0.15;
-}
-
-.button {
- background-color: #ffffff;
- border-radius: 8px;
- border-style: none;
- box-sizing: border-box;
- color: #000000;
- cursor: pointer;
- display: inline-block;
- font-size: 16px;
- height: 40px;
- line-height: 20px;
- list-style: none;
- margin: 0;
- outline: none;
- padding: 10px 16px;
- position: relative;
- text-align: center;
- text-decoration: none;
- transition: color 100ms;
- vertical-align: baseline;
- user-select: none;
- -webkit-user-select: none;
- touch-action: manipulation;
-}
-
-.button:hover,
-.button:focus {
- background-color: #e5e4e2;
-}
diff --git a/apps/web/app/page.tsx b/apps/web/app/page.tsx
deleted file mode 100644
index 95186e8..0000000
--- a/apps/web/app/page.tsx
+++ /dev/null
@@ -1,144 +0,0 @@
-import Image from "next/image";
-import { Card } from "@repo/ui/card";
-import { Code } from "@repo/ui/code";
-import styles from "./page.module.css";
-import { Button } from "@repo/ui/button";
-
-function Gradient({
- conic,
- className,
- small,
-}: {
- small?: boolean;
- conic?: boolean;
- className?: string;
-}): JSX.Element {
- return (
-
- );
-}
-
-const LINKS = [
- {
- title: "Docs",
- href: "https://turbo.build/repo/docs",
- description: "Find in-depth information about Turborepo features and API.",
- },
- {
- title: "Learn",
- href: "https://turbo.build/repo/docs/handbook",
- description: "Learn more about monorepos with our handbook.",
- },
- {
- title: "Templates",
- href: "https://turbo.build/repo/docs/getting-started/from-example",
- description: "Choose from over 15 examples and deploy with a single click.",
- },
- {
- title: "Deploy",
- href: "https://vercel.com/new",
- description:
- "Instantly deploy your Turborepo to a shareable URL with Vercel.",
- },
-];
-
-export default function Page(): JSX.Element {
- return (
-
-
-
- examples/basic
- web
-
-
-
-
-
- Click me!
-
-
-
-
-
-
-
-
- Turborepo logo
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {LINKS.map(({ title, href, description }) => (
-
- {description}
-
- ))}
-
-
- );
-}
diff --git a/apps/web/next-env.d.ts b/apps/web/next-env.d.ts
deleted file mode 100644
index 4f11a03..0000000
--- a/apps/web/next-env.d.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-///
-///
-
-// NOTE: This file should not be edited
-// see https://nextjs.org/docs/basic-features/typescript for more information.
diff --git a/apps/web/next.config.js b/apps/web/next.config.js
deleted file mode 100644
index a5b0aec..0000000
--- a/apps/web/next.config.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/** @type {import('next').NextConfig} */
-module.exports = {
- transpilePackages: ["@repo/ui"],
-};
diff --git a/apps/web/package.json b/apps/web/package.json
deleted file mode 100644
index 9ca6a86..0000000
--- a/apps/web/package.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "web",
- "version": "1.0.0",
- "private": true,
- "scripts": {
- "dev": "next dev",
- "build": "next build",
- "start": "next start",
- "lint": "eslint . --max-warnings 0"
- },
- "dependencies": {
- "@repo/ui": "workspace:*",
- "next": "^14.0.4",
- "react": "^18.2.0",
- "react-dom": "^18.2.0"
- },
- "devDependencies": {
- "@next/eslint-plugin-next": "^14.0.4",
- "@repo/eslint-config": "workspace:*",
- "@repo/typescript-config": "workspace:*",
- "@types/eslint": "^8.56.1",
- "@types/node": "^20.10.6",
- "@types/react": "^18.2.46",
- "@types/react-dom": "^18.2.18",
- "eslint": "^8.56.0",
- "typescript": "^5.3.3"
- }
-}
diff --git a/apps/web/public/circles.svg b/apps/web/public/circles.svg
deleted file mode 100644
index 6533be5..0000000
--- a/apps/web/public/circles.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/apps/web/public/next.svg b/apps/web/public/next.svg
deleted file mode 100644
index 5174b28..0000000
--- a/apps/web/public/next.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/web/public/turborepo.svg b/apps/web/public/turborepo.svg
deleted file mode 100644
index 2f9aa1f..0000000
--- a/apps/web/public/turborepo.svg
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/apps/web/public/vercel.svg b/apps/web/public/vercel.svg
deleted file mode 100644
index d2f8422..0000000
--- a/apps/web/public/vercel.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json
deleted file mode 100644
index 24e7548..0000000
--- a/apps/web/tsconfig.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- "extends": "@repo/typescript-config/nextjs.json",
- "compilerOptions": {
- "plugins": [
- {
- "name": "next"
- }
- ]
- },
- "include": [
- "next-env.d.ts",
- "next.config.js",
- "**/*.ts",
- "**/*.tsx",
- ".next/types/**/*.ts"
- ],
- "exclude": ["node_modules"]
-}
diff --git a/examples/appwrite/.eslintignore b/examples/appwrite/.eslintignore
new file mode 100644
index 0000000..4836699
--- /dev/null
+++ b/examples/appwrite/.eslintignore
@@ -0,0 +1,13 @@
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+
+# Ignore files for PNPM, NPM and YARN
+pnpm-lock.yaml
+package-lock.json
+yarn.lock
\ No newline at end of file
diff --git a/examples/appwrite/.eslintrc.cjs b/examples/appwrite/.eslintrc.cjs
new file mode 100644
index 0000000..49fe325
--- /dev/null
+++ b/examples/appwrite/.eslintrc.cjs
@@ -0,0 +1,3 @@
+module.exports = {
+ extends: ["@repo/eslint-config/index.js"],
+};
diff --git a/examples/appwrite/.gitignore b/examples/appwrite/.gitignore
new file mode 100644
index 0000000..8f6c617
--- /dev/null
+++ b/examples/appwrite/.gitignore
@@ -0,0 +1,12 @@
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+.vercel
+.output
+vite.config.js.timestamp-*
+vite.config.ts.timestamp-*
diff --git a/examples/appwrite/.npmrc b/examples/appwrite/.npmrc
new file mode 100644
index 0000000..b6f27f1
--- /dev/null
+++ b/examples/appwrite/.npmrc
@@ -0,0 +1 @@
+engine-strict=true
diff --git a/examples/appwrite/CHANGELOG.md b/examples/appwrite/CHANGELOG.md
new file mode 100644
index 0000000..717575b
--- /dev/null
+++ b/examples/appwrite/CHANGELOG.md
@@ -0,0 +1,8 @@
+# appwrite
+
+## 1.0.0
+
+### Major Changes
+
+- Added the `adapter-appwrite` package to the monorepo. This package is used to deploy SvelteKit applications as appwrite functions.
+ Added example for using the `adapter-appwrite` package in a sveltekit application
diff --git a/examples/appwrite/README.md b/examples/appwrite/README.md
new file mode 100644
index 0000000..5ce6766
--- /dev/null
+++ b/examples/appwrite/README.md
@@ -0,0 +1,38 @@
+# create-svelte
+
+Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/main/packages/create-svelte).
+
+## Creating a project
+
+If you're seeing this, you've probably already done this step. Congrats!
+
+```bash
+# create a new project in the current directory
+npm create svelte@latest
+
+# create a new project in my-app
+npm create svelte@latest my-app
+```
+
+## Developing
+
+Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
+
+```bash
+npm run dev
+
+# or start the server and open the app in a new browser tab
+npm run dev -- --open
+```
+
+## Building
+
+To create a production version of your app:
+
+```bash
+npm run build
+```
+
+You can preview the production build with `npm run preview`.
+
+> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.
diff --git a/examples/appwrite/package.json b/examples/appwrite/package.json
new file mode 100644
index 0000000..de2597e
--- /dev/null
+++ b/examples/appwrite/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "appwrite",
+ "version": "1.0.0",
+ "private": true,
+ "scripts": {
+ "dev": "vite dev",
+ "build": "vite build",
+ "preview": "vite preview",
+ "check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
+ "check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"
+ },
+ "devDependencies": {
+ "adapter-appwrite": "workspace:*",
+ "@fontsource/fira-mono": "^4.5.10",
+ "@neoconfetti/svelte": "^1.0.0",
+ "@sveltejs/adapter-auto": "^3.0.0",
+ "@sveltejs/kit": "^2.0.0",
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "svelte": "^4.2.7",
+ "svelte-check": "^3.6.0",
+ "tslib": "^2.4.1",
+ "typescript": "^5.0.0",
+ "vite": "^5.0.3"
+ },
+ "type": "module"
+}
diff --git a/examples/appwrite/src/app.d.ts b/examples/appwrite/src/app.d.ts
new file mode 100644
index 0000000..743f07b
--- /dev/null
+++ b/examples/appwrite/src/app.d.ts
@@ -0,0 +1,13 @@
+// See https://kit.svelte.dev/docs/types#app
+// for information about these interfaces
+declare global {
+ namespace App {
+ // interface Error {}
+ // interface Locals {}
+ // interface PageData {}
+ // interface PageState {}
+ // interface Platform {}
+ }
+}
+
+export {};
diff --git a/examples/appwrite/src/app.html b/examples/appwrite/src/app.html
new file mode 100644
index 0000000..77a5ff5
--- /dev/null
+++ b/examples/appwrite/src/app.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
+
diff --git a/examples/appwrite/src/lib/images/github.svg b/examples/appwrite/src/lib/images/github.svg
new file mode 100644
index 0000000..bc5d249
--- /dev/null
+++ b/examples/appwrite/src/lib/images/github.svg
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/examples/appwrite/src/lib/images/svelte-logo.svg b/examples/appwrite/src/lib/images/svelte-logo.svg
new file mode 100644
index 0000000..49492a8
--- /dev/null
+++ b/examples/appwrite/src/lib/images/svelte-logo.svg
@@ -0,0 +1 @@
+svelte-logo
\ No newline at end of file
diff --git a/examples/appwrite/src/lib/images/svelte-welcome.png b/examples/appwrite/src/lib/images/svelte-welcome.png
new file mode 100644
index 0000000..fe7d2d6
Binary files /dev/null and b/examples/appwrite/src/lib/images/svelte-welcome.png differ
diff --git a/examples/appwrite/src/lib/images/svelte-welcome.webp b/examples/appwrite/src/lib/images/svelte-welcome.webp
new file mode 100644
index 0000000..6ec1a28
Binary files /dev/null and b/examples/appwrite/src/lib/images/svelte-welcome.webp differ
diff --git a/examples/appwrite/src/routes/+layout.svelte b/examples/appwrite/src/routes/+layout.svelte
new file mode 100644
index 0000000..9c7445f
--- /dev/null
+++ b/examples/appwrite/src/routes/+layout.svelte
@@ -0,0 +1,53 @@
+
+
+
+
+
diff --git a/examples/appwrite/src/routes/+page.svelte b/examples/appwrite/src/routes/+page.svelte
new file mode 100644
index 0000000..97201ef
--- /dev/null
+++ b/examples/appwrite/src/routes/+page.svelte
@@ -0,0 +1,59 @@
+
+
+
+ Home
+
+
+
+
+
+
+
+
+
+
+
+
+ to your new SvelteKit app
+
+
+
+ try editing src/routes/+page.svelte
+
+
+
+
+
+
diff --git a/examples/appwrite/src/routes/+page.ts b/examples/appwrite/src/routes/+page.ts
new file mode 100644
index 0000000..a72419a
--- /dev/null
+++ b/examples/appwrite/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/examples/appwrite/src/routes/Counter.svelte b/examples/appwrite/src/routes/Counter.svelte
new file mode 100644
index 0000000..96ef556
--- /dev/null
+++ b/examples/appwrite/src/routes/Counter.svelte
@@ -0,0 +1,102 @@
+
+
+
+
(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/examples/appwrite/src/routes/Header.svelte b/examples/appwrite/src/routes/Header.svelte
new file mode 100644
index 0000000..368b721
--- /dev/null
+++ b/examples/appwrite/src/routes/Header.svelte
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/appwrite/src/routes/about/+page.svelte b/examples/appwrite/src/routes/about/+page.svelte
new file mode 100644
index 0000000..7f7946d
--- /dev/null
+++ b/examples/appwrite/src/routes/about/+page.svelte
@@ -0,0 +1,26 @@
+
+ About
+
+
+
+
+
About this app
+
+
+ This is a SvelteKit app. You can make your own by typing the
+ following into your command line and following the prompts:
+
+
+
npm create svelte@latest
+
+
+ The page you're looking at is purely static HTML, with no client-side interactivity needed.
+ Because of that, we don't need to load any JavaScript. Try viewing the page's source, or opening
+ the devtools network panel and reloading.
+
+
+
+ The Sverdle page illustrates SvelteKit's data loading and form handling. Try
+ using it with JavaScript disabled!
+
+
diff --git a/examples/appwrite/src/routes/about/+page.ts b/examples/appwrite/src/routes/about/+page.ts
new file mode 100644
index 0000000..e739ef4
--- /dev/null
+++ b/examples/appwrite/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/examples/appwrite/src/routes/styles.css b/examples/appwrite/src/routes/styles.css
new file mode 100644
index 0000000..1441d94
--- /dev/null
+++ b/examples/appwrite/src/routes/styles.css
@@ -0,0 +1,107 @@
+@import '@fontsource/fira-mono';
+
+:root {
+ --font-body: Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
+ Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+ --font-mono: 'Fira Mono', monospace;
+ --color-bg-0: rgb(202, 216, 228);
+ --color-bg-1: hsl(209, 36%, 86%);
+ --color-bg-2: hsl(224, 44%, 95%);
+ --color-theme-1: #ff3e00;
+ --color-theme-2: #4075a6;
+ --color-text: rgba(0, 0, 0, 0.7);
+ --column-width: 42rem;
+ --column-margin-top: 4rem;
+ font-family: var(--font-body);
+ color: var(--color-text);
+}
+
+body {
+ min-height: 100vh;
+ margin: 0;
+ background-attachment: fixed;
+ background-color: var(--color-bg-1);
+ background-size: 100vw 100vh;
+ background-image: radial-gradient(
+ 50% 50% at 50% 50%,
+ rgba(255, 255, 255, 0.75) 0%,
+ rgba(255, 255, 255, 0) 100%
+ ),
+ linear-gradient(180deg, var(--color-bg-0) 0%, var(--color-bg-1) 15%, var(--color-bg-2) 50%);
+}
+
+h1,
+h2,
+p {
+ font-weight: 400;
+}
+
+p {
+ line-height: 1.5;
+}
+
+a {
+ color: var(--color-theme-1);
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+h1 {
+ font-size: 2rem;
+ text-align: center;
+}
+
+h2 {
+ font-size: 1rem;
+}
+
+pre {
+ font-size: 16px;
+ font-family: var(--font-mono);
+ background-color: rgba(255, 255, 255, 0.45);
+ border-radius: 3px;
+ box-shadow: 2px 2px 6px rgb(255 255 255 / 25%);
+ padding: 0.5em;
+ overflow-x: auto;
+ color: var(--color-text);
+}
+
+.text-column {
+ display: flex;
+ max-width: 48rem;
+ flex: 0.6;
+ flex-direction: column;
+ justify-content: center;
+ margin: 0 auto;
+}
+
+input,
+button {
+ font-size: inherit;
+ font-family: inherit;
+}
+
+button:focus:not(:focus-visible) {
+ outline: none;
+}
+
+@media (min-width: 720px) {
+ h1 {
+ font-size: 2.4rem;
+ }
+}
+
+.visually-hidden {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: auto;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+ white-space: nowrap;
+}
diff --git a/examples/appwrite/src/routes/sverdle/+page.server.ts b/examples/appwrite/src/routes/sverdle/+page.server.ts
new file mode 100644
index 0000000..7279af5
--- /dev/null
+++ b/examples/appwrite/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(), { path: '/' });
+ },
+
+ /**
+ * 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(), { path: '/' });
+ },
+
+ restart: async ({ cookies }) => {
+ cookies.delete('sverdle', { path: '/' });
+ }
+} satisfies Actions;
diff --git a/examples/appwrite/src/routes/sverdle/+page.svelte b/examples/appwrite/src/routes/sverdle/+page.svelte
new file mode 100644
index 0000000..517abd8
--- /dev/null
+++ b/examples/appwrite/src/routes/sverdle/+page.svelte
@@ -0,0 +1,411 @@
+
+
+
+
+
+ Sverdle
+
+
+
+Sverdle
+
+
+
+{#if won}
+
+{/if}
+
+
diff --git a/examples/appwrite/src/routes/sverdle/game.ts b/examples/appwrite/src/routes/sverdle/game.ts
new file mode 100644
index 0000000..72aef85
--- /dev/null
+++ b/examples/appwrite/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/examples/appwrite/src/routes/sverdle/how-to-play/+page.svelte b/examples/appwrite/src/routes/sverdle/how-to-play/+page.svelte
new file mode 100644
index 0000000..e8e2cec
--- /dev/null
+++ b/examples/appwrite/src/routes/sverdle/how-to-play/+page.svelte
@@ -0,0 +1,95 @@
+
+ How to play Sverdle
+
+
+
+
+
How to play Sverdle
+
+
+ Sverdle is a clone of Wordle , the
+ word guessing game. To play, enter a five-letter English word. For example:
+
+
+
+ r
+ i
+ t
+ z
+ y
+
+
+
+ The y is in the right place. r and
+ t
+ are the right letters, but in the wrong place. The other letters are wrong, and can be discarded.
+ Let's make another guess:
+
+
+
+ p
+ a
+ r
+ t
+ y
+
+
+
This time we guessed right! You have six guesses to get the word.
+
+
+ Unlike the original Wordle, Sverdle runs on the server instead of in the browser, making it
+ impossible to cheat. It uses <form> and cookies to submit data, meaning you can
+ even play with JavaScript disabled!
+
+
+
+
diff --git a/examples/appwrite/src/routes/sverdle/how-to-play/+page.ts b/examples/appwrite/src/routes/sverdle/how-to-play/+page.ts
new file mode 100644
index 0000000..e739ef4
--- /dev/null
+++ b/examples/appwrite/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/examples/appwrite/src/routes/sverdle/reduced-motion.ts b/examples/appwrite/src/routes/sverdle/reduced-motion.ts
new file mode 100644
index 0000000..7a4e95e
--- /dev/null
+++ b/examples/appwrite/src/routes/sverdle/reduced-motion.ts
@@ -0,0 +1,23 @@
+import { readable } from 'svelte/store';
+import { browser } from '$app/environment';
+
+const reduced_motion_query = '(prefers-reduced-motion: reduce)';
+
+const get_initial_motion_preference = () => {
+ if (!browser) return false;
+ return window.matchMedia(reduced_motion_query).matches;
+};
+
+export const reduced_motion = readable(get_initial_motion_preference(), (set) => {
+ if (browser) {
+ const set_reduced_motion = (event: MediaQueryListEvent) => {
+ set(event.matches);
+ };
+ const media_query_list = window.matchMedia(reduced_motion_query);
+ media_query_list.addEventListener('change', set_reduced_motion);
+
+ return () => {
+ media_query_list.removeEventListener('change', set_reduced_motion);
+ };
+ }
+});
diff --git a/examples/appwrite/src/routes/sverdle/words.server.ts b/examples/appwrite/src/routes/sverdle/words.server.ts
new file mode 100644
index 0000000..56082a3
--- /dev/null
+++ b/examples/appwrite/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/examples/appwrite/static/favicon.png b/examples/appwrite/static/favicon.png
new file mode 100644
index 0000000..825b9e6
Binary files /dev/null and b/examples/appwrite/static/favicon.png differ
diff --git a/examples/appwrite/static/robots.txt b/examples/appwrite/static/robots.txt
new file mode 100644
index 0000000..e9e57dc
--- /dev/null
+++ b/examples/appwrite/static/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/examples/appwrite/svelte.config.js b/examples/appwrite/svelte.config.js
new file mode 100644
index 0000000..8a6cdc8
--- /dev/null
+++ b/examples/appwrite/svelte.config.js
@@ -0,0 +1,18 @@
+import adapter from "adapter-appwrite";
+import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
+
+/** @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(),
+ },
+};
+
+export default config;
diff --git a/examples/appwrite/tsconfig.json b/examples/appwrite/tsconfig.json
new file mode 100644
index 0000000..82081ab
--- /dev/null
+++ b/examples/appwrite/tsconfig.json
@@ -0,0 +1,18 @@
+{
+ "extends": "./.svelte-kit/tsconfig.json",
+ "compilerOptions": {
+ "allowJs": true,
+ "checkJs": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "sourceMap": true,
+ "strict": true,
+ "moduleResolution": "bundler"
+ }
+ // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
+ //
+ // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
+ // from the referenced tsconfig.json - TypeScript does not merge them in
+}
diff --git a/examples/appwrite/vite.config.ts b/examples/appwrite/vite.config.ts
new file mode 100644
index 0000000..bbf8c7d
--- /dev/null
+++ b/examples/appwrite/vite.config.ts
@@ -0,0 +1,6 @@
+import { sveltekit } from '@sveltejs/kit/vite';
+import { defineConfig } from 'vite';
+
+export default defineConfig({
+ plugins: [sveltekit()]
+});
diff --git a/examples/electron/.eslintignore b/examples/electron/.eslintignore
new file mode 100644
index 0000000..3897265
--- /dev/null
+++ b/examples/electron/.eslintignore
@@ -0,0 +1,13 @@
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+
+# Ignore files for PNPM, NPM and YARN
+pnpm-lock.yaml
+package-lock.json
+yarn.lock
diff --git a/examples/electron/.eslintrc.cjs b/examples/electron/.eslintrc.cjs
new file mode 100644
index 0000000..ecdc496
--- /dev/null
+++ b/examples/electron/.eslintrc.cjs
@@ -0,0 +1,3 @@
+module.exports = {
+ extends: ['@repo/eslint-config/index.js']
+};
diff --git a/examples/electron/.gitignore b/examples/electron/.gitignore
new file mode 100644
index 0000000..8f6c617
--- /dev/null
+++ b/examples/electron/.gitignore
@@ -0,0 +1,12 @@
+.DS_Store
+node_modules
+/build
+/.svelte-kit
+/package
+.env
+.env.*
+!.env.example
+.vercel
+.output
+vite.config.js.timestamp-*
+vite.config.ts.timestamp-*
diff --git a/examples/electron/.npmrc b/examples/electron/.npmrc
new file mode 100644
index 0000000..b6f27f1
--- /dev/null
+++ b/examples/electron/.npmrc
@@ -0,0 +1 @@
+engine-strict=true
diff --git a/examples/electron/.prettierignore b/examples/electron/.prettierignore
new file mode 100644
index 0000000..cc41cea
--- /dev/null
+++ b/examples/electron/.prettierignore
@@ -0,0 +1,4 @@
+# Ignore files for PNPM, NPM and YARN
+pnpm-lock.yaml
+package-lock.json
+yarn.lock
diff --git a/examples/electron/.prettierrc b/examples/electron/.prettierrc
new file mode 100644
index 0000000..9573023
--- /dev/null
+++ b/examples/electron/.prettierrc
@@ -0,0 +1,8 @@
+{
+ "useTabs": true,
+ "singleQuote": true,
+ "trailingComma": "none",
+ "printWidth": 100,
+ "plugins": ["prettier-plugin-svelte"],
+ "overrides": [{ "files": "*.svelte", "options": { "parser": "svelte" } }]
+}
diff --git a/examples/electron/electron-builder.yaml b/examples/electron/electron-builder.yaml
new file mode 100644
index 0000000..19efa66
--- /dev/null
+++ b/examples/electron/electron-builder.yaml
@@ -0,0 +1,43 @@
+appId: com.electron.app
+productName: electron-sveltekit
+directories:
+ buildResources: build
+files:
+ - "!**/.vscode/*"
+ - "!src/*"
+ - "!electron.vite.config.{js,ts,mjs,cjs}"
+ - "!{.eslintignore,.eslintrc.cjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}"
+ - "!{.env,.env.*,.npmrc,pnpm-lock.yaml}"
+ - "!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}"
+asarUnpack:
+ - resources/**
+# afterSign: build/notarize.js
+win:
+ executableName: electron-sveltekit
+nsis:
+ artifactName: ${name}-${version}-setup.${ext}
+ shortcutName: ${productName}
+ uninstallDisplayName: ${productName}
+ createDesktopShortcut: always
+mac:
+ entitlementsInherit: build/entitlements.mac.plist
+ extendInfo:
+ - NSCameraUsageDescription: Application requests access to the device's camera.
+ - NSMicrophoneUsageDescription: Application requests access to the device's microphone.
+ - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder.
+ - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder.
+dmg:
+ artifactName: ${name}-${version}.${ext}
+linux:
+ target:
+ - AppImage
+ - snap
+ - deb
+ maintainer: electronjs.org
+ category: Utility
+appImage:
+ artifactName: ${name}-${version}.${ext}
+npmRebuild: false
+publish:
+ provider: generic
+ url: https://example.com/auto-updates
diff --git a/examples/electron/electron.vite.config.ts b/examples/electron/electron.vite.config.ts
new file mode 100644
index 0000000..5782db5
--- /dev/null
+++ b/examples/electron/electron.vite.config.ts
@@ -0,0 +1,8 @@
+import { defineConfig, defineViteConfig } from 'electron-vite';
+import config from './vite.config';
+
+export default defineConfig({
+ main: defineViteConfig({}),
+ preload: defineViteConfig({}),
+ renderer: config
+});
diff --git a/examples/electron/package.json b/examples/electron/package.json
new file mode 100644
index 0000000..ab08e09
--- /dev/null
+++ b/examples/electron/package.json
@@ -0,0 +1,50 @@
+{
+ "name": "sveltekit-electron",
+ "version": "0.0.1",
+ "private": true,
+ "description": "A SvelteKit and Electron app",
+ "author": {
+ "name": "Luke Hagar",
+ "email": "lukeslakemail@gmail.com"
+ },
+ "main": "./out/main/index.js",
+ "scripts": {
+ "start": "electron-vite preview",
+ "dev": "electron-vite dev",
+ "build": "electron-vite build",
+ "build:win": "npm run build && electron-builder --win --config",
+ "build:mac": "npm run build && electron-builder --mac --config",
+ "build:linux": "npm run build && electron-builder --linux --config"
+ },
+ "devDependencies": {
+ "@fontsource/fira-mono": "^4.5.10",
+ "@neoconfetti/svelte": "^1.0.0",
+ "@sveltejs/kit": "^2.0.0",
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "@types/eslint": "8.56.0",
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
+ "@typescript-eslint/parser": "^6.0.0",
+ "adapter-electron": "workspace:*",
+ "concurrently": "^8.2.2",
+ "cross-env": "^7.0.3",
+ "dotenv": "^16.4.4",
+ "electron": "^28.2.3",
+ "electron-builder": "^24.9.1",
+ "electron-is-dev": "^3.0.1",
+ "electron-log": "^5.1.1",
+ "electron-util": "^0.18.0",
+ "electron-vite": "^2.0.0",
+ "eslint": "^8.56.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-plugin-svelte": "^2.35.1",
+ "polka": "^0.5.2",
+ "prettier": "^3.1.1",
+ "prettier-plugin-svelte": "^3.1.2",
+ "svelte": "^4.2.7",
+ "svelte-check": "^3.6.0",
+ "tslib": "^2.4.1",
+ "typescript": "^5.0.0",
+ "vite": "^5.0.3"
+ },
+ "type": "module"
+}
diff --git a/examples/electron/src/app.d.ts b/examples/electron/src/app.d.ts
new file mode 100644
index 0000000..743f07b
--- /dev/null
+++ b/examples/electron/src/app.d.ts
@@ -0,0 +1,13 @@
+// See https://kit.svelte.dev/docs/types#app
+// for information about these interfaces
+declare global {
+ namespace App {
+ // interface Error {}
+ // interface Locals {}
+ // interface PageData {}
+ // interface PageState {}
+ // interface Platform {}
+ }
+}
+
+export {};
diff --git a/examples/electron/src/app.html b/examples/electron/src/app.html
new file mode 100644
index 0000000..77a5ff5
--- /dev/null
+++ b/examples/electron/src/app.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ %sveltekit.head%
+
+
+ %sveltekit.body%
+
+
diff --git a/examples/electron/src/lib/images/github.svg b/examples/electron/src/lib/images/github.svg
new file mode 100644
index 0000000..bc5d249
--- /dev/null
+++ b/examples/electron/src/lib/images/github.svg
@@ -0,0 +1,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/examples/electron/src/lib/images/svelte-logo.svg b/examples/electron/src/lib/images/svelte-logo.svg
new file mode 100644
index 0000000..49492a8
--- /dev/null
+++ b/examples/electron/src/lib/images/svelte-logo.svg
@@ -0,0 +1 @@
+svelte-logo
\ No newline at end of file
diff --git a/examples/electron/src/lib/images/svelte-welcome.png b/examples/electron/src/lib/images/svelte-welcome.png
new file mode 100644
index 0000000..fe7d2d6
Binary files /dev/null and b/examples/electron/src/lib/images/svelte-welcome.png differ
diff --git a/examples/electron/src/lib/images/svelte-welcome.webp b/examples/electron/src/lib/images/svelte-welcome.webp
new file mode 100644
index 0000000..6ec1a28
Binary files /dev/null and b/examples/electron/src/lib/images/svelte-welcome.webp differ
diff --git a/examples/electron/src/main/index.ts b/examples/electron/src/main/index.ts
new file mode 100644
index 0000000..8bb3c92
--- /dev/null
+++ b/examples/electron/src/main/index.ts
@@ -0,0 +1,45 @@
+import { app, BrowserWindow } from 'electron';
+import { start, load } from 'adapter-electron/functions';
+import isDev from 'electron-is-dev';
+import log from 'electron-log/main';
+import nodePath from 'node:path';
+
+log.info('Hello, log!');
+const port = await start();
+
+async function createWindow() {
+ // Create the browser window
+
+ const mainWindow = new BrowserWindow({
+ width: 800,
+ height: 600,
+ webPreferences: {
+ preload: nodePath.join(__dirname, '../preload/index.mjs')
+ }
+ });
+
+ // Load the local URL for development or the local
+ // html file for production
+ load(mainWindow, port);
+
+ if (isDev) mainWindow.webContents.openDevTools();
+}
+
+app.whenReady().then(() => {
+ log.info('App is ready');
+
+ log.info('Creating window...');
+ createWindow();
+
+ app.on('activate', () => {
+ if (BrowserWindow.getAllWindows().length === 0) {
+ createWindow();
+ }
+ });
+});
+
+app.on('window-all-closed', () => {
+ if (process.platform !== 'darwin') {
+ app.quit();
+ }
+});
diff --git a/examples/electron/src/preload/index.ts b/examples/electron/src/preload/index.ts
new file mode 100644
index 0000000..0f29693
--- /dev/null
+++ b/examples/electron/src/preload/index.ts
@@ -0,0 +1,10 @@
+window.addEventListener('DOMContentLoaded', () => {
+ const replaceText = (selector, text) => {
+ const element = document.getElementById(selector);
+ if (element) element.innerText = text;
+ };
+
+ for (const type of ['chrome', 'node', 'electron']) {
+ replaceText(`${type}-version`, process.versions[type]);
+ }
+});
diff --git a/examples/electron/src/routes/+layout.svelte b/examples/electron/src/routes/+layout.svelte
new file mode 100644
index 0000000..9c7445f
--- /dev/null
+++ b/examples/electron/src/routes/+layout.svelte
@@ -0,0 +1,53 @@
+
+
+
+
+
diff --git a/examples/electron/src/routes/+page.svelte b/examples/electron/src/routes/+page.svelte
new file mode 100644
index 0000000..97201ef
--- /dev/null
+++ b/examples/electron/src/routes/+page.svelte
@@ -0,0 +1,59 @@
+
+
+
+ Home
+
+
+
+
+
+
+
+
+
+
+
+
+ to your new SvelteKit app
+
+
+
+ try editing src/routes/+page.svelte
+
+
+
+
+
+
diff --git a/examples/electron/src/routes/+page.ts b/examples/electron/src/routes/+page.ts
new file mode 100644
index 0000000..a72419a
--- /dev/null
+++ b/examples/electron/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/examples/electron/src/routes/Counter.svelte b/examples/electron/src/routes/Counter.svelte
new file mode 100644
index 0000000..96ef556
--- /dev/null
+++ b/examples/electron/src/routes/Counter.svelte
@@ -0,0 +1,102 @@
+
+
+
+
(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/examples/electron/src/routes/Header.svelte b/examples/electron/src/routes/Header.svelte
new file mode 100644
index 0000000..368b721
--- /dev/null
+++ b/examples/electron/src/routes/Header.svelte
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/examples/electron/src/routes/about/+page.svelte b/examples/electron/src/routes/about/+page.svelte
new file mode 100644
index 0000000..7f7946d
--- /dev/null
+++ b/examples/electron/src/routes/about/+page.svelte
@@ -0,0 +1,26 @@
+
+ About
+
+
+
+
+
About this app
+
+
+ This is a SvelteKit app. You can make your own by typing the
+ following into your command line and following the prompts:
+
+
+
npm create svelte@latest
+
+
+ The page you're looking at is purely static HTML, with no client-side interactivity needed.
+ Because of that, we don't need to load any JavaScript. Try viewing the page's source, or opening
+ the devtools network panel and reloading.
+
+
+
+ The Sverdle page illustrates SvelteKit's data loading and form handling. Try
+ using it with JavaScript disabled!
+
+
diff --git a/examples/electron/src/routes/about/+page.ts b/examples/electron/src/routes/about/+page.ts
new file mode 100644
index 0000000..e739ef4
--- /dev/null
+++ b/examples/electron/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/examples/electron/src/routes/styles.css b/examples/electron/src/routes/styles.css
new file mode 100644
index 0000000..1441d94
--- /dev/null
+++ b/examples/electron/src/routes/styles.css
@@ -0,0 +1,107 @@
+@import '@fontsource/fira-mono';
+
+:root {
+ --font-body: Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
+ Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
+ --font-mono: 'Fira Mono', monospace;
+ --color-bg-0: rgb(202, 216, 228);
+ --color-bg-1: hsl(209, 36%, 86%);
+ --color-bg-2: hsl(224, 44%, 95%);
+ --color-theme-1: #ff3e00;
+ --color-theme-2: #4075a6;
+ --color-text: rgba(0, 0, 0, 0.7);
+ --column-width: 42rem;
+ --column-margin-top: 4rem;
+ font-family: var(--font-body);
+ color: var(--color-text);
+}
+
+body {
+ min-height: 100vh;
+ margin: 0;
+ background-attachment: fixed;
+ background-color: var(--color-bg-1);
+ background-size: 100vw 100vh;
+ background-image: radial-gradient(
+ 50% 50% at 50% 50%,
+ rgba(255, 255, 255, 0.75) 0%,
+ rgba(255, 255, 255, 0) 100%
+ ),
+ linear-gradient(180deg, var(--color-bg-0) 0%, var(--color-bg-1) 15%, var(--color-bg-2) 50%);
+}
+
+h1,
+h2,
+p {
+ font-weight: 400;
+}
+
+p {
+ line-height: 1.5;
+}
+
+a {
+ color: var(--color-theme-1);
+ text-decoration: none;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+h1 {
+ font-size: 2rem;
+ text-align: center;
+}
+
+h2 {
+ font-size: 1rem;
+}
+
+pre {
+ font-size: 16px;
+ font-family: var(--font-mono);
+ background-color: rgba(255, 255, 255, 0.45);
+ border-radius: 3px;
+ box-shadow: 2px 2px 6px rgb(255 255 255 / 25%);
+ padding: 0.5em;
+ overflow-x: auto;
+ color: var(--color-text);
+}
+
+.text-column {
+ display: flex;
+ max-width: 48rem;
+ flex: 0.6;
+ flex-direction: column;
+ justify-content: center;
+ margin: 0 auto;
+}
+
+input,
+button {
+ font-size: inherit;
+ font-family: inherit;
+}
+
+button:focus:not(:focus-visible) {
+ outline: none;
+}
+
+@media (min-width: 720px) {
+ h1 {
+ font-size: 2.4rem;
+ }
+}
+
+.visually-hidden {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: auto;
+ margin: 0;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+ white-space: nowrap;
+}
diff --git a/examples/electron/src/routes/sverdle/+page.server.ts b/examples/electron/src/routes/sverdle/+page.server.ts
new file mode 100644
index 0000000..7279af5
--- /dev/null
+++ b/examples/electron/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(), { path: '/' });
+ },
+
+ /**
+ * 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(), { path: '/' });
+ },
+
+ restart: async ({ cookies }) => {
+ cookies.delete('sverdle', { path: '/' });
+ }
+} satisfies Actions;
diff --git a/examples/electron/src/routes/sverdle/+page.svelte b/examples/electron/src/routes/sverdle/+page.svelte
new file mode 100644
index 0000000..517abd8
--- /dev/null
+++ b/examples/electron/src/routes/sverdle/+page.svelte
@@ -0,0 +1,411 @@
+
+
+
+
+
+ Sverdle
+
+
+
+Sverdle
+
+
+
+{#if won}
+
+{/if}
+
+
diff --git a/examples/electron/src/routes/sverdle/game.ts b/examples/electron/src/routes/sverdle/game.ts
new file mode 100644
index 0000000..72aef85
--- /dev/null
+++ b/examples/electron/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/examples/electron/src/routes/sverdle/how-to-play/+page.svelte b/examples/electron/src/routes/sverdle/how-to-play/+page.svelte
new file mode 100644
index 0000000..e8e2cec
--- /dev/null
+++ b/examples/electron/src/routes/sverdle/how-to-play/+page.svelte
@@ -0,0 +1,95 @@
+
+ How to play Sverdle
+
+
+
+
+
How to play Sverdle
+
+
+ Sverdle is a clone of Wordle , the
+ word guessing game. To play, enter a five-letter English word. For example:
+
+
+
+ r
+ i
+ t
+ z
+ y
+
+
+
+ The y is in the right place. r and
+ t
+ are the right letters, but in the wrong place. The other letters are wrong, and can be discarded.
+ Let's make another guess:
+
+
+
+ p
+ a
+ r
+ t
+ y
+
+
+
This time we guessed right! You have six guesses to get the word.
+
+
+ Unlike the original Wordle, Sverdle runs on the server instead of in the browser, making it
+ impossible to cheat. It uses <form> and cookies to submit data, meaning you can
+ even play with JavaScript disabled!
+
+
+
+
diff --git a/examples/electron/src/routes/sverdle/how-to-play/+page.ts b/examples/electron/src/routes/sverdle/how-to-play/+page.ts
new file mode 100644
index 0000000..e739ef4
--- /dev/null
+++ b/examples/electron/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/examples/electron/src/routes/sverdle/reduced-motion.ts b/examples/electron/src/routes/sverdle/reduced-motion.ts
new file mode 100644
index 0000000..7a4e95e
--- /dev/null
+++ b/examples/electron/src/routes/sverdle/reduced-motion.ts
@@ -0,0 +1,23 @@
+import { readable } from 'svelte/store';
+import { browser } from '$app/environment';
+
+const reduced_motion_query = '(prefers-reduced-motion: reduce)';
+
+const get_initial_motion_preference = () => {
+ if (!browser) return false;
+ return window.matchMedia(reduced_motion_query).matches;
+};
+
+export const reduced_motion = readable(get_initial_motion_preference(), (set) => {
+ if (browser) {
+ const set_reduced_motion = (event: MediaQueryListEvent) => {
+ set(event.matches);
+ };
+ const media_query_list = window.matchMedia(reduced_motion_query);
+ media_query_list.addEventListener('change', set_reduced_motion);
+
+ return () => {
+ media_query_list.removeEventListener('change', set_reduced_motion);
+ };
+ }
+});
diff --git a/examples/electron/src/routes/sverdle/words.server.ts b/examples/electron/src/routes/sverdle/words.server.ts
new file mode 100644
index 0000000..56082a3
--- /dev/null
+++ b/examples/electron/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/examples/electron/static/favicon.png b/examples/electron/static/favicon.png
new file mode 100644
index 0000000..825b9e6
Binary files /dev/null and b/examples/electron/static/favicon.png differ
diff --git a/examples/electron/static/robots.txt b/examples/electron/static/robots.txt
new file mode 100644
index 0000000..e9e57dc
--- /dev/null
+++ b/examples/electron/static/robots.txt
@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:
diff --git a/examples/electron/svelte.config.js b/examples/electron/svelte.config.js
new file mode 100644
index 0000000..daafa31
--- /dev/null
+++ b/examples/electron/svelte.config.js
@@ -0,0 +1,18 @@
+import adapter from 'adapter-electron';
+import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
+
+/** @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()
+ }
+};
+
+export default config;
diff --git a/examples/electron/tsconfig.json b/examples/electron/tsconfig.json
new file mode 100644
index 0000000..82081ab
--- /dev/null
+++ b/examples/electron/tsconfig.json
@@ -0,0 +1,18 @@
+{
+ "extends": "./.svelte-kit/tsconfig.json",
+ "compilerOptions": {
+ "allowJs": true,
+ "checkJs": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "resolveJsonModule": true,
+ "skipLibCheck": true,
+ "sourceMap": true,
+ "strict": true,
+ "moduleResolution": "bundler"
+ }
+ // Path aliases are handled by https://kit.svelte.dev/docs/configuration#alias
+ //
+ // If you want to overwrite includes/excludes, make sure to copy over the relevant includes/excludes
+ // from the referenced tsconfig.json - TypeScript does not merge them in
+}
diff --git a/examples/electron/vite.config.ts b/examples/electron/vite.config.ts
new file mode 100644
index 0000000..1d7c28a
--- /dev/null
+++ b/examples/electron/vite.config.ts
@@ -0,0 +1,7 @@
+import { sveltekit } from '@sveltejs/kit/vite';
+import { defineConfig } from 'vite';
+
+export default defineConfig({
+ logLevel: 'info',
+ plugins: [sveltekit()]
+});
diff --git a/package.json b/package.json
index d2812a4..8ebb995 100644
--- a/package.json
+++ b/package.json
@@ -5,12 +5,16 @@
"build": "turbo build",
"dev": "turbo dev",
"lint": "turbo lint",
- "format": "prettier --write \"**/*.{ts,tsx,md}\""
+ "ci:publish": "pnpm publish -r"
},
"devDependencies": {
- "@repo/eslint-config": "workspace:*",
- "@repo/typescript-config": "workspace:*",
+ "@changesets/cli": "^2.27.1",
+ "concurrently": "^8.2.2",
+ "electron": "^28.2.3",
+ "electron-util": "^0.18.0",
+ "eslint": "^8.56.0",
"prettier": "^3.1.1",
+ "rimraf": "^5.0.5",
"turbo": "latest"
},
"packageManager": "pnpm@8.9.0",
diff --git a/packages/adapter-appwrite/.eslintrc.cjs b/packages/adapter-appwrite/.eslintrc.cjs
new file mode 100644
index 0000000..49fe325
--- /dev/null
+++ b/packages/adapter-appwrite/.eslintrc.cjs
@@ -0,0 +1,3 @@
+module.exports = {
+ extends: ["@repo/eslint-config/index.js"],
+};
diff --git a/packages/adapter-appwrite/CHANGELOG.md b/packages/adapter-appwrite/CHANGELOG.md
new file mode 100644
index 0000000..5bc9cc8
--- /dev/null
+++ b/packages/adapter-appwrite/CHANGELOG.md
@@ -0,0 +1,8 @@
+# adapter-appwrite
+
+## 2.0.0
+
+### Major Changes
+
+- Added the `adapter-appwrite` package to the monorepo. This package is used to deploy SvelteKit applications as appwrite functions.
+ Added example for using the `adapter-appwrite` package in a sveltekit application
diff --git a/packages/adapter-appwrite/README.md b/packages/adapter-appwrite/README.md
new file mode 100644
index 0000000..177e34c
--- /dev/null
+++ b/packages/adapter-appwrite/README.md
@@ -0,0 +1,29 @@
+# adapter-appwrite
+
+## A SvelteKit adapter for Appwrite (open-runtime) environments
+
+This is a SvelteKit adapter to compile SvleteKit apps to run as Appwrite functions.
+
+Below is an example of how to use this adapter in your SvelteKit project.
+
+```js
+import adapter from "adapter-appwrite";
+import { vitePreprocess } from "@sveltejs/vite-plugin-svelte";
+
+/** @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(),
+ },
+};
+
+export default config;
+
+```
diff --git a/packages/adapter-appwrite/files/entry.d.ts b/packages/adapter-appwrite/files/entry.d.ts
new file mode 100644
index 0000000..4bc3f09
--- /dev/null
+++ b/packages/adapter-appwrite/files/entry.d.ts
@@ -0,0 +1,8 @@
+interface HandlerOptions {
+ req: any;
+ res: any;
+ log: (arg0: any) => void;
+ error: (arg0: any) => void;
+}
+
+export default function handler(options: HandlerOptions): any;
diff --git a/packages/adapter-appwrite/files/entry.js b/packages/adapter-appwrite/files/entry.js
new file mode 100644
index 0000000..2b891c9
--- /dev/null
+++ b/packages/adapter-appwrite/files/entry.js
@@ -0,0 +1,124 @@
+import { Server } from 'SERVER';
+import { manifest, prerendered } from 'MANIFEST';
+import { existsSync, readFileSync } from 'fs';
+import { lookup } from 'mime-types';
+import path from 'path';
+import { fileURLToPath } from 'url';
+
+const server = new Server(manifest);
+
+const dir = path.dirname(fileURLToPath(import.meta.url));
+
+/**
+ * @param {string} path
+ * @param {boolean} isClient
+ * @param {boolean} isStatic
+ * @returns {Record }
+ * */
+function mapCacheControl(path, isClient, isStatic) {
+ if (isClient && path.startsWith(`/${manifest.appPath}/immutable/`)) {
+ return { 'cache-control': 'public,max-age=31536000,immutable' };
+ } else if (isStatic) {
+ return { 'cache-control': 'public,max-age=31536000' };
+ } else {
+ return { 'cache-control': 'public,max-age=0,must-revalidate' };
+ }
+}
+
+/**
+ * @param {string} path
+ * @param {boolean} client
+ * @param {boolean} isStatic
+ * @returns {{ file: Buffer | undefined, headers: Record }}
+ */
+function getStaticfile(path, client = false, isStatic = false) {
+ if (!existsSync(path)) return { file: undefined, headers: {} };
+
+ const file = readFileSync(path);
+ const mimeType = lookup(path);
+ const headers = {
+ 'Content-Type': mimeType ? mimeType : 'text/plain',
+ ...mapCacheControl(path, client, isStatic)
+ };
+
+ return { file, headers };
+}
+
+/** @type {import('./entry.js').default} */
+export default async (opt) => {
+ const { req, res, log, error } = opt;
+
+ await server.init({
+ env: process.env
+ });
+
+ const url = new URL(req.url);
+
+ log(JSON.stringify(manifest, null, 4));
+
+ // client files first
+ if (url.pathname.startsWith(`/${manifest.appPath}`)) {
+ // split the pathname into parts and join them with the dir
+ const filePath = path.join(dir, 'client', url.pathname);
+ log('client asset');
+ log(url.pathname);
+ log(filePath);
+ const { file, headers } = getStaticfile(filePath, true);
+ if (file) return res.send(file.toString(), 200, headers);
+ }
+
+ // //prerendered assets
+ let { pathname } = url;
+
+ try {
+ pathname = decodeURIComponent(pathname);
+ } catch {
+ // ignore invalid URI
+ }
+
+ const stripped_pathname = pathname.replace(/\/$/, '');
+
+ // prerendered pages and /static files
+ let is_static_asset = false;
+ const filename = stripped_pathname.substring(1);
+ if (filename) {
+ is_static_asset = manifest.assets.has(filename);
+ }
+
+ // static assets
+ if (is_static_asset) {
+ // split the pathname into parts and join them with the dir
+ const filePath = path.join(dir, 'client', filename);
+ log('static asset');
+ log(filename);
+ log(filePath);
+ const { file, headers } = getStaticfile(filePath, false, true);
+ if (file) return res.send(file, 200, headers);
+ }
+
+ if (prerendered.has(pathname)) {
+ // split the pathname into parts and join them with the dir
+ const filePath = path.join(dir, 'prerendered', pathname + '.html');
+ log('prerendered asset');
+ log(pathname);
+ log(filePath);
+ const { file, headers } = getStaticfile(filePath, false);
+ if (file) return res.send(file.toString(), 200, headers);
+ }
+
+ const body = req.body !== '' ? req.body : undefined;
+
+ const request = new Request(req.url, {
+ headers: req.headers,
+ body,
+ method: req.method
+ });
+
+ const response = await server.respond(request, {
+ getClientAddress: () => request.headers.get('x-forwarded-for')
+ });
+
+ const respBody = await response.text();
+
+ return res.send(respBody, response.status, Object.fromEntries(response.headers.entries()));
+};
diff --git a/packages/adapter-appwrite/files/server.js b/packages/adapter-appwrite/files/server.js
new file mode 100644
index 0000000..9d3ec41
--- /dev/null
+++ b/packages/adapter-appwrite/files/server.js
@@ -0,0 +1,214 @@
+// @ts-nocheck
+import micro, { json as parseJson, text as parseText, send } from 'micro';
+
+const USER_CODE_PATH = 'ENTRYPATH';
+const ENTRYPOINT = 'ENTRY';
+
+process.env['OPEN_RUNTIMES_SECRET'] = 'SECRET';
+
+console.log(process.env['OPEN_RUNTIMES_SECRET']);
+
+const server = micro(async (req, res) => {
+ const timeout = req.headers[`x-open-runtimes-timeout`] ?? '';
+ let safeTimeout = null;
+ if (timeout) {
+ if (isNaN(timeout) || timeout === 0) {
+ return send(res, 500, 'Header "x-open-runtimes-timeout" must be an integer greater than 0.');
+ }
+
+ safeTimeout = +timeout;
+ }
+
+ if (
+ !req.headers[`x-open-runtimes-secret`] ||
+ req.headers[`x-open-runtimes-secret`] !== (process.env['OPEN_RUNTIMES_SECRET'] ?? '')
+ ) {
+ return send(res, 500, 'Unauthorized. Provide correct "x-open-runtimes-secret" header.');
+ }
+
+ const logs = [];
+ const errors = [];
+
+ const contentType = req.headers['content-type'] ?? 'text/plain';
+ const bodyRaw = await parseText(req);
+ let body = bodyRaw;
+
+ if (contentType.includes('application/json')) {
+ body = await parseJson(req);
+ }
+
+ const headers = {};
+ Object.keys(req.headers)
+ .filter((header) => !header.toLowerCase().startsWith('x-open-runtimes-'))
+ .forEach((header) => {
+ headers[header.toLowerCase()] = req.headers[header];
+ });
+
+ const scheme = req.headers['x-forwarded-proto'] ?? 'http';
+ const defaultPort = scheme === 'https' ? '443' : '80';
+ const host = req.headers['host'].includes(':')
+ ? req.headers['host'].split(':')[0]
+ : req.headers['host'];
+ const port = +(req.headers['host'].includes(':')
+ ? req.headers['host'].split(':')[1]
+ : defaultPort);
+ const path = req.url.includes('?') ? req.url.split('?')[0] : req.url;
+ const queryString = req.url.includes('?') ? req.url.split('?')[1] : '';
+ const query = {};
+ for (const param of queryString.split('&')) {
+ let [key, ...valueArr] = param.split('=');
+ const value = valueArr.join('=');
+
+ if (key) {
+ query[key] = value ?? '';
+ }
+ }
+
+ const url = `${scheme}://${host}${port.toString() === defaultPort ? '' : `:${port}`}${path}${queryString === '' ? '' : `?${queryString}`}`;
+
+ const context = {
+ req: {
+ bodyRaw,
+ body,
+ headers,
+ method: req.method,
+ host,
+ scheme,
+ query,
+ queryString,
+ port,
+ url,
+ path
+ },
+ res: {
+ send: function (body, statusCode = 200, headers = {}) {
+ return {
+ body: body,
+ statusCode: statusCode,
+ headers: headers
+ };
+ },
+ json: function (obj, statusCode = 200, headers = {}) {
+ headers['content-type'] = 'application/json';
+ return this.send(JSON.stringify(obj), statusCode, headers);
+ },
+ empty: function () {
+ return this.send('', 204, {});
+ },
+ redirect: function (url, statusCode = 301, headers = {}) {
+ headers['location'] = url;
+ return this.send('', statusCode, headers);
+ }
+ },
+ log: function (message) {
+ console.log(message);
+ },
+ error: function (message) {
+ console.log(message);
+ }
+ };
+
+ let output = null;
+
+ async function execute() {
+ let userFunction;
+ try {
+ userFunction = await import(USER_CODE_PATH + '/' + ENTRYPOINT);
+ } catch (err) {
+ if (err.code === 'ERR_REQUIRE_ESM') {
+ userFunction = await import(USER_CODE_PATH + '/' + ENTRYPOINT);
+ } else {
+ throw err;
+ }
+ }
+
+ if (!(userFunction || userFunction.constructor || userFunction.call || userFunction.apply)) {
+ throw new Error('User function is not valid.');
+ }
+
+ if (userFunction.default) {
+ if (
+ !(
+ userFunction.default.constructor ||
+ userFunction.default.call ||
+ userFunction.default.apply
+ )
+ ) {
+ throw new Error('User function is not valid.');
+ }
+
+ output = await userFunction.default(context);
+ } else {
+ output = await userFunction(context);
+ }
+ }
+
+ try {
+ if (safeTimeout !== null) {
+ let executed = true;
+
+ const timeoutPromise = new Promise((promiseRes) => {
+ setTimeout(() => {
+ executed = false;
+ promiseRes(true);
+ }, safeTimeout * 1000);
+ });
+
+ await Promise.race([execute(), timeoutPromise]);
+
+ if (!executed) {
+ context.error('Execution timed out.');
+ output = context.res.send('', 500, {});
+ }
+ } else {
+ await execute();
+ }
+ } catch (e) {
+ if (e.code === 'MODULE_NOT_FOUND') {
+ context.error('Could not load code file.');
+ }
+
+ context.error(e.stack || e);
+ output = context.res.send('', 500, {});
+ }
+
+ if (output === null || output === undefined) {
+ context.error(
+ 'Return statement missing. return context.res.empty() if no response is expected.'
+ );
+ output = context.res.send('', 500, {});
+ }
+
+ output.body = output.body ?? '';
+ output.statusCode = output.statusCode ?? 200;
+ output.headers = output.headers ?? {};
+
+ for (const header in output.headers) {
+ if (header.toLowerCase().startsWith('x-open-runtimes-')) {
+ continue;
+ }
+
+ res.setHeader(header.toLowerCase(), output.headers[header]);
+ }
+
+ const contentTypeValue = res.getHeader('content-type') ?? 'text/plain';
+ if (!contentTypeValue.startsWith('multipart/') && !contentTypeValue.includes('charset=')) {
+ res.setHeader('content-type', contentTypeValue + '; charset=utf-8');
+ }
+
+ // if (customstd) {
+ // context.log('');
+ // context.log('----------------------------------------------------------------------------');
+ // context.log('Unsupported logs detected. Use context.log() or context.error() for logging.');
+ // context.log('----------------------------------------------------------------------------');
+ // context.log(customstd);
+ // context.log('----------------------------------------------------------------------------');
+ // }
+
+ res.setHeader('x-open-runtimes-logs', encodeURIComponent(logs.join('\n')));
+ res.setHeader('x-open-runtimes-errors', encodeURIComponent(errors.join('\n')));
+
+ return send(res, output.statusCode, output.body);
+});
+
+server.listen(3000);
diff --git a/packages/adapter-appwrite/index.d.ts b/packages/adapter-appwrite/index.d.ts
new file mode 100644
index 0000000..e6a3df7
--- /dev/null
+++ b/packages/adapter-appwrite/index.d.ts
@@ -0,0 +1,13 @@
+import { Adapter } from '@sveltejs/kit';
+import './ambient.js';
+
+declare global {
+ const ENV_PREFIX: string;
+}
+
+interface AdapterOptions {
+ out?: string;
+ precompress?: boolean;
+}
+
+export default function plugin(options?: AdapterOptions): Adapter;
diff --git a/packages/adapter-appwrite/index.js b/packages/adapter-appwrite/index.js
new file mode 100644
index 0000000..773228c
--- /dev/null
+++ b/packages/adapter-appwrite/index.js
@@ -0,0 +1,82 @@
+// adapter-appwrites.js
+import { writeFileSync } from "node:fs";
+import { fileURLToPath } from "url";
+
+const files = fileURLToPath(new URL("./files", import.meta.url).href);
+
+/** @type {import('./index.js').default} */
+export default function (opts = {}) {
+ const { out = "build", precompress } = opts;
+
+ return {
+ name: "adapter-appwrite",
+
+ async adapt(builder) {
+ const tmp = builder.getBuildDirectory("adapter-appwrite");
+
+ // Clean up previous builds using builder's rimraf function
+ builder.rimraf(tmp);
+ builder.rimraf(out);
+ builder.mkdirp(tmp);
+ builder.mkdirp(out);
+
+ builder.log.minor("Copying assets");
+ builder.writeClient(`${out}/client`);
+ builder.writePrerendered(`${out}/prerendered`);
+
+ if (precompress) {
+ builder.log.minor("Compressing assets");
+ await Promise.all([
+ builder.compress(`${out}/client`),
+ builder.compress(`${out}/prerendered`),
+ ]);
+ }
+
+ builder.log.minor("Building server");
+ builder.writeServer(tmp);
+
+ builder.log.info("Preparing application for Appwrite...");
+
+ let prerendered_entries = Array.from(builder.prerendered.pages.entries());
+
+ if (builder.config.kit.paths.base) {
+ prerendered_entries = prerendered_entries.map(([path, { file }]) => [
+ path,
+ { file: `${builder.config.kit.paths.base}/${file}` },
+ ]);
+ }
+
+ writeFileSync(
+ `${tmp}/manifest.js`,
+ [
+ `export const manifest = ${builder.generateManifest({
+ relativePath: "./",
+ })};`,
+ `export const prerendered = new Set(${JSON.stringify(
+ builder.prerendered.paths
+ )});`,
+ ].join("\n\n")
+ );
+
+ // Use builder.copy to process and move the entry file
+ builder.copy(files, out, {
+ replace: {
+ SERVER: `./server/index.js`,
+ MANIFEST: "./server/manifest.js",
+ },
+ });
+
+ builder.copy(tmp, `${out}/server`, {
+ replace: {
+ SERVER: `./index.js`,
+ MANIFEST: ".//manifest.js",
+ },
+ });
+
+ builder.log.info("Application prepared for Appwrite");
+ },
+ supports: {
+ read: () => true,
+ },
+ };
+}
diff --git a/packages/adapter-appwrite/package.json b/packages/adapter-appwrite/package.json
new file mode 100644
index 0000000..34753c0
--- /dev/null
+++ b/packages/adapter-appwrite/package.json
@@ -0,0 +1,40 @@
+{
+ "name": "adapter-appwrite",
+ "version": "1.0.0",
+ "files": [
+ "files",
+ "index.js",
+ "index.d.ts"
+ ],
+ "types": "index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./index.d.ts",
+ "import": "./index.js"
+ }
+ },
+ "peerDependencies": {
+ "svelte": "^4.0.0"
+ },
+ "devDependencies": {
+ "@sveltejs/kit": "^2.0.0",
+ "@sveltejs/package": "^2.0.0",
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "@types/mime-types": "^2.1.4",
+ "@types/node": "^20.11.17",
+ "esbuild": "^0.20.0",
+ "micro": "^9.3.4",
+ "prettier": "^3.1.1",
+ "prettier-plugin-svelte": "^3.1.2",
+ "publint": "^0.1.9",
+ "svelte": "^4.2.7",
+ "svelte-check": "^3.6.0",
+ "tslib": "^2.4.1",
+ "typescript": "^5.0.0",
+ "vite": "^5.0.11"
+ },
+ "dependencies": {
+ "mime-types": "^2.1.35"
+ },
+ "type": "module"
+}
diff --git a/packages/adapter-appwrite/placeholders.d.ts b/packages/adapter-appwrite/placeholders.d.ts
new file mode 100644
index 0000000..23c2543
--- /dev/null
+++ b/packages/adapter-appwrite/placeholders.d.ts
@@ -0,0 +1,11 @@
+declare module 'MANIFEST' {
+ import { SSRManifest } from '@sveltejs/kit';
+
+ export const base: string;
+ export const manifest: SSRManifest;
+ export const prerendered: Set;
+}
+
+declare module 'SERVER' {
+ export { Server } from '@sveltejs/kit';
+}
diff --git a/packages/adapter-electron/.eslintrc.cjs b/packages/adapter-electron/.eslintrc.cjs
new file mode 100644
index 0000000..49fe325
--- /dev/null
+++ b/packages/adapter-electron/.eslintrc.cjs
@@ -0,0 +1,3 @@
+module.exports = {
+ extends: ["@repo/eslint-config/index.js"],
+};
diff --git a/packages/adapter-electron/README.md b/packages/adapter-electron/README.md
new file mode 100644
index 0000000..9c9b8f2
--- /dev/null
+++ b/packages/adapter-electron/README.md
@@ -0,0 +1,40 @@
+# adapter-electron
+
+## A sveltekit adapter for Electron Desktop Apps
+
+This is a simple wrapper for the existing `adapter-node` SvelteKit adapter, with the exception that this package exports custom functions to handle the integration and running of the polka server and handler that are built from the node adapter.
+
+```js
+import { app, BrowserWindow } from 'electron';
+import { start, load } from 'adapter-electron/functions';
+import isDev from 'electron-is-dev';
+import log from 'electron-log/main';
+import nodePath from 'node:path';
+
+
+const port = await start();
+
+async function createWindow() {
+ // Create the browser window
+
+ const mainWindow = new BrowserWindow({
+ width: 800,
+ height: 600,
+ webPreferences: {
+ preload: nodePath.join(__dirname, '../preload/index.mjs')
+ }
+ });
+
+ // Load the local URL for development or the local
+ // html file for production
+ load(mainWindow, port);
+
+ if (isDev) mainWindow.webContents.openDevTools();
+}
+```
+
+If you are having issues with this adapter running or building properly, it's most likely related to the `ORIGIN` configured.
+I implented a sort of SHIM that will set the value at runtime to the correct value for the local electron desktop environment.
+
+This implementation is fully functional with the caveat that [this PR be merged](https://github.com/alex8088/electron-vite/pull/412).
+I have patched the package locally in node modules and validated everything builds perfectly.
diff --git a/packages/adapter-electron/functions/index.d.ts b/packages/adapter-electron/functions/index.d.ts
new file mode 100644
index 0000000..d8d0aa5
--- /dev/null
+++ b/packages/adapter-electron/functions/index.d.ts
@@ -0,0 +1,2 @@
+export function load(mainWindow: any, port: string | undefined): void;
+export function start(): Promise;
diff --git a/packages/adapter-electron/functions/index.js b/packages/adapter-electron/functions/index.js
new file mode 100644
index 0000000..18926c2
--- /dev/null
+++ b/packages/adapter-electron/functions/index.js
@@ -0,0 +1,42 @@
+import isDev from 'electron-is-dev';
+import path from 'node:path';
+import log from 'electron-log/main';
+import polka from 'polka';
+
+/** @type {import('./index.js').start} */
+export const start = async () => {
+ if (isDev) return undefined;
+ const { env } = await await import(`file://${path.join(__dirname, '../renderer/env.js')}`);
+ const port = env('PORT', '3000');
+
+ log.info(`Configured Port is: ${port}`);
+
+ log.info(`Setting origin to http://127.0.0.1:${port}`);
+ process.env['ORIGIN'] = `http://127.0.0.1:${port}`;
+
+ log.info('Importing Polka handler');
+ const { handler } = await import(`file://${path.join(__dirname, '../renderer/handler.js')}`);
+
+ // createHandler(port),
+ const server = polka().use(handler);
+
+ Object.assign(console, log.functions);
+
+ log.info('Starting server...');
+ server.listen({ path: false, host: '127.0.0.1', port }, () => {
+ log.info(`Server Listening on http://127.0.0.1:${port}`);
+ });
+
+ return port;
+};
+
+/** @type {import('./index.js').load} */
+export const load = (mainWindow, port) => {
+ if (isDev && process.env['ELECTRON_RENDERER_URL']) {
+ log.info(`Loading url: ${process.env['ELECTRON_RENDERER_URL']}`);
+ mainWindow.loadURL(process.env['ELECTRON_RENDERER_URL']);
+ } else {
+ log.info(`Loading url: http://127.0.0.1:${port}`);
+ mainWindow.loadURL(`http://127.0.0.1:${port}`);
+ }
+};
diff --git a/packages/adapter-electron/index.d.ts b/packages/adapter-electron/index.d.ts
new file mode 100644
index 0000000..443e853
--- /dev/null
+++ b/packages/adapter-electron/index.d.ts
@@ -0,0 +1,10 @@
+import { Adapter } from '@sveltejs/kit';
+import type { AdapterOptions as NodeAdapterOptions } from '@sveltejs/adapter-node';
+import './ambient.js';
+
+interface AdapterOptions {
+ out?: string;
+ options?: NodeAdapterOptions;
+}
+
+export default function plugin(options?: AdapterOptions): Adapter;
diff --git a/packages/adapter-electron/index.js b/packages/adapter-electron/index.js
new file mode 100644
index 0000000..e407a1e
--- /dev/null
+++ b/packages/adapter-electron/index.js
@@ -0,0 +1,24 @@
+// adapter-electron.js
+import { fileURLToPath } from 'url';
+import adapter from '@sveltejs/adapter-node';
+
+const files = fileURLToPath(new URL('./files', import.meta.url).href);
+
+/** @type {import('./index.js').default} */
+export default function (opts = {}) {
+ const { out = 'out/renderer', options } = opts;
+
+ return {
+ name: 'adapter-electron',
+
+ async adapt(builder) {
+ builder.rimraf(out);
+ builder.mkdirp(out);
+
+ await adapter({ out, ...options }).adapt(builder);
+ },
+ supports: {
+ read: () => true
+ }
+ };
+}
diff --git a/packages/adapter-electron/package.json b/packages/adapter-electron/package.json
new file mode 100644
index 0000000..7df42bb
--- /dev/null
+++ b/packages/adapter-electron/package.json
@@ -0,0 +1,49 @@
+{
+ "name": "adapter-electron",
+ "version": "1.0.0",
+ "files": [
+ "files",
+ "index.js",
+ "index.d.ts"
+ ],
+ "types": "index.d.ts",
+ "exports": {
+ ".": {
+ "types": "./index.d.ts",
+ "import": "./index.js"
+ },
+ "./functions": {
+ "types": "./functions/index.d.ts",
+ "import": "./functions/index.js"
+ }
+ },
+ "peerDependencies": {
+ "svelte": "^4.0.0"
+ },
+ "devDependencies": {
+ "@sveltejs/adapter-node": "^4.0.1",
+ "@sveltejs/kit": "^2.0.0",
+ "@sveltejs/package": "^2.0.0",
+ "@sveltejs/vite-plugin-svelte": "^3.0.0",
+ "@types/mime-types": "^2.1.4",
+ "@types/node": "^20.11.17",
+ "electron-is-dev": "^3.0.1",
+ "electron-log": "^5.1.1",
+ "electron-util": "^0.18.0",
+ "esbuild": "^0.20.0",
+ "micro": "^9.3.4",
+ "polka": "^0.5.2",
+ "prettier": "^3.1.1",
+ "prettier-plugin-svelte": "^3.1.2",
+ "publint": "^0.1.9",
+ "svelte": "^4.2.7",
+ "svelte-check": "^3.6.0",
+ "tslib": "^2.4.1",
+ "typescript": "^5.0.0",
+ "vite": "^5.0.11"
+ },
+ "dependencies": {
+ "mime-types": "^2.1.35"
+ },
+ "type": "module"
+}
diff --git a/packages/adapter-electron/placeholders.d.ts b/packages/adapter-electron/placeholders.d.ts
new file mode 100644
index 0000000..e14e755
--- /dev/null
+++ b/packages/adapter-electron/placeholders.d.ts
@@ -0,0 +1,3 @@
+declare module 'NODESERVER' {
+ export const host: string, path: string, port: string, server: any;
+}
diff --git a/packages/config-eslint/index.js b/packages/config-eslint/index.js
new file mode 100644
index 0000000..33580c9
--- /dev/null
+++ b/packages/config-eslint/index.js
@@ -0,0 +1,32 @@
+/** @type { import("eslint").Linter.Config } */
+module.exports = {
+ root: true,
+ extends: [
+ 'eslint:recommended',
+ 'plugin:@typescript-eslint/recommended',
+ 'plugin:svelte/recommended',
+ 'prettier',
+ 'turbo'
+ ],
+ parser: '@typescript-eslint/parser',
+ plugins: ['@typescript-eslint'],
+ parserOptions: {
+ sourceType: 'module',
+ ecmaVersion: 2020,
+ extraFileExtensions: ['.svelte']
+ },
+ env: {
+ browser: true,
+ es2017: true,
+ node: true
+ },
+ overrides: [
+ {
+ files: ['*.svelte'],
+ parser: 'svelte-eslint-parser',
+ parserOptions: {
+ parser: '@typescript-eslint/parser'
+ }
+ }
+ ]
+};
diff --git a/packages/eslint-config/package.json b/packages/config-eslint/package.json
similarity index 51%
rename from packages/eslint-config/package.json
rename to packages/config-eslint/package.json
index 575d83a..e58078f 100644
--- a/packages/eslint-config/package.json
+++ b/packages/config-eslint/package.json
@@ -1,19 +1,14 @@
{
"name": "@repo/eslint-config",
"version": "0.0.0",
- "private": true,
- "files": [
- "library.js",
- "next.js",
- "react-internal.js"
- ],
- "devDependencies": {
- "@vercel/style-guide": "^5.1.0",
- "eslint-config-turbo": "^1.11.3",
- "eslint-config-prettier": "^9.1.0",
- "eslint-plugin-only-warn": "^1.1.0",
- "@typescript-eslint/parser": "^6.17.0",
+ "dependencies": {
"@typescript-eslint/eslint-plugin": "^6.17.0",
- "typescript": "^5.3.3"
+ "@typescript-eslint/parser": "^6.17.0",
+ "eslint-config-prettier": "^9.1.0",
+ "eslint-config-turbo": "^1.11.3",
+ "eslint-plugin-svelte": "^2.35.1"
+ },
+ "publishConfig": {
+ "access": "public"
}
}
diff --git a/packages/eslint-config/README.md b/packages/eslint-config/README.md
deleted file mode 100644
index 8b42d90..0000000
--- a/packages/eslint-config/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# `@turbo/eslint-config`
-
-Collection of internal eslint configurations.
diff --git a/packages/eslint-config/library.js b/packages/eslint-config/library.js
deleted file mode 100644
index c667cd1..0000000
--- a/packages/eslint-config/library.js
+++ /dev/null
@@ -1,34 +0,0 @@
-const { resolve } = require("node:path");
-
-const project = resolve(process.cwd(), "tsconfig.json");
-
-/** @type {import("eslint").Linter.Config} */
-module.exports = {
- extends: ["eslint:recommended", "prettier", "eslint-config-turbo"],
- plugins: ["only-warn"],
- globals: {
- React: true,
- JSX: true,
- },
- env: {
- node: true,
- },
- settings: {
- "import/resolver": {
- typescript: {
- project,
- },
- },
- },
- ignorePatterns: [
- // Ignore dotfiles
- ".*.js",
- "node_modules/",
- "dist/",
- ],
- overrides: [
- {
- files: ["*.js?(x)", "*.ts?(x)"],
- },
- ],
-};
diff --git a/packages/eslint-config/next.js b/packages/eslint-config/next.js
deleted file mode 100644
index 6000e54..0000000
--- a/packages/eslint-config/next.js
+++ /dev/null
@@ -1,35 +0,0 @@
-const { resolve } = require("node:path");
-
-const project = resolve(process.cwd(), "tsconfig.json");
-
-/** @type {import("eslint").Linter.Config} */
-module.exports = {
- extends: [
- "eslint:recommended",
- "prettier",
- require.resolve("@vercel/style-guide/eslint/next"),
- "eslint-config-turbo",
- ],
- globals: {
- React: true,
- JSX: true,
- },
- env: {
- node: true,
- browser: true,
- },
- plugins: ["only-warn"],
- settings: {
- "import/resolver": {
- typescript: {
- project,
- },
- },
- },
- ignorePatterns: [
- // Ignore dotfiles
- ".*.js",
- "node_modules/",
- ],
- overrides: [{ files: ["*.js?(x)", "*.ts?(x)"] }],
-};
diff --git a/packages/eslint-config/react-internal.js b/packages/eslint-config/react-internal.js
deleted file mode 100644
index f56c924..0000000
--- a/packages/eslint-config/react-internal.js
+++ /dev/null
@@ -1,43 +0,0 @@
-const { resolve } = require("node:path");
-
-const project = resolve(process.cwd(), "tsconfig.json");
-
-/*
- * This is a custom ESLint configuration for use with
- * internal (bundled by their consumer) libraries
- * that utilize React.
- *
- * This config extends the Vercel Engineering Style Guide.
- * For more information, see https://github.com/vercel/style-guide
- *
- */
-
-/** @type {import("eslint").Linter.Config} */
-module.exports = {
- extends: ["eslint:recommended", "prettier", "eslint-config-turbo"],
- plugins: ["only-warn"],
- globals: {
- React: true,
- JSX: true,
- },
- env: {
- browser: true,
- },
- settings: {
- "import/resolver": {
- typescript: {
- project,
- },
- },
- },
- ignorePatterns: [
- // Ignore dotfiles
- ".*.js",
- "node_modules/",
- "dist/",
- ],
- overrides: [
- // Force ESLint to detect .tsx files
- { files: ["*.js?(x)", "*.ts?(x)"] },
- ],
-};
diff --git a/packages/typescript-config/base.json b/packages/typescript-config/base.json
deleted file mode 100644
index 0f80cfd..0000000
--- a/packages/typescript-config/base.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "$schema": "https://json.schemastore.org/tsconfig",
- "display": "Default",
- "compilerOptions": {
- "declaration": true,
- "declarationMap": true,
- "esModuleInterop": true,
- "incremental": false,
- "isolatedModules": true,
- "lib": ["es2022", "DOM", "DOM.Iterable"],
- "module": "NodeNext",
- "moduleDetection": "force",
- "moduleResolution": "NodeNext",
- "noUncheckedIndexedAccess": true,
- "resolveJsonModule": true,
- "skipLibCheck": true,
- "strict": true,
- "target": "ES2022"
- }
-}
diff --git a/packages/typescript-config/nextjs.json b/packages/typescript-config/nextjs.json
deleted file mode 100644
index 44f4289..0000000
--- a/packages/typescript-config/nextjs.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "$schema": "https://json.schemastore.org/tsconfig",
- "display": "Next.js",
- "extends": "./base.json",
- "compilerOptions": {
- "plugins": [{ "name": "next" }],
- "module": "ESNext",
- "moduleResolution": "Bundler",
- "allowJs": true,
- "jsx": "preserve",
- "noEmit": true
- }
-}
diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json
deleted file mode 100644
index 27c0e60..0000000
--- a/packages/typescript-config/package.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "name": "@repo/typescript-config",
- "version": "0.0.0",
- "private": true,
- "license": "MIT",
- "publishConfig": {
- "access": "public"
- }
-}
diff --git a/packages/typescript-config/react-library.json b/packages/typescript-config/react-library.json
deleted file mode 100644
index 44924d9..0000000
--- a/packages/typescript-config/react-library.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "$schema": "https://json.schemastore.org/tsconfig",
- "display": "React Library",
- "extends": "./base.json",
- "compilerOptions": {
- "jsx": "react-jsx"
- }
-}
diff --git a/packages/ui/.eslintrc.js b/packages/ui/.eslintrc.js
deleted file mode 100644
index 9117326..0000000
--- a/packages/ui/.eslintrc.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/** @type {import("eslint").Linter.Config} */
-module.exports = {
- root: true,
- extends: ["@repo/eslint-config/react-internal.js"],
- parser: "@typescript-eslint/parser",
- parserOptions: {
- project: "./tsconfig.lint.json",
- },
-};
diff --git a/packages/ui/package.json b/packages/ui/package.json
deleted file mode 100644
index e09137c..0000000
--- a/packages/ui/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "@repo/ui",
- "version": "0.0.0",
- "private": true,
- "exports": {
- "./button": "./src/button.tsx",
- "./card": "./src/card.tsx",
- "./code": "./src/code.tsx"
- },
- "scripts": {
- "lint": "eslint . --max-warnings 0",
- "generate:component": "turbo gen react-component"
- },
- "devDependencies": {
- "@repo/eslint-config": "workspace:*",
- "@repo/typescript-config": "workspace:*",
- "@turbo/gen": "^1.11.3",
- "@types/node": "^20.10.6",
- "@types/eslint": "^8.56.1",
- "@types/react": "^18.2.46",
- "@types/react-dom": "^18.2.18",
- "eslint": "^8.56.0",
- "react": "^18.2.0",
- "typescript": "^5.3.3"
- }
-}
diff --git a/packages/ui/src/button.tsx b/packages/ui/src/button.tsx
deleted file mode 100644
index 78e5420..0000000
--- a/packages/ui/src/button.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-"use client";
-
-import { ReactNode } from "react";
-
-interface ButtonProps {
- children: ReactNode;
- className?: string;
- appName: string;
-}
-
-export const Button = ({ children, className, appName }: ButtonProps) => {
- return (
- alert(`Hello from your ${appName} app!`)}
- >
- {children}
-
- );
-};
diff --git a/packages/ui/src/card.tsx b/packages/ui/src/card.tsx
deleted file mode 100644
index f69672e..0000000
--- a/packages/ui/src/card.tsx
+++ /dev/null
@@ -1,25 +0,0 @@
-export function Card({
- className,
- title,
- children,
- href,
-}: {
- className?: string;
- title: string;
- children: React.ReactNode;
- href: string;
-}): JSX.Element {
- return (
-
-
- {title} ->
-
- {children}
-
- );
-}
diff --git a/packages/ui/src/code.tsx b/packages/ui/src/code.tsx
deleted file mode 100644
index 769d971..0000000
--- a/packages/ui/src/code.tsx
+++ /dev/null
@@ -1,9 +0,0 @@
-export function Code({
- children,
- className,
-}: {
- children: React.ReactNode;
- className?: string;
-}): JSX.Element {
- return {children};
-}
diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json
deleted file mode 100644
index ca86687..0000000
--- a/packages/ui/tsconfig.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "extends": "@repo/typescript-config/react-library.json",
- "compilerOptions": {
- "outDir": "dist"
- },
- "include": ["src"],
- "exclude": ["node_modules", "dist"]
-}
diff --git a/packages/ui/tsconfig.lint.json b/packages/ui/tsconfig.lint.json
deleted file mode 100644
index df2762e..0000000
--- a/packages/ui/tsconfig.lint.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "extends": "@repo/typescript-config/react-library.json",
- "compilerOptions": {
- "outDir": "dist"
- },
- "include": ["src", "turbo"],
- "exclude": ["node_modules", "dist"]
-}
diff --git a/packages/ui/turbo/generators/config.ts b/packages/ui/turbo/generators/config.ts
deleted file mode 100644
index 07ce973..0000000
--- a/packages/ui/turbo/generators/config.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import type { PlopTypes } from "@turbo/gen";
-
-// Learn more about Turborepo Generators at https://turbo.build/repo/docs/core-concepts/monorepos/code-generation
-
-export default function generator(plop: PlopTypes.NodePlopAPI): void {
- // A simple generator to add a new React component to the internal UI library
- plop.setGenerator("react-component", {
- description: "Adds a new react component",
- prompts: [
- {
- type: "input",
- name: "name",
- message: "What is the name of the component?",
- },
- ],
- actions: [
- {
- type: "add",
- path: "src/{{kebabCase name}}.tsx",
- templateFile: "templates/component.hbs",
- },
- {
- type: "append",
- path: "index.tsx",
- pattern: /"exports": {(?)/g,
- template: '"./{{kebabCase name}}": "./src/{{kebabCase name}}.tsx",',
- },
- ],
- });
-}
diff --git a/packages/ui/turbo/generators/templates/component.hbs b/packages/ui/turbo/generators/templates/component.hbs
deleted file mode 100644
index d968b9e..0000000
--- a/packages/ui/turbo/generators/templates/component.hbs
+++ /dev/null
@@ -1,8 +0,0 @@
-export const {{ pascalCase name }} = ({ children }: { children: React.ReactNode }) => {
- return (
-
-
{{ pascalCase name }} Component
- {children}
-
- );
-};
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ce65570..9e7f5bc 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,173 +1,307 @@
lockfileVersion: '6.0'
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
importers:
.:
devDependencies:
- '@repo/eslint-config':
- specifier: workspace:*
- version: link:packages/eslint-config
- '@repo/typescript-config':
- specifier: workspace:*
- version: link:packages/typescript-config
+ '@changesets/cli':
+ specifier: ^2.27.1
+ version: 2.27.1
+ concurrently:
+ specifier: ^8.2.2
+ version: 8.2.2
+ electron:
+ specifier: ^28.2.3
+ version: 28.2.3
+ electron-util:
+ specifier: ^0.18.0
+ version: 0.18.0
+ eslint:
+ specifier: ^8.56.0
+ version: 8.56.0
prettier:
specifier: ^3.1.1
version: 3.1.1
+ rimraf:
+ specifier: ^5.0.5
+ version: 5.0.5
turbo:
specifier: latest
- version: 1.10.16
+ version: 1.12.4
- apps/docs:
- dependencies:
- '@repo/ui':
- specifier: workspace:*
- version: link:../../packages/ui
- next:
- specifier: ^14.0.4
- version: 14.0.4(react-dom@18.2.0)(react@18.2.0)
- react:
- specifier: ^18.2.0
- version: 18.2.0
- react-dom:
- specifier: ^18.2.0
- version: 18.2.0(react@18.2.0)
+ examples/appwrite:
devDependencies:
- '@next/eslint-plugin-next':
- specifier: ^14.0.4
- version: 14.0.4
- '@repo/eslint-config':
+ '@fontsource/fira-mono':
+ specifier: ^4.5.10
+ version: 4.5.10
+ '@neoconfetti/svelte':
+ specifier: ^1.0.0
+ version: 1.0.0
+ '@sveltejs/adapter-auto':
+ specifier: ^3.0.0
+ version: 3.0.0(@sveltejs/kit@2.0.0)
+ '@sveltejs/kit':
+ specifier: ^2.0.0
+ version: 2.0.0(@sveltejs/vite-plugin-svelte@3.0.0)(svelte@4.2.7)(vite@5.0.11)
+ '@sveltejs/vite-plugin-svelte':
+ specifier: ^3.0.0
+ version: 3.0.0(svelte@4.2.7)(vite@5.0.11)
+ adapter-appwrite:
specifier: workspace:*
- version: link:../../packages/eslint-config
- '@repo/typescript-config':
- specifier: workspace:*
- version: link:../../packages/typescript-config
+ version: link:../../packages/adapter-appwrite
+ svelte:
+ specifier: ^4.2.7
+ version: 4.2.7
+ svelte-check:
+ specifier: ^3.6.0
+ version: 3.6.0(@babel/core@7.23.9)(postcss@8.4.35)(svelte@4.2.7)
+ tslib:
+ specifier: ^2.4.1
+ version: 2.6.2
+ typescript:
+ specifier: ^5.0.0
+ version: 5.3.3
+ vite:
+ specifier: ^5.0.3
+ version: 5.0.11(@types/node@20.11.17)
+
+ examples/electron:
+ devDependencies:
+ '@fontsource/fira-mono':
+ specifier: ^4.5.10
+ version: 4.5.10
+ '@neoconfetti/svelte':
+ specifier: ^1.0.0
+ version: 1.0.0
+ '@sveltejs/kit':
+ specifier: ^2.0.0
+ version: 2.0.0(@sveltejs/vite-plugin-svelte@3.0.0)(svelte@4.2.7)(vite@5.0.11)
+ '@sveltejs/vite-plugin-svelte':
+ specifier: ^3.0.0
+ version: 3.0.0(svelte@4.2.7)(vite@5.0.11)
'@types/eslint':
- specifier: ^8.56.1
- version: 8.56.1
- '@types/node':
- specifier: ^20.10.6
- version: 20.10.6
- '@types/react':
- specifier: ^18.2.46
- version: 18.2.46
- '@types/react-dom':
- specifier: ^18.2.18
- version: 18.2.18
+ specifier: 8.56.0
+ version: 8.56.0
+ '@typescript-eslint/eslint-plugin':
+ specifier: ^6.0.0
+ version: 6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.56.0)(typescript@5.3.3)
+ '@typescript-eslint/parser':
+ specifier: ^6.0.0
+ version: 6.0.0(eslint@8.56.0)(typescript@5.3.3)
+ adapter-electron:
+ specifier: workspace:*
+ version: link:../../packages/adapter-electron
+ concurrently:
+ specifier: ^8.2.2
+ version: 8.2.2
+ cross-env:
+ specifier: ^7.0.3
+ version: 7.0.3
+ dotenv:
+ specifier: ^16.4.4
+ version: 16.4.4
+ electron:
+ specifier: ^28.2.3
+ version: 28.2.3
+ electron-builder:
+ specifier: ^24.9.1
+ version: 24.9.1
+ electron-is-dev:
+ specifier: ^3.0.1
+ version: 3.0.1
+ electron-log:
+ specifier: ^5.1.1
+ version: 5.1.1
+ electron-util:
+ specifier: ^0.18.0
+ version: 0.18.0
+ electron-vite:
+ specifier: ^2.0.0
+ version: 2.0.0(vite@5.0.11)
eslint:
specifier: ^8.56.0
version: 8.56.0
+ eslint-config-prettier:
+ specifier: ^9.1.0
+ version: 9.1.0(eslint@8.56.0)
+ eslint-plugin-svelte:
+ specifier: ^2.35.1
+ version: 2.35.1(eslint@8.56.0)(svelte@4.2.7)
+ polka:
+ specifier: ^0.5.2
+ version: 0.5.2
+ prettier:
+ specifier: ^3.1.1
+ version: 3.1.1
+ prettier-plugin-svelte:
+ specifier: ^3.1.2
+ version: 3.1.2(prettier@3.1.1)(svelte@4.2.7)
+ svelte:
+ specifier: ^4.2.7
+ version: 4.2.7
+ svelte-check:
+ specifier: ^3.6.0
+ version: 3.6.0(@babel/core@7.23.9)(postcss@8.4.35)(svelte@4.2.7)
+ tslib:
+ specifier: ^2.4.1
+ version: 2.6.2
typescript:
- specifier: ^5.3.3
+ specifier: ^5.0.0
version: 5.3.3
+ vite:
+ specifier: ^5.0.3
+ version: 5.0.11(@types/node@20.11.17)
- apps/web:
+ packages/adapter-appwrite:
dependencies:
- '@repo/ui':
- specifier: workspace:*
- version: link:../../packages/ui
- next:
- specifier: ^14.0.4
- version: 14.0.4(react-dom@18.2.0)(react@18.2.0)
- react:
- specifier: ^18.2.0
- version: 18.2.0
- react-dom:
- specifier: ^18.2.0
- version: 18.2.0(react@18.2.0)
+ mime-types:
+ specifier: ^2.1.35
+ version: 2.1.35
devDependencies:
- '@next/eslint-plugin-next':
- specifier: ^14.0.4
- version: 14.0.4
- '@repo/eslint-config':
- specifier: workspace:*
- version: link:../../packages/eslint-config
- '@repo/typescript-config':
- specifier: workspace:*
- version: link:../../packages/typescript-config
- '@types/eslint':
- specifier: ^8.56.1
- version: 8.56.1
+ '@sveltejs/kit':
+ specifier: ^2.0.0
+ version: 2.0.0(@sveltejs/vite-plugin-svelte@3.0.0)(svelte@4.2.7)(vite@5.0.11)
+ '@sveltejs/package':
+ specifier: ^2.0.0
+ version: 2.0.0(svelte@4.2.7)(typescript@5.3.3)
+ '@sveltejs/vite-plugin-svelte':
+ specifier: ^3.0.0
+ version: 3.0.0(svelte@4.2.7)(vite@5.0.11)
+ '@types/mime-types':
+ specifier: ^2.1.4
+ version: 2.1.4
'@types/node':
- specifier: ^20.10.6
- version: 20.10.6
- '@types/react':
- specifier: ^18.2.46
- version: 18.2.46
- '@types/react-dom':
- specifier: ^18.2.18
- version: 18.2.18
- eslint:
- specifier: ^8.56.0
- version: 8.56.0
+ specifier: ^20.11.17
+ version: 20.11.17
+ esbuild:
+ specifier: ^0.20.0
+ version: 0.20.0
+ micro:
+ specifier: ^9.3.4
+ version: 9.3.4
+ prettier:
+ specifier: ^3.1.1
+ version: 3.1.1
+ prettier-plugin-svelte:
+ specifier: ^3.1.2
+ version: 3.1.2(prettier@3.1.1)(svelte@4.2.7)
+ publint:
+ specifier: ^0.1.9
+ version: 0.1.9
+ svelte:
+ specifier: ^4.2.7
+ version: 4.2.7
+ svelte-check:
+ specifier: ^3.6.0
+ version: 3.6.0(@babel/core@7.23.9)(postcss@8.4.35)(svelte@4.2.7)
+ tslib:
+ specifier: ^2.4.1
+ version: 2.6.2
typescript:
- specifier: ^5.3.3
+ specifier: ^5.0.0
version: 5.3.3
+ vite:
+ specifier: ^5.0.11
+ version: 5.0.11(@types/node@20.11.17)
- packages/eslint-config:
+ packages/adapter-electron:
+ dependencies:
+ mime-types:
+ specifier: ^2.1.35
+ version: 2.1.35
devDependencies:
+ '@sveltejs/adapter-node':
+ specifier: ^4.0.1
+ version: 4.0.1(@sveltejs/kit@2.0.0)
+ '@sveltejs/kit':
+ specifier: ^2.0.0
+ version: 2.0.0(@sveltejs/vite-plugin-svelte@3.0.0)(svelte@4.2.7)(vite@5.0.11)
+ '@sveltejs/package':
+ specifier: ^2.0.0
+ version: 2.0.0(svelte@4.2.7)(typescript@5.3.3)
+ '@sveltejs/vite-plugin-svelte':
+ specifier: ^3.0.0
+ version: 3.0.0(svelte@4.2.7)(vite@5.0.11)
+ '@types/mime-types':
+ specifier: ^2.1.4
+ version: 2.1.4
+ '@types/node':
+ specifier: ^20.11.17
+ version: 20.11.17
+ electron-is-dev:
+ specifier: ^3.0.1
+ version: 3.0.1
+ electron-log:
+ specifier: ^5.1.1
+ version: 5.1.1
+ electron-util:
+ specifier: ^0.18.0
+ version: 0.18.0
+ esbuild:
+ specifier: ^0.20.0
+ version: 0.20.0
+ micro:
+ specifier: ^9.3.4
+ version: 9.3.4
+ polka:
+ specifier: ^0.5.2
+ version: 0.5.2
+ prettier:
+ specifier: ^3.1.1
+ version: 3.1.1
+ prettier-plugin-svelte:
+ specifier: ^3.1.2
+ version: 3.1.2(prettier@3.1.1)(svelte@4.2.7)
+ publint:
+ specifier: ^0.1.9
+ version: 0.1.9
+ svelte:
+ specifier: ^4.2.7
+ version: 4.2.7
+ svelte-check:
+ specifier: ^3.6.0
+ version: 3.6.0(@babel/core@7.23.9)(postcss@8.4.35)(svelte@4.2.7)
+ tslib:
+ specifier: ^2.4.1
+ version: 2.6.2
+ typescript:
+ specifier: ^5.0.0
+ version: 5.3.3
+ vite:
+ specifier: ^5.0.11
+ version: 5.0.11(@types/node@20.11.17)
+
+ packages/config-eslint:
+ dependencies:
'@typescript-eslint/eslint-plugin':
specifier: ^6.17.0
version: 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3)
'@typescript-eslint/parser':
specifier: ^6.17.0
version: 6.17.0(eslint@8.56.0)(typescript@5.3.3)
- '@vercel/style-guide':
- specifier: ^5.1.0
- version: 5.1.0(eslint@8.56.0)(prettier@3.1.1)(typescript@5.3.3)
eslint-config-prettier:
specifier: ^9.1.0
version: 9.1.0(eslint@8.56.0)
eslint-config-turbo:
specifier: ^1.11.3
version: 1.11.3(eslint@8.56.0)
- eslint-plugin-only-warn:
- specifier: ^1.1.0
- version: 1.1.0
- typescript:
- specifier: ^5.3.3
- version: 5.3.3
-
- packages/typescript-config: {}
-
- packages/ui:
- devDependencies:
- '@repo/eslint-config':
- specifier: workspace:*
- version: link:../eslint-config
- '@repo/typescript-config':
- specifier: workspace:*
- version: link:../typescript-config
- '@turbo/gen':
- specifier: ^1.11.3
- version: 1.11.3(@types/node@20.10.6)(typescript@5.3.3)
- '@types/eslint':
- specifier: ^8.56.1
- version: 8.56.1
- '@types/node':
- specifier: ^20.10.6
- version: 20.10.6
- '@types/react':
- specifier: ^18.2.46
- version: 18.2.46
- '@types/react-dom':
- specifier: ^18.2.18
- version: 18.2.18
- eslint:
- specifier: ^8.56.0
- version: 8.56.0
- react:
- specifier: ^18.2.0
- version: 18.2.0
- typescript:
- specifier: ^5.3.3
- version: 5.3.3
+ eslint-plugin-svelte:
+ specifier: ^2.35.1
+ version: 2.35.1(eslint@8.56.0)(svelte@4.2.7)
packages:
+ /7zip-bin@5.2.0:
+ resolution: {integrity: sha512-ukTPVhqG4jNzMro2qA9HSCSSVJN3aN7tlb+hfqYCt3ER0yWroeA2VR38MNrOHLQ/cVj+DaIMad0kFCtWWowh/A==}
+ dev: true
+
/@aashutoshrathi/word-wrap@1.2.6:
resolution: {integrity: sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==}
engines: {node: '>=0.10.0'}
- dev: true
/@ampproject/remapping@2.2.1:
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
@@ -175,35 +309,39 @@ packages:
dependencies:
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.20
+
+ /@arr/every@1.0.1:
+ resolution: {integrity: sha512-UQFQ6SgyJ6LX42W8rHCs8KVc0JS0tzVL9ct4XYedJukskYVWTo49tNiMEK9C2HTyarbNiT/RVIRSY82vH+6sTg==}
+ engines: {node: '>=4'}
dev: true
- /@babel/code-frame@7.22.13:
- resolution: {integrity: sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==}
+ /@babel/code-frame@7.23.5:
+ resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/highlight': 7.22.20
+ '@babel/highlight': 7.23.4
chalk: 2.4.2
dev: true
- /@babel/compat-data@7.23.3:
- resolution: {integrity: sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ==}
+ /@babel/compat-data@7.23.5:
+ resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/core@7.23.3:
- resolution: {integrity: sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew==}
+ /@babel/core@7.23.9:
+ resolution: {integrity: sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw==}
engines: {node: '>=6.9.0'}
dependencies:
'@ampproject/remapping': 2.2.1
- '@babel/code-frame': 7.22.13
- '@babel/generator': 7.23.3
- '@babel/helper-compilation-targets': 7.22.15
- '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.3)
- '@babel/helpers': 7.23.2
- '@babel/parser': 7.23.3
- '@babel/template': 7.22.15
- '@babel/traverse': 7.23.3
- '@babel/types': 7.23.3
+ '@babel/code-frame': 7.23.5
+ '@babel/generator': 7.23.6
+ '@babel/helper-compilation-targets': 7.23.6
+ '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.9)
+ '@babel/helpers': 7.23.9
+ '@babel/parser': 7.23.9
+ '@babel/template': 7.23.9
+ '@babel/traverse': 7.23.9
+ '@babel/types': 7.23.9
convert-source-map: 2.0.0
debug: 4.3.4
gensync: 1.0.0-beta.2
@@ -213,37 +351,23 @@ packages:
- supports-color
dev: true
- /@babel/eslint-parser@7.23.3(@babel/core@7.23.3)(eslint@8.56.0):
- resolution: {integrity: sha512-9bTuNlyx7oSstodm1cR1bECj4fkiknsDa1YniISkJemMY3DGhJNYBECbe6QD/q54mp2J8VO66jW3/7uP//iFCw==}
- engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0}
- peerDependencies:
- '@babel/core': ^7.11.0
- eslint: ^7.5.0 || ^8.0.0
- dependencies:
- '@babel/core': 7.23.3
- '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1
- eslint: 8.56.0
- eslint-visitor-keys: 2.1.0
- semver: 6.3.1
- dev: true
-
- /@babel/generator@7.23.3:
- resolution: {integrity: sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg==}
+ /@babel/generator@7.23.6:
+ resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.3
+ '@babel/types': 7.23.9
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.20
jsesc: 2.5.2
dev: true
- /@babel/helper-compilation-targets@7.22.15:
- resolution: {integrity: sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw==}
+ /@babel/helper-compilation-targets@7.23.6:
+ resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/compat-data': 7.23.3
- '@babel/helper-validator-option': 7.22.15
- browserslist: 4.22.1
+ '@babel/compat-data': 7.23.5
+ '@babel/helper-validator-option': 7.23.5
+ browserslist: 4.23.0
lru-cache: 5.1.1
semver: 6.3.1
dev: true
@@ -257,31 +381,31 @@ packages:
resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.22.15
- '@babel/types': 7.23.3
+ '@babel/template': 7.23.9
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-hoist-variables@7.22.5:
resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.3
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-module-imports@7.22.15:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.3
+ '@babel/types': 7.23.9
dev: true
- /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.3):
+ /@babel/helper-module-transforms@7.23.3(@babel/core@7.23.9):
resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==}
engines: {node: '>=6.9.0'}
peerDependencies:
'@babel/core': ^7.0.0
dependencies:
- '@babel/core': 7.23.3
+ '@babel/core': 7.23.9
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-module-imports': 7.22.15
'@babel/helper-simple-access': 7.22.5
@@ -289,22 +413,27 @@ packages:
'@babel/helper-validator-identifier': 7.22.20
dev: true
+ /@babel/helper-plugin-utils@7.22.5:
+ resolution: {integrity: sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
/@babel/helper-simple-access@7.22.5:
resolution: {integrity: sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.3
+ '@babel/types': 7.23.9
dev: true
/@babel/helper-split-export-declaration@7.22.6:
resolution: {integrity: sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.23.3
+ '@babel/types': 7.23.9
dev: true
- /@babel/helper-string-parser@7.22.5:
- resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
+ /@babel/helper-string-parser@7.23.4:
+ resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==}
engines: {node: '>=6.9.0'}
dev: true
@@ -313,24 +442,24 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helper-validator-option@7.22.15:
- resolution: {integrity: sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA==}
+ /@babel/helper-validator-option@7.23.5:
+ resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==}
engines: {node: '>=6.9.0'}
dev: true
- /@babel/helpers@7.23.2:
- resolution: {integrity: sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ==}
+ /@babel/helpers@7.23.9:
+ resolution: {integrity: sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/template': 7.22.15
- '@babel/traverse': 7.23.3
- '@babel/types': 7.23.3
+ '@babel/template': 7.23.9
+ '@babel/traverse': 7.23.9
+ '@babel/types': 7.23.9
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/highlight@7.22.20:
- resolution: {integrity: sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==}
+ /@babel/highlight@7.23.4:
+ resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-validator-identifier': 7.22.20
@@ -338,71 +467,740 @@ packages:
js-tokens: 4.0.0
dev: true
- /@babel/parser@7.23.3:
- resolution: {integrity: sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw==}
+ /@babel/parser@7.23.9:
+ resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==}
engines: {node: '>=6.0.0'}
+ hasBin: true
dependencies:
- '@babel/types': 7.23.3
+ '@babel/types': 7.23.9
dev: true
- /@babel/runtime-corejs3@7.22.10:
- resolution: {integrity: sha512-IcixfV2Jl3UrqZX4c81+7lVg5++2ufYJyAFW3Aux/ZTvY6LVYYhJ9rMgnbX0zGVq6eqfVpnoatTjZdVki/GmWA==}
+ /@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.9):
+ resolution: {integrity: sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ==}
engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
dependencies:
- core-js-pure: 3.32.1
- regenerator-runtime: 0.14.0
+ '@babel/core': 7.23.9
+ '@babel/helper-plugin-utils': 7.22.5
dev: true
- /@babel/runtime@7.23.2:
- resolution: {integrity: sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==}
+ /@babel/runtime@7.23.9:
+ resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==}
engines: {node: '>=6.9.0'}
dependencies:
- regenerator-runtime: 0.14.0
+ regenerator-runtime: 0.14.1
dev: true
- /@babel/template@7.22.15:
- resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
+ /@babel/template@7.23.9:
+ resolution: {integrity: sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.22.13
- '@babel/parser': 7.23.3
- '@babel/types': 7.23.3
+ '@babel/code-frame': 7.23.5
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
dev: true
- /@babel/traverse@7.23.3:
- resolution: {integrity: sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ==}
+ /@babel/traverse@7.23.9:
+ resolution: {integrity: sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/code-frame': 7.22.13
- '@babel/generator': 7.23.3
+ '@babel/code-frame': 7.23.5
+ '@babel/generator': 7.23.6
'@babel/helper-environment-visitor': 7.22.20
'@babel/helper-function-name': 7.23.0
'@babel/helper-hoist-variables': 7.22.5
'@babel/helper-split-export-declaration': 7.22.6
- '@babel/parser': 7.23.3
- '@babel/types': 7.23.3
+ '@babel/parser': 7.23.9
+ '@babel/types': 7.23.9
debug: 4.3.4
globals: 11.12.0
transitivePeerDependencies:
- supports-color
dev: true
- /@babel/types@7.23.3:
- resolution: {integrity: sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw==}
+ /@babel/types@7.23.9:
+ resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/helper-string-parser': 7.22.5
+ '@babel/helper-string-parser': 7.23.4
'@babel/helper-validator-identifier': 7.22.20
to-fast-properties: 2.0.0
dev: true
- /@cspotcode/source-map-support@0.8.1:
- resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
+ /@changesets/apply-release-plan@7.0.0:
+ resolution: {integrity: sha512-vfi69JR416qC9hWmFGSxj7N6wA5J222XNBmezSVATPWDVPIF7gkd4d8CpbEbXmRWbVrkoli3oerGS6dcL/BGsQ==}
+ dependencies:
+ '@babel/runtime': 7.23.9
+ '@changesets/config': 3.0.0
+ '@changesets/get-version-range-type': 0.4.0
+ '@changesets/git': 3.0.0
+ '@changesets/types': 6.0.0
+ '@manypkg/get-packages': 1.1.3
+ detect-indent: 6.1.0
+ fs-extra: 7.0.1
+ lodash.startcase: 4.4.0
+ outdent: 0.5.0
+ prettier: 2.8.8
+ resolve-from: 5.0.0
+ semver: 7.6.0
+ dev: true
+
+ /@changesets/assemble-release-plan@6.0.0:
+ resolution: {integrity: sha512-4QG7NuisAjisbW4hkLCmGW2lRYdPrKzro+fCtZaILX+3zdUELSvYjpL4GTv0E4aM9Mef3PuIQp89VmHJ4y2bfw==}
+ dependencies:
+ '@babel/runtime': 7.23.9
+ '@changesets/errors': 0.2.0
+ '@changesets/get-dependents-graph': 2.0.0
+ '@changesets/types': 6.0.0
+ '@manypkg/get-packages': 1.1.3
+ semver: 7.6.0
+ dev: true
+
+ /@changesets/changelog-git@0.2.0:
+ resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==}
+ dependencies:
+ '@changesets/types': 6.0.0
+ dev: true
+
+ /@changesets/cli@2.27.1:
+ resolution: {integrity: sha512-iJ91xlvRnnrJnELTp4eJJEOPjgpF3NOh4qeQehM6Ugiz9gJPRZ2t+TsXun6E3AMN4hScZKjqVXl0TX+C7AB3ZQ==}
+ hasBin: true
+ dependencies:
+ '@babel/runtime': 7.23.9
+ '@changesets/apply-release-plan': 7.0.0
+ '@changesets/assemble-release-plan': 6.0.0
+ '@changesets/changelog-git': 0.2.0
+ '@changesets/config': 3.0.0
+ '@changesets/errors': 0.2.0
+ '@changesets/get-dependents-graph': 2.0.0
+ '@changesets/get-release-plan': 4.0.0
+ '@changesets/git': 3.0.0
+ '@changesets/logger': 0.1.0
+ '@changesets/pre': 2.0.0
+ '@changesets/read': 0.6.0
+ '@changesets/types': 6.0.0
+ '@changesets/write': 0.3.0
+ '@manypkg/get-packages': 1.1.3
+ '@types/semver': 7.5.7
+ ansi-colors: 4.1.3
+ chalk: 2.4.2
+ ci-info: 3.9.0
+ enquirer: 2.4.1
+ external-editor: 3.1.0
+ fs-extra: 7.0.1
+ human-id: 1.0.2
+ meow: 6.1.1
+ outdent: 0.5.0
+ p-limit: 2.3.0
+ preferred-pm: 3.1.2
+ resolve-from: 5.0.0
+ semver: 7.6.0
+ spawndamnit: 2.0.0
+ term-size: 2.2.1
+ tty-table: 4.2.3
+ dev: true
+
+ /@changesets/config@3.0.0:
+ resolution: {integrity: sha512-o/rwLNnAo/+j9Yvw9mkBQOZySDYyOr/q+wptRLcAVGlU6djOeP9v1nlalbL9MFsobuBVQbZCTp+dIzdq+CLQUA==}
+ dependencies:
+ '@changesets/errors': 0.2.0
+ '@changesets/get-dependents-graph': 2.0.0
+ '@changesets/logger': 0.1.0
+ '@changesets/types': 6.0.0
+ '@manypkg/get-packages': 1.1.3
+ fs-extra: 7.0.1
+ micromatch: 4.0.5
+ dev: true
+
+ /@changesets/errors@0.2.0:
+ resolution: {integrity: sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==}
+ dependencies:
+ extendable-error: 0.1.7
+ dev: true
+
+ /@changesets/get-dependents-graph@2.0.0:
+ resolution: {integrity: sha512-cafUXponivK4vBgZ3yLu944mTvam06XEn2IZGjjKc0antpenkYANXiiE6GExV/yKdsCnE8dXVZ25yGqLYZmScA==}
+ dependencies:
+ '@changesets/types': 6.0.0
+ '@manypkg/get-packages': 1.1.3
+ chalk: 2.4.2
+ fs-extra: 7.0.1
+ semver: 7.6.0
+ dev: true
+
+ /@changesets/get-release-plan@4.0.0:
+ resolution: {integrity: sha512-9L9xCUeD/Tb6L/oKmpm8nyzsOzhdNBBbt/ZNcjynbHC07WW4E1eX8NMGC5g5SbM5z/V+MOrYsJ4lRW41GCbg3w==}
+ dependencies:
+ '@babel/runtime': 7.23.9
+ '@changesets/assemble-release-plan': 6.0.0
+ '@changesets/config': 3.0.0
+ '@changesets/pre': 2.0.0
+ '@changesets/read': 0.6.0
+ '@changesets/types': 6.0.0
+ '@manypkg/get-packages': 1.1.3
+ dev: true
+
+ /@changesets/get-version-range-type@0.4.0:
+ resolution: {integrity: sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==}
+ dev: true
+
+ /@changesets/git@3.0.0:
+ resolution: {integrity: sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==}
+ dependencies:
+ '@babel/runtime': 7.23.9
+ '@changesets/errors': 0.2.0
+ '@changesets/types': 6.0.0
+ '@manypkg/get-packages': 1.1.3
+ is-subdir: 1.2.0
+ micromatch: 4.0.5
+ spawndamnit: 2.0.0
+ dev: true
+
+ /@changesets/logger@0.1.0:
+ resolution: {integrity: sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==}
+ dependencies:
+ chalk: 2.4.2
+ dev: true
+
+ /@changesets/parse@0.4.0:
+ resolution: {integrity: sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==}
+ dependencies:
+ '@changesets/types': 6.0.0
+ js-yaml: 3.14.1
+ dev: true
+
+ /@changesets/pre@2.0.0:
+ resolution: {integrity: sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==}
+ dependencies:
+ '@babel/runtime': 7.23.9
+ '@changesets/errors': 0.2.0
+ '@changesets/types': 6.0.0
+ '@manypkg/get-packages': 1.1.3
+ fs-extra: 7.0.1
+ dev: true
+
+ /@changesets/read@0.6.0:
+ resolution: {integrity: sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==}
+ dependencies:
+ '@babel/runtime': 7.23.9
+ '@changesets/git': 3.0.0
+ '@changesets/logger': 0.1.0
+ '@changesets/parse': 0.4.0
+ '@changesets/types': 6.0.0
+ chalk: 2.4.2
+ fs-extra: 7.0.1
+ p-filter: 2.1.0
+ dev: true
+
+ /@changesets/types@4.1.0:
+ resolution: {integrity: sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==}
+ dev: true
+
+ /@changesets/types@6.0.0:
+ resolution: {integrity: sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==}
+ dev: true
+
+ /@changesets/write@0.3.0:
+ resolution: {integrity: sha512-slGLb21fxZVUYbyea+94uFiD6ntQW0M2hIKNznFizDhZPDgn2c/fv1UzzlW43RVzh1BEDuIqW6hzlJ1OflNmcw==}
+ dependencies:
+ '@babel/runtime': 7.23.9
+ '@changesets/types': 6.0.0
+ fs-extra: 7.0.1
+ human-id: 1.0.2
+ prettier: 2.8.8
+ dev: true
+
+ /@develar/schema-utils@2.6.5:
+ resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==}
+ engines: {node: '>= 8.9.0'}
+ dependencies:
+ ajv: 6.12.6
+ ajv-keywords: 3.5.2(ajv@6.12.6)
+ dev: true
+
+ /@electron/asar@3.2.8:
+ resolution: {integrity: sha512-cmskk5M06ewHMZAplSiF4AlME3IrnnZhKnWbtwKVLRkdJkKyUVjMLhDIiPIx/+6zQWVlKX/LtmK9xDme7540Sg==}
+ engines: {node: '>=10.12.0'}
+ hasBin: true
+ dependencies:
+ commander: 5.1.0
+ glob: 7.2.3
+ minimatch: 3.1.2
+ dev: true
+
+ /@electron/get@2.0.3:
+ resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==}
engines: {node: '>=12'}
dependencies:
- '@jridgewell/trace-mapping': 0.3.9
+ debug: 4.3.4
+ env-paths: 2.2.1
+ fs-extra: 8.1.0
+ got: 11.8.6
+ progress: 2.0.3
+ semver: 6.3.1
+ sumchecker: 3.0.1
+ optionalDependencies:
+ global-agent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
dev: true
+ /@electron/notarize@2.1.0:
+ resolution: {integrity: sha512-Q02xem1D0sg4v437xHgmBLxI2iz/fc0D4K7fiVWHa/AnW8o7D751xyKNXgziA6HrTOme9ul1JfWN5ark8WH1xA==}
+ engines: {node: '>= 10.0.0'}
+ dependencies:
+ debug: 4.3.4
+ fs-extra: 9.1.0
+ promise-retry: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@electron/osx-sign@1.0.5:
+ resolution: {integrity: sha512-k9ZzUQtamSoweGQDV2jILiRIHUu7lYlJ3c6IEmjv1hC17rclE+eb9U+f6UFlOOETo0JzY1HNlXy4YOlCvl+Lww==}
+ engines: {node: '>=12.0.0'}
+ hasBin: true
+ dependencies:
+ compare-version: 0.1.2
+ debug: 4.3.4
+ fs-extra: 10.1.0
+ isbinaryfile: 4.0.10
+ minimist: 1.2.8
+ plist: 3.1.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@electron/universal@1.4.1:
+ resolution: {integrity: sha512-lE/U3UNw1YHuowNbTmKNs9UlS3En3cPgwM5MI+agIgr/B1hSze9NdOP0qn7boZaI9Lph8IDv3/24g9IxnJP7aQ==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ '@electron/asar': 3.2.8
+ '@malept/cross-spawn-promise': 1.1.1
+ debug: 4.3.4
+ dir-compare: 3.3.0
+ fs-extra: 9.1.0
+ minimatch: 3.1.2
+ plist: 3.1.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@esbuild/aix-ppc64@0.19.12:
+ resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/aix-ppc64@0.20.0:
+ resolution: {integrity: sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [aix]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64@0.19.12:
+ resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm64@0.20.0:
+ resolution: {integrity: sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm@0.19.12:
+ resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-arm@0.20.0:
+ resolution: {integrity: sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.19.12:
+ resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/android-x64@0.20.0:
+ resolution: {integrity: sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.19.12:
+ resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-arm64@0.20.0:
+ resolution: {integrity: sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.19.12:
+ resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/darwin-x64@0.20.0:
+ resolution: {integrity: sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.19.12:
+ resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-arm64@0.20.0:
+ resolution: {integrity: sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.19.12:
+ resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/freebsd-x64@0.20.0:
+ resolution: {integrity: sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.19.12:
+ resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm64@0.20.0:
+ resolution: {integrity: sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.19.12:
+ resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-arm@0.20.0:
+ resolution: {integrity: sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.19.12:
+ resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ia32@0.20.0:
+ resolution: {integrity: sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.19.12:
+ resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64@0.20.0:
+ resolution: {integrity: sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.19.12:
+ resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-mips64el@0.20.0:
+ resolution: {integrity: sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ppc64@0.19.12:
+ resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-ppc64@0.20.0:
+ resolution: {integrity: sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.19.12:
+ resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-riscv64@0.20.0:
+ resolution: {integrity: sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-s390x@0.19.12:
+ resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-s390x@0.20.0:
+ resolution: {integrity: sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64@0.19.12:
+ resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-x64@0.20.0:
+ resolution: {integrity: sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.19.12:
+ resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/netbsd-x64@0.20.0:
+ resolution: {integrity: sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.19.12:
+ resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/openbsd-x64@0.20.0:
+ resolution: {integrity: sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.19.12:
+ resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/sunos-x64@0.20.0:
+ resolution: {integrity: sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-arm64@0.19.12:
+ resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-arm64@0.20.0:
+ resolution: {integrity: sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.19.12:
+ resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-ia32@0.20.0:
+ resolution: {integrity: sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64@0.19.12:
+ resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/win32-x64@0.20.0:
+ resolution: {integrity: sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -411,12 +1209,10 @@ packages:
dependencies:
eslint: 8.56.0
eslint-visitor-keys: 3.4.3
- dev: true
/@eslint-community/regexpp@4.10.0:
resolution: {integrity: sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
- dev: true
/@eslint/eslintrc@2.1.4:
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
@@ -426,38 +1222,49 @@ packages:
debug: 4.3.4
espree: 9.6.1
globals: 13.24.0
- ignore: 5.3.0
+ ignore: 5.3.1
import-fresh: 3.3.0
js-yaml: 4.1.0
minimatch: 3.1.2
strip-json-comments: 3.1.1
transitivePeerDependencies:
- supports-color
- dev: true
/@eslint/js@8.56.0:
resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+
+ /@fontsource/fira-mono@4.5.10:
+ resolution: {integrity: sha512-bxUnRP8xptGRo8YXeY073DSpfK74XpSb0ZyRNpHV9WvLnJ7TwPOjZll8hTMin7zLC6iOp59pDZ8EQDj1gzgAQQ==}
dev: true
- /@humanwhocodes/config-array@0.11.13:
- resolution: {integrity: sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==}
+ /@humanwhocodes/config-array@0.11.14:
+ resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
engines: {node: '>=10.10.0'}
dependencies:
- '@humanwhocodes/object-schema': 2.0.1
+ '@humanwhocodes/object-schema': 2.0.2
debug: 4.3.4
minimatch: 3.1.2
transitivePeerDependencies:
- supports-color
- dev: true
/@humanwhocodes/module-importer@1.0.1:
resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
engines: {node: '>=12.22'}
- dev: true
- /@humanwhocodes/object-schema@2.0.1:
- resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==}
+ /@humanwhocodes/object-schema@2.0.2:
+ resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==}
+
+ /@isaacs/cliui@8.0.2:
+ resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 5.1.2
+ string-width-cjs: /string-width@4.2.3
+ strip-ansi: 7.1.0
+ strip-ansi-cjs: /strip-ansi@6.0.1
+ wrap-ansi: 8.1.0
+ wrap-ansi-cjs: /wrap-ansi@7.0.0
dev: true
/@jridgewell/gen-mapping@0.3.3:
@@ -467,144 +1274,65 @@ packages:
'@jridgewell/set-array': 1.1.2
'@jridgewell/sourcemap-codec': 1.4.15
'@jridgewell/trace-mapping': 0.3.20
- dev: true
/@jridgewell/resolve-uri@3.1.1:
resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==}
engines: {node: '>=6.0.0'}
- dev: true
/@jridgewell/set-array@1.1.2:
resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
engines: {node: '>=6.0.0'}
- dev: true
/@jridgewell/sourcemap-codec@1.4.15:
resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
- dev: true
/@jridgewell/trace-mapping@0.3.20:
resolution: {integrity: sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==}
dependencies:
'@jridgewell/resolve-uri': 3.1.1
'@jridgewell/sourcemap-codec': 1.4.15
- dev: true
- /@jridgewell/trace-mapping@0.3.9:
- resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==}
+ /@malept/cross-spawn-promise@1.1.1:
+ resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==}
+ engines: {node: '>= 10'}
dependencies:
- '@jridgewell/resolve-uri': 3.1.1
- '@jridgewell/sourcemap-codec': 1.4.15
+ cross-spawn: 7.0.3
dev: true
- /@microsoft/tsdoc-config@0.16.2:
- resolution: {integrity: sha512-OGiIzzoBLgWWR0UdRJX98oYO+XKGf7tiK4Zk6tQ/E4IJqGCe7dvkTvgDZV5cFJUzLGDOjeAXrnZoA6QkVySuxw==}
+ /@malept/flatpak-bundler@0.4.0:
+ resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==}
+ engines: {node: '>= 10.0.0'}
dependencies:
- '@microsoft/tsdoc': 0.14.2
- ajv: 6.12.6
- jju: 1.4.0
- resolve: 1.19.0
+ debug: 4.3.4
+ fs-extra: 9.1.0
+ lodash: 4.17.21
+ tmp-promise: 3.0.3
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /@microsoft/tsdoc@0.14.2:
- resolution: {integrity: sha512-9b8mPpKrfeGRuhFH5iO1iwCLeIIsV6+H1sRfxbkoGXIyQE2BTsPd9zqSqQJ+pv5sJ/hT5M1zvOFL02MnEezFug==}
- dev: true
-
- /@next/env@14.0.4:
- resolution: {integrity: sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ==}
- dev: false
-
- /@next/eslint-plugin-next@14.0.4:
- resolution: {integrity: sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ==}
+ /@manypkg/find-root@1.1.0:
+ resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==}
dependencies:
- glob: 7.1.7
+ '@babel/runtime': 7.23.9
+ '@types/node': 12.20.55
+ find-up: 4.1.0
+ fs-extra: 8.1.0
dev: true
- /@next/swc-darwin-arm64@14.0.4:
- resolution: {integrity: sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
-
- /@next/swc-darwin-x64@14.0.4:
- resolution: {integrity: sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: false
- optional: true
-
- /@next/swc-linux-arm64-gnu@14.0.4:
- resolution: {integrity: sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
-
- /@next/swc-linux-arm64-musl@14.0.4:
- resolution: {integrity: sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
-
- /@next/swc-linux-x64-gnu@14.0.4:
- resolution: {integrity: sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
-
- /@next/swc-linux-x64-musl@14.0.4:
- resolution: {integrity: sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: false
- optional: true
-
- /@next/swc-win32-arm64-msvc@14.0.4:
- resolution: {integrity: sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w==}
- engines: {node: '>= 10'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: false
- optional: true
-
- /@next/swc-win32-ia32-msvc@14.0.4:
- resolution: {integrity: sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg==}
- engines: {node: '>= 10'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: false
- optional: true
-
- /@next/swc-win32-x64-msvc@14.0.4:
- resolution: {integrity: sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A==}
- engines: {node: '>= 10'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: false
- optional: true
-
- /@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1:
- resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==}
+ /@manypkg/get-packages@1.1.3:
+ resolution: {integrity: sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==}
dependencies:
- eslint-scope: 5.1.1
+ '@babel/runtime': 7.23.9
+ '@changesets/types': 4.1.0
+ '@manypkg/find-root': 1.1.0
+ fs-extra: 8.1.0
+ globby: 11.1.0
+ read-yaml-file: 1.1.0
+ dev: true
+
+ /@neoconfetti/svelte@1.0.0:
+ resolution: {integrity: sha512-SmksyaJAdSlMa9cTidVSIqYo1qti+WTsviNDwgjNVm+KQ3DRP2Df9umDIzC4vCcpEYY+chQe0i2IKnLw03AT8Q==}
dev: true
/@nodelib/fs.scandir@2.1.5:
@@ -613,12 +1341,10 @@ packages:
dependencies:
'@nodelib/fs.stat': 2.0.5
run-parallel: 1.2.0
- dev: true
/@nodelib/fs.stat@2.0.5:
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: '>= 8'}
- dev: true
/@nodelib/fs.walk@1.2.8:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
@@ -626,128 +1352,378 @@ packages:
dependencies:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.15.0
+
+ /@pkgjs/parseargs@0.11.0:
+ resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==}
+ engines: {node: '>=14'}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@polka/url@0.5.0:
+ resolution: {integrity: sha512-oZLYFEAzUKyi3SKnXvj32ZCEGH6RDnao7COuCVhDydMS9NrCSVXhM79VaKyP5+Zc33m0QXEd2DN3UkU7OsHcfw==}
dev: true
- /@pkgr/utils@2.4.2:
- resolution: {integrity: sha512-POgTXhjrTfbTV63DiFXav4lBHiICLKKwDeaKn9Nphwj7WH6m0hMMCaJkMyRWjgtPFyRKRVoMXXjczsTQRDEhYw==}
- engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
+ /@polka/url@1.0.0-next.24:
+ resolution: {integrity: sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==}
+ dev: true
+
+ /@rollup/plugin-commonjs@25.0.7(rollup@4.11.0):
+ resolution: {integrity: sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.68.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
dependencies:
- cross-spawn: 7.0.3
- fast-glob: 3.3.1
- is-glob: 4.0.3
- open: 9.1.0
- picocolors: 1.0.0
- tslib: 2.6.2
+ '@rollup/pluginutils': 5.1.0(rollup@4.11.0)
+ commondir: 1.0.1
+ estree-walker: 2.0.2
+ glob: 8.1.0
+ is-reference: 1.2.1
+ magic-string: 0.30.7
+ rollup: 4.11.0
dev: true
- /@rushstack/eslint-patch@1.5.1:
- resolution: {integrity: sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==}
- dev: true
-
- /@swc/helpers@0.5.2:
- resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
+ /@rollup/plugin-json@6.1.0(rollup@4.11.0):
+ resolution: {integrity: sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
dependencies:
- tslib: 2.6.2
- dev: false
-
- /@tootallnate/quickjs-emscripten@0.23.0:
- resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==}
+ '@rollup/pluginutils': 5.1.0(rollup@4.11.0)
+ rollup: 4.11.0
dev: true
- /@tsconfig/node10@1.0.9:
- resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==}
- dev: true
-
- /@tsconfig/node12@1.0.11:
- resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==}
- dev: true
-
- /@tsconfig/node14@1.0.3:
- resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==}
- dev: true
-
- /@tsconfig/node16@1.0.4:
- resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==}
- dev: true
-
- /@turbo/gen@1.11.3(@types/node@20.10.6)(typescript@5.3.3):
- resolution: {integrity: sha512-cHGRj7Jn7Hw1cA7NuwWYfYdhEliQX4LuSfEB9L1m8ifGkHalU3bbYXcehzLThmckpGpUQGnXYx0UtVudbQ42HA==}
+ /@rollup/plugin-node-resolve@15.2.3(rollup@4.11.0):
+ resolution: {integrity: sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^2.78.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
dependencies:
- '@turbo/workspaces': 1.11.3
- chalk: 2.4.2
- commander: 10.0.1
- fs-extra: 10.1.0
- inquirer: 8.2.6
- minimatch: 9.0.3
- node-plop: 0.26.3
- proxy-agent: 6.3.0
- ts-node: 10.9.1(@types/node@20.10.6)(typescript@5.3.3)
- update-check: 1.5.4
- validate-npm-package-name: 5.0.0
+ '@rollup/pluginutils': 5.1.0(rollup@4.11.0)
+ '@types/resolve': 1.20.2
+ deepmerge: 4.3.1
+ is-builtin-module: 3.2.1
+ is-module: 1.0.0
+ resolve: 1.22.8
+ rollup: 4.11.0
+ dev: true
+
+ /@rollup/pluginutils@5.1.0(rollup@4.11.0):
+ resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.5
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ rollup: 4.11.0
+ dev: true
+
+ /@rollup/rollup-android-arm-eabi@4.11.0:
+ resolution: {integrity: sha512-BV+u2QSfK3i1o6FucqJh5IK9cjAU6icjFFhvknzFgu472jzl0bBojfDAkJLBEsHFMo+YZg6rthBvBBt8z12IBQ==}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-android-arm64@4.11.0:
+ resolution: {integrity: sha512-0ij3iw7sT5jbcdXofWO2NqDNjSVVsf6itcAkV2I6Xsq4+6wjW1A8rViVB67TfBEan7PV2kbLzT8rhOVWLI2YXw==}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-darwin-arm64@4.11.0:
+ resolution: {integrity: sha512-yPLs6RbbBMupArf6qv1UDk6dzZvlH66z6NLYEwqTU0VHtss1wkI4UYeeMS7TVj5QRVvaNAWYKP0TD/MOeZ76Zg==}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-darwin-x64@4.11.0:
+ resolution: {integrity: sha512-OvqIgwaGAwnASzXaZEeoJY3RltOFg+WUbdkdfoluh2iqatd090UeOG3A/h0wNZmE93dDew9tAtXgm3/+U/B6bw==}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm-gnueabihf@4.11.0:
+ resolution: {integrity: sha512-X17s4hZK3QbRmdAuLd2EE+qwwxL8JxyVupEqAkxKPa/IgX49ZO+vf0ka69gIKsaYeo6c1CuwY3k8trfDtZ9dFg==}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm64-gnu@4.11.0:
+ resolution: {integrity: sha512-673Lu9EJwxVB9NfYeA4AdNu0FOHz7g9t6N1DmT7bZPn1u6bTF+oZjj+fuxUcrfxWXE0r2jxl5QYMa9cUOj9NFg==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-arm64-musl@4.11.0:
+ resolution: {integrity: sha512-yFW2msTAQNpPJaMmh2NpRalr1KXI7ZUjlN6dY/FhWlOclMrZezm5GIhy3cP4Ts2rIAC+IPLAjNibjp1BsxCVGg==}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-riscv64-gnu@4.11.0:
+ resolution: {integrity: sha512-kKT9XIuhbvYgiA3cPAGntvrBgzhWkGpBMzuk1V12Xuoqg7CI41chye4HU0vLJnGf9MiZzfNh4I7StPeOzOWJfA==}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-x64-gnu@4.11.0:
+ resolution: {integrity: sha512-6q4ESWlyTO+erp1PSCmASac+ixaDv11dBk1fqyIuvIUc/CmRAX2Zk+2qK1FGo5q7kyDcjHCFVwgGFCGIZGVwCA==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-linux-x64-musl@4.11.0:
+ resolution: {integrity: sha512-vIAQUmXeMLmaDN78HSE4Kh6xqof2e3TJUKr+LPqXWU4NYNON0MDN9h2+t4KHrPAQNmU3w1GxBQ/n01PaWFwa5w==}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-arm64-msvc@4.11.0:
+ resolution: {integrity: sha512-LVXo9dDTGPr0nezMdqa1hK4JeoMZ02nstUxGYY/sMIDtTYlli1ZxTXBYAz3vzuuvKO4X6NBETciIh7N9+abT1g==}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-ia32-msvc@4.11.0:
+ resolution: {integrity: sha512-xZVt6K70Gr3I7nUhug2dN6VRR1ibot3rXqXS3wo+8JP64t7djc3lBFyqO4GiVrhNaAIhUCJtwQ/20dr0h0thmQ==}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@rollup/rollup-win32-x64-msvc@4.11.0:
+ resolution: {integrity: sha512-f3I7h9oTg79UitEco9/2bzwdciYkWr8pITs3meSDSlr1TdvQ7IxkQaaYN2YqZXX5uZhiYL+VuYDmHwNzhx+HOg==}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@sindresorhus/is@4.6.0:
+ resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /@sveltejs/adapter-auto@3.0.0(@sveltejs/kit@2.0.0):
+ resolution: {integrity: sha512-UNWSs/rOReBRfI/xFwSO2WYF1a7PT74SrWOHJmSNLY3Lq+zbH0uuvnlP+TmrTUBvOTkou3WJDjL6lK3n6aOUgQ==}
+ peerDependencies:
+ '@sveltejs/kit': ^2.0.0
+ dependencies:
+ '@sveltejs/kit': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.0)(svelte@4.2.7)(vite@5.0.11)
+ import-meta-resolve: 4.0.0
+ dev: true
+
+ /@sveltejs/adapter-node@4.0.1(@sveltejs/kit@2.0.0):
+ resolution: {integrity: sha512-IviiTtKCDp+0QoTmmMlGGZBA1EoUNsjecU6XGV9k62S3f01SNsVhpqi2e4nbI62BLGKh/YKKfFii+Vz/b9XIxg==}
+ peerDependencies:
+ '@sveltejs/kit': ^2.4.0
+ dependencies:
+ '@rollup/plugin-commonjs': 25.0.7(rollup@4.11.0)
+ '@rollup/plugin-json': 6.1.0(rollup@4.11.0)
+ '@rollup/plugin-node-resolve': 15.2.3(rollup@4.11.0)
+ '@sveltejs/kit': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.0)(svelte@4.2.7)(vite@5.0.11)
+ rollup: 4.11.0
+ dev: true
+
+ /@sveltejs/kit@2.0.0(@sveltejs/vite-plugin-svelte@3.0.0)(svelte@4.2.7)(vite@5.0.11):
+ resolution: {integrity: sha512-/GFxvit+q7PztRbgGTFXhVB6jvb0fZSeWuz5f4siQ2r/5BVhxYh7++Bw3/ZUjiOuyoZFiNBmOPcRNQbkzEce0g==}
+ engines: {node: '>=18.13'}
+ hasBin: true
+ requiresBuild: true
+ peerDependencies:
+ '@sveltejs/vite-plugin-svelte': ^3.0.0
+ svelte: ^4.0.0 || ^5.0.0-next.0
+ vite: ^5.0.3
+ dependencies:
+ '@sveltejs/vite-plugin-svelte': 3.0.0(svelte@4.2.7)(vite@5.0.11)
+ '@types/cookie': 0.6.0
+ cookie: 0.6.0
+ devalue: 4.3.2
+ esm-env: 1.0.0
+ kleur: 4.1.5
+ magic-string: 0.30.7
+ mrmime: 1.0.1
+ sade: 1.8.1
+ set-cookie-parser: 2.6.0
+ sirv: 2.0.4
+ svelte: 4.2.7
+ tiny-glob: 0.2.9
+ vite: 5.0.11(@types/node@20.11.17)
+ dev: true
+
+ /@sveltejs/package@2.0.0(svelte@4.2.7)(typescript@5.3.3):
+ resolution: {integrity: sha512-sANz/dJibOHOe83hl8pFWUSypqefdYwPp6SUr0SmJxTNQFB5dDECEqwAwoy28DWCQFYl7DU+C1hKkTXyuKOdug==}
+ engines: {node: ^16.14 || >=18}
+ hasBin: true
+ peerDependencies:
+ svelte: ^3.44.0
+ dependencies:
+ chokidar: 3.6.0
+ kleur: 4.1.5
+ sade: 1.8.1
+ svelte: 4.2.7
+ svelte2tsx: 0.6.27(svelte@4.2.7)(typescript@5.3.3)
transitivePeerDependencies:
- - '@swc/core'
- - '@swc/wasm'
- - '@types/node'
- - supports-color
- typescript
dev: true
- /@turbo/workspaces@1.11.3:
- resolution: {integrity: sha512-a420NGGyi9pFYeUASO/H1Atv7LbFPtyf/3GaMC6/gMzae7h5k+hjitrFYZYiEs1tU6El7H78MQK/h41OXY/jFw==}
+ /@sveltejs/vite-plugin-svelte-inspector@2.0.0(@sveltejs/vite-plugin-svelte@3.0.0)(svelte@4.2.7)(vite@5.0.11):
+ resolution: {integrity: sha512-gjr9ZFg1BSlIpfZ4PRewigrvYmHWbDrq2uvvPB1AmTWKuM+dI1JXQSUu2pIrYLb/QncyiIGkFDFKTwJ0XqQZZg==}
+ engines: {node: ^18.0.0 || >=20}
+ peerDependencies:
+ '@sveltejs/vite-plugin-svelte': ^3.0.0
+ svelte: ^4.0.0 || ^5.0.0-next.0
+ vite: ^5.0.0
dependencies:
- chalk: 2.4.2
- commander: 10.0.1
- execa: 5.1.1
- fast-glob: 3.3.1
- fs-extra: 10.1.0
- gradient-string: 2.0.2
- inquirer: 8.2.6
- js-yaml: 4.1.0
- ora: 4.1.1
- rimraf: 3.0.2
- semver: 7.5.4
- update-check: 1.5.4
+ '@sveltejs/vite-plugin-svelte': 3.0.0(svelte@4.2.7)(vite@5.0.11)
+ debug: 4.3.4
+ svelte: 4.2.7
+ vite: 5.0.11(@types/node@20.11.17)
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /@types/eslint@8.56.1:
- resolution: {integrity: sha512-18PLWRzhy9glDQp3+wOgfLYRWlhgX0azxgJ63rdpoUHyrC9z0f5CkFburjQx4uD7ZCruw85ZtMt6K+L+R8fLJQ==}
+ /@sveltejs/vite-plugin-svelte@3.0.0(svelte@4.2.7)(vite@5.0.11):
+ resolution: {integrity: sha512-Th0nupxk8hl5Rcg9jm+1xWylwco4bSUAvutWxM4W4bjOAollpXLmrYqSSnYo9pPbZOO6ZGRm6sSqYa/v1d/Saw==}
+ engines: {node: ^18.0.0 || >=20}
+ peerDependencies:
+ svelte: ^4.0.0 || ^5.0.0-next.0
+ vite: ^5.0.0
+ dependencies:
+ '@sveltejs/vite-plugin-svelte-inspector': 2.0.0(@sveltejs/vite-plugin-svelte@3.0.0)(svelte@4.2.7)(vite@5.0.11)
+ debug: 4.3.4
+ deepmerge: 4.3.1
+ kleur: 4.1.5
+ magic-string: 0.30.7
+ svelte: 4.2.7
+ svelte-hmr: 0.15.3(svelte@4.2.7)
+ vite: 5.0.11(@types/node@20.11.17)
+ vitefu: 0.2.5(vite@5.0.11)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@szmarczak/http-timer@4.0.6:
+ resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==}
+ engines: {node: '>=10'}
+ dependencies:
+ defer-to-connect: 2.0.1
+ dev: true
+
+ /@tootallnate/once@2.0.0:
+ resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==}
+ engines: {node: '>= 10'}
+ dev: true
+
+ /@types/cacheable-request@6.0.3:
+ resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==}
+ dependencies:
+ '@types/http-cache-semantics': 4.0.4
+ '@types/keyv': 3.1.4
+ '@types/node': 20.11.17
+ '@types/responselike': 1.0.3
+ dev: true
+
+ /@types/cookie@0.6.0:
+ resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==}
+ dev: true
+
+ /@types/debug@4.1.12:
+ resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==}
+ dependencies:
+ '@types/ms': 0.7.34
+ dev: true
+
+ /@types/eslint@8.56.0:
+ resolution: {integrity: sha512-FlsN0p4FhuYRjIxpbdXovvHQhtlG05O1GG/RNWvdAxTboR438IOTwmrY/vLA+Xfgg06BTkP045M3vpFwTMv1dg==}
dependencies:
'@types/estree': 1.0.5
- '@types/json-schema': 7.0.12
+ '@types/json-schema': 7.0.15
dev: true
/@types/estree@1.0.5:
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
- dev: true
- /@types/glob@7.2.0:
- resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
+ /@types/fs-extra@9.0.13:
+ resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==}
dependencies:
- '@types/minimatch': 5.1.2
- '@types/node': 20.10.6
+ '@types/node': 20.11.17
dev: true
- /@types/inquirer@6.5.0:
- resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==}
+ /@types/http-cache-semantics@4.0.4:
+ resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==}
+ dev: true
+
+ /@types/json-schema@7.0.15:
+ resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
+
+ /@types/keyv@3.1.4:
+ resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
dependencies:
- '@types/through': 0.0.30
- rxjs: 6.6.7
+ '@types/node': 20.11.17
dev: true
- /@types/json-schema@7.0.12:
- resolution: {integrity: sha512-Hr5Jfhc9eYOQNPYO5WLDq/n4jqijdHNlDXjuAQkkt+mWdQR+XJToOHrsD4cPaMXpn6KO7y2+wM8AZEs8VpBLVA==}
+ /@types/mime-types@2.1.4:
+ resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==}
dev: true
- /@types/json5@0.0.29:
- resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+ /@types/minimist@1.2.5:
+ resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==}
dev: true
- /@types/minimatch@5.1.2:
- resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
+ /@types/ms@0.7.34:
+ resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==}
dev: true
- /@types/node@20.10.6:
- resolution: {integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==}
+ /@types/node@12.20.55:
+ resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==}
+ dev: true
+
+ /@types/node@18.19.17:
+ resolution: {integrity: sha512-SzyGKgwPzuWp2SHhlpXKzCX0pIOfcI4V2eF37nNBJOhwlegQ83omtVQ1XxZpDE06V/d6AQvfQdPfnw0tRC//Ng==}
+ dependencies:
+ undici-types: 5.26.5
+ dev: true
+
+ /@types/node@20.11.17:
+ resolution: {integrity: sha512-QmgQZGWu1Yw9TDyAP9ZzpFJKynYNeOvwMJmaxABfieQoVoiVOS6MN1WSpqpRcbeA5+RW82kraAVxCCJg+780Qw==}
dependencies:
undici-types: 5.26.5
dev: true
@@ -756,40 +1732,75 @@ packages:
resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==}
dev: true
- /@types/prop-types@15.7.5:
- resolution: {integrity: sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==}
- dev: true
-
- /@types/react-dom@18.2.18:
- resolution: {integrity: sha512-TJxDm6OfAX2KJWJdMEVTwWke5Sc/E/RlnPGvGfS0W7+6ocy2xhDVQVh/KvC2Uf7kACs+gDytdusDSdWfWkaNzw==}
+ /@types/plist@3.0.5:
+ resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==}
+ requiresBuild: true
dependencies:
- '@types/react': 18.2.46
+ '@types/node': 20.11.17
+ xmlbuilder: 15.1.1
+ dev: true
+ optional: true
+
+ /@types/pug@2.0.10:
+ resolution: {integrity: sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==}
dev: true
- /@types/react@18.2.46:
- resolution: {integrity: sha512-nNCvVBcZlvX4NU1nRRNV/mFl1nNRuTuslAJglQsq+8ldXe5Xv0Wd2f7WTE3jOxhLH2BFfiZGC6GCp+kHQbgG+w==}
+ /@types/resolve@1.20.2:
+ resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
+ dev: true
+
+ /@types/responselike@1.0.3:
+ resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==}
dependencies:
- '@types/prop-types': 15.7.5
- '@types/scheduler': 0.16.3
- csstype: 3.1.2
+ '@types/node': 20.11.17
dev: true
- /@types/scheduler@0.16.3:
- resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==}
- dev: true
+ /@types/semver@7.5.7:
+ resolution: {integrity: sha512-/wdoPq1QqkSj9/QOeKkFquEuPzQbHTWAMPH/PaUMB+JuR31lXhlWXRZ52IpfDYVlDOUBvX09uBrPwxGT1hjNBg==}
- /@types/semver@7.5.0:
- resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
+ /@types/verror@1.10.9:
+ resolution: {integrity: sha512-MLx9Z+9lGzwEuW16ubGeNkpBDE84RpB/NyGgg6z2BTpWzKkGU451cAY3UkUzZEp72RHF585oJ3V8JVNqIplcAQ==}
+ requiresBuild: true
dev: true
+ optional: true
- /@types/through@0.0.30:
- resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==}
+ /@types/yauzl@2.10.3:
+ resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
+ requiresBuild: true
dependencies:
- '@types/node': 20.10.6
+ '@types/node': 20.11.17
dev: true
+ optional: true
- /@types/tinycolor2@1.4.6:
- resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==}
+ /@typescript-eslint/eslint-plugin@6.0.0(@typescript-eslint/parser@6.0.0)(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-xuv6ghKGoiq856Bww/yVYnXGsKa588kY3M0XK7uUW/3fJNNULKRfZfSBkMTSpqGG/8ZCXCadfh8G/z/B4aqS/A==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@eslint-community/regexpp': 4.10.0
+ '@typescript-eslint/parser': 6.0.0(eslint@8.56.0)(typescript@5.3.3)
+ '@typescript-eslint/scope-manager': 6.0.0
+ '@typescript-eslint/type-utils': 6.0.0(eslint@8.56.0)(typescript@5.3.3)
+ '@typescript-eslint/utils': 6.0.0(eslint@8.56.0)(typescript@5.3.3)
+ '@typescript-eslint/visitor-keys': 6.0.0
+ debug: 4.3.4
+ eslint: 8.56.0
+ grapheme-splitter: 1.0.4
+ graphemer: 1.4.0
+ ignore: 5.3.1
+ natural-compare: 1.4.0
+ natural-compare-lite: 1.4.0
+ semver: 7.6.0
+ ts-api-utils: 1.2.1(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
dev: true
/@typescript-eslint/eslint-plugin@6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3):
@@ -812,10 +1823,31 @@ packages:
debug: 4.3.4
eslint: 8.56.0
graphemer: 1.4.0
- ignore: 5.3.0
+ ignore: 5.3.1
natural-compare: 1.4.0
- semver: 7.5.4
- ts-api-utils: 1.0.2(typescript@5.3.3)
+ semver: 7.6.0
+ ts-api-utils: 1.2.1(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@typescript-eslint/parser@6.0.0(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-TNaufYSPrr1U8n+3xN+Yp9g31vQDJqhXzzPSHfQDLcaO4tU+mCfODPxCwf4H530zo7aUBE3QIdxCXamEnG04Tg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 6.0.0
+ '@typescript-eslint/types': 6.0.0
+ '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.3.3)
+ '@typescript-eslint/visitor-keys': 6.0.0
+ debug: 4.3.4
+ eslint: 8.56.0
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
@@ -840,14 +1872,14 @@ packages:
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- dev: true
+ dev: false
- /@typescript-eslint/scope-manager@5.62.0:
- resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ /@typescript-eslint/scope-manager@6.0.0:
+ resolution: {integrity: sha512-o4q0KHlgCZTqjuaZ25nw5W57NeykZT9LiMEG4do/ovwvOcPnDO1BI5BQdCsUkjxFyrCL0cSzLjvIMfR9uo7cWg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 5.62.0
- '@typescript-eslint/visitor-keys': 5.62.0
+ '@typescript-eslint/types': 6.0.0
+ '@typescript-eslint/visitor-keys': 6.0.0
dev: true
/@typescript-eslint/scope-manager@6.17.0:
@@ -856,6 +1888,26 @@ packages:
dependencies:
'@typescript-eslint/types': 6.17.0
'@typescript-eslint/visitor-keys': 6.17.0
+ dev: false
+
+ /@typescript-eslint/type-utils@6.0.0(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-ah6LJvLgkoZ/pyJ9GAdFkzeuMZ8goV6BH7eC9FPmojrnX9yNCIsfjB+zYcnex28YO3RFvBkV6rMV6WpIqkPvoQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
+ peerDependencies:
+ eslint: ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.3.3)
+ '@typescript-eslint/utils': 6.0.0(eslint@8.56.0)(typescript@5.3.3)
+ debug: 4.3.4
+ eslint: 8.56.0
+ ts-api-utils: 1.2.1(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - supports-color
dev: true
/@typescript-eslint/type-utils@6.17.0(eslint@8.56.0)(typescript@5.3.3):
@@ -872,38 +1924,38 @@ packages:
'@typescript-eslint/utils': 6.17.0(eslint@8.56.0)(typescript@5.3.3)
debug: 4.3.4
eslint: 8.56.0
- ts-api-utils: 1.0.2(typescript@5.3.3)
+ ts-api-utils: 1.2.1(typescript@5.3.3)
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- dev: true
+ dev: false
- /@typescript-eslint/types@5.62.0:
- resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ /@typescript-eslint/types@6.0.0:
+ resolution: {integrity: sha512-Zk9KDggyZM6tj0AJWYYKgF0yQyrcnievdhG0g5FqyU3Y2DRxJn4yWY21sJC0QKBckbsdKKjYDV2yVrrEvuTgxg==}
+ engines: {node: ^16.0.0 || >=18.0.0}
dev: true
/@typescript-eslint/types@6.17.0:
resolution: {integrity: sha512-qRKs9tvc3a4RBcL/9PXtKSehI/q8wuU9xYJxe97WFxnzH8NWWtcW3ffNS+EWg8uPvIerhjsEZ+rHtDqOCiH57A==}
engines: {node: ^16.0.0 || >=18.0.0}
- dev: true
+ dev: false
- /@typescript-eslint/typescript-estree@5.62.0(typescript@5.3.3):
- resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ /@typescript-eslint/typescript-estree@6.0.0(typescript@5.3.3):
+ resolution: {integrity: sha512-2zq4O7P6YCQADfmJ5OTDQTP3ktajnXIRrYAtHM9ofto/CJZV3QfJ89GEaM2BNGeSr1KgmBuLhEkz5FBkS2RQhQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
typescript: '*'
peerDependenciesMeta:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 5.62.0
- '@typescript-eslint/visitor-keys': 5.62.0
+ '@typescript-eslint/types': 6.0.0
+ '@typescript-eslint/visitor-keys': 6.0.0
debug: 4.3.4
globby: 11.1.0
is-glob: 4.0.3
- semver: 7.5.4
- tsutils: 3.21.0(typescript@5.3.3)
+ semver: 7.6.0
+ ts-api-utils: 1.2.1(typescript@5.3.3)
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
@@ -924,28 +1976,28 @@ packages:
globby: 11.1.0
is-glob: 4.0.3
minimatch: 9.0.3
- semver: 7.5.4
- ts-api-utils: 1.0.2(typescript@5.3.3)
+ semver: 7.6.0
+ ts-api-utils: 1.2.1(typescript@5.3.3)
typescript: 5.3.3
transitivePeerDependencies:
- supports-color
- dev: true
+ dev: false
- /@typescript-eslint/utils@5.62.0(eslint@8.56.0)(typescript@5.3.3):
- resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ /@typescript-eslint/utils@6.0.0(eslint@8.56.0)(typescript@5.3.3):
+ resolution: {integrity: sha512-SOr6l4NB6HE4H/ktz0JVVWNXqCJTOo/mHnvIte1ZhBQ0Cvd04x5uKZa3zT6tiodL06zf5xxdK8COiDvPnQ27JQ==}
+ engines: {node: ^16.0.0 || >=18.0.0}
peerDependencies:
- eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ eslint: ^7.0.0 || ^8.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
- '@types/json-schema': 7.0.12
- '@types/semver': 7.5.0
- '@typescript-eslint/scope-manager': 5.62.0
- '@typescript-eslint/types': 5.62.0
- '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.3.3)
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.7
+ '@typescript-eslint/scope-manager': 6.0.0
+ '@typescript-eslint/types': 6.0.0
+ '@typescript-eslint/typescript-estree': 6.0.0(typescript@5.3.3)
eslint: 8.56.0
eslint-scope: 5.1.1
- semver: 7.5.4
+ semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
@@ -958,23 +2010,23 @@ packages:
eslint: ^7.0.0 || ^8.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
- '@types/json-schema': 7.0.12
- '@types/semver': 7.5.0
+ '@types/json-schema': 7.0.15
+ '@types/semver': 7.5.7
'@typescript-eslint/scope-manager': 6.17.0
'@typescript-eslint/types': 6.17.0
'@typescript-eslint/typescript-estree': 6.17.0(typescript@5.3.3)
eslint: 8.56.0
- semver: 7.5.4
+ semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
- dev: true
+ dev: false
- /@typescript-eslint/visitor-keys@5.62.0:
- resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ /@typescript-eslint/visitor-keys@6.0.0:
+ resolution: {integrity: sha512-cvJ63l8c0yXdeT5POHpL0Q1cZoRcmRKFCtSjNGJxPkcP571EfZMcNbzWAc7oK3D1dRzm/V5EwtkANTZxqvuuUA==}
+ engines: {node: ^16.0.0 || >=18.0.0}
dependencies:
- '@typescript-eslint/types': 5.62.0
+ '@typescript-eslint/types': 6.0.0
eslint-visitor-keys: 3.4.3
dev: true
@@ -984,57 +2036,15 @@ packages:
dependencies:
'@typescript-eslint/types': 6.17.0
eslint-visitor-keys: 3.4.3
- dev: true
+ dev: false
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
- dev: true
- /@vercel/style-guide@5.1.0(eslint@8.56.0)(prettier@3.1.1)(typescript@5.3.3):
- resolution: {integrity: sha512-L9lWYePIycm7vIOjDLj+mmMdmmPkW3/brHjgq+nJdvMOrL7Hdk/19w8X583HYSk0vWsq494o5Qkh6x5+uW7ljg==}
- engines: {node: '>=16'}
- peerDependencies:
- '@next/eslint-plugin-next': '>=12.3.0 <15'
- eslint: '>=8.48.0 <9'
- prettier: '>=3.0.0 <4'
- typescript: '>=4.8.0 <6'
- peerDependenciesMeta:
- '@next/eslint-plugin-next':
- optional: true
- eslint:
- optional: true
- prettier:
- optional: true
- typescript:
- optional: true
- dependencies:
- '@babel/core': 7.23.3
- '@babel/eslint-parser': 7.23.3(@babel/core@7.23.3)(eslint@8.56.0)
- '@rushstack/eslint-patch': 1.5.1
- '@typescript-eslint/eslint-plugin': 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3)
- '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3)
- eslint: 8.56.0
- eslint-config-prettier: 9.1.0(eslint@8.56.0)
- eslint-import-resolver-alias: 1.1.2(eslint-plugin-import@2.29.0)
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-import@2.29.0)(eslint@8.56.0)
- eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0)
- eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
- eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint@8.56.0)(typescript@5.3.3)
- eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0)
- eslint-plugin-playwright: 0.16.0(eslint-plugin-jest@27.6.0)(eslint@8.56.0)
- eslint-plugin-react: 7.33.2(eslint@8.56.0)
- eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0)
- eslint-plugin-testing-library: 6.1.2(eslint@8.56.0)(typescript@5.3.3)
- eslint-plugin-tsdoc: 0.2.17
- eslint-plugin-unicorn: 48.0.1(eslint@8.56.0)
- prettier: 3.1.1
- prettier-plugin-packagejson: 2.4.6(prettier@3.1.1)
- typescript: 5.3.3
- transitivePeerDependencies:
- - eslint-import-resolver-node
- - eslint-import-resolver-webpack
- - jest
- - supports-color
+ /@xmldom/xmldom@0.8.10:
+ resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==}
+ engines: {node: '>=10.0.0'}
+ requiresBuild: true
dev: true
/acorn-jsx@5.3.2(acorn@8.10.0):
@@ -1043,33 +2053,27 @@ packages:
acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
acorn: 8.10.0
- dev: true
-
- /acorn-walk@8.2.0:
- resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==}
- engines: {node: '>=0.4.0'}
- dev: true
/acorn@8.10.0:
resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==}
engines: {node: '>=0.4.0'}
- dev: true
+ hasBin: true
- /agent-base@7.1.0:
- resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==}
- engines: {node: '>= 14'}
+ /agent-base@6.0.2:
+ resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
+ engines: {node: '>= 6.0.0'}
dependencies:
debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
- /aggregate-error@3.1.0:
- resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
- engines: {node: '>=8'}
+ /ajv-keywords@3.5.2(ajv@6.12.6):
+ resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==}
+ peerDependencies:
+ ajv: ^6.9.1
dependencies:
- clean-stack: 2.2.0
- indent-string: 4.0.0
+ ajv: 6.12.6
dev: true
/ajv@6.12.6:
@@ -1079,18 +2083,19 @@ packages:
fast-json-stable-stringify: 2.1.0
json-schema-traverse: 0.4.1
uri-js: 4.4.1
- dev: true
- /ansi-escapes@4.3.2:
- resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
- engines: {node: '>=8'}
- dependencies:
- type-fest: 0.21.3
+ /ansi-colors@4.1.3:
+ resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==}
+ engines: {node: '>=6'}
dev: true
/ansi-regex@5.0.1:
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
engines: {node: '>=8'}
+
+ /ansi-regex@6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
dev: true
/ansi-styles@3.2.1:
@@ -1105,249 +2110,351 @@ packages:
engines: {node: '>=8'}
dependencies:
color-convert: 2.0.1
+
+ /ansi-styles@6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
dev: true
- /arg@4.1.3:
- resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
+ /anymatch@3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
+ /app-builder-bin@4.0.0:
+ resolution: {integrity: sha512-xwdG0FJPQMe0M0UA4Tz0zEB8rBJTRA5a476ZawAqiBkMv16GRK5xpXThOjMaEOFnZ6zabejjG4J3da0SXG63KA==}
+ dev: true
+
+ /app-builder-lib@24.9.1:
+ resolution: {integrity: sha512-Q1nYxZcio4r+W72cnIRVYofEAyjBd3mG47o+zms8HlD51zWtA/YxJb01Jei5F+jkWhge/PTQK+uldsPh6d0/4g==}
+ engines: {node: '>=14.0.0'}
+ dependencies:
+ 7zip-bin: 5.2.0
+ '@develar/schema-utils': 2.6.5
+ '@electron/notarize': 2.1.0
+ '@electron/osx-sign': 1.0.5
+ '@electron/universal': 1.4.1
+ '@malept/flatpak-bundler': 0.4.0
+ '@types/fs-extra': 9.0.13
+ async-exit-hook: 2.0.1
+ bluebird-lst: 1.0.9
+ builder-util: 24.8.1
+ builder-util-runtime: 9.2.3
+ chromium-pickle-js: 0.2.0
+ debug: 4.3.4
+ ejs: 3.1.9
+ electron-publish: 24.8.1
+ form-data: 4.0.0
+ fs-extra: 10.1.0
+ hosted-git-info: 4.1.0
+ is-ci: 3.0.1
+ isbinaryfile: 5.0.2
+ js-yaml: 4.1.0
+ lazy-val: 1.0.5
+ minimatch: 5.1.6
+ read-config-file: 6.3.2
+ sanitize-filename: 1.6.3
+ semver: 7.6.0
+ tar: 6.2.0
+ temp-file: 3.4.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /arg@4.1.0:
+ resolution: {integrity: sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==}
+ dev: true
+
+ /argparse@1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
dev: true
/argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
- dev: true
/aria-query@5.3.0:
resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==}
dependencies:
dequal: 2.0.3
- dev: true
- /array-buffer-byte-length@1.0.0:
- resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==}
- dependencies:
- call-bind: 1.0.5
- is-array-buffer: 3.0.2
- dev: true
-
- /array-includes@3.1.7:
- resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
+ /array-buffer-byte-length@1.0.1:
+ resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- get-intrinsic: 1.2.2
- is-string: 1.0.7
+ call-bind: 1.0.7
+ is-array-buffer: 3.0.4
dev: true
/array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
- dev: true
-
- /array.prototype.findlastindex@1.2.3:
- resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- es-shim-unscopables: 1.0.2
- get-intrinsic: 1.2.2
- dev: true
/array.prototype.flat@1.3.2:
resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
- es-abstract: 1.22.3
+ es-abstract: 1.22.4
es-shim-unscopables: 1.0.2
dev: true
- /array.prototype.flatmap@1.3.2:
- resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
+ /arraybuffer.prototype.slice@1.0.3:
+ resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ array-buffer-byte-length: 1.0.1
+ call-bind: 1.0.7
define-properties: 1.2.1
- es-abstract: 1.22.3
- es-shim-unscopables: 1.0.2
- dev: true
-
- /array.prototype.tosorted@1.1.2:
- resolution: {integrity: sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==}
- dependencies:
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- es-shim-unscopables: 1.0.2
- get-intrinsic: 1.2.2
- dev: true
-
- /arraybuffer.prototype.slice@1.0.2:
- resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==}
- engines: {node: '>= 0.4'}
- dependencies:
- array-buffer-byte-length: 1.0.0
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- get-intrinsic: 1.2.2
- is-array-buffer: 3.0.2
+ es-abstract: 1.22.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+ is-array-buffer: 3.0.4
is-shared-array-buffer: 1.0.2
dev: true
- /ast-types-flow@0.0.8:
- resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==}
+ /arrify@1.0.1:
+ resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==}
+ engines: {node: '>=0.10.0'}
dev: true
- /ast-types@0.13.4:
- resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==}
- engines: {node: '>=4'}
- dependencies:
- tslib: 2.6.2
+ /assert-plus@1.0.0:
+ resolution: {integrity: sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==}
+ engines: {node: '>=0.8'}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /astral-regex@2.0.0:
+ resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
+ engines: {node: '>=8'}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /async-exit-hook@2.0.1:
+ resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==}
+ engines: {node: '>=0.12.0'}
dev: true
- /asynciterator.prototype@1.0.0:
- resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==}
- dependencies:
- has-symbols: 1.0.3
+ /async@3.2.5:
+ resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==}
dev: true
- /available-typed-arrays@1.0.5:
- resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==}
+ /asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ dev: true
+
+ /at-least-node@1.0.0:
+ resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==}
+ engines: {node: '>= 4.0.0'}
+ dev: true
+
+ /available-typed-arrays@1.0.6:
+ resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==}
engines: {node: '>= 0.4'}
dev: true
- /axe-core@4.7.0:
- resolution: {integrity: sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==}
- engines: {node: '>=4'}
- dev: true
-
/axobject-query@3.2.1:
resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
dependencies:
dequal: 2.0.3
- dev: true
/balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
- dev: true
/base64-js@1.5.1:
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ requiresBuild: true
dev: true
- /basic-ftp@5.0.3:
- resolution: {integrity: sha512-QHX8HLlncOLpy54mh+k/sWIFd0ThmRqwe9ZjELybGZK+tZ8rUb9VO0saKJUROTbE+KhzDUT7xziGpGrW8Kmd+g==}
- engines: {node: '>=10.0.0'}
- dev: true
-
- /big-integer@1.6.51:
- resolution: {integrity: sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==}
- engines: {node: '>=0.6'}
- dev: true
-
- /bl@4.1.0:
- resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+ /better-path-resolve@1.0.0:
+ resolution: {integrity: sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==}
+ engines: {node: '>=4'}
dependencies:
- buffer: 5.7.1
- inherits: 2.0.4
- readable-stream: 3.6.2
+ is-windows: 1.0.2
dev: true
- /bplist-parser@0.2.0:
- resolution: {integrity: sha512-z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==}
- engines: {node: '>= 5.10.0'}
- dependencies:
- big-integer: 1.6.51
+ /binary-extensions@2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
dev: true
+ /bluebird-lst@1.0.9:
+ resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==}
+ dependencies:
+ bluebird: 3.7.2
+ dev: true
+
+ /bluebird@3.7.2:
+ resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==}
+ dev: true
+
+ /boolean@3.2.0:
+ resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
/brace-expansion@1.1.11:
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
dependencies:
balanced-match: 1.0.2
concat-map: 0.0.1
- dev: true
/brace-expansion@2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
dependencies:
balanced-match: 1.0.2
- dev: true
/braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
dependencies:
fill-range: 7.0.1
+
+ /breakword@1.0.6:
+ resolution: {integrity: sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==}
+ dependencies:
+ wcwidth: 1.0.1
dev: true
- /browserslist@4.22.1:
- resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==}
+ /browserslist@4.23.0:
+ resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==}
engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
dependencies:
- caniuse-lite: 1.0.30001563
- electron-to-chromium: 1.4.583
- node-releases: 2.0.13
- update-browserslist-db: 1.0.13(browserslist@4.22.1)
+ caniuse-lite: 1.0.30001587
+ electron-to-chromium: 1.4.672
+ node-releases: 2.0.14
+ update-browserslist-db: 1.0.13(browserslist@4.23.0)
+ dev: true
+
+ /buffer-crc32@0.2.13:
+ resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
+ dev: true
+
+ /buffer-equal@1.0.1:
+ resolution: {integrity: sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg==}
+ engines: {node: '>=0.4'}
+ dev: true
+
+ /buffer-from@1.1.2:
+ resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
dev: true
/buffer@5.7.1:
resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+ requiresBuild: true
dependencies:
base64-js: 1.5.1
ieee754: 1.2.1
dev: true
+ optional: true
+
+ /builder-util-runtime@9.2.3:
+ resolution: {integrity: sha512-FGhkqXdFFZ5dNC4C+yuQB9ak311rpGAw+/ASz8ZdxwODCv1GGMWgLDeofRkdi0F3VCHQEWy/aXcJQozx2nOPiw==}
+ engines: {node: '>=12.0.0'}
+ dependencies:
+ debug: 4.3.4
+ sax: 1.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /builder-util@24.8.1:
+ resolution: {integrity: sha512-ibmQ4BnnqCnJTNrdmdNlnhF48kfqhNzSeqFMXHLIl+o9/yhn6QfOaVrloZ9YUu3m0k3rexvlT5wcki6LWpjTZw==}
+ dependencies:
+ 7zip-bin: 5.2.0
+ '@types/debug': 4.1.12
+ app-builder-bin: 4.0.0
+ bluebird-lst: 1.0.9
+ builder-util-runtime: 9.2.3
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.4
+ fs-extra: 10.1.0
+ http-proxy-agent: 5.0.0
+ https-proxy-agent: 5.0.1
+ is-ci: 3.0.1
+ js-yaml: 4.1.0
+ source-map-support: 0.5.21
+ stat-mode: 1.0.0
+ temp-file: 3.4.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
/builtin-modules@3.3.0:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
engines: {node: '>=6'}
dev: true
- /builtins@5.0.1:
- resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==}
- dependencies:
- semver: 7.5.4
+ /bytes@3.0.0:
+ resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==}
+ engines: {node: '>= 0.8'}
dev: true
- /bundle-name@3.0.0:
- resolution: {integrity: sha512-PKA4BeSvBpQKQ8iPOGCSiell+N8P+Tf1DlwqmYhpe2gAhKPHn8EYOxVT+ShuGmhg8lN8XiSlS80yiExKXrURlw==}
- engines: {node: '>=12'}
- dependencies:
- run-applescript: 5.0.0
+ /cac@6.7.14:
+ resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==}
+ engines: {node: '>=8'}
dev: true
- /busboy@1.6.0:
- resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
- engines: {node: '>=10.16.0'}
- dependencies:
- streamsearch: 1.1.0
- dev: false
+ /cacheable-lookup@5.0.4:
+ resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
+ engines: {node: '>=10.6.0'}
+ dev: true
- /call-bind@1.0.5:
- resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==}
+ /cacheable-request@7.0.4:
+ resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==}
+ engines: {node: '>=8'}
dependencies:
+ clone-response: 1.0.3
+ get-stream: 5.2.0
+ http-cache-semantics: 4.1.1
+ keyv: 4.5.4
+ lowercase-keys: 2.0.0
+ normalize-url: 6.1.0
+ responselike: 2.0.1
+ dev: true
+
+ /call-bind@1.0.7:
+ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
function-bind: 1.1.2
- get-intrinsic: 1.2.2
- set-function-length: 1.1.1
+ get-intrinsic: 1.2.4
+ set-function-length: 1.2.1
dev: true
/callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
- dev: true
- /camel-case@3.0.0:
- resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==}
+ /camelcase-keys@6.2.2:
+ resolution: {integrity: sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==}
+ engines: {node: '>=8'}
dependencies:
- no-case: 2.3.2
- upper-case: 1.1.3
+ camelcase: 5.3.1
+ map-obj: 4.3.0
+ quick-lru: 4.0.1
dev: true
- /caniuse-lite@1.0.30001563:
- resolution: {integrity: sha512-na2WUmOxnwIZtwnFI2CZ/3er0wdNzU7hN+cPYz/z2ajHThnkWjNBOpEPP4n+4r2WPM847JaMotaJE3bnfzjyKw==}
+ /camelcase@5.3.1:
+ resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /caniuse-lite@1.0.30001587:
+ resolution: {integrity: sha512-HMFNotUmLXn71BQxg8cijvqxnIAofforZOwGsxyXJ0qugTdspUF4sPSJ2vhgprHCB996tIDzEq1ubumPDV8ULA==}
+ dev: true
/chalk@2.4.2:
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
@@ -1358,92 +2465,93 @@ packages:
supports-color: 5.5.0
dev: true
- /chalk@3.0.0:
- resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
- engines: {node: '>=8'}
- dependencies:
- ansi-styles: 4.3.0
- supports-color: 7.2.0
- dev: true
-
/chalk@4.1.2:
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
engines: {node: '>=10'}
dependencies:
ansi-styles: 4.3.0
supports-color: 7.2.0
- dev: true
-
- /change-case@3.1.0:
- resolution: {integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==}
- dependencies:
- camel-case: 3.0.0
- constant-case: 2.0.0
- dot-case: 2.1.1
- header-case: 1.0.1
- is-lower-case: 1.1.3
- is-upper-case: 1.1.2
- lower-case: 1.1.4
- lower-case-first: 1.0.2
- no-case: 2.3.2
- param-case: 2.1.1
- pascal-case: 2.0.1
- path-case: 2.1.1
- sentence-case: 2.1.1
- snake-case: 2.1.0
- swap-case: 1.1.2
- title-case: 2.1.1
- upper-case: 1.1.3
- upper-case-first: 1.1.2
- dev: true
/chardet@0.7.0:
resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==}
dev: true
+ /chokidar@3.6.0:
+ resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.3
+ dev: true
+
+ /chownr@2.0.0:
+ resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /chromium-pickle-js@0.2.0:
+ resolution: {integrity: sha512-1R5Fho+jBq0DDydt+/vHWj5KJNJCKdARKOCwZUen84I5BreWoLqRLANH1U87eJy1tiASPtMnGqJJq0ZsLoRPOw==}
+ dev: true
+
/ci-info@3.9.0:
resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==}
engines: {node: '>=8'}
dev: true
- /clean-regexp@1.0.0:
- resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==}
- engines: {node: '>=4'}
- dependencies:
- escape-string-regexp: 1.0.5
- dev: true
-
- /clean-stack@2.2.0:
- resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
- engines: {node: '>=6'}
- dev: true
-
- /cli-cursor@3.1.0:
- resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ /cli-truncate@2.1.0:
+ resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
engines: {node: '>=8'}
+ requiresBuild: true
dependencies:
- restore-cursor: 3.1.0
+ slice-ansi: 3.0.0
+ string-width: 4.2.3
+ dev: true
+ optional: true
+
+ /cliui@6.0.0:
+ resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 6.2.0
dev: true
- /cli-spinners@2.9.0:
- resolution: {integrity: sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==}
- engines: {node: '>=6'}
+ /cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
dev: true
- /cli-width@3.0.0:
- resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==}
- engines: {node: '>= 10'}
+ /clone-response@1.0.3:
+ resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==}
+ dependencies:
+ mimic-response: 1.0.1
dev: true
- /client-only@0.0.1:
- resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==}
- dev: false
-
/clone@1.0.4:
resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==}
engines: {node: '>=0.8'}
dev: true
+ /code-red@1.0.4:
+ resolution: {integrity: sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@types/estree': 1.0.5
+ acorn: 8.10.0
+ estree-walker: 3.0.3
+ periscopic: 3.1.0
+
/color-convert@1.9.3:
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
dependencies:
@@ -1455,7 +2563,6 @@ packages:
engines: {node: '>=7.0.0'}
dependencies:
color-name: 1.1.4
- dev: true
/color-name@1.1.3:
resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
@@ -1463,35 +2570,96 @@ packages:
/color-name@1.1.4:
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
+ /combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ delayed-stream: 1.0.0
dev: true
- /commander@10.0.1:
- resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
- engines: {node: '>=14'}
+ /commander@5.1.0:
+ resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /commondir@1.0.1:
+ resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
+ dev: true
+
+ /compare-version@0.1.2:
+ resolution: {integrity: sha512-pJDh5/4wrEnXX/VWRZvruAGHkzKdr46z11OlTPN+VrATlWWhSKewNCJ1futCO5C7eJB3nPMFZA1LeYtcFboZ2A==}
+ engines: {node: '>=0.10.0'}
dev: true
/concat-map@0.0.1:
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
+
+ /concurrently@8.2.2:
+ resolution: {integrity: sha512-1dP4gpXFhei8IOtlXRE/T/4H88ElHgTiUzh71YUmtjTEHMSRS2Z/fgOxHSxxusGHogsRfxNq1vyAwxSC+EVyDg==}
+ engines: {node: ^14.13.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ chalk: 4.1.2
+ date-fns: 2.30.0
+ lodash: 4.17.21
+ rxjs: 7.8.1
+ shell-quote: 1.8.1
+ spawn-command: 0.0.2
+ supports-color: 8.1.1
+ tree-kill: 1.2.2
+ yargs: 17.7.2
dev: true
- /constant-case@2.0.0:
- resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==}
+ /config-file-ts@0.2.6:
+ resolution: {integrity: sha512-6boGVaglwblBgJqGyxm4+xCmEGcWgnWHSWHY5jad58awQhB6gftq0G8HbzU39YqCIYHMLAiL1yjwiZ36m/CL8w==}
dependencies:
- snake-case: 2.1.0
- upper-case: 1.1.3
+ glob: 10.3.10
+ typescript: 5.3.3
+ dev: true
+
+ /content-type@1.0.4:
+ resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==}
+ engines: {node: '>= 0.6'}
dev: true
/convert-source-map@2.0.0:
resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
dev: true
- /core-js-pure@3.32.1:
- resolution: {integrity: sha512-f52QZwkFVDPf7UEQZGHKx6NYxsxmVGJe5DIvbzOdRMJlmT6yv0KDjR8rmy3ngr/t5wU54c7Sp/qIJH0ppbhVpQ==}
- requiresBuild: true
+ /cookie@0.6.0:
+ resolution: {integrity: sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==}
+ engines: {node: '>= 0.6'}
dev: true
- /create-require@1.1.1:
- resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==}
+ /core-util-is@1.0.2:
+ resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /crc@3.8.0:
+ resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==}
+ requiresBuild: true
+ dependencies:
+ buffer: 5.7.1
+ dev: true
+ optional: true
+
+ /cross-env@7.0.3:
+ resolution: {integrity: sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==}
+ engines: {node: '>=10.14', npm: '>=6', yarn: '>=1'}
+ hasBin: true
+ dependencies:
+ cross-spawn: 7.0.3
+ dev: true
+
+ /cross-spawn@5.1.0:
+ resolution: {integrity: sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==}
+ dependencies:
+ lru-cache: 4.1.5
+ shebang-command: 1.2.0
+ which: 1.3.1
dev: true
/cross-spawn@7.0.3:
@@ -1501,30 +2669,46 @@ packages:
path-key: 3.1.1
shebang-command: 2.0.0
which: 2.0.2
- dev: true
- /csstype@3.1.2:
- resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
- dev: true
-
- /damerau-levenshtein@1.0.8:
- resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==}
- dev: true
-
- /data-uri-to-buffer@5.0.1:
- resolution: {integrity: sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg==}
- engines: {node: '>= 14'}
- dev: true
-
- /debug@3.2.7:
- resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
- peerDependencies:
- supports-color: '*'
- peerDependenciesMeta:
- supports-color:
- optional: true
+ /css-tree@2.3.1:
+ resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==}
+ engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0}
dependencies:
- ms: 2.1.2
+ mdn-data: 2.0.30
+ source-map-js: 1.0.2
+
+ /cssesc@3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+
+ /csv-generate@3.4.3:
+ resolution: {integrity: sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==}
+ dev: true
+
+ /csv-parse@4.16.3:
+ resolution: {integrity: sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==}
+ dev: true
+
+ /csv-stringify@5.6.5:
+ resolution: {integrity: sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==}
+ dev: true
+
+ /csv@5.5.3:
+ resolution: {integrity: sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==}
+ engines: {node: '>= 0.1.90'}
+ dependencies:
+ csv-generate: 3.4.3
+ csv-parse: 4.16.3
+ csv-stringify: 5.6.5
+ stream-transform: 2.1.3
+ dev: true
+
+ /date-fns@2.30.0:
+ resolution: {integrity: sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==}
+ engines: {node: '>=0.11'}
+ dependencies:
+ '@babel/runtime': 7.23.9
dev: true
/debug@4.3.4:
@@ -1537,33 +2721,37 @@ packages:
optional: true
dependencies:
ms: 2.1.2
+
+ /decamelize-keys@1.1.1:
+ resolution: {integrity: sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ decamelize: 1.2.0
+ map-obj: 1.0.1
dev: true
- /deep-extend@0.6.0:
- resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==}
- engines: {node: '>=4.0.0'}
+ /decamelize@1.2.0:
+ resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /decompress-response@6.0.0:
+ resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ mimic-response: 3.1.0
+ dev: true
+
+ /dedent-js@1.0.1:
+ resolution: {integrity: sha512-OUepMozQULMLUmhxS95Vudo0jb0UchLimi3+pQ2plj61Fcy8axbP9hbiD4Sz6DPqn6XG3kfmziVfQ1rSys5AJQ==}
dev: true
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
- dev: true
- /default-browser-id@3.0.0:
- resolution: {integrity: sha512-OZ1y3y0SqSICtE8DE4S8YOE9UZOJ8wO16fKWVP5J1Qz42kV9jcnMVFrEE/noXb/ss3Q4pZIH79kxofzyNNtUNA==}
- engines: {node: '>=12'}
- dependencies:
- bplist-parser: 0.2.0
- untildify: 4.0.0
- dev: true
-
- /default-browser@4.0.0:
- resolution: {integrity: sha512-wX5pXO1+BrhMkSbROFsyxUm0i/cJEScyNhA4PPxc41ICuv05ZZB/MX28s8aZx6xjmatvebIapF6hLEKEcpneUA==}
- engines: {node: '>=14.16'}
- dependencies:
- bundle-name: 3.0.0
- default-browser-id: 3.0.0
- execa: 7.2.0
- titleize: 3.0.0
+ /deepmerge@4.3.1:
+ resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==}
+ engines: {node: '>=0.10.0'}
dev: true
/defaults@1.0.4:
@@ -1572,70 +2760,63 @@ packages:
clone: 1.0.4
dev: true
- /define-data-property@1.1.1:
- resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==}
- engines: {node: '>= 0.4'}
- dependencies:
- get-intrinsic: 1.2.2
- gopd: 1.0.1
- has-property-descriptors: 1.0.1
+ /defer-to-connect@2.0.1:
+ resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==}
+ engines: {node: '>=10'}
dev: true
- /define-lazy-prop@3.0.0:
- resolution: {integrity: sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==}
- engines: {node: '>=12'}
+ /define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ gopd: 1.0.1
dev: true
/define-properties@1.2.1:
resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.1
- has-property-descriptors: 1.0.1
+ define-data-property: 1.1.4
+ has-property-descriptors: 1.0.2
object-keys: 1.1.1
dev: true
- /degenerator@5.0.1:
- resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==}
- engines: {node: '>= 14'}
- dependencies:
- ast-types: 0.13.4
- escodegen: 2.1.0
- esprima: 4.0.1
+ /delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
dev: true
- /del@5.1.0:
- resolution: {integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==}
- engines: {node: '>=8'}
- dependencies:
- globby: 10.0.2
- graceful-fs: 4.2.11
- is-glob: 4.0.3
- is-path-cwd: 2.2.0
- is-path-inside: 3.0.3
- p-map: 3.0.0
- rimraf: 3.0.2
- slash: 3.0.0
+ /depd@1.1.1:
+ resolution: {integrity: sha512-Jlk9xvkTDGXwZiIDyoM7+3AsuvJVoyOpRupvEVy9nX3YO3/ieZxhlgh8GpLNZ8AY7HjO6y2YwpMSh1ejhu3uIw==}
+ engines: {node: '>= 0.6'}
dev: true
/dequal@2.0.3:
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==}
engines: {node: '>=6'}
+
+ /detect-indent@6.1.0:
+ resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==}
+ engines: {node: '>=8'}
dev: true
- /detect-indent@7.0.1:
- resolution: {integrity: sha512-Mc7QhQ8s+cLrnUfU/Ji94vG/r8M26m8f++vyres4ZoojaRDpZ1eSIh/EpzLNwlWuvzSZ3UbDFspjFvTDXe6e/g==}
- engines: {node: '>=12.20'}
+ /detect-node@2.1.0:
+ resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /devalue@4.3.2:
+ resolution: {integrity: sha512-KqFl6pOgOW+Y6wJgu80rHpo2/3H07vr8ntR9rkkFIRETewbf5GaYYcakYfiKz89K+sLsuPkQIZaXDMjUObZwWg==}
dev: true
- /detect-newline@4.0.1:
- resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dev: true
-
- /diff@4.0.2:
- resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
- engines: {node: '>=0.3.1'}
+ /dir-compare@3.3.0:
+ resolution: {integrity: sha512-J7/et3WlGUCxjdnD3HAAzQ6nsnc0WL6DD7WcwJb7c39iH1+AWfg+9OqzJNaI6PkBwBvm1mhZNL9iY/nRiZXlPg==}
+ dependencies:
+ buffer-equal: 1.0.1
+ minimatch: 3.1.2
dev: true
/dir-glob@3.0.1:
@@ -1643,35 +2824,166 @@ packages:
engines: {node: '>=8'}
dependencies:
path-type: 4.0.0
+
+ /dmg-builder@24.9.1:
+ resolution: {integrity: sha512-huC+O6hvHd24Ubj3cy2GMiGLe2xGFKN3klqVMLAdcbB6SWMd1yPSdZvV8W1O01ICzCCRlZDHiv4VrNUgnPUfbQ==}
+ dependencies:
+ app-builder-lib: 24.9.1
+ builder-util: 24.8.1
+ builder-util-runtime: 9.2.3
+ fs-extra: 10.1.0
+ iconv-lite: 0.6.3
+ js-yaml: 4.1.0
+ optionalDependencies:
+ dmg-license: 1.0.11
+ transitivePeerDependencies:
+ - supports-color
dev: true
- /doctrine@2.1.0:
- resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
- engines: {node: '>=0.10.0'}
+ /dmg-license@1.0.11:
+ resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==}
+ engines: {node: '>=8'}
+ os: [darwin]
+ hasBin: true
+ requiresBuild: true
dependencies:
- esutils: 2.0.3
+ '@types/plist': 3.0.5
+ '@types/verror': 1.10.9
+ ajv: 6.12.6
+ crc: 3.8.0
+ iconv-corefoundation: 1.1.7
+ plist: 3.1.0
+ smart-buffer: 4.2.0
+ verror: 1.10.1
dev: true
+ optional: true
/doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
dependencies:
esutils: 2.0.3
- dev: true
- /dot-case@2.1.1:
- resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==}
- dependencies:
- no-case: 2.3.2
+ /dotenv-expand@5.1.0:
+ resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==}
dev: true
/dotenv@16.0.3:
resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==}
engines: {node: '>=12'}
+ dev: false
+
+ /dotenv@16.4.4:
+ resolution: {integrity: sha512-XvPXc8XAQThSjAbY6cQ/9PcBXmFoWuw1sQ3b8HqUCR6ziGXjkTi//kB9SWa2UwqlgdAIuRqAa/9hVljzPehbYg==}
+ engines: {node: '>=12'}
dev: true
- /electron-to-chromium@1.4.583:
- resolution: {integrity: sha512-93y1gcONABZ7uqYe/JWDVQP/Pj/sQSunF0HVAPdlg/pfBnOyBMLlQUxWvkqcljJg1+W6cjvPuYD+r1Th9Tn8mA==}
+ /dotenv@9.0.2:
+ resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /eastasianwidth@0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ dev: true
+
+ /ejs@3.1.9:
+ resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==}
+ engines: {node: '>=0.10.0'}
+ hasBin: true
+ dependencies:
+ jake: 10.8.7
+ dev: true
+
+ /electron-builder@24.9.1:
+ resolution: {integrity: sha512-v7BuakDuY6sKMUYM8mfQGrwyjBpZ/ObaqnenU0H+igEL10nc6ht049rsCw2HghRBdEwJxGIBuzs3jbEhNaMDmg==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+ dependencies:
+ app-builder-lib: 24.9.1
+ builder-util: 24.8.1
+ builder-util-runtime: 9.2.3
+ chalk: 4.1.2
+ dmg-builder: 24.9.1
+ fs-extra: 10.1.0
+ is-ci: 3.0.1
+ lazy-val: 1.0.5
+ read-config-file: 6.3.2
+ simple-update-notifier: 2.0.0
+ yargs: 17.7.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /electron-is-dev@3.0.1:
+ resolution: {integrity: sha512-8TjjAh8Ec51hUi3o4TaU0mD3GMTOESi866oRNavj9A3IQJ7pmv+MJVmdZBFGw4GFT36X7bkqnuDNYvkQgvyI8Q==}
+ engines: {node: '>=18'}
+ dev: true
+
+ /electron-log@5.1.1:
+ resolution: {integrity: sha512-If7HU4Slbh2xfjOXOLxifkbgu6HmWDNJyXPLW+XNTOHMfFKisg0trA3d/7syyu25S+lHosfsd0VMfDSjGn1+Pw==}
+ engines: {node: '>= 14'}
+ dev: true
+
+ /electron-publish@24.8.1:
+ resolution: {integrity: sha512-IFNXkdxMVzUdweoLJNXSupXkqnvgbrn3J4vognuOY06LaS/m0xvfFYIf+o1CM8if6DuWYWoQFKPcWZt/FUjZPw==}
+ dependencies:
+ '@types/fs-extra': 9.0.13
+ builder-util: 24.8.1
+ builder-util-runtime: 9.2.3
+ chalk: 4.1.2
+ fs-extra: 10.1.0
+ lazy-val: 1.0.5
+ mime: 2.6.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /electron-to-chromium@1.4.672:
+ resolution: {integrity: sha512-YYCy+goe3UqZqa3MOQCI5Mx/6HdBLzXL/mkbGCEWL3sP3Z1BP9zqAzeD3YEmLZlespYGFtyM8tRp5i2vfaUGCA==}
+ dev: true
+
+ /electron-util@0.18.0:
+ resolution: {integrity: sha512-UR+ItByv1cqzb0HcOVrbH9xA2GA4Ojrl/F5H1KPH89oze+B6GZaTZJue0Hdg5bnMGGF6s9Dbez3yDGS22ra78A==}
+ engines: {node: '>=18'}
+ dependencies:
+ electron-is-dev: 3.0.1
+ new-github-issue-url: 1.0.0
+ dev: true
+
+ /electron-vite@2.0.0(vite@5.0.11):
+ resolution: {integrity: sha512-EQiuPVSwJQRPGbZiVrCsCFMDVfNyNtSpDiyUV4fNwPKNadTjBfYMOudnLUpSeBTocKUZYf58SXSzSCAkNg0GTQ==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@swc/core': ^1.0.0
+ vite: ^4.0.0 || ^5.0.0
+ peerDependenciesMeta:
+ '@swc/core':
+ optional: true
+ dependencies:
+ '@babel/core': 7.23.9
+ '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.9)
+ cac: 6.7.14
+ esbuild: 0.19.12
+ magic-string: 0.30.7
+ picocolors: 1.0.0
+ vite: 5.0.11(@types/node@20.11.17)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /electron@28.2.3:
+ resolution: {integrity: sha512-he9nGphZo03ejDjYBXpmFVw0KBKogXvR2tYxE4dyYvnfw42uaFIBFrwGeenvqoEOfheJfcI0u4rFG6h3QxDwnA==}
+ engines: {node: '>= 12.20.55'}
+ hasBin: true
+ requiresBuild: true
+ dependencies:
+ '@electron/get': 2.0.3
+ '@types/node': 18.19.17
+ extract-zip: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
dev: true
/emoji-regex@8.0.0:
@@ -1682,12 +2994,27 @@ packages:
resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
dev: true
- /enhanced-resolve@5.15.0:
- resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
- engines: {node: '>=10.13.0'}
+ /end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
dependencies:
- graceful-fs: 4.2.11
- tapable: 2.2.1
+ once: 1.4.0
+ dev: true
+
+ /enquirer@2.4.1:
+ resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ ansi-colors: 4.1.3
+ strip-ansi: 6.0.1
+ dev: true
+
+ /env-paths@2.2.1:
+ resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /err-code@2.0.3:
+ resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==}
dev: true
/error-ex@1.3.2:
@@ -1696,83 +3023,78 @@ packages:
is-arrayish: 0.2.1
dev: true
- /es-abstract@1.22.3:
- resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==}
+ /es-abstract@1.22.4:
+ resolution: {integrity: sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==}
engines: {node: '>= 0.4'}
dependencies:
- array-buffer-byte-length: 1.0.0
- arraybuffer.prototype.slice: 1.0.2
- available-typed-arrays: 1.0.5
- call-bind: 1.0.5
+ array-buffer-byte-length: 1.0.1
+ arraybuffer.prototype.slice: 1.0.3
+ available-typed-arrays: 1.0.6
+ call-bind: 1.0.7
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
es-set-tostringtag: 2.0.2
es-to-primitive: 1.2.1
function.prototype.name: 1.1.6
- get-intrinsic: 1.2.2
- get-symbol-description: 1.0.0
+ get-intrinsic: 1.2.4
+ get-symbol-description: 1.0.2
globalthis: 1.0.3
gopd: 1.0.1
- has-property-descriptors: 1.0.1
+ has-property-descriptors: 1.0.2
has-proto: 1.0.1
has-symbols: 1.0.3
- hasown: 2.0.0
- internal-slot: 1.0.6
- is-array-buffer: 3.0.2
+ hasown: 2.0.1
+ internal-slot: 1.0.7
+ is-array-buffer: 3.0.4
is-callable: 1.2.7
is-negative-zero: 2.0.2
is-regex: 1.1.4
is-shared-array-buffer: 1.0.2
is-string: 1.0.7
- is-typed-array: 1.1.12
+ is-typed-array: 1.1.13
is-weakref: 1.0.2
object-inspect: 1.13.1
object-keys: 1.1.1
- object.assign: 4.1.4
- regexp.prototype.flags: 1.5.1
- safe-array-concat: 1.0.1
- safe-regex-test: 1.0.0
+ object.assign: 4.1.5
+ regexp.prototype.flags: 1.5.2
+ safe-array-concat: 1.1.0
+ safe-regex-test: 1.0.3
string.prototype.trim: 1.2.8
string.prototype.trimend: 1.0.7
string.prototype.trimstart: 1.0.7
- typed-array-buffer: 1.0.0
+ typed-array-buffer: 1.0.1
typed-array-byte-length: 1.0.0
typed-array-byte-offset: 1.0.0
typed-array-length: 1.0.4
unbox-primitive: 1.0.2
- which-typed-array: 1.1.13
+ which-typed-array: 1.1.14
dev: true
- /es-iterator-helpers@1.0.15:
- resolution: {integrity: sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==}
+ /es-define-property@1.0.0:
+ resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
+ engines: {node: '>= 0.4'}
dependencies:
- asynciterator.prototype: 1.0.0
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- es-set-tostringtag: 2.0.2
- function-bind: 1.1.2
- get-intrinsic: 1.2.2
- globalthis: 1.0.3
- has-property-descriptors: 1.0.1
- has-proto: 1.0.1
- has-symbols: 1.0.3
- internal-slot: 1.0.6
- iterator.prototype: 1.1.2
- safe-array-concat: 1.0.1
+ get-intrinsic: 1.2.4
+ dev: true
+
+ /es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
dev: true
/es-set-tostringtag@2.0.2:
resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.2
- has-tostringtag: 1.0.0
- hasown: 2.0.0
+ get-intrinsic: 1.2.4
+ has-tostringtag: 1.0.2
+ hasown: 2.0.1
dev: true
/es-shim-unscopables@1.0.2:
resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
dependencies:
- hasown: 2.0.0
+ hasown: 2.0.1
dev: true
/es-to-primitive@1.2.1:
@@ -1784,8 +3106,80 @@ packages:
is-symbol: 1.0.4
dev: true
- /escalade@3.1.1:
- resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ /es6-error@4.1.1:
+ resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /es6-promise@3.3.1:
+ resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
+ dev: true
+
+ /esbuild@0.19.12:
+ resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.19.12
+ '@esbuild/android-arm': 0.19.12
+ '@esbuild/android-arm64': 0.19.12
+ '@esbuild/android-x64': 0.19.12
+ '@esbuild/darwin-arm64': 0.19.12
+ '@esbuild/darwin-x64': 0.19.12
+ '@esbuild/freebsd-arm64': 0.19.12
+ '@esbuild/freebsd-x64': 0.19.12
+ '@esbuild/linux-arm': 0.19.12
+ '@esbuild/linux-arm64': 0.19.12
+ '@esbuild/linux-ia32': 0.19.12
+ '@esbuild/linux-loong64': 0.19.12
+ '@esbuild/linux-mips64el': 0.19.12
+ '@esbuild/linux-ppc64': 0.19.12
+ '@esbuild/linux-riscv64': 0.19.12
+ '@esbuild/linux-s390x': 0.19.12
+ '@esbuild/linux-x64': 0.19.12
+ '@esbuild/netbsd-x64': 0.19.12
+ '@esbuild/openbsd-x64': 0.19.12
+ '@esbuild/sunos-x64': 0.19.12
+ '@esbuild/win32-arm64': 0.19.12
+ '@esbuild/win32-ia32': 0.19.12
+ '@esbuild/win32-x64': 0.19.12
+ dev: true
+
+ /esbuild@0.20.0:
+ resolution: {integrity: sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/aix-ppc64': 0.20.0
+ '@esbuild/android-arm': 0.20.0
+ '@esbuild/android-arm64': 0.20.0
+ '@esbuild/android-x64': 0.20.0
+ '@esbuild/darwin-arm64': 0.20.0
+ '@esbuild/darwin-x64': 0.20.0
+ '@esbuild/freebsd-arm64': 0.20.0
+ '@esbuild/freebsd-x64': 0.20.0
+ '@esbuild/linux-arm': 0.20.0
+ '@esbuild/linux-arm64': 0.20.0
+ '@esbuild/linux-ia32': 0.20.0
+ '@esbuild/linux-loong64': 0.20.0
+ '@esbuild/linux-mips64el': 0.20.0
+ '@esbuild/linux-ppc64': 0.20.0
+ '@esbuild/linux-riscv64': 0.20.0
+ '@esbuild/linux-s390x': 0.20.0
+ '@esbuild/linux-x64': 0.20.0
+ '@esbuild/netbsd-x64': 0.20.0
+ '@esbuild/openbsd-x64': 0.20.0
+ '@esbuild/sunos-x64': 0.20.0
+ '@esbuild/win32-arm64': 0.20.0
+ '@esbuild/win32-ia32': 0.20.0
+ '@esbuild/win32-x64': 0.20.0
+ dev: true
+
+ /escalade@3.1.2:
+ resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==}
engines: {node: '>=6'}
dev: true
@@ -1797,26 +3191,22 @@ packages:
/escape-string-regexp@4.0.0:
resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
engines: {node: '>=10'}
- dev: true
- /escodegen@2.1.0:
- resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==}
- engines: {node: '>=6.0'}
+ /eslint-compat-utils@0.1.2(eslint@8.56.0):
+ resolution: {integrity: sha512-Jia4JDldWnFNIru1Ehx1H5s9/yxiRHY/TimCuUc0jNexew3cF1gI6CYZil1ociakfWO3rRqFjl1mskBblB3RYg==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ eslint: '>=6.0.0'
dependencies:
- esprima: 4.0.1
- estraverse: 5.3.0
- esutils: 2.0.3
- optionalDependencies:
- source-map: 0.6.1
- dev: true
+ eslint: 8.56.0
/eslint-config-prettier@9.1.0(eslint@8.56.0):
resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
+ hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
eslint: 8.56.0
- dev: true
/eslint-config-turbo@1.11.3(eslint@8.56.0):
resolution: {integrity: sha512-v7CHpAHodBKlj+r+R3B2DJlZbCjpZLnK7gO/vCRk/Lc+tlD/f04wM6rmHlerevOlchtmwARilRLBnmzNLffTyQ==}
@@ -1825,243 +3215,35 @@ packages:
dependencies:
eslint: 8.56.0
eslint-plugin-turbo: 1.11.3(eslint@8.56.0)
- dev: true
+ dev: false
- /eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.29.0):
- resolution: {integrity: sha512-WdviM1Eu834zsfjHtcGHtGfcu+F30Od3V7I9Fi57uhBEwPkjDcii7/yW8jAT+gOhn4P/vOxxNAXbFAKsrrc15w==}
- engines: {node: '>= 4'}
+ /eslint-plugin-svelte@2.35.1(eslint@8.56.0)(svelte@4.2.7):
+ resolution: {integrity: sha512-IF8TpLnROSGy98Z3NrsKXWDSCbNY2ReHDcrYTuXZMbfX7VmESISR78TWgO9zdg4Dht1X8coub5jKwHzP0ExRug==}
+ engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
- eslint-plugin-import: '>=1.4.0'
- dependencies:
- eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
- dev: true
-
- /eslint-import-resolver-node@0.3.9:
- resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
- dependencies:
- debug: 3.2.7
- is-core-module: 2.13.1
- resolve: 1.22.8
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-import@2.29.0)(eslint@8.56.0):
- resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
- engines: {node: ^14.18.0 || >=16.0.0}
- peerDependencies:
- eslint: '*'
- eslint-plugin-import: '*'
+ eslint: ^7.0.0 || ^8.0.0-0
+ svelte: ^3.37.0 || ^4.0.0
+ peerDependenciesMeta:
+ svelte:
+ optional: true
dependencies:
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
+ '@jridgewell/sourcemap-codec': 1.4.15
debug: 4.3.4
- enhanced-resolve: 5.15.0
eslint: 8.56.0
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
- eslint-plugin-import: 2.29.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
- fast-glob: 3.3.1
- get-tsconfig: 4.7.2
- is-core-module: 2.13.1
- is-glob: 4.0.3
- transitivePeerDependencies:
- - '@typescript-eslint/parser'
- - eslint-import-resolver-node
- - eslint-import-resolver-webpack
- - supports-color
- dev: true
-
- /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0):
- resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
- engines: {node: '>=4'}
- peerDependencies:
- '@typescript-eslint/parser': '*'
- eslint: '*'
- eslint-import-resolver-node: '*'
- eslint-import-resolver-typescript: '*'
- eslint-import-resolver-webpack: '*'
- peerDependenciesMeta:
- '@typescript-eslint/parser':
- optional: true
- eslint:
- optional: true
- eslint-import-resolver-node:
- optional: true
- eslint-import-resolver-typescript:
- optional: true
- eslint-import-resolver-webpack:
- optional: true
- dependencies:
- '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3)
- debug: 3.2.7
- eslint: 8.56.0
- eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.17.0)(eslint-plugin-import@2.29.0)(eslint@8.56.0)
+ eslint-compat-utils: 0.1.2(eslint@8.56.0)
+ esutils: 2.0.3
+ known-css-properties: 0.29.0
+ postcss: 8.4.35
+ postcss-load-config: 3.1.4(postcss@8.4.35)
+ postcss-safe-parser: 6.0.0(postcss@8.4.35)
+ postcss-selector-parser: 6.0.15
+ semver: 7.6.0
+ svelte: 4.2.7
+ svelte-eslint-parser: 0.33.1(svelte@4.2.7)
transitivePeerDependencies:
- supports-color
- dev: true
-
- /eslint-plugin-eslint-comments@3.2.0(eslint@8.56.0):
- resolution: {integrity: sha512-0jkOl0hfojIHHmEHgmNdqv4fmh7300NdpA9FFpF7zaoLvB/QeXOGNLIo86oAveJFrfB1p05kC8hpEMHM8DwWVQ==}
- engines: {node: '>=6.5.0'}
- peerDependencies:
- eslint: '>=4.19.1'
- dependencies:
- escape-string-regexp: 1.0.5
- eslint: 8.56.0
- ignore: 5.3.0
- dev: true
-
- /eslint-plugin-import@2.29.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0):
- resolution: {integrity: sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==}
- engines: {node: '>=4'}
- peerDependencies:
- '@typescript-eslint/parser': '*'
- eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
- peerDependenciesMeta:
- '@typescript-eslint/parser':
- optional: true
- dependencies:
- '@typescript-eslint/parser': 6.17.0(eslint@8.56.0)(typescript@5.3.3)
- array-includes: 3.1.7
- array.prototype.findlastindex: 1.2.3
- array.prototype.flat: 1.3.2
- array.prototype.flatmap: 1.3.2
- debug: 3.2.7
- doctrine: 2.1.0
- eslint: 8.56.0
- eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.17.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
- hasown: 2.0.0
- is-core-module: 2.13.1
- is-glob: 4.0.3
- minimatch: 3.1.2
- object.fromentries: 2.0.7
- object.groupby: 1.0.1
- object.values: 1.1.7
- semver: 6.3.1
- tsconfig-paths: 3.14.2
- transitivePeerDependencies:
- - eslint-import-resolver-typescript
- - eslint-import-resolver-webpack
- - supports-color
- dev: true
-
- /eslint-plugin-jest@27.6.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint@8.56.0)(typescript@5.3.3):
- resolution: {integrity: sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==}
- engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
- peerDependencies:
- '@typescript-eslint/eslint-plugin': ^5.0.0 || ^6.0.0
- eslint: ^7.0.0 || ^8.0.0
- jest: '*'
- peerDependenciesMeta:
- '@typescript-eslint/eslint-plugin':
- optional: true
- jest:
- optional: true
- dependencies:
- '@typescript-eslint/eslint-plugin': 6.17.0(@typescript-eslint/parser@6.17.0)(eslint@8.56.0)(typescript@5.3.3)
- '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3)
- eslint: 8.56.0
- transitivePeerDependencies:
- - supports-color
- - typescript
- dev: true
-
- /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0):
- resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==}
- engines: {node: '>=4.0'}
- peerDependencies:
- eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
- dependencies:
- '@babel/runtime': 7.23.2
- aria-query: 5.3.0
- array-includes: 3.1.7
- array.prototype.flatmap: 1.3.2
- ast-types-flow: 0.0.8
- axe-core: 4.7.0
- axobject-query: 3.2.1
- damerau-levenshtein: 1.0.8
- emoji-regex: 9.2.2
- es-iterator-helpers: 1.0.15
- eslint: 8.56.0
- hasown: 2.0.0
- jsx-ast-utils: 3.3.5
- language-tags: 1.0.9
- minimatch: 3.1.2
- object.entries: 1.1.7
- object.fromentries: 2.0.7
- dev: true
-
- /eslint-plugin-only-warn@1.1.0:
- resolution: {integrity: sha512-2tktqUAT+Q3hCAU0iSf4xAN1k9zOpjK5WO8104mB0rT/dGhOa09582HN5HlbxNbPRZ0THV7nLGvzugcNOSjzfA==}
- engines: {node: '>=6'}
- dev: true
-
- /eslint-plugin-playwright@0.16.0(eslint-plugin-jest@27.6.0)(eslint@8.56.0):
- resolution: {integrity: sha512-DcHpF0SLbNeh9MT4pMzUGuUSnJ7q5MWbP8sSEFIMS6j7Ggnduq8ghNlfhURgty4c1YFny7Ge9xYTO1FSAoV2Vw==}
- peerDependencies:
- eslint: '>=7'
- eslint-plugin-jest: '>=25'
- peerDependenciesMeta:
- eslint-plugin-jest:
- optional: true
- dependencies:
- eslint: 8.56.0
- eslint-plugin-jest: 27.6.0(@typescript-eslint/eslint-plugin@6.17.0)(eslint@8.56.0)(typescript@5.3.3)
- dev: true
-
- /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0):
- resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==}
- engines: {node: '>=10'}
- peerDependencies:
- eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0
- dependencies:
- eslint: 8.56.0
- dev: true
-
- /eslint-plugin-react@7.33.2(eslint@8.56.0):
- resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==}
- engines: {node: '>=4'}
- peerDependencies:
- eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8
- dependencies:
- array-includes: 3.1.7
- array.prototype.flatmap: 1.3.2
- array.prototype.tosorted: 1.1.2
- doctrine: 2.1.0
- es-iterator-helpers: 1.0.15
- eslint: 8.56.0
- estraverse: 5.3.0
- jsx-ast-utils: 3.3.5
- minimatch: 3.1.2
- object.entries: 1.1.7
- object.fromentries: 2.0.7
- object.hasown: 1.1.3
- object.values: 1.1.7
- prop-types: 15.8.1
- resolve: 2.0.0-next.5
- semver: 6.3.1
- string.prototype.matchall: 4.0.10
- dev: true
-
- /eslint-plugin-testing-library@6.1.2(eslint@8.56.0)(typescript@5.3.3):
- resolution: {integrity: sha512-Ra16FeBlonfbScOIdZEta9o+OxtwDqiUt+4UCpIM42TuatyLdtfU/SbwnIzPcAszrbl58PGwyZ9YGU9dwIo/tA==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0, npm: '>=6'}
- peerDependencies:
- eslint: ^7.5.0 || ^8.0.0
- dependencies:
- '@typescript-eslint/utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3)
- eslint: 8.56.0
- transitivePeerDependencies:
- - supports-color
- - typescript
- dev: true
-
- /eslint-plugin-tsdoc@0.2.17:
- resolution: {integrity: sha512-xRmVi7Zx44lOBuYqG8vzTXuL6IdGOeF9nHX17bjJ8+VE6fsxpdGem0/SBTmAwgYMKYB1WBkqRJVQ+n8GK041pA==}
- dependencies:
- '@microsoft/tsdoc': 0.14.2
- '@microsoft/tsdoc-config': 0.16.2
- dev: true
+ - ts-node
/eslint-plugin-turbo@1.11.3(eslint@8.56.0):
resolution: {integrity: sha512-R5ftTTWQzEYaKzF5g6m/MInCU8pIN+2TLL+S50AYBr1enwUovdZmnZ1HDwFMaxIjJ8x5ah+jvAzql5IJE9VWaA==}
@@ -2070,31 +3252,7 @@ packages:
dependencies:
dotenv: 16.0.3
eslint: 8.56.0
- dev: true
-
- /eslint-plugin-unicorn@48.0.1(eslint@8.56.0):
- resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==}
- engines: {node: '>=16'}
- peerDependencies:
- eslint: '>=8.44.0'
- dependencies:
- '@babel/helper-validator-identifier': 7.22.20
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
- ci-info: 3.9.0
- clean-regexp: 1.0.0
- eslint: 8.56.0
- esquery: 1.5.0
- indent-string: 4.0.0
- is-builtin-module: 3.2.1
- jsesc: 3.0.2
- lodash: 4.17.21
- pluralize: 8.0.0
- read-pkg-up: 7.0.1
- regexp-tree: 0.1.27
- regjsparser: 0.10.0
- semver: 7.5.4
- strip-indent: 3.0.0
- dev: true
+ dev: false
/eslint-scope@5.1.1:
resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
@@ -2110,27 +3268,21 @@ packages:
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
- dev: true
-
- /eslint-visitor-keys@2.1.0:
- resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==}
- engines: {node: '>=10'}
- dev: true
/eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dev: true
/eslint@8.56.0:
resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0)
'@eslint-community/regexpp': 4.10.0
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.56.0
- '@humanwhocodes/config-array': 0.11.13
+ '@humanwhocodes/config-array': 0.11.14
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
'@ungap/structured-clone': 1.2.0
@@ -2151,7 +3303,7 @@ packages:
glob-parent: 6.0.2
globals: 13.24.0
graphemer: 1.4.0
- ignore: 5.3.0
+ ignore: 5.3.1
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
@@ -2166,6 +3318,9 @@ packages:
text-table: 0.2.0
transitivePeerDependencies:
- supports-color
+
+ /esm-env@1.0.0:
+ resolution: {integrity: sha512-Cf6VksWPsTuW01vU9Mk/3vRue91Zevka5SjyNf3nEpokFRuqt/KjUQoGAwq9qMmhpLTHmXzSIrFRw8zxWzmFBA==}
dev: true
/espree@9.6.1:
@@ -2175,11 +3330,11 @@ packages:
acorn: 8.10.0
acorn-jsx: 5.3.2(acorn@8.10.0)
eslint-visitor-keys: 3.4.3
- dev: true
/esprima@4.0.1:
resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
engines: {node: '>=4'}
+ hasBin: true
dev: true
/esquery@1.5.0:
@@ -2187,14 +3342,12 @@ packages:
engines: {node: '>=0.10'}
dependencies:
estraverse: 5.3.0
- dev: true
/esrecurse@4.3.0:
resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
engines: {node: '>=4.0'}
dependencies:
estraverse: 5.3.0
- dev: true
/estraverse@4.3.0:
resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
@@ -2204,41 +3357,22 @@ packages:
/estraverse@5.3.0:
resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
engines: {node: '>=4.0'}
+
+ /estree-walker@2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
dev: true
+ /estree-walker@3.0.3:
+ resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==}
+ dependencies:
+ '@types/estree': 1.0.5
+
/esutils@2.0.3:
resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
engines: {node: '>=0.10.0'}
- dev: true
- /execa@5.1.1:
- resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
- engines: {node: '>=10'}
- dependencies:
- cross-spawn: 7.0.3
- get-stream: 6.0.1
- human-signals: 2.1.0
- is-stream: 2.0.1
- merge-stream: 2.0.0
- npm-run-path: 4.0.1
- onetime: 5.1.2
- signal-exit: 3.0.7
- strip-final-newline: 2.0.0
- dev: true
-
- /execa@7.2.0:
- resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==}
- engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
- dependencies:
- cross-spawn: 7.0.3
- get-stream: 6.0.1
- human-signals: 4.3.1
- is-stream: 3.0.0
- merge-stream: 2.0.0
- npm-run-path: 5.1.0
- onetime: 6.0.0
- signal-exit: 3.0.7
- strip-final-newline: 3.0.0
+ /extendable-error@0.1.7:
+ resolution: {integrity: sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==}
dev: true
/external-editor@3.1.0:
@@ -2250,9 +3384,29 @@ packages:
tmp: 0.0.33
dev: true
+ /extract-zip@2.0.1:
+ resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==}
+ engines: {node: '>= 10.17.0'}
+ hasBin: true
+ dependencies:
+ debug: 4.3.4
+ get-stream: 5.2.0
+ yauzl: 2.10.0
+ optionalDependencies:
+ '@types/yauzl': 2.10.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /extsprintf@1.4.1:
+ resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==}
+ engines: {'0': node >=0.6.0}
+ requiresBuild: true
+ dev: true
+ optional: true
+
/fast-deep-equal@3.1.3:
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
- dev: true
/fast-glob@3.3.1:
resolution: {integrity: sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==}
@@ -2263,34 +3417,34 @@ packages:
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.5
- dev: true
/fast-json-stable-stringify@2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
- dev: true
/fast-levenshtein@2.0.6:
resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
- dev: true
/fastq@1.15.0:
resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
dependencies:
reusify: 1.0.4
- dev: true
- /figures@3.2.0:
- resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==}
- engines: {node: '>=8'}
+ /fd-slicer@1.1.0:
+ resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==}
dependencies:
- escape-string-regexp: 1.0.5
+ pend: 1.2.0
dev: true
/file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
- flat-cache: 3.0.4
+ flat-cache: 3.2.0
+
+ /filelist@1.0.4:
+ resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==}
+ dependencies:
+ minimatch: 5.1.6
dev: true
/fill-range@7.0.1:
@@ -2298,7 +3452,6 @@ packages:
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
- dev: true
/find-up@4.1.0:
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
@@ -2314,19 +3467,24 @@ packages:
dependencies:
locate-path: 6.0.0
path-exists: 4.0.0
+
+ /find-yarn-workspace-root2@1.2.16:
+ resolution: {integrity: sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==}
+ dependencies:
+ micromatch: 4.0.5
+ pkg-dir: 4.2.0
dev: true
- /flat-cache@3.0.4:
- resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
+ /flat-cache@3.2.0:
+ resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
dependencies:
- flatted: 3.2.7
+ flatted: 3.2.9
+ keyv: 4.5.4
rimraf: 3.0.2
- dev: true
- /flatted@3.2.7:
- resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
- dev: true
+ /flatted@3.2.9:
+ resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==}
/for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
@@ -2334,13 +3492,39 @@ packages:
is-callable: 1.2.7
dev: true
+ /foreground-child@3.1.1:
+ resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==}
+ engines: {node: '>=14'}
+ dependencies:
+ cross-spawn: 7.0.3
+ signal-exit: 4.1.0
+ dev: true
+
+ /form-data@4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+ dev: true
+
/fs-extra@10.1.0:
resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==}
engines: {node: '>=12'}
dependencies:
graceful-fs: 4.2.11
jsonfile: 6.1.0
- universalify: 2.0.0
+ universalify: 2.0.1
+ dev: true
+
+ /fs-extra@7.0.1:
+ resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
+ engines: {node: '>=6 <7 || >=8'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
dev: true
/fs-extra@8.1.0:
@@ -2352,9 +3536,33 @@ packages:
universalify: 0.1.2
dev: true
+ /fs-extra@9.1.0:
+ resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ at-least-node: 1.0.0
+ graceful-fs: 4.2.11
+ jsonfile: 6.1.0
+ universalify: 2.0.1
+ dev: true
+
+ /fs-minipass@2.1.0:
+ resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ minipass: 3.3.6
+ dev: true
+
/fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ /fsevents@2.3.3:
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
dev: true
+ optional: true
/function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
@@ -2364,9 +3572,9 @@ packages:
resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
- es-abstract: 1.22.3
+ es-abstract: 1.22.4
functions-have-names: 1.2.3
dev: true
@@ -2379,53 +3587,36 @@ packages:
engines: {node: '>=6.9.0'}
dev: true
- /get-intrinsic@1.2.2:
- resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==}
+ /get-caller-file@2.0.5:
+ resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
+ engines: {node: 6.* || 8.* || >= 10.*}
+ dev: true
+
+ /get-intrinsic@1.2.4:
+ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
+ engines: {node: '>= 0.4'}
dependencies:
+ es-errors: 1.3.0
function-bind: 1.1.2
has-proto: 1.0.1
has-symbols: 1.0.3
- hasown: 2.0.0
+ hasown: 2.0.1
dev: true
- /get-stdin@9.0.0:
- resolution: {integrity: sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==}
- engines: {node: '>=12'}
+ /get-stream@5.2.0:
+ resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==}
+ engines: {node: '>=8'}
+ dependencies:
+ pump: 3.0.0
dev: true
- /get-stream@6.0.1:
- resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
- engines: {node: '>=10'}
- dev: true
-
- /get-symbol-description@1.0.0:
- resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==}
+ /get-symbol-description@1.0.2:
+ resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
- dev: true
-
- /get-tsconfig@4.7.2:
- resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
- dependencies:
- resolve-pkg-maps: 1.0.0
- dev: true
-
- /get-uri@6.0.1:
- resolution: {integrity: sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q==}
- engines: {node: '>= 14'}
- dependencies:
- basic-ftp: 5.0.3
- data-uri-to-buffer: 5.0.1
- debug: 4.3.4
- fs-extra: 8.1.0
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /git-hooks-list@3.1.0:
- resolution: {integrity: sha512-LF8VeHeR7v+wAbXqfgRlTSX/1BJR9Q1vEMR8JAz1cEg6GX07+zyj3sAdDvYjj/xnlIfVuGgj4qBei1K3hKH+PA==}
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
dev: true
/glob-parent@5.1.2:
@@ -2433,28 +3624,23 @@ packages:
engines: {node: '>= 6'}
dependencies:
is-glob: 4.0.3
- dev: true
/glob-parent@6.0.2:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
engines: {node: '>=10.13.0'}
dependencies:
is-glob: 4.0.3
- dev: true
- /glob-to-regexp@0.4.1:
- resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==}
- dev: false
-
- /glob@7.1.7:
- resolution: {integrity: sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==}
+ /glob@10.3.10:
+ resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ hasBin: true
dependencies:
- fs.realpath: 1.0.0
- inflight: 1.0.6
- inherits: 2.0.4
- minimatch: 3.1.2
- once: 1.4.0
- path-is-absolute: 1.0.1
+ foreground-child: 3.1.1
+ jackspeak: 2.3.6
+ minimatch: 9.0.3
+ minipass: 7.0.4
+ path-scurry: 1.10.1
dev: true
/glob@7.2.3:
@@ -2466,8 +3652,32 @@ packages:
minimatch: 3.1.2
once: 1.4.0
path-is-absolute: 1.0.1
+
+ /glob@8.1.0:
+ resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 5.1.6
+ once: 1.4.0
dev: true
+ /global-agent@3.0.0:
+ resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==}
+ engines: {node: '>=10.0'}
+ requiresBuild: true
+ dependencies:
+ boolean: 3.2.0
+ es6-error: 4.1.1
+ matcher: 3.0.0
+ roarr: 2.15.4
+ semver: 7.6.0
+ serialize-error: 7.0.1
+ dev: true
+ optional: true
+
/globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
@@ -2478,7 +3688,6 @@ packages:
engines: {node: '>=8'}
dependencies:
type-fest: 0.20.2
- dev: true
/globalthis@1.0.3:
resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
@@ -2487,18 +3696,8 @@ packages:
define-properties: 1.2.1
dev: true
- /globby@10.0.2:
- resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==}
- engines: {node: '>=8'}
- dependencies:
- '@types/glob': 7.2.0
- array-union: 2.1.0
- dir-glob: 3.0.1
- fast-glob: 3.3.1
- glob: 7.2.3
- ignore: 5.3.0
- merge2: 1.4.1
- slash: 3.0.0
+ /globalyzer@0.1.0:
+ resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
dev: true
/globby@11.1.0:
@@ -2508,53 +3707,51 @@ packages:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.3.1
- ignore: 5.3.0
+ ignore: 5.3.1
merge2: 1.4.1
slash: 3.0.0
- dev: true
- /globby@13.2.2:
- resolution: {integrity: sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- dir-glob: 3.0.1
- fast-glob: 3.3.1
- ignore: 5.3.0
- merge2: 1.4.1
- slash: 4.0.0
+ /globrex@0.1.2:
+ resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
dev: true
/gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
- get-intrinsic: 1.2.2
+ get-intrinsic: 1.2.4
+ dev: true
+
+ /got@11.8.6:
+ resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==}
+ engines: {node: '>=10.19.0'}
+ dependencies:
+ '@sindresorhus/is': 4.6.0
+ '@szmarczak/http-timer': 4.0.6
+ '@types/cacheable-request': 6.0.3
+ '@types/responselike': 1.0.3
+ cacheable-lookup: 5.0.4
+ cacheable-request: 7.0.4
+ decompress-response: 6.0.0
+ http2-wrapper: 1.0.3
+ lowercase-keys: 2.0.0
+ p-cancelable: 2.1.1
+ responselike: 2.0.1
dev: true
/graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ dev: true
- /gradient-string@2.0.2:
- resolution: {integrity: sha512-rEDCuqUQ4tbD78TpzsMtt5OIf0cBCSDWSJtUDaF6JsAh+k0v9r++NzxNEG87oDZx9ZwGhD8DaezR2L/yrw0Jdw==}
- engines: {node: '>=10'}
- dependencies:
- chalk: 4.1.2
- tinygradient: 1.1.5
+ /grapheme-splitter@1.0.4:
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
dev: true
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
- dev: true
- /handlebars@4.7.8:
- resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==}
- engines: {node: '>=0.4.7'}
- dependencies:
- minimist: 1.2.8
- neo-async: 2.6.2
- source-map: 0.6.1
- wordwrap: 1.0.0
- optionalDependencies:
- uglify-js: 3.17.4
+ /hard-rejection@2.1.0:
+ resolution: {integrity: sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==}
+ engines: {node: '>=6'}
dev: true
/has-bigints@1.0.2:
@@ -2569,12 +3766,11 @@ packages:
/has-flag@4.0.0:
resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
engines: {node: '>=8'}
- dev: true
- /has-property-descriptors@1.0.1:
- resolution: {integrity: sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==}
+ /has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies:
- get-intrinsic: 1.2.2
+ es-define-property: 1.0.0
dev: true
/has-proto@1.0.1:
@@ -2587,59 +3783,92 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /has-tostringtag@1.0.0:
- resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==}
+ /has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
engines: {node: '>= 0.4'}
dependencies:
has-symbols: 1.0.3
dev: true
- /hasown@2.0.0:
- resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==}
+ /hasown@2.0.1:
+ resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==}
engines: {node: '>= 0.4'}
dependencies:
function-bind: 1.1.2
dev: true
- /header-case@1.0.1:
- resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==}
- dependencies:
- no-case: 2.3.2
- upper-case: 1.1.3
- dev: true
-
/hosted-git-info@2.8.9:
resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==}
dev: true
- /http-proxy-agent@7.0.0:
- resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==}
- engines: {node: '>= 14'}
+ /hosted-git-info@4.1.0:
+ resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==}
+ engines: {node: '>=10'}
dependencies:
- agent-base: 7.1.0
+ lru-cache: 6.0.0
+ dev: true
+
+ /http-cache-semantics@4.1.1:
+ resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
+ dev: true
+
+ /http-errors@1.6.2:
+ resolution: {integrity: sha512-STnYGcKMXL9CGdtpeTFnLmgMSHTTNQJSHxiC4DETHKf934Q160Ht5pljrNeH24S0O9xUN+9vsDJZdZtk5js6Ww==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ depd: 1.1.1
+ inherits: 2.0.3
+ setprototypeof: 1.0.3
+ statuses: 1.5.0
+ dev: true
+
+ /http-proxy-agent@5.0.0:
+ resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==}
+ engines: {node: '>= 6'}
+ dependencies:
+ '@tootallnate/once': 2.0.0
+ agent-base: 6.0.2
debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
- /https-proxy-agent@7.0.1:
- resolution: {integrity: sha512-Eun8zV0kcYS1g19r78osiQLEFIRspRUDd9tIfBCTBPBeMieF/EsJNL8VI3xOIdYRDEkjQnqOYPsZ2DsWsVsFwQ==}
- engines: {node: '>= 14'}
+ /http2-wrapper@1.0.3:
+ resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==}
+ engines: {node: '>=10.19.0'}
dependencies:
- agent-base: 7.1.0
+ quick-lru: 5.1.1
+ resolve-alpn: 1.2.1
+ dev: true
+
+ /https-proxy-agent@5.0.1:
+ resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ agent-base: 6.0.2
debug: 4.3.4
transitivePeerDependencies:
- supports-color
dev: true
- /human-signals@2.1.0:
- resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
- engines: {node: '>=10.17.0'}
+ /human-id@1.0.2:
+ resolution: {integrity: sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==}
dev: true
- /human-signals@4.3.1:
- resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
- engines: {node: '>=14.18.0'}
+ /iconv-corefoundation@1.1.7:
+ resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==}
+ engines: {node: ^8.11.2 || >=10}
+ os: [darwin]
+ requiresBuild: true
+ dependencies:
+ cli-truncate: 2.1.0
+ node-addon-api: 1.7.2
+ dev: true
+ optional: true
+
+ /iconv-lite@0.4.19:
+ resolution: {integrity: sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==}
+ engines: {node: '>=0.10.0'}
dev: true
/iconv-lite@0.4.24:
@@ -2649,14 +3878,29 @@ packages:
safer-buffer: 2.1.2
dev: true
- /ieee754@1.2.1:
- resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ /iconv-lite@0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ safer-buffer: 2.1.2
dev: true
- /ignore@5.3.0:
- resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==}
- engines: {node: '>= 4'}
+ /ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ requiresBuild: true
dev: true
+ optional: true
+
+ /ignore-walk@5.0.1:
+ resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ dependencies:
+ minimatch: 5.1.6
+ dev: true
+
+ /ignore@5.3.1:
+ resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==}
+ engines: {node: '>= 4'}
/import-fresh@3.3.0:
resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
@@ -2664,12 +3908,14 @@ packages:
dependencies:
parent-module: 1.0.1
resolve-from: 4.0.0
+
+ /import-meta-resolve@4.0.0:
+ resolution: {integrity: sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==}
dev: true
/imurmurhash@0.1.4:
resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
engines: {node: '>=0.8.19'}
- dev: true
/indent-string@4.0.0:
resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
@@ -2681,104 +3927,54 @@ packages:
dependencies:
once: 1.4.0
wrappy: 1.0.2
+
+ /inherits@2.0.3:
+ resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
dev: true
/inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- dev: true
- /ini@1.3.8:
- resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
- dev: true
-
- /inquirer@7.3.3:
- resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==}
- engines: {node: '>=8.0.0'}
- dependencies:
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- cli-cursor: 3.1.0
- cli-width: 3.0.0
- external-editor: 3.1.0
- figures: 3.2.0
- lodash: 4.17.21
- mute-stream: 0.0.8
- run-async: 2.4.1
- rxjs: 6.6.7
- string-width: 4.2.3
- strip-ansi: 6.0.1
- through: 2.3.8
- dev: true
-
- /inquirer@8.2.6:
- resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==}
- engines: {node: '>=12.0.0'}
- dependencies:
- ansi-escapes: 4.3.2
- chalk: 4.1.2
- cli-cursor: 3.1.0
- cli-width: 3.0.0
- external-editor: 3.1.0
- figures: 3.2.0
- lodash: 4.17.21
- mute-stream: 0.0.8
- ora: 5.4.1
- run-async: 2.4.1
- rxjs: 7.8.1
- string-width: 4.2.3
- strip-ansi: 6.0.1
- through: 2.3.8
- wrap-ansi: 6.2.0
- dev: true
-
- /internal-slot@1.0.6:
- resolution: {integrity: sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==}
+ /internal-slot@1.0.7:
+ resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
engines: {node: '>= 0.4'}
dependencies:
- get-intrinsic: 1.2.2
- hasown: 2.0.0
- side-channel: 1.0.4
+ es-errors: 1.3.0
+ hasown: 2.0.1
+ side-channel: 1.0.5
dev: true
- /ip@1.1.8:
- resolution: {integrity: sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==}
- dev: true
-
- /ip@2.0.0:
- resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==}
- dev: true
-
- /is-array-buffer@3.0.2:
- resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==}
+ /is-array-buffer@3.0.4:
+ resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
+ engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
- is-typed-array: 1.1.12
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
dev: true
/is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
dev: true
- /is-async-function@2.0.0:
- resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==}
- engines: {node: '>= 0.4'}
- dependencies:
- has-tostringtag: 1.0.0
- dev: true
-
/is-bigint@1.0.4:
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
dependencies:
has-bigints: 1.0.2
dev: true
+ /is-binary-path@2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
/is-boolean-object@1.1.2:
resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- has-tostringtag: 1.0.0
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
dev: true
/is-builtin-module@3.2.1:
@@ -2793,79 +3989,43 @@ packages:
engines: {node: '>= 0.4'}
dev: true
+ /is-ci@3.0.1:
+ resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==}
+ hasBin: true
+ dependencies:
+ ci-info: 3.9.0
+ dev: true
+
/is-core-module@2.13.1:
resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
dependencies:
- hasown: 2.0.0
+ hasown: 2.0.1
dev: true
/is-date-object@1.0.5:
resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
engines: {node: '>= 0.4'}
dependencies:
- has-tostringtag: 1.0.0
- dev: true
-
- /is-docker@2.2.1:
- resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==}
- engines: {node: '>=8'}
- dev: true
-
- /is-docker@3.0.0:
- resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ has-tostringtag: 1.0.2
dev: true
/is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
- dev: true
-
- /is-finalizationregistry@1.0.2:
- resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==}
- dependencies:
- call-bind: 1.0.5
- dev: true
/is-fullwidth-code-point@3.0.0:
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
engines: {node: '>=8'}
dev: true
- /is-generator-function@1.0.10:
- resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
- engines: {node: '>= 0.4'}
- dependencies:
- has-tostringtag: 1.0.0
- dev: true
-
/is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
dependencies:
is-extglob: 2.1.1
- dev: true
- /is-inside-container@1.0.0:
- resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==}
- engines: {node: '>=14.16'}
- dependencies:
- is-docker: 3.0.0
- dev: true
-
- /is-interactive@1.0.0:
- resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==}
- engines: {node: '>=8'}
- dev: true
-
- /is-lower-case@1.1.3:
- resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==}
- dependencies:
- lower-case: 1.1.4
- dev: true
-
- /is-map@2.0.2:
- resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==}
+ /is-module@1.0.0:
+ resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
dev: true
/is-negative-zero@2.0.2:
@@ -2877,62 +4037,64 @@ packages:
resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
engines: {node: '>= 0.4'}
dependencies:
- has-tostringtag: 1.0.0
+ has-tostringtag: 1.0.2
dev: true
/is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
- dev: true
-
- /is-path-cwd@2.2.0:
- resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==}
- engines: {node: '>=6'}
- dev: true
/is-path-inside@3.0.3:
resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
engines: {node: '>=8'}
+
+ /is-plain-obj@1.1.0:
+ resolution: {integrity: sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==}
+ engines: {node: '>=0.10.0'}
dev: true
- /is-plain-obj@4.1.0:
- resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==}
- engines: {node: '>=12'}
+ /is-reference@1.2.1:
+ resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
+ dependencies:
+ '@types/estree': 1.0.5
dev: true
+ /is-reference@3.0.2:
+ resolution: {integrity: sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==}
+ dependencies:
+ '@types/estree': 1.0.5
+
/is-regex@1.1.4:
resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- has-tostringtag: 1.0.0
- dev: true
-
- /is-set@2.0.2:
- resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==}
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
dev: true
/is-shared-array-buffer@1.0.2:
resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
dev: true
- /is-stream@2.0.1:
- resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
- engines: {node: '>=8'}
- dev: true
-
- /is-stream@3.0.0:
- resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ /is-stream@1.1.0:
+ resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==}
+ engines: {node: '>=0.10.0'}
dev: true
/is-string@1.0.7:
resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
engines: {node: '>= 0.4'}
dependencies:
- has-tostringtag: 1.0.0
+ has-tostringtag: 1.0.2
+ dev: true
+
+ /is-subdir@1.2.0:
+ resolution: {integrity: sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==}
+ engines: {node: '>=4'}
+ dependencies:
+ better-path-resolve: 1.0.0
dev: true
/is-symbol@1.0.4:
@@ -2942,46 +4104,22 @@ packages:
has-symbols: 1.0.3
dev: true
- /is-typed-array@1.1.12:
- resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==}
+ /is-typed-array@1.1.13:
+ resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
engines: {node: '>= 0.4'}
dependencies:
- which-typed-array: 1.1.13
- dev: true
-
- /is-unicode-supported@0.1.0:
- resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==}
- engines: {node: '>=10'}
- dev: true
-
- /is-upper-case@1.1.2:
- resolution: {integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==}
- dependencies:
- upper-case: 1.1.3
- dev: true
-
- /is-weakmap@2.0.1:
- resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==}
+ which-typed-array: 1.1.14
dev: true
/is-weakref@1.0.2:
resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
dev: true
- /is-weakset@2.0.2:
- resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==}
- dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
- dev: true
-
- /is-wsl@2.2.0:
- resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
- engines: {node: '>=8'}
- dependencies:
- is-docker: 2.2.1
+ /is-windows@1.0.2:
+ resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+ engines: {node: '>=0.10.0'}
dev: true
/isarray@2.0.5:
@@ -2993,46 +4131,60 @@ packages:
engines: {node: '>= 8.0.0'}
dev: true
+ /isbinaryfile@5.0.2:
+ resolution: {integrity: sha512-GvcjojwonMjWbTkfMpnVHVqXW/wKMYDfEpY94/8zy8HFMOqb/VL6oeONq9v87q4ttVlaTLnGXnJD4B5B1OTGIg==}
+ engines: {node: '>= 18.0.0'}
+ dev: true
+
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
- dev: true
- /iterator.prototype@1.1.2:
- resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==}
+ /jackspeak@2.3.6:
+ resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==}
+ engines: {node: '>=14'}
dependencies:
- define-properties: 1.2.1
- get-intrinsic: 1.2.2
- has-symbols: 1.0.3
- reflect.getprototypeof: 1.0.4
- set-function-name: 2.0.1
+ '@isaacs/cliui': 8.0.2
+ optionalDependencies:
+ '@pkgjs/parseargs': 0.11.0
dev: true
- /jju@1.4.0:
- resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==}
+ /jake@10.8.7:
+ resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ async: 3.2.5
+ chalk: 4.1.2
+ filelist: 1.0.4
+ minimatch: 3.1.2
dev: true
/js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /js-yaml@3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+ dev: true
/js-yaml@4.1.0:
resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
dependencies:
argparse: 2.0.1
- dev: true
-
- /jsesc@0.5.0:
- resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==}
- dev: true
/jsesc@2.5.2:
resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
engines: {node: '>=4'}
+ hasBin: true
dev: true
- /jsesc@3.0.2:
- resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==}
- engines: {node: '>=6'}
- dev: true
+ /json-buffer@3.0.1:
+ resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==}
/json-parse-even-better-errors@2.3.1:
resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==}
@@ -3040,21 +4192,20 @@ packages:
/json-schema-traverse@0.4.1:
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
- dev: true
/json-stable-stringify-without-jsonify@1.0.1:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
- dev: true
- /json5@1.0.2:
- resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
- dependencies:
- minimist: 1.2.8
+ /json-stringify-safe@5.0.1:
+ resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==}
+ requiresBuild: true
dev: true
+ optional: true
/json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
+ hasBin: true
dev: true
/jsonfile@4.0.0:
@@ -3066,30 +4217,31 @@ packages:
/jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
dependencies:
- universalify: 2.0.0
+ universalify: 2.0.1
optionalDependencies:
graceful-fs: 4.2.11
dev: true
- /jsx-ast-utils@3.3.5:
- resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==}
- engines: {node: '>=4.0'}
+ /keyv@4.5.4:
+ resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==}
dependencies:
- array-includes: 3.1.7
- array.prototype.flat: 1.3.2
- object.assign: 4.1.4
- object.values: 1.1.7
+ json-buffer: 3.0.1
+
+ /kind-of@6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
dev: true
- /language-subtag-registry@0.3.22:
- resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==}
+ /kleur@4.1.5:
+ resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
+ engines: {node: '>=6'}
dev: true
- /language-tags@1.0.9:
- resolution: {integrity: sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==}
- engines: {node: '>=0.10'}
- dependencies:
- language-subtag-registry: 0.3.22
+ /known-css-properties@0.29.0:
+ resolution: {integrity: sha512-Ne7wqW7/9Cz54PDt4I3tcV+hAyat8ypyOGzYRJQfdxnnjeWsTxt1cy8pjvvKeI5kfXuyvULyeeAvwvvtAX3ayQ==}
+
+ /lazy-val@1.0.5:
+ resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==}
dev: true
/levn@0.4.1:
@@ -3098,12 +4250,28 @@ packages:
dependencies:
prelude-ls: 1.2.1
type-check: 0.4.0
- dev: true
+
+ /lilconfig@2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
/lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
dev: true
+ /load-yaml-file@0.2.0:
+ resolution: {integrity: sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==}
+ engines: {node: '>=6'}
+ dependencies:
+ graceful-fs: 4.2.11
+ js-yaml: 3.14.1
+ pify: 4.0.1
+ strip-bom: 3.0.0
+ dev: true
+
+ /locate-character@3.0.0:
+ resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
+
/locate-path@5.0.0:
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
engines: {node: '>=8'}
@@ -3116,48 +4284,39 @@ packages:
engines: {node: '>=10'}
dependencies:
p-locate: 5.0.0
- dev: true
-
- /lodash.get@4.4.2:
- resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
- dev: true
/lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+
+ /lodash.startcase@4.4.0:
+ resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==}
dev: true
/lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
dev: true
- /log-symbols@3.0.0:
- resolution: {integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==}
+ /lower-case@2.0.2:
+ resolution: {integrity: sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==}
+ dependencies:
+ tslib: 2.6.2
+ dev: true
+
+ /lowercase-keys@2.0.0:
+ resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==}
engines: {node: '>=8'}
- dependencies:
- chalk: 2.4.2
dev: true
- /log-symbols@4.1.0:
- resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==}
- engines: {node: '>=10'}
- dependencies:
- chalk: 4.1.2
- is-unicode-supported: 0.1.0
+ /lru-cache@10.2.0:
+ resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==}
+ engines: {node: 14 || >=16.14}
dev: true
- /loose-envify@1.4.0:
- resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
+ /lru-cache@4.1.5:
+ resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==}
dependencies:
- js-tokens: 4.0.0
-
- /lower-case-first@1.0.2:
- resolution: {integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==}
- dependencies:
- lower-case: 1.1.4
- dev: true
-
- /lower-case@1.1.4:
- resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==}
+ pseudomap: 1.0.2
+ yallist: 2.1.2
dev: true
/lru-cache@5.1.1:
@@ -3171,24 +4330,72 @@ packages:
engines: {node: '>=10'}
dependencies:
yallist: 4.0.0
- dev: true
- /lru-cache@7.18.3:
- resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
+ /magic-string@0.30.7:
+ resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==}
engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ /map-obj@1.0.1:
+ resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==}
+ engines: {node: '>=0.10.0'}
dev: true
- /make-error@1.3.6:
- resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
+ /map-obj@4.3.0:
+ resolution: {integrity: sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==}
+ engines: {node: '>=8'}
dev: true
- /merge-stream@2.0.0:
- resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+ /matcher@3.0.0:
+ resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==}
+ engines: {node: '>=10'}
+ requiresBuild: true
+ dependencies:
+ escape-string-regexp: 4.0.0
+ dev: true
+ optional: true
+
+ /matchit@1.1.0:
+ resolution: {integrity: sha512-+nGYoOlfHmxe5BW5tE0EMJppXEwdSf8uBA1GTZC7Q77kbT35+VKLYJMzVNWCHSsga1ps1tPYFtFyvxvKzWVmMA==}
+ engines: {node: '>=6'}
+ dependencies:
+ '@arr/every': 1.0.1
+ dev: true
+
+ /mdn-data@2.0.30:
+ resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==}
+
+ /meow@6.1.1:
+ resolution: {integrity: sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==}
+ engines: {node: '>=8'}
+ dependencies:
+ '@types/minimist': 1.2.5
+ camelcase-keys: 6.2.2
+ decamelize-keys: 1.1.1
+ hard-rejection: 2.1.0
+ minimist-options: 4.1.0
+ normalize-package-data: 2.5.0
+ read-pkg-up: 7.0.1
+ redent: 3.0.0
+ trim-newlines: 3.0.1
+ type-fest: 0.13.1
+ yargs-parser: 18.1.3
dev: true
/merge2@1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
+
+ /micro@9.3.4:
+ resolution: {integrity: sha512-smz9naZwTG7qaFnEZ2vn248YZq9XR+XoOH3auieZbkhDL4xLOxiE+KqG8qqnBeKfXA9c1uEFGCxPN1D+nT6N7w==}
+ engines: {node: '>= 8.0.0'}
+ hasBin: true
+ dependencies:
+ arg: 4.1.0
+ content-type: 1.0.4
+ is-stream: 1.1.0
+ raw-body: 2.3.2
dev: true
/micromatch@4.0.5:
@@ -3197,16 +4404,31 @@ packages:
dependencies:
braces: 3.0.2
picomatch: 2.3.1
+
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+
+ /mime@2.6.0:
+ resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==}
+ engines: {node: '>=4.0.0'}
+ hasBin: true
dev: true
- /mimic-fn@2.1.0:
- resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
- engines: {node: '>=6'}
+ /mimic-response@1.0.1:
+ resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==}
+ engines: {node: '>=4'}
dev: true
- /mimic-fn@4.0.0:
- resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
- engines: {node: '>=12'}
+ /mimic-response@3.1.0:
+ resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==}
+ engines: {node: '>=10'}
dev: true
/min-indent@1.0.1:
@@ -3218,6 +4440,12 @@ packages:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
brace-expansion: 1.1.11
+
+ /minimatch@5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+ dependencies:
+ brace-expansion: 2.0.1
dev: true
/minimatch@9.0.3:
@@ -3225,108 +4453,113 @@ packages:
engines: {node: '>=16 || 14 >=14.17'}
dependencies:
brace-expansion: 2.0.1
+
+ /minimist-options@4.1.0:
+ resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==}
+ engines: {node: '>= 6'}
+ dependencies:
+ arrify: 1.0.1
+ is-plain-obj: 1.1.0
+ kind-of: 6.0.3
dev: true
/minimist@1.2.8:
resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==}
dev: true
+ /minipass@3.3.6:
+ resolution: {integrity: sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==}
+ engines: {node: '>=8'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
+ /minipass@5.0.0:
+ resolution: {integrity: sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /minipass@7.0.4:
+ resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dev: true
+
+ /minizlib@2.1.2:
+ resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ minipass: 3.3.6
+ yallist: 4.0.0
+ dev: true
+
+ /mixme@0.5.10:
+ resolution: {integrity: sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==}
+ engines: {node: '>= 8.0.0'}
+ dev: true
+
/mkdirp@0.5.6:
resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==}
+ hasBin: true
dependencies:
minimist: 1.2.8
dev: true
- /ms@2.1.2:
- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ /mkdirp@1.0.4:
+ resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
+ engines: {node: '>=10'}
+ hasBin: true
dev: true
- /mute-stream@0.0.8:
- resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==}
+ /mri@1.2.0:
+ resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
+ engines: {node: '>=4'}
dev: true
+ /mrmime@1.0.1:
+ resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /mrmime@2.0.0:
+ resolution: {integrity: sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+
/nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
- dev: false
+ hasBin: true
+
+ /natural-compare-lite@1.4.0:
+ resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
+ dev: true
/natural-compare@1.4.0:
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+
+ /new-github-issue-url@1.0.0:
+ resolution: {integrity: sha512-wa9jlUFg3v6S3ddijQiB18SY4u9eJYcUe5sHa+6SB8m1UUbtX+H/bBglxOLnhhF1zIHuhWXnKBAa8kBeKRIozQ==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true
- /neo-async@2.6.2:
- resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
- dev: true
-
- /netmask@2.0.2:
- resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==}
- engines: {node: '>= 0.4.0'}
- dev: true
-
- /next@14.0.4(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA==}
- engines: {node: '>=18.17.0'}
- peerDependencies:
- '@opentelemetry/api': ^1.1.0
- react: ^18.2.0
- react-dom: ^18.2.0
- sass: ^1.3.0
- peerDependenciesMeta:
- '@opentelemetry/api':
- optional: true
- sass:
- optional: true
+ /no-case@3.0.4:
+ resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
dependencies:
- '@next/env': 14.0.4
- '@swc/helpers': 0.5.2
- busboy: 1.6.0
- caniuse-lite: 1.0.30001563
- graceful-fs: 4.2.11
- postcss: 8.4.31
- react: 18.2.0
- react-dom: 18.2.0(react@18.2.0)
- styled-jsx: 5.1.1(react@18.2.0)
- watchpack: 2.4.0
- optionalDependencies:
- '@next/swc-darwin-arm64': 14.0.4
- '@next/swc-darwin-x64': 14.0.4
- '@next/swc-linux-arm64-gnu': 14.0.4
- '@next/swc-linux-arm64-musl': 14.0.4
- '@next/swc-linux-x64-gnu': 14.0.4
- '@next/swc-linux-x64-musl': 14.0.4
- '@next/swc-win32-arm64-msvc': 14.0.4
- '@next/swc-win32-ia32-msvc': 14.0.4
- '@next/swc-win32-x64-msvc': 14.0.4
- transitivePeerDependencies:
- - '@babel/core'
- - babel-plugin-macros
- dev: false
-
- /no-case@2.3.2:
- resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==}
- dependencies:
- lower-case: 1.1.4
+ lower-case: 2.0.2
+ tslib: 2.6.2
dev: true
- /node-plop@0.26.3:
- resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==}
- engines: {node: '>=8.9.4'}
- dependencies:
- '@babel/runtime-corejs3': 7.22.10
- '@types/inquirer': 6.5.0
- change-case: 3.1.0
- del: 5.1.0
- globby: 10.0.2
- handlebars: 4.7.8
- inquirer: 7.3.3
- isbinaryfile: 4.0.10
- lodash.get: 4.4.2
- mkdirp: 0.5.6
- resolve: 1.22.8
+ /node-addon-api@1.7.2:
+ resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==}
+ requiresBuild: true
dev: true
+ optional: true
- /node-releases@2.0.13:
- resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==}
+ /node-releases@2.0.14:
+ resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
dev: true
/normalize-package-data@2.5.0:
@@ -3338,25 +4571,39 @@ packages:
validate-npm-package-license: 3.0.4
dev: true
- /npm-run-path@4.0.1:
- resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
- engines: {node: '>=8'}
- dependencies:
- path-key: 3.1.1
- dev: true
-
- /npm-run-path@5.1.0:
- resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
- engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
- dependencies:
- path-key: 4.0.0
- dev: true
-
- /object-assign@4.1.1:
- resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
+ /normalize-path@3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
dev: true
+ /normalize-url@6.1.0:
+ resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /npm-bundled@2.0.1:
+ resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ dependencies:
+ npm-normalize-package-bin: 2.0.0
+ dev: true
+
+ /npm-normalize-package-bin@2.0.0:
+ resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ dev: true
+
+ /npm-packlist@5.1.3:
+ resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==}
+ engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ glob: 8.1.0
+ ignore-walk: 5.0.1
+ npm-bundled: 2.0.1
+ npm-normalize-package-bin: 2.0.0
+ dev: true
+
/object-inspect@1.13.1:
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
dev: true
@@ -3366,88 +4613,20 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /object.assign@4.1.4:
- resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==}
+ /object.assign@4.1.5:
+ resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
has-symbols: 1.0.3
object-keys: 1.1.1
dev: true
- /object.entries@1.1.7:
- resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- dev: true
-
- /object.fromentries@2.0.7:
- resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- dev: true
-
- /object.groupby@1.0.1:
- resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==}
- dependencies:
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- get-intrinsic: 1.2.2
- dev: true
-
- /object.hasown@1.1.3:
- resolution: {integrity: sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==}
- dependencies:
- define-properties: 1.2.1
- es-abstract: 1.22.3
- dev: true
-
- /object.values@1.1.7:
- resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- dev: true
-
/once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
wrappy: 1.0.2
- dev: true
-
- /onetime@5.1.2:
- resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
- engines: {node: '>=6'}
- dependencies:
- mimic-fn: 2.1.0
- dev: true
-
- /onetime@6.0.0:
- resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
- engines: {node: '>=12'}
- dependencies:
- mimic-fn: 4.0.0
- dev: true
-
- /open@9.1.0:
- resolution: {integrity: sha512-OS+QTnw1/4vrf+9hh1jc1jnYjzSG4ttTBB8UxOwAnInG3Uo4ssetzC1ihqaIHjLJnA5GGlRl6QlZXOTQhRBUvg==}
- engines: {node: '>=14.16'}
- dependencies:
- default-browser: 4.0.0
- define-lazy-prop: 3.0.0
- is-inside-container: 1.0.0
- is-wsl: 2.2.0
- dev: true
/optionator@0.9.3:
resolution: {integrity: sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==}
@@ -3459,42 +4638,28 @@ packages:
levn: 0.4.1
prelude-ls: 1.2.1
type-check: 0.4.0
- dev: true
-
- /ora@4.1.1:
- resolution: {integrity: sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==}
- engines: {node: '>=8'}
- dependencies:
- chalk: 3.0.0
- cli-cursor: 3.1.0
- cli-spinners: 2.9.0
- is-interactive: 1.0.0
- log-symbols: 3.0.0
- mute-stream: 0.0.8
- strip-ansi: 6.0.1
- wcwidth: 1.0.1
- dev: true
-
- /ora@5.4.1:
- resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==}
- engines: {node: '>=10'}
- dependencies:
- bl: 4.1.0
- chalk: 4.1.2
- cli-cursor: 3.1.0
- cli-spinners: 2.9.0
- is-interactive: 1.0.0
- is-unicode-supported: 0.1.0
- log-symbols: 4.1.0
- strip-ansi: 6.0.1
- wcwidth: 1.0.1
- dev: true
/os-tmpdir@1.0.2:
resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==}
engines: {node: '>=0.10.0'}
dev: true
+ /outdent@0.5.0:
+ resolution: {integrity: sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==}
+ dev: true
+
+ /p-cancelable@2.1.1:
+ resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /p-filter@2.1.0:
+ resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==}
+ engines: {node: '>=8'}
+ dependencies:
+ p-map: 2.1.0
+ dev: true
+
/p-limit@2.3.0:
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
engines: {node: '>=6'}
@@ -3507,7 +4672,6 @@ packages:
engines: {node: '>=10'}
dependencies:
yocto-queue: 0.1.0
- dev: true
/p-locate@4.1.0:
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
@@ -3521,13 +4685,10 @@ packages:
engines: {node: '>=10'}
dependencies:
p-limit: 3.1.0
- dev: true
- /p-map@3.0.0:
- resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==}
- engines: {node: '>=8'}
- dependencies:
- aggregate-error: 3.1.0
+ /p-map@2.1.0:
+ resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==}
+ engines: {node: '>=6'}
dev: true
/p-try@2.2.0:
@@ -3535,206 +4696,258 @@ packages:
engines: {node: '>=6'}
dev: true
- /pac-proxy-agent@7.0.0:
- resolution: {integrity: sha512-t4tRAMx0uphnZrio0S0Jw9zg3oDbz1zVhQ/Vy18FjLfP1XOLNUEjaVxYCYRI6NS+BsMBXKIzV6cTLOkO9AtywA==}
- engines: {node: '>= 14'}
- dependencies:
- '@tootallnate/quickjs-emscripten': 0.23.0
- agent-base: 7.1.0
- debug: 4.3.4
- get-uri: 6.0.1
- http-proxy-agent: 7.0.0
- https-proxy-agent: 7.0.1
- pac-resolver: 7.0.0
- socks-proxy-agent: 8.0.1
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /pac-resolver@7.0.0:
- resolution: {integrity: sha512-Fd9lT9vJbHYRACT8OhCbZBbxr6KRSawSovFpy8nDGshaK99S/EBhVIHp9+crhxrsZOuvLpgL1n23iyPg6Rl2hg==}
- engines: {node: '>= 14'}
- dependencies:
- degenerator: 5.0.1
- ip: 1.1.8
- netmask: 2.0.2
- dev: true
-
- /param-case@2.1.1:
- resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==}
- dependencies:
- no-case: 2.3.2
- dev: true
-
/parent-module@1.0.1:
resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
engines: {node: '>=6'}
dependencies:
callsites: 3.1.0
- dev: true
/parse-json@5.2.0:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
dependencies:
- '@babel/code-frame': 7.22.13
+ '@babel/code-frame': 7.23.5
error-ex: 1.3.2
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
dev: true
- /pascal-case@2.0.1:
- resolution: {integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==}
+ /pascal-case@3.1.2:
+ resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==}
dependencies:
- camel-case: 3.0.0
- upper-case-first: 1.1.2
- dev: true
-
- /path-case@2.1.1:
- resolution: {integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==}
- dependencies:
- no-case: 2.3.2
+ no-case: 3.0.4
+ tslib: 2.6.2
dev: true
/path-exists@4.0.0:
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
engines: {node: '>=8'}
- dev: true
/path-is-absolute@1.0.1:
resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
engines: {node: '>=0.10.0'}
- dev: true
/path-key@3.1.1:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
- dev: true
-
- /path-key@4.0.0:
- resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
- engines: {node: '>=12'}
- dev: true
/path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
+ /path-scurry@1.10.1:
+ resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==}
+ engines: {node: '>=16 || 14 >=14.17'}
+ dependencies:
+ lru-cache: 10.2.0
+ minipass: 7.0.4
+ dev: true
+
/path-type@4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
+
+ /pend@1.2.0:
+ resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==}
dev: true
+ /periscopic@3.1.0:
+ resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==}
+ dependencies:
+ '@types/estree': 1.0.5
+ estree-walker: 3.0.3
+ is-reference: 3.0.2
+
/picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
/picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
+
+ /pify@4.0.1:
+ resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+ engines: {node: '>=6'}
dev: true
- /pluralize@8.0.0:
- resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
+ /pkg-dir@4.2.0:
+ resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ find-up: 4.1.0
+ dev: true
+
+ /plist@3.1.0:
+ resolution: {integrity: sha512-uysumyrvkUX0rX/dEVqt8gC3sTBzd4zoWfLeS29nb53imdaXVvLINYXTI2GNqzaMuvacNx4uJQ8+b3zXR0pkgQ==}
+ engines: {node: '>=10.4.0'}
+ dependencies:
+ '@xmldom/xmldom': 0.8.10
+ base64-js: 1.5.1
+ xmlbuilder: 15.1.1
+ dev: true
+
+ /polka@0.5.2:
+ resolution: {integrity: sha512-FVg3vDmCqP80tOrs+OeNlgXYmFppTXdjD5E7I4ET1NjvtNmQrb1/mJibybKkb/d4NA7YWAr1ojxuhpL3FHqdlw==}
+ dependencies:
+ '@polka/url': 0.5.0
+ trouter: 2.0.1
+ dev: true
+
+ /postcss-load-config@3.1.4(postcss@8.4.35):
+ resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==}
+ engines: {node: '>= 10'}
+ peerDependencies:
+ postcss: '>=8.0.9'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ postcss:
+ optional: true
+ ts-node:
+ optional: true
+ dependencies:
+ lilconfig: 2.1.0
+ postcss: 8.4.35
+ yaml: 1.10.2
+
+ /postcss-safe-parser@6.0.0(postcss@8.4.35):
+ resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.3.3
+ dependencies:
+ postcss: 8.4.35
+
+ /postcss-scss@4.0.9(postcss@8.4.35):
+ resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==}
+ engines: {node: '>=12.0'}
+ peerDependencies:
+ postcss: ^8.4.29
+ dependencies:
+ postcss: 8.4.35
+
+ /postcss-selector-parser@6.0.15:
+ resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
engines: {node: '>=4'}
- dev: true
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
- /postcss@8.4.31:
- resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
+ /postcss@8.4.35:
+ resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.7
picocolors: 1.0.0
source-map-js: 1.0.2
- dev: false
+
+ /preferred-pm@3.1.2:
+ resolution: {integrity: sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ find-up: 5.0.0
+ find-yarn-workspace-root2: 1.2.16
+ path-exists: 4.0.0
+ which-pm: 2.0.0
+ dev: true
/prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- dev: true
- /prettier-plugin-packagejson@2.4.6(prettier@3.1.1):
- resolution: {integrity: sha512-5JGfzkJRL0DLNyhwmiAV9mV0hZLHDwddFCs2lc9CNxOChpoWUQVe8K4qTMktmevmDlMpok2uT10nvHUyU59sNw==}
+ /prettier-plugin-svelte@3.1.2(prettier@3.1.1)(svelte@4.2.7):
+ resolution: {integrity: sha512-7xfMZtwgAWHMT0iZc8jN4o65zgbAQ3+O32V6W7pXrqNvKnHnkoyQCGCbKeUyXKZLbYE0YhFRnamfxfkEGxm8qA==}
peerDependencies:
- prettier: '>= 1.16.0'
- peerDependenciesMeta:
- prettier:
- optional: true
+ prettier: ^3.0.0
+ svelte: ^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0
dependencies:
prettier: 3.1.1
- sort-package-json: 2.6.0
- synckit: 0.8.5
+ svelte: 4.2.7
+ dev: true
+
+ /prettier@2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
dev: true
/prettier@3.1.1:
resolution: {integrity: sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==}
engines: {node: '>=14'}
+ hasBin: true
dev: true
- /prop-types@15.8.1:
- resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==}
+ /progress@2.0.3:
+ resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==}
+ engines: {node: '>=0.4.0'}
+ dev: true
+
+ /promise-retry@2.0.1:
+ resolution: {integrity: sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==}
+ engines: {node: '>=10'}
dependencies:
- loose-envify: 1.4.0
- object-assign: 4.1.1
- react-is: 16.13.1
+ err-code: 2.0.3
+ retry: 0.12.0
dev: true
- /proxy-agent@6.3.0:
- resolution: {integrity: sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==}
- engines: {node: '>= 14'}
+ /pseudomap@1.0.2:
+ resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==}
+ dev: true
+
+ /publint@0.1.9:
+ resolution: {integrity: sha512-O53y7vbePxuGFmEjgcrafMSlDpOJwOkj8YdexOt7yWlv7SB3rXoT3mHknyMJ3lf2UFH5Bmt6tnIkHcOTR6dEoA==}
+ engines: {node: '>=16'}
+ hasBin: true
dependencies:
- agent-base: 7.1.0
- debug: 4.3.4
- http-proxy-agent: 7.0.0
- https-proxy-agent: 7.0.1
- lru-cache: 7.18.3
- pac-proxy-agent: 7.0.0
- proxy-from-env: 1.1.0
- socks-proxy-agent: 8.0.1
- transitivePeerDependencies:
- - supports-color
+ npm-packlist: 5.1.3
+ picocolors: 1.0.0
+ sade: 1.8.1
dev: true
- /proxy-from-env@1.1.0:
- resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ /pump@3.0.0:
+ resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
dev: true
- /punycode@2.3.0:
- resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
+ /punycode@2.3.1:
+ resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
- dev: true
/queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+
+ /quick-lru@4.0.1:
+ resolution: {integrity: sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==}
+ engines: {node: '>=8'}
dev: true
- /rc@1.2.8:
- resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==}
- dependencies:
- deep-extend: 0.6.0
- ini: 1.3.8
- minimist: 1.2.8
- strip-json-comments: 2.0.1
+ /quick-lru@5.1.1:
+ resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==}
+ engines: {node: '>=10'}
dev: true
- /react-dom@18.2.0(react@18.2.0):
- resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==}
- peerDependencies:
- react: ^18.2.0
+ /raw-body@2.3.2:
+ resolution: {integrity: sha512-Ss0DsBxqLxCmQkfG5yazYhtbVVTJqS9jTsZG2lhrNwqzOk2SUC7O/NB/M//CkEBqsrtmlNgJCPccJGuYSFr6Vg==}
+ engines: {node: '>= 0.8'}
dependencies:
- loose-envify: 1.4.0
- react: 18.2.0
- scheduler: 0.23.0
- dev: false
-
- /react-is@16.13.1:
- resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
+ bytes: 3.0.0
+ http-errors: 1.6.2
+ iconv-lite: 0.4.19
+ unpipe: 1.0.0
dev: true
- /react@18.2.0:
- resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==}
- engines: {node: '>=0.10.0'}
+ /read-config-file@6.3.2:
+ resolution: {integrity: sha512-M80lpCjnE6Wt6zb98DoW8WHR09nzMSpu8XHtPkiTHrJ5Az9CybfeQhTJ8D7saeBHpGhLPIVyA8lcL6ZmdKwY6Q==}
+ engines: {node: '>=12.0.0'}
dependencies:
- loose-envify: 1.4.0
+ config-file-ts: 0.2.6
+ dotenv: 9.0.2
+ dotenv-expand: 5.1.0
+ js-yaml: 4.1.0
+ json5: 2.2.3
+ lazy-val: 1.0.5
+ dev: true
/read-pkg-up@7.0.1:
resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
@@ -3755,139 +4968,153 @@ packages:
type-fest: 0.6.0
dev: true
- /readable-stream@3.6.2:
- resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
- engines: {node: '>= 6'}
+ /read-yaml-file@1.1.0:
+ resolution: {integrity: sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==}
+ engines: {node: '>=6'}
dependencies:
- inherits: 2.0.4
- string_decoder: 1.3.0
- util-deprecate: 1.0.2
+ graceful-fs: 4.2.11
+ js-yaml: 3.14.1
+ pify: 4.0.1
+ strip-bom: 3.0.0
dev: true
- /reflect.getprototypeof@1.0.4:
- resolution: {integrity: sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==}
+ /readdirp@3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
+ /redent@3.0.0:
+ resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==}
+ engines: {node: '>=8'}
+ dependencies:
+ indent-string: 4.0.0
+ strip-indent: 3.0.0
+ dev: true
+
+ /regenerator-runtime@0.14.1:
+ resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
+ dev: true
+
+ /regexp.prototype.flags@1.5.2:
+ resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- get-intrinsic: 1.2.2
- globalthis: 1.0.3
- which-builtin-type: 1.1.3
- dev: true
-
- /regenerator-runtime@0.14.0:
- resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
- dev: true
-
- /regexp-tree@0.1.27:
- resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==}
- dev: true
-
- /regexp.prototype.flags@1.5.1:
- resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==}
- engines: {node: '>= 0.4'}
- dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
+ es-errors: 1.3.0
set-function-name: 2.0.1
dev: true
- /registry-auth-token@3.3.2:
- resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==}
- dependencies:
- rc: 1.2.8
- safe-buffer: 5.2.1
- dev: true
-
- /registry-url@3.1.0:
- resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==}
+ /require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
engines: {node: '>=0.10.0'}
- dependencies:
- rc: 1.2.8
dev: true
- /regjsparser@0.10.0:
- resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==}
- dependencies:
- jsesc: 0.5.0
+ /require-main-filename@2.0.0:
+ resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
+ dev: true
+
+ /resolve-alpn@1.2.1:
+ resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
dev: true
/resolve-from@4.0.0:
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
engines: {node: '>=4'}
- dev: true
- /resolve-pkg-maps@1.0.0:
- resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
- dev: true
-
- /resolve@1.19.0:
- resolution: {integrity: sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==}
- dependencies:
- is-core-module: 2.13.1
- path-parse: 1.0.7
+ /resolve-from@5.0.0:
+ resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
+ engines: {node: '>=8'}
dev: true
/resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
+ hasBin: true
dependencies:
is-core-module: 2.13.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: true
- /resolve@2.0.0-next.5:
- resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==}
+ /responselike@2.0.1:
+ resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==}
dependencies:
- is-core-module: 2.13.1
- path-parse: 1.0.7
- supports-preserve-symlinks-flag: 1.0.0
+ lowercase-keys: 2.0.0
dev: true
- /restore-cursor@3.1.0:
- resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
- engines: {node: '>=8'}
- dependencies:
- onetime: 5.1.2
- signal-exit: 3.0.7
+ /retry@0.12.0:
+ resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
+ engines: {node: '>= 4'}
dev: true
/reusify@1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
- dev: true
- /rimraf@3.0.2:
- resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ /rimraf@2.7.1:
+ resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
+ hasBin: true
dependencies:
glob: 7.2.3
dev: true
- /run-applescript@5.0.0:
- resolution: {integrity: sha512-XcT5rBksx1QdIhlFOCtgZkB99ZEouFZ1E2Kc2LHqNW13U3/74YGdkQRmThTwxy4QIyookibDKYZOPqX//6BlAg==}
- engines: {node: '>=12'}
+ /rimraf@3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
dependencies:
- execa: 5.1.1
+ glob: 7.2.3
+
+ /rimraf@5.0.5:
+ resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dependencies:
+ glob: 10.3.10
dev: true
- /run-async@2.4.1:
- resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==}
- engines: {node: '>=0.12.0'}
+ /roarr@2.15.4:
+ resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==}
+ engines: {node: '>=8.0'}
+ requiresBuild: true
+ dependencies:
+ boolean: 3.2.0
+ detect-node: 2.1.0
+ globalthis: 1.0.3
+ json-stringify-safe: 5.0.1
+ semver-compare: 1.0.0
+ sprintf-js: 1.1.3
+ dev: true
+ optional: true
+
+ /rollup@4.11.0:
+ resolution: {integrity: sha512-2xIbaXDXjf3u2tajvA5xROpib7eegJ9Y/uPlSFhXLNpK9ampCczXAhLEb5yLzJyG3LAdI1NWtNjDXiLyniNdjQ==}
+ engines: {node: '>=18.0.0', npm: '>=8.0.0'}
+ hasBin: true
+ dependencies:
+ '@types/estree': 1.0.5
+ optionalDependencies:
+ '@rollup/rollup-android-arm-eabi': 4.11.0
+ '@rollup/rollup-android-arm64': 4.11.0
+ '@rollup/rollup-darwin-arm64': 4.11.0
+ '@rollup/rollup-darwin-x64': 4.11.0
+ '@rollup/rollup-linux-arm-gnueabihf': 4.11.0
+ '@rollup/rollup-linux-arm64-gnu': 4.11.0
+ '@rollup/rollup-linux-arm64-musl': 4.11.0
+ '@rollup/rollup-linux-riscv64-gnu': 4.11.0
+ '@rollup/rollup-linux-x64-gnu': 4.11.0
+ '@rollup/rollup-linux-x64-musl': 4.11.0
+ '@rollup/rollup-win32-arm64-msvc': 4.11.0
+ '@rollup/rollup-win32-ia32-msvc': 4.11.0
+ '@rollup/rollup-win32-x64-msvc': 4.11.0
+ fsevents: 2.3.3
dev: true
/run-parallel@1.2.0:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
- dev: true
-
- /rxjs@6.6.7:
- resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
- engines: {npm: '>=2.0.0'}
- dependencies:
- tslib: 1.14.1
- dev: true
/rxjs@7.8.1:
resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
@@ -3895,25 +5122,29 @@ packages:
tslib: 2.6.2
dev: true
- /safe-array-concat@1.0.1:
- resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==}
+ /sade@1.8.1:
+ resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
+ engines: {node: '>=6'}
+ dependencies:
+ mri: 1.2.0
+ dev: true
+
+ /safe-array-concat@1.1.0:
+ resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==}
engines: {node: '>=0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
has-symbols: 1.0.3
isarray: 2.0.5
dev: true
- /safe-buffer@5.2.1:
- resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
- dev: true
-
- /safe-regex-test@1.0.0:
- resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==}
+ /safe-regex-test@1.0.3:
+ resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
+ engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
+ call-bind: 1.0.7
+ es-errors: 1.3.0
is-regex: 1.1.4
dev: true
@@ -3921,51 +5152,95 @@ packages:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
dev: true
- /scheduler@0.23.0:
- resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==}
+ /sander@0.5.1:
+ resolution: {integrity: sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA==}
dependencies:
- loose-envify: 1.4.0
- dev: false
+ es6-promise: 3.3.1
+ graceful-fs: 4.2.11
+ mkdirp: 0.5.6
+ rimraf: 2.7.1
+ dev: true
+
+ /sanitize-filename@1.6.3:
+ resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==}
+ dependencies:
+ truncate-utf8-bytes: 1.0.2
+ dev: true
+
+ /sax@1.3.0:
+ resolution: {integrity: sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==}
+ dev: true
+
+ /semver-compare@1.0.0:
+ resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==}
+ requiresBuild: true
+ dev: true
+ optional: true
/semver@5.7.2:
resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==}
+ hasBin: true
dev: true
/semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
dev: true
- /semver@7.5.4:
- resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
+ /semver@7.6.0:
+ resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
engines: {node: '>=10'}
+ hasBin: true
dependencies:
lru-cache: 6.0.0
- dev: true
- /sentence-case@2.1.1:
- resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==}
+ /serialize-error@7.0.1:
+ resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
+ engines: {node: '>=10'}
+ requiresBuild: true
dependencies:
- no-case: 2.3.2
- upper-case-first: 1.1.2
+ type-fest: 0.13.1
+ dev: true
+ optional: true
+
+ /set-blocking@2.0.0:
+ resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
dev: true
- /set-function-length@1.1.1:
- resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==}
+ /set-cookie-parser@2.6.0:
+ resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
+ dev: true
+
+ /set-function-length@1.2.1:
+ resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.1
- get-intrinsic: 1.2.2
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.4
gopd: 1.0.1
- has-property-descriptors: 1.0.1
+ has-property-descriptors: 1.0.2
dev: true
/set-function-name@2.0.1:
resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==}
engines: {node: '>= 0.4'}
dependencies:
- define-data-property: 1.1.1
+ define-data-property: 1.1.4
functions-have-names: 1.2.3
- has-property-descriptors: 1.0.1
+ has-property-descriptors: 1.0.2
+ dev: true
+
+ /setprototypeof@1.0.3:
+ resolution: {integrity: sha512-9jphSf3UbIgpOX/RKvX02iw/rN2TKdusnsPpGfO/rkcsrd+IRqgHZb4VGnmL0Cynps8Nj2hN45wsi30BzrHDIw==}
+ dev: true
+
+ /shebang-command@1.2.0:
+ resolution: {integrity: sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ shebang-regex: 1.0.0
dev: true
/shebang-command@2.0.0:
@@ -3973,18 +5248,27 @@ packages:
engines: {node: '>=8'}
dependencies:
shebang-regex: 3.0.0
+
+ /shebang-regex@1.0.0:
+ resolution: {integrity: sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==}
+ engines: {node: '>=0.10.0'}
dev: true
/shebang-regex@3.0.0:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
+
+ /shell-quote@1.8.1:
+ resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
dev: true
- /side-channel@1.0.4:
- resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==}
+ /side-channel@1.0.5:
+ resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==}
+ engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
object-inspect: 1.13.1
dev: true
@@ -3992,98 +5276,146 @@ packages:
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
dev: true
+ /signal-exit@4.1.0:
+ resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /simple-update-notifier@2.0.0:
+ resolution: {integrity: sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==}
+ engines: {node: '>=10'}
+ dependencies:
+ semver: 7.6.0
+ dev: true
+
+ /sirv@2.0.4:
+ resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==}
+ engines: {node: '>= 10'}
+ dependencies:
+ '@polka/url': 1.0.0-next.24
+ mrmime: 2.0.0
+ totalist: 3.0.1
+ dev: true
+
/slash@3.0.0:
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
engines: {node: '>=8'}
- dev: true
- /slash@4.0.0:
- resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
- engines: {node: '>=12'}
+ /slice-ansi@3.0.0:
+ resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
+ engines: {node: '>=8'}
+ requiresBuild: true
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
dev: true
+ optional: true
/smart-buffer@4.2.0:
resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==}
engines: {node: '>= 6.0.0', npm: '>= 3.0.0'}
+ requiresBuild: true
dev: true
+ optional: true
- /snake-case@2.1.0:
- resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==}
+ /smartwrap@2.0.2:
+ resolution: {integrity: sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==}
+ engines: {node: '>=6'}
+ hasBin: true
dependencies:
- no-case: 2.3.2
+ array.prototype.flat: 1.3.2
+ breakword: 1.0.6
+ grapheme-splitter: 1.0.4
+ strip-ansi: 6.0.1
+ wcwidth: 1.0.1
+ yargs: 15.4.1
dev: true
- /socks-proxy-agent@8.0.1:
- resolution: {integrity: sha512-59EjPbbgg8U3x62hhKOFVAmySQUcfRQ4C7Q/D5sEHnZTQRrQlNKINks44DMR1gwXp0p4LaVIeccX2KHTTcHVqQ==}
- engines: {node: '>= 14'}
+ /sorcery@0.11.0:
+ resolution: {integrity: sha512-J69LQ22xrQB1cIFJhPfgtLuI6BpWRiWu1Y3vSsIwK/eAScqJxd/+CJlUuHQRdX2C9NGFamq+KqNywGgaThwfHw==}
+ hasBin: true
dependencies:
- agent-base: 7.1.0
- debug: 4.3.4
- socks: 2.7.1
- transitivePeerDependencies:
- - supports-color
- dev: true
-
- /socks@2.7.1:
- resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==}
- engines: {node: '>= 10.13.0', npm: '>= 3.0.0'}
- dependencies:
- ip: 2.0.0
- smart-buffer: 4.2.0
- dev: true
-
- /sort-object-keys@1.1.3:
- resolution: {integrity: sha512-855pvK+VkU7PaKYPc+Jjnmt4EzejQHyhhF33q31qG8x7maDzkeFhAAThdCYay11CISO+qAMwjOBP+fPZe0IPyg==}
- dev: true
-
- /sort-package-json@2.6.0:
- resolution: {integrity: sha512-XSQ+lY9bAYA8ZsoChcEoPlgcSMaheziEp1beox1JVxy1SV4F2jSq9+h2rJ+3mC/Dhu9Ius1DLnInD5AWcsDXZw==}
- dependencies:
- detect-indent: 7.0.1
- detect-newline: 4.0.1
- get-stdin: 9.0.0
- git-hooks-list: 3.1.0
- globby: 13.2.2
- is-plain-obj: 4.1.0
- sort-object-keys: 1.1.3
+ '@jridgewell/sourcemap-codec': 1.4.15
+ buffer-crc32: 0.2.13
+ minimist: 1.2.8
+ sander: 0.5.1
dev: true
/source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
- dev: false
+
+ /source-map-support@0.5.21:
+ resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==}
+ dependencies:
+ buffer-from: 1.1.2
+ source-map: 0.6.1
+ dev: true
/source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
dev: true
+ /spawn-command@0.0.2:
+ resolution: {integrity: sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==}
+ dev: true
+
+ /spawndamnit@2.0.0:
+ resolution: {integrity: sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==}
+ dependencies:
+ cross-spawn: 5.1.0
+ signal-exit: 3.0.7
+ dev: true
+
/spdx-correct@3.2.0:
resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==}
dependencies:
spdx-expression-parse: 3.0.1
- spdx-license-ids: 3.0.16
+ spdx-license-ids: 3.0.17
dev: true
- /spdx-exceptions@2.3.0:
- resolution: {integrity: sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==}
+ /spdx-exceptions@2.5.0:
+ resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==}
dev: true
/spdx-expression-parse@3.0.1:
resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==}
dependencies:
- spdx-exceptions: 2.3.0
- spdx-license-ids: 3.0.16
+ spdx-exceptions: 2.5.0
+ spdx-license-ids: 3.0.17
dev: true
- /spdx-license-ids@3.0.16:
- resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==}
+ /spdx-license-ids@3.0.17:
+ resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==}
dev: true
- /streamsearch@1.1.0:
- resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
- engines: {node: '>=10.0.0'}
- dev: false
+ /sprintf-js@1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ dev: true
+
+ /sprintf-js@1.1.3:
+ resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==}
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /stat-mode@1.0.0:
+ resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==}
+ engines: {node: '>= 6'}
+ dev: true
+
+ /statuses@1.5.0:
+ resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
+ engines: {node: '>= 0.6'}
+ dev: true
+
+ /stream-transform@2.1.3:
+ resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==}
+ dependencies:
+ mixme: 0.5.10
+ dev: true
/string-width@4.2.3:
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
@@ -4094,49 +5426,38 @@ packages:
strip-ansi: 6.0.1
dev: true
- /string.prototype.matchall@4.0.10:
- resolution: {integrity: sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==}
+ /string-width@5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
dependencies:
- call-bind: 1.0.5
- define-properties: 1.2.1
- es-abstract: 1.22.3
- get-intrinsic: 1.2.2
- has-symbols: 1.0.3
- internal-slot: 1.0.6
- regexp.prototype.flags: 1.5.1
- set-function-name: 2.0.1
- side-channel: 1.0.4
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.1.0
dev: true
/string.prototype.trim@1.2.8:
resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
- es-abstract: 1.22.3
+ es-abstract: 1.22.4
dev: true
/string.prototype.trimend@1.0.7:
resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
- es-abstract: 1.22.3
+ es-abstract: 1.22.4
dev: true
/string.prototype.trimstart@1.0.7:
resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
define-properties: 1.2.1
- es-abstract: 1.22.3
- dev: true
-
- /string_decoder@1.3.0:
- resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
- dependencies:
- safe-buffer: 5.2.1
+ es-abstract: 1.22.4
dev: true
/strip-ansi@6.0.1:
@@ -4144,6 +5465,12 @@ packages:
engines: {node: '>=8'}
dependencies:
ansi-regex: 5.0.1
+
+ /strip-ansi@7.1.0:
+ resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-regex: 6.0.1
dev: true
/strip-bom@3.0.0:
@@ -4151,16 +5478,6 @@ packages:
engines: {node: '>=4'}
dev: true
- /strip-final-newline@2.0.0:
- resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
- engines: {node: '>=6'}
- dev: true
-
- /strip-final-newline@3.0.0:
- resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
- engines: {node: '>=12'}
- dev: true
-
/strip-indent@3.0.0:
resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
engines: {node: '>=8'}
@@ -4168,32 +5485,18 @@ packages:
min-indent: 1.0.1
dev: true
- /strip-json-comments@2.0.1:
- resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
- engines: {node: '>=0.10.0'}
- dev: true
-
/strip-json-comments@3.1.1:
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
engines: {node: '>=8'}
- dev: true
- /styled-jsx@5.1.1(react@18.2.0):
- resolution: {integrity: sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==}
- engines: {node: '>= 12.0.0'}
- peerDependencies:
- '@babel/core': '*'
- babel-plugin-macros: '*'
- react: '>= 16.8.0 || 17.x.x || ^18.0.0-0'
- peerDependenciesMeta:
- '@babel/core':
- optional: true
- babel-plugin-macros:
- optional: true
+ /sumchecker@3.0.1:
+ resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==}
+ engines: {node: '>= 8.0'}
dependencies:
- client-only: 0.0.1
- react: 18.2.0
- dev: false
+ debug: 4.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
/supports-color@5.5.0:
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
@@ -4207,6 +5510,12 @@ packages:
engines: {node: '>=8'}
dependencies:
has-flag: 4.0.0
+
+ /supports-color@8.1.1:
+ resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ has-flag: 4.0.0
dev: true
/supports-preserve-symlinks-flag@1.0.0:
@@ -4214,55 +5523,175 @@ packages:
engines: {node: '>= 0.4'}
dev: true
- /swap-case@1.1.2:
- resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==}
+ /svelte-check@3.6.0(@babel/core@7.23.9)(postcss@8.4.35)(svelte@4.2.7):
+ resolution: {integrity: sha512-8VfqhfuRJ1sKW+o8isH2kPi0RhjXH1nNsIbCFGyoUHG+ZxVxHYRKcb+S8eaL/1tyj3VGvWYx3Y5+oCUsJgnzcw==}
+ hasBin: true
+ peerDependencies:
+ svelte: ^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0
dependencies:
- lower-case: 1.1.4
- upper-case: 1.1.3
+ '@jridgewell/trace-mapping': 0.3.20
+ chokidar: 3.6.0
+ fast-glob: 3.3.1
+ import-fresh: 3.3.0
+ picocolors: 1.0.0
+ sade: 1.8.1
+ svelte: 4.2.7
+ svelte-preprocess: 5.1.3(@babel/core@7.23.9)(postcss@8.4.35)(svelte@4.2.7)(typescript@5.3.3)
+ typescript: 5.3.3
+ transitivePeerDependencies:
+ - '@babel/core'
+ - coffeescript
+ - less
+ - postcss
+ - postcss-load-config
+ - pug
+ - sass
+ - stylus
+ - sugarss
dev: true
- /synckit@0.8.5:
- resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==}
- engines: {node: ^14.18.0 || >=16.0.0}
+ /svelte-eslint-parser@0.33.1(svelte@4.2.7):
+ resolution: {integrity: sha512-vo7xPGTlKBGdLH8T5L64FipvTrqv3OQRx9d2z5X05KKZDlF4rQk8KViZO4flKERY+5BiVdOh7zZ7JGJWo5P0uA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ svelte: ^3.37.0 || ^4.0.0
+ peerDependenciesMeta:
+ svelte:
+ optional: true
dependencies:
- '@pkgr/utils': 2.4.2
- tslib: 2.6.2
+ eslint-scope: 7.2.2
+ eslint-visitor-keys: 3.4.3
+ espree: 9.6.1
+ postcss: 8.4.35
+ postcss-scss: 4.0.9(postcss@8.4.35)
+ svelte: 4.2.7
+
+ /svelte-hmr@0.15.3(svelte@4.2.7):
+ resolution: {integrity: sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==}
+ engines: {node: ^12.20 || ^14.13.1 || >= 16}
+ peerDependencies:
+ svelte: ^3.19.0 || ^4.0.0
+ dependencies:
+ svelte: 4.2.7
dev: true
- /tapable@2.2.1:
- resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
- engines: {node: '>=6'}
+ /svelte-preprocess@5.1.3(@babel/core@7.23.9)(postcss@8.4.35)(svelte@4.2.7)(typescript@5.3.3):
+ resolution: {integrity: sha512-xxAkmxGHT+J/GourS5mVJeOXZzne1FR5ljeOUAMXUkfEhkLEllRreXpbl3dIYJlcJRfL1LO1uIAPpBpBfiqGPw==}
+ engines: {node: '>= 16.0.0', pnpm: ^8.0.0}
+ requiresBuild: true
+ 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 || ^5.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 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.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
+ dependencies:
+ '@babel/core': 7.23.9
+ '@types/pug': 2.0.10
+ detect-indent: 6.1.0
+ magic-string: 0.30.7
+ postcss: 8.4.35
+ sorcery: 0.11.0
+ strip-indent: 3.0.0
+ svelte: 4.2.7
+ typescript: 5.3.3
+ dev: true
+
+ /svelte2tsx@0.6.27(svelte@4.2.7)(typescript@5.3.3):
+ resolution: {integrity: sha512-E1uPW1o6VsbRz+nUk3fznZ2lSmCITAJoNu8AYefWSvIwE2pSB01i5sId4RMbWNzfcwCQl1DcgGShCPcldl4rvg==}
+ peerDependencies:
+ svelte: ^3.55 || ^4.0.0-next.0 || ^4.0 || ^5.0.0-next.0
+ typescript: ^4.9.4 || ^5.0.0
+ dependencies:
+ dedent-js: 1.0.1
+ pascal-case: 3.1.2
+ svelte: 4.2.7
+ typescript: 5.3.3
+ dev: true
+
+ /svelte@4.2.7:
+ resolution: {integrity: sha512-UExR1KS7raTdycsUrKLtStayu4hpdV3VZQgM0akX8XbXgLBlosdE/Sf3crOgyh9xIjqSYB3UEBuUlIQKRQX2hg==}
+ engines: {node: '>=16'}
+ dependencies:
+ '@ampproject/remapping': 2.2.1
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.20
+ acorn: 8.10.0
+ aria-query: 5.3.0
+ axobject-query: 3.2.1
+ code-red: 1.0.4
+ css-tree: 2.3.1
+ estree-walker: 3.0.3
+ is-reference: 3.0.2
+ locate-character: 3.0.0
+ magic-string: 0.30.7
+ periscopic: 3.1.0
+
+ /tar@6.2.0:
+ resolution: {integrity: sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ chownr: 2.0.0
+ fs-minipass: 2.1.0
+ minipass: 5.0.0
+ minizlib: 2.1.2
+ mkdirp: 1.0.4
+ yallist: 4.0.0
+ dev: true
+
+ /temp-file@3.4.0:
+ resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==}
+ dependencies:
+ async-exit-hook: 2.0.1
+ fs-extra: 10.1.0
+ dev: true
+
+ /term-size@2.2.1:
+ resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==}
+ engines: {node: '>=8'}
dev: true
/text-table@0.2.0:
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
- dev: true
- /through@2.3.8:
- resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
- dev: true
-
- /tinycolor2@1.6.0:
- resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
- dev: true
-
- /tinygradient@1.1.5:
- resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==}
+ /tiny-glob@0.2.9:
+ resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
dependencies:
- '@types/tinycolor2': 1.4.6
- tinycolor2: 1.6.0
+ globalyzer: 0.1.0
+ globrex: 0.1.2
dev: true
- /title-case@2.1.1:
- resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==}
+ /tmp-promise@3.0.3:
+ resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==}
dependencies:
- no-case: 2.3.2
- upper-case: 1.1.3
- dev: true
-
- /titleize@3.0.0:
- resolution: {integrity: sha512-KxVu8EYHDPBdUYdKZdKtU2aj2XfEx9AfjXxE/Aj0vT06w2icA09Vus1rh6eSu1y01akYg6BjIK/hxyLJINoMLQ==}
- engines: {node: '>=12'}
+ tmp: 0.2.1
dev: true
/tmp@0.0.33:
@@ -4272,6 +5701,13 @@ packages:
os-tmpdir: 1.0.2
dev: true
+ /tmp@0.2.1:
+ resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==}
+ engines: {node: '>=8.17.0'}
+ dependencies:
+ rimraf: 3.0.2
+ dev: true
+
/to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
@@ -4282,131 +5718,119 @@ packages:
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
+
+ /totalist@3.0.1:
+ resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
+ engines: {node: '>=6'}
dev: true
- /ts-api-utils@1.0.2(typescript@5.3.3):
- resolution: {integrity: sha512-Cbu4nIqnEdd+THNEsBdkolnOXhg0I8XteoHaEKgvsxpsbWda4IsUut2c187HxywQCvveojow0Dgw/amxtSKVkQ==}
- engines: {node: '>=16.13.0'}
+ /tree-kill@1.2.2:
+ resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
+ hasBin: true
+ dev: true
+
+ /trim-newlines@3.0.1:
+ resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /trouter@2.0.1:
+ resolution: {integrity: sha512-kr8SKKw94OI+xTGOkfsvwZQ8mWoikZDd2n8XZHjJVZUARZT+4/VV6cacRS6CLsH9bNm+HFIPU1Zx4CnNnb4qlQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ matchit: 1.1.0
+ dev: true
+
+ /truncate-utf8-bytes@1.0.2:
+ resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==}
+ dependencies:
+ utf8-byte-length: 1.0.4
+ dev: true
+
+ /ts-api-utils@1.2.1(typescript@5.3.3):
+ resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==}
+ engines: {node: '>=16'}
peerDependencies:
typescript: '>=4.2.0'
dependencies:
typescript: 5.3.3
- dev: true
-
- /ts-node@10.9.1(@types/node@20.10.6)(typescript@5.3.3):
- resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==}
- peerDependencies:
- '@swc/core': '>=1.2.50'
- '@swc/wasm': '>=1.2.50'
- '@types/node': '*'
- typescript: '>=2.7'
- peerDependenciesMeta:
- '@swc/core':
- optional: true
- '@swc/wasm':
- optional: true
- dependencies:
- '@cspotcode/source-map-support': 0.8.1
- '@tsconfig/node10': 1.0.9
- '@tsconfig/node12': 1.0.11
- '@tsconfig/node14': 1.0.3
- '@tsconfig/node16': 1.0.4
- '@types/node': 20.10.6
- acorn: 8.10.0
- acorn-walk: 8.2.0
- arg: 4.1.3
- create-require: 1.1.1
- diff: 4.0.2
- make-error: 1.3.6
- typescript: 5.3.3
- v8-compile-cache-lib: 3.0.1
- yn: 3.1.1
- dev: true
-
- /tsconfig-paths@3.14.2:
- resolution: {integrity: sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==}
- dependencies:
- '@types/json5': 0.0.29
- json5: 1.0.2
- minimist: 1.2.8
- strip-bom: 3.0.0
- dev: true
-
- /tslib@1.14.1:
- resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
- dev: true
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
+ dev: true
- /tsutils@3.21.0(typescript@5.3.3):
- resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
- 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'
+ /tty-table@4.2.3:
+ resolution: {integrity: sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==}
+ engines: {node: '>=8.0.0'}
+ hasBin: true
dependencies:
- tslib: 1.14.1
- typescript: 5.3.3
+ chalk: 4.1.2
+ csv: 5.5.3
+ kleur: 4.1.5
+ smartwrap: 2.0.2
+ strip-ansi: 6.0.1
+ wcwidth: 1.0.1
+ yargs: 17.7.2
dev: true
- /turbo-darwin-64@1.10.16:
- resolution: {integrity: sha512-+Jk91FNcp9e9NCLYlvDDlp2HwEDp14F9N42IoW3dmHI5ZkGSXzalbhVcrx3DOox3QfiNUHxzWg4d7CnVNCuuMg==}
+ /turbo-darwin-64@1.12.4:
+ resolution: {integrity: sha512-dBwFxhp9isTa9RS/fz2gDVk5wWhKQsPQMozYhjM7TT4jTrnYn0ZJMzr7V3B/M/T8QF65TbniW7w1gtgxQgX5Zg==}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /turbo-darwin-arm64@1.10.16:
- resolution: {integrity: sha512-jqGpFZipIivkRp/i+jnL8npX0VssE6IAVNKtu573LXtssZdV/S+fRGYA16tI46xJGxSAivrZ/IcgZrV6Jk80bw==}
+ /turbo-darwin-arm64@1.12.4:
+ resolution: {integrity: sha512-1Uo5iI6xsJ1j9ObsqxYRsa3W26mEbUe6fnj4rQYV6kDaqYD54oAMJ6hM53q9rB8JvFxwdrUXGp3PwTw9A0qqkA==}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
- /turbo-linux-64@1.10.16:
- resolution: {integrity: sha512-PpqEZHwLoizQ6sTUvmImcRmACyRk9EWLXGlqceogPZsJ1jTRK3sfcF9fC2W56zkSIzuLEP07k5kl+ZxJd8JMcg==}
+ /turbo-linux-64@1.12.4:
+ resolution: {integrity: sha512-ONg2aSqKP7LAQOg7ysmU5WpEQp4DGNxSlAiR7um+LKtbmC/UxogbR5+T+Uuq6zGuQ5kJyKjWJ4NhtvUswOqBsA==}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /turbo-linux-arm64@1.10.16:
- resolution: {integrity: sha512-TMjFYz8to1QE0fKVXCIvG/4giyfnmqcQIwjdNfJvKjBxn22PpbjeuFuQ5kNXshUTRaTJihFbuuCcb5OYFNx4uw==}
+ /turbo-linux-arm64@1.12.4:
+ resolution: {integrity: sha512-9FPufkwdgfIKg/9jj87Cdtftw8o36y27/S2vLN7FTR2pp9c0MQiTBOLVYadUr1FlShupddmaMbTkXEhyt9SdrA==}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
- /turbo-windows-64@1.10.16:
- resolution: {integrity: sha512-+jsf68krs0N66FfC4/zZvioUap/Tq3sPFumnMV+EBo8jFdqs4yehd6+MxIwYTjSQLIcpH8KoNMB0gQYhJRLZzw==}
+ /turbo-windows-64@1.12.4:
+ resolution: {integrity: sha512-2mOtxHW5Vjh/5rDVu/aFwsMzI+chs8XcEuJHlY1sYOpEymYTz+u6AXbnzRvwZFMrLKr7J7fQOGl+v96sLKbNdA==}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /turbo-windows-arm64@1.10.16:
- resolution: {integrity: sha512-sKm3hcMM1bl0B3PLG4ifidicOGfoJmOEacM5JtgBkYM48ncMHjkHfFY7HrJHZHUnXM4l05RQTpLFoOl/uIo2HQ==}
+ /turbo-windows-arm64@1.12.4:
+ resolution: {integrity: sha512-nOY5wae9qnxPOpT1fRuYO0ks6dTwpKMPV6++VkDkamFDLFHUDVM/9kmD2UTeh1yyrKnrZksbb9zmShhmfj1wog==}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
- /turbo@1.10.16:
- resolution: {integrity: sha512-2CEaK4FIuSZiP83iFa9GqMTQhroW2QryckVqUydmg4tx78baftTOS0O+oDAhvo9r9Nit4xUEtC1RAHoqs6ZEtg==}
+ /turbo@1.12.4:
+ resolution: {integrity: sha512-yUJ7elEUSToiGwFZogXpYKJpQ0BvaMbkEuQECIWtkBLcmWzlMOt6bActsIm29oN83mRU0WbzGt4e8H1KHWedhg==}
hasBin: true
optionalDependencies:
- turbo-darwin-64: 1.10.16
- turbo-darwin-arm64: 1.10.16
- turbo-linux-64: 1.10.16
- turbo-linux-arm64: 1.10.16
- turbo-windows-64: 1.10.16
- turbo-windows-arm64: 1.10.16
+ turbo-darwin-64: 1.12.4
+ turbo-darwin-arm64: 1.12.4
+ turbo-linux-64: 1.12.4
+ turbo-linux-arm64: 1.12.4
+ turbo-windows-64: 1.12.4
+ turbo-windows-arm64: 1.12.4
dev: true
/type-check@0.4.0:
@@ -4414,17 +5838,15 @@ packages:
engines: {node: '>= 0.8.0'}
dependencies:
prelude-ls: 1.2.1
+
+ /type-fest@0.13.1:
+ resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==}
+ engines: {node: '>=10'}
dev: true
/type-fest@0.20.2:
resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
engines: {node: '>=10'}
- dev: true
-
- /type-fest@0.21.3:
- resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
- engines: {node: '>=10'}
- dev: true
/type-fest@0.6.0:
resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==}
@@ -4436,60 +5858,53 @@ packages:
engines: {node: '>=8'}
dev: true
- /typed-array-buffer@1.0.0:
- resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==}
+ /typed-array-buffer@1.0.1:
+ resolution: {integrity: sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
- get-intrinsic: 1.2.2
- is-typed-array: 1.1.12
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-typed-array: 1.1.13
dev: true
/typed-array-byte-length@1.0.0:
resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==}
engines: {node: '>= 0.4'}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
for-each: 0.3.3
has-proto: 1.0.1
- is-typed-array: 1.1.12
+ is-typed-array: 1.1.13
dev: true
/typed-array-byte-offset@1.0.0:
resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==}
engines: {node: '>= 0.4'}
dependencies:
- available-typed-arrays: 1.0.5
- call-bind: 1.0.5
+ available-typed-arrays: 1.0.6
+ call-bind: 1.0.7
for-each: 0.3.3
has-proto: 1.0.1
- is-typed-array: 1.1.12
+ is-typed-array: 1.1.13
dev: true
/typed-array-length@1.0.4:
resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
for-each: 0.3.3
- is-typed-array: 1.1.12
+ is-typed-array: 1.1.13
dev: true
/typescript@5.3.3:
resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==}
engines: {node: '>=14.17'}
- dev: true
-
- /uglify-js@3.17.4:
- resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==}
- engines: {node: '>=0.8.0'}
- requiresBuild: true
- dev: true
- optional: true
+ hasBin: true
/unbox-primitive@1.0.2:
resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
dependencies:
- call-bind: 1.0.5
+ call-bind: 1.0.7
has-bigints: 1.0.2
has-symbols: 1.0.3
which-boxed-primitive: 1.0.2
@@ -4504,56 +5919,38 @@ packages:
engines: {node: '>= 4.0.0'}
dev: true
- /universalify@2.0.0:
- resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==}
+ /universalify@2.0.1:
+ resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==}
engines: {node: '>= 10.0.0'}
dev: true
- /untildify@4.0.0:
- resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==}
- engines: {node: '>=8'}
+ /unpipe@1.0.0:
+ resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
+ engines: {node: '>= 0.8'}
dev: true
- /update-browserslist-db@1.0.13(browserslist@4.22.1):
+ /update-browserslist-db@1.0.13(browserslist@4.23.0):
resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==}
+ hasBin: true
peerDependencies:
browserslist: '>= 4.21.0'
dependencies:
- browserslist: 4.22.1
- escalade: 3.1.1
+ browserslist: 4.23.0
+ escalade: 3.1.2
picocolors: 1.0.0
dev: true
- /update-check@1.5.4:
- resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==}
- dependencies:
- registry-auth-token: 3.3.2
- registry-url: 3.1.0
- dev: true
-
- /upper-case-first@1.1.2:
- resolution: {integrity: sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==}
- dependencies:
- upper-case: 1.1.3
- dev: true
-
- /upper-case@1.1.3:
- resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==}
- dev: true
-
/uri-js@4.4.1:
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
dependencies:
- punycode: 2.3.0
+ punycode: 2.3.1
+
+ /utf8-byte-length@1.0.4:
+ resolution: {integrity: sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==}
dev: true
/util-deprecate@1.0.2:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
- dev: true
-
- /v8-compile-cache-lib@3.0.1:
- resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==}
- dev: true
/validate-npm-package-license@3.0.4:
resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==}
@@ -4562,20 +5959,63 @@ packages:
spdx-expression-parse: 3.0.1
dev: true
- /validate-npm-package-name@5.0.0:
- resolution: {integrity: sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ /verror@1.10.1:
+ resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==}
+ engines: {node: '>=0.6.0'}
+ requiresBuild: true
dependencies:
- builtins: 5.0.1
+ assert-plus: 1.0.0
+ core-util-is: 1.0.2
+ extsprintf: 1.4.1
+ dev: true
+ optional: true
+
+ /vite@5.0.11(@types/node@20.11.17):
+ resolution: {integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==}
+ engines: {node: ^18.0.0 || >=20.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': ^18.0.0 || >=20.0.0
+ less: '*'
+ lightningcss: ^1.21.0
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ lightningcss:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ '@types/node': 20.11.17
+ esbuild: 0.19.12
+ postcss: 8.4.35
+ rollup: 4.11.0
+ optionalDependencies:
+ fsevents: 2.3.3
dev: true
- /watchpack@2.4.0:
- resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==}
- engines: {node: '>=10.13.0'}
+ /vitefu@0.2.5(vite@5.0.11):
+ resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
+ peerDependencies:
+ vite: ^3.0.0 || ^4.0.0 || ^5.0.0
+ peerDependenciesMeta:
+ vite:
+ optional: true
dependencies:
- glob-to-regexp: 0.4.1
- graceful-fs: 4.2.11
- dev: false
+ vite: 5.0.11(@types/node@20.11.17)
+ dev: true
/wcwidth@1.0.1:
resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==}
@@ -4593,54 +6033,42 @@ packages:
is-symbol: 1.0.4
dev: true
- /which-builtin-type@1.1.3:
- resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==}
- engines: {node: '>= 0.4'}
- dependencies:
- function.prototype.name: 1.1.6
- has-tostringtag: 1.0.0
- is-async-function: 2.0.0
- is-date-object: 1.0.5
- is-finalizationregistry: 1.0.2
- is-generator-function: 1.0.10
- is-regex: 1.1.4
- is-weakref: 1.0.2
- isarray: 2.0.5
- which-boxed-primitive: 1.0.2
- which-collection: 1.0.1
- which-typed-array: 1.1.13
+ /which-module@2.0.1:
+ resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
dev: true
- /which-collection@1.0.1:
- resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==}
+ /which-pm@2.0.0:
+ resolution: {integrity: sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==}
+ engines: {node: '>=8.15'}
dependencies:
- is-map: 2.0.2
- is-set: 2.0.2
- is-weakmap: 2.0.1
- is-weakset: 2.0.2
+ load-yaml-file: 0.2.0
+ path-exists: 4.0.0
dev: true
- /which-typed-array@1.1.13:
- resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==}
+ /which-typed-array@1.1.14:
+ resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==}
engines: {node: '>= 0.4'}
dependencies:
- available-typed-arrays: 1.0.5
- call-bind: 1.0.5
+ available-typed-arrays: 1.0.6
+ call-bind: 1.0.7
for-each: 0.3.3
gopd: 1.0.1
- has-tostringtag: 1.0.0
+ has-tostringtag: 1.0.2
+ dev: true
+
+ /which@1.3.1:
+ resolution: {integrity: sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
dev: true
/which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
+ hasBin: true
dependencies:
isexe: 2.0.0
- dev: true
-
- /wordwrap@1.0.0:
- resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
- dev: true
/wrap-ansi@6.2.0:
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
@@ -4651,8 +6079,44 @@ packages:
strip-ansi: 6.0.1
dev: true
+ /wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ dev: true
+
+ /wrap-ansi@8.1.0:
+ resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-styles: 6.2.1
+ string-width: 5.1.2
+ strip-ansi: 7.1.0
+ dev: true
+
/wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ /xmlbuilder@15.1.1:
+ resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==}
+ engines: {node: '>=8.0'}
+ requiresBuild: true
+ dev: true
+
+ /y18n@4.0.3:
+ resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
+ dev: true
+
+ /y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /yallist@2.1.2:
+ resolution: {integrity: sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==}
dev: true
/yallist@3.1.1:
@@ -4661,18 +6125,61 @@ packages:
/yallist@4.0.0:
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+
+ /yaml@1.10.2:
+ resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
+ engines: {node: '>= 6'}
+
+ /yargs-parser@18.1.3:
+ resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ camelcase: 5.3.1
+ decamelize: 1.2.0
dev: true
- /yn@3.1.1:
- resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
- engines: {node: '>=6'}
+ /yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /yargs@15.4.1:
+ resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
+ engines: {node: '>=8'}
+ dependencies:
+ cliui: 6.0.0
+ decamelize: 1.2.0
+ find-up: 4.1.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ require-main-filename: 2.0.0
+ set-blocking: 2.0.0
+ string-width: 4.2.3
+ which-module: 2.0.1
+ y18n: 4.0.3
+ yargs-parser: 18.1.3
+ dev: true
+
+ /yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.1.2
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+ dev: true
+
+ /yauzl@2.10.0:
+ resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==}
+ dependencies:
+ buffer-crc32: 0.2.13
+ fd-slicer: 1.1.0
dev: true
/yocto-queue@0.1.0:
resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
engines: {node: '>=10'}
- dev: true
-
-settings:
- autoInstallPeers: true
- excludeLinksFromLockfile: false
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 3ff5faa..091d6e4 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -1,3 +1,3 @@
packages:
- - "apps/*"
+ - "examples/*"
- "packages/*"
diff --git a/tsconfig.json b/tsconfig.json
deleted file mode 100644
index c8a018d..0000000
--- a/tsconfig.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "extends": "@repo/typescript-config/base.json"
-}
diff --git a/turbo.json b/turbo.json
index 781f274..65c833c 100644
--- a/turbo.json
+++ b/turbo.json
@@ -1,14 +1,11 @@
{
"$schema": "https://turbo.build/schema.json",
- "globalDependencies": ["**/.env.*local"],
"pipeline": {
"build": {
"dependsOn": ["^build"],
- "outputs": [".next/**", "!.next/cache/**"]
- },
- "lint": {
- "dependsOn": ["^lint"]
+ "outputs": [".svelte-kit/**", ".vercel/**"]
},
+ "lint": {},
"dev": {
"cache": false,
"persistent": true