diff --git a/.claude/skills/keepsimple-style/SKILL.md b/.claude/skills/keepsimple-style/SKILL.md new file mode 100644 index 0000000..2af34e2 --- /dev/null +++ b/.claude/skills/keepsimple-style/SKILL.md @@ -0,0 +1,1144 @@ +--- +name: keepsimple-style +description: Apply the "keepsimple" design language — a Japanese wabi-sabi meets Western editorial aesthetic — to any frontend component, page, or UI. Use this skill whenever the user references the keepsimple brand, asks for a Japanese-minimalist web design with paper textures and kanji watermarks, wants the cream/terracotta/editorial aesthetic, or uploads screenshots of the keepsimple site. Also trigger when the user says "that design style from the screenshots", "the contributors page style", or "Japanese editorial minimalism". This skill produces HTML/CSS/JS or React code with the precise visual system including paper textures, faded kanji, crimson accents, and the wabi-sabi card grid. +--- + +# keepsimple Design Style + +A precise replication guide for the **keepsimple** visual language — Japanese wabi-sabi minimalism fused with Western editorial typography. + +## Core Aesthetic Identity + +**Mood**: Calm, scholarly, timeless. Like a well-worn Japanese notebook used by a Western academic. +**Key tension**: Eastern restraint + Western editorial structure. +**Signature**: Faded kanji watermarks on cards, paper texture overlay, sparse crimson accents. + +--- + +## Color System + +```css +:root { + /* Backgrounds — card bg must be noticeably lighter than base to create elevation without shadows */ + --bg-base: #ede8df; /* warm parchment — page background */ + --bg-card: #f5f1ea; /* lighter — card surface, visually "above" bg */ + --bg-card-active: #faf6ef; /* active/highlighted card */ + --bg-hero: #f2ede5; /* featured banner background */ + + /* Text — all values chosen for sufficient contrast (≥4.5:1 on card bg for body text) */ + --text-primary: #1c1c1a; /* near-black, warm — WCAG AAA on all bg */ + --text-secondary: #5c5650; /* warm mid-gray — body text, descriptions, ≥4.5:1 on card bg */ + --text-tertiary: #8a8480; /* lighter — captions, meta, ≥3:1 on card bg */ + + /* Accent */ + --accent: #b83232; /* muted crimson — the ONE color, use sparingly */ + --accent-light: #d4504a; /* slightly brighter variant */ + --accent-kanji: rgba(184, 50, 50, 0.15); /* faded kanji on inactive cards */ + --accent-kanji-active: rgba( + 184, + 50, + 50, + 0.5 + ); /* kanji on active/highlighted cards */ + + /* Borders & Dividers */ + --border: #ddd7ce; /* barely-there card borders */ + --border-strong: #c8c0b5; /* section dividers, rule lines */ + --divider-accent: #b83232; /* red rule lines under section headers */ +} +``` + +**Rules:** + +- Red (`--accent`) appears on: active card kanji, active card borders, section rule lines, bullet diamonds, link underlines, quote marks, button outlines +- Never use red for large fills — accent only, always sparse +- All grays must have warm undertones (never cool/blue-gray) +- Card elevation comes ONLY from the lighter bg color — **never use box-shadow** +- Contrast: `--text-secondary` must be ≥4.5:1 on `--bg-card`; `--text-tertiary` must be ≥3:1 + +--- + +## Typography + +```css +/* Import */ +@import url('https://fonts.googleapis.com/css2?family=Aboreto&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;0,8..60,600;1,8..60,400&family=Jost:wght@300;400;500;600&family=Yuji+Syuku&display=swap'); + +:root { + --font-display: 'Aboreto', Georgia, serif; /* page titles, card names */ + --font-body: 'Source Serif 4', Georgia, serif; /* body text, descriptions */ + --font-ui: 'Jost', system-ui, sans-serif; /* nav, labels, UI chrome */ + --font-japanese: 'Yuji Syuku', serif; /* kanji watermarks */ +} +``` + +If any of these fonts are unavailable (e.g. in a React artifact without external imports), ask the user for the font files or find and apply suitable alternatives. + +**Type Scale (base = 16px = 1rem):** + +| Token | Size | Usage | +| ------------- | ----------------------------- | ------------------------------------------------------------------------ | +| `--text-base` | `1rem` (16px) | Body text, descriptions — **minimum for content** | +| `--text-sm` | `0.875rem` (14px) | Nav links, compact UI — **absolute minimum** | +| `--text-caps` | `0.75rem` (12px) | **ONLY for all-caps labels** (section headers, card roles, pill buttons) | +| `--text-lg` | `1.125rem` (18px) | Slightly emphasized body | +| `--text-xl` | `1.25rem` (20px) | Panel headings | +| `--text-2xl` | `1.5rem` (24px) | Stat numbers, sub-titles | +| `--text-3xl` | `clamp(1.75rem, 3vw, 2.5rem)` | Page titles | + +**Minimum size rules:** + +- No text smaller than 14px (0.875rem) anywhere +- All body and content text must be at least 16px (1rem) +- 12px (0.75rem) is ONLY allowed for uppercase/all-caps labels and section headers +- Page titles and large text scale from the 16px base using the tokens above + +```css +:root { + --text-base: 1rem; + --text-sm: 0.875rem; + --text-caps: 0.75rem; + --text-lg: 1.125rem; + --text-xl: 1.25rem; + --text-2xl: 1.5rem; + --text-3xl: clamp(1.75rem, 3vw, 2.5rem); +} +``` + +```css +/* Page title (e.g. "CONTRIBUTORS") */ +.page-title { + font-family: var(--font-display); + font-size: var(--text-3xl); + font-weight: 400; + letter-spacing: 0.2em; + text-transform: uppercase; + color: var(--text-primary); +} + +/* Section label (e.g. "HEROES") — all-caps, so 12px is allowed */ +.section-label { + font-family: var(--font-ui); + font-size: var(--text-caps); + font-weight: 500; + letter-spacing: 0.2em; + text-transform: uppercase; + color: var(--text-primary); +} + +/* Contributor name */ +.card-name { + font-family: var(--font-display); + font-size: var(--text-base); + font-weight: 400; + color: var(--text-primary); + letter-spacing: 0.05em; + position: relative; + z-index: 1; +} + +/* Role / subtitle — all-caps, so 12px is allowed */ +.card-role { + font-family: var(--font-ui); + font-size: var(--text-caps); + font-weight: 400; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--text-tertiary); + text-align: center; + line-height: 1.5; + margin-top: 0.25rem; + position: relative; + z-index: 1; +} + +/* Body text */ +.body-text { + font-family: var(--font-body); + font-size: var(--text-base); + line-height: 1.75; + color: var(--text-secondary); +} +``` + +--- + +## Texture & Background + +The paper texture is a **user-provided asset** — a PNG file with built-in alpha transparency. It must NOT be generated via SVG filters or CSS noise. + +**IMPORTANT:** If the texture file is not already available in the project, ask the user for the "background paper texture" PNG file before applying it. The file is already semi-transparent — do NOT add opacity to the page-level texture. + +The texture is applied at **two levels**: + +### 1. Page-level texture (behind everything) + +```css +body::before { + content: ''; + position: fixed; + inset: 0; + background-image: url('path/to/landing-bg.png'); + background-repeat: repeat; + background-size: 400px auto; + pointer-events: none; + z-index: 1; + /* No opacity — the PNG is already semi-transparent */ +} +``` + +### 2. Card-level texture (on each elevated surface) + +Cards and panels sit above the page texture (`z-index: 2`) and get their own texture overlay via `::after`: + +```css +/* All elevated surfaces share this texture pattern */ +.contributor-card, +.hero-card, +.testimonial, +.detail-panel, +.sidebar-card, +.stat-card { + position: relative; + z-index: 2; +} + +.contributor-card::after, +.hero-card::after, +.testimonial::after, +.detail-panel::after, +.sidebar-card::after, +.stat-card::after { + content: ''; + position: absolute; + inset: 0; + background-image: url('path/to/landing-bg.png'); + background-repeat: repeat; + background-size: 400px auto; + pointer-events: none; + z-index: 0; + opacity: 0.75; /* slightly softer on cards than on page bg */ +} +``` + +**Z-index layering:** + +- `body::before` (page texture): `z-index: 1` +- Cards/panels: `z-index: 2` (above page texture) +- Card `::after` (card texture): `z-index: 0` (within card stacking context, behind card content) +- Card inner content (text, kanji, etc.): `z-index: 1` (within card stacking context, above card texture) + +All text and interactive elements inside textured containers must have `position: relative; z-index: 1` to sit above the card's `::after` texture. + +--- + +## Card Component + +The card is the core atom. It has a faded kanji watermark, name, and role. + +```html +
+ +

Artem

+

Engineering lead
[2020 - 2022]

+
+``` + +```css +.contributor-card { + position: relative; + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-end; + padding: 1.5rem 1rem 1.25rem; + min-height: 120px; + background: var(--bg-card); + border: 1px solid var(--border); + overflow: hidden; + cursor: pointer; + transition: + border-color 0.2s ease, + background 0.2s ease; + /* NO box-shadow — elevation comes from bg color difference only */ +} + +.contributor-card:hover, +.contributor-card[data-active='true'] { + border-color: var(--accent); + background: var(--bg-card-active); +} + +/* The kanji watermark */ +.kanji-bg { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-family: var(--font-japanese), serif; + font-size: 3.5rem; + color: var(--accent-kanji); + line-height: 1; + user-select: none; + transition: color 0.2s ease; + white-space: nowrap; +} + +.contributor-card:hover .kanji-bg, +.contributor-card[data-active='true'] .kanji-bg { + color: var(--accent-kanji-active); +} + +/* Active state: name in red */ +.contributor-card[data-active='true'] .card-name { + color: var(--accent); +} +``` + +**Card Grid:** + +```css +.cards-grid { + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: 0; /* no gap — cards share borders */ +} + +/* Cards share borders (collapse border trick) */ +.contributor-card { + margin: -0.5px; /* or use outline instead of border */ +} + +/* Responsive */ +@media (max-width: 768px) { + .cards-grid { + grid-template-columns: repeat(3, 1fr); + } +} +@media (max-width: 480px) { + .cards-grid { + grid-template-columns: repeat(2, 1fr); + } +} +``` + +--- + +## Section Header Pattern + +```html +
+

Heroes

+
+ +
+``` + +```css +.section-header { + display: flex; + align-items: center; + gap: 1rem; + margin-bottom: 1.5rem; +} + +.section-rule { + flex: 1; + height: 1px; + background: var(--border-strong); +} + +.pill-button { + font-family: var(--font-ui); + font-size: var(--text-caps); + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--text-primary); + background: transparent; + border: 1px solid var(--border-strong); + padding: 0.4rem 1rem; + cursor: pointer; + transition: + border-color 0.2s, + color 0.2s; +} + +.pill-button:hover { + border-color: var(--accent); + color: var(--accent); +} +``` + +--- + +## Page Title with Diamond Bullets + +```html +
+ +

Contributors

+ +
+

This project is the result of...

+``` + +```css +.page-heading { + display: flex; + align-items: center; + justify-content: center; + gap: 1rem; + margin-bottom: 1rem; +} + +.diamond { + color: var(--accent); + font-size: 1.5rem; + line-height: 1; +} + +.page-subtitle { + font-family: var(--font-body); + font-size: var(--text-base); + color: var(--text-secondary); + text-align: center; + max-width: 520px; + margin: 0 auto; + line-height: 1.75; +} +``` + +--- + +## Featured Hero / Slideshow Card + +```html +
+ +
+

Artem Alchangyan

+
+
+ + Specialization +
+ +
+
+ + +
+``` + +```css +.hero-card { + position: relative; + display: flex; + align-items: center; + background: var(--bg-card); + border: 1px solid var(--border); + min-height: 240px; + padding: 2.5rem 3.5rem; + overflow: hidden; +} + +.hero-content { + flex: 1; + position: relative; + z-index: 1; +} + +.hero-name { + font-family: var(--font-display); + font-size: clamp(1.5rem, 3vw, 2.25rem); + font-weight: 400; + margin-bottom: 1.25rem; + letter-spacing: 0.08em; +} + +.meta-label { + font-family: var(--font-body); + font-size: var(--text-base); + color: var(--text-secondary); +} + +.hero-kanji { + position: absolute; + right: 3rem; + top: 50%; + transform: translateY(-50%); + font-family: var(--font-japanese); + font-size: 8rem; + color: var(--accent-kanji); + user-select: none; + line-height: 1; + z-index: 1; +} + +.nav-arrow { + position: absolute; + top: 50%; + transform: translateY(-50%); + background: none; + border: none; + font-size: 1.75rem; + color: var(--text-tertiary); + cursor: pointer; + padding: 0.5rem; + z-index: 1; +} +.nav-arrow.left { + left: 0.75rem; +} +.nav-arrow.right { + right: 0.75rem; +} +``` + +--- + +## Navigation Bar + +```css +.navbar { + display: flex; + align-items: center; + padding: 0 2rem; + height: 52px; + background: var(--bg-base); + border-bottom: 1px solid var(--border); + position: sticky; + top: 0; + z-index: 100; +} + +.nav-logo { + font-family: var(--font-ui); + font-size: var(--text-sm); + font-weight: 400; + letter-spacing: 0.02em; + color: var(--text-primary); + margin-right: auto; +} + +.nav-logo strong { + font-weight: 600; +} + +.nav-links { + display: flex; + gap: 1.75rem; + list-style: none; + margin: 0; + padding: 0; +} + +.nav-link { + font-family: var(--font-ui); + font-size: var(--text-sm); + font-weight: 400; + color: var(--text-secondary); + text-decoration: none; + transition: color 0.15s; +} + +.nav-link:hover, +.nav-link.active { + color: var(--text-primary); +} +.nav-link.active { + text-decoration: underline; + text-underline-offset: 3px; +} +``` + +--- + +## Quote / Testimonial Block + +```html +
+

+ This is the first-of-its-kind, biggest library of nudging strategies based + on cognitive biases. +

+
+
+
+

Dan Ariely

+

+ Professor of psychology and behavioral economics at Duke University +

+
+
+
+``` + +```css +.testimonial { + background: var(--bg-card); + border: 1px solid var(--border); + padding: 2rem 2rem 1.5rem; + position: relative; +} + +.testimonial::before { + content: '\201C'; + font-family: var(--font-display); + font-size: 2.5rem; + color: var(--accent); + line-height: 1; + position: absolute; + top: 0.75rem; + left: 1.25rem; + z-index: 1; +} + +.testimonial-text { + font-family: var(--font-body); + font-size: var(--text-base); + color: var(--text-secondary); + line-height: 1.75; + margin-top: 1rem; + margin-left: 0.5rem; + position: relative; + z-index: 1; +} + +.author-avatar { + width: 42px; + height: 42px; + border-radius: 50%; + background: var(--bg-base); + display: flex; + align-items: center; + justify-content: center; + font-family: var(--font-japanese); + font-size: 1.25rem; + color: var(--accent); +} + +.author-name { + font-family: var(--font-ui); + font-size: var(--text-caps); + font-weight: 600; + letter-spacing: 0.1em; + text-transform: uppercase; + color: var(--text-primary); +} + +.author-title { + font-family: var(--font-body); + font-size: var(--text-sm); + color: var(--text-secondary); + line-height: 1.5; +} + +.testimonial-author { + display: flex; + align-items: center; + gap: 0.75rem; + margin-top: 1.25rem; + padding-top: 1rem; + border-top: 1px solid var(--border); + position: relative; + z-index: 1; +} +``` + +--- + +## Red Accent Divider + +Used before section headings like "UX Core", "Company Management": + +```css +.accent-rule { + width: 2.5rem; + height: 2px; + background: var(--accent); + margin-bottom: 0.75rem; +} +``` + +--- + +## Layout Wrapper + +```css +.page-wrapper { + max-width: 960px; + margin: 0 auto; + padding: 0 2rem; +} + +.section { + padding: 3.5rem 0; +} + +.section + .section { + padding-top: 0; +} +``` + +--- + +## Kanji Reference + +Common kanji used as card watermarks (romanized names → katakana): + +- A → ア  I → イ  U → ウ +- Ka → カ  Ki → キ  Ku → ク +- Sa → サ  Si/Shi → シ  Su → ス +- Ta → タ  Chi → チ  To → ト +- Na → ナ  Ni → ニ  Nu → ヌ +- Ha → ハ  Hi → ヒ  He → ヘ +- Ma → マ  Mi → ミ  Mo → モ +- Ya → ヤ  Yu → ユ  Yo → ヨ +- Ra → ラ  Ri → リ  Ru → ル  Re → レ +- Wa → ワ  Wo → ヲ  N → ン + +For compound names, use the first 1-2 characters of the name in katakana. + +For Japanese font, load from Google Fonts: + +```html + +``` + +--- + +## Do / Don't + +| ✅ Do | ❌ Don't | +| ----------------------------------------------------------------- | ------------------------------------------ | +| Warm off-white backgrounds | Pure white (#fff) backgrounds | +| Sparse red accents (borders, rules, kanji) | Red fills, red backgrounds | +| Wide letter-spacing on uppercase labels | Tight tracking on headings | +| Serif for display text (Aboreto), serif for body (Source Serif 4) | Sans-serif for everything | +| Faded kanji watermarks on cards (Yuji Syuku) | Decorative elements without the paper feel | +| Barely-there borders, no shadows | Heavy drop shadows or box-shadow | +| Paper texture overlay (user-provided PNG) | SVG noise filters or CSS-only grain | +| Minimalist nav with small text | Heavy navbar with dark background | +| Body text ≥ 16px, minimum 14px anywhere | Text smaller than 14px | +| 12px only for all-caps labels | 12px for body or mixed-case text | +| Card bg lighter than page bg for elevation | Shadows to create depth | +| Card texture at 0.75 opacity | Same opacity as page texture | +| Ask user for texture file if not available | Generate texture procedurally | + +--- + +## Quick Start Template + +```html + + + + + + + + + + + + + + +``` + +--- + +## Technical Rules + +Rules extracted from the actual codebase. Nothing here is about visual design — see the sections above for that. + +### Stack & Versions + +- Next.js 15.0.5 — Pages Router (`src/pages/`) +- React 19.0.3 +- TypeScript 5.2.2 +- Styling: SCSS Modules (`sass` 1.32.8) +- `classnames` 2.3.1 — used in nearly every component for conditional class joining +- `next-auth` 4.23.2 — authentication +- i18n: Next.js built-in (`en`, `ru`, `hy` locales, configured in `next.config.js`) +- `date-fns` 2.30.0 +- `@svgr/webpack` 8.1.0 — SVGs imported as React components +- `eslint-plugin-simple-import-sort` — enforced import ordering +- `prettier` 3.6.2 — single quotes, trailing commas, 2-space indent, no parens on single-arg arrows +- `husky` 9.1.7 + `lint-staged` — pre-commit hooks run ESLint and Prettier + +### Project Directory Map + +``` +src/ +├── api/ # Data-fetching functions (Strapi, auth, etc.) +├── assets/icons/ # SVG icon components (.tsx) and raw .svg files +├── components/ # Shared UI components (PascalCase folders) +├── constants/ # App-wide constants (lowercase files) +├── context/ # React context providers +├── data/ # Static i18n copy, organized by feature +├── hooks/ # Custom React hooks (use*.ts files) +├── layouts/ # Page-level layout components (PascalCase folders) +├── lib/ # Utility/helper functions +├── local-types/ # Shared TypeScript types +├── pages/ # Next.js Pages Router (file-based routing) +├── styles/ # Global SCSS (variables, animations, fonts, globals) +└── utils/ # Additional utility functions +``` + +**How pages, layouts, and components connect:** + +A page file in `src/pages/` fetches data (via `getServerSideProps`), then renders a layout from `src/layouts/`. The layout composes components from `src/components/`. + +```tsx +// src/pages/contributors.tsx +import ContributorsLayout from '@layouts/ContributorsLayout'; + +const Contributors: FC = ({ contributors }) => { + // ... + return ( + <> + + + + ); +}; + +export default Contributors; + +export async function getServerSideProps({ locale }) { + const contributors = await getContributors(locale); + return { props: { contributors } }; +} +``` + +There is also a root `Layout` component at `src/layouts/Layout.tsx` that wraps all pages (rendered in `_app.tsx`). It provides the `Header`, cookie box, and longevity-specific chrome. + +### Folder Structure for a New Component + +Components live in `src/components/`. Each component gets a PascalCase folder. The folder name matches the component name. + +**Standard files in a component folder:** + +1. **`ComponentName.tsx`** — the component itself. + +```tsx +// src/components/Spinner/Spinner.tsx +import type { FC } from 'react'; + +import useSpinner from '@hooks/useSpinner'; + +import styles from './Spinner.module.scss'; + +type SpinnerProps = { + visible?: boolean; +}; + +const Spinner: FC = ({ visible }) => { + const { isVisible } = useSpinner()[1]; + if (!isVisible && !visible) return null; + + return ( +
+
{/* ... */}
+
+ ); +}; + +export default Spinner; +``` + +2. **`ComponentName.module.scss`** — scoped styles for the component. + +```scss +// src/components/Spinner/Spinner.module.scss +.PreloaderContainer { + position: fixed; + // ... + + & .Preloader { + display: inline-block; + // ... + } +} +``` + +3. **`index.ts`** — barrel re-export. Always a default re-export. Every component in the repo follows this pattern. + +```ts +// src/components/Spinner/index.ts +import Spinner from './Spinner'; + +export default Spinner; +``` + +4. **`ComponentName.types.ts`** (optional) — used when the props type is large or shared. Most components define props inline in the `.tsx` file. Use a separate types file when the type is complex (10+ fields) or imported elsewhere. + +```ts +// src/components/Heading/Heading.types.ts +import { ReactNode } from 'react'; + +export type HeadingProps = { + text: string | ReactNode; + showLeftIcon?: boolean; + // ... +}; +``` + +**Sub-component folders** are nested inside their parent: `src/components/longevity/FlipCard/`, `src/components/contributors/Contributor/`. Feature-scoped components use a lowercase feature-name subfolder. + +### Folder Structure for a New Layout + +Layouts live in `src/layouts/`. They follow the same PascalCase folder convention as components. A layout is a page-level composition — it receives data from a page and arranges components. + +**Standard files in a layout folder:** + +1. **`LayoutName.tsx`** — the layout component. + +```tsx +// src/layouts/ContributorsLayout/ContributorsLayout.tsx +import { forwardRef } from 'react'; + +import Heading from '@components/Heading'; + +import type { ContributorsLayoutProps } from './ContributorsLayout.types'; + +import styles from './ContributorsLayout.module.scss'; + +const ContributorsLayout = forwardRef( + ({ contributorsData, isDarkTheme }, ref) => { + // ... + }, +); + +export default ContributorsLayout; +``` + +2. **`LayoutName.module.scss`** — scoped styles. + +3. **`index.ts`** — barrel re-export (same pattern as components). + +```ts +// src/layouts/ContributorsLayout/index.ts +import ContributorsLayout from './ContributorsLayout'; + +export default ContributorsLayout; +``` + +4. **`LayoutName.types.ts`** — props type. Most layouts use a separate types file because layout props tend to be large (page data shapes). + +```ts +// src/layouts/ContributorsLayout/ContributorsLayout.types.ts +export type ContributorsLayoutProps = { + isDarkTheme?: boolean; + contributorsData?: { + /* ... */ + }; +}; +``` + +Import layouts in pages via `@layouts/LayoutName`. + +### Folder Structure for i18n Data + +Static UI copy lives in `src/data/`. Each feature gets a lowercase folder with one file per locale plus an `index.ts` barrel. + +``` +src/data/contributors/ +├── en.ts # English strings +├── ru.ts # Russian strings +├── hy.ts # Armenian strings +└── index.ts # Barrel that combines all locales +``` + +```ts +// src/data/contributors/en.ts +const en = { + contributorsTxt: 'contributors', + activeHeroes: 'Currently active', + heroes: 'Heroes', + socialLinkTxt: 'Social Link', +}; +export default en; +``` + +```ts +// src/data/contributors/index.ts +import en from './en'; +import hy from './hy'; +import ru from './ru'; + +export default { en, ru, hy } as { + en: typeof en; + ru: typeof ru; + hy: typeof hy; +}; +``` + +Usage in components: `import contributors from '@data/contributors';` then access `contributors[locale]`. + +### Other Folders + +- **`src/api/`** — data-fetching functions. One file per domain (`contributors.ts`, `strapi.ts`, `auth.ts`, `tools.ts`). Lowercase filenames. No folders. +- **`src/hooks/`** — custom hooks. One hook per file. Filename matches hook name (`useSpinner.ts`, `useMobile.ts`). No subfolders. +- **`src/constants/`** — app-wide constants. Lowercase filenames (`common.ts`, `longevity.ts`, `tools.ts`). Named exports. +- **`src/lib/`** — utility/helper functions (`helpers.ts`, `cookies.ts`, `strapiUrl.ts`, `schema.tsx`). Lowercase filenames. No subfolders. +- **`src/utils/`** — additional utilities. Same conventions as `lib/`. +- **`src/context/`** — React context providers (`LongevityContext.tsx`). PascalCase filenames. +- **`src/local-types/`** — shared TypeScript types. Has a `pageTypes/` subfolder for page-specific types. Lowercase filenames (`global.ts`, `data.ts`). +- **`src/styles/`** — global SCSS. Contains `globals.scss`, `fonts.scss`, `_variables.scss`, `_animations.scss`, and page-level module files. Partials prefixed with `_`. +- **`src/assets/icons/`** — icon components as `.tsx` files (PascalCase: `GoogleIcon.tsx`, `Loader.tsx`) and raw `.svg` files. Has a `longevity/` subfolder. Imported via `@icons/*`. + +### Naming Conventions + +- **Component names**: PascalCase. `Accordion`, `Button`, `FlipCard`. +- **File names**: PascalCase, matching the component. `Accordion.tsx`, `Accordion.module.scss`. +- **Folder names**: PascalCase for component folders (`Button/`, `Modal/`). Lowercase for feature groupings (`longevity/`, `contributors/`, `tools/`). Prefix with underscore for page-specific groups (`_company-management/`). +- **SCSS class names**: The codebase mixes PascalCase (`.PreloaderContainer`, `.Accordion`, `.Title`) and camelCase (`.headingWrapper`, `.button`). Prefer PascalCase for new code — it's the more common pattern. +- **TypeScript types**: The codebase mixes `T`-prefix (`TButton`, `TInput`, `TRouter`) and `Props`-suffix (`SpinnerProps`, `AccordionProps`, `ModalProps`, `HeadingProps`). Prefer `ComponentNameProps` for new component prop types. +- **Interfaces**: Used sparingly. No `I` prefix. See `ActionsType` in `src/local-types/global.ts`. +- **Hooks**: `use*` prefix. Files live in `src/hooks/`. Examples: `useSpinner`, `useMobile`, `useClickOutside`, `useScreenSize`. +- **Constants**: Files in `src/constants/`. Named exports. Filenames are lowercase (`common.ts`, `longevity.ts`, `tools.ts`). +- **Event handlers**: `handle*` prefix inside components. Examples: `handleChange`, `handleClose`, `handleMouseEnter`, `handleKeyDown`. +- **Boolean props**: `is*`, `has*`, `show*`. Examples: `isOpen`, `isDarkTheme`, `isHovered`, `hasBorder`, `hasRedUnderline`, `showLeftIcon`, `showMessage`. + +### Component Rules + +- Function components only. No class components anywhere in the codebase. +- Every component uses `const ComponentName: FC` and `export default ComponentName`. +- Every `index.ts` does a default re-export: `import X from './X'; export default X;`. +- Props are typed inline in the `.tsx` file unless they're large — then use `ComponentName.types.ts`. +- Hooks live in `src/hooks/`, not inside component files. +- SCSS modules are imported as `styles` and accessed as `styles.ClassName` (e.g., `styles.PreloaderContainer`). +- Conditional classes use `classnames` (imported as `cn`): `cn(styles.Foo, { [styles.active]: isActive })`. +- `@svgr/webpack` is configured — SVGs can be imported as components from `@icons/*`. + +### TypeScript Rules + +- Strict mode is **off** (`"strict": false` in `tsconfig.json`). +- `noImplicitAny` is **off**. +- `any` is allowed — ESLint rule `@typescript-eslint/no-explicit-any` is set to `off`. +- `@ts-ignore` is allowed (ESLint warns on `@ts-expect-error` but allows `@ts-ignore`). +- `noUnusedLocals` is **on**. +- Props types are named `ComponentNameProps` (preferred) or `TComponentName` (legacy). +- Shared types live in `src/local-types/` (aliased as `@local-types/*`). + +### Imports + +Import order is enforced by `eslint-plugin-simple-import-sort`. The configured group order: + +1. Side-effect imports (`import 'foo'`) +2. Node built-ins (`node:url`) +3. Third-party packages (`react`, `next`, `classnames`) +4. `@styles/*` +5. `@constants/*` +6. `@local-types/*` +7. `@hooks/*` +8. `@lib/*` +9. `@api/*` +10. `@data/*` +11. `@icons/*` +12. `@components/*` +13. `@layouts/*` +14. Other `@/` or `src/` aliases +15. Relative imports (non-style) +16. Style imports (`.css`, `.scss`) + +**Path aliases** (from `tsconfig.json`): + +- `@components/*` → `src/components/*` +- `@data/*` → `src/data/*` +- `@constants/*` → `src/constants/*` +- `@hooks/*` → `src/hooks/*` +- `@layouts/*` → `src/layouts/*` +- `@lib/*` → `src/lib/*` +- `@api/*` → `src/api/*` +- `@styles/*` → `src/styles/*` +- `@local-types/*` → `src/local-types/*` +- `@utils/*` → `src/utils/*` +- `@icons/*` → `src/assets/icons/*` + +Use aliases for cross-folder imports. Use relative imports only within the same component folder (e.g., `./Button.module.scss`, `./Heading.types`). + +### What NOT to Do + +- Don't use styled-components, Emotion, or Tailwind — the project uses SCSS Modules exclusively. +- Don't use named exports in `index.ts` — every barrel file uses `export default`. +- Don't put new shared components outside `src/components/`. +- Don't put hooks outside `src/hooks/`. +- Don't put shared types outside `src/local-types/`. +- Don't import directly from a component's `.tsx` file across folders — go through the `index.ts` barrel. +- Don't use the App Router — the project uses the Pages Router (`src/pages/`). +- Don't skip the `index.ts` barrel file when creating a new component. +- Don't add new dependencies without checking `package.json` first — the project has a specific set of vetted libraries. diff --git a/.claude/skills/keepsimple/SKILL.md b/.claude/skills/keepsimple/SKILL.md new file mode 100644 index 0000000..c71c4a6 --- /dev/null +++ b/.claude/skills/keepsimple/SKILL.md @@ -0,0 +1,117 @@ +--- +name: keepsimpleoss +description: 'Use this skill when working in the KeepSimpleOSS repository. Trigger on ANY code change, file creation, component work, styling, routing, data, or i18n task in this repo. Read this before writing code. Covers: component structure, SCSS modules, Pages Router, static data, path aliases, import order, props typing, barrel files, asset paths, and design system rules.' +--- + +# KeepSimpleOSS — Quick Reference + +Full rules are in `AGENTS.md` at the repo root. Read it for details. This is the short version. + +> **Ignore all vibesuite files.** Work in progress, not a pattern source. + +--- + +## Before Writing Code + +1. Read `AGENTS.md` for the full rules. +2. If writing styles and the user didn't give explicit values, read `keepsimple-style.md` at the repo root. It defines the design system (colors, typography, textures, card patterns). Do not invent values or copy hardcoded hex from neighboring files. +3. If a pattern in this skill or `AGENTS.md` conflicts with what you see in the codebase, **`AGENTS.md` wins** for new code. + +--- + +## Component Checklist + +When creating or modifying a component: + +- [ ] Directory: `src/components/ComponentName/` (PascalCase) +- [ ] Files: `ComponentName.tsx`, `ComponentName.module.scss`, `index.ts` +- [ ] `index.ts` contains: `import X from './X'; export default X;` +- [ ] Props: `interface ComponentNameProps { ... }` declared inline above the component. No `T`-prefix. No `.types.ts` unless the type is shared. +- [ ] Component: `const ComponentName = ({ ... }: ComponentNameProps) => { ... }; export default ComponentName;` +- [ ] Styles: `import styles from './ComponentName.module.scss';` — use `cn()` for conditionals +- [ ] SVGs: import as React components via `@icons/*`, never `` +- [ ] If the component reads `localStorage` / `sessionStorage` / `window`, wrap consumer with `dynamic(..., { ssr: false })` or move access into `useEffect` + +--- + +## Styling Rules + +- **SCSS Modules only.** No Tailwind, no CSS-in-JS, no inline styles (except single dynamic properties). +- **Design system first.** Read `keepsimple-style.md` before writing new styles. The hardcoded values in existing SCSS files are legacy. +- **Class naming:** PascalCase for new code (`.Card`, `.Wrapper`, `.Title`). +- **Conditional classes:** `cn(styles.Card, { [styles.active]: isActive })`. +- **Global CSS** can only be imported in `_app.tsx`. + +--- + +## Import Order (ESLint-enforced) + +``` +Side-effects → Node built-ins → Third-party → +@styles → @constants → @local-types → @hooks → @lib → @api → @data → @icons → @components → @layouts → +Other @/ → Relative → Style imports (.scss) +``` + +Use path aliases for cross-folder imports. Relative imports only within the same component folder. + +--- + +## Pages & Routing + +- **Pages Router only.** Routes in `src/pages/`. No App Router. +- Prefer `getStaticProps` with `revalidate: 10` (ISR). +- Every page renders `` + a layout from `src/layouts/`. +- Data comes from Strapi, fetched in `getStaticProps`/`getServerSideProps`. + +--- + +## Static Data & i18n + +- Data in `src/data/{feature}/` as TypeScript objects (never JSON). +- Files: `en.ts`, `ru.ts`, optionally `hy.ts`, plus `index.ts` barrel. +- Armenian (`hy`) falls back to English. Not required in new data dirs. +- Consumed via `import data from '@data/feature'; data[locale]`. + +--- + +## State Management + +- React Context only. No Redux, Zustand, SWR, React Query. +- New contexts go in `src/components/Context/`, not `src/context/` (legacy). + +--- + +## New Utilities + +- Put new utilities in `src/lib/`, not `src/utils/` (legacy). +- One hook per file in `src/hooks/`, named `use*.ts`. + +--- + +## Key Gotchas + +1. `forceConsistentCasingInFileNames: false` — wrong casing works locally, breaks in CI. +2. `.env.example` has no docs — ask before assuming env values. +3. `public/keepsimple_/llms-full-pages/` is generated — don't hand-edit. +4. Some `index.ts` barrels are empty (0 bytes) — that's a bug, not a pattern. +5. `_variables.scss` contains reusable class snippets, not SCSS variables despite the name. +6. Production uses `assetPrefix: '/keepsimple_next'` — this only affects `_next/` assets, not `public/` paths. +7. `yarn` only. Never `npm install`. + +--- + +## Never Do + +- App Router, `'use client'`, `next/navigation` +- Tailwind, styled-components, CSS-in-JS +- Named exports in `index.ts` barrels +- State management libraries +- Testing frameworks beyond Cypress +- Import global CSS outside `_app.tsx` +- Invent design values — read `keepsimple-style.md` + +--- + +## When Uncertain + +Match the closest existing component. If `AGENTS.md` doesn't cover it, stop and ask. diff --git a/.gitignore b/.gitignore index ead9515..dbf294d 100644 --- a/.gitignore +++ b/.gitignore @@ -115,3 +115,4 @@ dist # Package lock file package-lock.json +.claude/settings.local.json diff --git a/.husky/pre-commit b/.husky/pre-commit old mode 100755 new mode 100644 diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..d0bc1e0 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,496 @@ +# AGENTS.md — KeepSimpleOSS + +How to work in this codebase. Read this before writing code. + +> **Ignore everything under `vibesuite`** — the route, components, data, API, and styles are work in progress and should not be referenced as patterns. + +--- + +## Stack + +| Layer | Choice | Version | +| --------------- | ----------------------------------------------- | --------------------------- | +| Framework | Next.js **Pages Router** | 15.0.5 | +| Language | TypeScript (strict off) | 5.2.2 | +| React | React + ReactDOM | 19.0.3 | +| Package manager | **yarn only** | v1 (yarn.lock is canonical) | +| Styling | SCSS Modules | sass 1.32.8 | +| Auth | NextAuth v4 | 4.23.2 | +| CMS | Strapi (external) | — | +| State | React Context only | — | +| Testing | Cypress E2E only | 14.5.2 | +| Linting | ESLint flat config + simple-import-sort | 9.x | +| Formatting | Prettier | 3.x | +| Git hooks | Husky + lint-staged | 9.x | +| SVG | @svgr/webpack (SVGs import as React components) | 8.x | + +**Do not add:** Redux, Zustand, Jotai, SWR, React Query, Jest, Vitest, component tests, Tailwind, styled-components, or App Router patterns. + +--- + +## Folder Structure + +``` +src/ + api/ # Fetch functions (one file per domain, lowercase) + assets/icons/ # SVG icons and icon components, grouped by feature + components/ # React components (see Component Pattern below) + constants/ # App-wide constants (named exports, lowercase files) + context/ # LEGACY — do not add new contexts here + data/ # Localized static data (see Static Data below) + hooks/ # Custom hooks (one per file, use* prefix) + layouts/ # Page layout wrappers + lib/ # Utilities and helpers (preferred for new code) + local-types/ # Shared TypeScript types + pages/ # Next.js routes + API routes + styles/ # Global SCSS (globals.scss, _variables.scss, _animations.scss) + utils/ # LEGACY — do not add new utilities here + +public/keepsimple_/ + assets/ # Static images, organized by feature + audio/ # Audio files + fonts/ # Custom font files +``` + +### lib vs utils + +`src/lib/` is preferred for new utilities. `src/utils/` is legacy (contains one file). Both stay, but new code goes in `src/lib/`. + +### Context location + +`src/components/Context/GlobalContext.ts` is the canonical location for context. `src/context/` holds `LongevityContext.tsx` — that is legacy. New contexts go in `src/components/Context/`. + +--- + +## Component Pattern + +### File structure + +Every component lives in its own directory with colocated files: + +``` +src/components/ComponentName/ + ComponentName.tsx # Component implementation + ComponentName.module.scss # Scoped styles + index.ts # Barrel: import X from './X'; export default X; +``` + +### Exports + +Always `export default`. Every `index.ts` does a default re-export. No named exports from barrel files. + +```ts +// index.ts +import Button from './Button'; +export default Button; +``` + +### Props typing + +Declare a `ComponentNameProps` interface **inline above the component** in the `.tsx` file. No `T`-prefix. No `.types.ts` sibling unless the type is shared across multiple files. + +```tsx +import cn from 'classnames'; + +import styles from './Card.module.scss'; + +interface CardProps { + title: string; + isActive?: boolean; + className?: string; +} + +const Card = ({ title, isActive, className }: CardProps) => { + return ( +
+ {title} +
+ ); +}; + +export default Card; +``` + +> The codebase currently mixes `TComponentName`, `ComponentNameProps`, and separate `.types.ts` files. Going forward, use the inline `ComponentNameProps` interface pattern shown above. Only create a `.types.ts` file when the same type is imported by other components. + +### Directory naming + +- **PascalCase** for standalone component directories: `Button/`, `Modal/`, `Heading/` +- **lowercase** for feature collection directories that group sub-components: `longevity/`, `articles/`, `contributors/`, `tools/` +- Underscore prefix for page-specific groups: `_company-management/` + +### Barrel files must not be empty + +The following `index.ts` files are currently empty (0 bytes) — these are bugs: + +- `src/layouts/SleepLayout/index.ts` +- `src/layouts/EnvironmentLayout/index.ts` +- `src/layouts/WorkoutLayout/index.ts` +- `src/layouts/LongevityExample/index.ts` +- `src/components/longevity/StudySection/index.ts` +- `src/components/longevity/EnvironmentSubSection/index.ts` +- `src/components/ContentGenerator/index.ts` +- `src/components/EmojiFall/index.ts` + +Every new `index.ts` must contain the default re-export pattern. + +--- + +## Styling + +### Source of truth + +1. If the user gives explicit visual instructions (colors, spacing, sizes), follow them exactly. +2. If they don't, defer to the `keepsimple-style` skill (`.claude/skills/keepsimple-style/SKILL.md`) and read it before writing styles. +3. **Do not invent values.** Do not copy hardcoded hex/px from neighboring components just because they exist. + The codebase has hardcoded colors, breakpoints, and spacing scattered across SCSS files. That is legacy, not a pattern to extend. New code aligns to `keepsimple-style.md`; old code stays as-is until touched. + New code aligns to the `keepsimple-style` skill; old code stays as-is until touched. + +### SCSS Modules only + +No Tailwind, no CSS-in-JS, no inline styles (except single dynamic properties like `style={{ color: dynamicValue }}`). + +```tsx +import cn from 'classnames'; +import styles from './Thing.module.scss'; + +
; +``` + +### Conditional classes + +Always use `classnames` (imported as `cn`): + +```tsx +className={cn(styles.Button, { + [styles.primary]: variant === 'primary', + [styles.disabled]: disabled, +})} +``` + +### SCSS class naming + +PascalCase for new code: `.Card`, `.Wrapper`, `.Title`. The codebase mixes PascalCase and camelCase — prefer PascalCase going forward. + +### Global styles + +- `src/styles/globals.scss` — resets, scrollbar, dark mode body, font-face declarations, video loader +- `src/styles/_variables.scss` — reusable class snippets (`.defaultTooltip`, `.section`, `.longevityContent`). **Not** SCSS variables despite the filename. +- `src/styles/_animations.scss` — keyframe animations and utility classes (`.animate-fadeIn`, etc.) + +Global CSS can **only** be imported in `src/pages/_app.tsx`. Do not import global `.scss` from components. + +### Dark mode + +Class-based: `document.body.classList.toggle('darkTheme')`. Managed by `useGlobals` hook with localStorage persistence. Components use `.darkTheme` modifier classes in their SCSS modules. + +### Breakpoints + +No shared breakpoint variables or mixins. Common values used in the codebase: 1440, 1140, 961, 900, 800, 768px. New code should use the design tokens from `keepsimple-style.md`. + +--- + +## Static Data + +### Format + +TypeScript objects only. Never JSON, never MDX. + +### Structure + +``` +src/data/{feature}/ + en.ts # English + ru.ts # Russian + hy.ts # Armenian (optional — falls back to English) + index.ts # Barrel +``` + +### Barrel pattern + +```ts +// src/data/navbar/index.ts +import en from './en'; +import hy from './hy'; +import ru from './ru'; + +export default { en, ru, hy } as { + en: typeof en; + ru: typeof ru; + hy: typeof hy; +}; +``` + +### Consumption + +```tsx +import navbar from '@data/navbar'; + +const { locale } = useRouter() as TRouter; +const { about, articles } = navbar[locale]; +``` + +--- + +## Locales + +Three locales: `en` (default), `ru`, `hy`. + +Armenian (`hy`) falls back to English at runtime. Most pages use this pattern: + +```ts +const currentLocale = locale === 'ru' ? 'ru' : 'en'; +``` + +When creating new data directories, `hy.ts` is not required. Only provide it if you have real Armenian translations. + +The i18n system is custom — no next-i18next, no react-intl. Just direct object lookup by `router.locale`. + +--- + +## Path Aliases & Import Order + +### Aliases (tsconfig.json) + +| Alias | Maps to | +| ---------------- | -------------------- | +| `@components/*` | `src/components/*` | +| `@layouts/*` | `src/layouts/*` | +| `@hooks/*` | `src/hooks/*` | +| `@data/*` | `src/data/*` | +| `@api/*` | `src/api/*` | +| `@lib/*` | `src/lib/*` | +| `@constants/*` | `src/constants/*` | +| `@styles/*` | `src/styles/*` | +| `@local-types/*` | `src/local-types/*` | +| `@utils/*` | `src/utils/*` | +| `@icons/*` | `src/assets/icons/*` | + +Use aliases for cross-folder imports. Use relative imports only within the same component folder (e.g., `./Button.module.scss`). + +### Import order (enforced by ESLint) + +``` +1. Side-effect imports +2. Node built-ins +3. Third-party packages (react, next, classnames...) +4. @styles +5. @constants +6. @local-types +7. @hooks +8. @lib +9. @api +10. @data +11. @icons +12. @components +13. @layouts +14. Other @/ aliases +15. Relative imports (non-style) +16. Style imports (.scss) +``` + +ESLint will error on wrong order. Run `eslint --fix` to auto-sort. + +--- + +## Pages & Routing + +### Pages Router only + +All routes live in `src/pages/`. Never use App Router patterns (`src/app/`, `'use client'`, `next/navigation`). + +### Page pattern + +```tsx +import { GetStaticProps } from 'next'; + +import { TStaticProps } from '@local-types/data'; + +import useGlobals from '@hooks/useGlobals'; + +import { getData } from '@api/strapi'; + +import SeoGenerator from '@components/SeoGenerator'; + +import FeatureLayout from '@layouts/FeatureLayout'; + +interface PageProps { + data?: any; +} + +const FeaturePage = ({ data }: PageProps) => { + const [{}, { isDarkTheme }] = useGlobals(); + + return ( + <> + + + + ); +}; + +export default FeaturePage; + +export const getStaticProps: GetStaticProps = async ({ + locale, +}: TStaticProps) => { + const data = await getData(locale); + return { + props: { locale, data }, + revalidate: 10, + }; +}; +``` + +### Data fetching + +Prefer `getStaticProps` with ISR (`revalidate: 10`). Use `getServerSideProps` only when data must be fresh on every request. Use `getStaticPaths` with `fallback: 'blocking'` for dynamic routes. + +### SEO + +Use the `SeoGenerator` component on every page. It handles ``, meta tags, Open Graph, Twitter cards, JSON-LD schema, and `hrefLang` alternates. It lives at `src/components/SeoGenerator/SeoGenerator.tsx`. + +### Layouts + +Every page wraps its content in a layout from `src/layouts/`. The root `Layout` component (applied in `_app.tsx`) handles nav, cookie consent, and route-based body classes. Feature-specific layouts nest inside it. + +### Client-only code + +Anything that touches `localStorage`, `sessionStorage`, or `window` at module top level will break SSR with hydration mismatches. Wrap such components with `dynamic(() => import('...'), { ssr: false })`, or move the access into a `useEffect`. Existing code uses both patterns — pick whichever fits the situation. + +--- + +## \_app.tsx — Global Concerns + +`src/pages/_app.tsx` is where these things live: + +- `SessionProvider` (NextAuth) +- `LongevityProvider` (context for longevity tool transitions) +- `GlobalContext.Provider` (account data, loader state, media refs) +- Root `Layout` wrapper +- Global SCSS imports (`globals.scss`) +- Google Analytics initialization (lazy-loaded via dynamic import) +- Mixpanel initialization (lazy-loaded via dynamic import) +- Route-change spinner logic +- Scroll style class toggling based on current route +- Body class toggling for dark theme and page-specific backgrounds +- Image preloading for longevity protocol assets + +Do not import global CSS anywhere except `_app.tsx`. + +--- + +## Asset Paths + +### assetPrefix quirk + +In production, `next.config.js` sets `assetPrefix: '/keepsimple_next'`. Locally it's empty. This only affects Next.js internal assets (`_next/`), not `public/` files. + +### Static assets + +All static files live under `public/keepsimple_/`. Reference them with `/keepsimple_/` prefix: + +``` +/keepsimple_/assets/longevity/diet/hearts/sugar.svg +/keepsimple_/fonts/Lato/Lato-Regular.woff2 +/keepsimple_/audio/eat_mushrooms.mp3 +``` + +`next.config.js` has rewrites that map `/assets/*` to `/keepsimple_/assets/*` (and similar for fonts, audio, static). Both paths work, but the canonical form is `/keepsimple_/`. + +### SVGs as components + +`@svgr/webpack` is configured. SVG files imported from `@icons/*` become React components: + +```tsx +import LongevityIcon from '@icons/navbar/longevity.svg'; + +<LongevityIcon className={styles.icon} />; +``` + +Never use `<img src={svg}>` for SVGs. The type declaration in `src/svg.d.ts` types all `.svg` imports as `FC<SVGProps<SVGSVGElement>>`. + +--- + +## Generated Files + +`public/keepsimple_/llms-full-pages/` contains files generated by `scripts/generate-llms-pages.ts`. Do not hand-edit these. They are rebuilt by the `generate:llms:pages` script and committed via CI (`.github/workflows/generate-llms.yml`). + +--- + +## Environment Variables + +`.env.example` lists 17 variables with no documentation. The file has no comments about which are required, which are optional, or what local development values should be. + +**Do not assume values.** Ask the developer before filling in `.env.local`. + +Key variables: + +- `NEXT_PUBLIC_STRAPI` / `STRAPI_URL` — Strapi CMS endpoint (required for data) +- `NEXTAUTH_SECRET` / `NEXTAUTH_URL` — NextAuth config (required for auth) +- `NEXT_PUBLIC_ENV` — `local` / `staging` / `prod` +- `NEXT_PUBLIC_INDEXING` — `on` / `off` (controls GA tracking) +- `NEXT_PUBLIC_DOMAIN` — canonical domain for SEO/OG tags + +The `next.config.js` loads env from `.env.{APP_ENV}` (e.g., `.env.local`, `.env.staging`, `.env.prod`). + +--- + +## Things to Never Do + +- Use the App Router, `'use client'`, or `next/navigation` +- Use Tailwind, styled-components, Emotion, or CSS-in-JS +- Use named exports in `index.ts` barrel files +- Add state management libraries (Redux, Zustand, Jotai, SWR, React Query) +- Add testing frameworks (Jest, Vitest, component testing) +- Import global CSS from anywhere except `_app.tsx` +- Use `<img src={...}>` for SVGs — import them as components +- Put new shared components outside `src/components/` +- Put new hooks outside `src/hooks/` +- Put new utilities in `src/utils/` — use `src/lib/` instead +- Put new contexts in `src/context/` — use `src/components/Context/` instead +- Skip the `index.ts` barrel when creating a component +- Invent colors, spacing, or font values — read the `keepsimple-style` skill first +- New code should use the design tokens from the `keepsimple-style` skill. + +--- + +## Gotchas + +### Case sensitivity + +`tsconfig.json` has `forceConsistentCasingInFileNames: false`. Imports with wrong casing will work on macOS/Windows but break in Linux CI. Always match the exact filename casing. + +### Duplicate TLocales type + +`TLocales` is defined in both `src/local-types/global.ts` and `src/local-types/data.ts`. They're identical. Import from `@local-types/data` for page props, `@local-types/global` for component router typing. + +### Some deep relative imports exist + +A few files use deep relative paths like `'../../../../lib/mixpanel'` instead of `@lib/mixpanel`. ESLint allows this but the convention is aliases. Use aliases for new code. + +### Mixpanel is lazily imported + +`_app.tsx` imports Mixpanel via `import('../../lib/mixpanel')` — a dynamic import with a relative path. This is intentional to keep it out of the initial bundle. + +### TODO comments reveal known issues + +Key ones: + +- `src/constants/tools.ts:20` — "review html, button with p and div" (HTML nesting issue) +- `src/context/LongevityContext.tsx:94` — "Fix heroReady logic" +- `src/components/SeoGenerator/SeoGenerator.tsx:96,137` — "HYTranslation TODO" (Armenian SEO incomplete) +- `src/components/UserProfile/UserProfile.tsx:30` — "This is incomplete" +- Multiple longevity components — "Move to constants" (image paths hardcoded) + +### Prettier and ESLint both run on commit + +Husky pre-commit runs lint-staged: ESLint `--fix` on `.ts`/`.tsx`, then Prettier on `.ts`/`.tsx`/`.scss`/`.json`/`.md`. Prettier config: single quotes, trailing commas, 2-space indent, `arrowParens: 'avoid'`. + +--- + +## When Uncertain + +- Find the closest existing component and match its structure. +- If a pattern in this file conflicts with what you see in the codebase, **this file wins** for new code. Old code stays as-is until touched. +- If a pattern isn't covered here at all, stop and ask before inventing one. diff --git a/public/keepsimple_/assets/favicon.svg b/public/keepsimple_/assets/favicon.svg index df54d13..c402971 100644 --- a/public/keepsimple_/assets/favicon.svg +++ b/public/keepsimple_/assets/favicon.svg @@ -1,5 +1,5 @@ -<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg"> - <rect width="512" height="512" fill="#272727"/> - <path d="M88.5678 95.8358V412.047H77.457V95.8358H88.5678ZM231.774 189.299L120.871 292.027L86.5103 321.465L82.3952 313.437L114.699 282.968L215.931 189.299H231.774ZM223.749 412.047L117.374 286.88L124.575 278.234L238.152 412.047H223.749Z" fill="white"/> - <path d="M410.059 355.228C410.059 349.189 408.55 343.219 405.533 337.317C402.515 331.416 396.685 325.995 388.043 321.054C379.539 316.113 366.988 311.927 350.39 308.496C338.045 305.751 327.003 302.663 317.264 299.232C307.662 295.801 299.569 291.683 292.984 286.88C286.4 282.076 281.394 276.312 277.964 269.587C274.535 262.862 272.82 254.902 272.82 245.707C272.82 237.472 274.604 229.718 278.17 222.444C281.874 215.032 287.086 208.582 293.807 203.092C300.666 197.465 308.896 193.073 318.498 189.917C328.237 186.76 339.142 185.182 351.213 185.182C368.36 185.182 383.037 188.133 395.245 194.034C407.59 199.798 416.987 207.69 423.434 217.709C430.018 227.728 433.31 239.05 433.31 251.677H408.825C408.825 243.991 406.561 236.717 402.035 229.855C397.645 222.993 391.13 217.366 382.488 212.974C373.984 208.582 363.559 206.386 351.213 206.386C338.456 206.386 328.1 208.308 320.144 212.15C312.188 215.993 306.359 220.865 302.655 226.767C299.089 232.668 297.305 238.776 297.305 245.089C297.305 250.03 298.06 254.559 299.569 258.676C301.215 262.656 304.095 266.362 308.21 269.793C312.463 273.224 318.498 276.449 326.317 279.469C334.136 282.488 344.286 285.439 356.769 288.321C374.738 292.301 389.415 297.173 400.8 302.937C412.323 308.564 420.827 315.564 426.314 323.936C431.801 332.171 434.544 342.189 434.544 353.992C434.544 363.188 432.624 371.628 428.783 379.314C424.942 386.862 419.387 393.381 412.117 398.871C404.984 404.361 396.342 408.616 386.192 411.635C376.178 414.654 364.93 416.164 352.448 416.164C333.655 416.164 317.744 413.076 304.713 406.9C291.818 400.587 282.011 392.352 275.289 382.196C268.705 371.903 265.413 360.992 265.413 349.463H289.898C290.721 360.992 294.356 370.119 300.803 376.844C307.25 383.431 315.137 388.098 324.465 390.842C333.93 393.587 343.257 394.96 352.448 394.96C365.067 394.96 375.63 393.107 384.134 389.401C392.639 385.696 399.086 380.824 403.475 374.785C407.865 368.746 410.059 362.227 410.059 355.228Z" fill="white"/> -</svg> +<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg"> + <rect width="512" height="512" fill="#272727"/> + <path d="M88.5678 95.8358V412.047H77.457V95.8358H88.5678ZM231.774 189.299L120.871 292.027L86.5103 321.465L82.3952 313.437L114.699 282.968L215.931 189.299H231.774ZM223.749 412.047L117.374 286.88L124.575 278.234L238.152 412.047H223.749Z" fill="white"/> + <path d="M410.059 355.228C410.059 349.189 408.55 343.219 405.533 337.317C402.515 331.416 396.685 325.995 388.043 321.054C379.539 316.113 366.988 311.927 350.39 308.496C338.045 305.751 327.003 302.663 317.264 299.232C307.662 295.801 299.569 291.683 292.984 286.88C286.4 282.076 281.394 276.312 277.964 269.587C274.535 262.862 272.82 254.902 272.82 245.707C272.82 237.472 274.604 229.718 278.17 222.444C281.874 215.032 287.086 208.582 293.807 203.092C300.666 197.465 308.896 193.073 318.498 189.917C328.237 186.76 339.142 185.182 351.213 185.182C368.36 185.182 383.037 188.133 395.245 194.034C407.59 199.798 416.987 207.69 423.434 217.709C430.018 227.728 433.31 239.05 433.31 251.677H408.825C408.825 243.991 406.561 236.717 402.035 229.855C397.645 222.993 391.13 217.366 382.488 212.974C373.984 208.582 363.559 206.386 351.213 206.386C338.456 206.386 328.1 208.308 320.144 212.15C312.188 215.993 306.359 220.865 302.655 226.767C299.089 232.668 297.305 238.776 297.305 245.089C297.305 250.03 298.06 254.559 299.569 258.676C301.215 262.656 304.095 266.362 308.21 269.793C312.463 273.224 318.498 276.449 326.317 279.469C334.136 282.488 344.286 285.439 356.769 288.321C374.738 292.301 389.415 297.173 400.8 302.937C412.323 308.564 420.827 315.564 426.314 323.936C431.801 332.171 434.544 342.189 434.544 353.992C434.544 363.188 432.624 371.628 428.783 379.314C424.942 386.862 419.387 393.381 412.117 398.871C404.984 404.361 396.342 408.616 386.192 411.635C376.178 414.654 364.93 416.164 352.448 416.164C333.655 416.164 317.744 413.076 304.713 406.9C291.818 400.587 282.011 392.352 275.289 382.196C268.705 371.903 265.413 360.992 265.413 349.463H289.898C290.721 360.992 294.356 370.119 300.803 376.844C307.25 383.431 315.137 388.098 324.465 390.842C333.93 393.587 343.257 394.96 352.448 394.96C365.067 394.96 375.63 393.107 384.134 389.401C392.639 385.696 399.086 380.824 403.475 374.785C407.865 368.746 410.059 362.227 410.059 355.228Z" fill="white"/> +</svg> diff --git a/public/keepsimple_/assets/icons/facebook-outlined-light.svg b/public/keepsimple_/assets/icons/facebook-outlined-light.svg index 5aec356..fd472f9 100644 --- a/public/keepsimple_/assets/icons/facebook-outlined-light.svg +++ b/public/keepsimple_/assets/icons/facebook-outlined-light.svg @@ -1,10 +1,10 @@ -<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> - <g clip-path="url(#clip0_45128_5327)"> - <path d="M16 0C7.16352 0 0 7.16352 0 16C0 23.5034 5.16608 29.7997 12.135 31.529V20.8896H8.83584V16H12.135V13.8931C12.135 8.44736 14.5997 5.9232 19.9462 5.9232C20.96 5.9232 22.7091 6.12224 23.4246 6.32064V10.7526C23.047 10.713 22.391 10.6931 21.5763 10.6931C18.953 10.6931 17.9392 11.687 17.9392 14.2707V16H23.1654L22.2675 20.8896H17.9392V31.8829C25.8618 30.9261 32.0006 24.1805 32.0006 16C32 7.16352 24.8365 0 16 0Z" fill="#384052"/> - </g> - <defs> - <clipPath id="clip0_45128_5327"> - <rect width="32" height="32" fill="white"/> - </clipPath> - </defs> -</svg> +<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> + <g clip-path="url(#clip0_45128_5327)"> + <path d="M16 0C7.16352 0 0 7.16352 0 16C0 23.5034 5.16608 29.7997 12.135 31.529V20.8896H8.83584V16H12.135V13.8931C12.135 8.44736 14.5997 5.9232 19.9462 5.9232C20.96 5.9232 22.7091 6.12224 23.4246 6.32064V10.7526C23.047 10.713 22.391 10.6931 21.5763 10.6931C18.953 10.6931 17.9392 11.687 17.9392 14.2707V16H23.1654L22.2675 20.8896H17.9392V31.8829C25.8618 30.9261 32.0006 24.1805 32.0006 16C32 7.16352 24.8365 0 16 0Z" fill="#384052"/> + </g> + <defs> + <clipPath id="clip0_45128_5327"> + <rect width="32" height="32" fill="white"/> + </clipPath> + </defs> +</svg> diff --git a/public/keepsimple_/assets/icons/linkedin-outlined-light.svg b/public/keepsimple_/assets/icons/linkedin-outlined-light.svg index 2878456..6c9ddf7 100644 --- a/public/keepsimple_/assets/icons/linkedin-outlined-light.svg +++ b/public/keepsimple_/assets/icons/linkedin-outlined-light.svg @@ -1,3 +1,3 @@ -<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> - <path d="M29.6313 0H2.3625C1.05625 0 0 1.03125 0 2.30625V29.6875C0 30.9625 1.05625 32 2.3625 32H29.6313C30.9375 32 32 30.9625 32 29.6938V2.30625C32 1.03125 30.9375 0 29.6313 0ZM9.49375 27.2687H4.74375V11.9937H9.49375V27.2687ZM7.11875 9.9125C5.59375 9.9125 4.3625 8.68125 4.3625 7.1625C4.3625 5.64375 5.59375 4.4125 7.11875 4.4125C8.6375 4.4125 9.86875 5.64375 9.86875 7.1625C9.86875 8.675 8.6375 9.9125 7.11875 9.9125ZM27.2687 27.2687H22.525V19.8438C22.525 18.075 22.4937 15.7937 20.0562 15.7937C17.5875 15.7937 17.2125 17.725 17.2125 19.7188V27.2687H12.475V11.9937H17.025V14.0813H17.0875C17.7188 12.8813 19.2688 11.6125 21.575 11.6125C26.3813 11.6125 27.2687 14.775 27.2687 18.8875V27.2687Z" fill="#384052"/> -</svg> +<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path d="M29.6313 0H2.3625C1.05625 0 0 1.03125 0 2.30625V29.6875C0 30.9625 1.05625 32 2.3625 32H29.6313C30.9375 32 32 30.9625 32 29.6938V2.30625C32 1.03125 30.9375 0 29.6313 0ZM9.49375 27.2687H4.74375V11.9937H9.49375V27.2687ZM7.11875 9.9125C5.59375 9.9125 4.3625 8.68125 4.3625 7.1625C4.3625 5.64375 5.59375 4.4125 7.11875 4.4125C8.6375 4.4125 9.86875 5.64375 9.86875 7.1625C9.86875 8.675 8.6375 9.9125 7.11875 9.9125ZM27.2687 27.2687H22.525V19.8438C22.525 18.075 22.4937 15.7937 20.0562 15.7937C17.5875 15.7937 17.2125 17.725 17.2125 19.7188V27.2687H12.475V11.9937H17.025V14.0813H17.0875C17.7188 12.8813 19.2688 11.6125 21.575 11.6125C26.3813 11.6125 27.2687 14.775 27.2687 18.8875V27.2687Z" fill="#384052"/> +</svg> diff --git a/public/keepsimple_/assets/icons/user-dropdown/log-out.svg b/public/keepsimple_/assets/icons/user-dropdown/log-out.svg new file mode 100644 index 0000000..65373d7 --- /dev/null +++ b/public/keepsimple_/assets/icons/user-dropdown/log-out.svg @@ -0,0 +1,9 @@ +<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path + d="M1.53375 13.4648C1.15014 13.4648 0.829861 13.3364 0.572917 13.0794C0.315972 12.8225 0.1875 12.5022 0.1875 12.1186V1.47776C0.1875 1.09415 0.315972 0.773869 0.572917 0.516925C0.829861 0.25998 1.15014 0.131508 1.53375 0.131508H6.87021V0.964841H1.53375C1.40542 0.964841 1.28785 1.01824 1.18104 1.12505C1.07424 1.23186 1.02083 1.34942 1.02083 1.47776V12.1186C1.02083 12.2469 1.07424 12.3645 1.18104 12.4713C1.28785 12.5781 1.40542 12.6315 1.53375 12.6315H6.87021V13.4648H1.53375ZM10.5721 9.74692L9.98708 9.14755L11.9198 7.21484H4.51437V6.38151H11.9198L9.98708 4.4488L10.5721 3.84942L13.5208 6.79817L10.5721 9.74692Z" + fill="black" fill-opacity="0.85" /> + <path + d="M0.983564 13.6242C0.782841 13.5619 0.560362 13.4244 0.398594 13.2537C0.300339 13.1527 0.21772 13.0387 0.158209 12.9288C0.109911 12.8362 0.14695 12.8763 0.117516 12.8114C0.0626738 12.6836 0.018037 12.5607 0.000112742 12.4264C-0.00532903 12.3822 0.0244628 12.4331 0.0187158 12.3872C0.00791672 12.2957 0.00335707 12.2066 0.00401436 12.1186C0.00519529 11.9803 0.00407186 11.8429 0.00690626 11.6995C0.0289213 10.5873 0.0368012 9.49411 0.0463654 8.36834C0.049501 7.99715 0.0685514 7.54592 0.0602203 7.16252C0.0592289 7.11776 0.0408039 7.14444 0.0392853 7.13593C0.0160374 7.00237 0.0532337 7.04677 0.0581756 6.95957C0.0776884 6.61345 0.0793855 6.22857 0.0722747 5.89548C0.0691956 5.75377 0.0325988 5.89585 0.0531402 5.75317C0.0545281 5.74326 0.0740941 5.77921 0.0761809 5.74035C0.0808745 5.65222 0.0773773 5.48501 0.0789275 5.4167C0.0820142 5.28507 0.0818173 5.26329 0.0820403 5.13877C0.0825154 4.96856 0.0922415 4.76611 0.0878081 4.58349C0.0868036 4.54451 0.0667463 4.59611 0.0633331 4.53395C0.0599254 4.47172 0.0616261 4.30711 0.0663543 4.25162C0.0710849 4.19611 0.0868496 4.21974 0.0904631 4.20992C0.120962 4.1291 0.078721 3.93869 0.0776763 3.9142C0.0598766 3.46751 0.0839399 3.08445 0.0838713 2.66514C0.0837682 2.34683 0.075824 2.00646 0.0769134 1.70358C0.0772087 1.6261 0.0779418 1.55115 0.0788924 1.47776C0.0826244 1.19302 0.154229 0.921615 0.316696 0.672281C0.338867 0.638981 0.292723 0.664752 0.32065 0.623846C0.369541 0.553622 0.424721 0.488357 0.48445 0.428458C0.753532 0.148437 1.15709 0.00220798 1.53375 0.0188252C1.57936 0.0201088 1.62499 0.021507 1.67062 0.0230269C1.71856 0.0246444 1.65678 0.04535 1.70467 0.0482039C1.99789 0.0652201 2.46186 0.106097 2.63601 0.0159469C2.83463 0.0194671 3.07577 0.0231042 3.25346 0.0412764C3.36803 0.0529724 3.25676 0.0755289 3.3975 0.065904C3.42924 0.0637595 3.38796 0.0440055 3.43556 0.0422835C3.63598 0.0350518 3.85494 0.0414731 4.0532 0.0312667C4.09353 0.0291442 4.08252 0.0114439 4.09395 0.00825648C4.18998 -0.0175568 4.34984 0.0251142 4.38469 0.0282149C4.65007 0.0513367 4.84387 0.0422377 5.09109 0.0428023C5.14846 0.0429432 5.08064 0.0191677 5.13585 0.0184493C5.42216 0.0150418 5.71875 0.0170853 5.99909 0.0276351C6.06145 0.0300389 6.00411 0.0502913 6.03391 0.0524763C6.1653 0.0618638 6.19443 0.0236122 6.32044 0.031877C6.34701 0.0335703 6.33204 0.0509079 6.33689 0.052812C6.41273 0.0827023 6.47864 0.0403498 6.49814 0.0394148C6.64104 0.0320166 6.75407 0.0437278 6.87021 0.0536825L6.94725 0.0529142L6.94803 0.131508C6.9408 0.215929 6.93449 0.301986 6.93712 0.402334C6.93792 0.430853 6.95985 0.366542 6.96074 0.446711C6.96268 0.617016 6.96338 0.79045 6.96287 0.964841L6.96378 1.05657L6.87021 1.0575C6.4977 1.05642 6.12082 1.04981 5.76074 1.03786C5.67854 1.03516 5.73722 1.01868 5.73205 1.01665C5.64774 0.984909 5.5932 1.02744 5.5664 1.02904C5.35496 1.04057 5.15745 1.0049 5.01379 1.05556C4.11833 1.03798 3.22699 1.06643 2.33893 1.02105C2.32764 1.02052 2.34787 0.999574 2.32535 0.998615C2.0541 0.986854 2.1062 1.01941 1.92672 1.05922C1.88151 1.06922 1.74398 1.02115 1.73181 1.01763C1.68747 1.00464 1.73346 0.973481 1.71861 0.970966C1.62189 0.95542 1.61373 1.01599 1.53375 1.04248C1.51572 1.04969 1.49474 1.05533 1.46726 1.0605C1.46297 1.0611 1.47727 1.03925 1.46555 1.03943C1.42817 1.0403 1.39591 1.05939 1.3606 1.06991C1.2997 1.08926 1.25057 1.08648 1.19422 1.13823C1.17649 1.15509 1.15856 1.1779 1.14333 1.20957C1.13879 1.22649 1.18737 1.23839 1.13348 1.34468C1.12462 1.36456 1.10658 1.41742 1.10691 1.47776C1.10657 1.56606 1.10592 1.66159 1.10386 1.70143C1.10008 1.77452 1.08124 1.72434 1.08043 1.72955C1.05552 1.92648 1.04519 1.85181 1.00831 1.95048C0.971573 2.04913 1.0592 2.02177 1.06898 2.06199C1.07873 2.10228 1.05818 2.24667 1.05104 2.28216C1.04389 2.31762 1.03192 2.27339 1.02787 2.30492C1.00145 2.51401 1.07137 2.3967 1.08528 2.46559C1.11821 2.62802 1.05322 2.75454 1.04686 2.90324C1.04514 2.94348 1.05994 2.91064 1.06132 2.94647C1.06661 3.08837 1.04633 3.17371 1.06492 3.33515C1.06795 3.36156 1.10702 3.49207 1.07835 3.57655C1.07422 3.58851 1.05802 3.55451 1.05439 3.61499C1.04895 3.70533 1.04541 3.86811 1.05082 3.96523C1.05483 4.03692 1.08151 3.95474 1.07322 4.04499C1.06952 4.0851 1.05391 4.01076 1.04826 4.08612C1.04261 4.16107 1.0433 4.35271 1.04383 4.42564C1.04439 4.49843 1.06463 4.45859 1.06599 4.46447C1.0738 4.50007 1.08356 4.63977 1.08354 4.65211C1.08601 5.27481 1.05189 5.84903 1.06318 6.45531C1.06404 6.50289 1.08538 6.47119 1.08574 6.47845C1.09468 6.64133 1.03793 6.51291 1.01893 6.62669C1.06225 6.61025 1.0544 6.67742 1.05915 6.79215C1.06148 6.84744 1.07825 6.81733 1.07997 6.82237C1.10544 6.90436 1.07254 6.96146 1.06581 6.97616C1.04105 7.03046 1.0703 7.08956 1.05375 7.12651C1.03733 7.16344 1.01297 7.07845 1.01329 7.18848C1.02879 7.21934 1.06931 7.13765 1.07588 7.22119C1.10072 7.5364 1.06893 8.1248 1.06562 8.37824C1.06232 8.63118 1.06519 8.71288 1.05958 8.86027C1.04945 9.1265 1.07951 9.02893 1.09327 9.19424C1.10703 9.36004 1.03306 9.27944 1.01716 9.30327C1.00127 9.32667 1.01763 9.35221 1.00889 9.38132C1.00016 9.41032 0.989345 9.34752 0.986065 9.41575C0.982788 9.48401 1.01106 9.67063 1.02769 9.69482C1.06292 9.74597 1.09988 9.66188 1.08689 9.84249C1.08612 9.85288 1.06667 9.81917 1.06471 9.85894C1.04974 10.1749 1.04881 10.5031 1.03556 10.8186C1.03371 10.862 1.01208 10.8232 1.01075 10.8484C0.996914 11.1114 1.0334 11.0174 1.07393 11.1616C1.01999 11.1292 0.986994 11.2089 0.986676 11.4085C0.986465 11.5285 1.01002 11.5078 1.02662 11.5854C1.03163 11.6087 1.01545 11.6936 1.02653 11.709C1.06274 11.7597 1.10328 11.6798 1.08714 11.8856C1.08637 11.8946 1.06655 11.8658 1.06535 11.897C1.06129 12.0012 1.06943 12.058 1.07889 12.1186C1.08885 12.1681 1.10227 12.2171 1.1448 12.2943C1.16523 12.3304 1.19487 12.3736 1.23525 12.4171C1.31133 12.5028 1.42378 12.5708 1.53375 12.5728C1.56749 12.5741 1.59955 12.5751 1.6291 12.5756C1.625 12.6363 1.80876 12.6224 1.88331 12.5806C2.00957 12.5823 2.14594 12.5799 2.26797 12.5857C2.30997 12.5877 2.28238 12.6052 2.28767 12.6071C2.36889 12.6369 2.42377 12.5962 2.45103 12.5946C2.7464 12.5791 2.98705 12.6099 3.26894 12.5798C3.27894 12.5787 3.29515 12.5366 3.37051 12.5674C3.37538 12.5695 3.28228 12.5887 3.41489 12.5901C3.54751 12.5916 3.79753 12.6142 3.98165 12.5947C4.0262 12.59 4.1389 12.5558 4.22935 12.5825C4.24141 12.5861 4.22822 12.5982 4.24561 12.6049C4.30185 12.6264 4.33255 12.5838 4.39864 12.6199C4.46473 12.6561 4.60221 12.6832 4.78789 12.6582C4.79381 12.6575 4.83776 12.6238 4.89616 12.6243C4.98938 12.6252 5.12171 12.6322 5.21904 12.632C5.26564 12.6319 5.23581 12.6109 5.2439 12.6105C5.55725 12.5988 5.78026 12.6175 6.11595 12.6256C6.17748 12.6271 6.35432 12.5985 6.47345 12.6211C6.60426 12.6459 6.46984 12.7487 6.77051 12.7242C6.80146 12.7217 6.83452 12.7114 6.87021 12.6984L6.80328 12.6315C6.841 12.7357 6.90054 12.8622 6.85018 13.0245C6.85612 13.1743 6.8556 13.3201 6.85353 13.4648L6.87021 13.4482C6.60663 13.4444 6.34674 13.4354 6.07311 13.4509C6.05405 13.4519 5.99378 13.4884 5.94897 13.4879C5.88245 13.4871 5.84594 13.47 5.79844 13.4689C5.5994 13.4638 5.41726 13.4784 5.22536 13.4761C5.1525 13.4753 5.17798 13.4577 5.09108 13.4567C5.00424 13.4557 4.94633 13.4789 4.82865 13.4677C4.73977 13.4592 4.6509 13.4118 4.53293 13.4063C4.52843 13.453 4.44741 13.452 4.30339 13.4644C4.27571 13.4668 4.3054 13.483 4.2923 13.485C4.23901 13.4934 4.18969 13.4799 4.13908 13.489C4.12677 13.4912 4.12619 13.5072 4.11613 13.5099C4.03056 13.5334 3.88958 13.4975 3.86536 13.4912C3.77256 13.4675 3.72919 13.4882 3.65801 13.4789C3.58695 13.4696 3.69321 13.4579 3.61019 13.4522C3.43813 13.4405 3.21704 13.443 3.04228 13.4423C2.97256 13.4421 3.02013 13.4634 3.01015 13.4639C2.86597 13.4693 2.72016 13.4466 2.64021 13.4891C2.54025 13.3793 2.55327 13.4997 2.34717 13.4777C2.33094 13.476 2.31029 13.4241 2.37261 13.4165C2.43494 13.4089 2.52945 13.4251 2.61592 13.4132C2.6364 13.4104 2.75371 13.3618 2.76971 13.3588C2.89508 13.3358 2.91285 13.4134 2.91948 13.4176C2.9947 13.4636 3.13805 13.4112 3.1758 13.4076C3.34849 13.391 3.49521 13.4019 3.63965 13.3901C3.73412 13.3824 3.74336 13.3316 3.81754 13.3332C4.06413 13.3383 4.15021 13.4092 4.38258 13.3477C4.43241 13.3346 4.38289 13.2791 4.56143 13.3228C4.57265 13.3255 4.7052 13.3655 4.78178 13.3402C4.7914 13.337 4.7911 13.3208 4.80378 13.3195C4.88879 13.3107 4.94549 13.3236 5.0381 13.3174C5.1307 13.3112 5.24205 13.302 5.34778 13.3075C5.4115 13.3108 5.49326 13.3409 5.52376 13.3483C5.60988 13.3696 5.70223 13.3347 5.75559 13.3605C5.8094 13.3863 5.7042 13.4256 5.8453 13.4423C5.85052 13.4003 5.86253 13.3572 5.87093 13.3149C6.18014 13.3164 6.48438 13.33 6.79462 13.3281C6.83308 13.3278 6.79375 13.3052 6.83498 13.3044C6.84682 13.3041 6.85856 13.304 6.87021 13.3039L6.70927 13.4648C6.70824 13.3053 6.72182 13.1619 6.71584 12.9937C6.71167 12.8783 6.6946 12.7537 6.6854 12.6315L6.87021 12.8163C6.84455 12.8182 6.81899 12.8198 6.79365 12.8209C6.70446 12.7728 6.48778 12.7891 6.33037 12.7847C6.27523 12.7832 6.27892 12.7703 6.23971 12.7662C6.09177 12.7507 6.16109 12.7932 6.12054 12.7999C5.94654 12.8284 5.93164 12.7322 5.7265 12.7346C5.71564 12.7347 5.58279 12.7859 5.56449 12.7891C5.44823 12.81 5.54524 12.7713 5.47248 12.7675C5.33964 12.7606 5.24732 12.7483 5.09145 12.7634C5.046 12.7678 4.93698 12.7998 4.84872 12.775C4.83711 12.7718 4.84352 12.7549 4.83418 12.7539C4.66502 12.7373 4.66057 12.7906 4.5639 12.8086C4.46722 12.8266 4.31789 12.7899 4.2875 12.7793C4.208 12.7519 4.34842 12.7676 4.35273 12.7649C4.40331 12.7329 4.2944 12.7384 4.21118 12.7357C4.19914 12.6835 4.08276 12.6866 4.12492 12.7331C4.12971 12.7382 4.19447 12.7333 4.21118 12.7357C4.13814 12.7869 4.01024 12.7935 3.86898 12.7456C3.80286 12.7232 3.86537 12.697 3.66451 12.7066C3.57335 12.7109 3.60857 12.7468 3.52812 12.7566C3.34433 12.779 3.10551 12.7455 2.91603 12.7507C2.84726 12.7527 2.91425 12.7723 2.86725 12.7743C2.74252 12.7797 2.63253 12.7649 2.50726 12.7725C2.49591 12.7732 2.52364 12.7938 2.48469 12.7941C2.18939 12.7964 1.93225 12.7832 1.62393 12.7829C1.59721 12.7829 1.5667 12.7832 1.53375 12.7838C1.36819 12.7938 1.16637 12.6912 1.06759 12.5847C1.04222 12.5597 1.01969 12.5341 1.00085 12.5095C0.923406 12.4117 0.864704 12.2634 0.872462 12.1186C0.881558 11.9363 0.891629 11.7535 0.887066 11.6103C0.882408 11.4613 0.8618 11.494 0.84776 11.4301C0.820544 11.3069 0.869294 11.0888 0.876843 11.0594C0.877093 11.0585 0.881951 11.1868 0.892529 11.1183C0.914571 11.0785 0.876939 11.0609 0.876843 11.0594C0.88172 11.0401 0.886398 10.784 0.882458 10.7331C0.880306 10.7055 0.860781 10.7209 0.860028 10.7065C0.842556 10.364 0.837593 10.0208 0.846722 9.6734C0.847117 9.66728 0.868956 9.6765 0.86961 9.66211C0.879321 9.46098 0.852605 9.3322 0.836743 9.16632C0.820889 9.00046 0.826199 8.86893 0.86369 8.77075C0.85897 8.64561 0.875544 8.46607 0.885602 8.36275C0.895659 8.25944 0.853147 8.24502 0.852307 8.23593C0.825408 7.9524 0.849741 7.7885 0.853528 7.49434C0.855401 7.35449 0.849235 7.07708 0.844586 6.92567C0.840841 6.80599 0.850804 6.7339 0.844434 6.62363C0.843583 6.60872 0.824655 6.62379 0.823926 6.61924C0.801279 6.49617 0.847552 6.55531 0.855817 6.52991C0.88587 6.43779 0.901876 6.38088 0.887738 6.22329C0.8845 6.18694 0.817874 6.08105 0.813977 6.01479C0.809033 5.92864 0.832915 5.96115 0.82713 5.87095C0.826657 5.86323 0.811924 5.86484 0.812573 5.80916C0.815395 5.55074 0.823968 5.26899 0.822491 5.00043C0.822346 4.96375 0.798977 5.01078 0.798383 4.95778C0.795613 4.70907 0.796477 4.43648 0.807416 4.19419C0.810182 4.13455 0.826544 4.17194 0.831403 4.15899C0.860799 4.07951 0.818087 3.9668 0.817273 3.9482C0.796748 3.50458 0.835401 3.16507 0.816998 2.71292C0.815918 2.6883 0.77013 2.49885 0.809399 2.41433C0.812012 2.40854 0.852189 2.32492 0.824719 2.25098C0.823001 2.24638 0.802317 2.29849 0.804425 2.20756C0.806529 2.11662 0.792716 1.97027 0.815442 1.84527C0.822601 1.8057 0.862679 1.71216 0.830731 1.59412C0.829546 1.59003 0.808589 1.53665 0.79669 1.47776C0.785005 1.40067 0.801004 1.31046 0.837949 1.2752C0.85475 1.26512 0.880884 1.28643 0.955483 1.11397C0.972141 1.08203 0.922931 1.1271 0.974901 1.04743C0.99158 1.0233 1.01122 0.999682 1.03294 0.976944C1.11687 0.887736 1.25351 0.796981 1.41088 0.75024C1.42797 0.744885 1.47444 0.726419 1.53375 0.720501C1.57095 0.714683 1.61472 0.712849 1.65377 0.726186C1.66622 0.730441 1.64255 0.748049 1.68456 0.75002C1.88431 0.759472 2.09346 0.747694 2.29627 0.759877C2.36811 0.764158 2.33138 0.792623 2.40626 0.800252C2.48116 0.807877 2.63203 0.815213 2.7104 0.802205C2.78878 0.789191 2.70315 0.743824 2.82057 0.740193C3.33103 0.724426 3.8367 0.75104 4.34641 0.754933C4.42201 0.755515 4.35934 0.739281 4.47075 0.738973C4.88149 0.737765 5.59063 0.722544 5.94704 0.757039C6.23261 0.784668 5.87324 0.805702 6.09146 0.816945C6.19676 0.822308 6.31069 0.769564 6.33611 0.767903C6.54217 0.753906 6.69608 0.767612 6.87021 0.768587L6.67395 0.964841C6.67415 0.929126 6.67382 0.892561 6.6726 0.85452C6.67111 0.808364 6.64973 0.853634 6.6487 0.814351C6.645 0.680176 6.65454 0.539156 6.65279 0.410942C6.65196 0.353422 6.63563 0.36402 6.63689 0.311094C6.63829 0.248717 6.64066 0.189896 6.64453 0.131508L6.87021 0.357182C6.81005 0.353187 6.75035 0.347595 6.6877 0.339829C6.67645 0.338434 6.75232 0.318124 6.65863 0.317368C6.50698 0.316203 6.31875 0.301107 6.14427 0.316697C6.09251 0.321386 6.09048 0.358703 5.9792 0.332932C5.95586 0.327549 5.98564 0.282741 5.85602 0.321457C5.83422 0.327891 5.61647 0.380113 5.50961 0.346451C5.48142 0.337592 5.40946 0.300924 5.34721 0.306687C5.33877 0.307606 5.37259 0.32765 5.32101 0.329606C5.1392 0.336147 4.94867 0.334009 4.76189 0.340287C4.71202 0.342003 4.78631 0.362744 4.71197 0.36464C4.50755 0.369882 4.25233 0.364601 4.05244 0.358109C3.97874 0.355676 4.02968 0.338494 4.02432 0.336625C3.93809 0.306212 3.8871 0.347262 3.85848 0.349656C3.68048 0.363988 3.54493 0.344705 3.38085 0.349808C3.33557 0.351164 3.36768 0.370737 3.35867 0.372483C3.26519 0.389535 3.33482 0.354385 3.27565 0.35051C3.10989 0.339539 2.9251 0.341112 2.75747 0.343613C2.6959 0.344561 2.7651 0.367256 2.70984 0.367844C2.38279 0.371755 2.04279 0.369583 1.72361 0.357071C1.66351 0.354674 1.70132 0.337198 1.68879 0.333207C1.64163 0.31795 1.58247 0.322397 1.53375 0.330165C1.49785 0.336598 1.46951 0.346712 1.45813 0.348959C1.34589 0.373048 1.30165 0.36518 1.20715 0.391771C1.03762 0.441985 0.872638 0.536807 0.73327 0.677278C0.509438 0.894024 0.405606 1.19426 0.405679 1.47776C0.405378 1.50299 0.405081 1.5279 0.404793 1.55247C0.396655 2.25492 0.380029 2.8 0.384346 3.46986C0.384599 3.51243 0.407848 3.4695 0.408364 3.5062C0.413968 3.98003 0.404884 4.44651 0.411599 4.92129C0.412108 4.96025 0.434148 4.90409 0.435707 4.96662C0.43906 5.09489 0.437862 5.25737 0.430825 5.38706C0.427434 5.45031 0.408522 5.36547 0.405495 5.42914C0.398405 5.57739 0.396835 5.73631 0.400368 5.88859C0.40192 5.9534 0.424461 5.85562 0.424721 5.93986C0.426957 6.51363 0.43084 7.07715 0.40165 7.65697C0.399645 7.69672 0.353833 7.7316 0.362618 7.81612C0.375332 7.82249 0.390288 7.82214 0.403878 7.82492C0.411198 8.6602 0.395316 9.48694 0.392861 10.3246C0.392763 10.3599 0.417036 10.2988 0.41697 10.3672C0.416611 10.7629 0.423335 11.1472 0.399208 11.552C0.396849 11.5922 0.354145 11.5716 0.360604 11.6899C0.361782 11.7108 0.367478 11.8891 0.376748 11.9351C0.378146 11.9414 0.398078 11.9089 0.398659 11.9663C0.399116 12.0167 0.399401 12.0675 0.399512 12.1186C0.398739 12.3707 0.464028 12.6128 0.600738 12.8109C0.626846 12.8485 0.58018 12.8225 0.599191 12.8497C0.626505 12.8881 0.657812 12.925 0.692169 12.9602C0.830437 13.1032 1.00778 13.1978 1.17918 13.2604C1.32506 13.3097 1.2629 13.3313 1.3433 13.3807C1.3549 13.3883 1.4571 13.3974 1.46196 13.4178C1.4744 13.4713 1.41786 13.5263 1.43685 13.5837C1.44109 13.5975 1.59704 13.5861 1.50438 13.6145C1.49803 13.6172 1.38324 13.6215 1.35343 13.6274C1.33273 13.6321 1.36684 13.6573 1.32453 13.6615C1.28185 13.6652 1.23914 13.6414 1.16888 13.6369C1.09838 13.6305 1.122 13.6656 0.983564 13.6242ZM0.930554 7.89756C0.950969 7.8019 0.876196 7.78778 0.894085 7.89125C0.895039 7.89626 0.929552 7.90249 0.930554 7.89756ZM6.48264 13.3864C6.60771 13.4194 6.69329 13.3709 6.60506 13.3454C6.51685 13.3199 6.44454 13.3764 6.48264 13.3864ZM5.18577 13.4104C5.33193 13.4365 5.35495 13.3304 5.19839 13.3519C5.18929 13.3531 5.17722 13.4089 5.18577 13.4104ZM0.952183 13.2768C0.952623 13.2787 1.01942 13.3097 1.02165 13.3089C1.06573 13.3025 0.934811 13.2424 0.952183 13.2768ZM3.89884 13.4367C3.94446 13.451 4.07585 13.4345 4.01915 13.4166C3.97351 13.4023 3.84201 13.4188 3.89884 13.4367ZM1.01036 2.90726C1.01147 2.90575 1.01247 2.85029 1.00618 2.8514C0.98589 2.85517 0.991615 2.93235 1.01036 2.90726ZM1.71155 13.4379C2.03471 13.4419 2.23065 13.5295 1.87873 13.5196C1.815 13.5178 2.01608 13.4916 1.93497 13.4838C1.78654 13.4694 1.68799 13.5244 1.53653 13.4949C1.50911 13.4895 1.69312 13.4375 1.71212 13.4378C1.71193 13.4378 1.71174 13.4378 1.71155 13.4379ZM1.02037 7.84247C1.02136 7.84056 1.02229 7.76378 1.02131 7.76194C0.997574 7.72036 0.995672 7.87503 1.02037 7.84247ZM2.54436 1.0006C2.5486 1.00271 2.72677 1.00468 2.73258 1.00274C2.82553 0.963916 2.46532 0.959817 2.54436 1.0006ZM1.63216 12.5773C1.71593 12.5534 1.81614 12.5506 1.88292 12.5806C1.79967 12.579 1.71587 12.5787 1.63216 12.5773ZM10.1879 9.7076C10.0699 9.59541 9.92738 9.44127 9.8158 9.31472L9.6507 9.15091L9.81785 8.97831C9.82687 8.97016 9.83575 8.96217 9.84447 8.95436C9.88507 8.91795 9.87494 8.94682 9.90339 8.92211C9.95903 8.87376 10.0029 8.82073 10.0586 8.7737C10.0771 8.75815 10.0707 8.79419 10.0898 8.77755C10.1942 8.68628 10.283 8.58995 10.3852 8.494C10.8702 8.03905 11.3381 7.58254 11.8192 7.11429L11.9198 7.35704C11.8937 7.35669 11.8677 7.35633 11.8416 7.35598C11.6112 7.35284 11.3311 7.33379 11.0931 7.34212C11.0653 7.34311 11.0818 7.36154 11.0766 7.36306C10.9937 7.3863 11.0212 7.34911 10.9671 7.34417C10.7522 7.32465 10.5133 7.32296 10.3066 7.33007C10.2186 7.33315 10.3068 7.36974 10.2182 7.3492C10.2121 7.34781 10.2344 7.32825 10.2103 7.32616C10.1555 7.32147 10.0518 7.32496 10.0094 7.32341C9.92764 7.32033 9.91412 7.32052 9.83683 7.3203C9.73117 7.31983 9.6055 7.3101 9.49214 7.31453C9.46794 7.31554 9.49997 7.33559 9.46138 7.33901C9.42276 7.34242 9.32057 7.34071 9.28613 7.33599C9.25167 7.33126 9.26634 7.31549 9.26024 7.31188C9.21008 7.28138 9.09188 7.32362 9.07668 7.32466C8.79939 7.34246 8.56161 7.3184 8.30132 7.31847C8.10373 7.31857 7.89245 7.32652 7.70443 7.32543C7.48044 7.32405 7.2906 7.31318 7.07299 7.31505C7.05002 7.31523 7.07694 7.33881 7.04889 7.33907C6.75089 7.34181 6.45496 7.33924 6.15824 7.32332C6.12848 7.3217 6.16683 7.301 6.13711 7.29814C5.95509 7.28113 5.66708 7.24025 5.55898 7.3304C5.43568 7.32688 5.286 7.32324 5.17569 7.30507C5.10457 7.29338 5.17365 7.27082 5.08628 7.28044C5.06658 7.28259 5.0922 7.30234 5.06266 7.30407C4.93825 7.3113 4.80233 7.30488 4.67925 7.31508C4.65422 7.3172 4.66106 7.3349 4.65396 7.33809C4.61347 7.35563 4.55469 7.34156 4.51437 7.32976L4.40133 7.33158L4.39945 7.21484C4.40502 7.19581 4.41009 7.18089 4.41108 7.17395C4.4342 7.00922 4.4251 6.88892 4.42567 6.73545C4.42581 6.69984 4.40203 6.74194 4.40132 6.70767C4.39925 6.60007 4.39919 6.49013 4.4018 6.38151L4.40002 6.27077L4.51437 6.26893C4.58517 6.27063 4.65541 6.27347 4.72407 6.27763C4.76278 6.28004 4.72718 6.30029 4.74568 6.30248C4.82724 6.31186 4.84533 6.27361 4.92355 6.28188C4.94004 6.28357 4.93075 6.30091 4.93376 6.30281C4.98084 6.3327 5.02175 6.29035 5.03386 6.28941C5.18704 6.27664 5.28495 6.32085 5.43293 6.31459C5.45063 6.3138 5.41071 6.29186 5.46048 6.29097C5.79201 6.28491 6.14265 6.29094 6.47081 6.30849C6.52183 6.31119 6.48541 6.32767 6.48862 6.3297C6.54095 6.36144 6.57481 6.31891 6.59145 6.31731C6.7227 6.30578 6.8453 6.34144 6.93448 6.29079C7.49033 6.30837 8.04363 6.27992 8.5949 6.3253C8.6019 6.32583 8.58934 6.34678 8.60333 6.34773C8.7717 6.35949 8.73936 6.32694 8.85077 6.28713C8.87884 6.27713 8.96421 6.3252 8.97177 6.32872C8.99929 6.34171 8.97074 6.37287 8.97996 6.37538C9.05622 6.39513 9.04379 6.29207 9.14667 6.29204C9.14988 6.29221 9.13637 6.31118 9.145 6.31307C9.17183 6.31899 9.19843 6.31145 9.22468 6.31798C9.28475 6.33309 9.30615 6.38316 9.39791 6.35402C9.40953 6.35024 9.39179 6.29178 9.48364 6.29454C9.52026 6.29569 9.68234 6.29469 9.72776 6.29848C9.77314 6.30226 9.74198 6.3211 9.74522 6.32192C9.86747 6.34683 9.82111 6.35715 9.88236 6.39403C9.9436 6.43077 9.92662 6.34314 9.95158 6.33336C9.97659 6.32361 10.0662 6.34416 10.0882 6.3513C10.1103 6.35845 10.0828 6.37042 10.1024 6.37447C10.2322 6.40089 10.1594 6.33097 10.2021 6.31706C10.3029 6.28413 10.3815 6.34912 10.4738 6.35548C10.4988 6.3572 10.4784 6.3424 10.5006 6.34102C10.5887 6.33573 10.6417 6.35601 10.7419 6.33742C10.7583 6.33439 10.8393 6.29532 10.8917 6.32399C10.8992 6.32813 10.8781 6.34432 10.9156 6.34795C10.9717 6.35339 11.0727 6.35693 11.133 6.35152C11.1775 6.34751 11.1265 6.32083 11.1825 6.32912C11.2074 6.33282 11.1613 6.34843 11.2081 6.35408C11.2546 6.35973 11.3735 6.35905 11.4188 6.35851C11.464 6.35795 11.4393 6.33771 11.4429 6.33635C11.465 6.32854 11.5517 6.31878 11.5594 6.3188C11.682 6.31802 11.8016 6.32092 11.9198 6.32488L11.8798 6.42155C11.706 6.23569 11.5403 6.05104 11.3532 5.8748C11.3317 5.85452 11.3305 5.88353 11.3271 5.88059C11.2493 5.81542 11.3458 5.83166 11.3093 5.76828C11.2858 5.80613 11.2619 5.7711 11.2082 5.7241C11.1823 5.70148 11.1836 5.72655 11.1802 5.72555C11.1262 5.70758 11.1244 5.65925 11.1227 5.64804C11.1164 5.60669 11.0698 5.60144 11.0652 5.57352C11.0607 5.54569 11.1152 5.56578 11.0667 5.5177C11.0422 5.51512 11.0494 5.57963 11.008 5.5476C10.8521 5.42681 10.6163 5.14606 10.5074 5.03248C10.3987 4.91912 10.3608 4.88529 10.3001 4.81663C10.1904 4.69261 10.212 4.75669 10.1297 4.69386C10.0472 4.63082 10.1349 4.61389 10.1357 4.59219C10.1366 4.57068 10.1138 4.57103 10.1073 4.55208C10.1007 4.53317 10.1359 4.55309 10.1083 4.52083C10.089 4.49833 10.0337 4.46145 9.99435 4.44153L9.99443 4.45597C10.0029 4.43875 10.0082 4.42459 10.0077 4.41781C10.0047 4.37049 9.94179 4.38202 10.0294 4.31086C10.0345 4.30679 10.0338 4.33535 10.0524 4.31905C10.2001 4.18917 10.3431 4.04402 10.4893 3.9131C10.5095 3.89512 10.5081 3.92747 10.52 3.91718C10.55 3.89124 10.5689 3.87253 10.5806 3.85776L10.5636 3.85787C10.6094 3.89528 10.6174 3.8631 10.6871 3.88934C10.6347 3.91327 10.6464 3.97159 10.7338 4.05943C10.7863 4.11224 10.7939 4.08652 10.8397 4.10884C10.8534 4.11552 10.8793 4.16422 10.8939 4.16314C10.9417 4.15981 10.9353 4.09604 11.0142 4.19778C11.0176 4.20229 10.991 4.20368 11.0038 4.21823C11.0868 4.3123 11.1242 4.29611 11.2231 4.38854C11.3006 4.46099 11.4177 4.61071 11.5004 4.69876C11.4558 4.73984 11.5462 4.81068 11.6085 4.81384C11.6627 4.87047 11.7243 4.92866 11.7737 4.98631C11.7908 5.00613 11.7662 5.00644 11.7672 5.0101C11.7818 5.06679 11.8347 5.06212 11.8478 5.07296C11.9884 5.19165 12.0722 5.31908 12.2173 5.4215C12.2224 5.42513 12.2593 5.40246 12.2706 5.45728C12.2713 5.46092 12.2169 5.43361 12.274 5.49286C12.3312 5.55212 12.425 5.67783 12.5196 5.74485C12.5425 5.76108 12.6161 5.78637 12.6369 5.84496C12.6396 5.85282 12.6253 5.85557 12.6282 5.86796C12.6377 5.90779 12.6813 5.89116 12.6847 5.94575C12.6882 6.00033 12.7294 6.07983 12.8285 6.14369C12.8316 6.14577 12.8748 6.1412 12.9 6.16721C12.9403 6.20875 12.9935 6.27181 13.0363 6.31437C13.0569 6.33475 13.0586 6.30684 13.0624 6.31012C13.2083 6.43935 13.2929 6.55045 13.4345 6.70353C13.4506 6.72094 13.4943 6.74961 13.5339 6.78515L13.5469 6.79776L13.5339 6.81119C13.512 6.83545 13.4877 6.85815 13.4617 6.87196C13.3868 6.91189 13.3731 6.78015 13.2584 6.92945C13.2121 6.98962 13.237 7.14929 13.0935 7.19714C12.9199 7.39451 12.7238 7.54161 12.5547 7.74457C12.5471 7.75368 12.5464 7.80589 12.5264 7.82521C12.4966 7.85384 12.4685 7.85783 12.4469 7.87788C12.3559 7.96162 12.2863 8.05187 12.2004 8.1345C12.1679 8.1659 12.1666 8.14227 12.1278 8.17971C12.089 8.21715 12.0799 8.25896 12.0204 8.3027C11.9753 8.33568 11.9028 8.34118 11.8471 8.38906C11.8782 8.42408 11.8419 8.45896 11.7874 8.5309C11.777 8.54474 11.8015 8.54321 11.7972 8.55035C11.7797 8.57967 11.7485 8.59179 11.7328 8.62045C11.7289 8.62741 11.7399 8.63895 11.7374 8.64527C11.7165 8.69945 11.6292 8.73595 11.6142 8.74216C11.5567 8.7661 11.5523 8.79982 11.5144 8.82445C11.4766 8.84903 11.515 8.79413 11.4746 8.82656C11.3907 8.89379 11.2955 8.99265 11.2183 9.06884C11.1876 9.09931 11.2235 9.09349 11.2195 9.0982C11.16 9.16531 11.08 9.21329 11.0749 9.27838C10.9534 9.24468 11.0442 9.32407 10.9382 9.399C10.9299 9.40487 10.8841 9.37725 10.9061 9.34451C10.9281 9.31177 10.981 9.28175 11.0106 9.2354C11.0176 9.22444 11.0347 9.13857 11.0396 9.12947C11.0784 9.05816 11.141 9.10519 11.1469 9.10529C11.2125 9.10477 11.2383 9.00481 11.2523 8.98568C11.3164 8.89815 11.3885 8.84146 11.4436 8.76969C11.4796 8.72282 11.4478 8.68285 11.4814 8.65139C11.5933 8.54678 11.6812 8.5591 11.7397 8.41366C11.7523 8.38253 11.6914 8.36501 11.8006 8.31751C11.8075 8.31453 11.8939 8.28458 11.9096 8.23311C11.9116 8.22664 11.9 8.21533 11.9046 8.2088C11.9357 8.16527 11.9697 8.1495 12.006 8.10448C12.0423 8.05947 12.0847 8.00409 12.135 7.96156C12.1652 7.93591 12.2224 7.92134 12.241 7.91317C12.2939 7.8904 12.3098 7.82522 12.3514 7.82C12.3933 7.81468 12.3749 7.88863 12.4487 7.83852C12.4212 7.80651 12.396 7.77073 12.3698 7.73715C12.5066 7.60248 12.6497 7.47855 12.7846 7.34106C12.8013 7.32398 12.768 7.32527 12.7855 7.30655C12.8593 7.22766 12.9374 7.17235 13.0121 7.08863C13.0698 7.02376 13.1201 6.93963 13.1799 6.87127C13.2531 6.86613 13.3366 6.75948 13.4088 6.69349C13.4102 6.69226 13.4115 6.69113 13.4127 6.69008V6.90627C13.3941 6.88405 13.403 6.87634 13.3895 6.85724C13.3355 6.78135 13.3359 6.84183 13.3133 6.82876C13.2168 6.77257 13.2783 6.69801 13.1865 6.60964C13.1817 6.60494 13.0871 6.58289 13.0768 6.57711C13.0111 6.54081 13.081 6.55605 13.0518 6.52143C12.9983 6.45822 12.9665 6.40904 12.8875 6.35125C12.8644 6.33444 12.7939 6.30919 12.7726 6.25297C12.7698 6.24558 12.7846 6.23641 12.7812 6.23161C12.7187 6.14566 12.6791 6.18136 12.6239 6.15169C12.5687 6.122 12.5292 6.03046 12.5233 6.00963C12.5078 5.95535 12.5583 6.02809 12.5621 6.02807C12.607 6.02764 12.5553 5.98373 12.5206 5.94529C12.5523 5.90308 12.499 5.85422 12.4846 5.90559C12.4831 5.91129 12.515 5.93627 12.5206 5.94529C12.4523 5.94946 12.3916 5.89796 12.3634 5.8021C12.3503 5.75721 12.3962 5.76615 12.3013 5.68475C12.2582 5.64779 12.2482 5.68868 12.206 5.6603C12.1095 5.59544 12.0284 5.4669 11.9415 5.38746C11.9099 5.35863 11.9254 5.40196 11.9034 5.38273C11.8449 5.33176 11.807 5.27304 11.7467 5.2234C11.7412 5.21893 11.7388 5.24567 11.7215 5.22875C11.5902 5.10083 11.4867 4.97863 11.3516 4.84304C11.2863 4.77753 11.1614 4.66866 11.0953 4.59931C10.9806 4.47919 10.8574 4.31358 10.7519 4.21844C10.6832 4.15632 10.683 4.18524 10.645 4.16714C10.5717 4.1323 10.5104 4.00209 10.5029 3.98386C10.5027 3.98329 10.5624 4.03614 10.5398 3.99863C10.538 3.96558 10.5036 3.98443 10.5029 3.98386C10.5013 3.98013 10.4895 3.9662 10.4733 3.94822L10.6721 3.94702C10.6331 3.98306 10.5751 4.04062 10.5618 4.05802C10.5514 4.07181 10.5721 4.07858 10.5664 4.0855C10.4304 4.24988 10.2851 4.40577 10.128 4.55373C10.125 4.55617 10.1134 4.53683 10.1067 4.54276C10.1025 4.54641 10.0985 4.55005 10.0945 4.55367L10.0933 4.34263C10.1706 4.42887 10.243 4.46585 10.3234 4.52472C10.4074 4.58631 10.4613 4.6478 10.4779 4.71741C10.5362 4.769 10.6033 4.85953 10.6415 4.91199C10.6798 4.96445 10.7161 4.94071 10.7207 4.94411C10.8642 5.04954 10.9189 5.13869 11.0454 5.27048C11.1054 5.33319 11.2316 5.4506 11.3013 5.51377C11.3565 5.56365 11.3811 5.60234 11.434 5.64624C11.4411 5.65218 11.4479 5.63219 11.4504 5.63367C11.5205 5.67167 11.4618 5.67843 11.4671 5.69543C11.4863 5.75711 11.4999 5.79341 11.5791 5.85259C11.5973 5.86625 11.6909 5.86562 11.7228 5.89195C11.7641 5.92626 11.7329 5.92888 11.7766 5.96438C11.7803 5.96744 11.79 5.95631 11.814 5.98121C11.8937 6.0637 11.9765 6.1535 12.0606 6.24068L12.3985 6.58564L11.9198 6.58067C11.8714 6.57982 11.8232 6.57943 11.7756 6.57985C11.7528 6.57999 11.782 6.60336 11.7491 6.60396C11.5948 6.60673 11.4255 6.60586 11.2751 6.59492C11.2381 6.59216 11.2613 6.5758 11.2533 6.57094C11.204 6.54154 11.134 6.58425 11.1224 6.58507C10.8471 6.60559 10.6363 6.56694 10.3556 6.58534C10.3404 6.58642 10.2228 6.63221 10.1703 6.59294C10.1667 6.59033 10.1148 6.55015 10.0689 6.57762C10.066 6.57934 10.0984 6.60002 10.0419 6.59792C9.98549 6.59581 9.89465 6.60962 9.81705 6.5869C9.79249 6.57974 9.73443 6.53966 9.66115 6.57161C9.65638 6.57384 9.54325 6.64608 9.50288 6.59624C9.49633 6.58803 9.50318 6.53529 9.41572 6.56233C9.39902 6.56757 9.42935 6.57934 9.38533 6.58669C9.31788 6.59801 9.22851 6.58388 9.1456 6.60738C9.13114 6.61154 9.06958 6.64733 9.02021 6.62016C9.01248 6.61591 9.02717 6.5983 9.00109 6.59633C8.8771 6.58688 8.74727 6.59865 8.62137 6.58647C8.57678 6.58219 8.59958 6.55373 8.5531 6.5461C8.50661 6.53847 8.41295 6.53114 8.36431 6.54414C8.31565 6.55716 8.3688 6.60253 8.29592 6.60616C7.97905 6.62192 7.66515 6.59531 7.34875 6.59142C7.30182 6.59083 7.34073 6.60707 7.27157 6.60738C7.0166 6.60858 6.5764 6.6238 6.35516 6.58931C6.17789 6.56168 6.40097 6.54065 6.26551 6.5294C6.20015 6.52404 6.12943 6.57679 6.11365 6.57845C5.9595 6.59531 5.85237 6.57195 5.71362 6.57912C5.68497 6.5806 5.71307 6.60198 5.68869 6.60301C5.6054 6.60672 5.51786 6.59718 5.43827 6.59892C5.40257 6.59975 5.40915 6.61608 5.37629 6.61482C5.29768 6.612 5.22816 6.60513 5.15152 6.58983C5.14454 6.58843 5.19164 6.56812 5.13348 6.56737C5.03934 6.5662 4.9225 6.55111 4.81419 6.5667C4.78206 6.57139 4.7808 6.6087 4.71172 6.58293C4.69723 6.57755 4.71572 6.53274 4.63526 6.57146C4.62683 6.57547 4.57118 6.59725 4.51437 6.60496L4.73783 6.38151C4.74249 6.41587 4.74201 6.45065 4.72932 6.47566C4.72046 6.49316 4.68379 6.53782 4.68955 6.57647C4.69047 6.58171 4.71052 6.56071 4.71247 6.59273C4.71901 6.70559 4.71688 6.82386 4.72315 6.9398C4.72487 6.97076 4.74561 6.92465 4.74751 6.97079C4.7506 7.04567 4.75003 7.13153 4.74771 7.21484L4.51437 6.98151C4.57224 6.98312 4.62887 6.98558 4.67973 6.98824C4.72548 6.99067 4.69386 7.00785 4.69718 7.00972C4.75071 7.04014 4.78236 6.99909 4.80013 6.99669C4.91062 6.98236 4.99476 7.00164 5.09661 6.99654C5.12472 6.99518 5.10479 6.97561 5.11039 6.97387C5.16842 6.95681 5.12519 6.99196 5.16192 6.99584C5.26482 7.00681 5.37952 7.00524 5.48358 7.00274C5.5218 7.00179 5.47884 6.97909 5.51314 6.9785C5.71616 6.97459 5.92722 6.97677 6.12535 6.98928C6.16266 6.99167 6.13919 7.00915 6.14696 7.01314C6.20055 7.04107 6.27909 7.00298 6.29716 6.99935C6.37933 6.98278 6.41125 6.99823 6.48382 6.99535C6.83831 6.98099 7.27601 6.99122 7.61063 6.99755C8.04667 7.00569 8.38503 7.02231 8.80085 7.01799C8.82728 7.01774 8.80063 6.99449 8.82341 6.99398C9.11754 6.98837 9.40711 6.99746 9.70183 6.99074C9.72601 6.99023 9.69115 6.96819 9.72997 6.96663C9.80959 6.96328 9.91045 6.96448 9.99095 6.97152C10.0302 6.97491 9.97755 6.99382 10.0171 6.99685C10.1091 7.00394 10.2077 7.00551 10.3023 7.00197C10.3425 7.00042 10.2818 6.97788 10.3341 6.97762C10.6903 6.97538 11.0401 6.9715 11.4 7.00069C11.4247 7.0027 11.4463 7.04851 11.4988 7.03972C11.5027 7.02701 11.5025 7.01205 11.5043 6.99846C11.6431 6.9965 11.7815 6.99621 11.9198 6.99687L12.4482 7.00236L12.0739 7.36897C11.8052 7.63514 11.5322 7.89545 11.2617 8.16341C11.2461 8.17884 11.29 8.16921 11.26 8.19918C11.086 8.37262 10.9221 8.54605 10.7274 8.70666C10.7081 8.72262 10.6869 8.68338 10.6395 8.7399C10.6312 8.7499 10.557 8.83217 10.5433 8.85895C10.5416 8.86269 10.5699 8.86251 10.5451 8.88813C10.4131 9.0241 10.2707 9.16147 10.1288 9.28926L10.1305 9.00757C10.1423 9.02095 10.1539 9.03432 10.1655 9.04768C10.1874 9.07297 10.1474 9.06236 10.1628 9.0805C10.2726 9.20907 10.4123 9.3291 10.5111 9.4579C10.5771 9.54416 10.523 9.54121 10.5372 9.60746C10.5392 9.61682 10.5853 9.66519 10.5726 9.68234C10.541 9.7256 10.477 9.74285 10.446 9.7917C10.4393 9.80218 10.5111 9.85708 10.4531 9.83965C10.4491 9.83837 10.3969 9.79874 10.3786 9.79426C10.3659 9.7911 10.3646 9.82037 10.3425 9.81028C10.3203 9.80018 10.3157 9.76982 10.282 9.75012C10.2483 9.73052 10.2424 9.75933 10.1879 9.7076ZM10.8139 5.14796C10.8415 5.20439 10.9005 5.15771 10.8425 5.12495C10.8396 5.12342 10.8125 5.14509 10.8139 5.14796ZM12.6888 7.51919C12.7671 7.48761 12.7703 7.41576 12.7136 7.43647C12.6569 7.4572 12.6651 7.52884 12.6888 7.51919ZM12.1366 8.10546C12.2192 8.05969 12.1543 7.97461 12.1007 8.05849C12.0976 8.06334 12.1318 8.10814 12.1366 8.10546ZM10.3441 9.42439C10.344 9.42567 10.3768 9.46071 10.3783 9.46085C10.4132 9.46256 10.3475 9.3925 10.3441 9.42439ZM11.5903 8.68888C11.6205 8.67899 11.6664 8.60962 11.6289 8.62189C11.5987 8.63178 11.5527 8.70121 11.5903 8.68888ZM10.4763 6.39198C10.4753 6.39087 10.4409 6.38987 10.4416 6.39616C10.4439 6.41645 10.4919 6.41073 10.4763 6.39198ZM10.6311 9.64982C10.7757 9.5108 10.9237 9.48673 10.7622 9.63421C10.733 9.66092 10.8028 9.55417 10.7616 9.58419C10.6862 9.63916 10.6819 9.72131 10.5946 9.76695C10.5787 9.77517 10.6227 9.65761 10.6312 9.64948C10.6312 9.6496 10.6311 9.64971 10.6311 9.64982ZM10.7746 5.23565C10.7747 5.23719 10.8078 5.27155 10.8093 5.27167C10.8443 5.27313 10.7778 5.2039 10.7746 5.23565ZM8.46737 6.34575C8.46474 6.34364 8.35414 6.34167 8.35053 6.34361C8.29284 6.38243 8.51644 6.38653 8.46737 6.34575ZM11.5006 4.70125C11.5543 4.72113 11.6003 4.76313 11.6084 4.81365C11.573 4.77598 11.5363 4.73903 11.5006 4.70125Z" + fill="black" fill-opacity="0.85" /> +</svg> + \ No newline at end of file diff --git a/public/keepsimple_/assets/icons/user-dropdown/settings.svg b/public/keepsimple_/assets/icons/user-dropdown/settings.svg new file mode 100644 index 0000000..7a145ec --- /dev/null +++ b/public/keepsimple_/assets/icons/user-dropdown/settings.svg @@ -0,0 +1,9 @@ +<svg width="15" height="16" viewBox="0 0 15 16" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path + d="M5.89469 15.0907L5.59344 12.6805C5.32747 12.6004 5.03983 12.4743 4.73052 12.3022C4.42122 12.1302 4.15816 11.946 3.94135 11.7495L1.71844 12.6949L0.164062 9.98655L2.08552 8.5378C2.06094 8.38725 2.04066 8.23211 2.02469 8.07239C2.00858 7.91266 2.00052 7.75746 2.00052 7.60676C2.00052 7.46676 2.00858 7.31961 2.02469 7.1653C2.04066 7.01086 2.06094 6.83697 2.08552 6.64364L0.164062 5.19489L1.71844 2.51864L3.92531 3.44801C4.1742 3.24079 4.44344 3.05384 4.73302 2.88718C5.02247 2.72051 5.30392 2.59176 5.5774 2.50093L5.89469 0.0907192H9.00385L9.30511 2.51697C9.62455 2.62919 9.90684 2.75794 10.152 2.90322C10.3971 3.0485 10.6495 3.23009 10.9093 3.44801L13.1801 2.51864L14.7345 5.19489L12.7489 6.69176C12.7948 6.86371 12.8205 7.02155 12.8259 7.1653C12.8312 7.30891 12.8339 7.45072 12.8339 7.59072C12.8339 7.72003 12.8285 7.85648 12.8178 8.00009C12.8071 8.14384 12.7825 8.31773 12.7441 8.52176L14.6976 9.98655L13.1432 12.6949L10.9093 11.7334C10.6495 11.9513 10.3883 12.1383 10.1255 12.2943C9.86274 12.4502 9.58927 12.5736 9.30511 12.6645L9.00385 15.0907H5.89469ZM6.61594 14.2574H8.24573L8.55344 12.0009C8.9733 11.8898 9.35122 11.7373 9.68719 11.5434C10.0233 11.3495 10.3655 11.0838 10.7136 10.7461L12.7922 11.6324L13.6207 10.2157L11.797 8.84551C11.8664 8.60829 11.9124 8.39009 11.9349 8.19093C11.9573 7.99162 11.9684 7.79155 11.9684 7.59072C11.9684 7.37919 11.9573 7.17912 11.9349 6.99051C11.9124 6.80204 11.8664 6.59454 11.797 6.36801L13.6528 4.96572L12.8243 3.54905L10.6976 4.44009C10.4455 4.16343 10.1141 3.90405 9.70323 3.66197C9.29253 3.42002 8.90392 3.25954 8.5374 3.18051L8.2826 0.924053H6.62073L6.36115 3.16447C5.94128 3.25419 5.55531 3.39871 5.20323 3.59801C4.85128 3.79718 4.50115 4.07093 4.15281 4.41926L2.07427 3.54905L1.24573 4.96572L3.05344 6.31509C2.98399 6.50204 2.93538 6.70503 2.9076 6.92405C2.87983 7.14308 2.86594 7.37065 2.86594 7.60676C2.86594 7.81829 2.87983 8.02822 2.9076 8.23655C2.93538 8.44489 2.97865 8.64787 3.0374 8.84551L1.24573 10.2157L2.07427 11.6324L4.13677 10.7574C4.46372 11.0875 4.80316 11.3522 5.1551 11.5516C5.50719 11.7507 5.90385 11.9059 6.3451 12.017L6.61594 14.2574ZM7.42677 9.67405C8.00802 9.67405 8.50059 9.47211 8.90448 9.06822C9.30823 8.66447 9.5101 8.17197 9.5101 7.59072C9.5101 7.00947 9.30823 6.51697 8.90448 6.11322C8.50059 5.70933 8.00802 5.50739 7.42677 5.50739C6.84247 5.50739 6.34913 5.70933 5.94677 6.11322C5.54455 6.51697 5.34344 7.00947 5.34344 7.59072C5.34344 8.17197 5.54455 8.66447 5.94677 9.06822C6.34913 9.47211 6.84247 9.67405 7.42677 9.67405Z" + fill="black" fill-opacity="0.85" /> + <path + d="M5.57927 14.5624C5.5317 14.2343 5.48473 13.8024 5.45327 13.4736C5.44338 13.3705 5.46302 13.4209 5.45679 13.3497C5.44457 13.2104 5.42198 13.0821 5.41095 12.9443C5.40736 12.8987 5.43525 12.9526 5.43101 12.9047C5.42494 12.8368 5.418 12.7698 5.41057 12.7034L5.54027 12.857C5.3475 12.7961 5.16434 12.7245 4.98077 12.6343C4.86636 12.5779 4.75483 12.5178 4.64556 12.4549C4.35756 12.289 4.08053 12.0992 3.83228 11.8698L4.00492 11.8989C3.26426 12.2044 2.52549 12.5127 1.77418 12.8259L1.65937 12.8759L1.59491 12.7658C1.56553 12.7137 1.53612 12.6616 1.50666 12.6094C1.29145 12.2281 1.04304 11.757 0.810708 11.369C0.78357 11.3237 0.783256 11.3601 0.77694 11.3522C0.678359 11.2271 0.736693 11.254 0.689778 11.1624C0.503488 10.7986 0.278986 10.404 0.0772515 10.0668C0.0721544 10.0583 0.0675413 10.0508 0.0633601 10.0443L0.012122 9.95679L0.0941609 9.89384C0.187813 9.81529 0.058112 9.87397 0.19615 9.79409C0.206318 9.78816 0.184234 9.82932 0.222092 9.80338C0.307921 9.74455 0.463294 9.62302 0.528557 9.57575C0.654394 9.48474 0.674787 9.46912 0.792187 9.38088C0.95278 9.26039 1.1493 9.12439 1.31863 8.99117C1.35474 8.96269 1.29406 8.98332 1.35056 8.93645C1.40711 8.88954 1.56316 8.77401 1.61827 8.73838C1.6734 8.70274 1.66063 8.73211 1.67206 8.72802C1.76654 8.69498 1.92044 8.52604 1.94287 8.50781C1.96794 8.48755 1.99289 8.46757 2.01771 8.44787L1.97436 8.55595C1.94388 8.39422 1.92363 8.23767 1.90958 8.0839C1.89483 7.9237 1.88942 7.76561 1.89214 7.60676C1.89475 7.457 1.90571 7.30765 1.92154 7.15533C1.92156 7.15507 1.92159 7.15481 1.92162 7.15454C1.93936 6.98259 1.95872 6.80559 1.97929 6.63013L2.02105 6.72914C1.85354 6.60538 1.68746 6.48274 1.53333 6.36579C1.19431 6.10845 0.91282 5.8826 0.581541 5.63516C0.546593 5.60903 0.573226 5.65865 0.530512 5.62677C0.38261 5.51637 0.235381 5.40578 0.0888448 5.29465L0.000669792 5.22933L0.0560239 5.13214C0.247966 4.80377 0.442531 4.47807 0.642682 4.15483C0.672479 4.10674 0.653786 4.18016 0.684623 4.13274C0.873044 3.84221 1.18324 3.38952 1.20845 3.16661C1.32916 2.96579 1.47515 2.72167 1.59613 2.54955C1.65239 2.4695 1.64391 2.51214 1.66299 2.48643L1.69064 2.43788L1.74332 2.45954C1.75411 2.46558 1.77554 2.47441 1.81922 2.48989C1.85456 2.50245 1.81735 2.46535 1.86977 2.48555C2.09044 2.57063 2.32597 2.67679 2.54545 2.75815C2.59012 2.77465 2.58501 2.7533 2.59867 2.75559C2.71308 2.77576 2.8703 2.88827 2.90698 2.90709C3.18649 3.04988 3.40069 3.13022 3.66921 3.24391C3.73152 3.2703 3.66703 3.21735 3.72732 3.24196C3.80771 3.27486 3.8887 3.30841 3.96977 3.34244L3.85202 3.35998C4.05097 3.19377 4.26581 3.04327 4.48173 2.91709C4.5465 2.87953 4.4988 2.93309 4.53027 2.91612C4.60765 2.87458 4.64548 2.84143 4.68739 2.80789C4.72053 2.78149 4.75635 2.7549 4.81685 2.72628C4.84576 2.71263 4.83812 2.73645 4.84415 2.73536C4.93792 2.71893 4.98919 2.64649 5.0101 2.63525C5.20921 2.52785 5.37144 2.48733 5.55545 2.43487L5.50838 2.49184C5.51887 2.43364 5.52831 2.37257 5.5356 2.30573C5.5392 2.27228 5.50755 2.34462 5.51901 2.25076C5.59523 1.62539 5.68816 0.965621 5.78695 0.349684C5.80228 0.253916 5.80958 0.324681 5.81239 0.3189C5.85684 0.224459 5.82307 0.155118 5.82561 0.123569C5.82679 0.109688 5.8281 0.0958782 5.82954 0.0821425L5.83651 0.0254987L5.89469 0.0250068C6.1283 0.0187011 6.34492 0.0478298 6.50491 -5.36442e-07C7.34077 0.0139116 8.17359 -0.00100152 9.00385 0.0146631L9.0704 0.0141005L9.07933 0.0813478C9.1022 0.299062 9.12294 0.516861 9.14047 0.734889C9.14159 0.748171 9.11786 0.727067 9.12019 0.75355C9.14794 1.0725 9.17267 1.00751 9.23827 1.21269C9.25476 1.26437 9.22705 1.43128 9.22532 1.44596C9.21887 1.49946 9.18127 1.44947 9.18093 1.46716C9.17919 1.61339 9.27855 1.57726 9.30267 1.77125C9.30325 1.77734 9.28126 1.75419 9.28141 1.7707C9.28182 1.82201 9.29553 1.87124 9.29519 1.92154C9.29426 2.03669 9.24958 2.08321 9.29998 2.25265C9.30646 2.27409 9.36032 2.23344 9.37908 2.40698C9.3811 2.42574 9.38543 2.46189 9.39081 2.50633L9.33373 2.43549C9.44894 2.47553 9.61943 2.54369 9.67691 2.57191C9.75588 2.61007 9.69309 2.60351 9.69854 2.60673C9.90271 2.72542 9.81687 2.69893 9.90526 2.78285C9.99157 2.86816 10.0033 2.77625 10.0504 2.79027C10.0756 2.79792 10.1277 2.8307 10.1747 2.86496C10.2155 2.89461 10.2527 2.92507 10.2675 2.93831C10.2993 2.9668 10.2486 2.94893 10.2779 2.97229C10.47 3.12914 10.3927 2.99557 10.4687 3.0298C10.6475 3.11355 10.7287 3.25797 10.8605 3.37372C10.8962 3.40534 10.8755 3.36912 10.9092 3.39518C10.9184 3.40234 10.9272 3.4094 10.9358 3.41642L10.8937 3.40984C11.0298 3.35205 11.1281 3.32953 11.2855 3.24638C11.3132 3.23177 11.4409 3.13731 11.544 3.1261C11.5586 3.12458 11.5276 3.15476 11.595 3.13109C11.6957 3.09577 11.8747 3.02632 11.9787 2.97793C12.0554 2.94219 11.9556 2.95421 12.0573 2.92156C12.1025 2.90707 12.0272 2.95472 12.1116 2.92629C12.1956 2.89803 12.4045 2.81178 12.4839 2.7787C12.5632 2.74567 12.512 2.74473 12.5179 2.74084C12.5538 2.71771 12.7026 2.64626 12.7161 2.64077C12.8649 2.5793 13.0118 2.5205 13.1574 2.46318L13.2051 2.4432L13.2319 2.48854C13.5054 2.97441 13.758 3.44681 14.046 3.92524C14.075 3.97333 14.0746 3.93029 14.0792 3.93752C14.1835 4.09916 14.0583 3.99668 14.1093 4.12227C14.137 4.08374 14.17 4.15619 14.2421 4.27083C14.2769 4.32605 14.2735 4.28692 14.278 4.2912C14.3486 4.36203 14.354 4.43679 14.3569 4.45517C14.3676 4.52299 14.4279 4.56857 14.4355 4.61457C14.4432 4.66049 14.3718 4.58603 14.4372 4.69811C14.4689 4.72179 14.4556 4.61812 14.5107 4.70003C14.592 4.82072 14.6906 4.98823 14.7892 5.16309L14.8176 5.21094L14.7726 5.24544C14.52 5.43092 14.2498 5.61889 14.1031 5.72696C13.8629 5.90391 13.7876 5.96421 13.6454 6.06438C13.3886 6.24533 13.4986 6.20006 13.3512 6.32842C13.2033 6.45713 13.2347 6.34083 13.2027 6.34506C13.1711 6.34898 13.1568 6.38018 13.1242 6.39387C13.0916 6.40749 13.1442 6.35427 13.078 6.40008C13.0117 6.44593 12.853 6.60102 12.8402 6.63148C12.8165 6.68805 12.8918 6.67169 12.7902 6.7466L12.8152 6.67402C12.8197 6.69144 12.8244 6.71282 12.8291 6.73907C12.8313 6.75137 12.8029 6.71666 12.8122 6.76349C12.8375 6.89402 12.8558 7.02822 12.8581 7.16409C12.8602 7.30629 12.8604 7.44903 12.8573 7.59072C12.8549 7.69528 12.8488 7.79911 12.8391 7.90137C12.8342 7.95245 12.8154 7.90537 12.8122 7.935C12.8096 7.95877 12.8074 7.98006 12.8054 7.99917C12.7783 8.22673 12.8193 8.14856 12.8343 8.3107C12.7913 8.26937 12.7515 8.33626 12.7116 8.51564L12.7077 8.53553L12.7243 8.54817C12.741 8.56162 12.7591 8.5757 12.7787 8.59042C12.8918 8.67549 12.8864 8.64202 12.9696 8.68365C12.9946 8.69612 13.065 8.76914 13.0862 8.77116C13.1558 8.77809 13.1046 8.68907 13.2891 8.8476C13.2972 8.8546 13.2582 8.85012 13.2869 8.87315C13.4725 9.02213 13.518 9.0089 13.7265 9.15947C13.8899 9.2775 14.1628 9.511 14.3441 9.65167C14.3039 9.69728 14.4856 9.8162 14.581 9.8355C14.6286 9.87204 14.6781 9.90921 14.7276 9.94652L14.7629 9.97252L14.741 10.0115C14.6951 10.091 14.6488 10.1705 14.603 10.2434C14.5766 10.2854 14.5776 10.2484 14.5729 10.2529C14.4994 10.3211 14.5024 10.3975 14.4878 10.4262C14.3278 10.7361 14.1598 10.9669 14.0204 11.2703C14.0155 11.2811 14.0425 11.3186 13.9716 11.3804C13.9669 11.3843 14.0049 11.2796 13.9258 11.4145C13.8466 11.5494 13.6803 11.7939 13.5891 11.992C13.567 12.0399 13.5305 12.1722 13.4542 12.2515C13.444 12.262 13.4413 12.2425 13.4252 12.257C13.3736 12.3038 13.3925 12.3564 13.3223 12.406C13.2656 12.4461 13.1866 12.5369 13.1123 12.6771L13.1573 12.6621C13.1223 12.6484 13.0845 12.6353 13.0441 12.6231C13.0374 12.621 12.9764 12.6315 12.9134 12.6038C12.8127 12.5595 12.6721 12.4914 12.5666 12.4462C12.5161 12.4245 12.5401 12.4577 12.5312 12.4543C12.187 12.319 11.9528 12.1978 11.5923 12.0338C11.5263 12.0037 11.3234 11.9475 11.2032 11.8712C11.0746 11.7896 11.2484 11.7573 10.9466 11.6468L10.8941 11.6237L10.8486 11.6612C10.8426 11.6668 10.8365 11.6727 10.8301 11.6788C10.729 11.7753 10.6666 11.9938 10.4154 12.0849C10.3182 12.1566 10.2189 12.2215 10.1177 12.2811C9.85813 12.4337 9.58604 12.5461 9.2988 12.6448L9.28633 12.6486L9.28456 12.6619C9.27779 12.7276 9.27173 12.7939 9.26664 12.861C9.26492 12.8835 9.2923 12.9585 9.2853 13.0109C9.27483 13.0887 9.25263 13.1293 9.24462 13.1848C9.2106 13.4171 9.19858 13.6321 9.16844 13.8564C9.15704 13.9416 9.14327 13.9096 9.12967 14.0112C9.11609 14.1128 9.13067 14.1834 9.10246 14.3198C9.08107 14.4228 9.02114 14.5209 8.99852 14.6584C9.04424 14.6694 9.03151 14.7641 9.02282 14.9342C9.02117 14.9669 9.04163 14.9341 9.04168 14.9497C9.04214 15.0003 9.02916 15.0462 9.02475 15.0933L9.02264 15.1116L9.00385 15.1118C8.99184 15.1121 8.97981 15.1131 8.96772 15.1149C8.9532 15.1171 8.95251 15.1331 8.94064 15.1358C8.83971 15.1593 8.67342 15.1234 8.64486 15.1171C8.5354 15.0934 8.48425 15.1141 8.40029 15.1048C8.31647 15.0954 8.4418 15.0837 8.34389 15.0781C8.14093 15.0663 7.88015 15.0689 7.67403 15.0682C7.59178 15.068 7.64789 15.0893 7.63612 15.0898C7.46606 15.0952 7.29408 15.0725 7.19978 15.1149C7.08187 15.0052 7.09723 15.1256 6.85413 15.1036C6.83498 15.1018 6.81062 15.05 6.88414 15.0423C6.95765 15.0347 7.06913 15.0509 7.17113 15.0391C7.19528 15.0363 7.33364 14.9877 7.35252 14.9847C7.5004 14.9617 7.52135 15.0392 7.52918 15.0435C7.6179 15.0895 7.78698 15.0371 7.83151 15.0335C8.0352 15.0169 8.20826 15.0278 8.37863 15.0159C8.49006 15.0083 8.50096 14.9575 8.58846 14.9591C8.77201 14.9623 8.88016 14.9917 9.00385 14.9975L8.91138 15.0792C8.92367 15.0079 8.92861 14.9303 8.91858 14.8271C8.91282 14.7672 8.85053 14.8183 8.9198 14.6147C8.92416 14.6019 8.98305 14.4517 8.96912 14.3589C8.96735 14.3473 8.95126 14.3456 8.95175 14.3306C8.95538 14.23 8.97641 14.1653 8.98375 14.0561C8.99108 13.9469 8.99813 13.8155 9.01894 13.6924C9.03146 13.6182 9.07325 13.5262 9.08501 13.4914C9.11862 13.3932 9.09746 13.2808 9.13076 13.2216C9.16425 13.1618 9.18795 13.2897 9.22505 13.1266C9.1841 13.1153 9.14303 13.096 9.1023 13.0809C9.12098 12.9354 9.14148 12.791 9.16214 12.6467L9.17442 12.5542L9.26124 12.5272C9.46091 12.4677 9.65616 12.3916 9.84363 12.294C9.88241 12.2736 9.83234 12.2743 9.87333 12.2518C9.93215 12.2193 9.98869 12.1887 10.0444 12.1576C10.1527 12.097 10.2587 12.0355 10.3684 11.9541C10.4973 11.8583 10.6227 11.7327 10.7478 11.6215C10.7633 11.6175 10.7803 11.6106 10.7984 11.6012L10.8815 11.5327L10.9775 11.5749C11.0798 11.6484 11.278 11.7212 11.4229 11.7877C11.482 11.8148 11.473 11.8249 11.5138 11.847C11.668 11.9302 11.6097 11.8589 11.6562 11.8716C11.856 11.9265 11.8341 12.0219 12.0573 12.1153C12.0692 12.1203 12.2334 12.1352 12.2544 12.1408C12.3886 12.1758 12.2682 12.1661 12.3456 12.2035C12.4868 12.2718 12.5819 12.3261 12.7568 12.385C12.8078 12.4021 12.9385 12.4236 13.0244 12.4875C13.0357 12.4959 13.022 12.5084 13.0317 12.5137C13.1079 12.5543 13.1561 12.5686 13.1952 12.5741L13.0292 12.6294C13.0423 12.579 13.0383 12.5425 13.0617 12.4812C13.1028 12.3733 13.2224 12.2388 13.2494 12.213C13.3199 12.1453 13.2238 12.2812 13.2236 12.2869C13.2217 12.3546 13.2808 12.2404 13.332 12.1567C13.3844 12.1703 13.45 12.0497 13.3849 12.0697C13.3777 12.0721 13.3439 12.1407 13.332 12.1567C13.3305 12.0564 13.3999 11.9223 13.5243 11.8016C13.5826 11.7452 13.5686 11.8221 13.6783 11.6119C13.728 11.5165 13.6762 11.5346 13.7149 11.4474C13.8034 11.2483 13.9727 11.0207 14.0794 10.8242C14.1181 10.7529 14.0617 10.8116 14.0876 10.7626C14.1562 10.6323 14.2335 10.5271 14.3005 10.3952C14.3066 10.3833 14.2724 10.4014 14.2951 10.3614C14.3848 10.2025 14.4721 10.0565 14.561 9.90813L14.6031 10.1126C14.4791 10.016 14.3533 9.91785 14.2149 9.81382C14.0744 9.70828 13.8163 9.52891 13.672 9.41788C13.4219 9.22555 13.1294 8.96876 12.9094 8.8129C12.7659 8.71118 12.7844 8.7508 12.7157 8.71685C12.6901 8.70421 12.6629 8.68679 12.6354 8.66672L12.5445 8.59736L12.566 8.48819C12.5906 8.35156 12.647 8.19111 12.656 8.1649C12.6569 8.16381 12.6406 8.31003 12.6624 8.23386C12.6907 8.19162 12.6559 8.16649 12.656 8.1649C12.6599 8.15414 12.673 8.073 12.6804 7.98987C12.6878 7.90782 12.692 7.82277 12.6912 7.79413C12.6903 7.76228 12.6701 7.77932 12.6699 7.76279C12.6694 7.70525 12.6682 7.64787 12.6662 7.59072C12.6614 7.45124 12.6554 7.3117 12.6487 7.17182C12.6414 7.03034 12.615 6.88413 12.5782 6.73738L12.5481 6.62069L12.6425 6.55074C12.6787 6.52431 12.715 6.49799 12.7515 6.47176C12.7575 6.46773 12.7619 6.49171 12.7759 6.48202C12.9711 6.34697 13.0764 6.23419 13.2231 6.10375C13.3697 5.97332 13.4968 5.88417 13.6118 5.8444C13.7269 5.75177 13.9059 5.63753 14.0093 5.5722C14.1127 5.50688 14.1007 5.4627 14.1087 5.45557C14.302 5.28389 14.4467 5.18694 14.6308 5.05731L14.5855 5.28142C14.5537 5.2224 14.5195 5.15958 14.4803 5.09031C14.399 4.94672 14.2294 4.66688 14.1356 4.51477C14.0615 4.39459 14.0274 4.31605 13.9566 4.20679C13.947 4.192 13.9396 4.21688 13.9363 4.2126C13.8438 4.09845 13.9188 4.13554 13.9109 4.10547C13.8823 3.99642 13.8625 3.93034 13.7569 3.7767C13.7325 3.74125 13.6122 3.66671 13.5696 3.60109C13.5143 3.5157 13.5542 3.53687 13.4957 3.44777C13.4908 3.44013 13.479 3.44917 13.4466 3.39206C13.3061 3.14507 13.1581 2.87492 13.0087 2.61817L13.2552 2.70204C13.2351 2.71026 13.2151 2.7185 13.1952 2.72675C13.1553 2.74327 13.2154 2.74389 13.1578 2.76812C12.8874 2.88179 12.5895 3.00278 12.3208 3.1009C12.2547 3.12499 12.2893 3.09314 12.2733 3.09443C12.1754 3.10273 12.0686 3.19262 12.0486 3.20168C11.6684 3.37496 11.3463 3.48377 10.9845 3.63191L10.8715 3.67705L10.7815 3.60024C10.7076 3.53825 10.6293 3.47679 10.5442 3.41633C10.5211 3.39904 10.3218 3.30882 10.2642 3.22433C10.2605 3.21861 10.2032 3.13187 10.1173 3.1114C10.112 3.11026 10.1511 3.15824 10.0649 3.1033C10.0576 3.0987 10.0499 3.09399 10.0418 3.0892C9.95451 3.03726 9.82016 2.97663 9.71215 2.90351C9.67517 2.87826 9.59421 2.79686 9.45702 2.77671C9.44978 2.77548 9.31214 2.77048 9.22829 2.73563L9.09137 2.68623L9.07511 2.54553C9.07348 2.5204 9.07578 2.49771 9.08419 2.48042C9.0908 2.46707 9.14474 2.47349 9.09743 2.3119C9.08832 2.28104 9.08374 2.33969 9.06615 2.25759C9.03912 2.1318 9.03221 1.96154 8.98948 1.80809C8.98197 1.78133 8.93203 1.66968 8.94744 1.57322C8.94985 1.55812 8.97077 1.58365 8.96662 1.53424C8.94697 1.29927 8.90488 1.0559 8.88749 0.816999C8.8813 0.732387 8.91489 0.771868 8.91158 0.683282C8.90826 0.594673 8.89361 0.417165 8.86931 0.327043C8.84501 0.236901 8.81243 0.342714 8.79176 0.205719C8.78738 0.176694 8.78311 0.14767 8.77892 0.118647L9.00385 0.317378C8.4316 0.328594 7.864 0.30433 7.29209 0.300627C7.20292 0.300046 7.27684 0.31628 7.14544 0.316588C6.81183 0.317419 6.31132 0.324896 5.89469 0.318208L6.12023 0.120411C6.09264 0.306809 6.06442 0.475822 6.03668 0.604209C5.96533 0.934554 5.9998 0.511551 5.95506 0.765274C5.93353 0.887718 5.96828 1.02783 5.96602 1.05777C5.94451 1.35037 5.89478 1.54915 5.86748 1.81146C5.86184 1.86563 5.89001 1.81548 5.88498 1.86156C5.868 2.01895 5.83683 2.18261 5.81882 2.33278C5.81079 2.40015 5.82861 2.38989 5.81922 2.45162C5.81514 2.47865 5.811 2.50509 5.80675 2.53112L5.78635 2.67655L5.65031 2.72047C5.54441 2.7519 5.4451 2.78265 5.33605 2.81589C5.3238 2.81968 5.39445 2.76704 5.29704 2.80837C5.1543 2.86964 4.97775 2.94471 4.82365 3.04456C4.80787 3.05474 4.79238 3.06512 4.7772 3.07573C4.72866 3.11012 4.74579 3.14231 4.62492 3.18773C4.59985 3.19764 4.60327 3.14071 4.501 3.25472C4.48265 3.27344 4.31101 3.4568 4.19637 3.50563C4.16759 3.51741 4.08869 3.53783 4.03702 3.58218L3.95371 3.65037L3.85755 3.60891C3.85347 3.60726 3.84935 3.60573 3.84522 3.60436C3.83568 3.60134 3.86467 3.6353 3.80783 3.61349C3.60767 3.53629 3.40137 3.44709 3.1959 3.36737C3.14102 3.34612 3.21372 3.39925 3.13218 3.36696C2.90793 3.27821 2.63255 3.15651 2.41777 3.05902C2.3386 3.02304 2.40064 3.03052 2.39554 3.02635C2.3136 2.95884 2.24225 2.97333 2.21021 2.96244C2.01115 2.89416 1.87128 2.81433 1.69094 2.74393C1.64119 2.72445 1.6685 2.75718 1.65802 2.75466C1.64288 2.75088 1.6316 2.74761 1.62323 2.7447L1.93055 2.64183C1.9063 2.69056 1.90971 2.632 1.87668 2.68223C1.769 2.84579 1.66089 3.03505 1.56375 3.20729C1.52809 3.27057 1.58872 3.21138 1.55649 3.26804C1.36612 3.60359 1.16283 3.94928 0.962928 4.26855C0.925253 4.32865 0.932541 4.2813 0.921669 4.29208C0.846378 4.3661 0.804366 4.51428 0.790255 4.5458C0.726164 4.68914 0.682341 4.73382 0.615583 4.8545C0.535332 4.99972 0.448975 5.15248 0.359536 5.30842L0.300153 5.01439C0.741296 5.34325 1.20861 5.70435 1.5884 5.99668C1.80948 6.1668 2.01319 6.32503 2.21033 6.4781L2.30711 6.55237L2.29118 6.66979C2.26642 6.84467 2.24366 7.01533 2.22402 7.18592C2.20782 7.32555 2.19801 7.46529 2.19726 7.60676C2.19656 7.75119 2.20413 7.89924 2.22033 8.05265C2.22174 8.06611 2.22318 8.07942 2.22466 8.09278C2.23011 8.14144 2.24794 8.08991 2.25301 8.13171C2.26806 8.25607 2.28528 8.37947 2.30538 8.5019L2.32623 8.63672L2.21964 8.71568C1.87833 8.97346 1.53637 9.22604 1.19542 9.48958C1.15904 9.51766 1.2252 9.49537 1.16724 9.54103C1.04846 9.63478 0.89471 9.74921 0.768334 9.83568C0.706719 9.87789 0.775241 9.80254 0.713452 9.84534C0.574421 9.94158 0.429118 10.049 0.292011 10.1562L0.348389 9.88076C0.351515 9.88599 0.354641 9.89121 0.357767 9.89642C0.397161 9.96194 0.359306 9.8507 0.408987 9.93674C0.747807 10.5226 1.08203 11.0971 1.39714 11.7048C1.41874 11.7465 1.39949 11.805 1.45673 11.8871C1.47149 11.8873 1.48426 11.8795 1.49768 11.8755C1.63589 12.1123 1.77216 12.3492 1.90741 12.5864L1.63316 12.4944C2.28578 12.219 2.93927 11.9506 3.59618 11.6731C3.63455 11.6569 3.55881 11.6627 3.63305 11.6312C3.70621 11.6002 3.77893 11.5691 3.85145 11.5381L3.98899 11.4809L4.09563 11.5793C4.31733 11.7789 4.56875 11.9473 4.8374 12.1099C4.89078 12.1422 4.9445 12.1741 4.99876 12.2057C5.03835 12.2283 4.99773 12.257 5.12208 12.3098C5.14375 12.32 5.33083 12.3971 5.38259 12.4062C5.38959 12.4074 5.3632 12.3757 5.42308 12.3985C5.49925 12.4273 5.57663 12.4539 5.65462 12.4775L5.78811 12.5189L5.80386 12.6542C5.8424 12.9644 5.87713 13.2815 5.90577 13.5873C5.91165 13.6505 5.88221 13.5861 5.88622 13.6312C5.91478 13.9506 5.97403 14.2945 5.99289 14.6008C6.00544 14.8058 5.95962 14.735 5.93729 14.8476C5.93414 14.8635 5.94908 14.9896 5.92905 14.9987C5.87871 15.022 5.81367 14.9681 5.76091 15.0001C5.74953 15.0069 5.78358 15.174 5.74201 15.0778C5.73919 15.071 5.71425 14.9499 5.70062 14.921C5.69117 14.9009 5.67469 14.9414 5.66061 14.8997C5.64653 14.858 5.65843 14.8087 5.63931 14.7391C5.62005 14.6695 5.59983 14.7037 5.57927 14.5624ZM14.4745 5.2778C14.5769 5.22617 14.5452 5.15644 14.4585 5.24419C14.4544 5.24851 14.4693 5.2805 14.4745 5.2778ZM9.54229 12.4957C9.6896 12.4717 9.75861 12.3839 9.65594 12.4031C9.55408 12.4206 9.4979 12.5024 9.54229 12.4957ZM9.09755 13.8947C9.1446 13.7268 9.04272 13.6868 9.04123 13.8727C9.04111 13.8835 9.09481 13.9045 9.09755 13.8947ZM5.86443 14.3476C5.86364 14.3493 5.874 14.4399 5.87524 14.442C5.90483 14.4872 5.88411 14.306 5.86443 14.3476ZM8.68434 15.0625C8.73816 15.0769 8.89313 15.0603 8.82626 15.0425C8.77242 15.0281 8.61731 15.0447 8.68434 15.0625ZM10.841 3.40495C10.8404 3.40293 10.7903 3.36093 10.7873 3.36672C10.7782 3.38521 10.8519 3.43809 10.841 3.40495ZM6.10441 15.0638C6.48558 15.0678 6.71669 15.1553 6.3016 15.1455C6.22643 15.1437 6.4636 15.1175 6.36793 15.1096C6.19286 15.0952 6.07662 15.1502 5.89797 15.1208C5.86563 15.1154 6.08266 15.0633 6.10508 15.0636C6.10486 15.0637 6.10463 15.0637 6.10441 15.0638ZM14.5805 5.3104C14.5829 5.30983 14.6557 5.25607 14.6569 5.25398C14.6818 5.2055 14.5349 5.3138 14.5805 5.3104ZM9.09032 0.496942C9.0918 0.491721 9.06786 0.282924 9.06509 0.276363C9.01306 0.172349 9.06134 0.594496 9.09032 0.496942ZM14.346 9.65513C14.4394 9.6953 14.5357 9.76396 14.5807 9.83521C14.5031 9.77502 14.4241 9.71553 14.346 9.65513ZM7.11497 14.0099C7.40855 14.0034 7.7934 14.0104 8.08587 14.0199C8.17753 14.0229 8.13112 14.0362 8.1944 14.0388C8.21166 14.0395 8.22875 14.04 8.24573 14.0403L8.03067 14.2281C8.04685 14.1246 8.05633 14.0249 8.07578 13.9213C8.08334 13.8815 8.09732 13.9343 8.10476 13.8924C8.14542 13.6629 8.16989 13.4439 8.20619 13.2108C8.27035 12.7987 8.33237 12.3889 8.3933 11.9791L8.40665 11.8737L8.51209 11.8447C8.89619 11.7481 9.26869 11.6085 9.61254 11.4141C9.89224 11.2559 10.1552 11.0593 10.4043 10.8412C10.4735 10.7806 10.5455 10.716 10.6185 10.648L10.6822 10.5851L10.7673 10.6204C11.0571 10.7508 11.3701 10.8945 11.6518 11.0078C11.6952 11.0252 11.6768 10.9973 11.6856 10.9994C11.8231 11.0328 11.7658 11.0488 11.8477 11.0891C12.1634 11.2443 12.5209 11.3991 12.8372 11.5269L12.6932 11.5745C12.6981 11.5658 12.703 11.5571 12.7078 11.5484C12.7799 11.4191 12.6734 11.5287 12.7664 11.4104C12.7728 11.4022 12.7707 11.4445 12.793 11.4105C12.8435 11.3334 12.9287 11.1808 12.9661 11.12C13.0382 11.0028 13.0495 10.9831 13.1154 10.8709C13.2056 10.7176 13.3208 10.5399 13.4133 10.373C13.433 10.3373 13.3884 10.3737 13.4183 10.3159C13.4365 10.2806 13.4767 10.2116 13.5127 10.1525L13.5455 10.3158C13.5109 10.2887 13.4799 10.2637 13.463 10.2487C13.4195 10.2101 13.4487 10.2124 13.4426 10.2033C13.3935 10.1282 13.209 10.0425 13.1879 10.0279C12.8041 9.76181 12.4986 9.50216 12.1483 9.23905C12.013 9.13747 11.8717 9.03393 11.7323 8.93158L11.6731 8.88799L11.6937 8.81527C11.7379 8.65766 11.7739 8.50079 11.8 8.35257C11.8105 8.29333 11.8193 8.23543 11.8264 8.17867C11.8511 7.97728 11.8655 7.78735 11.8675 7.59072C11.8683 7.50117 11.8667 7.41039 11.8615 7.31679C11.8594 7.27897 11.8382 7.32445 11.8354 7.27846C11.8296 7.18687 11.8214 7.09575 11.8106 7.00525C11.7862 6.80394 11.7388 6.60271 11.6809 6.4036L11.6556 6.32371L11.7238 6.27113C11.8793 6.15692 12.0357 6.04398 12.1934 5.93251C12.2343 5.9036 12.1953 5.95904 12.237 5.93115C12.4917 5.76002 12.9031 5.50039 12.9939 5.31877C13.1616 5.19646 13.3648 5.04747 13.5239 4.95005C13.6078 4.89863 13.5701 4.94827 13.6147 4.91523L13.5982 4.99767C13.5921 4.98697 13.5824 4.97175 13.5674 4.94957C13.5488 4.92203 13.5535 4.96923 13.5269 4.92716C13.4149 4.75006 13.305 4.54933 13.1916 4.37567C13.1685 4.34036 13.159 4.35923 13.1502 4.35054C13.0773 4.27696 13.0298 4.11123 13.0141 4.07823C12.9241 3.89002 12.8397 3.74724 12.7483 3.59346L12.8583 3.63019C12.8034 3.65363 12.7472 3.67769 12.6875 3.70253C12.6322 3.72556 12.7067 3.72011 12.6538 3.74306C12.3792 3.86181 12.0926 3.97968 11.8184 4.08314C11.7573 4.1061 11.8048 4.06427 11.7752 4.07428C11.645 4.11868 11.6317 4.16572 11.507 4.20898C11.4808 4.21814 11.4885 4.19611 11.4831 4.19631C11.3985 4.19936 11.3513 4.26503 11.3329 4.27377C11.1068 4.38195 10.9408 4.40669 10.7233 4.50142L10.6808 4.51971L10.6485 4.48488C10.6437 4.47983 10.6389 4.47476 10.6339 4.46968C10.6135 4.44896 10.6422 4.51153 10.5858 4.45289C10.32 4.17991 9.99519 3.94199 9.65977 3.73572C9.51776 3.64838 9.37387 3.56726 9.22936 3.49479C9.15365 3.4573 9.21525 3.46726 9.21131 3.46321C9.14481 3.39827 9.07545 3.41614 9.04963 3.4074C8.85191 3.33908 8.67055 3.25209 8.51927 3.26459L8.45954 3.25231L8.45192 3.19016C8.44989 3.18532 8.44777 3.18055 8.44557 3.17585C8.37499 2.42443 8.27498 1.67914 8.20796 0.932482L8.2826 0.999175C8.10283 0.995054 7.92318 0.989037 7.74367 0.980257C7.73187 0.979731 7.75301 0.958785 7.72948 0.957827C7.44607 0.946066 7.5005 0.97862 7.31298 1.01843C7.26574 1.02843 7.12204 0.980363 7.10932 0.976839C7.063 0.963855 7.11105 0.932692 7.09553 0.930178C6.96717 0.910432 6.98809 1.01349 6.81493 1.01352C6.80952 1.01335 6.83226 0.994381 6.81773 0.992495C6.77258 0.986573 6.72781 0.994111 6.68363 0.987581C6.65986 0.98403 6.63969 0.978547 6.62073 0.972615L6.66897 0.929642C6.64269 0.988708 6.61317 1.03446 6.62171 1.15439C6.62322 1.17424 6.68473 1.15132 6.66419 1.30457C6.65595 1.36566 6.62555 1.63678 6.61299 1.7123C6.60044 1.78772 6.58776 1.73347 6.58632 1.73878C6.5379 1.94031 6.53662 1.86162 6.48812 1.95978C6.43976 2.05795 6.5301 2.03964 6.53498 2.08251C6.53982 2.12545 6.50204 2.27294 6.49068 2.30895C6.47931 2.34493 6.47274 2.29765 6.46493 2.32991C6.41353 2.54389 6.4971 2.43017 6.50263 2.50328C6.51581 2.67566 6.43604 2.79948 6.41183 2.95309C6.40529 2.99465 6.42394 2.96228 6.421 2.99962C6.41589 3.06367 6.40728 3.11616 6.3991 3.16887L6.39624 3.19577L6.36913 3.20183C6.30094 3.21372 6.23248 3.22752 6.14376 3.26228C6.11765 3.27207 6.0001 3.34625 5.90912 3.34714C5.89609 3.34721 5.92426 3.32043 5.86379 3.33727C5.77333 3.36197 5.61449 3.42088 5.52528 3.4681C5.45946 3.50275 5.54768 3.49108 5.45998 3.52319C5.42106 3.53786 5.48354 3.49023 5.41082 3.5193C5.36712 3.53685 5.28541 3.57759 5.21441 3.61776C5.16778 3.64395 5.12561 3.66958 5.10017 3.68544C5.03615 3.72572 5.08216 3.72111 5.07765 3.72547C5.05016 3.75106 4.93591 3.83908 4.92583 3.84675C4.658 4.03448 4.41469 4.2365 4.18733 4.45378L4.16472 4.47682L4.13396 4.46429C3.85593 4.3407 3.57912 4.21899 3.29069 4.10423C3.2445 4.08583 3.2668 4.1183 3.25967 4.1157C3.09924 4.05822 3.24492 4.05769 3.1426 3.99426C3.14172 4.04085 3.08001 4.00651 2.9676 3.9646C2.91341 3.94444 2.93596 3.97206 2.93043 3.9716C2.84157 3.96202 2.79926 3.90863 2.78768 3.89649C2.74491 3.85174 2.67666 3.85488 2.64744 3.8247C2.61819 3.79465 2.70951 3.80648 2.60333 3.76237C2.56761 3.76422 2.63069 3.83456 2.54764 3.80691C2.41207 3.7618 2.23132 3.68629 2.05018 3.60659L2.12812 3.58054C1.99306 3.80221 1.85079 4.0236 1.77332 4.15235C1.63705 4.37882 1.59642 4.45395 1.51384 4.58405C1.36466 4.81905 1.44208 4.74623 1.36675 4.90228C1.29118 5.05875 1.26984 4.94872 1.24354 4.96219C1.24285 4.96253 1.24218 4.96289 1.24153 4.96326C1.2537 4.99502 1.28374 4.99838 1.30237 5.0229C1.32143 5.04803 1.26239 5.01745 1.31754 5.06271C1.37274 5.108 1.54591 5.20198 1.57611 5.20378C1.64001 5.20752 1.59171 5.12533 1.73517 5.24863C1.74341 5.25574 1.70355 5.25026 1.73567 5.27669C1.99123 5.48614 2.26548 5.69201 2.52175 5.89983C2.55697 5.92843 2.51154 5.92152 2.53189 5.93836C2.74382 6.11383 2.68693 6.02583 2.83186 6.08344C2.7725 6.10644 2.8195 6.1827 2.98643 6.3077C3.00586 6.32226 3.02141 6.3328 3.0344 6.3406L3.0236 6.30401C3.00782 6.36591 3.02514 6.37054 3.01796 6.43674C3.01511 6.46112 2.97544 6.54205 2.98248 6.56056C3.00572 6.62077 3.06021 6.5495 3.00187 6.75147C2.9994 6.76044 2.9854 6.72771 2.97829 6.75902C2.96179 6.83293 2.95793 6.8845 2.95753 6.93038C2.95726 7.01093 2.9659 7.07423 2.95842 7.21659C2.95327 7.31718 2.94022 7.46247 2.93362 7.60676C2.92847 7.71401 2.92737 7.82057 2.93127 7.90632C2.86976 7.90552 2.89843 8.09709 2.95029 8.16827C2.95246 8.18861 2.95489 8.20919 2.95754 8.2299C2.97167 8.34117 2.99298 8.45588 3.01113 8.56067C3.01864 8.60344 2.99532 8.57949 2.99465 8.58524C2.98432 8.67447 3.0388 8.72004 3.04761 8.74657C3.05731 8.77627 3.06675 8.80538 3.07603 8.83403L3.08408 8.86021L3.06188 8.87752C2.85324 9.04518 2.65734 9.16718 2.4637 9.34933C2.45605 9.35654 2.46819 9.40029 2.38696 9.42369C2.38163 9.4251 2.44725 9.35078 2.3363 9.43377C2.22533 9.51677 2.00411 9.65753 1.86315 9.7899C1.82903 9.82191 1.75626 9.9206 1.66496 9.95679C1.65276 9.96156 1.65636 9.94359 1.63784 9.9493C1.57816 9.96797 1.57854 10.0213 1.50172 10.0345C1.43778 10.0455 1.33663 10.0929 1.2244 10.1878L1.19985 10.2062L1.21542 10.2334C1.23162 10.2583 1.24969 10.2838 1.26974 10.3097C1.27348 10.3147 1.3258 10.3373 1.35614 10.3903C1.40455 10.4748 1.46828 10.5977 1.51981 10.6853C1.5445 10.7273 1.54685 10.6898 1.55145 10.6969C1.72687 10.9736 1.82838 11.1842 1.99846 11.491C2.01373 11.5187 2.04991 11.5676 2.08791 11.6244L2.0681 11.6178C2.1316 11.5862 2.20368 11.5537 2.26654 11.5396C2.40201 11.5089 2.3129 11.6585 2.59253 11.5132C2.70534 11.4547 2.80205 11.2719 3.03808 11.2453C3.41057 11.0703 3.77395 10.9476 4.14384 10.774L4.12391 10.7701C4.14603 10.7909 4.16853 10.8113 4.19148 10.8315C4.20655 10.8448 4.27703 10.8623 4.31071 10.8943C4.36078 10.942 4.37769 10.98 4.41418 11.0137C4.56714 11.1549 4.72639 11.2605 4.89055 11.3743C4.95326 11.417 4.92119 11.4174 4.9975 11.467C5.05131 11.5015 5.09905 11.517 5.1577 11.547C5.18261 11.5597 5.20961 11.575 5.24028 11.5952C5.31784 11.6462 5.38046 11.7308 5.4925 11.787C5.51609 11.746 5.59279 11.7831 5.73767 11.8259C5.76554 11.8341 5.74241 11.8078 5.75587 11.8108C5.81057 11.8228 5.8542 11.853 5.90699 11.8616C5.91984 11.8637 5.92554 11.8488 5.93628 11.8496C6.02721 11.8564 6.15614 11.9324 6.17906 11.945C6.25022 11.9856 6.29645 11.9866 6.34916 12.0009L6.36009 12.0035L6.36159 12.015C6.36283 12.0267 6.36359 12.039 6.36353 12.0522C6.36316 12.1271 6.33824 12.0182 6.34301 12.105C6.35294 12.2849 6.38323 12.5139 6.40441 12.6953C6.41296 12.7677 6.42814 12.7158 6.42986 12.726C6.4533 12.875 6.44909 13.0289 6.50124 13.1068C6.40485 13.2236 6.52271 13.1957 6.52675 13.4121C6.52702 13.4291 6.4781 13.4568 6.46272 13.393C6.44735 13.3293 6.4516 13.2293 6.42897 13.1411C6.42364 13.1202 6.36066 13.0043 6.35573 12.9881C6.31716 12.8608 6.3919 12.833 6.3953 12.8256C6.43149 12.7421 6.36152 12.5997 6.35319 12.561C6.31507 12.3838 6.3075 12.2303 6.27764 12.0819C6.27311 12.0594 6.26685 12.0418 6.25981 12.0273L6.32413 12.1003C6.27024 12.1045 6.2433 12.1281 6.18486 12.1108C5.93145 12.033 5.86976 11.9373 5.61686 11.9036C5.5629 11.895 5.58915 11.9687 5.43045 11.8506C5.4201 11.8433 5.30874 11.7471 5.2247 11.7311C5.21405 11.7292 5.20683 11.7436 5.19407 11.7385C5.15052 11.7205 5.11687 11.7007 5.08258 11.6798C5.04951 11.6595 5.0159 11.6381 4.97232 11.6152C4.88341 11.5685 4.77718 11.5096 4.68749 11.4382C4.63313 11.3953 4.58146 11.3179 4.56046 11.2919C4.50111 11.2188 4.40328 11.1821 4.37693 11.1252C4.35102 11.0681 4.45979 11.1118 4.35986 11.001C4.32773 11.0287 4.2894 11.0522 4.2543 11.0774C4.17759 11.0073 4.10419 10.9346 4.03315 10.86L4.19373 10.8916C3.98903 10.9737 3.78439 11.054 3.57986 11.1422C3.54298 11.1581 3.58963 11.1629 3.55032 11.1805C3.38439 11.2548 3.23195 11.302 3.06092 11.3815C2.92858 11.4431 2.79063 11.5276 2.65253 11.5928C2.54796 11.5849 2.34592 11.6883 2.1928 11.7485C2.15784 11.7623 2.14504 11.7614 2.12947 11.7625L2.01333 11.8105L1.95227 11.7037C1.95064 11.6956 1.94834 11.6867 1.9424 11.6736C1.87775 11.5324 1.87762 11.6164 1.85046 11.5832C1.73404 11.4406 1.80922 11.3786 1.69896 11.1948C1.69314 11.1851 1.5788 11.0911 1.5664 11.0762C1.48709 10.9819 1.57165 11.0499 1.53654 10.9823C1.47244 10.859 1.43432 10.7696 1.33914 10.6366C1.31132 10.5978 1.22622 10.5156 1.20101 10.4236C1.19768 10.4115 1.21569 10.4087 1.21162 10.3998C1.18315 10.3386 1.15852 10.304 1.13527 10.2803L1.07854 10.1811L1.168 10.1141C1.2017 10.0716 1.207 10.0365 1.24995 9.98954C1.31924 9.91384 1.46551 9.84827 1.49716 9.83739C1.5798 9.80871 1.45372 9.88537 1.45178 9.89024C1.42925 9.94777 1.51629 9.87426 1.587 9.82359C1.62872 9.85743 1.7234 9.78107 1.66017 9.7709C1.65311 9.76991 1.60232 9.81488 1.587 9.82359C1.6165 9.73653 1.71866 9.65014 1.86498 9.59851C1.93349 9.57437 1.89751 9.63483 2.0584 9.49973C2.13144 9.43844 2.08036 9.43223 2.14117 9.37339C2.28012 9.23897 2.49871 9.11402 2.65276 8.98956C2.70867 8.94438 2.64111 8.97127 2.67891 8.93986C2.7704 8.86376 2.86188 8.80874 2.95267 8.73473L2.90371 8.88525C2.90006 8.87419 2.89629 8.86304 2.89236 8.85181C2.8883 8.84016 2.87674 8.87485 2.86491 8.83414C2.80816 8.63721 2.77577 8.45134 2.75349 8.2571C2.74101 8.14709 2.73147 8.03416 2.72409 7.91388C2.71905 7.83316 2.71169 7.72034 2.70926 7.60676C2.70665 7.49555 2.70795 7.38353 2.71343 7.30133C2.7215 7.17651 2.73965 7.03965 2.76309 6.90573C2.79347 6.72879 2.83929 6.55811 2.87674 6.42117C2.90993 6.3025 2.90393 6.28902 2.90183 6.25878L2.9567 6.44469C2.94745 6.44273 2.93682 6.43966 2.92143 6.43253C2.80198 6.37733 2.64852 6.20194 2.62844 6.17754C2.62784 6.17678 2.73812 6.25303 2.68716 6.20179C2.66703 6.15926 2.62971 6.17837 2.62844 6.17754C2.61521 6.16158 2.40352 5.99772 2.35857 5.96908C2.33414 5.95354 2.33541 5.97884 2.3229 5.97044C2.02563 5.77035 1.73536 5.55986 1.44992 5.33541C1.44504 5.33127 1.46582 5.31953 1.45417 5.31002C1.33914 5.21558 1.24353 5.15839 1.1449 5.1008L1.02375 5.00856L1.10022 4.88062C1.11933 4.83742 1.13845 4.7937 1.16005 4.74758C1.23385 4.58999 1.30781 4.47404 1.39196 4.40442C1.4539 4.28917 1.56291 4.1356 1.62609 4.0475C1.68927 3.9594 1.66018 3.92493 1.66425 3.91631C1.75202 3.72921 1.83069 3.60667 1.92366 3.46097L2.00287 3.32845L2.14165 3.38811C2.21051 3.42013 2.28416 3.4543 2.37025 3.49159C2.50431 3.54975 2.77405 3.656 2.92178 3.71281C3.03857 3.75764 3.1042 3.79592 3.21294 3.83453C3.22764 3.83977 3.22043 3.81623 3.2251 3.81739C3.35245 3.84616 3.27758 3.86498 3.29887 3.88285C3.37605 3.94774 3.42472 3.98547 3.58206 4.03602C3.61834 4.0477 3.74613 4.02897 3.81149 4.05211C3.89643 4.08231 3.85587 4.09122 3.94504 4.12228C3.95266 4.12496 3.95681 4.11072 4.01021 4.13378C4.08261 4.16499 4.15674 4.19745 4.23187 4.23043L4.00806 4.27451C4.15546 4.13186 4.31491 3.99138 4.47433 3.8604C4.50515 3.83526 4.45064 3.84918 4.49531 3.81251C4.67565 3.66487 4.88574 3.51924 5.09614 3.40877C5.13034 3.39074 5.16447 3.37359 5.19831 3.35742C5.25784 3.32932 5.22886 3.36301 5.24372 3.36073C5.33394 3.34659 5.42724 3.25663 5.44608 3.24764C5.74766 3.09855 6.02363 3.02911 6.3194 2.96914L6.16273 3.14148C6.17967 3.01121 6.19513 2.87616 6.20639 2.7291C6.20828 2.70343 6.18558 2.50153 6.23475 2.41832C6.23804 2.41262 6.28801 2.33045 6.26961 2.25054C6.26846 2.24558 6.24164 2.29728 6.25467 2.20314C6.2677 2.109 6.27158 1.95551 6.30918 1.82839C6.32105 1.78814 6.37211 1.69568 6.35457 1.56949C6.35328 1.56124 6.30344 1.36379 6.36077 1.30201C6.37019 1.29201 6.42125 1.30954 6.41133 1.16019C6.40936 1.13165 6.3918 1.18102 6.39303 1.10657C6.39401 1.04528 6.40351 0.974267 6.41096 0.899748L6.43465 0.711107L6.62073 0.712883C6.68523 0.711873 6.75215 0.709057 6.81673 0.698184C6.84107 0.694025 6.94467 0.658226 7.02778 0.685397C7.0408 0.689653 7.01607 0.707261 7.05996 0.709231C7.26866 0.718684 7.4872 0.706906 7.6991 0.719088C7.77416 0.723369 7.73578 0.751835 7.81402 0.759463C7.89227 0.767089 8.04992 0.774424 8.13179 0.761416C8.21369 0.748402 8.12422 0.703035 8.24691 0.699405C8.25881 0.699053 8.27071 0.698722 8.2826 0.698412L8.48634 0.700356L8.50682 0.898735C8.57882 1.41515 8.61142 1.9314 8.66606 2.44922C8.67435 2.52778 8.68313 2.46089 8.6965 2.57652C8.71512 2.73735 8.7407 2.94206 8.76574 3.15473L8.58583 2.95588C8.96144 3.0333 9.32578 3.19894 9.52989 3.32905C9.79055 3.49866 9.43787 3.3338 9.6395 3.45534C9.68651 3.48425 9.74166 3.50297 9.78893 3.5165C9.83854 3.53065 9.87928 3.53883 9.89178 3.54548C10.1293 3.67237 10.2703 3.79998 10.4643 3.94869C10.5042 3.97982 10.4797 3.93159 10.5136 3.95857C10.6296 4.05106 10.7374 4.16568 10.8362 4.2696C10.8459 4.27976 10.8535 4.2868 10.8601 4.29205L10.6127 4.23736C10.6366 4.22224 10.6352 4.2122 10.6755 4.19638C10.7987 4.14786 10.9092 4.10897 11.0341 4.07323C11.0455 4.06998 10.9802 4.11935 11.0708 4.08221C11.2174 4.02205 11.4046 3.95998 11.5667 3.87515C11.6148 3.84993 11.6024 3.81469 11.7195 3.79353C11.7441 3.78907 11.7327 3.84242 11.8427 3.75437C11.8612 3.73964 12.0509 3.60355 12.1669 3.59145C12.1974 3.58824 12.281 3.59301 12.3387 3.56256C12.3465 3.5583 12.3062 3.55347 12.3551 3.53084C12.4812 3.47283 12.6136 3.4172 12.745 3.35979L12.9132 3.29121L13.0014 3.44546C13.0288 3.49076 13.0565 3.5359 13.0845 3.58048C13.1123 3.62459 13.091 3.54712 13.1319 3.61321C13.2442 3.79493 13.3743 4.02778 13.4741 4.21135C13.5109 4.27905 13.4692 4.24178 13.4704 4.24756C13.4896 4.34069 13.552 4.36595 13.5691 4.39055C13.6754 4.54386 13.7303 4.67584 13.8212 4.82125C13.8463 4.86141 13.8462 4.82257 13.8525 4.82982C13.8565 4.83458 13.86 4.83887 13.8631 4.84274L13.9717 5.03263L13.7997 5.16007C13.7479 5.21188 13.7772 5.15076 13.7288 5.18279C13.584 5.27845 13.4309 5.3961 13.2927 5.50368C13.2419 5.54323 13.3133 5.51774 13.2676 5.55302C12.9973 5.76215 12.7126 5.97458 12.4389 6.16565C12.3874 6.20159 12.4084 6.16383 12.3955 6.16854C12.3067 6.20064 12.2242 6.31072 12.2021 6.33196C12.1018 6.42856 12.0496 6.44862 11.9539 6.52455C11.9459 6.53092 11.9378 6.5373 11.9297 6.5437L12.0075 6.30347C12.0733 6.50341 12.1312 6.7258 12.1601 6.96363C12.1852 7.17355 12.1942 7.38609 12.1924 7.59072C12.1907 7.81076 12.1749 8.02311 12.1511 8.21519C12.15 8.22405 12.1489 8.23281 12.1478 8.24142C12.1152 8.48429 12.0594 8.70027 11.9967 8.90399L11.922 8.67911C12.2815 8.9583 12.6135 9.21646 13.001 9.50387C13.0367 9.53039 13.0148 9.48486 13.0458 9.50748C13.2849 9.68297 13.5187 9.86101 13.7539 10.0385L13.9123 10.1599L13.8121 10.3276C13.7122 10.4976 13.6126 10.6681 13.5146 10.8411C13.4945 10.8765 13.5431 10.837 13.5115 10.8942C13.4467 11.0115 13.36 11.1575 13.2855 11.2709C13.2492 11.3262 13.2776 11.2402 13.2414 11.2961C13.1571 11.4262 13.0719 11.5687 12.9946 11.7079C12.9642 11.7627 13.0229 11.7009 12.9966 11.7519L12.8884 11.933L12.6993 11.8502C12.695 11.8487 12.6899 11.8467 12.684 11.8441C12.1316 11.611 11.5885 11.3837 11.0427 11.1192C11.0052 11.1011 10.9897 11.0447 10.905 11.0181C10.8939 11.0272 10.8884 11.0411 10.8804 11.0524C10.7961 11.0174 10.7121 10.9821 10.6282 10.9466L10.8654 10.9026C10.5447 11.2149 10.1922 11.5007 9.79328 11.7273C9.47771 11.9061 9.14132 12.0421 8.79664 12.1454C8.75986 12.1564 8.83051 12.1606 8.75907 12.1818C8.71008 12.1961 8.66113 12.2098 8.61217 12.2229L8.78091 12.0319C8.73262 12.3912 8.68717 12.7445 8.61572 13.1111C8.60771 13.1523 8.56831 13.1252 8.55799 13.2486C8.55622 13.2704 8.53669 13.4557 8.53937 13.5047C8.53987 13.5114 8.56421 13.4804 8.55668 13.5399C8.52548 13.7846 8.48939 14.037 8.45003 14.2852L8.42373 14.4653L8.24573 14.4636C8.14163 14.4613 8.03816 14.4584 7.93618 14.4548C7.87999 14.4528 7.93983 14.4316 7.89981 14.43C7.61591 14.4187 7.3071 14.4349 7.03582 14.4156C6.85424 14.4026 6.92147 14.3659 6.82497 14.3298C6.81133 14.3247 6.69888 14.3239 6.69307 14.3029C6.67814 14.2501 6.7326 14.1922 6.71026 14.1359C6.70553 14.1237 6.55494 14.1368 6.6441 14.1075C6.65033 14.1055 6.75951 14.0958 6.7864 14.0859C6.80512 14.079 6.77139 14.0576 6.80959 14.0488C6.84778 14.04 6.88975 14.0579 6.95308 14.0476C7.01638 14.0371 6.98855 14.0128 7.11497 14.0099ZM1.91028 3.65063C1.97836 3.57465 1.92126 3.52417 1.88213 3.62652C1.88031 3.63152 1.90681 3.65457 1.91028 3.65063ZM3.85719 10.9612C3.72402 10.9819 3.66064 11.0615 3.75545 11.0489C3.85024 11.0363 3.89775 10.9549 3.85719 10.9612ZM4.88866 11.4519C4.77564 11.3443 4.69383 11.4162 4.84508 11.4933C4.85393 11.4978 4.89539 11.4582 4.88866 11.4519ZM7.27245 14.3195C7.27107 14.3185 7.19025 14.3176 7.18831 14.3186C7.14527 14.3423 7.3069 14.3442 7.27245 14.3195ZM6.1303 11.9877C6.08831 11.961 5.95203 11.9348 6.00335 11.9699C6.04487 11.9987 6.18278 12.0217 6.1303 11.9877ZM6.37509 2.95306C6.37638 2.95162 6.38405 2.89418 6.37766 2.89461C6.35705 2.89618 6.35346 2.97695 6.37509 2.95306ZM6.56688 14.0762C6.53032 13.7405 6.59271 13.5267 6.62702 13.893C6.63324 13.9593 6.58207 13.7539 6.5844 13.8389C6.58873 13.9946 6.65569 14.0903 6.64542 14.2509C6.64351 14.28 6.56877 14.0954 6.56669 14.0756C6.56675 14.0758 6.56682 14.076 6.56688 14.0762ZM2.01686 3.64628C2.01873 3.64506 2.06003 3.57629 2.06016 3.57413C2.0616 3.52465 1.97837 3.66318 2.01686 3.64628ZM7.95832 0.95981C7.96274 0.961917 8.1489 0.963888 8.15497 0.961947C8.25209 0.923128 7.87572 0.919029 7.95832 0.95981ZM2.92986 7.90958C2.95905 7.99446 2.97168 8.09577 2.95027 8.16787C2.94162 8.08225 2.93392 7.99597 2.92986 7.90958ZM7.53913 9.42373C7.60459 9.4141 7.68997 9.41221 7.75579 9.41095C7.77644 9.41055 7.76843 9.42532 7.78289 9.42551C7.81116 9.42577 7.83533 9.41437 7.86339 9.41447C7.87275 9.41454 7.86618 9.43751 7.87598 9.43708C7.9298 9.43444 7.97699 9.4162 8.02941 9.40425C8.28861 9.34525 8.52573 9.21434 8.73559 9.03457C8.75846 9.01503 8.78375 8.99475 8.80946 8.9732C8.86142 8.92979 8.91446 8.88139 8.95048 8.82896C8.95675 8.81979 8.93832 8.81318 8.93848 8.8106C8.94099 8.77071 8.96301 8.80256 8.98025 8.78876C9.04843 8.73393 9.10425 8.65497 9.13932 8.5804C9.1541 8.54864 9.10501 8.56079 9.14003 8.54061C9.14243 8.53916 9.15519 8.55645 9.16169 8.54909C9.17649 8.53239 9.19265 8.4941 9.20148 8.47968C9.21871 8.45189 9.22085 8.44689 9.23392 8.41898C9.2518 8.38094 9.28003 8.33802 9.29146 8.29377C9.29383 8.28435 9.27065 8.28944 9.27262 8.27393C9.27469 8.25845 9.28913 8.22087 9.29765 8.20924C9.30625 8.19766 9.31956 8.20786 9.32374 8.20662C9.3591 8.19618 9.33149 8.13841 9.33185 8.13254C9.34286 8.0218 9.38284 7.93332 9.39415 7.82865C9.40245 7.75037 9.39869 7.66587 9.39948 7.59072C9.3995 7.58989 9.39951 7.58905 9.39952 7.58822C9.40063 7.49796 9.40719 7.42071 9.39548 7.33369C9.39423 7.32451 9.37207 7.33798 9.37049 7.32688C9.35362 7.20937 9.33237 7.09475 9.31249 6.97718C9.31048 6.96536 9.33484 6.97384 9.33397 6.96156C9.32942 6.88713 9.32127 6.75867 9.22053 6.75749C9.20334 6.7115 9.17934 6.65722 9.17316 6.60972C9.16905 6.57904 9.20261 6.59192 9.1763 6.56604C9.17036 6.56023 9.1587 6.57925 9.1511 6.56989C9.11926 6.53073 9.09454 6.48143 9.05737 6.44706C9.0498 6.44014 9.03703 6.45272 9.03281 6.4523C8.99831 6.44843 9.00867 6.39169 9.00553 6.38273C8.98281 6.31626 8.94362 6.28459 8.90203 6.23858C8.89233 6.22793 8.88648 6.25655 8.87657 6.24697C8.85877 6.22966 8.84115 6.21219 8.82351 6.19419C8.79031 6.16031 8.75818 6.1257 8.72832 6.09027C8.71822 6.07822 8.74232 6.07241 8.73813 6.06584C8.71899 6.03685 8.68888 6.06152 8.66978 6.0352C8.6657 6.0297 8.67951 6.01859 8.67977 6.01634C8.68357 5.98095 8.64402 6.00382 8.63969 6.00164C8.58336 5.97429 8.57688 5.91536 8.52262 5.88709C8.51617 5.88384 8.51769 5.91099 8.50039 5.90082C8.38501 5.8333 8.26276 5.76522 8.14375 5.70276C8.12522 5.69309 8.14474 5.68269 8.14424 5.68034C8.1347 5.64308 8.10721 5.67866 8.10042 5.67803C8.04659 5.67184 8.00762 5.62365 7.95963 5.66354C7.78856 5.60453 7.60686 5.59936 7.42677 5.58288C7.38153 5.57876 7.33656 5.57387 7.29071 5.56742C7.28779 5.56706 7.29179 5.54585 7.28593 5.54523C7.21524 5.53809 7.23069 5.5699 7.18969 5.61383C7.1797 5.62484 7.13958 5.58121 7.13587 5.5782C7.12294 5.56677 7.13066 5.53435 7.12654 5.53235C7.09209 5.51705 7.1112 5.61828 7.07053 5.62472C7.06921 5.62476 7.07159 5.60516 7.06783 5.60386C7.05601 5.59977 7.04655 5.60903 7.03486 5.60448C7.00828 5.59397 6.98928 5.54645 6.95778 5.5829C6.95391 5.58766 6.97309 5.64306 6.93646 5.64863C6.92172 5.65058 6.8586 5.66794 6.84002 5.66968C6.82137 5.67116 6.82814 5.64958 6.82668 5.64915C6.77142 5.63968 6.78665 5.62441 6.75079 5.59709C6.71445 5.57034 6.74903 5.65127 6.74248 5.66379C6.73596 5.67622 6.69439 5.66928 6.68324 5.66593C6.67215 5.66246 6.67866 5.64722 6.66956 5.64633C6.60894 5.64139 6.66314 5.69546 6.65197 5.71482C6.62673 5.76057 6.57202 5.71369 6.53404 5.72458C6.52392 5.7275 6.53793 5.73721 6.53024 5.74243C6.49998 5.76299 6.47092 5.75501 6.44336 5.79118C6.43865 5.79716 6.42931 5.84714 6.3965 5.83333C6.39176 5.83134 6.39103 5.81291 6.37579 5.81777C6.35302 5.82493 6.31538 5.84442 6.29754 5.86287C6.28439 5.87646 6.31675 5.88688 6.29301 5.89288C6.28245 5.89559 6.28945 5.87192 6.27023 5.8782C6.25097 5.88436 6.21102 5.91393 6.19631 5.92587C6.18163 5.93765 6.2021 5.94756 6.20171 5.94957C6.19911 5.96124 6.17704 5.99089 6.1747 5.99283C6.10952 6.04652 6.04325 6.0942 5.98066 6.14698C5.92624 6.19289 5.87483 6.24255 5.83288 6.302C5.82579 6.31202 5.8475 6.31919 5.84659 6.32086C5.82755 6.35871 5.80386 6.29754 5.77055 6.30897C5.80727 6.3324 5.79018 6.34116 5.77623 6.36756C5.76958 6.3803 5.78766 6.38416 5.78826 6.38622C5.79626 6.41809 5.76136 6.41034 5.75363 6.40956C5.72535 6.4065 5.74051 6.43589 5.72156 6.43426C5.70259 6.43288 5.69505 6.40072 5.67905 6.42476C5.68744 6.44004 5.73272 6.44538 5.72624 6.46674C5.70126 6.5459 5.60186 6.65982 5.57229 6.71868C5.54222 6.77615 5.53737 6.79683 5.51825 6.8299C5.48456 6.8903 5.52162 6.87744 5.52092 6.92126C5.52084 6.96516 5.4569 6.9232 5.43985 6.9241C5.42283 6.9251 5.4364 6.93646 5.42579 6.94116C5.41518 6.94592 5.40976 6.92677 5.40129 6.94317C5.39261 6.95978 5.40649 7.01517 5.42113 7.02539C5.45189 7.04718 5.49282 7.03564 5.46911 7.0768C5.46773 7.0792 5.45089 7.06619 5.44656 7.07563C5.41283 7.15098 5.39701 7.23448 5.37422 7.31429C5.37105 7.32532 5.35075 7.31272 5.34866 7.31917C5.32747 7.38645 5.36649 7.36601 5.40368 7.4061C5.3507 7.39337 5.3156 7.41165 5.31246 7.46473C5.31072 7.4967 5.33457 7.49209 5.35045 7.51295C5.35523 7.51913 5.33852 7.54107 5.34955 7.54525C5.38545 7.55899 5.42578 7.53916 5.40995 7.59072C5.40988 7.59095 5.40981 7.59118 5.40974 7.59141C5.40935 7.59259 5.404 7.59126 5.39869 7.59072C5.39646 7.59049 5.39425 7.59041 5.3924 7.59072C5.39003 7.59112 5.38828 7.59216 5.38796 7.59438C5.38046 7.64652 5.4184 7.65203 5.42538 7.70678C5.43081 7.74954 5.41418 7.82829 5.41703 7.87825C5.35661 7.88458 5.37687 7.93112 5.42129 7.94322C5.42463 7.97544 5.43323 8.00924 5.43394 8.04097C5.43421 8.05188 5.41559 8.04859 5.41401 8.05031C5.38927 8.07722 5.43223 8.08245 5.43533 8.08877C5.46759 8.15849 5.45553 8.22707 5.50776 8.28573C5.50967 8.28785 5.55061 8.27756 5.52817 8.30586C5.52664 8.30781 5.5004 8.29192 5.51072 8.32434C5.52086 8.35649 5.52447 8.42537 5.56238 8.46034C5.57151 8.46897 5.61445 8.47976 5.60092 8.51218C5.59906 8.51657 5.58675 8.51898 5.58277 8.52602C5.57032 8.5488 5.61169 8.53614 5.58773 8.56816C5.56378 8.6001 5.5579 8.64639 5.60485 8.67608C5.60631 8.6771 5.64111 8.66954 5.64865 8.6827C5.66069 8.70386 5.67364 8.7367 5.68824 8.75767C5.69521 8.76767 5.7081 8.74938 5.7096 8.75091C5.76534 8.81083 5.78518 8.86761 5.83601 8.93987C5.84541 8.95331 5.89698 8.96858 5.90155 9.0064C5.90714 9.04791 5.80883 9.09274 5.8807 9.13404C5.88126 9.13436 5.88183 9.13467 5.88241 9.13499C5.91353 9.15221 6.03163 9.08532 6.02839 9.17322C6.12202 9.23439 6.18351 9.32547 6.29116 9.36693C6.296 9.36881 6.32888 9.34664 6.33839 9.35314C6.35255 9.36292 6.35179 9.38235 6.36192 9.38972C6.4041 9.42085 6.45298 9.43087 6.49654 9.45507C6.51319 9.46419 6.49947 9.47712 6.51968 9.48787C6.54003 9.49854 6.56326 9.48375 6.58693 9.50621C6.60475 9.52316 6.60859 9.57606 6.63652 9.59274C6.65448 9.54952 6.67405 9.55833 6.71383 9.55919C6.72145 9.55931 6.71947 9.5414 6.72334 9.54065C6.73907 9.53724 6.7469 9.55408 6.76223 9.54947C6.76594 9.54836 6.77099 9.53322 6.77426 9.53144C6.80199 9.51577 6.82605 9.56025 6.83057 9.56797C6.84729 9.59737 6.86379 9.58025 6.87925 9.59388C6.89493 9.60749 6.86507 9.61201 6.88486 9.62283C6.92606 9.6453 6.98424 9.65492 7.02959 9.66341C7.04776 9.66672 7.0389 9.64359 7.04158 9.64358C7.07948 9.64457 7.11469 9.67221 7.14057 9.63262C7.15359 9.74462 7.16428 9.62509 7.21511 9.65192C7.21908 9.65405 7.22022 9.70626 7.20289 9.71234C7.18541 9.71839 7.16218 9.69971 7.13773 9.7087C7.13209 9.71089 7.09432 9.755 7.08937 9.75722C7.05167 9.77512 7.05884 9.69754 7.05782 9.69311C7.04539 9.64472 6.99932 9.68968 6.98833 9.6912C6.93934 9.69871 6.90293 9.67928 6.8621 9.68118C6.83545 9.68226 6.81979 9.73061 6.80015 9.72359C6.73454 9.69957 6.73537 9.62535 6.65466 9.66195C6.6373 9.66949 6.63069 9.7266 6.5991 9.66779C6.59692 9.66405 6.57773 9.6135 6.54848 9.62843C6.54477 9.63032 6.53852 9.64524 6.53469 9.64509C6.50916 9.6437 6.49975 9.62543 6.47353 9.62008C6.4473 9.6147 6.41471 9.60903 6.39062 9.59036C6.37598 9.57913 6.37003 9.54166 6.36625 9.53115C6.35569 9.50115 6.31624 9.51863 6.31648 9.48887C6.31708 9.45913 6.36122 9.43977 6.33764 9.40614C6.31469 9.44138 6.2895 9.47655 6.26545 9.51139C6.19167 9.46459 6.12952 9.40458 6.06052 9.35259C6.05191 9.34614 6.04653 9.3707 6.03691 9.36418C5.99627 9.33634 5.97405 9.29641 5.93238 9.26756C5.9 9.24519 5.85228 9.23295 5.81864 9.2079C5.82022 9.20276 5.82112 9.19783 5.82144 9.19308C5.82432 9.1499 5.7786 9.12085 5.75493 9.08855C5.74571 9.07604 5.756 9.06825 5.75191 9.05733C5.7366 9.01635 5.71715 9.05857 5.70462 9.05433C5.65086 9.03512 5.72205 8.97048 5.68564 8.92812C5.68378 8.92601 5.62063 8.92783 5.61493 8.9254C5.57863 8.9114 5.62599 8.91041 5.617 8.89177C5.6008 8.85765 5.59632 8.82995 5.55986 8.80197C5.54926 8.794 5.50552 8.78509 5.5136 8.75084C5.51466 8.74638 5.53006 8.73908 5.52956 8.73634C5.51952 8.68767 5.47326 8.71349 5.44384 8.69823C5.41436 8.68279 5.42687 8.62753 5.43257 8.61526C5.44682 8.58293 5.45077 8.62508 5.4538 8.62489C5.48868 8.62243 5.46966 8.59833 5.46185 8.57656C5.50698 8.5502 5.4905 8.52354 5.45365 8.55407C5.44965 8.55749 5.46191 8.57139 5.46185 8.57656C5.40706 8.58162 5.38464 8.55053 5.41249 8.49515C5.42574 8.4693 5.4562 8.47482 5.42632 8.42815C5.41298 8.40681 5.38321 8.42915 5.36588 8.41187C5.32614 8.37184 5.33601 8.29732 5.31625 8.24883C5.30899 8.23102 5.29538 8.25448 5.28978 8.24242C5.27487 8.21016 5.28126 8.17662 5.26571 8.14433C5.26428 8.14139 5.24606 8.15381 5.24325 8.14316C5.22179 8.06223 5.22183 7.98838 5.21125 7.90289C5.20593 7.86154 5.18774 7.78833 5.1877 7.74494C5.18724 7.69625 5.199 7.64071 5.20624 7.59072C5.21017 7.5633 5.21267 7.53795 5.21075 7.51542C5.20743 7.47408 5.18665 7.48238 5.17342 7.46374C5.14771 7.42742 5.20124 7.36931 5.20961 7.36231C5.20982 7.36212 5.2117 7.39794 5.22382 7.37993C5.2467 7.3709 5.20967 7.36277 5.20961 7.36231C5.21471 7.35725 5.22691 7.28707 5.22512 7.27254C5.22398 7.26464 5.20407 7.26636 5.20385 7.26226C5.19918 7.16453 5.21332 7.06625 5.24779 6.97308C5.24862 6.97151 5.26903 6.97969 5.27072 6.97594C5.29494 6.92399 5.28015 6.88192 5.28045 6.8316C5.28085 6.78146 5.29985 6.74711 5.34499 6.73536C5.35378 6.70056 5.3895 6.66049 5.41095 6.63871C5.43233 6.61693 5.39604 6.59476 5.39641 6.59201C5.40836 6.50744 5.45287 6.47701 5.49952 6.40812C5.52174 6.37517 5.56038 6.30644 5.58223 6.26905C5.59932 6.23925 5.61955 6.2291 5.63385 6.20051C5.6358 6.19665 5.61828 6.18831 5.61851 6.18684C5.62265 6.14516 5.64832 6.18732 5.65924 6.18687C5.69905 6.18547 5.72086 6.18388 5.73879 6.14146C5.74275 6.1319 5.71259 6.06537 5.72271 6.04855C5.73569 6.02708 5.74691 6.0501 5.7602 6.02744C5.76136 6.02553 5.75032 6.01571 5.76176 6.00465C5.77434 5.99245 5.78756 5.98031 5.8012 5.9682C5.84474 5.9295 5.89204 5.89164 5.93537 5.85251C5.94323 5.84551 5.91768 5.8367 5.92888 5.82624C5.98139 5.77728 6.04464 5.72895 6.10831 5.69747C6.12403 5.68979 6.12456 5.70943 6.1304 5.71126C6.16566 5.72238 6.16834 5.66924 6.17258 5.6655C6.26948 5.57778 6.37473 5.56383 6.48565 5.49392C6.4913 5.49006 6.52495 5.42588 6.56262 5.45344C6.56529 5.45519 6.60201 5.4839 6.61227 5.45086C6.61296 5.44879 6.59151 5.43461 6.61711 5.42747C6.64256 5.4204 6.67887 5.39338 6.72028 5.40445C6.73356 5.40784 6.77006 5.43857 6.79402 5.39892C6.79508 5.39617 6.82879 5.31268 6.85917 5.35688C6.86411 5.3642 6.87288 5.41604 6.90602 5.38097C6.91245 5.37421 6.89619 5.36567 6.91463 5.3542C6.94302 5.33657 6.98616 5.3427 7.02049 5.31338C7.02629 5.3082 7.0497 5.26828 7.07656 5.29207C7.0807 5.2958 7.07634 5.31415 7.08855 5.3145C7.14663 5.31627 7.20507 5.2988 7.26373 5.3074C7.28436 5.31046 7.27561 5.33945 7.29698 5.34598C7.31842 5.35247 7.36044 5.35841 7.38202 5.34512C7.40376 5.33181 7.37896 5.28669 7.41244 5.28278C7.41721 5.28223 7.42199 5.28175 7.42677 5.28132C7.56831 5.2687 7.70823 5.3046 7.84695 5.33215C7.86832 5.33647 7.85331 5.31726 7.88512 5.32277C8.00228 5.34095 8.20852 5.386 8.29156 5.45873C8.35732 5.51544 8.25408 5.49573 8.30706 5.52983C8.33207 5.54613 8.38317 5.51146 8.39072 5.51314C8.46317 5.52822 8.497 5.57229 8.55629 5.59771C8.56858 5.60304 8.56788 5.57798 8.57829 5.58279C8.61408 5.5992 8.64408 5.62891 8.67611 5.64774C8.69052 5.65618 8.69696 5.64087 8.70914 5.65053C8.73825 5.67348 8.76109 5.69803 8.7806 5.73149C8.78234 5.73451 8.75285 5.73793 8.77391 5.7545C8.80802 5.78133 8.84034 5.82615 8.88799 5.84623C8.90212 5.85214 8.9273 5.8244 8.93417 5.86475C8.93561 5.87327 8.89946 5.90084 8.95265 5.89673C8.96134 5.89571 9.04325 5.90056 9.04148 5.94637C9.04124 5.95271 9.03799 5.96706 9.03735 5.98035C9.03678 5.99217 9.03825 6.00314 9.04596 6.00713C9.04829 6.0082 9.05589 5.9873 9.06752 5.99641C9.10828 6.02883 9.14352 6.0704 9.18307 6.10696C9.19369 6.11676 9.19557 6.08697 9.21095 6.10214C9.25336 6.14393 9.29506 6.20607 9.32342 6.2572C9.33386 6.27609 9.31124 6.27393 9.31064 6.27629C9.30009 6.31402 9.34194 6.30265 9.34866 6.30828C9.3896 6.34329 9.39441 6.38715 9.42301 6.42548C9.43086 6.43616 9.44302 6.41821 9.44585 6.41959C9.47442 6.4348 9.43376 6.43474 9.43898 6.45161C9.45342 6.49894 9.47962 6.54537 9.50301 6.58829C9.51161 6.60404 9.52338 6.57602 9.53087 6.59041C9.57565 6.67558 9.61049 6.77051 9.6268 6.86319C9.62981 6.88063 9.60981 6.87535 9.6071 6.88002C9.58792 6.91191 9.63445 6.93589 9.64022 6.94329C9.66646 6.97611 9.65517 6.99458 9.66589 7.02685C9.71946 7.18516 9.7319 7.39163 9.72701 7.5448C9.72664 7.56033 9.72608 7.57563 9.72536 7.59072C9.71603 7.76934 9.68875 7.91353 9.65754 8.08772C9.65529 8.09973 9.68058 8.09241 9.6789 8.1029C9.65574 8.23889 9.60674 8.3668 9.55939 8.49709C9.55543 8.50781 9.58218 8.50114 9.5764 8.51876C9.56467 8.55498 9.54337 8.59836 9.52001 8.62947C9.50867 8.64462 9.50287 8.61391 9.49183 8.62919C9.46611 8.66459 9.44283 8.70426 9.42361 8.74421C9.41541 8.76126 9.44932 8.74804 9.43702 8.76945C9.35334 8.91518 9.25472 9.05118 9.12 9.1532C9.11073 9.1602 9.07061 9.13609 9.06057 9.1592C9.06847 9.16931 9.0793 9.17963 9.08852 9.18964C9.07861 9.20055 9.06852 9.21134 9.05826 9.222C8.90284 9.38361 8.7138 9.51127 8.51263 9.61683C8.50354 9.62159 8.53074 9.63458 8.51304 9.64395C8.41084 9.69779 8.30838 9.74955 8.18898 9.76472C8.17716 9.76618 8.16924 9.72399 8.1392 9.74048C8.13398 9.74354 8.08697 9.76381 8.07672 9.77618C8.07535 9.77802 8.08988 9.79464 8.07401 9.79971C7.98162 9.82876 7.88094 9.84501 7.78486 9.84645C7.76934 9.84664 7.78255 9.82333 7.77154 9.82325C7.69422 9.8228 7.61249 9.84607 7.53883 9.82987C7.49 9.81877 7.50664 9.78136 7.48071 9.74591C7.47712 9.74093 7.44815 9.74053 7.44652 9.71949C7.44245 9.66668 7.45535 9.6087 7.44932 9.55243C7.4481 9.54037 7.41229 9.5535 7.43344 9.52415C7.43494 9.52222 7.46057 9.51227 7.46659 9.50218C7.4708 9.49523 7.46267 9.474 7.47125 9.46504C7.47974 9.45607 7.48995 9.47376 7.50411 9.46293C7.5182 9.45192 7.51084 9.42799 7.53913 9.42373ZM5.50936 6.54409C5.53981 6.53118 5.47663 6.49099 5.47822 6.52503C5.47838 6.52672 5.50783 6.5448 5.50936 6.54409ZM6.16422 9.35802C6.15644 9.31158 6.10886 9.33606 6.11282 9.37102C6.1174 9.40627 6.16686 9.37225 6.16422 9.35802ZM6.4769 9.51858C6.45359 9.47797 6.3993 9.56928 6.44798 9.56965C6.45081 9.56969 6.47831 9.52095 6.4769 9.51858ZM7.59549 9.7305C7.59502 9.72956 7.57432 9.72991 7.57386 9.7309C7.56414 9.75532 7.60608 9.75458 7.59549 9.7305ZM6.80709 9.618C6.79952 9.60097 6.76141 9.60656 6.77057 9.62803C6.77815 9.64546 6.81678 9.63937 6.80709 9.618ZM6.51744 5.69206C6.51828 5.69288 6.5319 5.68759 6.52899 5.68201C6.51952 5.66401 6.50336 5.67799 6.51744 5.69206ZM7.37967 9.70057C7.29329 9.69454 7.24913 9.6034 7.33837 9.61771C7.3547 9.62015 7.30198 9.64419 7.3225 9.65294C7.36075 9.66889 7.38715 9.61445 7.42605 9.644C7.43337 9.64948 7.38472 9.70121 7.37951 9.70069C7.37956 9.70065 7.37962 9.70061 7.37967 9.70057ZM5.59511 6.5746C5.5962 6.57463 5.6069 6.55757 5.60631 6.55669C5.59112 6.53532 5.56928 6.57009 5.59511 6.5746ZM7.34249 5.54459C7.34365 5.54655 7.38967 5.54739 7.3911 5.54554C7.4149 5.50614 7.32036 5.50428 7.34249 5.54459ZM5.41552 7.87923C5.44188 7.8974 5.44824 7.92162 5.4213 7.94312C5.41956 7.92191 5.41675 7.90056 5.41552 7.87923Z" + fill="black" fill-opacity="0.85" /> +</svg> + \ No newline at end of file diff --git a/public/keepsimple_/assets/longevity/habits/white-bg.png b/public/keepsimple_/assets/longevity/habits/white-bg.png index 10ce827..7e3fe9f 100644 Binary files a/public/keepsimple_/assets/longevity/habits/white-bg.png and b/public/keepsimple_/assets/longevity/habits/white-bg.png differ diff --git a/public/keepsimple_/assets/tools/bob.skill:Zone.Identifier b/public/keepsimple_/assets/tools/bob.skill:Zone.Identifier deleted file mode 100644 index be537eb..0000000 Binary files a/public/keepsimple_/assets/tools/bob.skill:Zone.Identifier and /dev/null differ diff --git a/public/keepsimple_/assets/user-dropdown/black-bg.png b/public/keepsimple_/assets/user-dropdown/black-bg.png new file mode 100644 index 0000000..3273363 Binary files /dev/null and b/public/keepsimple_/assets/user-dropdown/black-bg.png differ diff --git a/public/keepsimple_/assets/user-dropdown/white-bg.png b/public/keepsimple_/assets/user-dropdown/white-bg.png new file mode 100644 index 0000000..a3a95ae Binary files /dev/null and b/public/keepsimple_/assets/user-dropdown/white-bg.png differ diff --git a/public/keepsimple_/assets/vibesuite/why-bg-1.jpg b/public/keepsimple_/assets/vibesuite/why-bg-1.jpg new file mode 100644 index 0000000..1ade77d Binary files /dev/null and b/public/keepsimple_/assets/vibesuite/why-bg-1.jpg differ diff --git a/public/keepsimple_/assets/vibesuite/why-bg-2.webp b/public/keepsimple_/assets/vibesuite/why-bg-2.webp new file mode 100644 index 0000000..ca2b80f Binary files /dev/null and b/public/keepsimple_/assets/vibesuite/why-bg-2.webp differ diff --git a/public/keepsimple_/assets/vibesuite/why-bg-3.jpg b/public/keepsimple_/assets/vibesuite/why-bg-3.jpg new file mode 100644 index 0000000..f60e55d Binary files /dev/null and b/public/keepsimple_/assets/vibesuite/why-bg-3.jpg differ diff --git a/public/keepsimple_/fonts/Cormorant_Garamond/OFL.txt b/public/keepsimple_/fonts/Cormorant_Garamond/OFL.txt index 915e3af..1c74e5c 100644 --- a/public/keepsimple_/fonts/Cormorant_Garamond/OFL.txt +++ b/public/keepsimple_/fonts/Cormorant_Garamond/OFL.txt @@ -1,93 +1,93 @@ -Copyright 2015 the Cormorant Project Authors (github.com/CatharsisFonts/Cormorant) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -https://openfontlicense.org - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. +Copyright 2015 the Cormorant Project Authors (github.com/CatharsisFonts/Cormorant) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/keepsimple_/fonts/Source-Serif-4/OFL.txt b/public/keepsimple_/fonts/Source-Serif-4/OFL.txt index 5d6f71c..38d9750 100644 --- a/public/keepsimple_/fonts/Source-Serif-4/OFL.txt +++ b/public/keepsimple_/fonts/Source-Serif-4/OFL.txt @@ -1,91 +1,91 @@ -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -https://openfontlicense.org - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/public/keepsimple_/fonts/Tomorrow/OFL.txt b/public/keepsimple_/fonts/Tomorrow/OFL.txt index 38cd9eb..15d3b83 100644 --- a/public/keepsimple_/fonts/Tomorrow/OFL.txt +++ b/public/keepsimple_/fonts/Tomorrow/OFL.txt @@ -1,93 +1,93 @@ -Copyright 2019 The Tomorrow Project Authors (github.com/MonicaRizzolli/Tomorrow) - -This Font Software is licensed under the SIL Open Font License, Version 1.1. -This license is copied below, and is also available with a FAQ at: -https://openfontlicense.org - - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font creation -efforts of academic and linguistic communities, and to provide a free and -open framework in which fonts may be shared and improved in partnership -with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply -to any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software components as -distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, deleting, -or substituting -- in part or in whole -- any of the components of the -Original Version, by changing formats or by porting the Font Software to a -new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, modify, -redistribute, and sell modified and unmodified copies of the Font -Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, -in Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the corresponding -Copyright Holder. This restriction only applies to the primary font name as -presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created -using the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. +Copyright 2019 The Tomorrow Project Authors (github.com/MonicaRizzolli/Tomorrow) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/report.md b/report.md new file mode 100644 index 0000000..6aab4ce --- /dev/null +++ b/report.md @@ -0,0 +1,310 @@ +● KeepSimpleOSS Codebase Audit Report + +1. Stack & Tooling + + +┌──────────────────┬───────────────────────────────────────────────────────────────────────┬─────────────────┐ + │ Category │ Detail │ Version │ + ├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ + │ Framework │ Next.js (Pages Router) │ 15.0.5 │ + ├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ React │ React + React DOM │ 19.0.3 │ + ├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ + │ Language │ TypeScript (strict: false, noImplicitAny: false) │ 5.2.2 │ + ├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ Package manager │ Yarn v1 (yarn.lock) │ — │ + ├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ Node (CI/Docker) │ Node.js │ 20.19.0 │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ SCSS │ sass + sass-loader │ 1.32.8 / 13.1.0 │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ Linting │ ESLint flat config + eslint-plugin-simple-import-sort │ 9.32.0 │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ Formatting │ Prettier (single quotes, trailing commas, no semis override) │ 3.6.2 │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ Git hooks │ Husky + lint-staged (pre-commit runs eslint --fix + prettier --write) │ 9.1.7 │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ Testing │ Cypress E2E only — no unit tests, no Jest │ 14.5.2 │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ Auth │ NextAuth v4 │ 4.23.2 │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ Analytics │ react-ga4 + mixpanel-browser │ 1.4.1 / 2.65.0 │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ CMS │ Strapi (external, fetched at build time) │ — │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ SVG │ @svgr/webpack (SVGs import as React components) │ 8.1.0 │ +├──────────────────┼───────────────────────────────────────────────────────────────────────┼─────────────────┤ +│ CI/CD │ GitHub Actions → Docker → GHCR │ — │ +└──────────────────┴───────────────────────────────────────────────────────────────────────┴─────────────────┘ + +Key libraries: classnames (conditional CSS), react-slick (carousel), react-tooltip, react-beautiful-dnd (drag-and-drop), react-markdown, date-fns, lodash.debounce, nodemailer, geoip-lite. + +No state management library (React Context only). No data-fetching library (no SWR, React Query). No form library. + +--- + +2. Folder Structure + +src/ +├── api/ # Fetch functions calling Strapi/external APIs +├── assets/icons/ # SVG icons, grouped by feature (longevity/, navbar/, tools/, articles/) +├── components/ # React components (see §3) +├── constants/ # App-wide constants (tools.ts, longevity.ts, colors.ts) +├── context/ # Single file: LongevityContext.tsx +├── data/ # Localized static data (see §5) +├── hooks/ # Custom hooks (useGlobals, useMobile, useScreenSize, useClickOutside, etc.) +├── layouts/ # Page layout wrappers (Layout, LandingLayout, ArticleLayout, DietLayout, ToolsLayout, etc.) +├── lib/ # Shared utilities (mixpanel.ts, schema.tsx, strapi.ts, etc.) +├── local-types/ # Global TS types (data.ts, global.ts, pageTypes/) +├── pages/ # Next.js file-based routes + API routes +├── styles/ # Global SCSS (globals.scss, \_variables.scss, \_animations.scss, fonts.scss) +├── utils/ # Single file: getLongevityImageUrls.ts +└── svg.d.ts # Module declaration: \*.svg → React component + +public/keepsimple\_/ +├── assets/ # Static images by feature (articles-blog/, contributors/, longevity/, etc.) +├── audio/ # MP3/OGG files +├── fonts/ # TTF/WOFF custom fonts +├── llms-full-pages/ # Generated LLM content pages +└── static/ # Other static files + +Conventions: + +- Every component directory has a barrel index.ts (import X from './X'; export default X;) +- Styles are always colocated as ComponentName.module.scss +- Feature collections use lowercase dirs (longevity/, articles/, contributors/) containing PascalCase sub-component dirs +- Standalone/shared components use PascalCase dirs at src/components/ root (Button/, Modal/, Header/) +- One outlier: \_company-management/ uses underscore prefix + +--- + +3. Component Patterns + +Typical structure + +src/components/Button/ +├── Button.tsx +├── Button.module.scss +└── index.ts + +Or with types: + +src/components/Heading/ +├── Heading.tsx +├── Heading.module.scss +├── Heading.types.ts +└── index.ts + +Representative components + +Button (src/components/Button/Button.tsx): + +- Props typed inline as type TButton = { variant?: 'default' | 'primary' | 'secondary' | 'grey'; ... } +- Uses FC<TButton>, default export +- Variants via cn(styles.button, { [styles.primary]: variant === 'primary', ... }) +- No .types.ts file + +Heading (src/components/Heading/Heading.tsx): + +- Props in separate Heading.types.ts as export type HeadingProps = { Tag?: 'h1'|'h2'|...; ... } +- Imported as import { HeadingProps } from './Heading.types' +- Supports Tag, isBig, isBold, isDarkTheme, hasRedUnderline, locale-specific styling + +Modal (src/components/Modal/Modal.tsx): + +- Inline type ModalProps, size variants (small | medium | large | full) +- Uses createPortal from react-dom +- Extensive conditional classes via cn() + +WhatToEatOrAvoid (src/components/longevity/WhatToEatOrAvoid/): + +- Contains a sub-component directory AboutTheProduct/ with its own .types.ts +- Sub-component imported via @components/longevity/WhatToEatOrAvoid/AboutTheProduct + +Props typing inconsistency + +┌────────────────────────────────────────────┬────────────────────┬─────────────────────────────────┐ +│ Pattern │ Usage │ Example │ +├────────────────────────────────────────────┼────────────────────┼─────────────────────────────────┤ +│ Inline type TComponentName │ ~60% of components │ Button, Modal, Input │ +├────────────────────────────────────────────┼────────────────────┼─────────────────────────────────┤ +│ Separate .types.ts with ComponentNameProps │ ~40% │ Heading, Supplement, BasicStats │ +├────────────────────────────────────────────┼────────────────────┼─────────────────────────────────┤ +│ Inline interface │ Rare │ Pyramid │ +└────────────────────────────────────────────┴────────────────────┴─────────────────────────────────┘ + +--- + +4. Styling Approach + +System: SCSS Modules exclusively. No Tailwind, no CSS-in-JS, no styled-components. + +Import pattern: +import cn from 'classnames'; +import styles from './ComponentName.module.scss'; + + <div className={cn(styles.Wrapper, { [styles.active]: isActive })} /> + +Design tokens: Hardcoded hex values throughout — no centralized SCSS variables for colors, spacing, or breakpoints. \_variables.scss contains reusable class snippets (.defaultTooltip, .longevityContent, .section) but not +token variables. + +keepsimple-style.md documents the design system (colors as CSS custom properties, typography families, texture patterns, z-index layering, minimum text sizes) but these are not wired into SCSS variables — they're a +human-readable reference only. + +Dark mode: Class-based toggling via useGlobals hook → document.body.classList.toggle('darkTheme') + localStorage persistence. Components handle dark mode with .darkTheme SCSS modifier classes. + +Animations: Defined in src/styles/\_animations.scss as keyframes + utility classes (.animate-fadeIn, .animate-slideInFromLeft). Components @extend these. + +Global styles imported in \_app.tsx: +import '../styles/globals.scss'; + +Breakpoints are hardcoded per-component (common values: 1440, 1140, 961, 900, 800, 768px) — no shared mixin or variable. + +UXCore is an external product link, not a design system wired into this codebase. + +--- + +5. Static Data Conventions + +Location: src/data/{feature}/ — each directory contains en.ts, ru.ts, hy.ts, index.ts. + +Format: TypeScript objects (not JSON, not MDX). + +// src/data/navbar/en.ts +const en = { +about: 'About', +articles: 'Articles', +tools: 'Tools', +}; +export default en; + +// src/data/navbar/index.ts +import en from './en'; +import hy from './hy'; +import ru from './ru'; +export default { en, ru, hy } as { en: typeof en; ru: typeof ru; hy: typeof hy; }; + +Types for data shapes live in src/local-types/data.ts (TLocales, TNavbarDataItem, TArticle, etc.). + +Consumption: Components import the data module and index by router.locale: +import navbar from '@data/navbar'; +const { locale } = useRouter() as TRouter; +const { about, articles } = navbar[locale]; + +Data directories (excluding vibesuite): 404, accordion, articlesBlog, buttonText, companyManagement, contributors, cookies, copyButton, fullscreenButton, header, imageModule, landingPage, longevity (with basicStats/ +sub-dir), navbar, quote, tools. + +--- + +6. Routing & Page Conventions + +Router: Next.js Pages Router (file-based routing under src/pages/). + +Page structure: +src/pages/ +├── index.tsx # / +├── 404.tsx # /404 +├── auth.tsx # /auth +├── articles.tsx # /articles +├── articles/[page].tsx # /articles/:slug +├── contributors.tsx # /contributors +├── company-management.tsx # /company-management +├── [page].tsx # /:slug (catch-all for Strapi pages) +├── tools/index.tsx # /tools +├── tools/longevity-protocol/... # /tools/longevity-protocol/\* +└── api/auth/[...nextauth].ts # NextAuth API route + +Data fetching: Most pages use getStaticProps with ISR (revalidate: 10). Some use getServerSideProps (contributors). Dynamic routes use getStaticPaths with fallback: 'blocking'. + +Layout pattern: Pages render a layout component that wraps content: +const Index: FC<PageProps> = ({ landingData }) => ( +<LandingLayout homeData={landingData} darkTheme={isDarkTheme} /> +); + +A root Layout component in src/layouts/Layout/Layout.tsx wraps all pages (applied in \_app.tsx), handling nav, cookie box, and route-specific logic. + +SEO: SeoGenerator component accepts strapiSEO, ogTags, dates, and type. It generates <title>, meta tags, Open Graph, Twitter cards, JSON-LD schema (via src/lib/schema.tsx), and hrefLang alternates. + +Tool registration: Tools are fetched from Strapi CMS at build time (not hardcoded). Visual config (icons, hover colors) lives in src/constants/tools.ts as a TOOL_CONFIG record keyed by numeric Strapi ID. + +--- + +7. i18n + +Locales: en (default), ru, hy — configured in next.config.js. + +Approach: Custom — no next-i18next or react-intl. Each data module exports { en, ru, hy } and components index by router.locale. + +Fallback: Manual and inconsistent. Most pages use: +const currentLocale = locale === 'ru' ? 'ru' : 'en'; +This means Armenian (hy) falls back to English everywhere except data modules that explicitly provide hy.ts (navbar, cookies, contributors, tools, 404, buttonText, accordion, quote). + +There's a // HYTranslation TODO comment in SeoGenerator (line 96). + +--- + +8. Imports & Aliases + +11 path aliases in tsconfig.json: + +┌────────────────┬────────────────────┐ +│ Alias │ Maps to │ +├────────────────┼────────────────────┤ +│ @components/_ │ src/components/_ │ +├────────────────┼────────────────────┤ +│ @layouts/_ │ src/layouts/_ │ +├────────────────┼────────────────────┤ +│ @hooks/_ │ src/hooks/_ │ +├────────────────┼────────────────────┤ +│ @data/_ │ src/data/_ │ +├────────────────┼────────────────────┤ +│ @api/_ │ src/api/_ │ +├────────────────┼────────────────────┤ +│ @lib/_ │ src/lib/_ │ +├────────────────┼────────────────────┤ +│ @constants/_ │ src/constants/_ │ +├────────────────┼────────────────────┤ +│ @styles/_ │ src/styles/_ │ +├────────────────┼────────────────────┤ +│ @local-types/_ │ src/local-types/_ │ +├────────────────┼────────────────────┤ +│ @utils/_ │ src/utils/_ │ +├────────────────┼────────────────────┤ +│ @icons/_ │ src/assets/icons/_ │ +└────────────────┴────────────────────┘ + +Import order enforced by eslint-plugin-simple-import-sort (16 groups): + +1. Side-effects → 2. Node built-ins → 3. Third-party → 4. @styles → 5. @constants → 6. @local-types → 7. @hooks → 8. @lib → 9. @api → 10. @data → 11. @icons → 12. @components → 13. @layouts → 14. Other @/ → 15. Relative + non-style → 16. Style imports (.scss) + +--- + +9. Things a New Contributor Would Get Wrong + +1. Where to put types. Three patterns coexist: inline in component file, separate .types.ts sibling, or centralized in @local-types/. No documented rule for when to use which. +1. Component directory naming. PascalCase for standalone components, lowercase for feature collections — but this convention is implicit and not enforced. +1. Styling. SCSS modules only. No inline styles (except single dynamic properties like style={{ color }}). No Tailwind. keepsimple-style.md is the design reference but isn't linked from CONTRIBUTING.md. +1. SVG imports. @svgr/webpack means .svg files import as React components, not image URLs. The type declaration is in src/svg.d.ts. Using <img src={...}> with an SVG import won't work. +1. Barrel files. Every component directory should have an index.ts, but some are empty (0 bytes) — e.g., longevity/StudySection/index.ts, longevity/EnvironmentSubSection/index.ts. +1. Armenian locale fallback. If you add a new data module, the implicit locale === 'ru' ? 'ru' : 'en' pattern silently drops Armenian to English. You must provide an explicit hy.ts and handle it in the fallback logic if + Armenian should be supported. +1. Deep relative imports. A few files use '../../../../lib/mixpanel' instead of @lib/mixpanel. ESLint allows both, but the convention is aliases. +1. Environment variables. .env.example lists 17 variables with no documentation of which are required, what values to use locally, or which are client-side (NEXT*PUBLIC*\*) vs server-only. +1. GlobalContext location. It lives at src/components/Context/GlobalContext.ts (inside components, not src/context/). LongevityContext lives at src/context/LongevityContext.tsx. Two different patterns. +1. No unit tests. Only Cypress E2E exists. There's no Jest setup, so adding unit tests requires bootstrapping from scratch. + +--- + +10. What's Missing or Inconsistent + +- No centralized design tokens. Colors, spacing, and breakpoints are hardcoded per-component. keepsimple-style.md documents the design system in prose, but nothing enforces it in code. +- Breakpoints are duplicated. At least 8 different max-width values appear across component SCSS files with no shared variable or mixin. +- TypeScript is loose. strict: false and noImplicitAny: false — many props typed as any, several // TODO: fix any type comments. +- Props naming conventions diverge. Some components use TComponentName (T-prefix), others use ComponentNameProps (Props-suffix). Both patterns appear in roughly equal proportion. +- \_variables.scss is misnamed. It contains reusable class snippets (.defaultTooltip, .section), not SCSS variables ($color-primary, etc.). +- src/utils/ has a single file. Most utilities live in src/lib/ instead. The boundary between utils/ and lib/ is unclear. +- Context files are split across two locations — src/components/Context/ and src/context/. +- longevity-variavles.scss (typo in filename) is empty — 0 bytes. +- CONTRIBUTING.md says "follow our code style" but doesn't reference keepsimple-style.md, import ordering rules, or component structure conventions. +- forceConsistentCasingInFileNames: false in tsconfig — case-sensitivity issues can slip through on macOS/Windows but break on Linux CI. diff --git a/scripts/import-repo.sh b/scripts/import-repo.sh new file mode 100644 index 0000000..f6f6093 --- /dev/null +++ b/scripts/import-repo.sh @@ -0,0 +1,347 @@ +#!/bin/bash +set -e + +# ────────────────────────────────────────────────────────────────────── +# Import an external repo into the keepsimple monorepo +# +# Usage: ./scripts/import-repo.sh <git-url> <target-path> +# Example: ./scripts/import-repo.sh https://github.com/someone/vibesuite.git tools/vibesuite +# +# What it does: +# 1. Creates a branch from dev +# 2. Clones the external repo into _incoming/ +# 3. Hands off to Claude Code with a detailed migration prompt +# 4. Claude restructures everything to match keepsimple conventions +# ────────────────────────────────────────────────────────────────────── + +REPO_URL=$1 +TARGET_PATH=$2 + +if [ -z "$REPO_URL" ] || [ -z "$TARGET_PATH" ]; then + echo "Usage: ./scripts/import-repo.sh <git-url> <target-path>" + echo "Example: ./scripts/import-repo.sh https://github.com/someone/vibesuite.git tools/vibesuite" + exit 1 +fi + +FEATURE_NAME=$(basename "$TARGET_PATH") + +# 1. Branch from dev +git fetch origin +git checkout dev +git pull origin dev +BRANCH="feat/import-$FEATURE_NAME" +git checkout -b "$BRANCH" 2>/dev/null || git checkout "$BRANCH" + +# 2. Clone the external repo into a staging area +TMP_DIR=$(mktemp -d) +git clone "$REPO_URL" "$TMP_DIR/source" +rm -rf "$TMP_DIR/source/.git" + +STAGING="_incoming/$FEATURE_NAME" +mkdir -p "$STAGING" +cp -r "$TMP_DIR/source/." "$STAGING/" +rm -rf "$TMP_DIR" + +echo "" +echo "Source cloned to $STAGING" +echo "Target location: $TARGET_PATH" +echo "Branch: $BRANCH" +echo "" +echo "Handing off to Claude Code..." +echo "" + +# 3. Hand off to Claude Code +claude --print " +You are integrating an external repo into the keepsimple monorepo. + +Source: _incoming/$FEATURE_NAME +Target: $TARGET_PATH + +Read keepsimple-style.md (the full file, especially the Technical Rules section at the bottom) +before you write any code. That file is the single source of truth for how this project is structured. + +THE GOAL: The migrated pages must look and behave EXACTLY like the source app. +Do NOT change any visual design. Do NOT modify keepsimple's existing styles. +The only changes are structural: different file layout, SCSS Modules instead of +inline/Tailwind/CSS, Pages Router instead of App Router. The user must not see +any visual difference. + +IMPORTANT: if source components already match our project style, just move them +as-is. Do NOT refactor working code for the sake of refactoring. Only change +what needs changing. + +────────────────────────────────────────────────────────────────────── +ADDITIONAL RULES +────────────────────────────────────────────────────────────────────── + +- Reuse existing keepsimple components (Button, Modal, Input, Heading, etc.) + wherever the source has equivalents. If a source style doesn't match any + existing variant, ADD a new variant to our component instead of inlining + custom styles. + +- Use our Heading component for all h1/h2/h3 — never raw heading tags. + +- Validate HTML semantics. No invalid nesting, no nested interactive elements, + use semantic tags. + +- Extract types into sibling files named ComponentName.types.ts with a + ComponentNameProps interface. + +- SVGs: never inline. Imported into components → src/assets/icons/<feature>/. + Used in SCSS or <Image> tags → keepsimple_/public/assets/<feature>/. + Reuse existing folders if names match, otherwise create. + +- SEO: import SeoGenerator on new pages but pass NO values (content comes from + backend later). Don't add separate schema.org — SeoGenerator already handles it. + +- Localization: if Russian or Armenian (hy) files contain broken unicode escapes + that should be readable Cyrillic/Armenian, decode the entire file. Don't touch + JSON files where \\\\uXXXX escapes are valid. + +────────────────────────────────────────────────────────────────────── +PHASE 1: UNDERSTAND THE SOURCE +────────────────────────────────────────────────────────────────────── + +1. Read every file in _incoming/$FEATURE_NAME/src/ to understand what the app does. +2. Read _incoming/$FEATURE_NAME/package.json for all dependencies. +3. Identify: + - Which router it uses (App Router vs Pages Router) + - How it styles components (Tailwind, CSS Modules, inline styles, SCSS, etc.) + - What state management or data-fetching patterns it uses + - What auth system it uses (NextAuth version, providers, etc.) + - Any external services (Redis, databases, email, etc.) + +────────────────────────────────────────────────────────────────────── +PHASE 2: MERGE DEPENDENCIES +────────────────────────────────────────────────────────────────────── + +Compare _incoming/$FEATURE_NAME/package.json with the root package.json. + +Rules: +- If both repos have the SAME package: keep the version from root package.json. Do not upgrade. +- If the source has a package that root does NOT have: add it to root package.json. +- SKIP these source packages entirely (keepsimple does not use them): + - tailwindcss, @tailwindcss/postcss, postcss (keepsimple uses SCSS Modules) + - Any package that is only needed because the source uses App Router +- After updating package.json, run: yarn install + +Print a table showing: package name | source version | action taken (kept existing / added / skipped) + +────────────────────────────────────────────────────────────────────── +PHASE 3: CONVERT ROUTING (App Router -> Pages Router) +────────────────────────────────────────────────────────────────────── + +keepsimple uses the Next.js Pages Router (src/pages/). + +For each route in the source: +- src/app/page.tsx -> src/pages/tools/$FEATURE_NAME/index.tsx +- src/app/[slug]/page.tsx -> src/pages/tools/$FEATURE_NAME/[slug].tsx +- src/app/api/*/route.ts -> src/pages/api/$FEATURE_NAME/*.ts +- src/app/layout.tsx -> integrate into _app.tsx or a new layout in src/layouts/ + +Conversion rules: +- Remove all 'use client' directives (Pages Router does not need them) +- Replace server-component data fetching with getServerSideProps or getStaticProps +- next/headers is not available in Pages Router — use req/res from getServerSideProps +- next/navigation -> next/router (useRouter from next/router, not next/navigation) +- Replace App Router middleware with Pages Router API route checks or getServerSideProps guards +- Page components must use: export default ComponentName + export async function getServerSideProps + +Follow the existing pattern from src/pages/tools/ and src/pages/contributors.tsx: + - Page fetches data in getServerSideProps + - Page renders <SeoGenerator> + <Layout> + - Layout lives in src/layouts/ + +────────────────────────────────────────────────────────────────────── +PHASE 4: CONVERT ALL STYLING TO SCSS MODULES +────────────────────────────────────────────────────────────────────── + +keepsimple uses SCSS Modules exclusively. The migrated app must be a PIXEL-PERFECT +replica of the source. Do not change any visual property — only move where styles live. + +ZERO INLINE STYLES ALLOWED. Convert every single one: + +For each component: +1. Create a ComponentName.module.scss alongside the .tsx file +2. Extract EVERY inline style={{}} into an SCSS class — no exceptions: + - Static styles (e.g., style={{ padding: '1rem' }}) -> .ClassName { padding: 1rem; } + - Conditional styles computed from state/props -> use cn() with multiple SCSS classes + - Styles that depend on dynamic data (e.g., style={{ color: category.color }}) -> + these are the ONLY exception. Keep them as inline style={{}} but ONLY for the + single dynamic property. All other properties on the same element must still + be in the SCSS module. + Example: style={{ color: category.color }} is OK. + But style={{ color: category.color, padding: '1rem', display: 'flex' }} is NOT — + move padding and display to the SCSS class, keep only color inline. +3. Extract EVERY Tailwind utility class into its SCSS equivalent + - className=\"flex items-center gap-4\" -> .Wrapper { display: flex; align-items: center; gap: 1rem; } +4. Convert EVERY .css file into .module.scss + - globals.css -> src/styles/$FEATURE_NAME.scss (global, imported in _app.tsx) + - component.css -> ComponentName.module.scss (scoped) +5. Import as: import styles from './ComponentName.module.scss'; +6. Use as: className={styles.ClassName} or cn(styles.A, { [styles.B]: condition }) +7. Use classnames (imported as cn) for conditional classes — already installed + +Copy every CSS value exactly as it appears in the source: +- Same colors, same sizes, same spacing, same fonts, same transitions +- Same hover states, same focus states, same active states +- Same animations, same keyframes, same durations, same easing +- Same media queries, same breakpoints, same responsive behavior +- Same z-index, same positioning, same overflow behavior +- If the source uses CSS variables (var(--foo)), keep them as var(--foo) in SCSS + +Convert hover/focus/active states that use onMouseEnter/onMouseLeave JS handlers: +- If the handler just changes a style -> replace with SCSS :hover/:focus/:active pseudo-class +- If the handler does other things besides style changes -> keep the handler but move the + style portion into SCSS, applying/removing a class instead of mutating element.style + +SCSS class naming: PascalCase (e.g., .SkillCard, .CategoryNav, .DetailPanel). + +GLOBAL STYLES (animations, keyframes, scrollbar styles, font imports): +- Put them in src/styles/$FEATURE_NAME.scss as a regular (non-module) SCSS file +- Animation classes used as plain strings (className=\"animate-slide-in\") stay as + plain selectors in this file — do NOT wrap in :global(), this file is not a module +- Import it in src/pages/_app.tsx alongside globals.scss: + import '../styles/$FEATURE_NAME.scss'; + Next.js Pages Router ONLY allows global CSS imports in _app.tsx. + Do NOT import global .scss from any other component or layout file. + Do NOT @import it from inside a .module.scss file. +- Scope feature-specific CSS variable overrides under a .${FEATURE_NAME}-root class + so they don't leak into other keepsimple pages + +DO NOT modify any existing keepsimple styles (globals.scss, _variables.scss, etc.). +DO NOT change CSS variable values defined in keepsimple-style.md. +If the source app uses different values for the same variable names, override them +inside the .${FEATURE_NAME}-root scope only. + +────────────────────────────────────────────────────────────────────── +PHASE 5: RESTRUCTURE FILES TO MATCH KEEPSIMPLE CONVENTIONS +────────────────────────────────────────────────────────────────────── + +Read keepsimple-style.md Technical Rules for the exact folder structure. + +Components go in: src/components/$FEATURE_NAME/ComponentName/ + - ComponentName.tsx + - ComponentName.module.scss + - index.ts (barrel: import X from './X'; export default X;) + - ComponentName.types.ts (if props are complex) + +Layouts go in: src/layouts/\${FEATURE_NAME}Layout/ + - Same file structure as components + +Pages go in: src/pages/tools/$FEATURE_NAME/ + - Follow the pattern from src/pages/tools/longevity-protocol/ + +Data files go in: src/data/$FEATURE_NAME/ + - If the source has i18n: create en.ts, ru.ts, hy.ts + index.ts + - If the source has static data (like skills.ts): put it here + +Types go in: src/local-types/pageTypes/$FEATURE_NAME.ts + +API functions go in: src/api/$FEATURE_NAME.ts + +Hooks go in: src/hooks/ (prefixed with use*) + +Naming rules: +- Component folders: PascalCase (SkillCard/, CategoryNav/) +- Component files: PascalCase (SkillCard.tsx, SkillCard.module.scss) +- Feature grouping folders: lowercase ($FEATURE_NAME/) +- Data/API/constants files: lowercase (skills.ts, not Skills.ts) +- All exports: export default (not named exports in index.ts) + +────────────────────────────────────────────────────────────────────── +PHASE 6: FIX IMPORTS +────────────────────────────────────────────────────────────────────── + +Update all imports to use keepsimple's path aliases: +- @components/* -> src/components/* +- @layouts/* -> src/layouts/* +- @hooks/* -> src/hooks/* +- @data/* -> src/data/* +- @api/* -> src/api/* +- @local-types/* -> src/local-types/* +- @icons/* -> src/assets/icons/* +- @lib/* -> src/lib/* +- @constants/* -> src/constants/* +- @styles/* -> src/styles/* +- @utils/* -> src/utils/* + +Replace the source's @/* alias with the specific keepsimple aliases above. + +Import order is enforced by eslint-plugin-simple-import-sort. Follow this order: + 1. Side-effect imports + 2. Node built-ins + 3. Third-party packages (react, next, classnames, etc.) + 4. @styles -> @constants -> @local-types -> @hooks -> @lib -> @api -> @data -> @icons -> @components -> @layouts + 5. Relative imports (non-style) + 6. Style imports (.scss) + +────────────────────────────────────────────────────────────────────── +PHASE 7: AUTH COMPATIBILITY +────────────────────────────────────────────────────────────────────── + +keepsimple uses next-auth 4.23.2 (v4). If the source uses NextAuth v5 / Auth.js: +- Convert to v4 API (NextAuth(), not auth()) +- Use useSession() on client, getServerSession() in getServerSideProps +- API route: src/pages/api/auth/[...nextauth].ts (not route.ts) +- Check if keepsimple already has [...nextauth] — if so, MERGE providers, do not overwrite + +────────────────────────────────────────────────────────────────────── +PHASE 8: COPY ALL STATIC ASSETS +────────────────────────────────────────────────────────────────────── + +The source repo has a public/ folder with images, SVGs, fonts, and other static files. +keepsimple serves all assets from public/keepsimple_/assets/. + +COPY EVERY ASSET — do not skip any image, font, SVG, video, or media file. +The migrated app must have access to every file the source app used. + +1. Scan _incoming/$FEATURE_NAME/public/ recursively for ALL files: + - Images: .jpg, .jpeg, .png, .webp, .gif, .avif, .ico + - Vectors: .svg + - Fonts: .woff, .woff2, .ttf, .otf, .eot + - Video/audio: .mp4, .webm, .mp3, .wav, .ogg + - Any other static file the app references +2. SKIP only framework boilerplate: next.svg, vercel.svg, favicon.ico, robots.txt +3. Copy everything else to: public/keepsimple_/assets/$FEATURE_NAME/ + - Preserve subfolder structure from the source public/ directory + - Example: public/images/hero.jpg -> public/keepsimple_/assets/$FEATURE_NAME/images/hero.jpg +4. Also check src/ for assets: + - Some repos put images in src/assets/, src/images/, or alongside components + - Copy those to public/keepsimple_/assets/$FEATURE_NAME/ as well +5. Update EVERY reference in the migrated code: + - Search all .tsx, .ts, .scss, .module.scss files + - Patterns to find: src=\", src={, href=\", url(, backgroundImage:, import.*\.(jpg|png|svg|webp) + - Rewrite paths: + '/image.jpg' -> '/keepsimple_/assets/$FEATURE_NAME/image.jpg' + '/assets/foo.png' -> '/keepsimple_/assets/$FEATURE_NAME/assets/foo.png' + '/images/bar.svg' -> '/keepsimple_/assets/$FEATURE_NAME/images/bar.svg' + - Also check template literals: \`/\${path}\` and string concatenation: '/path' + variable + - Also check CSS/SCSS: url('/image.jpg') -> url('/keepsimple_/assets/$FEATURE_NAME/image.jpg') +6. If the source generates textures or images via code (e.g., SVG data URIs, Canvas), + leave those as-is — they don't need file copying +7. Verify: after migration, grep all migrated files for any remaining asset paths + that don't start with /keepsimple_/assets/$FEATURE_NAME/ or are not data: URIs. + Fix any you find. + +────────────────────────────────────────────────────────────────────── +PHASE 9: CLEANUP +────────────────────────────────────────────────────────────────────── + +1. Delete _incoming/$FEATURE_NAME entirely +2. Delete any leftover config files from the source (tailwind.config.*, postcss.config.*, etc.) +3. Run: yarn install (if package.json was modified) +4. Make sure there are no broken imports by checking each new file + +────────────────────────────────────────────────────────────────────── +PHASE 10: REPORT +────────────────────────────────────────────────────────────────────── + +When done, print a summary: +- List of new dependencies added to package.json +- File mapping: source path -> destination path (for every file) +- Asset mapping: source asset -> destination path (for every image/font/media) +- List of files that could NOT be automatically converted and why +- Any env variables the source needs (.env) that keepsimple should add +- Next steps for the developer (manual testing, missing assets, etc.) +" diff --git a/src/api/settings.ts b/src/api/settings.ts new file mode 100644 index 0000000..8901b62 --- /dev/null +++ b/src/api/settings.ts @@ -0,0 +1,44 @@ +export const userInfoUpdate = async ( + token: string, + username?: string, + linkedIn?: string, + isEmailPublic?: boolean, + isLinkedinPublic?: boolean, + title?: string, + gender?: string, + npsScore?: number, + isModalShown?: boolean, +) => { + const url = `${process.env.NEXT_PUBLIC_STRAPI}/api/user/me`; + const body = JSON.stringify({ + ...(username !== undefined && { username }), + ...(linkedIn !== undefined && { linkedIn }), + ...(isEmailPublic !== undefined && { isEmailPublic }), + ...(isLinkedinPublic !== undefined && { isLinkedinPublic }), + ...(title !== undefined && { title }), + ...(gender !== undefined && { gender }), + ...(npsScore !== undefined && { npsScore }), + ...(isModalShown !== undefined && { isModalShown }), + }); + const headers = { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}`, + }; + + try { + const response = await fetch(url, { + method: 'PUT', + headers: headers, + body, + }); + + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + + return await response.json(); + } catch (error) { + console.error('Failed to update user info:', error); + throw error; + } +}; diff --git a/src/api/vibesuite.ts b/src/api/vibesuite.ts new file mode 100644 index 0000000..1d475e0 --- /dev/null +++ b/src/api/vibesuite.ts @@ -0,0 +1,27 @@ +export const getVibesuite = async (locale: string) => { + const url = `${process.env.NEXT_PUBLIC_STRAPI}/api/vibesuite?populate[pageSeo]=*&populate[OGTags][populate]=ogImage&locale=${locale}`; + return await fetch(url) + .then(resp => resp.json()) + .then(json => json?.data?.attributes || null); +}; + +export const updateLearnedSkills = async (learnedSkills: string[]) => { + const token: string = localStorage?.getItem('accessToken'); + if (!token) return; + + const url = `${process.env.NEXT_PUBLIC_STRAPI}/api/user/learned-skills`; + const res = await fetch(url, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + Authorization: `Bearer ${token}`, + }, + body: JSON.stringify({ learnedSkills }), + }); + + if (!res.ok) { + throw new Error('Failed to update learned skills'); + } + + return res.json(); +}; diff --git a/src/assets/icons/tools/tool-icons/friendly-tom.svg b/src/assets/icons/tools/tool-icons/friendly-tom.svg new file mode 100644 index 0000000..7b34b8a --- /dev/null +++ b/src/assets/icons/tools/tool-icons/friendly-tom.svg @@ -0,0 +1,29 @@ +<svg width="398" height="360" viewBox="0 0 398 360" fill="none" xmlns="http://www.w3.org/2000/svg"> + <g clip-path="url(#clip0_8942_11911)"> + <path d="M248.58 191.503C251.392 191.511 254.737 192.004 256.444 194.623C260.222 200.43 256.792 206.114 253.378 211.002C238.086 232.886 212.255 242.527 186.295 236.958C172.773 234.057 156.398 223.725 148.489 212.552C148.073 212.024 147.677 211.481 147.3 210.924C142.416 203.649 138.866 198.244 147.857 192.242C149.771 192.076 152.842 191.928 154.556 192.959C157.751 194.88 159.369 199.563 161.547 202.384C164.778 206.57 167.717 210.189 172.155 213.211C177.324 216.673 185.173 220.226 191.301 221.329C194.767 221.953 205.533 221.914 208.869 221.176C219.751 218.766 229.788 212.345 236.705 203.638C238.435 201.459 239.844 198.722 241.435 196.419C244.023 192.703 244.302 192.368 248.58 191.503Z" fill="#6A3A2A"/> + <path d="M44.7158 127.143C44.5588 127.956 43.9113 128.594 43.3691 129.271C43.081 129.009 43.1709 129.071 43 128.68C43.2537 127.811 43.8223 127.504 44.5488 126.914L44.7158 127.143Z" fill="#6A3A2A"/> + <path d="M335.757 102.301L335.749 102.306C335.748 102.298 335.75 102.296 335.757 102.301Z" fill="#6A3A2A"/> + <path fill-rule="evenodd" clip-rule="evenodd" d="M178.065 6.23339C185.548 2.86775 195.794 -2.86053 204.18 1.68359C205.819 2.57167 207.164 3.19139 208.885 3.86816C227.768 11.3287 246.051 20.2236 263.576 30.4756C273.608 36.3055 281.898 41.2209 290.761 48.834L290.528 49.4668C287.826 47.3747 284.916 45.9885 282.001 44.2988C278.594 42.3244 275.399 40.1189 271.946 38.1465L271.773 38.2285C275.646 42.8894 287.814 49.0451 293.166 52.6318C300.209 57.3526 307.299 62.499 314.441 67.0088C314.512 67.0523 314.862 67.1638 314.914 67.1836C316.217 67.7621 316.649 68.0808 317.824 68.9033C321.167 69.9493 324.216 74.0341 326.841 76.3398C330.153 79.251 333.653 81.8899 336.743 85.0498C337.778 86.1035 339.968 86.4184 341.046 87.5938L341.086 87.9678C341.133 88.4135 341.161 88.5225 341.309 88.96C341.911 89.2087 343.958 90.0492 344.286 90.4141C349.561 96.2717 354.551 102.423 359.618 108.463C361.251 110.408 362.091 113.343 363.821 115.274C365.026 116.706 365.434 116.552 366.144 117.271C366.851 117.516 366.745 117.649 367.287 118.415C367.727 119.393 367.789 119.149 367.669 120.059L367.046 120.747L367.335 121.003C367.472 121.121 367.261 120.906 367.626 121.04C370.178 121.982 371.343 124.068 372.221 126.411C374.666 128.844 380.693 139.516 382.778 143.026C383.128 143.618 384.157 147.853 384.414 148.899C382.649 147.652 381.421 146.571 379.804 145.154C380.781 147.872 382.709 152.774 381.812 155.436C380.279 156.937 378.284 153.311 376.791 154.017C376.006 155.121 376.736 155.089 375.974 156.881C374.844 157.29 374.356 157.388 373.506 158.281L373.519 158.567L373.52 158.566L373.508 158.281C374.358 157.388 374.846 157.29 375.976 156.881L375.846 157.491C376.587 157.236 377.28 156.991 378.009 156.703L378.299 156.873C375.021 162.407 365.806 164.881 360.051 167.14C351.683 170.425 343.028 173.165 334.394 175.65C330.816 176.653 319.131 177.892 316.948 179.396C316.531 180.196 317.393 185.368 317.568 186.669C318.941 196.914 316.704 206.219 315.991 216.331C315.829 218.648 312.368 226.015 312.586 227.419C314.058 226.951 314.646 223.42 315.855 221.901L316.331 221.761C316.848 223.161 314.913 227.735 314.006 228.992C311.208 233.685 308.164 238.544 306.394 243.758C304.341 249.811 301.396 254.017 298.033 259.352C295.118 263.979 292.751 269.204 289.634 273.733C279.327 289.201 265.048 303.017 254.046 317.832L254.048 317.834C253.421 318.884 251.869 321.486 250.621 321.684C251.397 320.034 252.753 319.111 253.573 317.438L253.723 317.095C254.583 315.234 257.042 311.368 258.514 310.526L257.8 310.134L257.71 309.347C255.953 308.264 257.495 306.669 258.497 305.437C260.481 303 262.425 300.687 264.847 298.673L264.399 299.053C262.183 300.976 260.358 303.151 258.497 305.437C257.495 306.669 255.953 308.264 257.71 309.347L257.8 310.134C257.265 310.011 257.024 309.969 256.509 309.741C255.114 310.191 254.691 310.727 253.469 311.517C253.416 312.579 253.146 313.621 252.11 314.049L251.891 313.684C252.099 312.689 252.416 312.451 253.079 311.679L252.283 311.223C250.995 312.602 250.032 314.425 248.909 315.324L248.594 315.259C248.981 314.311 249.107 314.214 249.868 313.519L250.023 312.541L249.23 312.568C249.74 311.677 252.803 307.813 253.655 307.649L253.656 307.648C252.81 307.801 249.738 311.675 249.228 312.568C245.18 315.966 245.18 317.071 241.919 321.076C238.912 324.769 233.564 329.111 231.316 333.306L231.317 333.307C229.577 336.262 227.061 338.472 224.941 340.904C221.537 344.814 216.008 350.198 213.134 354.255L213.135 354.256C212.589 355.121 212.168 355.373 211.378 356.006C210.495 356.823 210.575 357.549 209.255 358.479L209.199 358.188C209.867 356.764 210.021 356.607 211.168 355.517L211.386 355.312C211.884 354.827 212.313 354.303 212.773 353.77C213.633 352.032 220.148 344.091 221.809 341.889C222.304 341.421 223.613 340.621 224.386 339.979C224.71 339.709 225.249 339.214 225.877 338.599L226.362 338.116C225.532 338.952 224.792 339.641 224.386 339.979C223.613 340.621 222.304 341.421 221.809 341.889L221.672 341.581C220.557 341.961 220.127 343.114 219.436 343.491C217.972 344.294 216.636 344.991 215.193 345.836C213.467 346.848 211.726 349.336 210.324 349.474C209.913 349.659 209.524 349.864 209.136 350.094C208.845 349.924 208.502 349.737 208.227 349.552C207.935 350.927 204.975 353.679 203.766 354.616L203.485 354.611C207.313 348.486 212.975 342.164 217.284 336.191C226.372 323.596 236.938 312.021 246.257 299.563C248.727 296.264 252.444 293.131 255.073 289.704C260.006 283.277 265.043 276.918 270.073 270.568C273.113 266.643 275.343 261.441 278.301 257.437C280.903 253.289 284.334 249.201 286.854 245.28C294.973 232.655 301.736 219.578 304.771 204.757C305.336 202.001 305.257 198.991 305.664 196.227C307.567 183.255 304.836 170.192 301.646 157.585C300.077 151.374 298.166 140.575 292.384 136.543C291.076 135.738 287.877 134.561 286.312 134.107L285.876 134.274C285.73 134.859 289.159 144.609 289.576 145.907C294.656 161.694 296.083 177.411 294.211 193.897C293.856 197.319 294.054 201.257 293.541 204.623C291.676 216.871 286.658 229.303 279.471 239.51C272.673 249.164 264.514 259.799 256.089 268.129C254.726 269.474 253.584 271.511 252.259 272.934C245.848 279.019 240.928 286.376 235.362 293.054L220.212 311.459C216.716 315.709 213.517 319.129 210.474 323.816C208.074 327.514 204.517 330.999 202.27 334.911C200.554 337.651 198.599 339.269 196.432 341.576C195.15 342.734 195.124 345.493 194.288 346.639C192.544 349.024 190.816 351.287 189.148 353.749C186.825 357.179 185.78 361.546 182.463 364.104C183.145 362.693 184.395 359.518 185.184 358.323L185.335 358.111L184.895 357.733L184.276 358.318C183.547 359.009 182.563 359.907 182.026 360.031C181.982 359.401 182.05 359.301 182.21 358.701C181.249 358.873 178.827 363.036 176.685 364.935L176.479 365.111L175.484 366.121L174.999 366.099C174.85 365.796 174.686 365.481 174.547 365.179C174.333 365.141 174.093 365.041 173.881 364.966C173.854 363.984 174.136 363.801 174.63 362.849C175.093 362.743 175.272 362.671 175.407 362.671C175.272 362.671 175.094 362.743 174.63 362.849C174.009 362.146 173.131 361.687 172.321 361.182C171.341 362.647 170.179 365.001 167.979 364.571C167.251 364.429 166.189 366.574 165.418 367.334L165.289 367.151C165.783 365.514 168.959 356.477 169.646 355.227C171.5 351.859 175.427 346.307 177.647 342.864C179.021 340.734 180.305 338.334 181.593 336.241C178.708 336.146 178.059 335.791 175.356 334.769C176.701 336.471 179.248 337.814 178.773 340.089C176.683 342.256 170.797 339.984 168.424 339.017C170.506 340.914 170.726 341.269 171.965 343.854C165.866 340.616 156.386 330.894 151.357 325.804C149.437 323.861 146.535 319.844 144.423 317.589C140.471 313.369 136.509 309.056 132.653 304.746L132.199 305.276C131.602 304.684 131.339 304.438 131.316 303.711H131.314C131.337 304.438 131.6 304.684 132.197 305.276C133.2 306.286 134.842 308.541 135.705 309.759C137.315 312.031 140.938 315.086 141.761 317.549C142.658 320.231 144.219 320.737 146.104 322.842L146.492 323.319C146.842 323.754 147.072 324.105 147.114 324.776C145.697 324.814 145.736 324.136 144.793 323.401C142.886 321.514 140.562 319.104 138.54 317.427C136.147 315.539 133.365 313.794 131.089 311.794C121.353 303.234 112.915 294.043 106.48 282.729C105.894 281.696 104.485 279.214 103.715 278.441C103.706 279.581 104.154 280.346 103.718 281.259L103.386 281.144C102.932 279.594 102.497 279.814 101.977 278.682L102.943 277.679L102.437 277.429C101.946 277.19 101.528 276.951 101.386 276.394C101.908 276.001 102.117 275.897 102.457 275.324C102.299 274.822 102.458 274.984 102.067 274.749L100.638 275.687C99.561 275.399 99.2775 275.276 98.3076 275.688C97.9304 276.418 98.0041 276.101 98.2285 277.059C98.6225 277.199 98.9109 277.314 99.2939 277.481C99.2182 277.664 98.8146 278.728 98.9248 278.889C102.526 284.106 105.762 289.594 109.564 294.661C110.207 295.518 111.585 296.031 112.26 296.898C113.423 298.786 112.879 298.966 114.274 300.836L119.921 308.364C120.784 309.499 121.805 310.519 122.465 311.741L122.333 312.039C119.738 310.941 106.957 297.404 105.151 294.491C98.0794 283.091 88.7046 270.326 84.4434 257.568L84.8281 257.483C86.3279 258.711 86.7496 260.891 87.7061 262.316C88.8566 264.029 90.7195 265.761 92.252 267.156C93.9141 268.889 93.9972 270.979 97.0986 273.144V273.142C93.9995 270.977 93.9157 268.888 92.2539 267.156L93.0049 266.892L92.7471 266.534L92.6133 266.334C91.5229 264.734 85.8514 251.174 86.2227 250.102L86.8867 249.972C88.921 251.044 88.5864 254.424 90.0996 255.464L90.5635 255.262C90.9547 253.574 87.7674 249.071 87.3379 247.366C86.6662 244.701 86.7386 243.891 85.6504 241.226C84.6189 239.388 85.5762 238.582 83.4111 237.834C82.5526 241.034 76.7964 250.599 74.9629 253.597C74.4127 254.497 72.5133 256.747 71.7227 257.892C70.9925 258.947 69.2112 261.919 68.4561 262.661C66.0858 264.995 63.7158 266.752 61.3477 269.113L60.874 269.594C58.2103 271.671 58.1337 271.794 56.6328 274.809C56.8436 273.381 57.1092 271.966 57.4287 270.562L57.1191 270.199L56.6084 270.099L56.498 269.826C58.0595 266.909 60.183 265.596 62.0215 262.179C58.7862 264.359 55.05 269.174 51.2305 271.517C49.6925 272.459 45.3688 275.959 43.4736 276.664C43.4216 276.681 42.7754 276.082 42.543 276.137C40.121 276.709 36.7161 280.184 34.8076 281.656C34.2164 280.936 33.5366 279.986 32.9697 279.233C34.0765 277.893 35.4944 276.776 36.5771 275.486C47.6536 262.296 60.3469 250.057 67.2861 233.98C68.1536 231.97 69.8778 228.232 69.8115 226.06L69.5068 225.941C69.4422 226.01 66.1116 232.744 65.6143 233.713C63.7313 237.381 61.9919 239.618 59.4473 242.879C55.3941 247.954 57.2628 247.004 51.2549 251.069L50.8672 251.092C51.4982 249.427 52.9264 248.591 53.6279 246.961C55.3517 243.646 57.6382 240.321 59.4619 236.961C66.4594 224.069 72.7392 210.611 75.9277 196.229C77.0027 191.38 77.8677 186.315 79.1982 181.542C77.207 181.303 74.5825 180.565 72.5508 180.151C66.2867 178.874 60.7981 177.223 54.7168 175.368C48.4623 173.461 42.4537 171.597 36.3037 169.242C34.9468 168.723 32.3871 166.989 30.9336 166.232C27.6153 164.504 24.2629 162.84 20.7588 161.519C19.9585 160.344 19.0315 159.668 18.0879 158.673C14.3558 154.738 14.0143 153.582 14 148.544C16.603 155.643 14.3087 152.493 19.9971 157.588C20.306 153.658 20.1369 149.572 20.2295 145.578C19.8467 146.687 19.0163 149.225 18.4395 150.113L18.1592 150.019L18.1582 149.773L18.5723 149.867C17.5787 149.01 19.2981 145.384 18.5684 143.904C18.0334 144.072 17.591 144.226 17.0645 144.421L16.8652 144.201C17.1987 141.381 18.4079 139.736 18.9053 137.693L18.6211 137.274C17.962 137.246 17.7097 137.288 17.125 136.967C16.8244 134.888 23.3398 125.535 24.5234 123.421C25.8579 121.552 28.0735 119.837 29.4297 118.065C36.5687 108.734 45.9398 100.659 51.9688 90.5508C54.5204 86.2725 56.5654 84.1035 60.1328 80.5693C70.6157 70.308 81.8963 60.8949 93.8691 52.4189C94.7721 51.7692 99.4142 49.0709 99.6465 48.8184C102.553 45.658 129.191 32.8143 129.752 31.3721L128.603 30.7969L128.859 30.4727C130.4 30.2539 129.236 30.8908 130.791 30.8574C131.718 29.9859 131.906 29.7737 133.068 29.2119C133.426 29.5797 133.454 29.6055 133.883 29.8857L133.884 29.8848C133.456 29.605 133.428 29.5794 133.07 29.2119C133.486 28.3525 134.189 28.1399 135.049 27.7207C136.201 26.7914 143.583 23.0772 145.486 22.0957C156.184 16.4824 167.049 11.1923 178.065 6.23339ZM186.855 352.696C186.857 353.081 186.73 353.613 186.534 354.194C186.613 353.962 186.68 353.737 186.732 353.526C186.785 353.316 186.823 353.12 186.842 352.944C186.851 352.856 186.856 352.773 186.855 352.696ZM189.104 349.658C188.733 350.172 188.387 350.625 187.939 351.169L188.747 351.464L187.941 351.169C188.537 350.444 188.954 349.879 189.488 349.12L189.104 349.658ZM227.387 337.056C228.681 335.676 229.955 334.153 230.384 333.181C229.898 334.283 228.325 336.092 226.869 337.599L227.387 337.056ZM92.3652 200.264C92.7579 200.942 93.5587 202.28 93.7256 202.966C96.1215 212.823 99.0319 222.606 103.335 231.815C104.865 235.09 107.193 237.859 109.104 240.909C111.553 244.818 113.863 248.884 116.61 252.614C121.984 259.099 127.081 266.093 132.762 272.318C143.16 283.708 153.583 295.096 163.204 307.156C164.63 308.944 168.342 311.424 168.242 313.659L168.089 314.079L168.269 314.155C172.094 315.968 178.63 330.507 182.409 333.554C182.739 333.819 182.001 334.339 182.231 335.156L182.233 335.155C182.004 334.339 182.741 333.819 182.411 333.554C178.572 330.458 171.888 315.504 168.091 314.079L168.244 313.659C168.344 311.424 164.633 308.944 163.207 307.156C153.586 295.096 143.162 283.709 132.764 272.319C127.083 266.094 121.987 259.099 116.613 252.614C113.866 248.884 111.555 244.818 109.105 240.909C107.194 237.859 104.868 235.09 103.338 231.815C99.0348 222.606 96.1245 212.823 93.7285 202.966C93.5615 202.279 92.7585 200.94 92.3662 200.262L92.3652 200.264ZM183.004 329.63C183.888 330.73 183.811 331.492 183.436 332.768L183.438 332.769C183.814 331.491 183.891 330.728 183.004 329.626V329.63ZM139.448 286.986C140.153 288.204 143.286 291.039 144.476 292.097C146.089 296.98 162.546 315.22 167.447 316.996L167.446 316.995C162.619 315.243 146.6 297.544 144.562 292.335L144.476 292.097L143.288 291.023C142.816 290.59 142.291 290.098 141.781 289.602C141.526 289.353 141.275 289.104 141.036 288.859C140.319 288.127 139.713 287.443 139.448 286.986ZM241.973 260.111C239.444 262.266 236.377 264.004 233.918 266.154C229.12 270.354 224.053 274.524 219.408 278.866C217.494 280.654 215.548 283.356 213.61 285.321C212.402 286.546 208.683 289.376 208.001 290.206C204.802 294.093 197.43 302.051 195.615 306.206C196.695 307.669 197.786 308.898 198.864 310.296C199.635 311.113 200.369 311.916 201.195 312.679L201.402 312.519C202.733 311.501 204.182 310.976 205.343 309.714C210.844 303.734 215.262 296.619 220.198 290.177C223.067 286.429 226.487 283.072 229.467 279.404C231.119 277.372 242.248 262.011 242.401 260.541C242.431 260.264 242.423 260.289 242.391 260.057L242.226 259.894L241.973 260.111ZM250.93 311.469C250.865 311.522 250.804 311.578 250.746 311.638C250.833 311.549 250.925 311.467 251.03 311.391L250.93 311.469ZM163.91 263.364C165.071 266.527 170.566 272.112 172.839 274.999C176.711 279.914 180.695 284.999 184.732 289.784C186.867 292.242 190.856 295.224 192.43 297.717L194.734 294.534C195.793 293.327 197.424 291.829 197.258 290.156C196.478 287.044 191.865 284.753 189.653 282.523C188.746 281.608 186.123 279.949 185.644 279.201C183.058 275.161 181.067 274.219 177.073 271.651L164.39 263.599C164.139 263.436 164.233 263.492 163.91 263.364ZM247.073 130.28C233.069 125.025 206.05 122.405 191.265 123.523C181.623 124.184 172.299 124.877 162.906 126.724C139.905 131.314 122.091 147.559 119.202 171.475C118.591 176.537 117.736 178.611 118.189 184.134C119.975 205.914 128.393 223.278 144.921 237.518C151.094 242.838 157.988 247.258 165.399 250.648C166.38 251.101 167.381 251.529 168.356 251.989C180.922 257.892 194.534 258.772 208.253 258.074C213.873 257.347 221.922 255.659 227.224 253.804C241.264 248.889 256.979 237.974 266.044 226.181C276.204 212.961 282.296 194.771 280.086 178.006C278.873 168.81 275.709 155.975 270.646 148.165C268.294 144.537 264.911 141.068 261.474 138.454C257.034 135.079 252.314 132.247 247.073 130.28ZM120.841 255.109C121.51 255.329 121.94 255.603 122.272 255.956C122.32 256.007 122.365 256.059 122.409 256.113C122.76 256.544 123.008 257.084 123.364 257.771L123.366 257.771C122.653 256.397 122.372 255.612 120.841 255.109ZM55.125 246.372C54.7826 246.802 54.4263 247.113 54.043 247.212C54.2074 247.17 54.3669 247.089 54.5225 246.976C54.5742 246.938 54.6258 246.897 54.6768 246.853C54.8297 246.719 54.9783 246.556 55.125 246.372ZM57.5557 242.471C56.8061 243.45 56.1351 244.925 55.416 245.977L55.7021 245.535C55.891 245.229 56.0778 244.902 56.2646 244.57C56.5451 244.073 56.8259 243.567 57.1152 243.11C57.2598 242.882 57.4059 242.666 57.5557 242.471ZM58.501 241.592C58.3346 241.679 58.1736 241.801 58.0166 241.949C58.1213 241.85 58.2282 241.763 58.3369 241.69C58.3914 241.654 58.4454 241.621 58.501 241.592ZM85.4219 233.054C84.8066 234.342 84.0896 235.675 83.4307 236.95C84.9464 237.576 85.4624 238.291 86.2227 239.796C86.7368 239.89 86.5076 239.944 86.9365 239.755C86.941 238.302 85.8171 234.826 85.4219 233.054ZM89.3867 216.082C88.7084 218.128 86.4946 225.47 87.415 227.155L87.7246 227.08C88.0131 226.564 88.3074 226.05 88.5781 225.524C88.7748 224.889 88.9421 224.004 89.3633 223.592C90.2815 224.316 89.8823 225.207 90.5811 225.294C91.5585 223.725 90.2929 217.531 89.3867 216.082ZM110.184 133.646C107.17 135.034 105.811 134.859 102.267 136.813C100.529 143.055 97.6796 149.476 95.6611 155.73C91.4081 168.907 90.1856 180.288 91.0371 194.047C91.1656 196.125 90.9405 202.306 91.2725 203.355L91.2734 203.354C90.9418 202.302 91.1685 196.124 91.04 194.047C90.1885 180.288 91.4111 168.907 95.6641 155.73C97.6826 149.476 100.532 143.055 102.27 136.813C105.813 134.86 107.171 135.033 110.183 133.647L110.184 133.646ZM316.071 197C316.09 197.3 316.104 197.605 316.111 197.914C316.1 197.451 316.077 196.995 316.039 196.554L316.071 197ZM315.369 193.436C315.414 193.544 315.458 193.655 315.498 193.77C315.539 193.884 315.576 194.002 315.612 194.122C315.684 194.363 315.747 194.615 315.802 194.877C315.856 195.139 315.903 195.411 315.942 195.691C315.805 194.711 315.578 193.829 315.227 193.122L315.369 193.436ZM49.4639 159.365C47.8768 159.16 46.2205 159.152 44.625 159.267C47.2883 163.433 71.5061 171.738 77.1602 173.623C78.2262 173.978 79.5314 175.544 80.3174 175.641C81.024 175.166 81.0813 174.944 81.5293 174.182C82.2094 172.774 82.7967 171.708 82.5625 170.104C82.4288 169.932 82.3301 169.725 82.1611 169.586C80.8861 168.541 51.9745 159.69 49.4639 159.365ZM346.131 160.602C345.243 160.275 344.704 160.41 343.759 160.496C340.806 160.895 337.213 162.028 334.256 162.942C329.261 164.487 324.096 165.887 319.054 167.24C316.326 167.973 314.969 169.951 315.219 172.843C316.049 174.209 317.069 173.646 318.562 173.502C321.503 173.397 344.488 162.818 346.283 160.979L346.131 160.602ZM94.1416 149.922C93.9158 150.873 93.6762 151.849 93.4365 152.803C92.8372 155.187 92.2343 157.432 91.8262 158.803C91.6633 159.35 91.5305 159.757 91.4424 159.979L91.4434 159.98C91.8398 158.985 93.1256 154.203 94.1416 149.922ZM210.206 9.72168C208.641 9.41443 205.392 6.62847 203.593 7.65722C206.038 9.06883 208.05 10.1476 210.307 11.9199C212.543 13.6763 214.956 16.1157 217.187 17.7012C218.348 18.527 220.921 19.7908 222.304 20.6113C228.126 24.0662 233.838 27.1256 239.555 30.7978C242.009 32.3751 245.019 34.2994 247.456 36.0449C247.409 36.0115 248.185 36.2831 248.235 36.2949C249.069 36.4867 248.395 36.8126 249.394 37.2041C249.174 36.5311 247.28 34.9055 246.595 33.6553L246.891 33.5908C250.51 35.3 253.391 37.2194 255.931 40.3262C260.556 41.5047 262.534 44.4585 266.509 47.2061C273.636 52.1328 280.586 57.631 286.804 63.6787C289.244 66.0514 291.364 68.7735 293.934 71.3652C296.788 74.2456 300.846 77.5983 303.341 80.7656C303.498 80.9666 303.256 81.7194 303.304 81.7646C304.164 82.5671 305.663 83.6578 306.493 84.415C307.556 85.3743 308.536 86.4207 309.426 87.543C312.816 91.7596 315.341 96.4696 318.703 100.688C323.928 107.242 329.541 113.432 334.323 120.328C335.388 121.866 336.908 123.292 338.028 124.807C338.978 126.093 339.876 127.375 340.858 128.643C329.666 123.953 319.831 120.046 307.846 117.857C305.038 117.344 301.986 116.134 299.164 115.455C291.042 113.507 282.851 111.862 274.608 110.522C258.276 107.707 241.821 105.422 225.283 104.092C220.405 103.823 215.576 103.957 210.684 103.854C198.87 103.607 186.841 103.75 175.043 104.127C166.844 104.565 158.613 105.921 150.47 106.803C135.468 108.426 120.645 111.093 106.008 114.724C96.6121 117.054 86.7008 118.163 77.5312 121.37C76.7001 121.661 75.6958 121.813 74.8477 122.06C71.6144 122.499 68.4506 124.172 65.4141 124.949C60.7474 126.143 57.8049 127.105 53.4697 129.191C55.6762 124.276 59.646 118.508 62.71 114.117C75.0007 96.5055 90.6224 80.1483 106.368 65.624C108.165 63.9668 109.771 61.6932 111.46 60.2529C116.275 56.1473 121.963 52.5531 126.899 48.6787C135.064 42.2705 143.027 36.6152 151.718 30.9492C155.303 28.612 159.513 26.587 163.186 24.3545C167.923 21.4745 172.6 18.4471 177.325 15.5371C180.053 13.8571 183.175 13.0217 185.32 10.7041C175.837 13.3649 167.424 17.764 158.744 22.2637C144.265 29.6494 130.375 38.1355 117.194 47.6465C114.508 49.562 112.038 51.8393 109.296 53.7373C105.142 56.7517 100.515 59.5483 96.6982 62.999C93.2133 66.15 89.2175 68.8609 85.8105 72.0273C76.4711 80.7201 67.8425 90.1466 60.0078 100.217C57.8916 102.976 56.0129 106.057 53.9746 108.671C50.1852 113.531 46.0961 117.916 43.7773 123.801C42.3524 127.417 41.3981 131.126 39.7412 134.744C38.4445 137.576 37.4887 138.771 35.5391 141.241C35.2121 141.73 34.4548 145.25 34.54 145.755C36.1902 146.038 43.5923 142.407 45.5469 142.056C49.4536 141.354 54.1707 138.528 57.6904 137.69C66.7516 135.534 75.5135 132.444 84.5234 130.246C90.1676 128.869 95.8834 127.906 101.479 126.095C103.676 125.412 107.437 125.096 109.87 124.614L138.055 119.207C139.538 118.397 141.908 116.704 143.314 116.299C142.981 116.935 141.888 117.711 141.25 118.438L141.579 118.741C143.083 118.369 147.794 118.159 149.673 117.935C156.004 117.18 162.396 116.57 168.747 115.984C197.007 113.424 225.475 114.355 253.508 118.759C264.326 120.458 274.926 122.882 285.604 125.121C294.066 126.897 302.289 128.908 310.746 130.583C324.136 133.469 338.281 137.823 350.881 143.244C353.508 144.374 358.188 145.201 360.948 146.583C366.056 147.617 368.328 149.707 372.653 151.241C370.351 143.825 360.168 139.94 357.488 135.905C355.634 133.117 336.226 102.609 335.757 102.301L336.099 102.108C337.559 102.835 351.367 120.121 352.562 122.1C353.311 123.088 353.156 123.956 354.616 125.135C353.158 123.957 353.311 123.088 352.562 122.1L353.129 121.678L351.895 119.761C345.72 110.202 339.43 101.02 332.021 92.3223C331.582 91.8046 330.737 90.5053 330.334 89.8574C323.532 78.8785 312.714 71.5125 302.821 63.5781C302.039 62.9489 301.063 62.7046 300.238 62.1621C287.126 51.5493 273.414 41.9385 258.646 33.7559C242.74 24.9416 226.362 16.7613 210.147 8.46777L209.859 8.61132C210.078 9.12726 210.114 9.17509 210.206 9.72168ZM31.8838 142.127L31.4697 142.244C31.2293 142.852 31.0578 143.761 30.9043 144.422C30.0871 145.465 29.2215 146.245 28.9922 147.475L29.0947 147.831C30.648 147.547 31.1179 146.745 31.4004 145.318V145.315L30.9062 144.422C31.0597 143.761 31.2322 142.852 31.4727 142.244L31.8857 142.127L31.8496 141.812C31.848 141.805 31.8473 141.797 31.8457 141.79L31.8838 142.127ZM348.964 144.199C348.606 143.46 347.947 143.053 347.192 142.74C347.343 142.803 347.49 142.869 347.632 142.941C347.773 143.013 347.909 143.091 348.038 143.176C348.167 143.261 348.289 143.355 348.402 143.457C348.628 143.661 348.819 143.903 348.962 144.198L348.964 144.199ZM338.153 139.682C338.795 140.692 339.228 141.017 340.098 141.008C339.23 141.016 338.797 140.691 338.156 139.683L338.153 139.682ZM130.799 57.3984C124.249 61.0364 117.796 64.7725 111.959 69.5127C105.418 74.8244 85.5777 96.5128 83.2012 104.477C82.8961 105.499 82.2146 107.504 82.7207 108.424C88.8792 106.678 102.203 87.4804 107.164 82.1602C113.538 75.3257 120.537 68.105 126.835 61.1113C127.901 59.9284 130.642 58.3368 131.029 57.7754L130.799 57.3984ZM100.368 95.7803C99.7659 96.736 99.2943 97.2923 99.2676 98.4355L99.5293 98.5928L99.2695 98.4355C99.2963 97.2925 99.766 96.7358 100.368 95.7803ZM102.552 93.6357C102.425 93.7583 102.331 93.8588 102.254 93.957C102.138 94.1046 102.06 94.2468 101.966 94.4492C101.903 94.584 101.833 94.7454 101.741 94.9531L101.85 95.2852C101.988 96.1911 102.169 96.2858 102.804 97.0127L103.222 97.1475L102.806 97.0127C102.17 96.2857 101.99 96.1911 101.852 95.2852L101.741 94.9531C102.064 94.2257 102.109 94.0648 102.552 93.6357ZM100.241 94.166C100.523 94.8567 100.34 94.6202 101.186 95.0059C100.341 94.6209 100.522 94.8565 100.241 94.166ZM107.988 86.7832L108.155 86.917C107.354 88.427 105.309 90.275 104.151 92.0215L103.446 92.1807L103.448 92.1816L104.445 92.6123L104.618 93.1855L104.619 93.1836L104.445 92.6123L103.448 92.1816L104.154 92.0215C105.312 90.275 107.357 88.427 108.158 86.917L107.99 86.7822L107.988 86.7832ZM205.274 27.4619C202.87 25.8534 195.464 26.0416 192.457 26.2773C191.152 26.4241 187.333 26.6995 186.898 27.6807C184.657 32.7428 185.702 44.5617 185.213 49.9961C181.602 49.8876 164.66 49.4689 162.523 51.7353C161.302 53.0313 161.791 65.2349 161.969 67.7969C162.026 68.6176 162.078 69.8109 162.741 70.3682C165.91 73.0305 182.625 68.9445 185.261 71.4678C185.736 71.9233 185.951 73.1433 186.045 73.7939C186.973 80.2451 186.406 86.6664 186.906 93.124C190.393 93.9047 196.228 93.6733 199.895 93.3193C201.09 93.2931 205.657 93.4081 206.249 92.3711C208.932 87.6729 205.585 75.7353 208.227 71.4717C209.277 69.7765 228.785 70.268 231.177 70.1211C230.956 68.5804 230.879 67.1852 230.829 65.6836C230.713 63.4869 231.956 52.1606 229.99 51.3057C223.809 48.6187 213.95 51.2586 207.743 49.7969C205.836 49.3448 207.588 30.6958 205.274 27.4619ZM109.024 83.2637C107.408 83.486 104.579 86.2917 104.941 88.0137C104.809 87.3824 105.105 86.6052 105.613 85.8633C105.706 85.7283 105.805 85.5944 105.91 85.4629C106.015 85.3314 106.126 85.2021 106.241 85.0762C106.356 84.9503 106.476 84.8281 106.599 84.71C106.721 84.5917 106.847 84.4775 106.975 84.3691C107.102 84.261 107.232 84.1586 107.361 84.0625C107.946 83.6298 108.539 83.3306 109.024 83.2637ZM108.49 84.585C107.316 85.3076 105.875 87.1949 105.394 88.4189L105.396 88.418C105.909 87.1134 107.511 85.0552 108.72 84.457L108.721 84.4561L108.49 84.585ZM284.116 83.3496C284.675 84.6001 286.557 86.1641 287.451 86.5449C286.879 86.3008 285.902 85.5723 285.127 84.752C285.03 84.6493 284.936 84.5452 284.847 84.4404C284.489 84.0217 284.199 83.5925 284.056 83.2012L284.116 83.3496ZM120.412 74.7852C117.68 77.2473 114.85 79.1856 112.854 82.4092C112.085 83.6526 111.073 84.8935 110.032 85.915L110.033 85.916C111.074 84.8943 112.086 83.653 112.856 82.4092C114.984 78.9713 118.062 76.9948 120.957 74.2861L120.412 74.7852ZM283.958 82.6484C283.95 82.7762 283.969 82.9128 284.009 83.0557L283.977 82.915C283.96 82.8228 283.953 82.7336 283.958 82.6484ZM109.971 81.9209L109.973 81.9189L110.182 81.457L109.971 81.9209ZM115.771 75.7188C114.954 75.9572 114.211 77.052 113.607 77.7617C112.891 78.5106 110.571 80.7122 110.426 81.4648L110.428 81.4658C110.572 80.714 112.893 78.5109 113.609 77.7617C114.212 77.0523 114.955 75.9579 115.771 75.7188ZM290.964 70.5439C292.169 72.2069 300.047 79.9766 301.669 80.5371L301.668 80.5361C300.041 79.9697 292.169 72.2059 290.964 70.5439ZM76.4883 74.8418C75.6239 75.9377 72.895 78.4211 72.7119 78.9805L73.0117 79.3809L73.0127 79.3789L72.7148 78.9805C72.8981 78.4212 75.6224 75.9385 76.4883 74.8418ZM206.5 5.16504C206.907 5.24972 207.218 5.32896 207.526 5.42089C207.835 5.51285 208.14 5.61806 208.535 5.7539L207.901 6.3291L207.902 6.33007C209.509 7.18118 216.346 10.9005 217.763 10.7978L217.522 10.3584L217.403 10.7471V10.2353C214.606 7.91143 211.883 7.12437 208.535 5.7539C207.745 5.48223 207.314 5.33441 206.5 5.16504Z" fill="#6A3A2A"/> + <path d="M239.515 329.684C238.698 331.134 234.366 336.179 232.871 336.894L232.762 336.786L233.01 336.291L232.841 336.856C234.39 334.314 237.217 331.556 239.306 329.389L239.515 329.684Z" fill="#6A3A2A"/> + <path d="M312.195 236.79C313.308 237.42 313.213 241.484 313.828 242.683C315.451 245.851 316.355 249.031 317.33 252.434C317.843 254.226 319.071 255.936 318.671 257.916C318.321 261.481 316.618 265.121 315.211 268.381C314.773 269.398 315.38 270.571 314.976 271.281C310.138 279.756 302.152 286.037 294.375 291.677C293.363 292.412 292.188 293.229 291.096 293.799L290.87 293.746C292.85 291.589 304.961 277.015 304.705 274.762C304.695 274.687 304.666 274.618 304.648 274.546C302.918 275.808 298.001 282.329 295.858 284.209C294.243 285.629 289.01 289.218 288.205 290.358C286.625 293.096 281.355 297.664 278.66 299.309C279.843 297.793 284.53 293.556 284.713 292.358C283.938 292.236 283.748 292.363 283.391 291.911C284.605 291.004 285.328 290.446 286.418 289.406L286.707 288.968C289.751 284.432 294.497 279.728 297.546 275.196C298.183 273.994 298.418 272.384 298.908 271.134C299.753 268.986 300.551 266.324 301.551 264.302C304.016 259.314 307.196 255.231 308.471 249.696C309.018 247.316 310.523 238.046 312.195 236.79Z" fill="#6A3A2A"/> + <path d="M264.028 274.858C263.496 275.616 262.716 276.894 261.809 277.089C261.899 276.269 262.834 275.371 263.451 274.589L264.028 274.858Z" fill="#6A3A2A"/> + <path d="M267.959 271.267L266.656 272.681L266.658 272.682C266.153 273.08 265.688 273.468 265.157 273.815L264.926 273.961L264.03 274.858L263.453 274.589C263.683 274.281 264.448 273.634 264.773 273.342L265.935 272.559C266.425 271.969 266.981 271.354 267.491 270.771L267.959 271.267Z" fill="#6A3A2A"/> + <path d="M269.962 267.849C269.869 268.119 269.644 268.259 269.395 268.501L269.887 268.401C269.244 269.609 268.786 270.184 267.959 271.267L267.491 270.771C268.344 269.637 268.842 268.624 269.962 267.849Z" fill="#6A3A2A"/> + <path d="M48.9189 253.659C49.1341 255.336 47.0685 255.994 46.374 257.342C46.1142 257.844 46.0198 257.891 45.6064 258.299C45.5135 258.001 45.546 257.939 45.54 257.616C46.5642 255.757 47.3227 255.066 48.9189 253.659Z" fill="#6A3A2A"/> + <path d="M85.0234 245.297C86.2972 245.843 86.961 247.854 86.7812 249.196L86.1367 249.054C85.3738 247.696 85.1137 246.809 85.0234 245.297Z" fill="#6A3A2A"/> + <path d="M319.543 200.802C319.8 203.089 319.331 205.117 318.559 207.27L318.219 206.896C318.129 205.684 318.879 201.618 319.219 200.38L319.543 200.802Z" fill="#6A3A2A"/> + <path d="M36.0332 107.252C36.4451 107.289 36.3646 107.303 36.7617 107.478L36.7773 107.991C35.7534 109.757 34.3392 110.809 32.6973 111.965L32.3281 111.847L32.3926 111.498C34.2348 109.772 34.7117 109.436 36.0332 107.252Z" fill="#6A3A2A"/> + <path d="M296.621 52.5674C297.671 52.7509 299.463 54.5085 299.971 55.416C298.386 55.1679 297.311 53.941 296.621 52.5674Z" fill="#6A3A2A"/> + <path d="M290.764 48.834C291.739 49.3987 292.826 49.8829 293.446 50.7734C292.706 51.1229 291.214 49.9225 290.531 49.4668L290.764 48.834Z" fill="#6A3A2A"/> + <path d="M159.945 152.152C162.125 152.01 165.486 151.838 167.643 152.307C173.326 153.659 179.241 157.214 182.743 161.923C183.784 163.323 184.597 166.176 182.575 167.119C179.163 168.71 176.286 165.805 173.361 164.469C172.095 163.891 170.924 163.538 169.557 163.164C162.112 161.399 157.387 166.031 150.479 167.453C147.725 168.019 144.876 165.922 146.449 163.203C149.417 158.073 154.472 154.206 159.945 152.152Z" fill="#773E29"/> + <path d="M166.625 154.621C166.672 154.622 166.844 154.665 166.916 154.676C166.825 154.725 166.463 154.621 166.625 154.621ZM177.544 153.974C177.461 153.94 177.377 153.907 177.294 153.874C177.501 154.016 177.79 154.189 177.975 154.331C178.005 154.355 177.896 154.34 177.97 154.392C178.043 154.443 178.066 154.379 178.178 154.447C178.305 154.521 178.831 154.944 179.019 155.083C179.727 155.593 180.442 156.115 181.086 156.718C180.367 156.16 181.03 156.794 181.23 156.949C181.274 156.985 181.357 156.878 182 157.533C182.403 157.955 181.903 157.695 182.644 158.328C182.208 157.708 182.722 158.234 183.123 158.668C183.195 158.74 183.728 159.369 183.961 159.651C184.042 159.746 184.212 159.854 184.316 159.984C184.388 160.074 184.414 160.164 184.519 160.299C184.569 160.363 184.618 160.427 184.667 160.492C185.246 161.275 185.607 162.032 185.875 162.898C185.54 162.394 185.947 163.354 185.938 163.413C185.961 163.651 185.654 162.618 185.746 163.034C185.92 163.598 186.046 164.202 186.065 164.886C186.075 164.316 186.22 165.642 186.07 165.939C186.132 165.888 186.062 166.608 185.535 167.46C185.02 168.338 184 168.967 183.525 169.156C183.432 169.198 183.359 169.231 183.317 169.255C183.228 169.287 183.844 169.176 182.503 169.601C182.354 169.641 182.398 169.582 182.322 169.607C182.28 169.621 182.021 169.834 181.695 169.81C181.636 169.805 181.783 169.75 181.748 169.734C181.712 169.71 181.497 169.773 180.699 169.822C181.023 169.876 180.455 169.947 179.77 169.87C179.082 169.801 178.343 169.562 178.132 169.473C178.215 169.519 178.299 169.565 178.386 169.609C177.951 169.428 177.867 169.44 177.77 169.405C177.384 169.258 176.912 168.999 176.599 168.851C176.232 168.678 176.189 168.755 175.803 168.509C175.888 168.578 175.975 168.646 176.063 168.714C175.782 168.562 175.513 168.407 175.254 168.254C175.923 168.498 175.123 168.175 175.078 168.15C175 168.109 175.133 168.131 175.004 168.063C174.99 168.056 174.985 168.106 174.791 167.998C174.39 167.773 174.484 167.763 174.321 167.667C174.307 167.659 174.335 167.723 174.058 167.57C173.193 167.098 174.074 167.542 174.114 167.56C174.164 167.582 173.94 167.252 174.666 167.752C174.419 167.583 174.434 167.505 174.406 167.487C174.38 167.469 173.948 167.226 173.925 167.216C173.706 167.118 173.862 167.268 173.817 167.252C173.779 167.237 173.318 166.897 173.135 166.975C172.978 166.729 173.322 166.925 173.734 167.139C173.806 167.146 173.385 166.873 173.364 166.863C172.819 166.566 173.066 166.835 172.914 166.838C172.836 166.84 172.66 166.662 172.808 166.855C172.337 166.631 172.647 166.719 172.62 166.695C172.58 166.66 172.408 166.612 172.391 166.6C172.39 166.6 172.389 166.599 172.388 166.598C172.385 166.595 172.387 166.593 172.392 166.591C172.404 166.585 172.435 166.581 172.407 166.556C172.399 166.549 172.386 166.54 172.367 166.529C172.346 166.518 172.118 166.483 172.367 166.629C172.021 166.463 172.028 166.528 171.95 166.378C171.628 166.464 171.817 166.193 171.723 166.143C171.471 166.013 171.49 166.192 171.473 166.194C171.365 166.201 170.642 165.89 170.439 165.854C170.551 165.768 171.041 166.051 171.16 166.072C171.57 166.139 170.635 165.828 170.962 165.79C170.83 165.786 170.697 165.784 170.564 165.783C170.367 165.624 170.703 165.684 170.079 165.529C169.956 165.575 170.516 165.649 170.391 165.677C170.318 165.692 169.96 165.592 169.946 165.609C169.933 165.629 170.263 165.7 170.202 165.719C170.077 165.758 168.891 165.344 169.82 165.565C169.566 165.493 169.474 165.306 169.235 165.29C169.096 165.28 169.699 165.629 168.939 165.427L169.016 165.446C168.938 165.429 168.844 165.406 168.731 165.377C168.726 165.331 168.89 165.367 169.026 165.407L168.949 165.387C169.048 165.419 169.13 165.449 169.136 165.448C169.157 165.445 169.107 165.26 169.092 165.248C169.085 165.242 169.051 165.231 168.996 165.216L169.067 165.234C168.779 165.158 167.921 165.061 167.721 164.973C167.805 165.072 166.856 164.902 166.751 164.937C166.723 164.944 166.824 165.007 166.794 165.011C166.608 165.037 166.113 164.927 165.878 164.934C165.619 164.94 165.653 164.991 165.639 164.991C165.524 164.995 165.614 164.956 165.544 164.96C165.438 164.96 164.708 165.027 164.673 165.044C164.663 165.047 164.789 165.089 164.632 165.121C164.605 165.128 164.612 165.051 164.146 165.158C163.584 165.294 164.553 165.174 164.329 165.286C163.951 165.246 163.978 165.347 163.88 165.357C163.846 165.361 163.574 165.327 163.297 165.398C163.493 165.337 163.69 165.281 163.886 165.229C163.688 165.25 163.31 165.353 163.144 165.378C163.063 165.389 163.111 165.304 162.939 165.35C162.902 165.361 162.8 165.561 163.231 165.376C163.282 165.427 163.059 165.439 162.963 165.482C162.949 165.489 162.916 165.603 162.773 165.576C162.738 165.572 162.994 165.18 162.189 165.641C162.163 165.656 162.27 165.663 162.245 165.679C162.229 165.689 162.004 165.742 161.981 165.755C161.958 165.769 162.076 165.774 162.049 165.791C161.91 165.878 161.659 165.789 161.978 165.7C161.867 165.714 161.755 165.729 161.643 165.745C161.795 165.824 161.488 165.832 161.342 165.887C160.407 166.244 161.066 166.095 160.918 166.191C160.68 166.349 160.807 166.078 160.439 166.284C160.404 166.305 160.91 166.202 159.967 166.514C160.103 166.457 160.239 166.401 160.373 166.345C160.253 166.264 159.883 166.545 159.851 166.56C159.491 166.721 159.724 166.581 159.2 166.86C159.153 166.885 159.034 166.902 158.935 166.959C158.521 167.194 159.524 166.755 159.567 166.791C159.592 166.805 158.502 167.247 158.457 167.255C158.278 167.276 158.946 167.028 158.797 167.024C158.749 167.019 157.184 167.722 156.84 167.834C156.452 167.962 156.22 167.881 156.284 168.049C156.11 167.928 156.06 168.078 156.01 168.096C155.408 168.313 155.406 168.312 154.889 168.52C154.775 168.565 154.659 168.55 154.621 168.573C154.599 168.587 154.663 168.625 154.551 168.683C154.397 168.768 153.379 169.041 153.292 169.03C153.209 169.023 153.713 168.883 153.607 168.862C153.247 168.972 152.9 169.09 152.528 169.187C152.372 169.228 152.442 169.17 152.375 169.188C152.347 169.197 151.82 169.366 151.844 169.373C151.912 169.402 153.544 168.911 153.131 169.096C153.051 169.133 152.735 169.137 152.81 169.222C152.193 169.389 151.571 169.535 150.933 169.657C149.729 169.888 148.49 169.801 147.316 169.366C148.447 169.702 149.729 169.853 150.922 169.603C150.96 169.595 150.997 169.587 151.034 169.579C151.16 169.553 151.581 169.467 151.518 169.428C151.327 169.469 151.124 169.513 150.912 169.556C150.065 169.737 149.123 169.738 148.375 169.57C148.343 169.564 148.468 169.539 148.351 169.51C148.131 169.468 147.39 169.33 147.278 169.255C147.259 169.246 147.684 169.326 147.573 169.247C147.294 169.048 147.138 169.223 146.867 169.099C146.64 169.05 145.375 168.082 145.072 167.739C144.895 167.587 145.091 167.849 145.343 168.097C145.592 168.349 145.898 168.574 145.831 168.562C144.894 167.968 144.111 166.818 143.885 165.584C143.882 165.562 143.871 165.76 143.814 165.485C143.731 165.005 143.808 164.875 143.817 164.647C143.811 164.396 143.944 163.569 144.009 163.484C144.015 163.472 144.038 163.644 144.035 163.668C143.985 164.013 143.895 164.132 143.888 164.163C143.87 164.289 143.892 164.416 143.885 164.529C143.875 164.719 143.843 164.827 143.859 165.085C143.873 165.265 143.913 165.087 143.929 165.258C143.921 165.315 143.938 166.026 144.098 166.045C144.121 166.051 143.899 165.415 143.946 164.563C143.978 163.711 144.328 162.79 144.693 162.186C144.939 161.769 145.145 161.44 145.19 161.349C145.03 161.572 144.873 161.797 144.72 162.026C145.034 161.565 145.311 160.947 145.47 160.995C146.614 159.287 147.965 157.738 149.458 156.362C149.733 156.126 149.654 156.333 150.077 155.915C149.94 155.992 149.804 156.071 149.669 156.151C149.905 155.954 150.962 155.114 151.125 154.968C151.145 154.949 151.118 154.851 151.38 154.637C151.613 154.448 151.693 154.474 151.829 154.389C151.943 154.317 152.054 154.213 152.088 154.193C152.115 154.177 152.149 154.204 152.213 154.167C152.414 154.05 152.193 154.063 152.459 154.04C152.416 154.076 152.374 154.113 152.332 154.15C152.57 154.002 152.917 153.836 152.599 154.097C152.545 154.142 152.571 154.073 152.528 154.104C150.875 155.333 152.235 154.406 152.792 153.947C152.976 153.887 153.821 153.287 153.858 153.282C153.908 153.271 153.784 153.406 154.003 153.318C154.044 153.293 155.214 152.56 154.827 152.882C154.746 152.947 154.172 153.273 154.04 153.362C154.421 153.268 155.083 152.668 155.174 152.625C155.53 152.447 154.566 153.099 155.351 152.67C155.958 152.347 155.352 152.585 155.566 152.425C155.686 152.332 156.422 152.055 156.348 151.958C156.582 151.825 156.471 151.954 156.503 151.943C156.533 151.931 156.99 151.666 157.156 151.617C157.177 151.611 157.145 151.696 157.166 151.692C157.207 151.681 157.663 151.457 157.679 151.445C157.69 151.436 157.556 151.436 157.596 151.403C157.642 151.364 158.096 151.179 158.115 151.154C158.14 151.116 157.592 151.374 157.66 151.277C157.921 151.177 158.322 150.961 158.475 150.845C158.439 150.875 158.189 150.982 158.1 151.014C158.105 150.912 158.646 150.69 158.489 150.833C158.591 150.749 158.503 150.763 158.556 150.702C158.57 150.686 158.737 150.617 158.763 150.59C158.766 150.585 158.58 150.622 158.608 150.592C158.658 150.534 159.174 150.341 159.219 150.335C159.346 150.313 158.938 150.5 158.918 150.55C158.915 150.557 159.296 150.491 159.304 150.496C159.35 150.554 158.938 150.657 159.006 150.7C159.108 150.675 159.21 150.65 159.312 150.626C158.96 150.826 158.263 151.077 158.118 151.222C158.652 150.966 159.234 150.748 159.291 150.904C159.316 150.969 159.094 151.099 159.11 151.112C159.168 151.157 159.47 150.967 159.484 150.966C159.495 150.966 159.501 150.968 159.502 150.971C159.502 150.971 159.502 150.971 159.502 150.971C159.515 151.005 159.059 151.21 159.042 151.236C159.014 151.279 159.266 151.314 159.276 151.34C159.27 151.347 158.953 151.505 159.081 151.506C159.211 151.506 159.498 151.396 159.51 151.397C159.575 151.402 159.083 151.622 159.076 151.645C159.071 151.656 159.358 151.599 159.372 151.611C159.384 151.623 159.193 151.734 159.131 151.811C159.086 151.868 159.268 151.824 159.24 151.842C159.219 151.853 158.754 152.043 158.734 152.059C158.704 152.082 158.829 152.076 158.817 152.093C158.801 152.116 158.646 152.165 158.671 152.171C158.69 152.174 159.326 152.074 159.336 152.114C159.354 152.179 158.687 152.282 159.354 152.3C159.358 152.3 159.489 152.227 159.494 152.227C159.597 152.24 159.183 152.483 159.718 152.259C158.747 152.736 159.63 152.402 159.524 152.567C159.483 152.629 159.107 152.803 159.108 152.81C159.166 152.846 159.271 152.756 159.323 152.764C159.351 152.769 159.033 152.965 159.124 152.968C159.171 152.969 159.53 152.814 159.547 152.812C159.704 152.789 159.542 152.895 159.584 152.906C159.611 152.914 159.83 152.829 159.837 152.829C159.848 152.832 159.577 153.013 159.526 153.061C159.486 153.097 159.672 153.054 159.642 153.075C159.465 153.198 159.003 153.256 159.469 153.252C159.498 153.252 159.647 153.187 159.653 153.187C159.764 153.195 159.488 153.312 159.454 153.37C159.396 153.47 159.778 153.27 159.467 153.452C159.732 153.392 159.868 153.335 160.156 153.211C159.361 153.56 159.156 153.846 160.037 153.484C159.754 153.593 159.824 153.676 159.741 153.712C159.69 153.733 159.246 153.809 159.52 153.942C159.554 153.958 159.785 153.823 159.73 153.909C159.139 154.14 159.732 153.948 159.735 153.955C159.775 154.073 158.321 154.598 158.093 154.742C157.824 154.894 157.631 155.115 157.572 155.146C157.378 155.249 157.514 155.116 157.461 155.122C157.407 155.126 156.908 155.517 156.879 155.528C156.763 155.568 156.838 155.452 156.826 155.455C156.674 155.492 155.975 155.963 155.77 156.079C155.798 156.109 156.201 155.865 155.985 156.076C155.736 156.322 155.623 156.179 155.611 156.177C154.285 157.024 153.037 157.988 151.897 159.06C151.974 159.113 152.684 158.377 152.714 158.375C152.858 158.336 151.583 159.489 151.421 159.626C151.55 159.528 151.679 159.431 151.809 159.335C151.688 159.603 151.16 159.926 150.927 160.25C150.852 160.354 151.05 160.205 151.049 160.211C150.982 160.344 150.803 160.489 150.876 160.324C150.681 160.618 150.671 160.54 150.489 160.736C150.48 160.747 150.589 160.69 150.464 160.861C150.404 160.94 150.064 161.343 150.051 161.423C150.046 161.455 150.349 161.362 150.256 161.241C150.681 160.855 150.322 161.058 150.469 160.891C150.494 160.867 150.501 160.978 150.847 160.537C150.885 160.716 150.377 161.122 150.321 161.22C150.203 161.415 150.868 160.76 150.901 160.558C150.935 160.697 150.957 160.519 151.104 160.37C151.265 160.207 151.222 160.304 151.307 160.215C151.543 159.973 151.386 160.014 151.636 159.869C151.278 159.898 151.954 159.508 152.156 159.406C151.905 159.658 151.661 159.916 151.423 160.178C151.446 160.172 151.469 160.166 151.492 160.16C151.425 160.226 151.36 160.292 151.294 160.358C151.296 160.339 151.298 160.32 151.3 160.301C151.025 160.702 150.887 160.733 150.859 160.761C150.514 161.129 150.14 161.575 149.829 161.976C149.784 162.037 149.872 162.038 149.494 162.447C149.375 162.578 149.425 162.409 149.315 162.576C149.3 162.874 149.199 162.796 149.156 162.857C149.034 163.033 148.995 163.163 148.985 163.18C148.843 163.402 148.63 163.723 148.487 163.973C148.485 163.978 148.605 163.875 148.496 164.028C148.48 164.05 148.386 164.131 148.27 164.256C148.157 164.34 148.039 164.473 148.055 164.581C148.08 164.541 148.109 164.497 148.145 164.448C148.12 164.478 148.087 164.603 148.098 164.664C148.108 164.728 148.14 164.743 148.167 164.728C148.198 164.722 148.08 164.601 148.213 164.615C148.176 164.674 148.176 164.761 148.196 164.784C148.206 164.818 148.325 164.942 148.34 164.969C148.343 164.978 148.281 164.979 148.285 164.99C148.282 164.997 148.43 165.1 148.451 165.129C148.459 165.146 148.369 165.118 148.367 165.134C148.356 165.147 148.597 165.306 148.641 165.261C148.56 165.251 148.407 165.138 148.514 165.149C148.527 165.151 148.57 165.213 148.589 165.214C148.745 165.223 148.359 165.033 148.345 164.998C148.52 165.076 148.931 165.35 149.327 165.335C149.477 165.396 149.09 165.375 149.261 165.433C149.629 165.542 149.363 165.382 149.377 165.378C149.461 165.346 149.791 165.574 149.778 165.388C149.911 165.401 149.877 165.431 150.052 165.375C150.055 165.374 150.059 165.373 150.062 165.372C150.059 165.372 150.055 165.372 150.051 165.371C150.026 165.365 150.002 165.358 149.978 165.35C149.996 165.336 150.017 165.326 150.04 165.317C150.404 165.21 151.049 165.272 151.005 165.301C150.869 165.393 150.461 165.402 150.43 165.41C150.395 165.42 150.337 165.533 150.093 165.576C150.032 165.586 149.952 165.581 149.851 165.545C149.776 165.626 149.978 165.623 150.101 165.613C150.237 165.598 150.309 165.597 150.113 165.673C150.113 165.674 150.112 165.674 150.112 165.674C150.112 165.674 150.113 165.674 150.113 165.674C150.446 165.606 151.822 165.332 152.002 165.209C152.023 165.195 151.879 165.111 152.232 165.067C152.4 165.046 152.017 165.167 152.098 165.171C152.346 165.23 155.39 164.025 155.994 163.741C156.032 163.725 156.033 163.767 156.071 163.75C156.186 163.701 156.592 163.47 156.81 163.399C156.345 163.515 157.193 163.156 157.417 163.073C157.755 162.947 157.76 163.018 157.91 162.972C158.487 162.796 159.32 162.304 159.829 162.286C159.754 162.153 160.645 162.078 161.027 161.967C161.325 161.877 161.74 161.66 161.314 161.718C161.838 161.573 162.394 161.406 162.905 161.292C162.989 161.273 162.881 161.34 163.025 161.307C163.038 161.304 163.047 161.258 163.171 161.23C164.2 161.011 163.712 161.193 163.909 161.187C164.02 161.186 164.102 161.183 164.162 161.177C163.553 161.263 162.873 161.42 162.692 161.463C162.863 161.513 164.007 161.191 164.364 161.186C164.376 161.186 164.34 161.243 164.352 161.242C164.353 161.241 164.353 161.241 164.353 161.241C164.482 161.224 165.314 161.135 165.138 161.088C165.091 161.075 164.703 161.101 164.251 161.165C164.372 161.138 164.274 161.091 164.295 161.086C164.555 161.021 165.212 161.022 165.445 161.021C165.498 161.02 165.492 160.983 165.501 160.983C165.713 160.982 165.629 161.092 165.842 160.975C166.227 161.096 165.127 161.022 165.21 161.111C165.274 161.128 167.689 161.131 167.698 161.07C167.705 161.082 167.737 161.099 167.803 161.122C167.949 161.168 168.623 161.246 168.738 161.248C168.758 161.248 168.766 161.145 168.79 161.148C168.855 161.152 169.646 161.381 169.962 161.4C169.801 161.347 169.641 161.297 169.481 161.25C169.702 161.295 169.867 161.331 169.986 161.357L170.047 161.372C170.415 161.463 170.287 161.403 170.065 161.318C170.064 161.317 170.063 161.317 170.063 161.317L169.999 161.301C169.984 161.297 169.969 161.289 169.954 161.286C169.702 161.202 169.379 161.116 169.376 161.107C169.37 161.092 169.684 161.142 170.018 161.222L170.084 161.239C170.467 161.343 170.879 161.479 170.698 161.483C170.652 161.483 169.966 161.249 170.293 161.41C170.35 161.437 170.806 161.546 170.829 161.561C170.972 161.652 169.972 161.44 170.075 161.543C170.328 161.543 170.625 161.662 170.905 161.726C171.033 161.755 171.079 161.715 171.095 161.718C171.331 161.775 171.185 161.787 171.263 161.809C171.304 161.82 171.801 161.855 171.666 161.978C173.236 162.384 172.121 161.987 171.186 161.719C171.495 161.749 172.071 161.962 172.338 162.042C172.434 162.07 172.396 162.001 172.559 162.047C172.785 162.11 173.566 162.427 174.157 162.725C174.462 162.875 174.709 163.014 174.836 163.085C174.583 162.975 174.63 163.064 174.818 163.156C175.004 163.25 174.885 163.101 174.925 163.112C174.977 163.124 175.79 163.621 175.919 163.689C175.3 163.363 175.412 163.493 175.918 163.793C175.836 163.765 175.755 163.736 175.672 163.708C175.988 163.862 176.544 164.295 176.716 164.367C176.744 164.378 176.677 164.283 176.692 164.289C176.847 164.358 177.294 164.674 177.323 164.67C177.348 164.669 177.168 164.52 177.252 164.545C177.27 164.55 177.43 164.718 177.624 164.807C177.696 164.84 177.676 164.777 177.695 164.784C177.849 164.843 177.729 164.866 177.996 164.993C178.19 165.084 178.364 165.088 178.606 165.226C177.806 164.734 178.504 165.129 178.853 165.242C178.908 165.259 178.896 165.171 179.196 165.326C178.463 165.2 179.369 165.488 179.53 165.52C179.539 165.524 179.528 165.578 179.611 165.601C179.618 165.603 179.618 165.565 179.694 165.581C180.403 165.7 179.945 165.647 180.073 165.709C180.13 165.737 180.461 165.712 180.541 165.706C180.56 165.705 180.551 165.744 180.627 165.741C180.76 165.734 180.871 165.68 180.954 165.664C180.964 165.661 180.974 165.725 181.132 165.672C181.177 165.657 181.222 165.624 181.154 165.622C180.937 165.62 180.546 165.751 180.289 165.666C180.069 165.604 180.774 165.631 180.802 165.607C180.815 165.605 180.684 165.647 180.82 165.641C180.938 165.635 181.124 165.497 181.293 165.469C181.306 165.468 181.468 165.507 181.464 165.513C181.46 165.521 181.253 165.604 181.291 165.619C181.295 165.621 181.432 165.579 181.456 165.59C181.484 165.605 181.623 165.797 181.659 165.789C181.746 165.771 181.673 165.743 181.727 165.726C181.762 165.714 181.826 165.696 181.9 165.67C181.991 165.647 182.056 165.613 182.023 165.57C182.003 165.58 181.981 165.59 181.954 165.6C182.063 165.516 181.985 165.526 181.991 165.505C181.989 165.484 182.034 165.538 182.06 165.519C182.068 165.525 182.128 165.38 182.099 165.358C182.102 165.48 182.039 165.399 182.036 165.405C182.025 165.415 182.06 165.452 182.05 165.465C181.983 165.537 181.986 165.414 181.956 165.419C181.948 165.419 181.971 165.454 181.967 165.455C181.956 165.457 181.919 165.418 181.918 165.424C181.914 165.441 181.977 165.488 181.979 165.491C182.001 165.538 181.885 165.543 181.887 165.443C181.848 165.433 181.893 165.523 181.842 165.504C181.832 165.5 181.824 165.497 181.817 165.493C181.782 165.489 181.783 165.476 181.802 165.46C181.816 165.441 181.849 165.427 181.853 165.415C181.874 165.342 181.883 165.385 181.894 165.346C181.897 165.331 181.865 165.278 181.867 165.259C181.868 165.269 182.065 165.097 181.797 165.067C181.828 164.998 181.996 164.818 181.968 164.688C181.943 164.575 181.855 164.627 181.85 164.617C181.843 164.603 181.822 164.463 181.796 164.417C181.767 164.364 181.74 164.401 181.701 164.316C181.6 164.104 181.686 164.077 181.685 164.051C181.649 163.75 181.566 163.921 181.532 163.866C181.515 163.827 181.297 163.307 181.137 163.117C181.072 163.031 181.016 162.963 180.98 162.929C181.043 162.984 181.105 163.039 181.167 163.095C181.174 163.1 181.182 163.106 181.19 163.111C181.189 163.101 181.186 163.091 181.184 163.082C181.115 162.936 180.963 162.858 181.039 162.796C180.88 162.873 180.751 162.522 180.678 162.441C180.65 162.409 180.629 162.431 180.594 162.39C180.46 162.233 180.17 161.862 180.082 161.789C179.711 161.468 180.455 162.47 180.502 162.554C180.387 162.397 179.625 161.598 179.899 162.032C179.941 162.099 180.091 162.152 180.122 162.183C180.331 162.396 180.126 162.263 180.136 162.286C180.154 162.322 180.331 162.428 180.357 162.472C180.366 162.487 180.248 162.442 180.426 162.661C180.295 162.589 179.816 161.959 179.731 161.893C179.701 161.87 179.767 162.126 179.394 161.544C179.39 161.558 179.387 161.572 179.384 161.586C179.118 161.314 178.845 161.049 178.564 160.791C178.613 160.799 178.808 160.907 178.603 160.729C178.485 160.627 178.526 160.751 178.515 160.743C178.425 160.639 176.532 159.027 176.109 158.775C175.975 158.68 175.568 158.459 175.538 158.441C175.364 158.325 174.758 157.894 174.626 157.824C174.545 157.78 174.593 157.87 174.524 157.825C174.459 157.782 174.553 157.781 174.535 157.767C174.388 157.644 173.106 156.988 172.819 156.799C173 156.902 173.962 157.321 173.96 157.284C173.959 157.277 173.756 157.118 173.701 157.109C173.646 157.028 173.322 157 173.191 156.901C173.176 156.89 173.276 156.858 173.026 156.711C172.939 156.66 172.681 156.591 172.475 156.417C172.129 156.257 170.327 155.379 170.164 155.421C170.158 155.423 170.41 155.55 170.222 155.512C169.971 155.463 170.235 155.406 169.964 155.291C169.923 155.27 169.146 155.013 169.118 155.016C168.859 155.016 169.521 155.274 169.508 155.282C169.477 155.295 168.915 155.12 168.893 155.109C168.872 155.096 169.365 155.142 168.801 155.002C168.86 155.035 168.919 155.067 168.978 155.1C168.712 155.04 168.71 154.962 168.649 154.938C168.456 154.863 168.214 154.909 167.937 154.685C167.863 154.626 168.013 154.624 168.004 154.616C167.917 154.539 167.753 154.634 167.628 154.497C167.618 154.488 167.989 154.519 167.368 154.361C167.408 154.381 167.449 154.401 167.489 154.421C167.449 154.421 167.307 154.393 167.154 154.362L167.194 154.371C167.031 154.342 166.831 154.312 166.789 154.302C166.565 154.253 166.775 154.213 166.542 154.189C166.681 154.3 165.961 154.228 166.007 154.155C165.897 154.245 165.259 154.12 164.944 154.109C164.748 154.099 164.342 154.136 164.278 154.131C164.201 154.124 164.225 154.054 164.085 154.037C164.044 154.032 163.626 154.082 163.253 154.015C163.181 154.003 163.026 153.887 163.16 153.854C163.391 153.799 163.825 153.892 163.819 153.823C163.813 153.746 163.227 153.796 163.068 153.791C162.333 153.763 162.754 153.673 162.735 153.649C162.684 153.591 162.281 153.606 162.264 153.602C162.193 153.581 162.478 153.524 162.481 153.488C162.485 153.441 162.091 153.371 162.179 153.352C162.307 153.324 162.667 153.383 162.69 153.38C162.985 153.326 162.576 153.229 162.461 153.18C162.427 153.165 162.562 153.134 162.534 153.13C162.099 153.072 162.448 153.284 162.16 153.28C161.905 153.276 162.23 153.193 162.221 153.189C162.208 153.185 161.901 153.193 161.852 153.171C161.827 153.158 162.62 152.991 162.585 152.931C162.331 152.952 162.076 152.975 161.822 153C161.798 152.92 162.168 152.965 162.205 152.955C162.281 152.936 162.067 152.903 162.075 152.877C162.079 152.861 162.327 152.793 162.1 152.778C162.022 152.773 161.861 152.836 161.574 152.791C162.56 152.674 161.872 152.659 161.842 152.631C161.812 152.604 162.283 152.517 161.708 152.553C161.676 152.398 161.72 152.503 161.881 152.468C162.08 152.427 161.615 152.392 162.349 152.404C162.305 152.331 161.716 152.36 161.684 152.356C161.656 152.352 161.786 152.31 161.739 152.3C161.178 152.184 161.562 152.231 161.397 152.148C161.383 152.14 160.855 152.134 161.255 152.1C161.981 152.039 162.29 152.136 162.404 151.909C161.861 151.829 161.213 152.006 161.05 152.018C160.798 152.035 161.056 151.976 161.025 151.965C161.013 151.961 160.798 151.977 160.795 151.973C160.63 151.812 161.758 151.918 162.108 151.878C162.013 151.856 161.917 151.834 161.822 151.813C161.95 151.806 162.078 151.8 162.207 151.795C161.593 151.767 162.184 151.775 162.332 151.633C162.365 151.601 161.964 151.668 162.421 151.566C162.082 151.558 162.188 151.526 161.882 151.577C161.889 151.521 162.577 151.433 162.851 151.4C161.882 151.366 162.441 151.549 161.603 151.477C161.452 151.552 161.849 151.521 161.816 151.534C161.702 151.579 161.426 151.527 161.106 151.686C161.054 151.712 161.283 151.772 160.949 151.787C160.912 151.788 160.697 151.739 160.699 151.734C160.725 151.685 160.936 151.691 160.944 151.67C160.95 151.651 160.717 151.676 160.715 151.67C160.705 151.611 160.91 151.636 160.88 151.619C160.814 151.582 159.961 151.501 161.067 151.476C160.152 151.596 160.953 151.548 161.309 151.504C161.399 151.493 161.422 151.456 161.551 151.437C161.718 151.413 161.914 151.422 162.001 151.412C162.095 151.402 161.56 151.337 162.329 151.333C161.935 151.261 161.249 151.384 160.863 151.347C160.084 151.271 161.394 151.17 161.531 151.155C161.568 151.15 161.443 151.107 161.467 151.103C161.506 151.096 162.257 151.087 162.329 151.045C162.402 151.003 162.054 151.057 162.03 151.016C162.012 150.987 162.919 150.909 162.427 150.905C162.086 150.902 161.47 151.043 161.359 150.927C161.855 150.892 162.353 150.863 162.853 150.841C162.577 150.801 162.303 150.764 162.028 150.728C162.588 150.692 163.075 150.732 163.613 150.662C162.318 150.53 164.031 150.537 164.053 150.525C164.06 150.514 163.547 150.394 163.464 150.374C163.913 150.316 165.318 150.326 164.5 150.16C164.648 150.195 165.013 150.123 165.009 150.117C164.964 150.048 164.172 150.075 164.302 150.019C164.452 149.952 164.661 150.049 164.891 150.048C166.09 150.063 165.771 149.686 167.038 149.879C167.014 149.864 166.99 149.849 166.966 149.833C167.343 149.886 167.729 149.951 168.135 150.044L168.179 150.055C169.116 150.292 170.034 150.579 170.933 150.907C171.453 150.969 172.753 151.409 173.358 151.699C173.482 151.754 174.06 152.083 174.099 152.114C174.175 152.17 173.713 151.96 173.906 152.089C173.949 152.112 174.939 152.627 174.893 152.542C174.784 152.478 174.421 152.33 174.369 152.29C174.023 151.973 177.027 153.674 177.169 153.772C177.114 153.715 177.059 153.659 177.004 153.603C177.185 153.724 177.365 153.848 177.544 153.974ZM167.243 154.57C167.207 154.579 167.159 154.576 167.105 154.567L167.15 154.577C167.05 154.564 166.913 154.519 166.813 154.515C166.618 154.504 166.244 154.687 166.421 154.48C166.681 154.497 166.93 154.523 167.154 154.556L167.11 154.546C167.155 154.554 167.199 154.562 167.243 154.57ZM171.784 156.268C171.594 156.146 171.805 156.103 171.95 156.229C171.966 156.243 172.04 156.434 171.784 156.268ZM169.64 155.322C169.65 155.324 169.83 155.393 169.835 155.397C169.98 155.504 169.438 155.296 169.64 155.322ZM179.179 161.236C179.004 161.068 179.047 161.273 179.186 161.347C179.194 161.352 179.191 161.247 179.179 161.236ZM179.06 161.111C178.998 160.904 178.579 160.791 178.81 160.985C178.833 161.004 179.062 161.121 179.06 161.111ZM171.076 155.897C171.115 155.871 171.319 155.98 171.406 156.029C171.389 156.061 171.167 155.931 171.076 155.897ZM176.174 158.76C176.202 158.738 175.543 158.28 175.473 158.286C175.589 158.34 176.151 158.775 176.174 158.76ZM177.81 159.99C177.798 159.972 177.583 159.801 177.571 159.827C177.651 159.941 177.863 160.067 177.81 159.99ZM180.596 162.866C180.61 162.874 180.624 162.606 180.826 163.054C180.855 163.12 180.667 162.95 180.677 162.974C180.699 163.022 180.72 163.058 180.739 163.085C180.593 162.918 180.444 162.744 180.438 162.72C180.411 162.607 180.59 162.863 180.596 162.866ZM181.51 164.165C181.55 164.187 181.595 164.389 181.593 164.434C181.592 164.442 181.513 164.429 181.538 164.511C181.558 164.576 181.611 164.46 181.626 164.593C181.639 164.723 181.553 164.563 181.551 164.575C181.551 164.593 181.616 164.776 181.569 164.774C181.538 164.777 181.527 164.574 181.504 164.52C181.479 164.453 181.447 164.549 181.429 164.433C181.416 164.359 181.52 164.372 181.52 164.355C181.523 164.341 181.381 164.093 181.51 164.165C181.51 164.165 181.51 164.165 181.51 164.165ZM180.779 163.13C180.766 163.118 180.753 163.104 180.739 163.085C180.752 163.1 180.766 163.115 180.779 163.13ZM167.873 154.69C167.976 154.749 167.637 154.695 167.521 154.626C167.528 154.594 167.857 154.68 167.873 154.69ZM180.965 163.245C181.033 163.371 180.988 163.347 180.916 163.281C180.876 163.238 180.828 163.185 180.779 163.13C180.849 163.192 180.905 163.153 180.965 163.245C180.965 163.245 180.965 163.245 180.965 163.245ZM173.701 157.109C173.71 157.122 173.712 157.136 173.704 157.153C173.681 157.117 173.684 157.106 173.701 157.109ZM174.373 157.537C174.636 157.63 174.159 157.346 174.141 157.383C174.135 157.397 174.363 157.533 174.373 157.537ZM179.392 161.462C179.379 161.441 179.766 161.598 179.29 161.288C179.481 161.513 179.251 161.303 179.244 161.317C179.222 161.354 179.593 161.683 179.652 161.776C179.766 161.787 179.436 161.532 179.392 161.463C179.392 161.463 179.392 161.462 179.392 161.462ZM181.629 165.144C181.632 165.136 181.637 165.128 181.644 165.121C181.646 165.091 181.658 165.095 181.653 165.101C181.681 165.132 181.673 165.128 181.65 165.135C181.643 165.138 181.636 165.141 181.629 165.144ZM148.415 164.191C148.394 164.231 148.374 164.268 148.354 164.305C148.252 164.506 148.212 164.556 148.178 164.556C148.151 164.552 148.133 164.489 148.269 164.307C148.271 164.304 148.285 164.291 148.304 164.276C148.356 164.219 148.425 164.152 148.415 164.191ZM151.484 164.995C151.597 165.046 151.299 165.144 151.095 165.163C151.049 165.168 150.865 165.132 151.048 165.068C151.065 165.164 151.366 165.122 151.484 164.995ZM181.07 163.306C181.148 163.324 181.223 163.519 181.266 163.623C181.197 163.581 181.105 163.384 181.07 163.306ZM148.215 164.964C148.232 164.992 148.298 164.958 148.297 164.95C148.298 164.915 148.222 164.913 148.215 164.964ZM180.54 162.603C180.556 162.571 180.826 162.861 180.78 162.931C180.733 162.861 180.531 162.623 180.54 162.603ZM181.682 165.144C181.69 165.153 181.695 165.172 181.674 165.186C181.644 165.201 181.617 165.212 181.599 165.215C181.595 165.202 181.623 165.18 181.66 165.157C181.672 165.143 181.678 165.139 181.682 165.144ZM148.865 165.316C148.911 165.338 149.039 165.372 149.059 165.347C149.083 165.318 148.9 165.284 148.865 165.316ZM157.354 155.602C157.37 155.607 157.091 155.864 156.939 155.925C156.647 156.041 157.336 155.598 157.354 155.602ZM148.078 164.816C148.132 164.764 148.081 164.82 148.147 164.796C148.142 164.78 148.141 164.729 148.078 164.775C148.066 164.785 148.079 164.804 148.078 164.816ZM148.072 164.862C148.095 164.859 148.173 164.854 148.155 164.832C148.148 164.824 148.068 164.835 148.072 164.862ZM155.416 156.806C155.156 156.901 156.21 156.258 156.249 156.255C156.268 156.25 156.281 156.248 156.29 156.248C156.318 156.208 156.516 156.085 156.565 156.114C156.502 156.146 156.341 156.247 156.32 156.254C156.31 156.257 156.303 156.259 156.298 156.26C156.248 156.336 155.464 156.784 155.416 156.806ZM153.727 157.951C153.913 157.69 154.051 157.78 154.033 157.8C153.807 158.054 153.91 157.831 153.899 157.833C153.874 157.84 153.72 158.028 153.727 157.951C153.727 157.951 153.727 157.951 153.727 157.951ZM155.055 157.02C155.064 157.011 155.281 156.869 155.291 156.866C155.495 156.79 154.884 157.189 155.055 157.02ZM181.777 165.074C181.757 165.142 181.706 165.074 181.728 165.024C181.729 165.019 181.794 165.008 181.777 165.074ZM148.098 164.879C148.095 164.884 148.109 164.94 148.168 165.006C148.224 165.07 148.32 165.128 148.334 165.085C148.315 165.078 148.221 164.988 148.179 164.93C148.135 164.872 148.118 164.843 148.098 164.879ZM153.694 164.382C153.507 164.45 153.682 164.299 153.792 164.29C153.833 164.287 153.741 164.364 153.694 164.382ZM180.254 162.146C180.092 162.027 180.231 161.96 180.304 162.123C180.307 162.129 180.26 162.151 180.254 162.146ZM152.2 164.85C152.821 164.595 152.75 164.896 151.893 165.07C151.916 165.052 151.938 165.033 151.961 165.014C150.995 165.257 151.89 165.021 152.121 164.931C152.208 164.898 152.121 164.881 152.199 164.849C152.199 164.849 152.199 164.85 152.2 164.85ZM154.678 164.006C155.371 163.925 154.133 164.295 153.804 164.438C154.106 164.245 154.54 164.088 153.929 164.241C154.776 163.899 154.448 164.101 154.484 164.094C154.527 164.085 154.649 164.01 154.678 164.006ZM153.046 164.623C153.011 164.641 152.732 164.698 152.638 164.735C152.752 164.633 153.27 164.506 153.046 164.623ZM152.138 159.375C152.121 159.324 152.138 159.258 152.313 159.122C152.279 159.186 152.19 159.297 152.138 159.375ZM167.151 154.286C167.029 154.256 166.77 154.194 166.842 154.258C166.852 154.263 167.147 154.313 167.151 154.286ZM149.345 165.518C149.362 165.538 149.867 165.53 149.69 165.481C149.638 165.478 149.192 165.454 149.345 165.518ZM148.024 164.721C148.022 164.737 148.036 164.779 148.048 164.777C148.087 164.774 148.061 164.732 148.024 164.721ZM166.492 154.127C166.478 154.118 166.04 154.079 166.086 154.109C166.175 154.161 166.554 154.152 166.492 154.127ZM181.856 165.284C181.856 165.291 181.804 165.279 181.803 165.279C181.795 165.297 181.814 165.303 181.757 165.266C181.752 165.261 181.747 165.284 181.765 165.253C181.784 165.227 181.807 165.122 181.811 165.095C181.887 165.087 181.798 165.233 181.799 165.24C181.8 165.244 181.857 165.264 181.856 165.284C181.856 165.284 181.856 165.284 181.856 165.284ZM152.956 158.572C152.947 158.514 153.574 157.959 153.603 158.011C153.384 158.194 153.168 158.381 152.956 158.572ZM152.632 158.844C152.477 158.938 152.782 158.653 152.885 158.584C152.906 158.607 152.654 158.83 152.632 158.844ZM147.996 165.093C148.023 165.107 148.022 164.998 148.045 165.006C148.057 165.009 148.076 165.073 148.108 165.075C148.115 165.074 148.121 164.985 148.111 164.976C148.095 164.96 148.068 165.008 148.053 164.988C148.004 164.921 148.019 164.862 148.007 164.825C148.006 164.82 147.981 164.861 147.972 164.827C147.97 164.82 148.014 164.784 148.004 164.743C147.85 164.632 147.996 164.512 148.135 164.178C148.144 164.16 148.153 164.142 148.161 164.124C148.156 164.126 148.142 164.144 148.122 164.17C148.059 164.237 147.963 164.385 147.96 164.393C147.82 164.678 147.843 164.856 147.939 165.008C147.965 165.047 147.981 165.009 147.993 165.025C148.004 165.038 147.939 165.059 147.996 165.093ZM167.185 154.257C167.184 154.255 167.182 154.253 167.181 154.251L167.219 154.259C167.169 154.19 166.955 154.187 166.816 154.162C166.856 154.225 167.095 154.223 167.218 154.264L167.179 154.255C167.181 154.256 167.183 154.256 167.185 154.257ZM150.013 161.495C149.964 161.559 149.793 161.742 149.796 161.771C149.798 161.807 150.035 161.535 150.013 161.495ZM180.21 165.62C180.205 165.622 180.072 165.601 180.067 165.598C179.956 165.532 180.349 165.593 180.21 165.62ZM176.383 163.886C176.24 163.811 176.086 163.743 176.064 163.67C176.152 163.731 176.418 163.865 176.383 163.886ZM169.29 161.107C169.318 161.179 168.782 161.038 168.683 161.019C168.723 160.993 169.275 161.052 169.29 161.107ZM151.969 159.243C152.172 159.058 152.061 159.023 152.22 158.939C152.247 158.926 152.457 159.021 152.182 159.165C152.133 159.192 152.253 159.01 151.969 159.243ZM151.757 165.108C151.703 165.171 151.492 165.218 151.35 165.253C151.373 165.213 151.659 165.141 151.757 165.108ZM165.703 153.998C165.585 153.923 164.994 153.941 165.138 153.99C165.158 153.995 165.624 153.988 165.703 153.998ZM181.481 163.613C181.605 163.754 181.454 163.408 181.352 163.34C181.381 163.379 181.475 163.604 181.481 163.613ZM171.087 161.602C171.074 161.6 170.794 161.514 170.783 161.508C170.567 161.392 171.358 161.635 171.087 161.602ZM177.728 164.76C177.629 164.755 177.106 164.419 177.001 164.308C177.154 164.332 177.854 164.775 177.728 164.76ZM151.19 160.055C151.324 159.913 151.463 159.79 151.602 159.677C151.599 159.727 151.222 160.057 151.19 160.055ZM170.065 161.318C170.064 161.317 170.063 161.317 170.063 161.317L169.999 161.301C169.984 161.297 169.969 161.289 169.954 161.286C169.969 161.291 169.984 161.296 169.999 161.301L170.063 161.317C170.063 161.317 170.064 161.317 170.065 161.318ZM148.489 163.439C148.391 163.568 148.463 163.573 148.47 163.566C148.551 163.474 148.601 163.293 148.489 163.439ZM167.088 154.142C167.053 154.077 166.805 154.078 166.663 154.044C166.699 154.094 166.983 154.126 167.088 154.142ZM155.393 163.843C155.617 163.818 154.827 164.218 154.641 164.247C154.614 164.218 155.359 163.849 155.393 163.843ZM181.286 163.111C181.298 163.097 181.276 163.063 181.249 163.034C181.186 162.963 181.103 162.894 181.119 162.936C181.127 162.958 181.169 163.013 181.212 163.061C181.242 163.092 181.276 163.122 181.286 163.111ZM154.224 164.382C154.152 164.425 153.96 164.451 154.012 164.402C154.08 164.34 154.242 164.371 154.224 164.382ZM148.414 165.466C148.425 165.484 148.69 165.548 148.606 165.463C148.55 165.405 148.514 165.458 148.497 165.45C148.472 165.445 148.176 165.177 148.414 165.466ZM160.218 161.978C160.033 162.058 159.798 162.119 159.603 162.191C159.672 162.136 160.124 161.97 160.218 161.978ZM181.745 163.981C181.769 163.938 181.394 163.157 181.563 163.62C181.579 163.645 181.731 164.089 181.745 163.981ZM151.969 159.243C151.944 159.266 151.914 159.292 151.877 159.321C151.911 159.29 151.943 159.265 151.969 159.243ZM149.859 161.511C149.873 161.441 149.668 161.683 149.625 161.767C149.638 161.814 149.856 161.52 149.859 161.511ZM159.603 162.239C159.497 162.297 159.287 162.353 159.15 162.407C159.162 162.37 159.544 162.227 159.603 162.239ZM168.264 161.1C168.013 161.049 167.704 161.028 167.696 161.064C167.691 161.058 167.679 161.051 167.659 161.043C167.639 161.034 167.365 161.029 167.248 161.009C166.551 160.844 169.967 161.278 167.977 161.134C168.072 161.121 168.168 161.11 168.264 161.1ZM178.392 165.201C178.473 165.291 178.77 165.36 178.706 165.312C178.663 165.283 178.314 165.114 178.392 165.201ZM174.04 162.842C174.047 162.847 174.066 162.856 174.093 162.867C174.209 162.914 174.456 163.007 174.471 162.994C174.372 162.931 174.218 162.86 174.112 162.824C174.014 162.791 173.962 162.787 174.04 162.842ZM179.118 165.565C179.175 165.593 179.274 165.55 179.268 165.545C179.218 165.501 179.032 165.491 179.118 165.565ZM151.425 159.498C151.33 159.562 151.118 159.852 151.1 159.941C151.083 159.945 151.048 159.964 150.988 160.006C150.988 160.005 150.988 160.005 150.989 160.005C150.881 160.039 149.022 162.208 150.329 160.806C150.37 160.763 150.283 160.796 150.451 160.618C150.462 160.606 150.493 160.623 150.528 160.587C150.605 160.503 151.036 160.071 151.103 159.964C151.108 159.968 151.118 159.967 151.134 159.958C151.273 159.885 151.497 159.449 151.425 159.498ZM173.337 162.547C173.404 162.588 173.634 162.671 173.669 162.653C173.564 162.59 173.182 162.451 173.337 162.547ZM181.855 163.912C181.844 163.805 181.693 163.586 181.703 163.668C181.712 163.717 181.87 164.031 181.855 163.912ZM175.555 163.617C174.806 163.154 175.371 163.517 175.232 163.49C175.341 163.533 175.448 163.574 175.555 163.617ZM154.2 157.28C154.095 157.344 154.158 157.186 154.296 157.146C154.339 157.133 154.258 157.243 154.2 157.28ZM158.96 154.459C158.832 154.429 159.319 154.263 159.159 154.394C159.151 154.399 158.968 154.458 158.96 154.459ZM155.54 156.283C155.499 156.373 155.457 156.407 155.254 156.526C155.535 156.322 155.239 156.459 155.54 156.283ZM167.698 161.07C167.697 161.068 167.696 161.066 167.696 161.064C167.698 161.066 167.698 161.068 167.698 161.07ZM179.68 165.723C179.742 165.786 179.943 165.822 179.892 165.765C179.887 165.761 179.718 165.698 179.68 165.723ZM151.1 159.941C151.114 159.937 151.114 159.946 151.103 159.964C151.098 159.961 151.097 159.953 151.1 159.941ZM178.521 165.344C178.543 165.319 178.208 165.144 178.192 165.139C177.967 165.092 178.381 165.286 178.521 165.344ZM180.623 161.973C180.607 161.96 180.627 162.119 180.705 162.159C180.767 162.191 180.685 162.024 180.623 161.973ZM156.206 155.842C156.318 155.775 156.477 155.682 156.527 155.701C156.448 155.739 156.22 155.87 156.206 155.842ZM158.754 154.49C158.634 154.599 158.316 154.75 158.112 154.843C158.078 154.786 158.628 154.563 158.754 154.49ZM151.694 159.27C151.684 159.275 151.437 159.488 151.5 159.488C151.59 159.488 151.776 159.223 151.694 159.27ZM180.982 162.482C181.094 162.576 180.961 162.261 180.809 162.189C180.732 162.152 180.964 162.466 180.982 162.482ZM180.284 165.882C180.421 165.869 180.092 165.796 180.035 165.829C180.099 165.843 180.235 165.888 180.284 165.882ZM174.579 163.232C175.151 163.678 174.918 163.288 174.797 163.247C174.78 163.241 174.565 163.221 174.579 163.232ZM164.221 153.679C164.133 153.696 164.457 153.765 164.499 153.723C164.525 153.697 164.276 153.667 164.221 153.679ZM164.162 161.177C164.192 161.173 164.222 161.169 164.251 161.165C164.229 161.169 164.2 161.174 164.162 161.177ZM181.522 165.909C181.172 165.823 181.247 165.94 181.218 165.948C181.161 165.96 181.024 165.936 180.921 165.956C181.038 165.921 181.151 165.878 181.263 165.829C181.165 165.869 180.367 165.857 180.343 165.861C180.315 165.904 180.577 165.899 180.584 165.9C180.594 165.905 180.638 166.022 180.664 166.026C180.708 166.05 181.401 165.94 181.522 165.909ZM175.859 163.917C175.773 163.85 175.77 163.794 175.721 163.778C175.704 163.773 175.679 163.81 175.622 163.791C175.702 163.833 175.781 163.875 175.859 163.917ZM181.917 165.568C181.947 165.583 181.925 165.607 181.88 165.628C181.797 165.668 181.707 165.698 181.7 165.697C181.65 165.69 181.753 165.625 181.856 165.576C181.881 165.564 181.902 165.56 181.917 165.568ZM178.674 165.456C178.689 165.468 179.022 165.621 179.029 165.589C178.95 165.539 178.498 165.337 178.674 165.456ZM175.558 163.757C175.419 163.671 175.165 163.478 175.163 163.554C175.163 163.554 175.164 163.555 175.164 163.555C175.298 163.622 175.428 163.689 175.558 163.757ZM181.394 162.782C181.318 162.505 181.288 162.688 181.401 162.896C181.413 162.9 181.422 162.902 181.428 162.901C181.432 162.899 181.435 162.897 181.437 162.894C181.444 162.874 181.403 162.815 181.394 162.782ZM180.926 162.061C180.897 161.989 180.374 161.42 180.408 161.548C180.421 161.591 180.75 161.892 180.759 161.911C180.775 161.939 180.636 161.872 180.797 162.043C180.805 162.019 180.938 162.085 180.926 162.061ZM181.315 162.565C181.215 162.304 181.06 162.352 181.183 162.508C181.231 162.57 181.328 162.602 181.315 162.565ZM181.809 163.326C181.788 163.252 181.703 163.061 181.588 162.981C181.682 163.129 181.771 163.295 181.849 163.467C181.884 163.474 181.83 163.391 181.809 163.325C181.809 163.325 181.809 163.326 181.809 163.326ZM160.108 153.496C159.89 153.535 160.352 153.338 160.376 153.341C160.447 153.352 160.206 153.478 160.108 153.496ZM162.463 152.334C162.4 152.319 162.357 152.264 162.219 152.298C162.36 152.335 162.501 152.371 162.642 152.409C162.747 152.311 162.533 152.35 162.463 152.334ZM161.915 152.008C161.935 152.005 161.821 151.864 162.081 151.95C162.257 152.008 161.318 152.112 161.145 152.059C161.331 152.018 161.746 152.033 161.915 152.008ZM160.226 151.467C160.214 151.456 160.574 151.417 160.615 151.423C160.836 151.453 160.29 151.525 160.226 151.467ZM161.377 151.429C161.206 151.41 161.581 151.373 161.694 151.384C161.705 151.411 161.404 151.432 161.377 151.429ZM157.164 152.485C156.952 152.479 156.898 152.744 157.136 152.578C157.147 152.57 157.174 152.486 157.164 152.485ZM160.569 151.299C160.74 151.317 160.367 151.357 160.254 151.348C160.243 151.322 160.543 151.296 160.569 151.299ZM156.942 152.332C156.686 152.379 156.872 152.554 156.904 152.548C157.035 152.525 157.389 152.249 157.461 152.191C156.882 152.506 157.063 152.311 156.942 152.332ZM155.986 152.988C155.795 153.12 156.336 152.883 156.406 152.773C156.306 152.828 156.04 152.95 155.986 152.988ZM154.73 153.62C154.619 153.677 154.294 153.856 154.262 153.921C154.372 153.842 154.705 153.68 154.73 153.62ZM154.431 153.672C154.238 153.732 154.277 153.883 154.444 153.726C154.451 153.72 154.438 153.671 154.431 153.672ZM153.478 154.224C153.338 154.247 153.298 154.449 153.472 154.335C153.524 154.301 153.493 154.222 153.478 154.224ZM156.546 152.242C156.369 152.303 156.205 152.504 156.561 152.335C156.445 152.411 156.329 152.489 156.215 152.567C156.697 152.381 156.6 152.273 156.735 152.211C156.924 152.127 156.962 152.24 156.941 152.292C157.06 152.151 157.709 151.841 158.085 151.664C157.738 151.781 157.177 151.984 156.844 152.128C156.749 152.169 156.674 152.243 156.594 152.279C156.465 152.337 156.556 152.239 156.547 152.242C156.546 152.242 156.546 152.242 156.546 152.242ZM152.297 155.062C151.955 155.236 152.233 155.207 152.388 155.059C152.394 155.051 152.305 155.057 152.297 155.062ZM160.058 150.89C160.552 150.92 160.196 151.019 161.219 150.841C160.791 150.95 161.198 150.904 161.116 150.943C161.05 150.974 160.795 150.966 160.945 151.013C160.748 150.962 159.912 151.031 159.876 151.024C159.876 151.024 159.876 151.024 159.877 151.024C159.855 151.02 159.899 150.88 160.058 150.89ZM154.533 153.298C154.333 153.214 154.436 153.477 154.148 153.485C153.977 153.838 154.929 153.004 155.153 153.089C153.979 153.753 156.013 152.795 155.064 153.036C155.788 152.734 155.27 152.88 155.357 152.791C155.452 152.695 155.858 152.518 155.808 152.472C155.807 152.472 155.807 152.472 155.807 152.472C155.571 152.605 155.337 152.74 155.105 152.879C155.404 152.87 154.906 153.106 154.686 153.105C154.635 153.169 154.583 153.233 154.533 153.298ZM155.921 152.656C155.895 152.665 155.393 152.965 155.441 152.972C155.516 152.947 156.234 152.534 155.921 152.656ZM158.222 151.51C158.029 151.592 157.721 151.7 157.64 151.796C157.83 151.709 158.138 151.604 158.222 151.51ZM149.287 157.511C149.127 157.731 149.724 157.159 149.517 157.29C149.507 157.296 149.294 157.5 149.287 157.511ZM154.028 153.643C153.769 153.745 153.97 153.818 154.116 153.673C154.124 153.664 154.04 153.638 154.028 153.643ZM160.453 150.844C160.467 150.801 161.182 150.79 161.31 150.784C161.239 150.826 160.435 150.893 160.453 150.844ZM158.502 151.221C158.055 151.243 157.603 151.638 157.546 151.66C157.488 151.683 157.549 151.582 157.536 151.587C157.504 151.595 156.907 151.883 156.881 151.903C156.862 151.916 157.01 151.947 156.9 152.033C157.113 151.862 158.229 151.396 158.284 151.367C158.326 151.341 157.95 151.394 158.502 151.222C158.502 151.222 158.502 151.221 158.502 151.221ZM157.396 151.707C157.562 151.673 157.144 151.873 157.038 151.909C156.799 151.988 157.374 151.711 157.396 151.707ZM156.377 152.164C156.326 152.18 155.898 152.395 155.883 152.453C156.108 152.395 156.493 152.128 156.377 152.164ZM151.881 155.006C151.785 155.086 151.495 155.271 151.504 155.313C151.598 155.231 151.888 155.048 151.881 155.006ZM162.891 150.409C162.687 150.382 163.158 150.359 163.297 150.373C163.304 150.397 162.909 150.411 162.891 150.409ZM153.795 153.364C153.721 153.386 152.482 154.259 152.327 154.406C152.506 154.299 153.747 153.461 153.802 153.42C153.817 153.406 153.804 153.36 153.795 153.364ZM156.638 151.743C156.738 151.632 156.849 151.652 156.865 151.645C157.023 151.578 157.34 151.416 157.292 151.498C157.007 151.604 156.439 151.964 156.638 151.743ZM151.643 154.873C151.248 155.204 152.066 154.647 151.929 154.681C151.92 154.682 151.683 154.838 151.643 154.873ZM153.929 153.259C153.997 153.153 155.322 152.414 155.54 152.307C155.389 152.484 155.205 152.514 154.954 152.663C154.886 152.704 154.921 152.723 154.914 152.727C154.797 152.797 154.865 152.711 154.792 152.753C154.743 152.776 153.826 153.395 153.929 153.259ZM156.692 151.673C156.752 151.604 157.606 151.191 157.645 151.186C157.929 151.124 156.76 151.644 156.692 151.673ZM153.772 153.272C153.858 153.101 154.536 152.761 154.121 153.072C154.081 153.102 153.882 153.177 153.772 153.272ZM151.63 154.767C151.608 154.779 151.172 155.097 151.184 155.128C151.251 155.086 151.878 154.614 151.63 154.767ZM151.79 154.515C151.78 154.523 151.917 154.494 151.711 154.641C151.694 154.653 151.621 154.623 151.385 154.838C151.337 154.882 151.285 154.979 151.293 154.976C151.613 154.85 152.293 154.096 151.79 154.515ZM156.684 151.617C156.625 151.615 156.7 151.486 156.819 151.475C156.87 151.471 156.811 151.554 156.684 151.617ZM150.29 155.829C150.493 155.583 149.745 156.229 149.719 156.276C149.763 156.276 150.268 155.852 150.29 155.829ZM163.363 150.012C163.363 150.012 163.363 150.012 163.363 150.012C163.622 150.021 163.462 150.065 163.474 150.066C164.027 150.124 163.881 150.031 163.967 150.019C164.154 149.996 164.123 150.111 164.439 150.067C163.917 150.131 164.391 150.107 164.406 150.149C164.461 150.316 163.715 150.064 163.458 150.103C163.422 150.108 163.687 150.16 163.595 150.176C163.298 150.226 162.371 149.986 163.363 150.012ZM156.893 151.431C156.98 151.331 157.846 150.991 157.639 151.13C157.604 151.149 156.761 151.571 156.893 151.431ZM167.286 164.747C167.103 164.774 167.512 164.86 167.592 164.838C167.631 164.825 167.368 164.735 167.286 164.747ZM170.164 165.537C170.388 165.595 170.673 165.499 170.39 165.44C170.36 165.434 170.146 165.505 170.164 165.537ZM155.824 167.915C156.098 167.876 156.039 167.772 155.856 167.845C155.792 167.871 155.815 167.916 155.824 167.915ZM164.7 164.877C164.723 164.878 164.979 164.841 164.967 164.815C164.869 164.808 164.552 164.868 164.7 164.877ZM155.75 167.961C155.891 167.884 155.605 167.904 155.451 168.052C155.542 168.01 155.736 167.969 155.75 167.961ZM153.15 153.365C153.061 153.481 152.73 153.688 152.551 153.825C152.495 153.786 153.022 153.462 153.15 153.365ZM169.218 165.191C169.416 165.206 169.107 165.087 169.029 165.096L169.095 165.112C169.084 165.115 169.078 165.12 169.082 165.129C169.083 165.13 169.086 165.131 169.09 165.133L169.023 165.116C169.063 165.133 169.21 165.19 169.218 165.191ZM145.879 168.418C146.118 168.558 145.464 167.974 145.61 168.175C145.616 168.187 145.865 168.413 145.879 168.418ZM143.975 164.808C143.932 165.048 144.151 166.068 144.103 165.664C144.077 165.604 143.993 164.824 143.975 164.808ZM163.983 149.974C163.909 149.909 164.339 149.927 164.401 149.94C164.425 149.945 164.078 150.058 163.983 149.974ZM157.428 167.276C157.551 167.216 157.879 167.096 157.923 167.041C157.774 167.111 157.362 167.23 157.428 167.276ZM168.355 165.002C168.52 165.101 168.809 165.155 168.757 165.051C168.429 164.991 168.784 165.137 168.355 165.002ZM154.929 168.353C155.038 168.318 155.089 168.206 155.075 168.206C154.947 168.212 154.811 168.359 154.929 168.353ZM162.314 165.426C162.33 165.46 162.625 165.359 162.579 165.347C162.563 165.342 162.301 165.398 162.314 165.426ZM149.327 156.362C149.179 156.454 149.537 156.072 149.679 155.999C149.773 155.991 149.345 156.349 149.327 156.362ZM151.859 169.286C151.857 169.346 152.417 169.167 152.182 169.181C152.124 169.185 151.861 169.267 151.859 169.286ZM144.912 167.66C145.148 167.877 144.818 167.494 144.559 167.042C144.294 166.595 144.119 166.086 144.215 166.456C144.193 166.535 144.843 167.652 144.912 167.66ZM144.092 163.33C144.058 163.433 143.88 163.32 144.101 162.929C144.129 162.879 144.083 163.148 144.11 163.108C144.114 163.063 144.506 162.261 144.532 162.238C144.549 162.198 144.471 162.214 144.487 162.172C144.491 162.162 144.508 162.134 144.534 162.094C144.605 161.991 144.77 161.776 144.853 161.643C145.05 161.323 145.031 161.264 145.047 161.237C145.095 161.161 145.206 161.054 145.306 160.902C145.802 160.134 146.62 158.997 147.171 158.522C146.725 158.983 146.381 159.493 146.017 160.016C146.04 159.802 145.538 160.829 145.821 160.221C145.716 160.391 145.049 161.39 144.623 162.146C144.309 162.681 144.131 163.223 144.093 163.329C144.093 163.329 144.093 163.33 144.092 163.33ZM171.003 165.862C170.855 165.876 171.515 166.096 171.594 166.051C171.514 166.007 171.023 165.859 171.003 165.862ZM167.888 165.21C167.826 165.213 167.75 165.325 167.444 165.228C167.444 165.228 167.444 165.228 167.444 165.228C167.354 165.2 167.461 165.181 167.446 165.168C167.441 165.162 167.159 165.073 167.399 165.086C167.766 165.11 167.423 165.182 167.617 165.205C167.641 165.206 168.021 165.191 168.001 165.174C167.999 165.172 167.886 165.17 167.869 165.161C167.802 165.128 167.841 165.094 167.832 165.091C167.796 165.078 167.207 165.08 167.123 165.02C167.097 164.99 168.073 165.058 168.108 165.083C168.13 165.093 168.103 165.198 168.126 165.213C168.136 165.218 168.535 165.248 168.58 165.269C168.594 165.275 168.605 165.28 168.612 165.284C168.56 165.239 168.91 165.315 168.892 165.351C168.882 165.364 168.643 165.303 168.635 165.3C168.632 165.298 168.629 165.296 168.626 165.294C168.669 165.339 167.854 165.195 168.021 165.287C167.784 165.285 168.067 165.203 167.888 165.21ZM166.751 165.17C166.776 165.16 166.8 165.15 166.825 165.14C166.411 165.146 165.939 165.092 165.459 165.125C165.338 165.134 165.482 165.193 165.323 165.186C165.196 165.181 165.047 165.131 165.115 165.11C165.133 165.104 165.395 165.123 165.524 165.112C165.909 165.078 165.808 165.026 165.83 165.022C165.855 165.019 166.097 165.055 166.23 165.053C166.558 165.05 166.715 165.015 167.162 165.096C166.899 165.117 167.036 165.211 166.751 165.17ZM148.872 169.774C148.839 169.812 148.357 169.713 148.181 169.677C148.216 169.65 148.693 169.767 148.872 169.774ZM178.901 155.015C178.778 155 179.421 155.493 179.28 155.325C179.249 155.287 178.984 155.074 178.901 155.015ZM181.702 157.368C181.793 157.43 181.501 157.096 181.469 157.133C181.459 157.144 181.69 157.359 181.702 157.368ZM161.325 166.045C161.309 166.052 161.064 166.124 161.056 166.125C160.875 166.118 161.678 165.877 161.325 166.045ZM184.799 160.757C184.492 160.355 185.285 161.644 185.086 161.227C185.082 161.207 184.819 160.776 184.799 160.757ZM185.734 162.58C185.697 162.468 185.518 161.986 185.494 161.988C185.467 161.991 185.67 162.539 185.734 162.58ZM154.937 168.598C155.002 168.649 154.493 168.776 154.321 168.844C154.257 168.792 154.772 168.669 154.937 168.598ZM157.931 167.464C156.01 168.316 156.39 168.001 158.032 167.385C158.051 167.425 158.05 167.41 157.931 167.464ZM155.397 168.473C155.455 168.404 155.691 168.328 155.847 168.271C155.831 168.311 155.507 168.424 155.397 168.473ZM178.162 154.383C178.312 154.414 178.784 154.828 178.679 154.784C178.656 154.771 178.103 154.379 178.162 154.383ZM161.194 166.154C161.259 166.202 160.709 166.372 160.661 166.375C160.472 166.381 161.157 166.181 161.194 166.154ZM151.914 169.597C151.808 169.678 151.467 169.732 151.248 169.778C151.339 169.713 151.73 169.642 151.914 169.597ZM153.453 169.208C153.441 169.214 153.148 169.299 153.134 169.3C152.88 169.323 153.708 169.084 153.453 169.208ZM162.995 149.509C163.005 149.507 163.228 149.507 163.236 149.509C163.436 149.556 162.766 149.558 162.995 149.509Z" fill="#6A3A2A"/> + <path d="M227.766 152.152C229.945 152.01 233.306 151.838 235.464 152.307C241.146 153.659 247.062 157.214 250.563 161.923C251.605 163.323 252.417 166.176 250.396 167.119C246.983 168.71 244.107 165.805 241.181 164.469C239.916 163.891 238.744 163.538 237.378 163.164C229.932 161.399 225.207 166.031 218.3 167.453C215.546 168.019 212.697 165.922 214.27 163.203C217.237 158.073 222.292 154.206 227.766 152.152Z" fill="#773E29"/> + <path d="M234.446 154.621C234.492 154.622 234.664 154.665 234.736 154.676C234.645 154.725 234.284 154.621 234.446 154.621ZM245.364 153.974C245.281 153.94 245.198 153.907 245.114 153.874C245.321 154.016 245.61 154.189 245.795 154.331C245.825 154.355 245.716 154.34 245.79 154.392C245.864 154.443 245.886 154.379 245.998 154.447C246.126 154.521 246.652 154.944 246.84 155.083C247.547 155.593 248.262 156.115 248.906 156.718C248.187 156.16 248.85 156.794 249.051 156.949C249.094 156.985 249.177 156.878 249.821 157.533C250.223 157.955 249.723 157.695 250.464 158.328C250.028 157.708 250.542 158.234 250.944 158.668C251.015 158.74 251.548 159.369 251.781 159.651C251.862 159.746 252.032 159.854 252.136 159.984C252.208 160.074 252.234 160.164 252.339 160.299C252.389 160.363 252.438 160.427 252.487 160.492C253.067 161.275 253.428 162.032 253.695 162.898C253.36 162.394 253.767 163.354 253.758 163.413C253.781 163.651 253.475 162.618 253.567 163.034C253.74 163.598 253.866 164.202 253.886 164.886C253.895 164.316 254.041 165.642 253.891 165.939C253.952 165.888 253.882 166.608 253.355 167.46C252.841 168.338 251.82 168.967 251.346 169.156C251.252 169.198 251.18 169.231 251.137 169.255C251.048 169.287 251.664 169.176 250.323 169.601C250.174 169.641 250.218 169.582 250.142 169.607C250.1 169.621 249.841 169.834 249.515 169.81C249.456 169.805 249.604 169.75 249.568 169.734C249.533 169.71 249.317 169.773 248.519 169.822C248.844 169.876 248.275 169.947 247.591 169.87C246.902 169.801 246.164 169.562 245.952 169.473C246.035 169.519 246.12 169.565 246.206 169.609C245.772 169.428 245.687 169.44 245.591 169.405C245.205 169.258 244.732 168.999 244.419 168.851C244.053 168.678 244.009 168.755 243.623 168.509C243.708 168.578 243.795 168.646 243.884 168.714C243.602 168.562 243.333 168.407 243.075 168.254C243.744 168.498 242.943 168.175 242.899 168.15C242.821 168.109 242.953 168.131 242.824 168.063C242.811 168.056 242.806 168.106 242.611 167.998C242.21 167.773 242.304 167.763 242.142 167.667C242.127 167.659 242.156 167.723 241.878 167.57C241.013 167.098 241.894 167.542 241.934 167.56C241.984 167.582 241.761 167.252 242.486 167.752C242.239 167.583 242.254 167.505 242.227 167.487C242.201 167.469 241.768 167.226 241.745 167.216C241.527 167.118 241.682 167.268 241.637 167.252C241.599 167.237 241.138 166.897 240.956 166.975C240.798 166.729 241.142 166.925 241.554 167.139C241.626 167.146 241.205 166.873 241.184 166.863C240.639 166.566 240.887 166.835 240.734 166.838C240.656 166.84 240.48 166.662 240.628 166.855C240.157 166.631 240.467 166.719 240.44 166.695C240.4 166.66 240.228 166.612 240.211 166.6C240.21 166.6 240.209 166.599 240.208 166.598C240.205 166.595 240.207 166.593 240.212 166.591C240.224 166.585 240.256 166.581 240.228 166.556C240.219 166.549 240.206 166.54 240.187 166.529C240.167 166.518 239.938 166.483 240.188 166.629C239.841 166.463 239.849 166.528 239.77 166.378C239.448 166.464 239.637 166.193 239.543 166.143C239.291 166.013 239.31 166.192 239.294 166.194C239.185 166.201 238.462 165.89 238.259 165.854C238.371 165.768 238.862 166.051 238.981 166.072C239.39 166.139 238.455 165.828 238.782 165.79C238.65 165.786 238.518 165.784 238.384 165.783C238.188 165.624 238.523 165.684 237.9 165.529C237.777 165.575 238.337 165.649 238.211 165.677C238.138 165.692 237.78 165.592 237.767 165.609C237.754 165.629 238.083 165.7 238.022 165.719C237.897 165.758 236.712 165.344 237.64 165.565C237.386 165.493 237.295 165.306 237.055 165.29C236.916 165.28 237.519 165.629 236.759 165.427L236.837 165.446C236.758 165.429 236.664 165.406 236.552 165.377C236.547 165.331 236.711 165.367 236.846 165.407L236.77 165.387C236.868 165.419 236.95 165.449 236.956 165.448C236.978 165.445 236.927 165.26 236.913 165.248C236.905 165.242 236.871 165.231 236.816 165.216L236.887 165.234C236.599 165.158 235.741 165.061 235.542 164.973C235.625 165.072 234.677 164.902 234.572 164.937C234.543 164.944 234.645 165.007 234.615 165.011C234.428 165.037 233.933 164.927 233.698 164.934C233.44 164.94 233.473 164.991 233.459 164.991C233.344 164.995 233.434 164.956 233.364 164.96C233.259 164.96 232.529 165.027 232.493 165.044C232.483 165.047 232.609 165.089 232.452 165.121C232.425 165.128 232.432 165.051 231.966 165.158C231.404 165.294 232.373 165.174 232.149 165.286C231.771 165.246 231.799 165.347 231.7 165.357C231.666 165.361 231.395 165.327 231.117 165.398C231.313 165.337 231.51 165.281 231.706 165.229C231.508 165.25 231.13 165.353 230.964 165.378C230.883 165.389 230.932 165.304 230.759 165.35C230.722 165.361 230.621 165.561 231.052 165.376C231.102 165.427 230.879 165.439 230.784 165.482C230.769 165.489 230.736 165.603 230.593 165.576C230.558 165.572 230.814 165.18 230.009 165.641C229.983 165.656 230.091 165.663 230.066 165.679C230.049 165.689 229.824 165.742 229.801 165.755C229.778 165.769 229.897 165.774 229.869 165.791C229.73 165.878 229.48 165.789 229.799 165.7C229.687 165.714 229.576 165.729 229.463 165.745C229.615 165.824 229.309 165.832 229.163 165.887C228.227 166.244 228.886 166.095 228.738 166.191C228.5 166.349 228.627 166.078 228.259 166.284C228.225 166.305 228.731 166.202 227.788 166.514C227.923 166.457 228.059 166.401 228.194 166.345C228.073 166.264 227.703 166.545 227.672 166.56C227.311 166.721 227.544 166.581 227.02 166.86C226.973 166.885 226.855 166.902 226.755 166.959C226.342 167.194 227.345 166.755 227.387 166.791C227.412 166.805 226.323 167.247 226.277 167.255C226.098 167.276 226.767 167.028 226.618 167.024C226.569 167.019 225.004 167.722 224.66 167.834C224.272 167.962 224.04 167.881 224.104 168.049C223.931 167.928 223.88 168.078 223.831 168.096C223.228 168.313 223.227 168.312 222.71 168.52C222.595 168.565 222.479 168.55 222.441 168.573C222.419 168.587 222.483 168.625 222.371 168.683C222.218 168.768 221.199 169.041 221.113 169.03C221.029 169.023 221.533 168.883 221.428 168.862C221.067 168.972 220.72 169.09 220.348 169.187C220.193 169.228 220.262 169.17 220.195 169.188C220.167 169.197 219.64 169.366 219.665 169.373C219.733 169.402 221.364 168.911 220.951 169.096C220.871 169.133 220.556 169.137 220.63 169.222C220.014 169.389 219.392 169.535 218.753 169.657C217.55 169.888 216.31 169.801 215.136 169.366C216.267 169.702 217.55 169.853 218.742 169.603C218.78 169.595 218.817 169.587 218.855 169.579C218.981 169.553 219.401 169.467 219.338 169.428C219.147 169.469 218.944 169.513 218.733 169.556C217.886 169.737 216.944 169.738 216.195 169.57C216.164 169.564 216.289 169.539 216.171 169.51C215.951 169.468 215.211 169.33 215.098 169.255C215.079 169.246 215.505 169.326 215.393 169.247C215.114 169.048 214.958 169.223 214.687 169.099C214.46 169.05 213.195 168.082 212.893 167.739C212.716 167.587 212.911 167.849 213.163 168.097C213.413 168.349 213.718 168.574 213.652 168.562C212.714 167.968 211.931 166.818 211.706 165.584C211.702 165.562 211.691 165.76 211.634 165.485C211.551 165.005 211.628 164.875 211.638 164.647C211.632 164.396 211.765 163.569 211.829 163.484C211.835 163.472 211.858 163.644 211.855 163.668C211.806 164.013 211.715 164.132 211.708 164.163C211.69 164.289 211.712 164.416 211.705 164.529C211.696 164.719 211.664 164.827 211.679 165.085C211.694 165.265 211.734 165.087 211.749 165.258C211.741 165.315 211.758 166.026 211.918 166.045C211.941 166.051 211.719 165.415 211.766 164.563C211.798 163.711 212.148 162.79 212.513 162.186C212.759 161.769 212.965 161.44 213.01 161.349C212.85 161.572 212.694 161.797 212.541 162.026C212.854 161.565 213.131 160.947 213.29 160.995C214.434 159.287 215.786 157.738 217.278 156.362C217.554 156.126 217.474 156.333 217.897 155.915C217.761 155.992 217.625 156.071 217.489 156.151C217.725 155.954 218.783 155.114 218.945 154.968C218.966 154.949 218.938 154.851 219.2 154.637C219.433 154.448 219.514 154.474 219.649 154.389C219.763 154.317 219.874 154.213 219.909 154.193C219.935 154.177 219.97 154.204 220.033 154.167C220.235 154.05 220.013 154.063 220.279 154.04C220.237 154.076 220.194 154.113 220.152 154.15C220.39 154.002 220.738 153.836 220.42 154.097C220.365 154.142 220.391 154.073 220.348 154.104C218.695 155.333 220.056 154.406 220.613 153.947C220.796 153.887 221.641 153.287 221.679 153.282C221.728 153.271 221.605 153.406 221.823 153.318C221.865 153.293 223.034 152.56 222.647 152.882C222.566 152.947 221.992 153.273 221.86 153.362C222.242 153.268 222.904 152.668 222.995 152.625C223.35 152.447 222.386 153.099 223.171 152.67C223.779 152.347 223.172 152.585 223.387 152.425C223.507 152.332 224.242 152.055 224.169 151.958C224.403 151.825 224.291 151.954 224.323 151.943C224.353 151.931 224.81 151.666 224.977 151.617C224.997 151.611 224.965 151.696 224.986 151.692C225.027 151.681 225.483 151.457 225.5 151.445C225.51 151.436 225.377 151.436 225.417 151.403C225.463 151.364 225.916 151.179 225.935 151.154C225.96 151.116 225.413 151.374 225.48 151.277C225.741 151.177 226.143 150.961 226.296 150.845C226.259 150.875 226.009 150.982 225.921 151.014C225.925 150.912 226.466 150.69 226.309 150.833C226.412 150.749 226.324 150.763 226.376 150.702C226.39 150.686 226.557 150.617 226.584 150.59C226.587 150.585 226.401 150.622 226.428 150.592C226.478 150.534 226.994 150.341 227.039 150.335C227.166 150.313 226.759 150.5 226.738 150.55C226.735 150.557 227.117 150.491 227.124 150.496C227.17 150.554 226.759 150.657 226.827 150.7C226.929 150.675 227.03 150.65 227.132 150.626C226.78 150.826 226.083 151.077 225.938 151.222C226.473 150.966 227.054 150.748 227.112 150.904C227.136 150.969 226.915 151.099 226.93 151.112C226.988 151.157 227.291 150.967 227.304 150.966C227.316 150.966 227.321 150.968 227.323 150.971C227.323 150.971 227.323 150.971 227.323 150.971C227.335 151.005 226.879 151.21 226.862 151.236C226.835 151.279 227.086 151.314 227.096 151.34C227.09 151.347 226.773 151.505 226.902 151.506C227.031 151.506 227.318 151.396 227.33 151.397C227.395 151.402 226.904 151.622 226.896 151.645C226.891 151.656 227.179 151.599 227.192 151.611C227.204 151.623 227.013 151.734 226.952 151.811C226.906 151.868 227.089 151.824 227.06 151.842C227.04 151.853 226.574 152.043 226.554 152.059C226.524 152.082 226.649 152.076 226.638 152.093C226.621 152.116 226.466 152.165 226.492 152.171C226.511 152.174 227.146 152.074 227.157 152.114C227.175 152.179 226.507 152.282 227.174 152.3C227.178 152.3 227.31 152.227 227.314 152.227C227.417 152.24 227.003 152.483 227.538 152.259C226.567 152.736 227.451 152.402 227.344 152.567C227.303 152.629 226.927 152.803 226.928 152.81C226.986 152.846 227.092 152.756 227.144 152.764C227.172 152.769 226.853 152.965 226.945 152.968C226.992 152.969 227.351 152.814 227.367 152.812C227.524 152.789 227.363 152.895 227.404 152.906C227.431 152.914 227.65 152.829 227.657 152.829C227.668 152.832 227.397 153.013 227.346 153.061C227.306 153.097 227.492 153.054 227.463 153.075C227.285 153.198 226.824 153.256 227.29 153.252C227.318 153.252 227.468 153.187 227.473 153.187C227.585 153.195 227.308 153.312 227.275 153.37C227.217 153.47 227.599 153.27 227.287 153.452C227.552 153.392 227.689 153.335 227.976 153.211C227.182 153.56 226.977 153.846 227.858 153.484C227.574 153.593 227.644 153.676 227.562 153.712C227.51 153.733 227.066 153.809 227.34 153.942C227.374 153.958 227.605 153.823 227.55 153.909C226.959 154.14 227.552 153.948 227.556 153.955C227.595 154.073 226.141 154.598 225.913 154.742C225.644 154.894 225.451 155.115 225.392 155.146C225.198 155.249 225.334 155.116 225.282 155.122C225.227 155.126 224.728 155.517 224.699 155.528C224.583 155.568 224.658 155.452 224.646 155.455C224.494 155.492 223.795 155.963 223.591 156.079C223.618 156.109 224.021 155.865 223.806 156.076C223.557 156.322 223.444 156.179 223.431 156.177C222.105 157.024 220.857 157.988 219.717 159.06C219.794 159.113 220.505 158.377 220.535 158.375C220.678 158.336 219.403 159.489 219.242 159.626C219.37 159.528 219.499 159.431 219.629 159.335C219.509 159.603 218.98 159.926 218.747 160.25C218.672 160.354 218.87 160.205 218.869 160.211C218.802 160.344 218.623 160.489 218.697 160.324C218.501 160.618 218.491 160.54 218.309 160.736C218.3 160.747 218.409 160.69 218.284 160.861C218.224 160.94 217.885 161.343 217.872 161.423C217.866 161.455 218.17 161.362 218.076 161.241C218.501 160.855 218.142 161.058 218.29 160.891C218.314 160.867 218.321 160.978 218.667 160.537C218.705 160.716 218.197 161.122 218.142 161.22C218.023 161.415 218.689 160.76 218.722 160.558C218.755 160.697 218.778 160.519 218.924 160.37C219.085 160.207 219.042 160.304 219.127 160.215C219.363 159.973 219.206 160.014 219.456 159.869C219.098 159.898 219.774 159.508 219.976 159.406C219.726 159.658 219.481 159.916 219.243 160.178C219.266 160.172 219.289 160.166 219.312 160.16C219.246 160.226 219.18 160.292 219.115 160.358C219.116 160.339 219.118 160.32 219.12 160.301C218.845 160.702 218.707 160.733 218.679 160.761C218.334 161.129 217.961 161.575 217.65 161.976C217.604 162.037 217.692 162.038 217.315 162.447C217.195 162.578 217.245 162.409 217.135 162.576C217.12 162.874 217.02 162.796 216.976 162.857C216.855 163.033 216.816 163.163 216.805 163.18C216.663 163.402 216.451 163.723 216.307 163.973C216.305 163.978 216.425 163.875 216.316 164.028C216.3 164.05 216.207 164.131 216.09 164.256C215.977 164.34 215.86 164.473 215.875 164.581C215.9 164.541 215.93 164.497 215.965 164.448C215.941 164.478 215.907 164.603 215.919 164.664C215.928 164.728 215.96 164.743 215.987 164.728C216.018 164.722 215.9 164.601 216.034 164.615C215.996 164.674 215.997 164.761 216.017 164.784C216.026 164.818 216.146 164.942 216.161 164.969C216.163 164.978 216.102 164.979 216.105 164.99C216.102 164.997 216.25 165.1 216.271 165.129C216.279 165.146 216.189 165.118 216.187 165.134C216.176 165.147 216.417 165.306 216.462 165.261C216.38 165.251 216.227 165.138 216.335 165.149C216.347 165.151 216.391 165.213 216.409 165.214C216.565 165.223 216.18 165.033 216.165 164.998C216.34 165.076 216.751 165.35 217.147 165.335C217.297 165.396 216.911 165.375 217.081 165.433C217.45 165.542 217.183 165.382 217.197 165.378C217.281 165.346 217.611 165.574 217.598 165.388C217.732 165.401 217.697 165.431 217.872 165.375C217.876 165.374 217.879 165.373 217.883 165.372C217.879 165.372 217.875 165.372 217.871 165.371C217.847 165.365 217.822 165.358 217.798 165.35C217.817 165.336 217.837 165.326 217.86 165.317C218.225 165.21 218.869 165.272 218.825 165.301C218.689 165.393 218.282 165.402 218.25 165.41C218.215 165.42 218.157 165.533 217.914 165.576C217.853 165.586 217.772 165.581 217.671 165.545C217.597 165.626 217.798 165.623 217.921 165.613C218.057 165.598 218.129 165.597 217.934 165.673C217.933 165.674 217.933 165.674 217.932 165.674C217.933 165.674 217.933 165.674 217.934 165.674C218.267 165.606 219.642 165.332 219.822 165.209C219.843 165.195 219.699 165.111 220.052 165.067C220.22 165.046 219.837 165.167 219.918 165.171C220.166 165.23 223.21 164.025 223.814 163.741C223.853 163.725 223.853 163.767 223.891 163.75C224.007 163.701 224.412 163.47 224.63 163.399C224.166 163.515 225.013 163.156 225.237 163.073C225.575 162.947 225.581 163.018 225.731 162.972C226.307 162.796 227.141 162.304 227.65 162.286C227.574 162.153 228.466 162.078 228.848 161.967C229.145 161.877 229.56 161.66 229.134 161.718C229.658 161.573 230.214 161.406 230.725 161.292C230.809 161.273 230.702 161.34 230.845 161.307C230.858 161.304 230.867 161.258 230.991 161.23C232.02 161.011 231.532 161.193 231.729 161.187C231.841 161.186 231.922 161.183 231.982 161.177C231.373 161.263 230.693 161.42 230.512 161.463C230.683 161.513 231.827 161.191 232.184 161.186C232.196 161.186 232.161 161.243 232.173 161.242C232.173 161.241 232.173 161.241 232.174 161.241C232.302 161.224 233.134 161.135 232.958 161.088C232.912 161.075 232.523 161.101 232.072 161.165C232.192 161.138 232.094 161.091 232.115 161.086C232.375 161.021 233.032 161.022 233.265 161.021C233.318 161.02 233.313 160.983 233.322 160.983C233.533 160.982 233.449 161.092 233.662 160.975C234.047 161.096 232.948 161.022 233.03 161.111C233.095 161.128 235.509 161.131 235.518 161.07C235.526 161.082 235.557 161.099 235.623 161.122C235.769 161.168 236.443 161.246 236.558 161.248C236.578 161.248 236.586 161.145 236.611 161.148C236.676 161.152 237.466 161.381 237.782 161.4C237.621 161.347 237.461 161.297 237.302 161.25C237.522 161.295 237.687 161.331 237.806 161.357L237.868 161.372C238.235 161.463 238.107 161.403 237.885 161.318C237.884 161.317 237.884 161.317 237.883 161.317L237.819 161.301C237.804 161.297 237.789 161.289 237.774 161.286C237.522 161.202 237.2 161.116 237.196 161.107C237.191 161.092 237.504 161.142 237.838 161.222L237.904 161.239C238.287 161.343 238.699 161.479 238.519 161.483C238.473 161.483 237.786 161.249 238.114 161.41C238.17 161.437 238.627 161.546 238.649 161.561C238.793 161.652 237.793 161.44 237.895 161.543C238.149 161.543 238.445 161.662 238.726 161.726C238.853 161.755 238.899 161.715 238.915 161.718C239.151 161.775 239.005 161.787 239.084 161.809C239.125 161.82 239.622 161.855 239.487 161.978C241.056 162.384 239.941 161.987 239.007 161.719C239.316 161.749 239.891 161.962 240.159 162.042C240.255 162.07 240.216 162.001 240.379 162.047C240.605 162.11 241.387 162.427 241.978 162.725C242.282 162.875 242.529 163.014 242.656 163.085C242.404 162.975 242.45 163.064 242.638 163.156C242.825 163.25 242.705 163.101 242.745 163.112C242.797 163.124 243.611 163.621 243.739 163.689C243.12 163.363 243.232 163.493 243.738 163.793C243.657 163.765 243.575 163.736 243.493 163.708C243.808 163.862 244.364 164.295 244.536 164.367C244.564 164.378 244.497 164.283 244.513 164.289C244.667 164.358 245.114 164.674 245.143 164.67C245.168 164.669 244.989 164.52 245.073 164.545C245.09 164.55 245.251 164.718 245.445 164.807C245.516 164.84 245.497 164.777 245.515 164.784C245.67 164.843 245.549 164.866 245.816 164.993C246.011 165.084 246.184 165.088 246.427 165.226C245.626 164.734 246.325 165.129 246.673 165.242C246.728 165.259 246.717 165.171 247.016 165.326C246.283 165.2 247.189 165.488 247.35 165.52C247.359 165.524 247.348 165.578 247.431 165.601C247.438 165.603 247.438 165.565 247.515 165.581C248.224 165.7 247.765 165.647 247.894 165.709C247.951 165.737 248.281 165.712 248.361 165.706C248.38 165.705 248.372 165.744 248.447 165.741C248.58 165.734 248.691 165.68 248.775 165.664C248.784 165.661 248.795 165.725 248.952 165.672C248.997 165.657 249.043 165.624 248.975 165.622C248.758 165.62 248.366 165.751 248.109 165.666C247.889 165.604 248.595 165.631 248.622 165.607C248.635 165.605 248.504 165.647 248.641 165.641C248.758 165.635 248.944 165.497 249.113 165.469C249.126 165.468 249.288 165.507 249.285 165.513C249.28 165.521 249.074 165.604 249.111 165.619C249.115 165.621 249.252 165.579 249.276 165.59C249.304 165.605 249.443 165.797 249.479 165.789C249.566 165.771 249.494 165.743 249.547 165.726C249.582 165.714 249.647 165.696 249.72 165.67C249.811 165.647 249.876 165.613 249.843 165.57C249.824 165.58 249.801 165.59 249.775 165.6C249.884 165.516 249.805 165.526 249.811 165.505C249.809 165.484 249.855 165.538 249.881 165.519C249.888 165.525 249.949 165.38 249.919 165.358C249.923 165.48 249.859 165.399 249.856 165.405C249.846 165.415 249.88 165.452 249.87 165.465C249.803 165.537 249.806 165.414 249.776 165.419C249.768 165.419 249.792 165.454 249.787 165.455C249.776 165.457 249.739 165.418 249.738 165.424C249.734 165.441 249.797 165.488 249.799 165.491C249.822 165.538 249.705 165.543 249.708 165.443C249.669 165.433 249.713 165.523 249.662 165.504C249.652 165.5 249.644 165.497 249.638 165.493C249.602 165.489 249.603 165.476 249.622 165.46C249.636 165.441 249.669 165.427 249.674 165.415C249.694 165.342 249.703 165.385 249.714 165.346C249.718 165.331 249.685 165.278 249.687 165.259C249.689 165.269 249.885 165.097 249.617 165.067C249.648 164.998 249.816 164.818 249.788 164.688C249.764 164.575 249.676 164.627 249.671 164.617C249.663 164.603 249.642 164.463 249.616 164.417C249.587 164.364 249.56 164.401 249.521 164.316C249.421 164.104 249.507 164.077 249.506 164.051C249.469 163.75 249.386 163.921 249.352 163.866C249.335 163.827 249.118 163.307 248.957 163.117C248.892 163.031 248.836 162.963 248.8 162.929C248.863 162.984 248.925 163.039 248.987 163.095C248.995 163.1 249.002 163.106 249.01 163.111C249.009 163.101 249.007 163.091 249.004 163.082C248.936 162.936 248.783 162.858 248.859 162.796C248.701 162.873 248.571 162.522 248.498 162.441C248.47 162.409 248.449 162.431 248.415 162.39C248.28 162.233 247.99 161.862 247.903 161.789C247.532 161.468 248.276 162.47 248.322 162.554C248.207 162.397 247.445 161.598 247.72 162.032C247.762 162.099 247.911 162.152 247.942 162.183C248.151 162.396 247.946 162.263 247.956 162.286C247.974 162.322 248.151 162.428 248.178 162.472C248.186 162.487 248.069 162.442 248.246 162.661C248.115 162.589 247.636 161.959 247.551 161.893C247.521 161.87 247.587 162.126 247.214 161.544C247.211 161.558 247.207 161.572 247.204 161.586C246.939 161.314 246.665 161.049 246.384 160.791C246.434 160.799 246.628 160.907 246.423 160.729C246.305 160.627 246.347 160.751 246.335 160.743C246.246 160.639 244.352 159.027 243.93 158.775C243.795 158.68 243.388 158.459 243.359 158.441C243.185 158.325 242.578 157.894 242.447 157.824C242.365 157.78 242.413 157.87 242.344 157.825C242.28 157.782 242.374 157.781 242.355 157.767C242.208 157.644 240.926 156.988 240.639 156.799C240.82 156.902 241.782 157.321 241.78 157.284C241.779 157.277 241.576 157.118 241.521 157.109C241.467 157.028 241.142 157 241.012 156.901C240.997 156.89 241.096 156.858 240.846 156.711C240.76 156.66 240.502 156.591 240.295 156.417C239.95 156.257 238.147 155.379 237.984 155.421C237.979 155.423 238.23 155.55 238.042 155.512C237.791 155.463 238.056 155.406 237.784 155.291C237.744 155.27 236.967 155.013 236.938 155.016C236.679 155.016 237.341 155.274 237.329 155.282C237.297 155.295 236.735 155.12 236.713 155.109C236.693 155.096 237.186 155.142 236.621 155.002C236.681 155.035 236.74 155.067 236.799 155.1C236.532 155.04 236.53 154.962 236.469 154.938C236.277 154.863 236.035 154.909 235.757 154.685C235.683 154.626 235.834 154.624 235.825 154.616C235.737 154.539 235.574 154.634 235.448 154.497C235.438 154.488 235.809 154.519 235.188 154.361C235.229 154.381 235.269 154.401 235.309 154.421C235.269 154.421 235.128 154.393 234.974 154.362L235.015 154.371C234.851 154.342 234.651 154.312 234.609 154.302C234.385 154.253 234.595 154.213 234.362 154.189C234.501 154.3 233.782 154.228 233.827 154.155C233.717 154.245 233.08 154.12 232.765 154.109C232.568 154.099 232.162 154.136 232.098 154.131C232.021 154.124 232.045 154.054 231.905 154.037C231.865 154.032 231.447 154.082 231.073 154.015C231.001 154.003 230.847 153.887 230.981 153.854C231.211 153.799 231.645 153.892 231.639 153.823C231.633 153.746 231.047 153.796 230.888 153.791C230.154 153.763 230.575 153.673 230.555 153.649C230.505 153.591 230.102 153.606 230.084 153.602C230.013 153.581 230.298 153.524 230.301 153.488C230.305 153.441 229.911 153.371 229.999 153.352C230.127 153.324 230.488 153.383 230.51 153.38C230.805 153.326 230.397 153.229 230.282 153.18C230.247 153.165 230.382 153.134 230.354 153.13C229.92 153.072 230.268 153.284 229.981 153.28C229.725 153.276 230.05 153.193 230.041 153.189C230.028 153.185 229.721 153.193 229.672 153.171C229.648 153.158 230.441 152.991 230.406 152.931C230.151 152.952 229.897 152.975 229.642 153C229.618 152.92 229.988 152.965 230.026 152.955C230.102 152.936 229.887 152.903 229.895 152.877C229.899 152.861 230.148 152.793 229.92 152.778C229.842 152.773 229.681 152.836 229.394 152.791C230.38 152.674 229.693 152.659 229.662 152.631C229.632 152.604 230.103 152.517 229.529 152.553C229.496 152.398 229.54 152.503 229.701 152.468C229.9 152.427 229.435 152.392 230.169 152.404C230.125 152.331 229.536 152.36 229.504 152.356C229.477 152.352 229.607 152.31 229.559 152.3C228.999 152.184 229.382 152.231 229.217 152.148C229.203 152.14 228.676 152.134 229.075 152.1C229.802 152.039 230.11 152.136 230.225 151.909C229.681 151.829 229.033 152.006 228.87 152.018C228.618 152.035 228.877 151.976 228.845 151.965C228.834 151.961 228.618 151.977 228.615 151.973C228.45 151.812 229.579 151.918 229.929 151.878C229.834 151.856 229.737 151.834 229.642 151.813C229.77 151.806 229.898 151.8 230.027 151.795C229.414 151.767 230.004 151.775 230.152 151.633C230.186 151.601 229.785 151.668 230.241 151.566C229.902 151.558 230.008 151.526 229.703 151.577C229.709 151.521 230.398 151.433 230.672 151.4C229.702 151.366 230.261 151.549 229.423 151.477C229.272 151.552 229.669 151.521 229.637 151.534C229.523 151.579 229.246 151.527 228.926 151.686C228.874 151.712 229.103 151.772 228.77 151.787C228.733 151.788 228.517 151.739 228.519 151.734C228.545 151.685 228.756 151.691 228.764 151.67C228.771 151.651 228.538 151.676 228.536 151.67C228.525 151.611 228.73 151.636 228.7 151.619C228.634 151.582 227.781 151.501 228.887 151.476C227.973 151.596 228.774 151.548 229.129 151.504C229.22 151.493 229.242 151.456 229.371 151.437C229.538 151.413 229.735 151.422 229.822 151.412C229.915 151.402 229.38 151.337 230.15 151.333C229.755 151.261 229.069 151.384 228.683 151.347C227.904 151.271 229.214 151.17 229.352 151.155C229.388 151.15 229.264 151.107 229.288 151.103C229.326 151.096 230.077 151.087 230.15 151.045C230.222 151.003 229.875 151.057 229.85 151.016C229.833 150.987 230.739 150.909 230.247 150.905C229.906 150.902 229.29 151.043 229.179 150.927C229.676 150.892 230.173 150.863 230.673 150.841C230.398 150.801 230.123 150.764 229.848 150.728C230.408 150.692 230.895 150.732 231.433 150.662C230.138 150.53 231.852 150.537 231.874 150.525C231.88 150.514 231.367 150.394 231.284 150.374C231.734 150.316 233.138 150.326 232.32 150.16C232.468 150.195 232.834 150.123 232.83 150.117C232.784 150.048 231.992 150.075 232.122 150.019C232.273 149.952 232.481 150.049 232.712 150.048C233.91 150.063 233.591 149.686 234.858 149.879C234.835 149.864 234.811 149.849 234.786 149.833C235.163 149.886 235.55 149.951 235.955 150.044L236 150.055C236.936 150.292 237.855 150.579 238.754 150.907C239.274 150.969 240.574 151.409 241.178 151.699C241.302 151.754 241.88 152.083 241.919 152.114C241.995 152.17 241.533 151.96 241.726 152.089C241.769 152.112 242.759 152.627 242.713 152.542C242.605 152.478 242.241 152.33 242.189 152.29C241.843 151.973 244.847 153.674 244.99 153.772C244.935 153.715 244.879 153.659 244.824 153.603C245.005 153.724 245.186 153.848 245.364 153.974ZM235.063 154.57C235.027 154.579 234.979 154.576 234.926 154.567L234.97 154.577C234.87 154.564 234.733 154.519 234.634 154.515C234.438 154.504 234.065 154.687 234.241 154.48C234.501 154.497 234.75 154.523 234.975 154.556L234.931 154.546C234.975 154.554 235.019 154.562 235.063 154.57ZM239.604 156.268C239.414 156.146 239.625 156.103 239.77 156.229C239.786 156.243 239.861 156.434 239.604 156.268ZM237.46 155.322C237.47 155.324 237.65 155.393 237.656 155.397C237.8 155.504 237.258 155.296 237.46 155.322ZM247 161.236C246.825 161.068 246.867 161.273 247.006 161.347C247.015 161.352 247.011 161.247 247 161.236ZM246.88 161.111C246.818 160.904 246.399 160.791 246.631 160.985C246.653 161.004 246.883 161.121 246.88 161.111ZM238.896 155.897C238.935 155.871 239.14 155.98 239.226 156.029C239.209 156.061 238.987 155.931 238.896 155.897ZM243.994 158.76C244.022 158.738 243.363 158.28 243.293 158.286C243.41 158.34 243.972 158.775 243.994 158.76ZM245.63 159.99C245.619 159.972 245.403 159.801 245.392 159.827C245.472 159.941 245.683 160.067 245.63 159.99ZM248.416 162.866C248.43 162.874 248.444 162.606 248.646 163.054C248.676 163.12 248.487 162.95 248.498 162.974C248.52 163.022 248.54 163.058 248.559 163.085C248.414 162.918 248.264 162.744 248.258 162.72C248.231 162.607 248.41 162.863 248.416 162.866ZM249.331 164.165C249.37 164.187 249.415 164.389 249.413 164.434C249.413 164.442 249.333 164.429 249.358 164.511C249.378 164.576 249.431 164.46 249.447 164.593C249.459 164.723 249.373 164.563 249.371 164.575C249.371 164.593 249.437 164.776 249.39 164.774C249.359 164.777 249.347 164.574 249.325 164.52C249.299 164.453 249.267 164.549 249.249 164.433C249.236 164.359 249.34 164.372 249.34 164.355C249.343 164.341 249.201 164.093 249.33 164.165C249.33 164.165 249.331 164.165 249.331 164.165ZM248.599 163.13C248.586 163.118 248.573 163.104 248.559 163.085C248.573 163.1 248.586 163.115 248.599 163.13ZM235.694 154.69C235.797 154.749 235.458 154.695 235.342 154.626C235.348 154.594 235.677 154.68 235.694 154.69ZM248.785 163.245C248.853 163.371 248.808 163.347 248.736 163.281C248.696 163.238 248.648 163.185 248.599 163.13C248.669 163.192 248.726 163.153 248.785 163.245C248.785 163.245 248.785 163.245 248.785 163.245ZM241.521 157.109C241.53 157.122 241.533 157.136 241.525 157.153C241.502 157.117 241.504 157.106 241.521 157.109ZM242.194 157.537C242.457 157.63 241.979 157.346 241.961 157.383C241.955 157.397 242.183 157.533 242.194 157.537ZM247.212 161.462C247.199 161.441 247.586 161.598 247.11 161.288C247.301 161.513 247.071 161.303 247.064 161.317C247.042 161.354 247.414 161.683 247.472 161.776C247.587 161.787 247.256 161.532 247.213 161.463C247.213 161.463 247.212 161.462 247.212 161.462ZM249.449 165.144C249.452 165.136 249.457 165.128 249.464 165.121C249.467 165.091 249.479 165.095 249.474 165.101C249.501 165.132 249.494 165.128 249.471 165.135C249.463 165.138 249.456 165.141 249.449 165.144ZM216.236 164.191C216.215 164.231 216.194 164.268 216.174 164.305C216.073 164.506 216.032 164.556 215.999 164.556C215.972 164.552 215.953 164.489 216.089 164.307C216.091 164.304 216.106 164.291 216.125 164.276C216.176 164.219 216.245 164.152 216.236 164.191ZM219.304 164.995C219.417 165.046 219.119 165.144 218.915 165.163C218.869 165.168 218.685 165.132 218.868 165.068C218.886 165.164 219.187 165.122 219.304 164.995ZM248.89 163.306C248.968 163.324 249.043 163.519 249.086 163.623C249.017 163.581 248.925 163.384 248.89 163.306ZM216.035 164.964C216.052 164.992 216.118 164.958 216.117 164.95C216.118 164.915 216.042 164.913 216.035 164.964ZM248.36 162.603C248.377 162.571 248.646 162.861 248.6 162.931C248.554 162.861 248.351 162.623 248.36 162.603ZM249.502 165.144C249.51 165.153 249.516 165.172 249.494 165.186C249.465 165.201 249.437 165.212 249.419 165.215C249.416 165.202 249.444 165.18 249.481 165.157C249.493 165.143 249.498 165.139 249.502 165.144ZM216.686 165.316C216.731 165.338 216.859 165.372 216.88 165.347C216.903 165.318 216.72 165.284 216.686 165.316ZM225.174 155.602C225.19 155.607 224.912 155.864 224.759 155.925C224.467 156.041 225.157 155.598 225.174 155.602ZM215.899 164.816C215.952 164.764 215.902 164.82 215.967 164.796C215.963 164.78 215.961 164.729 215.898 164.775C215.886 164.785 215.899 164.804 215.899 164.816ZM215.892 164.862C215.915 164.859 215.993 164.854 215.976 164.832C215.969 164.824 215.888 164.835 215.892 164.862ZM223.236 156.806C222.976 156.901 224.03 156.258 224.069 156.255C224.088 156.25 224.102 156.248 224.11 156.248C224.138 156.208 224.336 156.085 224.385 156.114C224.323 156.146 224.162 156.247 224.14 156.254C224.131 156.257 224.124 156.259 224.118 156.26C224.068 156.336 223.284 156.784 223.236 156.806ZM221.547 157.951C221.733 157.69 221.872 157.78 221.853 157.8C221.628 158.054 221.73 157.831 221.719 157.833C221.695 157.84 221.54 158.028 221.548 157.951C221.547 157.951 221.547 157.951 221.547 157.951ZM222.876 157.02C222.885 157.011 223.101 156.869 223.111 156.866C223.315 156.79 222.704 157.189 222.876 157.02ZM249.597 165.074C249.577 165.142 249.527 165.074 249.548 165.024C249.55 165.019 249.614 165.008 249.597 165.074ZM215.918 164.879C215.915 164.884 215.929 164.94 215.988 165.006C216.044 165.07 216.14 165.128 216.155 165.085C216.136 165.078 216.041 164.988 216 164.93C215.955 164.872 215.938 164.843 215.918 164.879ZM221.514 164.382C221.328 164.45 221.503 164.299 221.612 164.29C221.653 164.287 221.561 164.364 221.514 164.382ZM248.074 162.146C247.912 162.027 248.051 161.96 248.124 162.123C248.127 162.129 248.081 162.151 248.074 162.146ZM220.02 164.85C220.641 164.595 220.57 164.896 219.713 165.07C219.736 165.052 219.759 165.033 219.781 165.014C218.815 165.257 219.71 165.021 219.941 164.931C220.028 164.898 219.941 164.881 220.019 164.849C220.02 164.849 220.02 164.85 220.02 164.85ZM222.498 164.006C223.191 163.925 221.953 164.295 221.625 164.438C221.926 164.245 222.36 164.088 221.75 164.241C222.596 163.899 222.268 164.101 222.304 164.094C222.347 164.085 222.469 164.01 222.498 164.006ZM220.866 164.623C220.832 164.641 220.552 164.698 220.458 164.735C220.572 164.633 221.09 164.506 220.866 164.623ZM219.958 159.375C219.942 159.324 219.958 159.258 220.133 159.122C220.099 159.186 220.011 159.297 219.958 159.375ZM234.971 154.286C234.85 154.256 234.59 154.194 234.662 154.258C234.672 154.263 234.967 154.313 234.971 154.286ZM217.165 165.518C217.183 165.538 217.687 165.53 217.511 165.481C217.458 165.478 217.012 165.454 217.165 165.518ZM215.844 164.721C215.843 164.737 215.856 164.779 215.868 164.777C215.907 164.774 215.881 164.732 215.844 164.721ZM234.313 154.127C234.298 154.118 233.861 154.079 233.906 154.109C233.995 154.161 234.374 154.152 234.313 154.127ZM249.677 165.284C249.676 165.291 249.624 165.279 249.623 165.279C249.615 165.297 249.634 165.303 249.578 165.266C249.573 165.261 249.567 165.284 249.586 165.253C249.604 165.227 249.628 165.122 249.632 165.095C249.707 165.087 249.619 165.233 249.62 165.24C249.62 165.244 249.678 165.264 249.676 165.284C249.677 165.284 249.677 165.284 249.677 165.284ZM220.776 158.572C220.767 158.514 221.394 157.959 221.424 158.011C221.204 158.194 220.989 158.381 220.776 158.572ZM220.452 158.844C220.297 158.938 220.602 158.653 220.706 158.584C220.726 158.607 220.474 158.83 220.452 158.844ZM215.817 165.093C215.843 165.107 215.842 164.998 215.865 165.006C215.877 165.009 215.897 165.073 215.928 165.075C215.936 165.074 215.941 164.985 215.931 164.976C215.915 164.96 215.888 165.008 215.873 164.988C215.825 164.921 215.839 164.862 215.827 164.825C215.826 164.82 215.801 164.861 215.792 164.827C215.79 164.82 215.834 164.784 215.825 164.743C215.67 164.632 215.816 164.512 215.955 164.178C215.964 164.16 215.973 164.142 215.982 164.124C215.977 164.126 215.962 164.144 215.942 164.17C215.879 164.237 215.783 164.385 215.78 164.393C215.641 164.678 215.663 164.856 215.759 165.008C215.785 165.047 215.801 165.009 215.814 165.025C215.824 165.038 215.759 165.059 215.817 165.093ZM235.006 154.257C235.004 154.255 235.003 154.253 235.001 154.251L235.039 154.259C234.989 154.19 234.775 154.187 234.637 154.162C234.677 154.225 234.915 154.223 235.038 154.264L235 154.255C235.002 154.256 235.004 154.256 235.006 154.257ZM217.834 161.495C217.784 161.559 217.614 161.742 217.616 161.771C217.619 161.807 217.856 161.535 217.834 161.495ZM248.03 165.62C248.025 165.622 247.892 165.601 247.887 165.598C247.777 165.532 248.17 165.593 248.03 165.62ZM244.203 163.886C244.06 163.811 243.906 163.743 243.884 163.67C243.972 163.731 244.239 163.865 244.203 163.886ZM237.111 161.107C237.139 161.179 236.602 161.038 236.503 161.019C236.543 160.993 237.096 161.052 237.111 161.107ZM219.79 159.243C219.992 159.058 219.881 159.023 220.041 158.939C220.067 158.926 220.277 159.021 220.003 159.165C219.953 159.192 220.074 159.01 219.79 159.243ZM219.577 165.108C219.524 165.171 219.312 165.218 219.17 165.253C219.193 165.213 219.479 165.141 219.577 165.108ZM233.523 153.998C233.406 153.923 232.814 153.941 232.958 153.99C232.978 153.995 233.445 153.988 233.523 153.998ZM249.302 163.613C249.426 163.754 249.274 163.408 249.172 163.34C249.201 163.379 249.295 163.604 249.302 163.613ZM238.908 161.602C238.894 161.6 238.614 161.514 238.603 161.508C238.387 161.392 239.179 161.635 238.908 161.602ZM245.548 164.76C245.449 164.755 244.926 164.419 244.821 164.308C244.974 164.332 245.674 164.775 245.548 164.76ZM219.011 160.055C219.144 159.913 219.283 159.79 219.423 159.677C219.419 159.727 219.043 160.057 219.011 160.055ZM237.885 161.318C237.884 161.317 237.884 161.317 237.883 161.317L237.819 161.301C237.804 161.297 237.789 161.289 237.774 161.286C237.79 161.291 237.805 161.296 237.82 161.301L237.883 161.317C237.884 161.317 237.884 161.317 237.885 161.318ZM216.31 163.439C216.212 163.568 216.283 163.573 216.29 163.566C216.372 163.474 216.421 163.293 216.31 163.439ZM234.909 154.142C234.873 154.077 234.626 154.078 234.484 154.044C234.519 154.094 234.803 154.126 234.909 154.142ZM223.213 163.843C223.438 163.818 222.647 164.218 222.461 164.247C222.435 164.218 223.18 163.849 223.213 163.843ZM249.106 163.111C249.118 163.097 249.097 163.063 249.069 163.034C249.006 162.963 248.923 162.894 248.939 162.936C248.948 162.958 248.99 163.013 249.032 163.061C249.062 163.092 249.096 163.122 249.106 163.111ZM222.044 164.382C221.973 164.425 221.78 164.451 221.833 164.402C221.9 164.34 222.062 164.371 222.044 164.382ZM216.234 165.466C216.245 165.484 216.51 165.548 216.426 165.463C216.371 165.405 216.334 165.458 216.318 165.45C216.293 165.445 215.997 165.177 216.234 165.466ZM228.038 161.978C227.853 162.058 227.618 162.119 227.423 162.191C227.492 162.136 227.945 161.97 228.038 161.978ZM249.566 163.981C249.589 163.938 249.214 163.157 249.383 163.62C249.399 163.645 249.552 164.089 249.566 163.981ZM219.79 159.243C219.764 159.266 219.734 159.292 219.697 159.321C219.732 159.29 219.763 159.265 219.79 159.243ZM217.679 161.511C217.693 161.441 217.489 161.683 217.446 161.767C217.459 161.814 217.677 161.52 217.679 161.511ZM227.423 162.239C227.317 162.297 227.107 162.353 226.97 162.407C226.982 162.37 227.364 162.227 227.423 162.239ZM236.085 161.1C235.833 161.049 235.524 161.028 235.516 161.064C235.512 161.058 235.5 161.051 235.48 161.043C235.459 161.034 235.185 161.029 235.068 161.009C234.371 160.844 237.787 161.278 235.797 161.134C235.892 161.121 235.988 161.11 236.085 161.1ZM246.213 165.201C246.293 165.291 246.59 165.36 246.526 165.312C246.483 165.283 246.134 165.114 246.213 165.201ZM241.86 162.842C241.867 162.847 241.886 162.856 241.913 162.867C242.029 162.914 242.276 163.007 242.291 162.994C242.192 162.931 242.038 162.86 241.932 162.824C241.835 162.791 241.782 162.787 241.86 162.842ZM246.938 165.565C246.996 165.593 247.094 165.55 247.088 165.545C247.038 165.501 246.852 165.491 246.938 165.565ZM219.245 159.498C219.151 159.562 218.938 159.852 218.92 159.941C218.903 159.945 218.868 159.964 218.808 160.006C218.809 160.005 218.809 160.005 218.809 160.005C218.701 160.039 216.842 162.208 218.149 160.806C218.191 160.763 218.104 160.796 218.271 160.618C218.282 160.606 218.314 160.623 218.348 160.587C218.426 160.503 218.856 160.071 218.923 159.964C218.928 159.968 218.938 159.967 218.954 159.958C219.093 159.885 219.317 159.449 219.245 159.498ZM241.157 162.547C241.224 162.588 241.454 162.671 241.49 162.653C241.384 162.59 241.002 162.451 241.157 162.547ZM249.675 163.912C249.665 163.805 249.514 163.586 249.523 163.668C249.532 163.717 249.69 164.031 249.675 163.912ZM243.375 163.617C242.626 163.154 243.192 163.517 243.052 163.49C243.162 163.533 243.268 163.574 243.375 163.617ZM222.02 157.28C221.916 157.344 221.978 157.186 222.116 157.146C222.159 157.133 222.079 157.243 222.02 157.28ZM226.781 154.459C226.652 154.429 227.14 154.263 226.979 154.394C226.971 154.399 226.789 154.458 226.781 154.459ZM223.36 156.283C223.319 156.373 223.277 156.407 223.074 156.526C223.356 156.322 223.06 156.459 223.36 156.283ZM235.518 161.07C235.517 161.068 235.516 161.066 235.516 161.064C235.518 161.066 235.519 161.068 235.518 161.07ZM247.5 165.723C247.563 165.786 247.764 165.822 247.713 165.765C247.708 165.761 247.539 165.698 247.5 165.723ZM218.92 159.941C218.935 159.937 218.934 159.946 218.923 159.964C218.918 159.961 218.917 159.953 218.92 159.941ZM246.341 165.344C246.364 165.319 246.028 165.144 246.012 165.139C245.787 165.092 246.202 165.286 246.341 165.344ZM248.444 161.973C248.428 161.96 248.447 162.119 248.526 162.159C248.587 162.191 248.505 162.024 248.444 161.973ZM224.027 155.842C224.138 155.775 224.297 155.682 224.347 155.701C224.269 155.739 224.04 155.87 224.027 155.842ZM226.574 154.49C226.454 154.599 226.137 154.75 225.932 154.843C225.899 154.786 226.448 154.563 226.574 154.49ZM219.514 159.27C219.504 159.275 219.258 159.488 219.32 159.488C219.41 159.488 219.596 159.223 219.514 159.27ZM248.802 162.482C248.914 162.576 248.782 162.261 248.629 162.189C248.553 162.152 248.784 162.466 248.802 162.482ZM248.105 165.882C248.241 165.869 247.912 165.796 247.856 165.829C247.919 165.843 248.056 165.888 248.105 165.882ZM242.399 163.232C242.971 163.678 242.739 163.288 242.617 163.247C242.6 163.241 242.385 163.221 242.399 163.232ZM232.041 153.679C231.954 153.696 232.277 153.765 232.319 153.723C232.346 153.697 232.097 153.667 232.041 153.679ZM231.982 161.177C232.012 161.173 232.042 161.169 232.072 161.165C232.049 161.169 232.021 161.174 231.982 161.177ZM249.343 165.909C248.993 165.823 249.067 165.94 249.038 165.948C248.981 165.96 248.844 165.936 248.741 165.956C248.859 165.921 248.971 165.878 249.083 165.829C248.986 165.869 248.187 165.857 248.163 165.861C248.136 165.904 248.397 165.899 248.404 165.9C248.414 165.905 248.459 166.022 248.484 166.026C248.528 166.05 249.221 165.94 249.343 165.909ZM243.679 163.917C243.594 163.85 243.59 163.794 243.541 163.778C243.524 163.773 243.499 163.81 243.443 163.791C243.522 163.833 243.601 163.875 243.679 163.917ZM249.738 165.568C249.767 165.583 249.746 165.607 249.701 165.628C249.618 165.668 249.527 165.698 249.52 165.697C249.47 165.69 249.574 165.625 249.676 165.576C249.701 165.564 249.722 165.56 249.738 165.568ZM246.494 165.456C246.509 165.468 246.842 165.621 246.849 165.589C246.771 165.539 246.318 165.337 246.494 165.456ZM243.378 163.757C243.239 163.671 242.985 163.478 242.983 163.554C242.984 163.554 242.984 163.555 242.984 163.555C243.118 163.622 243.248 163.689 243.378 163.757ZM249.214 162.782C249.138 162.505 249.109 162.688 249.221 162.896C249.233 162.9 249.242 162.902 249.248 162.901C249.253 162.899 249.256 162.897 249.257 162.894C249.265 162.874 249.223 162.815 249.214 162.782ZM248.747 162.061C248.717 161.989 248.194 161.42 248.228 161.548C248.242 161.591 248.57 161.892 248.58 161.911C248.595 161.939 248.457 161.872 248.617 162.043C248.625 162.019 248.758 162.085 248.747 162.061ZM249.135 162.565C249.035 162.304 248.88 162.352 249.003 162.508C249.051 162.57 249.149 162.602 249.135 162.565ZM249.63 163.326C249.608 163.252 249.523 163.061 249.408 162.981C249.502 163.129 249.591 163.295 249.67 163.467C249.705 163.474 249.65 163.391 249.629 163.325C249.629 163.325 249.63 163.326 249.63 163.326ZM227.929 153.496C227.71 153.535 228.173 153.338 228.197 153.341C228.268 153.352 228.026 153.478 227.929 153.496ZM230.284 152.334C230.22 152.319 230.177 152.264 230.039 152.298C230.18 152.335 230.322 152.371 230.462 152.409C230.567 152.311 230.354 152.35 230.284 152.334ZM229.736 152.008C229.755 152.005 229.641 151.864 229.902 151.95C230.078 152.008 229.138 152.112 228.965 152.059C229.152 152.018 229.566 152.033 229.736 152.008ZM228.046 151.467C228.035 151.456 228.395 151.417 228.436 151.423C228.656 151.453 228.11 151.525 228.046 151.467ZM229.197 151.429C229.027 151.41 229.401 151.373 229.514 151.384C229.526 151.411 229.224 151.432 229.197 151.429ZM224.985 152.485C224.773 152.479 224.718 152.744 224.956 152.578C224.968 152.57 224.994 152.486 224.985 152.485ZM228.39 151.299C228.56 151.317 228.187 151.357 228.074 151.348C228.063 151.322 228.364 151.296 228.39 151.299ZM224.762 152.332C224.506 152.379 224.692 152.554 224.724 152.548C224.855 152.525 225.209 152.249 225.281 152.191C224.703 152.506 224.883 152.311 224.762 152.332ZM223.806 152.988C223.615 153.12 224.157 152.883 224.226 152.773C224.126 152.828 223.86 152.95 223.806 152.988ZM222.551 153.62C222.44 153.677 222.114 153.856 222.082 153.921C222.193 153.842 222.526 153.68 222.551 153.62ZM222.251 153.672C222.058 153.732 222.098 153.883 222.265 153.726C222.271 153.72 222.259 153.671 222.251 153.672ZM221.298 154.224C221.158 154.247 221.119 154.449 221.293 154.335C221.344 154.301 221.313 154.222 221.298 154.224ZM224.366 152.242C224.19 152.303 224.026 152.504 224.381 152.335C224.265 152.411 224.15 152.489 224.035 152.567C224.517 152.381 224.421 152.273 224.555 152.211C224.745 152.127 224.782 152.24 224.761 152.292C224.88 152.151 225.529 151.841 225.905 151.664C225.558 151.781 224.997 151.984 224.665 152.128C224.569 152.169 224.494 152.243 224.414 152.279C224.286 152.337 224.376 152.239 224.367 152.242C224.367 152.242 224.366 152.242 224.366 152.242ZM220.117 155.062C219.775 155.236 220.053 155.207 220.208 155.059C220.214 155.051 220.126 155.057 220.117 155.062ZM227.878 150.89C228.372 150.92 228.017 151.019 229.04 150.841C228.611 150.95 229.018 150.904 228.936 150.943C228.87 150.974 228.615 150.966 228.766 151.013C228.569 150.962 227.732 151.031 227.696 151.024C227.696 151.024 227.697 151.024 227.697 151.024C227.675 151.02 227.719 150.88 227.878 150.89ZM222.353 153.298C222.153 153.214 222.256 153.477 221.968 153.485C221.797 153.838 222.749 153.004 222.974 153.089C221.799 153.753 223.833 152.795 222.885 153.036C223.608 152.734 223.09 152.88 223.178 152.791C223.272 152.695 223.678 152.518 223.628 152.472C223.628 152.472 223.627 152.472 223.627 152.472C223.391 152.605 223.157 152.74 222.925 152.879C223.224 152.87 222.726 153.106 222.506 153.105C222.455 153.169 222.404 153.233 222.353 153.298ZM223.741 152.656C223.715 152.665 223.214 152.965 223.261 152.972C223.336 152.947 224.054 152.534 223.741 152.656ZM226.043 151.51C225.849 151.592 225.542 151.7 225.46 151.796C225.651 151.709 225.959 151.604 226.043 151.51ZM217.107 157.511C216.947 157.731 217.544 157.159 217.338 157.29C217.327 157.296 217.114 157.5 217.107 157.511ZM221.848 153.643C221.589 153.745 221.79 153.818 221.936 153.673C221.945 153.664 221.86 153.638 221.848 153.643ZM228.273 150.844C228.288 150.801 229.003 150.79 229.13 150.784C229.059 150.826 228.255 150.893 228.273 150.844ZM226.323 151.221C225.875 151.243 225.423 151.638 225.367 151.66C225.308 151.683 225.37 151.582 225.356 151.587C225.324 151.595 224.727 151.883 224.701 151.903C224.682 151.916 224.83 151.947 224.72 152.033C224.933 151.862 226.049 151.396 226.104 151.367C226.146 151.341 225.77 151.394 226.322 151.222C226.322 151.222 226.323 151.221 226.323 151.221ZM225.216 151.707C225.382 151.673 224.965 151.873 224.858 151.909C224.619 151.988 225.194 151.711 225.216 151.707ZM224.198 152.164C224.146 152.18 223.719 152.395 223.703 152.453C223.929 152.395 224.314 152.128 224.198 152.164ZM219.701 155.006C219.606 155.086 219.316 155.271 219.324 155.313C219.418 155.231 219.709 155.048 219.701 155.006ZM230.712 150.409C230.508 150.382 230.978 150.359 231.117 150.373C231.125 150.397 230.729 150.411 230.712 150.409ZM221.615 153.364C221.541 153.386 220.302 154.259 220.147 154.406C220.326 154.299 221.568 153.461 221.623 153.42C221.637 153.406 221.624 153.36 221.615 153.364ZM224.458 151.743C224.558 151.632 224.669 151.652 224.685 151.645C224.843 151.578 225.16 151.416 225.112 151.498C224.827 151.604 224.259 151.964 224.458 151.743ZM219.463 154.873C219.069 155.204 219.887 154.647 219.75 154.681C219.741 154.682 219.504 154.838 219.463 154.873ZM221.75 153.259C221.817 153.153 223.142 152.414 223.36 152.307C223.209 152.484 223.025 152.514 222.774 152.663C222.706 152.704 222.742 152.723 222.734 152.727C222.617 152.797 222.686 152.711 222.612 152.753C222.563 152.776 221.646 153.395 221.75 153.259ZM224.512 151.673C224.572 151.604 225.426 151.191 225.466 151.186C225.75 151.124 224.58 151.644 224.512 151.673ZM221.593 153.272C221.678 153.101 222.357 152.761 221.941 153.072C221.901 153.102 221.702 153.177 221.593 153.272ZM219.451 154.767C219.428 154.779 218.992 155.097 219.005 155.128C219.071 155.086 219.699 154.614 219.451 154.767ZM219.611 154.515C219.601 154.523 219.737 154.494 219.531 154.641C219.514 154.653 219.441 154.623 219.205 154.838C219.157 154.882 219.106 154.979 219.113 154.976C219.433 154.85 220.114 154.096 219.611 154.515ZM224.504 151.617C224.446 151.615 224.52 151.486 224.639 151.475C224.69 151.471 224.631 151.554 224.504 151.617ZM218.11 155.829C218.313 155.583 217.565 156.229 217.539 156.276C217.583 156.276 218.088 155.852 218.11 155.829ZM231.184 150.012C231.183 150.012 231.183 150.012 231.183 150.012C231.442 150.021 231.282 150.065 231.294 150.066C231.847 150.124 231.701 150.031 231.788 150.019C231.974 149.996 231.943 150.111 232.259 150.067C231.737 150.131 232.212 150.107 232.226 150.149C232.282 150.316 231.535 150.064 231.278 150.103C231.242 150.108 231.507 150.16 231.415 150.176C231.118 150.226 230.192 149.986 231.184 150.012ZM224.713 151.431C224.801 151.331 225.667 150.991 225.459 151.13C225.424 151.149 224.581 151.571 224.713 151.431ZM235.106 164.747C234.923 164.774 235.333 164.86 235.412 164.838C235.451 164.825 235.189 164.735 235.106 164.747ZM237.985 165.537C238.209 165.595 238.493 165.499 238.211 165.44C238.181 165.434 237.966 165.505 237.985 165.537ZM223.644 167.915C223.918 167.876 223.859 167.772 223.677 167.845C223.612 167.871 223.636 167.916 223.644 167.915ZM232.52 164.877C232.543 164.878 232.799 164.841 232.787 164.815C232.689 164.808 232.373 164.868 232.52 164.877ZM223.571 167.961C223.712 167.884 223.425 167.904 223.271 168.052C223.362 168.01 223.556 167.969 223.571 167.961ZM220.97 153.365C220.882 153.481 220.55 153.688 220.372 153.825C220.315 153.786 220.842 153.462 220.97 153.365ZM237.038 165.191C237.236 165.206 236.927 165.087 236.849 165.096L236.916 165.112C236.904 165.115 236.898 165.12 236.902 165.129C236.903 165.13 236.906 165.131 236.911 165.133L236.844 165.116C236.883 165.133 237.03 165.19 237.038 165.191ZM213.699 168.418C213.938 168.558 213.284 167.974 213.43 168.175C213.437 168.187 213.685 168.413 213.699 168.418ZM211.795 164.808C211.753 165.048 211.971 166.068 211.924 165.664C211.897 165.604 211.813 164.824 211.795 164.808ZM231.803 149.974C231.729 149.909 232.159 149.927 232.221 149.94C232.245 149.945 231.899 150.058 231.803 149.974ZM225.249 167.276C225.371 167.216 225.7 167.096 225.743 167.041C225.594 167.111 225.182 167.23 225.249 167.276ZM236.175 165.002C236.341 165.101 236.63 165.155 236.577 165.051C236.249 164.991 236.604 165.137 236.175 165.002ZM222.75 168.353C222.858 168.318 222.909 168.206 222.896 168.206C222.767 168.212 222.631 168.359 222.75 168.353ZM230.135 165.426C230.151 165.46 230.445 165.359 230.399 165.347C230.384 165.342 230.122 165.398 230.135 165.426ZM217.147 156.362C216.999 156.454 217.357 156.072 217.5 155.999C217.593 155.991 217.165 156.349 217.147 156.362ZM219.68 169.286C219.677 169.346 220.238 169.167 220.002 169.181C219.944 169.185 219.682 169.267 219.68 169.286ZM212.732 167.66C212.968 167.877 212.638 167.494 212.379 167.042C212.114 166.595 211.94 166.086 212.035 166.456C212.014 166.535 212.664 167.652 212.732 167.66ZM211.913 163.33C211.878 163.433 211.7 163.32 211.921 162.929C211.95 162.879 211.903 163.148 211.931 163.108C211.934 163.063 212.326 162.261 212.352 162.238C212.369 162.198 212.292 162.214 212.307 162.172C212.311 162.162 212.328 162.134 212.354 162.094C212.425 161.991 212.591 161.776 212.673 161.643C212.87 161.323 212.852 161.264 212.867 161.237C212.915 161.161 213.026 161.054 213.126 160.902C213.622 160.134 214.44 158.997 214.992 158.522C214.545 158.983 214.202 159.493 213.837 160.016C213.86 159.802 213.359 160.829 213.641 160.221C213.536 160.391 212.87 161.39 212.443 162.146C212.129 162.681 211.951 163.223 211.913 163.329C211.913 163.329 211.913 163.33 211.913 163.33ZM238.823 165.862C238.675 165.876 239.336 166.096 239.415 166.051C239.335 166.007 238.843 165.859 238.823 165.862ZM235.708 165.21C235.646 165.213 235.57 165.325 235.265 165.228C235.264 165.228 235.264 165.228 235.264 165.228C235.174 165.2 235.282 165.181 235.266 165.168C235.261 165.162 234.979 165.073 235.219 165.086C235.587 165.11 235.243 165.182 235.438 165.205C235.461 165.206 235.841 165.191 235.821 165.174C235.819 165.172 235.707 165.17 235.689 165.161C235.622 165.128 235.662 165.094 235.652 165.091C235.617 165.078 235.027 165.08 234.944 165.02C234.917 164.99 235.894 165.058 235.928 165.083C235.951 165.093 235.924 165.198 235.946 165.213C235.957 165.218 236.355 165.248 236.401 165.269C236.415 165.275 236.425 165.28 236.433 165.284C236.38 165.239 236.731 165.315 236.712 165.351C236.702 165.364 236.463 165.303 236.456 165.3C236.452 165.298 236.449 165.296 236.446 165.294C236.49 165.339 235.674 165.195 235.842 165.287C235.604 165.285 235.888 165.203 235.708 165.21ZM234.571 165.17C234.597 165.16 234.621 165.15 234.645 165.14C234.231 165.146 233.759 165.092 233.279 165.125C233.158 165.134 233.302 165.193 233.143 165.186C233.016 165.181 232.867 165.131 232.936 165.11C232.953 165.104 233.215 165.123 233.345 165.112C233.729 165.078 233.628 165.026 233.651 165.022C233.675 165.019 233.918 165.055 234.05 165.053C234.378 165.05 234.536 165.015 234.983 165.096C234.719 165.117 234.856 165.211 234.571 165.17ZM216.692 169.774C216.66 169.812 216.177 169.713 216.001 169.677C216.037 169.65 216.514 169.767 216.692 169.774ZM246.721 155.015C246.599 155 247.241 155.493 247.1 155.325C247.07 155.287 246.804 155.074 246.721 155.015ZM249.522 157.368C249.614 157.43 249.321 157.096 249.289 157.133C249.28 157.144 249.51 157.359 249.522 157.368ZM229.146 166.045C229.13 166.052 228.885 166.124 228.876 166.125C228.695 166.118 229.499 165.877 229.146 166.045ZM252.619 160.757C252.312 160.355 253.105 161.644 252.906 161.227C252.902 161.207 252.639 160.776 252.619 160.757ZM253.555 162.58C253.517 162.468 253.338 161.986 253.315 161.988C253.287 161.991 253.49 162.539 253.555 162.58ZM222.757 168.598C222.822 168.649 222.313 168.776 222.141 168.844C222.078 168.792 222.592 168.669 222.757 168.598ZM225.751 167.464C223.83 168.316 224.21 168.001 225.852 167.385C225.872 167.425 225.871 167.41 225.751 167.464ZM223.217 168.473C223.276 168.404 223.511 168.328 223.667 168.271C223.651 168.311 223.327 168.424 223.217 168.473ZM245.983 154.383C246.132 154.414 246.604 154.828 246.499 154.784C246.476 154.771 245.923 154.379 245.983 154.383ZM229.014 166.154C229.079 166.202 228.529 166.372 228.481 166.375C228.293 166.381 228.977 166.181 229.014 166.154ZM219.734 169.597C219.628 169.678 219.287 169.732 219.068 169.778C219.159 169.713 219.55 169.642 219.734 169.597ZM221.274 169.208C221.262 169.214 220.968 169.299 220.954 169.3C220.7 169.323 221.528 169.084 221.274 169.208ZM230.815 149.509C230.825 149.507 231.048 149.507 231.056 149.509C231.256 149.556 230.586 149.558 230.815 149.509Z" fill="#6A3A2A"/> + </g> + <defs> + <clipPath id="clip0_8942_11911"> + <rect width="398" height="360" fill="white"/> + </clipPath> + </defs> + </svg> + \ No newline at end of file diff --git a/src/assets/icons/tools/tool-icons/vibesuite.svg b/src/assets/icons/tools/tool-icons/vibesuite.svg new file mode 100644 index 0000000..353cf0d --- /dev/null +++ b/src/assets/icons/tools/tool-icons/vibesuite.svg @@ -0,0 +1,6 @@ +<svg width="374" height="360" viewBox="0 0 374 360" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path fill-rule="evenodd" clip-rule="evenodd" d="M208.199 95.6418C215.386 83.2806 226.525 83.3753 236.308 92.6767C238.708 94.9603 239.63 98.5838 240.463 101.715C239.938 103.123 239.734 107.564 239.246 109.966C238.529 113.481 236.063 118.23 235.592 120.985C234.384 126.504 233.025 130.134 230.996 135.361C230.425 136.834 230.529 137.957 229.721 139.494C225.787 152.991 221.124 165.196 216.974 178.271L209.47 202.058C207.399 208.687 205.099 217.676 201.603 223.388C204.544 228.728 200.411 228.196 199.361 232.458C195.56 247.838 190.04 262.682 185.625 277.834C185.377 278.683 186.565 279.684 187.113 280.3C186.584 282.121 185.28 281.739 184.228 282.734C183.349 283.564 182.108 288.007 181.621 288.989C180.454 291.343 181.017 295.073 180.477 296.682C179.147 300.594 177.157 304.561 176.132 308.563C173.312 319.569 169.774 330.343 166.577 341.241C165.898 343.554 164.815 346.447 163.745 348.605C162.564 350.984 159.774 353.387 158.882 355.882C159.245 356.529 159.526 357.055 159.855 357.728C158.583 358.655 159.396 356.779 157.247 356.582C156.518 357.565 156.13 358.273 155.524 359.343C152.844 360.613 150.785 357.239 148.685 357.81C148.381 358.977 148.408 359.142 147.584 359.948C142.82 360.573 142.548 355.378 137.49 356.456C136.366 355.821 135.872 354.006 135.21 352.571C132.593 352.317 131.174 352.593 129.588 350.696C128.927 347.616 131.742 346.651 131.608 346.142C129.137 336.755 136.718 318.56 139.093 311.05L151.992 269.474C153.995 262.925 156.824 253.291 158.8 246.483C158.929 246.042 160.137 246.063 160.956 245.89C161.978 242.454 161.152 237.926 162.721 234.437C162.997 233.822 162.915 234.007 162.745 233.351C161.619 233.428 160.742 233.639 159.825 233.033C159.53 231.915 159.742 231.675 160.183 230.529C161.834 229.65 161.418 230.459 163.826 230.642C165.122 228.497 169.971 212.286 171.078 209.144C176.198 194.602 180.615 179.497 185.324 164.771L196.619 130.309C198.173 125.421 200.002 119.856 201.386 114.917C203.344 107.826 204.419 102.147 208.199 95.6418ZM171.838 303.177L171.639 302.646L171.56 302.788L171.776 303.213C170.606 303.761 169.274 308.909 168.774 310.412C168.1 312.981 161.48 329.939 160.411 330.7C159.519 329.99 159.461 329.94 158.442 329.446C156.607 330.327 153.027 342.641 153.58 343.765C155.404 343.64 155.343 341.794 157.507 341.653L158.851 343.204C161.592 342.253 170.781 313.477 169.861 310.28C170.934 307.393 171.779 305.505 172.038 302.393L171.852 302.317L171.838 303.177ZM181.279 200.954C177.992 206.198 174.966 219.45 172.743 225.806C169.894 233.958 166.912 243.803 163.71 251.716C163.999 252.312 164.227 252.829 164.604 253.379L165.597 253.228C167.693 248.78 181.938 203.785 181.279 200.954ZM231.984 119.631C229.75 122.228 224.879 138.902 223.987 142.757L224.675 143.298L224.354 143.903L223.787 143.756L224.221 144.136L223.991 144.62C225.829 142.324 225.408 141.866 226.479 139.079C228.433 132.585 230.583 126.202 232.604 119.767L231.984 119.631ZM210.674 114.111C209.969 116.888 203.257 133.154 204.024 135.039C205.161 134.866 205.282 134.739 206.311 134.161C207.648 133.17 212.961 118.604 213.674 115.943C213.09 114.649 212.099 114.382 210.774 113.714L210.674 114.111Z" fill="#B8860B"/> + <path fill-rule="evenodd" clip-rule="evenodd" d="M101.728 123.625C104.856 123.238 104.891 123.668 106.153 126.488C107.375 126.998 106.769 126.95 108.032 126.685C108.099 125.663 108.059 125.361 107.937 124.336C112.204 121.53 123.465 135.379 122.427 139.886C121.898 142.181 121.348 145.38 120.888 147.723C117.456 151.523 113.005 157.364 109.238 160.995C108.902 161.318 106.527 160.799 104.877 162.761C105.163 164.976 105.303 165.038 103.648 166.359C99.4558 165.631 97.2953 169.637 94.8811 172.613C96.4203 171.326 98.4949 169.153 100.618 169.5C100.142 172.027 88.5125 181.041 85.8584 183.429C85.6192 184.141 85.4202 184.733 85.2627 185.202C82.6365 186.736 80.8931 183.148 77.656 188.617C73.2141 196.122 65.309 205.058 58.4766 210.431C50.7066 216.542 45.6849 218.099 40.3588 227.824C42.4218 226.366 43.8709 223.817 46.6901 224.912L46.8973 225.858C46.6047 227.527 45.5288 228.631 44.4754 229.952C46.7072 231.664 48.9753 234.607 50.8258 236.812C54.0251 240.624 56.4774 237.018 59.4392 240.088L59.1738 240.582C57.8637 240.81 56.7533 241.041 55.4591 241.348L55.0389 242.079C55.8593 244.5 59.8145 247.055 61.9476 248.655C64.0214 256.164 76.7057 264.288 82.1927 270.04C83.4614 271.37 84.5761 270.871 86.2494 270.613C86.984 272.268 86.0457 271.74 85.7286 273.73C85.9936 274.128 87.1605 275.551 87.3434 275.849C91.3557 282.404 98.2723 285.846 102.407 292.152C102.144 291.75 101.964 294.169 102.034 294.628C102.923 294.288 102.666 294.3 103.222 293.105L103.751 293.016C113.642 300.497 108.111 300.966 113.917 306.258C109.468 313.739 109.024 324.338 97.3545 324.756C90.2501 329.746 70.6327 305.848 66.0475 300.576C65.823 300.318 66.1717 299.375 66.2647 298.988C64.9575 297.003 59.1125 296.351 59.0681 293.388C59.9878 292.984 60.226 292.926 61.0058 292.239L60.7005 291.629C59.5228 291.939 59.2964 291.963 58.0781 291.952C54.9567 290.578 42.8336 277.064 39.8255 273.964C38.7959 275.273 38.2509 276.336 36.5609 276.019C35.6117 274.323 36.4521 271.82 35.7747 270.341C35.1075 268.884 30.0014 264.746 28.6688 264.332C27.178 266.041 28.5071 268.561 26.2852 269.796C24.8885 269.466 24.5166 269.026 24.42 267.666C25.0013 266.107 26.8584 264.563 28.1122 263.362C26.1809 257.7 23.4407 261.8 21.4923 260.095C21.6123 258.471 22.4401 257.6 23.3891 256.233C16.125 249.421 11.4794 243.251 5.14822 235.599C3.11465 233.141 3.08085 230.842 0 227.219C1.90407 224.254 0.793506 223.034 1.68807 220.074C3.26356 214.859 30.2662 190.199 36.05 184.467C39.7932 180.758 42.9639 176.607 46.5387 172.758C48.9529 170.158 51.7475 167.928 54.2926 165.459C60.9142 159.035 71.8265 146.982 79.6644 142.64C79.7931 142.344 79.9283 142.05 80.0687 141.759C82.7588 136.133 95.547 125.797 101.728 123.625ZM97.6008 295.675C99.9412 298.044 102.01 301.009 104.405 303.216C104.928 303.231 105.374 303.244 105.744 303.255C105.314 300.844 100.026 296.333 97.6008 295.675ZM75.319 271.372C76.123 273.552 84.8402 282.358 87.4216 282.509C86.2303 280.509 77.302 272.084 75.319 271.372ZM63.5366 269.585C64.6925 271.754 66.3933 275.017 69.0193 275.593C68.1463 272.554 66.7314 270.452 63.5366 269.585ZM54.7136 256.918C54.0141 259.731 54.5776 262.524 54.0522 265.987C56.6665 266.196 55.5802 262.921 59.5324 266.527L60.8111 266.308C62.4048 264.039 55.8767 257.298 54.7136 256.918ZM37.4236 225.597C36.239 228.53 33.9797 229.226 33.4834 231.251C33.5946 231.397 33.865 231.805 33.9984 231.868C35.3364 229.555 37.2918 228.805 38.2514 226.821C38.0008 225.808 38.2686 226.202 37.4236 225.597ZM31.2937 204.362C30.1153 205.413 28.6659 206.512 27.9325 207.857L28.0032 208.579C29.3287 207.579 30.6136 206.797 31.307 205.281L31.2937 204.362ZM71.2249 169.759C69.4735 170.069 65.9813 174.953 64.035 176.73L63.6831 177.048L63.2829 177.41C58.0114 182.111 51.5686 185.184 46.9763 191.106C45.5759 192.912 44.324 194.633 42.2382 193.602L42.0336 194.198L43.5494 197.022L44.215 197.191C47.2504 195.277 49.3391 193.964 52.1445 191.71L52.2327 191.075L50.8566 189.987L51.0638 189.6C52.4307 190.2 53.4202 190.837 54.8367 190.597C54.9897 190.489 62.4152 179.639 63.8861 178.079C64.015 177.991 64.6344 177.557 64.6773 177.497C66.1339 175.407 70.9818 172.111 71.2249 169.759Z" fill="#B8860B"/> + <path fill-rule="evenodd" clip-rule="evenodd" d="M273.448 126.126C276.003 126.499 281.499 127.226 283.47 128.799C287.783 132.244 292.212 138.153 296.062 142.109C301.108 147.297 305.55 151.985 310.321 157.351C313.23 160.622 316.726 163.355 319.889 166.992L320.405 167.192C321.61 168.845 323.168 170.195 324.597 171.644C330.21 177.325 335.456 183.358 341.277 188.832C346.436 193.668 351.145 198.999 356.237 203.899C360.303 207.816 365.65 211.008 369.087 215.517C371.591 218.803 371.912 223.553 374 227.216C371.333 231.892 369.225 236.988 366.145 241.277C364.779 243.221 361.362 243.743 359.886 245.391C356.874 248.753 355.82 250.014 352.361 253.619C345.99 260.26 337.74 266.717 331.71 273.663C331.06 274.409 333.043 276.662 330.609 278.01C329.984 277.723 328.497 276.748 328.089 277.134C325.134 279.93 321.756 281.222 321.793 285.466C320.531 286.911 319.751 285.418 317.276 287.699C311.742 292.793 306.133 297.655 300.587 302.756C294.57 308.36 289.357 315.243 283.203 320.64C281.411 322.21 274.757 324.163 272.506 324.185C266.077 324.248 259.506 316.428 256.01 312.015C256.681 308.459 257.33 306.229 255.343 303.278L255.102 302.928C255.874 298.379 277.748 278.524 281.844 274.248C284.365 271.615 289.575 265.699 292.358 263.71C293.421 262.959 294.512 262.252 295.629 261.59L295.808 261.128C297.825 256.073 299.792 256.155 303.742 253.801C304.83 253.152 307.675 248.596 308.825 247.591C310.267 245.864 311.613 244.656 313.167 243.077C312.234 241.371 311.688 242.813 311.067 241.005C312.68 238.188 314.726 238.068 317.434 239.405C321.705 235.44 327.355 230.405 329.068 224.882L329.451 224.824C330.176 225.942 329.852 225.827 330.831 226.086C331.627 225.101 331.385 225.463 331.493 223.972C330.197 221.159 325.16 216.279 325.597 214.96L327.802 214.129L327.777 213.437C319.739 210.853 319.243 210.681 313.696 204.536C310.854 201.386 300.879 191.351 297.645 190.248C297.499 192.171 297.437 194.926 294.812 194.795C293.729 191.324 295.954 191.427 296 186.573L296.004 186.013C295.85 185.819 290.92 181.426 290.074 180.612C280.936 171.821 272.902 162.07 263.485 153.581C259.602 150.083 259.36 147.715 258.177 142.986C258.939 140.175 260.656 135.88 261.71 133.037C267.439 128.204 267.111 129.362 273.448 126.126ZM297.654 272.517C295.037 275.02 292.254 276.868 289.504 279.424C281.099 287.235 273.153 295.399 263.998 302.33C262.873 303.179 264.402 306.684 265.077 307.859L266.682 308.927C268.107 308.559 268.257 308.297 269.219 307.149C269.582 305.812 269.569 304.851 269.715 303.501C270.399 297.195 298.69 276.14 298.083 272.712L297.654 272.517ZM343.973 217.642C343.219 218.919 342.161 220.401 341.961 221.807L342.444 222.529C343.486 221.116 344.448 220.183 344.523 218.49L343.973 217.642Z" fill="#B8860B"/> + </svg> + \ No newline at end of file diff --git a/src/assets/icons/tools/vibesuite/ArrowUp.tsx b/src/assets/icons/tools/vibesuite/ArrowUp.tsx new file mode 100644 index 0000000..af621bd --- /dev/null +++ b/src/assets/icons/tools/vibesuite/ArrowUp.tsx @@ -0,0 +1,13 @@ +const ArrowUp = () => ( + <svg + width="20" + height="20" + viewBox="0 0 20 20" + fill="currentColor" + xmlns="http://www.w3.org/2000/svg" + > + <path d="M10 3.5L3.75 9.75L4.64375 10.6438L9.375 5.90625V16.25H10.625V5.90625L15.3563 10.6437L16.25 9.75L10 3.5Z" /> + </svg> +); + +export default ArrowUp; diff --git a/src/assets/icons/user-dropdown/log-out.svg b/src/assets/icons/user-dropdown/log-out.svg new file mode 100644 index 0000000..65373d7 --- /dev/null +++ b/src/assets/icons/user-dropdown/log-out.svg @@ -0,0 +1,9 @@ +<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path + d="M1.53375 13.4648C1.15014 13.4648 0.829861 13.3364 0.572917 13.0794C0.315972 12.8225 0.1875 12.5022 0.1875 12.1186V1.47776C0.1875 1.09415 0.315972 0.773869 0.572917 0.516925C0.829861 0.25998 1.15014 0.131508 1.53375 0.131508H6.87021V0.964841H1.53375C1.40542 0.964841 1.28785 1.01824 1.18104 1.12505C1.07424 1.23186 1.02083 1.34942 1.02083 1.47776V12.1186C1.02083 12.2469 1.07424 12.3645 1.18104 12.4713C1.28785 12.5781 1.40542 12.6315 1.53375 12.6315H6.87021V13.4648H1.53375ZM10.5721 9.74692L9.98708 9.14755L11.9198 7.21484H4.51437V6.38151H11.9198L9.98708 4.4488L10.5721 3.84942L13.5208 6.79817L10.5721 9.74692Z" + fill="black" fill-opacity="0.85" /> + <path + d="M0.983564 13.6242C0.782841 13.5619 0.560362 13.4244 0.398594 13.2537C0.300339 13.1527 0.21772 13.0387 0.158209 12.9288C0.109911 12.8362 0.14695 12.8763 0.117516 12.8114C0.0626738 12.6836 0.018037 12.5607 0.000112742 12.4264C-0.00532903 12.3822 0.0244628 12.4331 0.0187158 12.3872C0.00791672 12.2957 0.00335707 12.2066 0.00401436 12.1186C0.00519529 11.9803 0.00407186 11.8429 0.00690626 11.6995C0.0289213 10.5873 0.0368012 9.49411 0.0463654 8.36834C0.049501 7.99715 0.0685514 7.54592 0.0602203 7.16252C0.0592289 7.11776 0.0408039 7.14444 0.0392853 7.13593C0.0160374 7.00237 0.0532337 7.04677 0.0581756 6.95957C0.0776884 6.61345 0.0793855 6.22857 0.0722747 5.89548C0.0691956 5.75377 0.0325988 5.89585 0.0531402 5.75317C0.0545281 5.74326 0.0740941 5.77921 0.0761809 5.74035C0.0808745 5.65222 0.0773773 5.48501 0.0789275 5.4167C0.0820142 5.28507 0.0818173 5.26329 0.0820403 5.13877C0.0825154 4.96856 0.0922415 4.76611 0.0878081 4.58349C0.0868036 4.54451 0.0667463 4.59611 0.0633331 4.53395C0.0599254 4.47172 0.0616261 4.30711 0.0663543 4.25162C0.0710849 4.19611 0.0868496 4.21974 0.0904631 4.20992C0.120962 4.1291 0.078721 3.93869 0.0776763 3.9142C0.0598766 3.46751 0.0839399 3.08445 0.0838713 2.66514C0.0837682 2.34683 0.075824 2.00646 0.0769134 1.70358C0.0772087 1.6261 0.0779418 1.55115 0.0788924 1.47776C0.0826244 1.19302 0.154229 0.921615 0.316696 0.672281C0.338867 0.638981 0.292723 0.664752 0.32065 0.623846C0.369541 0.553622 0.424721 0.488357 0.48445 0.428458C0.753532 0.148437 1.15709 0.00220798 1.53375 0.0188252C1.57936 0.0201088 1.62499 0.021507 1.67062 0.0230269C1.71856 0.0246444 1.65678 0.04535 1.70467 0.0482039C1.99789 0.0652201 2.46186 0.106097 2.63601 0.0159469C2.83463 0.0194671 3.07577 0.0231042 3.25346 0.0412764C3.36803 0.0529724 3.25676 0.0755289 3.3975 0.065904C3.42924 0.0637595 3.38796 0.0440055 3.43556 0.0422835C3.63598 0.0350518 3.85494 0.0414731 4.0532 0.0312667C4.09353 0.0291442 4.08252 0.0114439 4.09395 0.00825648C4.18998 -0.0175568 4.34984 0.0251142 4.38469 0.0282149C4.65007 0.0513367 4.84387 0.0422377 5.09109 0.0428023C5.14846 0.0429432 5.08064 0.0191677 5.13585 0.0184493C5.42216 0.0150418 5.71875 0.0170853 5.99909 0.0276351C6.06145 0.0300389 6.00411 0.0502913 6.03391 0.0524763C6.1653 0.0618638 6.19443 0.0236122 6.32044 0.031877C6.34701 0.0335703 6.33204 0.0509079 6.33689 0.052812C6.41273 0.0827023 6.47864 0.0403498 6.49814 0.0394148C6.64104 0.0320166 6.75407 0.0437278 6.87021 0.0536825L6.94725 0.0529142L6.94803 0.131508C6.9408 0.215929 6.93449 0.301986 6.93712 0.402334C6.93792 0.430853 6.95985 0.366542 6.96074 0.446711C6.96268 0.617016 6.96338 0.79045 6.96287 0.964841L6.96378 1.05657L6.87021 1.0575C6.4977 1.05642 6.12082 1.04981 5.76074 1.03786C5.67854 1.03516 5.73722 1.01868 5.73205 1.01665C5.64774 0.984909 5.5932 1.02744 5.5664 1.02904C5.35496 1.04057 5.15745 1.0049 5.01379 1.05556C4.11833 1.03798 3.22699 1.06643 2.33893 1.02105C2.32764 1.02052 2.34787 0.999574 2.32535 0.998615C2.0541 0.986854 2.1062 1.01941 1.92672 1.05922C1.88151 1.06922 1.74398 1.02115 1.73181 1.01763C1.68747 1.00464 1.73346 0.973481 1.71861 0.970966C1.62189 0.95542 1.61373 1.01599 1.53375 1.04248C1.51572 1.04969 1.49474 1.05533 1.46726 1.0605C1.46297 1.0611 1.47727 1.03925 1.46555 1.03943C1.42817 1.0403 1.39591 1.05939 1.3606 1.06991C1.2997 1.08926 1.25057 1.08648 1.19422 1.13823C1.17649 1.15509 1.15856 1.1779 1.14333 1.20957C1.13879 1.22649 1.18737 1.23839 1.13348 1.34468C1.12462 1.36456 1.10658 1.41742 1.10691 1.47776C1.10657 1.56606 1.10592 1.66159 1.10386 1.70143C1.10008 1.77452 1.08124 1.72434 1.08043 1.72955C1.05552 1.92648 1.04519 1.85181 1.00831 1.95048C0.971573 2.04913 1.0592 2.02177 1.06898 2.06199C1.07873 2.10228 1.05818 2.24667 1.05104 2.28216C1.04389 2.31762 1.03192 2.27339 1.02787 2.30492C1.00145 2.51401 1.07137 2.3967 1.08528 2.46559C1.11821 2.62802 1.05322 2.75454 1.04686 2.90324C1.04514 2.94348 1.05994 2.91064 1.06132 2.94647C1.06661 3.08837 1.04633 3.17371 1.06492 3.33515C1.06795 3.36156 1.10702 3.49207 1.07835 3.57655C1.07422 3.58851 1.05802 3.55451 1.05439 3.61499C1.04895 3.70533 1.04541 3.86811 1.05082 3.96523C1.05483 4.03692 1.08151 3.95474 1.07322 4.04499C1.06952 4.0851 1.05391 4.01076 1.04826 4.08612C1.04261 4.16107 1.0433 4.35271 1.04383 4.42564C1.04439 4.49843 1.06463 4.45859 1.06599 4.46447C1.0738 4.50007 1.08356 4.63977 1.08354 4.65211C1.08601 5.27481 1.05189 5.84903 1.06318 6.45531C1.06404 6.50289 1.08538 6.47119 1.08574 6.47845C1.09468 6.64133 1.03793 6.51291 1.01893 6.62669C1.06225 6.61025 1.0544 6.67742 1.05915 6.79215C1.06148 6.84744 1.07825 6.81733 1.07997 6.82237C1.10544 6.90436 1.07254 6.96146 1.06581 6.97616C1.04105 7.03046 1.0703 7.08956 1.05375 7.12651C1.03733 7.16344 1.01297 7.07845 1.01329 7.18848C1.02879 7.21934 1.06931 7.13765 1.07588 7.22119C1.10072 7.5364 1.06893 8.1248 1.06562 8.37824C1.06232 8.63118 1.06519 8.71288 1.05958 8.86027C1.04945 9.1265 1.07951 9.02893 1.09327 9.19424C1.10703 9.36004 1.03306 9.27944 1.01716 9.30327C1.00127 9.32667 1.01763 9.35221 1.00889 9.38132C1.00016 9.41032 0.989345 9.34752 0.986065 9.41575C0.982788 9.48401 1.01106 9.67063 1.02769 9.69482C1.06292 9.74597 1.09988 9.66188 1.08689 9.84249C1.08612 9.85288 1.06667 9.81917 1.06471 9.85894C1.04974 10.1749 1.04881 10.5031 1.03556 10.8186C1.03371 10.862 1.01208 10.8232 1.01075 10.8484C0.996914 11.1114 1.0334 11.0174 1.07393 11.1616C1.01999 11.1292 0.986994 11.2089 0.986676 11.4085C0.986465 11.5285 1.01002 11.5078 1.02662 11.5854C1.03163 11.6087 1.01545 11.6936 1.02653 11.709C1.06274 11.7597 1.10328 11.6798 1.08714 11.8856C1.08637 11.8946 1.06655 11.8658 1.06535 11.897C1.06129 12.0012 1.06943 12.058 1.07889 12.1186C1.08885 12.1681 1.10227 12.2171 1.1448 12.2943C1.16523 12.3304 1.19487 12.3736 1.23525 12.4171C1.31133 12.5028 1.42378 12.5708 1.53375 12.5728C1.56749 12.5741 1.59955 12.5751 1.6291 12.5756C1.625 12.6363 1.80876 12.6224 1.88331 12.5806C2.00957 12.5823 2.14594 12.5799 2.26797 12.5857C2.30997 12.5877 2.28238 12.6052 2.28767 12.6071C2.36889 12.6369 2.42377 12.5962 2.45103 12.5946C2.7464 12.5791 2.98705 12.6099 3.26894 12.5798C3.27894 12.5787 3.29515 12.5366 3.37051 12.5674C3.37538 12.5695 3.28228 12.5887 3.41489 12.5901C3.54751 12.5916 3.79753 12.6142 3.98165 12.5947C4.0262 12.59 4.1389 12.5558 4.22935 12.5825C4.24141 12.5861 4.22822 12.5982 4.24561 12.6049C4.30185 12.6264 4.33255 12.5838 4.39864 12.6199C4.46473 12.6561 4.60221 12.6832 4.78789 12.6582C4.79381 12.6575 4.83776 12.6238 4.89616 12.6243C4.98938 12.6252 5.12171 12.6322 5.21904 12.632C5.26564 12.6319 5.23581 12.6109 5.2439 12.6105C5.55725 12.5988 5.78026 12.6175 6.11595 12.6256C6.17748 12.6271 6.35432 12.5985 6.47345 12.6211C6.60426 12.6459 6.46984 12.7487 6.77051 12.7242C6.80146 12.7217 6.83452 12.7114 6.87021 12.6984L6.80328 12.6315C6.841 12.7357 6.90054 12.8622 6.85018 13.0245C6.85612 13.1743 6.8556 13.3201 6.85353 13.4648L6.87021 13.4482C6.60663 13.4444 6.34674 13.4354 6.07311 13.4509C6.05405 13.4519 5.99378 13.4884 5.94897 13.4879C5.88245 13.4871 5.84594 13.47 5.79844 13.4689C5.5994 13.4638 5.41726 13.4784 5.22536 13.4761C5.1525 13.4753 5.17798 13.4577 5.09108 13.4567C5.00424 13.4557 4.94633 13.4789 4.82865 13.4677C4.73977 13.4592 4.6509 13.4118 4.53293 13.4063C4.52843 13.453 4.44741 13.452 4.30339 13.4644C4.27571 13.4668 4.3054 13.483 4.2923 13.485C4.23901 13.4934 4.18969 13.4799 4.13908 13.489C4.12677 13.4912 4.12619 13.5072 4.11613 13.5099C4.03056 13.5334 3.88958 13.4975 3.86536 13.4912C3.77256 13.4675 3.72919 13.4882 3.65801 13.4789C3.58695 13.4696 3.69321 13.4579 3.61019 13.4522C3.43813 13.4405 3.21704 13.443 3.04228 13.4423C2.97256 13.4421 3.02013 13.4634 3.01015 13.4639C2.86597 13.4693 2.72016 13.4466 2.64021 13.4891C2.54025 13.3793 2.55327 13.4997 2.34717 13.4777C2.33094 13.476 2.31029 13.4241 2.37261 13.4165C2.43494 13.4089 2.52945 13.4251 2.61592 13.4132C2.6364 13.4104 2.75371 13.3618 2.76971 13.3588C2.89508 13.3358 2.91285 13.4134 2.91948 13.4176C2.9947 13.4636 3.13805 13.4112 3.1758 13.4076C3.34849 13.391 3.49521 13.4019 3.63965 13.3901C3.73412 13.3824 3.74336 13.3316 3.81754 13.3332C4.06413 13.3383 4.15021 13.4092 4.38258 13.3477C4.43241 13.3346 4.38289 13.2791 4.56143 13.3228C4.57265 13.3255 4.7052 13.3655 4.78178 13.3402C4.7914 13.337 4.7911 13.3208 4.80378 13.3195C4.88879 13.3107 4.94549 13.3236 5.0381 13.3174C5.1307 13.3112 5.24205 13.302 5.34778 13.3075C5.4115 13.3108 5.49326 13.3409 5.52376 13.3483C5.60988 13.3696 5.70223 13.3347 5.75559 13.3605C5.8094 13.3863 5.7042 13.4256 5.8453 13.4423C5.85052 13.4003 5.86253 13.3572 5.87093 13.3149C6.18014 13.3164 6.48438 13.33 6.79462 13.3281C6.83308 13.3278 6.79375 13.3052 6.83498 13.3044C6.84682 13.3041 6.85856 13.304 6.87021 13.3039L6.70927 13.4648C6.70824 13.3053 6.72182 13.1619 6.71584 12.9937C6.71167 12.8783 6.6946 12.7537 6.6854 12.6315L6.87021 12.8163C6.84455 12.8182 6.81899 12.8198 6.79365 12.8209C6.70446 12.7728 6.48778 12.7891 6.33037 12.7847C6.27523 12.7832 6.27892 12.7703 6.23971 12.7662C6.09177 12.7507 6.16109 12.7932 6.12054 12.7999C5.94654 12.8284 5.93164 12.7322 5.7265 12.7346C5.71564 12.7347 5.58279 12.7859 5.56449 12.7891C5.44823 12.81 5.54524 12.7713 5.47248 12.7675C5.33964 12.7606 5.24732 12.7483 5.09145 12.7634C5.046 12.7678 4.93698 12.7998 4.84872 12.775C4.83711 12.7718 4.84352 12.7549 4.83418 12.7539C4.66502 12.7373 4.66057 12.7906 4.5639 12.8086C4.46722 12.8266 4.31789 12.7899 4.2875 12.7793C4.208 12.7519 4.34842 12.7676 4.35273 12.7649C4.40331 12.7329 4.2944 12.7384 4.21118 12.7357C4.19914 12.6835 4.08276 12.6866 4.12492 12.7331C4.12971 12.7382 4.19447 12.7333 4.21118 12.7357C4.13814 12.7869 4.01024 12.7935 3.86898 12.7456C3.80286 12.7232 3.86537 12.697 3.66451 12.7066C3.57335 12.7109 3.60857 12.7468 3.52812 12.7566C3.34433 12.779 3.10551 12.7455 2.91603 12.7507C2.84726 12.7527 2.91425 12.7723 2.86725 12.7743C2.74252 12.7797 2.63253 12.7649 2.50726 12.7725C2.49591 12.7732 2.52364 12.7938 2.48469 12.7941C2.18939 12.7964 1.93225 12.7832 1.62393 12.7829C1.59721 12.7829 1.5667 12.7832 1.53375 12.7838C1.36819 12.7938 1.16637 12.6912 1.06759 12.5847C1.04222 12.5597 1.01969 12.5341 1.00085 12.5095C0.923406 12.4117 0.864704 12.2634 0.872462 12.1186C0.881558 11.9363 0.891629 11.7535 0.887066 11.6103C0.882408 11.4613 0.8618 11.494 0.84776 11.4301C0.820544 11.3069 0.869294 11.0888 0.876843 11.0594C0.877093 11.0585 0.881951 11.1868 0.892529 11.1183C0.914571 11.0785 0.876939 11.0609 0.876843 11.0594C0.88172 11.0401 0.886398 10.784 0.882458 10.7331C0.880306 10.7055 0.860781 10.7209 0.860028 10.7065C0.842556 10.364 0.837593 10.0208 0.846722 9.6734C0.847117 9.66728 0.868956 9.6765 0.86961 9.66211C0.879321 9.46098 0.852605 9.3322 0.836743 9.16632C0.820889 9.00046 0.826199 8.86893 0.86369 8.77075C0.85897 8.64561 0.875544 8.46607 0.885602 8.36275C0.895659 8.25944 0.853147 8.24502 0.852307 8.23593C0.825408 7.9524 0.849741 7.7885 0.853528 7.49434C0.855401 7.35449 0.849235 7.07708 0.844586 6.92567C0.840841 6.80599 0.850804 6.7339 0.844434 6.62363C0.843583 6.60872 0.824655 6.62379 0.823926 6.61924C0.801279 6.49617 0.847552 6.55531 0.855817 6.52991C0.88587 6.43779 0.901876 6.38088 0.887738 6.22329C0.8845 6.18694 0.817874 6.08105 0.813977 6.01479C0.809033 5.92864 0.832915 5.96115 0.82713 5.87095C0.826657 5.86323 0.811924 5.86484 0.812573 5.80916C0.815395 5.55074 0.823968 5.26899 0.822491 5.00043C0.822346 4.96375 0.798977 5.01078 0.798383 4.95778C0.795613 4.70907 0.796477 4.43648 0.807416 4.19419C0.810182 4.13455 0.826544 4.17194 0.831403 4.15899C0.860799 4.07951 0.818087 3.9668 0.817273 3.9482C0.796748 3.50458 0.835401 3.16507 0.816998 2.71292C0.815918 2.6883 0.77013 2.49885 0.809399 2.41433C0.812012 2.40854 0.852189 2.32492 0.824719 2.25098C0.823001 2.24638 0.802317 2.29849 0.804425 2.20756C0.806529 2.11662 0.792716 1.97027 0.815442 1.84527C0.822601 1.8057 0.862679 1.71216 0.830731 1.59412C0.829546 1.59003 0.808589 1.53665 0.79669 1.47776C0.785005 1.40067 0.801004 1.31046 0.837949 1.2752C0.85475 1.26512 0.880884 1.28643 0.955483 1.11397C0.972141 1.08203 0.922931 1.1271 0.974901 1.04743C0.99158 1.0233 1.01122 0.999682 1.03294 0.976944C1.11687 0.887736 1.25351 0.796981 1.41088 0.75024C1.42797 0.744885 1.47444 0.726419 1.53375 0.720501C1.57095 0.714683 1.61472 0.712849 1.65377 0.726186C1.66622 0.730441 1.64255 0.748049 1.68456 0.75002C1.88431 0.759472 2.09346 0.747694 2.29627 0.759877C2.36811 0.764158 2.33138 0.792623 2.40626 0.800252C2.48116 0.807877 2.63203 0.815213 2.7104 0.802205C2.78878 0.789191 2.70315 0.743824 2.82057 0.740193C3.33103 0.724426 3.8367 0.75104 4.34641 0.754933C4.42201 0.755515 4.35934 0.739281 4.47075 0.738973C4.88149 0.737765 5.59063 0.722544 5.94704 0.757039C6.23261 0.784668 5.87324 0.805702 6.09146 0.816945C6.19676 0.822308 6.31069 0.769564 6.33611 0.767903C6.54217 0.753906 6.69608 0.767612 6.87021 0.768587L6.67395 0.964841C6.67415 0.929126 6.67382 0.892561 6.6726 0.85452C6.67111 0.808364 6.64973 0.853634 6.6487 0.814351C6.645 0.680176 6.65454 0.539156 6.65279 0.410942C6.65196 0.353422 6.63563 0.36402 6.63689 0.311094C6.63829 0.248717 6.64066 0.189896 6.64453 0.131508L6.87021 0.357182C6.81005 0.353187 6.75035 0.347595 6.6877 0.339829C6.67645 0.338434 6.75232 0.318124 6.65863 0.317368C6.50698 0.316203 6.31875 0.301107 6.14427 0.316697C6.09251 0.321386 6.09048 0.358703 5.9792 0.332932C5.95586 0.327549 5.98564 0.282741 5.85602 0.321457C5.83422 0.327891 5.61647 0.380113 5.50961 0.346451C5.48142 0.337592 5.40946 0.300924 5.34721 0.306687C5.33877 0.307606 5.37259 0.32765 5.32101 0.329606C5.1392 0.336147 4.94867 0.334009 4.76189 0.340287C4.71202 0.342003 4.78631 0.362744 4.71197 0.36464C4.50755 0.369882 4.25233 0.364601 4.05244 0.358109C3.97874 0.355676 4.02968 0.338494 4.02432 0.336625C3.93809 0.306212 3.8871 0.347262 3.85848 0.349656C3.68048 0.363988 3.54493 0.344705 3.38085 0.349808C3.33557 0.351164 3.36768 0.370737 3.35867 0.372483C3.26519 0.389535 3.33482 0.354385 3.27565 0.35051C3.10989 0.339539 2.9251 0.341112 2.75747 0.343613C2.6959 0.344561 2.7651 0.367256 2.70984 0.367844C2.38279 0.371755 2.04279 0.369583 1.72361 0.357071C1.66351 0.354674 1.70132 0.337198 1.68879 0.333207C1.64163 0.31795 1.58247 0.322397 1.53375 0.330165C1.49785 0.336598 1.46951 0.346712 1.45813 0.348959C1.34589 0.373048 1.30165 0.36518 1.20715 0.391771C1.03762 0.441985 0.872638 0.536807 0.73327 0.677278C0.509438 0.894024 0.405606 1.19426 0.405679 1.47776C0.405378 1.50299 0.405081 1.5279 0.404793 1.55247C0.396655 2.25492 0.380029 2.8 0.384346 3.46986C0.384599 3.51243 0.407848 3.4695 0.408364 3.5062C0.413968 3.98003 0.404884 4.44651 0.411599 4.92129C0.412108 4.96025 0.434148 4.90409 0.435707 4.96662C0.43906 5.09489 0.437862 5.25737 0.430825 5.38706C0.427434 5.45031 0.408522 5.36547 0.405495 5.42914C0.398405 5.57739 0.396835 5.73631 0.400368 5.88859C0.40192 5.9534 0.424461 5.85562 0.424721 5.93986C0.426957 6.51363 0.43084 7.07715 0.40165 7.65697C0.399645 7.69672 0.353833 7.7316 0.362618 7.81612C0.375332 7.82249 0.390288 7.82214 0.403878 7.82492C0.411198 8.6602 0.395316 9.48694 0.392861 10.3246C0.392763 10.3599 0.417036 10.2988 0.41697 10.3672C0.416611 10.7629 0.423335 11.1472 0.399208 11.552C0.396849 11.5922 0.354145 11.5716 0.360604 11.6899C0.361782 11.7108 0.367478 11.8891 0.376748 11.9351C0.378146 11.9414 0.398078 11.9089 0.398659 11.9663C0.399116 12.0167 0.399401 12.0675 0.399512 12.1186C0.398739 12.3707 0.464028 12.6128 0.600738 12.8109C0.626846 12.8485 0.58018 12.8225 0.599191 12.8497C0.626505 12.8881 0.657812 12.925 0.692169 12.9602C0.830437 13.1032 1.00778 13.1978 1.17918 13.2604C1.32506 13.3097 1.2629 13.3313 1.3433 13.3807C1.3549 13.3883 1.4571 13.3974 1.46196 13.4178C1.4744 13.4713 1.41786 13.5263 1.43685 13.5837C1.44109 13.5975 1.59704 13.5861 1.50438 13.6145C1.49803 13.6172 1.38324 13.6215 1.35343 13.6274C1.33273 13.6321 1.36684 13.6573 1.32453 13.6615C1.28185 13.6652 1.23914 13.6414 1.16888 13.6369C1.09838 13.6305 1.122 13.6656 0.983564 13.6242ZM0.930554 7.89756C0.950969 7.8019 0.876196 7.78778 0.894085 7.89125C0.895039 7.89626 0.929552 7.90249 0.930554 7.89756ZM6.48264 13.3864C6.60771 13.4194 6.69329 13.3709 6.60506 13.3454C6.51685 13.3199 6.44454 13.3764 6.48264 13.3864ZM5.18577 13.4104C5.33193 13.4365 5.35495 13.3304 5.19839 13.3519C5.18929 13.3531 5.17722 13.4089 5.18577 13.4104ZM0.952183 13.2768C0.952623 13.2787 1.01942 13.3097 1.02165 13.3089C1.06573 13.3025 0.934811 13.2424 0.952183 13.2768ZM3.89884 13.4367C3.94446 13.451 4.07585 13.4345 4.01915 13.4166C3.97351 13.4023 3.84201 13.4188 3.89884 13.4367ZM1.01036 2.90726C1.01147 2.90575 1.01247 2.85029 1.00618 2.8514C0.98589 2.85517 0.991615 2.93235 1.01036 2.90726ZM1.71155 13.4379C2.03471 13.4419 2.23065 13.5295 1.87873 13.5196C1.815 13.5178 2.01608 13.4916 1.93497 13.4838C1.78654 13.4694 1.68799 13.5244 1.53653 13.4949C1.50911 13.4895 1.69312 13.4375 1.71212 13.4378C1.71193 13.4378 1.71174 13.4378 1.71155 13.4379ZM1.02037 7.84247C1.02136 7.84056 1.02229 7.76378 1.02131 7.76194C0.997574 7.72036 0.995672 7.87503 1.02037 7.84247ZM2.54436 1.0006C2.5486 1.00271 2.72677 1.00468 2.73258 1.00274C2.82553 0.963916 2.46532 0.959817 2.54436 1.0006ZM1.63216 12.5773C1.71593 12.5534 1.81614 12.5506 1.88292 12.5806C1.79967 12.579 1.71587 12.5787 1.63216 12.5773ZM10.1879 9.7076C10.0699 9.59541 9.92738 9.44127 9.8158 9.31472L9.6507 9.15091L9.81785 8.97831C9.82687 8.97016 9.83575 8.96217 9.84447 8.95436C9.88507 8.91795 9.87494 8.94682 9.90339 8.92211C9.95903 8.87376 10.0029 8.82073 10.0586 8.7737C10.0771 8.75815 10.0707 8.79419 10.0898 8.77755C10.1942 8.68628 10.283 8.58995 10.3852 8.494C10.8702 8.03905 11.3381 7.58254 11.8192 7.11429L11.9198 7.35704C11.8937 7.35669 11.8677 7.35633 11.8416 7.35598C11.6112 7.35284 11.3311 7.33379 11.0931 7.34212C11.0653 7.34311 11.0818 7.36154 11.0766 7.36306C10.9937 7.3863 11.0212 7.34911 10.9671 7.34417C10.7522 7.32465 10.5133 7.32296 10.3066 7.33007C10.2186 7.33315 10.3068 7.36974 10.2182 7.3492C10.2121 7.34781 10.2344 7.32825 10.2103 7.32616C10.1555 7.32147 10.0518 7.32496 10.0094 7.32341C9.92764 7.32033 9.91412 7.32052 9.83683 7.3203C9.73117 7.31983 9.6055 7.3101 9.49214 7.31453C9.46794 7.31554 9.49997 7.33559 9.46138 7.33901C9.42276 7.34242 9.32057 7.34071 9.28613 7.33599C9.25167 7.33126 9.26634 7.31549 9.26024 7.31188C9.21008 7.28138 9.09188 7.32362 9.07668 7.32466C8.79939 7.34246 8.56161 7.3184 8.30132 7.31847C8.10373 7.31857 7.89245 7.32652 7.70443 7.32543C7.48044 7.32405 7.2906 7.31318 7.07299 7.31505C7.05002 7.31523 7.07694 7.33881 7.04889 7.33907C6.75089 7.34181 6.45496 7.33924 6.15824 7.32332C6.12848 7.3217 6.16683 7.301 6.13711 7.29814C5.95509 7.28113 5.66708 7.24025 5.55898 7.3304C5.43568 7.32688 5.286 7.32324 5.17569 7.30507C5.10457 7.29338 5.17365 7.27082 5.08628 7.28044C5.06658 7.28259 5.0922 7.30234 5.06266 7.30407C4.93825 7.3113 4.80233 7.30488 4.67925 7.31508C4.65422 7.3172 4.66106 7.3349 4.65396 7.33809C4.61347 7.35563 4.55469 7.34156 4.51437 7.32976L4.40133 7.33158L4.39945 7.21484C4.40502 7.19581 4.41009 7.18089 4.41108 7.17395C4.4342 7.00922 4.4251 6.88892 4.42567 6.73545C4.42581 6.69984 4.40203 6.74194 4.40132 6.70767C4.39925 6.60007 4.39919 6.49013 4.4018 6.38151L4.40002 6.27077L4.51437 6.26893C4.58517 6.27063 4.65541 6.27347 4.72407 6.27763C4.76278 6.28004 4.72718 6.30029 4.74568 6.30248C4.82724 6.31186 4.84533 6.27361 4.92355 6.28188C4.94004 6.28357 4.93075 6.30091 4.93376 6.30281C4.98084 6.3327 5.02175 6.29035 5.03386 6.28941C5.18704 6.27664 5.28495 6.32085 5.43293 6.31459C5.45063 6.3138 5.41071 6.29186 5.46048 6.29097C5.79201 6.28491 6.14265 6.29094 6.47081 6.30849C6.52183 6.31119 6.48541 6.32767 6.48862 6.3297C6.54095 6.36144 6.57481 6.31891 6.59145 6.31731C6.7227 6.30578 6.8453 6.34144 6.93448 6.29079C7.49033 6.30837 8.04363 6.27992 8.5949 6.3253C8.6019 6.32583 8.58934 6.34678 8.60333 6.34773C8.7717 6.35949 8.73936 6.32694 8.85077 6.28713C8.87884 6.27713 8.96421 6.3252 8.97177 6.32872C8.99929 6.34171 8.97074 6.37287 8.97996 6.37538C9.05622 6.39513 9.04379 6.29207 9.14667 6.29204C9.14988 6.29221 9.13637 6.31118 9.145 6.31307C9.17183 6.31899 9.19843 6.31145 9.22468 6.31798C9.28475 6.33309 9.30615 6.38316 9.39791 6.35402C9.40953 6.35024 9.39179 6.29178 9.48364 6.29454C9.52026 6.29569 9.68234 6.29469 9.72776 6.29848C9.77314 6.30226 9.74198 6.3211 9.74522 6.32192C9.86747 6.34683 9.82111 6.35715 9.88236 6.39403C9.9436 6.43077 9.92662 6.34314 9.95158 6.33336C9.97659 6.32361 10.0662 6.34416 10.0882 6.3513C10.1103 6.35845 10.0828 6.37042 10.1024 6.37447C10.2322 6.40089 10.1594 6.33097 10.2021 6.31706C10.3029 6.28413 10.3815 6.34912 10.4738 6.35548C10.4988 6.3572 10.4784 6.3424 10.5006 6.34102C10.5887 6.33573 10.6417 6.35601 10.7419 6.33742C10.7583 6.33439 10.8393 6.29532 10.8917 6.32399C10.8992 6.32813 10.8781 6.34432 10.9156 6.34795C10.9717 6.35339 11.0727 6.35693 11.133 6.35152C11.1775 6.34751 11.1265 6.32083 11.1825 6.32912C11.2074 6.33282 11.1613 6.34843 11.2081 6.35408C11.2546 6.35973 11.3735 6.35905 11.4188 6.35851C11.464 6.35795 11.4393 6.33771 11.4429 6.33635C11.465 6.32854 11.5517 6.31878 11.5594 6.3188C11.682 6.31802 11.8016 6.32092 11.9198 6.32488L11.8798 6.42155C11.706 6.23569 11.5403 6.05104 11.3532 5.8748C11.3317 5.85452 11.3305 5.88353 11.3271 5.88059C11.2493 5.81542 11.3458 5.83166 11.3093 5.76828C11.2858 5.80613 11.2619 5.7711 11.2082 5.7241C11.1823 5.70148 11.1836 5.72655 11.1802 5.72555C11.1262 5.70758 11.1244 5.65925 11.1227 5.64804C11.1164 5.60669 11.0698 5.60144 11.0652 5.57352C11.0607 5.54569 11.1152 5.56578 11.0667 5.5177C11.0422 5.51512 11.0494 5.57963 11.008 5.5476C10.8521 5.42681 10.6163 5.14606 10.5074 5.03248C10.3987 4.91912 10.3608 4.88529 10.3001 4.81663C10.1904 4.69261 10.212 4.75669 10.1297 4.69386C10.0472 4.63082 10.1349 4.61389 10.1357 4.59219C10.1366 4.57068 10.1138 4.57103 10.1073 4.55208C10.1007 4.53317 10.1359 4.55309 10.1083 4.52083C10.089 4.49833 10.0337 4.46145 9.99435 4.44153L9.99443 4.45597C10.0029 4.43875 10.0082 4.42459 10.0077 4.41781C10.0047 4.37049 9.94179 4.38202 10.0294 4.31086C10.0345 4.30679 10.0338 4.33535 10.0524 4.31905C10.2001 4.18917 10.3431 4.04402 10.4893 3.9131C10.5095 3.89512 10.5081 3.92747 10.52 3.91718C10.55 3.89124 10.5689 3.87253 10.5806 3.85776L10.5636 3.85787C10.6094 3.89528 10.6174 3.8631 10.6871 3.88934C10.6347 3.91327 10.6464 3.97159 10.7338 4.05943C10.7863 4.11224 10.7939 4.08652 10.8397 4.10884C10.8534 4.11552 10.8793 4.16422 10.8939 4.16314C10.9417 4.15981 10.9353 4.09604 11.0142 4.19778C11.0176 4.20229 10.991 4.20368 11.0038 4.21823C11.0868 4.3123 11.1242 4.29611 11.2231 4.38854C11.3006 4.46099 11.4177 4.61071 11.5004 4.69876C11.4558 4.73984 11.5462 4.81068 11.6085 4.81384C11.6627 4.87047 11.7243 4.92866 11.7737 4.98631C11.7908 5.00613 11.7662 5.00644 11.7672 5.0101C11.7818 5.06679 11.8347 5.06212 11.8478 5.07296C11.9884 5.19165 12.0722 5.31908 12.2173 5.4215C12.2224 5.42513 12.2593 5.40246 12.2706 5.45728C12.2713 5.46092 12.2169 5.43361 12.274 5.49286C12.3312 5.55212 12.425 5.67783 12.5196 5.74485C12.5425 5.76108 12.6161 5.78637 12.6369 5.84496C12.6396 5.85282 12.6253 5.85557 12.6282 5.86796C12.6377 5.90779 12.6813 5.89116 12.6847 5.94575C12.6882 6.00033 12.7294 6.07983 12.8285 6.14369C12.8316 6.14577 12.8748 6.1412 12.9 6.16721C12.9403 6.20875 12.9935 6.27181 13.0363 6.31437C13.0569 6.33475 13.0586 6.30684 13.0624 6.31012C13.2083 6.43935 13.2929 6.55045 13.4345 6.70353C13.4506 6.72094 13.4943 6.74961 13.5339 6.78515L13.5469 6.79776L13.5339 6.81119C13.512 6.83545 13.4877 6.85815 13.4617 6.87196C13.3868 6.91189 13.3731 6.78015 13.2584 6.92945C13.2121 6.98962 13.237 7.14929 13.0935 7.19714C12.9199 7.39451 12.7238 7.54161 12.5547 7.74457C12.5471 7.75368 12.5464 7.80589 12.5264 7.82521C12.4966 7.85384 12.4685 7.85783 12.4469 7.87788C12.3559 7.96162 12.2863 8.05187 12.2004 8.1345C12.1679 8.1659 12.1666 8.14227 12.1278 8.17971C12.089 8.21715 12.0799 8.25896 12.0204 8.3027C11.9753 8.33568 11.9028 8.34118 11.8471 8.38906C11.8782 8.42408 11.8419 8.45896 11.7874 8.5309C11.777 8.54474 11.8015 8.54321 11.7972 8.55035C11.7797 8.57967 11.7485 8.59179 11.7328 8.62045C11.7289 8.62741 11.7399 8.63895 11.7374 8.64527C11.7165 8.69945 11.6292 8.73595 11.6142 8.74216C11.5567 8.7661 11.5523 8.79982 11.5144 8.82445C11.4766 8.84903 11.515 8.79413 11.4746 8.82656C11.3907 8.89379 11.2955 8.99265 11.2183 9.06884C11.1876 9.09931 11.2235 9.09349 11.2195 9.0982C11.16 9.16531 11.08 9.21329 11.0749 9.27838C10.9534 9.24468 11.0442 9.32407 10.9382 9.399C10.9299 9.40487 10.8841 9.37725 10.9061 9.34451C10.9281 9.31177 10.981 9.28175 11.0106 9.2354C11.0176 9.22444 11.0347 9.13857 11.0396 9.12947C11.0784 9.05816 11.141 9.10519 11.1469 9.10529C11.2125 9.10477 11.2383 9.00481 11.2523 8.98568C11.3164 8.89815 11.3885 8.84146 11.4436 8.76969C11.4796 8.72282 11.4478 8.68285 11.4814 8.65139C11.5933 8.54678 11.6812 8.5591 11.7397 8.41366C11.7523 8.38253 11.6914 8.36501 11.8006 8.31751C11.8075 8.31453 11.8939 8.28458 11.9096 8.23311C11.9116 8.22664 11.9 8.21533 11.9046 8.2088C11.9357 8.16527 11.9697 8.1495 12.006 8.10448C12.0423 8.05947 12.0847 8.00409 12.135 7.96156C12.1652 7.93591 12.2224 7.92134 12.241 7.91317C12.2939 7.8904 12.3098 7.82522 12.3514 7.82C12.3933 7.81468 12.3749 7.88863 12.4487 7.83852C12.4212 7.80651 12.396 7.77073 12.3698 7.73715C12.5066 7.60248 12.6497 7.47855 12.7846 7.34106C12.8013 7.32398 12.768 7.32527 12.7855 7.30655C12.8593 7.22766 12.9374 7.17235 13.0121 7.08863C13.0698 7.02376 13.1201 6.93963 13.1799 6.87127C13.2531 6.86613 13.3366 6.75948 13.4088 6.69349C13.4102 6.69226 13.4115 6.69113 13.4127 6.69008V6.90627C13.3941 6.88405 13.403 6.87634 13.3895 6.85724C13.3355 6.78135 13.3359 6.84183 13.3133 6.82876C13.2168 6.77257 13.2783 6.69801 13.1865 6.60964C13.1817 6.60494 13.0871 6.58289 13.0768 6.57711C13.0111 6.54081 13.081 6.55605 13.0518 6.52143C12.9983 6.45822 12.9665 6.40904 12.8875 6.35125C12.8644 6.33444 12.7939 6.30919 12.7726 6.25297C12.7698 6.24558 12.7846 6.23641 12.7812 6.23161C12.7187 6.14566 12.6791 6.18136 12.6239 6.15169C12.5687 6.122 12.5292 6.03046 12.5233 6.00963C12.5078 5.95535 12.5583 6.02809 12.5621 6.02807C12.607 6.02764 12.5553 5.98373 12.5206 5.94529C12.5523 5.90308 12.499 5.85422 12.4846 5.90559C12.4831 5.91129 12.515 5.93627 12.5206 5.94529C12.4523 5.94946 12.3916 5.89796 12.3634 5.8021C12.3503 5.75721 12.3962 5.76615 12.3013 5.68475C12.2582 5.64779 12.2482 5.68868 12.206 5.6603C12.1095 5.59544 12.0284 5.4669 11.9415 5.38746C11.9099 5.35863 11.9254 5.40196 11.9034 5.38273C11.8449 5.33176 11.807 5.27304 11.7467 5.2234C11.7412 5.21893 11.7388 5.24567 11.7215 5.22875C11.5902 5.10083 11.4867 4.97863 11.3516 4.84304C11.2863 4.77753 11.1614 4.66866 11.0953 4.59931C10.9806 4.47919 10.8574 4.31358 10.7519 4.21844C10.6832 4.15632 10.683 4.18524 10.645 4.16714C10.5717 4.1323 10.5104 4.00209 10.5029 3.98386C10.5027 3.98329 10.5624 4.03614 10.5398 3.99863C10.538 3.96558 10.5036 3.98443 10.5029 3.98386C10.5013 3.98013 10.4895 3.9662 10.4733 3.94822L10.6721 3.94702C10.6331 3.98306 10.5751 4.04062 10.5618 4.05802C10.5514 4.07181 10.5721 4.07858 10.5664 4.0855C10.4304 4.24988 10.2851 4.40577 10.128 4.55373C10.125 4.55617 10.1134 4.53683 10.1067 4.54276C10.1025 4.54641 10.0985 4.55005 10.0945 4.55367L10.0933 4.34263C10.1706 4.42887 10.243 4.46585 10.3234 4.52472C10.4074 4.58631 10.4613 4.6478 10.4779 4.71741C10.5362 4.769 10.6033 4.85953 10.6415 4.91199C10.6798 4.96445 10.7161 4.94071 10.7207 4.94411C10.8642 5.04954 10.9189 5.13869 11.0454 5.27048C11.1054 5.33319 11.2316 5.4506 11.3013 5.51377C11.3565 5.56365 11.3811 5.60234 11.434 5.64624C11.4411 5.65218 11.4479 5.63219 11.4504 5.63367C11.5205 5.67167 11.4618 5.67843 11.4671 5.69543C11.4863 5.75711 11.4999 5.79341 11.5791 5.85259C11.5973 5.86625 11.6909 5.86562 11.7228 5.89195C11.7641 5.92626 11.7329 5.92888 11.7766 5.96438C11.7803 5.96744 11.79 5.95631 11.814 5.98121C11.8937 6.0637 11.9765 6.1535 12.0606 6.24068L12.3985 6.58564L11.9198 6.58067C11.8714 6.57982 11.8232 6.57943 11.7756 6.57985C11.7528 6.57999 11.782 6.60336 11.7491 6.60396C11.5948 6.60673 11.4255 6.60586 11.2751 6.59492C11.2381 6.59216 11.2613 6.5758 11.2533 6.57094C11.204 6.54154 11.134 6.58425 11.1224 6.58507C10.8471 6.60559 10.6363 6.56694 10.3556 6.58534C10.3404 6.58642 10.2228 6.63221 10.1703 6.59294C10.1667 6.59033 10.1148 6.55015 10.0689 6.57762C10.066 6.57934 10.0984 6.60002 10.0419 6.59792C9.98549 6.59581 9.89465 6.60962 9.81705 6.5869C9.79249 6.57974 9.73443 6.53966 9.66115 6.57161C9.65638 6.57384 9.54325 6.64608 9.50288 6.59624C9.49633 6.58803 9.50318 6.53529 9.41572 6.56233C9.39902 6.56757 9.42935 6.57934 9.38533 6.58669C9.31788 6.59801 9.22851 6.58388 9.1456 6.60738C9.13114 6.61154 9.06958 6.64733 9.02021 6.62016C9.01248 6.61591 9.02717 6.5983 9.00109 6.59633C8.8771 6.58688 8.74727 6.59865 8.62137 6.58647C8.57678 6.58219 8.59958 6.55373 8.5531 6.5461C8.50661 6.53847 8.41295 6.53114 8.36431 6.54414C8.31565 6.55716 8.3688 6.60253 8.29592 6.60616C7.97905 6.62192 7.66515 6.59531 7.34875 6.59142C7.30182 6.59083 7.34073 6.60707 7.27157 6.60738C7.0166 6.60858 6.5764 6.6238 6.35516 6.58931C6.17789 6.56168 6.40097 6.54065 6.26551 6.5294C6.20015 6.52404 6.12943 6.57679 6.11365 6.57845C5.9595 6.59531 5.85237 6.57195 5.71362 6.57912C5.68497 6.5806 5.71307 6.60198 5.68869 6.60301C5.6054 6.60672 5.51786 6.59718 5.43827 6.59892C5.40257 6.59975 5.40915 6.61608 5.37629 6.61482C5.29768 6.612 5.22816 6.60513 5.15152 6.58983C5.14454 6.58843 5.19164 6.56812 5.13348 6.56737C5.03934 6.5662 4.9225 6.55111 4.81419 6.5667C4.78206 6.57139 4.7808 6.6087 4.71172 6.58293C4.69723 6.57755 4.71572 6.53274 4.63526 6.57146C4.62683 6.57547 4.57118 6.59725 4.51437 6.60496L4.73783 6.38151C4.74249 6.41587 4.74201 6.45065 4.72932 6.47566C4.72046 6.49316 4.68379 6.53782 4.68955 6.57647C4.69047 6.58171 4.71052 6.56071 4.71247 6.59273C4.71901 6.70559 4.71688 6.82386 4.72315 6.9398C4.72487 6.97076 4.74561 6.92465 4.74751 6.97079C4.7506 7.04567 4.75003 7.13153 4.74771 7.21484L4.51437 6.98151C4.57224 6.98312 4.62887 6.98558 4.67973 6.98824C4.72548 6.99067 4.69386 7.00785 4.69718 7.00972C4.75071 7.04014 4.78236 6.99909 4.80013 6.99669C4.91062 6.98236 4.99476 7.00164 5.09661 6.99654C5.12472 6.99518 5.10479 6.97561 5.11039 6.97387C5.16842 6.95681 5.12519 6.99196 5.16192 6.99584C5.26482 7.00681 5.37952 7.00524 5.48358 7.00274C5.5218 7.00179 5.47884 6.97909 5.51314 6.9785C5.71616 6.97459 5.92722 6.97677 6.12535 6.98928C6.16266 6.99167 6.13919 7.00915 6.14696 7.01314C6.20055 7.04107 6.27909 7.00298 6.29716 6.99935C6.37933 6.98278 6.41125 6.99823 6.48382 6.99535C6.83831 6.98099 7.27601 6.99122 7.61063 6.99755C8.04667 7.00569 8.38503 7.02231 8.80085 7.01799C8.82728 7.01774 8.80063 6.99449 8.82341 6.99398C9.11754 6.98837 9.40711 6.99746 9.70183 6.99074C9.72601 6.99023 9.69115 6.96819 9.72997 6.96663C9.80959 6.96328 9.91045 6.96448 9.99095 6.97152C10.0302 6.97491 9.97755 6.99382 10.0171 6.99685C10.1091 7.00394 10.2077 7.00551 10.3023 7.00197C10.3425 7.00042 10.2818 6.97788 10.3341 6.97762C10.6903 6.97538 11.0401 6.9715 11.4 7.00069C11.4247 7.0027 11.4463 7.04851 11.4988 7.03972C11.5027 7.02701 11.5025 7.01205 11.5043 6.99846C11.6431 6.9965 11.7815 6.99621 11.9198 6.99687L12.4482 7.00236L12.0739 7.36897C11.8052 7.63514 11.5322 7.89545 11.2617 8.16341C11.2461 8.17884 11.29 8.16921 11.26 8.19918C11.086 8.37262 10.9221 8.54605 10.7274 8.70666C10.7081 8.72262 10.6869 8.68338 10.6395 8.7399C10.6312 8.7499 10.557 8.83217 10.5433 8.85895C10.5416 8.86269 10.5699 8.86251 10.5451 8.88813C10.4131 9.0241 10.2707 9.16147 10.1288 9.28926L10.1305 9.00757C10.1423 9.02095 10.1539 9.03432 10.1655 9.04768C10.1874 9.07297 10.1474 9.06236 10.1628 9.0805C10.2726 9.20907 10.4123 9.3291 10.5111 9.4579C10.5771 9.54416 10.523 9.54121 10.5372 9.60746C10.5392 9.61682 10.5853 9.66519 10.5726 9.68234C10.541 9.7256 10.477 9.74285 10.446 9.7917C10.4393 9.80218 10.5111 9.85708 10.4531 9.83965C10.4491 9.83837 10.3969 9.79874 10.3786 9.79426C10.3659 9.7911 10.3646 9.82037 10.3425 9.81028C10.3203 9.80018 10.3157 9.76982 10.282 9.75012C10.2483 9.73052 10.2424 9.75933 10.1879 9.7076ZM10.8139 5.14796C10.8415 5.20439 10.9005 5.15771 10.8425 5.12495C10.8396 5.12342 10.8125 5.14509 10.8139 5.14796ZM12.6888 7.51919C12.7671 7.48761 12.7703 7.41576 12.7136 7.43647C12.6569 7.4572 12.6651 7.52884 12.6888 7.51919ZM12.1366 8.10546C12.2192 8.05969 12.1543 7.97461 12.1007 8.05849C12.0976 8.06334 12.1318 8.10814 12.1366 8.10546ZM10.3441 9.42439C10.344 9.42567 10.3768 9.46071 10.3783 9.46085C10.4132 9.46256 10.3475 9.3925 10.3441 9.42439ZM11.5903 8.68888C11.6205 8.67899 11.6664 8.60962 11.6289 8.62189C11.5987 8.63178 11.5527 8.70121 11.5903 8.68888ZM10.4763 6.39198C10.4753 6.39087 10.4409 6.38987 10.4416 6.39616C10.4439 6.41645 10.4919 6.41073 10.4763 6.39198ZM10.6311 9.64982C10.7757 9.5108 10.9237 9.48673 10.7622 9.63421C10.733 9.66092 10.8028 9.55417 10.7616 9.58419C10.6862 9.63916 10.6819 9.72131 10.5946 9.76695C10.5787 9.77517 10.6227 9.65761 10.6312 9.64948C10.6312 9.6496 10.6311 9.64971 10.6311 9.64982ZM10.7746 5.23565C10.7747 5.23719 10.8078 5.27155 10.8093 5.27167C10.8443 5.27313 10.7778 5.2039 10.7746 5.23565ZM8.46737 6.34575C8.46474 6.34364 8.35414 6.34167 8.35053 6.34361C8.29284 6.38243 8.51644 6.38653 8.46737 6.34575ZM11.5006 4.70125C11.5543 4.72113 11.6003 4.76313 11.6084 4.81365C11.573 4.77598 11.5363 4.73903 11.5006 4.70125Z" + fill="black" fill-opacity="0.85" /> +</svg> + \ No newline at end of file diff --git a/src/assets/icons/user-dropdown/settings.svg b/src/assets/icons/user-dropdown/settings.svg new file mode 100644 index 0000000..7a145ec --- /dev/null +++ b/src/assets/icons/user-dropdown/settings.svg @@ -0,0 +1,9 @@ +<svg width="15" height="16" viewBox="0 0 15 16" fill="none" xmlns="http://www.w3.org/2000/svg"> + <path + d="M5.89469 15.0907L5.59344 12.6805C5.32747 12.6004 5.03983 12.4743 4.73052 12.3022C4.42122 12.1302 4.15816 11.946 3.94135 11.7495L1.71844 12.6949L0.164062 9.98655L2.08552 8.5378C2.06094 8.38725 2.04066 8.23211 2.02469 8.07239C2.00858 7.91266 2.00052 7.75746 2.00052 7.60676C2.00052 7.46676 2.00858 7.31961 2.02469 7.1653C2.04066 7.01086 2.06094 6.83697 2.08552 6.64364L0.164062 5.19489L1.71844 2.51864L3.92531 3.44801C4.1742 3.24079 4.44344 3.05384 4.73302 2.88718C5.02247 2.72051 5.30392 2.59176 5.5774 2.50093L5.89469 0.0907192H9.00385L9.30511 2.51697C9.62455 2.62919 9.90684 2.75794 10.152 2.90322C10.3971 3.0485 10.6495 3.23009 10.9093 3.44801L13.1801 2.51864L14.7345 5.19489L12.7489 6.69176C12.7948 6.86371 12.8205 7.02155 12.8259 7.1653C12.8312 7.30891 12.8339 7.45072 12.8339 7.59072C12.8339 7.72003 12.8285 7.85648 12.8178 8.00009C12.8071 8.14384 12.7825 8.31773 12.7441 8.52176L14.6976 9.98655L13.1432 12.6949L10.9093 11.7334C10.6495 11.9513 10.3883 12.1383 10.1255 12.2943C9.86274 12.4502 9.58927 12.5736 9.30511 12.6645L9.00385 15.0907H5.89469ZM6.61594 14.2574H8.24573L8.55344 12.0009C8.9733 11.8898 9.35122 11.7373 9.68719 11.5434C10.0233 11.3495 10.3655 11.0838 10.7136 10.7461L12.7922 11.6324L13.6207 10.2157L11.797 8.84551C11.8664 8.60829 11.9124 8.39009 11.9349 8.19093C11.9573 7.99162 11.9684 7.79155 11.9684 7.59072C11.9684 7.37919 11.9573 7.17912 11.9349 6.99051C11.9124 6.80204 11.8664 6.59454 11.797 6.36801L13.6528 4.96572L12.8243 3.54905L10.6976 4.44009C10.4455 4.16343 10.1141 3.90405 9.70323 3.66197C9.29253 3.42002 8.90392 3.25954 8.5374 3.18051L8.2826 0.924053H6.62073L6.36115 3.16447C5.94128 3.25419 5.55531 3.39871 5.20323 3.59801C4.85128 3.79718 4.50115 4.07093 4.15281 4.41926L2.07427 3.54905L1.24573 4.96572L3.05344 6.31509C2.98399 6.50204 2.93538 6.70503 2.9076 6.92405C2.87983 7.14308 2.86594 7.37065 2.86594 7.60676C2.86594 7.81829 2.87983 8.02822 2.9076 8.23655C2.93538 8.44489 2.97865 8.64787 3.0374 8.84551L1.24573 10.2157L2.07427 11.6324L4.13677 10.7574C4.46372 11.0875 4.80316 11.3522 5.1551 11.5516C5.50719 11.7507 5.90385 11.9059 6.3451 12.017L6.61594 14.2574ZM7.42677 9.67405C8.00802 9.67405 8.50059 9.47211 8.90448 9.06822C9.30823 8.66447 9.5101 8.17197 9.5101 7.59072C9.5101 7.00947 9.30823 6.51697 8.90448 6.11322C8.50059 5.70933 8.00802 5.50739 7.42677 5.50739C6.84247 5.50739 6.34913 5.70933 5.94677 6.11322C5.54455 6.51697 5.34344 7.00947 5.34344 7.59072C5.34344 8.17197 5.54455 8.66447 5.94677 9.06822C6.34913 9.47211 6.84247 9.67405 7.42677 9.67405Z" + fill="black" fill-opacity="0.85" /> + <path + d="M5.57927 14.5624C5.5317 14.2343 5.48473 13.8024 5.45327 13.4736C5.44338 13.3705 5.46302 13.4209 5.45679 13.3497C5.44457 13.2104 5.42198 13.0821 5.41095 12.9443C5.40736 12.8987 5.43525 12.9526 5.43101 12.9047C5.42494 12.8368 5.418 12.7698 5.41057 12.7034L5.54027 12.857C5.3475 12.7961 5.16434 12.7245 4.98077 12.6343C4.86636 12.5779 4.75483 12.5178 4.64556 12.4549C4.35756 12.289 4.08053 12.0992 3.83228 11.8698L4.00492 11.8989C3.26426 12.2044 2.52549 12.5127 1.77418 12.8259L1.65937 12.8759L1.59491 12.7658C1.56553 12.7137 1.53612 12.6616 1.50666 12.6094C1.29145 12.2281 1.04304 11.757 0.810708 11.369C0.78357 11.3237 0.783256 11.3601 0.77694 11.3522C0.678359 11.2271 0.736693 11.254 0.689778 11.1624C0.503488 10.7986 0.278986 10.404 0.0772515 10.0668C0.0721544 10.0583 0.0675413 10.0508 0.0633601 10.0443L0.012122 9.95679L0.0941609 9.89384C0.187813 9.81529 0.058112 9.87397 0.19615 9.79409C0.206318 9.78816 0.184234 9.82932 0.222092 9.80338C0.307921 9.74455 0.463294 9.62302 0.528557 9.57575C0.654394 9.48474 0.674787 9.46912 0.792187 9.38088C0.95278 9.26039 1.1493 9.12439 1.31863 8.99117C1.35474 8.96269 1.29406 8.98332 1.35056 8.93645C1.40711 8.88954 1.56316 8.77401 1.61827 8.73838C1.6734 8.70274 1.66063 8.73211 1.67206 8.72802C1.76654 8.69498 1.92044 8.52604 1.94287 8.50781C1.96794 8.48755 1.99289 8.46757 2.01771 8.44787L1.97436 8.55595C1.94388 8.39422 1.92363 8.23767 1.90958 8.0839C1.89483 7.9237 1.88942 7.76561 1.89214 7.60676C1.89475 7.457 1.90571 7.30765 1.92154 7.15533C1.92156 7.15507 1.92159 7.15481 1.92162 7.15454C1.93936 6.98259 1.95872 6.80559 1.97929 6.63013L2.02105 6.72914C1.85354 6.60538 1.68746 6.48274 1.53333 6.36579C1.19431 6.10845 0.91282 5.8826 0.581541 5.63516C0.546593 5.60903 0.573226 5.65865 0.530512 5.62677C0.38261 5.51637 0.235381 5.40578 0.0888448 5.29465L0.000669792 5.22933L0.0560239 5.13214C0.247966 4.80377 0.442531 4.47807 0.642682 4.15483C0.672479 4.10674 0.653786 4.18016 0.684623 4.13274C0.873044 3.84221 1.18324 3.38952 1.20845 3.16661C1.32916 2.96579 1.47515 2.72167 1.59613 2.54955C1.65239 2.4695 1.64391 2.51214 1.66299 2.48643L1.69064 2.43788L1.74332 2.45954C1.75411 2.46558 1.77554 2.47441 1.81922 2.48989C1.85456 2.50245 1.81735 2.46535 1.86977 2.48555C2.09044 2.57063 2.32597 2.67679 2.54545 2.75815C2.59012 2.77465 2.58501 2.7533 2.59867 2.75559C2.71308 2.77576 2.8703 2.88827 2.90698 2.90709C3.18649 3.04988 3.40069 3.13022 3.66921 3.24391C3.73152 3.2703 3.66703 3.21735 3.72732 3.24196C3.80771 3.27486 3.8887 3.30841 3.96977 3.34244L3.85202 3.35998C4.05097 3.19377 4.26581 3.04327 4.48173 2.91709C4.5465 2.87953 4.4988 2.93309 4.53027 2.91612C4.60765 2.87458 4.64548 2.84143 4.68739 2.80789C4.72053 2.78149 4.75635 2.7549 4.81685 2.72628C4.84576 2.71263 4.83812 2.73645 4.84415 2.73536C4.93792 2.71893 4.98919 2.64649 5.0101 2.63525C5.20921 2.52785 5.37144 2.48733 5.55545 2.43487L5.50838 2.49184C5.51887 2.43364 5.52831 2.37257 5.5356 2.30573C5.5392 2.27228 5.50755 2.34462 5.51901 2.25076C5.59523 1.62539 5.68816 0.965621 5.78695 0.349684C5.80228 0.253916 5.80958 0.324681 5.81239 0.3189C5.85684 0.224459 5.82307 0.155118 5.82561 0.123569C5.82679 0.109688 5.8281 0.0958782 5.82954 0.0821425L5.83651 0.0254987L5.89469 0.0250068C6.1283 0.0187011 6.34492 0.0478298 6.50491 -5.36442e-07C7.34077 0.0139116 8.17359 -0.00100152 9.00385 0.0146631L9.0704 0.0141005L9.07933 0.0813478C9.1022 0.299062 9.12294 0.516861 9.14047 0.734889C9.14159 0.748171 9.11786 0.727067 9.12019 0.75355C9.14794 1.0725 9.17267 1.00751 9.23827 1.21269C9.25476 1.26437 9.22705 1.43128 9.22532 1.44596C9.21887 1.49946 9.18127 1.44947 9.18093 1.46716C9.17919 1.61339 9.27855 1.57726 9.30267 1.77125C9.30325 1.77734 9.28126 1.75419 9.28141 1.7707C9.28182 1.82201 9.29553 1.87124 9.29519 1.92154C9.29426 2.03669 9.24958 2.08321 9.29998 2.25265C9.30646 2.27409 9.36032 2.23344 9.37908 2.40698C9.3811 2.42574 9.38543 2.46189 9.39081 2.50633L9.33373 2.43549C9.44894 2.47553 9.61943 2.54369 9.67691 2.57191C9.75588 2.61007 9.69309 2.60351 9.69854 2.60673C9.90271 2.72542 9.81687 2.69893 9.90526 2.78285C9.99157 2.86816 10.0033 2.77625 10.0504 2.79027C10.0756 2.79792 10.1277 2.8307 10.1747 2.86496C10.2155 2.89461 10.2527 2.92507 10.2675 2.93831C10.2993 2.9668 10.2486 2.94893 10.2779 2.97229C10.47 3.12914 10.3927 2.99557 10.4687 3.0298C10.6475 3.11355 10.7287 3.25797 10.8605 3.37372C10.8962 3.40534 10.8755 3.36912 10.9092 3.39518C10.9184 3.40234 10.9272 3.4094 10.9358 3.41642L10.8937 3.40984C11.0298 3.35205 11.1281 3.32953 11.2855 3.24638C11.3132 3.23177 11.4409 3.13731 11.544 3.1261C11.5586 3.12458 11.5276 3.15476 11.595 3.13109C11.6957 3.09577 11.8747 3.02632 11.9787 2.97793C12.0554 2.94219 11.9556 2.95421 12.0573 2.92156C12.1025 2.90707 12.0272 2.95472 12.1116 2.92629C12.1956 2.89803 12.4045 2.81178 12.4839 2.7787C12.5632 2.74567 12.512 2.74473 12.5179 2.74084C12.5538 2.71771 12.7026 2.64626 12.7161 2.64077C12.8649 2.5793 13.0118 2.5205 13.1574 2.46318L13.2051 2.4432L13.2319 2.48854C13.5054 2.97441 13.758 3.44681 14.046 3.92524C14.075 3.97333 14.0746 3.93029 14.0792 3.93752C14.1835 4.09916 14.0583 3.99668 14.1093 4.12227C14.137 4.08374 14.17 4.15619 14.2421 4.27083C14.2769 4.32605 14.2735 4.28692 14.278 4.2912C14.3486 4.36203 14.354 4.43679 14.3569 4.45517C14.3676 4.52299 14.4279 4.56857 14.4355 4.61457C14.4432 4.66049 14.3718 4.58603 14.4372 4.69811C14.4689 4.72179 14.4556 4.61812 14.5107 4.70003C14.592 4.82072 14.6906 4.98823 14.7892 5.16309L14.8176 5.21094L14.7726 5.24544C14.52 5.43092 14.2498 5.61889 14.1031 5.72696C13.8629 5.90391 13.7876 5.96421 13.6454 6.06438C13.3886 6.24533 13.4986 6.20006 13.3512 6.32842C13.2033 6.45713 13.2347 6.34083 13.2027 6.34506C13.1711 6.34898 13.1568 6.38018 13.1242 6.39387C13.0916 6.40749 13.1442 6.35427 13.078 6.40008C13.0117 6.44593 12.853 6.60102 12.8402 6.63148C12.8165 6.68805 12.8918 6.67169 12.7902 6.7466L12.8152 6.67402C12.8197 6.69144 12.8244 6.71282 12.8291 6.73907C12.8313 6.75137 12.8029 6.71666 12.8122 6.76349C12.8375 6.89402 12.8558 7.02822 12.8581 7.16409C12.8602 7.30629 12.8604 7.44903 12.8573 7.59072C12.8549 7.69528 12.8488 7.79911 12.8391 7.90137C12.8342 7.95245 12.8154 7.90537 12.8122 7.935C12.8096 7.95877 12.8074 7.98006 12.8054 7.99917C12.7783 8.22673 12.8193 8.14856 12.8343 8.3107C12.7913 8.26937 12.7515 8.33626 12.7116 8.51564L12.7077 8.53553L12.7243 8.54817C12.741 8.56162 12.7591 8.5757 12.7787 8.59042C12.8918 8.67549 12.8864 8.64202 12.9696 8.68365C12.9946 8.69612 13.065 8.76914 13.0862 8.77116C13.1558 8.77809 13.1046 8.68907 13.2891 8.8476C13.2972 8.8546 13.2582 8.85012 13.2869 8.87315C13.4725 9.02213 13.518 9.0089 13.7265 9.15947C13.8899 9.2775 14.1628 9.511 14.3441 9.65167C14.3039 9.69728 14.4856 9.8162 14.581 9.8355C14.6286 9.87204 14.6781 9.90921 14.7276 9.94652L14.7629 9.97252L14.741 10.0115C14.6951 10.091 14.6488 10.1705 14.603 10.2434C14.5766 10.2854 14.5776 10.2484 14.5729 10.2529C14.4994 10.3211 14.5024 10.3975 14.4878 10.4262C14.3278 10.7361 14.1598 10.9669 14.0204 11.2703C14.0155 11.2811 14.0425 11.3186 13.9716 11.3804C13.9669 11.3843 14.0049 11.2796 13.9258 11.4145C13.8466 11.5494 13.6803 11.7939 13.5891 11.992C13.567 12.0399 13.5305 12.1722 13.4542 12.2515C13.444 12.262 13.4413 12.2425 13.4252 12.257C13.3736 12.3038 13.3925 12.3564 13.3223 12.406C13.2656 12.4461 13.1866 12.5369 13.1123 12.6771L13.1573 12.6621C13.1223 12.6484 13.0845 12.6353 13.0441 12.6231C13.0374 12.621 12.9764 12.6315 12.9134 12.6038C12.8127 12.5595 12.6721 12.4914 12.5666 12.4462C12.5161 12.4245 12.5401 12.4577 12.5312 12.4543C12.187 12.319 11.9528 12.1978 11.5923 12.0338C11.5263 12.0037 11.3234 11.9475 11.2032 11.8712C11.0746 11.7896 11.2484 11.7573 10.9466 11.6468L10.8941 11.6237L10.8486 11.6612C10.8426 11.6668 10.8365 11.6727 10.8301 11.6788C10.729 11.7753 10.6666 11.9938 10.4154 12.0849C10.3182 12.1566 10.2189 12.2215 10.1177 12.2811C9.85813 12.4337 9.58604 12.5461 9.2988 12.6448L9.28633 12.6486L9.28456 12.6619C9.27779 12.7276 9.27173 12.7939 9.26664 12.861C9.26492 12.8835 9.2923 12.9585 9.2853 13.0109C9.27483 13.0887 9.25263 13.1293 9.24462 13.1848C9.2106 13.4171 9.19858 13.6321 9.16844 13.8564C9.15704 13.9416 9.14327 13.9096 9.12967 14.0112C9.11609 14.1128 9.13067 14.1834 9.10246 14.3198C9.08107 14.4228 9.02114 14.5209 8.99852 14.6584C9.04424 14.6694 9.03151 14.7641 9.02282 14.9342C9.02117 14.9669 9.04163 14.9341 9.04168 14.9497C9.04214 15.0003 9.02916 15.0462 9.02475 15.0933L9.02264 15.1116L9.00385 15.1118C8.99184 15.1121 8.97981 15.1131 8.96772 15.1149C8.9532 15.1171 8.95251 15.1331 8.94064 15.1358C8.83971 15.1593 8.67342 15.1234 8.64486 15.1171C8.5354 15.0934 8.48425 15.1141 8.40029 15.1048C8.31647 15.0954 8.4418 15.0837 8.34389 15.0781C8.14093 15.0663 7.88015 15.0689 7.67403 15.0682C7.59178 15.068 7.64789 15.0893 7.63612 15.0898C7.46606 15.0952 7.29408 15.0725 7.19978 15.1149C7.08187 15.0052 7.09723 15.1256 6.85413 15.1036C6.83498 15.1018 6.81062 15.05 6.88414 15.0423C6.95765 15.0347 7.06913 15.0509 7.17113 15.0391C7.19528 15.0363 7.33364 14.9877 7.35252 14.9847C7.5004 14.9617 7.52135 15.0392 7.52918 15.0435C7.6179 15.0895 7.78698 15.0371 7.83151 15.0335C8.0352 15.0169 8.20826 15.0278 8.37863 15.0159C8.49006 15.0083 8.50096 14.9575 8.58846 14.9591C8.77201 14.9623 8.88016 14.9917 9.00385 14.9975L8.91138 15.0792C8.92367 15.0079 8.92861 14.9303 8.91858 14.8271C8.91282 14.7672 8.85053 14.8183 8.9198 14.6147C8.92416 14.6019 8.98305 14.4517 8.96912 14.3589C8.96735 14.3473 8.95126 14.3456 8.95175 14.3306C8.95538 14.23 8.97641 14.1653 8.98375 14.0561C8.99108 13.9469 8.99813 13.8155 9.01894 13.6924C9.03146 13.6182 9.07325 13.5262 9.08501 13.4914C9.11862 13.3932 9.09746 13.2808 9.13076 13.2216C9.16425 13.1618 9.18795 13.2897 9.22505 13.1266C9.1841 13.1153 9.14303 13.096 9.1023 13.0809C9.12098 12.9354 9.14148 12.791 9.16214 12.6467L9.17442 12.5542L9.26124 12.5272C9.46091 12.4677 9.65616 12.3916 9.84363 12.294C9.88241 12.2736 9.83234 12.2743 9.87333 12.2518C9.93215 12.2193 9.98869 12.1887 10.0444 12.1576C10.1527 12.097 10.2587 12.0355 10.3684 11.9541C10.4973 11.8583 10.6227 11.7327 10.7478 11.6215C10.7633 11.6175 10.7803 11.6106 10.7984 11.6012L10.8815 11.5327L10.9775 11.5749C11.0798 11.6484 11.278 11.7212 11.4229 11.7877C11.482 11.8148 11.473 11.8249 11.5138 11.847C11.668 11.9302 11.6097 11.8589 11.6562 11.8716C11.856 11.9265 11.8341 12.0219 12.0573 12.1153C12.0692 12.1203 12.2334 12.1352 12.2544 12.1408C12.3886 12.1758 12.2682 12.1661 12.3456 12.2035C12.4868 12.2718 12.5819 12.3261 12.7568 12.385C12.8078 12.4021 12.9385 12.4236 13.0244 12.4875C13.0357 12.4959 13.022 12.5084 13.0317 12.5137C13.1079 12.5543 13.1561 12.5686 13.1952 12.5741L13.0292 12.6294C13.0423 12.579 13.0383 12.5425 13.0617 12.4812C13.1028 12.3733 13.2224 12.2388 13.2494 12.213C13.3199 12.1453 13.2238 12.2812 13.2236 12.2869C13.2217 12.3546 13.2808 12.2404 13.332 12.1567C13.3844 12.1703 13.45 12.0497 13.3849 12.0697C13.3777 12.0721 13.3439 12.1407 13.332 12.1567C13.3305 12.0564 13.3999 11.9223 13.5243 11.8016C13.5826 11.7452 13.5686 11.8221 13.6783 11.6119C13.728 11.5165 13.6762 11.5346 13.7149 11.4474C13.8034 11.2483 13.9727 11.0207 14.0794 10.8242C14.1181 10.7529 14.0617 10.8116 14.0876 10.7626C14.1562 10.6323 14.2335 10.5271 14.3005 10.3952C14.3066 10.3833 14.2724 10.4014 14.2951 10.3614C14.3848 10.2025 14.4721 10.0565 14.561 9.90813L14.6031 10.1126C14.4791 10.016 14.3533 9.91785 14.2149 9.81382C14.0744 9.70828 13.8163 9.52891 13.672 9.41788C13.4219 9.22555 13.1294 8.96876 12.9094 8.8129C12.7659 8.71118 12.7844 8.7508 12.7157 8.71685C12.6901 8.70421 12.6629 8.68679 12.6354 8.66672L12.5445 8.59736L12.566 8.48819C12.5906 8.35156 12.647 8.19111 12.656 8.1649C12.6569 8.16381 12.6406 8.31003 12.6624 8.23386C12.6907 8.19162 12.6559 8.16649 12.656 8.1649C12.6599 8.15414 12.673 8.073 12.6804 7.98987C12.6878 7.90782 12.692 7.82277 12.6912 7.79413C12.6903 7.76228 12.6701 7.77932 12.6699 7.76279C12.6694 7.70525 12.6682 7.64787 12.6662 7.59072C12.6614 7.45124 12.6554 7.3117 12.6487 7.17182C12.6414 7.03034 12.615 6.88413 12.5782 6.73738L12.5481 6.62069L12.6425 6.55074C12.6787 6.52431 12.715 6.49799 12.7515 6.47176C12.7575 6.46773 12.7619 6.49171 12.7759 6.48202C12.9711 6.34697 13.0764 6.23419 13.2231 6.10375C13.3697 5.97332 13.4968 5.88417 13.6118 5.8444C13.7269 5.75177 13.9059 5.63753 14.0093 5.5722C14.1127 5.50688 14.1007 5.4627 14.1087 5.45557C14.302 5.28389 14.4467 5.18694 14.6308 5.05731L14.5855 5.28142C14.5537 5.2224 14.5195 5.15958 14.4803 5.09031C14.399 4.94672 14.2294 4.66688 14.1356 4.51477C14.0615 4.39459 14.0274 4.31605 13.9566 4.20679C13.947 4.192 13.9396 4.21688 13.9363 4.2126C13.8438 4.09845 13.9188 4.13554 13.9109 4.10547C13.8823 3.99642 13.8625 3.93034 13.7569 3.7767C13.7325 3.74125 13.6122 3.66671 13.5696 3.60109C13.5143 3.5157 13.5542 3.53687 13.4957 3.44777C13.4908 3.44013 13.479 3.44917 13.4466 3.39206C13.3061 3.14507 13.1581 2.87492 13.0087 2.61817L13.2552 2.70204C13.2351 2.71026 13.2151 2.7185 13.1952 2.72675C13.1553 2.74327 13.2154 2.74389 13.1578 2.76812C12.8874 2.88179 12.5895 3.00278 12.3208 3.1009C12.2547 3.12499 12.2893 3.09314 12.2733 3.09443C12.1754 3.10273 12.0686 3.19262 12.0486 3.20168C11.6684 3.37496 11.3463 3.48377 10.9845 3.63191L10.8715 3.67705L10.7815 3.60024C10.7076 3.53825 10.6293 3.47679 10.5442 3.41633C10.5211 3.39904 10.3218 3.30882 10.2642 3.22433C10.2605 3.21861 10.2032 3.13187 10.1173 3.1114C10.112 3.11026 10.1511 3.15824 10.0649 3.1033C10.0576 3.0987 10.0499 3.09399 10.0418 3.0892C9.95451 3.03726 9.82016 2.97663 9.71215 2.90351C9.67517 2.87826 9.59421 2.79686 9.45702 2.77671C9.44978 2.77548 9.31214 2.77048 9.22829 2.73563L9.09137 2.68623L9.07511 2.54553C9.07348 2.5204 9.07578 2.49771 9.08419 2.48042C9.0908 2.46707 9.14474 2.47349 9.09743 2.3119C9.08832 2.28104 9.08374 2.33969 9.06615 2.25759C9.03912 2.1318 9.03221 1.96154 8.98948 1.80809C8.98197 1.78133 8.93203 1.66968 8.94744 1.57322C8.94985 1.55812 8.97077 1.58365 8.96662 1.53424C8.94697 1.29927 8.90488 1.0559 8.88749 0.816999C8.8813 0.732387 8.91489 0.771868 8.91158 0.683282C8.90826 0.594673 8.89361 0.417165 8.86931 0.327043C8.84501 0.236901 8.81243 0.342714 8.79176 0.205719C8.78738 0.176694 8.78311 0.14767 8.77892 0.118647L9.00385 0.317378C8.4316 0.328594 7.864 0.30433 7.29209 0.300627C7.20292 0.300046 7.27684 0.31628 7.14544 0.316588C6.81183 0.317419 6.31132 0.324896 5.89469 0.318208L6.12023 0.120411C6.09264 0.306809 6.06442 0.475822 6.03668 0.604209C5.96533 0.934554 5.9998 0.511551 5.95506 0.765274C5.93353 0.887718 5.96828 1.02783 5.96602 1.05777C5.94451 1.35037 5.89478 1.54915 5.86748 1.81146C5.86184 1.86563 5.89001 1.81548 5.88498 1.86156C5.868 2.01895 5.83683 2.18261 5.81882 2.33278C5.81079 2.40015 5.82861 2.38989 5.81922 2.45162C5.81514 2.47865 5.811 2.50509 5.80675 2.53112L5.78635 2.67655L5.65031 2.72047C5.54441 2.7519 5.4451 2.78265 5.33605 2.81589C5.3238 2.81968 5.39445 2.76704 5.29704 2.80837C5.1543 2.86964 4.97775 2.94471 4.82365 3.04456C4.80787 3.05474 4.79238 3.06512 4.7772 3.07573C4.72866 3.11012 4.74579 3.14231 4.62492 3.18773C4.59985 3.19764 4.60327 3.14071 4.501 3.25472C4.48265 3.27344 4.31101 3.4568 4.19637 3.50563C4.16759 3.51741 4.08869 3.53783 4.03702 3.58218L3.95371 3.65037L3.85755 3.60891C3.85347 3.60726 3.84935 3.60573 3.84522 3.60436C3.83568 3.60134 3.86467 3.6353 3.80783 3.61349C3.60767 3.53629 3.40137 3.44709 3.1959 3.36737C3.14102 3.34612 3.21372 3.39925 3.13218 3.36696C2.90793 3.27821 2.63255 3.15651 2.41777 3.05902C2.3386 3.02304 2.40064 3.03052 2.39554 3.02635C2.3136 2.95884 2.24225 2.97333 2.21021 2.96244C2.01115 2.89416 1.87128 2.81433 1.69094 2.74393C1.64119 2.72445 1.6685 2.75718 1.65802 2.75466C1.64288 2.75088 1.6316 2.74761 1.62323 2.7447L1.93055 2.64183C1.9063 2.69056 1.90971 2.632 1.87668 2.68223C1.769 2.84579 1.66089 3.03505 1.56375 3.20729C1.52809 3.27057 1.58872 3.21138 1.55649 3.26804C1.36612 3.60359 1.16283 3.94928 0.962928 4.26855C0.925253 4.32865 0.932541 4.2813 0.921669 4.29208C0.846378 4.3661 0.804366 4.51428 0.790255 4.5458C0.726164 4.68914 0.682341 4.73382 0.615583 4.8545C0.535332 4.99972 0.448975 5.15248 0.359536 5.30842L0.300153 5.01439C0.741296 5.34325 1.20861 5.70435 1.5884 5.99668C1.80948 6.1668 2.01319 6.32503 2.21033 6.4781L2.30711 6.55237L2.29118 6.66979C2.26642 6.84467 2.24366 7.01533 2.22402 7.18592C2.20782 7.32555 2.19801 7.46529 2.19726 7.60676C2.19656 7.75119 2.20413 7.89924 2.22033 8.05265C2.22174 8.06611 2.22318 8.07942 2.22466 8.09278C2.23011 8.14144 2.24794 8.08991 2.25301 8.13171C2.26806 8.25607 2.28528 8.37947 2.30538 8.5019L2.32623 8.63672L2.21964 8.71568C1.87833 8.97346 1.53637 9.22604 1.19542 9.48958C1.15904 9.51766 1.2252 9.49537 1.16724 9.54103C1.04846 9.63478 0.89471 9.74921 0.768334 9.83568C0.706719 9.87789 0.775241 9.80254 0.713452 9.84534C0.574421 9.94158 0.429118 10.049 0.292011 10.1562L0.348389 9.88076C0.351515 9.88599 0.354641 9.89121 0.357767 9.89642C0.397161 9.96194 0.359306 9.8507 0.408987 9.93674C0.747807 10.5226 1.08203 11.0971 1.39714 11.7048C1.41874 11.7465 1.39949 11.805 1.45673 11.8871C1.47149 11.8873 1.48426 11.8795 1.49768 11.8755C1.63589 12.1123 1.77216 12.3492 1.90741 12.5864L1.63316 12.4944C2.28578 12.219 2.93927 11.9506 3.59618 11.6731C3.63455 11.6569 3.55881 11.6627 3.63305 11.6312C3.70621 11.6002 3.77893 11.5691 3.85145 11.5381L3.98899 11.4809L4.09563 11.5793C4.31733 11.7789 4.56875 11.9473 4.8374 12.1099C4.89078 12.1422 4.9445 12.1741 4.99876 12.2057C5.03835 12.2283 4.99773 12.257 5.12208 12.3098C5.14375 12.32 5.33083 12.3971 5.38259 12.4062C5.38959 12.4074 5.3632 12.3757 5.42308 12.3985C5.49925 12.4273 5.57663 12.4539 5.65462 12.4775L5.78811 12.5189L5.80386 12.6542C5.8424 12.9644 5.87713 13.2815 5.90577 13.5873C5.91165 13.6505 5.88221 13.5861 5.88622 13.6312C5.91478 13.9506 5.97403 14.2945 5.99289 14.6008C6.00544 14.8058 5.95962 14.735 5.93729 14.8476C5.93414 14.8635 5.94908 14.9896 5.92905 14.9987C5.87871 15.022 5.81367 14.9681 5.76091 15.0001C5.74953 15.0069 5.78358 15.174 5.74201 15.0778C5.73919 15.071 5.71425 14.9499 5.70062 14.921C5.69117 14.9009 5.67469 14.9414 5.66061 14.8997C5.64653 14.858 5.65843 14.8087 5.63931 14.7391C5.62005 14.6695 5.59983 14.7037 5.57927 14.5624ZM14.4745 5.2778C14.5769 5.22617 14.5452 5.15644 14.4585 5.24419C14.4544 5.24851 14.4693 5.2805 14.4745 5.2778ZM9.54229 12.4957C9.6896 12.4717 9.75861 12.3839 9.65594 12.4031C9.55408 12.4206 9.4979 12.5024 9.54229 12.4957ZM9.09755 13.8947C9.1446 13.7268 9.04272 13.6868 9.04123 13.8727C9.04111 13.8835 9.09481 13.9045 9.09755 13.8947ZM5.86443 14.3476C5.86364 14.3493 5.874 14.4399 5.87524 14.442C5.90483 14.4872 5.88411 14.306 5.86443 14.3476ZM8.68434 15.0625C8.73816 15.0769 8.89313 15.0603 8.82626 15.0425C8.77242 15.0281 8.61731 15.0447 8.68434 15.0625ZM10.841 3.40495C10.8404 3.40293 10.7903 3.36093 10.7873 3.36672C10.7782 3.38521 10.8519 3.43809 10.841 3.40495ZM6.10441 15.0638C6.48558 15.0678 6.71669 15.1553 6.3016 15.1455C6.22643 15.1437 6.4636 15.1175 6.36793 15.1096C6.19286 15.0952 6.07662 15.1502 5.89797 15.1208C5.86563 15.1154 6.08266 15.0633 6.10508 15.0636C6.10486 15.0637 6.10463 15.0637 6.10441 15.0638ZM14.5805 5.3104C14.5829 5.30983 14.6557 5.25607 14.6569 5.25398C14.6818 5.2055 14.5349 5.3138 14.5805 5.3104ZM9.09032 0.496942C9.0918 0.491721 9.06786 0.282924 9.06509 0.276363C9.01306 0.172349 9.06134 0.594496 9.09032 0.496942ZM14.346 9.65513C14.4394 9.6953 14.5357 9.76396 14.5807 9.83521C14.5031 9.77502 14.4241 9.71553 14.346 9.65513ZM7.11497 14.0099C7.40855 14.0034 7.7934 14.0104 8.08587 14.0199C8.17753 14.0229 8.13112 14.0362 8.1944 14.0388C8.21166 14.0395 8.22875 14.04 8.24573 14.0403L8.03067 14.2281C8.04685 14.1246 8.05633 14.0249 8.07578 13.9213C8.08334 13.8815 8.09732 13.9343 8.10476 13.8924C8.14542 13.6629 8.16989 13.4439 8.20619 13.2108C8.27035 12.7987 8.33237 12.3889 8.3933 11.9791L8.40665 11.8737L8.51209 11.8447C8.89619 11.7481 9.26869 11.6085 9.61254 11.4141C9.89224 11.2559 10.1552 11.0593 10.4043 10.8412C10.4735 10.7806 10.5455 10.716 10.6185 10.648L10.6822 10.5851L10.7673 10.6204C11.0571 10.7508 11.3701 10.8945 11.6518 11.0078C11.6952 11.0252 11.6768 10.9973 11.6856 10.9994C11.8231 11.0328 11.7658 11.0488 11.8477 11.0891C12.1634 11.2443 12.5209 11.3991 12.8372 11.5269L12.6932 11.5745C12.6981 11.5658 12.703 11.5571 12.7078 11.5484C12.7799 11.4191 12.6734 11.5287 12.7664 11.4104C12.7728 11.4022 12.7707 11.4445 12.793 11.4105C12.8435 11.3334 12.9287 11.1808 12.9661 11.12C13.0382 11.0028 13.0495 10.9831 13.1154 10.8709C13.2056 10.7176 13.3208 10.5399 13.4133 10.373C13.433 10.3373 13.3884 10.3737 13.4183 10.3159C13.4365 10.2806 13.4767 10.2116 13.5127 10.1525L13.5455 10.3158C13.5109 10.2887 13.4799 10.2637 13.463 10.2487C13.4195 10.2101 13.4487 10.2124 13.4426 10.2033C13.3935 10.1282 13.209 10.0425 13.1879 10.0279C12.8041 9.76181 12.4986 9.50216 12.1483 9.23905C12.013 9.13747 11.8717 9.03393 11.7323 8.93158L11.6731 8.88799L11.6937 8.81527C11.7379 8.65766 11.7739 8.50079 11.8 8.35257C11.8105 8.29333 11.8193 8.23543 11.8264 8.17867C11.8511 7.97728 11.8655 7.78735 11.8675 7.59072C11.8683 7.50117 11.8667 7.41039 11.8615 7.31679C11.8594 7.27897 11.8382 7.32445 11.8354 7.27846C11.8296 7.18687 11.8214 7.09575 11.8106 7.00525C11.7862 6.80394 11.7388 6.60271 11.6809 6.4036L11.6556 6.32371L11.7238 6.27113C11.8793 6.15692 12.0357 6.04398 12.1934 5.93251C12.2343 5.9036 12.1953 5.95904 12.237 5.93115C12.4917 5.76002 12.9031 5.50039 12.9939 5.31877C13.1616 5.19646 13.3648 5.04747 13.5239 4.95005C13.6078 4.89863 13.5701 4.94827 13.6147 4.91523L13.5982 4.99767C13.5921 4.98697 13.5824 4.97175 13.5674 4.94957C13.5488 4.92203 13.5535 4.96923 13.5269 4.92716C13.4149 4.75006 13.305 4.54933 13.1916 4.37567C13.1685 4.34036 13.159 4.35923 13.1502 4.35054C13.0773 4.27696 13.0298 4.11123 13.0141 4.07823C12.9241 3.89002 12.8397 3.74724 12.7483 3.59346L12.8583 3.63019C12.8034 3.65363 12.7472 3.67769 12.6875 3.70253C12.6322 3.72556 12.7067 3.72011 12.6538 3.74306C12.3792 3.86181 12.0926 3.97968 11.8184 4.08314C11.7573 4.1061 11.8048 4.06427 11.7752 4.07428C11.645 4.11868 11.6317 4.16572 11.507 4.20898C11.4808 4.21814 11.4885 4.19611 11.4831 4.19631C11.3985 4.19936 11.3513 4.26503 11.3329 4.27377C11.1068 4.38195 10.9408 4.40669 10.7233 4.50142L10.6808 4.51971L10.6485 4.48488C10.6437 4.47983 10.6389 4.47476 10.6339 4.46968C10.6135 4.44896 10.6422 4.51153 10.5858 4.45289C10.32 4.17991 9.99519 3.94199 9.65977 3.73572C9.51776 3.64838 9.37387 3.56726 9.22936 3.49479C9.15365 3.4573 9.21525 3.46726 9.21131 3.46321C9.14481 3.39827 9.07545 3.41614 9.04963 3.4074C8.85191 3.33908 8.67055 3.25209 8.51927 3.26459L8.45954 3.25231L8.45192 3.19016C8.44989 3.18532 8.44777 3.18055 8.44557 3.17585C8.37499 2.42443 8.27498 1.67914 8.20796 0.932482L8.2826 0.999175C8.10283 0.995054 7.92318 0.989037 7.74367 0.980257C7.73187 0.979731 7.75301 0.958785 7.72948 0.957827C7.44607 0.946066 7.5005 0.97862 7.31298 1.01843C7.26574 1.02843 7.12204 0.980363 7.10932 0.976839C7.063 0.963855 7.11105 0.932692 7.09553 0.930178C6.96717 0.910432 6.98809 1.01349 6.81493 1.01352C6.80952 1.01335 6.83226 0.994381 6.81773 0.992495C6.77258 0.986573 6.72781 0.994111 6.68363 0.987581C6.65986 0.98403 6.63969 0.978547 6.62073 0.972615L6.66897 0.929642C6.64269 0.988708 6.61317 1.03446 6.62171 1.15439C6.62322 1.17424 6.68473 1.15132 6.66419 1.30457C6.65595 1.36566 6.62555 1.63678 6.61299 1.7123C6.60044 1.78772 6.58776 1.73347 6.58632 1.73878C6.5379 1.94031 6.53662 1.86162 6.48812 1.95978C6.43976 2.05795 6.5301 2.03964 6.53498 2.08251C6.53982 2.12545 6.50204 2.27294 6.49068 2.30895C6.47931 2.34493 6.47274 2.29765 6.46493 2.32991C6.41353 2.54389 6.4971 2.43017 6.50263 2.50328C6.51581 2.67566 6.43604 2.79948 6.41183 2.95309C6.40529 2.99465 6.42394 2.96228 6.421 2.99962C6.41589 3.06367 6.40728 3.11616 6.3991 3.16887L6.39624 3.19577L6.36913 3.20183C6.30094 3.21372 6.23248 3.22752 6.14376 3.26228C6.11765 3.27207 6.0001 3.34625 5.90912 3.34714C5.89609 3.34721 5.92426 3.32043 5.86379 3.33727C5.77333 3.36197 5.61449 3.42088 5.52528 3.4681C5.45946 3.50275 5.54768 3.49108 5.45998 3.52319C5.42106 3.53786 5.48354 3.49023 5.41082 3.5193C5.36712 3.53685 5.28541 3.57759 5.21441 3.61776C5.16778 3.64395 5.12561 3.66958 5.10017 3.68544C5.03615 3.72572 5.08216 3.72111 5.07765 3.72547C5.05016 3.75106 4.93591 3.83908 4.92583 3.84675C4.658 4.03448 4.41469 4.2365 4.18733 4.45378L4.16472 4.47682L4.13396 4.46429C3.85593 4.3407 3.57912 4.21899 3.29069 4.10423C3.2445 4.08583 3.2668 4.1183 3.25967 4.1157C3.09924 4.05822 3.24492 4.05769 3.1426 3.99426C3.14172 4.04085 3.08001 4.00651 2.9676 3.9646C2.91341 3.94444 2.93596 3.97206 2.93043 3.9716C2.84157 3.96202 2.79926 3.90863 2.78768 3.89649C2.74491 3.85174 2.67666 3.85488 2.64744 3.8247C2.61819 3.79465 2.70951 3.80648 2.60333 3.76237C2.56761 3.76422 2.63069 3.83456 2.54764 3.80691C2.41207 3.7618 2.23132 3.68629 2.05018 3.60659L2.12812 3.58054C1.99306 3.80221 1.85079 4.0236 1.77332 4.15235C1.63705 4.37882 1.59642 4.45395 1.51384 4.58405C1.36466 4.81905 1.44208 4.74623 1.36675 4.90228C1.29118 5.05875 1.26984 4.94872 1.24354 4.96219C1.24285 4.96253 1.24218 4.96289 1.24153 4.96326C1.2537 4.99502 1.28374 4.99838 1.30237 5.0229C1.32143 5.04803 1.26239 5.01745 1.31754 5.06271C1.37274 5.108 1.54591 5.20198 1.57611 5.20378C1.64001 5.20752 1.59171 5.12533 1.73517 5.24863C1.74341 5.25574 1.70355 5.25026 1.73567 5.27669C1.99123 5.48614 2.26548 5.69201 2.52175 5.89983C2.55697 5.92843 2.51154 5.92152 2.53189 5.93836C2.74382 6.11383 2.68693 6.02583 2.83186 6.08344C2.7725 6.10644 2.8195 6.1827 2.98643 6.3077C3.00586 6.32226 3.02141 6.3328 3.0344 6.3406L3.0236 6.30401C3.00782 6.36591 3.02514 6.37054 3.01796 6.43674C3.01511 6.46112 2.97544 6.54205 2.98248 6.56056C3.00572 6.62077 3.06021 6.5495 3.00187 6.75147C2.9994 6.76044 2.9854 6.72771 2.97829 6.75902C2.96179 6.83293 2.95793 6.8845 2.95753 6.93038C2.95726 7.01093 2.9659 7.07423 2.95842 7.21659C2.95327 7.31718 2.94022 7.46247 2.93362 7.60676C2.92847 7.71401 2.92737 7.82057 2.93127 7.90632C2.86976 7.90552 2.89843 8.09709 2.95029 8.16827C2.95246 8.18861 2.95489 8.20919 2.95754 8.2299C2.97167 8.34117 2.99298 8.45588 3.01113 8.56067C3.01864 8.60344 2.99532 8.57949 2.99465 8.58524C2.98432 8.67447 3.0388 8.72004 3.04761 8.74657C3.05731 8.77627 3.06675 8.80538 3.07603 8.83403L3.08408 8.86021L3.06188 8.87752C2.85324 9.04518 2.65734 9.16718 2.4637 9.34933C2.45605 9.35654 2.46819 9.40029 2.38696 9.42369C2.38163 9.4251 2.44725 9.35078 2.3363 9.43377C2.22533 9.51677 2.00411 9.65753 1.86315 9.7899C1.82903 9.82191 1.75626 9.9206 1.66496 9.95679C1.65276 9.96156 1.65636 9.94359 1.63784 9.9493C1.57816 9.96797 1.57854 10.0213 1.50172 10.0345C1.43778 10.0455 1.33663 10.0929 1.2244 10.1878L1.19985 10.2062L1.21542 10.2334C1.23162 10.2583 1.24969 10.2838 1.26974 10.3097C1.27348 10.3147 1.3258 10.3373 1.35614 10.3903C1.40455 10.4748 1.46828 10.5977 1.51981 10.6853C1.5445 10.7273 1.54685 10.6898 1.55145 10.6969C1.72687 10.9736 1.82838 11.1842 1.99846 11.491C2.01373 11.5187 2.04991 11.5676 2.08791 11.6244L2.0681 11.6178C2.1316 11.5862 2.20368 11.5537 2.26654 11.5396C2.40201 11.5089 2.3129 11.6585 2.59253 11.5132C2.70534 11.4547 2.80205 11.2719 3.03808 11.2453C3.41057 11.0703 3.77395 10.9476 4.14384 10.774L4.12391 10.7701C4.14603 10.7909 4.16853 10.8113 4.19148 10.8315C4.20655 10.8448 4.27703 10.8623 4.31071 10.8943C4.36078 10.942 4.37769 10.98 4.41418 11.0137C4.56714 11.1549 4.72639 11.2605 4.89055 11.3743C4.95326 11.417 4.92119 11.4174 4.9975 11.467C5.05131 11.5015 5.09905 11.517 5.1577 11.547C5.18261 11.5597 5.20961 11.575 5.24028 11.5952C5.31784 11.6462 5.38046 11.7308 5.4925 11.787C5.51609 11.746 5.59279 11.7831 5.73767 11.8259C5.76554 11.8341 5.74241 11.8078 5.75587 11.8108C5.81057 11.8228 5.8542 11.853 5.90699 11.8616C5.91984 11.8637 5.92554 11.8488 5.93628 11.8496C6.02721 11.8564 6.15614 11.9324 6.17906 11.945C6.25022 11.9856 6.29645 11.9866 6.34916 12.0009L6.36009 12.0035L6.36159 12.015C6.36283 12.0267 6.36359 12.039 6.36353 12.0522C6.36316 12.1271 6.33824 12.0182 6.34301 12.105C6.35294 12.2849 6.38323 12.5139 6.40441 12.6953C6.41296 12.7677 6.42814 12.7158 6.42986 12.726C6.4533 12.875 6.44909 13.0289 6.50124 13.1068C6.40485 13.2236 6.52271 13.1957 6.52675 13.4121C6.52702 13.4291 6.4781 13.4568 6.46272 13.393C6.44735 13.3293 6.4516 13.2293 6.42897 13.1411C6.42364 13.1202 6.36066 13.0043 6.35573 12.9881C6.31716 12.8608 6.3919 12.833 6.3953 12.8256C6.43149 12.7421 6.36152 12.5997 6.35319 12.561C6.31507 12.3838 6.3075 12.2303 6.27764 12.0819C6.27311 12.0594 6.26685 12.0418 6.25981 12.0273L6.32413 12.1003C6.27024 12.1045 6.2433 12.1281 6.18486 12.1108C5.93145 12.033 5.86976 11.9373 5.61686 11.9036C5.5629 11.895 5.58915 11.9687 5.43045 11.8506C5.4201 11.8433 5.30874 11.7471 5.2247 11.7311C5.21405 11.7292 5.20683 11.7436 5.19407 11.7385C5.15052 11.7205 5.11687 11.7007 5.08258 11.6798C5.04951 11.6595 5.0159 11.6381 4.97232 11.6152C4.88341 11.5685 4.77718 11.5096 4.68749 11.4382C4.63313 11.3953 4.58146 11.3179 4.56046 11.2919C4.50111 11.2188 4.40328 11.1821 4.37693 11.1252C4.35102 11.0681 4.45979 11.1118 4.35986 11.001C4.32773 11.0287 4.2894 11.0522 4.2543 11.0774C4.17759 11.0073 4.10419 10.9346 4.03315 10.86L4.19373 10.8916C3.98903 10.9737 3.78439 11.054 3.57986 11.1422C3.54298 11.1581 3.58963 11.1629 3.55032 11.1805C3.38439 11.2548 3.23195 11.302 3.06092 11.3815C2.92858 11.4431 2.79063 11.5276 2.65253 11.5928C2.54796 11.5849 2.34592 11.6883 2.1928 11.7485C2.15784 11.7623 2.14504 11.7614 2.12947 11.7625L2.01333 11.8105L1.95227 11.7037C1.95064 11.6956 1.94834 11.6867 1.9424 11.6736C1.87775 11.5324 1.87762 11.6164 1.85046 11.5832C1.73404 11.4406 1.80922 11.3786 1.69896 11.1948C1.69314 11.1851 1.5788 11.0911 1.5664 11.0762C1.48709 10.9819 1.57165 11.0499 1.53654 10.9823C1.47244 10.859 1.43432 10.7696 1.33914 10.6366C1.31132 10.5978 1.22622 10.5156 1.20101 10.4236C1.19768 10.4115 1.21569 10.4087 1.21162 10.3998C1.18315 10.3386 1.15852 10.304 1.13527 10.2803L1.07854 10.1811L1.168 10.1141C1.2017 10.0716 1.207 10.0365 1.24995 9.98954C1.31924 9.91384 1.46551 9.84827 1.49716 9.83739C1.5798 9.80871 1.45372 9.88537 1.45178 9.89024C1.42925 9.94777 1.51629 9.87426 1.587 9.82359C1.62872 9.85743 1.7234 9.78107 1.66017 9.7709C1.65311 9.76991 1.60232 9.81488 1.587 9.82359C1.6165 9.73653 1.71866 9.65014 1.86498 9.59851C1.93349 9.57437 1.89751 9.63483 2.0584 9.49973C2.13144 9.43844 2.08036 9.43223 2.14117 9.37339C2.28012 9.23897 2.49871 9.11402 2.65276 8.98956C2.70867 8.94438 2.64111 8.97127 2.67891 8.93986C2.7704 8.86376 2.86188 8.80874 2.95267 8.73473L2.90371 8.88525C2.90006 8.87419 2.89629 8.86304 2.89236 8.85181C2.8883 8.84016 2.87674 8.87485 2.86491 8.83414C2.80816 8.63721 2.77577 8.45134 2.75349 8.2571C2.74101 8.14709 2.73147 8.03416 2.72409 7.91388C2.71905 7.83316 2.71169 7.72034 2.70926 7.60676C2.70665 7.49555 2.70795 7.38353 2.71343 7.30133C2.7215 7.17651 2.73965 7.03965 2.76309 6.90573C2.79347 6.72879 2.83929 6.55811 2.87674 6.42117C2.90993 6.3025 2.90393 6.28902 2.90183 6.25878L2.9567 6.44469C2.94745 6.44273 2.93682 6.43966 2.92143 6.43253C2.80198 6.37733 2.64852 6.20194 2.62844 6.17754C2.62784 6.17678 2.73812 6.25303 2.68716 6.20179C2.66703 6.15926 2.62971 6.17837 2.62844 6.17754C2.61521 6.16158 2.40352 5.99772 2.35857 5.96908C2.33414 5.95354 2.33541 5.97884 2.3229 5.97044C2.02563 5.77035 1.73536 5.55986 1.44992 5.33541C1.44504 5.33127 1.46582 5.31953 1.45417 5.31002C1.33914 5.21558 1.24353 5.15839 1.1449 5.1008L1.02375 5.00856L1.10022 4.88062C1.11933 4.83742 1.13845 4.7937 1.16005 4.74758C1.23385 4.58999 1.30781 4.47404 1.39196 4.40442C1.4539 4.28917 1.56291 4.1356 1.62609 4.0475C1.68927 3.9594 1.66018 3.92493 1.66425 3.91631C1.75202 3.72921 1.83069 3.60667 1.92366 3.46097L2.00287 3.32845L2.14165 3.38811C2.21051 3.42013 2.28416 3.4543 2.37025 3.49159C2.50431 3.54975 2.77405 3.656 2.92178 3.71281C3.03857 3.75764 3.1042 3.79592 3.21294 3.83453C3.22764 3.83977 3.22043 3.81623 3.2251 3.81739C3.35245 3.84616 3.27758 3.86498 3.29887 3.88285C3.37605 3.94774 3.42472 3.98547 3.58206 4.03602C3.61834 4.0477 3.74613 4.02897 3.81149 4.05211C3.89643 4.08231 3.85587 4.09122 3.94504 4.12228C3.95266 4.12496 3.95681 4.11072 4.01021 4.13378C4.08261 4.16499 4.15674 4.19745 4.23187 4.23043L4.00806 4.27451C4.15546 4.13186 4.31491 3.99138 4.47433 3.8604C4.50515 3.83526 4.45064 3.84918 4.49531 3.81251C4.67565 3.66487 4.88574 3.51924 5.09614 3.40877C5.13034 3.39074 5.16447 3.37359 5.19831 3.35742C5.25784 3.32932 5.22886 3.36301 5.24372 3.36073C5.33394 3.34659 5.42724 3.25663 5.44608 3.24764C5.74766 3.09855 6.02363 3.02911 6.3194 2.96914L6.16273 3.14148C6.17967 3.01121 6.19513 2.87616 6.20639 2.7291C6.20828 2.70343 6.18558 2.50153 6.23475 2.41832C6.23804 2.41262 6.28801 2.33045 6.26961 2.25054C6.26846 2.24558 6.24164 2.29728 6.25467 2.20314C6.2677 2.109 6.27158 1.95551 6.30918 1.82839C6.32105 1.78814 6.37211 1.69568 6.35457 1.56949C6.35328 1.56124 6.30344 1.36379 6.36077 1.30201C6.37019 1.29201 6.42125 1.30954 6.41133 1.16019C6.40936 1.13165 6.3918 1.18102 6.39303 1.10657C6.39401 1.04528 6.40351 0.974267 6.41096 0.899748L6.43465 0.711107L6.62073 0.712883C6.68523 0.711873 6.75215 0.709057 6.81673 0.698184C6.84107 0.694025 6.94467 0.658226 7.02778 0.685397C7.0408 0.689653 7.01607 0.707261 7.05996 0.709231C7.26866 0.718684 7.4872 0.706906 7.6991 0.719088C7.77416 0.723369 7.73578 0.751835 7.81402 0.759463C7.89227 0.767089 8.04992 0.774424 8.13179 0.761416C8.21369 0.748402 8.12422 0.703035 8.24691 0.699405C8.25881 0.699053 8.27071 0.698722 8.2826 0.698412L8.48634 0.700356L8.50682 0.898735C8.57882 1.41515 8.61142 1.9314 8.66606 2.44922C8.67435 2.52778 8.68313 2.46089 8.6965 2.57652C8.71512 2.73735 8.7407 2.94206 8.76574 3.15473L8.58583 2.95588C8.96144 3.0333 9.32578 3.19894 9.52989 3.32905C9.79055 3.49866 9.43787 3.3338 9.6395 3.45534C9.68651 3.48425 9.74166 3.50297 9.78893 3.5165C9.83854 3.53065 9.87928 3.53883 9.89178 3.54548C10.1293 3.67237 10.2703 3.79998 10.4643 3.94869C10.5042 3.97982 10.4797 3.93159 10.5136 3.95857C10.6296 4.05106 10.7374 4.16568 10.8362 4.2696C10.8459 4.27976 10.8535 4.2868 10.8601 4.29205L10.6127 4.23736C10.6366 4.22224 10.6352 4.2122 10.6755 4.19638C10.7987 4.14786 10.9092 4.10897 11.0341 4.07323C11.0455 4.06998 10.9802 4.11935 11.0708 4.08221C11.2174 4.02205 11.4046 3.95998 11.5667 3.87515C11.6148 3.84993 11.6024 3.81469 11.7195 3.79353C11.7441 3.78907 11.7327 3.84242 11.8427 3.75437C11.8612 3.73964 12.0509 3.60355 12.1669 3.59145C12.1974 3.58824 12.281 3.59301 12.3387 3.56256C12.3465 3.5583 12.3062 3.55347 12.3551 3.53084C12.4812 3.47283 12.6136 3.4172 12.745 3.35979L12.9132 3.29121L13.0014 3.44546C13.0288 3.49076 13.0565 3.5359 13.0845 3.58048C13.1123 3.62459 13.091 3.54712 13.1319 3.61321C13.2442 3.79493 13.3743 4.02778 13.4741 4.21135C13.5109 4.27905 13.4692 4.24178 13.4704 4.24756C13.4896 4.34069 13.552 4.36595 13.5691 4.39055C13.6754 4.54386 13.7303 4.67584 13.8212 4.82125C13.8463 4.86141 13.8462 4.82257 13.8525 4.82982C13.8565 4.83458 13.86 4.83887 13.8631 4.84274L13.9717 5.03263L13.7997 5.16007C13.7479 5.21188 13.7772 5.15076 13.7288 5.18279C13.584 5.27845 13.4309 5.3961 13.2927 5.50368C13.2419 5.54323 13.3133 5.51774 13.2676 5.55302C12.9973 5.76215 12.7126 5.97458 12.4389 6.16565C12.3874 6.20159 12.4084 6.16383 12.3955 6.16854C12.3067 6.20064 12.2242 6.31072 12.2021 6.33196C12.1018 6.42856 12.0496 6.44862 11.9539 6.52455C11.9459 6.53092 11.9378 6.5373 11.9297 6.5437L12.0075 6.30347C12.0733 6.50341 12.1312 6.7258 12.1601 6.96363C12.1852 7.17355 12.1942 7.38609 12.1924 7.59072C12.1907 7.81076 12.1749 8.02311 12.1511 8.21519C12.15 8.22405 12.1489 8.23281 12.1478 8.24142C12.1152 8.48429 12.0594 8.70027 11.9967 8.90399L11.922 8.67911C12.2815 8.9583 12.6135 9.21646 13.001 9.50387C13.0367 9.53039 13.0148 9.48486 13.0458 9.50748C13.2849 9.68297 13.5187 9.86101 13.7539 10.0385L13.9123 10.1599L13.8121 10.3276C13.7122 10.4976 13.6126 10.6681 13.5146 10.8411C13.4945 10.8765 13.5431 10.837 13.5115 10.8942C13.4467 11.0115 13.36 11.1575 13.2855 11.2709C13.2492 11.3262 13.2776 11.2402 13.2414 11.2961C13.1571 11.4262 13.0719 11.5687 12.9946 11.7079C12.9642 11.7627 13.0229 11.7009 12.9966 11.7519L12.8884 11.933L12.6993 11.8502C12.695 11.8487 12.6899 11.8467 12.684 11.8441C12.1316 11.611 11.5885 11.3837 11.0427 11.1192C11.0052 11.1011 10.9897 11.0447 10.905 11.0181C10.8939 11.0272 10.8884 11.0411 10.8804 11.0524C10.7961 11.0174 10.7121 10.9821 10.6282 10.9466L10.8654 10.9026C10.5447 11.2149 10.1922 11.5007 9.79328 11.7273C9.47771 11.9061 9.14132 12.0421 8.79664 12.1454C8.75986 12.1564 8.83051 12.1606 8.75907 12.1818C8.71008 12.1961 8.66113 12.2098 8.61217 12.2229L8.78091 12.0319C8.73262 12.3912 8.68717 12.7445 8.61572 13.1111C8.60771 13.1523 8.56831 13.1252 8.55799 13.2486C8.55622 13.2704 8.53669 13.4557 8.53937 13.5047C8.53987 13.5114 8.56421 13.4804 8.55668 13.5399C8.52548 13.7846 8.48939 14.037 8.45003 14.2852L8.42373 14.4653L8.24573 14.4636C8.14163 14.4613 8.03816 14.4584 7.93618 14.4548C7.87999 14.4528 7.93983 14.4316 7.89981 14.43C7.61591 14.4187 7.3071 14.4349 7.03582 14.4156C6.85424 14.4026 6.92147 14.3659 6.82497 14.3298C6.81133 14.3247 6.69888 14.3239 6.69307 14.3029C6.67814 14.2501 6.7326 14.1922 6.71026 14.1359C6.70553 14.1237 6.55494 14.1368 6.6441 14.1075C6.65033 14.1055 6.75951 14.0958 6.7864 14.0859C6.80512 14.079 6.77139 14.0576 6.80959 14.0488C6.84778 14.04 6.88975 14.0579 6.95308 14.0476C7.01638 14.0371 6.98855 14.0128 7.11497 14.0099ZM1.91028 3.65063C1.97836 3.57465 1.92126 3.52417 1.88213 3.62652C1.88031 3.63152 1.90681 3.65457 1.91028 3.65063ZM3.85719 10.9612C3.72402 10.9819 3.66064 11.0615 3.75545 11.0489C3.85024 11.0363 3.89775 10.9549 3.85719 10.9612ZM4.88866 11.4519C4.77564 11.3443 4.69383 11.4162 4.84508 11.4933C4.85393 11.4978 4.89539 11.4582 4.88866 11.4519ZM7.27245 14.3195C7.27107 14.3185 7.19025 14.3176 7.18831 14.3186C7.14527 14.3423 7.3069 14.3442 7.27245 14.3195ZM6.1303 11.9877C6.08831 11.961 5.95203 11.9348 6.00335 11.9699C6.04487 11.9987 6.18278 12.0217 6.1303 11.9877ZM6.37509 2.95306C6.37638 2.95162 6.38405 2.89418 6.37766 2.89461C6.35705 2.89618 6.35346 2.97695 6.37509 2.95306ZM6.56688 14.0762C6.53032 13.7405 6.59271 13.5267 6.62702 13.893C6.63324 13.9593 6.58207 13.7539 6.5844 13.8389C6.58873 13.9946 6.65569 14.0903 6.64542 14.2509C6.64351 14.28 6.56877 14.0954 6.56669 14.0756C6.56675 14.0758 6.56682 14.076 6.56688 14.0762ZM2.01686 3.64628C2.01873 3.64506 2.06003 3.57629 2.06016 3.57413C2.0616 3.52465 1.97837 3.66318 2.01686 3.64628ZM7.95832 0.95981C7.96274 0.961917 8.1489 0.963888 8.15497 0.961947C8.25209 0.923128 7.87572 0.919029 7.95832 0.95981ZM2.92986 7.90958C2.95905 7.99446 2.97168 8.09577 2.95027 8.16787C2.94162 8.08225 2.93392 7.99597 2.92986 7.90958ZM7.53913 9.42373C7.60459 9.4141 7.68997 9.41221 7.75579 9.41095C7.77644 9.41055 7.76843 9.42532 7.78289 9.42551C7.81116 9.42577 7.83533 9.41437 7.86339 9.41447C7.87275 9.41454 7.86618 9.43751 7.87598 9.43708C7.9298 9.43444 7.97699 9.4162 8.02941 9.40425C8.28861 9.34525 8.52573 9.21434 8.73559 9.03457C8.75846 9.01503 8.78375 8.99475 8.80946 8.9732C8.86142 8.92979 8.91446 8.88139 8.95048 8.82896C8.95675 8.81979 8.93832 8.81318 8.93848 8.8106C8.94099 8.77071 8.96301 8.80256 8.98025 8.78876C9.04843 8.73393 9.10425 8.65497 9.13932 8.5804C9.1541 8.54864 9.10501 8.56079 9.14003 8.54061C9.14243 8.53916 9.15519 8.55645 9.16169 8.54909C9.17649 8.53239 9.19265 8.4941 9.20148 8.47968C9.21871 8.45189 9.22085 8.44689 9.23392 8.41898C9.2518 8.38094 9.28003 8.33802 9.29146 8.29377C9.29383 8.28435 9.27065 8.28944 9.27262 8.27393C9.27469 8.25845 9.28913 8.22087 9.29765 8.20924C9.30625 8.19766 9.31956 8.20786 9.32374 8.20662C9.3591 8.19618 9.33149 8.13841 9.33185 8.13254C9.34286 8.0218 9.38284 7.93332 9.39415 7.82865C9.40245 7.75037 9.39869 7.66587 9.39948 7.59072C9.3995 7.58989 9.39951 7.58905 9.39952 7.58822C9.40063 7.49796 9.40719 7.42071 9.39548 7.33369C9.39423 7.32451 9.37207 7.33798 9.37049 7.32688C9.35362 7.20937 9.33237 7.09475 9.31249 6.97718C9.31048 6.96536 9.33484 6.97384 9.33397 6.96156C9.32942 6.88713 9.32127 6.75867 9.22053 6.75749C9.20334 6.7115 9.17934 6.65722 9.17316 6.60972C9.16905 6.57904 9.20261 6.59192 9.1763 6.56604C9.17036 6.56023 9.1587 6.57925 9.1511 6.56989C9.11926 6.53073 9.09454 6.48143 9.05737 6.44706C9.0498 6.44014 9.03703 6.45272 9.03281 6.4523C8.99831 6.44843 9.00867 6.39169 9.00553 6.38273C8.98281 6.31626 8.94362 6.28459 8.90203 6.23858C8.89233 6.22793 8.88648 6.25655 8.87657 6.24697C8.85877 6.22966 8.84115 6.21219 8.82351 6.19419C8.79031 6.16031 8.75818 6.1257 8.72832 6.09027C8.71822 6.07822 8.74232 6.07241 8.73813 6.06584C8.71899 6.03685 8.68888 6.06152 8.66978 6.0352C8.6657 6.0297 8.67951 6.01859 8.67977 6.01634C8.68357 5.98095 8.64402 6.00382 8.63969 6.00164C8.58336 5.97429 8.57688 5.91536 8.52262 5.88709C8.51617 5.88384 8.51769 5.91099 8.50039 5.90082C8.38501 5.8333 8.26276 5.76522 8.14375 5.70276C8.12522 5.69309 8.14474 5.68269 8.14424 5.68034C8.1347 5.64308 8.10721 5.67866 8.10042 5.67803C8.04659 5.67184 8.00762 5.62365 7.95963 5.66354C7.78856 5.60453 7.60686 5.59936 7.42677 5.58288C7.38153 5.57876 7.33656 5.57387 7.29071 5.56742C7.28779 5.56706 7.29179 5.54585 7.28593 5.54523C7.21524 5.53809 7.23069 5.5699 7.18969 5.61383C7.1797 5.62484 7.13958 5.58121 7.13587 5.5782C7.12294 5.56677 7.13066 5.53435 7.12654 5.53235C7.09209 5.51705 7.1112 5.61828 7.07053 5.62472C7.06921 5.62476 7.07159 5.60516 7.06783 5.60386C7.05601 5.59977 7.04655 5.60903 7.03486 5.60448C7.00828 5.59397 6.98928 5.54645 6.95778 5.5829C6.95391 5.58766 6.97309 5.64306 6.93646 5.64863C6.92172 5.65058 6.8586 5.66794 6.84002 5.66968C6.82137 5.67116 6.82814 5.64958 6.82668 5.64915C6.77142 5.63968 6.78665 5.62441 6.75079 5.59709C6.71445 5.57034 6.74903 5.65127 6.74248 5.66379C6.73596 5.67622 6.69439 5.66928 6.68324 5.66593C6.67215 5.66246 6.67866 5.64722 6.66956 5.64633C6.60894 5.64139 6.66314 5.69546 6.65197 5.71482C6.62673 5.76057 6.57202 5.71369 6.53404 5.72458C6.52392 5.7275 6.53793 5.73721 6.53024 5.74243C6.49998 5.76299 6.47092 5.75501 6.44336 5.79118C6.43865 5.79716 6.42931 5.84714 6.3965 5.83333C6.39176 5.83134 6.39103 5.81291 6.37579 5.81777C6.35302 5.82493 6.31538 5.84442 6.29754 5.86287C6.28439 5.87646 6.31675 5.88688 6.29301 5.89288C6.28245 5.89559 6.28945 5.87192 6.27023 5.8782C6.25097 5.88436 6.21102 5.91393 6.19631 5.92587C6.18163 5.93765 6.2021 5.94756 6.20171 5.94957C6.19911 5.96124 6.17704 5.99089 6.1747 5.99283C6.10952 6.04652 6.04325 6.0942 5.98066 6.14698C5.92624 6.19289 5.87483 6.24255 5.83288 6.302C5.82579 6.31202 5.8475 6.31919 5.84659 6.32086C5.82755 6.35871 5.80386 6.29754 5.77055 6.30897C5.80727 6.3324 5.79018 6.34116 5.77623 6.36756C5.76958 6.3803 5.78766 6.38416 5.78826 6.38622C5.79626 6.41809 5.76136 6.41034 5.75363 6.40956C5.72535 6.4065 5.74051 6.43589 5.72156 6.43426C5.70259 6.43288 5.69505 6.40072 5.67905 6.42476C5.68744 6.44004 5.73272 6.44538 5.72624 6.46674C5.70126 6.5459 5.60186 6.65982 5.57229 6.71868C5.54222 6.77615 5.53737 6.79683 5.51825 6.8299C5.48456 6.8903 5.52162 6.87744 5.52092 6.92126C5.52084 6.96516 5.4569 6.9232 5.43985 6.9241C5.42283 6.9251 5.4364 6.93646 5.42579 6.94116C5.41518 6.94592 5.40976 6.92677 5.40129 6.94317C5.39261 6.95978 5.40649 7.01517 5.42113 7.02539C5.45189 7.04718 5.49282 7.03564 5.46911 7.0768C5.46773 7.0792 5.45089 7.06619 5.44656 7.07563C5.41283 7.15098 5.39701 7.23448 5.37422 7.31429C5.37105 7.32532 5.35075 7.31272 5.34866 7.31917C5.32747 7.38645 5.36649 7.36601 5.40368 7.4061C5.3507 7.39337 5.3156 7.41165 5.31246 7.46473C5.31072 7.4967 5.33457 7.49209 5.35045 7.51295C5.35523 7.51913 5.33852 7.54107 5.34955 7.54525C5.38545 7.55899 5.42578 7.53916 5.40995 7.59072C5.40988 7.59095 5.40981 7.59118 5.40974 7.59141C5.40935 7.59259 5.404 7.59126 5.39869 7.59072C5.39646 7.59049 5.39425 7.59041 5.3924 7.59072C5.39003 7.59112 5.38828 7.59216 5.38796 7.59438C5.38046 7.64652 5.4184 7.65203 5.42538 7.70678C5.43081 7.74954 5.41418 7.82829 5.41703 7.87825C5.35661 7.88458 5.37687 7.93112 5.42129 7.94322C5.42463 7.97544 5.43323 8.00924 5.43394 8.04097C5.43421 8.05188 5.41559 8.04859 5.41401 8.05031C5.38927 8.07722 5.43223 8.08245 5.43533 8.08877C5.46759 8.15849 5.45553 8.22707 5.50776 8.28573C5.50967 8.28785 5.55061 8.27756 5.52817 8.30586C5.52664 8.30781 5.5004 8.29192 5.51072 8.32434C5.52086 8.35649 5.52447 8.42537 5.56238 8.46034C5.57151 8.46897 5.61445 8.47976 5.60092 8.51218C5.59906 8.51657 5.58675 8.51898 5.58277 8.52602C5.57032 8.5488 5.61169 8.53614 5.58773 8.56816C5.56378 8.6001 5.5579 8.64639 5.60485 8.67608C5.60631 8.6771 5.64111 8.66954 5.64865 8.6827C5.66069 8.70386 5.67364 8.7367 5.68824 8.75767C5.69521 8.76767 5.7081 8.74938 5.7096 8.75091C5.76534 8.81083 5.78518 8.86761 5.83601 8.93987C5.84541 8.95331 5.89698 8.96858 5.90155 9.0064C5.90714 9.04791 5.80883 9.09274 5.8807 9.13404C5.88126 9.13436 5.88183 9.13467 5.88241 9.13499C5.91353 9.15221 6.03163 9.08532 6.02839 9.17322C6.12202 9.23439 6.18351 9.32547 6.29116 9.36693C6.296 9.36881 6.32888 9.34664 6.33839 9.35314C6.35255 9.36292 6.35179 9.38235 6.36192 9.38972C6.4041 9.42085 6.45298 9.43087 6.49654 9.45507C6.51319 9.46419 6.49947 9.47712 6.51968 9.48787C6.54003 9.49854 6.56326 9.48375 6.58693 9.50621C6.60475 9.52316 6.60859 9.57606 6.63652 9.59274C6.65448 9.54952 6.67405 9.55833 6.71383 9.55919C6.72145 9.55931 6.71947 9.5414 6.72334 9.54065C6.73907 9.53724 6.7469 9.55408 6.76223 9.54947C6.76594 9.54836 6.77099 9.53322 6.77426 9.53144C6.80199 9.51577 6.82605 9.56025 6.83057 9.56797C6.84729 9.59737 6.86379 9.58025 6.87925 9.59388C6.89493 9.60749 6.86507 9.61201 6.88486 9.62283C6.92606 9.6453 6.98424 9.65492 7.02959 9.66341C7.04776 9.66672 7.0389 9.64359 7.04158 9.64358C7.07948 9.64457 7.11469 9.67221 7.14057 9.63262C7.15359 9.74462 7.16428 9.62509 7.21511 9.65192C7.21908 9.65405 7.22022 9.70626 7.20289 9.71234C7.18541 9.71839 7.16218 9.69971 7.13773 9.7087C7.13209 9.71089 7.09432 9.755 7.08937 9.75722C7.05167 9.77512 7.05884 9.69754 7.05782 9.69311C7.04539 9.64472 6.99932 9.68968 6.98833 9.6912C6.93934 9.69871 6.90293 9.67928 6.8621 9.68118C6.83545 9.68226 6.81979 9.73061 6.80015 9.72359C6.73454 9.69957 6.73537 9.62535 6.65466 9.66195C6.6373 9.66949 6.63069 9.7266 6.5991 9.66779C6.59692 9.66405 6.57773 9.6135 6.54848 9.62843C6.54477 9.63032 6.53852 9.64524 6.53469 9.64509C6.50916 9.6437 6.49975 9.62543 6.47353 9.62008C6.4473 9.6147 6.41471 9.60903 6.39062 9.59036C6.37598 9.57913 6.37003 9.54166 6.36625 9.53115C6.35569 9.50115 6.31624 9.51863 6.31648 9.48887C6.31708 9.45913 6.36122 9.43977 6.33764 9.40614C6.31469 9.44138 6.2895 9.47655 6.26545 9.51139C6.19167 9.46459 6.12952 9.40458 6.06052 9.35259C6.05191 9.34614 6.04653 9.3707 6.03691 9.36418C5.99627 9.33634 5.97405 9.29641 5.93238 9.26756C5.9 9.24519 5.85228 9.23295 5.81864 9.2079C5.82022 9.20276 5.82112 9.19783 5.82144 9.19308C5.82432 9.1499 5.7786 9.12085 5.75493 9.08855C5.74571 9.07604 5.756 9.06825 5.75191 9.05733C5.7366 9.01635 5.71715 9.05857 5.70462 9.05433C5.65086 9.03512 5.72205 8.97048 5.68564 8.92812C5.68378 8.92601 5.62063 8.92783 5.61493 8.9254C5.57863 8.9114 5.62599 8.91041 5.617 8.89177C5.6008 8.85765 5.59632 8.82995 5.55986 8.80197C5.54926 8.794 5.50552 8.78509 5.5136 8.75084C5.51466 8.74638 5.53006 8.73908 5.52956 8.73634C5.51952 8.68767 5.47326 8.71349 5.44384 8.69823C5.41436 8.68279 5.42687 8.62753 5.43257 8.61526C5.44682 8.58293 5.45077 8.62508 5.4538 8.62489C5.48868 8.62243 5.46966 8.59833 5.46185 8.57656C5.50698 8.5502 5.4905 8.52354 5.45365 8.55407C5.44965 8.55749 5.46191 8.57139 5.46185 8.57656C5.40706 8.58162 5.38464 8.55053 5.41249 8.49515C5.42574 8.4693 5.4562 8.47482 5.42632 8.42815C5.41298 8.40681 5.38321 8.42915 5.36588 8.41187C5.32614 8.37184 5.33601 8.29732 5.31625 8.24883C5.30899 8.23102 5.29538 8.25448 5.28978 8.24242C5.27487 8.21016 5.28126 8.17662 5.26571 8.14433C5.26428 8.14139 5.24606 8.15381 5.24325 8.14316C5.22179 8.06223 5.22183 7.98838 5.21125 7.90289C5.20593 7.86154 5.18774 7.78833 5.1877 7.74494C5.18724 7.69625 5.199 7.64071 5.20624 7.59072C5.21017 7.5633 5.21267 7.53795 5.21075 7.51542C5.20743 7.47408 5.18665 7.48238 5.17342 7.46374C5.14771 7.42742 5.20124 7.36931 5.20961 7.36231C5.20982 7.36212 5.2117 7.39794 5.22382 7.37993C5.2467 7.3709 5.20967 7.36277 5.20961 7.36231C5.21471 7.35725 5.22691 7.28707 5.22512 7.27254C5.22398 7.26464 5.20407 7.26636 5.20385 7.26226C5.19918 7.16453 5.21332 7.06625 5.24779 6.97308C5.24862 6.97151 5.26903 6.97969 5.27072 6.97594C5.29494 6.92399 5.28015 6.88192 5.28045 6.8316C5.28085 6.78146 5.29985 6.74711 5.34499 6.73536C5.35378 6.70056 5.3895 6.66049 5.41095 6.63871C5.43233 6.61693 5.39604 6.59476 5.39641 6.59201C5.40836 6.50744 5.45287 6.47701 5.49952 6.40812C5.52174 6.37517 5.56038 6.30644 5.58223 6.26905C5.59932 6.23925 5.61955 6.2291 5.63385 6.20051C5.6358 6.19665 5.61828 6.18831 5.61851 6.18684C5.62265 6.14516 5.64832 6.18732 5.65924 6.18687C5.69905 6.18547 5.72086 6.18388 5.73879 6.14146C5.74275 6.1319 5.71259 6.06537 5.72271 6.04855C5.73569 6.02708 5.74691 6.0501 5.7602 6.02744C5.76136 6.02553 5.75032 6.01571 5.76176 6.00465C5.77434 5.99245 5.78756 5.98031 5.8012 5.9682C5.84474 5.9295 5.89204 5.89164 5.93537 5.85251C5.94323 5.84551 5.91768 5.8367 5.92888 5.82624C5.98139 5.77728 6.04464 5.72895 6.10831 5.69747C6.12403 5.68979 6.12456 5.70943 6.1304 5.71126C6.16566 5.72238 6.16834 5.66924 6.17258 5.6655C6.26948 5.57778 6.37473 5.56383 6.48565 5.49392C6.4913 5.49006 6.52495 5.42588 6.56262 5.45344C6.56529 5.45519 6.60201 5.4839 6.61227 5.45086C6.61296 5.44879 6.59151 5.43461 6.61711 5.42747C6.64256 5.4204 6.67887 5.39338 6.72028 5.40445C6.73356 5.40784 6.77006 5.43857 6.79402 5.39892C6.79508 5.39617 6.82879 5.31268 6.85917 5.35688C6.86411 5.3642 6.87288 5.41604 6.90602 5.38097C6.91245 5.37421 6.89619 5.36567 6.91463 5.3542C6.94302 5.33657 6.98616 5.3427 7.02049 5.31338C7.02629 5.3082 7.0497 5.26828 7.07656 5.29207C7.0807 5.2958 7.07634 5.31415 7.08855 5.3145C7.14663 5.31627 7.20507 5.2988 7.26373 5.3074C7.28436 5.31046 7.27561 5.33945 7.29698 5.34598C7.31842 5.35247 7.36044 5.35841 7.38202 5.34512C7.40376 5.33181 7.37896 5.28669 7.41244 5.28278C7.41721 5.28223 7.42199 5.28175 7.42677 5.28132C7.56831 5.2687 7.70823 5.3046 7.84695 5.33215C7.86832 5.33647 7.85331 5.31726 7.88512 5.32277C8.00228 5.34095 8.20852 5.386 8.29156 5.45873C8.35732 5.51544 8.25408 5.49573 8.30706 5.52983C8.33207 5.54613 8.38317 5.51146 8.39072 5.51314C8.46317 5.52822 8.497 5.57229 8.55629 5.59771C8.56858 5.60304 8.56788 5.57798 8.57829 5.58279C8.61408 5.5992 8.64408 5.62891 8.67611 5.64774C8.69052 5.65618 8.69696 5.64087 8.70914 5.65053C8.73825 5.67348 8.76109 5.69803 8.7806 5.73149C8.78234 5.73451 8.75285 5.73793 8.77391 5.7545C8.80802 5.78133 8.84034 5.82615 8.88799 5.84623C8.90212 5.85214 8.9273 5.8244 8.93417 5.86475C8.93561 5.87327 8.89946 5.90084 8.95265 5.89673C8.96134 5.89571 9.04325 5.90056 9.04148 5.94637C9.04124 5.95271 9.03799 5.96706 9.03735 5.98035C9.03678 5.99217 9.03825 6.00314 9.04596 6.00713C9.04829 6.0082 9.05589 5.9873 9.06752 5.99641C9.10828 6.02883 9.14352 6.0704 9.18307 6.10696C9.19369 6.11676 9.19557 6.08697 9.21095 6.10214C9.25336 6.14393 9.29506 6.20607 9.32342 6.2572C9.33386 6.27609 9.31124 6.27393 9.31064 6.27629C9.30009 6.31402 9.34194 6.30265 9.34866 6.30828C9.3896 6.34329 9.39441 6.38715 9.42301 6.42548C9.43086 6.43616 9.44302 6.41821 9.44585 6.41959C9.47442 6.4348 9.43376 6.43474 9.43898 6.45161C9.45342 6.49894 9.47962 6.54537 9.50301 6.58829C9.51161 6.60404 9.52338 6.57602 9.53087 6.59041C9.57565 6.67558 9.61049 6.77051 9.6268 6.86319C9.62981 6.88063 9.60981 6.87535 9.6071 6.88002C9.58792 6.91191 9.63445 6.93589 9.64022 6.94329C9.66646 6.97611 9.65517 6.99458 9.66589 7.02685C9.71946 7.18516 9.7319 7.39163 9.72701 7.5448C9.72664 7.56033 9.72608 7.57563 9.72536 7.59072C9.71603 7.76934 9.68875 7.91353 9.65754 8.08772C9.65529 8.09973 9.68058 8.09241 9.6789 8.1029C9.65574 8.23889 9.60674 8.3668 9.55939 8.49709C9.55543 8.50781 9.58218 8.50114 9.5764 8.51876C9.56467 8.55498 9.54337 8.59836 9.52001 8.62947C9.50867 8.64462 9.50287 8.61391 9.49183 8.62919C9.46611 8.66459 9.44283 8.70426 9.42361 8.74421C9.41541 8.76126 9.44932 8.74804 9.43702 8.76945C9.35334 8.91518 9.25472 9.05118 9.12 9.1532C9.11073 9.1602 9.07061 9.13609 9.06057 9.1592C9.06847 9.16931 9.0793 9.17963 9.08852 9.18964C9.07861 9.20055 9.06852 9.21134 9.05826 9.222C8.90284 9.38361 8.7138 9.51127 8.51263 9.61683C8.50354 9.62159 8.53074 9.63458 8.51304 9.64395C8.41084 9.69779 8.30838 9.74955 8.18898 9.76472C8.17716 9.76618 8.16924 9.72399 8.1392 9.74048C8.13398 9.74354 8.08697 9.76381 8.07672 9.77618C8.07535 9.77802 8.08988 9.79464 8.07401 9.79971C7.98162 9.82876 7.88094 9.84501 7.78486 9.84645C7.76934 9.84664 7.78255 9.82333 7.77154 9.82325C7.69422 9.8228 7.61249 9.84607 7.53883 9.82987C7.49 9.81877 7.50664 9.78136 7.48071 9.74591C7.47712 9.74093 7.44815 9.74053 7.44652 9.71949C7.44245 9.66668 7.45535 9.6087 7.44932 9.55243C7.4481 9.54037 7.41229 9.5535 7.43344 9.52415C7.43494 9.52222 7.46057 9.51227 7.46659 9.50218C7.4708 9.49523 7.46267 9.474 7.47125 9.46504C7.47974 9.45607 7.48995 9.47376 7.50411 9.46293C7.5182 9.45192 7.51084 9.42799 7.53913 9.42373ZM5.50936 6.54409C5.53981 6.53118 5.47663 6.49099 5.47822 6.52503C5.47838 6.52672 5.50783 6.5448 5.50936 6.54409ZM6.16422 9.35802C6.15644 9.31158 6.10886 9.33606 6.11282 9.37102C6.1174 9.40627 6.16686 9.37225 6.16422 9.35802ZM6.4769 9.51858C6.45359 9.47797 6.3993 9.56928 6.44798 9.56965C6.45081 9.56969 6.47831 9.52095 6.4769 9.51858ZM7.59549 9.7305C7.59502 9.72956 7.57432 9.72991 7.57386 9.7309C7.56414 9.75532 7.60608 9.75458 7.59549 9.7305ZM6.80709 9.618C6.79952 9.60097 6.76141 9.60656 6.77057 9.62803C6.77815 9.64546 6.81678 9.63937 6.80709 9.618ZM6.51744 5.69206C6.51828 5.69288 6.5319 5.68759 6.52899 5.68201C6.51952 5.66401 6.50336 5.67799 6.51744 5.69206ZM7.37967 9.70057C7.29329 9.69454 7.24913 9.6034 7.33837 9.61771C7.3547 9.62015 7.30198 9.64419 7.3225 9.65294C7.36075 9.66889 7.38715 9.61445 7.42605 9.644C7.43337 9.64948 7.38472 9.70121 7.37951 9.70069C7.37956 9.70065 7.37962 9.70061 7.37967 9.70057ZM5.59511 6.5746C5.5962 6.57463 5.6069 6.55757 5.60631 6.55669C5.59112 6.53532 5.56928 6.57009 5.59511 6.5746ZM7.34249 5.54459C7.34365 5.54655 7.38967 5.54739 7.3911 5.54554C7.4149 5.50614 7.32036 5.50428 7.34249 5.54459ZM5.41552 7.87923C5.44188 7.8974 5.44824 7.92162 5.4213 7.94312C5.41956 7.92191 5.41675 7.90056 5.41552 7.87923Z" + fill="black" fill-opacity="0.85" /> +</svg> + \ No newline at end of file diff --git a/src/components/Button/Button.module.scss b/src/components/Button/Button.module.scss index e15a687..b153ef4 100644 --- a/src/components/Button/Button.module.scss +++ b/src/components/Button/Button.module.scss @@ -37,6 +37,16 @@ border-color: #c5c5c5; } } + &.black { + background-color: #242424; + color: #fff; + border-color: #242424; + &:hover { + background-color: #242424; + color: #fff; + border-color: #242424; + } + } &.primary { color: #fff; diff --git a/src/components/Button/Button.tsx b/src/components/Button/Button.tsx index 6ddc043..22b1c1e 100644 --- a/src/components/Button/Button.tsx +++ b/src/components/Button/Button.tsx @@ -7,7 +7,7 @@ import Loader from '@icons/Loader'; import styles from './Button.module.scss'; type TButton = { - variant?: 'default' | 'primary' | 'secondary' | 'grey'; + variant?: 'default' | 'primary' | 'secondary' | 'grey' | 'black'; type?: 'submit' | 'button' | 'reset'; label: string; disabled?: boolean; @@ -73,6 +73,7 @@ const Button: FC<TButton> = ({ [styles.disabled]: disabled, [styles.grey]: variant === 'grey', [styles.secondary]: variant === 'secondary', + [styles.black]: variant === 'black', })} onClick={handleClick} onMouseEnter={handleMouseEnter} diff --git a/src/components/Checkbox/Checkbox.module.scss b/src/components/Checkbox/Checkbox.module.scss new file mode 100644 index 0000000..cc90c20 --- /dev/null +++ b/src/components/Checkbox/Checkbox.module.scss @@ -0,0 +1,131 @@ +.visibleTxtMobile { + display: none; +} + +.checkboxes { + display: flex; + align-items: center; + gap: 8px; + + .visibleTxt { + color: rgba(0, 0, 0, 0.45); + font-family: 'Lato', sans-serif; + font-size: 14px; + line-height: 1.571; + } +} + +.txt { + font-family: 'Source Serif 4', 'Source-Serif-Regular', serif; + font-size: 14px; + line-height: 1.571; + color: rgba(0, 0, 0, 0.85); +} + +.wrapper { + display: flex; + align-items: center; + gap: 8px; + padding: 8px 0; +} + +.wrapper + .wrapper { + margin-left: 8px; +} + +.container { + display: block; + position: relative; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + width: 20px; + height: 20px; +} + +.container input { + position: absolute; + opacity: 0; + cursor: pointer; + height: 0; + width: 0; +} + +.checkmark { + position: absolute; + top: 0; + left: 0; + height: 20px; + width: 20px; + border-radius: 50%; + background-color: #fff; + border: 1px solid #d9d9d9; + box-sizing: border-box; +} + +.container input:checked ~ .checkmark { + border: 1px solid #242424; +} + +.checkmark:after { + content: ''; + position: absolute; + display: none; +} + +.container input:checked ~ .checkmark:after { + display: block; +} + +.container .checkmark:after { + left: 4px; + top: 4px; + width: 10px; + height: 10px; + background: #242424; + border-radius: 50%; +} + +// Dark mode +:global(.darkTheme) { + .checkboxes .visibleTxt { + color: rgba(255, 255, 255, 0.45); + } + + .txt { + color: #fff; + } + + .checkmark { + background-color: #1b1e26; + border-color: #5b5b5b; + } + + .container input:checked ~ .checkmark { + border-color: #fff; + } + + .container .checkmark:after { + background: #fff; + } +} + +@media (max-width: 750px) { + .visibleTxtMobile { + display: block; + color: rgba(0, 0, 0, 0.45); + font-family: 'Lato', sans-serif; + font-size: 14px; + line-height: 1.571; + } + + .checkboxes .visibleTxt { + display: none; + } + + :global(.darkTheme) .visibleTxtMobile { + color: rgba(255, 255, 255, 0.45); + } +} diff --git a/src/components/Checkbox/Checkbox.tsx b/src/components/Checkbox/Checkbox.tsx new file mode 100644 index 0000000..d31a364 --- /dev/null +++ b/src/components/Checkbox/Checkbox.tsx @@ -0,0 +1,60 @@ +import { FC } from 'react'; + +import styles from './Checkbox.module.scss'; + +type CheckboxProps = { + visibleTxt: string; + everyone: string; + onlyYou: string; + setRadioValue: (radioValue: string) => void; + radioValue: string; +}; + +const Checkbox: FC<CheckboxProps> = ({ + visibleTxt, + everyone, + onlyYou, + setRadioValue, + radioValue, +}) => { + const handleRadioChange = event => { + setRadioValue(event.target.value); + }; + + return ( + <> + <span className={styles.visibleTxtMobile}> {visibleTxt} </span> + <div className={styles.checkboxes}> + <span className={styles.visibleTxt}> {visibleTxt} </span> + <div className={styles.wrapper}> + <label className={styles.container}> + <input + type="radio" + value="everyone" + checked={radioValue === 'everyone'} + onChange={handleRadioChange} + className={styles.checkbox} + /> + <span className={styles.checkmark}></span> + </label> + <span className={styles.txt}> {everyone}</span> + </div> + <div className={styles.wrapper}> + <label className={styles.container}> + <input + type="radio" + value="onlyMe" + checked={radioValue === 'onlyMe'} + onChange={handleRadioChange} + className={styles.checkbox} + /> + <span className={styles.checkmark}></span> + </label> + + <span className={styles.txt}>{onlyYou}</span> + </div> + </div> + </> + ); +}; +export default Checkbox; diff --git a/src/components/Checkbox/index.ts b/src/components/Checkbox/index.ts new file mode 100644 index 0000000..36fa16d --- /dev/null +++ b/src/components/Checkbox/index.ts @@ -0,0 +1,3 @@ +import Checkbox from './Checkbox'; + +export default Checkbox; diff --git a/src/components/Header/Header.module.scss b/src/components/Header/Header.module.scss index f928b18..f76e6fb 100644 --- a/src/components/Header/Header.module.scss +++ b/src/components/Header/Header.module.scss @@ -27,7 +27,8 @@ } .burgerMenu, - .closeButton { + .closeButton, + .mobileUserProfile { display: none; } @@ -133,6 +134,19 @@ } } + & .mobileUserProfile { + display: block; + position: absolute; + right: 16px; + top: 50%; + transform: translateY(-50%); + opacity: 1; + visibility: visible; + transition: + opacity 0.3s, + visibility 0.3s; + } + & .closeButton { display: block; position: absolute; @@ -165,6 +179,11 @@ } .header.openedSidebar { + & .mobileUserProfile { + opacity: 0; + visibility: hidden; + } + & .closeButton { right: 1rem; } @@ -350,6 +369,11 @@ } .header.openedSidebar { + & .mobileUserProfile { + opacity: 0; + visibility: hidden; + } + & .closeButton { right: 1rem; } diff --git a/src/components/Header/Header.tsx b/src/components/Header/Header.tsx index 956208b..39e2089 100644 --- a/src/components/Header/Header.tsx +++ b/src/components/Header/Header.tsx @@ -1,33 +1,57 @@ import cn from 'classnames'; +import dynamic from 'next/dynamic'; import Image from 'next/image'; import { useRouter } from 'next/router'; -import React, { FC, Fragment, useCallback, useContext } from 'react'; +import React, { + FC, + Fragment, + useCallback, + useContext, + useEffect, + useState, +} from 'react'; import { flushSync } from 'react-dom'; -// import UserProfile from '@components/UserProfile'; -// import LogIn from '@components/LogIn'; import type { TRouter } from '@local-types/global'; import useGlobals from '@hooks/useGlobals'; import { useIsWidthLessThan } from '@hooks/useScreenSize'; +import { userInfoUpdate } from '@api/settings'; +import { getMyInfo } from '@api/strapi'; + import { GlobalContext } from '@components/Context/GlobalContext'; +import LogIn from '@components/LogIn'; import Navbar from '@components/Navbar'; import Link from '@components/NextLink'; +import UserProfile from '@components/UserProfile'; import styles from './Header.module.scss'; +const SettingsModal = dynamic(() => import('@components/SettingsModal'), { + ssr: false, +}); + const Header: FC = () => { const router = useRouter(); const { locale, locales } = router as TRouter; const { setShowLoader, videoRef } = useContext(GlobalContext); + const [openSettings, setOpenSettings] = useState(false); + const [usernameIsTakenError, setUsernameIsTakenError] = useState(''); + const [token, setToken] = useState<string | null>(null); const isSmallScreen = useIsWidthLessThan(1141); - // const [openLogin, setOpenLogin] = useState(false); - // const { accountData, setAccountData } = useContext(GlobalContext); + const [openLogin, setOpenLogin] = useState(false); + const { accountData, setAccountData } = useContext(GlobalContext); const [ { toggleIsDarkTheme, toggleSidebar }, { isDarkTheme, isOpenedSidebar }, ] = useGlobals(); + + useEffect(() => { + const storedToken = localStorage.getItem('accessToken'); + setToken(storedToken); + }, []); + const handleToggleTheme = useCallback(() => { toggleIsDarkTheme(); }, []); @@ -36,6 +60,38 @@ const Header: FC = () => { toggleSidebar(); }, []); + const handleOpenSettings = useCallback(() => { + setOpenSettings(true); + }, []); + + const handleSaveClick = async ( + username: string, + linkedInUrl: string, + isEmailPublic: string, + isLinkedinPublic: string, + title?: string, + ) => { + const mailIsPublic = isEmailPublic === 'everyone'; + const linkedInIsPublic = isLinkedinPublic === 'everyone'; + try { + await userInfoUpdate( + token, + username, + linkedInUrl, + mailIsPublic, + linkedInIsPublic, + title, + ); + + const data = await getMyInfo(); + setAccountData(data); + setOpenSettings(false); + setUsernameIsTakenError(''); + } catch (error) { + setOpenSettings(true); + setUsernameIsTakenError('Username is already taken'); + } + }; const handleClick = (e, path: string) => { e.preventDefault(); flushSync(() => { @@ -88,6 +144,21 @@ const Header: FC = () => { <div /> <div /> </div> + {isSmallScreen && ( + <div className={styles.mobileUserProfile}> + <UserProfile + setAccountData={setAccountData} + isLoggedIn={!!accountData} + isDarkTheme={isDarkTheme} + username={accountData?.username} + setOpenLoginModal={setOpenLogin} + userImage={accountData?.picture} + handleOpenSettings={handleOpenSettings} + hideDropdown={isOpenedSidebar} + hideUsername + /> + </div> + )} <div> <Navbar handleToggleSidebar={handleToggleSidebar} @@ -157,18 +228,36 @@ const Header: FC = () => { </Link> )} </div> - {/*<UserProfile*/} - {/* showDropdown*/} - {/* setAccountData={setAccountData}*/} - {/* isLoggedIn={!!accountData}*/} - {/* username={accountData?.username}*/} - {/* setOpenLoginModal={setOpenLogin}*/} - {/*/>*/} + {!isSmallScreen && ( + <UserProfile + setAccountData={setAccountData} + isLoggedIn={!!accountData} + isDarkTheme={isDarkTheme} + username={accountData?.username} + setOpenLoginModal={setOpenLogin} + userImage={accountData?.picture} + handleOpenSettings={handleOpenSettings} + /> + )} </div> </div> <div className={styles.closeButton} onClick={handleToggleSidebar} /> </header> - {/*{openLogin && <LogIn setShowLogIn={setOpenLogin} />}*/} + {openLogin && <LogIn setShowLogIn={setOpenLogin} />} + {openSettings && ( + <SettingsModal + setOpenSettings={setOpenSettings} + currentUsername={accountData?.username} + currentEmail={accountData?.email} + mailStatus={accountData?.publicEmail} + linkedin={accountData?.linkedIn} + linkedinStatus={accountData?.publicLinkedin} + handleSaveClick={handleSaveClick} + setUsernameIsTakenError={setUsernameIsTakenError} + usernameIsTakenError={usernameIsTakenError} + setChangedTitle={() => {}} + /> + )} </Fragment> ); }; diff --git a/src/components/LogIn/LogIn.tsx b/src/components/LogIn/LogIn.tsx index 82b75ae..f1cb1a9 100644 --- a/src/components/LogIn/LogIn.tsx +++ b/src/components/LogIn/LogIn.tsx @@ -1,7 +1,7 @@ import cn from 'classnames'; import { useRouter } from 'next/router'; import { signOut, useSession } from 'next-auth/react'; -import React, { FC, useContext, useEffect } from 'react'; +import React, { FC, useContext } from 'react'; import { setRedirectCookie } from '@lib/cookies'; @@ -29,6 +29,9 @@ const LogIn: FC<LogInProps> = ({ setShowLogIn, source }) => { provider: string, logInSource: string, ) => { + const returnTo = router.asPath; + setRedirectCookie(returnTo); + if (session && accountData === null) { await signOut({ redirect: false }); @@ -46,12 +49,6 @@ const LogIn: FC<LogInProps> = ({ setShowLogIn, source }) => { } }; - useEffect(() => { - if (!session) { - setRedirectCookie(window.location.pathname + window.location.search); - } - }, [session, router]); - return ( <Modal onClick={handleClose}> <div className={styles.container}> diff --git a/src/components/Modal/Modal.module.scss b/src/components/Modal/Modal.module.scss index 23c2deb..379d92c 100644 --- a/src/components/Modal/Modal.module.scss +++ b/src/components/Modal/Modal.module.scss @@ -10,7 +10,7 @@ background-color: rgba(0, 0, 0, 0.35); align-items: center; justify-content: center; - z-index: 45; + z-index: 200; .wrapper { display: flex; @@ -89,6 +89,10 @@ display: block; width: 24px; height: 24px; + + :global(.darkTheme) & { + filter: invert(1); + } } .blackTitle { @@ -107,6 +111,23 @@ } } + .hr { + border: none; + background-image: url('/keepsimple_/assets/longevity/environment/line.png'); + background-size: cover; + height: 1px; + width: clamp(319px, 50vw, 466px); + margin: 0; + position: absolute; + top: 55px; + left: 14px; + + :global(.darkTheme) & { + background-image: none; + background-color: #5b5b5b; + } + } + .body { padding: 16px 28px; overflow: auto; @@ -159,7 +180,6 @@ bottom: 0; align-items: center; justify-content: center; - z-index: 46; } @media (max-width: 965px) { diff --git a/src/components/Modal/Modal.tsx b/src/components/Modal/Modal.tsx index 25b42cf..2150907 100644 --- a/src/components/Modal/Modal.tsx +++ b/src/components/Modal/Modal.tsx @@ -26,6 +26,7 @@ type ModalProps = { grayTitle?: boolean; dataCy?: string; backgroundImageUrl?: string; + hasHr?: boolean; }; const Modal: FC<ModalProps> = ({ @@ -49,6 +50,7 @@ const Modal: FC<ModalProps> = ({ dataCy, isLongevityProtocolModal, backgroundImageUrl, + hasHr, }) => { const handleClose = () => { onClick(); @@ -130,6 +132,7 @@ const Modal: FC<ModalProps> = ({ > {title} </span> + {hasHr && <hr className={styles.hr} />} <div className={styles.closeIconWrapper} onClick={onClick} diff --git a/src/components/SettingsModal/SettingsModal.module.scss b/src/components/SettingsModal/SettingsModal.module.scss new file mode 100644 index 0000000..73bfa55 --- /dev/null +++ b/src/components/SettingsModal/SettingsModal.module.scss @@ -0,0 +1,134 @@ +.FieldsSection { + display: flex; + flex-direction: column; + gap: 24px; +} + +.FieldGroup { + display: flex; + flex-direction: column; + gap: 8px; +} + +.FieldGroupWithVisibility { + display: flex; + flex-direction: column; + gap: 4px; +} + +.Label { + font-family: 'Source Serif 4', 'Source-Serif-Regular', serif; + font-size: 14px; + line-height: 1.371; + color: #000; +} + +.BtnWrapper { + display: flex; + gap: 8px; + justify-content: flex-end; +} + +.CancelBtn { + border: 1px solid #242424 !important; + border-radius: 0 !important; + background-color: transparent !important; + color: #242424 !important; + font-family: 'Source Serif 4', 'Source-Serif-Regular', serif; + font-size: 14px !important; + line-height: 1.4; + height: 40px !important; + padding: 9px 16px !important; +} + +.SaveBtn { + background-color: #242424 !important; + border: 1px solid #242424 !important; + border-radius: 0 !important; + color: #fff !important; + font-family: 'Source Serif 4', 'Source-Serif-Regular', serif; + font-size: 16px !important; + line-height: 1.4; + height: 40px !important; + padding: 6px 23px; + + &:hover { + background-color: #242424 !important; + border-color: #242424 !important; + color: #fff !important; + } +} + +.ModalBody { + padding: 24px 28px 16px 28px !important; +} + +.ModalWrapper { + max-width: 480px !important; + width: 480px !important; + border-radius: 0; + background-image: url('/keepsimple_/assets/landingPage/landing-bg.png') !important; + + > div:first-child > span:first-child { + text-transform: uppercase; + font-family: 'Aboreto-Regular', sans-serif; + font-size: 20px; + padding: 20px 28px 10px 28px !important; + } + + &.RuLocale > div:first-child > span:first-child { + font-family: 'Source-Serif-Regular', sans-serif; + } +} + +// Dark mode +:global(.darkTheme) { + .ModalWrapper { + background-image: url('/keepsimple_/assets/landingPage/landing-dark-bg.png') !important; + + > div:first-child > span:first-child { + color: #fff; + } + } + + .Label { + color: #fff; + } + + .CancelBtn { + border-color: #fff !important; + color: #fff !important; + } + + .SaveBtn { + background-color: #fff !important; + border-color: #fff !important; + color: rgba(0, 0, 0, 0.85) !important; + + &:hover { + background-color: #fff !important; + border-color: #fff !important; + color: rgba(0, 0, 0, 0.85) !important; + } + } +} + +@media (max-width: 750px) { + .ModalWrapper { + max-width: 343px !important; + width: 343px !important; + } + + .FieldGroupWithVisibility { + gap: 12px; + } + + .BtnWrapper { + justify-content: center; + + .CancelBtn, + .SaveBtn { + flex: 1; + } + } +} diff --git a/src/components/SettingsModal/SettingsModal.tsx b/src/components/SettingsModal/SettingsModal.tsx new file mode 100644 index 0000000..455a454 --- /dev/null +++ b/src/components/SettingsModal/SettingsModal.tsx @@ -0,0 +1,216 @@ +import cn from 'classnames'; +import { useRouter } from 'next/router'; +import { FC, useCallback, useState } from 'react'; + +import { TRouter } from '@local-types/global'; + +import { + isValidEmail, + linkedInRegex, + usernameRegex, +} from '@lib/settings-helpers'; + +import settingsData from '@data/settings'; + +import Button from '@components/Button'; +import Checkbox from '@components/Checkbox'; +import Input from '@components/Input'; +import Modal from '@components/Modal'; +import Textarea from '@components/Textarea'; + +import styles from './SettingsModal.module.scss'; + +type SettingsModalProps = { + setOpenSettings: (openSettings: boolean) => void; + currentUsername: string; + currentEmail: string; + defaultSelectedTitle?: string; + mailStatus?: boolean; + linkedin?: string; + linkedinStatus?: boolean; + changeTitlePermission?: boolean; + usernameIsTakenError?: string; + setUsernameIsTakenError: (usernameIsTakenError: string) => void; + setChangedTitle: (selected: boolean) => void; + handleSaveClick: ( + username: string, + linkedInUrl: string, + isEmailPublic: string, + isLinkedinPublic: string, + title?: string, + ) => void; +}; + +const SettingsModal: FC<SettingsModalProps> = ({ + setOpenSettings, + currentUsername, + handleSaveClick, + currentEmail, + mailStatus, + linkedinStatus, + linkedin, + usernameIsTakenError, + setUsernameIsTakenError, + defaultSelectedTitle, + changeTitlePermission, + setChangedTitle, +}) => { + const router = useRouter(); + const { locale } = router as TRouter; + const currentLocale = locale === 'ru' ? 'ru' : 'en'; + const [isEmailPublic, setIsEmailPublic] = useState( + !!mailStatus ? 'everyone' : 'onlyMe', + ); + const [isLinkedinPublic, setIsLinkedinPublic] = useState( + !!linkedinStatus ? 'everyone' : 'onlyMe', + ); + const [username, setUsername] = useState(currentUsername); + const [linkedInUrl, setLinkedInUrl] = useState(linkedin); + const [selectedTitle] = useState(defaultSelectedTitle); + const [isValid, setIsValid] = useState({ username: true, linkedin: true }); + + const { + title, + usernameTxt, + email, + visible, + everyone, + onlyYou, + linkedIn, + saveBtn, + cancelBtn, + usernameValidationMessage, + invalidLinkedIn, + } = settingsData[currentLocale]; + + const closeSettings = () => { + setOpenSettings(false); + setUsernameIsTakenError(''); + }; + + const validateUsername = (username: string) => { + if (username.trim() === '') { + return false; + } + return usernameRegex.test(username); + }; + + const validateLinkedIn = (linkedInUrl: string) => { + return linkedInRegex.test(linkedInUrl); + }; + + const handleValidation = useCallback( + (value: boolean, type: 'username' | 'linkedin') => { + setIsValid(prevIsValid => ({ + ...prevIsValid, + [type]: value, + })); + }, + [isValid], + ); + + const handleSave = () => { + if (isValid.username && isValid.linkedin) { + handleSaveClick( + username, + linkedInUrl, + isEmailPublic, + isLinkedinPublic, + changeTitlePermission ? selectedTitle : undefined, + ); + } + setChangedTitle && setChangedTitle(true); + }; + + return ( + <Modal + title={title} + onClick={closeSettings} + blackTitle + hasHr + removeBorderMobile + fullSizeMobile + wrapperClassName={cn(styles.ModalWrapper, { + [styles.RuLocale]: currentLocale === 'ru', + })} + bodyClassName={styles.ModalBody} + > + <div className={styles.FieldsSection}> + <div className={styles.FieldGroup}> + <span className={styles.Label}>{usernameTxt}</span> + <Textarea + text={username} + onChange={value => { + setUsername(value); + if (usernameIsTakenError) setUsernameIsTakenError(''); + }} + validationFunction={validateUsername} + isValidCallback={v => handleValidation(v, 'username')} + showError={!isValid.username || !!usernameIsTakenError} + errorMessage={ + usernameIsTakenError + ? usernameIsTakenError + : usernameValidationMessage + } + /> + </div> + <div className={styles.FieldGroupWithVisibility}> + <div className={styles.FieldGroup}> + <span className={styles.Label}>{email}</span> + <Input + disabled + placeholder={isValidEmail(currentEmail) ? currentEmail : ''} + /> + </div> + <Checkbox + visibleTxt={visible} + everyone={everyone} + onlyYou={onlyYou} + setRadioValue={setIsEmailPublic} + radioValue={isEmailPublic} + /> + </div> + <div className={styles.FieldGroupWithVisibility}> + <div className={styles.FieldGroup}> + <span className={styles.Label}>{linkedIn}</span> + <Textarea + text={linkedInUrl} + onChange={value => { + setLinkedInUrl(value); + }} + validationFunction={validateLinkedIn} + isValidCallback={v => handleValidation(v, 'linkedin')} + showError={!isValid.linkedin} + errorMessage={invalidLinkedIn} + /> + </div> + <Checkbox + visibleTxt={visible} + everyone={everyone} + onlyYou={onlyYou} + setRadioValue={setIsLinkedinPublic} + radioValue={isLinkedinPublic} + /> + </div> + </div> + <div className={styles.BtnWrapper}> + <Button + label={cancelBtn} + onClick={closeSettings} + className={styles.CancelBtn} + /> + <Button + label={saveBtn} + onClick={() => { + handleSave(); + }} + variant="black" + className={styles.SaveBtn} + disabled={!isValid.username || !isValid.linkedin || !username} + /> + </div> + </Modal> + ); +}; + +export default SettingsModal; diff --git a/src/components/SettingsModal/index.ts b/src/components/SettingsModal/index.ts new file mode 100644 index 0000000..1aedb9c --- /dev/null +++ b/src/components/SettingsModal/index.ts @@ -0,0 +1,3 @@ +import SettingsModal from './SettingsModal'; + +export default SettingsModal; diff --git a/src/components/Textarea/Textarea.module.scss b/src/components/Textarea/Textarea.module.scss new file mode 100644 index 0000000..a2d2ef9 --- /dev/null +++ b/src/components/Textarea/Textarea.module.scss @@ -0,0 +1,85 @@ +.Textarea { + font-size: 16px; + color: #000; + margin-bottom: 20px; + + .Label { + margin-bottom: 10px; + font-size: 16px; + } + + & .TextareaWrapper { + position: relative; + font-size: 0; + + textarea { + resize: none; + width: 100%; + border-radius: 4px; + border: 1px solid #cbcbcb; + padding: 6px 10px; + box-sizing: border-box; + position: relative; + z-index: 1; + height: 38px; + font-size: 16px; + + &::placeholder { + /* Chrome, Firefox, Opera, Safari 10.1+ */ + color: #ababab; + opacity: 1; /* Firefox */ + } + + &:focus { + border-color: #6d6d6d; + outline: none; + } + } + + & .ErrorMessage { + position: absolute; + bottom: 0; + left: 0px; + color: red; + font-size: 14px; + z-index: 0; + transition: 0.2s; + } + } + + &.Error { + & .TextareaWrapper { + .ErrorMessage { + bottom: -23px; + } + } + } +} + +@media (max-width: 1440px) { + .Textarea { + font-size: 14px; + + .Label { + font-size: 14px; + } + + & .ErrorMessage { + font-size: 12px; + } + } +} + +@media (max-width: 901px) { + .Textarea { + font-size: 16px; + + .Label { + font-size: 16px; + } + + & .ErrorMessage { + font-size: 14px; + } + } +} diff --git a/src/components/Textarea/Textarea.tsx b/src/components/Textarea/Textarea.tsx new file mode 100644 index 0000000..542bf1d --- /dev/null +++ b/src/components/Textarea/Textarea.tsx @@ -0,0 +1,83 @@ +import cn from 'classnames'; +import { + ChangeEvent, + FC, + useCallback, + useEffect, + useRef, + useState, +} from 'react'; + +import styles from './Textarea.module.scss'; + +type TTextarea = { + label?: string; + placeholder?: string; + showError?: boolean; + validationFunction?: (value: string) => boolean; + errorMessage?: string; + onChange?: (value: string) => void; + isValidCallback?: (isValid: boolean) => void; + className?: string; + text?: string; +}; + +const Textarea: FC<TTextarea> = ({ + label, + placeholder, + showError, + onChange, + errorMessage, + isValidCallback, + validationFunction, + className, + text, +}) => { + const [value, setValue] = useState(''); + const debounceRef: any = useRef(); + const handleChange = useCallback( + (e: ChangeEvent<HTMLTextAreaElement>) => { + const { value: newValue } = e.target; + + setValue(newValue); + if (onChange) onChange(newValue); + + if (validationFunction) { + clearTimeout(debounceRef.current); + + debounceRef.current = setTimeout(() => { + const newIsValid = !!newValue ? validationFunction(newValue) : true; + if (isValidCallback) isValidCallback(newIsValid); + }, 250); + } + }, + [isValidCallback, validationFunction, onChange], + ); + + useEffect(() => { + if (text) setValue(text); + }, [text]); + + return ( + <div + className={cn(styles.Textarea, { + [styles.Error]: showError, + })} + > + <div className={styles.Label}>{label}</div> + <div className={styles.TextareaWrapper}> + <textarea + placeholder={placeholder} + value={value} + onChange={handleChange} + className={className} + ></textarea> + {validationFunction && ( + <div className={styles.ErrorMessage}>{errorMessage}</div> + )} + </div> + </div> + ); +}; + +export default Textarea; diff --git a/src/components/Textarea/index.ts b/src/components/Textarea/index.ts new file mode 100644 index 0000000..2391adc --- /dev/null +++ b/src/components/Textarea/index.ts @@ -0,0 +1,3 @@ +import Textarea from './Textarea'; + +export default Textarea; diff --git a/src/components/UserProfile/UserProfile.module.scss b/src/components/UserProfile/UserProfile.module.scss new file mode 100644 index 0000000..4fcd8f0 --- /dev/null +++ b/src/components/UserProfile/UserProfile.module.scss @@ -0,0 +1,113 @@ +.userContainer { + position: relative; + display: flex; + align-items: center; + padding-right: 24px; + padding-left: 24px; + + .user { + display: flex; + justify-content: center; + align-items: center; + gap: 10px; + cursor: pointer; + } + + .userName { + font-family: 'Sarabun-Regular', serif; + font-size: 14px; + color: #252626; + } + + .image { + border-radius: 50%; + } + + .dropdown { + position: absolute; + top: calc(100% + 8px); + right: 24px; + min-width: 180px; + background-image: url('/keepsimple_/assets/user-dropdown/white-bg.png'); + background-size: cover; + background-position: center; + border: 1px solid #c4c4c4; + box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.12); + z-index: 200; + display: flex; + flex-direction: column; + } + + .userNameDropdown { + font-family: 'Sarabun-Regular', serif; + font-size: 14px; + font-weight: 600; + color: #252626; + padding-bottom: 8px; + border-bottom: 1px solid #c4c4c4; + margin-bottom: 4px; + } + + .menuItem { + display: flex; + align-items: center; + gap: 8px; + padding: 12px; + border-radius: 6px; + cursor: pointer; + font-family: 'Sarabun-Regular', serif; + font-size: 14px; + color: #252626; + transition: background-color 0.2s; + + &:first-of-type { + border-bottom: 1px solid #c4c4c4; + border-radius: 6px 6px 0 0; + padding-bottom: 12px; + } + + &:hover { + background-color: rgba(0, 0, 0, 0.06); + border-radius: 0; + } + } + + .menuIcon { + flex-shrink: 0; + } + + .menuIconDark { + filter: invert(1); + } +} + +.userContainer.darkTheme { + .userName { + color: #fff; + } + + .dropdown { + background-image: url('/keepsimple_/assets/user-dropdown/black-bg.png'); + border-color: #c4c4c4; + box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.4); + } + + .userNameDropdown { + color: #fff; + border-bottom-color: #c4c4c4; + } + + .menuItem { + color: #fff; + + &:hover { + background-color: rgba(255, 255, 255, 0.1); + } + } +} + +@media (max-width: 1110px) { + .userContainer { + padding-right: 0; + } +} diff --git a/src/components/UserProfile/UserProfile.tsx b/src/components/UserProfile/UserProfile.tsx new file mode 100644 index 0000000..ccd12b7 --- /dev/null +++ b/src/components/UserProfile/UserProfile.tsx @@ -0,0 +1,170 @@ +import cn from 'classnames'; +import Image from 'next/image'; +import { NextRouter, useRouter } from 'next/router'; +import React, { FC, useCallback, useEffect, useState } from 'react'; +import Skeleton from 'react-loading-skeleton'; + +import { logout } from '@api/auth'; + +import 'react-loading-skeleton/dist/skeleton.css'; +import styles from './UserProfile.module.scss'; + +type UserProfileProps = { + username?: string; + userImage?: string; + isLoggedIn?: boolean; + isDarkTheme?: boolean; + hideDropdown?: boolean; + hideUsername?: boolean; + setAccountData?: (updater: (prev: boolean) => boolean) => void; + setOpenLoginModal?: (openModal: boolean) => void; + handleOpenSettings?: () => void; +}; + +const labels = { + en: { settings: 'Settings', logout: 'Log out' }, + ru: { settings: 'Настройки', logout: 'Выйти' }, + hy: { settings: 'Settings', logout: 'Log out' }, +}; + +const UserProfile: FC<UserProfileProps> = ({ + username, + userImage, + isLoggedIn, + isDarkTheme, + hideDropdown, + hideUsername, + setAccountData, + setOpenLoginModal, + handleOpenSettings, +}) => { + const router: NextRouter = useRouter(); + const locale = (router.locale || 'en') as keyof typeof labels; + const t = labels[locale] || labels.en; + + const [isAccessTokenExist, setIsAccessTokenExist] = useState(false); + const [isDropdownOpen, setIsDropdownOpen] = useState(false); + + const toggleDropdown = useCallback((e: React.MouseEvent) => { + e.stopPropagation(); + setIsDropdownOpen(prev => !prev); + }, []); + + const handleLogout = useCallback(() => { + setAccountData(null); + logout(); + document.cookie = `accessToken=; path=/; Secure; SameSite=Strict;`; + setIsDropdownOpen(false); + }, []); + + const handleSettings = useCallback(() => { + setIsDropdownOpen(false); + handleOpenSettings?.(); + }, [handleOpenSettings]); + + useEffect(() => { + if (hideDropdown) setIsDropdownOpen(false); + }, [hideDropdown]); + + useEffect(() => { + if (!isDropdownOpen) return; + const handleClickOutside = () => setIsDropdownOpen(false); + document.addEventListener('click', handleClickOutside); + return () => document.removeEventListener('click', handleClickOutside); + }, [isDropdownOpen]); + + useEffect(() => { + localStorage.setItem('link', router.asPath); + }, []); + + const renderUserName = () => { + if (!isLoggedIn && isAccessTokenExist) { + return <Skeleton width={100} />; + } + return username; + }; + + const renderUserImage = () => { + if (!isLoggedIn && isAccessTokenExist) { + return '/assets/avatar.svg'; + } + return userImage; + }; + useEffect(() => { + const accessToken = localStorage.getItem('accessToken'); + if (accessToken) { + setIsAccessTokenExist(true); + } + }, []); + + return ( + <> + <div + className={cn(styles.userContainer, { + [styles.darkTheme]: isDarkTheme, + })} + > + {isAccessTokenExist ? ( + <div + className={cn(styles.user, { + [styles.active]: isDropdownOpen, + })} + onClick={toggleDropdown} + > + <Image + src={renderUserImage()} + alt="pic" + width={32} + height={32} + className={styles.image} + /> + {!hideUsername && ( + <span className={styles.userName}>{renderUserName()}</span> + )} + </div> + ) : ( + <div className={styles.user} onClick={() => setOpenLoginModal(true)}> + <Image + src={'/keepsimple_/assets/avatar.svg'} + alt="pic" + width={32} + height={32} + className={styles.image} + /> + {!hideUsername && <span className={styles.userName}>Log In</span>} + </div> + )} + {isDropdownOpen && isAccessTokenExist && ( + <div className={styles.dropdown} onClick={e => e.stopPropagation()}> + <div className={styles.menuItem} onClick={handleSettings}> + <Image + src="/keepsimple_/assets/icons/user-dropdown/settings.svg" + alt="settings" + width={15} + height={16} + className={cn(styles.menuIcon, { + [styles.menuIconDark]: isDarkTheme, + })} + /> + <span>{t.settings}</span> + </div> + <div className={styles.menuItem} onClick={handleLogout}> + <Image + src="/keepsimple_/assets/icons/user-dropdown/log-out.svg" + alt="log out" + width={14} + height={14} + className={cn(styles.menuIcon, { + [styles.menuIconDark]: isDarkTheme, + })} + /> + <span>{t.logout}</span> + </div> + </div> + )} + </div> + </> + ); +}; + +export default UserProfile; diff --git a/src/components/UserProfile/UserProfile.types.ts b/src/components/UserProfile/UserProfile.types.ts new file mode 100644 index 0000000..521a52d --- /dev/null +++ b/src/components/UserProfile/UserProfile.types.ts @@ -0,0 +1,4 @@ +export interface UserProfileProps { + accountData?: any; + onClick?: (value: boolean) => void; +} diff --git a/src/components/UserProfile/index.ts b/src/components/UserProfile/index.ts new file mode 100644 index 0000000..06cbd25 --- /dev/null +++ b/src/components/UserProfile/index.ts @@ -0,0 +1,3 @@ +import UserProfile from './UserProfile'; + +export default UserProfile; diff --git a/src/components/vibesuite/CategoryIcons/CategoryIcons.module.scss b/src/components/vibesuite/CategoryIcons/CategoryIcons.module.scss new file mode 100644 index 0000000..da79e8f --- /dev/null +++ b/src/components/vibesuite/CategoryIcons/CategoryIcons.module.scss @@ -0,0 +1,2 @@ +// No module-scoped styles needed — icon styles are applied inline via iconStyle object +// which uses CSS variables from .vibesuite-root scope diff --git a/src/components/vibesuite/CategoryIcons/CategoryIcons.tsx b/src/components/vibesuite/CategoryIcons/CategoryIcons.tsx new file mode 100644 index 0000000..a3f8f89 --- /dev/null +++ b/src/components/vibesuite/CategoryIcons/CategoryIcons.tsx @@ -0,0 +1,155 @@ +import { CategoryIconProps } from './CategoryIcons.types'; + +const iconStyle = { + width: '1em', + height: '1em', + display: 'inline-block', + verticalAlign: '-0.1em', + fill: 'none', + stroke: 'currentColor', + strokeWidth: 1.5, + strokeLinecap: 'round' as const, + strokeLinejoin: 'round' as const, +}; + +function Icon({ children }: { children: React.ReactNode }) { + return ( + <svg viewBox="0 0 24 24" style={iconStyle} aria-hidden="true"> + {children} + </svg> + ); +} + +function LlmAiIcon() { + return ( + <Icon> + <circle cx="12" cy="4" r="2" /> + <circle cx="4" cy="12" r="2" /> + <circle cx="20" cy="12" r="2" /> + <circle cx="8" cy="20" r="2" /> + <circle cx="16" cy="20" r="2" /> + <line x1="12" y1="6" x2="4" y2="10" /> + <line x1="12" y1="6" x2="20" y2="10" /> + <line x1="4" y1="14" x2="8" y2="18" /> + <line x1="20" y1="14" x2="16" y2="18" /> + <line x1="8" y1="18" x2="16" y2="18" /> + </Icon> + ); +} + +function LocalAiIcon() { + return ( + <Icon> + <rect x="2" y="3" width="20" height="18" rx="2" /> + <polyline points="6,9 10,12 6,15" /> + <line x1="12" y1="15" x2="18" y2="15" /> + </Icon> + ); +} + +function ImageVideoIcon() { + return ( + <Icon> + <rect x="3" y="3" width="18" height="18" rx="1" /> + <circle cx="8.5" cy="8.5" r="1.5" /> + <polyline points="21,15 16,10 5,21" /> + <line x1="14" y1="14" x2="21" y2="21" /> + </Icon> + ); +} + +function FrontendUiIcon() { + return ( + <Icon> + <rect x="2" y="3" width="20" height="18" rx="2" /> + <line x1="2" y1="8" x2="22" y2="8" /> + <circle cx="5" cy="5.5" r="0.5" fill="currentColor" stroke="none" /> + <circle cx="7.5" cy="5.5" r="0.5" fill="currentColor" stroke="none" /> + <circle cx="10" cy="5.5" r="0.5" fill="currentColor" stroke="none" /> + <rect x="5" y="11" width="6" height="7" rx="0.5" /> + <line x1="14" y1="11" x2="19" y2="11" /> + <line x1="14" y1="14" x2="19" y2="14" /> + <line x1="14" y1="17" x2="17" y2="17" /> + </Icon> + ); +} + +function BackendDbIcon() { + return ( + <Icon> + <ellipse cx="12" cy="5" rx="8" ry="3" /> + <path d="M4,5 v14 c0,1.66 3.58,3 8,3 s8-1.34 8-3 V5" /> + <path d="M4,12 c0,1.66 3.58,3 8,3 s8-1.34 8-3" /> + </Icon> + ); +} + +function AuthSecurityIcon() { + return ( + <Icon> + <path d="M12,2 L3,7 v5 c0,5.55 3.84,10.74 9,12 5.16-1.26 9-6.45 9-12 V7 Z" /> + <rect x="9" y="10" width="6" height="5" rx="1" /> + <path d="M10,10 V8 a2,2 0 0,1 4,0 v2" /> + </Icon> + ); +} + +function DeployInfraIcon() { + return ( + <Icon> + <path + d="M18,10 h1 a4,4 0 0,1 0,8 H6 A5,5 0 1,1 7.7,9.3 a7,7 0 0,1 13.3,1.7" + fill="none" + /> + <polyline points="12,13 12,21" /> + <polyline points="9,16 12,13 15,16" /> + </Icon> + ); +} + +function PaymentsIcon() { + return ( + <Icon> + <circle cx="12" cy="12" r="9" /> + <path d="M14.5,8 H10.5 a2,2 0 0,0 0,4 H13.5 a2,2 0 0,1 0,4 H9.5" /> + <line x1="12" y1="6" x2="12" y2="8" /> + <line x1="12" y1="16" x2="12" y2="18" /> + </Icon> + ); +} + +function IntegrationsIcon() { + return ( + <Icon> + <path d="M10,13 a5,5 0 0,1 0-7 l1-1 a5,5 0 0,1 7,7 l-1,1" /> + <path d="M14,11 a5,5 0 0,1 0,7 l-1,1 a5,5 0 0,1 -7,-7 l1-1" /> + </Icon> + ); +} + +function AiToolsIcon() { + return ( + <Icon> + <polygon points="13,2 3,14 12,14 11,22 21,10 12,10" fill="none" /> + </Icon> + ); +} + +const CATEGORY_ICONS: Record<string, React.ComponentType> = { + 'llm-ai': LlmAiIcon, + 'local-ai': LocalAiIcon, + 'image-video': ImageVideoIcon, + 'frontend-ui': FrontendUiIcon, + 'backend-db': BackendDbIcon, + 'auth-security': AuthSecurityIcon, + 'deploy-infra': DeployInfraIcon, + payments: PaymentsIcon, + integrations: IntegrationsIcon, + 'ai-tools': AiToolsIcon, +}; + +export default function CategoryIcon({ categoryId }: CategoryIconProps) { + const IconComponent = CATEGORY_ICONS[categoryId]; + if (!IconComponent) return null; + return <IconComponent />; +} diff --git a/src/components/vibesuite/CategoryIcons/CategoryIcons.types.ts b/src/components/vibesuite/CategoryIcons/CategoryIcons.types.ts new file mode 100644 index 0000000..0f9ce9e --- /dev/null +++ b/src/components/vibesuite/CategoryIcons/CategoryIcons.types.ts @@ -0,0 +1,3 @@ +export type CategoryIconProps = { + categoryId: string; +}; diff --git a/src/components/vibesuite/CategoryIcons/index.ts b/src/components/vibesuite/CategoryIcons/index.ts new file mode 100644 index 0000000..718bafa --- /dev/null +++ b/src/components/vibesuite/CategoryIcons/index.ts @@ -0,0 +1,3 @@ +import CategoryIcons from './CategoryIcons'; + +export default CategoryIcons; diff --git a/src/components/vibesuite/CategoryNav/CategoryNav.module.scss b/src/components/vibesuite/CategoryNav/CategoryNav.module.scss new file mode 100644 index 0000000..56a2ca7 --- /dev/null +++ b/src/components/vibesuite/CategoryNav/CategoryNav.module.scss @@ -0,0 +1,177 @@ +.nav { + position: fixed; + left: 0; + top: 124px; + bottom: 0; + width: 376px; + z-index: 50; + background: var(--bg-card); + border-right: 1px solid var(--border); + overflow-y: auto; + padding: 1.5rem 0; + display: flex; + flex-direction: column; +} + +.title { + padding: 0 1.75rem; + margin-bottom: 1.25rem; +} + +.titleLabel { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.2em; + text-transform: uppercase; + color: var(--text-tertiary); +} + +.accentRule { + width: 2rem; + height: 2px; + background: var(--accent); + margin: 0 1.75rem 1.25rem; +} + +.recommendBtn { + display: block; + width: calc(100% - 3.5rem); + margin: 0 1.75rem 1.25rem; + padding: 0.7rem 0.85rem; + background: var(--bg-card); + border: 1px solid var(--border); + border-left: 2px solid var(--accent); + cursor: pointer; + text-align: left; + + &:hover { + border-color: var(--accent); + background: var(--bg-card-active); + } +} + +.recommendBtnTitle { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.12em; + text-transform: uppercase; + color: var(--accent); + display: block; + margin-bottom: 0.15rem; +} + +.recommendBtnSub { + font-family: var(--font-body); + font-size: 0.875rem; + color: var(--text-tertiary); +} + +.allCategoriesBtn { + display: block; + width: 100%; + text-align: left; + padding: 0.6rem 1.75rem; + font-family: var(--font-ui); + font-size: 1rem; + font-weight: 400; + color: var(--text-secondary); + background: transparent; + border: none; + border-left: 3px solid transparent; + cursor: pointer; + transition: all 0.15s ease; + margin-bottom: 0.25rem; + + &.active { + font-weight: 500; + color: var(--accent); + background: var(--bg-card-active); + border-left-color: var(--accent); + } +} + +.navList { + list-style: none; + margin: 0; + padding: 0; +} + +.divider { + height: 1px; + background: var(--border); + margin: 0.5rem 1.75rem; +} + +.categoryBtn { + display: block; + width: 100%; + text-align: left; + padding: 0.6rem 1.75rem; + font-family: var(--font-body); + font-size: 1rem; + font-weight: 400; + color: var(--text-secondary); + background: transparent; + border: none; + border-left: 3px solid transparent; + cursor: pointer; + transition: all 0.15s ease; + margin-bottom: 0.125rem; + + &.active { + color: var(--accent); + background: var(--bg-card-active); + border-left-color: var(--accent); + } +} + +.categoryBtnInner { + display: flex; + justify-content: space-between; + align-items: center; +} + +.categoryBtnName { + display: inline-flex; + align-items: center; + gap: 0.5rem; +} + +.categoryBtnCount { + font-family: var(--font-ui); + font-size: 0.75rem; + color: var(--text-tertiary); + + &.countCompleted { + color: var(--accent); + } +} + +.spacer { + flex: 1; +} + +.bottomSection { + padding: 1.25rem 1.75rem 0.5rem; + border-top: 1px solid var(--border); + margin-top: 1.25rem; +} + +.whyBtn { + font-family: var(--font-body); + font-size: 0.875rem; + font-style: italic; + color: var(--text-tertiary); + background: none; + border: none; + cursor: pointer; + text-decoration: underline; + text-underline-offset: 3px; + padding: 0; + + &:hover { + color: var(--accent); + } +} diff --git a/src/components/vibesuite/CategoryNav/CategoryNav.tsx b/src/components/vibesuite/CategoryNav/CategoryNav.tsx new file mode 100644 index 0000000..9176f18 --- /dev/null +++ b/src/components/vibesuite/CategoryNav/CategoryNav.tsx @@ -0,0 +1,104 @@ +import cn from 'classnames'; +import { useRouter } from 'next/router'; +import { useMemo } from 'react'; + +import type { TRouter } from '@local-types/global'; + +import vibesuiteIntl from '@data/vibesuite/intl'; +import { localizeCategory } from '@data/vibesuite/localizeSkills'; +import { categories } from '@data/vibesuite/skills'; + +import CategoryIcon from '@components/vibesuite/CategoryIcons'; + +import { CategoryNavProps } from './CategoryNav.types'; + +import styles from './CategoryNav.module.scss'; + +export default function CategoryNav({ + progress, + activeCategoryId, + onSelectCategory, + onOpenRecommendations, + onOpenWhyModal, + allCompleted, +}: CategoryNavProps) { + const { locale } = useRouter() as TRouter; + const t = vibesuiteIntl[locale]; + + const localizedCats = useMemo( + () => categories.map(c => localizeCategory(c, locale)), + [locale], + ); + + return ( + <nav className={styles.nav}> + <div className={styles.title}> + <span className={styles.titleLabel}>{t.categoriesTitle}</span> + </div> + + <div className={styles.accentRule} /> + + {!allCompleted && ( + <button className={styles.recommendBtn} onClick={onOpenRecommendations}> + <span className={styles.recommendBtnTitle}>{t.whatToLearnNext}</span> + <span className={styles.recommendBtnSub}>{t.personalizedForYou}</span> + </button> + )} + + <ul className={styles.navList}> + <li> + <button + className={cn(styles.allCategoriesBtn, { + [styles.active]: activeCategoryId === null, + })} + onClick={() => onSelectCategory(null)} + aria-current={activeCategoryId === null ? 'true' : undefined} + > + {t.allCategories} + </button> + </li> + + <li className={styles.divider} role="separator" aria-hidden="true" /> + + {localizedCats.map(cat => { + const total = cat.skills.length; + const done = cat.skills.filter(s => progress[s.id]?.completed).length; + const isActive = activeCategoryId === cat.id; + + return ( + <li key={cat.id}> + <button + className={cn(styles.categoryBtn, { + [styles.active]: isActive, + })} + onClick={() => onSelectCategory(cat.id)} + aria-current={isActive ? 'true' : undefined} + > + <div className={styles.categoryBtnInner}> + <span className={styles.categoryBtnName}> + <CategoryIcon categoryId={cat.id} /> + {cat.name} + </span> + <span + className={cn(styles.categoryBtnCount, { + [styles.countCompleted]: done === total && total > 0, + })} + > + {done}/{total} + </span> + </div> + </button> + </li> + ); + })} + </ul> + + <div className={styles.spacer} /> + <div className={styles.bottomSection}> + <button className={styles.whyBtn} onClick={onOpenWhyModal}> + {t.whyDoINeedThis} + </button> + </div> + </nav> + ); +} diff --git a/src/components/vibesuite/CategoryNav/CategoryNav.types.ts b/src/components/vibesuite/CategoryNav/CategoryNav.types.ts new file mode 100644 index 0000000..38542b5 --- /dev/null +++ b/src/components/vibesuite/CategoryNav/CategoryNav.types.ts @@ -0,0 +1,10 @@ +import { UserProgress } from '@local-types/pageTypes/vibesuite'; + +export type CategoryNavProps = { + progress: UserProgress; + activeCategoryId: string | null; + onSelectCategory: (categoryId: string | null) => void; + onOpenRecommendations: () => void; + onOpenWhyModal: () => void; + allCompleted: boolean; +}; diff --git a/src/components/vibesuite/CategoryNav/index.ts b/src/components/vibesuite/CategoryNav/index.ts new file mode 100644 index 0000000..444954e --- /dev/null +++ b/src/components/vibesuite/CategoryNav/index.ts @@ -0,0 +1,3 @@ +import CategoryNav from './CategoryNav'; + +export default CategoryNav; diff --git a/src/components/vibesuite/MapClient/MapClient.module.scss b/src/components/vibesuite/MapClient/MapClient.module.scss new file mode 100644 index 0000000..fe6d319 --- /dev/null +++ b/src/components/vibesuite/MapClient/MapClient.module.scss @@ -0,0 +1,592 @@ +.root { + min-height: 100vh; + position: relative; + z-index: 1; +} + +.desktopOnly { + display: none; + + @media (min-width: 1024px) { + display: block; + } +} + +/* ─── Main content ─── */ + +.main { + padding-top: 78px; + margin-left: 376px; + min-height: 100vh; + + @media (max-width: 1023px) { + margin-left: 0; + overflow: hidden; + } +} + +.contentWrapper { + max-width: 960px; + margin: 0 auto; + padding: 1rem 2rem 4rem; + + @media (max-width: 1023px) { + padding: 0.75rem 1rem 3rem; + } +} + +/* ─── Page title ─── */ + +.pageTitle { + text-align: center; + h1 { + font-family: var(--font-ui); + font-size: 2.5rem !important; + font-weight: 300; + letter-spacing: 0.25em; + text-transform: uppercase; + color: var(--text-primary); + margin: 0; + } +} + +.titleRow { + gap: 1rem; + + @media (max-width: 1023px) { + gap: 0.5rem; + padding-top: 50px; + } + + @media (max-width: 480px) { + gap: 0.25rem; + } + + h1 { + // font-family: var(--font-ui); + // font-size: 2rem; + // font-weight: 300; + // letter-spacing: 0.25em; + // text-transform: uppercase; + // color: var(--text-primary); + // width: auto; + + @media (max-width: 1023px) { + font-size: 1.15rem; + letter-spacing: 0.15em; + width: auto; + text-align: center; + } + + @media (max-width: 768px) { + font-size: 1rem; + letter-spacing: 0.1em; + } + + @media (max-width: 480px) { + font-size: 0.85rem; + letter-spacing: 0.05em; + } + } +} + +.pageSubtitle { + font-family: var(--font-body); + font-size: 1rem; + color: var(--text-secondary); + line-height: 1; + margin: 0; + padding-top: 16px; +} + +.guideLink { + margin-top: 0; + padding-top: 16px; + padding-bottom: 48px; + font-family: var(--font-body); + font-size: 0.875rem; + font-style: italic; + color: var(--text-tertiary); + background: none; + border: none; + cursor: pointer; + text-decoration: underline; + text-underline-offset: 3px; + transition: color 0.15s ease; + + &:hover { + color: var(--accent); + } +} + +/* ─── Search + filter ─── */ + +.searchRow { + display: flex; + align-items: center; + gap: 1.5rem; + margin: 0 0 1.75rem; + flex-wrap: wrap; + + @media (max-width: 1023px) { + flex-direction: column; + align-items: stretch; + gap: 0.75rem; + } +} + +.searchWrap { + max-width: 300px; + position: relative; + flex: 0 0 auto; + + @media (max-width: 1023px) { + max-width: 100%; + } +} + +.searchInput { + width: 100%; + font-family: var(--font-body); + font-size: 1rem; + padding: 0.6rem 1rem; + background: var(--bg-card); + border: 1px solid var(--border); + color: var(--text-primary); + outline: none; + transition: border-color 0.15s ease; + + &:focus { + border-color: var(--accent); + } +} + +.searchClear { + position: absolute; + right: 0.6rem; + top: 50%; + transform: translateY(-50%); + font-family: var(--font-ui); + font-size: 0.875rem; + color: var(--text-tertiary); + background: none; + border: none; + cursor: pointer; + padding: 0.2rem; + line-height: 1; +} + +.filterRow { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.showLabel { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--text-tertiary); + user-select: none; +} + +.filterBtn { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.1em; + text-transform: uppercase; + padding: 0.3rem 0.7rem; + cursor: pointer; + user-select: none; + transition: + background 0.15s ease, + color 0.15s ease, + border-color 0.15s ease; +} + +/* ─── Category sections ─── */ + +.categoryArea { + transition: opacity 0.15s ease; +} + +.categorySection { + margin-bottom: 3rem; +} + +.sectionHeader { + display: flex; + align-items: center; + gap: 1rem; + margin-bottom: 1rem; + user-select: none; +} + +.sectionH2 { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--text-primary); + white-space: nowrap; + display: inline-flex; + align-items: center; + gap: 0.5rem; +} + +.sectionRule { + flex: 1; + height: 1px; + background: var(--border-strong); +} + +.sectionDesc { + font-family: var(--font-body); + font-size: 1rem; + color: var(--text-secondary); + margin-bottom: 1rem; + font-style: italic; +} + +.cardGrid { + list-style: none; + margin: 0; + padding: 0; + display: grid; + grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); + gap: 0; + + @media (max-width: 1023px) { + grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); + } +} + +.cardGridItem { + display: flex; +} + +/* ─── Scroll-to-top ─── */ + +.scrollTopBtn { + position: fixed; + bottom: 2rem; + right: 2rem; + z-index: 40; + width: 44px; + height: 44px; + border-radius: 50%; + border: 1px solid var(--border-strong); + background: var(--bg-card); + color: var(--text-secondary); + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: + opacity 0.2s ease, + border-color 0.15s ease, + color 0.15s ease; + padding: 0; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); + + @media (max-width: 1023px) { + right: 1rem; + bottom: 1rem; + } + + &:hover { + border-color: var(--accent); + color: var(--accent); + } +} + +/* ─── Guide modal ─── */ + +.guideBackdrop { + position: fixed; + inset: 0; + z-index: 70; + display: flex; + align-items: center; + justify-content: center; + padding: 2rem; + transition: background 0.2s ease; + + @media (max-width: 1023px) { + padding: 1rem; + } +} + +.guideModal { + width: 480px; + max-width: 100%; + background: var(--bg-base); + border: 1px solid var(--border-strong); + padding: 1.75rem; + + @media (max-width: 1023px) { + padding: 1.25rem; + } +} + +.guideHeader { + display: flex; + justify-content: space-between; + align-items: flex-start; + gap: 1rem; + margin-bottom: 1.25rem; +} + +.guideTitleAccent { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.2em; + text-transform: uppercase; + color: var(--accent); + display: block; + margin-bottom: 0.35rem; +} + +.guideTitleMain { + font-family: var(--font-display); + font-size: 1.15rem; + font-weight: 400; + color: var(--text-primary); + line-height: 1.4; +} + +.guideCloseBtn { + width: 36px; + height: 36px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-card); + border: 1px solid var(--border-strong); + cursor: pointer; + font-family: var(--font-ui); + font-size: 1rem; + color: var(--text-secondary); + padding: 0; + flex-shrink: 0; + + &:hover { + border-color: var(--accent); + color: var(--accent); + } +} + +.guideRedRule { + width: 2rem; + height: 2px; + background: var(--accent); + margin-bottom: 1.5rem; +} + +.guideSteps { + list-style: none; + margin: 0 0 1.75rem; + padding: 0; +} + +.guideStep { + display: flex; + gap: 1rem; + align-items: flex-start; +} + +.guideStepBadge { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 600; + color: #fff; + background: var(--accent); + width: 22px; + height: 22px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin-top: 1px; +} + +.guideStepTitle { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--text-primary); + margin-bottom: 0.3rem; +} + +.guideStepDesc { + font-family: var(--font-body); + font-size: 1rem; + color: var(--text-secondary); + line-height: 1.65; +} + +.guideStepDivider { + height: 1px; + background: var(--border); + margin: 1rem 0 1rem 2.35rem; +} + +.guideGotItBtn { + width: 100%; + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + padding: 0.7rem 1.2rem; + background: var(--accent); + border: 1px solid var(--accent); + color: #fff; + cursor: pointer; + transition: background 0.15s ease; + + &:hover { + background: var(--accent-dark, #9a2a2a); + } +} + +/* ─── Why modal ─── */ + +.whyBackdrop { + position: fixed; + inset: 0; + z-index: 60; + display: flex; + align-items: center; + justify-content: center; + padding: 1rem; + transition: background 0.2s ease; +} + +.whyModal { + position: relative; + width: 100%; + max-width: 480px; + background: var(--bg-base); + border: 1px solid var(--border-strong); + padding: 1.75rem; + overflow: hidden; + + @media (max-width: 1023px) { + padding: 1.25rem; + } +} + +.whyBgImg { + position: absolute; + pointer-events: none; + filter: grayscale(100%) contrast(1.1); + + img { + width: 100%; + height: 100%; + object-fit: cover; + } +} + +.whyBgImg1 { + top: -15px; + left: -20px; + width: 180px; + height: 180px; + opacity: 0.25; + transform: rotate(-4deg); + mask-image: radial-gradient(ellipse at center, black 35%, transparent 70%); + -webkit-mask-image: radial-gradient( + ellipse at center, + black 35%, + transparent 70% + ); +} + +.whyBgImg2 { + top: -20px; + right: -30px; + width: 200px; + height: 200px; + opacity: 0.17; + filter: grayscale(100%) contrast(1.2); + transform: rotate(8deg); + mask-image: radial-gradient(ellipse at center, black 30%, transparent 70%); + -webkit-mask-image: radial-gradient( + ellipse at center, + black 30%, + transparent 70% + ); +} + +.whyBgImg3 { + bottom: -25px; + left: 50%; + transform: translateX(-50%) rotate(-6deg); + width: 220px; + height: 220px; + opacity: 0.16; + filter: grayscale(100%) contrast(1.2); + mask-image: radial-gradient(ellipse at center, black 30%, transparent 70%); + -webkit-mask-image: radial-gradient( + ellipse at center, + black 30%, + transparent 70% + ); +} + +.whyContent { + position: relative; + z-index: 1; +} + +.whyCloseRow { + display: flex; + justify-content: flex-end; + margin-bottom: 1rem; +} + +.whyCloseBtn { + width: 36px; + height: 36px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-card); + border: 1px solid var(--border-strong); + cursor: pointer; + font-family: var(--font-ui); + font-size: 1rem; + color: var(--text-secondary); + padding: 0; +} + +.whyRedRule { + width: 2rem; + height: 2px; + background: var(--accent); + margin-bottom: 1.5rem; +} + +.whyBody { + font-family: var(--font-body); + font-size: 1rem; + line-height: 1.85; + color: var(--text-secondary); + + p { + margin-bottom: 1rem; + + &:last-child { + margin-bottom: 0; + } + } +} diff --git a/src/components/vibesuite/MapClient/MapClient.tsx b/src/components/vibesuite/MapClient/MapClient.tsx new file mode 100644 index 0000000..05173d7 --- /dev/null +++ b/src/components/vibesuite/MapClient/MapClient.tsx @@ -0,0 +1,613 @@ +import { useRouter } from 'next/router'; +import { + useCallback, + useContext, + useEffect, + useMemo, + useRef, + useState, +} from 'react'; + +import type { TRouter } from '@local-types/global'; +import { UserProgress } from '@local-types/pageTypes/vibesuite'; + +import { getRecommendations } from '@lib/vibesuite/recommendations'; + +import { updateLearnedSkills } from '@api/vibesuite'; + +import vibesuiteIntl from '@data/vibesuite/intl'; +import { localizeCategory } from '@data/vibesuite/localizeSkills'; +import { + allSkills, + categories, + getCategoryBySkillId, + getSkillById, +} from '@data/vibesuite/skills'; + +import ArrowUp from '@icons/tools/vibesuite/ArrowUp'; + +import { GlobalContext } from '@components/Context/GlobalContext'; +import Heading from '@components/Heading'; +import LogIn from '@components/LogIn'; +import CategoryIcon from '@components/vibesuite/CategoryIcons'; +import CategoryNav from '@components/vibesuite/CategoryNav'; +import ProgressHeader from '@components/vibesuite/ProgressHeader'; +import RecommendationModal from '@components/vibesuite/RecommendationModal'; +import SkillCard from '@components/vibesuite/SkillCard'; +import SkillDetailPanel from '@components/vibesuite/SkillDetailPanel'; + +import { MapClientProps } from './MapClient.types'; + +import styles from './MapClient.module.scss'; + +export default function MapClient({ + initialProgress, + isDarkTheme, +}: MapClientProps) { + const { locale } = useRouter() as TRouter; + const t = vibesuiteIntl[locale]; + const { accountData } = useContext(GlobalContext) ?? {}; + const [progress, setProgress] = useState<UserProgress>(initialProgress); + const [selectedSkillId, setSelectedSkillId] = useState<string | null>(null); + const [focusCategoryId, setFocusCategoryId] = useState<string | null>(null); + const [transitioning, setTransitioning] = useState(false); + const [showRecommendations, setShowRecommendations] = useState(false); + const [showWhyModal, setShowWhyModal] = useState(false); + const [whyClosing, setWhyClosing] = useState(false); + const [showGuideModal, setShowGuideModal] = useState(false); + const [guideClosing, setGuideClosing] = useState(false); + const [searchQuery, setSearchQuery] = useState(''); + const [showFilter, setShowFilter] = useState< + 'all' | 'learned' | 'not-learned' + >('all'); + const [panelCloseRequested, setPanelCloseRequested] = useState(false); + const [showLogin, setShowLogin] = useState(false); + const sectionRefs = useRef<Record<string, HTMLElement | null>>({}); + const searchRowRef = useRef<HTMLDivElement>(null); + const [showScrollTop, setShowScrollTop] = useState(false); + + useEffect(() => { + const learned: string[] = accountData?.learnedSkills ?? []; + if (learned.length === 0) return; + const hydrated: UserProgress = {}; + for (const id of learned) { + hydrated[id] = { completed: true, completedAt: '' }; + } + setProgress(hydrated); + }, [accountData]); + + useEffect(() => { + const onScroll = () => { + if (searchRowRef.current) { + const rect = searchRowRef.current.getBoundingClientRect(); + setShowScrollTop(rect.bottom < 0); + } else { + setShowScrollTop(window.scrollY > 300); + } + }; + window.addEventListener('scroll', onScroll, { passive: true }); + return () => window.removeEventListener('scroll', onScroll); + }, []); + + useEffect(() => { + const onKey = (e: KeyboardEvent) => { + if (e.key !== 'Escape') return; + + if ( + selectedSkillId || + showWhyModal || + showGuideModal || + showRecommendations + ) { + if (selectedSkillId) setPanelCloseRequested(true); + if (showWhyModal) { + setWhyClosing(true); + setTimeout(() => setShowWhyModal(false), 180); + } + if (showGuideModal) { + setGuideClosing(true); + setTimeout(() => setShowGuideModal(false), 180); + } + if (showRecommendations) { + setShowRecommendations(false); + } + } + }; + window.addEventListener('keydown', onKey); + return () => window.removeEventListener('keydown', onKey); + }, [showWhyModal, showGuideModal, showRecommendations, selectedSkillId]); + + const selectedSkill = selectedSkillId ? getSkillById(selectedSkillId) : null; + const selectedCategory = selectedSkillId + ? getCategoryBySkillId(selectedSkillId) + : null; + + const { prevSkillId, nextSkillId } = useMemo(() => { + if (!selectedSkillId) return { prevSkillId: null, nextSkillId: null }; + const idx = allSkills.findIndex(s => s.id === selectedSkillId); + return { + prevSkillId: idx > 0 ? allSkills[idx - 1].id : null, + nextSkillId: idx < allSkills.length - 1 ? allSkills[idx + 1].id : null, + }; + }, [selectedSkillId]); + + const localizedCategories = useMemo( + () => categories.map(c => localizeCategory(c, locale)), + [locale], + ); + + const recommendations = useMemo( + () => getRecommendations(progress, 3, locale), + [progress, locale], + ); + const allCompleted = useMemo( + () => allSkills.every(s => progress[s.id]?.completed), + [progress], + ); + + const handleSelectSkill = useCallback((skillId: string) => { + setSelectedSkillId(skillId); + }, []); + + const handleToggle = useCallback((skillId: string, completed: boolean) => { + setProgress(prev => { + const next = { ...prev }; + if (completed) { + next[skillId] = { + completed: true, + completedAt: new Date().toISOString(), + }; + } else { + delete next[skillId]; + } + + // Fire-and-forget: send updated state to backend + const learnedSkills = Object.keys(next).filter(id => next[id]?.completed); + updateLearnedSkills(learnedSkills).catch(() => {}); + + return next; + }); + + if (completed) { + setSelectedSkillId(null); + } + }, []); + + const handleSelectCategory = useCallback((categoryId: string | null) => { + setFocusCategoryId(categoryId); + if (categoryId && sectionRefs.current[categoryId]) { + const el = sectionRefs.current[categoryId]; + if (el) { + const top = el.getBoundingClientRect().top + window.scrollY - 128; + window.scrollTo({ top, behavior: 'smooth' }); + } + } else { + window.scrollTo({ top: 0, behavior: 'smooth' }); + } + }, []); + + const searchLower = searchQuery.toLowerCase().trim(); + const displayCategories = useMemo(() => { + return localizedCategories + .map(cat => ({ + ...cat, + skills: cat.skills.filter(s => { + if ( + searchLower && + !( + s.name.toLowerCase().includes(searchLower) || + s.projectTitle.toLowerCase().includes(searchLower) || + s.projectDescription.toLowerCase().includes(searchLower) + ) + ) + return false; + if (showFilter === 'learned' && !progress[s.id]?.completed) + return false; + if (showFilter === 'not-learned' && progress[s.id]?.completed) + return false; + return true; + }), + })) + .filter(cat => cat.skills.length > 0); + }, [localizedCategories, searchLower, showFilter, progress]); + + return ( + <div className={`${styles.root} vibesuite-root`}> + <ProgressHeader progress={progress} /> + + <div className={styles.desktopOnly}> + <CategoryNav + progress={progress} + activeCategoryId={focusCategoryId} + onSelectCategory={handleSelectCategory} + onOpenRecommendations={() => setShowRecommendations(true)} + onOpenWhyModal={() => { + setWhyClosing(false); + setShowWhyModal(true); + }} + allCompleted={allCompleted} + /> + </div> + + <main className={styles.main}> + <div className={styles.contentWrapper}> + {/* Page title */} + <div className={styles.pageTitle}> + <Heading + text={t.pageTitle} + Tag="h1" + showLeftIcon + showRightIcon + textAlign="center" + className={styles.titleRow} + textColor={isDarkTheme ? '#ffffffd9' : undefined} + /> + <p className={styles.pageSubtitle}>{t.pageSubtitle}</p> + <button + className={styles.guideLink} + onClick={() => { + setGuideClosing(false); + setShowGuideModal(true); + }} + > + {t.firstTimeClick} + </button> + </div> + + {/* Search bar + filter */} + <div ref={searchRowRef} role="search" className={styles.searchRow}> + <div className={styles.searchWrap}> + <input + type="text" + role="searchbox" + value={searchQuery} + onChange={e => setSearchQuery(e.target.value)} + placeholder={t.searchPlaceholder} + aria-label={t.searchPlaceholder} + className={styles.searchInput} + style={{ paddingRight: searchQuery ? '2.5rem' : '1rem' }} + /> + {searchQuery && ( + <button + className={styles.searchClear} + onClick={() => setSearchQuery('')} + aria-label="Clear search" + > + ✕ + </button> + )} + </div> + + <div + className={styles.filterRow} + role="group" + aria-label={t.showLabel} + > + <span className={styles.showLabel} aria-hidden="true"> + {t.showLabel} + </span> + {(['all', 'learned', 'not-learned'] as const).map(opt => { + const label = + opt === 'all' + ? t.filterAll + : opt === 'learned' + ? t.filterLearned + : t.filterNotLearned; + const isActive = showFilter === opt; + return ( + <button + key={opt} + className={styles.filterBtn} + aria-pressed={isActive} + onClick={() => { + if (opt !== showFilter) { + setTransitioning(true); + setTimeout(() => { + setShowFilter(opt); + setTimeout(() => setTransitioning(false), 50); + }, 150); + } + }} + style={{ + background: isActive ? 'var(--accent)' : 'transparent', + border: `1px solid ${isActive ? 'var(--accent)' : 'var(--border-strong)'}`, + color: isActive ? '#fff' : 'var(--text-secondary)', + }} + onMouseEnter={e => { + if (!isActive) { + e.currentTarget.style.borderColor = 'var(--accent)'; + e.currentTarget.style.color = 'var(--accent)'; + } + }} + onMouseLeave={e => { + if (!isActive) { + e.currentTarget.style.borderColor = + 'var(--border-strong)'; + e.currentTarget.style.color = 'var(--text-secondary)'; + } + }} + > + {label} + </button> + ); + })} + </div> + </div> + + {/* Category sections */} + <div + className={styles.categoryArea} + style={{ opacity: transitioning ? 0 : 1 }} + > + {displayCategories.map(cat => { + const originalCat = localizedCategories.find( + c => c.id === cat.id, + ); + const total = originalCat + ? originalCat.skills.length + : cat.skills.length; + const done = originalCat + ? originalCat.skills.filter(s => progress[s.id]?.completed) + .length + : cat.skills.filter(s => progress[s.id]?.completed).length; + const allDone = done === total && total > 0; + + return ( + <section + key={cat.id} + ref={el => { + sectionRefs.current[cat.id] = el; + }} + className={styles.categorySection} + > + <div className={styles.sectionHeader}> + <h2 className={styles.sectionH2}> + <CategoryIcon categoryId={cat.id} /> {cat.name} + </h2> + <div className={styles.sectionRule} /> + <span + style={{ + fontFamily: 'var(--font-ui)', + fontSize: '0.75rem', + fontWeight: 500, + letterSpacing: '0.15em', + textTransform: 'uppercase', + color: allDone + ? 'var(--accent)' + : 'var(--text-tertiary)', + border: `1px solid ${allDone ? 'var(--accent)' : 'var(--border-strong)'}`, + padding: '0.25rem 0.75rem', + whiteSpace: 'nowrap', + userSelect: 'none', + }} + > + {done}/{total} + </span> + </div> + + <p className={styles.sectionDesc}>{cat.description}</p> + + <ul + className={styles.cardGrid} + onClick={e => e.stopPropagation()} + > + {cat.skills.map(skill => ( + <li key={skill.id} className={styles.cardGridItem}> + <SkillCard + skill={skill} + category={cat} + completed={!!progress[skill.id]?.completed} + selected={selectedSkillId === skill.id} + onClick={() => handleSelectSkill(skill.id)} + /> + </li> + ))} + </ul> + </section> + ); + })} + </div> + </div> + </main> + + {/* Scroll to top */} + <button + className={styles.scrollTopBtn} + onClick={() => window.scrollTo({ top: 0, behavior: 'smooth' })} + aria-label="Scroll to top" + style={{ + opacity: showScrollTop ? 1 : 0, + pointerEvents: showScrollTop ? 'auto' : 'none', + }} + > + <ArrowUp /> + </button> + + {/* Detail panel */} + {selectedSkill && selectedCategory && ( + <SkillDetailPanel + skill={selectedSkill} + category={selectedCategory} + progress={progress} + onToggle={handleToggle} + onClose={() => { + setSelectedSkillId(null); + setPanelCloseRequested(false); + }} + onSelectSkill={handleSelectSkill} + prevSkillId={prevSkillId} + nextSkillId={nextSkillId} + requestClose={panelCloseRequested} + isLoggedIn={!!accountData} + onOpenLogin={() => setShowLogin(true)} + /> + )} + + {/* Recommendation modal */} + {showRecommendations && recommendations.length > 0 && ( + <RecommendationModal + recommendations={recommendations} + onSelectSkill={skillId => { + setShowRecommendations(false); + handleSelectSkill(skillId); + }} + onClose={() => setShowRecommendations(false)} + /> + )} + + {/* Guide modal */} + {showGuideModal && + (() => { + const closeGuide = () => { + setGuideClosing(true); + setTimeout(() => setShowGuideModal(false), 180); + }; + + return ( + <div + className={styles.guideBackdrop} + style={{ + background: guideClosing + ? 'rgba(0, 0, 0, 0)' + : 'rgba(0, 0, 0, 0.35)', + }} + onClick={closeGuide} + > + <div + role="dialog" + aria-label={t.guideTitle} + className={`${styles.guideModal} ${guideClosing ? 'animate-modal-out' : 'animate-modal-in'}`} + onClick={e => e.stopPropagation()} + > + {/* Header */} + <div className={styles.guideHeader}> + <div> + <span className={styles.guideTitleAccent}> + {t.guideAccent} + </span> + <p className={styles.guideTitleMain}>{t.guideTitle}</p> + </div> + <button + className={styles.guideCloseBtn} + onClick={closeGuide} + aria-label="Close guide" + > + ✕ + </button> + </div> + + <div className={styles.guideRedRule} /> + + {/* Steps */} + <ol className={styles.guideSteps}> + <li className={styles.guideStep}> + <span className={styles.guideStepBadge} aria-hidden="true"> + 1 + </span> + <div> + <p className={styles.guideStepTitle}> + {t.guideStep1Title} + </p> + <p className={styles.guideStepDesc}>{t.guideStep1Desc}</p> + </div> + </li> + + <li className={styles.guideStepDivider} aria-hidden="true" /> + + <li className={styles.guideStep}> + <span className={styles.guideStepBadge} aria-hidden="true"> + 2 + </span> + <div> + <p className={styles.guideStepTitle}> + {t.guideStep2Title} + </p> + <p className={styles.guideStepDesc}>{t.guideStep2Desc}</p> + </div> + </li> + + <li className={styles.guideStepDivider} aria-hidden="true" /> + + <li className={styles.guideStep}> + <span className={styles.guideStepBadge} aria-hidden="true"> + 3 + </span> + <div> + <p className={styles.guideStepTitle}> + {t.guideStep3Title} + </p> + <p className={styles.guideStepDesc}>{t.guideStep3Desc}</p> + </div> + </li> + </ol> + + {/* Footer */} + <button className={styles.guideGotItBtn} onClick={closeGuide}> + {t.guideGotIt} + </button> + </div> + </div> + ); + })()} + + {/* Why modal */} + {showWhyModal && ( + <div + className={styles.whyBackdrop} + style={{ + background: whyClosing + ? 'rgba(28, 28, 26, 0)' + : 'rgba(28, 28, 26, 0.35)', + }} + onClick={() => { + setWhyClosing(true); + setTimeout(() => setShowWhyModal(false), 180); + }} + > + <div + role="dialog" + aria-label={t.whyDoINeedThis} + className={`${styles.whyModal} ${whyClosing ? 'animate-modal-out' : 'animate-modal-in'}`} + onClick={e => e.stopPropagation()} + > + {/* Background images */} + <div className={`${styles.whyBgImg} ${styles.whyBgImg1}`}> + {/* eslint-disable-next-line @next/next/no-img-element */} + <img src="/keepsimple_/assets/vibesuite/why-bg-3.jpg" alt="" /> + </div> + <div className={`${styles.whyBgImg} ${styles.whyBgImg2}`}> + {/* eslint-disable-next-line @next/next/no-img-element */} + <img src="/keepsimple_/assets/vibesuite/why-bg-1.jpg" alt="" /> + </div> + <div className={`${styles.whyBgImg} ${styles.whyBgImg3}`}> + {/* eslint-disable-next-line @next/next/no-img-element */} + <img src="/keepsimple_/assets/vibesuite/why-bg-2.webp" alt="" /> + </div> + + <div className={styles.whyContent}> + <div className={styles.whyCloseRow}> + <button + className={styles.whyCloseBtn} + onClick={() => { + setWhyClosing(true); + setTimeout(() => setShowWhyModal(false), 180); + }} + aria-label="Close" + > + ✕ + </button> + </div> + <div className={styles.whyRedRule} /> + <div className={styles.whyBody}> + <p>{t.whyP1}</p> + <p>{t.whyP2}</p> + <p>{t.whyP3}</p> + </div> + </div> + </div> + </div> + )} + {showLogin && <LogIn setShowLogIn={setShowLogin} />} + </div> + ); +} diff --git a/src/components/vibesuite/MapClient/MapClient.types.ts b/src/components/vibesuite/MapClient/MapClient.types.ts new file mode 100644 index 0000000..7de3d6f --- /dev/null +++ b/src/components/vibesuite/MapClient/MapClient.types.ts @@ -0,0 +1,6 @@ +import { UserProgress } from '@local-types/pageTypes/vibesuite'; + +export type MapClientProps = { + initialProgress: UserProgress; + isDarkTheme?: boolean; +}; diff --git a/src/components/vibesuite/MapClient/index.ts b/src/components/vibesuite/MapClient/index.ts new file mode 100644 index 0000000..8b25bae --- /dev/null +++ b/src/components/vibesuite/MapClient/index.ts @@ -0,0 +1,2 @@ +import MapClient from './MapClient'; +export default MapClient; diff --git a/src/components/vibesuite/ProgressHeader/ProgressHeader.module.scss b/src/components/vibesuite/ProgressHeader/ProgressHeader.module.scss new file mode 100644 index 0000000..c12a685 --- /dev/null +++ b/src/components/vibesuite/ProgressHeader/ProgressHeader.module.scss @@ -0,0 +1,255 @@ +.header { + position: fixed; + top: 48px; + left: 0; + right: 0; + z-index: 40; + background: var(--bg-base); + border-bottom: 1px solid var(--border); + height: 76px; + display: flex; + align-items: center; + padding: 0 1.5rem; + gap: 1rem; + + @media (max-width: 1023px) { + padding: 0 0.75rem; + gap: 0.5rem; + } +} + +.logo { + font-family: var(--font-ui); + font-size: 1rem; + font-weight: 400; + letter-spacing: 0.02em; + color: var(--text-primary); + flex-shrink: 0; +} + +.logoBold { + font-weight: 600; +} + +.progressWrap { + flex: 1; + min-width: 0; + height: 76px; + position: relative; + display: flex; + align-items: center; + + @media (max-width: 1023px) { + display: none; + } +} + +.canvas { + width: 100%; + height: 76px; + display: block; +} + +.tooltip { + position: absolute; + bottom: -4px; + transform: translateY(0); + opacity: 0; + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.08em; + color: var(--text-primary); + background: var(--bg-card); + border: 1px solid var(--border-strong); + padding: 0.3rem 0.7rem; + white-space: nowrap; + pointer-events: none; + z-index: 10; + transition: + opacity 0.2s ease, + transform 0.2s ease; + + &.tooltipReached { + color: #fff; + background: var(--accent); + border-color: var(--accent); + } + + &.tooltipVisible { + opacity: 1; + transform: translateY(0); + } +} + +.actions { + display: flex; + align-items: center; + gap: 0.75rem; + flex-shrink: 0; + + @media (max-width: 1023px) { + margin-left: auto; + gap: 0.5rem; + } +} + +.statsText { + font-family: var(--font-ui); + font-size: 0.75rem; + color: var(--text-secondary); + white-space: nowrap; +} + +.statsDim { + color: var(--text-tertiary); +} + +.actionBtn { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.1em; + text-transform: uppercase; + color: var(--text-secondary); + background: none; + border: 1px solid var(--border-strong); + padding: 0.2rem 0.6rem; + cursor: pointer; + user-select: none; + + &:hover { + border-color: var(--accent); + color: var(--accent); + } +} + +.signOutBtn { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--text-tertiary); + background: none; + border: 1px solid var(--border); + padding: 0.2rem 0.6rem; + cursor: pointer; +} + +// Progress Modal +.modalBackdrop { + position: fixed; + inset: 0; + z-index: 60; + background: rgba(0, 0, 0, 0.3); + display: flex; + align-items: center; + justify-content: center; +} + +.modalBox { + background: var(--bg-card); + border: 1px solid var(--border); + width: 560px; + max-width: 90vw; + max-height: 80vh; + display: flex; + flex-direction: column; + overflow: hidden; + + @media (max-width: 1023px) { + max-width: calc(100% - 2rem); + } +} + +.modalContent { + padding: 1.5rem 1.75rem; +} + +.modalTitle { + font-family: var(--font-display); + font-size: 1.4rem; + font-weight: 400; + color: var(--text-primary); + margin-bottom: 1rem; +} + +.modalBody { + font-family: var(--font-body); + font-size: 1rem; + color: var(--text-secondary); + line-height: 1.7; + margin-bottom: 0.5rem; +} + +.modalBodyBottom { + font-family: var(--font-body); + font-size: 1rem; + color: var(--text-secondary); + line-height: 1.7; + margin-bottom: 1.5rem; +} + +.modalBtns { + display: flex; + gap: 0.75rem; +} + +.copyStateBtn { + flex: 1; + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + padding: 0.6rem 1rem; + background: var(--bg-card); + color: var(--text-primary); + border: 1px solid var(--border-strong); + cursor: pointer; + transition: + background 0.15s ease, + color 0.15s ease, + border-color 0.15s ease; + user-select: none; + + &:hover { + background: var(--accent); + color: #fff; + border-color: var(--accent); + } + + &.copyStateBtnCopied { + background: var(--accent); + color: #fff; + border-color: var(--accent); + } +} + +.closeModalBtn { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + padding: 0.6rem 1rem; + background: none; + color: var(--text-tertiary); + border: 1px solid var(--border); + cursor: pointer; + user-select: none; + transition: + border-color 0.15s ease, + color 0.15s ease, + transform 0.1s ease; + + &:hover { + border-color: var(--accent); + color: var(--accent); + } + + &:active { + transform: scale(0.97); + } +} diff --git a/src/components/vibesuite/ProgressHeader/ProgressHeader.tsx b/src/components/vibesuite/ProgressHeader/ProgressHeader.tsx new file mode 100644 index 0000000..944795e --- /dev/null +++ b/src/components/vibesuite/ProgressHeader/ProgressHeader.tsx @@ -0,0 +1,455 @@ +import cn from 'classnames'; +import { useRouter } from 'next/router'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; + +import type { TRouter } from '@local-types/global'; + +import vibesuiteIntl from '@data/vibesuite/intl'; +import { localizeCategory } from '@data/vibesuite/localizeSkills'; +import { categories, getTotalSkillCount } from '@data/vibesuite/skills'; + +import { ProgressHeaderProps } from './ProgressHeader.types'; + +import styles from './ProgressHeader.module.scss'; + +const MILESTONE_KEYS = [ + { pct: 20, key: 'milestoneObserver' as const, kanji: '\u89B3' }, + { pct: 50, key: 'milestoneExplorer' as const, kanji: '\u63A2' }, + { pct: 80, key: 'milestoneMaster' as const, kanji: '\u5E2B' }, + { pct: 100, key: 'milestoneSingularity' as const, kanji: '\u221E' }, +]; + +const HIT_RADIUS = 24; + +export default function ProgressHeader({ progress }: ProgressHeaderProps) { + const { locale } = useRouter() as TRouter; + const t = vibesuiteIntl[locale]; + + const milestones = useMemo( + () => MILESTONE_KEYS.map(m => ({ ...m, label: t[m.key] })), + [t], + ); + + const localizedCats = useMemo( + () => categories.map(c => localizeCategory(c, locale)), + [locale], + ); + + const total = getTotalSkillCount(); + const completed = Object.values(progress).filter(p => p.completed).length; + const pct = total > 0 ? (completed / total) * 100 : 0; + const [showProgressModal, setShowProgressModal] = useState(false); + const [progressClosing, setProgressClosing] = useState(false); + const [copied, setCopied] = useState(false); + const canvasRef = useRef<HTMLCanvasElement>(null); + const animRef = useRef<number>(0); + const timeRef = useRef(0); + const displayPctRef = useRef(0); + const hoveredMilestoneRef = useRef<number>(-1); + const hoveredMilestoneAnimRef = useRef<number[]>(milestones.map(() => 0)); + const [tooltipData, setTooltipData] = useState<{ + text: string; + x: number; + reached: boolean; + } | null>(null); + const [tooltipVisible, setTooltipVisible] = useState(false); + const tooltipTimer = useRef<ReturnType<typeof setTimeout>>(undefined); + + const milestonePositions = useRef< + { pct: number; x: number; label: string; skillsNeeded: number }[] + >([]); + + const draw = useCallback( + (canvas: HTMLCanvasElement, time: number) => { + const ctx = canvas.getContext('2d'); + if (!ctx) return; + + const dpr = window.devicePixelRatio || 1; + const w = canvas.clientWidth; + const h = canvas.clientHeight; + canvas.width = w * dpr; + canvas.height = h * dpr; + ctx.scale(dpr, dpr); + ctx.clearRect(0, 0, w, h); + + const isDark = document.body.classList.contains('darkTheme'); + + const target = pct; + const current = displayPctRef.current; + displayPctRef.current += (target - current) * 0.04; + if (Math.abs(displayPctRef.current - target) < 0.05) + displayPctRef.current = target; + const displayPct = displayPctRef.current; + + const hoverAnims = hoveredMilestoneAnimRef.current; + for (let i = 0; i < milestones.length; i++) { + const tgt = hoveredMilestoneRef.current === i ? 1 : 0; + hoverAnims[i] += (tgt - hoverAnims[i]) * 0.12; + if (Math.abs(hoverAnims[i] - tgt) < 0.01) hoverAnims[i] = tgt; + } + + const barY = h / 2 + 1; + const barH = 2; + const padL = 16; + const padR = 40; + const barW = w - padL - padR; + + ctx.beginPath(); + ctx.moveTo(padL, barY); + ctx.lineTo(padL + barW, barY); + ctx.strokeStyle = isDark ? '#3a4050' : '#DDD7CE'; + ctx.lineWidth = barH; + ctx.lineCap = 'round'; + ctx.stroke(); + + const fillEnd = padL + (displayPct / 100) * barW; + if (displayPct > 0) { + ctx.beginPath(); + ctx.moveTo(padL, barY); + ctx.lineTo(fillEnd, barY); + ctx.strokeStyle = 'rgba(184, 50, 50, 0.1)'; + ctx.lineWidth = barH + 8; + ctx.lineCap = 'round'; + ctx.stroke(); + + ctx.beginPath(); + ctx.moveTo(padL, barY); + ctx.lineTo(fillEnd, barY); + ctx.strokeStyle = '#B83232'; + ctx.lineWidth = barH; + ctx.lineCap = 'round'; + ctx.stroke(); + + const pulse = (Math.sin(time * 1.8) + 1) / 2; + const glowR = 6 + pulse * 4; + const glowA = 0.08 + pulse * 0.07; + ctx.beginPath(); + ctx.arc(fillEnd, barY, glowR, 0, Math.PI * 2); + ctx.fillStyle = `rgba(184, 50, 50, ${glowA})`; + ctx.fill(); + + const dotR = 3 + pulse * 1; + ctx.beginPath(); + ctx.arc(fillEnd, barY, dotR, 0, Math.PI * 2); + ctx.fillStyle = `rgba(184, 50, 50, ${0.6 + pulse * 0.3})`; + ctx.fill(); + } + + const positions: typeof milestonePositions.current = []; + + milestones.forEach((m, i) => { + const mx = padL + (m.pct / 100) * barW; + const reached = displayPct >= m.pct; + const skillsNeeded = Math.ceil((m.pct / 100) * total) - completed; + const hoverAmt = hoverAnims[i]; + const isLast = i === milestones.length - 1; + + positions.push({ + pct: m.pct, + x: mx, + label: m.label, + skillsNeeded: Math.max(0, skillsNeeded), + }); + + if (hoverAmt > 0.01) { + const glowR2 = 18 + hoverAmt * 6; + const glowA2 = hoverAmt * (reached ? 0.15 : 0.1); + const gradient = ctx.createRadialGradient( + mx, + barY, + 0, + mx, + barY, + glowR2, + ); + gradient.addColorStop(0, `rgba(184, 50, 50, ${glowA2})`); + gradient.addColorStop(1, 'rgba(0, 0, 0, 0)'); + ctx.beginPath(); + ctx.arc(mx, barY, glowR2, 0, Math.PI * 2); + ctx.fillStyle = gradient; + ctx.fill(); + } + + const tickH = 7 + hoverAmt * 2; + const tickAlpha = reached + ? 0.45 + hoverAmt * 0.3 + : 0.25 + hoverAmt * 0.5; + ctx.beginPath(); + ctx.moveTo(mx, barY - tickH); + ctx.lineTo(mx, barY + tickH); + ctx.strokeStyle = + reached || hoverAmt > 0.01 + ? `rgba(184, 50, 50, ${tickAlpha})` + : isDark + ? '#3a4050' + : '#D5CFC7'; + ctx.lineWidth = 1 + hoverAmt * 0.5; + ctx.lineCap = 'butt'; + ctx.stroke(); + + const dS = (reached ? 3.5 : 2.5) + hoverAmt * 1.5; + ctx.save(); + ctx.translate(mx, barY - 11 - hoverAmt * 1); + ctx.rotate(Math.PI / 4); + if (reached || hoverAmt > 0.3) { + const fillAlpha = reached ? 1 : hoverAmt; + ctx.fillStyle = `rgba(184, 50, 50, ${fillAlpha})`; + ctx.fillRect(-dS / 2, -dS / 2, dS, dS); + const pR = dS + 1.5 + Math.sin(time * 1.5 + m.pct * 0.1) * 1; + ctx.strokeStyle = `rgba(184, 50, 50, ${ + 0.15 + Math.sin(time * 1.5 + m.pct * 0.1) * 0.08 + hoverAmt * 0.15 + })`; + ctx.lineWidth = 0.5; + ctx.strokeRect(-pR / 2, -pR / 2, pR, pR); + } else if (hoverAmt > 0.01) { + ctx.strokeStyle = `rgba(184, 50, 50, ${0.3 + hoverAmt * 0.7})`; + ctx.lineWidth = 0.75 + hoverAmt * 0.5; + ctx.strokeRect(-dS / 2, -dS / 2, dS, dS); + } else { + ctx.strokeStyle = isDark ? '#3a4050' : '#D5CFC7'; + ctx.lineWidth = 0.75; + ctx.strokeRect(-dS / 2, -dS / 2, dS, dS); + } + ctx.restore(); + + const labelSize = 8 + hoverAmt * 1; + ctx.font = `${400 + hoverAmt * 100} ${labelSize}px Jost, system-ui, sans-serif`; + ctx.textAlign = isLast ? 'right' : 'center'; + ctx.fillStyle = + reached || hoverAmt > 0.01 + ? `rgba(184, 50, 50, ${reached ? 1 : 0.4 + hoverAmt * 0.6})` + : isDark + ? 'rgba(160, 160, 160, 0.5)' + : 'rgba(181, 175, 168, 0.6)'; + ctx.fillText(m.label.toUpperCase(), isLast ? mx : mx, barY + 18); + + const kanjiSize = 10 + hoverAmt * 2; + ctx.font = `${kanjiSize}px "Noto Serif JP", serif`; + ctx.textAlign = isLast ? 'right' : 'center'; + ctx.fillStyle = `rgba(184, 50, 50, ${ + reached + ? 0.2 + Math.sin(time * 1.2 + m.pct * 0.05) * 0.08 + hoverAmt * 0.15 + : 0.08 + hoverAmt * 0.25 + })`; + ctx.fillText(m.kanji, isLast ? mx : mx, barY - 21 - hoverAmt * 1); + }); + + milestonePositions.current = positions; + + ctx.font = '300 7px Jost, system-ui, sans-serif'; + ctx.textAlign = 'center'; + const ga = 0.07 + Math.sin(time * 0.6) * 0.03; + ctx.fillStyle = isDark + ? `rgba(218, 218, 218, ${ga})` + : `rgba(28, 28, 26, ${ga})`; + ctx.fillText(t.toTheGlory, padL + barW / 2, barY + 28); + }, + [pct, total, completed, milestones, t], + ); + + useEffect(() => { + const canvas = canvasRef.current; + if (!canvas) return; + let running = true; + const loop = (ts: number) => { + if (!running) return; + timeRef.current = ts / 1000; + draw(canvas, timeRef.current); + animRef.current = requestAnimationFrame(loop); + }; + animRef.current = requestAnimationFrame(loop); + return () => { + running = false; + cancelAnimationFrame(animRef.current); + }; + }, [draw]); + + const showTooltip = useCallback( + (text: string, x: number, reached: boolean) => { + clearTimeout(tooltipTimer.current); + setTooltipData({ text, x, reached }); + requestAnimationFrame(() => setTooltipVisible(true)); + }, + [], + ); + + const hideTooltip = useCallback(() => { + setTooltipVisible(false); + hoveredMilestoneRef.current = -1; + tooltipTimer.current = setTimeout(() => setTooltipData(null), 250); + }, []); + + const handleMouseMove = useCallback( + (e: React.MouseEvent<HTMLCanvasElement>) => { + const canvas = canvasRef.current; + if (!canvas) return; + const rect = canvas.getBoundingClientRect(); + const mx = e.clientX - rect.left; + const my = e.clientY - rect.top; + const barY = rect.height / 2 + 1; + + let found = false; + for (let i = 0; i < milestonePositions.current.length; i++) { + const mp = milestonePositions.current[i]; + const dist = Math.sqrt((mx - mp.x) ** 2 + (my - barY) ** 2); + if (dist < HIT_RADIUS) { + hoveredMilestoneRef.current = i; + const n = mp.skillsNeeded; + const reached = n === 0; + const text = reached + ? `${mp.label} \u2014 ${t.reached}` + : `${n} ${n === 1 ? t.skillSingular : t.skillPlural} ${t.toMilestone} ${mp.label}`; + showTooltip(text, mp.x, reached); + found = true; + break; + } + } + if (!found) { + hoveredMilestoneRef.current = -1; + if (tooltipData) hideTooltip(); + } + }, + [tooltipData, showTooltip, hideTooltip, t], + ); + + const handleMouseLeave = useCallback(() => { + hoveredMilestoneRef.current = -1; + hideTooltip(); + }, [hideTooltip]); + + return ( + <header className={styles.header}> + <div className={styles.logo}> + <strong className={styles.logoBold}>vibe</strong>code + </div> + + <div className={styles.progressWrap}> + <canvas + ref={canvasRef} + className={styles.canvas} + onMouseMove={handleMouseMove} + onMouseLeave={handleMouseLeave} + style={{ cursor: tooltipData ? 'pointer' : 'default' }} + /> + {tooltipData && ( + <div + className={cn(styles.tooltip, { + [styles.tooltipReached]: tooltipData.reached, + [styles.tooltipVisible]: tooltipVisible, + })} + style={{ + left: tooltipData.x, + transform: `translateX(-50%) translateY(${tooltipVisible ? '0' : '-6px'})`, + }} + > + {tooltipData.text} + </div> + )} + </div> + + <div className={styles.actions}> + <span className={styles.statsText}> + {completed} + <span className={styles.statsDim}> / {total}</span> + <span className={styles.statsDim}> ({Math.round(pct)}%)</span> + </span> + + <button + className={styles.actionBtn} + onClick={() => { + setProgressClosing(false); + setCopied(false); + setShowProgressModal(true); + }} + > + {t.myProgress} + </button> + </div> + + {showProgressModal && ( + <div + className={cn(styles.modalBackdrop)} + onClick={() => { + setProgressClosing(true); + setTimeout(() => { + setShowProgressModal(false); + setProgressClosing(false); + }, 180); + }} + > + <div + role="dialog" + aria-label={t.myProgress} + className={cn( + styles.modalBox, + progressClosing ? 'animate-modal-out' : 'animate-modal-in', + )} + onClick={e => e.stopPropagation()} + > + <div className={styles.modalContent}> + <h2 className={styles.modalTitle}>{t.myProgress}</h2> + <p className={styles.modalBody}>{t.progressBody1}</p> + <p className={styles.modalBodyBottom}>{t.progressBody2}</p> + + <div className={styles.modalBtns}> + <button + className={cn(styles.copyStateBtn, { + [styles.copyStateBtnCopied]: copied, + })} + onClick={() => { + const lines: string[] = []; + lines.push(t.copyStateLine1); + lines.push(''); + lines.push(t.copyStateLine2); + lines.push(t.copyStateLine3); + lines.push(t.copyStateLine4); + lines.push(t.copyStateLine5); + lines.push(''); + lines.push( + `${t.progressPrefix} ${completed}/${total} ${t.skillsWord} (${Math.round(pct)}%)`, + ); + lines.push(''); + localizedCats.forEach(cat => { + const catDone = cat.skills.filter( + s => progress[s.id]?.completed, + ).length; + lines.push( + `## ${cat.name} (${catDone}/${cat.skills.length})`, + ); + cat.skills.forEach(skill => { + const learned = !!progress[skill.id]?.completed; + lines.push( + `- [${learned ? t.learned : t.notLearned}] ${skill.name}: ${skill.projectDescription}`, + ); + }); + lines.push(''); + }); + lines.push('---'); + lines.push(t.copyStateEnd); + navigator.clipboard.writeText(lines.join('\n')); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + }} + > + {copied ? t.copied : t.copyMyLearningState} + </button> + <button + className={styles.closeModalBtn} + onClick={() => { + setProgressClosing(true); + setTimeout(() => { + setShowProgressModal(false); + setProgressClosing(false); + }, 180); + }} + > + {t.close} + </button> + </div> + </div> + </div> + </div> + )} + </header> + ); +} diff --git a/src/components/vibesuite/ProgressHeader/ProgressHeader.types.ts b/src/components/vibesuite/ProgressHeader/ProgressHeader.types.ts new file mode 100644 index 0000000..f6572fd --- /dev/null +++ b/src/components/vibesuite/ProgressHeader/ProgressHeader.types.ts @@ -0,0 +1,5 @@ +import { UserProgress } from '@local-types/pageTypes/vibesuite'; + +export type ProgressHeaderProps = { + progress: UserProgress; +}; diff --git a/src/components/vibesuite/ProgressHeader/index.ts b/src/components/vibesuite/ProgressHeader/index.ts new file mode 100644 index 0000000..24105c2 --- /dev/null +++ b/src/components/vibesuite/ProgressHeader/index.ts @@ -0,0 +1,3 @@ +import ProgressHeader from './ProgressHeader'; + +export default ProgressHeader; diff --git a/src/components/vibesuite/RecommendationModal/RecommendationModal.module.scss b/src/components/vibesuite/RecommendationModal/RecommendationModal.module.scss new file mode 100644 index 0000000..eef4946 --- /dev/null +++ b/src/components/vibesuite/RecommendationModal/RecommendationModal.module.scss @@ -0,0 +1,150 @@ +.backdrop { + position: fixed; + inset: 0; + z-index: 60; + display: flex; + align-items: center; + justify-content: center; + background: rgba(28, 28, 26, 0.35); + transition: background 0.2s ease; + + &.closing { + background: rgba(28, 28, 26, 0); + } +} + +.modal { + width: calc(100% - 2rem); + max-width: 440px; + background: var(--bg-base); + border: 1px solid var(--border-strong); + padding: 1.75rem; + + @media (max-width: 1023px) { + padding: 1.25rem; + } +} + +.header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; +} + +.title { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--text-tertiary); +} + +.closeBtn { + width: 36px; + height: 36px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-card); + border: 1px solid var(--border-strong); + cursor: pointer; + font-family: var(--font-ui); + font-size: 1rem; + color: var(--text-secondary); + padding: 0; + + &:hover { + border-color: var(--accent); + color: var(--accent); + } +} + +.accentRule { + width: 2rem; + height: 2px; + background: var(--accent); + margin-bottom: 1.5rem; +} + +.list { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + gap: 0.75rem; +} + +.recBtn { + display: block; + width: 100%; + text-align: left; + padding: 1rem 1.1rem; + background: var(--bg-card); + border: 1px solid var(--border); + cursor: pointer; + + &:hover { + border-color: var(--accent); + background: var(--bg-card-active); + } +} + +.recTop { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 0.4rem; +} + +.recCategory { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.12em; + text-transform: uppercase; + color: var(--text-tertiary); + display: inline-flex; + align-items: center; + gap: 0.35rem; +} + +.recMeta { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.recTime { + font-family: var(--font-ui); + font-size: 0.75rem; + color: var(--text-tertiary); +} + +.recName { + font-family: var(--font-body); + font-size: 1rem; + font-weight: 400; + color: var(--text-primary); + margin-bottom: 0.3rem; + display: flex; + align-items: center; + gap: 0.5rem; +} + +.recKatakana { + font-family: var(--font-japanese); + font-size: 1.1rem; + color: var(--accent-kanji-active); + flex-shrink: 0; + line-height: 1; +} + +.recReason { + font-family: var(--font-ui); + font-size: 0.75rem; + color: var(--accent); + padding-left: 1.35rem; +} diff --git a/src/components/vibesuite/RecommendationModal/RecommendationModal.tsx b/src/components/vibesuite/RecommendationModal/RecommendationModal.tsx new file mode 100644 index 0000000..03c90cf --- /dev/null +++ b/src/components/vibesuite/RecommendationModal/RecommendationModal.tsx @@ -0,0 +1,179 @@ +import cn from 'classnames'; +import { useRouter } from 'next/router'; +import { useEffect, useState } from 'react'; + +import type { TRouter } from '@local-types/global'; + +import vibesuiteIntl from '@data/vibesuite/intl'; +import { categoriesRu } from '@data/vibesuite/intl/skills.ru'; +import { localizeSkill } from '@data/vibesuite/localizeSkills'; +import { getCategoryBySkillId } from '@data/vibesuite/skills'; + +import CategoryIcon from '@components/vibesuite/CategoryIcons'; + +import { RecommendationModalProps } from './RecommendationModal.types'; + +import styles from './RecommendationModal.module.scss'; + +const KATAKANA_MAP: Record<string, string> = { + a: '\u30A2', + b: '\u30D3', + c: '\u30AF', + d: '\u30C7', + e: '\u30A8', + f: '\u30D5', + g: '\u30B0', + h: '\u30CF', + i: '\u30A4', + j: '\u30B8', + k: '\u30AB', + l: '\u30EB', + m: '\u30DE', + n: '\u30CA', + o: '\u30AA', + p: '\u30D7', + q: '\u30AF', + r: '\u30E9', + s: '\u30B5', + t: '\u30BF', + u: '\u30A6', + v: '\u30F4', + w: '\u30EF', + x: '\u30B7', + y: '\u30E4', + z: '\u30BA', +}; +function getKatakana(name: string): string { + const first = name.charAt(0).toLowerCase(); + return KATAKANA_MAP[first] || '\u30B9'; +} + +const difficultyColor: Record<string, string> = { + beginner: '#6B8E6B', + intermediate: '#B8960B', + advanced: '#B83232', +}; + +export default function RecommendationModal({ + recommendations, + onSelectSkill, + onClose, +}: RecommendationModalProps) { + const { locale } = useRouter() as TRouter; + const t = vibesuiteIntl[locale]; + + const difficultyLabels: Record<string, string> = { + beginner: t.difficultyBeginner, + intermediate: t.difficultyIntermediate, + advanced: t.difficultyAdvanced, + }; + + const [closing, setClosing] = useState(false); + + const handleClose = () => { + setClosing(true); + setTimeout(onClose, 180); + }; + + const handleSelect = (skillId: string) => { + setClosing(true); + setTimeout(() => onSelectSkill(skillId), 180); + }; + + useEffect(() => { + const onKey = (e: KeyboardEvent) => { + if (e.key === 'Escape') handleClose(); + }; + window.addEventListener('keydown', onKey); + return () => window.removeEventListener('keydown', onKey); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + return ( + <div + className={cn(styles.backdrop, { [styles.closing]: closing })} + onClick={handleClose} + > + <div + role="dialog" + aria-label={t.whatToLearnNextTitle} + className={cn( + styles.modal, + closing ? 'animate-modal-out' : 'animate-modal-in', + )} + onClick={e => e.stopPropagation()} + > + <div className={styles.header}> + <span className={styles.title}>{t.whatToLearnNextTitle}</span> + <button + className={styles.closeBtn} + onClick={handleClose} + title="Close" + aria-label="Close recommendations" + > + ✕ + </button> + </div> + + <div className={styles.accentRule} /> + + <ul className={styles.list}> + {recommendations.map(rec => { + const cat = getCategoryBySkillId(rec.skill.id); + const locRec = localizeSkill(rec.skill, locale); + const catDisplayName = cat + ? locale === 'ru' + ? categoriesRu[cat.id]?.name || cat.name + : cat.name + : undefined; + const dColor = + difficultyColor[rec.skill.difficulty] || 'var(--text-tertiary)'; + + return ( + <li key={rec.skill.id}> + <button + className={styles.recBtn} + onClick={() => handleSelect(rec.skill.id)} + > + <div className={styles.recTop}> + <span className={styles.recCategory}> + {cat && <CategoryIcon categoryId={cat.id} />} + {catDisplayName} + </span> + <div className={styles.recMeta}> + <span + style={{ + fontFamily: 'var(--font-ui)', + fontSize: '0.75rem', + fontWeight: 500, + letterSpacing: '0.1em', + textTransform: 'uppercase' as const, + color: dColor, + }} + > + {difficultyLabels[rec.skill.difficulty] || + rec.skill.difficulty} + </span> + <span className={styles.recTime}> + {locRec.timeEstimate} + </span> + </div> + </div> + + <p className={styles.recName}> + <span className={styles.recKatakana}> + {getKatakana(rec.skill.name)} + </span> + {locRec.name} + </p> + + <p className={styles.recReason}>{rec.reasonText}</p> + </button> + </li> + ); + })} + </ul> + </div> + </div> + ); +} diff --git a/src/components/vibesuite/RecommendationModal/RecommendationModal.types.ts b/src/components/vibesuite/RecommendationModal/RecommendationModal.types.ts new file mode 100644 index 0000000..b6a2fcb --- /dev/null +++ b/src/components/vibesuite/RecommendationModal/RecommendationModal.types.ts @@ -0,0 +1,7 @@ +import { Recommendation } from '@local-types/pageTypes/vibesuite'; + +export type RecommendationModalProps = { + recommendations: Recommendation[]; + onSelectSkill: (skillId: string) => void; + onClose: () => void; +}; diff --git a/src/components/vibesuite/RecommendationModal/index.ts b/src/components/vibesuite/RecommendationModal/index.ts new file mode 100644 index 0000000..a0db78f --- /dev/null +++ b/src/components/vibesuite/RecommendationModal/index.ts @@ -0,0 +1,3 @@ +import RecommendationModal from './RecommendationModal'; + +export default RecommendationModal; diff --git a/src/components/vibesuite/SkillCard/SkillCard.module.scss b/src/components/vibesuite/SkillCard/SkillCard.module.scss new file mode 100644 index 0000000..6e2e994 --- /dev/null +++ b/src/components/vibesuite/SkillCard/SkillCard.module.scss @@ -0,0 +1,123 @@ +.card { + appearance: none; + font: inherit; + color: inherit; + position: relative; + display: flex; + flex-direction: column; + align-items: center; + justify-content: flex-start; + flex: 1; + padding: 0.75rem; + min-height: 102px; + background: var(--bg-card); + border: 1px solid var(--border); + overflow: visible; + cursor: pointer; + transition: + border-color 0.2s ease, + background 0.2s ease; + margin: -1px 0 0 -1px; + z-index: 1; + text-align: center; + width: 100%; + user-select: none; + outline: none; + + &:hover, + &.highlighted { + border-color: var(--accent); + background: var(--bg-card-active); + z-index: 2; + } +} + +.tooltip { + position: absolute; + bottom: 100%; + left: 50%; + transform: translateX(-50%) translateY(0px); + opacity: 0; + pointer-events: none; + z-index: 20; + font-family: var(--font-body); + font-size: 0.875rem; + line-height: 1.4; + color: var(--text-primary); + background: var(--bg-card); + border: 1px solid var(--border-strong); + padding: 0.35rem 0.7rem; + width: max-content; + max-width: 280px; + transition: + opacity 0.2s ease, + transform 0.2s ease; + + &.tooltipVisible { + opacity: 1; + transform: translateX(-50%) translateY(-4px); + } +} + +.katakana { + font-family: var(--font-japanese); + font-size: 2.16rem; + color: var(--accent-kanji); + line-height: 1; + user-select: none; + transition: color 0.2s ease; + pointer-events: none; + margin-bottom: 0.35rem; + + &.katakanaCompleted { + color: var(--accent-kanji-active); + } +} + +.completedBar { + position: absolute; + top: 0; + left: 0; + right: 0; + height: 3px; + background: var(--accent); +} + +.checkmark { + position: absolute; + top: 0.5rem; + left: 0.5rem; + font-size: 0.75rem; + color: #fff; + background: var(--accent); + width: 16px; + height: 16px; + display: flex; + align-items: center; + justify-content: center; + font-family: var(--font-ui); + font-weight: 600; +} + +.skillName { + font-family: var(--font-body); + font-size: 1rem; + font-weight: 400; + color: var(--text-primary); + line-height: 1.3; + margin-bottom: 0.25rem; + + &.skillNameCompleted { + color: var(--accent); + } +} + +.difficulty { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 400; + color: var(--text-secondary); + letter-spacing: 0.1em; + text-transform: uppercase; + margin-top: auto; +} diff --git a/src/components/vibesuite/SkillCard/SkillCard.tsx b/src/components/vibesuite/SkillCard/SkillCard.tsx new file mode 100644 index 0000000..249effc --- /dev/null +++ b/src/components/vibesuite/SkillCard/SkillCard.tsx @@ -0,0 +1,110 @@ +import cn from 'classnames'; +import { useRouter } from 'next/router'; +import { useState } from 'react'; + +import type { TRouter } from '@local-types/global'; + +import vibesuiteIntl from '@data/vibesuite/intl'; + +import { SkillCardProps } from './SkillCard.types'; + +import styles from './SkillCard.module.scss'; + +// Map first letter to katakana +const KATAKANA_MAP: Record<string, string> = { + a: 'ア', + b: 'ビ', + c: 'ク', + d: 'デ', + e: 'エ', + f: 'フ', + g: 'グ', + h: 'ハ', + i: 'イ', + j: 'ジ', + k: 'カ', + l: 'ル', + m: 'マ', + n: 'ナ', + o: 'オ', + p: 'プ', + q: 'ク', + r: 'ラ', + s: 'サ', + t: 'タ', + u: 'ウ', + v: 'ヴ', + w: 'ワ', + x: 'シ', + y: 'ヤ', + z: 'ズ', +}; + +function getKatakana(name: string): string { + const first = name.charAt(0).toLowerCase(); + return KATAKANA_MAP[first] || 'ス'; +} + +export default function SkillCard({ + skill, + category, + completed, + selected, + onClick, +}: SkillCardProps) { + const { locale } = useRouter() as TRouter; + const t = vibesuiteIntl[locale]; + const difficultyLabels: Record<string, string> = { + beginner: t.difficultyBeginner, + intermediate: t.difficultyIntermediate, + advanced: t.difficultyAdvanced, + }; + const katakana = getKatakana(skill.name); + const highlighted = completed || selected; + const [showTip, setShowTip] = useState(false); + + return ( + <button + type="button" + onClick={onClick} + className={cn(styles.card, { [styles.highlighted]: highlighted })} + onMouseEnter={() => setShowTip(true)} + onMouseLeave={() => setShowTip(false)} + > + {/* Custom tooltip */} + <div className={cn(styles.tooltip, { [styles.tooltipVisible]: showTip })}> + {skill.projectTitle} + </div> + + {/* Katakana — top-center, in flow */} + <span + className={cn(styles.katakana, { + [styles.katakanaCompleted]: completed, + })} + aria-hidden="true" + > + {katakana} + </span> + + {/* Learned indicator — accent bar at top */} + {completed && <div className={styles.completedBar} />} + + {/* Checkmark when learned */} + {completed && <span className={styles.checkmark}>✓</span>} + + {/* Skill name */} + <p + className={cn(styles.skillName, { + [styles.skillNameCompleted]: completed, + })} + > + {skill.name} + </p> + + {/* Difficulty */} + <p className={styles.difficulty}> + {difficultyLabels[skill.difficulty] || skill.difficulty} + </p> + </button> + ); +} diff --git a/src/components/vibesuite/SkillCard/SkillCard.types.ts b/src/components/vibesuite/SkillCard/SkillCard.types.ts new file mode 100644 index 0000000..c5ef843 --- /dev/null +++ b/src/components/vibesuite/SkillCard/SkillCard.types.ts @@ -0,0 +1,9 @@ +import { Skill, SkillCategory } from '@local-types/pageTypes/vibesuite'; + +export type SkillCardProps = { + skill: Skill; + category: SkillCategory; + completed: boolean; + selected: boolean; + onClick: () => void; +}; diff --git a/src/components/vibesuite/SkillCard/index.ts b/src/components/vibesuite/SkillCard/index.ts new file mode 100644 index 0000000..9dc41d4 --- /dev/null +++ b/src/components/vibesuite/SkillCard/index.ts @@ -0,0 +1,3 @@ +import SkillCard from './SkillCard'; + +export default SkillCard; diff --git a/src/components/vibesuite/SkillDetailPanel/SkillDetailPanel.module.scss b/src/components/vibesuite/SkillDetailPanel/SkillDetailPanel.module.scss new file mode 100644 index 0000000..7ce6c1c --- /dev/null +++ b/src/components/vibesuite/SkillDetailPanel/SkillDetailPanel.module.scss @@ -0,0 +1,459 @@ +.backdrop { + display: flex; + width: 100vw; + height: 100vh; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: rgba(0, 0, 0, 0.35); + align-items: center; + justify-content: center; + z-index: 9999; + + @media (max-width: 1023px) { + padding: 0; + align-items: stretch; + } +} + +.background { + display: flex; + width: 100vw; + height: 100vh; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + align-items: center; + justify-content: center; + z-index: 201; +} + +.panel { + background: var(--bg-card); + border: 1px solid var(--border); + width: 644px; + max-width: 100%; + min-height: 650px; + max-height: 85vh; + display: flex; + flex-direction: column; + overflow: hidden; + position: relative; + z-index: 202; + + @media (max-width: 1023px) { + width: 100%; + min-height: unset; + max-height: 100%; + border: none; + } +} + +.scrollContent { + flex: 1; + overflow-y: auto; + padding: 1.5rem 1.75rem; + transition: opacity 0.15s ease; + + @media (max-width: 1023px) { + padding: 1.25rem 1rem; + } +} + +.headerRow { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; +} + +.categoryLabel { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--text-secondary); + display: inline-flex; + align-items: center; + gap: 0.4rem; +} + +.navBtns { + display: flex; + gap: 0.5rem; +} + +.navBtn { + width: 36px; + height: 36px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-card); + border: 1px solid var(--border-strong); + cursor: pointer; + font-family: var(--font-ui); + font-size: 1rem; + color: var(--text-primary); + transition: + border-color 0.15s, + color 0.15s; + padding: 0; + flex-shrink: 0; + + &:hover { + border-color: var(--accent); + color: var(--accent); + } +} + +.navBtnDisabled { + color: var(--text-tertiary); + border-color: var(--border); + cursor: default; + opacity: 0.4; + + &:hover { + border-color: var(--border); + color: var(--text-tertiary); + } +} + +.closeBtn { + width: 36px; + height: 36px; + display: flex; + align-items: center; + justify-content: center; + background: var(--bg-card); + border: 1px solid var(--border-strong); + cursor: pointer; + font-family: var(--font-ui); + font-size: 1rem; + color: var(--text-secondary); + transition: + border-color 0.15s, + color 0.15s; + padding: 0; + flex-shrink: 0; + + &:hover { + border-color: var(--accent); + color: var(--accent); + } +} + +.skillTitle { + font-family: var(--font-display); + font-size: 1.4rem; + font-weight: 400; + margin-bottom: 1rem; + line-height: 1.3; + display: flex; + align-items: center; + gap: 0.6rem; +} + +.titleKatakana { + font-family: var(--font-japanese); + font-size: 1.4rem; + color: var(--accent-kanji-active); + flex-shrink: 0; + line-height: 1; +} + +.metaRow { + display: flex; + align-items: center; + gap: 1rem; + margin-bottom: 1.75rem; +} + +.difficultyBadge { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + padding: 0.2rem 0.6rem; +} + +.timeLabel { + font-family: var(--font-ui); + font-size: 0.75rem; + color: var(--text-tertiary); +} + +.accentRule { + width: 2rem; + height: 2px; + background: var(--accent); + margin-bottom: 1.25rem; +} + +.sectionLabel { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--text-tertiary); + margin-bottom: 0.5rem; +} + +.projectTitle { + font-family: var(--font-body); + font-size: 1rem; + font-weight: 400; + color: var(--text-primary); + margin-bottom: 1rem; + line-height: 1.4; +} + +.projectDesc { + font-family: var(--font-body); + font-size: 1rem; + line-height: 1.75; + color: var(--text-secondary); + margin-bottom: 1.5rem; +} + +.toolsSection { + margin-bottom: 1.5rem; +} + +.toolsWrap { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-wrap: wrap; + gap: 0.35rem; +} + +.toolTag { + font-family: var(--font-ui); + font-size: 0.75rem; + padding: 0.2rem 0.6rem; + background: var(--bg-card); + border: 1px solid var(--border); + color: var(--text-secondary); +} + +.depsSection { + margin-bottom: 1.5rem; +} + +.depsList { + list-style: none; + margin: 0; + padding: 0; +} + +.depBtn { + display: flex; + align-items: center; + gap: 0.5rem; + font-family: var(--font-body); + font-size: 1rem; + color: var(--text-secondary); + background: none; + border: none; + cursor: pointer; + padding: 0.25rem 0; + width: 100%; + text-align: left; + + &.depDone { + color: var(--accent); + } +} + +.instructionBlock { + margin-bottom: 0.5rem; + border: 1px solid var(--accent); + border-top: 3px solid var(--accent); + padding: 1.25rem 1.1rem 1rem; + background: var(--bg-card-active); + position: relative; +} + +.instructionHeader { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 0.75rem; +} + +.instructionSectionLabel { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + color: var(--accent); +} + +.guideToggleBtn { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.1em; + color: var(--text-tertiary); + background: none; + border: none; + cursor: pointer; + text-decoration: underline; + text-underline-offset: 2px; + padding: 0; +} + +.guideContent { + margin-bottom: 1rem; + padding: 0.85rem 1rem; + background: var(--bg-base); + border: 1px solid var(--border); + animation: loaderFadeIn 0.2s ease; +} + +.guideText { + font-family: var(--font-body); + font-size: 0.875rem; + line-height: 1.7; + color: var(--text-secondary); +} + +.guideHeading { + margin-bottom: 0.6rem; + color: var(--text-primary); + font-weight: 500; +} + +.guideStepList { + list-style: none; + margin: 0; + padding: 0; +} + +.guideStep { + display: flex; + gap: 0.5rem; + margin-bottom: 0.45rem; +} + +.guideStepNum { + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 600; + color: var(--accent); + flex-shrink: 0; + margin-top: 2px; +} + +.guideTip { + margin-top: 0.6rem; + font-style: italic; + color: var(--text-tertiary); + font-size: 0.875rem; +} + +.instructionText { + background: var(--bg-card); + border: 1px solid var(--border); + padding: 0.85rem 1rem; +} + +.instructionParagraph { + font-family: var(--font-body); + font-size: 1rem; + line-height: 1.6; + color: var(--text-primary); + margin: 0; +} + +.copyBtn { + margin-top: 0.65rem; + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.12em; + text-transform: uppercase; + color: var(--accent); + background: transparent; + border: 1px solid var(--accent); + padding: 0.45rem 1.2rem; + cursor: pointer; + transition: + background 0.15s ease, + color 0.15s ease, + transform 0.1s ease; + width: 100%; + + &:hover { + background: var(--accent); + color: #fff; + } + + &:active { + transform: scale(0.97); + } + + &.copyBtnCopied { + background: var(--accent); + color: #fff; + } +} + +.bottomBar { + padding: 1.25rem 1.75rem; + border-top: 1px solid var(--border); + flex-shrink: 0; + + @media (max-width: 1023px) { + padding: 1rem; + } +} + +.toggleBtn { + width: 100%; + font-family: var(--font-ui); + font-size: 0.75rem; + font-weight: 500; + letter-spacing: 0.15em; + text-transform: uppercase; + padding: 0.75rem 0; + border: 1px solid var(--accent); + background: var(--accent); + color: #fff; + cursor: pointer; + transition: + background 0.15s ease, + color 0.15s ease, + border-color 0.15s ease, + transform 0.1s ease; + + &:hover { + background: var(--accent-dark, #9a2a2a); + } + + &:active { + transform: scale(0.98); + } + + &.toggleBtnUnmark { + background: transparent; + border-color: var(--border-strong); + color: var(--text-secondary); + + &:hover { + border-color: var(--accent); + color: var(--accent); + background: transparent; + } + } +} diff --git a/src/components/vibesuite/SkillDetailPanel/SkillDetailPanel.tsx b/src/components/vibesuite/SkillDetailPanel/SkillDetailPanel.tsx new file mode 100644 index 0000000..62c1d11 --- /dev/null +++ b/src/components/vibesuite/SkillDetailPanel/SkillDetailPanel.tsx @@ -0,0 +1,369 @@ +import cn from 'classnames'; +import { useRouter } from 'next/router'; +import { useEffect, useRef, useState } from 'react'; + +import type { TRouter } from '@local-types/global'; +import { Skill } from '@local-types/pageTypes/vibesuite'; + +import vibesuiteIntl from '@data/vibesuite/intl'; +import { categoriesRu } from '@data/vibesuite/intl/skills.ru'; +import { localizeSkill } from '@data/vibesuite/localizeSkills'; +import { getDependencies, getSkillById } from '@data/vibesuite/skills'; + +import CategoryIcon from '@components/vibesuite/CategoryIcons'; + +import { SkillDetailPanelProps } from './SkillDetailPanel.types'; + +import styles from './SkillDetailPanel.module.scss'; + +const KATAKANA_MAP: Record<string, string> = { + a: '\u30A2', + b: '\u30D3', + c: '\u30AF', + d: '\u30C7', + e: '\u30A8', + f: '\u30D5', + g: '\u30B0', + h: '\u30CF', + i: '\u30A4', + j: '\u30B8', + k: '\u30AB', + l: '\u30EB', + m: '\u30DE', + n: '\u30CA', + o: '\u30AA', + p: '\u30D7', + q: '\u30AF', + r: '\u30E9', + s: '\u30B5', + t: '\u30BF', + u: '\u30A6', + v: '\u30F4', + w: '\u30EF', + x: '\u30B7', + y: '\u30E4', + z: '\u30BA', +}; + +function getKatakana(name: string): string { + const first = name.charAt(0).toLowerCase(); + return KATAKANA_MAP[first] || '\u30B9'; +} + +function buildInstruction(skill: Skill, locale: string): string { + const tools = skill.tools.join(', '); + const plural = skill.tools.length > 1; + + if (locale === 'ru') { + return `Я хочу изучить «${skill.name}». Задача: ${skill.projectTitle}. Инструменты: ${tools}. Давай построим это вместе, шаг за шагом.`; + } + + const title = skill.projectTitle + .replace(/\byour\b/gi, 'my') + .replace(/\byou\b/gi, 'I'); + const lower = title.charAt(0).toLowerCase() + title.slice(1); + return `I want to learn "${skill.name}" to know how to ${lower}. I've been looking into ${tools} for this \u2014 if ${plural ? "they're a good fit" : "it's a good fit"} for my project, let's use ${plural ? 'them' : 'it'}. Can we build this together?`; +} + +export default function SkillDetailPanel({ + skill, + category, + progress, + onToggle, + onClose, + onSelectSkill, + prevSkillId, + nextSkillId, + requestClose, + isLoggedIn, + onOpenLogin, +}: SkillDetailPanelProps) { + const { locale } = useRouter() as TRouter; + const t = vibesuiteIntl[locale]; + + const locSkill = localizeSkill(skill, locale); + const catName = + locale === 'ru' + ? categoriesRu[category.id]?.name || category.name + : category.name; + + const difficultyDisplay: Record<string, { label: string; color: string }> = { + beginner: { label: t.difficultyBeginner, color: '#6B8E6B' }, + intermediate: { label: t.difficultyIntermediate, color: '#B8960B' }, + advanced: { label: t.difficultyAdvanced, color: 'var(--accent)' }, + }; + + const isCompleted = !!progress[skill.id]?.completed; + const deps = getDependencies(skill.id); + const diff = difficultyDisplay[skill.difficulty]; + const instruction = buildInstruction(locSkill, locale); + const [copied, setCopied] = useState(false); + const [closing, setClosing] = useState(false); + const [showGuide, setShowGuide] = useState(false); + const [contentVisible, setContentVisible] = useState(true); + const prevSkillRef = useRef(skill.id); + + const prevSkill = prevSkillId ? getSkillById(prevSkillId) : null; + const nextSkill = nextSkillId ? getSkillById(nextSkillId) : null; + + useEffect(() => { + const header = document.querySelector('header') as HTMLElement | null; + if (header) header.style.zIndex = '0'; + return () => { + if (header) header.style.zIndex = ''; + }; + }, []); + + useEffect(() => { + if (skill.id !== prevSkillRef.current) { + prevSkillRef.current = skill.id; + setContentVisible(false); + setCopied(false); + const frame = requestAnimationFrame(() => { + requestAnimationFrame(() => setContentVisible(true)); + }); + return () => cancelAnimationFrame(frame); + } + }, [skill.id]); + + const handleClose = () => { + setClosing(true); + setTimeout(() => onClose(), 180); + }; + + useEffect(() => { + if (requestClose && !closing) { + handleClose(); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [requestClose]); + + const handleCopy = async () => { + try { + await navigator.clipboard.writeText(instruction); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } catch { + const ta = document.createElement('textarea'); + ta.value = instruction; + document.body.appendChild(ta); + ta.select(); + document.execCommand('copy'); + document.body.removeChild(ta); + setCopied(true); + setTimeout(() => setCopied(false), 2000); + } + }; + + return ( + <div className={styles.backdrop} onClick={handleClose}> + <div className={cn(styles.background, {})} /> + <div + role="dialog" + aria-label={locSkill.name} + className={cn( + styles.panel, + closing ? 'animate-modal-out' : 'animate-modal-in', + )} + onClick={e => e.stopPropagation()} + > + <div + className={styles.scrollContent} + style={{ opacity: contentVisible ? 1 : 0 }} + > + <div className={styles.headerRow}> + <span className={styles.categoryLabel}> + <CategoryIcon categoryId={category.id} /> {catName} + </span> + <div + style={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }} + > + <div className={styles.navBtns}> + <button + className={cn(styles.navBtn, { + [styles.navBtnDisabled]: !prevSkill, + })} + disabled={!prevSkill} + onClick={() => prevSkillId && onSelectSkill(prevSkillId)} + title={prevSkill?.name} + aria-label={ + prevSkill ? `Previous: ${prevSkill.name}` : 'Previous skill' + } + > + ‹ + </button> + <button + className={cn(styles.navBtn, { + [styles.navBtnDisabled]: !nextSkill, + })} + disabled={!nextSkill} + onClick={() => nextSkillId && onSelectSkill(nextSkillId)} + title={nextSkill?.name} + aria-label={ + nextSkill ? `Next: ${nextSkill.name}` : 'Next skill' + } + > + › + </button> + </div> + <button + className={styles.closeBtn} + onClick={handleClose} + title="Close" + aria-label="Close skill details" + > + ✕ + </button> + </div> + </div> + + <h2 className={styles.skillTitle}> + <span className={styles.titleKatakana}> + {getKatakana(skill.name)} + </span> + {locSkill.name} + </h2> + + <div className={styles.metaRow}> + <span + className={styles.difficultyBadge} + style={{ color: diff.color, border: `1px solid ${diff.color}40` }} + > + {diff.label} + </span> + <span className={styles.timeLabel}>{locSkill.timeEstimate}</span> + </div> + + <div className={styles.accentRule} /> + + <p className={styles.sectionLabel}>{t.whatYoullBuild}</p> + <p className={styles.projectTitle}>{locSkill.projectTitle}</p> + + <p className={styles.projectDesc}>{locSkill.projectDescription}</p> + + <div className={styles.toolsSection}> + <p className={styles.sectionLabel}>{t.tools}</p> + <ul className={styles.toolsWrap}> + {skill.tools.map(tool => ( + <li key={tool} className={styles.toolTag}> + {tool} + </li> + ))} + </ul> + </div> + + {deps.length > 0 && ( + <div className={styles.depsSection}> + <p className={styles.sectionLabel}>{t.prerequisites}</p> + <ul className={styles.depsList}> + {deps.map(dep => { + const depDone = !!progress[dep.id]?.completed; + const locDep = localizeSkill(dep, locale); + return ( + <li key={dep.id}> + <button + className={cn(styles.depBtn, { + [styles.depDone]: depDone, + })} + onClick={() => onSelectSkill(dep.id)} + > + <span>{depDone ? '\u2713' : '\u25CB'}</span> + {locDep.name} + </button> + </li> + ); + })} + </ul> + </div> + )} + + <div className={styles.instructionBlock}> + <div className={styles.instructionHeader}> + <p className={styles.instructionSectionLabel}> + {t.howToLearnThis} + </p> + <button + className={styles.guideToggleBtn} + onClick={() => setShowGuide(!showGuide)} + > + {showGuide ? t.hideGuide : t.firstTimeReadThis} + </button> + </div> + + {showGuide && ( + <div className={styles.guideContent}> + <div className={styles.guideText}> + <p className={styles.guideHeading}>{t.detailGuideHeading}</p> + <ol className={styles.guideStepList}> + <li className={styles.guideStep}> + <span className={styles.guideStepNum} aria-hidden="true"> + 1. + </span> + <span> + <strong style={{ color: 'var(--text-primary)' }}> + {t.detailGuideStep1Bold} + </strong>{' '} + {t.detailGuideStep1Rest} + </span> + </li> + <li className={styles.guideStep}> + <span className={styles.guideStepNum} aria-hidden="true"> + 2. + </span> + <span> + <strong style={{ color: 'var(--text-primary)' }}> + {t.detailGuideStep2Bold} + </strong>{' '} + {t.detailGuideStep2Rest} + </span> + </li> + <li className={styles.guideStep}> + <span className={styles.guideStepNum} aria-hidden="true"> + 3. + </span> + <span> + <strong style={{ color: 'var(--text-primary)' }}> + {t.detailGuideStep3Bold} + </strong>{' '} + {t.detailGuideStep3Rest} + </span> + </li> + </ol> + <p className={styles.guideTip}>{t.detailGuideTip}</p> + </div> + </div> + )} + + <div className={styles.instructionText}> + <p className={styles.instructionParagraph}>{instruction}</p> + </div> + + <button + className={cn(styles.copyBtn, { [styles.copyBtnCopied]: copied })} + onClick={handleCopy} + > + {copied ? t.copiedExcl : t.copyInstruction} + </button> + </div> + </div> + + <div className={styles.bottomBar}> + <button + className={cn(styles.toggleBtn, { + [styles.toggleBtnUnmark]: isCompleted, + })} + onClick={() => { + if (!isLoggedIn && onOpenLogin) { + onOpenLogin(); + return; + } + onToggle(skill.id, !isCompleted); + }} + > + {isCompleted ? t.unmarkAsLearned : t.markAsLearned} + </button> + </div> + </div> + </div> + ); +} diff --git a/src/components/vibesuite/SkillDetailPanel/SkillDetailPanel.types.ts b/src/components/vibesuite/SkillDetailPanel/SkillDetailPanel.types.ts new file mode 100644 index 0000000..607372f --- /dev/null +++ b/src/components/vibesuite/SkillDetailPanel/SkillDetailPanel.types.ts @@ -0,0 +1,19 @@ +import { + Skill, + SkillCategory, + UserProgress, +} from '@local-types/pageTypes/vibesuite'; + +export type SkillDetailPanelProps = { + skill: Skill; + category: SkillCategory; + progress: UserProgress; + onToggle: (skillId: string, completed: boolean) => void; + onClose: () => void; + onSelectSkill: (skillId: string) => void; + prevSkillId: string | null; + nextSkillId: string | null; + requestClose?: boolean; + isLoggedIn?: boolean; + onOpenLogin?: () => void; +}; diff --git a/src/components/vibesuite/SkillDetailPanel/index.ts b/src/components/vibesuite/SkillDetailPanel/index.ts new file mode 100644 index 0000000..e9f327b --- /dev/null +++ b/src/components/vibesuite/SkillDetailPanel/index.ts @@ -0,0 +1,3 @@ +import SkillDetailPanel from './SkillDetailPanel'; + +export default SkillDetailPanel; diff --git a/src/constants/tools.ts b/src/constants/tools.ts index a7cdab5..c91619f 100644 --- a/src/constants/tools.ts +++ b/src/constants/tools.ts @@ -4,9 +4,11 @@ import CompanyManagementIcon from '@icons/tools/company-management.svg'; import BobIcon from '@icons/tools/tool-icons/bob.svg'; import ClaudeBobIcon from '@icons/tools/tool-icons/claude-bob.svg'; import EmaIcon from '@icons/tools/tool-icons/ema.svg'; +import FriendlyTomIcon from '@icons/tools/tool-icons/friendly-tom.svg'; import GithubIcon from '@icons/tools/tool-icons/github.svg'; import MosaicIcon from '@icons/tools/tool-icons/mosaic.svg'; import TomIcon from '@icons/tools/tool-icons/tom.svg'; +import VibeSuiteIcon from '@icons/tools/tool-icons/vibesuite.svg'; export type ToolConfig = { Icon: FC<SVGProps<SVGSVGElement>>; @@ -15,6 +17,7 @@ export type ToolConfig = { darkIconFill: string; isBlank: boolean; }; +// TODO - review html, button with p and div export const TOOL_CONFIG: Record<number, ToolConfig> = { 1: { @@ -66,6 +69,20 @@ export const TOOL_CONFIG: Record<number, ToolConfig> = { darkIconFill: '#FFB366', isBlank: true, }, + 8: { + Icon: VibeSuiteIcon, + hoverColor: '#A4B465', + darkHoverColor: '#D3DEAC', + darkIconFill: '#D3DEAC', + isBlank: false, + }, + 9: { + Icon: FriendlyTomIcon, + hoverColor: '#B8860B', + darkHoverColor: '#E5C988', + darkIconFill: '#E5C988', + isBlank: false, + }, }; export const DEFAULT_CONFIG: ToolConfig = { diff --git a/src/data/settings/en.ts b/src/data/settings/en.ts new file mode 100644 index 0000000..3795cce --- /dev/null +++ b/src/data/settings/en.ts @@ -0,0 +1,17 @@ +const en = { + title: 'Settings', + selectTitle: 'Select title', + usernameTxt: 'Username', + email: 'Email', + visible: 'Visible to:', + everyone: 'Everyone', + onlyYou: 'Only you', + linkedIn: 'LinkedIn profile', + saveBtn: 'Save', + cancelBtn: 'Cancel', + usernameValidationMessage: + 'Must be 6-30 characters. No special characters allowed.', + invalidLinkedIn: 'Please enter a valid LinkedIn URL.', +}; + +export default en; diff --git a/src/data/settings/index.ts b/src/data/settings/index.ts new file mode 100644 index 0000000..73ed0c9 --- /dev/null +++ b/src/data/settings/index.ts @@ -0,0 +1,12 @@ +import en from './en'; +import ru from './ru'; + +const locales = { + en, + ru, +} as const satisfies { + en: typeof en; + ru: typeof ru; +}; + +export default locales; diff --git a/src/data/settings/ru.ts b/src/data/settings/ru.ts new file mode 100644 index 0000000..13f5280 --- /dev/null +++ b/src/data/settings/ru.ts @@ -0,0 +1,17 @@ +const ru = { + title: 'Настройки', + selectTitle: 'Звание', + usernameTxt: 'Имя пользователя', + email: 'Электронная почта', + visible: 'Видно:', + everyone: 'Всем', + onlyYou: 'Только мне', + linkedIn: 'LinkedIn профиль', + saveBtn: 'Сохранить', + cancelBtn: 'Отмена', + usernameValidationMessage: + 'Разрешено 6-30 символов, без специальных символов.', + invalidLinkedIn: 'Не верный формат ссылки', +}; + +export default ru; diff --git a/src/data/vibesuite/intl/en.ts b/src/data/vibesuite/intl/en.ts new file mode 100644 index 0000000..457211d --- /dev/null +++ b/src/data/vibesuite/intl/en.ts @@ -0,0 +1,114 @@ +const en = { + // Page + pageTitle: 'Vibe Suite \u2014 AI Skill Guide', + pageSubtitle: 'Your path from first prompt to shipped product', + firstTimeClick: 'First time? Click here', + searchPlaceholder: 'Search skills...', + showLabel: 'Show', + filterAll: 'All', + filterLearned: 'Learned', + filterNotLearned: 'Not Learned', + + // Guide modal + guideAccent: 'How this works', + guideTitle: 'Your AI does the teaching. This map tells it what.', + guideStep1Title: 'Pick a skill', + guideStep1Desc: + "Each card is a real project. Click one to see what you'll build and get a ready-made instruction for your AI.", + guideStep2Title: 'Give it to your AI', + guideStep2Desc: + 'Copy the instruction and paste it into Claude, ChatGPT, or Cursor. Build the project together, step by step.', + guideStep3Title: 'Mark as learned', + guideStep3Desc: + 'Done building? Mark it. Your progress bar and recommendations update automatically.', + guideGotIt: 'Got it', + + // Why modal + whyP1: + 'Most knowledge workers are becoming irrelevant. Not next year. Right now. Every single day.', + whyP2: + 'This isn\u2019t doom-scrolling anxiety\u00A0\u2014 it\u2019s math. AI replaces tasks, tasks make up jobs, jobs disappear quietly while people argue on Twitter about whether it\u2019s \u201Creally\u201D happening.', + whyP3: + 'This skill map is your chance to stay relevant. Learn to build with AI\u00A0\u2014 not compete against it\u00A0\u2014 so that in your 30s and 40s you still get to choose what you do for a living.', + + // ProgressHeader + milestoneObserver: 'Observer', + milestoneExplorer: 'Explorer', + milestoneMaster: 'Master', + milestoneSingularity: 'Singularity', + reached: 'Reached!', + skillSingular: 'skill', + skillPlural: 'skills', + toMilestone: 'to', + myProgress: 'My Progress', + progressBody1: + 'Copy your learning state and paste it into any AI assistant you use for building.', + progressBody2: + "Tell it what you want to build \u2014 it will see which skills you already have and which ones you haven't touched yet, then suggest an approach that plays to your strengths while filling in the gaps. Just paste and go.", + copyStateLine1: + 'Here is my current skill profile. Each skill is marked as LEARNED or NOT LEARNED.', + copyStateLine2: 'When I describe what I want to build, use this profile to:', + copyStateLine3: + '1. Suggest an architecture and tech stack that leverages skills I already know.', + copyStateLine4: + "2. Identify which skills I haven't learned yet that would be valuable for the project, and offer to teach them as we go.", + copyStateLine5: + '3. Give me options \u2014 one path that stays inside my comfort zone, one that stretches it, and one that balances both.', + progressPrefix: 'Progress:', + skillsWord: 'skills', + learned: 'LEARNED', + notLearned: 'NOT LEARNED', + copyStateEnd: "Now, here's what I want to build:", + copied: 'Copied', + copyMyLearningState: 'Copy my learning state', + close: 'Close', + toTheGlory: 'T O T H E G L O R Y', + + // CategoryNav + categoriesTitle: 'Categories', + whatToLearnNext: 'What to learn next?', + personalizedForYou: 'Personalized for you', + allCategories: 'All Categories', + whyDoINeedThis: 'Why do I need this?', + + // SkillDetailPanel + difficultyBeginner: 'Beginner', + difficultyIntermediate: 'Intermediate', + difficultyAdvanced: 'Advanced', + whatYoullBuild: "What you'll build", + tools: 'Tools', + prerequisites: 'Prerequisites', + howToLearnThis: 'How to learn this', + hideGuide: 'Hide guide', + firstTimeReadThis: 'First time? Read this', + detailGuideHeading: 'Each skill is a real project you build with AI:', + detailGuideStep1Bold: 'Copy the instruction', + detailGuideStep1Rest: + 'below and paste it into your AI assistant (Claude, ChatGPT, Cursor, etc.)', + detailGuideStep2Bold: 'Follow along', + detailGuideStep2Rest: + 'as the AI walks you through building it step by step in your own project', + detailGuideStep3Bold: 'Mark as learned', + detailGuideStep3Rest: + "once you've completed it. No quizzes, no grades \u2014 you built it, you learned it.", + detailGuideTip: + "That's it. No videos. No courses. You learn by building real things.", + copiedExcl: 'Copied!', + copyInstruction: 'Copy Instruction', + unmarkAsLearned: 'Unmark as Learned', + markAsLearned: 'Mark as Learned', + + // RecommendationModal + whatToLearnNextTitle: 'What to learn next', + + // Recommendation reasons + reasonUnlocks: 'Unlocks', + reasonNewSkill: 'new skill', + reasonNewSkills: 'new skills', + reasonQuickWin: 'Quick win', + reasonMatchesLevel: 'Matches your current level', + reasonAllPrereqsDone: 'All prerequisites done', + reasonGoodNextStep: 'Good next step', +}; + +export default en; diff --git a/src/data/vibesuite/intl/hy.ts b/src/data/vibesuite/intl/hy.ts new file mode 100644 index 0000000..a7add7d --- /dev/null +++ b/src/data/vibesuite/intl/hy.ts @@ -0,0 +1,5 @@ +import en from './en'; + +const hy = { ...en }; + +export default hy; diff --git a/src/data/vibesuite/intl/index.ts b/src/data/vibesuite/intl/index.ts new file mode 100644 index 0000000..f9e3da6 --- /dev/null +++ b/src/data/vibesuite/intl/index.ts @@ -0,0 +1,9 @@ +import en from './en'; +import hy from './hy'; +import ru from './ru'; + +export default { en, ru, hy } as { + en: typeof en; + ru: typeof ru; + hy: typeof hy; +}; diff --git a/src/data/vibesuite/intl/ru.ts b/src/data/vibesuite/intl/ru.ts new file mode 100644 index 0000000..0a2bc43 --- /dev/null +++ b/src/data/vibesuite/intl/ru.ts @@ -0,0 +1,115 @@ +const ru = { + // Page + pageTitle: 'Vibe Suite — карта AI-навыков', + pageSubtitle: 'Ваш путь от первого промпта до готового продукта', + firstTimeClick: 'Первый раз? Нажмите сюда', + searchPlaceholder: 'Поиск навыков...', + showLabel: 'Показать', + filterAll: 'Все', + filterLearned: 'Изучено', + filterNotLearned: 'Не изучено', + + // Guide modal + guideAccent: 'Как это работает', + guideTitle: 'Ваш AI учит. Эта карта говорит ему чему.', + guideStep1Title: 'Выберите навык', + guideStep1Desc: + 'Каждая карточка\u00A0— реальный проект. Нажмите, чтобы увидеть, что вы построите, и получить готовую инструкцию для AI.', + guideStep2Title: 'Отдайте AI', + guideStep2Desc: + 'Скопируйте инструкцию и вставьте в Claude, ChatGPT или Cursor. Стройте проект вместе, шаг за шагом.', + guideStep3Title: 'Отметьте как изученный', + guideStep3Desc: + 'Закончили? Отметьте. Прогресс-бар и рекомендации обновятся автоматически.', + guideGotIt: 'Понятно', + + // Why modal + whyP1: + 'Большинство офисных работников становятся ненужными. Не в следующем году. Прямо сейчас. Каждый день.', + whyP2: + 'Это не тревожность от новостей\u00A0— это математика. AI заменяет задачи, задачи составляют работу, работа исчезает тихо, пока люди спорят в Twitter, происходит ли это «на самом деле».', + whyP3: + 'Эта карта навыков\u00A0— ваш шанс остаться востребованным. Научитесь строить с AI\u00A0— а не конкурировать с ним\u00A0— чтобы в 30 и 40 лет вы всё ещё могли выбирать, чем заниматься.', + + // ProgressHeader + milestoneObserver: 'Наблюдатель', + milestoneExplorer: 'Исследователь', + milestoneMaster: 'Мастер', + milestoneSingularity: 'Сингулярность', + reached: 'Достигнуто!', + skillSingular: 'навык', + skillPlural: 'навыков', + toMilestone: 'до', + myProgress: 'Мой прогресс', + progressBody1: + 'Скопируйте свой профиль обучения и вставьте в любой AI-ассистент, которым пользуетесь.', + progressBody2: + 'Расскажите, что хотите построить\u00A0— AI увидит, какие навыки у вас есть, а каких нет, и предложит подход, который использует ваши сильные стороны и закроет пробелы.', + copyStateLine1: + 'Вот мой профиль навыков. Каждый навык отмечен как ИЗУЧЕНО или НЕ ИЗУЧЕНО.', + copyStateLine2: + 'Когда я опишу, что хочу построить, используй этот профиль, чтобы:', + copyStateLine3: + '1. Предложить архитектуру и стек, которые используют навыки, которые я уже знаю.', + copyStateLine4: + '2. Определить, какие навыки я ещё не изучил, но они были бы полезны для проекта, и предложить изучить их по ходу.', + copyStateLine5: + '3. Дать варианты\u00A0— один путь в зоне комфорта, один с вызовом, и один сбалансированный.', + progressPrefix: 'Прогресс:', + skillsWord: 'навыков', + learned: 'ИЗУЧЕНО', + notLearned: 'НЕ ИЗУЧЕНО', + copyStateEnd: 'Итак, вот что я хочу построить:', + copied: 'Скопировано', + copyMyLearningState: 'Скопировать профиль', + close: 'Закрыть', + toTheGlory: 'К С Л А В Е', + + // CategoryNav + categoriesTitle: 'Категории', + whatToLearnNext: 'Что учить дальше?', + personalizedForYou: 'Подобрано для вас', + allCategories: 'Все категории', + whyDoINeedThis: 'Зачем мне это?', + + // SkillDetailPanel + difficultyBeginner: 'Начальный', + difficultyIntermediate: 'Средний', + difficultyAdvanced: 'Продвинутый', + whatYoullBuild: 'Что вы построите', + tools: 'Инструменты', + prerequisites: 'Предварительные навыки', + howToLearnThis: 'Как изучить', + hideGuide: 'Скрыть гайд', + firstTimeReadThis: 'Первый раз? Прочтите', + detailGuideHeading: 'Каждый навык\u00A0— реальный проект с AI:', + detailGuideStep1Bold: 'Скопируйте инструкцию', + detailGuideStep1Rest: + 'ниже и вставьте в AI-ассистент (Claude, ChatGPT, Cursor и т.д.)', + detailGuideStep2Bold: 'Следуйте за AI', + detailGuideStep2Rest: + 'который проведёт вас через сборку проекта шаг за шагом', + detailGuideStep3Bold: 'Отметьте как изученный', + detailGuideStep3Rest: + 'когда закончите. Никаких тестов, никаких оценок\u00A0— вы построили, вы научились.', + detailGuideTip: + 'Вот и всё. Никаких видео. Никаких курсов. Вы учитесь, строя реальные вещи.', + copiedExcl: 'Скопировано!', + copyInstruction: 'Скопировать', + unmarkAsLearned: 'Снять отметку', + markAsLearned: 'Отметить как изученный', + + // RecommendationModal + whatToLearnNextTitle: 'Что изучить дальше', + + // Recommendation reasons + reasonUnlocks: 'Открывает', + reasonNewSkill: 'новый навык', + reasonNewSkills: 'новых навыков', + reasonQuickWin: 'Быстрая победа', + reasonMatchesLevel: 'Подходит под ваш уровень', + reasonAllPrereqsDone: 'Все предварительные навыки изучены', + reasonGoodNextStep: 'Хороший следующий шаг', +}; + +export default ru; diff --git a/src/data/vibesuite/intl/skills.ru.ts b/src/data/vibesuite/intl/skills.ru.ts new file mode 100644 index 0000000..54ed965 --- /dev/null +++ b/src/data/vibesuite/intl/skills.ru.ts @@ -0,0 +1,496 @@ +/** Russian translations for VibeSuite skill & category content, keyed by ID. */ + +export const categoriesRu: Record< + string, + { name: string; description: string } +> = { + 'llm-ai': { + name: 'LLM и AI-ассистенты', + description: 'Подключайте AI-мозги к своим проектам', + }, + 'local-ai': { + name: 'Локальные AI-модели', + description: 'Запускайте AI на своём компьютере — бесплатно и приватно', + }, + 'image-video': { + name: 'Генерация изображений и видео', + description: 'Создавайте визуал с AI — от аватаров до видеоклипов', + }, + 'frontend-ui': { + name: 'Фронтенд и UI', + description: 'Создавайте красивые интерфейсы — сайты, дашборды, приложения', + }, + 'backend-db': { + name: 'Бэкенд и базы данных', + description: 'Храните данные, пишите серверную логику, создавайте API', + }, + 'auth-security': { + name: 'Авторизация и безопасность', + description: 'Вход, регистрация и защита данных пользователей', + }, + 'deploy-infra': { + name: 'Деплой и инфраструктура', + description: 'Публикуйте проекты в интернет и настраивайте инфраструктуру', + }, + payments: { + name: 'Платежи и монетизация', + description: 'Принимайте деньги — подписки, разовые платежи, крипто', + }, + integrations: { + name: 'Интеграции и сервисы', + description: 'Подключайте внешние сервисы — боты, email, Google Docs', + }, + 'ai-tools': { + name: 'AI-инструменты для вайб-кодинга', + description: 'Освойте инструменты, с которыми вы вайб-кодите', + }, +}; + +export const skillsRu: Record< + string, + { + id: string; + name: string; + projectTitle: string; + projectDescription: string; + timeEstimate: string; + } +> = { + // ─── LLMs & AI Assistants ─── + 'claude-api-chatbot': { + id: 'claude-api-chatbot', + name: 'Claude API — чат-бот для сайта', + projectTitle: 'Создайте AI-чатбот для своего сайта', + projectDescription: + 'Создайте виджет чата, который отвечает на вопросы посетителей о вашем продукте. Научитесь отправлять запросы к Claude API, писать системные промпты и обрабатывать ответы в реальном времени.', + timeEstimate: '2–3 часа', + }, + 'openai-api-content': { + id: 'openai-api-content', + name: 'OpenAI API — генератор контента', + projectTitle: 'Создайте генератор постов для соцсетей', + projectDescription: + 'Введите тему — получите готовые посты для Telegram, Twitter и LinkedIn в разных стилях. Научитесь работать с OpenAI API, промпт-инжинирингом и структурированным выводом.', + timeEstimate: '2–3 часа', + }, + 'prompt-engineering-advisor': { + id: 'prompt-engineering-advisor', + name: 'Промпт-инжиниринг — AI-советник', + projectTitle: + 'Создайте персонального AI-советника по теме, в которой вы разбираетесь', + projectDescription: + 'Например, советника по питанию, стилиста или гида по покупке техники. Научитесь chain-of-thought промптингу, few-shot примерам и тому, как заставить AI давать экспертные ответы.', + timeEstimate: '3–4 часа', + }, + 'streaming-responses': { + id: 'streaming-responses', + name: 'Стриминг — ответ AI в реальном времени', + projectTitle: + 'Добавьте стриминг в чатбот — текст появляется посимвольно, как в ChatGPT', + projectDescription: + 'Вместо ожидания полного ответа текст выводится в реальном времени. Научитесь Server-Sent Events (SSE), стриминговым API и обработке потоковых данных в UI.', + timeEstimate: '3–4 часа', + }, + 'claude-in-claude-app': { + id: 'claude-in-claude-app', + name: 'AI внутри приложения', + projectTitle: 'Создайте приложение с AI, работающим внутри', + projectDescription: + 'Например, текстовый редактор с AI-ассистентом или генератор викторин. Приложение вызывает Claude API изнутри и использует результат для интерактивного UI. Научитесь вложенным API-вызовам и управлению состоянием.', + timeEstimate: '1 день', + }, + 'rag-chat-documents': { + id: 'rag-chat-documents', + name: 'RAG — чат с документами', + projectTitle: + 'Создайте чатбот, который отвечает на вопросы по загруженным документам', + projectDescription: + 'Загрузите PDF или текстовый файл — AI прочитает его и ответит на вопросы по содержанию. Научитесь векторным эмбеддингам, чанкингу и поиску по схожести.', + timeEstimate: '1 день', + }, + 'ai-function-calling': { + id: 'ai-function-calling', + name: 'AI Function Calling — вызов функций', + projectTitle: 'Создайте AI-ассистента, который выполняет реальные действия', + projectDescription: + 'Вместо простого чата AI может реально действовать. Определите инструменты (функции), которые AI может вызывать, и он сам решит, когда их использовать. Научитесь function calling, определению инструментов и парсингу структурированного вывода.', + timeEstimate: '3–4 часа', + }, + 'multi-model-routing': { + id: 'multi-model-routing', + name: 'Мульти-модельная маршрутизация', + projectTitle: + 'Создайте AI-хаб, который выбирает лучшую модель для каждой задачи', + projectDescription: + 'Простые вопросы идут к дешёвой модели, сложные — к мощной. Научитесь работать с несколькими AI-провайдерами одновременно, маршрутизации запросов и оптимизации затрат.', + timeEstimate: '1–2 дня', + }, + + // ─── Local AI Models ─── + 'ollama-local': { + id: 'ollama-local', + name: 'Ollama — локальный ChatGPT', + projectTitle: 'Запустите собственный ChatGPT на своём компьютере', + projectDescription: + 'Установите Ollama, скачайте модель и создайте веб-интерфейс для общения с ней. Работает офлайн и бесплатно. Научитесь запускать LLM локально и делать к ним API-запросы.', + timeEstimate: '1–2 часа', + }, + 'local-ai-privacy': { + id: 'local-ai-privacy', + name: 'Локальный AI для приватности', + projectTitle: + 'Создайте приложение для обработки конфиденциальных данных с локальным AI', + projectDescription: + 'Медицинские заметки, юридические документы, личные дневники — некоторые данные не должны покидать ваш компьютер. Запустите локальную модель для резюмирования, классификации или извлечения информации.', + timeEstimate: '3–4 часа', + }, + 'local-ai-backend': { + id: 'local-ai-backend', + name: 'Локальный AI-бэкенд для проектов', + projectTitle: 'Подключите проект к локальной модели вместо платного API', + projectDescription: + 'Замените вызовы Claude/OpenAI API на локальную модель — тот же код, но бесплатно. Научитесь формату API, совместимому с OpenAI, и переключению между локальными и облачными моделями.', + timeEstimate: '2–3 часа', + }, + + // ─── Image & Video Generation ─── + 'replicate-image-gen': { + id: 'replicate-image-gen', + name: 'Replicate API — генератор изображений', + projectTitle: 'Создайте генератор изображений с веб-интерфейсом', + projectDescription: + 'Введите текстовое описание — получите изображение. Как Midjourney, но встроенный в ваш сайт. Научитесь Replicate API, моделям Flux/SDXL и обработке асинхронных задач.', + timeEstimate: '2–3 часа', + }, + 'voice-speech': { + id: 'voice-speech', + name: 'Голос — распознавание и синтез речи', + projectTitle: 'Добавьте голосовой ввод и вывод в приложение', + projectDescription: + 'Пользователи говорят вместо набора текста, а приложение отвечает голосом. Научитесь Whisper API, ElevenLabs или Web Speech API и обработке аудиопотоков.', + timeEstimate: '2–3 часа', + }, + 'ai-avatars': { + id: 'ai-avatars', + name: 'AI-аватары', + projectTitle: 'Создайте сервис генерации аватаров из фотографий', + projectDescription: + 'Пользователь загружает фото — получает стилизованный аватар (аниме, пиксель-арт, 3D). Научитесь загрузке изображений, моделям image-to-image и серверной обработке файлов.', + timeEstimate: '1 день', + }, + 'video-generation': { + id: 'video-generation', + name: 'Генерация видео', + projectTitle: 'Создайте генератор коротких видео из текста', + projectDescription: + 'Пользователь описывает сцену — получает 4-секундный видеоклип. Научитесь видеомоделям (Runway, Kling, Minimax), длительным асинхронным задачам и отображению прогресса.', + timeEstimate: '1–2 дня', + }, + 'comfyui-pipeline': { + id: 'comfyui-pipeline', + name: 'ComfyUI Pipeline', + projectTitle: + 'Настройте собственный локальный пайплайн генерации изображений', + projectDescription: + 'Создайте визуальный пайплайн: txt2img → upscale → стилизация. Всё локально и бесплатно. Научитесь нодам ComfyUI, LoRA-моделям с CivitAI и автоматизации воркфлоу.', + timeEstimate: '1–2 дня', + }, + + // ─── Frontend & UI ─── + 'react-nextjs-portfolio': { + id: 'react-nextjs-portfolio', + name: 'React + Next.js — личный сайт', + projectTitle: 'Создайте свой персональный сайт-портфолио', + projectDescription: + 'Создайте многостраничный сайт: обо мне, проекты, контакты. Научитесь React-компонентам, маршрутизации Next.js, деплою на Vercel — основа для всего остального.', + timeEstimate: '3–4 часа', + }, + 'tailwind-styling': { + id: 'tailwind-styling', + name: 'Tailwind CSS — стилизация', + projectTitle: 'Оформите сайт с Tailwind и сделайте его профессиональным', + projectDescription: + 'Возьмите свой сайт и добавьте профессиональную стилизацию: мобильная адаптивность, тёмная тема, hover-эффекты. Научитесь utility-first подходу к CSS и адаптивному дизайну.', + timeEstimate: '2–3 часа', + }, + 'shadcn-ui-dashboard': { + id: 'shadcn-ui-dashboard', + name: 'shadcn/ui — готовые компоненты', + projectTitle: 'Соберите дашборд из готовых компонентов за час', + projectDescription: + 'Используйте библиотеку красивых компонентов (кнопки, модалки, таблицы, графики) и постройте рабочий дашборд. Научитесь компонентному подходу и кастомизации UI-библиотеки.', + timeEstimate: '2–3 часа', + }, + 'v0-dev-ai-ui': { + id: 'v0-dev-ai-ui', + name: 'v0.dev — AI-генерация UI', + projectTitle: 'Сгенерируйте целую страницу, описав её словами', + projectDescription: + 'Напишите промпт вроде «лендинг для крипто-портфолио трекера» — получите готовый React-код. Научитесь использовать AI для быстрого прототипирования интерфейсов.', + timeEstimate: '1 час', + }, + 'framer-motion-animations': { + id: 'framer-motion-animations', + name: 'Анимации — Framer Motion', + projectTitle: 'Добавьте плавные анимации на сайт', + projectDescription: + 'Эффекты появления элементов, переходы между страницами, параллакс при скролле. Научитесь Framer Motion, spring-анимациям и жестовым взаимодействиям.', + timeEstimate: '3–4 часа', + }, + 'interactive-visualizations': { + id: 'interactive-visualizations', + name: 'Интерактивные визуализации', + projectTitle: 'Создайте интерактивную карту или визуализацию данных', + projectDescription: + 'Например, карту с метками на Mapbox или масштабируемый график на D3. Научитесь canvas/SVG, обработке пользовательских жестов и визуальному отображению данных.', + timeEstimate: '1–2 дня', + }, + + // ─── Backend & Databases ─── + 'api-routes-first': { + id: 'api-routes-first', + name: 'API Routes — ваш первый API', + projectTitle: 'Создайте свой первый API-эндпойнт', + projectDescription: + 'Создайте API, который возвращает данные (например, список проектов в JSON). Любой сайт или приложение может его вызывать. Научитесь HTTP-методам (GET, POST), JSON и серверным функциям Next.js.', + timeEstimate: '1–2 часа', + }, + 'supabase-crud': { + id: 'supabase-crud', + name: 'Supabase — база данных', + projectTitle: 'Подключите базу данных и создайте CRUD-приложение', + projectDescription: + 'Создайте приложение для создания, чтения, обновления и удаления записей (например, список задач или заметки). Научитесь SQL, PostgreSQL через Supabase и управлению данными.', + timeEstimate: '3–4 часа', + }, + 'file-storage-uploads': { + id: 'file-storage-uploads', + name: 'Хранилище файлов — загрузка и раздача', + projectTitle: 'Добавьте загрузку файлов с облачным хранилищем', + projectDescription: + 'Пользователи загружают изображения, документы или любые файлы — приложение хранит их в облаке и раздаёт обратно. Научитесь multipart-загрузке, pre-signed URL и облачным хранилищам.', + timeEstimate: '2–3 часа', + }, + 'redis-vercel-kv-cache': { + id: 'redis-vercel-kv-cache', + name: 'Redis / Vercel KV — быстрый кэш', + projectTitle: 'Добавьте кэширование и ускорьте сайт в 10 раз', + projectDescription: + 'Сохраняйте частые запросы в Redis, чтобы не обращаться к базе каждый раз. Научитесь key-value хранилищам, TTL и стратегиям кэширования.', + timeEstimate: '2–3 часа', + }, + 'neon-serverless-pg': { + id: 'neon-serverless-pg', + name: 'Neon — бессерверный PostgreSQL', + projectTitle: 'Подключите PostgreSQL, который масштабируется автоматически', + projectDescription: + 'Альтернатива Supabase для тех, кто хочет больше контроля. Neon включается и выключается автоматически — платите только за использование. Научитесь прямой работе с PostgreSQL и ORM (Prisma/Drizzle).', + timeEstimate: '3–4 часа', + }, + 'webhooks-events': { + id: 'webhooks-events', + name: 'Вебхуки — реакции на события', + projectTitle: 'Создайте систему, которая реагирует на внешние события', + projectDescription: + 'Например: пришла оплата в Stripe → отправить email. Или: обновился документ в Notion → перестроить сайт. Научитесь обработчикам вебхуков, проверке подписей и событийной архитектуре.', + timeEstimate: '3–4 часа', + }, + 'cron-scheduled-tasks': { + id: 'cron-scheduled-tasks', + name: 'Cron Jobs — задачи по расписанию', + projectTitle: 'Создайте автоматические фоновые задачи по расписанию', + projectDescription: + 'Отправляйте еженедельный дайджест, очищайте старые данные каждую ночь или проверяйте API каждый час — без нажатия кнопки. Научитесь Vercel Cron, GitHub Actions по расписанию и написанию надёжных фоновых задач.', + timeEstimate: '2–3 часа', + }, + + // ─── Auth & Security ─── + 'nextauth-google-login': { + id: 'nextauth-google-login', + name: 'NextAuth — вход на сайт', + projectTitle: 'Добавьте кнопку «Войти через Google» на сайт', + projectDescription: + 'Пользователи входят через аккаунт Google в один клик. Научитесь NextAuth.js, OAuth-провайдерам, сессиям и защищённым маршрутам.', + timeEstimate: '2–3 часа', + }, + 'magic-link-auth': { + id: 'magic-link-auth', + name: 'Magic Link — вход без пароля', + projectTitle: + 'Создайте вход без пароля — пользователь получает ссылку на email', + projectDescription: + 'Как в Notion или Slack: введите email, получите ссылку, нажмите — вы вошли. Без паролей. Научитесь Resend для отправки писем, потоку magic link и токенам.', + timeEstimate: '3–4 часа', + }, + 'api-keys-rate-limits': { + id: 'api-keys-rate-limits', + name: 'API-ключи и лимиты запросов', + projectTitle: 'Защитите API: ключи доступа и ограничение запросов', + projectDescription: + 'Создайте систему API-ключей для проекта и добавьте ограничение частоты запросов (максимум 100 в минуту). Научитесь аутентификации API, middleware и защите от спама.', + timeEstimate: '3–4 часа', + }, + 'row-level-security': { + id: 'row-level-security', + name: 'Row Level Security', + projectTitle: 'Убедитесь, что каждый пользователь видит только свои данные', + projectDescription: + 'Даже если кто-то получит доступ к API — он увидит только свои данные. Научитесь RLS-политикам в PostgreSQL/Supabase и принципу минимальных привилегий.', + timeEstimate: '2–3 часа', + }, + + // ─── Deploy & Infrastructure ─── + 'vercel-first-deploy': { + id: 'vercel-first-deploy', + name: 'Vercel — первый деплой', + projectTitle: 'Опубликуйте сайт в интернете за 5 минут', + projectDescription: + 'Подключите GitHub-репозиторий к Vercel и получите рабочий URL. Каждый git push = автоматический деплой. Научитесь CI/CD, переменным окружения и привязке домена.', + timeEstimate: '30 мин', + }, + 'netlify-static': { + id: 'netlify-static', + name: 'Netlify — статические сайты', + projectTitle: 'Задеплойте статический сайт (HTML/CSS/JS) на Netlify', + projectDescription: + 'Для простых проектов без бэкенда. Drag & drop или через Git. Научитесь разнице между статическим и динамическим хостингом, формам и редиректам.', + timeEstimate: '30 мин', + }, + 'analytics-know-users': { + id: 'analytics-know-users', + name: 'Аналитика — знайте своих пользователей', + projectTitle: + 'Добавьте аналитику, чтобы видеть, кто и как пользуется продуктом', + projectDescription: + 'Узнайте, сколько у вас посетителей, какие страницы они смотрят и где уходят — без навязчивого трекинга. Научитесь приватной аналитике и принятию решений на основе данных.', + timeEstimate: '1 час', + }, + 'github-actions-cicd': { + id: 'github-actions-cicd', + name: 'GitHub Actions — автоматизация', + projectTitle: 'Настройте автоматические тесты и деплой при каждом коммите', + projectDescription: + 'Напишите воркфлоу: при пуше в main — запустить проверки, если всё ок — задеплоить. Научитесь CI/CD-пайплайнам, YAML-конфигам и автоматизации рутины.', + timeEstimate: '2–3 часа', + }, + 'cloudflare-domain-cdn': { + id: 'cloudflare-domain-cdn', + name: 'Cloudflare — домен и CDN', + projectTitle: 'Подключите домен и ускорьте сайт через Cloudflare', + projectDescription: + 'Купите домен, настройте DNS, включите CDN и SSL. Научитесь работе DNS, что такое CDN и как защитить сайт от DDoS.', + timeEstimate: '1 час', + }, + + // ─── Payments & Monetization ─── + 'stripe-payments': { + id: 'stripe-payments', + name: 'Stripe — приём платежей', + projectTitle: 'Добавьте кнопку «Купить» на сайт', + projectDescription: + 'Пользователь нажимает, вводит данные карты, деньги приходят на ваш счёт. Научитесь Stripe Checkout, обработке вебхуков и тестовым платежам.', + timeEstimate: '3–4 часа', + }, + 'coinbase-crypto': { + id: 'coinbase-crypto', + name: 'Coinbase Commerce — крипто-платежи', + projectTitle: 'Добавьте оплату криптовалютой на сайт', + projectDescription: + 'Принимайте Bitcoin, Ethereum и стейблкоины. Научитесь Coinbase Commerce API, генерации платёжных ссылок и верификации транзакций.', + timeEstimate: '3–4 часа', + }, + subscriptions: { + id: 'subscriptions', + name: 'Подписки', + projectTitle: 'Создайте модель подписки: Free, Pro, Enterprise', + projectDescription: + 'Пользователи покупают подписку — получают доступ к премиум-функциям. Научитесь Stripe Subscriptions, управлению тарифами, даунгрейду/апгрейду и отмене.', + timeEstimate: '1–2 дня', + }, + 'prepaid-credits': { + id: 'prepaid-credits', + name: 'Предоплаченные кредиты', + projectTitle: + 'Создайте систему предоплаченных кредитов (как у ChatGPT API)', + projectDescription: + 'Пользователь покупает пакет кредитов, каждый запрос стоит кредит. Научитесь логике биллинга, балансам, ценообразованию и пользовательскому дашборду.', + timeEstimate: '1–2 дня', + }, + + // ─── Integrations & Services ─── + 'telegram-bot': { + id: 'telegram-bot', + name: 'Telegram-бот', + projectTitle: 'Создайте Telegram-бот, который делает что-то полезное', + projectDescription: + 'Например, бот-напоминалку, бот для заметок или AI-бот. Научитесь Telegram Bot API, обработке сообщений, инлайн-кнопкам и деплою бота на сервер.', + timeEstimate: '2–3 часа', + }, + 'email-resend': { + id: 'email-resend', + name: 'Email — транзакционные письма', + projectTitle: 'Отправляйте красивые письма из приложения', + projectDescription: + 'Welcome-письма, уведомления, сброс пароля — всё автоматически. Научитесь Resend API, React Email для шаблонов и триггерам отправки.', + timeEstimate: '1–2 часа', + }, + 'google-sheets-api': { + id: 'google-sheets-api', + name: 'Google APIs', + projectTitle: + 'Подключите Google Sheets как базу данных для простого проекта', + projectDescription: + 'Читайте и записывайте данные прямо из Google Sheets. Отлично для MVP и прототипов. Научитесь Google API, сервисным аккаунтам и авторизации.', + timeEstimate: '2–3 часа', + }, + 'notion-api': { + id: 'notion-api', + name: 'Notion API', + projectTitle: 'Создайте сайт, контент которого берётся из Notion', + projectDescription: + 'Пишите в Notion — сайт обновляется автоматически. Идеально для блогов или документации. Научитесь Notion API, маппингу блоков Notion в HTML и ISR.', + timeEstimate: '3–4 часа', + }, + + // ─── AI Tools for Vibe Coding ─── + 'claude-code-tool': { + id: 'claude-code-tool', + name: 'Claude Code', + projectTitle: 'Создайте целый проект одним промптом в терминале', + projectDescription: + 'Введите задачу в CLI — Claude Code создаст файлы, установит зависимости, напишет код. Научитесь агентному кодингу, формулированию задач для AI и терминальному воркфлоу.', + timeEstimate: '1 час', + }, + 'cursor-windsurf': { + id: 'cursor-windsurf', + name: 'Cursor / Windsurf', + projectTitle: 'Пишите код с AI-ассистентом прямо в редакторе', + projectDescription: + 'AI видит весь проект и предлагает код, исправления, рефакторинг в контексте. Научитесь AI-ассистированной разработке, контекстному редактированию и когда доверять AI, а когда нет.', + timeEstimate: '1–2 часа', + }, + 'claude-projects': { + id: 'claude-projects', + name: 'Claude Projects — контекст AI', + projectTitle: 'Настройте Claude так, чтобы он идеально знал ваш проект', + projectDescription: + 'Загрузите документацию, стайл-гайды и примеры в Claude Project — и AI будет отвечать в контексте ВАШЕГО проекта. Научитесь системным промптам, управлению знаниями и оптимизации промптов.', + timeEstimate: '1 час', + }, + 'mcp-servers': { + id: 'mcp-servers', + name: 'MCP-серверы', + projectTitle: 'Подключите Claude к вашим данным через MCP', + projectDescription: + 'Claude может читать ваш Google Drive, Slack, базу данных — и отвечать на основе реальных данных. Научитесь Model Context Protocol, настройке MCP-сервера и интеграции AI с внешними сервисами.', + timeEstimate: '2–3 часа', + }, + 'vibe-coding-method': { + id: 'vibe-coding-method', + name: 'Вайб-кодинг как метод', + projectTitle: 'От идеи до задеплоенного продукта за один день', + projectDescription: + 'Возьмите идею, опишите её AI, сгенерируйте код, отполируйте и задеплойте. Полный цикл. Научитесь комбинировать все инструменты: промпт → Claude Code → Vercel — и выпускать рабочий продукт.', + timeEstimate: '1 день', + }, +}; diff --git a/src/data/vibesuite/localizeSkills.ts b/src/data/vibesuite/localizeSkills.ts new file mode 100644 index 0000000..2855bc1 --- /dev/null +++ b/src/data/vibesuite/localizeSkills.ts @@ -0,0 +1,21 @@ +import { Skill, SkillCategory } from '@local-types/pageTypes/vibesuite'; + +import { categoriesRu, skillsRu } from './intl/skills.ru'; + +export function localizeSkill(skill: Skill, locale: string): Skill { + if (locale !== 'ru') return skill; + const ru = skillsRu[skill.id]; + if (!ru) return skill; + return { ...skill, ...ru }; +} + +export function localizeCategory( + cat: SkillCategory, + locale: string, +): SkillCategory { + const skills = cat.skills.map(s => localizeSkill(s, locale)); + if (locale !== 'ru') return { ...cat, skills }; + const ru = categoriesRu[cat.id]; + if (!ru) return { ...cat, skills }; + return { ...cat, ...ru, skills }; +} diff --git a/src/data/vibesuite/skills.ts b/src/data/vibesuite/skills.ts new file mode 100644 index 0000000..3e2ec98 --- /dev/null +++ b/src/data/vibesuite/skills.ts @@ -0,0 +1,674 @@ +import { Skill, SkillCategory } from '@local-types/pageTypes/vibesuite'; + +export const categories: SkillCategory[] = [ + // ─── 1. LLMs & AI Assistants ─────────────────────────────────────── + { + id: 'llm-ai', + name: 'LLMs & AI Assistants', + icon: '🧠', + color: '#8B5CF6', + description: 'Connect AI brains to your projects', + skills: [ + { + id: 'claude-api-chatbot', + name: 'Claude API — Website Chatbot', + projectTitle: 'Build an AI chatbot for your website', + projectDescription: + 'Create a chat widget that answers visitor questions about your product. Learn how to send requests to the Claude API, write system prompts, and handle responses in real time.', + difficulty: 'beginner', + timeEstimate: '2-3 hours', + tools: ['Anthropic API', 'Next.js'], + }, + { + id: 'openai-api-content', + name: 'OpenAI API — Content Generator', + projectTitle: 'Build a social media post generator', + projectDescription: + 'Enter a topic — get ready-made posts for Telegram, Twitter, and LinkedIn in different styles. Learn how to work with the OpenAI API, prompt engineering, and structured output.', + difficulty: 'beginner', + timeEstimate: '2-3 hours', + tools: ['OpenAI API', 'Next.js'], + }, + { + id: 'prompt-engineering-advisor', + name: 'Prompt Engineering — AI Advisor', + projectTitle: 'Create a personal AI advisor on a topic you know well', + projectDescription: + 'For example, a nutrition advisor, a style consultant, or a tech-buying guide. Learn chain-of-thought prompting, few-shot examples, and how to make AI give expert-level answers.', + difficulty: 'beginner', + timeEstimate: '3-4 hours', + tools: ['Claude API or OpenAI API'], + }, + { + id: 'streaming-responses', + name: 'Streaming — Live AI Response', + projectTitle: 'Add streaming to your chatbot — text appears letter by letter like ChatGPT', + projectDescription: + 'Instead of waiting for the full response, text prints in real time. Learn Server-Sent Events (SSE), streaming APIs, and how to handle streamed data in the UI.', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Claude API', 'SSE', 'React'], + dependsOn: ['claude-api-chatbot'], + }, + { + id: 'claude-in-claude-app', + name: 'Embed AI in Your App', + projectTitle: 'Build an app with AI working inside it', + projectDescription: + 'For example, a text editor with an AI assistant or a quiz generator. The app calls the Claude API internally and uses the result for interactive UI. Learn nested API calls and state management.', + difficulty: 'intermediate', + timeEstimate: '1 day', + tools: ['Anthropic API', 'React'], + dependsOn: ['claude-api-chatbot'], + }, + { + id: 'rag-chat-documents', + name: 'RAG — Chat With Your Documents', + projectTitle: 'Build a chatbot that answers questions from your uploaded documents', + projectDescription: + 'Upload a PDF or text file — the AI reads it and answers questions based on its content. Learn vector embeddings (turning text into numbers AI can search), chunking (splitting documents into pieces), and similarity search.', + difficulty: 'intermediate', + timeEstimate: '1 day', + tools: ['Anthropic API', 'OpenAI Embeddings', 'Pinecone or Supabase pgvector'], + dependsOn: ['claude-api-chatbot'], + }, + { + id: 'ai-function-calling', + name: 'AI Function Calling — Tool Use', + projectTitle: + 'Build an AI assistant that takes real actions — queries a database, calls APIs, sends emails', + projectDescription: + 'Instead of just chatting, the AI can actually do things. Define tools (functions) the AI can call, and it decides when to use them. Learn function calling in Claude and OpenAI, tool definitions, and structured output parsing.', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Anthropic API', 'Next.js'], + dependsOn: ['claude-api-chatbot'], + }, + { + id: 'multi-model-routing', + name: 'Multi-Model Routing', + projectTitle: 'Build an AI hub that picks the best model for each task', + projectDescription: + 'Simple questions go to a cheap model, complex ones go to a powerful one. Learn how to work with multiple AI providers at once, request routing, and cost optimization.', + difficulty: 'advanced', + timeEstimate: '1-2 days', + tools: ['Claude API', 'OpenAI API', 'Next.js'], + dependsOn: ['claude-api-chatbot', 'openai-api-content'], + }, + ], + }, + + // ─── 2. Local AI Models ──────────────────────────────────────────── + { + id: 'local-ai', + name: 'Local AI Models', + icon: '💻', + color: '#10B981', + description: 'Run AI on your own computer — free and private', + skills: [ + { + id: 'ollama-local', + name: 'Ollama — Local ChatGPT', + projectTitle: 'Run your own ChatGPT on your computer', + projectDescription: + 'Install Ollama, download a model, and build a web interface to chat with it. Works offline and for free. Learn how to run LLMs locally and make API requests to them.', + difficulty: 'beginner', + timeEstimate: '1-2 hours', + tools: ['Ollama', 'Next.js'], + }, + { + id: 'local-ai-privacy', + name: 'Local AI for Privacy', + projectTitle: 'Build an app that processes sensitive data with a local AI model', + projectDescription: + 'Medical notes, legal documents, personal journals — some data should never leave your computer. Run a local model to summarize, classify, or extract info from private files. Learn when to use local vs. cloud AI, data privacy patterns, and offline inference.', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Ollama', 'Next.js'], + dependsOn: ['ollama-local'], + }, + { + id: 'local-ai-backend', + name: 'Local AI Backend for Projects', + projectTitle: 'Connect your project to a local model instead of a paid API', + projectDescription: + 'Replace Claude/OpenAI API calls with a local model — same code, but free. Learn the OpenAI-compatible API format and how to switch between local and cloud models.', + difficulty: 'intermediate', + timeEstimate: '2-3 hours', + tools: ['Ollama', 'Next.js'], + dependsOn: ['ollama-local'], + }, + ], + }, + + // ─── 3. Image & Video Generation ────────────────────────────────── + { + id: 'image-video', + name: 'Image & Video Generation', + icon: '🎨', + color: '#F97316', + description: 'Generate visuals with AI — from avatars to video clips', + skills: [ + { + id: 'replicate-image-gen', + name: 'Replicate API — Image Generator', + projectTitle: 'Build an image generator with a web interface', + projectDescription: + 'Enter a text description — get an image. Like Midjourney, but built into your site. Learn Replicate API, Flux/SDXL models, and handling async tasks.', + difficulty: 'beginner', + timeEstimate: '2-3 hours', + tools: ['Replicate API', 'Next.js'], + }, + { + id: 'voice-speech', + name: 'Voice — Speech to Text & Text to Speech', + projectTitle: 'Add voice input and output to your app', + projectDescription: + 'Users speak instead of typing, and the app talks back. Learn the Whisper API for speech-to-text, ElevenLabs or the browser Web Speech API for text-to-speech, and how to handle audio streams.', + difficulty: 'beginner', + timeEstimate: '2-3 hours', + tools: ['Whisper API', 'ElevenLabs or Web Speech API', 'Next.js'], + }, + { + id: 'ai-avatars', + name: 'AI Avatars', + projectTitle: 'Build an avatar generation service from photos', + projectDescription: + 'User uploads a photo — gets a stylized avatar (anime, pixel art, 3D). Learn image uploads, image-to-image models, and server-side file handling.', + difficulty: 'intermediate', + timeEstimate: '1 day', + tools: ['Replicate API', 'Next.js'], + dependsOn: ['replicate-image-gen'], + }, + { + id: 'video-generation', + name: 'Video Generation', + projectTitle: 'Build a text-to-short-video generator', + projectDescription: + 'User describes a scene — gets a 4-second video clip. Learn video models (Runway, Kling, Minimax), long async tasks, and progress display.', + difficulty: 'advanced', + timeEstimate: '1-2 days', + tools: ['Runway API / Replicate', 'Next.js'], + dependsOn: ['replicate-image-gen'], + }, + { + id: 'comfyui-pipeline', + name: 'ComfyUI Pipeline', + projectTitle: 'Set up your own local image generation pipeline', + projectDescription: + 'Create a visual pipeline: txt2img → upscale → stylize. All local and free. Learn ComfyUI nodes, LoRA models from CivitAI, and workflow automation.', + difficulty: 'advanced', + timeEstimate: '1-2 days', + tools: ['ComfyUI', 'CivitAI'], + }, + ], + }, + + // ─── 4. Frontend & UI ───────────────────────────────────────────── + { + id: 'frontend-ui', + name: 'Frontend & UI', + icon: '✨', + color: '#3B82F6', + description: 'Build beautiful interfaces — websites, dashboards, apps', + skills: [ + { + id: 'react-nextjs-portfolio', + name: 'React + Next.js — Personal Site', + projectTitle: 'Build your personal portfolio website', + projectDescription: + 'Create a multi-page site: about, projects, contacts. Learn React components, Next.js routing, Vercel deploy — the foundation for everything else.', + difficulty: 'beginner', + timeEstimate: '3-4 hours', + tools: ['Next.js', 'Vercel'], + }, + { + id: 'tailwind-styling', + name: 'Tailwind CSS — Styling', + projectTitle: 'Restyle your site with Tailwind and make it look professional', + projectDescription: + 'Take your site and add professional styling: mobile responsive, dark theme, hover effects. Learn the utility-first CSS approach and responsive design.', + difficulty: 'beginner', + timeEstimate: '2-3 hours', + tools: ['Tailwind CSS'], + }, + { + id: 'shadcn-ui-dashboard', + name: 'shadcn/ui — Ready Components', + projectTitle: 'Assemble a dashboard from ready-made components in an hour', + projectDescription: + 'Use a library of beautiful components (buttons, modals, tables, charts) and build a working dashboard from them. Learn the component approach and UI library customization.', + difficulty: 'beginner', + timeEstimate: '2-3 hours', + tools: ['shadcn/ui', 'Tailwind CSS'], + dependsOn: ['tailwind-styling'], + }, + { + id: 'v0-dev-ai-ui', + name: 'v0.dev — AI UI Generation', + projectTitle: 'Generate an entire page by describing it in words', + projectDescription: + "Write a prompt like 'landing page for a crypto portfolio tracker' — get ready React code. Learn how to use AI for rapid interface prototyping.", + difficulty: 'beginner', + timeEstimate: '1 hour', + tools: ['v0.dev', 'React'], + }, + { + id: 'framer-motion-animations', + name: 'Animations — Framer Motion', + projectTitle: 'Add smooth animations to your website', + projectDescription: + 'Element appear effects, page transitions, parallax on scroll. Learn Framer Motion, spring animations, and gesture interactions.', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Framer Motion', 'React'], + dependsOn: ['react-nextjs-portfolio'], + }, + { + id: 'interactive-visualizations', + name: 'Interactive Visualizations', + projectTitle: 'Build an interactive map or data visualization', + projectDescription: + 'For example, a map with pins on Mapbox or a zoomable chart on D3. Learn canvas/SVG, user gesture handling, and visual data display.', + difficulty: 'advanced', + timeEstimate: '1-2 days', + tools: ['D3.js', 'Mapbox / Leaflet', 'React'], + dependsOn: ['react-nextjs-portfolio'], + }, + ], + }, + + // ─── 5. Backend & Databases ──────────────────────────────────────── + { + id: 'backend-db', + name: 'Backend & Databases', + icon: '🗄️', + color: '#EF4444', + description: 'Store data, write server logic, build APIs', + skills: [ + { + id: 'api-routes-first', + name: 'API Routes — Your First API', + projectTitle: 'Build your first API endpoint', + projectDescription: + 'Create an API that returns data (e.g., a project list in JSON). Any website or app can call it. Learn HTTP methods (GET, POST), JSON, and Next.js server functions.', + difficulty: 'beginner', + timeEstimate: '1-2 hours', + tools: ['Next.js API Routes'], + }, + { + id: 'supabase-crud', + name: 'Supabase — Database', + projectTitle: 'Connect a database and build a CRUD app', + projectDescription: + 'Build an app where you can create, read, update, and delete records (e.g., a task list or notes). Learn SQL, PostgreSQL via Supabase, and data management.', + difficulty: 'beginner', + timeEstimate: '3-4 hours', + tools: ['Supabase', 'Next.js'], + }, + { + id: 'file-storage-uploads', + name: 'File Storage — Uploads & Serving', + projectTitle: 'Build file upload with cloud storage for your app', + projectDescription: + 'Users upload images, documents, or any file — your app stores them in the cloud and serves them back. Learn multipart uploads, pre-signed URLs, and cloud storage services like Vercel Blob, Cloudflare R2, or S3.', + difficulty: 'beginner', + timeEstimate: '2-3 hours', + tools: ['Vercel Blob or Cloudflare R2', 'Next.js'], + dependsOn: ['api-routes-first'], + }, + { + id: 'redis-vercel-kv-cache', + name: 'Redis / Vercel KV — Fast Cache', + projectTitle: 'Add caching and speed up your site 10x', + projectDescription: + "Save frequent requests in Redis so you don't hit the database every time. Learn key-value stores, TTL (data expiration), and caching strategies.", + difficulty: 'intermediate', + timeEstimate: '2-3 hours', + tools: ['Vercel KV', 'Redis'], + dependsOn: ['api-routes-first'], + }, + { + id: 'neon-serverless-pg', + name: 'Neon — Serverless PostgreSQL', + projectTitle: 'Connect a PostgreSQL that scales automatically', + projectDescription: + 'An alternative to Supabase for those who want more control. Neon turns on and off automatically — you only pay for usage. Learn direct PostgreSQL work and ORM (Prisma/Drizzle).', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Neon', 'Prisma', 'Next.js'], + dependsOn: ['api-routes-first'], + }, + { + id: 'webhooks-events', + name: 'Webhooks — Event Reactions', + projectTitle: 'Build a system that reacts to external events', + projectDescription: + 'For example: payment received in Stripe → send an email. Or: Notion document updated → rebuild the site. Learn webhook handlers, signature verification, and event-driven architecture.', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Next.js', 'Stripe / Notion'], + dependsOn: ['api-routes-first'], + }, + { + id: 'cron-scheduled-tasks', + name: 'Cron Jobs — Scheduled Tasks', + projectTitle: 'Build automated background tasks that run on a schedule', + projectDescription: + 'Send a weekly email digest, clean up old data every night, or check an API every hour — without anyone clicking a button. Learn Vercel Cron, GitHub Actions scheduled workflows, and how to write reliable background jobs.', + difficulty: 'intermediate', + timeEstimate: '2-3 hours', + tools: ['Vercel Cron', 'GitHub Actions', 'Next.js'], + dependsOn: ['api-routes-first'], + }, + ], + }, + + // ─── 6. Auth & Security ──────────────────────────────────────────── + { + id: 'auth-security', + name: 'Auth & Security', + icon: '🔐', + color: '#EAB308', + description: 'Login, registration, and user data protection', + skills: [ + { + id: 'nextauth-google-login', + name: 'NextAuth — Website Login', + projectTitle: "Add a 'Sign in with Google' button to your site", + projectDescription: + 'Users can log in with their Google account in one click. Learn NextAuth.js, OAuth providers, sessions, and protected routes.', + difficulty: 'beginner', + timeEstimate: '2-3 hours', + tools: ['NextAuth.js', 'Google OAuth', 'Next.js'], + }, + { + id: 'magic-link-auth', + name: 'Magic Link — Passwordless Login', + projectTitle: 'Build passwordless login — user gets a link via email', + projectDescription: + "Like Notion or Slack: enter email, get a link, click — you're logged in. No passwords. Learn Resend for sending emails, magic link flow, and tokens.", + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['NextAuth.js', 'Resend'], + dependsOn: ['nextauth-google-login'], + }, + { + id: 'api-keys-rate-limits', + name: 'API Keys & Rate Limits', + projectTitle: 'Protect your API: access keys and request throttling', + projectDescription: + 'Build an API key system for your project and add rate limiting (max 100 requests per minute). Learn API authentication, middleware, and spam protection.', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Next.js Middleware', 'Vercel KV'], + dependsOn: ['api-routes-first'], + }, + { + id: 'row-level-security', + name: 'Row Level Security', + projectTitle: 'Make sure each user can only see their own data', + projectDescription: + "Even if someone gets access to the API — they'll only see their own data. Learn RLS policies in PostgreSQL/Supabase and the principle of least privilege.", + difficulty: 'advanced', + timeEstimate: '2-3 hours', + tools: ['Supabase', 'PostgreSQL'], + dependsOn: ['supabase-crud', 'nextauth-google-login'], + }, + ], + }, + + // ─── 7. Deploy & Infrastructure ──────────────────────────────────── + { + id: 'deploy-infra', + name: 'Deploy & Infrastructure', + icon: '🚀', + color: '#6B7280', + description: 'Publish projects to the internet and set up infrastructure', + skills: [ + { + id: 'vercel-first-deploy', + name: 'Vercel — First Deploy', + projectTitle: 'Publish your website to the internet in 5 minutes', + projectDescription: + 'Connect a GitHub repo to Vercel and get a working URL. Every git push = automatic deploy. Learn CI/CD, env variables, and domain binding.', + difficulty: 'beginner', + timeEstimate: '30 min', + tools: ['Vercel', 'GitHub'], + }, + { + id: 'netlify-static', + name: 'Netlify — Static Sites', + projectTitle: 'Deploy a static site (HTML/CSS/JS) on Netlify', + projectDescription: + 'For simple projects without a backend. Drag & drop or via Git. Learn the difference between static and dynamic hosting, forms, and redirects.', + difficulty: 'beginner', + timeEstimate: '30 min', + tools: ['Netlify', 'GitHub'], + }, + { + id: 'analytics-know-users', + name: 'Analytics — Know Your Users', + projectTitle: 'Add analytics to see who uses your product and how', + projectDescription: + 'See how many visitors you get, which pages they visit, and where they drop off — without creepy tracking. Learn privacy-friendly analytics with Vercel Analytics, Plausible, or PostHog, and how to make data-driven decisions.', + difficulty: 'beginner', + timeEstimate: '1 hour', + tools: ['Vercel Analytics or Plausible or PostHog'], + dependsOn: ['vercel-first-deploy'], + }, + { + id: 'github-actions-cicd', + name: 'GitHub Actions — Automation', + projectTitle: 'Set up automatic tests and deploy on every commit', + projectDescription: + 'Write a workflow: on push to main — run checks, if all good — deploy. Learn CI/CD pipelines, YAML configs, and routine automation.', + difficulty: 'intermediate', + timeEstimate: '2-3 hours', + tools: ['GitHub Actions'], + dependsOn: ['vercel-first-deploy'], + }, + { + id: 'cloudflare-domain-cdn', + name: 'Cloudflare — Domain & CDN', + projectTitle: 'Connect your domain and speed up your site via Cloudflare', + projectDescription: + 'Buy a domain, set up DNS, enable CDN and SSL. Learn how DNS works, what CDN is, and how to protect your site from DDoS.', + difficulty: 'beginner', + timeEstimate: '1 hour', + tools: ['Cloudflare'], + }, + ], + }, + + // ─── 8. Payments & Monetization ──────────────────────────────────── + { + id: 'payments', + name: 'Payments & Monetization', + icon: '💰', + color: '#D97706', + description: 'Accept money — subscriptions, one-time payments, crypto', + skills: [ + { + id: 'stripe-payments', + name: 'Stripe — Accept Payments', + projectTitle: "Add a 'Buy' button to your site", + projectDescription: + 'User clicks, enters card info, money goes to your account. Learn Stripe Checkout, webhook handling, and test mode payments.', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Stripe', 'Next.js'], + dependsOn: ['api-routes-first'], + }, + { + id: 'coinbase-crypto', + name: 'Coinbase Commerce — Crypto Payments', + projectTitle: 'Add cryptocurrency payments to your site', + projectDescription: + 'Accept Bitcoin, Ethereum, and stablecoins. Learn Coinbase Commerce API, payment link generation, and transaction verification.', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Coinbase Commerce', 'Next.js'], + dependsOn: ['api-routes-first'], + }, + { + id: 'subscriptions', + name: 'Subscriptions', + projectTitle: 'Build a subscription model: Free, Pro, Enterprise', + projectDescription: + 'Users buy a subscription — get access to premium features. Learn Stripe Subscriptions, plan management, downgrade/upgrade, and cancellation.', + difficulty: 'advanced', + timeEstimate: '1-2 days', + tools: ['Stripe', 'Next.js', 'Supabase'], + dependsOn: ['stripe-payments'], + }, + { + id: 'prepaid-credits', + name: 'Prepaid Credits', + projectTitle: 'Build a prepaid credit system (like ChatGPT API)', + projectDescription: + 'User buys a pack of credits, each request costs a credit. Learn billing logic, balances, pricing, and a user dashboard.', + difficulty: 'advanced', + timeEstimate: '1-2 days', + tools: ['Stripe / Coinbase', 'Vercel KV'], + dependsOn: ['stripe-payments'], + }, + ], + }, + + // ─── 9. Integrations & Services ──────────────────────────────────── + { + id: 'integrations', + name: 'Integrations & Services', + icon: '🔗', + color: '#14B8A6', + description: 'Connect external services — bots, email, Google Docs', + skills: [ + { + id: 'telegram-bot', + name: 'Telegram Bot', + projectTitle: 'Build a Telegram bot that does something useful', + projectDescription: + 'For example, a reminder bot, a notes bot, or an AI bot. Learn Telegram Bot API, message handling, inline buttons, and deploying a bot to a server.', + difficulty: 'beginner', + timeEstimate: '2-3 hours', + tools: ['Telegram Bot API', 'Next.js'], + }, + { + id: 'email-resend', + name: 'Email — Transactional Emails', + projectTitle: 'Send beautiful emails from your app', + projectDescription: + 'Welcome emails, notifications, password reset — all automatic. Learn Resend API, React Email for templates, and send triggers.', + difficulty: 'beginner', + timeEstimate: '1-2 hours', + tools: ['Resend', 'React Email'], + }, + { + id: 'google-sheets-api', + name: 'Google APIs', + projectTitle: 'Connect Google Sheets as a database for a simple project', + projectDescription: + 'Read and write data directly from Google Sheets. Great for MVPs and prototypes. Learn Google API, service accounts, and authorization.', + difficulty: 'intermediate', + timeEstimate: '2-3 hours', + tools: ['Google Sheets API', 'Next.js'], + }, + { + id: 'notion-api', + name: 'Notion API', + projectTitle: 'Build a website whose content comes from Notion', + projectDescription: + 'Write in Notion — your site updates automatically. Perfect for blogs or docs. Learn Notion API, mapping Notion blocks to HTML, and ISR (Incremental Static Regeneration).', + difficulty: 'intermediate', + timeEstimate: '3-4 hours', + tools: ['Notion API', 'Next.js'], + dependsOn: ['react-nextjs-portfolio'], + }, + ], + }, + + // ─── 10. AI Tools for Vibe Coding ───────────────────────────────── + { + id: 'ai-tools', + name: 'AI Tools for Vibe Coding', + icon: '⚡', + color: '#EC4899', + description: 'Master the tools you vibe-code with', + skills: [ + { + id: 'claude-code-tool', + name: 'Claude Code', + projectTitle: 'Create an entire project with a single prompt in the terminal', + projectDescription: + 'Type a task in the CLI — Claude Code creates files, installs dependencies, writes code. Learn agentic coding, how to formulate tasks for AI, and terminal workflow.', + difficulty: 'beginner', + timeEstimate: '1 hour', + tools: ['Claude Code', 'Terminal'], + }, + { + id: 'cursor-windsurf', + name: 'Cursor / Windsurf', + projectTitle: 'Write code with an AI assistant right in your editor', + projectDescription: + 'AI sees your entire project and suggests code, fixes, refactoring in context. Learn AI-assisted development, contextual editing, and when to trust AI vs. not.', + difficulty: 'beginner', + timeEstimate: '1-2 hours', + tools: ['Cursor or Windsurf'], + }, + { + id: 'claude-projects', + name: 'Claude Projects — AI Context', + projectTitle: 'Set up Claude to know your project perfectly', + projectDescription: + "Upload docs, style guides, and examples to a Claude Project — and AI will answer in YOUR project's context. Learn system prompts, knowledge management, and prompt optimization.", + difficulty: 'beginner', + timeEstimate: '1 hour', + tools: ['Claude.ai Projects'], + }, + { + id: 'mcp-servers', + name: 'MCP Servers', + projectTitle: 'Connect Claude to your data via MCP', + projectDescription: + 'Claude can read your Google Drive, Slack, database — and answer based on real data. Learn Model Context Protocol, MCP server setup, and AI integration with external services.', + difficulty: 'intermediate', + timeEstimate: '2-3 hours', + tools: ['MCP SDK', 'Claude'], + dependsOn: ['claude-projects'], + }, + { + id: 'vibe-coding-method', + name: 'Vibe Coding as a Method', + projectTitle: 'Go from idea to deployed product in one day', + projectDescription: + 'Take an idea, describe it to AI, generate code, polish, and deploy. Full cycle. Learn how to combine all the tools: prompt → Claude Code → Vercel — and ship a working product.', + difficulty: 'intermediate', + timeEstimate: '1 day', + tools: ['Claude Code', 'Vercel', 'Next.js'], + }, + ], + }, +]; + +// ─── Helpers ───────────────────────────────────────────────────────────────── + +export const allSkills: Skill[] = categories.flatMap((c) => c.skills); + +export function getSkillById(id: string): Skill | undefined { + return allSkills.find((s) => s.id === id); +} + +export function getCategoryBySkillId(skillId: string): SkillCategory | undefined { + return categories.find((c) => c.skills.some((s) => s.id === skillId)); +} + +export function getDependencies(skillId: string): Skill[] { + const skill = getSkillById(skillId); + if (!skill?.dependsOn) return []; + return skill.dependsOn.map((id) => getSkillById(id)).filter(Boolean) as Skill[]; +} + +export function getTotalSkillCount(): number { + return allSkills.length; +} diff --git a/src/lib/settings-helpers.ts b/src/lib/settings-helpers.ts new file mode 100644 index 0000000..b6c7ea0 --- /dev/null +++ b/src/lib/settings-helpers.ts @@ -0,0 +1,9 @@ +export const isValidEmail = email => { + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + return emailRegex.test(email); +}; + +export const linkedInRegex = + /^(https?:\/\/)?(www\.)?(linkedin\.com\/in\/|lnkd\.in\/)[a-zA-Z0-9-]{3,30}\/?$/; + +export const usernameRegex = /^(?!.*[&%:;*|></\\#?"=])[^\s]{6,30}$/; diff --git a/src/lib/vibesuite/recommendations.ts b/src/lib/vibesuite/recommendations.ts new file mode 100644 index 0000000..0bc865e --- /dev/null +++ b/src/lib/vibesuite/recommendations.ts @@ -0,0 +1,169 @@ +import type { TLocales } from '@local-types/global'; +import { + Recommendation, + RecommendationReason, + UserProgress, +} from '@local-types/pageTypes/vibesuite'; + +import vibesuiteIntl from '@data/vibesuite/intl'; +import { allSkills, getCategoryBySkillId } from '@data/vibesuite/skills'; + +function parseTimeEstimateHours(estimate: string): number { + const lower = estimate.toLowerCase(); + if (lower.includes('min')) return 0.5; + if (lower.includes('day')) { + const match = lower.match(/(\d+)/); + return (match ? parseInt(match[1]) : 1) * 8; + } + const match = lower.match(/(\d+)/); + return match ? parseInt(match[1]) : 4; +} + +// Build reverse dependency map: skillId → number of skills it unlocks +function buildUnlockCounts(): Record<string, number> { + const counts: Record<string, number> = {}; + for (const skill of allSkills) { + if (skill.dependsOn) { + for (const depId of skill.dependsOn) { + counts[depId] = (counts[depId] || 0) + 1; + } + } + } + return counts; +} + +export function getRecommendations( + progress: UserProgress, + count = 3, + locale: TLocales = 'en', +): Recommendation[] { + const completedCount = Object.values(progress).filter( + p => p.completed, + ).length; + const progressPct = (completedCount / allSkills.length) * 100; + + // All done — nothing to recommend + if (completedCount >= allSkills.length) return []; + + const unlockCounts = buildUnlockCounts(); + + // Determine expected difficulty bracket + const expectedDifficulty = + progressPct < 30 + ? 'beginner' + : progressPct < 70 + ? 'intermediate' + : 'advanced'; + + // Score every unlearned skill + const scored: Recommendation[] = []; + + for (const skill of allSkills) { + if (progress[skill.id]?.completed) continue; + + let score = 0; + const reasons: RecommendationReason[] = []; + + // Check prerequisites + const deps = skill.dependsOn || []; + const allDepsCompleted = deps.every(d => progress[d]?.completed); + + if (allDepsCompleted) { + score += 30; + reasons.push('unlocked'); + } else { + score -= 50; + } + + // Hub bonus + const unlocks = unlockCounts[skill.id] || 0; + if (unlocks >= 2) { + score += 20; + reasons.push('hub'); + } + + // Difficulty match + if (skill.difficulty === expectedDifficulty) { + score += 10; + reasons.push('difficulty_match'); + } + + // Quick win + if (parseTimeEstimateHours(skill.timeEstimate) <= 2) { + score += 5; + reasons.push('quick_win'); + } + + scored.push({ skill, score, reasons, reasonText: '' }); + } + + // Sort by score descending + scored.sort((a, b) => b.score - a.score); + + // Greedy selection with category diversity penalty + const selected: Recommendation[] = []; + const usedCategories = new Set<string>(); + + for (const rec of scored) { + if (selected.length >= count) break; + + const cat = getCategoryBySkillId(rec.skill.id); + const catId = cat?.id || ''; + + if (usedCategories.has(catId)) { + rec.score -= 15; + } + + if (usedCategories.has(catId) && selected.length > 0) { + const betterAlt = scored.find( + s => + !selected.includes(s) && + s !== rec && + !usedCategories.has(getCategoryBySkillId(s.skill.id)?.id || '') && + s.score >= rec.score - 15, + ); + if (betterAlt) { + const altCat = getCategoryBySkillId(betterAlt.skill.id)?.id || ''; + usedCategories.add(altCat); + betterAlt.reasons.push('diversity'); + betterAlt.reasonText = generateReasonText( + betterAlt, + unlockCounts, + locale, + ); + selected.push(betterAlt); + continue; + } + } + + usedCategories.add(catId); + rec.reasonText = generateReasonText(rec, unlockCounts, locale); + selected.push(rec); + } + + return selected; +} + +function generateReasonText( + rec: Recommendation, + unlockCounts: Record<string, number>, + locale: TLocales = 'en', +): string { + const t = vibesuiteIntl[locale]; + const { reasons, skill } = rec; + const unlocks = unlockCounts[skill.id] || 0; + + if (reasons.includes('hub') && reasons.includes('unlocked')) { + return `${t.reasonUnlocks} ${unlocks} ${unlocks === 1 ? t.reasonNewSkill : t.reasonNewSkills}`; + } + if (reasons.includes('quick_win') && reasons.includes('unlocked')) { + return `${t.reasonQuickWin} \u2014 ${skill.timeEstimate}`; + } + if (reasons.includes('difficulty_match') && reasons.includes('unlocked')) { + return t.reasonMatchesLevel; + } + if (reasons.includes('unlocked')) { + return t.reasonAllPrereqsDone; + } + return t.reasonGoodNextStep; +} diff --git a/src/local-types/pageTypes/vibesuite.ts b/src/local-types/pageTypes/vibesuite.ts new file mode 100644 index 0000000..740b704 --- /dev/null +++ b/src/local-types/pageTypes/vibesuite.ts @@ -0,0 +1,53 @@ +export type Difficulty = 'beginner' | 'intermediate' | 'advanced'; + +export interface Skill { + id: string; + name: string; + projectTitle: string; + projectDescription: string; + difficulty: Difficulty; + timeEstimate: string; + tools: string[]; + dependsOn?: string[]; +} + +export interface SkillCategory { + id: string; + name: string; + icon: string; + color: string; + description: string; + skills: Skill[]; +} + +export interface UserProgress { + [skillId: string]: { + completed: boolean; + completedAt: string; + }; +} + +export interface UserProfile { + name: string; + joinedAt: string; +} + +export interface NodePosition { + x: number; + y: number; + z: number; +} + +export type RecommendationReason = + | 'unlocked' + | 'hub' + | 'difficulty_match' + | 'quick_win' + | 'diversity'; + +export interface Recommendation { + skill: Skill; + score: number; + reasons: RecommendationReason[]; + reasonText: string; +} diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index 4d43360..d0408e6 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -17,6 +17,8 @@ import Layout from '@layouts/Layout'; import { LongevityProvider, useLongevity } from '../context/LongevityContext'; import '../styles/globals.scss'; +import '../styles/vibesuite.scss'; +// import '../styles/tom.scss'; type TApp = { Component: any; @@ -68,7 +70,8 @@ function AppContent({ Component, pageProps: { session, ...pageProps } }: TApp) { useEffect(() => { const getData = async () => { - if (!session?.user) return; + const hasAccessToken = !!localStorage.getItem('accessToken'); + if (!session?.user && !hasAccessToken) return; try { const data = await getMyInfo(); if (data) { diff --git a/src/pages/api/vibesuite/progress.ts b/src/pages/api/vibesuite/progress.ts new file mode 100644 index 0000000..7035858 --- /dev/null +++ b/src/pages/api/vibesuite/progress.ts @@ -0,0 +1,30 @@ +import type { NextApiRequest, NextApiResponse } from 'next'; +import { getSkillById } from '@data/vibesuite/skills'; +import { UserProgress } from '@local-types/pageTypes/vibesuite'; + +// In-memory progress storage (resets on server restart) +let progress: UserProgress = {}; + +export default async function handler(req: NextApiRequest, res: NextApiResponse) { + if (req.method === 'GET') { + return res.status(200).json({ progress }); + } + + if (req.method === 'POST') { + const { skillId, completed } = req.body as { skillId: string; completed: boolean }; + + if (!getSkillById(skillId)) { + return res.status(400).json({ error: 'Invalid skill ID' }); + } + + if (completed) { + progress[skillId] = { completed: true, completedAt: new Date().toISOString() }; + } else { + delete progress[skillId]; + } + + return res.status(200).json({ progress }); + } + + return res.status(405).json({ error: 'Method not allowed' }); +} diff --git a/src/pages/tools/vibesuite/index.tsx b/src/pages/tools/vibesuite/index.tsx new file mode 100644 index 0000000..69190f1 --- /dev/null +++ b/src/pages/tools/vibesuite/index.tsx @@ -0,0 +1,62 @@ +import { GetStaticProps } from 'next'; +import { FC, useEffect } from 'react'; + +import { TStaticProps } from '@local-types/data'; + +import useGlobals from '@hooks/useGlobals'; + +import { getVibesuite } from '@api/vibesuite'; + +import SeoGenerator from '@components/SeoGenerator'; +import MapClient from '@components/vibesuite/MapClient'; + +export type VibeSuitePageProps = { + vibesuite?: any | null; +}; + +const VibeSuitePage: FC<VibeSuitePageProps> = ({ vibesuite }) => { + const [{ initUseGlobals, unmountUseGlobals }, { isDarkTheme }] = useGlobals(); + + useEffect(() => { + initUseGlobals(null); + + return () => { + unmountUseGlobals(); + }; + }, []); + + const seoContent = vibesuite?.pageSeo; + + return ( + <> + <SeoGenerator + strapiSEO={{ + description: seoContent?.seoDescription, + title: seoContent?.pageTitle, + keywords: seoContent?.keywords, + seoTitle: seoContent?.seoTitle, + }} + type={'WebPage'} + ogTags={vibesuite?.OGTags} + createdDate={vibesuite?.publishedAt} + modifiedDate={vibesuite?.updatedAt} + /> + <MapClient initialProgress={{}} isDarkTheme={isDarkTheme} /> + </> + ); +}; + +export default VibeSuitePage; + +export const getStaticProps: GetStaticProps = async ({ + locale, +}: TStaticProps) => { + const vibesuite = await getVibesuite(locale); + return { + props: { + locale, + vibesuite, + }, + revalidate: 10, + }; +}; diff --git a/src/styles/vibesuite.scss b/src/styles/vibesuite.scss new file mode 100644 index 0000000..cc7fa5d --- /dev/null +++ b/src/styles/vibesuite.scss @@ -0,0 +1,208 @@ +// Vibesuite — global styles, animations, and keyframes +// This file is imported in _app.tsx. It is NOT a CSS module. +// All animation class names used as plain strings stay as plain selectors here. + +@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;700&family=EB+Garamond:ital,wght@0,400;0,500;1,400&family=Jost:wght@300;400;500;600&family=Noto+Serif+JP:wght@400&display=swap'); + +// ── CSS variable overrides scoped to vibesuite pages ───────────────────────── +// These do NOT override keepsimple global variables; they are only applied +// when the .vibesuite-root class is present (added by VibesuiteLayout). +.vibesuite-root { + --bg-base: #f4efe6; + --bg-card: #f7f2ea; + --bg-card-active: #fdf5e8; + --bg-hero: #ede7da; + + --text-primary: #1c1c1a; + --text-secondary: #756f69; + --text-tertiary: #968f87; + + --accent: #b83232; + --accent-light: #d4504a; + --accent-kanji: rgba(184, 50, 50, 0.3); + --accent-kanji-active: rgba(184, 50, 50, 0.6); + + --border: #ddd7ce; + --border-strong: #c8c0b5; + --bg-dim: rgba(244, 239, 230, 0.75); + + --font-display: 'Playfair Display', Georgia, serif; + --font-body: 'EB Garamond', Georgia, serif; + --font-ui: 'Jost', system-ui, sans-serif; + --font-japanese: 'Noto Serif JP', serif; + + *, + *::before, + *::after { + box-sizing: border-box; + } + + // Global smooth interactions within vibesuite + a, + button, + [role='button'] { + transition: + color 0.15s ease, + background 0.15s ease, + border-color 0.15s ease, + opacity 0.15s ease, + transform 0.15s ease; + } + + background-color: var(--bg-base); + font-family: var(--font-body); + color: var(--text-primary); + min-height: 100vh; + + // Paper grain texture + &::after { + content: ''; + position: fixed; + inset: 0; + background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E"); + pointer-events: none; + z-index: 9999; + } + + // Custom scrollbar + ::-webkit-scrollbar { + width: 5px; + } + + ::-webkit-scrollbar-track { + background: transparent; + } + + ::-webkit-scrollbar-thumb { + background: var(--border-strong); + border-radius: 3px; + } + + ::-webkit-scrollbar-thumb:hover { + background: var(--text-tertiary); + } +} + +// ── Dark mode overrides ───────────────────────────────────────────────────── +body.darkTheme .vibesuite-root { + --bg-base: #1b1e26; + --bg-card: #222730; + --bg-card-active: #2a2f3a; + --bg-hero: #1e2330; + --bg-dim: rgba(27, 30, 38, 0.8); + + --text-primary: #dadada; + --text-secondary: #a0a0a0; + --text-tertiary: #707070; + + --accent: #d4504a; + --accent-light: #e06060; + --accent-kanji: rgba(212, 80, 74, 0.3); + --accent-kanji-active: rgba(212, 80, 74, 0.6); + + --border: #2e3340; + --border-strong: #3a4050; + + // Paper grain — reduce & invert for dark backgrounds + &::after { + opacity: 0.02; + filter: invert(1); + } +} + +// ── Animations — plain classes (not module) ────────────────────────────────── + +// Right detail panel slide in/out +@keyframes vibesuite-slide-in { + from { + transform: translateX(100%); + } + to { + transform: translateX(0); + } +} + +@keyframes vibesuite-slide-out { + from { + transform: translateX(0); + } + to { + transform: translateX(100%); + } +} + +.animate-slide-in { + animation: vibesuite-slide-in 0.2s ease-out forwards; +} + +.animate-slide-out { + animation: vibesuite-slide-out 0.2s ease-in forwards; +} + +// Left sidebar slide in +@keyframes vibesuite-slide-in-left { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0); + } +} + +.animate-sidebar { + animation: vibesuite-slide-in-left 0.25s ease-out; +} + +// Modal fade + scale +@keyframes vibesuite-modal-in { + from { + opacity: 0; + transform: scale(0.97) translateY(8px); + } + to { + opacity: 1; + transform: scale(1) translateY(0); + } +} + +@keyframes vibesuite-modal-out { + from { + opacity: 1; + transform: scale(1) translateY(0); + } + to { + opacity: 0; + transform: scale(0.97) translateY(8px); + } +} + +.animate-modal-in { + animation: vibesuite-modal-in 0.2s ease-out forwards; +} + +.animate-modal-out { + animation: vibesuite-modal-out 0.15s ease-in forwards; +} + +// Guide overlay pulse +@keyframes guidePulse { + 0%, + 100% { + opacity: 0.15; + } + 50% { + opacity: 0.4; + } +} + +// Loader message fade +@keyframes loaderFadeIn { + from { + opacity: 0; + transform: translateY(4px); + } + to { + opacity: 1; + transform: translateY(0); + } +} diff --git a/yarn.lock b/yarn.lock index bfe6ecf..eeccc1b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,7 +4,7 @@ "@ampproject/remapping@^2.1.0": version "2.3.0" - resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" + resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz" integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -12,7 +12,7 @@ "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.28.6", "@babel/code-frame@^7.29.0": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.29.0.tgz#7cd7a59f15b3cc0dcd803038f7792712a7d0b15c" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz" integrity sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw== dependencies: "@babel/helper-validator-identifier" "^7.28.5" @@ -21,12 +21,12 @@ "@babel/compat-data@^7.28.6", "@babel/compat-data@^7.29.0": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.29.0.tgz#00d03e8c0ac24dd9be942c5370990cbe1f17d88d" + resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz" integrity sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg== "@babel/core@7.19.3": version "7.19.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.3.tgz#2519f62a51458f43b682d61583c3810e7dcee64c" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz" integrity sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ== dependencies: "@ampproject/remapping" "^2.1.0" @@ -47,7 +47,7 @@ "@babel/core@^7.21.3": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.29.0.tgz#5286ad785df7f79d656e88ce86e650d16ca5f322" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz" integrity sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA== dependencies: "@babel/code-frame" "^7.29.0" @@ -68,7 +68,7 @@ "@babel/generator@^7.19.3", "@babel/generator@^7.29.0": version "7.29.1" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.29.1.tgz#d09876290111abbb00ef962a7b83a5307fba0d50" + resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz" integrity sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw== dependencies: "@babel/parser" "^7.29.0" @@ -79,14 +79,14 @@ "@babel/helper-annotate-as-pure@^7.27.1", "@babel/helper-annotate-as-pure@^7.27.3": version "7.27.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz#f31fd86b915fc4daf1f3ac6976c59be7084ed9c5" + resolved "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz" integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== dependencies: "@babel/types" "^7.27.3" "@babel/helper-compilation-targets@^7.19.3", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz#32c4a3f41f12ed1532179b108a4d746e105c2b25" + resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz" integrity sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA== dependencies: "@babel/compat-data" "^7.28.6" @@ -97,7 +97,7 @@ "@babel/helper-create-class-features-plugin@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz#611ff5482da9ef0db6291bcd24303400bca170fb" + resolved "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.6.tgz" integrity sha512-dTOdvsjnG3xNT9Y0AUg1wAl38y+4Rl4sf9caSQZOXdNqVn+H+HbbJ4IyyHaIqNR6SW9oJpA/RuRjsjCw2IdIow== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" @@ -110,7 +110,7 @@ "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.27.1", "@babel/helper-create-regexp-features-plugin@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz#7c1ddd64b2065c7f78034b25b43346a7e19ed997" + resolved "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz" integrity sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" @@ -119,7 +119,7 @@ "@babel/helper-define-polyfill-provider@^0.6.8": version "0.6.8" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz#cf1e4462b613f2b54c41e6ff758d5dfcaa2c85d1" + resolved "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.8.tgz" integrity sha512-47UwBLPpQi1NoWzLuHNjRoHlYXMwIJoBf7MFou6viC/sIHWYygpvr0B6IAyh5sBdA2nr2LPIRww8lfaUVQINBA== dependencies: "@babel/helper-compilation-targets" "^7.28.6" @@ -130,12 +130,12 @@ "@babel/helper-globals@^7.28.0": version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/helper-globals/-/helper-globals-7.28.0.tgz#b9430df2aa4e17bc28665eadeae8aa1d985e6674" + resolved "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz" integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== "@babel/helper-member-expression-to-functions@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz#f3e07a10be37ed7a63461c63e6929575945a6150" + resolved "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz" integrity sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg== dependencies: "@babel/traverse" "^7.28.5" @@ -143,7 +143,7 @@ "@babel/helper-module-imports@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz#60632cbd6ffb70b22823187201116762a03e2d5c" + resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz" integrity sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw== dependencies: "@babel/traverse" "^7.28.6" @@ -151,7 +151,7 @@ "@babel/helper-module-transforms@^7.19.0", "@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz#9312d9d9e56edc35aeb6e95c25d4106b50b9eb1e" + resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz" integrity sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA== dependencies: "@babel/helper-module-imports" "^7.28.6" @@ -160,19 +160,19 @@ "@babel/helper-optimise-call-expression@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz#c65221b61a643f3e62705e5dd2b5f115e35f9200" + resolved "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz" integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== dependencies: "@babel/types" "^7.27.1" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz#6f13ea251b68c8532e985fd532f28741a8af9ac8" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz" integrity sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug== "@babel/helper-remap-async-to-generator@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz#4601d5c7ce2eb2aea58328d43725523fcd362ce6" + resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz" integrity sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA== dependencies: "@babel/helper-annotate-as-pure" "^7.27.1" @@ -181,7 +181,7 @@ "@babel/helper-replace-supers@^7.27.1", "@babel/helper-replace-supers@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz#94aa9a1d7423a00aead3f204f78834ce7d53fe44" + resolved "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.28.6.tgz" integrity sha512-mq8e+laIk94/yFec3DxSjCRD2Z0TAjhVbEJY3UQrlwVo15Lmt7C2wAUbK4bjnTs4APkwsYLTahXRraQXhb1WCg== dependencies: "@babel/helper-member-expression-to-functions" "^7.28.5" @@ -190,7 +190,7 @@ "@babel/helper-skip-transparent-expression-wrappers@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz#62bb91b3abba8c7f1fec0252d9dbea11b3ee7a56" + resolved "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz" integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== dependencies: "@babel/traverse" "^7.27.1" @@ -198,54 +198,46 @@ "@babel/helper-string-parser@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== "@babel/helper-validator-identifier@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== "@babel/helper-validator-option@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz#fa52f5b1e7db1ab049445b421c4471303897702f" + resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== "@babel/helper-wrap-function@^7.27.1": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz#4e349ff9222dab69a93a019cc296cdd8442e279a" + resolved "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.6.tgz" integrity sha512-z+PwLziMNBeSQJonizz2AGnndLsP2DeGHIxDAn+wdHOGuo4Fo1x1HBPPXeE9TAOPHNNWQKCSlA2VZyYyyibDnQ== dependencies: "@babel/template" "^7.28.6" "@babel/traverse" "^7.28.6" "@babel/types" "^7.28.6" -"@babel/helpers@^7.19.0": +"@babel/helpers@^7.19.0", "@babel/helpers@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.28.6.tgz#fca903a313ae675617936e8998b814c415cbf5d7" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz" integrity sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw== dependencies: "@babel/template" "^7.28.6" "@babel/types" "^7.28.6" -"@babel/helpers@^7.28.6": - version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.29.2.tgz#9cfbccb02b8e229892c0b07038052cc1a8709c49" - integrity sha512-HoGuUs4sCZNezVEKdVcwqmZN8GoHirLUcLaYVNBK2J0DadGtdcqgr3BCbvH8+XUo4NGjNl3VOtSjEKNzqfFgKw== - dependencies: - "@babel/template" "^7.28.6" - "@babel/types" "^7.29.0" - "@babel/parser@^7.19.3", "@babel/parser@^7.28.6", "@babel/parser@^7.29.0": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz" integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww== dependencies: "@babel/types" "^7.29.0" "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz#fbde57974707bbfa0376d34d425ff4fa6c732421" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz" integrity sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -253,21 +245,21 @@ "@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz#43f70a6d7efd52370eefbdf55ae03d91b293856d" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz" integrity sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz#beb623bd573b8b6f3047bd04c32506adc3e58a72" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz" integrity sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz#e134a5479eb2ba9c02714e8c1ebf1ec9076124fd" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz" integrity sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -276,7 +268,7 @@ "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz#0e8289cec28baaf05d54fd08d81ae3676065f69f" + resolved "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.6.tgz" integrity sha512-a0aBScVTlNaiUe35UtfxAN7A/tehvvG4/ByO6+46VPKTRSlfnAFsgKy0FUh+qAkQrDTmhDkT+IBOKlOoMUxQ0g== dependencies: "@babel/helper-plugin-utils" "^7.28.6" @@ -284,40 +276,40 @@ "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": version "7.21.0-placeholder-for-preset-env.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + resolved "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz" integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-import-assertions@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz#ae9bc1923a6ba527b70104dd2191b0cd872c8507" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.28.6.tgz" integrity sha512-pSJUpFHdx9z5nqTSirOCMtYVP2wFgoWhP0p3g8ONK/4IHhLIBd0B9NYqAvIUAhq+OkhO4VM1tENCt0cjlsNShw== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-syntax-import-attributes@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz#b71d5914665f60124e133696f17cd7669062c503" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.28.6.tgz" integrity sha512-jiLC0ma9XkQT3TKJ9uYvlakm66Pamywo+qwL+oL8HJOvc6TWdZXVfhqJr8CCzbSGUAbDOzlGHJC1U+vRfLQDvw== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-syntax-jsx@^7.27.1", "@babel/plugin-syntax-jsx@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz#f8ca28bbd84883b5fea0e447c635b81ba73997ee" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.28.6.tgz" integrity sha512-wgEmr06G6sIpqr8YDwA2dSRTE3bJ+V0IfpzfSY3Lfgd7YWOaAdlykvJi13ZKBt8cZHfgH1IXN+CL656W3uUa4w== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-syntax-typescript@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz#c7b2ddf1d0a811145b1de800d1abd146af92e3a2" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.28.6.tgz" integrity sha512-+nDNmQye7nlnuuHDboPbGm00Vqg3oO8niRRL27/4LYHUsHYh0zJ1xWOz0uRwNFmM1Avzk8wZbc6rdiYhomzv/A== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz" integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.18.6" @@ -325,14 +317,14 @@ "@babel/plugin-transform-arrow-functions@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz#6e2061067ba3ab0266d834a9f94811196f2aba9a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz" integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-async-generator-functions@^7.29.0": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz#63ed829820298f0bf143d5a4a68fb8c06ffd742f" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.29.0.tgz" integrity sha512-va0VdWro4zlBr2JsXC+ofCPB2iG12wPtVGTWFx2WLDOM3nYQZZIGP82qku2eW/JR83sD+k2k+CsNtyEbUqhU6w== dependencies: "@babel/helper-plugin-utils" "^7.28.6" @@ -341,7 +333,7 @@ "@babel/plugin-transform-async-to-generator@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz#bd97b42237b2d1bc90d74bcb486c39be5b4d7e77" + resolved "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.28.6.tgz" integrity sha512-ilTRcmbuXjsMmcZ3HASTe4caH5Tpo93PkTxF9oG2VZsSWsahydmcEHhix9Ik122RcTnZnUzPbmux4wh1swfv7g== dependencies: "@babel/helper-module-imports" "^7.28.6" @@ -350,21 +342,21 @@ "@babel/plugin-transform-block-scoped-functions@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz#558a9d6e24cf72802dd3b62a4b51e0d62c0f57f9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz" integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-block-scoping@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz#e1ef5633448c24e76346125c2534eeb359699a99" + resolved "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.6.tgz" integrity sha512-tt/7wOtBmwHPNMPu7ax4pdPz6shjFrmHDghvNC+FG9Qvj7D6mJcoRQIF5dy4njmxR941l6rgtvfSB2zX3VlUIw== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-class-properties@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz#d274a4478b6e782d9ea987fda09bdb6d28d66b72" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.28.6.tgz" integrity sha512-dY2wS3I2G7D697VHndN91TJr8/AAfXQNt5ynCTI/MpxMsSzHp+52uNivYT5wCPax3whc47DR8Ba7cmlQMg24bw== dependencies: "@babel/helper-create-class-features-plugin" "^7.28.6" @@ -372,7 +364,7 @@ "@babel/plugin-transform-class-static-block@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz#1257491e8259c6d125ac4d9a6f39f9d2bf3dba70" + resolved "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.6.tgz" integrity sha512-rfQ++ghVwTWTqQ7w8qyDxL1XGihjBss4CmTgGRCTAC9RIbhVpyp4fOeZtta0Lbf+dTNIVJer6ych2ibHwkZqsQ== dependencies: "@babel/helper-create-class-features-plugin" "^7.28.6" @@ -380,7 +372,7 @@ "@babel/plugin-transform-classes@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz#8f6fb79ba3703978e701ce2a97e373aae7dda4b7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.6.tgz" integrity sha512-EF5KONAqC5zAqT783iMGuM2ZtmEBy+mJMOKl2BCvPZ2lVrwvXnB6o+OBWCS+CoeCCpVRF2sA2RBKUxvT8tQT5Q== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" @@ -392,7 +384,7 @@ "@babel/plugin-transform-computed-properties@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz#936824fc71c26cb5c433485776d79c8e7b0202d2" + resolved "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.28.6.tgz" integrity sha512-bcc3k0ijhHbc2lEfpFHgx7eYw9KNXqOerKWfzbxEHUGKnS3sz9C4CNL9OiFN1297bDNfUiSO7DaLzbvHQQQ1BQ== dependencies: "@babel/helper-plugin-utils" "^7.28.6" @@ -400,7 +392,7 @@ "@babel/plugin-transform-destructuring@^7.28.5": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz#b8402764df96179a2070bb7b501a1586cf8ad7a7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz" integrity sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -408,7 +400,7 @@ "@babel/plugin-transform-dotall-regex@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz#def31ed84e0fb6e25c71e53c124e7b76a4ab8e61" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.28.6.tgz" integrity sha512-SljjowuNKB7q5Oayv4FoPzeB74g3QgLt8IVJw9ADvWy3QnUb/01aw8I4AVv8wYnPvQz2GDDZ/g3GhcNyDBI4Bg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.28.5" @@ -416,14 +408,14 @@ "@babel/plugin-transform-duplicate-keys@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz#f1fbf628ece18e12e7b32b175940e68358f546d1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz" integrity sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.29.0": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz#8014b8a6cfd0e7b92762724443bf0d2400f26df1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.29.0.tgz" integrity sha512-zBPcW2lFGxdiD8PUnPwJjag2J9otbcLQzvbiOzDxpYXyCuYX9agOwMPGn1prVH0a4qzhCKu24rlH4c1f7yA8rw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.28.5" @@ -431,14 +423,14 @@ "@babel/plugin-transform-dynamic-import@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz#4c78f35552ac0e06aa1f6e3c573d67695e8af5a4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz" integrity sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-explicit-resource-management@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz#dd6788f982c8b77e86779d1d029591e39d9d8be7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.6.tgz" integrity sha512-Iao5Konzx2b6g7EPqTy40UZbcdXE126tTxVFr/nAIj+WItNxjKSYTEw3RC+A2/ZetmdJsgueL1KhaMCQHkLPIg== dependencies: "@babel/helper-plugin-utils" "^7.28.6" @@ -446,21 +438,21 @@ "@babel/plugin-transform-exponentiation-operator@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz#5e477eb7eafaf2ab5537a04aaafcf37e2d7f1091" + resolved "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.6.tgz" integrity sha512-WitabqiGjV/vJ0aPOLSFfNY1u9U3R7W36B03r5I2KoNix+a3sOhJ3pKFB3R5It9/UiK78NiO0KE9P21cMhlPkw== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-export-namespace-from@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz#71ca69d3471edd6daa711cf4dfc3400415df9c23" + resolved "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz" integrity sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-for-of@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz#bc24f7080e9ff721b63a70ac7b2564ca15b6c40a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz" integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -468,7 +460,7 @@ "@babel/plugin-transform-function-name@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz#4d0bf307720e4dce6d7c30fcb1fd6ca77bdeb3a7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz" integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== dependencies: "@babel/helper-compilation-targets" "^7.27.1" @@ -477,35 +469,35 @@ "@babel/plugin-transform-json-strings@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz#4c8c15b2dc49e285d110a4cf3dac52fd2dfc3038" + resolved "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.28.6.tgz" integrity sha512-Nr+hEN+0geQkzhbdgQVPoqr47lZbm+5fCUmO70722xJZd0Mvb59+33QLImGj6F+DkK3xgDi1YVysP8whD6FQAw== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-literals@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz#baaefa4d10a1d4206f9dcdda50d7d5827bb70b24" + resolved "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz" integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-logical-assignment-operators@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz#53028a3d77e33c50ef30a8fce5ca17065936e605" + resolved "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.6.tgz" integrity sha512-+anKKair6gpi8VsM/95kmomGNMD0eLz1NQ8+Pfw5sAwWH9fGYXT50E55ZpV0pHUHWf6IUTWPM+f/7AAff+wr9A== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-member-expression-literals@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz#37b88ba594d852418e99536f5612f795f23aeaf9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz" integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-modules-amd@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz#a4145f9d87c2291fe2d05f994b65dba4e3e7196f" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz" integrity sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA== dependencies: "@babel/helper-module-transforms" "^7.27.1" @@ -513,7 +505,7 @@ "@babel/plugin-transform-modules-commonjs@^7.27.1", "@babel/plugin-transform-modules-commonjs@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz#c0232e0dfe66a734cc4ad0d5e75fc3321b6fdef1" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.28.6.tgz" integrity sha512-jppVbf8IV9iWWwWTQIxJMAJCWBuuKx71475wHwYytrRGQ2CWiDvYlADQno3tcYpS/T2UUWFQp3nVtYfK/YBQrA== dependencies: "@babel/helper-module-transforms" "^7.28.6" @@ -521,7 +513,7 @@ "@babel/plugin-transform-modules-systemjs@^7.29.0": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz#e458a95a17807c415924106a3ff188a3b8dee964" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz" integrity sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ== dependencies: "@babel/helper-module-transforms" "^7.28.6" @@ -531,7 +523,7 @@ "@babel/plugin-transform-modules-umd@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz#63f2cf4f6dc15debc12f694e44714863d34cd334" + resolved "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz" integrity sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w== dependencies: "@babel/helper-module-transforms" "^7.27.1" @@ -539,7 +531,7 @@ "@babel/plugin-transform-named-capturing-groups-regex@^7.29.0": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz#a26cd51e09c4718588fc4cce1c5d1c0152102d6a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.29.0.tgz" integrity sha512-1CZQA5KNAD6ZYQLPw7oi5ewtDNxH/2vuCh+6SmvgDfhumForvs8a1o9n0UrEoBD8HU4djO2yWngTQlXl1NDVEQ== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.28.5" @@ -547,28 +539,28 @@ "@babel/plugin-transform-new-target@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz#259c43939728cad1706ac17351b7e6a7bea1abeb" + resolved "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz" integrity sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-nullish-coalescing-operator@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz#9bc62096e90ab7a887f3ca9c469f6adec5679757" + resolved "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.28.6.tgz" integrity sha512-3wKbRgmzYbw24mDJXT7N+ADXw8BC/imU9yo9c9X9NKaLF1fW+e5H1U5QjMUBe4Qo4Ox/o++IyUkl1sVCLgevKg== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-numeric-separator@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz#1310b0292762e7a4a335df5f580c3320ee7d9e9f" + resolved "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.28.6.tgz" integrity sha512-SJR8hPynj8outz+SlStQSwvziMN4+Bq99it4tMIf5/Caq+3iOc0JtKyse8puvyXkk3eFRIA5ID/XfunGgO5i6w== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-object-rest-spread@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz#fdd4bc2d72480db6ca42aed5c051f148d7b067f7" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.6.tgz" integrity sha512-5rh+JR4JBC4pGkXLAcYdLHZjXudVxWMXbB6u6+E9lRL5TrGVbHt1TjxGbZ8CkmYw9zjkB7jutzOROArsqtncEA== dependencies: "@babel/helper-compilation-targets" "^7.28.6" @@ -579,7 +571,7 @@ "@babel/plugin-transform-object-super@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz#1c932cd27bf3874c43a5cac4f43ebf970c9871b5" + resolved "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz" integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -587,14 +579,14 @@ "@babel/plugin-transform-optional-catch-binding@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz#75107be14c78385978201a49c86414a150a20b4c" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.28.6.tgz" integrity sha512-R8ja/Pyrv0OGAvAXQhSTmWyPJPml+0TMqXlO5w+AsMEiwb2fg3WkOvob7UxFSL3OIttFSGSRFKQsOhJ/X6HQdQ== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-optional-chaining@^7.27.1", "@babel/plugin-transform-optional-chaining@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz#926cf150bd421fc8362753e911b4a1b1ce4356cd" + resolved "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.6.tgz" integrity sha512-A4zobikRGJTsX9uqVFdafzGkqD30t26ck2LmOzAuLL8b2x6k3TIqRiT2xVvA9fNmFeTX484VpsdgmKNA0bS23w== dependencies: "@babel/helper-plugin-utils" "^7.28.6" @@ -602,14 +594,14 @@ "@babel/plugin-transform-parameters@^7.27.7": version "7.27.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz#1fd2febb7c74e7d21cf3b05f7aebc907940af53a" + resolved "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz" integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-private-methods@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz#c76fbfef3b86c775db7f7c106fff544610bdb411" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.28.6.tgz" integrity sha512-piiuapX9CRv7+0st8lmuUlRSmX6mBcVeNQ1b4AYzJxfCMuBfB0vBXDiGSmm03pKJw1v6cZ8KSeM+oUnM6yAExg== dependencies: "@babel/helper-create-class-features-plugin" "^7.28.6" @@ -617,7 +609,7 @@ "@babel/plugin-transform-private-property-in-object@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz#4fafef1e13129d79f1d75ac180c52aafefdb2811" + resolved "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.28.6.tgz" integrity sha512-b97jvNSOb5+ehyQmBpmhOCiUC5oVK4PMnpRvO7+ymFBoqYjeDHIU9jnrNUuwHOiL9RpGDoKBpSViarV+BU+eVA== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" @@ -626,35 +618,35 @@ "@babel/plugin-transform-property-literals@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz#07eafd618800591e88073a0af1b940d9a42c6424" + resolved "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz" integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-react-constant-elements@^7.21.3": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz#6c6b50424e749a6e48afd14cf7b92f98cb9383f9" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.27.1.tgz" integrity sha512-edoidOjl/ZxvYo4lSBOQGDSyToYVkTAwyVoa2tkuYTSmjrB1+uAedoL5iROVLXkxH+vRgA7uP4tMg2pUJpZ3Ug== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-react-display-name@^7.28.0": version "7.28.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz#6f20a7295fea7df42eb42fed8f896813f5b934de" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz" integrity sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-react-jsx-development@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz#47ff95940e20a3a70e68ad3d4fcb657b647f6c98" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz" integrity sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q== dependencies: "@babel/plugin-transform-react-jsx" "^7.27.1" "@babel/plugin-transform-react-jsx@^7.27.1": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz#f51cb70a90b9529fbb71ee1f75ea27b7078eed62" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.28.6.tgz" integrity sha512-61bxqhiRfAACulXSLd/GxqmAedUSrRZIu/cbaT18T1CetkTmtDN15it7i80ru4DVqRK1WMxQhXs+Lf9kajm5Ow== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" @@ -665,7 +657,7 @@ "@babel/plugin-transform-react-pure-annotations@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz#339f1ce355eae242e0649f232b1c68907c02e879" + resolved "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz" integrity sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA== dependencies: "@babel/helper-annotate-as-pure" "^7.27.1" @@ -673,14 +665,14 @@ "@babel/plugin-transform-regenerator@^7.29.0": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz#dec237cec1b93330876d6da9992c4abd42c9d18b" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.29.0.tgz" integrity sha512-FijqlqMA7DmRdg/aINBSs04y8XNTYw/lr1gJ2WsmBnnaNw1iS43EPkJW+zK7z65auG3AWRFXWj+NcTQwYptUog== dependencies: "@babel/helper-plugin-utils" "^7.28.6" "@babel/plugin-transform-regexp-modifiers@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz#7ef0163bd8b4a610481b2509c58cf217f065290b" + resolved "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.28.6.tgz" integrity sha512-QGWAepm9qxpaIs7UM9FvUSnCGlb8Ua1RhyM4/veAxLwt3gMat/LSGrZixyuj4I6+Kn9iwvqCyPTtbdxanYoWYg== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.28.5" @@ -688,21 +680,21 @@ "@babel/plugin-transform-reserved-words@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz#40fba4878ccbd1c56605a4479a3a891ac0274bb4" + resolved "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz" integrity sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-shorthand-properties@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz#532abdacdec87bfee1e0ef8e2fcdee543fe32b90" + resolved "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz" integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-spread@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz#40a2b423f6db7b70f043ad027a58bcb44a9757b6" + resolved "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.28.6.tgz" integrity sha512-9U4QObUC0FtJl05AsUcodau/RWDytrU6uKgkxu09mLR9HLDAtUMoPuuskm5huQsoktmsYpI+bGmq+iapDcriKA== dependencies: "@babel/helper-plugin-utils" "^7.28.6" @@ -710,28 +702,28 @@ "@babel/plugin-transform-sticky-regex@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz#18984935d9d2296843a491d78a014939f7dcd280" + resolved "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz" integrity sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-template-literals@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz#1a0eb35d8bb3e6efc06c9fd40eb0bcef548328b8" + resolved "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz" integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-typeof-symbol@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz#70e966bb492e03509cf37eafa6dcc3051f844369" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz" integrity sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-typescript@^7.28.5": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz#1e93d96da8adbefdfdade1d4956f73afa201a158" + resolved "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.28.6.tgz" integrity sha512-0YWL2RFxOqEm9Efk5PvreamxPME8OyY0wM5wh5lHjF+VtVhdneCWGzZeSqzOfiobVqQaNCd2z0tQvnI9DaPWPw== dependencies: "@babel/helper-annotate-as-pure" "^7.27.3" @@ -742,14 +734,14 @@ "@babel/plugin-transform-unicode-escapes@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz#3e3143f8438aef842de28816ece58780190cf806" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz" integrity sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg== dependencies: "@babel/helper-plugin-utils" "^7.27.1" "@babel/plugin-transform-unicode-property-regex@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz#63a7a6c21a0e75dae9b1861454111ea5caa22821" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.28.6.tgz" integrity sha512-4Wlbdl/sIZjzi/8St0evF0gEZrgOswVO6aOzqxh1kDZOl9WmLrHq2HtGhnOJZmHZYKP8WZ1MDLCt5DAWwRo57A== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.28.5" @@ -757,7 +749,7 @@ "@babel/plugin-transform-unicode-regex@^7.27.1": version "7.27.1" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz#25948f5c395db15f609028e370667ed8bae9af97" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz" integrity sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.27.1" @@ -765,7 +757,7 @@ "@babel/plugin-transform-unicode-sets-regex@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz#924912914e5df9fe615ec472f88ff4788ce04d4e" + resolved "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.28.6.tgz" integrity sha512-/wHc/paTUmsDYN7SZkpWxogTOBNnlx7nBQYfy6JJlCT7G3mVhltk3e++N7zV0XfgGsrqBxd4rJQt9H16I21Y1Q== dependencies: "@babel/helper-create-regexp-features-plugin" "^7.28.5" @@ -773,7 +765,7 @@ "@babel/preset-env@^7.20.2": version "7.29.2" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.29.2.tgz#5a173f22c7d8df362af1c9fe31facd320de4a86c" + resolved "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.29.2.tgz" integrity sha512-DYD23veRYGvBFhcTY1iUvJnDNpuqNd/BzBwCvzOTKUnJjKg5kpUBh3/u9585Agdkgj+QuygG7jLfOPWMa2KVNw== dependencies: "@babel/compat-data" "^7.29.0" @@ -849,7 +841,7 @@ "@babel/preset-modules@0.1.6-no-external-plugins": version "0.1.6-no-external-plugins" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + resolved "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz" integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" @@ -858,7 +850,7 @@ "@babel/preset-react@^7.18.6": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.28.5.tgz#6fcc0400fa79698433d653092c3919bb4b0878d9" + resolved "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz" integrity sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -870,7 +862,7 @@ "@babel/preset-typescript@^7.21.0": version "7.28.5" - resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz#540359efa3028236958466342967522fd8f2a60c" + resolved "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.28.5.tgz" integrity sha512-+bQy5WOI2V6LJZpPVxY+yp66XdZ2yifu0Mc1aP5CQKgjn4QM5IN2i5fAZ4xKop47pr8rpVhiAeu+nDQa12C8+g== dependencies: "@babel/helper-plugin-utils" "^7.27.1" @@ -880,13 +872,13 @@ "@babel/plugin-transform-typescript" "^7.28.5" "@babel/runtime@^7.15.4", "@babel/runtime@^7.20.13", "@babel/runtime@^7.21.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.8.3", "@babel/runtime@^7.9.2": - version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.28.6.tgz#d267a43cb1836dc4d182cce93ae75ba954ef6d2b" - integrity sha512-05WQkdpL9COIMz4LjTxGpPNCdlpyimKppYNoJ5Di5EUObifl8t4tuLuUBBZEpoLYOmfvIWrsp9fCl0HoPRVTdA== + version "7.29.2" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.29.2.tgz" + integrity sha512-JiDShH45zKHWyGe4ZNVRrCjBz8Nh9TMmZG1kh4QTK8hCBTWBi8Da+i7s1fJw7/lYpM4ccepSNfqzZ/QvABBi5g== "@babel/template@^7.18.10", "@babel/template@^7.28.6": version "7.28.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.28.6.tgz#0e7e56ecedb78aeef66ce7972b082fce76a23e57" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz" integrity sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ== dependencies: "@babel/code-frame" "^7.28.6" @@ -895,7 +887,7 @@ "@babel/traverse@^7.19.3", "@babel/traverse@^7.27.1", "@babel/traverse@^7.28.5", "@babel/traverse@^7.28.6", "@babel/traverse@^7.29.0": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.29.0.tgz#f323d05001440253eead3c9c858adbe00b90310a" + resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz" integrity sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA== dependencies: "@babel/code-frame" "^7.29.0" @@ -908,7 +900,7 @@ "@babel/types@^7.19.3", "@babel/types@^7.21.3", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.5", "@babel/types@^7.28.6", "@babel/types@^7.29.0", "@babel/types@^7.4.4": version "7.29.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz" integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== dependencies: "@babel/helper-string-parser" "^7.27.1" @@ -916,19 +908,19 @@ "@cspotcode/source-map-support@^0.8.0": version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@cypress/react@^9.0.1": version "9.0.1" - resolved "https://registry.yarnpkg.com/@cypress/react/-/react-9.0.1.tgz#9402ee74dc659e522e2eb620e6b4eaf188307587" + resolved "https://registry.npmjs.org/@cypress/react/-/react-9.0.1.tgz" integrity sha512-qu6ziP2smdlfy3Yvrhm6PadxEtkc/cl6YhZu3h6KCtz+0s54joqxp6uGYOglpwyMBp3qjtSil1JVlFX0hUi5LQ== "@cypress/request@^3.0.9": version "3.0.10" - resolved "https://registry.yarnpkg.com/@cypress/request/-/request-3.0.10.tgz#e09c695e8460a82acafe6cfaf089cf2ca06dc054" + resolved "https://registry.npmjs.org/@cypress/request/-/request-3.0.10.tgz" integrity sha512-hauBrOdvu08vOsagkZ/Aju5XuiZx6ldsLfByg1htFeldhex+PeMrYauANzFsMJeAA0+dyPLbDoX2OYuvVoLDkQ== dependencies: aws-sign2 "~0.7.0" @@ -952,7 +944,7 @@ "@cypress/vite-dev-server@^6.0.3": version "6.0.3" - resolved "https://registry.yarnpkg.com/@cypress/vite-dev-server/-/vite-dev-server-6.0.3.tgz#525bf0ec7fd3f3bbd6bbe47e7841ffd0bfb37550" + resolved "https://registry.npmjs.org/@cypress/vite-dev-server/-/vite-dev-server-6.0.3.tgz" integrity sha512-iw5koemvIOzwjtGOKKGfNVGvmjwBmjj5DCiBW6ATUB+m1HzFM9Zmq1dpll+zym5dM+pxb5iA8zKLoAoSKutYVg== dependencies: debug "^4.3.4" @@ -962,61 +954,61 @@ "@cypress/xvfb@^1.2.4": version "1.2.4" - resolved "https://registry.yarnpkg.com/@cypress/xvfb/-/xvfb-1.2.4.tgz#2daf42e8275b39f4aa53c14214e557bd14e7748a" + resolved "https://registry.npmjs.org/@cypress/xvfb/-/xvfb-1.2.4.tgz" integrity sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q== dependencies: debug "^3.1.0" lodash.once "^4.1.1" "@emnapi/core@^1.4.3": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.8.1.tgz#fd9efe721a616288345ffee17a1f26ac5dd01349" - integrity sha512-AvT9QFpxK0Zd8J0jopedNm+w/2fIzvtPKPjqyw9jwvBaReTTqPBk9Hixaz7KbjimP+QNz605/XnjFcDAL2pqBg== + version "1.9.2" + resolved "https://registry.yarnpkg.com/@emnapi/core/-/core-1.9.2.tgz#3870265ecffc7352d01ead62d8d83d8358a2d034" + integrity sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA== dependencies: - "@emnapi/wasi-threads" "1.1.0" + "@emnapi/wasi-threads" "1.2.1" tslib "^2.4.0" "@emnapi/runtime@^1.2.0", "@emnapi/runtime@^1.4.3": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.8.1.tgz#550fa7e3c0d49c5fb175a116e8cd70614f9a22a5" - integrity sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg== + version "1.9.2" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-1.9.2.tgz#8b469a3db160817cadb1de9050211a9d1ea84fa2" + integrity sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw== dependencies: tslib "^2.4.0" -"@emnapi/wasi-threads@1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz#60b2102fddc9ccb78607e4a3cf8403ea69be41bf" - integrity sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ== +"@emnapi/wasi-threads@1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz#28fed21a1ba1ce797c44a070abc94d42f3ae8548" + integrity sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w== dependencies: tslib "^2.4.0" "@emotion/is-prop-valid@^0.7.3": version "0.7.3" - resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz#a6bf4fa5387cbba59d44e698a4680f481a8da6cc" + resolved "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.7.3.tgz" integrity sha512-uxJqm/sqwXw3YPA5GXX365OBcJGFtxUVkB6WyezqFHlNe9jqUWH5ur2O2M8dGBz61kn1g3ZBlzUunFQXQIClhA== dependencies: "@emotion/memoize" "0.7.1" "@emotion/memoize@0.7.1": version "0.7.1" - resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.7.1.tgz#e93c13942592cf5ef01aa8297444dc192beee52f" + resolved "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.1.tgz" integrity sha512-Qv4LTqO11jepd5Qmlp3M1YEjBumoTHcHFdgPTQ+sFlIL5myi/7xu/POwP7IRu6odBdmLXdtIs1D6TuW6kbwbbg== "@eslint-community/eslint-utils@^4.8.0", "@eslint-community/eslint-utils@^4.9.1": version "4.9.1" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz#4e90af67bc51ddee6cdef5284edf572ec376b595" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.1.tgz" integrity sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ== dependencies: eslint-visitor-keys "^3.4.3" "@eslint-community/regexpp@^4.12.1", "@eslint-community/regexpp@^4.12.2": version "4.12.2" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.2.tgz#bccdf615bcf7b6e8db830ec0b8d21c9a25de597b" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz" integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== "@eslint/config-array@^0.21.1": version "0.21.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.1.tgz#7d1b0060fea407f8301e932492ba8c18aff29713" + resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz" integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA== dependencies: "@eslint/object-schema" "^2.1.7" @@ -1025,21 +1017,21 @@ "@eslint/config-helpers@^0.4.2": version "0.4.2" - resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.4.2.tgz#1bd006ceeb7e2e55b2b773ab318d300e1a66aeda" + resolved "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz" integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw== dependencies: "@eslint/core" "^0.17.0" "@eslint/core@^0.17.0": version "0.17.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.17.0.tgz#77225820413d9617509da9342190a2019e78761c" + resolved "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz" integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ== dependencies: "@types/json-schema" "^7.0.15" "@eslint/eslintrc@^3.3.1": version "3.3.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.3.4.tgz#e402b1920f7c1f5a15342caa432b1348cacbb641" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.4.tgz" integrity sha512-4h4MVF8pmBsncB60r0wSJiIeUKTSD4m7FmTFThG8RHlsg9ajqckLm9OraguFGZE4vVdpiI1Q4+hFnisopmG6gQ== dependencies: ajv "^6.14.0" @@ -1054,17 +1046,17 @@ "@eslint/js@9.39.3": version "9.39.3" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.39.3.tgz#c6168736c7e0c43ead49654ed06a4bcb3833363d" + resolved "https://registry.npmjs.org/@eslint/js/-/js-9.39.3.tgz" integrity sha512-1B1VkCq6FuUNlQvlBYb+1jDu/gV297TIs/OeiaSR9l1H27SVW55ONE1e1Vp16NqP683+xEGzxYtv4XCiDPaQiw== "@eslint/object-schema@^2.1.7": version "2.1.7" - resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.7.tgz#6e2126a1347e86a4dedf8706ec67ff8e107ebbad" + resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz" integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA== "@eslint/plugin-kit@^0.4.1": version "0.4.1" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz#9779e3fd9b7ee33571a57435cf4335a1794a6cb2" + resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz" integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA== dependencies: "@eslint/core" "^0.17.0" @@ -1072,14 +1064,14 @@ "@floating-ui/core@^1.7.4": version "1.7.4" - resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.7.4.tgz#4a006a6e01565c0f87ba222c317b056a2cffd2f4" + resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.7.4.tgz" integrity sha512-C3HlIdsBxszvm5McXlB8PeOEWfBhcGBTZGkGlWc2U0KFY5IwG5OQEuQ8rq52DZmcHDlPLd+YFBK+cZcytwIFWg== dependencies: "@floating-ui/utils" "^0.2.10" "@floating-ui/dom@^1.6.1": version "1.7.5" - resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.7.5.tgz#60bfc83a4d1275b2a90db76bf42ca2a5f2c231c2" + resolved "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.7.5.tgz" integrity sha512-N0bD2kIPInNHUHehXhMke1rBGs1dwqvC9O9KYMyyjK7iXt7GAhnro7UlcuYcGdS/yYOlq0MAVgrow8IbWJwyqg== dependencies: "@floating-ui/core" "^1.7.4" @@ -1087,51 +1079,51 @@ "@floating-ui/utils@^0.2.10": version "0.2.10" - resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.10.tgz#a2a1e3812d14525f725d011a73eceb41fef5bc1c" + resolved "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.10.tgz" integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ== "@hapi/address@^5.1.1": version "5.1.1" - resolved "https://registry.yarnpkg.com/@hapi/address/-/address-5.1.1.tgz#e9925fc1b65f5cc3fbea821f2b980e4652e84cb6" + resolved "https://registry.npmjs.org/@hapi/address/-/address-5.1.1.tgz" integrity sha512-A+po2d/dVoY7cYajycYI43ZbYMXukuopIsqCjh5QzsBCipDtdofHntljDlpccMjIfTy6UOkg+5KPriwYch2bXA== dependencies: "@hapi/hoek" "^11.0.2" "@hapi/formula@^3.0.2": version "3.0.2" - resolved "https://registry.yarnpkg.com/@hapi/formula/-/formula-3.0.2.tgz#81b538060ee079481c906f599906d163c4badeaf" + resolved "https://registry.npmjs.org/@hapi/formula/-/formula-3.0.2.tgz" integrity sha512-hY5YPNXzw1He7s0iqkRQi+uMGh383CGdyyIGYtB+W5N3KHPXoqychklvHhKCC9M3Xtv0OCs/IHw+r4dcHtBYWw== "@hapi/hoek@^11.0.2", "@hapi/hoek@^11.0.7": version "11.0.7" - resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-11.0.7.tgz#56a920793e0a42d10e530da9a64cc0d3919c4002" + resolved "https://registry.npmjs.org/@hapi/hoek/-/hoek-11.0.7.tgz" integrity sha512-HV5undWkKzcB4RZUusqOpcgxOaq6VOAH7zhhIr2g3G8NF/MlFO75SjOr2NfuSx0Mh40+1FqCkagKLJRykUWoFQ== "@hapi/pinpoint@^2.0.1": version "2.0.1" - resolved "https://registry.yarnpkg.com/@hapi/pinpoint/-/pinpoint-2.0.1.tgz#32077e715655fc00ab8df74b6b416114287d6513" + resolved "https://registry.npmjs.org/@hapi/pinpoint/-/pinpoint-2.0.1.tgz" integrity sha512-EKQmr16tM8s16vTT3cA5L0kZZcTMU5DUOZTuvpnY738m+jyP3JIUj+Mm1xc1rsLkGBQ/gVnfKYPwOmPg1tUR4Q== "@hapi/tlds@^1.1.1": version "1.1.6" - resolved "https://registry.yarnpkg.com/@hapi/tlds/-/tlds-1.1.6.tgz#c98ed89ca76aa030352d6d7102d0f250aed89cfb" + resolved "https://registry.npmjs.org/@hapi/tlds/-/tlds-1.1.6.tgz" integrity sha512-xdi7A/4NZokvV0ewovme3aUO5kQhW9pQ2YD1hRqZGhhSi5rBv4usHYidVocXSi9eihYsznZxLtAiEYYUL6VBGw== "@hapi/topo@^6.0.2": version "6.0.2" - resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-6.0.2.tgz#f219c1c60da8430228af4c1f2e40c32a0d84bbb4" + resolved "https://registry.npmjs.org/@hapi/topo/-/topo-6.0.2.tgz" integrity sha512-KR3rD5inZbGMrHmgPxsJ9dbi6zEK+C3ZwUwTa+eMwWLz7oijWUTWD2pMSNNYJAU6Qq+65NkxXjqHr/7LM2Xkqg== dependencies: "@hapi/hoek" "^11.0.2" "@humanfs/core@^0.19.1": version "0.19.1" - resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" + resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz" integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== "@humanfs/node@^0.16.6": version "0.16.7" - resolved "https://registry.yarnpkg.com/@humanfs/node/-/node-0.16.7.tgz#822cb7b3a12c5a240a24f621b5a2413e27a45f26" + resolved "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz" integrity sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ== dependencies: "@humanfs/core" "^0.19.1" @@ -1139,12 +1131,12 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/retry@^0.4.0", "@humanwhocodes/retry@^0.4.2": version "0.4.3" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" + resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz" integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== "@img/sharp-darwin-arm64@0.33.5": @@ -1262,7 +1254,7 @@ "@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": version "0.3.13" - resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz#6342a19f44347518c93e43b1ac69deb3c4656a1f" + resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: "@jridgewell/sourcemap-codec" "^1.5.0" @@ -1270,7 +1262,7 @@ "@jridgewell/remapping@^2.3.5": version "2.3.5" - resolved "https://registry.yarnpkg.com/@jridgewell/remapping/-/remapping-2.3.5.tgz#375c476d1972947851ba1e15ae8f123047445aa1" + resolved "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz" integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== dependencies: "@jridgewell/gen-mapping" "^0.3.5" @@ -1278,17 +1270,17 @@ "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.2" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz" integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": version "1.5.5" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" @@ -1296,7 +1288,7 @@ "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.28": version "0.3.31" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz#db15d6781c931f3a251a3dac39501c98a6082fd0" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" @@ -1304,36 +1296,36 @@ "@mixpanel/rrdom@^2.0.0-alpha.18": version "2.0.0-alpha.18.3" - resolved "https://registry.yarnpkg.com/@mixpanel/rrdom/-/rrdom-2.0.0-alpha.18.3.tgz#6b2a939ccc584783cdcdf61d2ad2a86bc9f50e14" + resolved "https://registry.npmjs.org/@mixpanel/rrdom/-/rrdom-2.0.0-alpha.18.3.tgz" integrity sha512-FpQ/WJkVgb0kF49ebqtqf5F7dsqU/o9CfzPR8BAafzVQkieaPCRBFyLh8CDCtKKY0k8DJRqcamj388MLd6QJpQ== dependencies: "@mixpanel/rrweb-snapshot" "^2.0.0-alpha.18" "@mixpanel/rrweb-plugin-console-record@2.0.0-alpha.18.3": version "2.0.0-alpha.18.3" - resolved "https://registry.yarnpkg.com/@mixpanel/rrweb-plugin-console-record/-/rrweb-plugin-console-record-2.0.0-alpha.18.3.tgz#d24dac13d556a89a88f16051ed037f313addc556" + resolved "https://registry.npmjs.org/@mixpanel/rrweb-plugin-console-record/-/rrweb-plugin-console-record-2.0.0-alpha.18.3.tgz" integrity sha512-xau4CixCli8HepZ5snLXQAgUYluGeQg2ZHlv7bRFQTPaA02YfOiwjF295ohMtVOI1VWkFxeK5uDeFnOb/S5Uow== "@mixpanel/rrweb-snapshot@^2.0.0-alpha.18": version "2.0.0-alpha.18.3" - resolved "https://registry.yarnpkg.com/@mixpanel/rrweb-snapshot/-/rrweb-snapshot-2.0.0-alpha.18.3.tgz#35b9c4e789f52ec4d0f0ba5835f4b50320be92c1" + resolved "https://registry.npmjs.org/@mixpanel/rrweb-snapshot/-/rrweb-snapshot-2.0.0-alpha.18.3.tgz" integrity sha512-s+OONdR5WGpw3DapBMUeXvNGQAZuAr/VzkG+D6f/DsK2sV2PyibmrQJUZUSGYqB3pGGWzmJPO9BvqPBzfAZ5SA== dependencies: postcss "^8.4.38" "@mixpanel/rrweb-types@^2.0.0-alpha.18": version "2.0.0-alpha.18.3" - resolved "https://registry.yarnpkg.com/@mixpanel/rrweb-types/-/rrweb-types-2.0.0-alpha.18.3.tgz#545310233182f6fb538729d91c2ae2fc9251fdb2" + resolved "https://registry.npmjs.org/@mixpanel/rrweb-types/-/rrweb-types-2.0.0-alpha.18.3.tgz" integrity sha512-K6L0AQUm5SzW/nKbb68uFWwg1S+NlVt1QOW3YMROrpI0nhnntQmEfHnecjyPYE/s5MxH+kqW8bH5bVpT/uJa3A== "@mixpanel/rrweb-utils@^2.0.0-alpha.18": version "2.0.0-alpha.18.3" - resolved "https://registry.yarnpkg.com/@mixpanel/rrweb-utils/-/rrweb-utils-2.0.0-alpha.18.3.tgz#b4199607f3b740c04c14d61b44ee8caf248bbd1a" + resolved "https://registry.npmjs.org/@mixpanel/rrweb-utils/-/rrweb-utils-2.0.0-alpha.18.3.tgz" integrity sha512-5hvfIhYaSlpJYKQn4nK1s3Rv63UExMq5l1FtAKFXznCqsnVIEb+yICKOiESSzIRwrCxInnUvFOGCfNWBXy9QLw== "@mixpanel/rrweb@2.0.0-alpha.18.3": version "2.0.0-alpha.18.3" - resolved "https://registry.yarnpkg.com/@mixpanel/rrweb/-/rrweb-2.0.0-alpha.18.3.tgz#7999d34145d704cca70acebf845129490a5ef9b6" + resolved "https://registry.npmjs.org/@mixpanel/rrweb/-/rrweb-2.0.0-alpha.18.3.tgz" integrity sha512-di3QfGmRleiDN85+E6OoJHCr/vq/wX9Z8l/Jt4mqHoLcbLEa46dkZ/qSgl4pYFby1Q6BKEwfwGIav15Ay7szlg== dependencies: "@mixpanel/rrdom" "^2.0.0-alpha.18" @@ -1356,12 +1348,12 @@ "@next/env@15.0.5": version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/env/-/env-15.0.5.tgz#1cc1ca2cb0835e95260afdd31cef8c227ad86fd4" + resolved "https://registry.npmjs.org/@next/env/-/env-15.0.5.tgz" integrity sha512-rDeqk/QF6OxTSvQItPdtyR0O4QN5L2a794F4+i8/syHN92DqFXcLNhZgLtYhW3rrJ23vRR7B5wIamsgGM4I6UQ== "@next/eslint-plugin-next@15.5.12": version "15.5.12" - resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-15.5.12.tgz#f9acf0895169c8699bd2759d362c1ddd973fc2a2" + resolved "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-15.5.12.tgz" integrity sha512-+ZRSDFTv4aC96aMb5E41rMjysx8ApkryevnvEYZvPZO52KvkqP5rNExLUXJFr9P4s0f3oqNQR6vopCZsPWKDcQ== dependencies: fast-glob "3.3.1" @@ -1398,7 +1390,7 @@ "@next/swc-win32-arm64-msvc@15.0.5": version "15.0.5" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.5.tgz#85de76f015e7bf3458e6c0930c608729dcb1f6e6" + resolved "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.5.tgz" integrity sha512-OmKXP/mUzY+AiDFk9PR3RoM6YfgzNYhtSbfvTUDk3PxoCLKnwTZ8xsFoWX2ph/RFC25QucTeAFepouGGsdBPAg== "@next/swc-win32-x64-msvc@15.0.5": @@ -1408,7 +1400,7 @@ "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -1416,12 +1408,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -1429,24 +1421,24 @@ "@nolyfill/is-core-module@1.0.39": version "1.0.39" - resolved "https://registry.yarnpkg.com/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz#3dc35ba0f1e66b403c00b39344f870298ebb1c8e" + resolved "https://registry.npmjs.org/@nolyfill/is-core-module/-/is-core-module-1.0.39.tgz" integrity sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA== "@otplib/core@^12.0.1": version "12.0.1" - resolved "https://registry.yarnpkg.com/@otplib/core/-/core-12.0.1.tgz#73720a8cedce211fe5b3f683cd5a9c098eaf0f8d" + resolved "https://registry.npmjs.org/@otplib/core/-/core-12.0.1.tgz" integrity sha512-4sGntwbA/AC+SbPhbsziRiD+jNDdIzsZ3JUyfZwjtKyc/wufl1pnSIaG4Uqx8ymPagujub0o92kgBnB89cuAMA== "@otplib/plugin-crypto@^12.0.1": version "12.0.1" - resolved "https://registry.yarnpkg.com/@otplib/plugin-crypto/-/plugin-crypto-12.0.1.tgz#2b42c624227f4f9303c1c041fca399eddcbae25e" + resolved "https://registry.npmjs.org/@otplib/plugin-crypto/-/plugin-crypto-12.0.1.tgz" integrity sha512-qPuhN3QrT7ZZLcLCyKOSNhuijUi9G5guMRVrxq63r9YNOxxQjPm59gVxLM+7xGnHnM6cimY57tuKsjK7y9LM1g== dependencies: "@otplib/core" "^12.0.1" "@otplib/plugin-thirty-two@^12.0.1": version "12.0.1" - resolved "https://registry.yarnpkg.com/@otplib/plugin-thirty-two/-/plugin-thirty-two-12.0.1.tgz#5cc9b56e6e89f2a1fe4a2b38900ca4e11c87aa9e" + resolved "https://registry.npmjs.org/@otplib/plugin-thirty-two/-/plugin-thirty-two-12.0.1.tgz" integrity sha512-MtT+uqRso909UkbrrYpJ6XFjj9D+x2Py7KjTO9JDPhL0bJUYVu5kFP4TFZW4NFAywrAtFRxOVY261u0qwb93gA== dependencies: "@otplib/core" "^12.0.1" @@ -1454,7 +1446,7 @@ "@otplib/preset-default@^12.0.1": version "12.0.1" - resolved "https://registry.yarnpkg.com/@otplib/preset-default/-/preset-default-12.0.1.tgz#cb596553c08251e71b187ada4a2246ad2a3165ba" + resolved "https://registry.npmjs.org/@otplib/preset-default/-/preset-default-12.0.1.tgz" integrity sha512-xf1v9oOJRyXfluBhMdpOkr+bsE+Irt+0D5uHtvg6x1eosfmHCsCC6ej/m7FXiWqdo0+ZUI6xSKDhJwc8yfiOPQ== dependencies: "@otplib/core" "^12.0.1" @@ -1463,7 +1455,7 @@ "@otplib/preset-v11@^12.0.1": version "12.0.1" - resolved "https://registry.yarnpkg.com/@otplib/preset-v11/-/preset-v11-12.0.1.tgz#4c7266712e7230500b421ba89252963c838fc96d" + resolved "https://registry.npmjs.org/@otplib/preset-v11/-/preset-v11-12.0.1.tgz" integrity sha512-9hSetMI7ECqbFiKICrNa4w70deTUfArtwXykPUvSHWOdzOlfa9ajglu7mNCntlvxycTiOAXkQGwjQCzzDEMRMg== dependencies: "@otplib/core" "^12.0.1" @@ -1472,12 +1464,12 @@ "@panva/hkdf@^1.0.2": version "1.2.1" - resolved "https://registry.yarnpkg.com/@panva/hkdf/-/hkdf-1.2.1.tgz#cb0d111ef700136f4580349ff0226bf25c853f23" + resolved "https://registry.npmjs.org/@panva/hkdf/-/hkdf-1.2.1.tgz" integrity sha512-6oclG6Y3PiDFcoyk8srjLfVKyMfVCKJ27JwNPViuXziFpmdz+MZnZN/aKY0JGXgYuO/VghU0jcOAZgWXZ1Dmrw== "@puppeteer/browsers@2.3.0": version "2.3.0" - resolved "https://registry.yarnpkg.com/@puppeteer/browsers/-/browsers-2.3.0.tgz#791ea7d80450fea24eb19fb1d70c367ad4e08cae" + resolved "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.3.0.tgz" integrity sha512-ioXoq9gPxkss4MYhD+SFaU9p1IHFUX0ILAWFPyjGaBdjLsYAlZw6j1iLA0N/m12uVHLFDfSYNF7EQccjinIMDA== dependencies: debug "^4.3.5" @@ -1491,62 +1483,62 @@ "@rtsao/scc@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8" + resolved "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz" integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== "@rushstack/eslint-patch@^1.10.3": version "1.16.1" - resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.16.1.tgz#4f97581e114fc79f246cee3723a5c4edd3b62415" + resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.16.1.tgz" integrity sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag== "@standard-schema/spec@^1.0.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8" + resolved "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz" integrity sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== "@svgr/babel-plugin-add-jsx-attribute@8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz#4001f5d5dd87fa13303e36ee106e3ff3a7eb8b22" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz" integrity sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g== "@svgr/babel-plugin-remove-jsx-attribute@8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz#69177f7937233caca3a1afb051906698f2f59186" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz" integrity sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA== "@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz#c2c48104cfd7dcd557f373b70a56e9e3bdae1d44" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz" integrity sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA== "@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz#8fbb6b2e91fa26ac5d4aa25c6b6e4f20f9c0ae27" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz" integrity sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ== "@svgr/babel-plugin-svg-dynamic-title@8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz#1d5ba1d281363fc0f2f29a60d6d936f9bbc657b0" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz" integrity sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og== "@svgr/babel-plugin-svg-em-dimensions@8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz#35e08df300ea8b1d41cb8f62309c241b0369e501" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz" integrity sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g== "@svgr/babel-plugin-transform-react-native-svg@8.1.0": version "8.1.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz#90a8b63998b688b284f255c6a5248abd5b28d754" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz" integrity sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q== "@svgr/babel-plugin-transform-svg-component@8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz#013b4bfca88779711f0ed2739f3f7efcefcf4f7e" + resolved "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz" integrity sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw== "@svgr/babel-preset@8.1.0": version "8.1.0" - resolved "https://registry.yarnpkg.com/@svgr/babel-preset/-/babel-preset-8.1.0.tgz#0e87119aecdf1c424840b9d4565b7137cabf9ece" + resolved "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz" integrity sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug== dependencies: "@svgr/babel-plugin-add-jsx-attribute" "8.0.0" @@ -1560,7 +1552,7 @@ "@svgr/core@8.1.0": version "8.1.0" - resolved "https://registry.yarnpkg.com/@svgr/core/-/core-8.1.0.tgz#41146f9b40b1a10beaf5cc4f361a16a3c1885e88" + resolved "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz" integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== dependencies: "@babel/core" "^7.21.3" @@ -1571,7 +1563,7 @@ "@svgr/hast-util-to-babel-ast@8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz#6952fd9ce0f470e1aded293b792a2705faf4ffd4" + resolved "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz" integrity sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q== dependencies: "@babel/types" "^7.21.3" @@ -1579,7 +1571,7 @@ "@svgr/plugin-jsx@8.1.0": version "8.1.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz#96969f04a24b58b174ee4cd974c60475acbd6928" + resolved "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz" integrity sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA== dependencies: "@babel/core" "^7.21.3" @@ -1589,7 +1581,7 @@ "@svgr/plugin-svgo@8.1.0": version "8.1.0" - resolved "https://registry.yarnpkg.com/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz#b115b7b967b564f89ac58feae89b88c3decd0f00" + resolved "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz" integrity sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA== dependencies: cosmiconfig "^8.1.3" @@ -1598,7 +1590,7 @@ "@svgr/webpack@^8.1.0": version "8.1.0" - resolved "https://registry.yarnpkg.com/@svgr/webpack/-/webpack-8.1.0.tgz#16f1b5346f102f89fda6ec7338b96a701d8be0c2" + resolved "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz" integrity sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA== dependencies: "@babel/core" "^7.21.3" @@ -1612,39 +1604,39 @@ "@swc/counter@0.1.3": version "0.1.3" - resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + resolved "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz" integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== "@swc/helpers@0.5.13": version "0.5.13" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.13.tgz#33e63ff3cd0cade557672bd7888a39ce7d115a8c" + resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz" integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w== dependencies: tslib "^2.4.0" "@tootallnate/quickjs-emscripten@^0.23.0": version "0.23.0" - resolved "https://registry.yarnpkg.com/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz#db4ecfd499a9765ab24002c3b696d02e6d32a12c" + resolved "https://registry.npmjs.org/@tootallnate/quickjs-emscripten/-/quickjs-emscripten-0.23.0.tgz" integrity sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA== "@tsconfig/node10@^1.0.7": version "1.0.12" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.12.tgz#be57ceac1e4692b41be9de6be8c32a106636dba4" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.12.tgz" integrity sha512-UCYBaeFvM11aU2y3YPZ//O5Rhj+xKyzy7mvcIoAjASbigy8mHMryP5cK7dgjlz2hWxh1g5pLw084E0a/wlUSFQ== "@tsconfig/node12@^1.0.7": version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@tybys/wasm-util@^0.10.0": @@ -1656,120 +1648,113 @@ "@types/amplitude-js@8.16.2": version "8.16.2" - resolved "https://registry.yarnpkg.com/@types/amplitude-js/-/amplitude-js-8.16.2.tgz#2cfb850a01a4171e632498821f92e45bef23c952" + resolved "https://registry.npmjs.org/@types/amplitude-js/-/amplitude-js-8.16.2.tgz" integrity sha512-a+tb/CEQOlrHRvEvAuYNOcoUy1POERANnAhfKgiTmsy0eACj3eukGP0ucA9t115QOPzVUhbnUfZqtyHp99IZyA== "@types/classnames@2.2.11": version "2.2.11" - resolved "https://registry.yarnpkg.com/@types/classnames/-/classnames-2.2.11.tgz#2521cc86f69d15c5b90664e4829d84566052c1cf" + resolved "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz" integrity sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw== "@types/css-font-loading-module@0.0.7": version "0.0.7" - resolved "https://registry.yarnpkg.com/@types/css-font-loading-module/-/css-font-loading-module-0.0.7.tgz#2f98ede46acc0975de85c0b7b0ebe06041d24601" + resolved "https://registry.npmjs.org/@types/css-font-loading-module/-/css-font-loading-module-0.0.7.tgz" integrity sha512-nl09VhutdjINdWyXxHWN/w9zlNCfr60JUqJbd24YXUuCwgeL0TpFSdElCwb6cxfB6ybE19Gjj4g0jsgkXxKv1Q== "@types/debug@^4.0.0": version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" "@types/estree@^1.0.6": version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/hast@^2.0.0": version "2.3.10" - resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.10.tgz#5c9d9e0b304bbb8879b857225c5ebab2d81d7643" + resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz" integrity sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw== dependencies: "@types/unist" "^2" "@types/hoist-non-react-statics@^3.3.0": version "3.3.7" - resolved "https://registry.yarnpkg.com/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.7.tgz#306e3a3a73828522efa1341159da4846e7573a6c" + resolved "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.7.tgz" integrity sha512-PQTyIulDkIDro8P+IHbKCsw7U2xxBYflVzW/FgWdCAePD9xGSidgA76/GeJ6lBKoblyhf9pBY763gbrN+1dI8g== dependencies: hoist-non-react-statics "^3.3.0" "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.5": version "7.0.15" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/lodash.debounce@4.0.7": version "4.0.7" - resolved "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.7.tgz#0285879defb7cdb156ae633cecd62d5680eded9f" + resolved "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.7.tgz" integrity sha512-X1T4wMZ+gT000M2/91SYj0d/7JfeNZ9PeeOldSNoE/lunLeQXKvkmIumI29IaKMotU/ln/McOIvgzZcQ/3TrSA== dependencies: "@types/lodash" "*" "@types/lodash.unescape@4.0.7": version "4.0.7" - resolved "https://registry.yarnpkg.com/@types/lodash.unescape/-/lodash.unescape-4.0.7.tgz#69f1cab2e755b824151346a44faeaaf93702972b" + resolved "https://registry.npmjs.org/@types/lodash.unescape/-/lodash.unescape-4.0.7.tgz" integrity sha512-KGxcfHpWcOnLeK5g71YErXL6m947wQC9XfhVjENlCku85C6WxsqNIxwxpqDCpL06rY5ExQiXZH50KgJDFLzc7Q== dependencies: "@types/lodash" "*" "@types/lodash@*": version "4.17.24" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.24.tgz#4ae334fc62c0e915ca8ed8e35dcc6d4eeb29215f" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.24.tgz" integrity sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ== "@types/mdast@^3.0.0": version "3.0.15" - resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.15.tgz#49c524a263f30ffa28b71ae282f813ed000ab9f5" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz" integrity sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ== dependencies: "@types/unist" "^2" "@types/ms@*": version "2.1.0" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78" + resolved "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz" integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA== -"@types/node@*": - version "25.3.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-25.3.1.tgz#82f3f6e30ac3b48560a092d9224a975b5c24e38d" - integrity sha512-hj9YIJimBCipHVfHKRMnvmHg+wfhKc0o4mTtXh9pKBjC8TLJzz0nzGmLi5UJsYAUgSvXFHgb0V2oY10DUFtImw== - dependencies: - undici-types "~7.18.0" - -"@types/node@^24.5.2": +"@types/node@*", "@types/node@^24.5.2": version "24.10.14" - resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.14.tgz#374550a07e24c9e4e604ceadfaddec4dd60faa90" + resolved "https://registry.npmjs.org/@types/node/-/node-24.10.14.tgz" integrity sha512-OowOUbD1lBCOFIPOZ8xnMIhgqA4sCutMiYOmPHL1PTLt5+y1XA+g2+yC9OOyz8p+deMZqPZLxfMjYIfrKsPeFg== dependencies: undici-types "~7.16.0" "@types/parse5@^6.0.0": version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" + resolved "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz" integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== "@types/prop-types@*", "@types/prop-types@^15.0.0": version "15.7.15" - resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7" + resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.15.tgz" integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== "@types/react-dom@18.2.14": version "18.2.14" - resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.2.14.tgz#c01ba40e5bb57fc1dc41569bb3ccdb19eab1c539" + resolved "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz" integrity sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ== dependencies: "@types/react" "*" "@types/react-redux@^7.1.20": version "7.1.34" - resolved "https://registry.yarnpkg.com/@types/react-redux/-/react-redux-7.1.34.tgz#83613e1957c481521e6776beeac4fd506d11bd0e" + resolved "https://registry.npmjs.org/@types/react-redux/-/react-redux-7.1.34.tgz" integrity sha512-GdFaVjEbYv4Fthm2ZLvj1VSCedV7TqE5y1kNwnjSdBOTXuRSgowux6J8TAct15T3CKBr63UMk+2CO7ilRhyrAQ== dependencies: "@types/hoist-non-react-statics" "^3.3.0" @@ -1779,21 +1764,14 @@ "@types/react-slick@0.23.10": version "0.23.10" - resolved "https://registry.yarnpkg.com/@types/react-slick/-/react-slick-0.23.10.tgz#56126e6e4e95cdce7771535b2811c2c1931a7caa" + resolved "https://registry.npmjs.org/@types/react-slick/-/react-slick-0.23.10.tgz" integrity sha512-ZiqdencANDZy6sWOWJ54LDvebuXFEhDlHtXU9FFipQR2BcYU2QJxZhvJPW6YK7cocibUiNn+YvDTbt1HtCIBVA== dependencies: "@types/react" "*" -"@types/react@*": - version "19.2.14" - resolved "https://registry.yarnpkg.com/@types/react/-/react-19.2.14.tgz#39604929b5e3957e3a6fa0001dafb17c7af70bad" - integrity sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w== - dependencies: - csstype "^3.2.2" - -"@types/react@18.2.34": +"@types/react@*", "@types/react@18.2.34": version "18.2.34" - resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.34.tgz#aed20f19473721ba328feb99d1ec3307ebc1a8dd" + resolved "https://registry.npmjs.org/@types/react/-/react-18.2.34.tgz" integrity sha512-U6eW/alrRk37FU/MS2RYMjx0Va2JGIVXELTODaTIYgvWGCV4Y4TfTUzG8DdmpDNIT0Xpj/R7GfyHOJJrDttcvg== dependencies: "@types/prop-types" "*" @@ -1802,46 +1780,46 @@ "@types/scheduler@*": version "0.26.0" - resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.26.0.tgz#2b7183b9bbb622d130b23bedf06899b7fec7eed5" + resolved "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.26.0.tgz" integrity sha512-WFHp9YUJQ6CKshqoC37iOlHnQSmxNc795UhB26CyBBttrN9svdIrUjl/NjnNmfcwtncN0h/0PPAFWv9ovP8mLA== "@types/sinonjs__fake-timers@8.1.1": version "8.1.1" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz#b49c2c70150141a15e0fa7e79cf1f92a72934ce3" + resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.1.tgz" integrity sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g== "@types/sizzle@^2.3.2": version "2.3.10" - resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.10.tgz#277a542aff6776d8a9b15f2ac682a663e3e94bbd" + resolved "https://registry.npmjs.org/@types/sizzle/-/sizzle-2.3.10.tgz" integrity sha512-TC0dmN0K8YcWEAEfiPi5gJP14eJe30TTGjkvek3iM/1NdHHsdCA/Td6GvNndMOo/iSnIsZ4HuuhrYPDAmbxzww== "@types/swiper@6.0.0": version "6.0.0" - resolved "https://registry.yarnpkg.com/@types/swiper/-/swiper-6.0.0.tgz#9934ecd569611b660a2a9bf200f25ce5ba4b4d63" + resolved "https://registry.npmjs.org/@types/swiper/-/swiper-6.0.0.tgz" integrity sha512-QPZRgxZ+ivXXtzV43B3LxpXUIC7FE/EoKM+rtxngmgt2M7eeUYypZhyqZD8UxJtlBcUDw/ATGoVeSNpvBBrz2w== dependencies: swiper "*" "@types/unist@^2", "@types/unist@^2.0.0": version "2.0.11" - resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.11.tgz#11af57b127e32487774841f7a4e54eab166d03c4" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz" integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== "@types/uuid@8.3.1": version "8.3.1" - resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.1.tgz#1a32969cf8f0364b3d8c8af9cc3555b7805df14f" + resolved "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz" integrity sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg== "@types/yauzl@^2.9.1": version "2.10.3" - resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.10.3.tgz#e9b2808b4f109504a03cda958259876f61017999" + resolved "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz" integrity sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q== dependencies: "@types/node" "*" "@typescript-eslint/eslint-plugin@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz#b1ce606d87221daec571e293009675992f0aae76" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.56.1.tgz" integrity sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A== dependencies: "@eslint-community/regexpp" "^4.12.2" @@ -1855,7 +1833,7 @@ "@typescript-eslint/parser@^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.56.1.tgz#21d13b3d456ffb08614c1d68bb9a4f8d9237cdc7" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.56.1.tgz" integrity sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg== dependencies: "@typescript-eslint/scope-manager" "8.56.1" @@ -1866,7 +1844,7 @@ "@typescript-eslint/project-service@8.56.1": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.56.1.tgz#65c8d645f028b927bfc4928593b54e2ecd809244" + resolved "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.56.1.tgz" integrity sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ== dependencies: "@typescript-eslint/tsconfig-utils" "^8.56.1" @@ -1875,7 +1853,7 @@ "@typescript-eslint/scope-manager@8.56.1": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz#254df93b5789a871351335dd23e20bc164060f24" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.56.1.tgz" integrity sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w== dependencies: "@typescript-eslint/types" "8.56.1" @@ -1883,12 +1861,12 @@ "@typescript-eslint/tsconfig-utils@8.56.1", "@typescript-eslint/tsconfig-utils@^8.56.1": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz#1afa830b0fada5865ddcabdc993b790114a879b7" + resolved "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.56.1.tgz" integrity sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ== "@typescript-eslint/type-utils@8.56.1": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz#7a6c4fabf225d674644931e004302cbbdd2f2e24" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.56.1.tgz" integrity sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg== dependencies: "@typescript-eslint/types" "8.56.1" @@ -1899,12 +1877,12 @@ "@typescript-eslint/types@8.56.1", "@typescript-eslint/types@^8.56.1": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.56.1.tgz#975e5942bf54895291337c91b9191f6eb0632ab9" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.56.1.tgz" integrity sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw== "@typescript-eslint/typescript-estree@8.56.1": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz#3b9e57d8129a860c50864c42188f761bdef3eab0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.56.1.tgz" integrity sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg== dependencies: "@typescript-eslint/project-service" "8.56.1" @@ -1919,7 +1897,7 @@ "@typescript-eslint/utils@8.56.1": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.56.1.tgz#5a86acaf9f1b4c4a85a42effb217f73059f6deb7" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.56.1.tgz" integrity sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA== dependencies: "@eslint-community/eslint-utils" "^4.9.1" @@ -1929,7 +1907,7 @@ "@typescript-eslint/visitor-keys@8.56.1": version "8.56.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz#50e03475c33a42d123dc99e63acf1841c0231f87" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.56.1.tgz" integrity sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw== dependencies: "@typescript-eslint/types" "8.56.1" @@ -2019,7 +1997,7 @@ "@unrs/resolver-binding-win32-arm64-msvc@1.11.1": version "1.11.1" - resolved "https://registry.yarnpkg.com/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz#ce5735e600e4c2fbb409cd051b3b7da4a399af35" + resolved "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz" integrity sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw== "@unrs/resolver-binding-win32-ia32-msvc@1.11.1": @@ -2034,34 +2012,34 @@ "@xstate/fsm@^1.4.0": version "1.6.5" - resolved "https://registry.yarnpkg.com/@xstate/fsm/-/fsm-1.6.5.tgz#f599e301997ad7e3c572a0b1ff0696898081bea5" + resolved "https://registry.npmjs.org/@xstate/fsm/-/fsm-1.6.5.tgz" integrity sha512-b5o1I6aLNeYlU/3CPlj/Z91ybk1gUsKT+5NAJI+2W4UjvS5KLG28K9v5UvNoFVjHV8PajVZ00RH3vnjyQO7ZAw== acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: version "8.3.5" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.5.tgz#8a6b8ca8fc5b34685af15dabb44118663c296496" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.5.tgz" integrity sha512-HEHNfbars9v4pgpW6SO1KSPkfoS0xVOM/9UzkJltjlsHZmJasxg8aXkuZa7SMf8vKGIBhpUsPluQSqhJFCqebw== dependencies: acorn "^8.11.0" acorn@^8.11.0, acorn@^8.15.0, acorn@^8.4.1: version "8.16.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.16.0.tgz#4ce79c89be40afe7afe8f3adb902a1f1ce9ac08a" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz" integrity sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw== agent-base@^7.1.0, agent-base@^7.1.2: version "7.1.4" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz" integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -2069,12 +2047,12 @@ aggregate-error@^3.0.0: ajv-keywords@^3.5.2: version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== ajv@^6.12.4, ajv@^6.14.0: version "6.14.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.14.0.tgz#fd067713e228210636ebb08c60bd3765d6dbe73a" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz" integrity sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw== dependencies: fast-deep-equal "^3.1.1" @@ -2084,31 +2062,31 @@ ajv@^6.12.4, ajv@^6.14.0: ansi-colors@^4.1.1: version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== ansi-escapes@^4.3.0: version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -2116,32 +2094,32 @@ anymatch@~3.1.2: arch@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + resolved "https://registry.npmjs.org/arch/-/arch-2.2.0.tgz" integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== arg@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== aria-query@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.2.tgz#93f81a43480e33a338f19163a3d10a50c01dcd59" + resolved "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz" integrity sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw== array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz#384d12a37295aec3769ab022ad323a18a51ccf8b" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz" integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== dependencies: call-bound "^1.0.3" @@ -2149,7 +2127,7 @@ array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: array-includes@^3.1.6, array-includes@^3.1.8, array-includes@^3.1.9: version "3.1.9" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.9.tgz#1f0ccaa08e90cdbc3eb433210f903ad0f17c3f3a" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz" integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== dependencies: call-bind "^1.0.8" @@ -2163,7 +2141,7 @@ array-includes@^3.1.6, array-includes@^3.1.8, array-includes@^3.1.9: array.prototype.findlast@^1.2.5: version "1.2.5" - resolved "https://registry.yarnpkg.com/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz#3e4fbcb30a15a7f5bf64cf2faae22d139c2e4904" + resolved "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz" integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== dependencies: call-bind "^1.0.7" @@ -2175,7 +2153,7 @@ array.prototype.findlast@^1.2.5: array.prototype.findlastindex@^1.2.6: version "1.2.6" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz#cfa1065c81dcb64e34557c9b81d012f6a421c564" + resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz" integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== dependencies: call-bind "^1.0.8" @@ -2188,7 +2166,7 @@ array.prototype.findlastindex@^1.2.6: array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz#534aaf9e6e8dd79fb6b9a9917f839ef1ec63afe5" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz" integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== dependencies: call-bind "^1.0.8" @@ -2198,7 +2176,7 @@ array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.3: array.prototype.flatmap@^1.3.2, array.prototype.flatmap@^1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz#712cc792ae70370ae40586264629e33aab5dd38b" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz" integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== dependencies: call-bind "^1.0.8" @@ -2208,7 +2186,7 @@ array.prototype.flatmap@^1.3.2, array.prototype.flatmap@^1.3.3: array.prototype.tosorted@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz#fe954678ff53034e717ea3352a03f0b0b86f7ffc" + resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz" integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== dependencies: call-bind "^1.0.7" @@ -2219,7 +2197,7 @@ array.prototype.tosorted@^1.1.4: arraybuffer.prototype.slice@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz#9d760d84dbdd06d0cbf92c8849615a1a7ab3183c" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz" integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== dependencies: array-buffer-byte-length "^1.0.1" @@ -2232,85 +2210,85 @@ arraybuffer.prototype.slice@^1.0.4: asn1@~0.2.3: version "0.2.6" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz" integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== ast-types-flow@^0.0.8: version "0.0.8" - resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + resolved "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz" integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== ast-types@^0.13.4: version "0.13.4" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz" integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== dependencies: tslib "^2.0.1" astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-function@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" + resolved "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz" integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== async@^2.1.1: version "2.6.4" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" + resolved "https://registry.npmjs.org/async/-/async-2.6.4.tgz" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== dependencies: lodash "^4.17.14" async@^3.2.0: version "3.2.6" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + resolved "https://registry.npmjs.org/async/-/async-3.2.6.tgz" integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + resolved "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== available-typed-arrays@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz#a5cc375d6a03c2efc87a553f3e0b1522def14846" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== dependencies: possible-typed-array-names "^1.0.0" aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== aws4@^1.8.0: version "1.13.2" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.13.2.tgz#0aa167216965ac9474ccfa83892cfb6b3e1e52ef" + resolved "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz" integrity sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw== axe-core@^4.10.0: version "4.11.1" - resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.11.1.tgz#052ff9b2cbf543f5595028b583e4763b40c78ea7" + resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.11.1.tgz" integrity sha512-BASOg+YwO2C+346x3LZOeoovTIoTrRqEsqMa6fmfAV0P+U9mFr9NsyOEpiYvFjbc64NMrSswhV50WdXzdb/Z5A== axios@^1.13.5: version "1.13.5" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.5.tgz#5e464688fa127e11a660a2c49441c009f6567a43" + resolved "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz" integrity sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q== dependencies: follow-redirects "^1.15.11" @@ -2319,17 +2297,17 @@ axios@^1.13.5: axobject-query@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-4.1.0.tgz#28768c76d0e3cff21bc62a9e2d0b6ac30042a1ee" + resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz" integrity sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ== b4a@^1.6.4: version "1.8.0" - resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.8.0.tgz#1ca3ba0edc9469aaabef5647e769a83d50180b1a" + resolved "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz" integrity sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg== babel-loader@8.2.5: version "8.2.5" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" + resolved "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz" integrity sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ== dependencies: find-cache-dir "^3.3.1" @@ -2339,7 +2317,7 @@ babel-loader@8.2.5: babel-plugin-polyfill-corejs2@^0.4.15: version "0.4.17" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz#198f970f1c99a856b466d1187e88ce30bd199d91" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.17.tgz" integrity sha512-aTyf30K/rqAsNwN76zYrdtx8obu0E4KoUME29B1xj+B3WxgvWkp943vYQ+z8Mv3lw9xHXMHpvSPOBxzAkIa94w== dependencies: "@babel/compat-data" "^7.28.6" @@ -2348,7 +2326,7 @@ babel-plugin-polyfill-corejs2@^0.4.15: babel-plugin-polyfill-corejs3@^0.14.0: version "0.14.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz#6ac08d2f312affb70c4c69c0fbba4cb417ee5587" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.14.2.tgz" integrity sha512-coWpDLJ410R781Npmn/SIBZEsAetR4xVi0SxLMXPaMO4lSf1MwnkGYMtkFxew0Dn8B3/CpbpYxN0JCgg8mn67g== dependencies: "@babel/helper-define-polyfill-provider" "^0.6.8" @@ -2356,34 +2334,34 @@ babel-plugin-polyfill-corejs3@^0.14.0: babel-plugin-polyfill-regenerator@^0.6.6: version "0.6.8" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz#8a6bfd5dd54239362b3d06ce47ac52b2d95d7721" + resolved "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.8.tgz" integrity sha512-M762rNHfSF1EV3SLtnCJXFoQbbIIz0OyRwnCmV0KPC7qosSfCO0QLTSuJX3ayAebubhE6oYBAYPrBA5ljowaZg== dependencies: "@babel/helper-define-polyfill-provider" "^0.6.8" bail@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== balanced-match@^4.0.2: version "4.0.4" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-4.0.4.tgz#bfb10662feed8196a2c62e7c68e17720c274179a" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz" integrity sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA== bare-events@^2.5.4, bare-events@^2.7.0: version "2.8.2" - resolved "https://registry.yarnpkg.com/bare-events/-/bare-events-2.8.2.tgz#7b3e10bd8e1fc80daf38bb516921678f566ab89f" + resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.8.2.tgz" integrity sha512-riJjyv1/mHLIPX4RwiK+oW9/4c3TEUeORHKefKAKnZ5kyslbN+HXowtbaVEqt4IMUB7OXlfixcs6gsFeo/jhiQ== bare-fs@^4.0.1: version "4.5.5" - resolved "https://registry.yarnpkg.com/bare-fs/-/bare-fs-4.5.5.tgz#589a8f87a32af0266aa474413c8d7d11d50e4a65" + resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-4.5.5.tgz" integrity sha512-XvwYM6VZqKoqDll8BmSww5luA5eflDzY0uEFfBJtFKe4PAAtxBjU3YIxzIBzhyaEQBy1VXEQBto4cpN5RZJw+w== dependencies: bare-events "^2.5.4" @@ -2394,19 +2372,19 @@ bare-fs@^4.0.1: bare-os@^3.0.1: version "3.7.0" - resolved "https://registry.yarnpkg.com/bare-os/-/bare-os-3.7.0.tgz#23c60064e53400db1550ef4b2987fdc42ee399b2" + resolved "https://registry.npmjs.org/bare-os/-/bare-os-3.7.0.tgz" integrity sha512-64Rcwj8qlnTZU8Ps6JJEdSmxBEUGgI7g8l+lMtsJLl4IsfTcHMTfJ188u2iGV6P6YPRZrtv72B2kjn+hp+Yv3g== bare-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/bare-path/-/bare-path-3.0.0.tgz#b59d18130ba52a6af9276db3e96a2e3d3ea52178" + resolved "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz" integrity sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw== dependencies: bare-os "^3.0.1" bare-stream@^2.6.4: version "2.8.0" - resolved "https://registry.yarnpkg.com/bare-stream/-/bare-stream-2.8.0.tgz#3ac6141a65d097fd2bf6e472c848c5d800d47df9" + resolved "https://registry.npmjs.org/bare-stream/-/bare-stream-2.8.0.tgz" integrity sha512-reUN0M2sHRqCdG4lUK3Fw8w98eeUIZHL5c3H7Mbhk2yVBL+oofgaIp0ieLfD5QXwPCypBpmEEKU2WZKzbAk8GA== dependencies: streamx "^2.21.0" @@ -2414,66 +2392,66 @@ bare-stream@^2.6.4: bare-url@^2.2.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/bare-url/-/bare-url-2.3.2.tgz#4aef382efa662b2180a6fe4ca07a71b39bdf7ca3" + resolved "https://registry.npmjs.org/bare-url/-/bare-url-2.3.2.tgz" integrity sha512-ZMq4gd9ngV5aTMa5p9+UfY0b3skwhHELaDkhEHetMdX0LRkW9kzaym4oo/Eh+Ghm0CCDuMTsRIGM/ytUc1ZYmw== dependencies: bare-path "^3.0.0" base64-arraybuffer@^1.0.1, base64-arraybuffer@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz#1c37589a7c4b0746e34bd1feb951da2df01c1bdc" + resolved "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz" integrity sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ== base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== baseline-browser-mapping@^2.9.0: version "2.10.0" - resolved "https://registry.yarnpkg.com/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz#5b09935025bf8a80e29130251e337c6a7fc8cbb9" + resolved "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz" integrity sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA== basic-ftp@^5.0.2: version "5.2.0" - resolved "https://registry.yarnpkg.com/basic-ftp/-/basic-ftp-5.2.0.tgz#7c2dff63c918bde60e6bad1f2ff93dcf5137a40a" + resolved "https://registry.npmjs.org/basic-ftp/-/basic-ftp-5.2.0.tgz" integrity sha512-VoMINM2rqJwJgfdHq6RiUudKt2BV+FY5ZFezP/ypmwayk68+NzzAQy4XXLlqsGD4MCzq3DrmNFD/uUmBJuGoXw== bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + resolved "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz" integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== dependencies: tweetnacl "^0.14.3" big.js@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + resolved "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz" integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^2.0.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.3.0.tgz#f6e14a97858d327252200242d4ccfe522c445522" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz" integrity sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw== blob-util@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" + resolved "https://registry.npmjs.org/blob-util/-/blob-util-2.0.2.tgz" integrity sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ== bluebird@3.7.2, bluebird@^3.7.2: version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + resolved "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== boolbase@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz" integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== brace-expansion@^1.1.7: version "1.1.12" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz" integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" @@ -2481,21 +2459,21 @@ brace-expansion@^1.1.7: brace-expansion@^5.0.2: version "5.0.3" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.3.tgz#6a9c6c268f85b53959ec527aeafe0f7300258eef" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.3.tgz" integrity sha512-fy6KJm2RawA5RcHkLa1z/ScpBeA762UF9KmZQxwIbDtRJrgLzM10depAiEQ+CXYcoiqW1/m96OAAoke2nE9EeA== dependencies: balanced-match "^4.0.2" braces@^3.0.3, braces@~3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz" integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: fill-range "^7.1.1" browserslist@^4.24.0, browserslist@^4.28.1: version "4.28.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.28.1.tgz#7f534594628c53c63101079e27e40de490456a95" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz" integrity sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA== dependencies: baseline-browser-mapping "^2.9.0" @@ -2506,12 +2484,12 @@ browserslist@^4.24.0, browserslist@^4.28.1: buffer-crc32@~0.2.3: version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + resolved "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz" integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== buffer@^5.2.1, buffer@^5.7.1: version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -2519,19 +2497,19 @@ buffer@^5.2.1, buffer@^5.7.1: busboy@1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: streamsearch "^1.1.0" cachedir@^2.3.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/cachedir/-/cachedir-2.4.0.tgz#7fef9cf7367233d7c88068fe6e34ed0d355a610d" + resolved "https://registry.npmjs.org/cachedir/-/cachedir-2.4.0.tgz" integrity sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ== call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6" + resolved "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: es-errors "^1.3.0" @@ -2539,7 +2517,7 @@ call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply- call-bind@^1.0.7, call-bind@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz" integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== dependencies: call-bind-apply-helpers "^1.0.0" @@ -2549,7 +2527,7 @@ call-bind@^1.0.7, call-bind@^1.0.8: call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.4.tgz#238de935d2a2a692928c538c7ccfa91067fd062a" + resolved "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz" integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== dependencies: call-bind-apply-helpers "^1.0.2" @@ -2557,27 +2535,27 @@ call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^6.2.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001579, caniuse-lite@^1.0.30001759: version "1.0.30001774" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001774.tgz#0e576b6f374063abcd499d202b9ba1301be29b70" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001774.tgz" integrity sha512-DDdwPGz99nmIEv216hKSgLD+D4ikHQHjBC/seF98N9CPqRX4M5mSxT9eTV6oyisnJcuzxtZy4n17yKKQYmYQOA== caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== chalk@^4.0.0, chalk@^4.1.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -2585,17 +2563,17 @@ chalk@^4.0.0, chalk@^4.1.0: character-entities@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + resolved "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz" integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== check-more-types@2.24.0, check-more-types@^2.24.0: version "2.24.0" - resolved "https://registry.yarnpkg.com/check-more-types/-/check-more-types-2.24.0.tgz#1420ffb10fd444dcfc79b43891bbfffd32a84600" + resolved "https://registry.npmjs.org/check-more-types/-/check-more-types-2.24.0.tgz" integrity sha512-Pj779qHxV2tuapviy1bSZNEL1maXr13bPYpsvSDB68HlYcYuhlDrmGd63i0JHMCLKzc7rUSNIrpdJlhVlNwrxA== "chokidar@>=2.0.0 <4.0.0": version "3.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz" integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw== dependencies: anymatch "~3.1.2" @@ -2610,7 +2588,7 @@ check-more-types@2.24.0, check-more-types@^2.24.0: chromium-bidi@0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/chromium-bidi/-/chromium-bidi-0.6.3.tgz#363fe1ca6b9c6122b9f1b2a47f9449ecf712f755" + resolved "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.6.3.tgz" integrity sha512-qXlsCmpCZJAnoTYI83Iu6EdYQpMYdVkCfq08KDh2pmlVqK5t5IA9mGs4/LwCwp4fqisSOMXZxP3HIh8w8aRn0A== dependencies: mitt "3.0.1" @@ -2619,34 +2597,29 @@ chromium-bidi@0.6.3: ci-info@^4.1.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-4.4.0.tgz#7d54eff9f54b45b62401c26032696eb59c8bd18c" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz" integrity sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg== -classnames@2.3.1: +classnames@2.3.1, classnames@^2.2.5, classnames@^2.3.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e" + resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz" integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA== -classnames@^2.2.5, classnames@^2.3.0: - version "2.5.1" - resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.5.1.tgz#ba774c614be0f016da105c858e7159eae8e7687b" - integrity sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow== - clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-table3@0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.1.tgz#36ce9b7af4847f288d3cdd081fbd09bf7bd237b8" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.1.tgz" integrity sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA== dependencies: string-width "^4.2.0" @@ -2655,7 +2628,7 @@ cli-table3@0.6.1: cli-truncate@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz" integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== dependencies: slice-ansi "^3.0.0" @@ -2663,12 +2636,12 @@ cli-truncate@^2.1.0: client-only@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + resolved "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz" integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== cliui@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -2677,19 +2650,19 @@ cliui@^8.0.1: color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz" integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== dependencies: color-name "~1.1.4" color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.9.0: version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== dependencies: color-name "^1.0.0" @@ -2697,7 +2670,7 @@ color-string@^1.9.0: color@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz" integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== dependencies: color-convert "^2.0.1" @@ -2705,86 +2678,86 @@ color@^4.2.3: colorette@^2.0.16: version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== colors@1.4.0, colors@^1.1.2: version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + resolved "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz" integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" comma-separated-tokens@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== commander@^6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" + resolved "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== commander@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== common-tags@^1.8.0: version "1.8.2" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + resolved "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz" integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== convert-source-map@^1.7.0: version "1.9.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== cookie@0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz" integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw== cookie@^0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + resolved "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== core-js-compat@^3.48.0: version "3.49.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.49.0.tgz#06145447d92f4aaf258a0c44f24b47afaeaffef6" + resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz" integrity sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA== dependencies: browserslist "^4.28.1" core-util-is@1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz" integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== cosmiconfig@^8.1.3: version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: import-fresh "^3.3.0" @@ -2794,7 +2767,7 @@ cosmiconfig@^8.1.3: cosmiconfig@^9.0.0: version "9.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-9.0.0.tgz#34c3fc58287b915f3ae905ab6dc3de258b55ad9d" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz" integrity sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg== dependencies: env-paths "^2.2.1" @@ -2804,19 +2777,19 @@ cosmiconfig@^9.0.0: create-require@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== cross-env@7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz" integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== dependencies: cross-spawn "^7.0.1" cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3, cross-spawn@^7.0.6: version "7.0.6" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz" integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" @@ -2825,14 +2798,14 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3, cross-spawn@^7.0.6: css-box-model@^1.2.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/css-box-model/-/css-box-model-1.2.1.tgz#59951d3b81fd6b2074a62d49444415b0d2b4d7c1" + resolved "https://registry.npmjs.org/css-box-model/-/css-box-model-1.2.1.tgz" integrity sha512-a7Vr4Q/kd/aw96bnJG332W9V9LkJO69JRcaCYDUqjp6/z0w6VcZjgAcTbgFxEPfBgdnAwlh3iwu+hLopa+flJw== dependencies: tiny-invariant "^1.0.6" css-jss@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/css-jss/-/css-jss-10.10.0.tgz#bd51fbd255cc24597ac0f0f32368394794d37ef3" + resolved "https://registry.npmjs.org/css-jss/-/css-jss-10.10.0.tgz" integrity sha512-YyMIS/LsSKEGXEaVJdjonWe18p4vXLo8CMA4FrW/kcaEyqdIGKCFXao31gbJddXEdIxSXFFURWrenBJPlKTgAA== dependencies: "@babel/runtime" "^7.3.1" @@ -2841,14 +2814,14 @@ css-jss@10.10.0: css-line-break@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/css-line-break/-/css-line-break-2.1.0.tgz#bfef660dfa6f5397ea54116bb3cb4873edbc4fa0" + resolved "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz" integrity sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w== dependencies: utrie "^1.0.2" css-select@^4.2.1: version "4.3.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + resolved "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz" integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== dependencies: boolbase "^1.0.0" @@ -2859,7 +2832,7 @@ css-select@^4.2.1: css-select@^5.1.0: version "5.2.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-5.2.2.tgz#01b6e8d163637bb2dd6c982ca4ed65863682786e" + resolved "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz" integrity sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw== dependencies: boolbase "^1.0.0" @@ -2870,7 +2843,7 @@ css-select@^5.1.0: css-tree@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz" integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== dependencies: mdn-data "2.0.30" @@ -2878,7 +2851,7 @@ css-tree@^2.3.1: css-tree@~2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz" integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== dependencies: mdn-data "2.0.28" @@ -2886,7 +2859,7 @@ css-tree@~2.2.0: css-vendor@^2.0.8: version "2.0.8" - resolved "https://registry.yarnpkg.com/css-vendor/-/css-vendor-2.0.8.tgz#e47f91d3bd3117d49180a3c935e62e3d9f7f449d" + resolved "https://registry.npmjs.org/css-vendor/-/css-vendor-2.0.8.tgz" integrity sha512-x9Aq0XTInxrkuFeHKbYC7zWY8ai7qJ04Kxd9MnvbC1uO5DagxoHQjm4JvG+vCdXOoFtCjbL2XSZfxmoYa9uQVQ== dependencies: "@babel/runtime" "^7.8.3" @@ -2894,29 +2867,24 @@ css-vendor@^2.0.8: css-what@^6.0.1, css-what@^6.1.0: version "6.2.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.2.2.tgz#cdcc8f9b6977719fdfbd1de7aec24abf756b9dea" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.2.2.tgz" integrity sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA== csso@^5.0.5: version "5.0.5" - resolved "https://registry.yarnpkg.com/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz" integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== dependencies: css-tree "~2.2.0" -csstype@^3.0.2, csstype@^3.2.2: +csstype@^3.0.2: version "3.2.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" + resolved "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz" integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== -cypress-real-events@^1.15.0: - version "1.15.0" - resolved "https://registry.yarnpkg.com/cypress-real-events/-/cypress-real-events-1.15.0.tgz#b84ed97455238139ac3d0c8f803991b30f22fc8a" - integrity sha512-in98xxTnnM9Z7lZBvvVozm99PBT2eEOjXRG5LKWyYvQnj9mGWXMiPNpfw7e7WiraBFh7XlXIxnE9Cu5o+52kQQ== - cypress-social-logins@^1.14.2: version "1.14.2" - resolved "https://registry.yarnpkg.com/cypress-social-logins/-/cypress-social-logins-1.14.2.tgz#aa73bf06fa3f825cfaa97eb7da96ca1c4de9ef73" + resolved "https://registry.npmjs.org/cypress-social-logins/-/cypress-social-logins-1.14.2.tgz" integrity sha512-acTzY6axp/GJnmxCA6aHiXxg6F2vIfsa6YVvTvvu4P2MLc/cdXqhbh5JJsk5r3iGLTQwLAIos8YZuAik6eWqVQ== dependencies: otplib "^12.0.1" @@ -2924,14 +2892,14 @@ cypress-social-logins@^1.14.2: cypress-v10-preserve-cookie@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/cypress-v10-preserve-cookie/-/cypress-v10-preserve-cookie-1.2.1.tgz#7ddadb253d7cfd5570bff7938806c557eac895cc" + resolved "https://registry.npmjs.org/cypress-v10-preserve-cookie/-/cypress-v10-preserve-cookie-1.2.1.tgz" integrity sha512-8JAfcrDrCCiFyce7ygtqO9Gad0yzFla9WNDGA9j4sz6kLSvh2m2fWcBcON2VwWw5GfRDXmpe+yzT2r8Mu3jGdA== dependencies: debug "^4.3.4" cypress@^14.5.2: version "14.5.4" - resolved "https://registry.yarnpkg.com/cypress/-/cypress-14.5.4.tgz#d821fbb6220c3328e7413acc7724b75319c9e64d" + resolved "https://registry.npmjs.org/cypress/-/cypress-14.5.4.tgz" integrity sha512-0Dhm4qc9VatOcI1GiFGVt8osgpPdqJLHzRwcAB5MSD/CAAts3oybvPUPawHyvJZUd8osADqZe/xzMsZ8sDTjXw== dependencies: "@cypress/request" "^3.0.9" @@ -2981,24 +2949,24 @@ cypress@^14.5.2: damerau-levenshtein@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + resolved "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz" integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== dependencies: assert-plus "^1.0.0" data-uri-to-buffer@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz#8a58bb67384b261a38ef18bea1810cb01badd28b" + resolved "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-6.0.2.tgz" integrity sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw== data-view-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz#211a03ba95ecaf7798a8c7198d79536211f88570" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz" integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== dependencies: call-bound "^1.0.3" @@ -3007,7 +2975,7 @@ data-view-buffer@^1.0.2: data-view-byte-length@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz#9e80f7ca52453ce3e93d25a35318767ea7704735" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz" integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== dependencies: call-bound "^1.0.3" @@ -3016,7 +2984,7 @@ data-view-byte-length@^1.0.2: data-view-byte-offset@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz#068307f9b71ab76dbbe10291389e020856606191" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz" integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== dependencies: call-bound "^1.0.2" @@ -3025,50 +2993,50 @@ data-view-byte-offset@^1.0.1: date-fns@2.30.0: version "2.30.0" - resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" + resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.30.0.tgz" integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw== dependencies: "@babel/runtime" "^7.21.0" dayjs@^1.10.4: version "1.11.19" - resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.19.tgz#15dc98e854bb43917f12021806af897c58ae2938" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.19.tgz" integrity sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw== debug@4, debug@4.4.3, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@^4.3.5, debug@^4.3.6, debug@^4.4.0, debug@^4.4.3: version "4.4.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a" + resolved "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz" integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA== dependencies: ms "^2.1.3" debug@^3.1.0, debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" decode-named-character-reference@^1.0.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz#3e40603760874c2e5867691b599d73a7da25b53f" + resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.3.0.tgz" integrity sha512-GtpQYB283KrPp6nRw50q3U9/VfOutZOe103qlN7BPP6Ad27xYnOIWv4lPzo8HCAL+mMZofJ9KEy30fq6MfaK6Q== dependencies: character-entities "^2.0.0" deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.3.1: version "4.3.1" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== define-data-property@^1.0.1, define-data-property@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz" integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: es-define-property "^1.0.0" @@ -3077,7 +3045,7 @@ define-data-property@^1.0.1, define-data-property@^1.1.4: define-properties@^1.1.3, define-properties@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -3086,7 +3054,7 @@ define-properties@^1.1.3, define-properties@^1.2.1: degenerator@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/degenerator/-/degenerator-5.0.1.tgz#9403bf297c6dad9a1ece409b37db27954f91f2f5" + resolved "https://registry.npmjs.org/degenerator/-/degenerator-5.0.1.tgz" integrity sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ== dependencies: ast-types "^0.13.4" @@ -3095,44 +3063,44 @@ degenerator@^5.0.0: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== dequal@^2.0.0: version "2.0.3" - resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== detect-libc@^2.0.3: version "2.1.2" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz" integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== devtools-protocol@0.0.1312386: version "0.0.1312386" - resolved "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz#5ab824d6f1669ec6c6eb0fba047e73601d969052" + resolved "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1312386.tgz" integrity sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA== diff@^4.0.1: version "4.0.4" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.4.tgz#7a6dbfda325f25f07517e9b518f897c08332e07d" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz" integrity sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ== diff@^5.0.0: version "5.2.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.2.2.tgz#0a4742797281d09cfa699b79ea32d27723623bad" + resolved "https://registry.npmjs.org/diff/-/diff-5.2.2.tgz" integrity sha512-vtcDfH3TOjP8UekytvnHH1o1P4FcUdt4eQ1Y+Abap1tk/OB2MWQvcwS2ClCd1zuIhc3JKOx6p3kod8Vfys3E+A== doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" dom-serializer@^1.0.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz" integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== dependencies: domelementtype "^2.0.1" @@ -3141,7 +3109,7 @@ dom-serializer@^1.0.1: dom-serializer@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz" integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== dependencies: domelementtype "^2.3.0" @@ -3150,26 +3118,26 @@ dom-serializer@^2.0.0: domelementtype@^2.0.1, domelementtype@^2.2.0, domelementtype@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz" integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== domhandler@^4.2.0, domhandler@^4.3.1: version "4.3.1" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz" integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== dependencies: domelementtype "^2.2.0" domhandler@^5.0.2, domhandler@^5.0.3: version "5.0.3" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz" integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== dependencies: domelementtype "^2.3.0" domutils@^2.8.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + resolved "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== dependencies: dom-serializer "^1.0.1" @@ -3178,7 +3146,7 @@ domutils@^2.8.0: domutils@^3.0.1: version "3.2.2" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-3.2.2.tgz#edbfe2b668b0c1d97c24baf0f1062b132221bc78" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz" integrity sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw== dependencies: dom-serializer "^2.0.0" @@ -3187,7 +3155,7 @@ domutils@^3.0.1: dot-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: no-case "^3.0.4" @@ -3195,12 +3163,12 @@ dot-case@^3.0.4: dotenv@^16.4.5: version "16.6.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020" + resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz" integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== dunder-proto@^1.0.0, dunder-proto@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + resolved "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz" integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== dependencies: call-bind-apply-helpers "^1.0.1" @@ -3209,12 +3177,12 @@ dunder-proto@^1.0.0, dunder-proto@^1.0.1: duplexer@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + resolved "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz" integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== dependencies: jsbn "~0.1.0" @@ -3222,39 +3190,39 @@ ecc-jsbn@~0.1.1: electron-to-chromium@^1.5.263: version "1.5.302" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz#032a5802b31f7119269959c69fe2015d8dad5edb" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz" integrity sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + resolved "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== end-of-stream@^1.1.0: version "1.4.5" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz" integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg== dependencies: once "^1.4.0" enquire.js@^2.1.6: version "2.1.6" - resolved "https://registry.yarnpkg.com/enquire.js/-/enquire.js-2.1.6.tgz#3e8780c9b8b835084c3f60e166dbc3c2a3c89814" + resolved "https://registry.npmjs.org/enquire.js/-/enquire.js-2.1.6.tgz" integrity sha512-/KujNpO+PT63F7Hlpu4h3pE3TokKRHN26JYmQpPyjkRD/N57R7bPDNojMXdi7uveAKjYB7yQnartCxZnFWr0Xw== enquirer@^2.3.6: version "2.4.1" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.4.1.tgz#93334b3fbd74fc7097b224ab4a8fb7e40bf4ae56" + resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz" integrity sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ== dependencies: ansi-colors "^4.1.1" @@ -3262,29 +3230,29 @@ enquirer@^2.3.6: entities@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== entities@^4.2.0, entities@^4.4.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" + resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== env-paths@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== error-ex@^1.3.1: version "1.3.4" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.4.tgz#b3a8d8bb6f92eecc1629e3e27d3c8607a8a32414" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz" integrity sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ== dependencies: is-arrayish "^0.2.1" es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23.5, es-abstract@^1.23.6, es-abstract@^1.23.9, es-abstract@^1.24.0, es-abstract@^1.24.1: version "1.24.1" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.24.1.tgz#f0c131ed5ea1bb2411134a8dd94def09c46c7899" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.1.tgz" integrity sha512-zHXBLhP+QehSSbsS9Pt23Gg964240DPd6QCf8WpkqEXxQ7fhdZzYsocOr5u7apWonsS5EjZDmTF+/slGMyasvw== dependencies: array-buffer-byte-length "^1.0.2" @@ -3344,17 +3312,17 @@ es-abstract@^1.17.5, es-abstract@^1.23.2, es-abstract@^1.23.3, es-abstract@^1.23 es-define-property@^1.0.0, es-define-property@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz" integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== es-errors@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== es-iterator-helpers@^1.2.1: version "1.2.2" - resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz#d979a9f686e2b0b72f88dbead7229924544720bc" + resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.2.tgz" integrity sha512-BrUQ0cPTB/IwXj23HtwHjS9n7O4h9FX94b4xc5zlTHxeLgTAdzYUDyy6KdExAl9lbN5rtfe44xpjpmj9grxs5w== dependencies: call-bind "^1.0.8" @@ -3376,14 +3344,14 @@ es-iterator-helpers@^1.2.1: es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz" integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: es-errors "^1.3.0" es-set-tostringtag@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: es-errors "^1.3.0" @@ -3393,14 +3361,14 @@ es-set-tostringtag@^2.1.0: es-shim-unscopables@^1.0.2, es-shim-unscopables@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz#438df35520dac5d105f3943d927549ea3b00f4b5" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz" integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== dependencies: hasown "^2.0.2" es-to-primitive@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz#96c89c82cc49fd8794a24835ba3e1ff87f214e18" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz" integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== dependencies: is-callable "^1.2.7" @@ -3409,22 +3377,22 @@ es-to-primitive@^1.3.0: escalade@^3.1.1, escalade@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz" integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escodegen@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" + resolved "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz" integrity sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w== dependencies: esprima "^4.0.1" @@ -3435,7 +3403,7 @@ escodegen@^2.1.0: eslint-config-next@^15.4.4: version "15.5.12" - resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-15.5.12.tgz#63cc156664dcbcb9a2ea04a3e74c3330a6d6a3f9" + resolved "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-15.5.12.tgz" integrity sha512-ktW3XLfd+ztEltY5scJNjxjHwtKWk6vU2iwzZqSN09UsbBmMeE/cVlJ1yESg6Yx5LW7p/Z8WzUAgYXGLEmGIpg== dependencies: "@next/eslint-plugin-next" "15.5.12" @@ -3451,7 +3419,7 @@ eslint-config-next@^15.4.4: eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.9: version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" @@ -3460,7 +3428,7 @@ eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.9: eslint-import-resolver-typescript@^3.5.2: version "3.10.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz#23dac32efa86a88e2b8232eb244ac499ad636db2" + resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.10.1.tgz" integrity sha512-A1rHYb06zjMGAxdLSkN2fXPBwuSaQ0iO5M/hdyS0Ajj1VBaRp0sPD3dn1FhME3c/JluGFbwSxyCfqdSbtQLAHQ== dependencies: "@nolyfill/is-core-module" "1.0.39" @@ -3473,14 +3441,14 @@ eslint-import-resolver-typescript@^3.5.2: eslint-module-utils@^2.12.1: version "2.12.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz#f76d3220bfb83c057651359295ab5854eaad75ff" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz" integrity sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw== dependencies: debug "^3.2.7" eslint-plugin-import@^2.31.0: version "2.32.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz#602b55faa6e4caeaa5e970c198b5c00a37708980" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz" integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== dependencies: "@rtsao/scc" "^1.1.0" @@ -3505,7 +3473,7 @@ eslint-plugin-import@^2.31.0: eslint-plugin-jsx-a11y@^6.10.0: version "6.10.2" - resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz#d2812bb23bf1ab4665f1718ea442e8372e638483" + resolved "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.2.tgz" integrity sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q== dependencies: aria-query "^5.3.2" @@ -3526,12 +3494,12 @@ eslint-plugin-jsx-a11y@^6.10.0: eslint-plugin-react-hooks@^5.0.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz#1be0080901e6ac31ce7971beed3d3ec0a423d9e3" + resolved "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz" integrity sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg== eslint-plugin-react@^7.37.0: version "7.37.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz#2975511472bdda1b272b34d779335c9b0e877065" + resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz" integrity sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA== dependencies: array-includes "^3.1.8" @@ -3555,12 +3523,12 @@ eslint-plugin-react@^7.37.0: eslint-plugin-simple-import-sort@^12.1.1: version "12.1.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz#e64bfdaf91c5b98a298619aa634a9f7aa43b709e" + resolved "https://registry.npmjs.org/eslint-plugin-simple-import-sort/-/eslint-plugin-simple-import-sort-12.1.1.tgz" integrity sha512-6nuzu4xwQtE3332Uz0to+TxDQYRLTKRESSc2hefVT48Zc8JthmN23Gx9lnYhu0FtkRSL1oxny3kJ2aveVhmOVA== eslint-scope@^8.4.0: version "8.4.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.4.0.tgz#88e646a207fad61436ffa39eb505147200655c82" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz" integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== dependencies: esrecurse "^4.3.0" @@ -3568,22 +3536,22 @@ eslint-scope@^8.4.0: eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint-visitor-keys@^4.2.1: version "4.2.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz" integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== eslint-visitor-keys@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz#9e3c9489697824d2d4ce3a8ad12628f91e9f59be" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz" integrity sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA== eslint@^9.32.0: version "9.39.3" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.39.3.tgz#08d63df1533d7743c0907b32a79a7e134e63ee2f" + resolved "https://registry.npmjs.org/eslint/-/eslint-9.39.3.tgz" integrity sha512-VmQ+sifHUbI/IcSopBCF/HO3YiHQx/AVd3UVyYL6weuwW+HvON9VYn5l6Zl1WZzPWXPNZrSQpxwkkZ/VuvJZzg== dependencies: "@eslint-community/eslint-utils" "^4.8.0" @@ -3623,7 +3591,7 @@ eslint@^9.32.0: espree@^10.0.1, espree@^10.4.0: version "10.4.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-10.4.0.tgz#d54f4949d4629005a1fa168d937c3ff1f7e2a837" + resolved "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz" integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== dependencies: acorn "^8.15.0" @@ -3632,36 +3600,36 @@ espree@^10.0.1, espree@^10.4.0: esprima@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.5.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.7.0.tgz#08d048f261f0ddedb5bae95f46809463d9c9496d" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz" integrity sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== event-stream@=3.3.4: version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + resolved "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz" integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== dependencies: duplexer "~0.1.1" @@ -3674,19 +3642,19 @@ event-stream@=3.3.4: eventemitter2@6.4.7: version "6.4.7" - resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" + resolved "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.7.tgz" integrity sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg== events-universal@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/events-universal/-/events-universal-1.0.1.tgz#b56a84fd611b6610e0a2d0f09f80fdf931e2dfe6" + resolved "https://registry.npmjs.org/events-universal/-/events-universal-1.0.1.tgz" integrity sha512-LUd5euvbMLpwOF8m6ivPCbhQeSiYVNb8Vs0fQ8QjXo0JTkEHpz8pxdQf0gStltaPpw0Cca8b39KxvK9cfKRiAw== dependencies: bare-events "^2.7.0" execa@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" @@ -3701,7 +3669,7 @@ execa@4.1.0: execa@5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -3716,19 +3684,19 @@ execa@5.1.1: executable@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/executable/-/executable-4.1.1.tgz#41532bff361d3e57af4d763b70582db18f5d133c" + resolved "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz" integrity sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg== dependencies: pify "^2.2.0" extend@^3.0.0, extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== extract-zip@2.0.1, extract-zip@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz#663dca56fe46df890d5f131ef4a06d22bb8ba13a" + resolved "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz" integrity sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg== dependencies: debug "^4.1.1" @@ -3737,29 +3705,24 @@ extract-zip@2.0.1, extract-zip@^2.0.1: optionalDependencies: "@types/yauzl" "^2.9.1" -extsprintf@1.3.0: +extsprintf@1.3.0, extsprintf@^1.2.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== -extsprintf@^1.2.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" - integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== - fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-fifo@^1.2.0, fast-fifo@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== fast-glob@3.3.1: version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -3770,57 +3733,57 @@ fast-glob@3.3.1: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fastq@^1.6.0: version "1.20.1" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.20.1.tgz#ca750a10dc925bc8b18839fd203e3ef4b3ced675" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz" integrity sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw== dependencies: reusify "^1.0.4" fd-slicer@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" + resolved "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz" integrity sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g== dependencies: pend "~1.2.0" fdir@^6.5.0: version "6.5.0" - resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.5.0.tgz#ed2ab967a331ade62f18d077dae192684d50d350" + resolved "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz" integrity sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg== figures@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz" integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: flat-cache "^4.0.0" fill-range@^7.1.1: version "7.1.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz" integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-cache-dir@^3.3.1: version "3.3.2" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" @@ -3829,7 +3792,7 @@ find-cache-dir@^3.3.1: find-up@6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" + resolved "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz" integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== dependencies: locate-path "^7.1.0" @@ -3837,7 +3800,7 @@ find-up@6.3.0: find-up@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -3845,7 +3808,7 @@ find-up@^4.0.0: find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -3853,7 +3816,7 @@ find-up@^5.0.0: flat-cache@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz" integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" @@ -3861,29 +3824,29 @@ flat-cache@^4.0.0: flatted@^3.2.9: version "3.3.3" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.3.tgz#67c8fad95454a7c7abebf74bb78ee74a44023358" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz" integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== follow-redirects@^1.15.11: version "1.15.11" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.11.tgz#777d73d72a92f8ec4d2e410eb47352a56b8e8340" + resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz" integrity sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ== for-each@^0.3.3, for-each@^0.3.5: version "0.3.5" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.5.tgz#d650688027826920feeb0af747ee7b9421a41d47" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz" integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== dependencies: is-callable "^1.2.7" forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + resolved "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz" integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== form-data@^4.0.5, form-data@~4.0.4: version "4.0.5" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz" integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== dependencies: asynckit "^0.4.0" @@ -3894,12 +3857,12 @@ form-data@^4.0.5, form-data@~4.0.4: from@~0: version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + resolved "https://registry.npmjs.org/from/-/from-0.1.7.tgz" integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== fs-extra@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz" integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" @@ -3909,7 +3872,7 @@ fs-extra@^9.1.0: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: @@ -3919,12 +3882,12 @@ fsevents@~2.3.2: function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: version "1.1.8" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz#e68e1df7b259a5c949eeef95cdbde53edffabb78" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz" integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== dependencies: call-bind "^1.0.8" @@ -3936,22 +3899,22 @@ function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== generator-function@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/generator-function/-/generator-function-2.0.1.tgz#0e75dd410d1243687a0ba2e951b94eedb8f737a2" + resolved "https://registry.npmjs.org/generator-function/-/generator-function-2.0.1.tgz" integrity sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== geoip-lite@1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/geoip-lite/-/geoip-lite-1.4.2.tgz#f41dc50086cce3bc31a6d2d578cad1c37f9f17b3" + resolved "https://registry.npmjs.org/geoip-lite/-/geoip-lite-1.4.2.tgz" integrity sha512-1rUNqar68+ldSSlSMdpLZPAM+NRokIDzB2lpQFRHSOaDVqtmy25jTAWe0lM2GqWFeaA35RiLhF8GF0vvL+qOKA== dependencies: async "^2.1.1" @@ -3964,12 +3927,12 @@ geoip-lite@1.4.2: get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: call-bind-apply-helpers "^1.0.2" @@ -3985,7 +3948,7 @@ get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@ get-proto@^1.0.0, get-proto@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + resolved "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz" integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== dependencies: dunder-proto "^1.0.1" @@ -3993,19 +3956,19 @@ get-proto@^1.0.0, get-proto@^1.0.1: get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-stream@^6.0.0: version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz#7bdd54e0befe8ffc9f3b4e203220d9f1e881b6ee" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz" integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== dependencies: call-bound "^1.0.3" @@ -4014,14 +3977,14 @@ get-symbol-description@^1.1.0: get-tsconfig@^4.10.0: version "4.13.6" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.13.6.tgz#2fbfda558a98a691a798f123afd95915badce876" + resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.6.tgz" integrity sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw== dependencies: resolve-pkg-maps "^1.0.0" get-uri@^6.0.1: version "6.0.5" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.5.tgz#714892aa4a871db671abc5395e5e9447bc306a16" + resolved "https://registry.npmjs.org/get-uri/-/get-uri-6.0.5.tgz" integrity sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg== dependencies: basic-ftp "^5.0.2" @@ -4030,35 +3993,35 @@ get-uri@^6.0.1: getos@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" + resolved "https://registry.npmjs.org/getos/-/getos-3.2.1.tgz" integrity sha512-U56CfOK17OKgTVqozZjUKNdkfEv6jk5WISBJ8SHoagjE6L69zOwl3Z+O8myjY9MEW3i2HPWQBt/LTbCgcC973Q== dependencies: async "^3.2.0" getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== dependencies: assert-plus "^1.0.0" glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@^7.1.3: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -4070,19 +4033,19 @@ glob@^7.1.3: global-dirs@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz" integrity sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA== dependencies: ini "2.0.0" globals@^14.0.0: version "14.0.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e" + resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz" integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== globalthis@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.4.tgz#7430ed3a975d97bfb59bcce41f5cabbafa651236" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== dependencies: define-properties "^1.2.1" @@ -4090,53 +4053,53 @@ globalthis@^1.0.4: gopd@^1.0.1, gopd@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz" integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== has-bigints@^1.0.2: version "1.1.0" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.1.0.tgz#28607e965ac967e03cd2a2c70a2636a1edad49fe" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz" integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz#963ed7d071dc7bf5f084c5bfbe0d1b6222586854" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: es-define-property "^1.0.0" has-proto@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.2.0.tgz#5de5a6eabd95fdffd9818b43055e8065e39fe9d5" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz" integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== dependencies: dunder-proto "^1.0.0" has-symbols@^1.0.3, has-symbols@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz" integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== has-tostringtag@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: has-symbols "^1.0.3" hasha@5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + resolved "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz" integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== dependencies: is-stream "^2.0.0" @@ -4144,14 +4107,14 @@ hasha@5.2.2: hasown@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" hast-util-from-parse5@^7.0.0: version "7.1.2" - resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz#aecfef73e3ceafdfa4550716443e4eb7b02e22b0" + resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz" integrity sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw== dependencies: "@types/hast" "^2.0.0" @@ -4164,14 +4127,14 @@ hast-util-from-parse5@^7.0.0: hast-util-parse-selector@^3.0.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz#25ab00ae9e75cbc62cf7a901f68a247eade659e2" + resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz" integrity sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA== dependencies: "@types/hast" "^2.0.0" hast-util-raw@^7.2.0: version "7.2.3" - resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-7.2.3.tgz#dcb5b22a22073436dbdc4aa09660a644f4991d99" + resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz" integrity sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg== dependencies: "@types/hast" "^2.0.0" @@ -4188,7 +4151,7 @@ hast-util-raw@^7.2.0: hast-util-to-parse5@^7.0.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz#c49391bf8f151973e0c9adcd116b561e8daf29f3" + resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz" integrity sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw== dependencies: "@types/hast" "^2.0.0" @@ -4200,12 +4163,12 @@ hast-util-to-parse5@^7.0.0: hast-util-whitespace@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz" integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== hastscript@^7.0.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-7.2.0.tgz#0eafb7afb153d047077fa2a833dc9b7ec604d10b" + resolved "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz" integrity sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw== dependencies: "@types/hast" "^2.0.0" @@ -4216,24 +4179,24 @@ hastscript@^7.0.0: he@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== hoist-non-react-statics@^3.2.0, hoist-non-react-statics@^3.3.0, hoist-non-react-statics@^3.3.2: version "3.3.2" - resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + resolved "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz" integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== dependencies: react-is "^16.7.0" html-void-elements@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f" + resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz" integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== html2canvas@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/html2canvas/-/html2canvas-1.4.1.tgz#7cef1888311b5011d507794a066041b14669a543" + resolved "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz" integrity sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA== dependencies: css-line-break "^2.1.0" @@ -4241,7 +4204,7 @@ html2canvas@^1.4.1: http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: version "7.0.2" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz#9a8b1f246866c028509486585f62b8f2c18c270e" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz" integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== dependencies: agent-base "^7.1.0" @@ -4249,7 +4212,7 @@ http-proxy-agent@^7.0.0, http-proxy-agent@^7.0.1: http-signature@~1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.4.0.tgz#dee5a9ba2bf49416abc544abd6d967f6a94c8c3f" + resolved "https://registry.npmjs.org/http-signature/-/http-signature-1.4.0.tgz" integrity sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg== dependencies: assert-plus "^1.0.0" @@ -4258,7 +4221,7 @@ http-signature@~1.4.0: https-proxy-agent@^7.0.6: version "7.0.6" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz" integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: agent-base "^7.1.2" @@ -4266,49 +4229,49 @@ https-proxy-agent@^7.0.6: human-signals@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== husky@^9.1.7: version "9.1.7" - resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" + resolved "https://registry.npmjs.org/husky/-/husky-9.1.7.tgz" integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== hyphenate-style-name@^1.0.3: version "1.1.0" - resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz#1797bf50369588b47b72ca6d5e65374607cf4436" + resolved "https://registry.npmjs.org/hyphenate-style-name/-/hyphenate-style-name-1.1.0.tgz" integrity sha512-WDC/ui2VVRrz3jOVi+XtjqkDjiVjTtFaAGiW37k6b+ohyQ5wYDOGkvCZa8+H0nx3gyvv0+BST9xuOgIyGQ00gw== iconv-lite@^0.4.13: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" ieee754@^1.1.13: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^5.2.0: version "5.3.2" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz" integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== ignore@^7.0.5: version "7.0.5" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-7.0.5.tgz#4cb5f6cd7d4c7ab0365738c7aea888baa6d7efd9" + resolved "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz" integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz" integrity sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ== dependencies: parent-module "^1.0.0" @@ -4316,17 +4279,17 @@ import-fresh@^3.2.1, import-fresh@^3.3.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -4334,22 +4297,22 @@ inflight@^1.0.4: inherits@2: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" + resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== inline-style-parser@0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz" integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== internal-slot@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.1.0.tgz#1eac91762947d2f7056bc838d93e13b2e9604961" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz" integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== dependencies: es-errors "^1.3.0" @@ -4358,12 +4321,12 @@ internal-slot@^1.1.0: ip-address@^10.0.1: version "10.1.0" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.1.0.tgz#d8dcffb34d0e02eb241427444a6e23f5b0595aa4" + resolved "https://registry.npmjs.org/ip-address/-/ip-address-10.1.0.tgz" integrity sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q== ip-address@^5.8.9: version "5.9.4" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-5.9.4.tgz#4660ac261ad61bd397a860a007f7e98e4eaee386" + resolved "https://registry.npmjs.org/ip-address/-/ip-address-5.9.4.tgz" integrity sha512-dHkI3/YNJq4b/qQaz+c8LuarD3pY24JqZWfjB8aZx1gtpc2MDILu9L9jpZe1sHpzo/yWFweQVn+U//FhazUxmw== dependencies: jsbn "1.1.0" @@ -4372,7 +4335,7 @@ ip-address@^5.8.9: is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: version "3.0.5" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz#65742e1e687bd2cc666253068fd8707fe4d44280" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz" integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== dependencies: call-bind "^1.0.8" @@ -4381,17 +4344,17 @@ is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-arrayish@^0.3.1: version "0.3.4" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.4.tgz#1ee5553818511915685d33bb13d31bf854e5059d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz" integrity sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA== is-async-function@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.1.1.tgz#3e69018c8e04e73b738793d020bfe884b9fd3523" + resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz" integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== dependencies: async-function "^1.0.0" @@ -4402,21 +4365,21 @@ is-async-function@^2.0.0: is-bigint@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.1.0.tgz#dda7a3445df57a42583db4228682eba7c4170672" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz" integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== dependencies: has-bigints "^1.0.2" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.2.1: version "1.2.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz#7067f47709809a393c71ff5bb3e135d8a9215d9e" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz" integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== dependencies: call-bound "^1.0.3" @@ -4424,31 +4387,31 @@ is-boolean-object@^1.2.1: is-buffer@^2.0.0: version "2.0.5" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" + resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== is-bun-module@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-bun-module/-/is-bun-module-2.0.0.tgz#4d7859a87c0fcac950c95e666730e745eae8bddd" + resolved "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz" integrity sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ== dependencies: semver "^7.7.1" is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.13.0, is-core-module@^2.16.1: version "2.16.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" is-data-view@^1.0.1, is-data-view@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-data-view/-/is-data-view-1.0.2.tgz#bae0a41b9688986c2188dda6657e56b8f9e63b8e" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz" integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== dependencies: call-bound "^1.0.2" @@ -4457,7 +4420,7 @@ is-data-view@^1.0.1, is-data-view@^1.0.2: is-date-object@^1.0.5, is-date-object@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.1.0.tgz#ad85541996fc7aa8b2729701d27b7319f95d82f7" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz" integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== dependencies: call-bound "^1.0.2" @@ -4465,24 +4428,24 @@ is-date-object@^1.0.5, is-date-object@^1.1.0: is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-finalizationregistry@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz#eefdcdc6c94ddd0674d9c85887bf93f944a97c90" + resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz" integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== dependencies: call-bound "^1.0.3" is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-generator-function@^1.0.10: version "1.1.2" - resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.1.2.tgz#ae3b61e3d5ea4e4839b90bad22b02335051a17d5" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.2.tgz" integrity sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA== dependencies: call-bound "^1.0.4" @@ -4493,19 +4456,19 @@ is-generator-function@^1.0.10: is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-in-browser@^1.0.2, is-in-browser@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/is-in-browser/-/is-in-browser-1.1.3.tgz#56ff4db683a078c6082eb95dad7dc62e1d04f835" + resolved "https://registry.npmjs.org/is-in-browser/-/is-in-browser-1.1.3.tgz" integrity sha512-FeXIBgG/CPGd/WUxuEyvgGTEfwiG9Z4EKGxjNMRqviiIIfsmgrpnHLffEDdwUHqNva1VEW91o3xBT/m8Elgl9g== is-installed-globally@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.4.0.tgz#9a0fd407949c30f86eb6959ef1b7994ed0b7b520" + resolved "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.4.0.tgz" integrity sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ== dependencies: global-dirs "^3.0.0" @@ -4513,17 +4476,17 @@ is-installed-globally@~0.4.0: is-map@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.3.tgz#ede96b7fe1e270b3c4465e3a465658764926d62e" + resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz" integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== is-negative-zero@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.3.tgz#ced903a027aca6381b777a5743069d7376a49747" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz" integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-number-object@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.1.1.tgz#144b21e95a1bc148205dcc2814a9134ec41b2541" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz" integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== dependencies: call-bound "^1.0.3" @@ -4531,22 +4494,22 @@ is-number-object@^1.1.1: is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-inside@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-4.1.0.tgz#d65025edec3657ce032fd7db63c97883eaed71f0" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" integrity sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg== is-regex@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.2.1.tgz#76d70a3ed10ef9be48eb577887d74205bf0cad22" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz" integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== dependencies: call-bound "^1.0.2" @@ -4556,24 +4519,24 @@ is-regex@^1.2.1: is-set@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.3.tgz#8ab209ea424608141372ded6e0cb200ef1d9d01d" + resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz" integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== is-shared-array-buffer@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz#9b67844bd9b7f246ba0708c3a93e34269c774f6f" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz" integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== dependencies: call-bound "^1.0.3" is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.1.1.tgz#92ea3f3d5c5b6e039ca8677e5ac8d07ea773cbb9" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz" integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== dependencies: call-bound "^1.0.3" @@ -4581,7 +4544,7 @@ is-string@^1.1.1: is-symbol@^1.0.4, is-symbol@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.1.1.tgz#f47761279f532e2b05a7024a7506dbbedacd0634" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz" integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== dependencies: call-bound "^1.0.2" @@ -4590,36 +4553,36 @@ is-symbol@^1.0.4, is-symbol@^1.1.1: is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: version "1.1.15" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz" integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== dependencies: which-typed-array "^1.1.16" is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-weakmap@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.2.tgz#bf72615d649dfe5f699079c54b83e47d1ae19cfd" + resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz" integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== is-weakref@^1.0.2, is-weakref@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.1.1.tgz#eea430182be8d64174bd96bffbc46f21bf3f9293" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz" integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== dependencies: call-bound "^1.0.3" is-weakset@^2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.4.tgz#c9f5deb0bc1906c6d6f1027f284ddf459249daca" + resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz" integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== dependencies: call-bound "^1.0.3" @@ -4627,22 +4590,22 @@ is-weakset@^2.0.3: isarray@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz" integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== iterator.prototype@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.5.tgz#12c959a29de32de0aa3bbbb801f4d777066dae39" + resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.5.tgz" integrity sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g== dependencies: define-data-property "^1.1.4" @@ -4654,7 +4617,7 @@ iterator.prototype@^1.1.5: joi@^18.0.2: version "18.0.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-18.0.2.tgz#30ced6aed00a7848cc11f92859515258301dc3a4" + resolved "https://registry.npmjs.org/joi/-/joi-18.0.2.tgz" integrity sha512-RuCOQMIt78LWnktPoeBL0GErkNaJPTBGcYuyaBvUOQSpcpcLfWrHPPihYdOGbV5pam9VTWbeoF7TsGiHugcjGA== dependencies: "@hapi/address" "^5.1.1" @@ -4667,93 +4630,93 @@ joi@^18.0.2: jose@^4.11.4, jose@^4.15.9: version "4.15.9" - resolved "https://registry.yarnpkg.com/jose/-/jose-4.15.9.tgz#9b68eda29e9a0614c042fa29387196c7dd800100" + resolved "https://registry.npmjs.org/jose/-/jose-4.15.9.tgz" integrity sha512-1vUQX+IdDMVPj4k8kOxgUqlcK518yluMuGZwqlr44FS1ppZB/5GWh4rZG89erpOBOJjU/OBsnCVFfapsRz6nEA== "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^4.1.0, js-yaml@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz" integrity sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA== dependencies: argparse "^2.0.1" jsbn@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-1.1.0.tgz" integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + resolved "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== jsesc@^3.0.2, jsesc@~3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz" integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-logic-js@2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/json-logic-js/-/json-logic-js-2.0.5.tgz#55f0c687dd6f56b02ccdcfdd64171ed998ab5499" + resolved "https://registry.npmjs.org/json-logic-js/-/json-logic-js-2.0.5.tgz" integrity sha512-rTT2+lqcuUmj4DgWfmzupZqQDA64AdmYqizzMPWj3DxGdfFNsxPpcNVSaTj4l8W2tG/+hg7/mQhxjU3aPacO6g== json-parse-even-better-errors@^2.3.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== json2mq@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/json2mq/-/json2mq-0.2.0.tgz#b637bd3ba9eabe122c83e9720483aeb10d2c904a" + resolved "https://registry.npmjs.org/json2mq/-/json2mq-0.2.0.tgz" integrity sha512-SzoRg7ux5DWTII9J2qkrZrqV1gt+rTaoufMxEzXbS26Uid0NwaJd123HcoB80TgubEppxxIGdNxCx50fEoEWQA== dependencies: string-convert "^0.2.0" json5@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" json5@^2.1.2, json5@^2.2.1, json5@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonfile@^6.0.1: version "6.2.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz" integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg== dependencies: universalify "^2.0.0" @@ -4762,7 +4725,7 @@ jsonfile@^6.0.1: jsprim@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" + resolved "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz" integrity sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ== dependencies: assert-plus "1.0.0" @@ -4772,7 +4735,7 @@ jsprim@^2.0.2: jss-plugin-camel-case@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz#27ea159bab67eb4837fa0260204eb7925d4daa1c" + resolved "https://registry.npmjs.org/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz" integrity sha512-z+HETfj5IYgFxh1wJnUAU8jByI48ED+v0fuTuhKrPR+pRBYS2EDwbusU8aFOpCdYhtRc9zhN+PJ7iNE8pAWyPw== dependencies: "@babel/runtime" "^7.3.1" @@ -4781,7 +4744,7 @@ jss-plugin-camel-case@10.10.0: jss-plugin-compose@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-compose/-/jss-plugin-compose-10.10.0.tgz#00d7a79adf7fcfe4927a792febdf0deceb0a7cd2" + resolved "https://registry.npmjs.org/jss-plugin-compose/-/jss-plugin-compose-10.10.0.tgz" integrity sha512-F5kgtWpI2XfZ3Z8eP78tZEYFdgTIbpA/TMuX3a8vwrNolYtN1N4qJR/Ob0LAsqIwCMLojtxN7c7Oo/+Vz6THow== dependencies: "@babel/runtime" "^7.3.1" @@ -4790,7 +4753,7 @@ jss-plugin-compose@10.10.0: jss-plugin-default-unit@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz#db3925cf6a07f8e1dd459549d9c8aadff9804293" + resolved "https://registry.npmjs.org/jss-plugin-default-unit/-/jss-plugin-default-unit-10.10.0.tgz" integrity sha512-SvpajxIECi4JDUbGLefvNckmI+c2VWmP43qnEy/0eiwzRUsafg5DVSIWSzZe4d2vFX1u9nRDP46WCFV/PXVBGQ== dependencies: "@babel/runtime" "^7.3.1" @@ -4798,7 +4761,7 @@ jss-plugin-default-unit@10.10.0: jss-plugin-expand@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-expand/-/jss-plugin-expand-10.10.0.tgz#5debd80554174ca2d9b9e38d85d4cb6f3e0393ab" + resolved "https://registry.npmjs.org/jss-plugin-expand/-/jss-plugin-expand-10.10.0.tgz" integrity sha512-ymT62W2OyDxBxr7A6JR87vVX9vTq2ep5jZLIdUSusfBIEENLdkkc0lL/Xaq8W9s3opUq7R0sZQpzRWELrfVYzA== dependencies: "@babel/runtime" "^7.3.1" @@ -4806,7 +4769,7 @@ jss-plugin-expand@10.10.0: jss-plugin-extend@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-extend/-/jss-plugin-extend-10.10.0.tgz#94eb450847a8941777e77ea4533a579c1c578430" + resolved "https://registry.npmjs.org/jss-plugin-extend/-/jss-plugin-extend-10.10.0.tgz" integrity sha512-sKYrcMfr4xxigmIwqTjxNcHwXJIfvhvjTNxF+Tbc1NmNdyspGW47Ey6sGH8BcQ4FFQhLXctpWCQSpDwdNmXSwg== dependencies: "@babel/runtime" "^7.3.1" @@ -4815,7 +4778,7 @@ jss-plugin-extend@10.10.0: jss-plugin-global@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz#1c55d3c35821fab67a538a38918292fc9c567efd" + resolved "https://registry.npmjs.org/jss-plugin-global/-/jss-plugin-global-10.10.0.tgz" integrity sha512-icXEYbMufiNuWfuazLeN+BNJO16Ge88OcXU5ZDC2vLqElmMybA31Wi7lZ3lf+vgufRocvPj8443irhYRgWxP+A== dependencies: "@babel/runtime" "^7.3.1" @@ -4823,7 +4786,7 @@ jss-plugin-global@10.10.0: jss-plugin-nested@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz#db872ed8925688806e77f1fc87f6e62264513219" + resolved "https://registry.npmjs.org/jss-plugin-nested/-/jss-plugin-nested-10.10.0.tgz" integrity sha512-9R4JHxxGgiZhurDo3q7LdIiDEgtA1bTGzAbhSPyIOWb7ZubrjQe8acwhEQ6OEKydzpl8XHMtTnEwHXCARLYqYA== dependencies: "@babel/runtime" "^7.3.1" @@ -4832,7 +4795,7 @@ jss-plugin-nested@10.10.0: jss-plugin-props-sort@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz#67f4dd4c70830c126f4ec49b4b37ccddb680a5d7" + resolved "https://registry.npmjs.org/jss-plugin-props-sort/-/jss-plugin-props-sort-10.10.0.tgz" integrity sha512-5VNJvQJbnq/vRfje6uZLe/FyaOpzP/IH1LP+0fr88QamVrGJa0hpRRyAa0ea4U/3LcorJfBFVyC4yN2QC73lJg== dependencies: "@babel/runtime" "^7.3.1" @@ -4840,7 +4803,7 @@ jss-plugin-props-sort@10.10.0: jss-plugin-rule-value-function@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz#7d99e3229e78a3712f78ba50ab342e881d26a24b" + resolved "https://registry.npmjs.org/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.10.0.tgz" integrity sha512-uEFJFgaCtkXeIPgki8ICw3Y7VMkL9GEan6SqmT9tqpwM+/t+hxfMUdU4wQ0MtOiMNWhwnckBV0IebrKcZM9C0g== dependencies: "@babel/runtime" "^7.3.1" @@ -4849,7 +4812,7 @@ jss-plugin-rule-value-function@10.10.0: jss-plugin-rule-value-observable@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-rule-value-observable/-/jss-plugin-rule-value-observable-10.10.0.tgz#d17b28c4401156bbe4cd0c4a73a80aad70613e8b" + resolved "https://registry.npmjs.org/jss-plugin-rule-value-observable/-/jss-plugin-rule-value-observable-10.10.0.tgz" integrity sha512-ZLMaYrR3QE+vD7nl3oNXuj79VZl9Kp8/u6A1IbTPDcuOu8b56cFdWRZNZ0vNr8jHewooEeq2doy8Oxtymr2ZPA== dependencies: "@babel/runtime" "^7.3.1" @@ -4858,7 +4821,7 @@ jss-plugin-rule-value-observable@10.10.0: jss-plugin-template@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-template/-/jss-plugin-template-10.10.0.tgz#072cda74a94c91b02d3a895d9e2408fd978ce033" + resolved "https://registry.npmjs.org/jss-plugin-template/-/jss-plugin-template-10.10.0.tgz" integrity sha512-ocXZBIOJOA+jISPdsgkTs8wwpK6UbsvtZK5JI7VUggTD6LWKbtoxUzadd2TpfF+lEtlhUmMsCkTRNkITdPKa6w== dependencies: "@babel/runtime" "^7.3.1" @@ -4867,7 +4830,7 @@ jss-plugin-template@10.10.0: jss-plugin-vendor-prefixer@10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz#c01428ef5a89f2b128ec0af87a314d0c767931c7" + resolved "https://registry.npmjs.org/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.10.0.tgz" integrity sha512-UY/41WumgjW8r1qMCO8l1ARg7NHnfRVWRhZ2E2m0DMYsr2DD91qIXLyNhiX83hHswR7Wm4D+oDYNC1zWCJWtqg== dependencies: "@babel/runtime" "^7.3.1" @@ -4876,7 +4839,7 @@ jss-plugin-vendor-prefixer@10.10.0: jss-preset-default@10.10.0, jss-preset-default@^10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss-preset-default/-/jss-preset-default-10.10.0.tgz#c8209449a0f6d232526c2ba3a3a6ec69ee97e023" + resolved "https://registry.npmjs.org/jss-preset-default/-/jss-preset-default-10.10.0.tgz" integrity sha512-GL175Wt2FGhjE+f+Y3aWh+JioL06/QWFgZp53CbNNq6ZkVU0TDplD8Bxm9KnkotAYn3FlplNqoW5CjyLXcoJ7Q== dependencies: "@babel/runtime" "^7.3.1" @@ -4896,7 +4859,7 @@ jss-preset-default@10.10.0, jss-preset-default@^10.10.0: jss@10.10.0, jss@^10.10.0: version "10.10.0" - resolved "https://registry.yarnpkg.com/jss/-/jss-10.10.0.tgz#a75cc85b0108c7ac8c7b7d296c520a3e4fbc6ccc" + resolved "https://registry.npmjs.org/jss/-/jss-10.10.0.tgz" integrity sha512-cqsOTS7jqPsPMjtKYDUpdFC0AbhYFLTcuGRqymgmdJIeQ8cH7+AgX7YSgQy79wXloZq2VvATYxUOUQEvS1V/Zw== dependencies: "@babel/runtime" "^7.3.1" @@ -4906,7 +4869,7 @@ jss@10.10.0, jss@^10.10.0: "jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: version "3.3.5" - resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== dependencies: array-includes "^3.1.6" @@ -4916,46 +4879,46 @@ jss@10.10.0, jss@^10.10.0: keyv@^4.5.4: version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kleur@^4.0.3: version "4.1.5" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" + resolved "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== klona@^2.0.4: version "2.0.6" - resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" + resolved "https://registry.npmjs.org/klona/-/klona-2.0.6.tgz" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== language-subtag-registry@^0.3.20: version "0.3.23" - resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz#23529e04d9e3b74679d70142df3fd2eb6ec572e7" + resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz" integrity sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ== language-tags@^1.0.9: version "1.0.9" - resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + resolved "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz" integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== dependencies: language-subtag-registry "^0.3.20" lazy-ass@1.6.0, lazy-ass@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/lazy-ass/-/lazy-ass-1.6.0.tgz#7999655e8646c17f089fdd187d150d3324d54513" + resolved "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz" integrity sha512-cc8oEVoctTvsFZ/Oje/kGnHbpWHYBe8IAJe4C0QNc3t8uM/0Y8+erSz/7Y1ALuXTEZTMvxXwO6YbX1ey3ujiZw== lazy@^1.0.11: version "1.0.11" - resolved "https://registry.yarnpkg.com/lazy/-/lazy-1.0.11.tgz#daa068206282542c088288e975c297c1ae77b690" + resolved "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz" integrity sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA== levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -4963,12 +4926,12 @@ levn@^0.4.1: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== listr2@^3.8.3: version "3.14.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-3.14.0.tgz#23101cc62e1375fd5836b248276d1d2b51fdbe9e" + resolved "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz" integrity sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g== dependencies: cli-truncate "^2.1.0" @@ -4982,7 +4945,7 @@ listr2@^3.8.3: loader-utils@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.4.tgz#8b5cb38b5c34a9a018ee1fc0e6a066d1dfcc528c" + resolved "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz" integrity sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw== dependencies: big.js "^5.2.2" @@ -4991,53 +4954,53 @@ loader-utils@^2.0.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" locate-path@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-7.2.0.tgz#69cb1779bd90b35ab1e771e1f2f89a202c2a8a8a" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz" integrity sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA== dependencies: p-locate "^6.0.0" lodash.debounce@4.0.8, lodash.debounce@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz" integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.once@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.once/-/lodash.once-4.1.1.tgz#0dd3971213c7c56df880977d504c88fb471a97ac" + resolved "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz" integrity sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg== lodash.unescape@4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.unescape/-/lodash.unescape-4.0.1.tgz#bf2249886ce514cda112fae9218cdc065211fc9c" + resolved "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz" integrity sha512-DhhGRshNS1aX6s5YdBE3njCCouPgnG29ebyHvImlZzXZf2SHgt+J08DHgytTPnpywNbO1Y8mNUFyQuIDBq2JZg== lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.23: version "4.17.23" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz" integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== log-symbols@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -5045,7 +5008,7 @@ log-symbols@^4.0.0: log-update@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-4.0.0.tgz#589ecd352471f2a1c0c570287543a64dfd20e0a1" + resolved "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz" integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== dependencies: ansi-escapes "^4.3.0" @@ -5055,62 +5018,62 @@ log-update@^4.0.0: loose-envify@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== dependencies: js-tokens "^3.0.0 || ^4.0.0" lower-case@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: tslib "^2.0.3" lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" lru-cache@^7.14.1: version "7.18.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== map-stream@~0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + resolved "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz" integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== math-intrinsics@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + resolved "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz" integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== mdast-util-definitions@^5.0.0: version "5.1.2" - resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + resolved "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz" integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== dependencies: "@types/mdast" "^3.0.0" @@ -5119,7 +5082,7 @@ mdast-util-definitions@^5.0.0: mdast-util-from-markdown@^1.0.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz" integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== dependencies: "@types/mdast" "^3.0.0" @@ -5137,7 +5100,7 @@ mdast-util-from-markdown@^1.0.0: mdast-util-to-hast@^12.1.0: version "12.3.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz" integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== dependencies: "@types/hast" "^2.0.0" @@ -5151,39 +5114,39 @@ mdast-util-to-hast@^12.1.0: mdast-util-to-string@^3.1.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + resolved "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz" integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== dependencies: "@types/mdast" "^3.0.0" mdn-data@2.0.28: version "2.0.28" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz" integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== mdn-data@2.0.30: version "2.0.30" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz" integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== memoize-one@^5.1.1: version "5.2.1" - resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.2.1.tgz#8337aa3c4335581839ec01c3d594090cebe8f00e" + resolved "https://registry.npmjs.org/memoize-one/-/memoize-one-5.2.1.tgz" integrity sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q== merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromark-core-commonmark@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz" integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== dependencies: decode-named-character-reference "^1.0.0" @@ -5205,7 +5168,7 @@ micromark-core-commonmark@^1.0.1: micromark-factory-destination@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + resolved "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz" integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== dependencies: micromark-util-character "^1.0.0" @@ -5214,7 +5177,7 @@ micromark-factory-destination@^1.0.0: micromark-factory-label@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + resolved "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz" integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== dependencies: micromark-util-character "^1.0.0" @@ -5224,7 +5187,7 @@ micromark-factory-label@^1.0.0: micromark-factory-space@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + resolved "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz" integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== dependencies: micromark-util-character "^1.0.0" @@ -5232,7 +5195,7 @@ micromark-factory-space@^1.0.0: micromark-factory-title@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + resolved "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz" integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== dependencies: micromark-factory-space "^1.0.0" @@ -5242,7 +5205,7 @@ micromark-factory-title@^1.0.0: micromark-factory-whitespace@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + resolved "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz" integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== dependencies: micromark-factory-space "^1.0.0" @@ -5252,7 +5215,7 @@ micromark-factory-whitespace@^1.0.0: micromark-util-character@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + resolved "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-1.2.0.tgz" integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== dependencies: micromark-util-symbol "^1.0.0" @@ -5260,14 +5223,14 @@ micromark-util-character@^1.0.0: micromark-util-chunked@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + resolved "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz" integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== dependencies: micromark-util-symbol "^1.0.0" micromark-util-classify-character@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + resolved "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz" integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== dependencies: micromark-util-character "^1.0.0" @@ -5276,7 +5239,7 @@ micromark-util-classify-character@^1.0.0: micromark-util-combine-extensions@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + resolved "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz" integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== dependencies: micromark-util-chunked "^1.0.0" @@ -5284,14 +5247,14 @@ micromark-util-combine-extensions@^1.0.0: micromark-util-decode-numeric-character-reference@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + resolved "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz" integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== dependencies: micromark-util-symbol "^1.0.0" micromark-util-decode-string@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + resolved "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz" integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== dependencies: decode-named-character-reference "^1.0.0" @@ -5301,31 +5264,31 @@ micromark-util-decode-string@^1.0.0: micromark-util-encode@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + resolved "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz" integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== micromark-util-html-tag-name@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + resolved "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz" integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== micromark-util-normalize-identifier@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + resolved "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz" integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== dependencies: micromark-util-symbol "^1.0.0" micromark-util-resolve-all@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + resolved "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz" integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== dependencies: micromark-util-types "^1.0.0" micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + resolved "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz" integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== dependencies: micromark-util-character "^1.0.0" @@ -5334,7 +5297,7 @@ micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: micromark-util-subtokenize@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz" integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== dependencies: micromark-util-chunked "^1.0.0" @@ -5344,17 +5307,17 @@ micromark-util-subtokenize@^1.0.0: micromark-util-symbol@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + resolved "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz" integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + resolved "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.1.0.tgz" integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== micromark@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + resolved "https://registry.npmjs.org/micromark/-/micromark-3.2.0.tgz" integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== dependencies: "@types/debug" "^4.0.0" @@ -5377,7 +5340,7 @@ micromark@^3.0.0: micromatch@^4.0.4: version "4.0.8" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz" integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: braces "^3.0.3" @@ -5385,48 +5348,48 @@ micromatch@^4.0.4: mime-db@1.52.0: version "1.52.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12, mime-types@~2.1.19: version "2.1.35" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== minimatch@^10.2.2: version "10.2.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.2.4.tgz#465b3accbd0218b8281f5301e27cedc697f96fde" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz" integrity sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg== dependencies: brace-expansion "^5.0.2" minimatch@^3.1.1, minimatch@^3.1.2, minimatch@^3.1.3: version "3.1.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.5.tgz#580c88f8d5445f2bd6aa8f3cadefa0de79fbd69e" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz" integrity sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w== dependencies: brace-expansion "^1.1.7" minimist@^1.2.0, minimist@^1.2.6, minimist@^1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== mitt@3.0.1, mitt@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" + resolved "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== mixpanel-browser@^2.65.0: version "2.75.0" - resolved "https://registry.yarnpkg.com/mixpanel-browser/-/mixpanel-browser-2.75.0.tgz#2aeb71e84f3d27c1665b23b1a35b44495bf41b29" + resolved "https://registry.npmjs.org/mixpanel-browser/-/mixpanel-browser-2.75.0.tgz" integrity sha512-jii/M8lXgHHgJ922t+lvUPSuzYEnME1WlXr2Okak6XdZ1WlTv/L2EOnCWAyM750zoHA6kbJIN2XswoGLnaLPnw== dependencies: "@mixpanel/rrweb" "2.0.0-alpha.18.3" @@ -5435,42 +5398,42 @@ mixpanel-browser@^2.65.0: mri@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== ms@^2.1.1, ms@^2.1.3: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== nanoid@^3.3.11, nanoid@^3.3.6: version "3.3.11" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz" integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== napi-postinstall@^0.3.0: version "0.3.4" - resolved "https://registry.yarnpkg.com/napi-postinstall/-/napi-postinstall-0.3.4.tgz#7af256d6588b5f8e952b9190965d6b019653bbb9" + resolved "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz" integrity sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== netmask@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== next-auth@4.23.2: version "4.23.2" - resolved "https://registry.yarnpkg.com/next-auth/-/next-auth-4.23.2.tgz#6a93ec8bb59890dd43ed149a367852c7d12d0f7c" + resolved "https://registry.npmjs.org/next-auth/-/next-auth-4.23.2.tgz" integrity sha512-VRmInu0r/yZNFQheDFeOKtiugu3bt90Po3owAQDnFQ3YLQFmUKgFjcE2+3L0ny5jsJpBXaKbm7j7W2QTc6Ye2A== dependencies: "@babel/runtime" "^7.20.13" @@ -5485,7 +5448,7 @@ next-auth@4.23.2: next@15.0.5: version "15.0.5" - resolved "https://registry.yarnpkg.com/next/-/next-15.0.5.tgz#6f75b4d5c7dda0705171486e180821146816d130" + resolved "https://registry.npmjs.org/next/-/next-15.0.5.tgz" integrity sha512-WTh/Rmxkn4J4vwSYiqEZGzoxjid83iCyN0qg7oJFKzHjYCzy5mwBRqWVlFotM9nAnxGGv5MzbMa4gMu88qeGLA== dependencies: "@next/env" "15.0.5" @@ -5508,7 +5471,7 @@ next@15.0.5: no-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== dependencies: lower-case "^2.0.2" @@ -5516,7 +5479,7 @@ no-case@^3.0.4: node-exports-info@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/node-exports-info/-/node-exports-info-1.6.0.tgz#1aedafb01a966059c9a5e791a94a94d93f5c2a13" + resolved "https://registry.npmjs.org/node-exports-info/-/node-exports-info-1.6.0.tgz" integrity sha512-pyFS63ptit/P5WqUkt+UUfe+4oevH+bFeIiPPdfb0pFeYEu/1ELnJu5l+5EcTKYL5M7zaAa7S8ddywgXypqKCw== dependencies: array.prototype.flatmap "^1.3.3" @@ -5526,7 +5489,7 @@ node-exports-info@^1.6.0: node-html-parser@5.3.3: version "5.3.3" - resolved "https://registry.yarnpkg.com/node-html-parser/-/node-html-parser-5.3.3.tgz#2845704f3a7331a610e0e551bf5fa02b266341b6" + resolved "https://registry.npmjs.org/node-html-parser/-/node-html-parser-5.3.3.tgz" integrity sha512-ncg1033CaX9UexbyA7e1N0aAoAYRDiV8jkTvzEnfd1GDvzFdrsXLzR4p4ik8mwLgnaKP/jyUFWDy9q3jvRT2Jw== dependencies: css-select "^4.2.1" @@ -5534,61 +5497,61 @@ node-html-parser@5.3.3: node-releases@^2.0.27: version "2.0.27" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz" integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== nodemailer@^6.10.0: version "6.10.1" - resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.10.1.tgz#cbc434c54238f83a51c07eabd04e2b3e832da623" + resolved "https://registry.npmjs.org/nodemailer/-/nodemailer-6.10.1.tgz" integrity sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA== normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" nth-check@^2.0.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz" integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== dependencies: boolbase "^1.0.0" oauth@^0.9.15: version "0.9.15" - resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" + resolved "https://registry.npmjs.org/oauth/-/oauth-0.9.15.tgz" integrity sha512-a5ERWK1kh38ExDEfoO6qUHJb32rd7aYmPHuyCu3Fta/cnICvYmgd2uhuKXvPD+PXB+gCEYYEaQdIRAjCOwAKNA== object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-hash@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-2.2.0.tgz#5ad518581eefc443bd763472b8ff2e9c2c0d54a5" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz" integrity sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw== object-inspect@^1.13.3, object-inspect@^1.13.4: version "1.13.4" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz" integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object.assign@^4.1.4, object.assign@^4.1.7: version "4.1.7" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.7.tgz#8c14ca1a424c6a561b0bb2a22f66f5049a945d3d" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz" integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== dependencies: call-bind "^1.0.8" @@ -5600,7 +5563,7 @@ object.assign@^4.1.4, object.assign@^4.1.7: object.entries@^1.1.9: version "1.1.9" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.9.tgz#e4770a6a1444afb61bd39f984018b5bede25f8b3" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.9.tgz" integrity sha512-8u/hfXFRBD1O0hPUjioLhoWFHRmt6tKA4/vZPyckBr18l1KE9uHrFaFaUi8MDRTpi4uak2goyPTSNJLXX2k2Hw== dependencies: call-bind "^1.0.8" @@ -5610,7 +5573,7 @@ object.entries@^1.1.9: object.fromentries@^2.0.8: version "2.0.8" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz" integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: call-bind "^1.0.7" @@ -5620,7 +5583,7 @@ object.fromentries@^2.0.8: object.groupby@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e" + resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz" integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: call-bind "^1.0.7" @@ -5629,7 +5592,7 @@ object.groupby@^1.0.3: object.values@^1.1.6, object.values@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.1.tgz#deed520a50809ff7f75a7cfd4bc64c7a038c6216" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz" integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== dependencies: call-bind "^1.0.8" @@ -5639,26 +5602,26 @@ object.values@^1.1.6, object.values@^1.2.1: oidc-token-hash@^5.0.3: version "5.2.0" - resolved "https://registry.yarnpkg.com/oidc-token-hash/-/oidc-token-hash-5.2.0.tgz#be8a8885c7e2478d21a674e15afa31f1bcc4a61f" + resolved "https://registry.npmjs.org/oidc-token-hash/-/oidc-token-hash-5.2.0.tgz" integrity sha512-6gj2m8cJZ+iSW8bm0FXdGF0YhIQbKrfP4yWTNzxc31U6MOjfEmB1rHvlYvxI1B7t7BCi1F2vYTT6YhtQRG4hxw== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" openid-client@^5.4.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/openid-client/-/openid-client-5.7.1.tgz#34cace862a3e6472ed7d0a8616ef73b7fb85a9c3" + resolved "https://registry.npmjs.org/openid-client/-/openid-client-5.7.1.tgz" integrity sha512-jDBPgSVfTnkIh71Hg9pRvtJc6wTwqjRkN88+gCFtYWrlP4Yx2Dsrow8uPi3qLr/aeymPF3o2+dS+wOpglK04ew== dependencies: jose "^4.15.9" @@ -5668,7 +5631,7 @@ openid-client@^5.4.0: optionator@^0.9.3: version "0.9.4" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== dependencies: deep-is "^0.1.3" @@ -5680,12 +5643,12 @@ optionator@^0.9.3: ospath@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/ospath/-/ospath-1.2.2.tgz#1276639774a3f8ef2572f7fe4280e0ea4550c07b" + resolved "https://registry.npmjs.org/ospath/-/ospath-1.2.2.tgz" integrity sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA== otplib@^12.0.1: version "12.0.1" - resolved "https://registry.yarnpkg.com/otplib/-/otplib-12.0.1.tgz#c1d3060ab7aadf041ed2960302f27095777d1f73" + resolved "https://registry.npmjs.org/otplib/-/otplib-12.0.1.tgz" integrity sha512-xDGvUOQjop7RDgxTQ+o4pOol0/3xSZzawTiPKRrHnQWAy0WjhNs/5HdIDJCrqC4MBynmjXgULc6YfioaxZeFgg== dependencies: "@otplib/core" "^12.0.1" @@ -5694,7 +5657,7 @@ otplib@^12.0.1: own-keys@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/own-keys/-/own-keys-1.0.1.tgz#e4006910a2bf913585289676eebd6f390cf51358" + resolved "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz" integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== dependencies: get-intrinsic "^1.2.6" @@ -5703,61 +5666,61 @@ own-keys@^1.0.1: p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-limit@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-4.0.0.tgz#914af6544ed32bfa54670b061cafcbd04984b644" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz" integrity sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ== dependencies: yocto-queue "^1.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-locate@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-6.0.0.tgz#3da9a49d4934b901089dca3302fa65dc5a05c04f" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz" integrity sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw== dependencies: p-limit "^4.0.0" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pac-proxy-agent@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz#9cfaf33ff25da36f6147a20844230ec92c06e5df" + resolved "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.2.0.tgz" integrity sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA== dependencies: "@tootallnate/quickjs-emscripten" "^0.23.0" @@ -5771,7 +5734,7 @@ pac-proxy-agent@^7.1.0: pac-resolver@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/pac-resolver/-/pac-resolver-7.0.1.tgz#54675558ea368b64d210fd9c92a640b5f3b8abb6" + resolved "https://registry.npmjs.org/pac-resolver/-/pac-resolver-7.0.1.tgz" integrity sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg== dependencies: degenerator "^5.0.0" @@ -5779,14 +5742,14 @@ pac-resolver@^7.0.1: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -5796,91 +5759,91 @@ parse-json@^5.2.0: parse5@^6.0.0: version "6.0.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz" integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-exists@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz" integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pause-stream@0.0.11: version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + resolved "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz" integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== dependencies: through "~2.3" pend@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" + resolved "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz" integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg== performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + resolved "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== picocolors@^1.0.0, picocolors@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" + resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== picomatch@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.3.tgz#796c76136d1eead715db1e7bad785dedd695a042" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz" integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== pify@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pkg-dir@^4.1.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" possible-typed-array-names@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz#93e3582bc0e5426586d9d07b79ee40fc841de4ae" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz" integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== postcss@8.4.31: version "8.4.31" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: nanoid "^3.3.6" @@ -5889,7 +5852,7 @@ postcss@8.4.31: postcss@^8.4.38: version "8.5.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.6.tgz#2825006615a619b4f62a9e7426cc120b349a8f3c" + resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz" integrity sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg== dependencies: nanoid "^3.3.11" @@ -5898,49 +5861,49 @@ postcss@^8.4.38: preact-render-to-string@^5.1.19: version "5.2.6" - resolved "https://registry.yarnpkg.com/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz#0ff0c86cd118d30affb825193f18e92bd59d0604" + resolved "https://registry.npmjs.org/preact-render-to-string/-/preact-render-to-string-5.2.6.tgz" integrity sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw== dependencies: pretty-format "^3.8.0" preact@^10.6.3: - version "10.28.4" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.28.4.tgz#8ffab01c5c0590535bdaecdd548801f44c6e483a" - integrity sha512-uKFfOHWuSNpRFVTnljsCluEFq57OKT+0QdOiQo8XWnQ/pSvg7OpX5eNOejELXJMWy+BwM2nobz0FkvzmnpCNsQ== + version "10.24.3" + resolved "https://registry.npmjs.org/preact/-/preact-10.24.3.tgz" + integrity sha512-Z2dPnBnMUfyQfSQ+GBdsGa16hz35YmLmtTLhM169uW944hYL6xzTYkJjC07j+Wosz733pMWx0fgON3JNw1jJQA== prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.6.2: version "3.8.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.8.1.tgz#edf48977cf991558f4fcbd8a3ba6015ba2a3a173" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz" integrity sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg== pretty-bytes@^5.6.0: version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-format@^3.8.0: version "3.8.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-3.8.0.tgz#bfbed56d5e9a776645f4b1ff7aa1a3ac4fa3c385" + resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-3.8.0.tgz" integrity sha512-WuxUnVtlWL1OfZFQFuqvnvs6MiAGk9UNsBostyBOB0Is9wb5uRESevA6rnl/rkksXaGX3GzZhPup5d6Vp1nFew== process@^0.11.10: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== progress@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + resolved "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== prop-types@^15.0.0, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" - resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" @@ -5949,12 +5912,12 @@ prop-types@^15.0.0, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.7.2, property-information@^6.0.0: version "6.5.0" - resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.5.0.tgz#6212fbb52ba757e92ef4fb9d657563b933b7ffec" + resolved "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz" integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== proxy-agent@^6.4.0: version "6.5.0" - resolved "https://registry.yarnpkg.com/proxy-agent/-/proxy-agent-6.5.0.tgz#9e49acba8e4ee234aacb539f89ed9c23d02f232d" + resolved "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.5.0.tgz" integrity sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A== dependencies: agent-base "^7.1.2" @@ -5968,24 +5931,24 @@ proxy-agent@^6.4.0: proxy-from-env@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.0.0.tgz#33c50398f70ea7eb96d21f7b817630a55791c7ee" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz" integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A== proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== ps-tree@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" + resolved "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz" integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== dependencies: event-stream "=3.3.4" pump@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz" integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA== dependencies: end-of-stream "^1.1.0" @@ -5993,12 +5956,12 @@ pump@^3.0.0: punycode@^2.1.0: version "2.3.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== puppeteer-core@22.15.0: version "22.15.0" - resolved "https://registry.yarnpkg.com/puppeteer-core/-/puppeteer-core-22.15.0.tgz#c76926cce5dbc177572797a9dacc325c313fa91a" + resolved "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-22.15.0.tgz" integrity sha512-cHArnywCiAAVXa3t4GGL2vttNxh7GqXtIYGym99egkNJ3oG//wL9LkvO4WE8W1TJe95t1F1ocu9X4xWaGsOKOA== dependencies: "@puppeteer/browsers" "2.3.0" @@ -6009,7 +5972,7 @@ puppeteer-core@22.15.0: puppeteer@^22.15.0: version "22.15.0" - resolved "https://registry.yarnpkg.com/puppeteer/-/puppeteer-22.15.0.tgz#4f842087090f1d9017ce947512e7baff55a10e75" + resolved "https://registry.npmjs.org/puppeteer/-/puppeteer-22.15.0.tgz" integrity sha512-XjCY1SiSEi1T7iSYuxS82ft85kwDJUS7wj1Z0eGVXKdtr5g4xnVcbjwxhq5xBnpK/E7x1VZZoJDxpjAOasHT4Q== dependencies: "@puppeteer/browsers" "2.3.0" @@ -6019,24 +5982,24 @@ puppeteer@^22.15.0: qs@~6.14.1: version "6.14.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.2.tgz#b5634cf9d9ad9898e31fba3504e866e8efb6798c" + resolved "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz" integrity sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q== dependencies: side-channel "^1.1.0" queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== raf-schd@^4.0.2: version "4.0.3" - resolved "https://registry.yarnpkg.com/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a" + resolved "https://registry.npmjs.org/raf-schd/-/raf-schd-4.0.3.tgz" integrity sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ== react-beautiful-dnd@13.1.1: version "13.1.1" - resolved "https://registry.yarnpkg.com/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz#b0f3087a5840920abf8bb2325f1ffa46d8c4d0a2" + resolved "https://registry.npmjs.org/react-beautiful-dnd/-/react-beautiful-dnd-13.1.1.tgz" integrity sha512-0Lvs4tq2VcrEjEgDXHjT98r+63drkKEgqyxdA7qD3mvKwga6a5SscbdLPO2IExotU1jW8L0Ksdl0Cj2AF67nPQ== dependencies: "@babel/runtime" "^7.9.2" @@ -6049,7 +6012,7 @@ react-beautiful-dnd@13.1.1: react-confetti-explosion@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/react-confetti-explosion/-/react-confetti-explosion-2.1.2.tgz#dfbccf28985ce6938143ceb1023b9facfb0a5835" + resolved "https://registry.npmjs.org/react-confetti-explosion/-/react-confetti-explosion-2.1.2.tgz" integrity sha512-4UzDFBajAGXmF9TSJoRMO2QOBCIXc66idTxH8l7Mkul48HLGtk+tMzK9HYDYsy7Zmw5sEGchi2fbn4AJUuLrZw== dependencies: lodash "^4.17.21" @@ -6057,51 +6020,51 @@ react-confetti-explosion@2.1.2: react-confetti@6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/react-confetti/-/react-confetti-6.1.0.tgz#03dc4340d955acd10b174dbf301f374a06e29ce6" + resolved "https://registry.npmjs.org/react-confetti/-/react-confetti-6.1.0.tgz" integrity sha512-7Ypx4vz0+g8ECVxr88W9zhcQpbeujJAVqL14ZnXJ3I23mOI9/oBVTQ3dkJhUmB0D6XOtCZEM6N0Gm9PMngkORw== dependencies: tween-functions "^1.2.0" react-display-name@^0.2.4: version "0.2.5" - resolved "https://registry.yarnpkg.com/react-display-name/-/react-display-name-0.2.5.tgz#304c7cbfb59ee40389d436e1a822c17fe27936c6" + resolved "https://registry.npmjs.org/react-display-name/-/react-display-name-0.2.5.tgz" integrity sha512-I+vcaK9t4+kypiSgaiVWAipqHRXYmZIuAiS8vzFvXHHXVigg/sMKwlRgLy6LH2i3rmP+0Vzfl5lFsFRwF1r3pg== react-dom@19.0.3: version "19.0.3" - resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-19.0.3.tgz#517de15717f686dd6e39488434b6dd18f01ef1fb" + resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.0.3.tgz" integrity sha512-a7ezLfxibhu6fZBVLwy6WEd3Jn/4H8JYVO8K8GtBfRf1Pl+ox7KFoMCzAGlxLZUXo0t44YZShzhhoDH3yMVdxQ== dependencies: scheduler "^0.25.0" react-ga4@1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/react-ga4/-/react-ga4-1.4.1.tgz#6ee2a2db115ed235b2f2092bc746b4eeeca9e206" + resolved "https://registry.npmjs.org/react-ga4/-/react-ga4-1.4.1.tgz" integrity sha512-ioBMEIxd4ePw4YtaloTUgqhQGqz5ebDdC4slEpLgy2sLx1LuZBC9iYCwDymTXzcntw6K1dHX183ulP32nNdG7w== react-intersection-observer@^9.16.0: version "9.16.0" - resolved "https://registry.yarnpkg.com/react-intersection-observer/-/react-intersection-observer-9.16.0.tgz#7376d54edc47293300961010844d53b273ee0fb9" + resolved "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.16.0.tgz" integrity sha512-w9nJSEp+DrW9KmQmeWHQyfaP6b03v+TdXynaoA964Wxt7mdR3An11z4NNCQgL4gKSK7y1ver2Fq+JKH6CWEzUA== react-is@^16.13.1, react-is@^16.7.0: version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== react-is@^17.0.2: version "17.0.2" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz" integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== react-is@^18.0.0: version "18.3.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.3.1.tgz#e83557dc12eae63a99e003a46388b1dcbb44db7e" + resolved "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz" integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== react-jss@^10.9.2: version "10.10.0" - resolved "https://registry.yarnpkg.com/react-jss/-/react-jss-10.10.0.tgz#d08ab3257b0eed01e15d6d8275840055c279b0da" + resolved "https://registry.npmjs.org/react-jss/-/react-jss-10.10.0.tgz" integrity sha512-WLiq84UYWqNBF6579/uprcIUnM1TSywYq6AIjKTTTG5ziJl9Uy+pwuvpN3apuyVwflMbD60PraeTKT7uWH9XEQ== dependencies: "@babel/runtime" "^7.3.1" @@ -6118,12 +6081,12 @@ react-jss@^10.9.2: react-loading-skeleton@3.4.0: version "3.4.0" - resolved "https://registry.yarnpkg.com/react-loading-skeleton/-/react-loading-skeleton-3.4.0.tgz#c71a3a17259d08e4064974aa0b07f150a09dfd57" + resolved "https://registry.npmjs.org/react-loading-skeleton/-/react-loading-skeleton-3.4.0.tgz" integrity sha512-1oJEBc9+wn7BbkQQk7YodlYEIjgeR+GrRjD+QXkVjwZN7LGIcAFHrx4NhT7UHGBxNY1+zax3c+Fo6XQM4R7CgA== react-markdown@8.0.3: version "8.0.3" - resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.3.tgz#e8aba0d2f5a1b2124d476ee1fff9448a2f57e4b3" + resolved "https://registry.npmjs.org/react-markdown/-/react-markdown-8.0.3.tgz" integrity sha512-We36SfqaKoVNpN1QqsZwWSv/OZt5J15LNgTLWynwAN5b265hrQrsjMtlRNwUvS+YyR3yDM8HpTNc4pK9H/Gc0A== dependencies: "@types/hast" "^2.0.0" @@ -6144,7 +6107,7 @@ react-markdown@8.0.3: react-redux@^7.2.0: version "7.2.9" - resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.9.tgz#09488fbb9416a4efe3735b7235055442b042481d" + resolved "https://registry.npmjs.org/react-redux/-/react-redux-7.2.9.tgz" integrity sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ== dependencies: "@babel/runtime" "^7.15.4" @@ -6156,7 +6119,7 @@ react-redux@^7.2.0: react-slick@0.29.0: version "0.29.0" - resolved "https://registry.yarnpkg.com/react-slick/-/react-slick-0.29.0.tgz#0bed5ea42bf75a23d40c0259b828ed27627b51bb" + resolved "https://registry.npmjs.org/react-slick/-/react-slick-0.29.0.tgz" integrity sha512-TGdOKE+ZkJHHeC4aaoH85m8RnFyWqdqRfAGkhd6dirmATXMZWAxOpTLmw2Ll/jPTQ3eEG7ercFr/sbzdeYCJXA== dependencies: classnames "^2.2.5" @@ -6167,7 +6130,7 @@ react-slick@0.29.0: react-tooltip@5.27.1: version "5.27.1" - resolved "https://registry.yarnpkg.com/react-tooltip/-/react-tooltip-5.27.1.tgz#a94481ba146d828d31642f14d6ab29b56998fcda" + resolved "https://registry.npmjs.org/react-tooltip/-/react-tooltip-5.27.1.tgz" integrity sha512-a+micPXcMOMt11CYlwJD4XShcqGziasHco4NPe1OFw298WBTILMyzUgNC1LAFViAe791JdHNVSJIpzhZm2MvDA== dependencies: "@floating-ui/dom" "^1.6.1" @@ -6175,26 +6138,26 @@ react-tooltip@5.27.1: react@19.0.3: version "19.0.3" - resolved "https://registry.yarnpkg.com/react/-/react-19.0.3.tgz#dc803a2316a97d8a1619bf460353c8ccdb7d3a60" + resolved "https://registry.npmjs.org/react/-/react-19.0.3.tgz" integrity sha512-owzQanTgpB8GF7pVL6mUwZZyhKzFePi9++GkFk54i9PRU0jq+z7v9Mwg7PAZJYCiYl5YwcyQGGq5/PLkesd8nw== readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" redux@^4.0.0, redux@^4.0.4: version "4.2.1" - resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + resolved "https://registry.npmjs.org/redux/-/redux-4.2.1.tgz" integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== dependencies: "@babel/runtime" "^7.9.2" reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: version "1.0.10" - resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz#c629219e78a3316d8b604c765ef68996964e7bf9" + resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz" integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== dependencies: call-bind "^1.0.8" @@ -6208,19 +6171,19 @@ reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: regenerate-unicode-properties@^10.2.2: version "10.2.2" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz#aa113812ba899b630658c7623466be71e1f86f66" + resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.2.tgz" integrity sha512-m03P+zhBeQd1RGnYxrGyDAPpWX/epKirLrp8e3qevZdVkKtnCrjjWczIbYc8+xd6vcTStVlqfycTx1KR4LOr0g== dependencies: regenerate "^1.4.2" regenerate@^1.4.2: version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + resolved "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regexp.prototype.flags@^1.5.3, regexp.prototype.flags@^1.5.4: version "1.5.4" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz#1ad6c62d44a259007e55b3970e00f746efbcaa19" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz" integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== dependencies: call-bind "^1.0.8" @@ -6232,7 +6195,7 @@ regexp.prototype.flags@^1.5.3, regexp.prototype.flags@^1.5.4: regexpu-core@^6.3.1: version "6.4.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.4.0.tgz#3580ce0c4faedef599eccb146612436b62a176e5" + resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.4.0.tgz" integrity sha512-0ghuzq67LI9bLXpOX/ISfve/Mq33a4aFRzoQYhnnok1JOFpmE/A2TBGkNVenOGEeSBCjIiWcc6MVOG5HEQv0sA== dependencies: regenerate "^1.4.2" @@ -6244,19 +6207,19 @@ regexpu-core@^6.3.1: regjsgen@^0.8.0: version "0.8.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" + resolved "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz" integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== regjsparser@^0.13.0: version "0.13.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.13.0.tgz#01f8351335cf7898d43686bc74d2dd71c847ecc0" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz" integrity sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q== dependencies: jsesc "~3.1.0" rehype-raw@6.1.1: version "6.1.1" - resolved "https://registry.yarnpkg.com/rehype-raw/-/rehype-raw-6.1.1.tgz#81bbef3793bd7abacc6bf8335879d1b6c868c9d4" + resolved "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz" integrity sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ== dependencies: "@types/hast" "^2.0.0" @@ -6265,7 +6228,7 @@ rehype-raw@6.1.1: remark-breaks@3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/remark-breaks/-/remark-breaks-3.0.2.tgz#f466b9d3474d7323146c0149fc1496dabadd908e" + resolved "https://registry.npmjs.org/remark-breaks/-/remark-breaks-3.0.2.tgz" integrity sha512-x96YDJ9X+Ry0/JNZFKfr1hpcAKvGYWfUTszxY9RbxKEqq6uzPPoLCuHdZsLPZZUdAv3nCROyc7FPrQLWr2rxyw== dependencies: "@types/mdast" "^3.0.0" @@ -6274,7 +6237,7 @@ remark-breaks@3.0.2: remark-parse@^10.0.0: version "10.0.2" - resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + resolved "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.2.tgz" integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== dependencies: "@types/mdast" "^3.0.0" @@ -6283,7 +6246,7 @@ remark-parse@^10.0.0: remark-rehype@^10.0.0: version "10.1.0" - resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz" integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== dependencies: "@types/hast" "^2.0.0" @@ -6293,34 +6256,34 @@ remark-rehype@^10.0.0: request-progress@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/request-progress/-/request-progress-3.0.0.tgz#4ca754081c7fec63f505e4faa825aa06cd669dbe" + resolved "https://registry.npmjs.org/request-progress/-/request-progress-3.0.0.tgz" integrity sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg== dependencies: throttleit "^1.0.0" require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== resize-observer-polyfill@^1.5.0: version "1.5.1" - resolved "https://registry.yarnpkg.com/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz#0e9020dd3d21024458d4ebd27e23e40269810464" + resolved "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz" integrity sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-pkg-maps@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== resolve@^1.22.11, resolve@^1.22.4: version "1.22.11" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz" integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== dependencies: is-core-module "^2.16.1" @@ -6329,7 +6292,7 @@ resolve@^1.22.11, resolve@^1.22.4: resolve@^2.0.0-next.5: version "2.0.0-next.6" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.6.tgz#b3961812be69ace7b3bc35d5bf259434681294af" + resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.6.tgz" integrity sha512-3JmVl5hMGtJ3kMmB3zi3DL25KfkCEyy3Tw7Gmw7z5w8M9WlwoPFnIvwChzu1+cF3iaK3sp18hhPz8ANeimdJfA== dependencies: es-errors "^1.3.0" @@ -6341,7 +6304,7 @@ resolve@^2.0.0-next.5: restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -6349,45 +6312,45 @@ restore-cursor@^3.1.0: reusify@^1.0.4: version "1.1.0" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.1.0.tgz#0fe13b9522e1473f51b558ee796e08f11f9b489f" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz" integrity sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw== rfdc@^1.3.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rimraf@^2.5.2: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz" integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" rxjs@^7.5.1, rxjs@^7.8.2: version "7.8.2" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.2.tgz#955bc473ed8af11a002a2be52071bf475638607b" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz" integrity sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA== dependencies: tslib "^2.1.0" sade@^1.7.3: version "1.8.1" - resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + resolved "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz" integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== dependencies: mri "^1.1.0" safe-array-concat@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz#c9e54ec4f603b0bbb8e7e5007a5ee7aecd1538c3" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz" integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== dependencies: call-bind "^1.0.8" @@ -6398,12 +6361,12 @@ safe-array-concat@^1.1.3: safe-buffer@^5.0.1, safe-buffer@^5.1.2: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-push-apply@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz#01850e981c1602d398c85081f360e4e6d03d27f5" + resolved "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz" integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== dependencies: es-errors "^1.3.0" @@ -6411,7 +6374,7 @@ safe-push-apply@^1.0.0: safe-regex-test@^1.0.3, safe-regex-test@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz#7f87dfb67a3150782eaaf18583ff5d1711ac10c1" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz" integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== dependencies: call-bound "^1.0.2" @@ -6420,12 +6383,12 @@ safe-regex-test@^1.0.3, safe-regex-test@^1.1.0: "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== sass-loader@13.1.0: version "13.1.0" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.1.0.tgz#e5b9acf14199a9bc6eaed7a0b8b23951c2cebf6f" + resolved "https://registry.npmjs.org/sass-loader/-/sass-loader-13.1.0.tgz" integrity sha512-tZS1RJQ2n2+QNyf3CCAo1H562WjL/5AM6Gi8YcPVVoNxQX8d19mx8E+8fRrMWsyc93ZL6Q8vZDSM0FHVTJaVnQ== dependencies: klona "^2.0.4" @@ -6433,24 +6396,24 @@ sass-loader@13.1.0: sass@1.32.8: version "1.32.8" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.32.8.tgz#f16a9abd8dc530add8834e506878a2808c037bdc" + resolved "https://registry.npmjs.org/sass/-/sass-1.32.8.tgz" integrity sha512-Sl6mIeGpzjIUZqvKnKETfMf0iDAswD9TNlv13A7aAF3XZlRPMq4VvJWBC2N2DXbp94MQVdNSFG6LfF/iOXrPHQ== dependencies: chokidar ">=2.0.0 <4.0.0" sax@^1.5.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.6.0.tgz#da59637629307b97e7c4cb28e080a7bc38560d5b" + resolved "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz" integrity sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA== scheduler@^0.25.0: version "0.25.0" - resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.25.0.tgz#336cd9768e8cceebf52d3c80e3dcf5de23e7e015" + resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz" integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== schema-utils@^2.6.5: version "2.7.1" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== dependencies: "@types/json-schema" "^7.0.5" @@ -6459,17 +6422,17 @@ schema-utils@^2.6.5: semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== semver@^7.6.3, semver@^7.7.1, semver@^7.7.3: version "7.7.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a" + resolved "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz" integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== set-function-length@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" + resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: define-data-property "^1.1.4" @@ -6481,7 +6444,7 @@ set-function-length@^1.2.2: set-function-name@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.2.tgz#16a705c5a0dc2f5e638ca96d8a8cd4e1c2b90985" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz" integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== dependencies: define-data-property "^1.1.4" @@ -6491,7 +6454,7 @@ set-function-name@^2.0.2: set-proto@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/set-proto/-/set-proto-1.0.0.tgz#0760dbcff30b2d7e801fd6e19983e56da337565e" + resolved "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz" integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== dependencies: dunder-proto "^1.0.1" @@ -6500,12 +6463,12 @@ set-proto@^1.0.0: shallow-equal@^1.2.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/shallow-equal/-/shallow-equal-1.2.1.tgz#4c16abfa56043aa20d050324efa68940b0da79da" + resolved "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz" integrity sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA== sharp@^0.33.5: version "0.33.5" - resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.5.tgz#13e0e4130cc309d6a9497596715240b2ec0c594e" + resolved "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz" integrity sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw== dependencies: color "^4.2.3" @@ -6534,19 +6497,19 @@ sharp@^0.33.5: shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== side-channel-list@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" + resolved "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz" integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== dependencies: es-errors "^1.3.0" @@ -6554,7 +6517,7 @@ side-channel-list@^1.0.0: side-channel-map@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/side-channel-map/-/side-channel-map-1.0.1.tgz#d6bb6b37902c6fef5174e5f533fab4c732a26f42" + resolved "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz" integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== dependencies: call-bound "^1.0.2" @@ -6564,7 +6527,7 @@ side-channel-map@^1.0.1: side-channel-weakmap@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz#11dda19d5368e40ce9ec2bdc1fb0ecbc0790ecea" + resolved "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== dependencies: call-bound "^1.0.2" @@ -6575,7 +6538,7 @@ side-channel-weakmap@^1.0.2: side-channel@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.1.0.tgz#c3fcff9c4da932784873335ec9765fa94ff66bc9" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz" integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== dependencies: es-errors "^1.3.0" @@ -6586,19 +6549,19 @@ side-channel@^1.1.0: signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== simple-swizzle@^0.2.2: version "0.2.4" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.4.tgz#a8d11a45a11600d6a1ecdff6363329e3648c3667" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz" integrity sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw== dependencies: is-arrayish "^0.3.1" slice-ansi@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz" integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== dependencies: ansi-styles "^4.0.0" @@ -6607,7 +6570,7 @@ slice-ansi@^3.0.0: slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -6616,17 +6579,17 @@ slice-ansi@^4.0.0: slick-carousel@1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/slick-carousel/-/slick-carousel-1.8.1.tgz#a4bfb29014887bb66ce528b90bd0cda262cc8f8d" + resolved "https://registry.npmjs.org/slick-carousel/-/slick-carousel-1.8.1.tgz" integrity sha512-XB9Ftrf2EEKfzoQXt3Nitrt/IPbT+f1fgqBdoxO3W/+JYvtEOW6EgxnWfr9GH6nmULv7Y2tPmEX3koxThVmebA== smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== snake-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== dependencies: dot-case "^3.0.4" @@ -6634,7 +6597,7 @@ snake-case@^3.0.4: socks-proxy-agent@^8.0.5: version "8.0.5" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz#b9cdb4e7e998509d7659d689ce7697ac21645bee" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.5.tgz" integrity sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw== dependencies: agent-base "^7.1.2" @@ -6643,7 +6606,7 @@ socks-proxy-agent@^8.0.5: socks@^2.8.3: version "2.8.7" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.7.tgz#e2fb1d9a603add75050a2067db8c381a0b5669ea" + resolved "https://registry.npmjs.org/socks/-/socks-2.8.7.tgz" integrity sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A== dependencies: ip-address "^10.0.1" @@ -6651,34 +6614,34 @@ socks@^2.8.3: source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" + resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== source-map@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== space-separated-tokens@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== split@0.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + resolved "https://registry.npmjs.org/split/-/split-0.3.3.tgz" integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== dependencies: through "2" sprintf-js@1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz" integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== sshpk@^1.18.0: version "1.18.0" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.18.0.tgz#1663e55cddf4d688b86a46b77f0d5fe363aba028" + resolved "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz" integrity sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ== dependencies: asn1 "~0.2.3" @@ -6693,12 +6656,12 @@ sshpk@^1.18.0: stable-hash@^0.0.5: version "0.0.5" - resolved "https://registry.yarnpkg.com/stable-hash/-/stable-hash-0.0.5.tgz#94e8837aaeac5b4d0f631d2972adef2924b40269" + resolved "https://registry.npmjs.org/stable-hash/-/stable-hash-0.0.5.tgz" integrity sha512-+L3ccpzibovGXFK+Ap/f8LOS0ahMrHTf3xu7mMLSpEGU0EO9ucaysSylKo9eRDFNhWve/y275iPmIZ4z39a9iA== start-server-and-test@^2.0.12: version "2.1.5" - resolved "https://registry.yarnpkg.com/start-server-and-test/-/start-server-and-test-2.1.5.tgz#15eaa6c152dedccff942ad8e442311bf459f1430" + resolved "https://registry.npmjs.org/start-server-and-test/-/start-server-and-test-2.1.5.tgz" integrity sha512-A/SbXpgXE25ScSkpLLqvGvVZT0ykN6+AzS8tVqMBCTxbJy2Nwuen59opT+afalK5aS+AuQmZs0EsLwjnuDN+/g== dependencies: arg "^5.0.2" @@ -6712,7 +6675,7 @@ start-server-and-test@^2.0.12: stop-iteration-iterator@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz#f481ff70a548f6124d0312c3aa14cbfa7aa542ad" + resolved "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz" integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== dependencies: es-errors "^1.3.0" @@ -6720,19 +6683,19 @@ stop-iteration-iterator@^1.1.0: stream-combiner@~0.0.4: version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + resolved "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz" integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== dependencies: duplexer "~0.1.1" streamsearch@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== streamx@^2.12.5, streamx@^2.15.0, streamx@^2.21.0: version "2.23.0" - resolved "https://registry.yarnpkg.com/streamx/-/streamx-2.23.0.tgz#7d0f3d00d4a6c5de5728aecd6422b4008d66fd0b" + resolved "https://registry.npmjs.org/streamx/-/streamx-2.23.0.tgz" integrity sha512-kn+e44esVfn2Fa/O0CPFcex27fjIL6MkVae0Mm6q+E6f0hWv578YCERbv+4m02cjxvDsPKLnmxral/rR6lBMAg== dependencies: events-universal "^1.0.0" @@ -6741,12 +6704,12 @@ streamx@^2.12.5, streamx@^2.15.0, streamx@^2.21.0: string-convert@^0.2.0: version "0.2.1" - resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" + resolved "https://registry.npmjs.org/string-convert/-/string-convert-0.2.1.tgz" integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" @@ -6755,7 +6718,7 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: string.prototype.includes@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz#eceef21283640761a81dbe16d6c7171a4edf7d92" + resolved "https://registry.npmjs.org/string.prototype.includes/-/string.prototype.includes-2.0.1.tgz" integrity sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg== dependencies: call-bind "^1.0.7" @@ -6764,7 +6727,7 @@ string.prototype.includes@^2.0.1: string.prototype.matchall@^4.0.12: version "4.0.12" - resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz#6c88740e49ad4956b1332a911e949583a275d4c0" + resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz" integrity sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA== dependencies: call-bind "^1.0.8" @@ -6783,7 +6746,7 @@ string.prototype.matchall@^4.0.12: string.prototype.repeat@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz#e90872ee0308b29435aa26275f6e1b762daee01a" + resolved "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz" integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== dependencies: define-properties "^1.1.3" @@ -6791,7 +6754,7 @@ string.prototype.repeat@^1.0.0: string.prototype.trim@^1.2.10: version "1.2.10" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz#40b2dd5ee94c959b4dcfb1d65ce72e90da480c81" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz" integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== dependencies: call-bind "^1.0.8" @@ -6804,7 +6767,7 @@ string.prototype.trim@^1.2.10: string.prototype.trimend@^1.0.9: version "1.0.9" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz#62e2731272cd285041b36596054e9f66569b6942" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz" integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== dependencies: call-bind "^1.0.8" @@ -6814,7 +6777,7 @@ string.prototype.trimend@^1.0.9: string.prototype.trimstart@^1.0.8: version "1.0.8" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz#7ee834dda8c7c17eff3118472bb35bfedaa34dde" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== dependencies: call-bind "^1.0.7" @@ -6823,67 +6786,67 @@ string.prototype.trimstart@^1.0.8: strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== style-to-object@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz" integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== dependencies: inline-style-parser "0.1.1" styled-jsx@5.1.6: version "5.1.6" - resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.6.tgz#83b90c077e6c6a80f7f5e8781d0f311b2fe41499" + resolved "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz" integrity sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA== dependencies: client-only "0.0.1" supports-color@^7.1.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^8.1.1: version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== svg-parser@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/svg-parser/-/svg-parser-2.0.4.tgz#fdc2e29e13951736140b76cb122c8ee6630eb6b5" + resolved "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz" integrity sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ== svgo@^3.0.2: version "3.3.3" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-3.3.3.tgz#8246aee0b08791fde3b0ed22b5661b471fadf58e" + resolved "https://registry.npmjs.org/svgo/-/svgo-3.3.3.tgz" integrity sha512-+wn7I4p7YgJhHs38k2TNjy1vCfPIfLIJWR5MnCStsN8WuuTcBnRKcMHQLMM2ijxGZmDoZwNv8ipl5aTTen62ng== dependencies: commander "^7.2.0" @@ -6896,17 +6859,17 @@ svgo@^3.0.2: swiper@*: version "12.1.2" - resolved "https://registry.yarnpkg.com/swiper/-/swiper-12.1.2.tgz#39eaad0c088def66a7eb8f6bae1439384586ab90" + resolved "https://registry.npmjs.org/swiper/-/swiper-12.1.2.tgz" integrity sha512-4gILrI3vXZqoZh71I1PALqukCFgk+gpOwe1tOvz5uE9kHtl2gTDzmYflYCwWvR4LOvCrJi6UEEU+gnuW5BtkgQ== symbol-observable@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz" integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== tar-fs@^3.0.6: version "3.1.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-3.1.1.tgz#4f164e59fb60f103d472360731e8c6bb4a7fe9ef" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.1.1.tgz" integrity sha512-LZA0oaPOc2fVo82Txf3gw+AkEd38szODlptMYejQUhndHMLQ9M059uXR+AfS7DNo0NpINvSqDsvyaCrBVkptWg== dependencies: pump "^3.0.0" @@ -6917,7 +6880,7 @@ tar-fs@^3.0.6: tar-stream@^3.1.5: version "3.1.7" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b" + resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz" integrity sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ== dependencies: b4a "^1.6.4" @@ -6926,28 +6889,28 @@ tar-stream@^3.1.5: teex@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/teex/-/teex-1.0.1.tgz#b8fa7245ef8e8effa8078281946c85ab780a0b12" + resolved "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz" integrity sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg== dependencies: streamx "^2.12.5" text-decoder@^1.1.0: version "1.2.7" - resolved "https://registry.yarnpkg.com/text-decoder/-/text-decoder-1.2.7.tgz#5d073a9a74b9c0a9d28dfadcab96b604af57d8ba" + resolved "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.7.tgz" integrity sha512-vlLytXkeP4xvEq2otHeJfSQIRyWxo/oZGEbXrtEEF9Hnmrdly59sUbzZ/QgyWuLYHctCHxFF4tRQZNQ9k60ExQ== dependencies: b4a "^1.6.4" text-segmentation@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/text-segmentation/-/text-segmentation-1.0.3.tgz#52a388159efffe746b24a63ba311b6ac9f2d7943" + resolved "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz" integrity sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw== dependencies: utrie "^1.0.2" theming@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/theming/-/theming-3.3.0.tgz#dacabf04aa689edde35f1e1c117ec6de73fbf870" + resolved "https://registry.npmjs.org/theming/-/theming-3.3.0.tgz" integrity sha512-u6l4qTJRDaWZsqa8JugaNt7Xd8PPl9+gonZaIe28vAhqgHMIG/DOyFPqiKN/gQLQYj05tHv+YQdNILL4zoiAVA== dependencies: hoist-non-react-statics "^3.3.0" @@ -6957,32 +6920,32 @@ theming@^3.3.0: thirty-two@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/thirty-two/-/thirty-two-1.0.2.tgz#4ca2fffc02a51290d2744b9e3f557693ca6b627a" + resolved "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz" integrity sha512-OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA== throttleit@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/throttleit/-/throttleit-1.0.1.tgz#304ec51631c3b770c65c6c6f76938b384000f4d5" + resolved "https://registry.npmjs.org/throttleit/-/throttleit-1.0.1.tgz" integrity sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ== through@2, through@^2.3.8, through@~2.3, through@~2.3.1: version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tiny-invariant@^1.0.6: version "1.3.3" - resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" + resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz" integrity sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg== tiny-warning@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" + resolved "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz" integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA== tinyglobby@^0.2.13, tinyglobby@^0.2.15: version "0.2.15" - resolved "https://registry.yarnpkg.com/tinyglobby/-/tinyglobby-0.2.15.tgz#e228dd1e638cea993d2fdb4fcd2d4602a79951c2" + resolved "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz" integrity sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ== dependencies: fdir "^6.5.0" @@ -6990,58 +6953,58 @@ tinyglobby@^0.2.13, tinyglobby@^0.2.15: tldts-core@^6.1.86: version "6.1.86" - resolved "https://registry.yarnpkg.com/tldts-core/-/tldts-core-6.1.86.tgz#a93e6ed9d505cb54c542ce43feb14c73913265d8" + resolved "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz" integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA== tldts@^6.1.32: version "6.1.86" - resolved "https://registry.yarnpkg.com/tldts/-/tldts-6.1.86.tgz#087e0555b31b9725ee48ca7e77edc56115cd82f7" + resolved "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz" integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ== dependencies: tldts-core "^6.1.86" tmp@~0.2.3: version "0.2.5" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.2.5.tgz" integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow== to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" tough-cookie@^5.0.0: version "5.1.2" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-5.1.2.tgz#66d774b4a1d9e12dc75089725af3ac75ec31bed7" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz" integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== dependencies: tldts "^6.1.32" tree-kill@1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" + resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== trim-lines@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== trough@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" + resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== ts-api-utils@^2.4.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.4.0.tgz#2690579f96d2790253bdcf1ca35d569ad78f9ad8" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.4.0.tgz" integrity sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA== ts-node@^10.9.2: version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" @@ -7060,7 +7023,7 @@ ts-node@^10.9.2: tsconfig-paths@^3.15.0: version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" @@ -7070,46 +7033,46 @@ tsconfig-paths@^3.15.0: tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: version "2.8.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" tween-functions@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/tween-functions/-/tween-functions-1.2.0.tgz#1ae3a50e7c60bb3def774eac707acbca73bbc3ff" + resolved "https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz" integrity sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA== tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + resolved "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz" integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.8.0: version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== typed-array-buffer@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz#a72395450a4869ec033fd549371b47af3a2ee536" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz" integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== dependencies: call-bound "^1.0.3" @@ -7118,7 +7081,7 @@ typed-array-buffer@^1.0.3: typed-array-byte-length@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz#8407a04f7d78684f3d252aa1a143d2b77b4160ce" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz" integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== dependencies: call-bind "^1.0.8" @@ -7129,7 +7092,7 @@ typed-array-byte-length@^1.0.3: typed-array-byte-offset@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz#ae3698b8ec91a8ab945016108aef00d5bff12355" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz" integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== dependencies: available-typed-arrays "^1.0.7" @@ -7142,7 +7105,7 @@ typed-array-byte-offset@^1.0.4: typed-array-length@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.7.tgz#ee4deff984b64be1e118b0de8c9c877d5ce73d3d" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz" integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== dependencies: call-bind "^1.0.7" @@ -7154,12 +7117,12 @@ typed-array-length@^1.0.7: typescript@5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== unbox-primitive@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz#8d9d2c9edeea8460c7f35033a88867944934d1e2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz" integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== dependencies: call-bound "^1.0.3" @@ -7169,7 +7132,7 @@ unbox-primitive@^1.1.0: unbzip2-stream@^1.4.3: version "1.4.3" - resolved "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz#b0da04c4371311df771cdc215e87f2130991ace7" + resolved "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz" integrity sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg== dependencies: buffer "^5.2.1" @@ -7177,22 +7140,17 @@ unbzip2-stream@^1.4.3: undici-types@~7.16.0: version "7.16.0" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz" integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw== -undici-types@~7.18.0: - version "7.18.2" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.18.2.tgz#29357a89e7b7ca4aef3bf0fd3fd0cd73884229e9" - integrity sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w== - unicode-canonical-property-names-ecmascript@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" + resolved "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz" integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== unicode-match-property-ecmascript@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + resolved "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz" integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: unicode-canonical-property-names-ecmascript "^2.0.0" @@ -7200,17 +7158,17 @@ unicode-match-property-ecmascript@^2.0.0: unicode-match-property-value-ecmascript@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz#65a7adfad8574c219890e219285ce4c64ed67eaa" + resolved "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.1.tgz" integrity sha512-JQ84qTuMg4nVkx8ga4A16a1epI9H6uTXAknqxkGF/aFfRLw1xC/Bp24HNLaZhHSkWd3+84t8iXnp1J0kYcZHhg== unicode-property-aliases-ecmascript@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz#301d4f8a43d2b75c97adfad87c9dd5350c9475d1" + resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.2.0.tgz" integrity sha512-hpbDzxUY9BFwX+UeBnxv3Sh1q7HFxj48DTmXchNgRa46lO8uj3/1iEn3MiNUYTg1g9ctIqXCCERn8gYZhHC5lQ== unified@^10.0.0: version "10.1.2" - resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + resolved "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz" integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== dependencies: "@types/unist" "^2.0.0" @@ -7223,33 +7181,33 @@ unified@^10.0.0: unist-util-generated@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + resolved "https://registry.npmjs.org/unist-util-generated/-/unist-util-generated-2.0.1.tgz" integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== unist-util-is@^5.0.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz" integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== dependencies: "@types/unist" "^2.0.0" unist-util-position@^4.0.0: version "4.0.4" - resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz" integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== dependencies: "@types/unist" "^2.0.0" unist-util-stringify-position@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz" integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== dependencies: "@types/unist" "^2.0.0" unist-util-visit-parents@^5.1.1: version "5.1.3" - resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz" integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== dependencies: "@types/unist" "^2.0.0" @@ -7257,7 +7215,7 @@ unist-util-visit-parents@^5.1.1: unist-util-visit@^4.0.0: version "4.1.2" - resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz" integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== dependencies: "@types/unist" "^2.0.0" @@ -7266,12 +7224,12 @@ unist-util-visit@^4.0.0: universalify@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== unrs-resolver@^1.6.2: version "1.11.1" - resolved "https://registry.yarnpkg.com/unrs-resolver/-/unrs-resolver-1.11.1.tgz#be9cd8686c99ef53ecb96df2a473c64d304048a9" + resolved "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz" integrity sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg== dependencies: napi-postinstall "^0.3.0" @@ -7298,12 +7256,12 @@ unrs-resolver@^1.6.2: untildify@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== update-browserslist-db@^1.2.0: version "1.2.3" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz#64d76db58713136acbeb4c49114366cc6cc2e80d" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz" integrity sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w== dependencies: escalade "^3.2.0" @@ -7311,36 +7269,36 @@ update-browserslist-db@^1.2.0: uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urlpattern-polyfill@10.0.0: version "10.0.0" - resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz#f0a03a97bfb03cdf33553e5e79a2aadd22cac8ec" + resolved "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz" integrity sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg== use-memo-one@^1.1.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/use-memo-one/-/use-memo-one-1.1.3.tgz#2fd2e43a2169eabc7496960ace8c79efef975e99" + resolved "https://registry.npmjs.org/use-memo-one/-/use-memo-one-1.1.3.tgz" integrity sha512-g66/K7ZQGYrI6dy8GLpVcMsBp4s17xNkYJVSMvTEevGy3nDxHOfE6z8BVE22+5G5x7t3+bhzrlTDB7ObrEE0cQ== utrie@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/utrie/-/utrie-1.0.2.tgz#d42fe44de9bc0119c25de7f564a6ed1b2c87a645" + resolved "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz" integrity sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw== dependencies: base64-arraybuffer "^1.0.2" uuid@8.3.2, uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== uvu@^0.5.0: version "0.5.6" - resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + resolved "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz" integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== dependencies: dequal "^2.0.0" @@ -7350,12 +7308,12 @@ uvu@^0.5.0: v8-compile-cache-lib@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + resolved "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz" integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== dependencies: assert-plus "^1.0.0" @@ -7364,7 +7322,7 @@ verror@1.10.0: vfile-location@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.1.0.tgz#69df82fb9ef0a38d0d02b90dd84620e120050dd0" + resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz" integrity sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw== dependencies: "@types/unist" "^2.0.0" @@ -7372,7 +7330,7 @@ vfile-location@^4.0.0: vfile-message@^3.0.0: version "3.1.4" - resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz" integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== dependencies: "@types/unist" "^2.0.0" @@ -7380,7 +7338,7 @@ vfile-message@^3.0.0: vfile@^5.0.0: version "5.3.7" - resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + resolved "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz" integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== dependencies: "@types/unist" "^2.0.0" @@ -7390,7 +7348,7 @@ vfile@^5.0.0: wait-on@9.0.4: version "9.0.4" - resolved "https://registry.yarnpkg.com/wait-on/-/wait-on-9.0.4.tgz#ddf3a44ebd18f380621855d52973069ff2cb5b54" + resolved "https://registry.npmjs.org/wait-on/-/wait-on-9.0.4.tgz" integrity sha512-k8qrgfwrPVJXTeFY8tl6BxVHiclK11u72DVKhpybHfUL/K6KM4bdyK9EhIVYGytB5MJe/3lq4Tf0hrjM+pvJZQ== dependencies: axios "^1.13.5" @@ -7401,12 +7359,12 @@ wait-on@9.0.4: web-namespaces@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz" integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz" integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== dependencies: is-bigint "^1.1.0" @@ -7417,7 +7375,7 @@ which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: which-builtin-type@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz#89183da1b4907ab089a6b02029cc5d8d6574270e" + resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz" integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== dependencies: call-bound "^1.0.2" @@ -7436,7 +7394,7 @@ which-builtin-type@^1.2.1: which-collection@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.2.tgz#627ef76243920a107e7ce8e96191debe4b16c2a0" + resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz" integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== dependencies: is-map "^2.0.3" @@ -7446,7 +7404,7 @@ which-collection@^1.0.2: which-typed-array@^1.1.16, which-typed-array@^1.1.19: version "1.1.20" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.20.tgz#3fdb7adfafe0ea69157b1509f3a1cd892bd1d122" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.20.tgz" integrity sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg== dependencies: available-typed-arrays "^1.0.7" @@ -7459,19 +7417,19 @@ which-typed-array@^1.1.16, which-typed-array@^1.1.19: which@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" word-wrap@^1.2.5: version "1.2.5" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -7480,7 +7438,7 @@ wrap-ansi@^6.2.0: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" @@ -7489,37 +7447,37 @@ wrap-ansi@^7.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== ws@^8.18.0: version "8.19.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.19.0.tgz#ddc2bdfa5b9ad860204f5a72a4863a8895fd8c8b" + resolved "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz" integrity sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.7.2: version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -7532,7 +7490,7 @@ yargs@^17.7.2: yauzl@^2.10.0, yauzl@^2.9.2: version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" + resolved "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz" integrity sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g== dependencies: buffer-crc32 "~0.2.3" @@ -7540,25 +7498,25 @@ yauzl@^2.10.0, yauzl@^2.9.2: yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== yocto-queue@^1.0.0: version "1.2.2" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.2.2.tgz#3e09c95d3f1aa89a58c114c99223edf639152c00" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.2.2.tgz" integrity sha512-4LCcse/U2MHZ63HAJVE+v71o7yOdIe4cZ70Wpf8D/IyjDKYQLV5GD46B+hSTjJsvV5PztjvHoU580EftxjDZFQ== zod@3.23.8: version "3.23.8" - resolved "https://registry.yarnpkg.com/zod/-/zod-3.23.8.tgz#e37b957b5d52079769fb8097099b592f0ef4067d" + resolved "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz" integrity sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g== zwitch@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + resolved "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz" integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==