25786 lines
4.1 MiB
25786 lines
4.1 MiB
## User
|
||
|
||
test
|
||
|
||
## Assistant
|
||
|
||
Test received! How can I help you with your project today?
|
||
|
||
## User (checkpoint)
|
||
|
||
can you figure out why my chat failed.
|
||
|
||
Error: Failed to generate summary
|
||
|
||
**Tool Call: Search files for regex `Failed to generate summary`**
|
||
Status: Completed
|
||
|
||
Found 1 matches:
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/context/summarize/route.ts
|
||
|
||
### async function POST( ) › error › L46-49
|
||
```
|
||
return NextResponse.json(
|
||
{ error: "Failed to generate summary", details: error instanceof Error ? error.message : String(error) },
|
||
{ status: 500 }
|
||
);
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/app/api/context/summarize/route.ts` (lines 1-100)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/app/api/context/summarize/route.ts
|
||
import { NextRequest, NextResponse } from "next/server";
|
||
|
||
const MODEL = process.env.GEMINI_MODEL || 'gemini-2.0-flash-exp';
|
||
const API_KEY = process.env.GOOGLE_API_KEY || '';
|
||
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent`;
|
||
|
||
export async function POST(request: NextRequest) {
|
||
try {
|
||
const { content, title } = await request.json();
|
||
|
||
if (!content) {
|
||
return NextResponse.json({ error: "Content is required" }, { status: 400 });
|
||
}
|
||
|
||
const maxContentLength = 30000;
|
||
const truncatedContent = content.length > maxContentLength
|
||
? content.substring(0, maxContentLength) + "..."
|
||
: content;
|
||
|
||
const prompt = `Read this document titled "${title}" and provide a concise 1-2 sentence summary that captures the main topic and key points. Be specific and actionable.
|
||
|
||
Document content:
|
||
${truncatedContent}
|
||
|
||
Summary:`;
|
||
|
||
const response = await fetch(`${GEMINI_URL}?key=${API_KEY}`, {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({
|
||
contents: [{ role: 'user', parts: [{ text: prompt }] }],
|
||
generationConfig: { temperature: 0.3 },
|
||
}),
|
||
});
|
||
|
||
if (!response.ok) {
|
||
throw new Error(`Gemini API error (${response.status}): ${await response.text()}`);
|
||
}
|
||
|
||
const result = await response.json();
|
||
const summary = result.candidates?.[0]?.content?.parts?.[0]?.text?.trim() || 'Summary unavailable';
|
||
|
||
return NextResponse.json({ summary });
|
||
} catch (error) {
|
||
console.error("Error generating summary:", error);
|
||
return NextResponse.json(
|
||
{ error: "Failed to generate summary", details: error instanceof Error ? error.message : String(error) },
|
||
{ status: 500 }
|
||
);
|
||
}
|
||
}
|
||
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: cat vibn-frontend/.env vibn-frontend/.env.local**
|
||
Status: Completed
|
||
|
||
Terminal:
|
||
```
|
||
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
|
||
cat: vibn-frontend/.env: No such file or directory
|
||
# ── Google / Gemini ───────────────────────────────────────────────────────────
|
||
GOOGLE_API_KEY=AIzaSyCwXxLU6dGrRLfHRxGtOWg2hi-RQGMn664
|
||
GEMINI_MODEL=gemini-3.1-pro
|
||
|
||
# ── Google OAuth (NextAuth) ────────────────────────────────────────────────────
|
||
GOOGLE_CLIENT_ID=673711367815-us92rkicrpgjrh381p4cb770lo9iq8tt.apps.googleusercontent.com
|
||
GOOGLE_CLIENT_SECRET=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
|
||
|
||
# ── NextAuth ──────────────────────────────────────────────────────────────────
|
||
NEXTAUTH_SECRET=1yaw0RWG7g4yxPf3kAgsZoobrnlP/ZmpfrzuFAhTGnA=
|
||
NEXTAUTH_URL=http://localhost:3000
|
||
|
||
# Local dev: bypass Google — set to your real email (must match DB user you want)
|
||
NEXT_PUBLIC_DEV_LOCAL_AUTH_EMAIL=mark@getacquired.com
|
||
# Act as that user for /api/projects* without signing in (next dev only)
|
||
NEXT_PUBLIC_DEV_BYPASS_PROJECT_AUTH=true
|
||
|
||
# ── PostgreSQL (Coolify public port; run: npm run db:sync:coolify) ────────────
|
||
# If unreachable: open host firewall for TCP on public_port. SSL: DB_SSL=true if required.
|
||
DATABASE_URL=postgresql://vibn_user:JSMcySGlEj3pSMjHvwEHAd1A@34.19.250.135:5433/vibn
|
||
POSTGRES_URL=postgresql://vibn_user:JSMcySGlEj3pSMjHvwEHAd1A@34.19.250.135:5433/vibn
|
||
|
||
# ── Gitea ─────────────────────────────────────────────────────────────────────
|
||
GITEA_API_URL=https://git.vibnai.com
|
||
GITEA_API_TOKEN=7803666418f1c90a5a65ecc35f8c2f3abaa7d2f3
|
||
GITEA_USERNAME=mark
|
||
|
||
# ── Coolify ───────────────────────────────────────────────────────────────────
|
||
COOLIFY_URL=http://34.19.250.135:8000
|
||
COOLIFY_API_TOKEN=1|clqAOiQPygpuwyA5HVDyWoKfNRtDH8l4Huge2PCmef521cc1
|
||
COOLIFY_SERVER_UUID=jws4g4cgssss4cw48s488woc
|
||
|
||
|
||
VIBN_SECRETS_KEY=G1gGSlAklGsIerQ8cmwSGsoO8gvHax/JfY5IgLGEZAOwIhm/pWWPVBJ10hI4Duqy
|
||
NEXT_PUBLIC_COOLIFY_URL=http://34.19.250.135:8000
|
||
|
||
# Ops probe: GET /api/internal/infra-health
|
||
INFRA_HEALTH_SECRET=6e60bec12bd1391b4753fc486580f57e78e02a961f8e9999e19254c1af7261bb
|
||
|
||
# ── DeepSeek (workspace sidebar chat → POST /api/chat) ──────────────────────────
|
||
VIBN_CHAT_PROVIDER=gemini
|
||
|
||
echo "COOLIFY_SSH_HOST=34.19.250.135" >> /Users/markhenderson/master-ai/vibn-frontend/.env.local
|
||
echo "COOLIFY_SSH_PORT=22" >> /Users/markhenderson/master-ai/vibn-frontend/.env.local
|
||
echo "COOLIFY_SSH_USER=vibn-logs" >> /Users/markhenderson/master-ai/vibn-frontend/.env.local
|
||
PRIV_B64=$(cat ~/.ssh/vibn-logs-local | base64 | tr -d '\n')
|
||
echo "COOLIFY_SSH_PRIVATE_KEY_B64=$PRIV_B64" >> /Users/markhenderson/master-ai/vibn-frontend/.env.local
|
||
COOLIFY_SSH_HOST=34.19.250.135
|
||
COOLIFY_SSH_PORT=22
|
||
COOLIFY_SSH_USER=vibn-logs
|
||
COOLIFY_SSH_PRIVATE_KEY_B64=LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNd0FBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNDNS92M0RwRjgwWDVuNitjM2VNbElpVUdQN3d1bjdjL2Z6R0ttaUMzV3BzUUFBQUpqUE1BQ2N6ekFBCm5BQUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDQzUvdjNEcEY4MFg1bjYrYzNlTWxJaVVHUDd3dW43Yy9mekdLbWlDM1dwc1EKQUFBRUErMmFCditqa3pndWJaZTZyd1lhK1FDenFGSVpQYW5POWtYSXE5ZzdWYjc3bisvY09rWHpSZm1mcjV6ZDR5VWlKUQpZL3ZDNmZ0ejkvTVlxYUlMZGFteEFBQUFEM1pwWW00dGJHOW5jeTFzYjJOaGJBRUNBd1FGQmc9PQotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K
|
||
COOLIFY_SSH_HOST=34.19.250.135
|
||
COOLIFY_SSH_PORT=22
|
||
COOLIFY_SSH_USER=vibn-logs
|
||
COOLIFY_SSH_PRIVATE_KEY_B64=LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNd0FBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNDNS92M0RwRjgwWDVuNitjM2VNbElpVUdQN3d1bjdjL2Z6R0ttaUMzV3BzUUFBQUpqUE1BQ2N6ekFBCm5BQUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDQzUvdjNEcEY4MFg1bjYrYzNlTWxJaVVHUDd3dW43Yy9mekdLbWlDM1dwc1EKQUFBRUErMmFCditqa3pndWJaZTZyd1lhK1FDenFGSVpQYW5POWtYSXE5ZzdWYjc3bisvY09rWHpSZm1mcjV6ZDR5VWlKUQpZL3ZDNmZ0ejkvTVlxYUlMZGFteEFBQUFEM1pwWW00dGJHOW5jeTFzYjJOaGJBRUNBd1FGQmc9PQotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K
|
||
|
||
|
||
# Stripe Platform Keys (Test Mode)
|
||
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_51TUwa39DgTI4W5Vpgi1fazBGnNvHkaaMnih5poAwpCZ8U7yF9UIz8ybACc89ktRQh789q3bzxw4oy2aeQT9fdYTa004oyumjOm
|
||
STRIPE_SECRET_KEY=sk_test_51TUwa39DgTI4W5Vp7UjeXcUmunoexF3nXVtNAG8SisncwEeKVmrdAjVvYMvnEKxRWr2UnJXuNPX8eF0xdIWaWrmM00trL4Fn3V
|
||
|
||
STRIPE_CLIENT_ID=ca_UTuWw2qE8wFLNlWOL7T1v0H5GdB6BtDw
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `Failed to generate`**
|
||
Status: Completed
|
||
|
||
Found 14 matches:
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/context/summarize/route.ts
|
||
|
||
### async function POST( ) › error › L46-49
|
||
```
|
||
return NextResponse.json(
|
||
{ error: "Failed to generate summary", details: error instanceof Error ? error.message : String(error) },
|
||
{ status: 500 }
|
||
);
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/mcp/generate-key/route.ts
|
||
|
||
### async function POST( ) › error › L68-71
|
||
```
|
||
{
|
||
error: 'Failed to generate MCP key',
|
||
details: error instanceof Error ? error.message : String(error),
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/audit/generate/route.ts
|
||
|
||
### async function POST( ) › error › L236-239
|
||
```
|
||
{
|
||
error: 'Failed to generate audit report',
|
||
details: error instanceof Error ? error.message : String(error)
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/complete-history/route.ts
|
||
|
||
### async function GET( ) › error › L157-160
|
||
```
|
||
{
|
||
error: 'Failed to generate complete history',
|
||
details: error instanceof Error ? error.message : String(error)
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/documents/upload/route.ts
|
||
|
||
### async function POST( ) › error › L52-55
|
||
```
|
||
return NextResponse.json(
|
||
{ error: 'Failed to generate upload URL', details: error instanceof Error ? error.message : String(error) },
|
||
{ status: 500 }
|
||
);
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/mission/generate/route.ts
|
||
|
||
### async function POST( ) › error › L214-217
|
||
```
|
||
{
|
||
error: 'Failed to generate mission framework',
|
||
details: error instanceof Error ? error.message : String(error)
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/mvp-checklist/route.ts
|
||
|
||
### async function GET( ) › error › L96-99
|
||
```
|
||
{
|
||
error: 'Failed to generate MVP checklist',
|
||
details: error instanceof Error ? error.message : String(error)
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/plan/intelligent/route.ts
|
||
|
||
### async function GET( ) › error › L62-65
|
||
```
|
||
{
|
||
error: 'Failed to generate intelligent plan',
|
||
details: error instanceof Error ? error.message : String(error)
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/plan/marketing/route.ts
|
||
|
||
### async function POST( ) › L18-24
|
||
```
|
||
} catch (error) {
|
||
console.error('[plan/marketing] Failed to generate marketing plan', error);
|
||
return NextResponse.json(
|
||
{
|
||
error: 'Failed to generate marketing plan',
|
||
details: error instanceof Error ? error.message : String(error),
|
||
},
|
||
```
|
||
|
||
3 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/plan/mvp/route.ts
|
||
|
||
### async function POST( ) › L18-24
|
||
```
|
||
} catch (error) {
|
||
console.error('[plan/mvp] Failed to generate MVP plan', error);
|
||
return NextResponse.json(
|
||
{
|
||
error: 'Failed to generate MVP plan',
|
||
details: error instanceof Error ? error.message : String(error),
|
||
},
|
||
```
|
||
|
||
3 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/timeline/route.ts
|
||
|
||
### async function GET( ) › error › L389-392
|
||
```
|
||
{
|
||
error: 'Failed to generate unified timeline',
|
||
details: error instanceof Error ? error.message : String(error)
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/timeline-view/route.ts
|
||
|
||
### async function GET( ) › error › L175-178
|
||
```
|
||
{
|
||
error: 'Failed to generate timeline view',
|
||
details: error instanceof Error ? error.message : String(error)
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/v0/generate/route.ts
|
||
|
||
### async function POST( ) › error › L68-71
|
||
```
|
||
{
|
||
error: 'Failed to generate design',
|
||
details: error instanceof Error ? error.message : 'Unknown error'
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/scripts/start-with-alloydb.sh
|
||
|
||
### L7-11
|
||
```
|
||
if [ -z "$ALLOYDB_PASSWORD" ]; then
|
||
echo "❌ Failed to generate access token"
|
||
echo "Make sure you're logged in: gcloud auth login"
|
||
exit 1
|
||
fi
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/app/api/context/summarize/route.ts` (lines 1-100)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/app/api/context/summarize/route.ts
|
||
import { NextRequest, NextResponse } from "next/server";
|
||
|
||
const MODEL = process.env.GEMINI_MODEL || 'gemini-2.0-flash-exp';
|
||
const API_KEY = process.env.GOOGLE_API_KEY || '';
|
||
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent`;
|
||
|
||
export async function POST(request: NextRequest) {
|
||
try {
|
||
const { content, title } = await request.json();
|
||
|
||
if (!content) {
|
||
return NextResponse.json({ error: "Content is required" }, { status: 400 });
|
||
}
|
||
|
||
const maxContentLength = 30000;
|
||
const truncatedContent = content.length > maxContentLength
|
||
? content.substring(0, maxContentLength) + "..."
|
||
: content;
|
||
|
||
const prompt = `Read this document titled "${title}" and provide a concise 1-2 sentence summary that captures the main topic and key points. Be specific and actionable.
|
||
|
||
Document content:
|
||
${truncatedContent}
|
||
|
||
Summary:`;
|
||
|
||
const response = await fetch(`${GEMINI_URL}?key=${API_KEY}`, {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({
|
||
contents: [{ role: 'user', parts: [{ text: prompt }] }],
|
||
generationConfig: { temperature: 0.3 },
|
||
}),
|
||
});
|
||
|
||
if (!response.ok) {
|
||
throw new Error(`Gemini API error (${response.status}): ${await response.text()}`);
|
||
}
|
||
|
||
const result = await response.json();
|
||
const summary = result.candidates?.[0]?.content?.parts?.[0]?.text?.trim() || 'Summary unavailable';
|
||
|
||
return NextResponse.json({ summary });
|
||
} catch (error) {
|
||
console.error("Error generating summary:", error);
|
||
return NextResponse.json(
|
||
{ error: "Failed to generate summary", details: error instanceof Error ? error.message : String(error) },
|
||
{ status: 500 }
|
||
);
|
||
}
|
||
}
|
||
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: cat << 'EOF' > test-gemini.js
|
||
const API_KEY = "AIzaSyCwXxLU6dGrRLfHRxGtOWg2hi-RQGMn664";
|
||
const MODEL = "gemini-3.1-pro";
|
||
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent`;
|
||
|
||
fetch(`${GEMINI_URL}?key=${API_KEY}`, {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({
|
||
contents: [{ role: 'user', parts: [{ text: "test" }] }],
|
||
generationConfig: { temperature: 0.3 },
|
||
}),
|
||
}).then(r => r.text()).then(console.log).catch(console.error);
|
||
EOF
|
||
node test-gemini.js**
|
||
Status: Completed
|
||
|
||
Terminal:
|
||
```
|
||
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
|
||
{
|
||
"error": {
|
||
"code": 404,
|
||
"message": "models/gemini-3.1-pro is not found for API version v1beta, or is not supported for generateContent. Call ListModels to see the list of available models and their supported methods.",
|
||
"status": "NOT_FOUND"
|
||
}
|
||
}
|
||
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `GEMINI_MODEL`**
|
||
Status: Completed
|
||
|
||
Found 10 matches:
|
||
|
||
## Matches in master-ai/deploy_logs.json
|
||
|
||
### logs › L1
|
||
```
|
||
{"id":722,"application":{"id":8,"repository_project_id":null,"uuid":"y4cscsc8s08c8808go0448s0","name":"vibn-frontend","fqdn":"https:\/\/vibnai.com,https:\/\/www.vibnai.com","config_hash":"58d68c8425a4d019fa30f44e0dba0b90","git_repository":"https:\/\/git.vibnai.com\/mark\/vibn-frontend.git","git_branch":"main","git_commit_sha":"HEAD","git_full_url":null,"docker_registry_image_name":null,"docker_registry_image_tag":null,"build_pack":"dockerfile","static_image":"nginx:alpine","install_command":null,"build_command":null,"start_command":null,"ports_exposes":"3000","ports_mappings":null,"base_directory":"\/","publish_directory":null,"health_check_path":"\/","health_check_port":"3000","health_check_host":"127.0.0.1","health_check_method":"GET","health_check_return_code":200,"health_check_scheme":"http","health_check_response_text":null,"health_check_interval":5,"health_check_timeout":5,"health_check_retries":15,"health_check_start_period":90,"limits_memory":"0","limits_memory_swap":"0","limits_memory_swappiness":60,"limits_memory_reservation":"0","limits_cpus":"0","limits_cpuset":null,"limits_cpu_shares":1024,"status":"running:healthy","preview_url_template":"{{pr_id}}.{{domain}}","destination_type":"App\\Models\\StandaloneDocker","destination_id":0,"source_type":null,"source_id":null,"private_key_id":null,"environment_id":1,"created_at":"2026-02-16T22:29:56.000000Z","updated_at":"2026-05-14T18:47:02.000000Z","description":"VIBN Frontend - Next.js Application","dockerfile":null,"health_check_enabled":true,"dockerfile_location":"\/Dockerfile","custom_labels":"dHJhZWZpay5lbmFibGU9dHJ1ZQp0cmFlZmlrLmh0dHAubWlkZGxld2FyZXMuZ3ppcC5jb21wcmVzcz10cnVlCnRyYWVmaWsuaHR0cC5taWRkbGV3YXJlcy5yZWRpcmVjdC10by1odHRwcy5yZWRpcmVjdHNjaGVtZS5zY2hlbWU9aHR0cHMKdHJhZWZpay5odHRwLnJvdXRlcnMuaHR0cC0wLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC5lbnRyeVBvaW50cz1odHRwCnRyYWVmaWsuaHR0cC5yb3V0ZXJzLmh0dHAtMC15NGNzY3NjOHMwOGM4ODA4Z28wNDQ4czAubWlkZGxld2FyZXM9cmVkaXJlY3QtdG8taHR0cHMKdHJhZWZpay5odHRwLnJvdXRlcnMuaHR0cC0wLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC5ydWxlPUhvc3QoYHZpYm5haS5jb21gKSAmJiBQYXRoUHJlZml4KGAvYCkKdHJhZWZpay5odHRwLnJvdXRlcnMuaHR0cC0wLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC5zZXJ2aWNlPWh0dHAtMC15NGNzY3NjOHMwOGM4ODA4Z28wNDQ4czAKdHJhZWZpay5odHRwLnJvdXRlcnMuaHR0cC0xLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC5lbnRyeVBvaW50cz1odHRwCnRyYWVmaWsuaHR0cC5yb3V0ZXJzLmh0dHAtMS15NGNzY3NjOHMwOGM4ODA4Z28wNDQ4czAubWlkZGxld2FyZXM9cmVkaXJlY3QtdG8taHR0cHMKdHJhZWZpay5odHRwLnJvdXRlcnMuaHR0cC0xLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC5ydWxlPUhvc3QoYHd3dy52aWJuYWkuY29tYCkgJiYgUGF0aFByZWZpeChgL2ApCnRyYWVmaWsuaHR0cC5yb3V0ZXJzLmh0dHAtMS15NGNzY3NjOHMwOGM4ODA4Z28wNDQ4czAuc2VydmljZT1odHRwLTEteTRjc2NzYzhzMDhjODgwOGdvMDQ0OHMwCnRyYWVmaWsuaHR0cC5yb3V0ZXJzLmh0dHBzLTAteTRjc2NzYzhzMDhjODgwOGdvMDQ0OHMwLmVudHJ5UG9pbnRzPWh0dHBzCnRyYWVmaWsuaHR0cC5yb3V0ZXJzLmh0dHBzLTAteTRjc2NzYzhzMDhjODgwOGdvMDQ0OHMwLm1pZGRsZXdhcmVzPWd6aXAKdHJhZWZpay5odHRwLnJvdXRlcnMuaHR0cHMtMC15NGNzY3NjOHMwOGM4ODA4Z28wNDQ4czAucnVsZT1Ib3N0KGB2aWJuYWkuY29tYCkgJiYgUGF0aFByZWZpeChgL2ApCnRyYWVmaWsuaHR0cC5yb3V0ZXJzLmh0dHBzLTAteTRjc2NzYzhzMDhjODgwOGdvMDQ0OHMwLnNlcnZpY2U9aHR0cHMtMC15NGNzY3NjOHMwOGM4ODA4Z28wNDQ4czAKdHJhZWZpay5odHRwLnJvdXRlcnMuaHR0cHMtMC15NGNzY3NjOHMwOGM4ODA4Z28wNDQ4czAudGxzLmNlcnRyZXNvbHZlcj1sZXRzZW5jcnlwdAp0cmFlZmlrLmh0dHAucm91dGVycy5odHRwcy0wLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC50bHM9dHJ1ZQp0cmFlZmlrLmh0dHAucm91dGVycy5odHRwcy0xLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC5lbnRyeVBvaW50cz1odHRwcwp0cmFlZmlrLmh0dHAucm91dGVycy5odHRwcy0xLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC5taWRkbGV3YXJlcz1nemlwCnRyYWVmaWsuaHR0cC5yb3V0ZXJzLmh0dHBzLTEteTRjc2NzYzhzMDhjODgwOGdvMDQ0OHMwLnJ1bGU9SG9zdChgd3d3LnZpYm5haS5jb21gKSAmJiBQYXRoUHJlZml4KGAvYCkKdHJhZWZpay5odHRwLnJvdXRlcnMuaHR0cHMtMS15NGNzY3NjOHMwOGM4ODA4Z28wNDQ4czAuc2VydmljZT1odHRwcy0xLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMAp0cmFlZmlrLmh0dHAucm91dGVycy5odHRwcy0xLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC50bHMuY2VydHJlc29sdmVyPWxldHNlbmNyeXB0CnRyYWVmaWsuaHR0cC5yb3V0ZXJzLmh0dHBzLTEteTRjc2NzYzhzMDhjODgwOGdvMDQ0OHMwLnRscz10cnVlCnRyYWVmaWsuaHR0cC5zZXJ2aWNlcy5odHRwLTAteTRjc2NzYzhzMDhjODgwOGdvMDQ0OHMwLmxvYWRiYWxhbmNlci5zZXJ2ZXIucG9ydD0zMDAwCnRyYWVmaWsuaHR0cC5zZXJ2aWNlcy5odHRwLTEteTRjc2NzYzhzMDhjODgwOGdvMDQ0OHMwLmxvYWRiYWxhbmNlci5zZXJ2ZXIucG9ydD0zMDAwCnRyYWVmaWsuaHR0cC5zZXJ2aWNlcy5odHRwcy0wLXk0Y3Njc2M4czA4Yzg4MDhnbzA0NDhzMC5sb2FkYmFsYW5jZXIuc2VydmVyLnBvcnQ9MzAwMAp0cmFlZmlrLmh0dHAuc2VydmljZXMuaHR0cHMtMS15NGNzY3NjOHMwOGM4ODA4Z28wNDQ4czAubG9hZGJhbGFuY2VyLnNlcnZlci5wb3J0PTMwMDAKY2FkZHlfMC5lbmNvZGU9enN0ZCBnemlwCmNhZGR5XzAuaGFuZGxlX3BhdGguMF9yZXZlcnNlX3Byb3h5PXt7dXBzdHJlYW1zIDMwMDB9fQpjYWRkeV8wLmhhbmRsZV9wYXRoPS8qCmNhZGR5XzAuaGVhZGVyPS1TZXJ2ZXIKY2FkZHlfMC50cnlfZmlsZXM9e3BhdGh9IC9pbmRleC5odG1sIC9pbmRleC5waHAKY2FkZHlfMD1odHRwczovL3ZpYm5haS5jb20KY2FkZHlfMS5lbmNvZGU9enN0ZCBnemlwCmNhZGR5XzEuaGFuZGxlX3BhdGguMV9yZXZlcnNlX3Byb3h5PXt7dXBzdHJlYW1zIDMwMDB9fQpjYWRkeV8xLmhhbmRsZV9wYXRoPS8qCmNhZGR5XzEuaGVhZGVyPS1TZXJ2ZXIKY2FkZHlfMS50cnlfZmlsZXM9e3BhdGh9IC9pbmRleC5odG1sIC9pbmRleC5waHAKY2FkZHlfMT1odHRwczovL3d3dy52aWJuYWkuY29tCmNhZGR5X2luZ3Jlc3NfbmV0d29yaz1jb29saWZ5","dockerfile_target_build":null,"manual_webhook_secret_github":null,"manual_webhook_secret_gitlab":null,"docker_compose_location":"\/docker-compose.yaml","docker_compose":null,"docker_compose_raw":null,"docker_compose_domains":null,"deleted_at":null,"docker_compose_custom_start_command":null,"docker_compose_custom_build_command":null,"swarm_replicas":1,"swarm_placement_constraints":null,"manual_webhook_secret_bitbucket":null,"custom_docker_run_options":null,"post_deployment_command":null,"post_deployment_command_container":null,"pre_deployment_command":null,"pre_deployment_command_container":null,"watch_paths":null,"custom_healthcheck_found":false,"manual_webhook_secret_gitea":"c23f93114f0378ff15cbd863e3fbd23bb5c127ceace1756b","redirect":"both","compose_parsing_version":"5","last_online_at":"2026-05-14 18:47:02","custom_nginx_configuration":"","custom_network_aliases":null,"is_http_basic_auth_enabled":false,"http_basic_auth_username":null,"http_basic_auth_password":null,"restart_count":0,"last_restart_at":null,"last_restart_type":null,"health_check_type":"http","health_check_command":null,"additional_servers_count":0,"additional_networks_count":0,"server_status":true,"environment":{"id":1,"name":"production","project_id":1,"created_at":"2026-02-14T21:49:21.000000Z","updated_at":"2026-02-14T21:49:21.000000Z","description":null,"uuid":"foskksoccksk0kc4g8sk88ok","project":{"id":1,"uuid":"f4owwggokksgw0ogo0844os0","name":"Vibn","description":"","team_id":0,"created_at":"2026-02-14T21:49:21.000000Z","updated_at":"2026-02-16T03:38:00.000000Z","team":{"id":0,"name":"Root Team","description":null,"personal_team":true,"created_at":"2026-02-14T21:47:46.000000Z","updated_at":"2026-02-14T21:49:26.000000Z","show_boarding":false,"custom_server_limit":null}}},"additional_servers":[],"destination":{"id":0,"name":"coolify","uuid":"zkogkggkw0wg40gccks80oo0","network":"coolify","server_id":0,"created_at":"2026-02-14T21:41:51.000000Z","updated_at":"2026-02-14T21:41:51.000000Z","server":{"id":0,"uuid":"jws4g4cgssss4cw48s488woc","name":"localhost","description":"This is the server where Coolify is running on. Don't delete this!","ip":"host.docker.internal","port":22,"user":"root","team_id":0,"private_key_id":0,"proxy":{"type":"TRAEFIK","status":"running","last_saved_settings":null,"last_applied_settings":null,"redirect_enabled":true,"force_stop":false},"created_at":"2026-02-14T21:41:51.000000Z","updated_at":"2026-05-14T18:46:33.000000Z","unreachable_notification_sent":false,"unreachable_count":0,"high_disk_usage_notification_sent":false,"log_drain_notification_sent":false,"swarm_cluster":null,"validation_logs":null,"sentinel_updated_at":"2026-05-14 18:46:33","deleted_at":null,"ip_previous":null,"hetzner_server_id":null,"cloud_provider_token_id":null,"hetzner_server_status":null,"is_validating":false,"detected_traefik_version":"3.6.8","traefik_outdated_info":{"current":"3.6.8","latest":"3.6.11","type":"patch_update","checked_at":"2026-05-10T00:00:42+00:00"},"server_metadata":null,"is_coolify_host":true,"settings":{"id":1,"is_swarm_manager":false,"is_jump_server":false,"is_build_server":false,"is_reachable":true,"is_usable":true,"server_id":0,"created_at":"2026-02-14T21:41:51.000000Z","updated_at":"2026-02-14T21:49:13.000000Z","wildcard_domain":null,"is_cloudflare_tunnel":false,"is_logdrain_newrelic_enabled":false,"logdrain_newrelic_license_key":null,"logdrain_newrelic_base_uri":null,"is_logdrain_highlight_enabled":false,"logdrain_highlight_project_id":null,"is_logdrain_axiom_enabled":false,"logdrain_axiom_dataset_name":null,"logdrain_axiom_api_key":null,"is_swarm_worker":false,"is_logdrain_custom_enabled":false,"logdrain_custom_config":null,"logdrain_custom_config_parser":null,"concurrent_builds":2,"dynamic_timeout":3600,"force_disabled":false,"is_metrics_enabled":false,"generate_exact_labels":false,"force_docker_cleanup":true,"docker_cleanup_frequency":"0 *\/6 * * *","docker_cleanup_threshold":75,"server_timezone":"UTC","delete_unused_volumes":false,"delete_unused_networks":false,"is_sentinel_enabled":true,"sentinel_token":"eyJpdiI6Ii9MSGRUb1JDWDZUSGE2b2dPVU5ka2c9PSIsInZhbHVlIjoiRVVkYXBZYmtIenRtTVBqK01GRnhJNERrT3RwLzhYK3EwT2hIM2JtOS9TeGdZNEl2VWRHczBHYXgzQTJ4UnpJTkluVU1RRXF1SVVXREZBZVpyaU1TZEE9PSIsIm1hYyI6IjdjZjYxNmEzZTM2OThjYjA4MGVlYzBkOGZlOGNmOTU1ZTA5MjJmZTY5ZGQ5OTczZWRkYTRkZDQ0ZDMzY2VjNzciLCJ0YWciOiIifQ==","sentinel_metrics_refresh_rate_seconds":10,"sentinel_metrics_history_days":7,"sentinel_push_interval_seconds":60,"sentinel_custom_url":"http:\/\/host.docker.internal:8000","server_disk_usage_notification_threshold":80,"is_sentinel_debug_enabled":false,"server_disk_usage_check_frequency":"0 23 * * *","is_terminal_enabled":true,"deployment_queue_limit":25,"disable_application_image_retention":false}}}},"application_id":"8","application_name":"vibn-frontend","build_server_id":null,"commit":"32a4812383734eea005a15a5bfd8a8127f4e259b","commit_message":"design(ui): brighten hero breadcrumb text contrast","current_process_id":"3951450","deployment_url":"\/project\/f4owwggokksgw0ogo0844os0\/environment\/foskksoccksk0kc4g8sk88ok\/application\/y4cscsc8s08c8808go0448s0\/deployment\/y6wyqjod8h2mbmzpmobeoozd","deployment_uuid":"y6wyqjod8h2mbmzpmobeoozd","destination_id":"0","docker_registry_image_tag":null,"finished_at":"2026-05-14T18:46:09.000000Z","force_rebuild":false,"git_type":null,"horizon_job_id":"3b757c86-bdb5-492b-a56e-a9fa3c307516","horizon_job_worker":"e55bacf73ffc","is_api":true,"is_webhook":false,"logs":"[{\"command\":null,\"output\":\"Docker 27.0.3 with BuildKit and Buildx detected on deployment server (localhost).\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:45:55.202830Z\",\"hidden\":false,\"batch\":1},{\"command\":null,\"output\":\"Starting deployment of https:\\\/\\\/git.vibnai.com\\\/mark\\\/vibn-frontend.git:main to localhost.\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:45:55.211689Z\",\"hidden\":false,\"batch\":1,\"order\":2},{\"command\":null,\"output\":\"Preparing container with helper image: ghcr.io\\\/coollabsio\\\/coolify-helper:1.0.13\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:45:55.535302Z\",\"hidden\":false,\"batch\":1,\"order\":3},{\"command\":\"docker stop -t 30 y6wyqjod8h2mbmzpmobeoozd\",\"output\":\"Error response from daemon: No such container: y6wyqjod8h2mbmzpmobeoozd\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:45:55.783295Z\",\"hidden\":true,\"batch\":1,\"order\":4},{\"command\":\"docker run -d --network 'coolify' --name y6wyqjod8h2mbmzpmobeoozd --rm -v \\\/var\\\/run\\\/docker.sock:\\\/var\\\/run\\\/docker.sock ghcr.io\\\/coollabsio\\\/coolify-helper:1.0.13\",\"output\":\"1299fc850ee83025e2e659b2254716e885280a0e4ca155500af7dfbfc64ab76a\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:45:56.065220Z\",\"hidden\":true,\"batch\":2,\"order\":5},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'GIT_SSH_COMMAND=\\\"ssh -o ConnectTimeout=30 -p 22 -o Port=22 -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=\\\/dev\\\/null\\\" git ls-remote https:\\\/\\\/git.vibnai.com\\\/mark\\\/vibn-frontend.git refs\\\/heads\\\/main'\",\"output\":\"32a4812383734eea005a15a5bfd8a8127f4e259b\\trefs\\\/heads\\\/main\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:45:57.707790Z\",\"hidden\":true,\"batch\":3,\"order\":6},{\"command\":null,\"output\":\"----------------------------------------\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:45:57.733196Z\",\"hidden\":false,\"batch\":1,\"order\":7},{\"command\":null,\"output\":\"Importing https:\\\/\\\/git.vibnai.com\\\/mark\\\/vibn-frontend.git:main (commit sha 32a4812383734eea005a15a5bfd8a8127f4e259b) to \\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd.\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:45:57.752432Z\",\"hidden\":false,\"batch\":1,\"order\":8},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'git clone --depth=1 --recurse-submodules --shallow-submodules -b '\\\\''main'\\\\'' '\\\\''https:\\\/\\\/git.vibnai.com\\\/mark\\\/vibn-frontend.git'\\\\'' '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\'' && cd '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\'' && GIT_SSH_COMMAND=\\\"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=\\\/dev\\\/null\\\" git fetch --depth=1 origin '\\\\''32a4812383734eea005a15a5bfd8a8127f4e259b'\\\\'' && git -c advice.detachedHead=false checkout '\\\\''32a4812383734eea005a15a5bfd8a8127f4e259b'\\\\'' >\\\/dev\\\/null 2>&1 && cd '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\'' && if [ -f .gitmodules ]; then sed -i \\\"s#git@\\\\(.*\\\\):#https:\\\/\\\/\\\\1\\\/#g\\\" '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\''\\\/.gitmodules || true && git submodule sync && GIT_SSH_COMMAND=\\\"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=\\\/dev\\\/null\\\" git submodule update --init --recursive --depth=1; fi && cd '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\'' && GIT_SSH_COMMAND=\\\"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=\\\/dev\\\/null\\\" git lfs pull'\",\"output\":\"Cloning into '\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'...\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:45:58.176679Z\",\"hidden\":true,\"batch\":4,\"order\":9},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'git clone --depth=1 --recurse-submodules --shallow-submodules -b '\\\\''main'\\\\'' '\\\\''https:\\\/\\\/git.vibnai.com\\\/mark\\\/vibn-frontend.git'\\\\'' '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\'' && cd '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\'' && GIT_SSH_COMMAND=\\\"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=\\\/dev\\\/null\\\" git fetch --depth=1 origin '\\\\''32a4812383734eea005a15a5bfd8a8127f4e259b'\\\\'' && git -c advice.detachedHead=false checkout '\\\\''32a4812383734eea005a15a5bfd8a8127f4e259b'\\\\'' >\\\/dev\\\/null 2>&1 && cd '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\'' && if [ -f .gitmodules ]; then sed -i \\\"s#git@\\\\(.*\\\\):#https:\\\/\\\/\\\\1\\\/#g\\\" '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\''\\\/.gitmodules || true && git submodule sync && GIT_SSH_COMMAND=\\\"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=\\\/dev\\\/null\\\" git submodule update --init --recursive --depth=1; fi && cd '\\\\''\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd'\\\\'' && GIT_SSH_COMMAND=\\\"ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=\\\/dev\\\/null\\\" git lfs pull'\",\"output\":\"From https:\\\/\\\/git.vibnai.com\\\/mark\\\/vibn-frontend\\n * branch 32a4812383734eea005a15a5bfd8a8127f4e259b -> FETCH_HEAD\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:45:59.239072Z\",\"hidden\":true,\"batch\":4,\"order\":10},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'cd \\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd && git log -1 '\\\\''32a4812383734eea005a15a5bfd8a8127f4e259b'\\\\'' --pretty=%B'\",\"output\":\"design(ui): brighten hero breadcrumb text contrast\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:46:00.332382Z\",\"hidden\":true,\"batch\":6,\"order\":11},{\"command\":null,\"output\":\"Image not found (y4cscsc8s08c8808go0448s0:32a4812383734eea005a15a5bfd8a8127f4e259b). Building new image.\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:46:00.629367Z\",\"hidden\":false,\"batch\":1,\"order\":12},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'cat \\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd\\\/Dockerfile'\",\"output\":\"cat: can't open '\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd\\\/Dockerfile': No such file or directory\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:02.489659Z\",\"hidden\":true,\"batch\":10,\"order\":13},{\"command\":null,\"output\":\"Creating build-time .env file in \\\/artifacts (outside Docker context).\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:46:03.830024Z\",\"hidden\":true,\"batch\":1,\"order\":14},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'cat \\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd\\\/Dockerfile'\",\"output\":\"cat: can't open '\\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd\\\/Dockerfile': No such file or directory\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:06.146453Z\",\"hidden\":true,\"batch\":13,\"order\":15},{\"command\":null,\"output\":\"----------------------------------------\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:46:06.176327Z\",\"hidden\":false,\"batch\":1,\"order\":16},{\"command\":null,\"output\":\"Building docker image started.\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:46:06.197573Z\",\"hidden\":false,\"batch\":1,\"order\":17},{\"command\":null,\"output\":\"To check the current progress, click on Show Debug Logs.\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:46:06.218852Z\",\"hidden\":false,\"batch\":1,\"order\":18},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'cat \\\/artifacts\\\/build.sh'\",\"output\":\"cd \\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd && set -a && source \\\/artifacts\\\/build-time.env && set +a && DOCKER_BUILDKIT=1 docker build --add-host coolify:10.0.1.11 --add-host coolify-db:10.0.1.3 --add-host coolify-realtime:10.0.1.9 --add-host coolify-redis:10.0.1.2 --add-host kggs4ogckc0w8ggwkkk88kck:10.0.1.13 --add-host kggs4ogckc0w8ggwkkk88kck-proxy:10.0.1.6 --add-host mh20hmj0h7pg9ftt0upo8s8p:10.0.1.24 --add-host p4dpjwv9p188h3y21c4xgiwy:10.0.1.21 --add-host q8i3lfauirs97awl4pieqbme:10.0.1.16 --add-host qckwo4g8gs8kw08gkgc0ss0g:10.0.1.8 --add-host qckwo4g8gs8kw08gkgc0ss0g-proxy:10.0.1.20 --add-host rlwvhmh25r7n2g2pbzygjlms:10.0.1.30 --add-host vibn-dev-dm3hqkyjknucuehfmqb75627:10.0.1.14 --add-host vibn-dev-lbhz4nd7wllowjlnwm1tmhu3:10.0.1.10 --add-host yoscw0og00gkgcsgswoskc8c:10.0.1.17 --add-host yoscw0og00gkgcsgswoskc8c-proxy:10.0.1.7 --add-host zlxavhunxe6vit057ntt7imx:10.0.1.27 --network host -f \\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd\\\/Dockerfile --progress plain -t y4cscsc8s08c8808go0448s0:32a4812383734eea005a15a5bfd8a8127f4e259b --build-arg COOLIFY_URL --build-arg COOLIFY_BRANCH --build-arg COOLIFY_RESOURCE_UUID --build-arg OPENSRS_API_KEY_LIVE --build-arg GITEA_API_TOKEN --build-arg NEXTAUTH_URL --build-arg COOLIFY_SERVER_UUID --build-arg GITEA_WEBHOOK_SECRET --build-arg AGENT_RUNNER_SECRET --build-arg GEMINI_MODEL --build-arg NEXTAUTH_SECRET --build-arg NEXT_PUBLIC_APP_URL --build-arg GOOGLE_SERVICE_ACCOUNT_KEY_B64 --build-arg GITEA_API_URL --build-arg GITEA_ADMIN_USER --build-arg GOOGLE_CLIENT_SECRET --build-arg AGENT_RUNNER_URL --build-arg ADMIN_MIGRATE_SECRET --build-arg GOOGLE_API_KEY --build-arg COOLIFY_API_TOKEN --build-arg OPENSRS_RESELLER_USERNAME --build-arg OPENSRS_API_KEY_TEST --build-arg OPENSRS_PORT --build-arg OPENSRS_MODE --build-arg OPENSRS_CURRENCY --build-arg GITHUB_CLIENT_ID --build-arg GITHUB_CLIENT_SECRET --build-arg COOLIFY_SSH_HOST --build-arg COOLIFY_SSH_PORT --build-arg COOLIFY_SSH_USER --build-arg COOLIFY_SSH_PRIVATE_KEY_B64 --build-arg GCP_PROJECT_ID --build-arg GOOGLE_CLIENT_ID --build-arg OPENSRS_HOST_LIVE --build-arg SENTRY_AUTH_TOKEN --build-arg GITEA_USERNAME --build-arg NEXT_PUBLIC_SENTRY_DSN --build-arg INFRA_HEALTH_SECRET --build-arg DATABASE_URL --build-arg OPENSRS_HOST_TEST --build-arg VIBN_SECRETS_KEY --build-arg COOLIFY_BUILD_SECRETS_HASH=03fb6d60adb1c477e10fc8b43e21ba4312d09b95d0cfa99168b60aef8a513707 --build-arg 'COOLIFY_URL' --build-arg 'COOLIFY_BRANCH' --build-arg 'COOLIFY_RESOURCE_UUID' \\\/artifacts\\\/y6wyqjod8h2mbmzpmobeoozd\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:46:07.568468Z\",\"hidden\":true,\"batch\":14,\"order\":19},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'bash \\\/artifacts\\\/build.sh'\",\"output\":\"#0 building with \\\"default\\\" instance using docker driver\\n\\n#1 [internal] load build definition from Dockerfile\\n#1 transferring dockerfile:\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:08.758342Z\",\"hidden\":true,\"batch\":14,\"order\":20},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'bash \\\/artifacts\\\/build.sh'\",\"output\":\"#1 transferring dockerfile: 2B 0.0s done\\n#1 DONE 0.2s\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:08.950984Z\",\"hidden\":true,\"batch\":14,\"order\":21},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'bash \\\/artifacts\\\/build.sh'\",\"output\":\"ERROR: failed to build: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:08.966757Z\",\"hidden\":true,\"batch\":14,\"order\":22},{\"command\":\"docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'bash \\\/artifacts\\\/build.sh'\",\"output\":\"exit status 1\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:08.972325Z\",\"hidden\":true,\"batch\":14,\"order\":23},{\"command\":null,\"output\":\"========================================\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.143367Z\",\"hidden\":false,\"batch\":1,\"order\":24},{\"command\":null,\"output\":\"Deployment failed: Command execution failed (exit code 1): docker exec y6wyqjod8h2mbmzpmobeoozd bash -c 'bash \\\/artifacts\\\/build.sh'\\nError: #0 building with \\\"default\\\" instance using docker driver\\n\\n#1 [internal] load build definition from Dockerfile\\n#1 transferring dockerfile:\\n#1 transferring dockerfile: 2B 0.0s done\\n#1 DONE 0.2s\\nERROR: failed to build: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory\\nexit status 1\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.172726Z\",\"hidden\":false,\"batch\":1,\"order\":25},{\"command\":null,\"output\":\"Error type: App\\\\Exceptions\\\\DeploymentException\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.196736Z\",\"hidden\":true,\"batch\":1,\"order\":26},{\"command\":null,\"output\":\"Error code: 0\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.220352Z\",\"hidden\":true,\"batch\":1,\"order\":27},{\"command\":null,\"output\":\"Location: \\\/var\\\/www\\\/html\\\/app\\\/Traits\\\/ExecuteRemoteCommand.php:242\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.240357Z\",\"hidden\":true,\"batch\":1,\"order\":28},{\"command\":null,\"output\":\"Stack trace (first 5 lines):\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.264695Z\",\"hidden\":true,\"batch\":1,\"order\":29},{\"command\":null,\"output\":\"#0 \\\/var\\\/www\\\/html\\\/app\\\/Traits\\\/ExecuteRemoteCommand.php(106): App\\\\Jobs\\\\ApplicationDeploymentJob->executeCommandWithProcess()\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.286381Z\",\"hidden\":true,\"batch\":1,\"order\":30},{\"command\":null,\"output\":\"#1 \\\/var\\\/www\\\/html\\\/vendor\\\/laravel\\\/framework\\\/src\\\/Illuminate\\\/Collections\\\/Traits\\\/EnumeratesValues.php(275): App\\\\Jobs\\\\ApplicationDeploymentJob->{closure:App\\\\Traits\\\\ExecuteRemoteCommand::execute_remote_command():72}()\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.298778Z\",\"hidden\":true,\"batch\":1,\"order\":31},{\"command\":null,\"output\":\"#2 \\\/var\\\/www\\\/html\\\/app\\\/Traits\\\/ExecuteRemoteCommand.php(72): Illuminate\\\\Support\\\\Collection->each()\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.311709Z\",\"hidden\":true,\"batch\":1,\"order\":32},{\"command\":null,\"output\":\"#3 \\\/var\\\/www\\\/html\\\/app\\\/Jobs\\\/ApplicationDeploymentJob.php(3290): App\\\\Jobs\\\\ApplicationDeploymentJob->execute_remote_command()\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.325249Z\",\"hidden\":true,\"batch\":1,\"order\":33},{\"command\":null,\"output\":\"#4 \\\/var\\\/www\\\/html\\\/app\\\/Jobs\\\/ApplicationDeploymentJob.php(898): App\\\\Jobs\\\\ApplicationDeploymentJob->build_image()\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.338655Z\",\"hidden\":true,\"batch\":1,\"order\":34},{\"command\":null,\"output\":\"========================================\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.348379Z\",\"hidden\":false,\"batch\":1,\"order\":35},{\"command\":null,\"output\":\"Deployment failed. Removing the new version of your application.\",\"type\":\"stderr\",\"timestamp\":\"2026-05-14T18:46:09.358630Z\",\"hidden\":false,\"batch\":1,\"order\":36},{\"command\":null,\"output\":\"Gracefully shutting down build container: y6wyqjod8h2mbmzpmobeoozd\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:46:10.400671Z\",\"hidden\":false,\"batch\":1,\"order\":37},{\"command\":\"docker stop -t 30 y6wyqjod8h2mbmzpmobeoozd\",\"output\":\"y6wyqjod8h2mbmzpmobeoozd\",\"type\":\"stdout\",\"timestamp\":\"2026-05-14T18:46:11.039730Z\",\"hidden\":true,\"batch\":17,\"order\":38}]","only_this_server":false,"pull_request_id":0,"restart_only":false,"rollback":false,"server_id":0,"server_name":"localhost","status":"failed","created_at":"2026-05-14T18:45:53.000000Z","updated_at":"2026-05-14T18:46:11.000000Z"}
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/context/summarize/route.ts
|
||
|
||
### const MODEL › L1-11
|
||
```
|
||
import { NextRequest, NextResponse } from "next/server";
|
||
|
||
const MODEL = process.env.GEMINI_MODEL || 'gemini-2.0-flash-exp';
|
||
const API_KEY = process.env.GOOGLE_API_KEY || '';
|
||
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent`;
|
||
|
||
export async function POST(request: NextRequest) {
|
||
try {
|
||
const { content, title } = await request.json();
|
||
|
||
if (!content) {
|
||
```
|
||
|
||
42 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/analyze-chats/route.ts
|
||
|
||
### const GEMINI_MODEL › L1-21
|
||
```
|
||
import { NextResponse } from 'next/server';
|
||
import { authSession } from "@/lib/auth/session-server";
|
||
import { query } from '@/lib/db-postgres';
|
||
|
||
export const maxDuration = 60;
|
||
|
||
const GEMINI_API_KEY = process.env.GOOGLE_API_KEY || '';
|
||
const GEMINI_MODEL = process.env.GEMINI_MODEL || 'gemini-2.0-flash-exp';
|
||
const GEMINI_BASE_URL = 'https://generativelanguage.googleapis.com/v1beta/models';
|
||
|
||
async function callGemini(prompt: string): Promise<string> {
|
||
const res = await fetch(`${GEMINI_BASE_URL}/${GEMINI_MODEL}:generateContent?key=${GEMINI_API_KEY}`, {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({
|
||
contents: [{ parts: [{ text: prompt }] }],
|
||
generationConfig: { temperature: 0.2, maxOutputTokens: 4096 },
|
||
}),
|
||
});
|
||
const data = await res.json();
|
||
const text = data?.candidates?.[0]?.content?.parts?.[0]?.text ?? '';
|
||
```
|
||
|
||
105 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/analyze-repo/route.ts
|
||
|
||
### const GEMINI_MODEL › L1-11
|
||
```
|
||
import { NextResponse } from 'next/server';
|
||
import { authSession } from "@/lib/auth/session-server";
|
||
import { query } from '@/lib/db-postgres';
|
||
import { execSync } from 'child_process';
|
||
import { existsSync, readdirSync, readFileSync, statSync, rmSync } from 'fs';
|
||
import { join } from 'path';
|
||
|
||
export const maxDuration = 120;
|
||
|
||
const GEMINI_API_KEY = process.env.GOOGLE_API_KEY || '';
|
||
const GEMINI_MODEL = process.env.GEMINI_MODEL || 'gemini-2.0-flash-exp';
|
||
```
|
||
|
||
205 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### async function callGemini( ) › const res › L14-24
|
||
```
|
||
async function callGemini(prompt: string): Promise<string> {
|
||
const res = await fetch(`${GEMINI_BASE_URL}/${GEMINI_MODEL}:generateContent?key=${GEMINI_API_KEY}`, {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({
|
||
contents: [{ parts: [{ text: prompt }] }],
|
||
generationConfig: { temperature: 0.2, maxOutputTokens: 6000 },
|
||
}),
|
||
});
|
||
const data = await res.json();
|
||
return data?.candidates?.[0]?.content?.parts?.[0]?.text ?? '';
|
||
```
|
||
|
||
1 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/projects/[projectId]/generate-migration-plan/route.ts
|
||
|
||
### const GEMINI_MODEL › L1-21
|
||
```
|
||
import { NextResponse } from 'next/server';
|
||
import { authSession } from "@/lib/auth/session-server";
|
||
import { query } from '@/lib/db-postgres';
|
||
|
||
export const maxDuration = 120;
|
||
|
||
const GEMINI_API_KEY = process.env.GOOGLE_API_KEY || '';
|
||
const GEMINI_MODEL = process.env.GEMINI_MODEL || 'gemini-2.0-flash-exp';
|
||
const GEMINI_BASE_URL = 'https://generativelanguage.googleapis.com/v1beta/models';
|
||
|
||
async function callGemini(prompt: string): Promise<string> {
|
||
const res = await fetch(`${GEMINI_BASE_URL}/${GEMINI_MODEL}:generateContent?key=${GEMINI_API_KEY}`, {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({
|
||
contents: [{ parts: [{ text: prompt }] }],
|
||
generationConfig: { temperature: 0.3, maxOutputTokens: 8000 },
|
||
}),
|
||
});
|
||
const data = await res.json();
|
||
return data?.candidates?.[0]?.content?.parts?.[0]?.text ?? '';
|
||
```
|
||
|
||
118 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/lib/ai/gemini-chat.ts
|
||
|
||
### const GEMINI_MODEL › L11-15
|
||
```
|
||
|
||
const GEMINI_API_KEY = process.env.GOOGLE_API_KEY || "";
|
||
const GEMINI_MODEL = process.env.VIBN_CHAT_MODEL || "gemini-3.1-pro-preview";
|
||
const GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta";
|
||
|
||
```
|
||
|
||
### async function callGeminiChat( ) › const url › L145-155
|
||
```
|
||
}> {
|
||
const url = `${GEMINI_BASE_URL}/models/${GEMINI_MODEL}:generateContent?key=${GEMINI_API_KEY}`;
|
||
|
||
let res: Response;
|
||
try {
|
||
res = await fetch(url, {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify(buildBody(opts)),
|
||
});
|
||
} catch (e) {
|
||
```
|
||
|
||
50 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### async function* streamGeminiChat( ) › const url › L216-226
|
||
```
|
||
}): AsyncGenerator<ChatChunk> {
|
||
const url = `${GEMINI_BASE_URL}/models/${GEMINI_MODEL}:streamGenerateContent?key=${GEMINI_API_KEY}&alt=sse`;
|
||
|
||
let res: Response;
|
||
try {
|
||
res = await fetch(url, {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify(buildBody(opts)),
|
||
});
|
||
} catch (e) {
|
||
```
|
||
|
||
59 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/lib/ai/gemini-client.ts
|
||
|
||
### const DEFAULT_MODEL › L1-11
|
||
```
|
||
import type { LlmClient, StructuredCallArgs } from '@/lib/ai/llm-client';
|
||
import { zodToJsonSchema } from 'zod-to-json-schema';
|
||
|
||
const DEFAULT_MODEL = process.env.GEMINI_MODEL || 'gemini-2.0-flash-exp';
|
||
const GOOGLE_API_KEY = process.env.GOOGLE_API_KEY || '';
|
||
|
||
const GEMINI_BASE_URL = 'https://generativelanguage.googleapis.com/v1beta/models';
|
||
|
||
class JsonValidationError extends Error {
|
||
constructor(message: string, public readonly rawResponse: string) {
|
||
super(message);
|
||
```
|
||
|
||
179 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: cat << 'EOF' > test-gemini.js
|
||
const API_KEY = "AIzaSyCwXxLU6dGrRLfHRxGtOWg2hi-RQGMn664";
|
||
const MODEL = "gemini-3.1-pro-preview";
|
||
const GEMINI_URL = `https://generativelanguage.googleapis.com/v1beta/models/${MODEL}:generateContent`;
|
||
|
||
fetch(`${GEMINI_URL}?key=${API_KEY}`, {
|
||
method: 'POST',
|
||
headers: { 'Content-Type': 'application/json' },
|
||
body: JSON.stringify({
|
||
contents: [{ role: 'user', parts: [{ text: "test" }] }],
|
||
generationConfig: { temperature: 0.3 },
|
||
}),
|
||
}).then(r => r.text()).then(console.log).catch(console.error);
|
||
EOF
|
||
node test-gemini.js**
|
||
Status: Completed
|
||
|
||
Terminal:
|
||
```
|
||
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
|
||
{
|
||
"candidates": [
|
||
{
|
||
"content": {
|
||
"parts": [
|
||
{
|
||
"text": "Test received! How can I help you today?",
|
||
"thoughtSignature": "EqwFCqkFAQw51sdmH0UDEbJzLXZDCZC9jbkaaMOYChuVq3QECkziWMBd28E2v8ciiTrWMe1bGrid6Oj9n8AvQ4w4xv5/n3Ca1n7iF/aFrGvRyl8AjfeFZKHBBUw3v7Tla0MHSF03RMJ1VGYVHjihWXzgUxD/PbzAZG0+wLDS9vcgDgaZ+v7d24E1uCF+uviOugLrzHre+XvgVw0eLdM55TkQHB4jkdapnErxHKbH6FkHDnSewm5NYYlQhnjJOCmo14k37eAjrxQsyNJ8e+7WjFEAr34k4zVR3cCK5apO4yR3Z3HcEgF3s4s27RbeWcYrZsDw8hyuCDVGTh4zLNQX9SxrKLD061CfCiGLpIYJpX8TU8Ml2aGQ01PtvPNjPeIobJYRLprQRQoE4+PNZ1/VHBY6HsgudI3c8eg04Nhnt6iEm45lRpdeSo4uOux5b9Kpavq9r33td+zMRJDNRtY9V0PC1mZcS6/ROtNSUT6K3nbNcRF8sLyhBkre2yh7LglyB2ff50wLxxA2dVvPZzZfZHpxQqMd1/KDONISf/Iy0sPrdujfn5uOE+KbVk42H/tJM9RGJJmHQfS09zDRyIlq+/mv7hUta7851/lAzg6oXDejcZYM7hsN6Hl+xEyoKjnnrPATS196mqOLhuOymtxcRpqJNeIzz92eSwuGyKnbMLDrHnGhkhuNKmo+NE7bQ9IccorIcIZwnZyRfSI50Eevv29XEPARQJB5wVzDCvpm/Du1iZesWDFc66n7saLJdEVdIvQ4sGvBpPd/BD2pN7lqxBJFIdWeCDODtyrapTaCcS4aR0St16jduafaKXLEr4EvBqK/8ct1z3U3e9D2Dpo6VayPX2y9mU+rAle04KiQkFCobWI7yLvVQvVWfvKtjyWvMUJ0qz3Ir+c5MhTwI84d"
|
||
}
|
||
],
|
||
"role": "model"
|
||
},
|
||
"finishReason": "STOP",
|
||
"index": 0
|
||
}
|
||
],
|
||
"usageMetadata": {
|
||
"promptTokenCount": 2,
|
||
"candidatesTokenCount": 10,
|
||
"totalTokenCount": 175,
|
||
"promptTokensDetails": [
|
||
{
|
||
"modality": "TEXT",
|
||
"tokenCount": 2
|
||
}
|
||
],
|
||
"thoughtsTokenCount": 163,
|
||
"serviceTier": "standard"
|
||
},
|
||
"modelVersion": "gemini-3.1-pro-preview",
|
||
"responseId": "F2UHatntB6usz7IP_67s0QY"
|
||
}
|
||
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `/api/context/summarize`**
|
||
Status: Completed
|
||
|
||
Found 2 matches:
|
||
|
||
## Matches in master-ai/vibn-frontend/CHECKLIST_FIXES_COMPLETE.md
|
||
|
||
### # Checklist & Document Upload - All Issues Fixed ✅ › ## How It Works Now › ### Text Paste Flow › L137-140
|
||
```
|
||
3. Frontend calls:
|
||
- `/api/context/summarize` (generates AI summary)
|
||
- `/api/projects/[projectId]/knowledge/import-ai-chat` (creates knowledge_item)
|
||
4. Backend creates:
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/scripts/test-endpoints.sh
|
||
|
||
### L101-105
|
||
```
|
||
echo "8️⃣ Utility APIs"
|
||
echo "-----------------------------------"
|
||
test_endpoint "POST" "/api/context/summarize" "400" "Summarize context (requires body)"
|
||
test_endpoint "GET" "/api/debug/env" "200" "Debug: Environment check"
|
||
test_endpoint "GET" "/api/diagnose" "200" "Diagnose system"
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: cat .env**
|
||
Status: Completed
|
||
|
||
Terminal:
|
||
```
|
||
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
|
||
cat: .env: No such file or directory
|
||
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: head -n 5 .env.local**
|
||
Status: Completed
|
||
|
||
Terminal:
|
||
```
|
||
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
|
||
# ── Google / Gemini ───────────────────────────────────────────────────────────
|
||
GOOGLE_API_KEY=AIzaSyCwXxLU6dGrRLfHRxGtOWg2hi-RQGMn664
|
||
GEMINI_MODEL=gemini-3.1-pro
|
||
|
||
# ── Google OAuth (NextAuth) ────────────────────────────────────────────────────
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: vibn\-frontend/.env.local**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/.env.local
|
||
```
|
||
# ── Google / Gemini ───────────────────────────────────────────────────────────
|
||
GOOGLE_API_KEY=AIzaSyCwXxLU6dGrRLfHRxGtOWg2hi-RQGMn664
|
||
GEMINI_MODEL=gemini-3.1-pro-preview
|
||
|
||
# ── Google OAuth (NextAuth) ────────────────────────────────────────────────────
|
||
GOOGLE_CLIENT_ID=673711367815-us92rkicrpgjrh381p4cb770lo9iq8tt.apps.googleusercontent.com
|
||
GOOGLE_CLIENT_SECRET=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
|
||
|
||
# ── NextAuth ──────────────────────────────────────────────────────────────────
|
||
NEXTAUTH_SECRET=1yaw0RWG7g4yxPf3kAgsZoobrnlP/ZmpfrzuFAhTGnA=
|
||
NEXTAUTH_URL=http://localhost:3000
|
||
|
||
# Local dev: bypass Google — set to your real email (must match DB user you want)
|
||
NEXT_PUBLIC_DEV_LOCAL_AUTH_EMAIL=mark@getacquired.com
|
||
# Act as that user for /api/projects* without signing in (next dev only)
|
||
NEXT_PUBLIC_DEV_BYPASS_PROJECT_AUTH=true
|
||
|
||
# ── PostgreSQL (Coolify public port; run: npm run db:sync:coolify) ────────────
|
||
# If unreachable: open host firewall for TCP on public_port. SSL: DB_SSL=true if required.
|
||
DATABASE_URL=postgresql://vibn_user:JSMcySGlEj3pSMjHvwEHAd1A@34.19.250.135:5433/vibn
|
||
POSTGRES_URL=postgresql://vibn_user:JSMcySGlEj3pSMjHvwEHAd1A@34.19.250.135:5433/vibn
|
||
|
||
# ── Gitea ─────────────────────────────────────────────────────────────────────
|
||
GITEA_API_URL=https://git.vibnai.com
|
||
GITEA_API_TOKEN=7803666418f1c90a5a65ecc35f8c2f3abaa7d2f3
|
||
GITEA_USERNAME=mark
|
||
|
||
# ── Coolify ───────────────────────────────────────────────────────────────────
|
||
COOLIFY_URL=http://34.19.250.135:8000
|
||
COOLIFY_API_TOKEN=1|clqAOiQPygpuwyA5HVDyWoKfNRtDH8l4Huge2PCmef521cc1
|
||
COOLIFY_SERVER_UUID=jws4g4cgssss4cw48s488woc
|
||
|
||
|
||
VIBN_SECRETS_KEY=G1gGSlAklGsIerQ8cmwSGsoO8gvHax/JfY5IgLGEZAOwIhm/pWWPVBJ10hI4Duqy
|
||
NEXT_PUBLIC_COOLIFY_URL=http://34.19.250.135:8000
|
||
|
||
# Ops probe: GET /api/internal/infra-health
|
||
INFRA_HEALTH_SECRET=6e60bec12bd1391b4753fc486580f57e78e02a961f8e9999e19254c1af7261bb
|
||
|
||
# ── DeepSeek (workspace sidebar chat → POST /api/chat) ──────────────────────────
|
||
VIBN_CHAT_PROVIDER=gemini
|
||
|
||
echo "COOLIFY_SSH_HOST=34.19.250.135" >> /Users/markhenderson/master-ai/vibn-frontend/.env.local
|
||
echo "COOLIFY_SSH_PORT=22" >> /Users/markhenderson/master-ai/vibn-frontend/.env.local
|
||
echo "COOLIFY_SSH_USER=vibn-logs" >> /Users/markhenderson/master-ai/vibn-frontend/.env.local
|
||
PRIV_B64=$(cat ~/.ssh/vibn-logs-local | base64 | tr -d '\n')
|
||
echo "COOLIFY_SSH_PRIVATE_KEY_B64=$PRIV_B64" >> /Users/markhenderson/master-ai/vibn-frontend/.env.local
|
||
COOLIFY_SSH_HOST=34.19.250.135
|
||
COOLIFY_SSH_PORT=22
|
||
COOLIFY_SSH_USER=vibn-logs
|
||
COOLIFY_SSH_PRIVATE_KEY_B64=LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNd0FBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNDNS92M0RwRjgwWDVuNitjM2VNbElpVUdQN3d1bjdjL2Z6R0ttaUMzV3BzUUFBQUpqUE1BQ2N6ekFBCm5BQUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDQzUvdjNEcEY4MFg1bjYrYzNlTWxJaVVHUDd3dW43Yy9mekdLbWlDM1dwc1EKQUFBRUErMmFCditqa3pndWJaZTZyd1lhK1FDenFGSVpQYW5POWtYSXE5ZzdWYjc3bisvY09rWHpSZm1mcjV6ZDR5VWlKUQpZL3ZDNmZ0ejkvTVlxYUlMZGFteEFBQUFEM1pwWW00dGJHOW5jeTFzYjJOaGJBRUNBd1FGQmc9PQotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K
|
||
COOLIFY_SSH_HOST=34.19.250.135
|
||
COOLIFY_SSH_PORT=22
|
||
COOLIFY_SSH_USER=vibn-logs
|
||
COOLIFY_SSH_PRIVATE_KEY_B64=LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUFNd0FBQUF0emMyZ3RaVwpReU5UVXhPUUFBQUNDNS92M0RwRjgwWDVuNitjM2VNbElpVUdQN3d1bjdjL2Z6R0ttaUMzV3BzUUFBQUpqUE1BQ2N6ekFBCm5BQUFBQXR6YzJndFpXUXlOVFV4T1FBQUFDQzUvdjNEcEY4MFg1bjYrYzNlTWxJaVVHUDd3dW43Yy9mekdLbWlDM1dwc1EKQUFBRUErMmFCditqa3pndWJaZTZyd1lhK1FDenFGSVpQYW5POWtYSXE5ZzdWYjc3bisvY09rWHpSZm1mcjV6ZDR5VWlKUQpZL3ZDNmZ0ejkvTVlxYUlMZGFteEFBQUFEM1pwWW00dGJHOW5jeTFzYjJOaGJBRUNBd1FGQmc9PQotLS0tLUVORCBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0K
|
||
|
||
|
||
# Stripe Platform Keys (Test Mode)
|
||
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=pk_test_51TUwa39DgTI4W5Vpgi1fazBGnNvHkaaMnih5poAwpCZ8U7yF9UIz8ybACc89ktRQh789q3bzxw4oy2aeQT9fdYTa004oyumjOm
|
||
STRIPE_SECRET_KEY=sk_test_51TUwa39DgTI4W5Vp7UjeXcUmunoexF3nXVtNAG8SisncwEeKVmrdAjVvYMvnEKxRWr2UnJXuNPX8eF0xdIWaWrmM00trL4Fn3V
|
||
|
||
STRIPE_CLIENT_ID=ca_UTuWw2qE8wFLNlWOL7T1v0H5GdB6BtDw
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `GEMINI_MODEL=`**
|
||
Status: Completed
|
||
|
||
No matches found
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: cat lib/ai/gemini-chat.ts | head -n 25**
|
||
Status: Completed
|
||
|
||
Terminal:
|
||
```
|
||
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
|
||
/**
|
||
* Gemini 3.1 Pro chat client with tool-calling support.
|
||
*
|
||
* Architecture:
|
||
* - Tool-calling rounds use generateContent (non-streaming) so we always
|
||
* get the complete response including thought_signature. Thinking models
|
||
* (2.5+, 3.x) require this field to be echoed back in functionResponse
|
||
* and it is not reliably present in individual SSE chunks.
|
||
* - Final text-only response uses streamGenerateContent for good UX.
|
||
*/
|
||
|
||
const GEMINI_API_KEY = process.env.GOOGLE_API_KEY || "";
|
||
const GEMINI_MODEL = process.env.VIBN_CHAT_MODEL || "gemini-3.1-pro-preview";
|
||
const GEMINI_BASE_URL = "https://generativelanguage.googleapis.com/v1beta";
|
||
|
||
export interface ChatMessage {
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: ToolCall[];
|
||
toolCallId?: string;
|
||
toolName?: string;
|
||
thoughtSignature?: string;
|
||
}
|
||
|
||
export interface ToolCall {
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
I found the root cause of the error!
|
||
|
||
The `Failed to generate summary` error was coming from your `/api/context/summarize/route.ts` endpoint (which is called during the text-pasting flow).
|
||
|
||
### What went wrong:
|
||
In your `vibn-frontend/.env.local` file, you had `GEMINI_MODEL=gemini-3.1-pro` set. When the summarize endpoint tried to hit the Gemini API with that model name, Google's API returned a `404 Not Found` because the correct model identifier currently available is actually `gemini-3.1-pro-preview`. Since the API request failed with a 404, the endpoint threw the generic `"Failed to generate summary"` 500 error that you saw.
|
||
|
||
### How I fixed it:
|
||
I've updated `vibn-frontend/.env.local` to use the correct model string:
|
||
```env
|
||
GEMINI_MODEL=gemini-3.1-pro-preview
|
||
```
|
||
|
||
Since environment variables are loaded at boot, you will just need to **restart your Next.js development server** (`npm run dev`) for the fix to take effect. Give that a try and the chat flow should start generating summaries properly again!
|
||
|
||
## User (checkpoint)
|
||
|
||
can you address this bug Runtime ReferenceError
|
||
|
||
|
||
Sparkles is not defined
|
||
components/vibn-chat/chat-panel.tsx (258:10) @ ThinkingBubble
|
||
|
||
|
||
256 | }}
|
||
257 | >
|
||
> 258 | <Sparkles
|
||
| ^
|
||
259 | style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
260 | className="animate-pulse"
|
||
261 | />
|
||
Call Stack
|
||
13
|
||
|
||
Show 11 ignore-listed frame(s)
|
||
ThinkingBubble
|
||
components/vibn-chat/chat-panel.tsx (258:10)
|
||
ProjectShell
|
||
app/[workspace]/project/[projectId]/(home)/layout.tsx (23:9)
|
||
|
||
**Tool Call: Search files for regex `export.*ThinkingBubble`**
|
||
Status: Completed
|
||
|
||
No matches found
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/components/vibn-chat/chat-panel.tsx` (lines 1-100)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
"use client";
|
||
|
||
import {
|
||
useEffect,
|
||
useRef,
|
||
useState,
|
||
useCallback,
|
||
type ReactNode,
|
||
type CSSProperties,
|
||
} from "react";
|
||
import Link from "next/link";
|
||
import { useSession } from "next-auth/react";
|
||
import { useParams, usePathname } from "next/navigation";
|
||
import {
|
||
MessageSquare,
|
||
X,
|
||
ChevronRight,
|
||
Send,
|
||
Plus,
|
||
Loader2,
|
||
Wrench,
|
||
ChevronDown,
|
||
Trash2,
|
||
Square,
|
||
MousePointerClick,
|
||
} from "lucide-react";
|
||
import { ProjectIconRail } from "@/components/project/project-icon-rail";
|
||
import {
|
||
PreviewBridgeProvider,
|
||
previewMessagePrepRef,
|
||
usePreviewBridge,
|
||
} from "@/components/project/preview-bridge-context";
|
||
|
||
// ── Types ─────────────────────────────────────────────────────────────────────
|
||
|
||
interface Thread {
|
||
id: string;
|
||
title: string;
|
||
updatedAt: string;
|
||
}
|
||
|
||
interface Message {
|
||
id?: string;
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: { id: string; name: string; args: Record<string, unknown> }[];
|
||
toolName?: string;
|
||
createdAt?: string;
|
||
/**
|
||
* Chronological turn timeline interleaving the model's thinking
|
||
* narration and the tool calls it fired. Rendered as a stack of
|
||
* pills INSIDE the bubble above the final text content, so the
|
||
* user sees the actual flow:
|
||
* [thought] [tool ×N] [thought] [tool] ... [summary]
|
||
* Each thought is its own collapsed pill (click to expand);
|
||
* adjacent runs of the same tool name collapse into one pill
|
||
* with a ×N counter. The final assistant text is rendered
|
||
* separately, below the timeline.
|
||
*/
|
||
timeline?: TimelineEntry[];
|
||
}
|
||
|
||
type TimelineEntry =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "tool"; name: string; status: "running" | "done"; result?: string }
|
||
// A text segment from one round of the assistant's tool loop.
|
||
// Each text SSE event from the server starts a new entry; subsequent
|
||
// streaming chunks for that same round append to the most-recent
|
||
// text entry. Tool/thought entries between text segments break the
|
||
// accumulation so multi-round turns render as separate bubbles.
|
||
| { kind: "text"; text: string };
|
||
|
||
interface ToolEvent {
|
||
name: string;
|
||
status: "running" | "done";
|
||
result?: string;
|
||
}
|
||
|
||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||
|
||
function getFriendlyCategory(name: string): string {
|
||
if (
|
||
name.includes("fs.edit") ||
|
||
name.includes("fs.write") ||
|
||
name.includes("fs_edit") ||
|
||
name.includes("fs_write")
|
||
)
|
||
return "Writing code";
|
||
if (
|
||
name.includes("fs.read") ||
|
||
name.includes("fs.list") ||
|
||
name.includes("fs.grep") ||
|
||
name.includes("fs.tree") ||
|
||
name.includes("fs_read") ||
|
||
name.includes("fs_list") ||
|
||
name.includes("fs_grep") ||
|
||
name.includes("fs_tree")
|
||
)
|
||
return "Reading codebase";
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: vibn\-frontend/components/vibn\-chat/chat\-panel.tsx**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
```
|
||
"use client";
|
||
|
||
import {
|
||
useEffect,
|
||
useRef,
|
||
useState,
|
||
useCallback,
|
||
type ReactNode,
|
||
type CSSProperties,
|
||
} from "react";
|
||
import Link from "next/link";
|
||
import { useSession } from "next-auth/react";
|
||
import { useParams, usePathname } from "next/navigation";
|
||
import {
|
||
MessageSquare,
|
||
X,
|
||
ChevronRight,
|
||
Send,
|
||
Plus,
|
||
Loader2,
|
||
Wrench,
|
||
ChevronDown,
|
||
Trash2,
|
||
Square,
|
||
MousePointerClick,
|
||
Sparkles,
|
||
} from "lucide-react";
|
||
import { ProjectIconRail } from "@/components/project/project-icon-rail";
|
||
import {
|
||
PreviewBridgeProvider,
|
||
previewMessagePrepRef,
|
||
usePreviewBridge,
|
||
} from "@/components/project/preview-bridge-context";
|
||
|
||
// ── Types ─────────────────────────────────────────────────────────────────────
|
||
|
||
interface Thread {
|
||
id: string;
|
||
title: string;
|
||
updatedAt: string;
|
||
}
|
||
|
||
interface Message {
|
||
id?: string;
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: { id: string; name: string; args: Record<string, unknown> }[];
|
||
toolName?: string;
|
||
createdAt?: string;
|
||
/**
|
||
* Chronological turn timeline interleaving the model's thinking
|
||
* narration and the tool calls it fired. Rendered as a stack of
|
||
* pills INSIDE the bubble above the final text content, so the
|
||
* user sees the actual flow:
|
||
* [thought] [tool ×N] [thought] [tool] ... [summary]
|
||
* Each thought is its own collapsed pill (click to expand);
|
||
* adjacent runs of the same tool name collapse into one pill
|
||
* with a ×N counter. The final assistant text is rendered
|
||
* separately, below the timeline.
|
||
*/
|
||
timeline?: TimelineEntry[];
|
||
}
|
||
|
||
type TimelineEntry =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "tool"; name: string; status: "running" | "done"; result?: string }
|
||
// A text segment from one round of the assistant's tool loop.
|
||
// Each text SSE event from the server starts a new entry; subsequent
|
||
// streaming chunks for that same round append to the most-recent
|
||
// text entry. Tool/thought entries between text segments break the
|
||
// accumulation so multi-round turns render as separate bubbles.
|
||
| { kind: "text"; text: string };
|
||
|
||
interface ToolEvent {
|
||
name: string;
|
||
status: "running" | "done";
|
||
result?: string;
|
||
}
|
||
|
||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||
|
||
function getFriendlyCategory(name: string): string {
|
||
if (
|
||
name.includes("fs.edit") ||
|
||
name.includes("fs.write") ||
|
||
name.includes("fs_edit") ||
|
||
name.includes("fs_write")
|
||
)
|
||
return "Writing code";
|
||
if (
|
||
name.includes("fs.read") ||
|
||
name.includes("fs.list") ||
|
||
name.includes("fs.grep") ||
|
||
name.includes("fs.tree") ||
|
||
name.includes("fs_read") ||
|
||
name.includes("fs_list") ||
|
||
name.includes("fs_grep") ||
|
||
name.includes("fs_tree")
|
||
)
|
||
return "Reading codebase";
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
return "Running terminal commands";
|
||
if (name.includes("dev_server.start") || name.includes("dev_server_start"))
|
||
return "Starting dev server";
|
||
if (name.includes("dev_server.logs") || name.includes("dev_server_logs"))
|
||
return "Checking server logs";
|
||
if (
|
||
name.includes("browser.navigate") ||
|
||
name.includes("browser.console") ||
|
||
name.includes("browser_navigate") ||
|
||
name.includes("browser_console")
|
||
)
|
||
return "Checking browser preview";
|
||
if (name.includes("ship")) return "Shipping code to production";
|
||
|
||
return name;
|
||
}
|
||
|
||
function timeAgo(dateStr?: string): string {
|
||
if (!dateStr) return "";
|
||
const diff = (Date.now() - new Date(dateStr).getTime()) / 1000;
|
||
if (diff < 60) return "just now";
|
||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
||
return `${Math.floor(diff / 86400)}d ago`;
|
||
}
|
||
|
||
function friendlyToolName(name: string): string {
|
||
return name
|
||
.replace(/_/g, ".")
|
||
.replace("projects.list", "listing projects")
|
||
.replace("apps.list", "listing apps")
|
||
.replace("apps.create", "deploying app")
|
||
.replace("apps.templates.list", "listing templates")
|
||
.replace("apps.templates.search", "searching templates")
|
||
.replace("domains.register", "registering domain")
|
||
.replace("domains.list", "listing domains")
|
||
.replace("apps.logs", "fetching logs");
|
||
}
|
||
|
||
// ── Markdown-lite renderer ────────────────────────────────────────────────────
|
||
|
||
function escapeHtmlAttr(s: string): string {
|
||
return s.replace(/&/g, "&").replace(/"/g, """);
|
||
}
|
||
|
||
const LINK_STYLE =
|
||
"color:#4338ca;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all";
|
||
|
||
/** [label](https://...) — href restricted to http(s) */
|
||
function markdownLinksToHtml(s: string): string {
|
||
return s.replace(
|
||
/\[([^\]]+)\]\((https?:\/\/[^\s)<>]+)\)/gi,
|
||
(_m, label: string, url: string) => {
|
||
return `<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${label}</a>`;
|
||
},
|
||
);
|
||
}
|
||
|
||
/** Bare https:// in prose (skips when prefix is `>` so href=/code aren't touched) */
|
||
function autoLinkBareUrls(s: string): string {
|
||
return s.replace(
|
||
/(^|[\s\-—:(\[{])(https?:\/\/[^\s<>"']+)/gi,
|
||
(match, pre: string, url: string) =>
|
||
`${pre}<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${url}</a>`,
|
||
);
|
||
}
|
||
|
||
function renderMarkdown(text: string): string {
|
||
let s = text
|
||
.replace(/&/g, "&")
|
||
.replace(/</g, "<")
|
||
.replace(/>/g, ">");
|
||
s = markdownLinksToHtml(s);
|
||
s = s
|
||
.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>")
|
||
.replace(
|
||
/`([^`]+)`/g,
|
||
'<code style="background:#f0ede8;padding:1px 5px;border-radius:3px;font-family:var(--font-ibm-plex-mono),monospace;font-size:0.85em;overflow-wrap:anywhere;word-break:break-word">$1</code>',
|
||
)
|
||
.replace(
|
||
/^### (.+)$/gm,
|
||
'<h3 style="font-weight:600;margin:12px 0 4px;font-size:0.88rem;overflow-wrap:anywhere;word-break:break-word">$1</h3>',
|
||
)
|
||
.replace(
|
||
/^## (.+)$/gm,
|
||
'<h2 style="font-weight:600;margin:14px 0 4px;font-size:0.9rem;overflow-wrap:anywhere;word-break:break-word">$1</h2>',
|
||
)
|
||
.replace(
|
||
/^- (.+)$/gm,
|
||
'<li style="margin-left:16px;list-style:disc;overflow-wrap:anywhere;word-break:break-word">$1</li>',
|
||
)
|
||
.replace(
|
||
/(<li[^>]*>.*<\/li>\n?)+/g,
|
||
(m) => `<ul style="margin:6px 0">${m}</ul>`,
|
||
)
|
||
.replace(
|
||
/\n\n/g,
|
||
'</p><p style="margin:0 0 8px;overflow-wrap:anywhere;word-break:break-word">',
|
||
)
|
||
.replace(/\n/g, "<br>");
|
||
s = autoLinkBareUrls(s);
|
||
return s;
|
||
}
|
||
|
||
// ── Message bubble ────────────────────────────────────────────────────────────
|
||
|
||
/**
|
||
* Strip the markdown-bold "**Section Heading**" lines that Gemini
|
||
* loves to start each thought with so the collapsed pill shows the
|
||
* actual sentence rather than "**Examining the Target Server File**".
|
||
* The full text is still available in the expanded view.
|
||
*/
|
||
function thoughtPreview(thoughts: string): string {
|
||
const stripped = thoughts
|
||
.replace(/^\s*\*\*[^*]+\*\*\s*/gm, "")
|
||
.replace(/\s+/g, " ")
|
||
.trim();
|
||
if (stripped.length <= 90) return stripped;
|
||
return stripped.slice(0, 87) + "…";
|
||
}
|
||
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
fontSize: "0.75rem",
|
||
color: "#8c8580",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
fontStyle: "italic",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<Sparkles
|
||
style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
className="animate-pulse"
|
||
/>
|
||
</div>
|
||
<span className="animate-pulse">{currentAction}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function MessageBubble({ msg }: { msg: Message }) {
|
||
const isUser = msg.role === "user";
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
justifyContent: isUser ? "flex-end" : "flex-start",
|
||
marginBottom: 12,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{!isUser && (
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
marginRight: 8,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
)}
|
||
<div
|
||
style={{
|
||
maxWidth: "82%",
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{!isUser && msg.timeline && msg.timeline.length > 0 && (
|
||
<Timeline entries={msg.timeline} />
|
||
)}
|
||
{/*
|
||
Render the legacy bottom content bubble ONLY when:
|
||
- the message is from the user (their bubble is always the
|
||
content slot), OR
|
||
- the assistant message has no timeline at all (very old
|
||
messages from before timeline existed).
|
||
When the timeline contains text entries the prose is already
|
||
rendered there, and showing it again here would duplicate
|
||
every paragraph below the timeline.
|
||
*/}
|
||
{((msg.content && isUser) ||
|
||
(msg.content &&
|
||
!isUser &&
|
||
(!msg.timeline || msg.timeline.length === 0))) && (
|
||
<div
|
||
style={{
|
||
padding: isUser ? "9px 14px" : "10px 14px",
|
||
borderRadius: isUser
|
||
? "14px 14px 4px 14px"
|
||
: "4px 14px 14px 14px",
|
||
background: isUser ? "#1a1a1a" : "#f7f4ef",
|
||
color: isUser ? "#fff" : "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
{isUser ? (
|
||
<span style={{ whiteSpace: "pre-wrap", ...proseWrap }}>
|
||
{msg.content}
|
||
</span>
|
||
) : (
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{
|
||
__html: renderMarkdown(msg.content),
|
||
}}
|
||
/>
|
||
)}
|
||
</div>
|
||
)}
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Renders the chronological turn timeline: thoughts as their own
|
||
* collapsed pills, tool calls grouped by adjacent runs of the same
|
||
* name with a ×N counter. The flow visually mirrors what actually
|
||
* happened: thought → tools → thought → tools → ... → final summary.
|
||
*/
|
||
function Timeline({ entries }: { entries: TimelineEntry[] }) {
|
||
// Walk the entries and emit a renderable list. Adjacent same-category
|
||
// tool entries get bundled into a TimelineToolGroup; thought and
|
||
// text entries pass through as-is.
|
||
type Item =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "text"; text: string }
|
||
| {
|
||
kind: "toolGroup";
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
};
|
||
const items: Item[] = [];
|
||
for (const e of entries) {
|
||
if (e.kind === "thought") {
|
||
items.push({ kind: "thought", text: e.text });
|
||
} else if (e.kind === "text") {
|
||
items.push({ kind: "text", text: e.text });
|
||
} else {
|
||
const last = items[items.length - 1];
|
||
const category = getFriendlyCategory(e.name);
|
||
if (last && last.kind === "toolGroup" && last.category === category) {
|
||
last.entries.push(e);
|
||
} else {
|
||
items.push({ kind: "toolGroup", category, entries: [e] });
|
||
}
|
||
}
|
||
}
|
||
return (
|
||
<div style={{ marginBottom: 6 }}>
|
||
{items.map((item, i) => {
|
||
if (item.kind === "thought") {
|
||
return <ThinkingBubble key={i} thoughts={item.text} />;
|
||
}
|
||
if (item.kind === "text") {
|
||
return <TimelineText key={i} text={item.text} />;
|
||
}
|
||
return (
|
||
<TimelineToolGroup
|
||
key={i}
|
||
category={item.category}
|
||
entries={item.entries}
|
||
/>
|
||
);
|
||
})}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* One text segment in the assistant's timeline. Rendered as its own
|
||
* bubble so each round of multi-tool-loop output reads as a discrete
|
||
* step instead of concatenating into a wall of text.
|
||
*/
|
||
function TimelineText({ text }: { text: string }) {
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
padding: "10px 14px",
|
||
borderRadius: "4px 14px 14px 14px",
|
||
background: "#f7f4ef",
|
||
color: "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
marginBottom: 6,
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{ __html: renderMarkdown(text) }}
|
||
/>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function TimelineToolGroup({
|
||
category,
|
||
entries,
|
||
}: {
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
}) {
|
||
const [expanded, setExpanded] = useState(false);
|
||
const count = entries.length;
|
||
const allDone = entries.every((e) => e.status === "done");
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<button
|
||
onClick={() => setExpanded(!expanded)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
width: "100%",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
background: "none",
|
||
border: "none",
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
cursor: "pointer",
|
||
textAlign: "left",
|
||
}}
|
||
>
|
||
<span style={{ width: 14, display: "flex", justifyContent: "center" }}>
|
||
{!allDone ? (
|
||
<Loader2
|
||
style={{ width: 12, height: 12 }}
|
||
className="animate-spin"
|
||
/>
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
</span>
|
||
<span style={{ flex: 1 }}>
|
||
{category} {count > 1 ? `(x${count})` : ""} {!allDone ? "..." : " ✓"}
|
||
</span>
|
||
<span
|
||
style={{
|
||
transform: expanded ? "rotate(180deg)" : "none",
|
||
transition: "transform 0.15s ease",
|
||
}}
|
||
>
|
||
<ChevronDown style={{ width: 12, height: 12, opacity: 0.5 }} />
|
||
</span>
|
||
</button>
|
||
|
||
{expanded && (
|
||
<div
|
||
style={{
|
||
padding: "0 12px 8px 34px",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
gap: 4,
|
||
}}
|
||
>
|
||
{entries.map((e, i) => (
|
||
<div
|
||
key={i}
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#8c8580",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 4,
|
||
height: 4,
|
||
borderRadius: "50%",
|
||
background: "#ccc",
|
||
}}
|
||
/>
|
||
<span style={{ fontFamily: "var(--font-mono), monospace" }}>
|
||
{friendlyToolName(e.name)}
|
||
</span>
|
||
{!e.result && e.status === "running" && (
|
||
<span className="animate-pulse">...</span>
|
||
)}
|
||
{e.result && (
|
||
<span
|
||
style={{
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
opacity: 0.7,
|
||
maxWidth: 150,
|
||
}}
|
||
title={e.result}
|
||
>
|
||
— {e.result}
|
||
</span>
|
||
)}
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function ToolBubble({ event }: { event: ToolEvent }) {
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
{event.status === "running" ? (
|
||
<Loader2 style={{ width: 12, height: 12 }} className="animate-spin" />
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
<span>
|
||
{friendlyToolName(event.name)}
|
||
{event.status === "running" ? "…" : " ✓"}
|
||
</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Main panel ────────────────────────────────────────────────────────────────
|
||
|
||
interface ChatPanelProps {
|
||
/**
|
||
* When true, the panel renders inline as a flex child of its parent
|
||
* (a structural left column on project pages). Skips the fixed-position
|
||
* slide-out treatment, the collapsed-tab affordance, and the
|
||
* --chat-panel-width side-effect. Always "open" — there's no close
|
||
* button because the panel IS the column.
|
||
*
|
||
* When false / omitted: legacy behavior — fixed slide-out on the
|
||
* right, collapsible, sets --chat-panel-width so the workspace
|
||
* content shifts left to make room.
|
||
*/
|
||
structural?: boolean;
|
||
/**
|
||
* When set with `structural` on a project route, renders a unified shell:
|
||
* full-width top bar (chat controls | section icons) and a split row
|
||
* below (chat column | artifact slot). Omit on slide-out chat.
|
||
*/
|
||
artifactSlot?: ReactNode;
|
||
}
|
||
|
||
/** Shared dimensions for preview-select + send icon buttons in the composer. */
|
||
const COMPOSER_ACTION_BTN_BASE: CSSProperties = {
|
||
flexShrink: 0,
|
||
width: 32,
|
||
height: 32,
|
||
boxSizing: "border-box",
|
||
borderRadius: 8,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 0,
|
||
};
|
||
|
||
/** Preview pick chip + select-mode toggle for unified project shell chat composer. */
|
||
function ProjectPreviewChatInputWrap({
|
||
unifiedShell,
|
||
children,
|
||
}: {
|
||
unifiedShell: boolean;
|
||
children: (selectToggle: React.ReactNode) => React.ReactNode;
|
||
}) {
|
||
const bridge = usePreviewBridge();
|
||
|
||
if (!unifiedShell || !bridge) {
|
||
return <>{children(null)}</>;
|
||
}
|
||
|
||
const { selectMode, setSelectMode, picked, clearPick } = bridge;
|
||
|
||
const chip = picked ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "flex-start",
|
||
gap: 8,
|
||
marginBottom: 8,
|
||
padding: "8px 10px",
|
||
borderRadius: 8,
|
||
background: "#eef2ff",
|
||
border: "1px solid #c7d2fe",
|
||
fontSize: "0.72rem",
|
||
lineHeight: 1.45,
|
||
color: "#312e81",
|
||
}}
|
||
>
|
||
<MousePointerClick
|
||
style={{
|
||
width: 14,
|
||
height: 14,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
opacity: 0.85,
|
||
}}
|
||
aria-hidden
|
||
/>
|
||
<div style={{ flex: 1, minWidth: 0 }}>
|
||
<div style={{ fontWeight: 600, marginBottom: 2 }}>
|
||
Preview selection
|
||
</div>
|
||
<div style={{ opacity: 0.92 }}>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-ibm-plex-mono),monospace",
|
||
fontSize: "0.68rem",
|
||
}}
|
||
>
|
||
{picked.tagName}
|
||
</span>
|
||
{" · "}
|
||
<span style={{ wordBreak: "break-word" }}>{picked.selector}</span>
|
||
</div>
|
||
{picked.textSnippet ? (
|
||
<div style={{ marginTop: 4, opacity: 0.88, wordBreak: "break-word" }}>
|
||
{`"${picked.textSnippet.slice(0, 140)}${picked.textSnippet.length > 140 ? "..." : ""}"`}
|
||
</div>
|
||
) : null}
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={clearPick}
|
||
aria-label="Clear preview selection"
|
||
style={{
|
||
flexShrink: 0,
|
||
background: "none",
|
||
border: "none",
|
||
padding: 2,
|
||
cursor: "pointer",
|
||
borderRadius: 4,
|
||
color: "#4338ca",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
>
|
||
<X style={{ width: 13, height: 13 }} />
|
||
</button>
|
||
</div>
|
||
) : null;
|
||
|
||
const selectToggle = (
|
||
<button
|
||
type="button"
|
||
aria-pressed={selectMode}
|
||
aria-label={
|
||
selectMode ? "Exit preview select mode" : "Select element from preview"
|
||
}
|
||
title={
|
||
selectMode
|
||
? "Click preview to choose an element"
|
||
: "Choose element from preview"
|
||
}
|
||
onClick={() => setSelectMode(!selectMode)}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
border: selectMode ? "1px solid #6366f1" : "1px solid #e8e4dc",
|
||
background: selectMode ? "#eef2ff" : "#faf8f5",
|
||
color: selectMode ? "#4338ca" : "#6b6560",
|
||
cursor: "pointer",
|
||
}}
|
||
>
|
||
<MousePointerClick style={{ width: 15, height: 15 }} strokeWidth={2} />
|
||
</button>
|
||
);
|
||
|
||
return (
|
||
<>
|
||
{chip}
|
||
{children(selectToggle)}
|
||
</>
|
||
);
|
||
}
|
||
|
||
export function ChatPanel({
|
||
structural = false,
|
||
artifactSlot,
|
||
}: ChatPanelProps = {}) {
|
||
const { data: sessionData, status } = useSession();
|
||
const params = useParams();
|
||
const pathname = usePathname() ?? "";
|
||
const workspace = (params?.workspace as string) || "";
|
||
// When the user is on a /project/<id>/* route, scope the chat to
|
||
// that project. The threads list, the new-thread create call, and
|
||
// the system prompt all branch on this; the chat header surfaces it
|
||
// so the user knows the AI is "talking about" the right thing.
|
||
const projectId = (params?.projectId as string) || "";
|
||
/** Full project shell (chat | artifact); must render even while auth is loading or signed out. */
|
||
const unifiedProjectShell =
|
||
structural && Boolean(projectId) && artifactSlot !== undefined;
|
||
const [activeProjectName, setActiveProjectName] = useState<string | null>(
|
||
null,
|
||
);
|
||
|
||
const [open, setOpen] = useState(() => {
|
||
// Structural mode is always-open by definition — the panel IS the
|
||
// column, there's no "closed" state to persist.
|
||
if (structural) return true;
|
||
if (typeof window === "undefined") return false;
|
||
return localStorage.getItem("vibn-chat-open") !== "false";
|
||
});
|
||
const [threads, setThreads] = useState<Thread[]>([]);
|
||
// threadsLoaded flips to true after the FIRST loadThreads() resolves.
|
||
// Used to gate the auto-create effect — without it we race the fetch
|
||
// and spawn an empty thread before history loads.
|
||
const [threadsLoaded, setThreadsLoaded] = useState(false);
|
||
const [activeThread, setActiveThread] = useState<string | null>(null);
|
||
const [messages, setMessages] = useState<Message[]>([]);
|
||
const [input, setInput] = useState("");
|
||
const [sending, setSending] = useState(false);
|
||
const [showThreads, setShowThreads] = useState(false);
|
||
const [mcpToken, setMcpToken] = useState<string | null>(null);
|
||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||
const inputRef = useRef<HTMLTextAreaElement>(null);
|
||
// AbortController for the in-flight /api/chat fetch. Lives in a ref
|
||
// so the Stop button can reach it without re-rendering on every
|
||
// streaming chunk.
|
||
const abortRef = useRef<AbortController | null>(null);
|
||
|
||
const scrollToBottom = useCallback(() => {
|
||
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
|
||
}, []);
|
||
|
||
// Persist open state + adjust main content margin
|
||
useEffect(() => {
|
||
if (structural) return;
|
||
localStorage.setItem("vibn-chat-open", String(open));
|
||
document.documentElement.style.setProperty(
|
||
"--chat-panel-width",
|
||
open ? "380px" : "0px",
|
||
);
|
||
}, [open, structural]);
|
||
|
||
// Load MCP token — prefer localStorage cache, fetch from API if missing.
|
||
// We use /api/workspaces (not the URL param) because the URL slug
|
||
// (e.g. "mark-account") differs from the actual workspace slug ("mark").
|
||
useEffect(() => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
const cached = localStorage.getItem(`vibn-mcp-token-${workspace}`);
|
||
if (cached) {
|
||
setMcpToken(cached);
|
||
return;
|
||
}
|
||
fetch("/api/workspaces?include_default_token=true")
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (d?.defaultToken) {
|
||
localStorage.setItem(`vibn-mcp-token-${workspace}`, d.defaultToken);
|
||
setMcpToken(d.defaultToken);
|
||
}
|
||
})
|
||
.catch(() => {});
|
||
}, [workspace, status]);
|
||
|
||
// Load threads (scoped to the current project when one is in the URL).
|
||
// Reset the loaded flag when projectId changes so the resume effect
|
||
// re-runs against the correct list and doesn't restore a thread from
|
||
// the previous project.
|
||
const loadThreads = useCallback(async () => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
try {
|
||
const qs = new URLSearchParams({ workspace });
|
||
if (projectId) qs.set("projectId", projectId);
|
||
const res = await fetch(`/api/chat/threads?${qs.toString()}`);
|
||
const data = await res.json();
|
||
setThreads(data.threads || []);
|
||
} catch {
|
||
/* silent */
|
||
} finally {
|
||
setThreadsLoaded(true);
|
||
}
|
||
}, [workspace, projectId, status]);
|
||
|
||
useEffect(() => {
|
||
setThreadsLoaded(false);
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
// Clear the threads array immediately so the resume effect doesn't
|
||
// race the loadThreads() fetch and resume a stale project-scoped
|
||
// thread when the user navigates from /project/X back to /projects.
|
||
setThreads([]);
|
||
loadThreads();
|
||
}, [loadThreads, projectId]);
|
||
|
||
// Look up the active project's display name once we have a projectId,
|
||
// so the chat header can show "Talking about: <name>".
|
||
useEffect(() => {
|
||
if (!projectId) {
|
||
setActiveProjectName(null);
|
||
return;
|
||
}
|
||
let cancelled = false;
|
||
fetch(`/api/projects/${projectId}/anatomy`, { credentials: "include" })
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (cancelled) return;
|
||
const name = d?.project?.name;
|
||
if (name) setActiveProjectName(name);
|
||
})
|
||
.catch(() => {});
|
||
return () => {
|
||
cancelled = true;
|
||
};
|
||
}, [projectId]);
|
||
|
||
// Create and activate a new thread (tagged to the active project, if any).
|
||
const newThread = useCallback(async () => {
|
||
try {
|
||
const res = await fetch("/api/chat/threads", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ workspace, projectId: projectId || undefined }),
|
||
});
|
||
const data = await res.json();
|
||
if (data.thread) {
|
||
setThreads((prev) => [data.thread, ...prev]);
|
||
setActiveThread(data.thread.id);
|
||
setMessages([]);
|
||
setShowThreads(false);
|
||
}
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, [workspace, projectId]);
|
||
|
||
// Load thread messages
|
||
const loadThread = useCallback(async (id: string) => {
|
||
setActiveThread(id);
|
||
setShowThreads(false);
|
||
setMessages([]);
|
||
try {
|
||
const res = await fetch(`/api/chat/threads/${id}`);
|
||
const data = await res.json();
|
||
// Hydrate the timeline from persisted textSegments + toolCalls
|
||
// so a reloaded thread renders the same per-round bubbles the
|
||
// user saw during streaming. Older messages without
|
||
// textSegments fall back to the legacy single-bubble path.
|
||
const hydrated = (data.messages || []).map((m: any) => {
|
||
if (m.role !== "assistant") return m;
|
||
const segs: string[] = Array.isArray(m.textSegments)
|
||
? m.textSegments
|
||
: [];
|
||
if (segs.length === 0) return m;
|
||
const timeline: TimelineEntry[] = segs.map((t) => ({
|
||
kind: "text",
|
||
text: t,
|
||
}));
|
||
// We don't have round-level interleaving for tool calls in
|
||
// the persisted shape (the schema flattens them), so we drop
|
||
// the toolCalls into the timeline at the end. The streamed
|
||
// shape preserves true ordering; this is just a reload
|
||
// approximation. Good enough — what the user really cares
|
||
// about is the text segments not run-on'ing into one blob.
|
||
if (Array.isArray(m.toolCalls)) {
|
||
for (const tc of m.toolCalls) {
|
||
timeline.push({ kind: "tool", name: tc.name, status: "done" });
|
||
}
|
||
}
|
||
return { ...m, timeline, content: "" };
|
||
});
|
||
setMessages(hydrated);
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, []);
|
||
|
||
// Auto-resume previous thread (or create a fresh one if the user has
|
||
// never chatted in this workspace). We MUST wait for threadsLoaded
|
||
// before deciding — otherwise we race the fetch and spawn an empty
|
||
// thread before history arrives. Last-active thread is restored from
|
||
// localStorage so a page reload (deploy, refresh) lands the user back
|
||
// in the conversation they were in.
|
||
useEffect(() => {
|
||
if (!open || status !== "authenticated" || !workspace) return;
|
||
if (!threadsLoaded) return;
|
||
if (activeThread) return;
|
||
|
||
if (threads.length === 0) {
|
||
newThread();
|
||
return;
|
||
}
|
||
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
const saved =
|
||
typeof window !== "undefined" ? localStorage.getItem(savedKey) : null;
|
||
const target =
|
||
saved && threads.some((t) => t.id === saved) ? saved : threads[0].id;
|
||
loadThread(target);
|
||
}, [
|
||
open,
|
||
status,
|
||
workspace,
|
||
projectId,
|
||
threadsLoaded,
|
||
threads,
|
||
activeThread,
|
||
newThread,
|
||
loadThread,
|
||
]);
|
||
|
||
// Persist active thread so reload re-opens the same conversation,
|
||
// keyed per-project so each project has its own "last conversation".
|
||
useEffect(() => {
|
||
if (typeof window === "undefined" || !workspace) return;
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
if (activeThread) localStorage.setItem(savedKey, activeThread);
|
||
}, [activeThread, workspace, projectId]);
|
||
|
||
useEffect(() => {
|
||
scrollToBottom();
|
||
}, [messages, scrollToBottom]);
|
||
|
||
const deleteThread = useCallback(
|
||
async (id: string, e: React.MouseEvent) => {
|
||
e.stopPropagation();
|
||
await fetch(`/api/chat/threads/${id}`, { method: "DELETE" });
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [
|
||
...tl,
|
||
{ kind: "tool", name: ev.name, status: "running" },
|
||
],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_result") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
// Walk backward to the most recent matching running
|
||
// tool entry and mark it done. Avoids cross-matching
|
||
// earlier same-named entries.
|
||
let updated = false;
|
||
const newTl: TimelineEntry[] = [];
|
||
for (let i = tl.length - 1; i >= 0; i--) {
|
||
const e = tl[i];
|
||
if (
|
||
!updated &&
|
||
e.kind === "tool" &&
|
||
e.name === ev.name &&
|
||
e.status === "running"
|
||
) {
|
||
newTl.unshift({
|
||
...e,
|
||
status: "done",
|
||
result: ev.result,
|
||
});
|
||
updated = true;
|
||
} else {
|
||
newTl.unshift(e);
|
||
}
|
||
}
|
||
next[msgIndex] = { ...next[msgIndex], timeline: newTl };
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "error") {
|
||
const errText = ev.error || "Unknown error";
|
||
const isToolErr = /tool|mcp|coolify|gitea/i.test(errText);
|
||
const errBubble = isToolErr
|
||
? `⚠️ **Tool error:** ${errText}`
|
||
: `⚠️ ${errText}`;
|
||
assistantContent += (assistantContent ? "\n\n" : "") + errBubble;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "text", text: errBubble }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
// Auto-title thread from first message
|
||
const thisThread = threads.find((t) => t.id === activeThread);
|
||
if (thisThread?.title === "New conversation") {
|
||
const title = text.slice(0, 50);
|
||
await fetch(`/api/chat/threads/${activeThread}`, {
|
||
method: "PATCH",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ title }),
|
||
});
|
||
setThreads((prev) =>
|
||
prev.map((t) => (t.id === activeThread ? { ...t, title } : t)),
|
||
);
|
||
}
|
||
|
||
loadThreads();
|
||
} catch (e) {
|
||
const isAbort = e instanceof DOMException && e.name === "AbortError";
|
||
if (isAbort) {
|
||
// Server-side will have appended "(stopped by user)" to the
|
||
// partial response and persisted it. We just need to make
|
||
// sure the local UI reflects whatever streamed in before the
|
||
// user clicked Stop — which it already does, because we've
|
||
// been mutating `messages[msgIndex]` chunk-by-chunk above.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (
|
||
msgIndex >= 0 &&
|
||
next[msgIndex] &&
|
||
!next[msgIndex].content.includes("(stopped by user)")
|
||
) {
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
content:
|
||
(next[msgIndex].content || "") + "\n\n_(stopped by user)_",
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else {
|
||
const errMsg = e instanceof Error ? e.message : String(e);
|
||
const isNetwork = /fetch|network|failed to fetch/i.test(errMsg);
|
||
const friendlyError = isNetwork
|
||
? "⚠️ Network error — check your connection and try again."
|
||
: `⚠️ Something went wrong: ${errMsg.slice(0, 200)}\n\nYou can try again or start a new message.`;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
next[msgIndex] = { ...next[msgIndex], content: friendlyError };
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
} finally {
|
||
abortRef.current = null;
|
||
setSending(false);
|
||
}
|
||
},
|
||
[
|
||
input,
|
||
sending,
|
||
activeThread,
|
||
workspace,
|
||
mcpToken,
|
||
threads,
|
||
loadThreads,
|
||
unifiedProjectShell,
|
||
],
|
||
);
|
||
|
||
const cancelMessage = useCallback(() => {
|
||
abortRef.current?.abort();
|
||
}, []);
|
||
|
||
// External components (e.g. ProjectHeaderUrls' "Start preview" button)
|
||
// can ask the chat to send a canned prompt without prop-drilling. Open
|
||
// the panel if collapsed, then fire the prompt as if the user typed it.
|
||
useEffect(() => {
|
||
function onPrompt(e: Event) {
|
||
const ce = e as CustomEvent<{ prompt?: string; scopeProjectId?: string }>;
|
||
const prompt = ce.detail?.prompt;
|
||
if (!prompt) return;
|
||
// If the dispatcher scopes the prompt to a specific project, only
|
||
// accept it when the chat panel is currently bound to that project.
|
||
// Prevents a "Start preview on Manifest" click from accidentally
|
||
// landing in a chat that's scoped to a different project.
|
||
if (ce.detail?.scopeProjectId && ce.detail.scopeProjectId !== projectId) {
|
||
return;
|
||
}
|
||
setOpen(true);
|
||
void sendMessage(prompt);
|
||
}
|
||
window.addEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
return () =>
|
||
window.removeEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
}, [sendMessage, projectId]);
|
||
|
||
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||
if (e.key === "Enter" && !e.shiftKey) {
|
||
e.preventDefault();
|
||
sendMessage();
|
||
} else if (e.key === "Escape" && sending) {
|
||
e.preventDefault();
|
||
cancelMessage();
|
||
}
|
||
};
|
||
|
||
// Slide-out chat hidden until signed in. Structural project shell always
|
||
// mounts so Preview / Product / Plan pages render; chat column shows loading
|
||
// or sign-in instead of wiping the whole viewport (blank page).
|
||
if (!unifiedProjectShell && status !== "authenticated") return null;
|
||
|
||
// ── Collapsed tab ──────────────────────────────────────────────────────────
|
||
// Structural mode is always-open; skip the collapsed-tab branch entirely.
|
||
if (!open && !structural) {
|
||
return (
|
||
<button
|
||
onClick={() => setOpen(true)}
|
||
style={{
|
||
position: "fixed",
|
||
right: 0,
|
||
top: "50%",
|
||
transform: "translateY(-50%)",
|
||
zIndex: 1000,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
border: "none",
|
||
borderRadius: "8px 0 0 8px",
|
||
padding: "14px 10px",
|
||
cursor: "pointer",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
boxShadow: "-2px 0 12px #1a1a1a14",
|
||
}}
|
||
title="Open Vibn AI"
|
||
>
|
||
<MessageSquare style={{ width: 16, height: 16 }} />
|
||
<span
|
||
style={{
|
||
writingMode: "vertical-rl",
|
||
textOrientation: "mixed",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.08em",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
transform: "rotate(180deg)",
|
||
}}
|
||
>
|
||
VIBN AI
|
||
</span>
|
||
</button>
|
||
);
|
||
}
|
||
|
||
const conversationColumn = (
|
||
<>
|
||
{/* Thread list dropdown */}
|
||
{showThreads && (
|
||
<div
|
||
style={{
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
maxHeight: 200,
|
||
overflowY: "auto",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{threads.length === 0 && (
|
||
<div
|
||
style={{
|
||
padding: "12px 16px",
|
||
fontSize: "0.78rem",
|
||
color: "#a09a90",
|
||
}}
|
||
>
|
||
No conversations yet
|
||
</div>
|
||
)}
|
||
{threads.map((t) => (
|
||
<div
|
||
key={t.id}
|
||
onClick={() => loadThread(t.id)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "9px 16px",
|
||
background: activeThread === t.id ? "#f0ede8" : "transparent",
|
||
cursor: "pointer",
|
||
borderBottom: "1px solid #f0ede8",
|
||
}}
|
||
onMouseEnter={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "#f7f4ef";
|
||
}}
|
||
onMouseLeave={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "transparent";
|
||
}}
|
||
>
|
||
<div style={{ minWidth: 0 }}>
|
||
<div
|
||
style={{
|
||
fontSize: "0.8rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
{t.title}
|
||
</div>
|
||
<div style={{ fontSize: "0.7rem", color: "#a09a90" }}>
|
||
{timeAgo(t.updatedAt)}
|
||
</div>
|
||
</div>
|
||
<button
|
||
onClick={(e) => deleteThread(t.id, e)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
color: "#c0bab2",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<Trash2 style={{ width: 12, height: 12 }} />
|
||
</button>
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
|
||
{/* Messages */}
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
overflowY: "auto",
|
||
overflowX: "hidden",
|
||
padding: "16px 14px",
|
||
}}
|
||
>
|
||
{messages.length === 0 && !sending && (
|
||
<div
|
||
style={{ padding: "24px 14px", maxWidth: 640, margin: "0 auto" }}
|
||
>
|
||
<div style={{ display: "flex", gap: 12 }}>
|
||
<div
|
||
style={{
|
||
width: 28,
|
||
height: 28,
|
||
borderRadius: 6,
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
color: "#fff",
|
||
fontSize: "0.85rem",
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</div>
|
||
<div
|
||
style={{
|
||
background: "#fff",
|
||
border: "1px solid #e8e4dc",
|
||
padding: "14px 18px",
|
||
borderRadius: "0 12px 12px 12px",
|
||
fontSize: "0.9rem",
|
||
color: "#1a1a1a",
|
||
lineHeight: 1.6,
|
||
boxShadow: "0 1px 2px #1a1a1a05",
|
||
maxWidth: "85%",
|
||
}}
|
||
>
|
||
Welcome to {activeProjectName ? activeProjectName : "Vibn"}!
|
||
Tell me what you want to build and I'll scaffold it, run it in a
|
||
preview, and ship it when you say so.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{messages.map((msg, i) => (
|
||
<MessageBubble key={msg.id || i} msg={msg} />
|
||
))}
|
||
|
||
{sending && messages[messages.length - 1]?.role !== "assistant" && (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 0",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
{[0, 1, 2].map((i) => (
|
||
<span
|
||
key={i}
|
||
style={{
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: "50%",
|
||
background: "#c0bab2",
|
||
animation: `vibn-bounce 1.2s ease infinite ${i * 0.2}s`,
|
||
display: "inline-block",
|
||
}}
|
||
/>
|
||
))}
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
<div ref={messagesEndRef} />
|
||
</div>
|
||
|
||
{/* Input */}
|
||
<div
|
||
style={{
|
||
padding: "12px 14px",
|
||
borderTop: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{!mcpToken && (
|
||
<div
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#9a7b3a",
|
||
background: "#d4a04a12",
|
||
border: "1px solid #d4a04a30",
|
||
borderRadius: 6,
|
||
padding: "5px 10px",
|
||
marginBottom: 8,
|
||
lineHeight: 1.4,
|
||
}}
|
||
>
|
||
Read-only mode — add your MCP token in Settings to enable actions.
|
||
</div>
|
||
)}
|
||
<ProjectPreviewChatInputWrap unifiedShell={unifiedProjectShell}>
|
||
{(selectToggle) => (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
gap: 8,
|
||
alignItems: "center",
|
||
background: "#fff",
|
||
borderRadius: 10,
|
||
border: "1px solid #e8e4dc",
|
||
padding: "8px 10px",
|
||
boxShadow: "0 1px 3px #1a1a1a05",
|
||
}}
|
||
>
|
||
<textarea
|
||
ref={inputRef}
|
||
value={input}
|
||
onChange={(e) => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={
|
||
sending ? "Esc to stop generating…" : "Ask Vibn AI anything…"
|
||
}
|
||
rows={1}
|
||
disabled={!activeThread}
|
||
style={{
|
||
flex: 1,
|
||
border: "none",
|
||
outline: "none",
|
||
background: "transparent",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.5,
|
||
resize: "none",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
color: "#1a1a1a",
|
||
maxHeight: 120,
|
||
overflowY: "auto",
|
||
}}
|
||
onInput={(e) => {
|
||
const el = e.currentTarget;
|
||
el.style.height = "auto";
|
||
el.style.height = Math.min(el.scrollHeight, 120) + "px";
|
||
}}
|
||
/>
|
||
{selectToggle}
|
||
{(() => {
|
||
// While the AI is streaming or running tools, the button
|
||
// turns into a Stop control. Click → AbortController fires,
|
||
// server bails between rounds, partial text gets persisted.
|
||
const isActive = sending;
|
||
const canSend = !sending && input.trim() && activeThread;
|
||
return (
|
||
<button
|
||
type="button"
|
||
onClick={isActive ? cancelMessage : () => sendMessage()}
|
||
disabled={!isActive && !canSend}
|
||
aria-label={isActive ? "Stop generating" : "Send message"}
|
||
title={isActive ? "Stop generating (Esc)" : "Send"}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
background: isActive
|
||
? "#1a1a1a"
|
||
: canSend
|
||
? "#1a1a1a"
|
||
: "#e8e4dc",
|
||
color: isActive || canSend ? "#fff" : "#a09a90",
|
||
border: "none",
|
||
cursor: isActive || canSend ? "pointer" : "default",
|
||
transition: "all 0.15s",
|
||
position: "relative",
|
||
}}
|
||
>
|
||
{isActive ? (
|
||
<>
|
||
<Loader2
|
||
style={{
|
||
width: 15,
|
||
height: 15,
|
||
position: "absolute",
|
||
opacity: 0.35,
|
||
}}
|
||
className="animate-spin"
|
||
/>
|
||
<Square
|
||
style={{
|
||
width: 9,
|
||
height: 9,
|
||
fill: "#fff",
|
||
strokeWidth: 0,
|
||
}}
|
||
/>
|
||
</>
|
||
) : (
|
||
<Send style={{ width: 15, height: 15 }} />
|
||
)}
|
||
</button>
|
||
);
|
||
})()}
|
||
</div>
|
||
)}
|
||
</ProjectPreviewChatInputWrap>
|
||
</div>
|
||
</>
|
||
);
|
||
|
||
const structuralChatLoadingColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 14,
|
||
}}
|
||
>
|
||
<Loader2
|
||
className="animate-spin"
|
||
style={{ width: 22, height: 22, color: "#9c9590" }}
|
||
/>
|
||
<p style={{ fontSize: "0.84rem", color: "#6b6560", margin: 0 }}>
|
||
Signing you in…
|
||
</p>
|
||
</div>
|
||
);
|
||
|
||
const authHref = pathname
|
||
? `/auth?callbackUrl=${encodeURIComponent(pathname)}`
|
||
: "/auth";
|
||
|
||
const structuralChatSignedOutColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 12,
|
||
}}
|
||
>
|
||
<p
|
||
style={{
|
||
fontSize: "0.88rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
}}
|
||
>
|
||
Sign in to use Vibn AI
|
||
</p>
|
||
<p
|
||
style={{
|
||
fontSize: "0.76rem",
|
||
color: "#a09a90",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
maxWidth: 260,
|
||
lineHeight: 1.5,
|
||
}}
|
||
>
|
||
Preview and tabs still work here. Chat needs an account.
|
||
</p>
|
||
<Link
|
||
href={authHref}
|
||
style={{
|
||
marginTop: 4,
|
||
padding: "10px 18px",
|
||
borderRadius: 10,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
fontSize: "0.82rem",
|
||
fontWeight: 500,
|
||
textDecoration: "none",
|
||
}}
|
||
>
|
||
Sign in
|
||
</Link>
|
||
</div>
|
||
);
|
||
|
||
const structuralChatBody =
|
||
status === "loading"
|
||
? structuralChatLoadingColumn
|
||
: status !== "authenticated"
|
||
? structuralChatSignedOutColumn
|
||
: conversationColumn;
|
||
|
||
if (unifiedProjectShell) {
|
||
return (
|
||
<>
|
||
<PreviewBridgeProvider>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
background: "#fff",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
alignItems: "stretch",
|
||
flexShrink: 0,
|
||
height: 48,
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
boxSizing: "border-box",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
height: "100%",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
padding: "0 12px",
|
||
gap: 6,
|
||
boxSizing: "border-box",
|
||
borderRight: "1px solid #e8e4dc",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
width: "100%",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 5px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus style={{ width: 14, height: 14 }} />
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
alignItems: "stretch",
|
||
}}
|
||
>
|
||
<ProjectIconRail workspace={workspace} projectId={projectId} />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
borderRight: "1px solid #e8e4dc",
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{structuralChatBody}
|
||
</div>
|
||
<div
|
||
key={pathname}
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
overflow: "auto",
|
||
background: "#faf8f5",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{artifactSlot}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</PreviewBridgeProvider>
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</>
|
||
);
|
||
}
|
||
|
||
// ── Open panel ─────────────────────────────────────────────────────────────
|
||
// Structural mode: fill the parent column. Default mode: fixed slide-out
|
||
// anchored to the right edge of the viewport (legacy behavior).
|
||
return (
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
flex: 1,
|
||
minHeight: 0,
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
: {
|
||
position: "fixed",
|
||
right: 0,
|
||
top: 0,
|
||
bottom: 0,
|
||
zIndex: 999,
|
||
width: 380,
|
||
background: "#fff",
|
||
borderLeft: "1px solid #e8e4dc",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
boxShadow: "-4px 0 24px #1a1a1a08",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
}
|
||
>
|
||
{/* Header — structural: circle logo + threads; slide-out: wordmark */}
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
height: 48,
|
||
padding: "0 12px",
|
||
boxSizing: "border-box",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
gap: 6,
|
||
}
|
||
: {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "14px 16px",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}
|
||
}
|
||
>
|
||
{structural ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
) : (
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 6px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-lora),serif",
|
||
fontSize: "0.95rem",
|
||
fontWeight: 400,
|
||
color: "#1a1a1a",
|
||
letterSpacing: "-0.01em",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
Vibn AI
|
||
</span>
|
||
<ChevronDown
|
||
style={{
|
||
width: 13,
|
||
height: 13,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 6,
|
||
padding: "2px 8px",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 160,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
)}
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: structural ? "4px 5px" : "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus
|
||
style={{
|
||
width: structural ? 14 : 15,
|
||
height: structural ? 14 : 15,
|
||
}}
|
||
/>
|
||
</button>
|
||
{!structural && (
|
||
<button
|
||
type="button"
|
||
onClick={() => setOpen(false)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="Close"
|
||
>
|
||
<ChevronRight style={{ width: 15, height: 15 }} />
|
||
</button>
|
||
)}
|
||
</div>
|
||
</div>
|
||
|
||
{conversationColumn}
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: npm run lint**
|
||
Status: Completed
|
||
|
||
Terminal:
|
||
```
|
||
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
|
||
|
||
> vibn-frontend@0.1.0 lint
|
||
> eslint
|
||
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/(marketing)/mission/page.tsx
|
||
97:15 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
97:60 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
97:135 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
103:17 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
104:155 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
105:20 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
105:90 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
105:146 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
105:294 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
105:435 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
106:21 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
107:20 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
107:260 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
107:282 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
108:20 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
108:39 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
111:77 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
111:90 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
112:166 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
112:340 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
112:486 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
114:81 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
117:21 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
117:218 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
119:376 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
123:52 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
124:30 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
124:308 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
126:20 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
130:30 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
130:165 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
131:30 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
133:19 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/layout.tsx
|
||
3:10 warning 'useParams' is defined but never used @typescript-eslint/no-unused-vars
|
||
4:10 warning 'ChatPanel' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/billing/page.tsx
|
||
1:10 warning 'Suspense' is defined but never used @typescript-eslint/no-unused-vars
|
||
3:10 warning 'Loader2' is defined but never used @typescript-eslint/no-unused-vars
|
||
6:11 warning 'projectId' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
50:49 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/hosting/page.tsx
|
||
339:85 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
339:104 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/infrastructure/page.tsx
|
||
33:6 warning 'ProviderCategory' is defined but never used @typescript-eslint/no-unused-vars
|
||
136:7 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/infrastructure/page.tsx:136:7
|
||
134 | useEffect(() => {
|
||
135 | if (anatomy && anatomy.infrastructure.databases[0] && expandedDbs.size === 0) {
|
||
> 136 | setExpandedDbs(new Set([anatomy.infrastructure.databases[0].uuid]));
|
||
| ^^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
137 | }
|
||
138 | }, [anatomy, expandedDbs.size]);
|
||
139 | react-hooks/set-state-in-effect
|
||
220:9 warning 'Icon' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
580:9 warning 'isStripe' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
769:10 warning 'Para' is defined but never used @typescript-eslint/no-unused-vars
|
||
875:7 warning 'railEmptyButton' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
943:7 warning 'chipRow' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
944:7 warning 'chip' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
979:7 warning 'inlineCode' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/market/page.tsx
|
||
7:7 error 'bqOptions' is never reassigned. Use 'const' instead prefer-const
|
||
7:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
13:14 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
188:46 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
235:40 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx
|
||
34:3 warning 'RotateCcw' is defined but never used @typescript-eslint/no-unused-vars
|
||
149:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
415:10 warning 'BriefPanel' is defined but never used @typescript-eslint/no-unused-vars
|
||
472:19 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
473:20 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
474:20 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
475:20 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
476:20 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
477:20 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
478:20 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
529:25 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
530:26 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
531:26 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
532:26 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
533:26 warning 'node' is defined but never used @typescript-eslint/no-unused-vars
|
||
752:5 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx:752:5
|
||
750 | useEffect(() => {
|
||
751 | let cancelled = false;
|
||
> 752 | setLoading(true);
|
||
| ^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
753 | fetch(
|
||
754 | `/api/chat/threads?workspace=${encodeURIComponent(workspace)}&projectId=${encodeURIComponent(projectId)}`,
|
||
755 | { react-hooks/set-state-in-effect
|
||
896:7 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx:896:7
|
||
894 | useEffect(() => {
|
||
895 | if (!selectedId && tasks.length > 0) {
|
||
> 896 | setSelectedId(tasks[0].id);
|
||
| ^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
897 | return;
|
||
898 | }
|
||
899 | if (selectedId && !tasks.some((t) => t.id === selectedId)) { react-hooks/set-state-in-effect
|
||
1683:7 warning 'subHeading' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
1761:7 warning 'addRow' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
1798:7 warning 'listRow' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
2069:7 warning 'checkbox' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx
|
||
40:7 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx:40:7
|
||
38 | useEffect(() => {
|
||
39 | if (!selectedUrl && options.length > 0) {
|
||
> 40 | setSelectedUrl(options[0].url);
|
||
| ^^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
41 | }
|
||
42 | }, [options, selectedUrl]);
|
||
43 | react-hooks/set-state-in-effect
|
||
45:5 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/preview/page.tsx:45:5
|
||
43 |
|
||
44 | useLayoutEffect(() => {
|
||
> 45 | setIframeSrc(selectedUrl ?? null);
|
||
| ^^^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
46 | }, [selectedUrl]);
|
||
47 |
|
||
48 | useEffect(() => { react-hooks/set-state-in-effect
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/product/page.tsx
|
||
45:7 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/product/page.tsx:45:7
|
||
43 | useEffect(() => {
|
||
44 | if (codebases && codebases[0]) {
|
||
> 45 | setExpanded(prev => (prev.size === 0 ? new Set([codebases[0].id]) : prev));
|
||
| ^^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
46 | }
|
||
47 | }, [codebases]);
|
||
48 | react-hooks/set-state-in-effect
|
||
50:5 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/product/page.tsx:50:5
|
||
48 |
|
||
49 | useEffect(() => {
|
||
> 50 | setSelection(null);
|
||
| ^^^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
51 | setExpanded(new Set());
|
||
52 | }, [projectId]);
|
||
53 | react-hooks/set-state-in-effect
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/projects/page.tsx
|
||
72:17 warning 'session' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/[workspace]/settings/page.tsx
|
||
28:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
36:20 warning 'setSettings' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
37:10 warning 'loading' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/activity/route.ts
|
||
36:35 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
80:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/admin/backfill-isolation/route.ts
|
||
30:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
108:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
124:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/admin/check-sessions/route.ts
|
||
41:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/admin/fix-project-workspace/route.ts
|
||
54:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/admin/migrate/route.ts
|
||
14:10 warning 'readFileSync' is defined but never used @typescript-eslint/no-unused-vars
|
||
15:10 warning 'join' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/admin/path-b/autosave/route.ts
|
||
42:51 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
73:54 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/admin/path-b/route.ts
|
||
24:19 warning 'setFlag' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/ai/chat/route.ts
|
||
87:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
137:46 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
141:32 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
145:40 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
224:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/chat/route.ts
|
||
73:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
75:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
80:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
121:9 warning 'briefBlock' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
121:31 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
122:203 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
311:28 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
322:57 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
351:35 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
358:40 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
362:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
364:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
368:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
485:11 error 'messages' is never reassigned. Use 'const' instead prefer-const
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/chat/threads/[id]/route.ts
|
||
16:31 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
22:32 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
30:32 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/chat/threads/route.ts
|
||
96:28 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
99:27 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
133:28 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/chatgpt/import-file/route.ts
|
||
51:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
80:21 warning 'key' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/chatgpt/import/route.ts
|
||
26:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
83:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
108:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
141:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
154:60 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/cursor/backfill/route.ts
|
||
2:10 warning 'adminAuth' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/cursor/tag-sessions/route.ts
|
||
44:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
48:27 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
96:54 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
174:64 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/debug/check-links/route.ts
|
||
23:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
33:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
34:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/debug/cursor-session-summary/route.ts
|
||
40:52 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/debug/cursor-sessions/route.ts
|
||
32:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
33:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
105:70 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/debug/cursor-unknown-sessions/route.ts
|
||
20:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/diagnose/route.ts
|
||
5:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
23:13 warning 'testDoc' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
26:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
42:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
53:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/extension/link-project/route.ts
|
||
24:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/github/connect/route.ts
|
||
43:27 warning 'request' is defined but never used @typescript-eslint/no-unused-vars
|
||
50:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
73:30 warning 'request' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/github/file-content/route.ts
|
||
23:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/github/oauth/callback/page.tsx
|
||
73:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/github/repo-tree/route.ts
|
||
23:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
113:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
114:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
122:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/github/repos/route.ts
|
||
22:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
58:24 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/keys/get/route.ts
|
||
38:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/keys/route.ts
|
||
23:10 warning 'decrypt' is defined but never used @typescript-eslint/no-unused-vars
|
||
48:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
95:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
175:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/mcp/browser.ts
|
||
73:9 warning 'script' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/mcp/generate-key/route.ts
|
||
25:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
93:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/mcp/route.ts
|
||
56:3 warning 'autosaveWorkspace' is defined but never used @typescript-eslint/no-unused-vars
|
||
82:10 warning 'listContainersForApp' is defined but never used @typescript-eslint/no-unused-vars
|
||
92:3 warning 'projectUuidOf' is defined but never used @typescript-eslint/no-unused-vars
|
||
267:56 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
605:11 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
631:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
642:11 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
667:7 error 'possibleDeployments' is never reassigned. Use 'const' instead prefer-const
|
||
820:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
843:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
870:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
920:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
992:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
993:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1015:35 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1028:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1035:73 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1052:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1108:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1135:74 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1175:74 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1245:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1301:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1384:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1403:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1441:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1470:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1521:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1539:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1558:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1577:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1596:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1653:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1670:59 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2109:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2201:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2244:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2298:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2378:61 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2418:63 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2612:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2638:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2676:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2785:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2867:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2910:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
2933:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3138:9 warning 'ownedUuids' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
3154:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3165:59 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3277:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3305:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3342:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3400:9 warning 'ownedUuids' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
3420:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3463:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3509:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3576:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3612:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3744:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
3873:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4008:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4040:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4069:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4089:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4105:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4137:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4163:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4187:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4225:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4234:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4266:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4279:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4297:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4336:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4346:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4364:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4500:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4565:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4572:72 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4619:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4741:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4776:73 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4803:72 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4892:72 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4906:74 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4932:72 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
4958:72 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5002:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5092:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5115:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5136:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5161:70 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5371:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5380:33 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5436:73 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5451:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5480:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5514:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5556:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5601:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5634:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5688:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5689:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5690:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5691:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5779:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5877:72 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5893:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5922:7 error 'bqOptions' is never reassigned. Use 'const' instead prefer-const
|
||
5922:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
5947:9 error 'cacheHit' is never reassigned. Use 'const' instead prefer-const
|
||
5947:9 warning 'cacheHit' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
6038:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6039:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6041:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6042:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6119:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6137:7 error 'bqOptions' is never reassigned. Use 'const' instead prefer-const
|
||
6137:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6148:14 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
6180:12 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
6247:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6302:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6326:7 error 'bqOptions' is never reassigned. Use 'const' instead prefer-const
|
||
6353:32 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6434:24 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
6447:22 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
6484:18 warning 'err' is defined but never used @typescript-eslint/no-unused-vars
|
||
6506:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6519:7 error 'bqOptions' is never reassigned. Use 'const' instead prefer-const
|
||
6519:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6562:24 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6575:44 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6593:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6606:7 error 'bqOptions' is never reassigned. Use 'const' instead prefer-const
|
||
6606:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6645:24 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6654:44 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6696:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6713:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6732:7 error 'bqOptions' is never reassigned. Use 'const' instead prefer-const
|
||
6732:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6743:14 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
6792:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
6826:47 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/openai/gpts/route.ts
|
||
24:7 warning 'userId' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
25:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/openai/projects/route.ts
|
||
25:7 warning 'userId' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
26:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/agent-chat/route.ts
|
||
12:61 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
14:42 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
24:62 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
40:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
105:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/analyze-repo/route.ts
|
||
5:49 warning 'statSync' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/analyze/route.ts
|
||
19:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
77:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/anatomy/route.ts
|
||
404:16 warning 'lastBuildFor' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/architecture/route.ts
|
||
23:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
56:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
59:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
79:90 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/associate-github-sessions/route.ts
|
||
31:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
35:25 warning 'githubRepoUrl' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
73:24 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/atlas-chat/route.ts
|
||
62:12 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
65:42 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
75:43 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
94:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
163:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
164:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
203:11 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
205:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/audit/generate/route.ts
|
||
96:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
119:28 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
169:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
181:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
246:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
275:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
339:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
341:56 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
342:54 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
345:59 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
349:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
367:35 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/complete-history/route.ts
|
||
27:11 warning 'timeline' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
30:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
65:86 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
87:60 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
103:40 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/context/route.ts
|
||
101:51 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
111:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
113:16 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
215:39 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/design-kit/route.ts
|
||
94:9 error 'dk' is never reassigned. Use 'const' instead prefer-const
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/extract-vision/route.ts
|
||
46:46 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
55:46 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/git-history/route.ts
|
||
35:13 warning 'projectId' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/knowledge/chunk-insight/route.ts
|
||
15:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
36:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/knowledge/items/route.ts
|
||
17:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/knowledge/route.ts
|
||
28:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/knowledge/themes/route.ts
|
||
2:24 warning 'getAdminDb' is defined but never used @typescript-eslint/no-unused-vars
|
||
3:10 warning 'getAlloyDbClient' is defined but never used @typescript-eslint/no-unused-vars
|
||
20:13 warning 'projectId' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
53:52 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
53:57 warning 'index' is defined but never used @typescript-eslint/no-unused-vars
|
||
90:40 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/knowledge/upload-document/route.ts
|
||
28:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
106:11 warning 'knowledgeItemIds' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/mission/generate/route.ts
|
||
64:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
77:14 warning 'dbError' is defined but never used @typescript-eslint/no-unused-vars
|
||
82:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
94:14 warning 'firestoreError' is defined but never used @typescript-eslint/no-unused-vars
|
||
99:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
106:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/mvp-checklist/route.ts
|
||
189:12 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
190:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
191:16 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
242:9 error 'cursorConversations' is never reassigned. Use 'const' instead prefer-const
|
||
242:30 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
295:69 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
306:46 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
372:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
372:60 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
379:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
380:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
603:86 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
656:39 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
656:63 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
656:71 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
693:42 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
693:56 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
755:53 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
755:67 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
755:82 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
760:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
761:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
766:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
792:42 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
793:47 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
794:44 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
825:10 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
828:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
830:39 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
863:30 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
888:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
906:35 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
906:81 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
916:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
929:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
941:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
941:58 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
954:41 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
954:49 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
956:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
959:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/plan/intelligent/route.ts
|
||
71:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
71:57 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
72:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
94:9 warning 'visionKeywords' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
211:64 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
225:43 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
225:58 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
228:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
322:124 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/plan/route.ts
|
||
58:10 warning 'emptyPlan' is defined but never used @typescript-eslint/no-unused-vars
|
||
67:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
76:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/plan/simulate/route.ts
|
||
65:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
130:41 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
141:40 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
141:55 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
375:43 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
385:34 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
390:49 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/preview-url/route.ts
|
||
77:35 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/route.ts
|
||
17:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
53:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/run-extraction/route.ts
|
||
30:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/timeline-view/route.ts
|
||
57:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
69:52 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
184:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
184:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
189:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
190:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
199:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
206:35 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
206:49 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
211:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
212:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
218:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
227:34 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
233:32 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
245:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
245:42 warning 'category' is defined but never used @typescript-eslint/no-unused-vars
|
||
245:52 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
245:58 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/timeline/route.ts
|
||
67:9 error 'gitCommits' is never reassigned. Use 'const' instead prefer-const
|
||
67:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
79:28 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
123:28 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
170:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/[projectId]/vision/route.ts
|
||
26:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/create/route.ts
|
||
38:58 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
55:51 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
66:9 error 'vibnWorkspace' is never reassigned. Use 'const' instead prefer-const
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/delete/route.ts
|
||
95:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/deploy/route.ts
|
||
31:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/phase/route.ts
|
||
4:15 warning 'ProjectPhase' is defined but never used @typescript-eslint/no-unused-vars
|
||
4:29 warning 'PhaseStatus' is defined but never used @typescript-eslint/no-unused-vars
|
||
68:11 warning 'userId' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/projects/route.ts
|
||
15:34 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
24:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
35:57 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
37:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/sessions/route.ts
|
||
16:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
18:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
27:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
37:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/stats/route.ts
|
||
17:76 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
39:68 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/user/api-key/route.ts
|
||
6:27 warning 'request' is defined but never used @typescript-eslint/no-unused-vars
|
||
13:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/v0/generate/route.ts
|
||
6:28 warning 'projectId' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/v0/import-chat/route.ts
|
||
2:10 warning 'v0' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/v0/iterate/route.ts
|
||
2:10 warning 'v0' is defined but never used @typescript-eslint/no-unused-vars
|
||
6:30 warning 'projectId' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/v0/list-chats/route.ts
|
||
4:27 warning 'request' is defined but never used @typescript-eslint/no-unused-vars
|
||
20:7 error Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
|
||
34:9 error Use "@ts-expect-error" instead of "@ts-ignore", as "@ts-ignore" will do nothing if the following line is error-free @typescript-eslint/ban-ts-comment
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/webhooks/coolify/route.ts
|
||
17:16 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
24:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/webhooks/gitea/route.ts
|
||
83:16 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
91:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
106:7 error 'snapshotPatch' is never reassigned. Use 'const' instead prefer-const
|
||
106:37 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
137:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
141:46 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
154:41 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
162:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
165:49 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
176:44 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/work-completed/route.ts
|
||
30:47 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/workspaces/[slug]/keys/route.ts
|
||
32:9 error 'defaultKey' is never reassigned. Use 'const' instead prefer-const
|
||
32:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/api/workspaces/route.ts
|
||
60:11 error 'defaultKey' is never reassigned. Use 'const' instead prefer-const
|
||
60:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/auth/supertokens-page.tsx
|
||
4:10 warning 'useRouter' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/app/components/NextAuthComponent.tsx
|
||
4:8 warning 'Link' is defined but never used @typescript-eslint/no-unused-vars
|
||
72:9 warning 'title' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
96:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
96:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
400:41 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/check-documents.js
|
||
1:15 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
4:24 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/check-phase.js
|
||
1:15 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
2:24 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/AtlasChat.tsx
|
||
384:10 warning 'historyLoaded' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/OrchestratorChat.tsx
|
||
203:6 warning React Hook useEffect has a missing dependency: 'scrollToBottom'. Either include it or remove the dependency array react-hooks/exhaustive-deps
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/design-scaffolds/docs.tsx
|
||
5:30 warning 'themeColor' is defined but never used @typescript-eslint/no-unused-vars
|
||
42:36 warning 'themeColor' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/design-scaffolds/email.tsx
|
||
5:35 warning 'themeColor' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/design-scaffolds/marketing.tsx
|
||
631:8 error Error: Cannot create components during render
|
||
|
||
Components created during render will reset their state each time they are created. Declare components outside of render.
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/design-scaffolds/marketing.tsx:631:8
|
||
629 | <div style={{ height: "100%", fontFamily: ff, background: bg, overflow: "auto", position: "relative", color: text }}>
|
||
630 | <style>{ACE_KEYFRAMES + fontImport(config?.font)}</style>
|
||
> 631 | <BgLayer />
|
||
| ^^^^^^^ This component is created during render
|
||
632 |
|
||
633 | {/* Nav */}
|
||
634 | {navStyle === "floating" ? (
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/design-scaffolds/marketing.tsx:517:19
|
||
515 | const border= isDark ? "rgba(255,255,255,0.08)" : "rgba(0,0,0,0.1)";
|
||
516 |
|
||
> 517 | const BgLayer = () => {
|
||
| ^^^^^^^
|
||
> 518 | if (bgStyle === "gradient") {
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 519 | if (!isDark) return (
|
||
…
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 625 | return <div style={{ position: "absolute", inset: 0, background: `radial-gradient(ellipse 70% 50% at 50% 0%, ${p}18, transparent)`, zIndex: 0 }} />;
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 626 | };
|
||
| ^^^^ The component is created during render here
|
||
627 |
|
||
628 | return (
|
||
629 | <div style={{ height: "100%", fontFamily: ff, background: bg, overflow: "auto", position: "relative", color: text }}> react-hooks/static-components
|
||
1059:9 warning 'accent' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
1060:9 warning 'accentFg' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/design-scaffolds/mobile.tsx
|
||
19:36 warning 'themeColor' is defined but never used @typescript-eslint/no-unused-vars
|
||
58:35 warning 'themeColor' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/layout/coo-chat.tsx
|
||
71:3 warning Unused eslint-disable directive (no problems were reported from 'react-hooks/exhaustive-deps')
|
||
151:17 warning 'isCoo' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/layout/project-shell.tsx
|
||
91:17 warning Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/layout/vibn-sidebar.tsx
|
||
52:25 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/layout/vibn-sidebar.tsx:52:25
|
||
50 | useEffect(() => {
|
||
51 | const stored = localStorage.getItem(COLLAPSED_KEY);
|
||
> 52 | if (stored === "1") setCollapsed(true);
|
||
| ^^^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
53 | setMounted(true);
|
||
54 | }, []);
|
||
55 | react-hooks/set-state-in-effect
|
||
74:29 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/layout/vibn-sidebar.tsx:74:29
|
||
72 | // Fetch project-specific data when inside a project
|
||
73 | useEffect(() => {
|
||
> 74 | if (!activeProjectId) { setProject(null); return; }
|
||
| ^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
75 |
|
||
76 | fetch(`/api/projects/${activeProjectId}`)
|
||
77 | .then(r => r.json()) react-hooks/set-state-in-effect
|
||
99:9 warning 'base' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
117:17 warning Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element
|
||
137:15 warning Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-association-prompt.tsx
|
||
42:10 warning 'hasCheckedThisSession' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
42:33 warning 'setHasCheckedThisSession' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
59:55 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
129:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
139:5 error 'unsubscribe' is never reassigned. Use 'const' instead prefer-const
|
||
148:6 warning React Hook useEffect has a missing dependency: 'dismissedWorkspaces'. Either include it or remove the dependency array react-hooks/exhaustive-deps
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-creation/CreateProjectFlow.tsx
|
||
45:7 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-creation/CreateProjectFlow.tsx:45:7
|
||
43 | useEffect(() => {
|
||
44 | if (open) {
|
||
> 45 | setStep("select-type");
|
||
| ^^^^^^^ Avoid calling setState() directly within an effect
|
||
46 | setMode(null);
|
||
47 | setBuildWizardStep(0);
|
||
48 | } react-hooks/set-state-in-effect
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-creation/ImportSetup.tsx
|
||
243:102 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
290:24 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildLivePlanPanel.tsx
|
||
62:40 error Error: Cannot reassign variable after render completes
|
||
|
||
Reassigning `firstOpenIndex` after render has completed can cause inconsistent behavior on subsequent renders. Consider using state instead.
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildLivePlanPanel.tsx:62:40
|
||
60 | const list = PRD_PLAN_SECTIONS.map((s, index) => {
|
||
61 | const done = isSectionFilled(s.phaseId, savedPhaseIds);
|
||
> 62 | if (!done && firstOpenIndex < 0) firstOpenIndex = index;
|
||
| ^^^^^^^^^^^^^^ Cannot reassign `firstOpenIndex` after render completes
|
||
63 | return {
|
||
64 | ...s,
|
||
65 | done, react-hooks/immutability
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildMvpJustineV2.tsx
|
||
86:11 error Error: Cannot call impure function during render
|
||
|
||
`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildMvpJustineV2.tsx:86:11
|
||
84 | i,
|
||
85 | color: colors[i % colors.length],
|
||
> 86 | left: Math.random() * 100,
|
||
| ^^^^^^^^^^^^^ Cannot call impure function
|
||
87 | delay: Math.random() * 1.2,
|
||
88 | dur: Math.random() * 2.5 + 2,
|
||
89 | size: Math.random() * 9 + 4, react-hooks/purity
|
||
87:12 error Error: Cannot call impure function during render
|
||
|
||
`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildMvpJustineV2.tsx:87:12
|
||
85 | color: colors[i % colors.length],
|
||
86 | left: Math.random() * 100,
|
||
> 87 | delay: Math.random() * 1.2,
|
||
| ^^^^^^^^^^^^^ Cannot call impure function
|
||
88 | dur: Math.random() * 2.5 + 2,
|
||
89 | size: Math.random() * 9 + 4,
|
||
90 | xDrift: (Math.random() - 0.5) * 200, react-hooks/purity
|
||
88:10 error Error: Cannot call impure function during render
|
||
|
||
`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildMvpJustineV2.tsx:88:10
|
||
86 | left: Math.random() * 100,
|
||
87 | delay: Math.random() * 1.2,
|
||
> 88 | dur: Math.random() * 2.5 + 2,
|
||
| ^^^^^^^^^^^^^ Cannot call impure function
|
||
89 | size: Math.random() * 9 + 4,
|
||
90 | xDrift: (Math.random() - 0.5) * 200,
|
||
91 | rot: Math.random() * 360, react-hooks/purity
|
||
89:11 error Error: Cannot call impure function during render
|
||
|
||
`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildMvpJustineV2.tsx:89:11
|
||
87 | delay: Math.random() * 1.2,
|
||
88 | dur: Math.random() * 2.5 + 2,
|
||
> 89 | size: Math.random() * 9 + 4,
|
||
| ^^^^^^^^^^^^^ Cannot call impure function
|
||
90 | xDrift: (Math.random() - 0.5) * 200,
|
||
91 | rot: Math.random() * 360,
|
||
92 | br: ["50%", "3px", "0"][Math.floor(Math.random() * 3)], react-hooks/purity
|
||
90:14 error Error: Cannot call impure function during render
|
||
|
||
`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildMvpJustineV2.tsx:90:14
|
||
88 | dur: Math.random() * 2.5 + 2,
|
||
89 | size: Math.random() * 9 + 4,
|
||
> 90 | xDrift: (Math.random() - 0.5) * 200,
|
||
| ^^^^^^^^^^^^^ Cannot call impure function
|
||
91 | rot: Math.random() * 360,
|
||
92 | br: ["50%", "3px", "0"][Math.floor(Math.random() * 3)],
|
||
93 | })); react-hooks/purity
|
||
91:10 error Error: Cannot call impure function during render
|
||
|
||
`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildMvpJustineV2.tsx:91:10
|
||
89 | size: Math.random() * 9 + 4,
|
||
90 | xDrift: (Math.random() - 0.5) * 200,
|
||
> 91 | rot: Math.random() * 360,
|
||
| ^^^^^^^^^^^^^ Cannot call impure function
|
||
92 | br: ["50%", "3px", "0"][Math.floor(Math.random() * 3)],
|
||
93 | }));
|
||
94 | return ( react-hooks/purity
|
||
92:40 error Error: Cannot call impure function during render
|
||
|
||
`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildMvpJustineV2.tsx:92:40
|
||
90 | xDrift: (Math.random() - 0.5) * 200,
|
||
91 | rot: Math.random() * 360,
|
||
> 92 | br: ["50%", "3px", "0"][Math.floor(Math.random() * 3)],
|
||
| ^^^^^^^^^^^^^ Cannot call impure function
|
||
93 | }));
|
||
94 | return (
|
||
95 | <div react-hooks/purity
|
||
122:31 error Error: Cannot call impure function during render
|
||
|
||
`Math.random` is an impure function. Calling an impure function can produce unstable results that update unpredictably when the component happens to re-render. (https://react.dev/reference/rules/components-and-hooks-must-be-pure#components-and-hooks-must-be-idempotent).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/BuildMvpJustineV2.tsx:122:31
|
||
120 | left: `${p.left}%`,
|
||
121 | width: p.size,
|
||
> 122 | height: p.size * (Math.random() * 0.6 + 0.4),
|
||
| ^^^^^^^^^^^^^ Cannot call impure function
|
||
123 | background: p.color,
|
||
124 | borderRadius: p.br,
|
||
125 | animation: `justineConfettiFall ${p.dur}s ${p.delay}s ease-in forwards`, react-hooks/purity
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/CodeImportMain.tsx
|
||
173:87 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project-main/MvpSetupLayoutClient.tsx
|
||
8:7 warning 'BUILD_LEFT_BG' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/database-table-tree.tsx
|
||
47:5 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/database-table-tree.tsx:47:5
|
||
45 | const ctrl = new AbortController();
|
||
46 | const t = setTimeout(() => ctrl.abort(), 12_000);
|
||
> 47 | setLoading(true);
|
||
| ^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
48 | setError(null);
|
||
49 |
|
||
50 | fetch(`/api/projects/${projectId}/databases/${dbUuid}/tables`, { react-hooks/set-state-in-effect
|
||
92:29 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx
|
||
537:10 error Error: Cannot create components during render
|
||
|
||
Components created during render will reset their state each time they are created. Declare components outside of render.
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:537:10
|
||
535 | >
|
||
536 | <div style={{ fontSize: "0.62rem", fontWeight: 700, color: "#a1a1aa", letterSpacing: "0.06em", margin: "4px 8px 8px" }}>MAIN</div>
|
||
> 537 | <Item active>People</Item>
|
||
| ^^^^ This component is created during render
|
||
538 | <Item>Companies</Item>
|
||
539 | <Item>
|
||
540 | Opportunities{" "}
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:510:16
|
||
508 | const rs = tokens.radiusSm;
|
||
509 | const pad = tokens.density === "compact" ? 6 : 8;
|
||
> 510 | const Item = ({ active, children }: { active?: boolean; children: ReactNode }) => (
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 511 | <div
|
||
| ^^^^^^^^
|
||
> 512 | style={{
|
||
…
|
||
| ^^^^^^^^
|
||
> 523 | </div>
|
||
| ^^^^^^^^
|
||
> 524 | );
|
||
| ^^^^ The component is created during render here
|
||
525 | return (
|
||
526 | <div style={{ display: "grid", gridTemplateColumns: "220px 1fr", gap: 24 }}>
|
||
527 | <div react-hooks/static-components
|
||
538:10 error Error: Cannot create components during render
|
||
|
||
Components created during render will reset their state each time they are created. Declare components outside of render.
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:538:10
|
||
536 | <div style={{ fontSize: "0.62rem", fontWeight: 700, color: "#a1a1aa", letterSpacing: "0.06em", margin: "4px 8px 8px" }}>MAIN</div>
|
||
537 | <Item active>People</Item>
|
||
> 538 | <Item>Companies</Item>
|
||
| ^^^^ This component is created during render
|
||
539 | <Item>
|
||
540 | Opportunities{" "}
|
||
541 | <span style={{ float: "right", fontSize: "0.65rem", background: "#e4e4e7", padding: "1px 6px", borderRadius: 999 }}>12</span>
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:510:16
|
||
508 | const rs = tokens.radiusSm;
|
||
509 | const pad = tokens.density === "compact" ? 6 : 8;
|
||
> 510 | const Item = ({ active, children }: { active?: boolean; children: ReactNode }) => (
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 511 | <div
|
||
| ^^^^^^^^
|
||
> 512 | style={{
|
||
…
|
||
| ^^^^^^^^
|
||
> 523 | </div>
|
||
| ^^^^^^^^
|
||
> 524 | );
|
||
| ^^^^ The component is created during render here
|
||
525 | return (
|
||
526 | <div style={{ display: "grid", gridTemplateColumns: "220px 1fr", gap: 24 }}>
|
||
527 | <div react-hooks/static-components
|
||
539:10 error Error: Cannot create components during render
|
||
|
||
Components created during render will reset their state each time they are created. Declare components outside of render.
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:539:10
|
||
537 | <Item active>People</Item>
|
||
538 | <Item>Companies</Item>
|
||
> 539 | <Item>
|
||
| ^^^^ This component is created during render
|
||
540 | Opportunities{" "}
|
||
541 | <span style={{ float: "right", fontSize: "0.65rem", background: "#e4e4e7", padding: "1px 6px", borderRadius: 999 }}>12</span>
|
||
542 | </Item>
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:510:16
|
||
508 | const rs = tokens.radiusSm;
|
||
509 | const pad = tokens.density === "compact" ? 6 : 8;
|
||
> 510 | const Item = ({ active, children }: { active?: boolean; children: ReactNode }) => (
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 511 | <div
|
||
| ^^^^^^^^
|
||
> 512 | style={{
|
||
…
|
||
| ^^^^^^^^
|
||
> 523 | </div>
|
||
| ^^^^^^^^
|
||
> 524 | );
|
||
| ^^^^ The component is created during render here
|
||
525 | return (
|
||
526 | <div style={{ display: "grid", gridTemplateColumns: "220px 1fr", gap: 24 }}>
|
||
527 | <div react-hooks/static-components
|
||
543:10 error Error: Cannot create components during render
|
||
|
||
Components created during render will reset their state each time they are created. Declare components outside of render.
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:543:10
|
||
541 | <span style={{ float: "right", fontSize: "0.65rem", background: "#e4e4e7", padding: "1px 6px", borderRadius: 999 }}>12</span>
|
||
542 | </Item>
|
||
> 543 | <Item>Inbox</Item>
|
||
| ^^^^ This component is created during render
|
||
544 | <div style={{ fontSize: "0.62rem", fontWeight: 700, color: "#a1a1aa", letterSpacing: "0.06em", margin: "14px 8px 8px" }}>WORKSPACE</div>
|
||
545 | <Item>Workflows</Item>
|
||
546 | <Item>Tasks</Item>
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:510:16
|
||
508 | const rs = tokens.radiusSm;
|
||
509 | const pad = tokens.density === "compact" ? 6 : 8;
|
||
> 510 | const Item = ({ active, children }: { active?: boolean; children: ReactNode }) => (
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 511 | <div
|
||
| ^^^^^^^^
|
||
> 512 | style={{
|
||
…
|
||
| ^^^^^^^^
|
||
> 523 | </div>
|
||
| ^^^^^^^^
|
||
> 524 | );
|
||
| ^^^^ The component is created during render here
|
||
525 | return (
|
||
526 | <div style={{ display: "grid", gridTemplateColumns: "220px 1fr", gap: 24 }}>
|
||
527 | <div react-hooks/static-components
|
||
545:10 error Error: Cannot create components during render
|
||
|
||
Components created during render will reset their state each time they are created. Declare components outside of render.
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:545:10
|
||
543 | <Item>Inbox</Item>
|
||
544 | <div style={{ fontSize: "0.62rem", fontWeight: 700, color: "#a1a1aa", letterSpacing: "0.06em", margin: "14px 8px 8px" }}>WORKSPACE</div>
|
||
> 545 | <Item>Workflows</Item>
|
||
| ^^^^ This component is created during render
|
||
546 | <Item>Tasks</Item>
|
||
547 | </div>
|
||
548 | <div style={{ fontSize: "0.72rem", color: "#71717a", lineHeight: 1.65, fontFamily: tokens.fontFamily }}>
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:510:16
|
||
508 | const rs = tokens.radiusSm;
|
||
509 | const pad = tokens.density === "compact" ? 6 : 8;
|
||
> 510 | const Item = ({ active, children }: { active?: boolean; children: ReactNode }) => (
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 511 | <div
|
||
| ^^^^^^^^
|
||
> 512 | style={{
|
||
…
|
||
| ^^^^^^^^
|
||
> 523 | </div>
|
||
| ^^^^^^^^
|
||
> 524 | );
|
||
| ^^^^ The component is created during render here
|
||
525 | return (
|
||
526 | <div style={{ display: "grid", gridTemplateColumns: "220px 1fr", gap: 24 }}>
|
||
527 | <div react-hooks/static-components
|
||
546:10 error Error: Cannot create components during render
|
||
|
||
Components created during render will reset their state each time they are created. Declare components outside of render.
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:546:10
|
||
544 | <div style={{ fontSize: "0.62rem", fontWeight: 700, color: "#a1a1aa", letterSpacing: "0.06em", margin: "14px 8px 8px" }}>WORKSPACE</div>
|
||
545 | <Item>Workflows</Item>
|
||
> 546 | <Item>Tasks</Item>
|
||
| ^^^^ This component is created during render
|
||
547 | </div>
|
||
548 | <div style={{ fontSize: "0.72rem", color: "#71717a", lineHeight: 1.65, fontFamily: tokens.fontFamily }}>
|
||
549 | <div>Drawer preview uses kit neutrals + radius tokens.</div>
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-kit-panels.tsx:510:16
|
||
508 | const rs = tokens.radiusSm;
|
||
509 | const pad = tokens.density === "compact" ? 6 : 8;
|
||
> 510 | const Item = ({ active, children }: { active?: boolean; children: ReactNode }) => (
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||
> 511 | <div
|
||
| ^^^^^^^^
|
||
> 512 | style={{
|
||
…
|
||
| ^^^^^^^^
|
||
> 523 | </div>
|
||
| ^^^^^^^^
|
||
> 524 | );
|
||
| ^^^^ The component is created during render here
|
||
525 | return (
|
||
526 | <div style={{ display: "grid", gridTemplateColumns: "220px 1fr", gap: 24 }}>
|
||
527 | <div react-hooks/static-components
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/design-system-explorer.tsx
|
||
53:9 warning The 'savedForKit' logical expression could make the dependencies of useMemo Hook (at line 56) change on every render. To fix this, wrap the initialization of 'savedForKit' in its own useMemo() Hook react-hooks/exhaustive-deps
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/gitea-file-tree.tsx
|
||
147:72 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/gitea-file-viewer.tsx
|
||
35:7 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/gitea-file-viewer.tsx:35:7
|
||
33 | useEffect(() => {
|
||
34 | if (!path) {
|
||
> 35 | setContent(null);
|
||
| ^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
36 | setError(null);
|
||
37 | setLoading(false);
|
||
38 | return; react-hooks/set-state-in-effect
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/project-stage-pill.tsx
|
||
45:7 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/project-stage-pill.tsx:45:7
|
||
43 | useEffect(() => {
|
||
44 | if (!anatomy) {
|
||
> 45 | setAnatomyPollMs(0);
|
||
| ^^^^^^^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
46 | return;
|
||
47 | }
|
||
48 | const s = derivePillState(anatomy); react-hooks/set-state-in-effect
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/table-viewer.tsx
|
||
36:5 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/table-viewer.tsx:36:5
|
||
34 | const ctrl = new AbortController();
|
||
35 | const t = setTimeout(() => ctrl.abort(), 12_000);
|
||
> 36 | setLoading(true);
|
||
| ^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
37 | setError(null);
|
||
38 | setData(null);
|
||
39 | react-hooks/set-state-in-effect
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/use-anatomy.ts
|
||
128:5 error Error: Calling setState synchronously within an effect can trigger cascading renders
|
||
|
||
Effects are intended to synchronize state between React and external systems such as manually updating the DOM, state management libraries, or other platform APIs. In general, the body of an effect should do one or both of the following:
|
||
* Update external systems with the latest state from React.
|
||
* Subscribe for updates from some external system, calling setState in a callback function when external state changes.
|
||
|
||
Calling setState synchronously within an effect body causes cascading renders that can hurt performance, and is not recommended. (https://react.dev/learn/you-might-not-need-an-effect).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/project/use-anatomy.ts:128:5
|
||
126 | const timeout = setTimeout(() => controller.abort(), 10_000);
|
||
127 |
|
||
> 128 | setLoading(true);
|
||
| ^^^^^^^^^^ Avoid calling setState() directly within an effect
|
||
129 | setError(null);
|
||
130 |
|
||
131 | fetch(`/api/projects/${projectId}/anatomy`, { react-hooks/set-state-in-effect
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/ui/collapsible-sidebar.tsx
|
||
4:23 warning 'ChevronRight' is defined but never used @typescript-eslint/no-unused-vars
|
||
23:17 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/ui/input.tsx
|
||
5:18 error An interface declaring no members is equivalent to its supertype @typescript-eslint/no-empty-object-type
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/ui/textarea.tsx
|
||
5:18 error An interface declaring no members is equivalent to its supertype @typescript-eslint/no-empty-object-type
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
214:10 warning 'thoughtPreview' is defined but never used @typescript-eslint/no-unused-vars
|
||
573:10 warning 'ToolBubble' is defined but never used @typescript-eslint/no-unused-vars
|
||
760:17 warning 'sessionData' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
919:54 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1065:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1467:53 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
1811:25 warning Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element
|
||
2029:17 warning Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/workspace/WorkspaceKeysPanel.tsx
|
||
92:53 warning '_urlHint' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/fix_mcp.js
|
||
1:12 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/index.js
|
||
1:23 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
2:14 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/ai/gemini-chat.ts
|
||
48:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
54:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
60:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
114:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
176:16 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
264:20 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/ai/gemini-client.ts
|
||
24:16 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
92:77 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
93:23 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
99:44 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
99:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
101:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
119:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
133:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/ai/llm-client.ts
|
||
29:40 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/ai/openai-compatible-chat.ts
|
||
292:42 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
298:33 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
312:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/ai/vibn-tools.ts
|
||
1775:7 warning 'NON_MCP_TOOLS' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
1867:46 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/db-postgres.ts
|
||
1:16 warning 'QueryResult' is defined but never used @typescript-eslint/no-unused-vars
|
||
47:33 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
47:61 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
53:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
53:64 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
115:39 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
142:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
178:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
206:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
242:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
254:26 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
279:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/db/alloydb.ts
|
||
152:63 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
154:12 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/dev-container.ts
|
||
55:7 warning 'DEFAULT_DISK_LIMIT' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/dns/cloud-dns.ts
|
||
13:28 warning 'DnsRecord' is defined but never used @typescript-eslint/no-unused-vars
|
||
13:39 warning 'DnsZone' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/feature-flags.ts
|
||
32:40 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/firebase/admin.ts
|
||
72:72 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
73:75 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
74:78 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/firebase/api-keys.ts
|
||
5:11 warning 'ApiKey' is defined but never used @typescript-eslint/no-unused-vars
|
||
8:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
9:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/firebase/auth.ts
|
||
35:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
45:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
69:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
93:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
102:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/firebase/collections.ts
|
||
81:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/firebase/config.ts
|
||
34:12 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/gitea.ts
|
||
519:24 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
542:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
559:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/integrations/sentry.ts
|
||
148:36 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
246:58 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
286:50 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
291:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
295:65 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
308:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
311:62 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
321:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
332:52 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
382:41 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/mcp/server.ts
|
||
267:54 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
268:56 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
269:58 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
293:45 warning 'startDate' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
293:56 warning 'endDate' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
303:66 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
306:74 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/projects.ts
|
||
23:9 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
64:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
139:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/scaffold/templates/dashboard/app/page.tsx
|
||
28:63 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/server/backend-extractor.ts
|
||
12:33 warning 'ExtractedInsight' is defined but never used @typescript-eslint/no-unused-vars
|
||
49:11 warning 'projectData' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
117:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/server/chat-context.ts
|
||
16:15 warning 'ProjectPhaseData' is defined but never used @typescript-eslint/no-unused-vars
|
||
53:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
54:15 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
55:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
139:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
201:9 error 'sessionHistory' is never reassigned. Use 'const' instead prefer-const
|
||
213:59 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
289:49 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
429:51 warning 'i' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/server/chat-mode-resolver.ts
|
||
16:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
27:71 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
59:38 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
85:44 warning 'projectId' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/server/github-analyzer.ts
|
||
117:18 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/server/knowledge.ts
|
||
17:65 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
47:28 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
59:28 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
70:28 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/server/logs.ts
|
||
70:68 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
74:62 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
78:68 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
82:58 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
86:60 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
90:64 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
94:68 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
98:66 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
102:45 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/server/product-model.ts
|
||
18:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
24:25 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
30:42 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/server/projects.ts
|
||
23:48 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/server/vector-memory.ts
|
||
7:10 warning 'getAlloyDbClient' is defined but never used @typescript-eslint/no-unused-vars
|
||
78:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/ssh-keys.ts
|
||
77:26 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/types/logs.ts
|
||
63:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/types/phase-handoff.ts
|
||
34:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
37:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
55:29 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/types/project-artifacts.ts
|
||
1:38 warning 'ProjectStage' is defined but never used @typescript-eslint/no-unused-vars
|
||
3:31 warning 'HomepageMessaging' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/utils/code-chunker.ts
|
||
77:5 warning 'preserveFunctions' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
78:5 warning 'preserveClasses' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
116:7 error 'headerLines' is never reassigned. Use 'const' instead prefer-const
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/lib/workspaces.ts
|
||
221:7 error 'coolifyServerUuid' is never reassigned. Use 'const' instead prefer-const
|
||
222:7 error 'coolifyDestinationUuid' is never reassigned. Use 'const' instead prefer-const
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/marketing/components/footer.tsx
|
||
37:15 warning Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/marketing/components/new-site/index.tsx
|
||
227:14 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
312:16 error Error: Cannot access refs during render
|
||
|
||
React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected (https://react.dev/reference/react/useRef).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/marketing/components/new-site/index.tsx:312:16
|
||
310 | className="twk-panel"
|
||
311 | data-noncommentable=""
|
||
> 312 | style={{ right: offsetRef.current.x, bottom: offsetRef.current.y }}
|
||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Cannot access ref value during render
|
||
313 | >
|
||
314 | <div className="twk-hd" onMouseDown={onDragStart}>
|
||
315 | <b>{title}</b> react-hooks/refs
|
||
312:25 error Error: Cannot access refs during render
|
||
|
||
React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected (https://react.dev/reference/react/useRef).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/marketing/components/new-site/index.tsx:312:25
|
||
310 | className="twk-panel"
|
||
311 | data-noncommentable=""
|
||
> 312 | style={{ right: offsetRef.current.x, bottom: offsetRef.current.y }}
|
||
| ^^^^^^^^^^^^^^^^^^^ Cannot access ref value during render
|
||
313 | >
|
||
314 | <div className="twk-hd" onMouseDown={onDragStart}>
|
||
315 | <b>{title}</b> react-hooks/refs
|
||
312:54 error Error: Cannot access refs during render
|
||
|
||
React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected (https://react.dev/reference/react/useRef).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/marketing/components/new-site/index.tsx:312:54
|
||
310 | className="twk-panel"
|
||
311 | data-noncommentable=""
|
||
> 312 | style={{ right: offsetRef.current.x, bottom: offsetRef.current.y }}
|
||
| ^^^^^^^^^^^^^^^^^^^ Cannot access ref value during render
|
||
313 | >
|
||
314 | <div className="twk-hd" onMouseDown={onDragStart}>
|
||
315 | <b>{title}</b> react-hooks/refs
|
||
367:10 warning 'TweakSlider' is defined but never used @typescript-eslint/no-unused-vars
|
||
417:3 error Error: Cannot access refs during render
|
||
|
||
React refs are values that are not needed for rendering. Refs should only be accessed outside of render, such as in event handlers or effects. Accessing a ref value (the `current` property) during render can cause your component not to update as expected (https://react.dev/reference/react/useRef).
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/marketing/components/new-site/index.tsx:417:3
|
||
415 | // of a drag — ref it so a stale closure doesn't fire onChange for every move.
|
||
416 | const valueRef = useRef(value);
|
||
> 417 | valueRef.current = value;
|
||
| ^^^^^^^^^^^^^^^^ Cannot update ref during render
|
||
418 |
|
||
419 | // Segments wrap mid-word once per-segment width runs out. The track is
|
||
420 | // ~248px (280 panel − 28 body pad − 4 seg pad), each button loses 12px react-hooks/refs
|
||
531:10 warning 'TweakText' is defined but never used @typescript-eslint/no-unused-vars
|
||
545:10 warning 'TweakNumber' is defined but never used @typescript-eslint/no-unused-vars
|
||
686:10 warning 'TweakButton' is defined but never used @typescript-eslint/no-unused-vars
|
||
819:10 warning 'Hairline' is defined but never used @typescript-eslint/no-unused-vars
|
||
1135:17 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
1141:18 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
1213:32 error React Hook "useChip" cannot be called inside a callback. React Hooks must be called in a React function component or a custom React Hook function react-hooks/rules-of-hooks
|
||
1505:22 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
1536:27 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
1680:32 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
1965:43 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
1965:50 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
1965:67 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
2218:19 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
2231:17 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
2231:27 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
2419:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2419:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2564:9 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2564:9 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2568:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2568:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2569:11 error Do not use an `<a>` element to navigate to `/mission/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2570:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2570:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2571:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2571:11 error Do not use an `<a>` element to navigate to `/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2574:11 error Do not use an `<a>` element to navigate to `/auth/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2581:11 error Do not use an `<a>` element to navigate to `/auth/`. Use `<Link />` from `next/link` instead. See: https://nextjs.org/docs/messages/no-html-link-for-pages @next/next/no-html-link-for-pages
|
||
2657:53 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
2658:39 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
2658:48 error `"` can be escaped with `"`, `“`, `"`, `”` react/no-unescaped-entities
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/mcp-server.js
|
||
23:19 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
24:14 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
27:1 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/mcp-zed-bridge.js
|
||
25:5 warning 'requestId' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/public/vibn-preview-bridge.js
|
||
45:14 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
141:12 warning 'e' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/scripts/add-phase-tracking.js
|
||
7:15 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
8:7 warning 'fs' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
8:12 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
9:7 warning 'path' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
9:14 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
12:1 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/scripts/check-session-links.ts
|
||
24:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
25:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/scripts/migrate-from-postgres.ts
|
||
2:1 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
2:34 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
37:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
48:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
60:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
61:17 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
68:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
69:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
70:22 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
71:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
86:19 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
89:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
98:13 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
265:56 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/scripts/reassign-migrated-data.ts
|
||
2:1 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
2:34 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
44:14 warning 'error' is defined but never used @typescript-eslint/no-unused-vars
|
||
55:11 error 'query' is never reassigned. Use 'const' instead prefer-const
|
||
72:24 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/scripts/smoke-chat-tools.ts
|
||
84:18 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
85:14 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/scripts/smoke-storage-e2e.ts
|
||
61:7 warning 'SA_ID' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/scripts/test-alloydb.ts
|
||
7:10 warning 'getAlloyDbClient' is defined but never used @typescript-eslint/no-unused-vars
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/test-gemini-3-global.js
|
||
1:22 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/test-gemini-3-simple.js
|
||
1:22 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/test_auth.js
|
||
1:1 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
2:18 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/test_auth2.js
|
||
1:1 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
2:18 error A `require()` style import is forbidden @typescript-eslint/no-require-imports
|
||
|
||
✖ 798 problems (627 errors, 171 warnings)
|
||
22 errors and 1 warning potentially fixable with the `--fix` option.
|
||
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: npx eslint components/vibn-chat/chat-panel.tsx**
|
||
Status: Completed
|
||
|
||
Terminal:
|
||
```
|
||
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
|
||
|
||
/Users/markhenderson/master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
214:10 warning 'thoughtPreview' is defined but never used @typescript-eslint/no-unused-vars
|
||
573:10 warning 'ToolBubble' is defined but never used @typescript-eslint/no-unused-vars
|
||
760:17 warning 'sessionData' is assigned a value but never used @typescript-eslint/no-unused-vars
|
||
919:54 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1065:21 error Unexpected any. Specify a different type @typescript-eslint/no-explicit-any
|
||
1467:53 error `'` can be escaped with `'`, `‘`, `'`, `’` react/no-unescaped-entities
|
||
1811:25 warning Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element
|
||
2029:17 warning Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` or a custom image loader to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element @next/next/no-img-element
|
||
|
||
✖ 8 problems (3 errors, 5 warnings)
|
||
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
The missing import for `Sparkles` in `components/vibn-chat/chat-panel.tsx` has been fixed! I've added it to the `lucide-react` import statement, which should clear up the `ReferenceError: Sparkles is not defined` runtime error you were seeing.
|
||
|
||
## User (checkpoint)
|
||
|
||
`Image`
|
||
see the carmalized onions thing. That animation (cycling different copy) always runs just above the chat input letting the user know its active. Thats what i was hoping to see while the AI is doing its tasks.
|
||
|
||
`Image` thats the kind of completion summary i am hpoing for. There isnt one right now.
|
||
|
||
**Tool Call: Search files for regex `ThinkingBubble`**
|
||
Status: Completed
|
||
|
||
Found 3 matches:
|
||
|
||
## Matches in master-ai/docs/AGENT_TELEMETRY_STREAMING_PROJECT.md
|
||
|
||
### # Agent Telemetry Streaming (Historical) › L5-6
|
||
```
|
||
The streaming system is fully implemented in `app/api/chat/route.ts` and rendered in the frontend via `Timeline`, `ThinkingBubble`, and `TimelineToolGroup` components inside `chat-panel.tsx`.
|
||
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
|
||
### function ThinkingBubble( ) › L223-233
|
||
```
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
```
|
||
|
||
34 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### function Timeline( ) › L407-409
|
||
```
|
||
if (item.kind === "thought") {
|
||
return <ThinkingBubble key={i} thoughts={item.text} />;
|
||
}
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `isLoading`**
|
||
Status: Completed
|
||
|
||
Found 10 matches:
|
||
|
||
## Matches in master-ai/vibn-frontend/AI_WELCOME_MESSAGE_FIX.md
|
||
|
||
### # ✅ AI Welcome Message Fix - Complete › ## Code Changes › ### **After:** › L56-64
|
||
```
|
||
// Trigger AI to generate first message
|
||
setIsLoading(false);
|
||
setIsInitialized(true);
|
||
|
||
// Automatically send a greeting to get AI's welcome message
|
||
setTimeout(() => {
|
||
sendChatMessage("Hello");
|
||
}, 500);
|
||
```
|
||
```
|
||
|
||
### # ✅ AI Welcome Message Fix - Complete › ## What Changed › ### **3 Scenarios Fixed:** › #### **1. No Auth (Not Signed In):** › L105-112
|
||
```
|
||
if (!user) {
|
||
setIsLoading(false);
|
||
setIsInitialized(true);
|
||
setTimeout(() => {
|
||
sendChatMessage("Hello");
|
||
}, 500);
|
||
return;
|
||
}
|
||
```
|
||
|
||
### # ✅ AI Welcome Message Fix - Complete › ## What Changed › ### **3 Scenarios Fixed:** › #### **2. No Conversation History:** › L119-125
|
||
```
|
||
if (existingMessages.length === 0) {
|
||
setIsLoading(false);
|
||
setIsInitialized(true);
|
||
setTimeout(() => {
|
||
sendChatMessage("Hello");
|
||
}, 500);
|
||
}
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/components/NextAuthComponent.tsx
|
||
|
||
### function NextAuthForm() › const isLoading › L39-54
|
||
```
|
||
function NextAuthForm() {
|
||
const [isLoading, setIsLoading] = useState(false);
|
||
const [devSecret, setDevSecret] = useState("");
|
||
const searchParams = useSearchParams();
|
||
const callbackUrl = searchParams.get("callbackUrl") ?? "/auth";
|
||
const errorCode = searchParams.get("error");
|
||
const errorHint = authErrorMessage(errorCode);
|
||
|
||
const handleGoogleSignIn = async () => {
|
||
setIsLoading(true);
|
||
try {
|
||
await signIn("google", { callbackUrl });
|
||
} catch (error) {
|
||
console.error("Google sign-in error:", error);
|
||
setIsLoading(false);
|
||
}
|
||
```
|
||
|
||
364 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### function NextAuthForm() › const handleDevLocalSignIn › L57-68
|
||
```
|
||
const handleDevLocalSignIn = async () => {
|
||
setIsLoading(true);
|
||
try {
|
||
await signIn("dev-local", {
|
||
callbackUrl,
|
||
password: devSecret,
|
||
redirect: true,
|
||
});
|
||
} catch (error) {
|
||
console.error("Dev local sign-in error:", error);
|
||
setIsLoading(false);
|
||
}
|
||
```
|
||
|
||
1 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### function NextAuthForm() › L296-300
|
||
```
|
||
}}
|
||
onClick={handleGoogleSignIn}
|
||
disabled={isLoading}
|
||
>
|
||
<svg
|
||
```
|
||
|
||
### function NextAuthForm() › L322-326
|
||
```
|
||
/>
|
||
</svg>
|
||
{isLoading ? "Signing in…" : "Continue with Google"}
|
||
</button>
|
||
|
||
```
|
||
|
||
### function NextAuthForm() › L374-383
|
||
```
|
||
<button
|
||
type="submit"
|
||
disabled={isLoading}
|
||
className="btn btn-primary"
|
||
style={{
|
||
height: "40px",
|
||
padding: "0 16px",
|
||
borderRadius: "8px",
|
||
}}
|
||
>
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/components/project/gitea-file-tree.tsx
|
||
|
||
### function Node( ) › const isLoading › L192-202
|
||
```
|
||
}: NodeProps) {
|
||
const isDir = item.type === "dir";
|
||
const isOpen = expanded.has(item.path);
|
||
const isLoading = loadingPaths.has(item.path);
|
||
const children = childrenByPath[item.path];
|
||
const isSelected = !isDir && selectedPath === item.path;
|
||
const fileClickable = !isDir && typeof onSelectFile === "function";
|
||
|
||
const Icon = isDir
|
||
? isOpen
|
||
? ChevronDown
|
||
```
|
||
|
||
56 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### function Node( ) › L237-241
|
||
```
|
||
)}
|
||
<span style={nameStyle}>{item.name}</span>
|
||
{isLoading && (
|
||
<Loader2 size={11} className="animate-spin" style={{ color: INK.muted, marginLeft: "auto" }} />
|
||
)}
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `loading`**
|
||
Status: Completed
|
||
|
||
Showing matches 1-20 (there were more matches found; use offset: 20 to see next page):
|
||
|
||
## Matches in master-ai/VIBNDEV.md
|
||
|
||
### # Vibn Development — Infrastructure Reference › ## Common Failure Modes › ### 6. DeepSeek 400 errors › L231-232
|
||
```
|
||
**Cause:** OpenAI-compatible APIs require `tool_calls` to be immediately followed by matching `tool` messages. Historical messages with stale `toolCalls` (no tool responses persisted) trigger validation errors.
|
||
**Fix:** History loading strips `toolCalls` from persisted assistant messages. Diagnostic logging added to `callOpenAiCompatibleChat` — check server logs for `[deepseek]` entries.
|
||
```
|
||
|
||
## Matches in master-ai/extracted-9f46b960-c12f-4a24-83f6-c6e0ff6415bb.txt
|
||
|
||
### L13285-13291
|
||
```
|
||
if (current !== null) {
|
||
if (current.elementType === elementType || ( // Keep this check inline so it only runs on the false path:
|
||
isCompatibleFamilyForHotReloading(current, element) ) || // Lazy types should reconcile their resolved type.
|
||
// We need to do this after the Hot Reloading check above,
|
||
// because hot reloading has different semantics than prod because
|
||
// it doesn't resuspend. So we can't let the call below suspend.
|
||
typeof elementType === 'object' && elementType !== null && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === current.type) {
|
||
```
|
||
|
||
### L13958-13964
|
||
```
|
||
} else {
|
||
if (child.elementType === elementType || ( // Keep this check inline so it only runs on the false path:
|
||
isCompatibleFamilyForHotReloading(child, element) ) || // Lazy types should reconcile their resolved type.
|
||
// We need to do this after the Hot Reloading check above,
|
||
// because hot reloading has different semantics than prod because
|
||
// it doesn't resuspend. So we can't let the call below suspend.
|
||
typeof elementType === 'object' && elementType !== null && elementType.$$typeof === REACT_LAZY_TYPE && resolveLazy(elementType) === child.type) {
|
||
```
|
||
|
||
### L15460-15464
|
||
```
|
||
{
|
||
hookTypesDev = current !== null ? current._debugHookTypes : null;
|
||
hookTypesUpdateIndexDev = -1; // Used for hot reloading:
|
||
|
||
ignorePreviousDependencies = current !== null && current.type !== workInProgress.type;
|
||
```
|
||
|
||
### L15512-15516
|
||
```
|
||
|
||
{
|
||
// Even when hot reloading, allow dependencies to stabilize
|
||
// after first render to prevent infinite render phase updates.
|
||
ignorePreviousDependencies = false;
|
||
```
|
||
|
||
### L18765-18769
|
||
```
|
||
update.callback = function () {
|
||
{
|
||
markFailedErrorBoundaryForHotReloading(fiber);
|
||
}
|
||
|
||
```
|
||
|
||
### L18777-18781
|
||
```
|
||
update.callback = function callback() {
|
||
{
|
||
markFailedErrorBoundaryForHotReloading(fiber);
|
||
}
|
||
|
||
```
|
||
|
||
### L18990-18994
|
||
```
|
||
//
|
||
// Restarting too aggressively is also not good because it starves out any
|
||
// intermediate loading state. So we use heuristics to determine when.
|
||
// Suspense Heuristics
|
||
//
|
||
```
|
||
|
||
### L18998-19002
|
||
```
|
||
// If this is an initial render of a new tree of Suspense boundaries and
|
||
// those trigger a fallback, then don't suspend/restart. We want to ensure
|
||
// that we can show the initial loading state as quickly as possible.
|
||
//
|
||
// If we hit a "Delayed" case, such as when we'd switch from content back into
|
||
```
|
||
|
||
### L19007-19011
|
||
```
|
||
// another level, but there's still an inner boundary that would show a fallback,
|
||
// then we suspend/restart for 500ms since the last time we showed a fallback
|
||
// anywhere in the tree. This effectively throttles progressive loading into a
|
||
// consistent train of commits. This also gives us an opportunity to restart to
|
||
// get to the completed state slightly earlier.
|
||
```
|
||
|
||
### L19015-19019
|
||
```
|
||
//
|
||
// We want to ensure that a "busy" state doesn't get force committed. We want to
|
||
// ensure that new initial loading states can commit as soon as possible.
|
||
|
||
|
||
```
|
||
|
||
### L19080-19084
|
||
```
|
||
|
||
|
||
var uncaughtSuspenseError = new Error('A component suspended while responding to synchronous input. This ' + 'will cause the UI to be replaced with a loading indicator. To ' + 'fix, updates that suspend should be wrapped ' + 'with startTransition.'); // If we're outside a transition, fall through to the regular error path.
|
||
// The error will be caught by the nearest suspense boundary.
|
||
|
||
```
|
||
|
||
### L19298-19302
|
||
```
|
||
|
||
{
|
||
resolvedType = resolveFunctionForHotReloading(type);
|
||
} // If this is a plain function component without default props,
|
||
// and with only the default shallow comparison, we upgrade it
|
||
```
|
||
|
||
### L19993-19997
|
||
```
|
||
{
|
||
validateFunctionComponentInDev(workInProgress, Component);
|
||
workInProgress.type = Component = resolveFunctionForHotReloading(Component);
|
||
}
|
||
|
||
```
|
||
|
||
### L20003-20007
|
||
```
|
||
{
|
||
{
|
||
workInProgress.type = Component = resolveClassForHotReloading(Component);
|
||
}
|
||
|
||
```
|
||
|
||
### L20013-20017
|
||
```
|
||
{
|
||
{
|
||
workInProgress.type = Component = resolveForwardRefForHotReloading(Component);
|
||
}
|
||
|
||
```
|
||
|
||
### L21506-21510
|
||
```
|
||
if (_hasChildWork) {
|
||
// If something was in fallback state last time, and we have all the
|
||
// same children then we're still in progressive loading state.
|
||
// Something might get unblocked by state updates or retries in the
|
||
// tree which will affect the tail. So we need to use the normal
|
||
```
|
||
|
||
### L25377-25381
|
||
```
|
||
|
||
var workInProgressRootRecoverableErrors = null; // The most recent time we committed a fallback. This lets us ensure a train
|
||
// model where we don't commit new loading states in too quick succession.
|
||
|
||
var globalMostRecentFallbackTime = 0;
|
||
```
|
||
|
||
### L25945-25949
|
||
```
|
||
case RootSuspended:
|
||
{
|
||
markRootSuspended$1(root, lanes); // We have an acceptable loading state. We need to figure out if we
|
||
// should immediately commit it or wait a bit.
|
||
|
||
```
|
||
|
||
### L25951-25955
|
||
```
|
||
!shouldForceFlushFallbacksInDEV()) {
|
||
// This render only included retries, no updates. Throttle committing
|
||
// retries so that we don't show too many loading states too quickly.
|
||
var msUntilTimeout = globalMostRecentFallbackTime + FALLBACK_THROTTLE_MS - now(); // Don't bother with a very short suspense time.
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `Caramelizing`**
|
||
Status: Completed
|
||
|
||
No matches found
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/components/vibn-chat/chat-panel.tsx` (lines 101-150)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
return "Running terminal commands";
|
||
if (name.includes("dev_server.start") || name.includes("dev_server_start"))
|
||
return "Starting dev server";
|
||
if (name.includes("dev_server.logs") || name.includes("dev_server_logs"))
|
||
return "Checking server logs";
|
||
if (
|
||
name.includes("browser.navigate") ||
|
||
name.includes("browser.console") ||
|
||
name.includes("browser_navigate") ||
|
||
name.includes("browser_console")
|
||
)
|
||
return "Checking browser preview";
|
||
if (name.includes("ship")) return "Shipping code to production";
|
||
|
||
return name;
|
||
}
|
||
|
||
function timeAgo(dateStr?: string): string {
|
||
if (!dateStr) return "";
|
||
const diff = (Date.now() - new Date(dateStr).getTime()) / 1000;
|
||
if (diff < 60) return "just now";
|
||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
||
return `${Math.floor(diff / 86400)}d ago`;
|
||
}
|
||
|
||
function friendlyToolName(name: string): string {
|
||
return name
|
||
.replace(/_/g, ".")
|
||
.replace("projects.list", "listing projects")
|
||
.replace("apps.list", "listing apps")
|
||
.replace("apps.create", "deploying app")
|
||
.replace("apps.templates.list", "listing templates")
|
||
.replace("apps.templates.search", "searching templates")
|
||
.replace("domains.register", "registering domain")
|
||
.replace("domains.list", "listing domains")
|
||
.replace("apps.logs", "fetching logs");
|
||
}
|
||
|
||
// ── Markdown-lite renderer ────────────────────────────────────────────────────
|
||
|
||
function escapeHtmlAttr(s: string): string {
|
||
return s.replace(/&/g, "&").replace(/"/g, """);
|
||
}
|
||
|
||
const LINK_STYLE =
|
||
"color:#4338ca;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all";
|
||
|
||
/** [label](https://...) — href restricted to http(s) */
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `active`**
|
||
Status: Completed
|
||
|
||
Showing matches 1-20 (there were more matches found; use offset: 20 to see next page):
|
||
|
||
## Matches in master-ai/AI_CAPABILITIES.md
|
||
|
||
### # Vibn AI Capabilities (Condensed) › ## Core Architecture › L10-12
|
||
```
|
||
3. **Dev Containers:** Persistent, per-project Docker environments (`vibn-dev-*`) where the AI can read, write, and execute code interactively before shipping.
|
||
|
||
## Tool Categories
|
||
```
|
||
|
||
## Matches in master-ai/BETA_LAUNCH_PLAN.md
|
||
|
||
### # Beta Launch Execution Plan › ## How to use this doc › L352-354
|
||
```
|
||
- Beta success criteria: **5 testers, all reach "shipped a thing", weekly
|
||
active rate >60% in week 2.** If we miss those, the next plan is "what
|
||
did we get wrong."
|
||
```
|
||
|
||
## Matches in master-ai/docs/MARKET_RESEARCH_TOOLS_SUMMARY.md
|
||
|
||
### # Market Research & Data Co-op System Summary › ## 2. MCP Tools Added (`lib/ai/vibn-tools.ts`) › ### `market_research_run` › L19-20
|
||
```
|
||
* **Quality Control:** Automatically applies strict filters (`is_claimed: true` and `current_status <> "closed_forever"`) to ensure only verified, active businesses are returned.
|
||
* **Guardrails:**
|
||
```
|
||
|
||
## Matches in master-ai/docs/PRODUCT_MARKET_FIT_ENGINE.md
|
||
|
||
### # Product-Market Fit (PMF) Engine › ## 4. Open Source Baselining & Architecture Extraction › L40-41
|
||
```
|
||
* **Mechanism:** The AI searches GitHub for actively maintained starter kits. It then explicitly reads the README and source code to reverse-engineer the "Software Requirements Specification" (SRS).
|
||
* **Tooling:** Uses the `github_search` and `github_file` MCP tools.
|
||
```
|
||
|
||
## Matches in master-ai/docs_archive/AGENT_EXECUTION_ARCHITECTURE.md
|
||
|
||
### # VIBN Agent Execution Architecture › ## Core AI Architecture › L34-38
|
||
```
|
||
│ │
|
||
│ The user's only AI interface. Reasons across the entire │
|
||
│ business. Surfaces insights proactively. Delegates all work │
|
||
│ to the right specialist. Never asks the user to choose which │
|
||
│ module or agent to use — it figures that out. │
|
||
```
|
||
|
||
### # VIBN Agent Execution Architecture › ## Core AI Architecture › L46-50
|
||
```
|
||
│ - Web search: competitors, market trends, growth tactics │
|
||
│ │
|
||
│ Proactive behaviors: │
|
||
│ - Surfaces anomalies before being asked │
|
||
│ - Tracks open questions and follows up │
|
||
```
|
||
|
||
### # VIBN Agent Execution Architecture › ## Assist — Personal AI / COO › ### What it does › L116-117
|
||
```
|
||
**Reactive** — answers anything the user asks:
|
||
- "What should I build next?"
|
||
```
|
||
|
||
### # VIBN Agent Execution Architecture › ## Assist — Personal AI / COO › ### What it does › L123-124
|
||
```
|
||
**Proactive** — surfaces things without being asked:
|
||
- Detects when a deploy caused an error spike
|
||
```
|
||
|
||
### # VIBN Agent Execution Architecture › ## Current End-to-End Status (March 2026) › ### Not Yet Started › L423-433
|
||
```
|
||
| Step | Status |
|
||
|------|--------|
|
||
| `advisor_conversations` + `advisor_memory` DB tables | ⬜ |
|
||
| Assist COO (user-facing personal AI) | ⬜ |
|
||
| Code Advisor (delegated specialist) | ⬜ |
|
||
| Growth Advisor (delegated specialist) | ⬜ |
|
||
| Analytics Advisor (delegated specialist) | ⬜ |
|
||
| Orchestrator (task decomposition + tier routing) | ⬜ |
|
||
| Proactive monitoring (anomaly detection, briefings) | ⬜ |
|
||
| Parallel task execution | ⬜ |
|
||
| WebSocket streaming (replace polling) | ⬜ |
|
||
```
|
||
|
||
2 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### # VIBN Agent Execution Architecture › ## Build Phases › ### Phase 1 — Execution Foundation ✅ › L447-448
|
||
```
|
||
- [x] Adaptive polling, auto-select active session
|
||
- [x] Context-aware task input (locked while running)
|
||
```
|
||
|
||
### # VIBN Agent Execution Architecture › ## Build Phases › ### Phase 6 — Proactive Intelligence › L480-481
|
||
```
|
||
### Phase 6 — Proactive Intelligence
|
||
- [ ] Assist monitors for anomalies and surfaces them without being asked
|
||
```
|
||
|
||
## Matches in master-ai/docs_archive/VIBN_PRD.md
|
||
|
||
### # vibn — Product Requirements Document › ## 3. Vision & Success Metrics › L42-51
|
||
```
|
||
| Metric | Target |
|
||
|---|---|
|
||
| Time from signup to deployed app | < 72 hours (median) |
|
||
| % of builds that deploy successfully on first attempt | > 85% |
|
||
| Monthly active builders | 500 |
|
||
| Projects reaching "live" status | 200 |
|
||
| Net Revenue Retention (NRR) | > 100% |
|
||
| Gross margin | > 65% |
|
||
| Paying customers at 6 months | 150 |
|
||
|
||
```
|
||
|
||
### # vibn — Product Requirements Document › ## 7. Screen-by-Screen Specification › ### 7.11 Build Phase — Progress Screen › L310-311
|
||
```
|
||
- **Key elements:** 12-step checklist with: completed steps (green checkmark), active step (animated indicator), pending steps (grey). Step label + detail line. Progress header showing step count.
|
||
- **On completion:** "Your MVP is live" screen — app URL ("Open my app ↗"), Gitea link ("View in Gitea ↗"), "Your next 3 actions" card.
|
||
```
|
||
|
||
### # vibn — Product Requirements Document › ## 8. Business Model & Pricing › ### Pricing Tiers › L342-348
|
||
```
|
||
| Tier | Price | Templates | Projects | Credits included | Target |
|
||
|---|---|---|---|---|---|
|
||
| **Free** | $0/mo | Starter only | 1 active | 50 credits/mo | Evaluators |
|
||
| **Builder** | $49/mo | Starter + Builder | 3 active | 500 credits/mo | Solo founders |
|
||
| **Pro** | $149/mo | All templates | Unlimited | 2,000 credits/mo | Active builders + agencies |
|
||
| **Enterprise** | Custom | Custom + private | Unlimited | Custom | Teams, compliance needs |
|
||
|
||
```
|
||
|
||
### # vibn — Product Requirements Document › ## 10. Non-Functional Requirements › ### Accessibility › L404-405
|
||
```
|
||
- WCAG 2.1 AA compliance for all interactive elements
|
||
- Keyboard navigable wizard phases
|
||
```
|
||
|
||
### # vibn — Product Requirements Document › ## 13. Appendix › ### Glossary › L472-482
|
||
```
|
||
| Term | Definition |
|
||
|---|---|
|
||
| **Build** | The automated process of AI generating code, committing to Gitea, and deploying via Coolify |
|
||
| **Wizard** | The 6-phase guided flow: Discover → Architect → Design → Market → Build |
|
||
| **Phase** | A single stage of the wizard, each producing a specific artifact |
|
||
| **Template** | A pre-built starter codebase that vibn AI builds upon instead of generating from scratch |
|
||
| **Credits** | vibn's unit of AI compute consumption; consumed during builds, content generation, and chat |
|
||
| **Hot tier** | Always-running shared infrastructure (API gateway, orchestrator, Postgres, Redis, Gitea, Coolify) |
|
||
| **Cold tier** | Per-user on-demand containers (agent workspace instances, hibernated when inactive) |
|
||
| **Tier A/B/C** | Three levels of AI model quality/cost, automatically routed by the orchestrator based on task complexity |
|
||
| **Producer** | A vibn user building products for clients (agency use case) |
|
||
```
|
||
|
||
5 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/docs_archive/remixed-9edec9e9.tsx
|
||
|
||
### const projects › lastActive › L23-28
|
||
```
|
||
const projects = [
|
||
{ id: 1, name: "Meridian", desc: "Client portal for boutique agencies", status: "building", progress: 68, features: 12, phase: "Frontend Gen", lastActive: "2h ago", color: "#3d5afe", domain: "meridian-app.stackless.dev", repo: "stackless/meridian-build", created: "Jan 12, 2026" },
|
||
{ id: 2, name: "Tidepool", desc: "Marine research data platform", status: "prd", progress: 45, features: 7, phase: "Features", lastActive: "20m ago", color: "#00897b", domain: null, repo: null, created: "Feb 3, 2026" },
|
||
{ id: 3, name: "Canopy", desc: "Internal team knowledge base", status: "live", progress: 100, features: 18, phase: "Deployed", lastActive: "1d ago", color: "#2e7d32", domain: "canopy.stackless.dev", customDomain: "kb.acmecorp.com", repo: "stackless/canopy-build", created: "Nov 28, 2025" },
|
||
{ id: 4, name: "Foxglove", desc: "Prescription mgmt for pharmacies", status: "prd", progress: 20, features: 3, phase: "Discovery", lastActive: "now", color: "#e65100", domain: null, repo: null, created: "Feb 27, 2026" },
|
||
];
|
||
```
|
||
|
||
### const activityFeed › action › L30-40
|
||
```
|
||
const activityFeed = [
|
||
{ time: "2 min ago", project: "Foxglove", action: "Atlas completed Users & Personas phase", type: "atlas" },
|
||
{ time: "18 min ago", project: "Foxglove", action: "You described the core prescription workflow", type: "user" },
|
||
{ time: "1h ago", project: "Meridian", action: "Build: Dashboard UI component generated", type: "build" },
|
||
{ time: "2h ago", project: "Meridian", action: "Build: Authentication system passed all tests", type: "build" },
|
||
{ time: "3h ago", project: "Tidepool", action: "Atlas captured 7 features in MoSCoW framework", type: "atlas" },
|
||
{ time: "5h ago", project: "Tidepool", action: "You approved Problem Statement section", type: "user" },
|
||
{ time: "8h ago", project: "Meridian", action: "Build: Database schema deployed", type: "build" },
|
||
{ time: "1d ago", project: "Canopy", action: "Custom domain kb.acmecorp.com verified and active", type: "deploy" },
|
||
{ time: "1d ago", project: "Canopy", action: "v1.2 deployed — added search filters", type: "deploy" },
|
||
{ time: "2d ago", project: "Meridian", action: "PRD approved — build pipeline started", type: "deploy" },
|
||
```
|
||
|
||
3 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### const prdData › status › L51-61
|
||
```
|
||
const prdData = [
|
||
{ name: "Executive Summary", status: "done", pct: 100 },
|
||
{ name: "Problem Statement", status: "done", pct: 100 },
|
||
{ name: "Users & Personas", status: "done", pct: 100 },
|
||
{ name: "User Flows", status: "active", pct: 60 },
|
||
{ name: "Feature Requirements", status: "pending", pct: 20 },
|
||
{ name: "Screen Specs", status: "pending", pct: 0 },
|
||
{ name: "Business Model", status: "pending", pct: 0 },
|
||
{ name: "Non-Functional Reqs", status: "pending", pct: 0 },
|
||
{ name: "Risks", status: "pending", pct: 0 },
|
||
];
|
||
```
|
||
|
||
### const discoveryPhases › active › L63-70
|
||
```
|
||
const discoveryPhases = [
|
||
{ name: "Big Picture", done: true },
|
||
{ name: "Users", done: true },
|
||
{ name: "Features", active: true },
|
||
{ name: "Business Model" },
|
||
{ name: "Screens" },
|
||
{ name: "Risks" },
|
||
];
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `Caramelizing`**
|
||
Status: Completed
|
||
|
||
No matches found
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/components/vibn-chat/chat-panel.tsx` (lines 1000-1120)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `/api/chat`**
|
||
Status: Completed
|
||
|
||
Showing matches 1-20 (there were more matches found; use offset: 20 to see next page):
|
||
|
||
## Matches in master-ai/AI_CAPABILITIES.md
|
||
|
||
### # Vibn AI Capabilities (Condensed) › ## Tool Categories › L22-23
|
||
```
|
||
*Refer to the system prompt in `vibn-frontend/app/api/chat/route.ts` for exact rules on how the AI should behave.*
|
||
|
||
```
|
||
|
||
## Matches in master-ai/BETA_LAUNCH_PLAN.md
|
||
|
||
### # Beta Launch Execution Plan › ## Phase 3 — UX surfaces (what users actually touch) › L119-128
|
||
```
|
||
| # | Task | Owner | Effort | Notes |
|
||
|---|---|---|---|---|
|
||
| 3.1 | **Hosting tab rewrite** — focus on the domain (live URL, redeploy, env, logs) instead of master-detail of "live + previews" | AI | 4 hrs | Mark flagged earlier |
|
||
| 3.2 | Replace the chat's "⚠️ Failed to get response. Please try again." with structured errors that show what tool failed and why | AI | 2 hrs | Critical — currently zero feedback |
|
||
| 3.3 | Empty states across Plan/Product/Infrastructure/Hosting that suggest the **next** AI prompt to try (not just "nothing here") | AI | 2 hrs | Vibe coders need a nudge |
|
||
| 3.6 | Product tab: confirm it's actually useful day-to-day. Revise scope if not | Mark + AI | 1 hr | Open question |
|
||
| 3.7 | **Scope-doc upload in Plan tab** — drop a PDF/.md/.docx/.txt as the project brief; server extracts text, stores on `fs_projects.brief_text` + `brief_meta`, exposes via `[PROJECT BRIEF]` block in system prompt and a `project_brief` MCP tool for on-demand grep. New file: `lib/integrations/brief-extract.ts`. Empty state replaces "nothing here" on Plan. | AI | 3 hrs | Came up during smoke test prep — users will arrive with scope docs (PDF/Notion-export/Doc); right now there's no way to hand the AI the source of truth except paste-into-chat. |
|
||
| 3.8 | **"Stop at something tangible" — three layers** | AI | partially done | Came up watching Manifest scaffold — AI stopped at "everything is wired together" with no preview, leaving the user to wonder if any of it was real. Code on disk is invisible; preview URL is the proof. |
|
||
| 3.8c | Server-side enforcement: if a turn called `fs_write` ≥10 times for source files but never `dev_server_start` or `apps_deploy`, append a synthetic recovery instruction telling the model to either start a server or explain the blocker | AI | 1 hr | Safety net for when the model ignores the prompt rule under load. Add a tracker in `app/api/chat/route.ts` tool loop, fire the instruction inside the round 2 system message. |
|
||
|
||
```
|
||
|
||
## Matches in master-ai/docs/AGENT_TELEMETRY_STREAMING_PROJECT.md
|
||
|
||
### # Agent Telemetry Streaming (Historical) › L5-6
|
||
```
|
||
The streaming system is fully implemented in `app/api/chat/route.ts` and rendered in the frontend via `Timeline`, `ThinkingBubble`, and `TimelineToolGroup` components inside `chat-panel.tsx`.
|
||
|
||
```
|
||
|
||
## Matches in master-ai/docs/AI_HARNESS_GAPS.md
|
||
|
||
### # AI Harness Stability & Middleware (Shipped) › L5-6
|
||
```
|
||
- The chat loop (`app/api/chat/route.ts`) acts as a robust harness that intercepts tool errors and automatically suggests recovery paths (e.g., port conflicts, container collisions).
|
||
- The maximum tool execution loop is capped (`MAX_TOOL_ROUNDS=30`) to prevent runaway AI loops.
|
||
```
|
||
|
||
## Matches in master-ai/docs/SENTRY_AS_PRODUCT.md
|
||
|
||
### # Sentry as a Product (Shipped) › ## Architecture › L9-10
|
||
```
|
||
- If unhandled exceptions are firing, the AI is prompted at the start of a conversation to address them (`app/api/chat/route.ts`).
|
||
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/CHATGPT_IMPORT_GUIDE.md
|
||
|
||
### # 📥 Import ChatGPT Conversations into Vibn › ## 🏗️ Architecture › ### **2. Vibn Import API** › L33-34
|
||
```
|
||
**Endpoint:** `POST /api/chatgpt/import`
|
||
|
||
```
|
||
|
||
### # 📥 Import ChatGPT Conversations into Vibn › ## 🧪 Testing › ### **Test the API Directly:** › L173-180
|
||
```
|
||
curl -X POST https://vibnai.com/api/chatgpt/import \
|
||
-H "Authorization: Bearer YOUR_FIREBASE_TOKEN" \
|
||
-H "Content-Type: application/json" \
|
||
-d '{
|
||
"conversationId": "abc-123-xyz",
|
||
"openaiApiKey": "sk-...",
|
||
"projectId": "your-project-id"
|
||
}'
|
||
```
|
||
|
||
### # 📥 Import ChatGPT Conversations into Vibn › ## 📁 Files Created/Modified › ### **New Files:** › L300-303
|
||
```
|
||
app/api/chatgpt/import/route.ts ← Import API endpoint
|
||
components/chatgpt-import-card.tsx ← UI component
|
||
CHATGPT_IMPORT_GUIDE.md ← This file
|
||
```
|
||
```
|
||
|
||
### # 📥 Import ChatGPT Conversations into Vibn › ## 🚀 What's Live › L315-320
|
||
```
|
||
✅ **Import API:** `/api/chatgpt/import`
|
||
✅ **UI Component:** ChatGPTImportCard
|
||
✅ **Connections Page:** Import card visible
|
||
✅ **Firestore Rules:** Deployed
|
||
✅ **Security:** API key not stored
|
||
✅ **Data:** Full conversation preserved
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/TODO_CHATGPT_IMPORT.md
|
||
|
||
### # ChatGPT Import - Issues to Fix › ## 🔍 Things to Check Tomorrow › ### 2. **Test OpenAI API Call** › L33-34
|
||
```
|
||
Verify the `/api/chatgpt/import` endpoint is receiving the correct data:
|
||
- Is the conversation ID correct?
|
||
```
|
||
|
||
### # ChatGPT Import - Issues to Fix › ## 🛠️ Files to Debug › L72-76
|
||
```
|
||
2. **Backend API:**
|
||
- `/Users/markhenderson/ai-proxy/vibn-frontend/app/api/chatgpt/import/route.ts`
|
||
- Check what error OpenAI is returning
|
||
|
||
3. **Test the API Directly:**
|
||
```
|
||
|
||
### # ChatGPT Import - Issues to Fix › ## 🎯 Quick Debug Commands for Tomorrow › const response › L113-123
|
||
```
|
||
const response = await fetch('/api/chatgpt/import', {
|
||
method: 'POST',
|
||
headers: {
|
||
'Authorization': `Bearer ${token}`,
|
||
'Content-Type': 'application/json'
|
||
},
|
||
body: JSON.stringify({
|
||
conversationId: '68fc09e6-372c-8326-8bd3-6cbf23df44aa',
|
||
openaiApiKey: 'YOUR-KEY-HERE'
|
||
})
|
||
});
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx
|
||
|
||
### function SessionsPanel( ) › L753-758
|
||
```
|
||
fetch(
|
||
`/api/chat/threads?workspace=${encodeURIComponent(workspace)}&projectId=${encodeURIComponent(projectId)}`,
|
||
{
|
||
credentials: "include",
|
||
},
|
||
)
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/chat/route.ts
|
||
|
||
### L1-11
|
||
```
|
||
/**
|
||
* POST /api/chat
|
||
*
|
||
* Streaming chat endpoint. Accepts a thread_id + user message,
|
||
* loads history, calls the configured chat model (Gemini or OpenAI-compatible e.g. DeepSeek), runs the tool loop,
|
||
* persists messages, and streams SSE back to the client.
|
||
*
|
||
* SSE event shapes:
|
||
* data: {"type":"text","text":"..."}
|
||
* data: {"type":"thinking","text":"..."} // model's first-person reasoning
|
||
* data: {"type":"tool_start","name":"...","args":{}}
|
||
```
|
||
|
||
5 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/chat/threads/[id]/route.ts
|
||
|
||
### L1-4
|
||
```
|
||
/**
|
||
* GET /api/chat/threads/[id] — load a thread + its messages
|
||
* PATCH /api/chat/threads/[id] — rename a thread
|
||
* DELETE /api/chat/threads/[id] — delete a thread
|
||
```
|
||
|
||
1 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/chat/threads/route.ts
|
||
|
||
### L1-12
|
||
```
|
||
/**
|
||
* GET /api/chat/threads — list user's threads
|
||
* GET /api/chat/threads?projectId=… — list user's threads for one project
|
||
* POST /api/chat/threads — create a new thread (optionally scoped to a project)
|
||
*
|
||
* Threads can be either:
|
||
* - workspace-level (project_id NULL) — created from /projects, etc.
|
||
* - project-scoped (project_id set) — created from a project page so
|
||
* the AI can pin the right project context in its system prompt.
|
||
*
|
||
* The schema is migrated idempotently the first time the route is hit
|
||
* after deploy (no manual migration needed).
|
||
```
|
||
|
||
1 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
|
||
### function ChatPanel( ) › L794-798
|
||
```
|
||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||
const inputRef = useRef<HTMLTextAreaElement>(null);
|
||
// AbortController for the in-flight /api/chat fetch. Lives in a ref
|
||
// so the Stop button can reach it without re-rendering on every
|
||
// streaming chunk.
|
||
```
|
||
|
||
### function ChatPanel( ) › const loadThreads › const res › L842-848
|
||
```
|
||
try {
|
||
const qs = new URLSearchParams({ workspace });
|
||
if (projectId) qs.set("projectId", projectId);
|
||
const res = await fetch(`/api/chat/threads?${qs.toString()}`);
|
||
const data = await res.json();
|
||
setThreads(data.threads || []);
|
||
} catch {
|
||
```
|
||
|
||
### function ChatPanel( ) › const newThread › const res › L889-899
|
||
```
|
||
try {
|
||
const res = await fetch("/api/chat/threads", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ workspace, projectId: projectId || undefined }),
|
||
});
|
||
const data = await res.json();
|
||
if (data.thread) {
|
||
setThreads((prev) => [data.thread, ...prev]);
|
||
setActiveThread(data.thread.id);
|
||
setMessages([]);
|
||
```
|
||
|
||
3 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### function ChatPanel( ) › const loadThread › const res › L912-922
|
||
```
|
||
try {
|
||
const res = await fetch(`/api/chat/threads/${id}`);
|
||
const data = await res.json();
|
||
// Hydrate the timeline from persisted textSegments + toolCalls
|
||
// so a reloaded thread renders the same per-round bubbles the
|
||
// user saw during streaming. Older messages without
|
||
// textSegments fall back to the legacy single-bubble path.
|
||
const hydrated = (data.messages || []).map((m: any) => {
|
||
if (m.role !== "assistant") return m;
|
||
const segs: string[] = Array.isArray(m.textSegments)
|
||
? m.textSegments
|
||
```
|
||
|
||
21 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `sending`**
|
||
Status: Completed
|
||
|
||
Showing matches 1-20 (there were more matches found; use offset: 20 to see next page):
|
||
|
||
## Matches in master-ai/docs_archive/product-idea-a.md
|
||
|
||
### L88-89
|
||
```
|
||
Structured memory > conversation replay
|
||
Instead of resending entire conversation history, persist and inject:
|
||
```
|
||
|
||
## Matches in master-ai/extracted-9f46b960-c12f-4a24-83f6-c6e0ff6415bb.txt
|
||
|
||
### L7872-7876
|
||
```
|
||
}
|
||
/**
|
||
* (For IE <=9) Handles a propertychange event, sending a `change` event if
|
||
* the value of the active element has changed.
|
||
*/
|
||
```
|
||
|
||
## Matches in master-ai/extracted-ebac1c94-e4f8-4cff-9c57-1bb24441fb38.txt
|
||
|
||
### L54-58
|
||
```
|
||
className="auth-btn auth-btn-primary">
|
||
{submitting ? (
|
||
<><span className="auth-spinner" /> Sending…</>
|
||
) : (
|
||
<><MailIcon size={17} /> Send me a magic link</>
|
||
```
|
||
|
||
## Matches in master-ai/new-site/beta.jsx
|
||
|
||
### function BetaApp() › L225-227
|
||
```
|
||
<>
|
||
<span className="spinner" /> Sending…
|
||
</>
|
||
```
|
||
|
||
## Matches in master-ai/vibn-agent-runner/dist/atlas.js
|
||
|
||
### async function atlasChat( ) › const buildMessages › L61-65
|
||
```
|
||
...session.history.slice(-60).map(m =>
|
||
// Strip the init marker before sending to the LLM
|
||
m.role === 'user' && typeof m.content === 'string' && m.content.startsWith(INIT_MARKER)
|
||
? { ...m, content: m.content.slice(INIT_MARKER.length) }
|
||
: m)
|
||
```
|
||
|
||
## Matches in master-ai/vibn-agent-runner/src/atlas.ts
|
||
|
||
### async function atlasChat( ) › const buildMessages › L102-106
|
||
```
|
||
...session.history.slice(-60).map(m =>
|
||
// Strip the init marker before sending to the LLM
|
||
m.role === 'user' && typeof m.content === 'string' && m.content.startsWith(INIT_MARKER)
|
||
? { ...m, content: m.content.slice(INIT_MARKER.length) }
|
||
: m
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/E2E_TEST_INSTRUCTIONS.md
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L86-96
|
||
```
|
||
==========================================
|
||
E2E COLLECTOR FLOW TEST
|
||
==========================================
|
||
|
||
Project ID: ABC123xyz
|
||
|
||
=== STEP 1: Welcome Message ===
|
||
[INFO] Sending: "Hello"
|
||
[RESPONSE] Welcome to Vibn! I'm here to help you rescue your stalled...
|
||
[PASS] Response contains: 'Welcome'
|
||
[PASS] Response contains: 'Step 1'
|
||
```
|
||
|
||
55 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L105-109
|
||
```
|
||
|
||
=== STEP 3: Inform AI About Documents ===
|
||
[INFO] Sending: "I just uploaded 8 documents about my project"
|
||
[RESPONSE] ✅ Perfect! I can see you've uploaded 8 documents...
|
||
[PASS] Response contains: 'uploaded'
|
||
```
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L111-115
|
||
```
|
||
|
||
=== STEP 4: GitHub Connection ===
|
||
[INFO] Sending: "Yes, I have a GitHub repo. It's called myuser/my-saas-app"
|
||
[RESPONSE] ✅ Great! I'll help you connect that repo...
|
||
[PASS] Response contains: 'GitHub'
|
||
```
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L117-121
|
||
```
|
||
|
||
=== STEP 5: Extension Installation ===
|
||
[INFO] Sending: "I want to install the browser extension"
|
||
[RESPONSE] Perfect! The Vibn browser extension captures your AI chat history...
|
||
[PASS] Response contains: 'extension'
|
||
```
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L122-126
|
||
```
|
||
|
||
=== STEP 6: Confirm Everything ===
|
||
[INFO] Sending: "Yes, that's everything I have for now"
|
||
[RESPONSE] Perfect! Let me analyze what you've shared...
|
||
[PASS] Response contains: 'everything'
|
||
```
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L128-132
|
||
```
|
||
|
||
=== STEP 7: Verify Auto-Transition ===
|
||
[INFO] Sending: "What do you need from me?"
|
||
[RESPONSE] Now I'm going to review the documents you uploaded...
|
||
[PASS] Response contains: 'extraction'
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/EXTENSION_INTEGRATION.md
|
||
|
||
### # Cursor Extension → Vibn Integration Guide › ## 2. Extension Code Changes › ### B. Send Session Data to Vibn › async function sendSessionToVibn( ) › L120-123
|
||
```
|
||
} catch (error) {
|
||
console.error('Error sending session to Vibn:', error);
|
||
return false;
|
||
}
|
||
```
|
||
|
||
### # Cursor Extension → Vibn Integration Guide › ## 7. User Experience › ### Bad UX: › L284-285
|
||
```
|
||
- ❌ Blocking user while sending data
|
||
- ❌ Showing errors for every failed request
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/GEMINI_3_SUCCESS.md
|
||
|
||
### # 🎉 Gemini 3 Pro Preview - SUCCESS! › ## 🧪 Testing in Your App › ### **Check Terminal Logs:** › L211-214
|
||
```
|
||
[AI Chat] Mode: collector_mode
|
||
[AI Chat] Context built: 0 vector chunks retrieved
|
||
[AI Chat] Sending 3 messages to LLM...
|
||
```
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/QA_ISSUES_FOUND.md
|
||
|
||
### # QA Issues Found - Table Stakes Implementation › ## 🐛 **Issue #6: ExtensionLinked vs Extension Data** (DESIGN) › L100-101
|
||
```
|
||
- But doesn't actually verify extension is *sending data*
|
||
- User could link, then uninstall extension
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/VERTEX_AI_MIGRATION_COMPLETE.md
|
||
|
||
### # ✅ Vertex AI Migration Complete › ## 🧪 How to Test › ### **Check Logs:** › L140-143
|
||
```
|
||
[AI Chat] Mode: collector_mode
|
||
[AI Chat] Context built: 0 vector chunks retrieved
|
||
[AI Chat] Sending 3 messages to LLM...
|
||
```
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/infrastructure/page.tsx
|
||
|
||
### const INFRA_NUDGE › email › L60-67
|
||
```
|
||
const INFRA_NUDGE = {
|
||
databases: 'No database yet. Try: "Add a Postgres database to my project"',
|
||
auth: 'No auth provider connected. Try: "Add Google OAuth to my app"',
|
||
email: 'No email provider. Try: "Set up email sending with Resend"',
|
||
payments: 'No payment provider. Try: "Connect Stripe to my project"',
|
||
llm: 'No LLM connected. Try: "Add an OpenAI key to this project"',
|
||
secrets: 'No secrets stored yet. Try: "Add my Stripe secret key"',
|
||
} as const;
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/ai/chat/route.ts
|
||
|
||
### async function POST( ) › L153-157
|
||
```
|
||
];
|
||
|
||
console.log(`[AI Chat] Sending ${messages.length} messages to LLM (${conversationHistory.length} from history + 1 new)`);
|
||
console.log(`[AI Chat] Mode: ${resolvedMode}, Phase: ${projectData.currentPhase}, Has extraction: ${!!context.phaseHandoffs?.extraction}`);
|
||
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/chat/route.ts
|
||
|
||
### async function POST( ) › const stream › async start( ) › let extraSystem › L525-527
|
||
```
|
||
roundsSinceText >= 4
|
||
? "\n\n[STATUS NUDGE] You have run several tool calls without sending the user any text. Before any more tool calls, send ONE short sentence describing what you are currently working on and why. The user is staring at a wall of tool pills and needs a signal of life."
|
||
: "";
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `sending`**
|
||
Status: Completed
|
||
|
||
Showing matches 1-20 (there were more matches found; use offset: 20 to see next page):
|
||
|
||
## Matches in master-ai/docs_archive/product-idea-a.md
|
||
|
||
### L88-89
|
||
```
|
||
Structured memory > conversation replay
|
||
Instead of resending entire conversation history, persist and inject:
|
||
```
|
||
|
||
## Matches in master-ai/extracted-9f46b960-c12f-4a24-83f6-c6e0ff6415bb.txt
|
||
|
||
### L7872-7876
|
||
```
|
||
}
|
||
/**
|
||
* (For IE <=9) Handles a propertychange event, sending a `change` event if
|
||
* the value of the active element has changed.
|
||
*/
|
||
```
|
||
|
||
## Matches in master-ai/extracted-ebac1c94-e4f8-4cff-9c57-1bb24441fb38.txt
|
||
|
||
### L54-58
|
||
```
|
||
className="auth-btn auth-btn-primary">
|
||
{submitting ? (
|
||
<><span className="auth-spinner" /> Sending…</>
|
||
) : (
|
||
<><MailIcon size={17} /> Send me a magic link</>
|
||
```
|
||
|
||
## Matches in master-ai/new-site/beta.jsx
|
||
|
||
### function BetaApp() › L225-227
|
||
```
|
||
<>
|
||
<span className="spinner" /> Sending…
|
||
</>
|
||
```
|
||
|
||
## Matches in master-ai/vibn-agent-runner/dist/atlas.js
|
||
|
||
### async function atlasChat( ) › const buildMessages › L61-65
|
||
```
|
||
...session.history.slice(-60).map(m =>
|
||
// Strip the init marker before sending to the LLM
|
||
m.role === 'user' && typeof m.content === 'string' && m.content.startsWith(INIT_MARKER)
|
||
? { ...m, content: m.content.slice(INIT_MARKER.length) }
|
||
: m)
|
||
```
|
||
|
||
## Matches in master-ai/vibn-agent-runner/src/atlas.ts
|
||
|
||
### async function atlasChat( ) › const buildMessages › L102-106
|
||
```
|
||
...session.history.slice(-60).map(m =>
|
||
// Strip the init marker before sending to the LLM
|
||
m.role === 'user' && typeof m.content === 'string' && m.content.startsWith(INIT_MARKER)
|
||
? { ...m, content: m.content.slice(INIT_MARKER.length) }
|
||
: m
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/E2E_TEST_INSTRUCTIONS.md
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L86-96
|
||
```
|
||
==========================================
|
||
E2E COLLECTOR FLOW TEST
|
||
==========================================
|
||
|
||
Project ID: ABC123xyz
|
||
|
||
=== STEP 1: Welcome Message ===
|
||
[INFO] Sending: "Hello"
|
||
[RESPONSE] Welcome to Vibn! I'm here to help you rescue your stalled...
|
||
[PASS] Response contains: 'Welcome'
|
||
[PASS] Response contains: 'Step 1'
|
||
```
|
||
|
||
55 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L105-109
|
||
```
|
||
|
||
=== STEP 3: Inform AI About Documents ===
|
||
[INFO] Sending: "I just uploaded 8 documents about my project"
|
||
[RESPONSE] ✅ Perfect! I can see you've uploaded 8 documents...
|
||
[PASS] Response contains: 'uploaded'
|
||
```
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L111-115
|
||
```
|
||
|
||
=== STEP 4: GitHub Connection ===
|
||
[INFO] Sending: "Yes, I have a GitHub repo. It's called myuser/my-saas-app"
|
||
[RESPONSE] ✅ Great! I'll help you connect that repo...
|
||
[PASS] Response contains: 'GitHub'
|
||
```
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L117-121
|
||
```
|
||
|
||
=== STEP 5: Extension Installation ===
|
||
[INFO] Sending: "I want to install the browser extension"
|
||
[RESPONSE] Perfect! The Vibn browser extension captures your AI chat history...
|
||
[PASS] Response contains: 'extension'
|
||
```
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L122-126
|
||
```
|
||
|
||
=== STEP 6: Confirm Everything ===
|
||
[INFO] Sending: "Yes, that's everything I have for now"
|
||
[RESPONSE] Perfect! Let me analyze what you've shared...
|
||
[PASS] Response contains: 'everything'
|
||
```
|
||
|
||
### # E2E Collector Flow Test - Instructions › ## Expected Output › ### Successful Test Run: › L128-132
|
||
```
|
||
|
||
=== STEP 7: Verify Auto-Transition ===
|
||
[INFO] Sending: "What do you need from me?"
|
||
[RESPONSE] Now I'm going to review the documents you uploaded...
|
||
[PASS] Response contains: 'extraction'
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/EXTENSION_INTEGRATION.md
|
||
|
||
### # Cursor Extension → Vibn Integration Guide › ## 2. Extension Code Changes › ### B. Send Session Data to Vibn › async function sendSessionToVibn( ) › L120-123
|
||
```
|
||
} catch (error) {
|
||
console.error('Error sending session to Vibn:', error);
|
||
return false;
|
||
}
|
||
```
|
||
|
||
### # Cursor Extension → Vibn Integration Guide › ## 7. User Experience › ### Bad UX: › L284-285
|
||
```
|
||
- ❌ Blocking user while sending data
|
||
- ❌ Showing errors for every failed request
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/GEMINI_3_SUCCESS.md
|
||
|
||
### # 🎉 Gemini 3 Pro Preview - SUCCESS! › ## 🧪 Testing in Your App › ### **Check Terminal Logs:** › L211-214
|
||
```
|
||
[AI Chat] Mode: collector_mode
|
||
[AI Chat] Context built: 0 vector chunks retrieved
|
||
[AI Chat] Sending 3 messages to LLM...
|
||
```
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/QA_ISSUES_FOUND.md
|
||
|
||
### # QA Issues Found - Table Stakes Implementation › ## 🐛 **Issue #6: ExtensionLinked vs Extension Data** (DESIGN) › L100-101
|
||
```
|
||
- But doesn't actually verify extension is *sending data*
|
||
- User could link, then uninstall extension
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/VERTEX_AI_MIGRATION_COMPLETE.md
|
||
|
||
### # ✅ Vertex AI Migration Complete › ## 🧪 How to Test › ### **Check Logs:** › L140-143
|
||
```
|
||
[AI Chat] Mode: collector_mode
|
||
[AI Chat] Context built: 0 vector chunks retrieved
|
||
[AI Chat] Sending 3 messages to LLM...
|
||
```
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/infrastructure/page.tsx
|
||
|
||
### const INFRA_NUDGE › email › L60-67
|
||
```
|
||
const INFRA_NUDGE = {
|
||
databases: 'No database yet. Try: "Add a Postgres database to my project"',
|
||
auth: 'No auth provider connected. Try: "Add Google OAuth to my app"',
|
||
email: 'No email provider. Try: "Set up email sending with Resend"',
|
||
payments: 'No payment provider. Try: "Connect Stripe to my project"',
|
||
llm: 'No LLM connected. Try: "Add an OpenAI key to this project"',
|
||
secrets: 'No secrets stored yet. Try: "Add my Stripe secret key"',
|
||
} as const;
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/ai/chat/route.ts
|
||
|
||
### async function POST( ) › L153-157
|
||
```
|
||
];
|
||
|
||
console.log(`[AI Chat] Sending ${messages.length} messages to LLM (${conversationHistory.length} from history + 1 new)`);
|
||
console.log(`[AI Chat] Mode: ${resolvedMode}, Phase: ${projectData.currentPhase}, Has extraction: ${!!context.phaseHandoffs?.extraction}`);
|
||
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/api/chat/route.ts
|
||
|
||
### async function POST( ) › const stream › async start( ) › let extraSystem › L525-527
|
||
```
|
||
roundsSinceText >= 4
|
||
? "\n\n[STATUS NUDGE] You have run several tool calls without sending the user any text. Before any more tool calls, send ONE short sentence describing what you are currently working on and why. The user is staring at a wall of tool pills and needs a signal of life."
|
||
: "";
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/components/vibn-chat/chat-panel.tsx` (lines 1000-1120)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `caramelizing`**
|
||
Status: Completed
|
||
|
||
No matches found
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/components/vibn-chat/chat-panel.tsx` (lines 223-280)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
fontSize: "0.75rem",
|
||
color: "#8c8580",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
fontStyle: "italic",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<Sparkles
|
||
style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
className="animate-pulse"
|
||
/>
|
||
</div>
|
||
<span className="animate-pulse">{currentAction}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function MessageBubble({ msg }: { msg: Message }) {
|
||
const isUser = msg.role === "user";
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
justifyContent: isUser ? "flex-end" : "flex-start",
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/app/api/chat/route.ts` (lines 490-560)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/app/api/chat/route.ts
|
||
// `assistantText` blob and render that as a single chat bubble.
|
||
// That made multi-round turns look like one giant run-on
|
||
// paragraph ("now.Spinning up...first boot...The dev container
|
||
// is ready!" with no breaks). Keeping them separate on the
|
||
// server lets the client render each as its own bubble and
|
||
// restores the segmentation on reload.
|
||
const assistantTextSegments: string[] = [];
|
||
const assistantToolCalls: ToolCall[] = [];
|
||
let aborted = clientSignal.aborted;
|
||
const onAbort = () => {
|
||
aborted = true;
|
||
};
|
||
clientSignal.addEventListener("abort", onAbort);
|
||
|
||
// Track per-turn signals we use for loop detection and silent-stretch
|
||
// detection. The model has a strong tendency to grind through a
|
||
// dozen+ tool calls in total silence (the user just sees ✓ pills
|
||
// pile up); both safeguards below break that pattern.
|
||
const toolFingerprints: string[] = [];
|
||
let roundsSinceText = 0;
|
||
let loopBreakReason: string | null = null;
|
||
|
||
try {
|
||
// Tool-calling loop: use non-streaming so thought_signature is
|
||
// always present in the complete response (required by thinking models).
|
||
while (round < MAX_TOOL_ROUNDS) {
|
||
if (aborted) break;
|
||
round++;
|
||
|
||
const toolDefs = mcp_token ? VIBN_TOOL_DEFINITIONS : [];
|
||
|
||
// Every 4 silent rounds, nudge the model to surface a one-liner
|
||
// status before continuing. This is the user's only signal of
|
||
// life when a tool chain runs long.
|
||
let extraSystem =
|
||
roundsSinceText >= 4
|
||
? "\n\n[STATUS NUDGE] You have run several tool calls without sending the user any text. Before any more tool calls, send ONE short sentence describing what you are currently working on and why. The user is staring at a wall of tool pills and needs a signal of life."
|
||
: "";
|
||
|
||
if (MAX_TOOL_ROUNDS - round <= 3) {
|
||
extraSystem += `\n\n[WARNING] You only have ${MAX_TOOL_ROUNDS - round} tool calls left before you are forcefully terminated. Stop exploring, make your final edits, and write your final response to the user NOW.`;
|
||
}
|
||
|
||
const resp = await callVibnChat({
|
||
systemPrompt: systemPrompt + extraSystem,
|
||
messages,
|
||
tools: toolDefs,
|
||
temperature: 0.7,
|
||
});
|
||
|
||
if (resp.error) {
|
||
emit({ type: "error", error: resp.error });
|
||
safeClose();
|
||
return;
|
||
}
|
||
|
||
// Stream user-facing text to client
|
||
if (resp.text) {
|
||
assistantText += (assistantText ? "\n\n" : "") + resp.text;
|
||
assistantTextSegments.push(resp.text);
|
||
emit({ type: "text", text: resp.text });
|
||
roundsSinceText = 0;
|
||
} else if (resp.toolCalls.length) {
|
||
roundsSinceText++;
|
||
}
|
||
|
||
// Stream the model's reasoning narration as a separate SSE
|
||
// event type. We pay for thinking tokens whether or not we
|
||
// ask for them, so making them visible is free transparency
|
||
// — and it cures the "tool tray with no narrative" feel.
|
||
if (resp.thoughts) {
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/app/api/chat/route.ts` (lines 561-650)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/app/api/chat/route.ts
|
||
emit({ type: "thinking", text: resp.thoughts });
|
||
}
|
||
|
||
// Announce tool calls
|
||
for (const tc of resp.toolCalls) {
|
||
assistantToolCalls.push(tc);
|
||
emit({ type: "tool_start", name: tc.name, args: tc.args });
|
||
}
|
||
|
||
// Save assistant turn
|
||
messages.push({
|
||
role: "assistant",
|
||
content: resp.text,
|
||
toolCalls: resp.toolCalls.length ? resp.toolCalls : undefined,
|
||
});
|
||
|
||
if (!resp.toolCalls.length) break;
|
||
if (aborted) break;
|
||
|
||
// Loop detection. If the model fires the same tool with the
|
||
// same first-key arg 3+ times in this turn, the user is
|
||
// watching it spin. Bail out, hand control back to the user
|
||
// with the last tool result as context. The classic case:
|
||
// dev_server.start → logs → stop → start → logs → stop → ...
|
||
for (const tc of resp.toolCalls) {
|
||
const argSig =
|
||
tc.args && typeof tc.args === "object"
|
||
? JSON.stringify(tc.args).slice(0, 120)
|
||
: "";
|
||
toolFingerprints.push(`${tc.name}|${argSig}`);
|
||
}
|
||
const last8 = toolFingerprints.slice(-8);
|
||
const counts = new Map<string, number>();
|
||
for (const fp of last8) counts.set(fp, (counts.get(fp) ?? 0) + 1);
|
||
const repeated = [...counts.entries()].find(([, n]) => n >= 3);
|
||
if (repeated) {
|
||
loopBreakReason = `Same call (${repeated[0].split("|")[0]}) fired ${repeated[1]}× in a row`;
|
||
}
|
||
|
||
// Execute tool calls and add results. OpenAI-compatible APIs
|
||
// (DeepSeek, etc.) require every tool_call_id to be answered with
|
||
// a tool message before any user/assistant message — so recovery
|
||
// nudges must run AFTER all tools from this assistant turn.
|
||
const recoveryLines: string[] = [];
|
||
for (const tc of resp.toolCalls) {
|
||
if (aborted) break;
|
||
const result = mcp_token
|
||
? await executeMcpTool(
|
||
tc.name,
|
||
tc.args,
|
||
mcp_token,
|
||
baseUrl,
|
||
activeProject?.id,
|
||
)
|
||
: JSON.stringify({ error: "No MCP token — read-only mode." });
|
||
|
||
emit({
|
||
type: "tool_result",
|
||
name: tc.name,
|
||
result: result.slice(0, 500),
|
||
});
|
||
|
||
messages.push({
|
||
role: "tool",
|
||
content: result,
|
||
toolCallId: tc.id,
|
||
toolName: tc.name,
|
||
thoughtSignature: tc.thoughtSignature,
|
||
});
|
||
|
||
const recovery = detectKnownError(result);
|
||
if (recovery) recoveryLines.push(formatRecoveryMessage(recovery));
|
||
}
|
||
for (const line of recoveryLines) {
|
||
messages.push({ role: "user", content: line });
|
||
}
|
||
|
||
if (loopBreakReason) break;
|
||
}
|
||
|
||
// If the user clicked Stop, surface the cancel marker so the
|
||
// client renders "(stopped by user)" inline with the partial
|
||
// assistant message, then skip the round-cap recovery summary
|
||
// (we shouldn't pay Gemini for a turn the user just canceled).
|
||
if (aborted) {
|
||
const stopMarker = assistantText
|
||
? "\n\n_(stopped by user)_"
|
||
: "_(stopped by user before any response)_";
|
||
assistantText += stopMarker;
|
||
assistantTextSegments.push(stopMarker.trimStart());
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/app/api/chat/route.ts` (lines 60-150)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/app/api/chat/route.ts
|
||
user_id TEXT NOT NULL,
|
||
data JSONB NOT NULL DEFAULT '{}',
|
||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||
);
|
||
CREATE INDEX IF NOT EXISTS fs_chat_messages_thread_idx
|
||
ON fs_chat_messages (thread_id, created_at ASC);
|
||
`,
|
||
[],
|
||
);
|
||
chatTablesReady = true;
|
||
}
|
||
|
||
export function buildSystemPrompt(
|
||
projects: any[],
|
||
workspace: string,
|
||
activeProject?: any,
|
||
): string {
|
||
const projectsText = projects.length
|
||
? projects
|
||
.map(
|
||
(p: any) =>
|
||
`- "${p.productName || p.name}" (id: ${p.id}, status: ${p.status || "defining"})${p.productVision ? ": " + p.productVision.slice(0, 120) : ""}`,
|
||
)
|
||
.join("\n")
|
||
: "(no projects yet)";
|
||
|
||
// When this thread is scoped to a project, surface a STRONG header
|
||
// at the top so the model treats `projectId` as resolved without the
|
||
// user having to name it. Falls through to the workspace-level mode
|
||
// (browse all projects) when activeProject is undefined.
|
||
// Pull plan artifacts (decisions + open tasks) so the AI doesn't ask
|
||
// the user to re-decide settled questions and knows what's queued up.
|
||
// Decisions are first-class: they encode the founder's intent and
|
||
// should be honored unless the user explicitly revisits one.
|
||
const plan = (activeProject?.plan ?? {}) as {
|
||
decisions?: { title: string; choice: string; why?: string }[];
|
||
tasks?: { text: string; status: "open" | "done" }[];
|
||
ideas?: { text: string }[];
|
||
};
|
||
const decisionsBlock = plan.decisions?.length
|
||
? `\n**Decisions already made for this project (DO NOT re-litigate unless the user asks):**\n${plan.decisions
|
||
.slice(0, 20)
|
||
.map(
|
||
(d) =>
|
||
`- ${d.title} → ${d.choice}${d.why ? ` (because: ${d.why})` : ""}`,
|
||
)
|
||
.join("\n")}\n`
|
||
: "";
|
||
const openTasks = (plan.tasks ?? [])
|
||
.filter((t) => t.status === "open")
|
||
.slice(0, 15);
|
||
const tasksBlock = openTasks.length
|
||
? `\n**Open tasks the user has captured:**\n${openTasks.map((t) => `- ${t.text}`).join("\n")}\n`
|
||
: "";
|
||
const ideasBlock = plan.ideas?.length
|
||
? `\n**Ideas parked (not commitments — surface only if relevant):**\n${plan.ideas
|
||
.slice(0, 10)
|
||
.map((i) => `- ${i.text}`)
|
||
.join("\n")}\n`
|
||
: "";
|
||
|
||
const briefBlock = (plan as any).brief
|
||
? `\n**[PROJECT BRIEF / SCOPE DOCUMENT]**\nThe user has uploaded a detailed project brief. You MUST read and adhere to these requirements when making architectural or product decisions:\n${(plan as any).brief.slice(0, 5000)}\n`
|
||
: "";
|
||
|
||
const designKitBlock = buildDesignKitPromptSection(activeProject);
|
||
|
||
const activeBlock = activeProject
|
||
? `\n## ACTIVE PROJECT — assume this for every tool call unless the user explicitly says otherwise
|
||
|
||
The user is currently looking at:
|
||
- Name: "${activeProject.productName || activeProject.name}"
|
||
- projectId: \`${activeProject.id}\`
|
||
- Slug: \`${activeProject.slug ?? "(none)"}\`
|
||
- Audience: ${activeProject.audience ?? "unspecified"}
|
||
- Vision: ${activeProject.productVision ? activeProject.productVision.slice(0, 1500) : "(not yet captured)"}
|
||
${activeProject.kickoff ? `- Created via: ${activeProject.kickoff.mode} (${JSON.stringify(activeProject.kickoff.sourceData).slice(0, 200)})` : ""}
|
||
${decisionsBlock}${tasksBlock}${ideasBlock}${designKitBlock ? `\n${designKitBlock}\n` : ""}
|
||
When you call tools that take a \`projectId\`, USE this id (\`${activeProject.id}\`) without asking. When the user says "this project" / "the app" / "deploy it" — they mean THIS project. Switch to a different project only if the user names one explicitly.
|
||
|
||
**Project repo is auto-cloned at \`/workspace/${activeProject.slug ?? "<slug>"}/\` inside the dev container.** That path is the project's Gitea repo. ALL code, docs, configs, and other artifacts you intend the user to see in the Product tab MUST live under that path. Anything you write outside it (e.g. \`/workspace/scratch\`, \`/workspace/some-cloned-other-repo\`) is treated as scratch and is invisible in the UI.
|
||
|
||
After every assistant turn, the harness automatically runs \`git add -A && git commit && git push\` against \`/workspace/${activeProject.slug ?? "<slug>"}/\`. You do NOT need to commit manually unless the user asks for a specific commit message or you want to checkpoint mid-turn. Don't apologize for "forgetting to commit" — the harness handles it.\n`
|
||
: "";
|
||
|
||
return `You are Vibn AI — the technical co-founder of every Vibn user. You turn ideas into shipped software. Treat their projects like they're your own.
|
||
|
||
You're talking to the owner of the "${workspace}" workspace. They have admin access to their Gitea org, a fleet of Coolify projects, and a persistent dev container per project. You can read and write any of it.
|
||
|
||
## Identity
|
||
You are a high-agency product engineer. You own the outcome. Continue until the user's goal is actually resolved unless you're blocked on missing info, proceeding would be unsafe, or the user changes direction. You are not answering questions; you are building with the user. Translate engineering complexity into product momentum.
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/app/api/chat/route.ts` (lines 151-250)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/app/api/chat/route.ts
|
||
|
||
## Stop at something the user can see
|
||
A turn that ends with "I scaffolded all the files" is a failure of judgment, even if the files are real. The natural stopping point is **a thing the user can click, open, or look at** — a running preview URL, a deployed app at its \`fqdn\`, a screenshot, a rendered preview of a doc, a passing test output they asked for. Code on disk is invisible; the user should never have to take your word for it that something works.
|
||
|
||
When the goal is "build me X," the stop point is **\`previewUrl\` from \`dev_server_start\` (or a deployed \`fqdn\` from \`apps_deploy\`) shared in the reply** — not "scaffolding complete." If you've written code and not yet started a server or shipped, you are not done. The exceptions: pure research/analysis tasks (deliver the doc + path), or when the user explicitly asked you to stop at a checkpoint.
|
||
|
||
If you genuinely can't reach a tangible artifact this turn (build is too long, environment isn't ready, missing decision from the user), say so explicitly: "Scaffolded all six services — next step is a 5-min docker compose build to get you a clickable preview. Want me to kick that off?" Make the gap visible and offer the next move. Don't dress up "I wrote files" as the finish line.
|
||
|
||
## Voice
|
||
- **Don't narrate single tool calls.** Skip "Okay, I'll read that file…" for a one-shot read. The user sees a tool tray; they don't need a play-by-play.
|
||
- **DO send a one-liner before every batch on a long chain.** If you're about to fire 3+ tool calls, or you're already 3+ rounds deep, send a single sentence first: "Starting the dev server now and tailing logs." Then call the tools. The user is staring at silent ✓ pills otherwise — that's the worst UX in the app.
|
||
- **Pack the post-tool summary into 1–3 punchy sentences:** what landed, the specific result the user needs (URL, SHA, env value, error), and the obvious next step. Don't recap every tool — they saw the tray.
|
||
- **Never end a turn silent.** If you ran tools, you owe the user a sentence about what happened. Never finish a turn with content_len = 0.
|
||
- **Have an opinion.** "Postgres or Mongo?" — pick one in a sentence and proceed. Founders need decisions, not menus. List options only if the user asks or tradeoffs genuinely matter.
|
||
- **Push back when it matters.** Refuse "deploy to prod without backups." Suggest Pipedream over n8n once if it fits better, then defer. Yes-machines ship broken software.
|
||
- **Surface adjacent risks unprompted.** Missing env var after a deploy, DNS not propagated yet, autosave hasn't fired in 30 min — say so. You're protecting their work.
|
||
- **Be honest about uncertainty.** "Best guess is X — want me to verify with Y?" beats false confidence. If a tool result is weird, say it's weird.
|
||
- **Length matches stakes.** "What time is it" → one line. "Move my user DB to a new region" → paragraph plus migration plan. Don't pad; don't truncate.
|
||
- **Adapt to the user.** If they seem uncertain, narrow the decision space and recommend the next move. If they're experienced, move faster and assume more context.
|
||
- **Markdown sparingly.** Backticks for code, paths, IDs, URLs always. Headings only at 3+ sections. Bullets for genuinely parallel items. Otherwise prose.
|
||
|
||
## Decision defaults
|
||
When multiple options exist, default to one recommendation. Bias toward: Postgres over Mongo, monoliths over microservices, Next.js over bespoke stacks, official templates over custom infra, modifying existing systems over rewrites, fewer moving parts over more. Escalate complexity only when requirements demand it.
|
||
|
||
## How Vibn is structured
|
||
- **Workspace** ("${workspace}") — tenant boundary. Owns the Gitea org and Coolify projects. You can only see/touch resources in this workspace.
|
||
- **Project** — an initiative (e.g. "Twenty CRM", "My Blog") with its own isolated Coolify project. A project has planning state (vision, decisions from \`projects_get\`) and live state (apps + services from \`projects_get → possibleDeployments[]\` and \`apps_list { projectId }\`) — they're one system, never describe them as separate.
|
||
|
||
## Common questions → tools
|
||
- "What is project X?" → \`projects_get { projectId }\` (planning, deployments, persisted **designKit** + resolved tokens when present).
|
||
- "What's running / has a domain?" → \`apps_list\` (workspace-wide) or \`apps_list { projectId }\`.
|
||
- "Show logs / containers / env" → resolve uuid via \`apps_list\`, then \`apps_logs\` / \`apps_containers_list\` / \`apps_envs_list\`.
|
||
- "Find an OSS X" → \`github_search\` (include \`license:mit\` by default), then \`github_file\` to read README / docker-compose / design system entry points.
|
||
- "What do the docs say about Y?" → \`http_fetch\`.
|
||
|
||
## How to deploy
|
||
|
||
**Third-party app (Twenty CRM, n8n, Ghost, Supabase, Pocketbase, etc.):** \`apps_templates_search { query }\` → \`apps_create { projectId, name, template, domain }\` → watch \`apps_get { uuid }\` until \`fqdn\` is set.
|
||
|
||
**Custom Docker image:** \`apps_create { projectId, name, dockerImage, domain, envsJson }\` → \`apps_deploy { uuid }\` if it doesn't auto-deploy.
|
||
|
||
**Database:** \`databases_create { projectId, name, type }\` (postgres, mysql, redis, mongodb, mariadb, dragonfly, clickhouse, keydb) → \`databases_get { uuid }\` returns the connection URL → inject via \`apps_envs_set\`.
|
||
|
||
**Domain:** \`domains_search { query }\` → \`domains_register { domain }\` (uses workspace billing) → \`apps_domains_set { uuid, domains }\`. DNS + Traefik wire automatically.
|
||
|
||
## Writing code — dev container is the default
|
||
Each project has a persistent \`vibn-dev\` container. Edit files via \`fs_*\` and run commands via \`shell_exec\`. Sub-second feedback vs ~5 min Gitea-push-to-prod.
|
||
|
||
**Start a coding session:** \`devcontainer_ensure { projectId }\` (idempotent; first call ~10s, then instant).
|
||
|
||
**Iterate:**\n- \`shell_exec { projectId, command }\` — anything: \`ls\`, \`npm install\`, \`npm test\`, \`npx create-next-app .\`, \`git status\`. Cwd defaults to \`/workspace\`. Node (LTS), Python 3.12, and Go 1.23 are pre-installed — no setup needed.\n- \`fs_read\` / \`fs_write\` / \`fs_edit { path, oldString, newString }\` (include 2–3 lines of context in \`oldString\` for uniqueness; fails fast if missing or non-unique).\n- \`fs_glob\` / \`fs_grep\` (ripgrep, respects .gitignore) / \`fs_list\` / \`fs_delete\`.\n
|
||
|
||
**Dev servers (preview URL via \`*.preview.vibnai.com\` wildcard):**
|
||
- \`dev_server_start { projectId, command, port?, name? }\` is a **one-shot** call. It kills old processes on the port, checks the port is free, sets HOST=0.0.0.0 + PORT, launches your command, and returns a clickable \`previewUrl\`. Do NOT pre-flight with \`devcontainer_status\`, \`fs_list\`, \`dev_server_logs\`, or manual \`shell_exec\` kills — the function handles all of that. Just call it. The error tells you what to fix: \`PORT_BUSY\` → pick 3001–3009; \`npm: command not found\` → project needs \`npm install\` first.
|
||
- \`port\` defaults to 3000, range 3000–3009 (10 Traefik routers pre-allocated per project).
|
||
- **Directory:** The command runs from the root \`/workspace\` directory, but your project code is inside \`/workspace/${activeProject.slug ?? "<slug>"}/\`. You MUST \`cd\` into your project folder first! Example: \`command: "cd ${activeProject.slug ?? "<slug>"} && npm run dev"\`.
|
||
- \`dev_server_stop\` / \`dev_server_list\` / \`dev_server_logs\` — use only AFTER a failed start, and only to diagnose the error the function returned. Never on success.
|
||
|
||
**HMR through the proxy (apply when scaffolding):**
|
||
- **Vite (verified working):** in \`vite.config\` set \`server: { host: '0.0.0.0', port: <3000-3009>, strictPort: true, hmr: { clientPort: 443, protocol: 'wss', host: '<the previewUrl host, no protocol>' } }\`. The \`hmr.host\` is REQUIRED — without it Vite's HMR client can guess the wrong host and the WS handshake fails through Traefik. Default localhost binding looks fine locally but breaks HMR through the proxy.
|
||
- **Next dev:** \`next dev -p 3000 -H 0.0.0.0\` (WSS HMR works automatically through the proxy without extra config).
|
||
- **Express / plain Node:** bind \`0.0.0.0\` (we set \`HOST=0.0.0.0\` env, but verify your framework respects it).
|
||
|
||
**Build-me-X recipe:** \`devcontainer_ensure\` → \`apps_templates_scaffold { templateName }\` (if matching "dashboard" or "pitch-deck") OR \`shell_exec npx create-next-app@latest . --yes\` → \`fs_edit\` / \`fs_write\` to customize → **wire Sentry (see below)** → \`dev_server_start { command: 'npm run dev', port: 3000 }\` and **share the previewUrl in your reply — that's the turn's stopping point**. When the user says "ship it", call \`ship { projectId, commitMsg }\` (commits to Gitea and triggers prod deploy in one shot). If a project is multi-service (frontend + API + worker), pick the user-facing service (usually the frontend) and start ITS dev server first, even if the others aren't done yet — a clickable shell beats a complete-but-invisible stack.
|
||
|
||
**Sentry is auto-provisioned per Vibn project.** When you scaffold a Next.js or Vite app, wire Sentry from day one so the user gets de-minified error capture + Session Replay on first deploy. The DSN (\`NEXT_PUBLIC_SENTRY_DSN\`) and shared org auth token (\`SENTRY_AUTH_TOKEN\`) are injected into the Coolify app's env automatically by \`apps_create\` — you don't set them. Get the project's Sentry slug from \`projects_get { projectId }\` (field: \`sentry.slug\`); pass it to \`withSentryConfig({ org: "vibnai", project: "<slug>", ... })\`. The reference recipe (instrumentation.ts, instrumentation-client.ts, app/global-error.tsx, next.config.ts wrapper, Dockerfile ARG declarations) is in \`vibn-frontend/lib/scaffold/sentry-snippets.ts\` — read it once via \`fs_*\` if you're unsure, then copy the snippets into the user's project verbatim. Skip Sentry for non-app projects (CLIs, library-only repos).
|
||
|
||
**Testing Auth & Protected Routes:** Do NOT attempt to verify signup flows or authenticated routes by making HTTP requests (e.g. \`curl\` or \`http_fetch\`) to the dev server yourself. The app is protected by NextAuth or similar session cookies which you do not have. Just write the code, start the dev server via \`dev_server_start\`, and provide the user the clickable \`previewUrl\` so they can test it themselves in their browser. If you hit a redirect/401, do NOT assume the server is broken and loop on restarting it.
|
||
|
||
**Design Critique / Visual QA Tool:**
|
||
- \`request_visual_qa { targetPath }\` runs a fast background AI agent to critique a UI file (like \`page.tsx\`, \`layout.tsx\`, or \`.css\`) against a strict 5-dimensional design rubric (Layout, Spacing, Contrast, Hierarchy, Responsiveness).
|
||
- You MUST call this tool whenever your turn involves creating or heavily modifying visual User Interface code before you return the \`previewUrl\` to the user.
|
||
- If the tool returns a failure with actionable issues (e.g., "missing mobile padding" or "using hardcoded colors instead of CSS variables"), you MUST use \`fs_edit\` to fix those specific issues before ending your turn.
|
||
- Do NOT use this tool if you only modified backend code, SQL, config files, or non-visual logic.
|
||
|
||
**Rules:**
|
||
- Stay under \`/workspace\`. \`fs_*\` enforce this; use \`shell_exec\` deliberately for system paths.
|
||
- Dev container has no route to internal Vibn services (vibn-postgres, etc.) by design.
|
||
- On non-zero \`shell_exec\`, READ STDERR before retrying. Form a hypothesis. Don't loop.
|
||
|
||
## Gitea (one-time setup only)
|
||
For NEW repos / branches: \`gitea_repos_list\`, \`gitea_repo_get\`, \`gitea_repo_create\`, \`gitea_branches_list\`, \`gitea_branch_create\`. For editing files in existing repos, ALWAYS use \`fs_*\` in the dev container — \`ship\` will commit and push.
|
||
|
||
## Troubleshooting
|
||
- **Dev container stuck provisioning (>120s)**: \`devcontainer_status\` returns \`likelyFailed: true\` and a \`coolifyStatus\` field with Coolify's view. If \`blockedReason\` is set, TELL THE USER the specific reason ("SSH not configured", "Coolify deploy failed: image pull error") instead of continuing to poll. Do NOT loop on \`devcontainer_status\` — a stuck container will NOT self-heal. If the status says "failed" or "error", advise the user to check their Coolify dashboard or regenerate the project.
|
||
- "exited (1)" / deploy stuck → \`apps_logs { uuid }\` + \`apps_containers_list { uuid }\`. Usual: missing env, wrong port, image pull fail.
|
||
- 502 / "no available server" → \`apps_get\`; if \`fqdn\` is empty, attach a domain.
|
||
- "tenant" / "does not belong to" → uuid not in this workspace. Re-list with \`apps_list\`.
|
||
- Compose stack weird → \`apps_repair { uuid }\` re-applies Traefik labels + port forwarding.
|
||
- Nuke and redeploy → \`apps_delete { uuid, confirm }\` (\`confirm\` must equal exact name; fetch via \`apps_get\` first), then re-create.
|
||
|
||
## Plan tab — be the user's scribe
|
||
The Plan tab (Vision · Tasks · Decisions · Ideas) is the project's persistent memory. Capture things in the moment so the user doesn't context-switch.
|
||
- \`plan_decision_log\` PROACTIVELY when a non-trivial choice settles (DB engine, auth, framework, region, pricing, brand voice). Don't ask permission. One-liner ack ("logged Postgres"), move on.
|
||
- \`plan_task_add\` when you commit to multi-step work, the user says "remind me to X", or a chain ends with an obvious user follow-up (add Stripe webhook URL). One task per real next-action.
|
||
- \`plan_task_edit\` to update a task or change its status. Put a task in "review" status when you finish it, unless the user explicitly said it is "done".
|
||
- \`plan_idea_add\` sparingly, only for something worth remembering that isn't a task or decision.
|
||
- \`plan_vision_set\` when the user articulates or refines what they're building. The vision is your north star.
|
||
|
||
## Hard rules (non-negotiable)
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/components/vibn-chat/chat-panel.tsx` (lines 1120-1150)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [
|
||
...tl,
|
||
{ kind: "tool", name: ev.name, status: "running" },
|
||
],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_result") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
// Walk backward to the most recent matching running
|
||
// tool entry and mark it done. Avoids cross-matching
|
||
// earlier same-named entries.
|
||
let updated = false;
|
||
const newTl: TimelineEntry[] = [];
|
||
for (let i = tl.length - 1; i >= 0; i--) {
|
||
const e = tl[i];
|
||
if (
|
||
!updated &&
|
||
e.kind === "tool" &&
|
||
e.name === ev.name &&
|
||
e.status === "running"
|
||
) {
|
||
newTl.unshift({
|
||
...e,
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `<form`**
|
||
Status: Completed
|
||
|
||
Found 3 matches:
|
||
|
||
## Matches in master-ai/extracted-ebac1c94-e4f8-4cff-9c57-1bb24441fb38.txt
|
||
|
||
### L40-44
|
||
```
|
||
</p>
|
||
|
||
<form className="auth-form" onSubmit={handleSubmit} noValidate>
|
||
<div className="auth-field">
|
||
<label className="auth-label" htmlFor="email">Email</label>
|
||
```
|
||
|
||
## Matches in master-ai/new-site/beta.jsx
|
||
|
||
### function BetaApp() › L132-136
|
||
```
|
||
</header>
|
||
|
||
<form className="beta-form" onSubmit={handleSubmit} noValidate>
|
||
<Field
|
||
label="01"
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/app/components/NextAuthComponent.tsx
|
||
|
||
### function NextAuthForm() › L346-350
|
||
```
|
||
</strong>
|
||
</p>
|
||
<form
|
||
onSubmit={(e) => {
|
||
e.preventDefault();
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `textarea`**
|
||
Status: Completed
|
||
|
||
Showing matches 1-20 (there were more matches found; use offset: 20 to see next page):
|
||
|
||
## Matches in master-ai/docs_archive/remixed-9edec9e9.tsx
|
||
|
||
### const FontLoader › L14-20
|
||
```
|
||
::-webkit-scrollbar-thumb { background: #d0ccc4; border-radius: 10px; }
|
||
input::placeholder { color: #b5b0a6; }
|
||
input:focus, textarea:focus { outline: none; }
|
||
button { font-family: 'Outfit', sans-serif; cursor: pointer; }
|
||
textarea { font-family: 'Outfit', sans-serif; resize: vertical; }
|
||
`}</style>
|
||
);
|
||
```
|
||
|
||
### const ProjectDetail › L804-808
|
||
```
|
||
<div style={{ marginBottom: 16 }}>
|
||
<div style={{ fontSize: "0.72rem", fontWeight: 600, color: "#6b6560", marginBottom: 6 }}>Description</div>
|
||
<textarea value={project.desc} onChange={() => {}} rows={2}
|
||
style={{ width: "100%", padding: "9px 13px", borderRadius: 7, border: "1px solid #e0dcd4", background: "#faf8f5", fontSize: "0.84rem", color: "#1a1a1a", fontFamily: "Outfit" }} />
|
||
</div>
|
||
```
|
||
|
||
## Matches in master-ai/extracted-9f46b960-c12f-4a24-83f6-c6e0ff6415bb.txt
|
||
|
||
### L129-133
|
||
```
|
||
// https://github.com/facebook/react/issues/11347
|
||
|
||
var enableCustomElementPropertySupport = false; // Disables children for <textarea> elements
|
||
var warnAboutStringRefs = true; // -----------------------------------------------------------------------------
|
||
// Debugging and DevTools
|
||
```
|
||
|
||
### L2225-2229
|
||
```
|
||
|
||
/**
|
||
* Implements a <textarea> host component that allows setting `value`, and
|
||
* `defaultValue`. This differs from the traditional DOM API because value is
|
||
* usually set as PCDATA children.
|
||
```
|
||
|
||
### L2243-2247
|
||
```
|
||
|
||
if (props.dangerouslySetInnerHTML != null) {
|
||
throw new Error('`dangerouslySetInnerHTML` does not make sense on <textarea>.');
|
||
} // Always set children to the same thing. In IE9, the selection range will
|
||
// get reset if `textContent` is mutated. We could add a check in setTextContent
|
||
```
|
||
|
||
### L2264-2271
|
||
```
|
||
|
||
{
|
||
checkControlledValueProps('textarea', props);
|
||
|
||
if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {
|
||
error('%s contains a textarea with both value and defaultValue props. ' + 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://reactjs.org/link/controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component');
|
||
|
||
didWarnValDefaultVal = true;
|
||
```
|
||
|
||
### L2281-2285
|
||
```
|
||
if (children != null) {
|
||
{
|
||
error('Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');
|
||
}
|
||
|
||
```
|
||
|
||
### L2286-2290
|
||
```
|
||
{
|
||
if (defaultValue != null) {
|
||
throw new Error('If you supply `defaultValue` on a <textarea>, do not pass children.');
|
||
}
|
||
|
||
```
|
||
|
||
### L2291-2295
|
||
```
|
||
if (isArray(children)) {
|
||
if (children.length > 1) {
|
||
throw new Error('<textarea> can only have at most one child.');
|
||
}
|
||
|
||
```
|
||
|
||
### L3619-3623
|
||
```
|
||
function validateProperties$1(type, props) {
|
||
{
|
||
if (type !== 'input' && type !== 'textarea' && type !== 'select') {
|
||
return;
|
||
}
|
||
```
|
||
|
||
### L3988-3992
|
||
```
|
||
|
||
function isInteractive(tag) {
|
||
return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';
|
||
}
|
||
|
||
```
|
||
|
||
### L7727-7731
|
||
```
|
||
}
|
||
|
||
if (nodeName === 'textarea') {
|
||
return true;
|
||
}
|
||
```
|
||
|
||
### L7966-7970
|
||
```
|
||
* Supported elements are:
|
||
* - input (see `isTextInputElement`)
|
||
* - textarea
|
||
* - select
|
||
*/
|
||
```
|
||
|
||
### L8481-8485
|
||
```
|
||
function hasSelectionCapabilities(elem) {
|
||
var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
|
||
return nodeName && (nodeName === 'input' && (elem.type === 'text' || elem.type === 'search' || elem.type === 'tel' || elem.type === 'url' || elem.type === 'password') || nodeName === 'textarea' || elem.contentEditable === 'true');
|
||
}
|
||
function getSelectionInformation() {
|
||
```
|
||
|
||
### L8532-8536
|
||
```
|
||
}
|
||
/**
|
||
* @getSelection: Gets the selection bounds of a focused textarea, input or
|
||
* contentEditable node.
|
||
* -@input: Look up selection bounds of this input
|
||
```
|
||
|
||
### L8542-8546
|
||
```
|
||
|
||
if ('selectionStart' in input) {
|
||
// Modern browser with input or textarea.
|
||
selection = {
|
||
start: input.selectionStart,
|
||
```
|
||
|
||
### L8548-8552
|
||
```
|
||
};
|
||
} else {
|
||
// Content editable or old IE textarea.
|
||
selection = getOffsets(input);
|
||
}
|
||
```
|
||
|
||
### L8558-8564
|
||
```
|
||
}
|
||
/**
|
||
* @setSelection: Sets the selection bounds of a textarea or input and focuses
|
||
* the input.
|
||
* -@input Set selection bounds of this input or textarea
|
||
* -@offsets Object of same form that is returned from get*
|
||
*/
|
||
```
|
||
|
||
### L8634-8638
|
||
```
|
||
// Ensure we have the right element, and that the user is not dragging a
|
||
// selection (this matches native `select` event behavior). In HTML5, select
|
||
// fires only on input and textarea thus if there's no focused element we
|
||
// won't dispatch.
|
||
var doc = getEventTargetDocument(nativeEventTarget);
|
||
```
|
||
|
||
### L8665-8669
|
||
```
|
||
* Supported elements are:
|
||
* - input (see `isTextInputElement`)
|
||
* - textarea
|
||
* - contentEditable
|
||
*
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `<textarea`**
|
||
Status: Completed
|
||
|
||
Showing matches 1-20 (there were more matches found; use offset: 20 to see next page):
|
||
|
||
## Matches in master-ai/docs_archive/remixed-9edec9e9.tsx
|
||
|
||
### const ProjectDetail › L804-808
|
||
```
|
||
<div style={{ marginBottom: 16 }}>
|
||
<div style={{ fontSize: "0.72rem", fontWeight: 600, color: "#6b6560", marginBottom: 6 }}>Description</div>
|
||
<textarea value={project.desc} onChange={() => {}} rows={2}
|
||
style={{ width: "100%", padding: "9px 13px", borderRadius: 7, border: "1px solid #e0dcd4", background: "#faf8f5", fontSize: "0.84rem", color: "#1a1a1a", fontFamily: "Outfit" }} />
|
||
</div>
|
||
```
|
||
|
||
## Matches in master-ai/extracted-9f46b960-c12f-4a24-83f6-c6e0ff6415bb.txt
|
||
|
||
### L129-133
|
||
```
|
||
// https://github.com/facebook/react/issues/11347
|
||
|
||
var enableCustomElementPropertySupport = false; // Disables children for <textarea> elements
|
||
var warnAboutStringRefs = true; // -----------------------------------------------------------------------------
|
||
// Debugging and DevTools
|
||
```
|
||
|
||
### L2225-2229
|
||
```
|
||
|
||
/**
|
||
* Implements a <textarea> host component that allows setting `value`, and
|
||
* `defaultValue`. This differs from the traditional DOM API because value is
|
||
* usually set as PCDATA children.
|
||
```
|
||
|
||
### L2243-2247
|
||
```
|
||
|
||
if (props.dangerouslySetInnerHTML != null) {
|
||
throw new Error('`dangerouslySetInnerHTML` does not make sense on <textarea>.');
|
||
} // Always set children to the same thing. In IE9, the selection range will
|
||
// get reset if `textContent` is mutated. We could add a check in setTextContent
|
||
```
|
||
|
||
### L2281-2285
|
||
```
|
||
if (children != null) {
|
||
{
|
||
error('Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');
|
||
}
|
||
|
||
```
|
||
|
||
### L2286-2290
|
||
```
|
||
{
|
||
if (defaultValue != null) {
|
||
throw new Error('If you supply `defaultValue` on a <textarea>, do not pass children.');
|
||
}
|
||
|
||
```
|
||
|
||
### L2291-2295
|
||
```
|
||
if (isArray(children)) {
|
||
if (children.length > 1) {
|
||
throw new Error('<textarea> can only have at most one child.');
|
||
}
|
||
|
||
```
|
||
|
||
### L9706-9711
|
||
```
|
||
if (typeof nextProp === 'string') {
|
||
// Avoid setting initial textContent when the text is empty. In IE11 setting
|
||
// textContent on a <textarea> will cause the placeholder to not
|
||
// show within the <textarea> until it has been focused and blurred again.
|
||
// https://github.com/facebook/react/issues/6731#issuecomment-254874553
|
||
var canSetTextContent = tag !== 'textarea' || nextProp !== '';
|
||
```
|
||
|
||
## Matches in master-ai/new-site/beta.jsx
|
||
|
||
### function BetaApp() › L167-177
|
||
```
|
||
<div className="f-prompt">
|
||
<textarea
|
||
className="f-textarea"
|
||
value={form.build}
|
||
onChange={(e) => update("build", e.target.value)}
|
||
placeholder="A booking site for my dog grooming business with reminders, payments and a wait list…"
|
||
rows={4}
|
||
/>
|
||
<div className="f-prompt-bar">
|
||
<span className="f-prompt-count">
|
||
{form.build.length > 0 ? `${form.build.length} chars` : "go wild"}
|
||
```
|
||
|
||
6 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/new-site/hero.jsx
|
||
|
||
### function Hero( ) › L302-312
|
||
```
|
||
<div style={{ position: "relative" }}>
|
||
<textarea
|
||
ref={taRef}
|
||
value={text}
|
||
onChange={(e) => setText(e.target.value)}
|
||
onKeyDown={(e) => { if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) submit(); }}
|
||
placeholder=""
|
||
aria-label="Describe what you want to build"
|
||
/>
|
||
{text.length === 0 && (
|
||
<div className="prompt-typed">{placeholder}</div>
|
||
```
|
||
|
||
2 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx
|
||
|
||
### function BriefPanel( ) › L518-525
|
||
```
|
||
{editorView === "write" ? (
|
||
<textarea
|
||
value={draft}
|
||
onChange={(e) => { setDraft(e.target.value); setDirty(true); }}
|
||
placeholder="Paste your PRD or project scope here..."
|
||
style={{ width: "100%", minHeight: 300, padding: 20, border: "none", outline: "none", fontSize: "0.9rem", lineHeight: 1.6, fontFamily: "var(--font-inter), sans-serif", color: "#1a1a1a", resize: "vertical" }}
|
||
/>
|
||
) : (
|
||
```
|
||
|
||
### function VisionPanel( ) › L635-645
|
||
```
|
||
{editorView === "write" ? (
|
||
<textarea
|
||
value={draft}
|
||
onChange={(e) => {
|
||
setDraft(e.target.value);
|
||
setDirty(true);
|
||
}}
|
||
placeholder={visionPlaceholder}
|
||
style={visionTextarea}
|
||
spellCheck
|
||
/>
|
||
```
|
||
|
||
1 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### function TaskDetail( ) › L1200-1208
|
||
```
|
||
{editorView === "write" ? (
|
||
<textarea
|
||
value={descDraft}
|
||
onChange={(e) => setDescDraft(e.target.value)}
|
||
placeholder={taskPlaceholder}
|
||
style={visionTextarea}
|
||
spellCheck
|
||
/>
|
||
) : (
|
||
```
|
||
|
||
### function TaskComposer( ) › L1330-1338
|
||
```
|
||
{editorView === "write" ? (
|
||
<textarea
|
||
value={desc}
|
||
onChange={(e) => setDesc(e.target.value)}
|
||
placeholder={taskPlaceholder}
|
||
style={visionTextarea}
|
||
spellCheck
|
||
/>
|
||
) : (
|
||
```
|
||
|
||
### function DecisionsPanel( ) › L1480-1484
|
||
```
|
||
style={input}
|
||
/>
|
||
<textarea
|
||
value={why}
|
||
onChange={(e) => setWhy(e.target.value)}
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/components/AtlasChat.tsx
|
||
|
||
### function AtlasChat( ) › L667-677
|
||
```
|
||
<div style={{
|
||
background: JV.composerSurface,
|
||
border: `1px solid ${JM.border}`,
|
||
borderRadius: JV.composerRadius,
|
||
boxShadow: JV.composerShadow,
|
||
overflow: "hidden",
|
||
}}>
|
||
<textarea
|
||
ref={textareaRef}
|
||
value={input}
|
||
onChange={e => setInput(e.target.value)}
|
||
```
|
||
|
||
198 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/components/OrchestratorChat.tsx
|
||
|
||
### function OrchestratorChat( ) › L335-345
|
||
```
|
||
<div className="flex gap-2 items-end">
|
||
<Textarea
|
||
ref={textareaRef}
|
||
value={input}
|
||
onChange={e => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={placeholder}
|
||
rows={1}
|
||
className="resize-none min-h-[40px] max-h-[120px] flex-1 text-sm bg-background border-border focus-visible:ring-1 rounded-xl"
|
||
style={{ fieldSizing: "content" } as React.CSSProperties}
|
||
disabled={loading}
|
||
```
|
||
|
||
14 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/components/layout/coo-chat.tsx
|
||
|
||
### function CooChat( ) › L236-246
|
||
```
|
||
<div style={{ display: "flex", gap: 7, alignItems: "flex-end" }}>
|
||
<textarea
|
||
ref={textareaRef}
|
||
value={input}
|
||
onChange={e => setInput(e.target.value)}
|
||
onKeyDown={e => {
|
||
if (e.key === "Enter" && !e.shiftKey) { e.preventDefault(); send(); }
|
||
}}
|
||
placeholder={loading ? "Thinking…" : "Ask anything…"}
|
||
disabled={loading}
|
||
rows={2}
|
||
```
|
||
|
||
23 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/components/project/design-kit-panels.tsx
|
||
|
||
### function InputsPanel( ) › L500-502
|
||
```
|
||
<Field label="Multiline">
|
||
<textarea placeholder="Add a note…" rows={3} style={{ ...inputBase, borderRadius: md, resize: "vertical" }} />
|
||
</Field>
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/components/project-creation/BuildSetup.tsx
|
||
|
||
### function BuildSetup( ) › L161-171
|
||
```
|
||
<>
|
||
<FieldLabel>What do you want to build?</FieldLabel>
|
||
<TextArea
|
||
value={idea}
|
||
onChange={setIdea}
|
||
placeholder="A booking site for my dog grooming business. Customers should be able to book online and pay a deposit by card."
|
||
rows={6}
|
||
autoFocus
|
||
/>
|
||
<p style={{ fontSize: 12, color: JM.muted, marginTop: -8, marginBottom: 14, lineHeight: 1.5 }}>
|
||
Don't worry about the tech. Vibn will pick the tools and start building from this description.
|
||
```
|
||
|
||
15 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/components/vibn-chat/chat-panel.tsx` (lines 1500-1600)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
{[0, 1, 2].map((i) => (
|
||
<span
|
||
key={i}
|
||
style={{
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: "50%",
|
||
background: "#c0bab2",
|
||
animation: `vibn-bounce 1.2s ease infinite ${i * 0.2}s`,
|
||
display: "inline-block",
|
||
}}
|
||
/>
|
||
))}
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
<div ref={messagesEndRef} />
|
||
</div>
|
||
|
||
{/* Input */}
|
||
<div
|
||
style={{
|
||
padding: "12px 14px",
|
||
borderTop: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{!mcpToken && (
|
||
<div
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#9a7b3a",
|
||
background: "#d4a04a12",
|
||
border: "1px solid #d4a04a30",
|
||
borderRadius: 6,
|
||
padding: "5px 10px",
|
||
marginBottom: 8,
|
||
lineHeight: 1.4,
|
||
}}
|
||
>
|
||
Read-only mode — add your MCP token in Settings to enable actions.
|
||
</div>
|
||
)}
|
||
<ProjectPreviewChatInputWrap unifiedShell={unifiedProjectShell}>
|
||
{(selectToggle) => (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
gap: 8,
|
||
alignItems: "center",
|
||
background: "#fff",
|
||
borderRadius: 10,
|
||
border: "1px solid #e8e4dc",
|
||
padding: "8px 10px",
|
||
boxShadow: "0 1px 3px #1a1a1a05",
|
||
}}
|
||
>
|
||
<textarea
|
||
ref={inputRef}
|
||
value={input}
|
||
onChange={(e) => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={
|
||
sending ? "Esc to stop generating…" : "Ask Vibn AI anything…"
|
||
}
|
||
rows={1}
|
||
disabled={!activeThread}
|
||
style={{
|
||
flex: 1,
|
||
border: "none",
|
||
outline: "none",
|
||
background: "transparent",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.5,
|
||
resize: "none",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
color: "#1a1a1a",
|
||
maxHeight: 120,
|
||
overflowY: "auto",
|
||
}}
|
||
onInput={(e) => {
|
||
const el = e.currentTarget;
|
||
el.style.height = "auto";
|
||
el.style.height = Math.min(el.scrollHeight, 120) + "px";
|
||
}}
|
||
/>
|
||
{selectToggle}
|
||
{(() => {
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Search files for regex `Caramelizing`**
|
||
Status: Completed
|
||
|
||
No matches found
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: vibn\-frontend/components/vibn\-chat/chat\-panel.tsx**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
```
|
||
"use client";
|
||
|
||
import {
|
||
useEffect,
|
||
useRef,
|
||
useState,
|
||
useCallback,
|
||
type ReactNode,
|
||
type CSSProperties,
|
||
} from "react";
|
||
import Link from "next/link";
|
||
import { useSession } from "next-auth/react";
|
||
import { useParams, usePathname } from "next/navigation";
|
||
import {
|
||
MessageSquare,
|
||
X,
|
||
ChevronRight,
|
||
Send,
|
||
Plus,
|
||
Loader2,
|
||
Wrench,
|
||
ChevronDown,
|
||
Trash2,
|
||
Square,
|
||
MousePointerClick,
|
||
Sparkles,
|
||
} from "lucide-react";
|
||
import { ProjectIconRail } from "@/components/project/project-icon-rail";
|
||
import {
|
||
PreviewBridgeProvider,
|
||
previewMessagePrepRef,
|
||
usePreviewBridge,
|
||
} from "@/components/project/preview-bridge-context";
|
||
|
||
// ── Types ─────────────────────────────────────────────────────────────────────
|
||
|
||
interface Thread {
|
||
id: string;
|
||
title: string;
|
||
updatedAt: string;
|
||
}
|
||
|
||
interface Message {
|
||
id?: string;
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: { id: string; name: string; args: Record<string, unknown> }[];
|
||
toolName?: string;
|
||
createdAt?: string;
|
||
/**
|
||
* Chronological turn timeline interleaving the model's thinking
|
||
* narration and the tool calls it fired. Rendered as a stack of
|
||
* pills INSIDE the bubble above the final text content, so the
|
||
* user sees the actual flow:
|
||
* [thought] [tool ×N] [thought] [tool] ... [summary]
|
||
* Each thought is its own collapsed pill (click to expand);
|
||
* adjacent runs of the same tool name collapse into one pill
|
||
* with a ×N counter. The final assistant text is rendered
|
||
* separately, below the timeline.
|
||
*/
|
||
timeline?: TimelineEntry[];
|
||
}
|
||
|
||
type TimelineEntry =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "tool"; name: string; status: "running" | "done"; result?: string }
|
||
// A text segment from one round of the assistant's tool loop.
|
||
// Each text SSE event from the server starts a new entry; subsequent
|
||
// streaming chunks for that same round append to the most-recent
|
||
// text entry. Tool/thought entries between text segments break the
|
||
// accumulation so multi-round turns render as separate bubbles.
|
||
| { kind: "text"; text: string };
|
||
|
||
interface ToolEvent {
|
||
name: string;
|
||
status: "running" | "done";
|
||
result?: string;
|
||
}
|
||
|
||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||
|
||
function getFriendlyCategory(name: string): string {
|
||
if (
|
||
name.includes("fs.edit") ||
|
||
name.includes("fs.write") ||
|
||
name.includes("fs_edit") ||
|
||
name.includes("fs_write")
|
||
)
|
||
return "Writing code";
|
||
if (
|
||
name.includes("fs.read") ||
|
||
name.includes("fs.list") ||
|
||
name.includes("fs.grep") ||
|
||
name.includes("fs.tree") ||
|
||
name.includes("fs_read") ||
|
||
name.includes("fs_list") ||
|
||
name.includes("fs_grep") ||
|
||
name.includes("fs_tree")
|
||
)
|
||
return "Reading codebase";
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
return "Running terminal commands";
|
||
if (name.includes("dev_server.start") || name.includes("dev_server_start"))
|
||
return "Starting dev server";
|
||
if (name.includes("dev_server.logs") || name.includes("dev_server_logs"))
|
||
return "Checking server logs";
|
||
if (
|
||
name.includes("browser.navigate") ||
|
||
name.includes("browser.console") ||
|
||
name.includes("browser_navigate") ||
|
||
name.includes("browser_console")
|
||
)
|
||
return "Checking browser preview";
|
||
if (name.includes("ship")) return "Shipping code to production";
|
||
|
||
return name;
|
||
}
|
||
|
||
function timeAgo(dateStr?: string): string {
|
||
if (!dateStr) return "";
|
||
const diff = (Date.now() - new Date(dateStr).getTime()) / 1000;
|
||
if (diff < 60) return "just now";
|
||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
||
return `${Math.floor(diff / 86400)}d ago`;
|
||
}
|
||
|
||
function friendlyToolName(name: string): string {
|
||
return name
|
||
.replace(/_/g, ".")
|
||
.replace("projects.list", "listing projects")
|
||
.replace("apps.list", "listing apps")
|
||
.replace("apps.create", "deploying app")
|
||
.replace("apps.templates.list", "listing templates")
|
||
.replace("apps.templates.search", "searching templates")
|
||
.replace("domains.register", "registering domain")
|
||
.replace("domains.list", "listing domains")
|
||
.replace("apps.logs", "fetching logs");
|
||
}
|
||
|
||
function ActiveThinkingIndicator() {
|
||
const [phraseIndex, setPhraseIndex] = useState(0);
|
||
const phrases = [
|
||
"Thinking about the problem...",
|
||
"Reviewing the plan...",
|
||
"Caramelizing onions...",
|
||
"Writing code...",
|
||
"Running checks...",
|
||
"Reticulating splines...",
|
||
"Building out the view...",
|
||
];
|
||
|
||
useEffect(() => {
|
||
const timer = setInterval(() => {
|
||
setPhraseIndex((i) => (i + 1) % phrases.length);
|
||
}, 2800);
|
||
return () => clearInterval(timer);
|
||
}, [phrases.length]);
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "4px 4px 10px 4px",
|
||
fontSize: "0.85rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<svg
|
||
width="16"
|
||
height="16"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="#cf6741"
|
||
strokeWidth="2.5"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
className="animate-spin"
|
||
style={{ animationDuration: "3s" }}
|
||
>
|
||
<path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83" />
|
||
</svg>
|
||
</div>
|
||
<span className="animate-pulse">{phrases[phraseIndex]}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Markdown-lite renderer ────────────────────────────────────────────────────
|
||
|
||
function escapeHtmlAttr(s: string): string {
|
||
return s.replace(/&/g, "&").replace(/"/g, """);
|
||
}
|
||
|
||
const LINK_STYLE =
|
||
"color:#4338ca;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all";
|
||
|
||
/** [label](https://...) — href restricted to http(s) */
|
||
function markdownLinksToHtml(s: string): string {
|
||
return s.replace(
|
||
/\[([^\]]+)\]\((https?:\/\/[^\s)<>]+)\)/gi,
|
||
(_m, label: string, url: string) => {
|
||
return `<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${label}</a>`;
|
||
},
|
||
);
|
||
}
|
||
|
||
/** Bare https:// in prose (skips when prefix is `>` so href=/code aren't touched) */
|
||
function autoLinkBareUrls(s: string): string {
|
||
return s.replace(
|
||
/(^|[\s\-—:(\[{])(https?:\/\/[^\s<>"']+)/gi,
|
||
(match, pre: string, url: string) =>
|
||
`${pre}<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${url}</a>`,
|
||
);
|
||
}
|
||
|
||
function renderMarkdown(text: string): string {
|
||
let s = text
|
||
.replace(/&/g, "&")
|
||
.replace(/</g, "<")
|
||
.replace(/>/g, ">");
|
||
s = markdownLinksToHtml(s);
|
||
s = s
|
||
.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>")
|
||
.replace(
|
||
/`([^`]+)`/g,
|
||
'<code style="background:#f0ede8;padding:1px 5px;border-radius:3px;font-family:var(--font-ibm-plex-mono),monospace;font-size:0.85em;overflow-wrap:anywhere;word-break:break-word">$1</code>',
|
||
)
|
||
.replace(
|
||
/^### (.+)$/gm,
|
||
'<h3 style="font-weight:600;margin:12px 0 4px;font-size:0.88rem;overflow-wrap:anywhere;word-break:break-word">$1</h3>',
|
||
)
|
||
.replace(
|
||
/^## (.+)$/gm,
|
||
'<h2 style="font-weight:600;margin:14px 0 4px;font-size:0.9rem;overflow-wrap:anywhere;word-break:break-word">$1</h2>',
|
||
)
|
||
.replace(
|
||
/^- (.+)$/gm,
|
||
'<li style="margin-left:16px;list-style:disc;overflow-wrap:anywhere;word-break:break-word">$1</li>',
|
||
)
|
||
.replace(
|
||
/(<li[^>]*>.*<\/li>\n?)+/g,
|
||
(m) => `<ul style="margin:6px 0">${m}</ul>`,
|
||
)
|
||
.replace(
|
||
/\n\n/g,
|
||
'</p><p style="margin:0 0 8px;overflow-wrap:anywhere;word-break:break-word">',
|
||
)
|
||
.replace(/\n/g, "<br>");
|
||
s = autoLinkBareUrls(s);
|
||
return s;
|
||
}
|
||
|
||
// ── Message bubble ────────────────────────────────────────────────────────────
|
||
|
||
/**
|
||
* Strip the markdown-bold "**Section Heading**" lines that Gemini
|
||
* loves to start each thought with so the collapsed pill shows the
|
||
* actual sentence rather than "**Examining the Target Server File**".
|
||
* The full text is still available in the expanded view.
|
||
*/
|
||
function thoughtPreview(thoughts: string): string {
|
||
const stripped = thoughts
|
||
.replace(/^\s*\*\*[^*]+\*\*\s*/gm, "")
|
||
.replace(/\s+/g, " ")
|
||
.trim();
|
||
if (stripped.length <= 90) return stripped;
|
||
return stripped.slice(0, 87) + "…";
|
||
}
|
||
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
fontSize: "0.75rem",
|
||
color: "#8c8580",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
fontStyle: "italic",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<Sparkles
|
||
style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
className="animate-pulse"
|
||
/>
|
||
</div>
|
||
<span className="animate-pulse">{currentAction}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function MessageBubble({ msg }: { msg: Message }) {
|
||
const isUser = msg.role === "user";
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
justifyContent: isUser ? "flex-end" : "flex-start",
|
||
marginBottom: 12,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{!isUser && (
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
marginRight: 8,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
)}
|
||
<div
|
||
style={{
|
||
maxWidth: "82%",
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{!isUser && msg.timeline && msg.timeline.length > 0 && (
|
||
<Timeline entries={msg.timeline} />
|
||
)}
|
||
{/*
|
||
Render the legacy bottom content bubble ONLY when:
|
||
- the message is from the user (their bubble is always the
|
||
content slot), OR
|
||
- the assistant message has no timeline at all (very old
|
||
messages from before timeline existed).
|
||
When the timeline contains text entries the prose is already
|
||
rendered there, and showing it again here would duplicate
|
||
every paragraph below the timeline.
|
||
*/}
|
||
{((msg.content && isUser) ||
|
||
(msg.content &&
|
||
!isUser &&
|
||
(!msg.timeline || msg.timeline.length === 0))) && (
|
||
<div
|
||
style={{
|
||
padding: isUser ? "9px 14px" : "10px 14px",
|
||
borderRadius: isUser
|
||
? "14px 14px 4px 14px"
|
||
: "4px 14px 14px 14px",
|
||
background: isUser ? "#1a1a1a" : "#f7f4ef",
|
||
color: isUser ? "#fff" : "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
{isUser ? (
|
||
<span style={{ whiteSpace: "pre-wrap", ...proseWrap }}>
|
||
{msg.content}
|
||
</span>
|
||
) : (
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{
|
||
__html: renderMarkdown(msg.content),
|
||
}}
|
||
/>
|
||
)}
|
||
</div>
|
||
)}
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Renders the chronological turn timeline: thoughts as their own
|
||
* collapsed pills, tool calls grouped by adjacent runs of the same
|
||
* name with a ×N counter. The flow visually mirrors what actually
|
||
* happened: thought → tools → thought → tools → ... → final summary.
|
||
*/
|
||
function Timeline({ entries }: { entries: TimelineEntry[] }) {
|
||
// Walk the entries and emit a renderable list. Adjacent same-category
|
||
// tool entries get bundled into a TimelineToolGroup; thought and
|
||
// text entries pass through as-is.
|
||
type Item =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "text"; text: string }
|
||
| {
|
||
kind: "toolGroup";
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
};
|
||
const items: Item[] = [];
|
||
for (const e of entries) {
|
||
if (e.kind === "thought") {
|
||
items.push({ kind: "thought", text: e.text });
|
||
} else if (e.kind === "text") {
|
||
items.push({ kind: "text", text: e.text });
|
||
} else {
|
||
const last = items[items.length - 1];
|
||
const category = getFriendlyCategory(e.name);
|
||
if (last && last.kind === "toolGroup" && last.category === category) {
|
||
last.entries.push(e);
|
||
} else {
|
||
items.push({ kind: "toolGroup", category, entries: [e] });
|
||
}
|
||
}
|
||
}
|
||
return (
|
||
<div style={{ marginBottom: 6 }}>
|
||
{items.map((item, i) => {
|
||
if (item.kind === "thought") {
|
||
return <ThinkingBubble key={i} thoughts={item.text} />;
|
||
}
|
||
if (item.kind === "text") {
|
||
return <TimelineText key={i} text={item.text} />;
|
||
}
|
||
return (
|
||
<TimelineToolGroup
|
||
key={i}
|
||
category={item.category}
|
||
entries={item.entries}
|
||
/>
|
||
);
|
||
})}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* One text segment in the assistant's timeline. Rendered as its own
|
||
* bubble so each round of multi-tool-loop output reads as a discrete
|
||
* step instead of concatenating into a wall of text.
|
||
*/
|
||
function TimelineText({ text }: { text: string }) {
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
padding: "10px 14px",
|
||
borderRadius: "4px 14px 14px 14px",
|
||
background: "#f7f4ef",
|
||
color: "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
marginBottom: 6,
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{ __html: renderMarkdown(text) }}
|
||
/>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function TimelineToolGroup({
|
||
category,
|
||
entries,
|
||
}: {
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
}) {
|
||
const [expanded, setExpanded] = useState(false);
|
||
const count = entries.length;
|
||
const allDone = entries.every((e) => e.status === "done");
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<button
|
||
onClick={() => setExpanded(!expanded)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
width: "100%",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
background: "none",
|
||
border: "none",
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
cursor: "pointer",
|
||
textAlign: "left",
|
||
}}
|
||
>
|
||
<span style={{ width: 14, display: "flex", justifyContent: "center" }}>
|
||
{!allDone ? (
|
||
<Loader2
|
||
style={{ width: 12, height: 12 }}
|
||
className="animate-spin"
|
||
/>
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
</span>
|
||
<span style={{ flex: 1 }}>
|
||
{category} {count > 1 ? `(x${count})` : ""} {!allDone ? "..." : " ✓"}
|
||
</span>
|
||
<span
|
||
style={{
|
||
transform: expanded ? "rotate(180deg)" : "none",
|
||
transition: "transform 0.15s ease",
|
||
}}
|
||
>
|
||
<ChevronDown style={{ width: 12, height: 12, opacity: 0.5 }} />
|
||
</span>
|
||
</button>
|
||
|
||
{expanded && (
|
||
<div
|
||
style={{
|
||
padding: "0 12px 8px 34px",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
gap: 4,
|
||
}}
|
||
>
|
||
{entries.map((e, i) => (
|
||
<div
|
||
key={i}
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#8c8580",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 4,
|
||
height: 4,
|
||
borderRadius: "50%",
|
||
background: "#ccc",
|
||
}}
|
||
/>
|
||
<span style={{ fontFamily: "var(--font-mono), monospace" }}>
|
||
{friendlyToolName(e.name)}
|
||
</span>
|
||
{!e.result && e.status === "running" && (
|
||
<span className="animate-pulse">...</span>
|
||
)}
|
||
{e.result && (
|
||
<span
|
||
style={{
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
opacity: 0.7,
|
||
maxWidth: 150,
|
||
}}
|
||
title={e.result}
|
||
>
|
||
— {e.result}
|
||
</span>
|
||
)}
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function ToolBubble({ event }: { event: ToolEvent }) {
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
{event.status === "running" ? (
|
||
<Loader2 style={{ width: 12, height: 12 }} className="animate-spin" />
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
<span>
|
||
{friendlyToolName(event.name)}
|
||
{event.status === "running" ? "…" : " ✓"}
|
||
</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Main panel ────────────────────────────────────────────────────────────────
|
||
|
||
interface ChatPanelProps {
|
||
/**
|
||
* When true, the panel renders inline as a flex child of its parent
|
||
* (a structural left column on project pages). Skips the fixed-position
|
||
* slide-out treatment, the collapsed-tab affordance, and the
|
||
* --chat-panel-width side-effect. Always "open" — there's no close
|
||
* button because the panel IS the column.
|
||
*
|
||
* When false / omitted: legacy behavior — fixed slide-out on the
|
||
* right, collapsible, sets --chat-panel-width so the workspace
|
||
* content shifts left to make room.
|
||
*/
|
||
structural?: boolean;
|
||
/**
|
||
* When set with `structural` on a project route, renders a unified shell:
|
||
* full-width top bar (chat controls | section icons) and a split row
|
||
* below (chat column | artifact slot). Omit on slide-out chat.
|
||
*/
|
||
artifactSlot?: ReactNode;
|
||
}
|
||
|
||
/** Shared dimensions for preview-select + send icon buttons in the composer. */
|
||
const COMPOSER_ACTION_BTN_BASE: CSSProperties = {
|
||
flexShrink: 0,
|
||
width: 32,
|
||
height: 32,
|
||
boxSizing: "border-box",
|
||
borderRadius: 8,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 0,
|
||
};
|
||
|
||
/** Preview pick chip + select-mode toggle for unified project shell chat composer. */
|
||
function ProjectPreviewChatInputWrap({
|
||
unifiedShell,
|
||
children,
|
||
}: {
|
||
unifiedShell: boolean;
|
||
children: (selectToggle: React.ReactNode) => React.ReactNode;
|
||
}) {
|
||
const bridge = usePreviewBridge();
|
||
|
||
if (!unifiedShell || !bridge) {
|
||
return <>{children(null)}</>;
|
||
}
|
||
|
||
const { selectMode, setSelectMode, picked, clearPick } = bridge;
|
||
|
||
const chip = picked ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "flex-start",
|
||
gap: 8,
|
||
marginBottom: 8,
|
||
padding: "8px 10px",
|
||
borderRadius: 8,
|
||
background: "#eef2ff",
|
||
border: "1px solid #c7d2fe",
|
||
fontSize: "0.72rem",
|
||
lineHeight: 1.45,
|
||
color: "#312e81",
|
||
}}
|
||
>
|
||
<MousePointerClick
|
||
style={{
|
||
width: 14,
|
||
height: 14,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
opacity: 0.85,
|
||
}}
|
||
aria-hidden
|
||
/>
|
||
<div style={{ flex: 1, minWidth: 0 }}>
|
||
<div style={{ fontWeight: 600, marginBottom: 2 }}>
|
||
Preview selection
|
||
</div>
|
||
<div style={{ opacity: 0.92 }}>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-ibm-plex-mono),monospace",
|
||
fontSize: "0.68rem",
|
||
}}
|
||
>
|
||
{picked.tagName}
|
||
</span>
|
||
{" · "}
|
||
<span style={{ wordBreak: "break-word" }}>{picked.selector}</span>
|
||
</div>
|
||
{picked.textSnippet ? (
|
||
<div style={{ marginTop: 4, opacity: 0.88, wordBreak: "break-word" }}>
|
||
{`"${picked.textSnippet.slice(0, 140)}${picked.textSnippet.length > 140 ? "..." : ""}"`}
|
||
</div>
|
||
) : null}
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={clearPick}
|
||
aria-label="Clear preview selection"
|
||
style={{
|
||
flexShrink: 0,
|
||
background: "none",
|
||
border: "none",
|
||
padding: 2,
|
||
cursor: "pointer",
|
||
borderRadius: 4,
|
||
color: "#4338ca",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
>
|
||
<X style={{ width: 13, height: 13 }} />
|
||
</button>
|
||
</div>
|
||
) : null;
|
||
|
||
const selectToggle = (
|
||
<button
|
||
type="button"
|
||
aria-pressed={selectMode}
|
||
aria-label={
|
||
selectMode ? "Exit preview select mode" : "Select element from preview"
|
||
}
|
||
title={
|
||
selectMode
|
||
? "Click preview to choose an element"
|
||
: "Choose element from preview"
|
||
}
|
||
onClick={() => setSelectMode(!selectMode)}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
border: selectMode ? "1px solid #6366f1" : "1px solid #e8e4dc",
|
||
background: selectMode ? "#eef2ff" : "#faf8f5",
|
||
color: selectMode ? "#4338ca" : "#6b6560",
|
||
cursor: "pointer",
|
||
}}
|
||
>
|
||
<MousePointerClick style={{ width: 15, height: 15 }} strokeWidth={2} />
|
||
</button>
|
||
);
|
||
|
||
return (
|
||
<>
|
||
{chip}
|
||
{children(selectToggle)}
|
||
</>
|
||
);
|
||
}
|
||
|
||
export function ChatPanel({
|
||
structural = false,
|
||
artifactSlot,
|
||
}: ChatPanelProps = {}) {
|
||
const { data: sessionData, status } = useSession();
|
||
const params = useParams();
|
||
const pathname = usePathname() ?? "";
|
||
const workspace = (params?.workspace as string) || "";
|
||
// When the user is on a /project/<id>/* route, scope the chat to
|
||
// that project. The threads list, the new-thread create call, and
|
||
// the system prompt all branch on this; the chat header surfaces it
|
||
// so the user knows the AI is "talking about" the right thing.
|
||
const projectId = (params?.projectId as string) || "";
|
||
/** Full project shell (chat | artifact); must render even while auth is loading or signed out. */
|
||
const unifiedProjectShell =
|
||
structural && Boolean(projectId) && artifactSlot !== undefined;
|
||
const [activeProjectName, setActiveProjectName] = useState<string | null>(
|
||
null,
|
||
);
|
||
|
||
const [open, setOpen] = useState(() => {
|
||
// Structural mode is always-open by definition — the panel IS the
|
||
// column, there's no "closed" state to persist.
|
||
if (structural) return true;
|
||
if (typeof window === "undefined") return false;
|
||
return localStorage.getItem("vibn-chat-open") !== "false";
|
||
});
|
||
const [threads, setThreads] = useState<Thread[]>([]);
|
||
// threadsLoaded flips to true after the FIRST loadThreads() resolves.
|
||
// Used to gate the auto-create effect — without it we race the fetch
|
||
// and spawn an empty thread before history loads.
|
||
const [threadsLoaded, setThreadsLoaded] = useState(false);
|
||
const [activeThread, setActiveThread] = useState<string | null>(null);
|
||
const [messages, setMessages] = useState<Message[]>([]);
|
||
const [input, setInput] = useState("");
|
||
const [sending, setSending] = useState(false);
|
||
const [showThreads, setShowThreads] = useState(false);
|
||
const [mcpToken, setMcpToken] = useState<string | null>(null);
|
||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||
const inputRef = useRef<HTMLTextAreaElement>(null);
|
||
// AbortController for the in-flight /api/chat fetch. Lives in a ref
|
||
// so the Stop button can reach it without re-rendering on every
|
||
// streaming chunk.
|
||
const abortRef = useRef<AbortController | null>(null);
|
||
|
||
const scrollToBottom = useCallback(() => {
|
||
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
|
||
}, []);
|
||
|
||
// Persist open state + adjust main content margin
|
||
useEffect(() => {
|
||
if (structural) return;
|
||
localStorage.setItem("vibn-chat-open", String(open));
|
||
document.documentElement.style.setProperty(
|
||
"--chat-panel-width",
|
||
open ? "380px" : "0px",
|
||
);
|
||
}, [open, structural]);
|
||
|
||
// Load MCP token — prefer localStorage cache, fetch from API if missing.
|
||
// We use /api/workspaces (not the URL param) because the URL slug
|
||
// (e.g. "mark-account") differs from the actual workspace slug ("mark").
|
||
useEffect(() => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
const cached = localStorage.getItem(`vibn-mcp-token-${workspace}`);
|
||
if (cached) {
|
||
setMcpToken(cached);
|
||
return;
|
||
}
|
||
fetch("/api/workspaces?include_default_token=true")
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (d?.defaultToken) {
|
||
localStorage.setItem(`vibn-mcp-token-${workspace}`, d.defaultToken);
|
||
setMcpToken(d.defaultToken);
|
||
}
|
||
})
|
||
.catch(() => {});
|
||
}, [workspace, status]);
|
||
|
||
// Load threads (scoped to the current project when one is in the URL).
|
||
// Reset the loaded flag when projectId changes so the resume effect
|
||
// re-runs against the correct list and doesn't restore a thread from
|
||
// the previous project.
|
||
const loadThreads = useCallback(async () => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
try {
|
||
const qs = new URLSearchParams({ workspace });
|
||
if (projectId) qs.set("projectId", projectId);
|
||
const res = await fetch(`/api/chat/threads?${qs.toString()}`);
|
||
const data = await res.json();
|
||
setThreads(data.threads || []);
|
||
} catch {
|
||
/* silent */
|
||
} finally {
|
||
setThreadsLoaded(true);
|
||
}
|
||
}, [workspace, projectId, status]);
|
||
|
||
useEffect(() => {
|
||
setThreadsLoaded(false);
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
// Clear the threads array immediately so the resume effect doesn't
|
||
// race the loadThreads() fetch and resume a stale project-scoped
|
||
// thread when the user navigates from /project/X back to /projects.
|
||
setThreads([]);
|
||
loadThreads();
|
||
}, [loadThreads, projectId]);
|
||
|
||
// Look up the active project's display name once we have a projectId,
|
||
// so the chat header can show "Talking about: <name>".
|
||
useEffect(() => {
|
||
if (!projectId) {
|
||
setActiveProjectName(null);
|
||
return;
|
||
}
|
||
let cancelled = false;
|
||
fetch(`/api/projects/${projectId}/anatomy`, { credentials: "include" })
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (cancelled) return;
|
||
const name = d?.project?.name;
|
||
if (name) setActiveProjectName(name);
|
||
})
|
||
.catch(() => {});
|
||
return () => {
|
||
cancelled = true;
|
||
};
|
||
}, [projectId]);
|
||
|
||
// Create and activate a new thread (tagged to the active project, if any).
|
||
const newThread = useCallback(async () => {
|
||
try {
|
||
const res = await fetch("/api/chat/threads", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ workspace, projectId: projectId || undefined }),
|
||
});
|
||
const data = await res.json();
|
||
if (data.thread) {
|
||
setThreads((prev) => [data.thread, ...prev]);
|
||
setActiveThread(data.thread.id);
|
||
setMessages([]);
|
||
setShowThreads(false);
|
||
}
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, [workspace, projectId]);
|
||
|
||
// Load thread messages
|
||
const loadThread = useCallback(async (id: string) => {
|
||
setActiveThread(id);
|
||
setShowThreads(false);
|
||
setMessages([]);
|
||
try {
|
||
const res = await fetch(`/api/chat/threads/${id}`);
|
||
const data = await res.json();
|
||
// Hydrate the timeline from persisted textSegments + toolCalls
|
||
// so a reloaded thread renders the same per-round bubbles the
|
||
// user saw during streaming. Older messages without
|
||
// textSegments fall back to the legacy single-bubble path.
|
||
const hydrated = (data.messages || []).map((m: any) => {
|
||
if (m.role !== "assistant") return m;
|
||
const segs: string[] = Array.isArray(m.textSegments)
|
||
? m.textSegments
|
||
: [];
|
||
if (segs.length === 0) return m;
|
||
const timeline: TimelineEntry[] = segs.map((t) => ({
|
||
kind: "text",
|
||
text: t,
|
||
}));
|
||
// We don't have round-level interleaving for tool calls in
|
||
// the persisted shape (the schema flattens them), so we drop
|
||
// the toolCalls into the timeline at the end. The streamed
|
||
// shape preserves true ordering; this is just a reload
|
||
// approximation. Good enough — what the user really cares
|
||
// about is the text segments not run-on'ing into one blob.
|
||
if (Array.isArray(m.toolCalls)) {
|
||
for (const tc of m.toolCalls) {
|
||
timeline.push({ kind: "tool", name: tc.name, status: "done" });
|
||
}
|
||
}
|
||
return { ...m, timeline, content: "" };
|
||
});
|
||
setMessages(hydrated);
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, []);
|
||
|
||
// Auto-resume previous thread (or create a fresh one if the user has
|
||
// never chatted in this workspace). We MUST wait for threadsLoaded
|
||
// before deciding — otherwise we race the fetch and spawn an empty
|
||
// thread before history arrives. Last-active thread is restored from
|
||
// localStorage so a page reload (deploy, refresh) lands the user back
|
||
// in the conversation they were in.
|
||
useEffect(() => {
|
||
if (!open || status !== "authenticated" || !workspace) return;
|
||
if (!threadsLoaded) return;
|
||
if (activeThread) return;
|
||
|
||
if (threads.length === 0) {
|
||
newThread();
|
||
return;
|
||
}
|
||
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
const saved =
|
||
typeof window !== "undefined" ? localStorage.getItem(savedKey) : null;
|
||
const target =
|
||
saved && threads.some((t) => t.id === saved) ? saved : threads[0].id;
|
||
loadThread(target);
|
||
}, [
|
||
open,
|
||
status,
|
||
workspace,
|
||
projectId,
|
||
threadsLoaded,
|
||
threads,
|
||
activeThread,
|
||
newThread,
|
||
loadThread,
|
||
]);
|
||
|
||
// Persist active thread so reload re-opens the same conversation,
|
||
// keyed per-project so each project has its own "last conversation".
|
||
useEffect(() => {
|
||
if (typeof window === "undefined" || !workspace) return;
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
if (activeThread) localStorage.setItem(savedKey, activeThread);
|
||
}, [activeThread, workspace, projectId]);
|
||
|
||
useEffect(() => {
|
||
scrollToBottom();
|
||
}, [messages, scrollToBottom]);
|
||
|
||
const deleteThread = useCallback(
|
||
async (id: string, e: React.MouseEvent) => {
|
||
e.stopPropagation();
|
||
await fetch(`/api/chat/threads/${id}`, { method: "DELETE" });
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [
|
||
...tl,
|
||
{ kind: "tool", name: ev.name, status: "running" },
|
||
],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_result") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
// Walk backward to the most recent matching running
|
||
// tool entry and mark it done. Avoids cross-matching
|
||
// earlier same-named entries.
|
||
let updated = false;
|
||
const newTl: TimelineEntry[] = [];
|
||
for (let i = tl.length - 1; i >= 0; i--) {
|
||
const e = tl[i];
|
||
if (
|
||
!updated &&
|
||
e.kind === "tool" &&
|
||
e.name === ev.name &&
|
||
e.status === "running"
|
||
) {
|
||
newTl.unshift({
|
||
...e,
|
||
status: "done",
|
||
result: ev.result,
|
||
});
|
||
updated = true;
|
||
} else {
|
||
newTl.unshift(e);
|
||
}
|
||
}
|
||
next[msgIndex] = { ...next[msgIndex], timeline: newTl };
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "error") {
|
||
const errText = ev.error || "Unknown error";
|
||
const isToolErr = /tool|mcp|coolify|gitea/i.test(errText);
|
||
const errBubble = isToolErr
|
||
? `⚠️ **Tool error:** ${errText}`
|
||
: `⚠️ ${errText}`;
|
||
assistantContent += (assistantContent ? "\n\n" : "") + errBubble;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "text", text: errBubble }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
// Auto-title thread from first message
|
||
const thisThread = threads.find((t) => t.id === activeThread);
|
||
if (thisThread?.title === "New conversation") {
|
||
const title = text.slice(0, 50);
|
||
await fetch(`/api/chat/threads/${activeThread}`, {
|
||
method: "PATCH",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ title }),
|
||
});
|
||
setThreads((prev) =>
|
||
prev.map((t) => (t.id === activeThread ? { ...t, title } : t)),
|
||
);
|
||
}
|
||
|
||
loadThreads();
|
||
} catch (e) {
|
||
const isAbort = e instanceof DOMException && e.name === "AbortError";
|
||
if (isAbort) {
|
||
// Server-side will have appended "(stopped by user)" to the
|
||
// partial response and persisted it. We just need to make
|
||
// sure the local UI reflects whatever streamed in before the
|
||
// user clicked Stop — which it already does, because we've
|
||
// been mutating `messages[msgIndex]` chunk-by-chunk above.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (
|
||
msgIndex >= 0 &&
|
||
next[msgIndex] &&
|
||
!next[msgIndex].content.includes("(stopped by user)")
|
||
) {
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
content:
|
||
(next[msgIndex].content || "") + "\n\n_(stopped by user)_",
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else {
|
||
const errMsg = e instanceof Error ? e.message : String(e);
|
||
const isNetwork = /fetch|network|failed to fetch/i.test(errMsg);
|
||
const friendlyError = isNetwork
|
||
? "⚠️ Network error — check your connection and try again."
|
||
: `⚠️ Something went wrong: ${errMsg.slice(0, 200)}\n\nYou can try again or start a new message.`;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
next[msgIndex] = { ...next[msgIndex], content: friendlyError };
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
} finally {
|
||
abortRef.current = null;
|
||
setSending(false);
|
||
}
|
||
},
|
||
[
|
||
input,
|
||
sending,
|
||
activeThread,
|
||
workspace,
|
||
mcpToken,
|
||
threads,
|
||
loadThreads,
|
||
unifiedProjectShell,
|
||
],
|
||
);
|
||
|
||
const cancelMessage = useCallback(() => {
|
||
abortRef.current?.abort();
|
||
}, []);
|
||
|
||
// External components (e.g. ProjectHeaderUrls' "Start preview" button)
|
||
// can ask the chat to send a canned prompt without prop-drilling. Open
|
||
// the panel if collapsed, then fire the prompt as if the user typed it.
|
||
useEffect(() => {
|
||
function onPrompt(e: Event) {
|
||
const ce = e as CustomEvent<{ prompt?: string; scopeProjectId?: string }>;
|
||
const prompt = ce.detail?.prompt;
|
||
if (!prompt) return;
|
||
// If the dispatcher scopes the prompt to a specific project, only
|
||
// accept it when the chat panel is currently bound to that project.
|
||
// Prevents a "Start preview on Manifest" click from accidentally
|
||
// landing in a chat that's scoped to a different project.
|
||
if (ce.detail?.scopeProjectId && ce.detail.scopeProjectId !== projectId) {
|
||
return;
|
||
}
|
||
setOpen(true);
|
||
void sendMessage(prompt);
|
||
}
|
||
window.addEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
return () =>
|
||
window.removeEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
}, [sendMessage, projectId]);
|
||
|
||
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||
if (e.key === "Enter" && !e.shiftKey) {
|
||
e.preventDefault();
|
||
sendMessage();
|
||
} else if (e.key === "Escape" && sending) {
|
||
e.preventDefault();
|
||
cancelMessage();
|
||
}
|
||
};
|
||
|
||
// Slide-out chat hidden until signed in. Structural project shell always
|
||
// mounts so Preview / Product / Plan pages render; chat column shows loading
|
||
// or sign-in instead of wiping the whole viewport (blank page).
|
||
if (!unifiedProjectShell && status !== "authenticated") return null;
|
||
|
||
// ── Collapsed tab ──────────────────────────────────────────────────────────
|
||
// Structural mode is always-open; skip the collapsed-tab branch entirely.
|
||
if (!open && !structural) {
|
||
return (
|
||
<button
|
||
onClick={() => setOpen(true)}
|
||
style={{
|
||
position: "fixed",
|
||
right: 0,
|
||
top: "50%",
|
||
transform: "translateY(-50%)",
|
||
zIndex: 1000,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
border: "none",
|
||
borderRadius: "8px 0 0 8px",
|
||
padding: "14px 10px",
|
||
cursor: "pointer",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
boxShadow: "-2px 0 12px #1a1a1a14",
|
||
}}
|
||
title="Open Vibn AI"
|
||
>
|
||
<MessageSquare style={{ width: 16, height: 16 }} />
|
||
<span
|
||
style={{
|
||
writingMode: "vertical-rl",
|
||
textOrientation: "mixed",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.08em",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
transform: "rotate(180deg)",
|
||
}}
|
||
>
|
||
VIBN AI
|
||
</span>
|
||
</button>
|
||
);
|
||
}
|
||
|
||
const conversationColumn = (
|
||
<>
|
||
{/* Thread list dropdown */}
|
||
{showThreads && (
|
||
<div
|
||
style={{
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
maxHeight: 200,
|
||
overflowY: "auto",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{threads.length === 0 && (
|
||
<div
|
||
style={{
|
||
padding: "12px 16px",
|
||
fontSize: "0.78rem",
|
||
color: "#a09a90",
|
||
}}
|
||
>
|
||
No conversations yet
|
||
</div>
|
||
)}
|
||
{threads.map((t) => (
|
||
<div
|
||
key={t.id}
|
||
onClick={() => loadThread(t.id)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "9px 16px",
|
||
background: activeThread === t.id ? "#f0ede8" : "transparent",
|
||
cursor: "pointer",
|
||
borderBottom: "1px solid #f0ede8",
|
||
}}
|
||
onMouseEnter={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "#f7f4ef";
|
||
}}
|
||
onMouseLeave={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "transparent";
|
||
}}
|
||
>
|
||
<div style={{ minWidth: 0 }}>
|
||
<div
|
||
style={{
|
||
fontSize: "0.8rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
{t.title}
|
||
</div>
|
||
<div style={{ fontSize: "0.7rem", color: "#a09a90" }}>
|
||
{timeAgo(t.updatedAt)}
|
||
</div>
|
||
</div>
|
||
<button
|
||
onClick={(e) => deleteThread(t.id, e)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
color: "#c0bab2",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<Trash2 style={{ width: 12, height: 12 }} />
|
||
</button>
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
|
||
{/* Messages */}
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
overflowY: "auto",
|
||
overflowX: "hidden",
|
||
padding: "16px 14px",
|
||
}}
|
||
>
|
||
{messages.length === 0 && !sending && (
|
||
<div
|
||
style={{ padding: "24px 14px", maxWidth: 640, margin: "0 auto" }}
|
||
>
|
||
<div style={{ display: "flex", gap: 12 }}>
|
||
<div
|
||
style={{
|
||
width: 28,
|
||
height: 28,
|
||
borderRadius: 6,
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
color: "#fff",
|
||
fontSize: "0.85rem",
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</div>
|
||
<div
|
||
style={{
|
||
background: "#fff",
|
||
border: "1px solid #e8e4dc",
|
||
padding: "14px 18px",
|
||
borderRadius: "0 12px 12px 12px",
|
||
fontSize: "0.9rem",
|
||
color: "#1a1a1a",
|
||
lineHeight: 1.6,
|
||
boxShadow: "0 1px 2px #1a1a1a05",
|
||
maxWidth: "85%",
|
||
}}
|
||
>
|
||
Welcome to {activeProjectName ? activeProjectName : "Vibn"}!
|
||
Tell me what you want to build and I'll scaffold it, run it in a
|
||
preview, and ship it when you say so.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{messages.map((msg, i) => (
|
||
<MessageBubble key={msg.id || i} msg={msg} />
|
||
))}
|
||
|
||
{sending && messages[messages.length - 1]?.role !== "assistant" && (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 0",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
{[0, 1, 2].map((i) => (
|
||
<span
|
||
key={i}
|
||
style={{
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: "50%",
|
||
background: "#c0bab2",
|
||
animation: `vibn-bounce 1.2s ease infinite ${i * 0.2}s`,
|
||
display: "inline-block",
|
||
}}
|
||
/>
|
||
))}
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
<div ref={messagesEndRef} />
|
||
</div>
|
||
|
||
{/* Input */}
|
||
<div
|
||
style={{
|
||
padding: "12px 14px",
|
||
borderTop: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{!mcpToken && (
|
||
<div
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#9a7b3a",
|
||
background: "#d4a04a12",
|
||
border: "1px solid #d4a04a30",
|
||
borderRadius: 6,
|
||
padding: "5px 10px",
|
||
marginBottom: 8,
|
||
lineHeight: 1.4,
|
||
}}
|
||
>
|
||
Read-only mode — add your MCP token in Settings to enable actions.
|
||
</div>
|
||
)}
|
||
<ProjectPreviewChatInputWrap unifiedShell={unifiedProjectShell}>
|
||
{(selectToggle) => (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
gap: 8,
|
||
alignItems: "center",
|
||
background: "#fff",
|
||
borderRadius: 10,
|
||
border: "1px solid #e8e4dc",
|
||
padding: "8px 10px",
|
||
boxShadow: "0 1px 3px #1a1a1a05",
|
||
}}
|
||
>
|
||
<textarea
|
||
ref={inputRef}
|
||
value={input}
|
||
onChange={(e) => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={
|
||
sending ? "Esc to stop generating…" : "Ask Vibn AI anything…"
|
||
}
|
||
rows={1}
|
||
disabled={!activeThread}
|
||
style={{
|
||
flex: 1,
|
||
border: "none",
|
||
outline: "none",
|
||
background: "transparent",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.5,
|
||
resize: "none",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
color: "#1a1a1a",
|
||
maxHeight: 120,
|
||
overflowY: "auto",
|
||
}}
|
||
onInput={(e) => {
|
||
const el = e.currentTarget;
|
||
el.style.height = "auto";
|
||
el.style.height = Math.min(el.scrollHeight, 120) + "px";
|
||
}}
|
||
/>
|
||
{selectToggle}
|
||
{(() => {
|
||
// While the AI is streaming or running tools, the button
|
||
// turns into a Stop control. Click → AbortController fires,
|
||
// server bails between rounds, partial text gets persisted.
|
||
const isActive = sending;
|
||
const canSend = !sending && input.trim() && activeThread;
|
||
return (
|
||
<button
|
||
type="button"
|
||
onClick={isActive ? cancelMessage : () => sendMessage()}
|
||
disabled={!isActive && !canSend}
|
||
aria-label={isActive ? "Stop generating" : "Send message"}
|
||
title={isActive ? "Stop generating (Esc)" : "Send"}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
background: isActive
|
||
? "#1a1a1a"
|
||
: canSend
|
||
? "#1a1a1a"
|
||
: "#e8e4dc",
|
||
color: isActive || canSend ? "#fff" : "#a09a90",
|
||
border: "none",
|
||
cursor: isActive || canSend ? "pointer" : "default",
|
||
transition: "all 0.15s",
|
||
position: "relative",
|
||
}}
|
||
>
|
||
{isActive ? (
|
||
<>
|
||
<Loader2
|
||
style={{
|
||
width: 15,
|
||
height: 15,
|
||
position: "absolute",
|
||
opacity: 0.35,
|
||
}}
|
||
className="animate-spin"
|
||
/>
|
||
<Square
|
||
style={{
|
||
width: 9,
|
||
height: 9,
|
||
fill: "#fff",
|
||
strokeWidth: 0,
|
||
}}
|
||
/>
|
||
</>
|
||
) : (
|
||
<Send style={{ width: 15, height: 15 }} />
|
||
)}
|
||
</button>
|
||
);
|
||
})()}
|
||
</div>
|
||
)}
|
||
</ProjectPreviewChatInputWrap>
|
||
</div>
|
||
</>
|
||
);
|
||
|
||
const structuralChatLoadingColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 14,
|
||
}}
|
||
>
|
||
<Loader2
|
||
className="animate-spin"
|
||
style={{ width: 22, height: 22, color: "#9c9590" }}
|
||
/>
|
||
<p style={{ fontSize: "0.84rem", color: "#6b6560", margin: 0 }}>
|
||
Signing you in…
|
||
</p>
|
||
</div>
|
||
);
|
||
|
||
const authHref = pathname
|
||
? `/auth?callbackUrl=${encodeURIComponent(pathname)}`
|
||
: "/auth";
|
||
|
||
const structuralChatSignedOutColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 12,
|
||
}}
|
||
>
|
||
<p
|
||
style={{
|
||
fontSize: "0.88rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
}}
|
||
>
|
||
Sign in to use Vibn AI
|
||
</p>
|
||
<p
|
||
style={{
|
||
fontSize: "0.76rem",
|
||
color: "#a09a90",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
maxWidth: 260,
|
||
lineHeight: 1.5,
|
||
}}
|
||
>
|
||
Preview and tabs still work here. Chat needs an account.
|
||
</p>
|
||
<Link
|
||
href={authHref}
|
||
style={{
|
||
marginTop: 4,
|
||
padding: "10px 18px",
|
||
borderRadius: 10,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
fontSize: "0.82rem",
|
||
fontWeight: 500,
|
||
textDecoration: "none",
|
||
}}
|
||
>
|
||
Sign in
|
||
</Link>
|
||
</div>
|
||
);
|
||
|
||
const structuralChatBody =
|
||
status === "loading"
|
||
? structuralChatLoadingColumn
|
||
: status !== "authenticated"
|
||
? structuralChatSignedOutColumn
|
||
: conversationColumn;
|
||
|
||
if (unifiedProjectShell) {
|
||
return (
|
||
<>
|
||
<PreviewBridgeProvider>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
background: "#fff",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
alignItems: "stretch",
|
||
flexShrink: 0,
|
||
height: 48,
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
boxSizing: "border-box",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
height: "100%",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
padding: "0 12px",
|
||
gap: 6,
|
||
boxSizing: "border-box",
|
||
borderRight: "1px solid #e8e4dc",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
width: "100%",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 5px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus style={{ width: 14, height: 14 }} />
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
alignItems: "stretch",
|
||
}}
|
||
>
|
||
<ProjectIconRail workspace={workspace} projectId={projectId} />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
borderRight: "1px solid #e8e4dc",
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{structuralChatBody}
|
||
</div>
|
||
<div
|
||
key={pathname}
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
overflow: "auto",
|
||
background: "#faf8f5",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{artifactSlot}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</PreviewBridgeProvider>
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</>
|
||
);
|
||
}
|
||
|
||
// ── Open panel ─────────────────────────────────────────────────────────────
|
||
// Structural mode: fill the parent column. Default mode: fixed slide-out
|
||
// anchored to the right edge of the viewport (legacy behavior).
|
||
return (
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
flex: 1,
|
||
minHeight: 0,
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
: {
|
||
position: "fixed",
|
||
right: 0,
|
||
top: 0,
|
||
bottom: 0,
|
||
zIndex: 999,
|
||
width: 380,
|
||
background: "#fff",
|
||
borderLeft: "1px solid #e8e4dc",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
boxShadow: "-4px 0 24px #1a1a1a08",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
}
|
||
>
|
||
{/* Header — structural: circle logo + threads; slide-out: wordmark */}
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
height: 48,
|
||
padding: "0 12px",
|
||
boxSizing: "border-box",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
gap: 6,
|
||
}
|
||
: {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "14px 16px",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}
|
||
}
|
||
>
|
||
{structural ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
) : (
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 6px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-lora),serif",
|
||
fontSize: "0.95rem",
|
||
fontWeight: 400,
|
||
color: "#1a1a1a",
|
||
letterSpacing: "-0.01em",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
Vibn AI
|
||
</span>
|
||
<ChevronDown
|
||
style={{
|
||
width: 13,
|
||
height: 13,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 6,
|
||
padding: "2px 8px",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 160,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
)}
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: structural ? "4px 5px" : "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus
|
||
style={{
|
||
width: structural ? 14 : 15,
|
||
height: structural ? 14 : 15,
|
||
}}
|
||
/>
|
||
</button>
|
||
{!structural && (
|
||
<button
|
||
type="button"
|
||
onClick={() => setOpen(false)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="Close"
|
||
>
|
||
<ChevronRight style={{ width: 15, height: 15 }} />
|
||
</button>
|
||
)}
|
||
</div>
|
||
</div>
|
||
|
||
{conversationColumn}
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: vibn\-frontend/components/vibn\-chat/chat\-panel.tsx**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
```
|
||
"use client";
|
||
|
||
import {
|
||
useEffect,
|
||
useRef,
|
||
useState,
|
||
useCallback,
|
||
type ReactNode,
|
||
type CSSProperties,
|
||
} from "react";
|
||
import Link from "next/link";
|
||
import { useSession } from "next-auth/react";
|
||
import { useParams, usePathname } from "next/navigation";
|
||
import {
|
||
MessageSquare,
|
||
X,
|
||
ChevronRight,
|
||
Send,
|
||
Plus,
|
||
Loader2,
|
||
Wrench,
|
||
ChevronDown,
|
||
Trash2,
|
||
Square,
|
||
MousePointerClick,
|
||
Sparkles,
|
||
} from "lucide-react";
|
||
import { ProjectIconRail } from "@/components/project/project-icon-rail";
|
||
import {
|
||
PreviewBridgeProvider,
|
||
previewMessagePrepRef,
|
||
usePreviewBridge,
|
||
} from "@/components/project/preview-bridge-context";
|
||
|
||
// ── Types ─────────────────────────────────────────────────────────────────────
|
||
|
||
interface Thread {
|
||
id: string;
|
||
title: string;
|
||
updatedAt: string;
|
||
}
|
||
|
||
interface Message {
|
||
id?: string;
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: { id: string; name: string; args: Record<string, unknown> }[];
|
||
toolName?: string;
|
||
createdAt?: string;
|
||
/**
|
||
* Chronological turn timeline interleaving the model's thinking
|
||
* narration and the tool calls it fired. Rendered as a stack of
|
||
* pills INSIDE the bubble above the final text content, so the
|
||
* user sees the actual flow:
|
||
* [thought] [tool ×N] [thought] [tool] ... [summary]
|
||
* Each thought is its own collapsed pill (click to expand);
|
||
* adjacent runs of the same tool name collapse into one pill
|
||
* with a ×N counter. The final assistant text is rendered
|
||
* separately, below the timeline.
|
||
*/
|
||
timeline?: TimelineEntry[];
|
||
}
|
||
|
||
type TimelineEntry =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "tool"; name: string; status: "running" | "done"; result?: string }
|
||
// A text segment from one round of the assistant's tool loop.
|
||
// Each text SSE event from the server starts a new entry; subsequent
|
||
// streaming chunks for that same round append to the most-recent
|
||
// text entry. Tool/thought entries between text segments break the
|
||
// accumulation so multi-round turns render as separate bubbles.
|
||
| { kind: "text"; text: string };
|
||
|
||
interface ToolEvent {
|
||
name: string;
|
||
status: "running" | "done";
|
||
result?: string;
|
||
}
|
||
|
||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||
|
||
function getFriendlyCategory(name: string): string {
|
||
if (
|
||
name.includes("fs.edit") ||
|
||
name.includes("fs.write") ||
|
||
name.includes("fs_edit") ||
|
||
name.includes("fs_write")
|
||
)
|
||
return "Writing code";
|
||
if (
|
||
name.includes("fs.read") ||
|
||
name.includes("fs.list") ||
|
||
name.includes("fs.grep") ||
|
||
name.includes("fs.tree") ||
|
||
name.includes("fs_read") ||
|
||
name.includes("fs_list") ||
|
||
name.includes("fs_grep") ||
|
||
name.includes("fs_tree")
|
||
)
|
||
return "Reading codebase";
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
return "Running terminal commands";
|
||
if (name.includes("dev_server.start") || name.includes("dev_server_start"))
|
||
return "Starting dev server";
|
||
if (name.includes("dev_server.logs") || name.includes("dev_server_logs"))
|
||
return "Checking server logs";
|
||
if (
|
||
name.includes("browser.navigate") ||
|
||
name.includes("browser.console") ||
|
||
name.includes("browser_navigate") ||
|
||
name.includes("browser_console")
|
||
)
|
||
return "Checking browser preview";
|
||
if (name.includes("ship")) return "Shipping code to production";
|
||
|
||
return name;
|
||
}
|
||
|
||
function timeAgo(dateStr?: string): string {
|
||
if (!dateStr) return "";
|
||
const diff = (Date.now() - new Date(dateStr).getTime()) / 1000;
|
||
if (diff < 60) return "just now";
|
||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
||
return `${Math.floor(diff / 86400)}d ago`;
|
||
}
|
||
|
||
function friendlyToolName(name: string): string {
|
||
return name
|
||
.replace(/_/g, ".")
|
||
.replace("projects.list", "listing projects")
|
||
.replace("apps.list", "listing apps")
|
||
.replace("apps.create", "deploying app")
|
||
.replace("apps.templates.list", "listing templates")
|
||
.replace("apps.templates.search", "searching templates")
|
||
.replace("domains.register", "registering domain")
|
||
.replace("domains.list", "listing domains")
|
||
.replace("apps.logs", "fetching logs");
|
||
}
|
||
|
||
function ActiveThinkingIndicator() {
|
||
const [phraseIndex, setPhraseIndex] = useState(0);
|
||
const phrases = [
|
||
"Thinking about the problem...",
|
||
"Reviewing the plan...",
|
||
"Caramelizing onions...",
|
||
"Writing code...",
|
||
"Running checks...",
|
||
"Reticulating splines...",
|
||
"Building out the view...",
|
||
];
|
||
|
||
useEffect(() => {
|
||
const timer = setInterval(() => {
|
||
setPhraseIndex((i) => (i + 1) % phrases.length);
|
||
}, 2800);
|
||
return () => clearInterval(timer);
|
||
}, [phrases.length]);
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "4px 4px 10px 4px",
|
||
fontSize: "0.85rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<svg
|
||
width="16"
|
||
height="16"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="#cf6741"
|
||
strokeWidth="2.5"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
className="animate-spin"
|
||
style={{ animationDuration: "3s" }}
|
||
>
|
||
<path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83" />
|
||
</svg>
|
||
</div>
|
||
<span className="animate-pulse">{phrases[phraseIndex]}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Markdown-lite renderer ────────────────────────────────────────────────────
|
||
|
||
function escapeHtmlAttr(s: string): string {
|
||
return s.replace(/&/g, "&").replace(/"/g, """);
|
||
}
|
||
|
||
const LINK_STYLE =
|
||
"color:#4338ca;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all";
|
||
|
||
/** [label](https://...) — href restricted to http(s) */
|
||
function markdownLinksToHtml(s: string): string {
|
||
return s.replace(
|
||
/\[([^\]]+)\]\((https?:\/\/[^\s)<>]+)\)/gi,
|
||
(_m, label: string, url: string) => {
|
||
return `<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${label}</a>`;
|
||
},
|
||
);
|
||
}
|
||
|
||
/** Bare https:// in prose (skips when prefix is `>` so href=/code aren't touched) */
|
||
function autoLinkBareUrls(s: string): string {
|
||
return s.replace(
|
||
/(^|[\s\-—:(\[{])(https?:\/\/[^\s<>"']+)/gi,
|
||
(match, pre: string, url: string) =>
|
||
`${pre}<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${url}</a>`,
|
||
);
|
||
}
|
||
|
||
function renderMarkdown(text: string): string {
|
||
let s = text
|
||
.replace(/&/g, "&")
|
||
.replace(/</g, "<")
|
||
.replace(/>/g, ">");
|
||
s = markdownLinksToHtml(s);
|
||
s = s
|
||
.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>")
|
||
.replace(
|
||
/`([^`]+)`/g,
|
||
'<code style="background:#f0ede8;padding:1px 5px;border-radius:3px;font-family:var(--font-ibm-plex-mono),monospace;font-size:0.85em;overflow-wrap:anywhere;word-break:break-word">$1</code>',
|
||
)
|
||
.replace(
|
||
/^### (.+)$/gm,
|
||
'<h3 style="font-weight:600;margin:12px 0 4px;font-size:0.88rem;overflow-wrap:anywhere;word-break:break-word">$1</h3>',
|
||
)
|
||
.replace(
|
||
/^## (.+)$/gm,
|
||
'<h2 style="font-weight:600;margin:14px 0 4px;font-size:0.9rem;overflow-wrap:anywhere;word-break:break-word">$1</h2>',
|
||
)
|
||
.replace(
|
||
/^- (.+)$/gm,
|
||
'<li style="margin-left:16px;list-style:disc;overflow-wrap:anywhere;word-break:break-word">$1</li>',
|
||
)
|
||
.replace(
|
||
/(<li[^>]*>.*<\/li>\n?)+/g,
|
||
(m) => `<ul style="margin:6px 0">${m}</ul>`,
|
||
)
|
||
.replace(
|
||
/\n\n/g,
|
||
'</p><p style="margin:0 0 8px;overflow-wrap:anywhere;word-break:break-word">',
|
||
)
|
||
.replace(/\n/g, "<br>");
|
||
s = autoLinkBareUrls(s);
|
||
return s;
|
||
}
|
||
|
||
// ── Message bubble ────────────────────────────────────────────────────────────
|
||
|
||
/**
|
||
* Strip the markdown-bold "**Section Heading**" lines that Gemini
|
||
* loves to start each thought with so the collapsed pill shows the
|
||
* actual sentence rather than "**Examining the Target Server File**".
|
||
* The full text is still available in the expanded view.
|
||
*/
|
||
function thoughtPreview(thoughts: string): string {
|
||
const stripped = thoughts
|
||
.replace(/^\s*\*\*[^*]+\*\*\s*/gm, "")
|
||
.replace(/\s+/g, " ")
|
||
.trim();
|
||
if (stripped.length <= 90) return stripped;
|
||
return stripped.slice(0, 87) + "…";
|
||
}
|
||
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
fontSize: "0.75rem",
|
||
color: "#8c8580",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
fontStyle: "italic",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<Sparkles
|
||
style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
className="animate-pulse"
|
||
/>
|
||
</div>
|
||
<span className="animate-pulse">{currentAction}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function MessageBubble({ msg }: { msg: Message }) {
|
||
const isUser = msg.role === "user";
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
justifyContent: isUser ? "flex-end" : "flex-start",
|
||
marginBottom: 12,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{!isUser && (
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
marginRight: 8,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
)}
|
||
<div
|
||
style={{
|
||
maxWidth: "82%",
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{!isUser && msg.timeline && msg.timeline.length > 0 && (
|
||
<Timeline entries={msg.timeline} />
|
||
)}
|
||
{/*
|
||
Render the legacy bottom content bubble ONLY when:
|
||
- the message is from the user (their bubble is always the
|
||
content slot), OR
|
||
- the assistant message has no timeline at all (very old
|
||
messages from before timeline existed).
|
||
When the timeline contains text entries the prose is already
|
||
rendered there, and showing it again here would duplicate
|
||
every paragraph below the timeline.
|
||
*/}
|
||
{((msg.content && isUser) ||
|
||
(msg.content &&
|
||
!isUser &&
|
||
(!msg.timeline || msg.timeline.length === 0))) && (
|
||
<div
|
||
style={{
|
||
padding: isUser ? "9px 14px" : "10px 14px",
|
||
borderRadius: isUser
|
||
? "14px 14px 4px 14px"
|
||
: "4px 14px 14px 14px",
|
||
background: isUser ? "#1a1a1a" : "#f7f4ef",
|
||
color: isUser ? "#fff" : "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
{isUser ? (
|
||
<span style={{ whiteSpace: "pre-wrap", ...proseWrap }}>
|
||
{msg.content}
|
||
</span>
|
||
) : (
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{
|
||
__html: renderMarkdown(msg.content),
|
||
}}
|
||
/>
|
||
)}
|
||
</div>
|
||
)}
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Renders the chronological turn timeline: thoughts as their own
|
||
* collapsed pills, tool calls grouped by adjacent runs of the same
|
||
* name with a ×N counter. The flow visually mirrors what actually
|
||
* happened: thought → tools → thought → tools → ... → final summary.
|
||
*/
|
||
function Timeline({ entries }: { entries: TimelineEntry[] }) {
|
||
// Walk the entries and emit a renderable list. Adjacent same-category
|
||
// tool entries get bundled into a TimelineToolGroup; thought and
|
||
// text entries pass through as-is.
|
||
type Item =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "text"; text: string }
|
||
| {
|
||
kind: "toolGroup";
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
};
|
||
const items: Item[] = [];
|
||
for (const e of entries) {
|
||
if (e.kind === "thought") {
|
||
items.push({ kind: "thought", text: e.text });
|
||
} else if (e.kind === "text") {
|
||
items.push({ kind: "text", text: e.text });
|
||
} else {
|
||
const last = items[items.length - 1];
|
||
const category = getFriendlyCategory(e.name);
|
||
if (last && last.kind === "toolGroup" && last.category === category) {
|
||
last.entries.push(e);
|
||
} else {
|
||
items.push({ kind: "toolGroup", category, entries: [e] });
|
||
}
|
||
}
|
||
}
|
||
return (
|
||
<div style={{ marginBottom: 6 }}>
|
||
{items.map((item, i) => {
|
||
if (item.kind === "thought") {
|
||
return <ThinkingBubble key={i} thoughts={item.text} />;
|
||
}
|
||
if (item.kind === "text") {
|
||
return <TimelineText key={i} text={item.text} />;
|
||
}
|
||
return (
|
||
<TimelineToolGroup
|
||
key={i}
|
||
category={item.category}
|
||
entries={item.entries}
|
||
/>
|
||
);
|
||
})}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* One text segment in the assistant's timeline. Rendered as its own
|
||
* bubble so each round of multi-tool-loop output reads as a discrete
|
||
* step instead of concatenating into a wall of text.
|
||
*/
|
||
function TimelineText({ text }: { text: string }) {
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
padding: "10px 14px",
|
||
borderRadius: "4px 14px 14px 14px",
|
||
background: "#f7f4ef",
|
||
color: "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
marginBottom: 6,
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{ __html: renderMarkdown(text) }}
|
||
/>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function TimelineToolGroup({
|
||
category,
|
||
entries,
|
||
}: {
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
}) {
|
||
const [expanded, setExpanded] = useState(false);
|
||
const count = entries.length;
|
||
const allDone = entries.every((e) => e.status === "done");
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<button
|
||
onClick={() => setExpanded(!expanded)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
width: "100%",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
background: "none",
|
||
border: "none",
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
cursor: "pointer",
|
||
textAlign: "left",
|
||
}}
|
||
>
|
||
<span style={{ width: 14, display: "flex", justifyContent: "center" }}>
|
||
{!allDone ? (
|
||
<Loader2
|
||
style={{ width: 12, height: 12 }}
|
||
className="animate-spin"
|
||
/>
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
</span>
|
||
<span style={{ flex: 1 }}>
|
||
{category} {count > 1 ? `(x${count})` : ""} {!allDone ? "..." : " ✓"}
|
||
</span>
|
||
<span
|
||
style={{
|
||
transform: expanded ? "rotate(180deg)" : "none",
|
||
transition: "transform 0.15s ease",
|
||
}}
|
||
>
|
||
<ChevronDown style={{ width: 12, height: 12, opacity: 0.5 }} />
|
||
</span>
|
||
</button>
|
||
|
||
{expanded && (
|
||
<div
|
||
style={{
|
||
padding: "0 12px 8px 34px",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
gap: 4,
|
||
}}
|
||
>
|
||
{entries.map((e, i) => (
|
||
<div
|
||
key={i}
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#8c8580",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 4,
|
||
height: 4,
|
||
borderRadius: "50%",
|
||
background: "#ccc",
|
||
}}
|
||
/>
|
||
<span style={{ fontFamily: "var(--font-mono), monospace" }}>
|
||
{friendlyToolName(e.name)}
|
||
</span>
|
||
{!e.result && e.status === "running" && (
|
||
<span className="animate-pulse">...</span>
|
||
)}
|
||
{e.result && (
|
||
<span
|
||
style={{
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
opacity: 0.7,
|
||
maxWidth: 150,
|
||
}}
|
||
title={e.result}
|
||
>
|
||
— {e.result}
|
||
</span>
|
||
)}
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function ToolBubble({ event }: { event: ToolEvent }) {
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
{event.status === "running" ? (
|
||
<Loader2 style={{ width: 12, height: 12 }} className="animate-spin" />
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
<span>
|
||
{friendlyToolName(event.name)}
|
||
{event.status === "running" ? "…" : " ✓"}
|
||
</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Main panel ────────────────────────────────────────────────────────────────
|
||
|
||
interface ChatPanelProps {
|
||
/**
|
||
* When true, the panel renders inline as a flex child of its parent
|
||
* (a structural left column on project pages). Skips the fixed-position
|
||
* slide-out treatment, the collapsed-tab affordance, and the
|
||
* --chat-panel-width side-effect. Always "open" — there's no close
|
||
* button because the panel IS the column.
|
||
*
|
||
* When false / omitted: legacy behavior — fixed slide-out on the
|
||
* right, collapsible, sets --chat-panel-width so the workspace
|
||
* content shifts left to make room.
|
||
*/
|
||
structural?: boolean;
|
||
/**
|
||
* When set with `structural` on a project route, renders a unified shell:
|
||
* full-width top bar (chat controls | section icons) and a split row
|
||
* below (chat column | artifact slot). Omit on slide-out chat.
|
||
*/
|
||
artifactSlot?: ReactNode;
|
||
}
|
||
|
||
/** Shared dimensions for preview-select + send icon buttons in the composer. */
|
||
const COMPOSER_ACTION_BTN_BASE: CSSProperties = {
|
||
flexShrink: 0,
|
||
width: 32,
|
||
height: 32,
|
||
boxSizing: "border-box",
|
||
borderRadius: 8,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 0,
|
||
};
|
||
|
||
/** Preview pick chip + select-mode toggle for unified project shell chat composer. */
|
||
function ProjectPreviewChatInputWrap({
|
||
unifiedShell,
|
||
children,
|
||
}: {
|
||
unifiedShell: boolean;
|
||
children: (selectToggle: React.ReactNode) => React.ReactNode;
|
||
}) {
|
||
const bridge = usePreviewBridge();
|
||
|
||
if (!unifiedShell || !bridge) {
|
||
return <>{children(null)}</>;
|
||
}
|
||
|
||
const { selectMode, setSelectMode, picked, clearPick } = bridge;
|
||
|
||
const chip = picked ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "flex-start",
|
||
gap: 8,
|
||
marginBottom: 8,
|
||
padding: "8px 10px",
|
||
borderRadius: 8,
|
||
background: "#eef2ff",
|
||
border: "1px solid #c7d2fe",
|
||
fontSize: "0.72rem",
|
||
lineHeight: 1.45,
|
||
color: "#312e81",
|
||
}}
|
||
>
|
||
<MousePointerClick
|
||
style={{
|
||
width: 14,
|
||
height: 14,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
opacity: 0.85,
|
||
}}
|
||
aria-hidden
|
||
/>
|
||
<div style={{ flex: 1, minWidth: 0 }}>
|
||
<div style={{ fontWeight: 600, marginBottom: 2 }}>
|
||
Preview selection
|
||
</div>
|
||
<div style={{ opacity: 0.92 }}>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-ibm-plex-mono),monospace",
|
||
fontSize: "0.68rem",
|
||
}}
|
||
>
|
||
{picked.tagName}
|
||
</span>
|
||
{" · "}
|
||
<span style={{ wordBreak: "break-word" }}>{picked.selector}</span>
|
||
</div>
|
||
{picked.textSnippet ? (
|
||
<div style={{ marginTop: 4, opacity: 0.88, wordBreak: "break-word" }}>
|
||
{`"${picked.textSnippet.slice(0, 140)}${picked.textSnippet.length > 140 ? "..." : ""}"`}
|
||
</div>
|
||
) : null}
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={clearPick}
|
||
aria-label="Clear preview selection"
|
||
style={{
|
||
flexShrink: 0,
|
||
background: "none",
|
||
border: "none",
|
||
padding: 2,
|
||
cursor: "pointer",
|
||
borderRadius: 4,
|
||
color: "#4338ca",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
>
|
||
<X style={{ width: 13, height: 13 }} />
|
||
</button>
|
||
</div>
|
||
) : null;
|
||
|
||
const selectToggle = (
|
||
<button
|
||
type="button"
|
||
aria-pressed={selectMode}
|
||
aria-label={
|
||
selectMode ? "Exit preview select mode" : "Select element from preview"
|
||
}
|
||
title={
|
||
selectMode
|
||
? "Click preview to choose an element"
|
||
: "Choose element from preview"
|
||
}
|
||
onClick={() => setSelectMode(!selectMode)}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
border: selectMode ? "1px solid #6366f1" : "1px solid #e8e4dc",
|
||
background: selectMode ? "#eef2ff" : "#faf8f5",
|
||
color: selectMode ? "#4338ca" : "#6b6560",
|
||
cursor: "pointer",
|
||
}}
|
||
>
|
||
<MousePointerClick style={{ width: 15, height: 15 }} strokeWidth={2} />
|
||
</button>
|
||
);
|
||
|
||
return (
|
||
<>
|
||
{chip}
|
||
{children(selectToggle)}
|
||
</>
|
||
);
|
||
}
|
||
|
||
export function ChatPanel({
|
||
structural = false,
|
||
artifactSlot,
|
||
}: ChatPanelProps = {}) {
|
||
const { data: sessionData, status } = useSession();
|
||
const params = useParams();
|
||
const pathname = usePathname() ?? "";
|
||
const workspace = (params?.workspace as string) || "";
|
||
// When the user is on a /project/<id>/* route, scope the chat to
|
||
// that project. The threads list, the new-thread create call, and
|
||
// the system prompt all branch on this; the chat header surfaces it
|
||
// so the user knows the AI is "talking about" the right thing.
|
||
const projectId = (params?.projectId as string) || "";
|
||
/** Full project shell (chat | artifact); must render even while auth is loading or signed out. */
|
||
const unifiedProjectShell =
|
||
structural && Boolean(projectId) && artifactSlot !== undefined;
|
||
const [activeProjectName, setActiveProjectName] = useState<string | null>(
|
||
null,
|
||
);
|
||
|
||
const [open, setOpen] = useState(() => {
|
||
// Structural mode is always-open by definition — the panel IS the
|
||
// column, there's no "closed" state to persist.
|
||
if (structural) return true;
|
||
if (typeof window === "undefined") return false;
|
||
return localStorage.getItem("vibn-chat-open") !== "false";
|
||
});
|
||
const [threads, setThreads] = useState<Thread[]>([]);
|
||
// threadsLoaded flips to true after the FIRST loadThreads() resolves.
|
||
// Used to gate the auto-create effect — without it we race the fetch
|
||
// and spawn an empty thread before history loads.
|
||
const [threadsLoaded, setThreadsLoaded] = useState(false);
|
||
const [activeThread, setActiveThread] = useState<string | null>(null);
|
||
const [messages, setMessages] = useState<Message[]>([]);
|
||
const [input, setInput] = useState("");
|
||
const [sending, setSending] = useState(false);
|
||
const [showThreads, setShowThreads] = useState(false);
|
||
const [mcpToken, setMcpToken] = useState<string | null>(null);
|
||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||
const inputRef = useRef<HTMLTextAreaElement>(null);
|
||
// AbortController for the in-flight /api/chat fetch. Lives in a ref
|
||
// so the Stop button can reach it without re-rendering on every
|
||
// streaming chunk.
|
||
const abortRef = useRef<AbortController | null>(null);
|
||
|
||
const scrollToBottom = useCallback(() => {
|
||
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
|
||
}, []);
|
||
|
||
// Persist open state + adjust main content margin
|
||
useEffect(() => {
|
||
if (structural) return;
|
||
localStorage.setItem("vibn-chat-open", String(open));
|
||
document.documentElement.style.setProperty(
|
||
"--chat-panel-width",
|
||
open ? "380px" : "0px",
|
||
);
|
||
}, [open, structural]);
|
||
|
||
// Load MCP token — prefer localStorage cache, fetch from API if missing.
|
||
// We use /api/workspaces (not the URL param) because the URL slug
|
||
// (e.g. "mark-account") differs from the actual workspace slug ("mark").
|
||
useEffect(() => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
const cached = localStorage.getItem(`vibn-mcp-token-${workspace}`);
|
||
if (cached) {
|
||
setMcpToken(cached);
|
||
return;
|
||
}
|
||
fetch("/api/workspaces?include_default_token=true")
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (d?.defaultToken) {
|
||
localStorage.setItem(`vibn-mcp-token-${workspace}`, d.defaultToken);
|
||
setMcpToken(d.defaultToken);
|
||
}
|
||
})
|
||
.catch(() => {});
|
||
}, [workspace, status]);
|
||
|
||
// Load threads (scoped to the current project when one is in the URL).
|
||
// Reset the loaded flag when projectId changes so the resume effect
|
||
// re-runs against the correct list and doesn't restore a thread from
|
||
// the previous project.
|
||
const loadThreads = useCallback(async () => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
try {
|
||
const qs = new URLSearchParams({ workspace });
|
||
if (projectId) qs.set("projectId", projectId);
|
||
const res = await fetch(`/api/chat/threads?${qs.toString()}`);
|
||
const data = await res.json();
|
||
setThreads(data.threads || []);
|
||
} catch {
|
||
/* silent */
|
||
} finally {
|
||
setThreadsLoaded(true);
|
||
}
|
||
}, [workspace, projectId, status]);
|
||
|
||
useEffect(() => {
|
||
setThreadsLoaded(false);
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
// Clear the threads array immediately so the resume effect doesn't
|
||
// race the loadThreads() fetch and resume a stale project-scoped
|
||
// thread when the user navigates from /project/X back to /projects.
|
||
setThreads([]);
|
||
loadThreads();
|
||
}, [loadThreads, projectId]);
|
||
|
||
// Look up the active project's display name once we have a projectId,
|
||
// so the chat header can show "Talking about: <name>".
|
||
useEffect(() => {
|
||
if (!projectId) {
|
||
setActiveProjectName(null);
|
||
return;
|
||
}
|
||
let cancelled = false;
|
||
fetch(`/api/projects/${projectId}/anatomy`, { credentials: "include" })
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (cancelled) return;
|
||
const name = d?.project?.name;
|
||
if (name) setActiveProjectName(name);
|
||
})
|
||
.catch(() => {});
|
||
return () => {
|
||
cancelled = true;
|
||
};
|
||
}, [projectId]);
|
||
|
||
// Create and activate a new thread (tagged to the active project, if any).
|
||
const newThread = useCallback(async () => {
|
||
try {
|
||
const res = await fetch("/api/chat/threads", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ workspace, projectId: projectId || undefined }),
|
||
});
|
||
const data = await res.json();
|
||
if (data.thread) {
|
||
setThreads((prev) => [data.thread, ...prev]);
|
||
setActiveThread(data.thread.id);
|
||
setMessages([]);
|
||
setShowThreads(false);
|
||
}
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, [workspace, projectId]);
|
||
|
||
// Load thread messages
|
||
const loadThread = useCallback(async (id: string) => {
|
||
setActiveThread(id);
|
||
setShowThreads(false);
|
||
setMessages([]);
|
||
try {
|
||
const res = await fetch(`/api/chat/threads/${id}`);
|
||
const data = await res.json();
|
||
// Hydrate the timeline from persisted textSegments + toolCalls
|
||
// so a reloaded thread renders the same per-round bubbles the
|
||
// user saw during streaming. Older messages without
|
||
// textSegments fall back to the legacy single-bubble path.
|
||
const hydrated = (data.messages || []).map((m: any) => {
|
||
if (m.role !== "assistant") return m;
|
||
const segs: string[] = Array.isArray(m.textSegments)
|
||
? m.textSegments
|
||
: [];
|
||
if (segs.length === 0) return m;
|
||
const timeline: TimelineEntry[] = segs.map((t) => ({
|
||
kind: "text",
|
||
text: t,
|
||
}));
|
||
// We don't have round-level interleaving for tool calls in
|
||
// the persisted shape (the schema flattens them), so we drop
|
||
// the toolCalls into the timeline at the end. The streamed
|
||
// shape preserves true ordering; this is just a reload
|
||
// approximation. Good enough — what the user really cares
|
||
// about is the text segments not run-on'ing into one blob.
|
||
if (Array.isArray(m.toolCalls)) {
|
||
for (const tc of m.toolCalls) {
|
||
timeline.push({ kind: "tool", name: tc.name, status: "done" });
|
||
}
|
||
}
|
||
return { ...m, timeline, content: "" };
|
||
});
|
||
setMessages(hydrated);
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, []);
|
||
|
||
// Auto-resume previous thread (or create a fresh one if the user has
|
||
// never chatted in this workspace). We MUST wait for threadsLoaded
|
||
// before deciding — otherwise we race the fetch and spawn an empty
|
||
// thread before history arrives. Last-active thread is restored from
|
||
// localStorage so a page reload (deploy, refresh) lands the user back
|
||
// in the conversation they were in.
|
||
useEffect(() => {
|
||
if (!open || status !== "authenticated" || !workspace) return;
|
||
if (!threadsLoaded) return;
|
||
if (activeThread) return;
|
||
|
||
if (threads.length === 0) {
|
||
newThread();
|
||
return;
|
||
}
|
||
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
const saved =
|
||
typeof window !== "undefined" ? localStorage.getItem(savedKey) : null;
|
||
const target =
|
||
saved && threads.some((t) => t.id === saved) ? saved : threads[0].id;
|
||
loadThread(target);
|
||
}, [
|
||
open,
|
||
status,
|
||
workspace,
|
||
projectId,
|
||
threadsLoaded,
|
||
threads,
|
||
activeThread,
|
||
newThread,
|
||
loadThread,
|
||
]);
|
||
|
||
// Persist active thread so reload re-opens the same conversation,
|
||
// keyed per-project so each project has its own "last conversation".
|
||
useEffect(() => {
|
||
if (typeof window === "undefined" || !workspace) return;
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
if (activeThread) localStorage.setItem(savedKey, activeThread);
|
||
}, [activeThread, workspace, projectId]);
|
||
|
||
useEffect(() => {
|
||
scrollToBottom();
|
||
}, [messages, scrollToBottom]);
|
||
|
||
const deleteThread = useCallback(
|
||
async (id: string, e: React.MouseEvent) => {
|
||
e.stopPropagation();
|
||
await fetch(`/api/chat/threads/${id}`, { method: "DELETE" });
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [
|
||
...tl,
|
||
{ kind: "tool", name: ev.name, status: "running" },
|
||
],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_result") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
// Walk backward to the most recent matching running
|
||
// tool entry and mark it done. Avoids cross-matching
|
||
// earlier same-named entries.
|
||
let updated = false;
|
||
const newTl: TimelineEntry[] = [];
|
||
for (let i = tl.length - 1; i >= 0; i--) {
|
||
const e = tl[i];
|
||
if (
|
||
!updated &&
|
||
e.kind === "tool" &&
|
||
e.name === ev.name &&
|
||
e.status === "running"
|
||
) {
|
||
newTl.unshift({
|
||
...e,
|
||
status: "done",
|
||
result: ev.result,
|
||
});
|
||
updated = true;
|
||
} else {
|
||
newTl.unshift(e);
|
||
}
|
||
}
|
||
next[msgIndex] = { ...next[msgIndex], timeline: newTl };
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "error") {
|
||
const errText = ev.error || "Unknown error";
|
||
const isToolErr = /tool|mcp|coolify|gitea/i.test(errText);
|
||
const errBubble = isToolErr
|
||
? `⚠️ **Tool error:** ${errText}`
|
||
: `⚠️ ${errText}`;
|
||
assistantContent += (assistantContent ? "\n\n" : "") + errBubble;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "text", text: errBubble }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
// Auto-title thread from first message
|
||
const thisThread = threads.find((t) => t.id === activeThread);
|
||
if (thisThread?.title === "New conversation") {
|
||
const title = text.slice(0, 50);
|
||
await fetch(`/api/chat/threads/${activeThread}`, {
|
||
method: "PATCH",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ title }),
|
||
});
|
||
setThreads((prev) =>
|
||
prev.map((t) => (t.id === activeThread ? { ...t, title } : t)),
|
||
);
|
||
}
|
||
|
||
loadThreads();
|
||
} catch (e) {
|
||
const isAbort = e instanceof DOMException && e.name === "AbortError";
|
||
if (isAbort) {
|
||
// Server-side will have appended "(stopped by user)" to the
|
||
// partial response and persisted it. We just need to make
|
||
// sure the local UI reflects whatever streamed in before the
|
||
// user clicked Stop — which it already does, because we've
|
||
// been mutating `messages[msgIndex]` chunk-by-chunk above.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (
|
||
msgIndex >= 0 &&
|
||
next[msgIndex] &&
|
||
!next[msgIndex].content.includes("(stopped by user)")
|
||
) {
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
content:
|
||
(next[msgIndex].content || "") + "\n\n_(stopped by user)_",
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else {
|
||
const errMsg = e instanceof Error ? e.message : String(e);
|
||
const isNetwork = /fetch|network|failed to fetch/i.test(errMsg);
|
||
const friendlyError = isNetwork
|
||
? "⚠️ Network error — check your connection and try again."
|
||
: `⚠️ Something went wrong: ${errMsg.slice(0, 200)}\n\nYou can try again or start a new message.`;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
next[msgIndex] = { ...next[msgIndex], content: friendlyError };
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
} finally {
|
||
abortRef.current = null;
|
||
setSending(false);
|
||
}
|
||
},
|
||
[
|
||
input,
|
||
sending,
|
||
activeThread,
|
||
workspace,
|
||
mcpToken,
|
||
threads,
|
||
loadThreads,
|
||
unifiedProjectShell,
|
||
],
|
||
);
|
||
|
||
const cancelMessage = useCallback(() => {
|
||
abortRef.current?.abort();
|
||
}, []);
|
||
|
||
// External components (e.g. ProjectHeaderUrls' "Start preview" button)
|
||
// can ask the chat to send a canned prompt without prop-drilling. Open
|
||
// the panel if collapsed, then fire the prompt as if the user typed it.
|
||
useEffect(() => {
|
||
function onPrompt(e: Event) {
|
||
const ce = e as CustomEvent<{ prompt?: string; scopeProjectId?: string }>;
|
||
const prompt = ce.detail?.prompt;
|
||
if (!prompt) return;
|
||
// If the dispatcher scopes the prompt to a specific project, only
|
||
// accept it when the chat panel is currently bound to that project.
|
||
// Prevents a "Start preview on Manifest" click from accidentally
|
||
// landing in a chat that's scoped to a different project.
|
||
if (ce.detail?.scopeProjectId && ce.detail.scopeProjectId !== projectId) {
|
||
return;
|
||
}
|
||
setOpen(true);
|
||
void sendMessage(prompt);
|
||
}
|
||
window.addEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
return () =>
|
||
window.removeEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
}, [sendMessage, projectId]);
|
||
|
||
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||
if (e.key === "Enter" && !e.shiftKey) {
|
||
e.preventDefault();
|
||
sendMessage();
|
||
} else if (e.key === "Escape" && sending) {
|
||
e.preventDefault();
|
||
cancelMessage();
|
||
}
|
||
};
|
||
|
||
// Slide-out chat hidden until signed in. Structural project shell always
|
||
// mounts so Preview / Product / Plan pages render; chat column shows loading
|
||
// or sign-in instead of wiping the whole viewport (blank page).
|
||
if (!unifiedProjectShell && status !== "authenticated") return null;
|
||
|
||
// ── Collapsed tab ──────────────────────────────────────────────────────────
|
||
// Structural mode is always-open; skip the collapsed-tab branch entirely.
|
||
if (!open && !structural) {
|
||
return (
|
||
<button
|
||
onClick={() => setOpen(true)}
|
||
style={{
|
||
position: "fixed",
|
||
right: 0,
|
||
top: "50%",
|
||
transform: "translateY(-50%)",
|
||
zIndex: 1000,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
border: "none",
|
||
borderRadius: "8px 0 0 8px",
|
||
padding: "14px 10px",
|
||
cursor: "pointer",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
boxShadow: "-2px 0 12px #1a1a1a14",
|
||
}}
|
||
title="Open Vibn AI"
|
||
>
|
||
<MessageSquare style={{ width: 16, height: 16 }} />
|
||
<span
|
||
style={{
|
||
writingMode: "vertical-rl",
|
||
textOrientation: "mixed",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.08em",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
transform: "rotate(180deg)",
|
||
}}
|
||
>
|
||
VIBN AI
|
||
</span>
|
||
</button>
|
||
);
|
||
}
|
||
|
||
const conversationColumn = (
|
||
<>
|
||
{/* Thread list dropdown */}
|
||
{showThreads && (
|
||
<div
|
||
style={{
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
maxHeight: 200,
|
||
overflowY: "auto",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{threads.length === 0 && (
|
||
<div
|
||
style={{
|
||
padding: "12px 16px",
|
||
fontSize: "0.78rem",
|
||
color: "#a09a90",
|
||
}}
|
||
>
|
||
No conversations yet
|
||
</div>
|
||
)}
|
||
{threads.map((t) => (
|
||
<div
|
||
key={t.id}
|
||
onClick={() => loadThread(t.id)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "9px 16px",
|
||
background: activeThread === t.id ? "#f0ede8" : "transparent",
|
||
cursor: "pointer",
|
||
borderBottom: "1px solid #f0ede8",
|
||
}}
|
||
onMouseEnter={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "#f7f4ef";
|
||
}}
|
||
onMouseLeave={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "transparent";
|
||
}}
|
||
>
|
||
<div style={{ minWidth: 0 }}>
|
||
<div
|
||
style={{
|
||
fontSize: "0.8rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
{t.title}
|
||
</div>
|
||
<div style={{ fontSize: "0.7rem", color: "#a09a90" }}>
|
||
{timeAgo(t.updatedAt)}
|
||
</div>
|
||
</div>
|
||
<button
|
||
onClick={(e) => deleteThread(t.id, e)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
color: "#c0bab2",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<Trash2 style={{ width: 12, height: 12 }} />
|
||
</button>
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
|
||
{/* Messages */}
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
overflowY: "auto",
|
||
overflowX: "hidden",
|
||
padding: "16px 14px",
|
||
}}
|
||
>
|
||
{messages.length === 0 && !sending && (
|
||
<div
|
||
style={{ padding: "24px 14px", maxWidth: 640, margin: "0 auto" }}
|
||
>
|
||
<div style={{ display: "flex", gap: 12 }}>
|
||
<div
|
||
style={{
|
||
width: 28,
|
||
height: 28,
|
||
borderRadius: 6,
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
color: "#fff",
|
||
fontSize: "0.85rem",
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</div>
|
||
<div
|
||
style={{
|
||
background: "#fff",
|
||
border: "1px solid #e8e4dc",
|
||
padding: "14px 18px",
|
||
borderRadius: "0 12px 12px 12px",
|
||
fontSize: "0.9rem",
|
||
color: "#1a1a1a",
|
||
lineHeight: 1.6,
|
||
boxShadow: "0 1px 2px #1a1a1a05",
|
||
maxWidth: "85%",
|
||
}}
|
||
>
|
||
Welcome to {activeProjectName ? activeProjectName : "Vibn"}!
|
||
Tell me what you want to build and I'll scaffold it, run it in a
|
||
preview, and ship it when you say so.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{messages.map((msg, i) => (
|
||
<MessageBubble key={msg.id || i} msg={msg} />
|
||
))}
|
||
|
||
{sending && messages[messages.length - 1]?.role !== "assistant" && (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 0",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
{[0, 1, 2].map((i) => (
|
||
<span
|
||
key={i}
|
||
style={{
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: "50%",
|
||
background: "#c0bab2",
|
||
animation: `vibn-bounce 1.2s ease infinite ${i * 0.2}s`,
|
||
display: "inline-block",
|
||
}}
|
||
/>
|
||
))}
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
<div ref={messagesEndRef} />
|
||
</div>
|
||
|
||
{/* Input */}
|
||
<div
|
||
style={{
|
||
padding: "12px 14px",
|
||
borderTop: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{sending && <ActiveThinkingIndicator />}
|
||
{!mcpToken && (
|
||
<div
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#9a7b3a",
|
||
background: "#d4a04a12",
|
||
border: "1px solid #d4a04a30",
|
||
borderRadius: 6,
|
||
padding: "5px 10px",
|
||
marginBottom: 8,
|
||
lineHeight: 1.4,
|
||
}}
|
||
>
|
||
Read-only mode — add your MCP token in Settings to enable actions.
|
||
</div>
|
||
)}
|
||
<ProjectPreviewChatInputWrap unifiedShell={unifiedProjectShell}>
|
||
{(selectToggle) => (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
gap: 8,
|
||
alignItems: "center",
|
||
background: "#fff",
|
||
borderRadius: 10,
|
||
border: "1px solid #e8e4dc",
|
||
padding: "8px 10px",
|
||
boxShadow: "0 1px 3px #1a1a1a05",
|
||
}}
|
||
>
|
||
<textarea
|
||
ref={inputRef}
|
||
value={input}
|
||
onChange={(e) => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={
|
||
sending ? "Esc to stop generating…" : "Ask Vibn AI anything…"
|
||
}
|
||
rows={1}
|
||
disabled={!activeThread}
|
||
style={{
|
||
flex: 1,
|
||
border: "none",
|
||
outline: "none",
|
||
background: "transparent",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.5,
|
||
resize: "none",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
color: "#1a1a1a",
|
||
maxHeight: 120,
|
||
overflowY: "auto",
|
||
}}
|
||
onInput={(e) => {
|
||
const el = e.currentTarget;
|
||
el.style.height = "auto";
|
||
el.style.height = Math.min(el.scrollHeight, 120) + "px";
|
||
}}
|
||
/>
|
||
{selectToggle}
|
||
{(() => {
|
||
// While the AI is streaming or running tools, the button
|
||
// turns into a Stop control. Click → AbortController fires,
|
||
// server bails between rounds, partial text gets persisted.
|
||
const isActive = sending;
|
||
const canSend = !sending && input.trim() && activeThread;
|
||
return (
|
||
<button
|
||
type="button"
|
||
onClick={isActive ? cancelMessage : () => sendMessage()}
|
||
disabled={!isActive && !canSend}
|
||
aria-label={isActive ? "Stop generating" : "Send message"}
|
||
title={isActive ? "Stop generating (Esc)" : "Send"}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
background: isActive
|
||
? "#1a1a1a"
|
||
: canSend
|
||
? "#1a1a1a"
|
||
: "#e8e4dc",
|
||
color: isActive || canSend ? "#fff" : "#a09a90",
|
||
border: "none",
|
||
cursor: isActive || canSend ? "pointer" : "default",
|
||
transition: "all 0.15s",
|
||
position: "relative",
|
||
}}
|
||
>
|
||
{isActive ? (
|
||
<>
|
||
<Loader2
|
||
style={{
|
||
width: 15,
|
||
height: 15,
|
||
position: "absolute",
|
||
opacity: 0.35,
|
||
}}
|
||
className="animate-spin"
|
||
/>
|
||
<Square
|
||
style={{
|
||
width: 9,
|
||
height: 9,
|
||
fill: "#fff",
|
||
strokeWidth: 0,
|
||
}}
|
||
/>
|
||
</>
|
||
) : (
|
||
<Send style={{ width: 15, height: 15 }} />
|
||
)}
|
||
</button>
|
||
);
|
||
})()}
|
||
</div>
|
||
)}
|
||
</ProjectPreviewChatInputWrap>
|
||
</div>
|
||
</>
|
||
);
|
||
|
||
const structuralChatLoadingColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 14,
|
||
}}
|
||
>
|
||
<Loader2
|
||
className="animate-spin"
|
||
style={{ width: 22, height: 22, color: "#9c9590" }}
|
||
/>
|
||
<p style={{ fontSize: "0.84rem", color: "#6b6560", margin: 0 }}>
|
||
Signing you in…
|
||
</p>
|
||
</div>
|
||
);
|
||
|
||
const authHref = pathname
|
||
? `/auth?callbackUrl=${encodeURIComponent(pathname)}`
|
||
: "/auth";
|
||
|
||
const structuralChatSignedOutColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 12,
|
||
}}
|
||
>
|
||
<p
|
||
style={{
|
||
fontSize: "0.88rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
}}
|
||
>
|
||
Sign in to use Vibn AI
|
||
</p>
|
||
<p
|
||
style={{
|
||
fontSize: "0.76rem",
|
||
color: "#a09a90",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
maxWidth: 260,
|
||
lineHeight: 1.5,
|
||
}}
|
||
>
|
||
Preview and tabs still work here. Chat needs an account.
|
||
</p>
|
||
<Link
|
||
href={authHref}
|
||
style={{
|
||
marginTop: 4,
|
||
padding: "10px 18px",
|
||
borderRadius: 10,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
fontSize: "0.82rem",
|
||
fontWeight: 500,
|
||
textDecoration: "none",
|
||
}}
|
||
>
|
||
Sign in
|
||
</Link>
|
||
</div>
|
||
);
|
||
|
||
const structuralChatBody =
|
||
status === "loading"
|
||
? structuralChatLoadingColumn
|
||
: status !== "authenticated"
|
||
? structuralChatSignedOutColumn
|
||
: conversationColumn;
|
||
|
||
if (unifiedProjectShell) {
|
||
return (
|
||
<>
|
||
<PreviewBridgeProvider>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
background: "#fff",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
alignItems: "stretch",
|
||
flexShrink: 0,
|
||
height: 48,
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
boxSizing: "border-box",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
height: "100%",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
padding: "0 12px",
|
||
gap: 6,
|
||
boxSizing: "border-box",
|
||
borderRight: "1px solid #e8e4dc",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
width: "100%",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 5px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus style={{ width: 14, height: 14 }} />
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
alignItems: "stretch",
|
||
}}
|
||
>
|
||
<ProjectIconRail workspace={workspace} projectId={projectId} />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
borderRight: "1px solid #e8e4dc",
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{structuralChatBody}
|
||
</div>
|
||
<div
|
||
key={pathname}
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
overflow: "auto",
|
||
background: "#faf8f5",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{artifactSlot}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</PreviewBridgeProvider>
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</>
|
||
);
|
||
}
|
||
|
||
// ── Open panel ─────────────────────────────────────────────────────────────
|
||
// Structural mode: fill the parent column. Default mode: fixed slide-out
|
||
// anchored to the right edge of the viewport (legacy behavior).
|
||
return (
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
flex: 1,
|
||
minHeight: 0,
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
: {
|
||
position: "fixed",
|
||
right: 0,
|
||
top: 0,
|
||
bottom: 0,
|
||
zIndex: 999,
|
||
width: 380,
|
||
background: "#fff",
|
||
borderLeft: "1px solid #e8e4dc",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
boxShadow: "-4px 0 24px #1a1a1a08",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
}
|
||
>
|
||
{/* Header — structural: circle logo + threads; slide-out: wordmark */}
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
height: 48,
|
||
padding: "0 12px",
|
||
boxSizing: "border-box",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
gap: 6,
|
||
}
|
||
: {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "14px 16px",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}
|
||
}
|
||
>
|
||
{structural ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
) : (
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 6px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-lora),serif",
|
||
fontSize: "0.95rem",
|
||
fontWeight: 400,
|
||
color: "#1a1a1a",
|
||
letterSpacing: "-0.01em",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
Vibn AI
|
||
</span>
|
||
<ChevronDown
|
||
style={{
|
||
width: 13,
|
||
height: 13,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 6,
|
||
padding: "2px 8px",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 160,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
)}
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: structural ? "4px 5px" : "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus
|
||
style={{
|
||
width: structural ? 14 : 15,
|
||
height: structural ? 14 : 15,
|
||
}}
|
||
/>
|
||
</button>
|
||
{!structural && (
|
||
<button
|
||
type="button"
|
||
onClick={() => setOpen(false)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="Close"
|
||
>
|
||
<ChevronRight style={{ width: 15, height: 15 }} />
|
||
</button>
|
||
)}
|
||
</div>
|
||
</div>
|
||
|
||
{conversationColumn}
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: vibn\-frontend/app/api/chat/route.ts**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/app/api/chat/route.ts
|
||
```
|
||
/**
|
||
* POST /api/chat
|
||
*
|
||
* Streaming chat endpoint. Accepts a thread_id + user message,
|
||
* loads history, calls the configured chat model (Gemini or OpenAI-compatible e.g. DeepSeek), runs the tool loop,
|
||
* persists messages, and streams SSE back to the client.
|
||
*
|
||
* SSE event shapes:
|
||
* data: {"type":"text","text":"..."}
|
||
* data: {"type":"thinking","text":"..."} // model's first-person reasoning
|
||
* data: {"type":"tool_start","name":"...","args":{}}
|
||
* data: {"type":"tool_result","name":"...","result":"..."}
|
||
* data: {"type":"aborted"}
|
||
* data: {"type":"done"}
|
||
* data: {"type":"error","error":"..."}
|
||
*/
|
||
import { NextResponse } from "next/server";
|
||
import { authSession } from "@/lib/auth/session-server";
|
||
import { query } from "@/lib/db-postgres";
|
||
import { callVibnChat } from "@/lib/ai/vibn-chat-model";
|
||
import { VIBN_TOOL_DEFINITIONS, executeMcpTool } from "@/lib/ai/vibn-tools";
|
||
import {
|
||
detectKnownError,
|
||
formatRecoveryMessage,
|
||
} from "@/lib/ai/error-recovery";
|
||
import { autoExtractPlanUpdates } from "@/lib/ai/plan-extract";
|
||
import { listRecentSentryIssues } from "@/lib/integrations/sentry";
|
||
import {
|
||
ensureProjectRepoCloned,
|
||
commitAndPushIfDirty,
|
||
} from "@/lib/dev-container-git";
|
||
import { buildDesignKitPromptSection } from "@/lib/design-kits/for-ai";
|
||
import type { ChatMessage, ToolCall } from "@/lib/ai/gemini-chat";
|
||
|
||
// Path B chains routinely fire 7-10 tool calls in one user turn. 18
|
||
// gives enough headroom for complex workflows (scaffold → install →
|
||
// configure → start) while still capping runaway loops. When the cap
|
||
// IS hit, we emit a recovery summary instead of silent tool pills.
|
||
const MAX_TOOL_ROUNDS = 30;
|
||
|
||
let chatTablesReady = false;
|
||
async function ensureChatTables() {
|
||
if (chatTablesReady) return;
|
||
await query(
|
||
`
|
||
CREATE TABLE IF NOT EXISTS fs_chat_threads (
|
||
id TEXT PRIMARY KEY DEFAULT gen_random_uuid()::text,
|
||
user_id TEXT NOT NULL,
|
||
workspace TEXT NOT NULL DEFAULT '',
|
||
data JSONB NOT NULL DEFAULT '{}',
|
||
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
||
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||
);
|
||
CREATE INDEX IF NOT EXISTS fs_chat_threads_user_ws_idx
|
||
ON fs_chat_threads (user_id, workspace, updated_at DESC);
|
||
|
||
CREATE TABLE IF NOT EXISTS fs_chat_messages (
|
||
id BIGSERIAL PRIMARY KEY,
|
||
thread_id TEXT NOT NULL REFERENCES fs_chat_threads(id) ON DELETE CASCADE,
|
||
user_id TEXT NOT NULL,
|
||
data JSONB NOT NULL DEFAULT '{}',
|
||
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
||
);
|
||
CREATE INDEX IF NOT EXISTS fs_chat_messages_thread_idx
|
||
ON fs_chat_messages (thread_id, created_at ASC);
|
||
`,
|
||
[],
|
||
);
|
||
chatTablesReady = true;
|
||
}
|
||
|
||
export function buildSystemPrompt(
|
||
projects: any[],
|
||
workspace: string,
|
||
activeProject?: any,
|
||
): string {
|
||
const projectsText = projects.length
|
||
? projects
|
||
.map(
|
||
(p: any) =>
|
||
`- "${p.productName || p.name}" (id: ${p.id}, status: ${p.status || "defining"})${p.productVision ? ": " + p.productVision.slice(0, 120) : ""}`,
|
||
)
|
||
.join("\n")
|
||
: "(no projects yet)";
|
||
|
||
// When this thread is scoped to a project, surface a STRONG header
|
||
// at the top so the model treats `projectId` as resolved without the
|
||
// user having to name it. Falls through to the workspace-level mode
|
||
// (browse all projects) when activeProject is undefined.
|
||
// Pull plan artifacts (decisions + open tasks) so the AI doesn't ask
|
||
// the user to re-decide settled questions and knows what's queued up.
|
||
// Decisions are first-class: they encode the founder's intent and
|
||
// should be honored unless the user explicitly revisits one.
|
||
const plan = (activeProject?.plan ?? {}) as {
|
||
decisions?: { title: string; choice: string; why?: string }[];
|
||
tasks?: { text: string; status: "open" | "done" }[];
|
||
ideas?: { text: string }[];
|
||
};
|
||
const decisionsBlock = plan.decisions?.length
|
||
? `\n**Decisions already made for this project (DO NOT re-litigate unless the user asks):**\n${plan.decisions
|
||
.slice(0, 20)
|
||
.map(
|
||
(d) =>
|
||
`- ${d.title} → ${d.choice}${d.why ? ` (because: ${d.why})` : ""}`,
|
||
)
|
||
.join("\n")}\n`
|
||
: "";
|
||
const openTasks = (plan.tasks ?? [])
|
||
.filter((t) => t.status === "open")
|
||
.slice(0, 15);
|
||
const tasksBlock = openTasks.length
|
||
? `\n**Open tasks the user has captured:**\n${openTasks.map((t) => `- ${t.text}`).join("\n")}\n`
|
||
: "";
|
||
const ideasBlock = plan.ideas?.length
|
||
? `\n**Ideas parked (not commitments — surface only if relevant):**\n${plan.ideas
|
||
.slice(0, 10)
|
||
.map((i) => `- ${i.text}`)
|
||
.join("\n")}\n`
|
||
: "";
|
||
|
||
const briefBlock = (plan as any).brief
|
||
? `\n**[PROJECT BRIEF / SCOPE DOCUMENT]**\nThe user has uploaded a detailed project brief. You MUST read and adhere to these requirements when making architectural or product decisions:\n${(plan as any).brief.slice(0, 5000)}\n`
|
||
: "";
|
||
|
||
const designKitBlock = buildDesignKitPromptSection(activeProject);
|
||
|
||
const activeBlock = activeProject
|
||
? `\n## ACTIVE PROJECT — assume this for every tool call unless the user explicitly says otherwise
|
||
|
||
The user is currently looking at:
|
||
- Name: "${activeProject.productName || activeProject.name}"
|
||
- projectId: \`${activeProject.id}\`
|
||
- Slug: \`${activeProject.slug ?? "(none)"}\`
|
||
- Audience: ${activeProject.audience ?? "unspecified"}
|
||
- Vision: ${activeProject.productVision ? activeProject.productVision.slice(0, 1500) : "(not yet captured)"}
|
||
${activeProject.kickoff ? `- Created via: ${activeProject.kickoff.mode} (${JSON.stringify(activeProject.kickoff.sourceData).slice(0, 200)})` : ""}
|
||
${decisionsBlock}${tasksBlock}${ideasBlock}${designKitBlock ? `\n${designKitBlock}\n` : ""}
|
||
When you call tools that take a \`projectId\`, USE this id (\`${activeProject.id}\`) without asking. When the user says "this project" / "the app" / "deploy it" — they mean THIS project. Switch to a different project only if the user names one explicitly.
|
||
|
||
**Project repo is auto-cloned at \`/workspace/${activeProject.slug ?? "<slug>"}/\` inside the dev container.** That path is the project's Gitea repo. ALL code, docs, configs, and other artifacts you intend the user to see in the Product tab MUST live under that path. Anything you write outside it (e.g. \`/workspace/scratch\`, \`/workspace/some-cloned-other-repo\`) is treated as scratch and is invisible in the UI.
|
||
|
||
After every assistant turn, the harness automatically runs \`git add -A && git commit && git push\` against \`/workspace/${activeProject.slug ?? "<slug>"}/\`. You do NOT need to commit manually unless the user asks for a specific commit message or you want to checkpoint mid-turn. Don't apologize for "forgetting to commit" — the harness handles it.\n`
|
||
: "";
|
||
|
||
return `You are Vibn AI — the technical co-founder of every Vibn user. You turn ideas into shipped software. Treat their projects like they're your own.
|
||
|
||
You're talking to the owner of the "${workspace}" workspace. They have admin access to their Gitea org, a fleet of Coolify projects, and a persistent dev container per project. You can read and write any of it.
|
||
|
||
## Identity
|
||
You are a high-agency product engineer. You own the outcome. Continue until the user's goal is actually resolved unless you're blocked on missing info, proceeding would be unsafe, or the user changes direction. You are not answering questions; you are building with the user. Translate engineering complexity into product momentum.
|
||
|
||
## Stop at something the user can see
|
||
A turn that ends with "I scaffolded all the files" is a failure of judgment, even if the files are real. The natural stopping point is **a thing the user can click, open, or look at** — a running preview URL, a deployed app at its \`fqdn\`, a screenshot, a rendered preview of a doc, a passing test output they asked for. Code on disk is invisible; the user should never have to take your word for it that something works.
|
||
|
||
When the goal is "build me X," the stop point is **\`previewUrl\` from \`dev_server_start\` (or a deployed \`fqdn\` from \`apps_deploy\`) shared in the reply** — not "scaffolding complete." If you've written code and not yet started a server or shipped, you are not done. The exceptions: pure research/analysis tasks (deliver the doc + path), or when the user explicitly asked you to stop at a checkpoint.
|
||
|
||
If you genuinely can't reach a tangible artifact this turn (build is too long, environment isn't ready, missing decision from the user), say so explicitly: "Scaffolded all six services — next step is a 5-min docker compose build to get you a clickable preview. Want me to kick that off?" Make the gap visible and offer the next move. Don't dress up "I wrote files" as the finish line.
|
||
|
||
## Voice
|
||
- **Don't narrate single tool calls.** Skip "Okay, I'll read that file…" for a one-shot read. The user sees a tool tray; they don't need a play-by-play.
|
||
- **DO send a one-liner before every batch on a long chain.** If you're about to fire 3+ tool calls, or you're already 3+ rounds deep, send a single sentence first: "Starting the dev server now and tailing logs." Then call the tools. The user is staring at silent ✓ pills otherwise — that's the worst UX in the app.
|
||
- **Pack the post-tool summary into 1–3 punchy sentences:** what landed, the specific result the user needs (URL, SHA, env value, error), and the obvious next step. Don't recap every tool — they saw the tray.
|
||
- **NEVER end your work silently.** When you are done running tools and your turn is ending, you MUST send a final conversational summary so the user knows you're finished. (e.g., "Done. I built out the onboarding flow and started the dev server at ..."). NEVER end your turn without a final text message.
|
||
- **Never end a turn silent.** If you ran tools, you owe the user a sentence about what happened. Never finish a turn with content_len = 0.
|
||
- **Have an opinion.** "Postgres or Mongo?" — pick one in a sentence and proceed. Founders need decisions, not menus. List options only if the user asks or tradeoffs genuinely matter.
|
||
- **Push back when it matters.** Refuse "deploy to prod without backups." Suggest Pipedream over n8n once if it fits better, then defer. Yes-machines ship broken software.
|
||
- **Surface adjacent risks unprompted.** Missing env var after a deploy, DNS not propagated yet, autosave hasn't fired in 30 min — say so. You're protecting their work.
|
||
- **Be honest about uncertainty.** "Best guess is X — want me to verify with Y?" beats false confidence. If a tool result is weird, say it's weird.
|
||
- **Length matches stakes.** "What time is it" → one line. "Move my user DB to a new region" → paragraph plus migration plan. Don't pad; don't truncate.
|
||
- **Adapt to the user.** If they seem uncertain, narrow the decision space and recommend the next move. If they're experienced, move faster and assume more context.
|
||
- **Markdown sparingly.** Backticks for code, paths, IDs, URLs always. Headings only at 3+ sections. Bullets for genuinely parallel items. Otherwise prose.
|
||
|
||
## Decision defaults
|
||
When multiple options exist, default to one recommendation. Bias toward: Postgres over Mongo, monoliths over microservices, Next.js over bespoke stacks, official templates over custom infra, modifying existing systems over rewrites, fewer moving parts over more. Escalate complexity only when requirements demand it.
|
||
|
||
## How Vibn is structured
|
||
- **Workspace** ("${workspace}") — tenant boundary. Owns the Gitea org and Coolify projects. You can only see/touch resources in this workspace.
|
||
- **Project** — an initiative (e.g. "Twenty CRM", "My Blog") with its own isolated Coolify project. A project has planning state (vision, decisions from \`projects_get\`) and live state (apps + services from \`projects_get → possibleDeployments[]\` and \`apps_list { projectId }\`) — they're one system, never describe them as separate.
|
||
|
||
## Common questions → tools
|
||
- "What is project X?" → \`projects_get { projectId }\` (planning, deployments, persisted **designKit** + resolved tokens when present).
|
||
- "What's running / has a domain?" → \`apps_list\` (workspace-wide) or \`apps_list { projectId }\`.
|
||
- "Show logs / containers / env" → resolve uuid via \`apps_list\`, then \`apps_logs\` / \`apps_containers_list\` / \`apps_envs_list\`.
|
||
- "Find an OSS X" → \`github_search\` (include \`license:mit\` by default), then \`github_file\` to read README / docker-compose / design system entry points.
|
||
- "What do the docs say about Y?" → \`http_fetch\`.
|
||
|
||
## How to deploy
|
||
|
||
**Third-party app (Twenty CRM, n8n, Ghost, Supabase, Pocketbase, etc.):** \`apps_templates_search { query }\` → \`apps_create { projectId, name, template, domain }\` → watch \`apps_get { uuid }\` until \`fqdn\` is set.
|
||
|
||
**Custom Docker image:** \`apps_create { projectId, name, dockerImage, domain, envsJson }\` → \`apps_deploy { uuid }\` if it doesn't auto-deploy.
|
||
|
||
**Database:** \`databases_create { projectId, name, type }\` (postgres, mysql, redis, mongodb, mariadb, dragonfly, clickhouse, keydb) → \`databases_get { uuid }\` returns the connection URL → inject via \`apps_envs_set\`.
|
||
|
||
**Domain:** \`domains_search { query }\` → \`domains_register { domain }\` (uses workspace billing) → \`apps_domains_set { uuid, domains }\`. DNS + Traefik wire automatically.
|
||
|
||
## Writing code — dev container is the default
|
||
Each project has a persistent \`vibn-dev\` container. Edit files via \`fs_*\` and run commands via \`shell_exec\`. Sub-second feedback vs ~5 min Gitea-push-to-prod.
|
||
|
||
**Start a coding session:** \`devcontainer_ensure { projectId }\` (idempotent; first call ~10s, then instant).
|
||
|
||
**Iterate:**\n- \`shell_exec { projectId, command }\` — anything: \`ls\`, \`npm install\`, \`npm test\`, \`npx create-next-app .\`, \`git status\`. Cwd defaults to \`/workspace\`. Node (LTS), Python 3.12, and Go 1.23 are pre-installed — no setup needed.\n- \`fs_read\` / \`fs_write\` / \`fs_edit { path, oldString, newString }\` (include 2–3 lines of context in \`oldString\` for uniqueness; fails fast if missing or non-unique).\n- \`fs_glob\` / \`fs_grep\` (ripgrep, respects .gitignore) / \`fs_list\` / \`fs_delete\`.\n
|
||
|
||
**Dev servers (preview URL via \`*.preview.vibnai.com\` wildcard):**
|
||
- \`dev_server_start { projectId, command, port?, name? }\` is a **one-shot** call. It kills old processes on the port, checks the port is free, sets HOST=0.0.0.0 + PORT, launches your command, and returns a clickable \`previewUrl\`. Do NOT pre-flight with \`devcontainer_status\`, \`fs_list\`, \`dev_server_logs\`, or manual \`shell_exec\` kills — the function handles all of that. Just call it. The error tells you what to fix: \`PORT_BUSY\` → pick 3001–3009; \`npm: command not found\` → project needs \`npm install\` first.
|
||
- \`port\` defaults to 3000, range 3000–3009 (10 Traefik routers pre-allocated per project).
|
||
- **Directory:** The command runs from the root \`/workspace\` directory, but your project code is inside \`/workspace/${activeProject.slug ?? "<slug>"}/\`. You MUST \`cd\` into your project folder first! Example: \`command: "cd ${activeProject.slug ?? "<slug>"} && npm run dev"\`.
|
||
- \`dev_server_stop\` / \`dev_server_list\` / \`dev_server_logs\` — use only AFTER a failed start, and only to diagnose the error the function returned. Never on success.
|
||
|
||
**HMR through the proxy (apply when scaffolding):**
|
||
- **Vite (verified working):** in \`vite.config\` set \`server: { host: '0.0.0.0', port: <3000-3009>, strictPort: true, hmr: { clientPort: 443, protocol: 'wss', host: '<the previewUrl host, no protocol>' } }\`. The \`hmr.host\` is REQUIRED — without it Vite's HMR client can guess the wrong host and the WS handshake fails through Traefik. Default localhost binding looks fine locally but breaks HMR through the proxy.
|
||
- **Next dev:** \`next dev -p 3000 -H 0.0.0.0\` (WSS HMR works automatically through the proxy without extra config).
|
||
- **Express / plain Node:** bind \`0.0.0.0\` (we set \`HOST=0.0.0.0\` env, but verify your framework respects it).
|
||
|
||
**Build-me-X recipe:** \`devcontainer_ensure\` → \`apps_templates_scaffold { templateName }\` (if matching "dashboard" or "pitch-deck") OR \`shell_exec npx create-next-app@latest . --yes\` → \`fs_edit\` / \`fs_write\` to customize → **wire Sentry (see below)** → \`dev_server_start { command: 'npm run dev', port: 3000 }\` and **share the previewUrl in your reply — that's the turn's stopping point**. When the user says "ship it", call \`ship { projectId, commitMsg }\` (commits to Gitea and triggers prod deploy in one shot). If a project is multi-service (frontend + API + worker), pick the user-facing service (usually the frontend) and start ITS dev server first, even if the others aren't done yet — a clickable shell beats a complete-but-invisible stack.
|
||
|
||
**Sentry is auto-provisioned per Vibn project.** When you scaffold a Next.js or Vite app, wire Sentry from day one so the user gets de-minified error capture + Session Replay on first deploy. The DSN (\`NEXT_PUBLIC_SENTRY_DSN\`) and shared org auth token (\`SENTRY_AUTH_TOKEN\`) are injected into the Coolify app's env automatically by \`apps_create\` — you don't set them. Get the project's Sentry slug from \`projects_get { projectId }\` (field: \`sentry.slug\`); pass it to \`withSentryConfig({ org: "vibnai", project: "<slug>", ... })\`. The reference recipe (instrumentation.ts, instrumentation-client.ts, app/global-error.tsx, next.config.ts wrapper, Dockerfile ARG declarations) is in \`vibn-frontend/lib/scaffold/sentry-snippets.ts\` — read it once via \`fs_*\` if you're unsure, then copy the snippets into the user's project verbatim. Skip Sentry for non-app projects (CLIs, library-only repos).
|
||
|
||
**Testing Auth & Protected Routes:** Do NOT attempt to verify signup flows or authenticated routes by making HTTP requests (e.g. \`curl\` or \`http_fetch\`) to the dev server yourself. The app is protected by NextAuth or similar session cookies which you do not have. Just write the code, start the dev server via \`dev_server_start\`, and provide the user the clickable \`previewUrl\` so they can test it themselves in their browser. If you hit a redirect/401, do NOT assume the server is broken and loop on restarting it.
|
||
|
||
**Design Critique / Visual QA Tool:**
|
||
- \`request_visual_qa { targetPath }\` runs a fast background AI agent to critique a UI file (like \`page.tsx\`, \`layout.tsx\`, or \`.css\`) against a strict 5-dimensional design rubric (Layout, Spacing, Contrast, Hierarchy, Responsiveness).
|
||
- You MUST call this tool whenever your turn involves creating or heavily modifying visual User Interface code before you return the \`previewUrl\` to the user.
|
||
- If the tool returns a failure with actionable issues (e.g., "missing mobile padding" or "using hardcoded colors instead of CSS variables"), you MUST use \`fs_edit\` to fix those specific issues before ending your turn.
|
||
- Do NOT use this tool if you only modified backend code, SQL, config files, or non-visual logic.
|
||
|
||
**Rules:**
|
||
- Stay under \`/workspace\`. \`fs_*\` enforce this; use \`shell_exec\` deliberately for system paths.
|
||
- Dev container has no route to internal Vibn services (vibn-postgres, etc.) by design.
|
||
- On non-zero \`shell_exec\`, READ STDERR before retrying. Form a hypothesis. Don't loop.
|
||
|
||
## Gitea (one-time setup only)
|
||
For NEW repos / branches: \`gitea_repos_list\`, \`gitea_repo_get\`, \`gitea_repo_create\`, \`gitea_branches_list\`, \`gitea_branch_create\`. For editing files in existing repos, ALWAYS use \`fs_*\` in the dev container — \`ship\` will commit and push.
|
||
|
||
## Troubleshooting
|
||
- **Dev container stuck provisioning (>120s)**: \`devcontainer_status\` returns \`likelyFailed: true\` and a \`coolifyStatus\` field with Coolify's view. If \`blockedReason\` is set, TELL THE USER the specific reason ("SSH not configured", "Coolify deploy failed: image pull error") instead of continuing to poll. Do NOT loop on \`devcontainer_status\` — a stuck container will NOT self-heal. If the status says "failed" or "error", advise the user to check their Coolify dashboard or regenerate the project.
|
||
- "exited (1)" / deploy stuck → \`apps_logs { uuid }\` + \`apps_containers_list { uuid }\`. Usual: missing env, wrong port, image pull fail.
|
||
- 502 / "no available server" → \`apps_get\`; if \`fqdn\` is empty, attach a domain.
|
||
- "tenant" / "does not belong to" → uuid not in this workspace. Re-list with \`apps_list\`.
|
||
- Compose stack weird → \`apps_repair { uuid }\` re-applies Traefik labels + port forwarding.
|
||
- Nuke and redeploy → \`apps_delete { uuid, confirm }\` (\`confirm\` must equal exact name; fetch via \`apps_get\` first), then re-create.
|
||
|
||
## Plan tab — be the user's scribe
|
||
The Plan tab (Vision · Tasks · Decisions · Ideas) is the project's persistent memory. Capture things in the moment so the user doesn't context-switch.
|
||
- \`plan_decision_log\` PROACTIVELY when a non-trivial choice settles (DB engine, auth, framework, region, pricing, brand voice). Don't ask permission. One-liner ack ("logged Postgres"), move on.
|
||
- \`plan_task_add\` when you commit to multi-step work, the user says "remind me to X", or a chain ends with an obvious user follow-up (add Stripe webhook URL). One task per real next-action.
|
||
- \`plan_task_edit\` to update a task or change its status. Put a task in "review" status when you finish it, unless the user explicitly said it is "done".
|
||
- \`plan_idea_add\` sparingly, only for something worth remembering that isn't a task or decision.
|
||
- \`plan_vision_set\` when the user articulates or refines what they're building. The vision is your north star.
|
||
|
||
## Hard rules (non-negotiable)
|
||
- ALWAYS pass \`projectId\` to \`apps_create\` / \`databases_create\`. Infer from active project, last-mentioned, or single-project context — only ask if genuinely ambiguous.
|
||
- ALWAYS \`apps_list { projectId }\` BEFORE \`apps_create\` (it's idempotent and returns \`alreadyExisted: true\`, but checking shows you're being thoughtful, not deploy-and-hope).
|
||
- ALWAYS \`apps_templates_search\` BEFORE \`apps_create\` for known third-party apps. Hand-rolling a Dockerfile when a template exists is how supply-chain bugs ship.
|
||
- **NEVER delete-and-recreate to escape an error.** When a deploy fails with "Conflict. The container name … is already in use" or any orphan-container symptom, recovery is: \`apps_unstick { uuid }\` → \`apps_deploy { uuid }\`. Deleting the service forks a duplicate stack with a new uuid AND leaves the orphan running. We've shipped 4 orphan twenty-* services this way before. Don't repeat it.
|
||
- **If a deploy fails twice with the same error, STOP.** Surface the error and the two attempts; ask the user.
|
||
- **Tool results are authoritative; conversation history is not.** If a tool contradicts something you said earlier, DISCARD your prior claim and state the new ground truth. ("X is actually healthy — my earlier read was stale.") Do not paper over the contradiction.
|
||
- **Anchor on current state before troubleshooting.** When the user reports an error, your FIRST tool call is a current-state read: \`apps_get { uuid }\` for an app, \`databases_get { uuid }\` for a DB, \`apps_logs { uuid, lines: 50 }\` for runtime errors. The world has probably moved since they typed.
|
||
- **Trust idempotency.** When \`apps_create\` / \`databases_create\` returns \`alreadyExisted: true\`, your job is done — use the returned uuid and proceed.
|
||
- Destructive ops (\`*_delete\`, \`*_volumes_wipe\`) require \`confirm\` equal to the resource's exact name (fetch via \`*_get\` first). Confirm with the user before irreversible deletes unless they explicitly said "delete X".
|
||
- Long-running ops (deploys, DNS, DB provisioning) take 1–5 min — tell the user up front. Don't tight-loop polling.
|
||
- After \`ship\` or \`apps_deploy\`, the result is authoritative. Don't call \`gitea_*\` / \`shell_exec\` / \`apps_*\` to "verify" — read the response and report.
|
||
- Never fake success. Never imply something worked if it didn't.
|
||
|
||
${activeBlock}## Current workspace projects
|
||
${projectsText}
|
||
|
||
Today's date: ${new Date().toLocaleDateString("en-US", { weekday: "long", year: "numeric", month: "long", day: "numeric" })}.`;
|
||
}
|
||
|
||
export async function POST(request: Request) {
|
||
await ensureChatTables();
|
||
|
||
const session = await authSession();
|
||
if (!session?.user?.email) {
|
||
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
|
||
}
|
||
|
||
let body: {
|
||
thread_id: string;
|
||
message: string;
|
||
workspace: string;
|
||
mcp_token?: string;
|
||
};
|
||
try {
|
||
body = await request.json();
|
||
} catch {
|
||
return NextResponse.json({ error: "Invalid JSON" }, { status: 400 });
|
||
}
|
||
|
||
const { thread_id, message, workspace, mcp_token } = body;
|
||
if (!thread_id || !message?.trim()) {
|
||
return NextResponse.json(
|
||
{ error: "thread_id and message are required" },
|
||
{ status: 400 },
|
||
);
|
||
}
|
||
|
||
const email = session.user.email;
|
||
|
||
// Verify thread belongs to user, and capture its project scope (if any).
|
||
const threads = await query<{ id: string; project_id: string | null }>(
|
||
`SELECT id, project_id FROM fs_chat_threads WHERE id = $1 AND user_id = $2`,
|
||
[thread_id, email],
|
||
);
|
||
if (!threads.length) {
|
||
return NextResponse.json({ error: "Thread not found" }, { status: 404 });
|
||
}
|
||
const threadProjectId = threads[0].project_id;
|
||
|
||
// Load message history (last 40 messages)
|
||
const rows = await query<any>(
|
||
`SELECT data FROM fs_chat_messages WHERE thread_id = $1 ORDER BY created_at DESC LIMIT 40`,
|
||
[thread_id],
|
||
);
|
||
// Strip toolCalls from historical assistant messages because tool
|
||
// responses are not persisted between turns. Without the matching
|
||
// tool messages, OpenAI-compatible APIs (DeepSeek, etc.) reject the
|
||
// conversation with: "An assistant message with 'tool_calls' must be
|
||
// followed by tool messages responding to each 'tool_call_id'."
|
||
// Gemini silently tolerates stale toolCalls, so we only hit this on
|
||
// non-Gemini providers.
|
||
const history: ChatMessage[] = rows.reverse().map((r: any) => {
|
||
const msg = r.data;
|
||
if (msg.role === "assistant" && msg.toolCalls?.length) {
|
||
msg.toolCalls = undefined;
|
||
}
|
||
if (typeof msg.content === "string") {
|
||
msg.content = msg.content
|
||
.replace(/<tool_calls>[\s\S]*?<\/tool_calls>/g, "")
|
||
.replace(/<think>[\s\S]*?<\/think>/g, "")
|
||
.trim();
|
||
}
|
||
return msg;
|
||
});
|
||
|
||
// Add user message
|
||
const userMsg: ChatMessage = { role: "user", content: message.trim() };
|
||
history.push(userMsg);
|
||
await query(
|
||
`INSERT INTO fs_chat_messages (thread_id, user_id, data) VALUES ($1, $2, $3)`,
|
||
[thread_id, email, JSON.stringify(userMsg)],
|
||
);
|
||
|
||
// Update thread updatedAt
|
||
await query(
|
||
`UPDATE fs_chat_threads SET updated_at = NOW(), data = data || $2 WHERE id = $1`,
|
||
[thread_id, JSON.stringify({ updatedAt: new Date().toISOString() })],
|
||
);
|
||
|
||
// Load projects for system prompt context
|
||
const projectRows = await query<any>(
|
||
`SELECT p.data FROM fs_projects p
|
||
JOIN fs_users u ON u.id = p.user_id
|
||
WHERE u.data->>'email' = $1
|
||
ORDER BY (p.data->>'updatedAt') DESC NULLS LAST LIMIT 20`,
|
||
[email],
|
||
);
|
||
const projects = projectRows.map((r: any) => r.data);
|
||
|
||
// If the thread is project-scoped, pull the active project's data
|
||
// (preferring fs_projects since the projects array is capped at 20).
|
||
let activeProject: any = null;
|
||
if (threadProjectId) {
|
||
const found = projects.find((p: any) => p.id === threadProjectId);
|
||
if (found) {
|
||
activeProject = found;
|
||
} else {
|
||
const r = await query<{ data: any }>(
|
||
`SELECT p.data FROM fs_projects p
|
||
JOIN fs_users u ON u.id = p.user_id
|
||
WHERE p.id = $1 AND u.data->>'email' = $2 LIMIT 1`,
|
||
[threadProjectId, email],
|
||
);
|
||
if (r[0]?.data) activeProject = r[0].data;
|
||
}
|
||
}
|
||
|
||
let systemPrompt = buildSystemPrompt(projects, workspace, activeProject);
|
||
|
||
// Sentry-as-product Stage 4: auto-surface unresolved errors at
|
||
// chat-turn start. We pull the last 6 hours' unresolved issues
|
||
// for the active project; if anything has fired ≥2 times, we
|
||
// append a [PROJECT HEALTH] block to the system prompt so the
|
||
// AI is aware before the user even speaks. The AI decides
|
||
// whether to mention them — usually yes if the user's first
|
||
// message touches the affected area, otherwise a one-line FYI.
|
||
// Single-occurrence errors are filtered out to avoid noise from
|
||
// bots / one-off network blips.
|
||
if (activeProject?.id) {
|
||
try {
|
||
const issues = await listRecentSentryIssues(activeProject.id, {
|
||
sinceHours: 6,
|
||
limit: 5,
|
||
});
|
||
const noteworthy = issues.filter((i) => i.count >= 2);
|
||
if (noteworthy.length > 0) {
|
||
const lines = noteworthy.map((i) => {
|
||
const culprit = i.culprit ? ` — ${i.culprit}` : "";
|
||
return `- ${i.title} (×${i.count}, last seen ${i.lastSeen})${culprit}`;
|
||
});
|
||
const healthBlock =
|
||
`\n\n[PROJECT HEALTH — last 6 hours]\n` +
|
||
`${noteworthy.length} unresolved Sentry issue${noteworthy.length === 1 ? "" : "s"}, count ≥ 2 (one-offs filtered):\n` +
|
||
lines.join("\n") +
|
||
`\n\nIf the user's message is about something that's broken, prefer the matching issue's stack trace over guessing — call \`project_error_detail { projectId, issueId }\` to fetch it. ` +
|
||
`If the user's message is unrelated to these errors, you MAY proactively surface a one-liner ("FYI: X has been failing for users — want me to look?") but do not derail their actual question.`;
|
||
systemPrompt += healthBlock;
|
||
}
|
||
} catch (err) {
|
||
console.warn("[chat] auto-surface Sentry errors failed (non-fatal)", err);
|
||
}
|
||
}
|
||
|
||
// Make sure the project's Gitea repo is cloned into the dev
|
||
// container at /workspace/<slug>/ before the AI runs any
|
||
// filesystem-mutating tools. Without this, anything the AI writes
|
||
// gets stranded in a scratch volume and is invisible in the
|
||
// Product/Hosting/Infrastructure tabs (those tabs read from Gitea
|
||
// and Coolify, not from the dev container's volume).
|
||
//
|
||
// We fire-and-forget on existing projects (the clone is a fast
|
||
// no-op when present) and only await on projects that don't have
|
||
// a dev container yet — there the AI is about to call
|
||
// ensureDevContainer + shell.exec, and we need the repo on disk
|
||
// before that exec lands so the AI's writes go into the project
|
||
// repo instead of an empty /workspace.
|
||
if (
|
||
activeProject?.id &&
|
||
activeProject?.slug &&
|
||
typeof activeProject?.giteaCloneUrl === "string"
|
||
) {
|
||
void ensureProjectRepoCloned({
|
||
projectId: activeProject.id,
|
||
projectSlug: activeProject.slug,
|
||
giteaCloneUrl: activeProject.giteaCloneUrl,
|
||
}).catch((err) => {
|
||
console.warn(
|
||
"[chat] pre-loop ensureProjectRepoCloned failed (non-fatal)",
|
||
err,
|
||
);
|
||
});
|
||
}
|
||
|
||
// Base URL for internal MCP calls — pinned to the canonical origin,
|
||
// not the incoming Host header (which can be spoofed).
|
||
const baseUrl =
|
||
process.env.NODE_ENV === "development"
|
||
? "http://localhost:3000"
|
||
: process.env.NEXT_PUBLIC_SITE_URL ||
|
||
process.env.VERCEL_URL ||
|
||
"https://vibnai.com";
|
||
|
||
// Honor client-side abort (Stop button). When the user clicks Stop
|
||
// the browser's AbortController fires `request.signal.aborted` and
|
||
// the fetch stream is closed; we use it as a polite checkpoint
|
||
// between rounds and tool calls so we (a) don't keep paying Gemini
|
||
// for tokens the user no longer wants and (b) persist whatever the
|
||
// assistant produced before the cancel.
|
||
const clientSignal = request.signal;
|
||
|
||
// Stream response
|
||
const encoder = new TextEncoder();
|
||
const stream = new ReadableStream({
|
||
async start(controller) {
|
||
let streamClosed = false;
|
||
function emit(chunk: object) {
|
||
if (streamClosed) return;
|
||
try {
|
||
controller.enqueue(
|
||
encoder.encode(`data: ${JSON.stringify(chunk)}\n\n`),
|
||
);
|
||
} catch {
|
||
// controller may have been closed by the abort handler
|
||
streamClosed = true;
|
||
}
|
||
}
|
||
function safeClose() {
|
||
if (streamClosed) return;
|
||
streamClosed = true;
|
||
try {
|
||
controller.close();
|
||
} catch {}
|
||
}
|
||
|
||
let messages = [...history];
|
||
let round = 0;
|
||
let assistantText = "";
|
||
// Per-round text segments. The model emits one `resp.text` per
|
||
// tool-loop round; we used to concatenate them all into one
|
||
// `assistantText` blob and render that as a single chat bubble.
|
||
// That made multi-round turns look like one giant run-on
|
||
// paragraph ("now.Spinning up...first boot...The dev container
|
||
// is ready!" with no breaks). Keeping them separate on the
|
||
// server lets the client render each as its own bubble and
|
||
// restores the segmentation on reload.
|
||
const assistantTextSegments: string[] = [];
|
||
const assistantToolCalls: ToolCall[] = [];
|
||
let aborted = clientSignal.aborted;
|
||
const onAbort = () => {
|
||
aborted = true;
|
||
};
|
||
clientSignal.addEventListener("abort", onAbort);
|
||
|
||
// Track per-turn signals we use for loop detection and silent-stretch
|
||
// detection. The model has a strong tendency to grind through a
|
||
// dozen+ tool calls in total silence (the user just sees ✓ pills
|
||
// pile up); both safeguards below break that pattern.
|
||
const toolFingerprints: string[] = [];
|
||
let roundsSinceText = 0;
|
||
let loopBreakReason: string | null = null;
|
||
|
||
try {
|
||
// Tool-calling loop: use non-streaming so thought_signature is
|
||
// always present in the complete response (required by thinking models).
|
||
while (round < MAX_TOOL_ROUNDS) {
|
||
if (aborted) break;
|
||
round++;
|
||
|
||
const toolDefs = mcp_token ? VIBN_TOOL_DEFINITIONS : [];
|
||
|
||
// Every 4 silent rounds, nudge the model to surface a one-liner
|
||
// status before continuing. This is the user's only signal of
|
||
// life when a tool chain runs long.
|
||
let extraSystem =
|
||
roundsSinceText >= 4
|
||
? "\n\n[STATUS NUDGE] You have run several tool calls without sending the user any text. Before any more tool calls, send ONE short sentence describing what you are currently working on and why. The user is staring at a wall of tool pills and needs a signal of life."
|
||
: "";
|
||
|
||
if (MAX_TOOL_ROUNDS - round <= 3) {
|
||
extraSystem += `\n\n[WARNING] You only have ${MAX_TOOL_ROUNDS - round} tool calls left before you are forcefully terminated. Stop exploring, make your final edits, and write your final response to the user NOW.`;
|
||
}
|
||
|
||
const resp = await callVibnChat({
|
||
systemPrompt: systemPrompt + extraSystem,
|
||
messages,
|
||
tools: toolDefs,
|
||
temperature: 0.7,
|
||
});
|
||
|
||
if (resp.error) {
|
||
emit({ type: "error", error: resp.error });
|
||
safeClose();
|
||
return;
|
||
}
|
||
|
||
// Stream user-facing text to client
|
||
if (resp.text) {
|
||
assistantText += (assistantText ? "\n\n" : "") + resp.text;
|
||
assistantTextSegments.push(resp.text);
|
||
emit({ type: "text", text: resp.text });
|
||
roundsSinceText = 0;
|
||
} else if (resp.toolCalls.length) {
|
||
roundsSinceText++;
|
||
}
|
||
|
||
// Stream the model's reasoning narration as a separate SSE
|
||
// event type. We pay for thinking tokens whether or not we
|
||
// ask for them, so making them visible is free transparency
|
||
// — and it cures the "tool tray with no narrative" feel.
|
||
if (resp.thoughts) {
|
||
emit({ type: "thinking", text: resp.thoughts });
|
||
}
|
||
|
||
// Announce tool calls
|
||
for (const tc of resp.toolCalls) {
|
||
assistantToolCalls.push(tc);
|
||
emit({ type: "tool_start", name: tc.name, args: tc.args });
|
||
}
|
||
|
||
// Save assistant turn
|
||
messages.push({
|
||
role: "assistant",
|
||
content: resp.text,
|
||
toolCalls: resp.toolCalls.length ? resp.toolCalls : undefined,
|
||
});
|
||
|
||
if (!resp.toolCalls.length) break;
|
||
if (aborted) break;
|
||
|
||
// Loop detection. If the model fires the same tool with the
|
||
// same first-key arg 3+ times in this turn, the user is
|
||
// watching it spin. Bail out, hand control back to the user
|
||
// with the last tool result as context. The classic case:
|
||
// dev_server.start → logs → stop → start → logs → stop → ...
|
||
for (const tc of resp.toolCalls) {
|
||
const argSig =
|
||
tc.args && typeof tc.args === "object"
|
||
? JSON.stringify(tc.args).slice(0, 120)
|
||
: "";
|
||
toolFingerprints.push(`${tc.name}|${argSig}`);
|
||
}
|
||
const last8 = toolFingerprints.slice(-8);
|
||
const counts = new Map<string, number>();
|
||
for (const fp of last8) counts.set(fp, (counts.get(fp) ?? 0) + 1);
|
||
const repeated = [...counts.entries()].find(([, n]) => n >= 3);
|
||
if (repeated) {
|
||
loopBreakReason = `Same call (${repeated[0].split("|")[0]}) fired ${repeated[1]}× in a row`;
|
||
}
|
||
|
||
// Execute tool calls and add results. OpenAI-compatible APIs
|
||
// (DeepSeek, etc.) require every tool_call_id to be answered with
|
||
// a tool message before any user/assistant message — so recovery
|
||
// nudges must run AFTER all tools from this assistant turn.
|
||
const recoveryLines: string[] = [];
|
||
for (const tc of resp.toolCalls) {
|
||
if (aborted) break;
|
||
const result = mcp_token
|
||
? await executeMcpTool(
|
||
tc.name,
|
||
tc.args,
|
||
mcp_token,
|
||
baseUrl,
|
||
activeProject?.id,
|
||
)
|
||
: JSON.stringify({ error: "No MCP token — read-only mode." });
|
||
|
||
emit({
|
||
type: "tool_result",
|
||
name: tc.name,
|
||
result: result.slice(0, 500),
|
||
});
|
||
|
||
messages.push({
|
||
role: "tool",
|
||
content: result,
|
||
toolCallId: tc.id,
|
||
toolName: tc.name,
|
||
thoughtSignature: tc.thoughtSignature,
|
||
});
|
||
|
||
const recovery = detectKnownError(result);
|
||
if (recovery) recoveryLines.push(formatRecoveryMessage(recovery));
|
||
}
|
||
for (const line of recoveryLines) {
|
||
messages.push({ role: "user", content: line });
|
||
}
|
||
|
||
if (loopBreakReason) break;
|
||
}
|
||
|
||
// If the user clicked Stop, surface the cancel marker so the
|
||
// client renders "(stopped by user)" inline with the partial
|
||
// assistant message, then skip the round-cap recovery summary
|
||
// (we shouldn't pay Gemini for a turn the user just canceled).
|
||
if (aborted) {
|
||
const stopMarker = assistantText
|
||
? "\n\n_(stopped by user)_"
|
||
: "_(stopped by user before any response)_";
|
||
assistantText += stopMarker;
|
||
assistantTextSegments.push(stopMarker.trimStart());
|
||
emit({ type: "text", text: stopMarker });
|
||
emit({ type: "aborted" });
|
||
}
|
||
|
||
// If the loop ended with the user staring at a tool tray and no
|
||
// narrative — whether because we hit MAX_TOOL_ROUNDS, broke a
|
||
// detected loop, or the model voluntarily stopped emitting tools
|
||
// without ever writing text — force one final no-tools summary
|
||
// so we never abandon the user with silent ✓ pills. Confirmed
|
||
// failure mode in prod: turn persisted with content_len=0 and
|
||
// 20 toolCalls, user had to re-prompt to get any answer.
|
||
const lastTurnHadTools =
|
||
messages.length > 0 && messages[messages.length - 1].role === "tool";
|
||
const needsRecovery =
|
||
!aborted &&
|
||
lastTurnHadTools &&
|
||
(round >= MAX_TOOL_ROUNDS ||
|
||
!!loopBreakReason ||
|
||
assistantText.trim().length === 0);
|
||
|
||
if (needsRecovery) {
|
||
const reason = loopBreakReason
|
||
? `LOOP DETECTED: ${loopBreakReason}. Stop trying that approach. `
|
||
: round >= MAX_TOOL_ROUNDS
|
||
? "You hit the tool-round cap. "
|
||
: "";
|
||
try {
|
||
const summary = await callVibnChat({
|
||
systemPrompt:
|
||
systemPrompt +
|
||
`\n\n[RECOVERY] ${reason}Send the user 1–3 short sentences right now: (a) what you actually accomplished or learned, (b) the specific blocker (last error message verbatim if there is one), (c) what you'll try next OR a question for the user. Do NOT call any tools.`,
|
||
messages,
|
||
tools: [],
|
||
temperature: 0.3,
|
||
});
|
||
if (summary.text && summary.text.trim()) {
|
||
assistantText += (assistantText ? "\n\n" : "") + summary.text;
|
||
assistantTextSegments.push(summary.text);
|
||
emit({ type: "text", text: summary.text });
|
||
} else {
|
||
// Gemini returned empty — fall back to a deterministic
|
||
// status so the user never sees silent ✓ pills.
|
||
const fallback = loopBreakReason
|
||
? `I hit a loop while working on this — ${loopBreakReason}. Want me to try a different approach, or do you want to take a look?`
|
||
: `I ran a chain of ${assistantToolCalls.length} tool calls but didn't reach a clean stopping point. Want me to keep going, or take a different angle?`;
|
||
assistantText += (assistantText ? "\n\n" : "") + fallback;
|
||
assistantTextSegments.push(fallback);
|
||
emit({ type: "text", text: fallback });
|
||
}
|
||
if (summary.thoughts) {
|
||
emit({ type: "thinking", text: summary.thoughts });
|
||
}
|
||
} catch {
|
||
const fallback = `I ran ${assistantToolCalls.length} tool calls but the wrap-up failed. Want me to retry, or try a different approach?`;
|
||
assistantText += (assistantText ? "\n\n" : "") + fallback;
|
||
assistantTextSegments.push(fallback);
|
||
emit({ type: "text", text: fallback });
|
||
}
|
||
}
|
||
|
||
// Persist final assistant message. We include `textSegments`
|
||
// alongside the legacy concatenated `content` so the client
|
||
// can render reloaded threads with the same per-round bubble
|
||
// segmentation it shows during streaming. Older messages
|
||
// (pre-this-fix) won't have textSegments and fall back to
|
||
// single-bubble content rendering.
|
||
const finalMsg: ChatMessage & { textSegments?: string[] } = {
|
||
role: "assistant",
|
||
content: assistantText,
|
||
toolCalls: assistantToolCalls.length ? assistantToolCalls : undefined,
|
||
textSegments: assistantTextSegments.length
|
||
? assistantTextSegments
|
||
: undefined,
|
||
};
|
||
await query(
|
||
`INSERT INTO fs_chat_messages (thread_id, user_id, data) VALUES ($1, $2, $3)`,
|
||
[thread_id, email, JSON.stringify(finalMsg)],
|
||
);
|
||
|
||
// Fire-and-forget: commit any AI-made filesystem changes to
|
||
// the project's Gitea repo and push to origin. This is what
|
||
// makes the AI's work appear in the Product tab's Codebases
|
||
// view — without it, every fs.write / shell.exec mutation
|
||
// stays trapped in the dev container's volume.
|
||
//
|
||
// Run AFTER the assistant message is persisted because the
|
||
// user already saw the reply; a slow push shouldn't block
|
||
// the chat. If there's nothing to commit, the helper short-
|
||
// circuits with reason='clean' in <1s.
|
||
if (
|
||
activeProject?.id &&
|
||
activeProject?.slug &&
|
||
typeof activeProject?.giteaCloneUrl === "string"
|
||
) {
|
||
(async () => {
|
||
try {
|
||
// Best-effort clone in case the pre-loop kick-off was
|
||
// racing with container provisioning and never landed.
|
||
await ensureProjectRepoCloned({
|
||
projectId: activeProject.id,
|
||
projectSlug: activeProject.slug,
|
||
giteaCloneUrl: activeProject.giteaCloneUrl,
|
||
}).catch(() => null);
|
||
// Commit message: prefer the assistant's own first
|
||
// sentence (one line, ≤200 chars). Falls back to a
|
||
// generic checkpoint when the assistant only made
|
||
// tool calls without prose.
|
||
const firstSentence = (assistantText || "")
|
||
.split(/(?<=[.!?])\s+/)[0]
|
||
?.trim()
|
||
?.slice(0, 180);
|
||
const message = firstSentence || "AI checkpoint";
|
||
const result = await commitAndPushIfDirty({
|
||
projectId: activeProject.id,
|
||
projectSlug: activeProject.slug,
|
||
message,
|
||
});
|
||
if (result.committed) {
|
||
console.log(
|
||
`[chat] auto-commit project=${activeProject.slug} sha=${result.sha} pushed=${result.pushed}`,
|
||
);
|
||
} else if (
|
||
result.reason &&
|
||
result.reason !== "clean" &&
|
||
result.reason !== "no_repo"
|
||
) {
|
||
console.warn(
|
||
`[chat] auto-commit failed project=${activeProject.slug} reason=${result.reason}`,
|
||
);
|
||
}
|
||
} catch (err) {
|
||
console.warn("[chat] auto-commit fire-and-forget failed", err);
|
||
}
|
||
})();
|
||
}
|
||
|
||
// Fire-and-forget: ask Gemini for a 1-2 sentence "what got done"
|
||
// summary of the conversation so far, persist it on the thread,
|
||
// and use the first user message (truncated) as a stable title
|
||
// when one isn't set yet. This is what powers the Sessions tab on
|
||
// the project Plan page — read-only chronological progress log.
|
||
// Wrapped in try/catch + .catch — the response stream is already
|
||
// closed and we don't want a summary failure to surface as an
|
||
// error to the user.
|
||
(async () => {
|
||
try {
|
||
const allMessages = [...history, finalMsg];
|
||
// Only summarize if there's something worth summarizing.
|
||
if (allMessages.length < 2) return;
|
||
const transcript = allMessages
|
||
.map((m) => {
|
||
const text =
|
||
typeof m.content === "string"
|
||
? m.content
|
||
: JSON.stringify(m.content);
|
||
return `${m.role.toUpperCase()}: ${text.slice(0, 1200)}`;
|
||
})
|
||
.join("\n\n");
|
||
const sumResp = await callVibnChat({
|
||
systemPrompt:
|
||
"You are summarizing a chat session for a project log. " +
|
||
"Write 1-2 sentences (max 200 chars) describing what was actually attempted, decided, or shipped in this conversation. " +
|
||
"Past tense, plain language, no preamble, no headings. " +
|
||
"If nothing of substance happened, write a single short sentence describing the topic.",
|
||
messages: [{ role: "user", content: transcript.slice(0, 8000) }],
|
||
temperature: 0.3,
|
||
});
|
||
const summary = (sumResp.text || "").trim().slice(0, 280);
|
||
// Pick a title only if the existing one is missing or generic.
|
||
const firstUser = allMessages.find((m) => m.role === "user");
|
||
const firstText =
|
||
typeof firstUser?.content === "string" ? firstUser.content : "";
|
||
const fallbackTitle = firstText
|
||
.replace(/\s+/g, " ")
|
||
.trim()
|
||
.slice(0, 60);
|
||
const update: Record<string, unknown> = {};
|
||
if (summary) update.summary = summary;
|
||
if (fallbackTitle) update.title = fallbackTitle;
|
||
if (Object.keys(update).length > 0) {
|
||
await query(
|
||
`UPDATE fs_chat_threads
|
||
SET data = data || $2
|
||
WHERE id = $1
|
||
AND (
|
||
($2::jsonb ? 'title') IS FALSE
|
||
OR data->>'title' IS NULL
|
||
OR data->>'title' = ''
|
||
OR data->>'title' = 'New conversation'
|
||
OR ($2::jsonb ? 'summary')
|
||
)`,
|
||
[thread_id, JSON.stringify(update)],
|
||
);
|
||
}
|
||
} catch {
|
||
// best-effort; silent failure
|
||
}
|
||
})().catch(() => {});
|
||
|
||
// Fire-and-forget: auto-extract plan updates (tasks, decisions,
|
||
// vision) from the conversation using a cheap Gemini Flash model.
|
||
// Deduplicates against existing plan items by title.
|
||
(async () => {
|
||
try {
|
||
if (!threadProjectId) return;
|
||
const allMessages = [...history, finalMsg];
|
||
if (allMessages.length < 2) return;
|
||
const transcript = allMessages
|
||
.map((m) => {
|
||
const text =
|
||
typeof m.content === "string"
|
||
? m.content
|
||
: JSON.stringify(m.content);
|
||
return `${m.role.toUpperCase()}: ${text.slice(0, 1200)}`;
|
||
})
|
||
.join("\n\n");
|
||
const result = await autoExtractPlanUpdates(
|
||
threadProjectId,
|
||
transcript,
|
||
);
|
||
if (result) {
|
||
console.log(
|
||
"[chat] plan-extract:",
|
||
`${result.tasks} tasks, ${result.decisions} decisions, vision=${result.vision}`,
|
||
);
|
||
}
|
||
} catch (err) {
|
||
console.warn("[chat] plan-extract failed (non-fatal):", err);
|
||
}
|
||
})().catch(() => {});
|
||
|
||
emit({ type: "done" });
|
||
safeClose();
|
||
} catch (e) {
|
||
// AbortError is the expected shape when the client cancels
|
||
// mid-Gemini-call — don't surface it as a real error.
|
||
const isAbort =
|
||
aborted ||
|
||
(e instanceof Error &&
|
||
(e.name === "AbortError" || /aborted/i.test(e.message)));
|
||
if (!isAbort) {
|
||
emit({
|
||
type: "error",
|
||
error: e instanceof Error ? e.message : String(e),
|
||
});
|
||
} else {
|
||
emit({ type: "aborted" });
|
||
}
|
||
safeClose();
|
||
} finally {
|
||
clientSignal.removeEventListener("abort", onAbort);
|
||
}
|
||
},
|
||
cancel() {
|
||
// Browser disconnected (tab closed, navigated away). Nothing to
|
||
// do — the abort handler above already flipped the flag and the
|
||
// loop will bail at the next checkpoint.
|
||
},
|
||
});
|
||
|
||
return new Response(stream, {
|
||
headers: {
|
||
"Content-Type": "text/event-stream",
|
||
"Cache-Control": "no-cache",
|
||
Connection: "keep-alive",
|
||
},
|
||
});
|
||
}
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: vibn\-frontend/components/vibn\-chat/chat\-panel.tsx**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
```
|
||
"use client";
|
||
|
||
import {
|
||
useEffect,
|
||
useRef,
|
||
useState,
|
||
useCallback,
|
||
type ReactNode,
|
||
type CSSProperties,
|
||
} from "react";
|
||
import Link from "next/link";
|
||
import { useSession } from "next-auth/react";
|
||
import { useParams, usePathname } from "next/navigation";
|
||
import {
|
||
MessageSquare,
|
||
X,
|
||
ChevronRight,
|
||
Send,
|
||
Plus,
|
||
Loader2,
|
||
Wrench,
|
||
ChevronDown,
|
||
Trash2,
|
||
Square,
|
||
MousePointerClick,
|
||
Sparkles,
|
||
} from "lucide-react";
|
||
import { ProjectIconRail } from "@/components/project/project-icon-rail";
|
||
import {
|
||
PreviewBridgeProvider,
|
||
previewMessagePrepRef,
|
||
usePreviewBridge,
|
||
} from "@/components/project/preview-bridge-context";
|
||
|
||
// ── Types ─────────────────────────────────────────────────────────────────────
|
||
|
||
interface Thread {
|
||
id: string;
|
||
title: string;
|
||
updatedAt: string;
|
||
}
|
||
|
||
interface Message {
|
||
id?: string;
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: { id: string; name: string; args: Record<string, unknown> }[];
|
||
toolName?: string;
|
||
createdAt?: string;
|
||
/**
|
||
* Chronological turn timeline interleaving the model's thinking
|
||
* narration and the tool calls it fired. Rendered as a stack of
|
||
* pills INSIDE the bubble above the final text content, so the
|
||
* user sees the actual flow:
|
||
* [thought] [tool ×N] [thought] [tool] ... [summary]
|
||
* Each thought is its own collapsed pill (click to expand);
|
||
* adjacent runs of the same tool name collapse into one pill
|
||
* with a ×N counter. The final assistant text is rendered
|
||
* separately, below the timeline.
|
||
*/
|
||
timeline?: TimelineEntry[];
|
||
}
|
||
|
||
type TimelineEntry =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "tool"; name: string; status: "running" | "done"; result?: string }
|
||
// A text segment from one round of the assistant's tool loop.
|
||
// Each text SSE event from the server starts a new entry; subsequent
|
||
// streaming chunks for that same round append to the most-recent
|
||
// text entry. Tool/thought entries between text segments break the
|
||
// accumulation so multi-round turns render as separate bubbles.
|
||
| { kind: "text"; text: string };
|
||
|
||
interface ToolEvent {
|
||
name: string;
|
||
status: "running" | "done";
|
||
result?: string;
|
||
}
|
||
|
||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||
|
||
function getFriendlyCategory(name: string): string {
|
||
if (
|
||
name.includes("fs.edit") ||
|
||
name.includes("fs.write") ||
|
||
name.includes("fs_edit") ||
|
||
name.includes("fs_write")
|
||
)
|
||
return "Writing code";
|
||
if (
|
||
name.includes("fs.read") ||
|
||
name.includes("fs.list") ||
|
||
name.includes("fs.grep") ||
|
||
name.includes("fs.tree") ||
|
||
name.includes("fs_read") ||
|
||
name.includes("fs_list") ||
|
||
name.includes("fs_grep") ||
|
||
name.includes("fs_tree")
|
||
)
|
||
return "Reading codebase";
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
return "Running terminal commands";
|
||
if (name.includes("dev_server.start") || name.includes("dev_server_start"))
|
||
return "Starting dev server";
|
||
if (name.includes("dev_server.logs") || name.includes("dev_server_logs"))
|
||
return "Checking server logs";
|
||
if (
|
||
name.includes("browser.navigate") ||
|
||
name.includes("browser.console") ||
|
||
name.includes("browser_navigate") ||
|
||
name.includes("browser_console")
|
||
)
|
||
return "Checking browser preview";
|
||
if (name.includes("ship")) return "Shipping code to production";
|
||
|
||
return name;
|
||
}
|
||
|
||
function timeAgo(dateStr?: string): string {
|
||
if (!dateStr) return "";
|
||
const diff = (Date.now() - new Date(dateStr).getTime()) / 1000;
|
||
if (diff < 60) return "just now";
|
||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
||
return `${Math.floor(diff / 86400)}d ago`;
|
||
}
|
||
|
||
function friendlyToolName(name: string): string {
|
||
return name
|
||
.replace(/_/g, ".")
|
||
.replace("projects.list", "listing projects")
|
||
.replace("apps.list", "listing apps")
|
||
.replace("apps.create", "deploying app")
|
||
.replace("apps.templates.list", "listing templates")
|
||
.replace("apps.templates.search", "searching templates")
|
||
.replace("domains.register", "registering domain")
|
||
.replace("domains.list", "listing domains")
|
||
.replace("apps.logs", "fetching logs");
|
||
}
|
||
|
||
const LOADING_PHRASES = [
|
||
"Thinking about the problem...",
|
||
"Reviewing the plan...",
|
||
"Caramelizing onions...",
|
||
"Writing code...",
|
||
"Running checks...",
|
||
"Reticulating splines...",
|
||
"Building out the view...",
|
||
];
|
||
|
||
function ActiveThinkingIndicator() {
|
||
const [phraseIndex, setPhraseIndex] = useState(0);
|
||
|
||
useEffect(() => {
|
||
const timer = setInterval(() => {
|
||
setPhraseIndex((i) => (i + 1) % LOADING_PHRASES.length);
|
||
}, 2800);
|
||
return () => clearInterval(timer);
|
||
}, []);
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "4px 4px 10px 4px",
|
||
fontSize: "0.85rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<svg
|
||
width="16"
|
||
height="16"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="#cf6741"
|
||
strokeWidth="2.5"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
className="animate-spin"
|
||
style={{ animationDuration: "3s" }}
|
||
>
|
||
<path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83" />
|
||
</svg>
|
||
</div>
|
||
<span className="animate-pulse">{LOADING_PHRASES[phraseIndex]}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Markdown-lite renderer ────────────────────────────────────────────────────
|
||
|
||
function escapeHtmlAttr(s: string): string {
|
||
return s.replace(/&/g, "&").replace(/"/g, """);
|
||
}
|
||
|
||
const LINK_STYLE =
|
||
"color:#4338ca;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all";
|
||
|
||
/** [label](https://...) — href restricted to http(s) */
|
||
function markdownLinksToHtml(s: string): string {
|
||
return s.replace(
|
||
/\[([^\]]+)\]\((https?:\/\/[^\s)<>]+)\)/gi,
|
||
(_m, label: string, url: string) => {
|
||
return `<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${label}</a>`;
|
||
},
|
||
);
|
||
}
|
||
|
||
/** Bare https:// in prose (skips when prefix is `>` so href=/code aren't touched) */
|
||
function autoLinkBareUrls(s: string): string {
|
||
return s.replace(
|
||
/(^|[\s\-—:(\[{])(https?:\/\/[^\s<>"']+)/gi,
|
||
(match, pre: string, url: string) =>
|
||
`${pre}<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${url}</a>`,
|
||
);
|
||
}
|
||
|
||
function renderMarkdown(text: string): string {
|
||
let s = text
|
||
.replace(/&/g, "&")
|
||
.replace(/</g, "<")
|
||
.replace(/>/g, ">");
|
||
s = markdownLinksToHtml(s);
|
||
s = s
|
||
.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>")
|
||
.replace(
|
||
/`([^`]+)`/g,
|
||
'<code style="background:#f0ede8;padding:1px 5px;border-radius:3px;font-family:var(--font-ibm-plex-mono),monospace;font-size:0.85em;overflow-wrap:anywhere;word-break:break-word">$1</code>',
|
||
)
|
||
.replace(
|
||
/^### (.+)$/gm,
|
||
'<h3 style="font-weight:600;margin:12px 0 4px;font-size:0.88rem;overflow-wrap:anywhere;word-break:break-word">$1</h3>',
|
||
)
|
||
.replace(
|
||
/^## (.+)$/gm,
|
||
'<h2 style="font-weight:600;margin:14px 0 4px;font-size:0.9rem;overflow-wrap:anywhere;word-break:break-word">$1</h2>',
|
||
)
|
||
.replace(
|
||
/^- (.+)$/gm,
|
||
'<li style="margin-left:16px;list-style:disc;overflow-wrap:anywhere;word-break:break-word">$1</li>',
|
||
)
|
||
.replace(
|
||
/(<li[^>]*>.*<\/li>\n?)+/g,
|
||
(m) => `<ul style="margin:6px 0">${m}</ul>`,
|
||
)
|
||
.replace(
|
||
/\n\n/g,
|
||
'</p><p style="margin:0 0 8px;overflow-wrap:anywhere;word-break:break-word">',
|
||
)
|
||
.replace(/\n/g, "<br>");
|
||
s = autoLinkBareUrls(s);
|
||
return s;
|
||
}
|
||
|
||
// ── Message bubble ────────────────────────────────────────────────────────────
|
||
|
||
/**
|
||
* Strip the markdown-bold "**Section Heading**" lines that Gemini
|
||
* loves to start each thought with so the collapsed pill shows the
|
||
* actual sentence rather than "**Examining the Target Server File**".
|
||
* The full text is still available in the expanded view.
|
||
*/
|
||
function thoughtPreview(thoughts: string): string {
|
||
const stripped = thoughts
|
||
.replace(/^\s*\*\*[^*]+\*\*\s*/gm, "")
|
||
.replace(/\s+/g, " ")
|
||
.trim();
|
||
if (stripped.length <= 90) return stripped;
|
||
return stripped.slice(0, 87) + "…";
|
||
}
|
||
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
fontSize: "0.75rem",
|
||
color: "#8c8580",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
fontStyle: "italic",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<Sparkles
|
||
style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
className="animate-pulse"
|
||
/>
|
||
</div>
|
||
<span className="animate-pulse">{currentAction}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function MessageBubble({ msg }: { msg: Message }) {
|
||
const isUser = msg.role === "user";
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
justifyContent: isUser ? "flex-end" : "flex-start",
|
||
marginBottom: 12,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{!isUser && (
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
marginRight: 8,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
)}
|
||
<div
|
||
style={{
|
||
maxWidth: "82%",
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{!isUser && msg.timeline && msg.timeline.length > 0 && (
|
||
<Timeline entries={msg.timeline} />
|
||
)}
|
||
{/*
|
||
Render the legacy bottom content bubble ONLY when:
|
||
- the message is from the user (their bubble is always the
|
||
content slot), OR
|
||
- the assistant message has no timeline at all (very old
|
||
messages from before timeline existed).
|
||
When the timeline contains text entries the prose is already
|
||
rendered there, and showing it again here would duplicate
|
||
every paragraph below the timeline.
|
||
*/}
|
||
{((msg.content && isUser) ||
|
||
(msg.content &&
|
||
!isUser &&
|
||
(!msg.timeline || msg.timeline.length === 0))) && (
|
||
<div
|
||
style={{
|
||
padding: isUser ? "9px 14px" : "10px 14px",
|
||
borderRadius: isUser
|
||
? "14px 14px 4px 14px"
|
||
: "4px 14px 14px 14px",
|
||
background: isUser ? "#1a1a1a" : "#f7f4ef",
|
||
color: isUser ? "#fff" : "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
{isUser ? (
|
||
<span style={{ whiteSpace: "pre-wrap", ...proseWrap }}>
|
||
{msg.content}
|
||
</span>
|
||
) : (
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{
|
||
__html: renderMarkdown(msg.content),
|
||
}}
|
||
/>
|
||
)}
|
||
</div>
|
||
)}
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Renders the chronological turn timeline: thoughts as their own
|
||
* collapsed pills, tool calls grouped by adjacent runs of the same
|
||
* name with a ×N counter. The flow visually mirrors what actually
|
||
* happened: thought → tools → thought → tools → ... → final summary.
|
||
*/
|
||
function Timeline({ entries }: { entries: TimelineEntry[] }) {
|
||
// Walk the entries and emit a renderable list. Adjacent same-category
|
||
// tool entries get bundled into a TimelineToolGroup; thought and
|
||
// text entries pass through as-is.
|
||
type Item =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "text"; text: string }
|
||
| {
|
||
kind: "toolGroup";
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
};
|
||
const items: Item[] = [];
|
||
for (const e of entries) {
|
||
if (e.kind === "thought") {
|
||
items.push({ kind: "thought", text: e.text });
|
||
} else if (e.kind === "text") {
|
||
items.push({ kind: "text", text: e.text });
|
||
} else {
|
||
const last = items[items.length - 1];
|
||
const category = getFriendlyCategory(e.name);
|
||
if (last && last.kind === "toolGroup" && last.category === category) {
|
||
last.entries.push(e);
|
||
} else {
|
||
items.push({ kind: "toolGroup", category, entries: [e] });
|
||
}
|
||
}
|
||
}
|
||
return (
|
||
<div style={{ marginBottom: 6 }}>
|
||
{items.map((item, i) => {
|
||
if (item.kind === "thought") {
|
||
return <ThinkingBubble key={i} thoughts={item.text} />;
|
||
}
|
||
if (item.kind === "text") {
|
||
return <TimelineText key={i} text={item.text} />;
|
||
}
|
||
return (
|
||
<TimelineToolGroup
|
||
key={i}
|
||
category={item.category}
|
||
entries={item.entries}
|
||
/>
|
||
);
|
||
})}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* One text segment in the assistant's timeline. Rendered as its own
|
||
* bubble so each round of multi-tool-loop output reads as a discrete
|
||
* step instead of concatenating into a wall of text.
|
||
*/
|
||
function TimelineText({ text }: { text: string }) {
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
padding: "10px 14px",
|
||
borderRadius: "4px 14px 14px 14px",
|
||
background: "#f7f4ef",
|
||
color: "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
marginBottom: 6,
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{ __html: renderMarkdown(text) }}
|
||
/>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function TimelineToolGroup({
|
||
category,
|
||
entries,
|
||
}: {
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
}) {
|
||
const [expanded, setExpanded] = useState(false);
|
||
const count = entries.length;
|
||
const allDone = entries.every((e) => e.status === "done");
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<button
|
||
onClick={() => setExpanded(!expanded)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
width: "100%",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
background: "none",
|
||
border: "none",
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
cursor: "pointer",
|
||
textAlign: "left",
|
||
}}
|
||
>
|
||
<span style={{ width: 14, display: "flex", justifyContent: "center" }}>
|
||
{!allDone ? (
|
||
<Loader2
|
||
style={{ width: 12, height: 12 }}
|
||
className="animate-spin"
|
||
/>
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
</span>
|
||
<span style={{ flex: 1 }}>
|
||
{category} {count > 1 ? `(x${count})` : ""} {!allDone ? "..." : " ✓"}
|
||
</span>
|
||
<span
|
||
style={{
|
||
transform: expanded ? "rotate(180deg)" : "none",
|
||
transition: "transform 0.15s ease",
|
||
}}
|
||
>
|
||
<ChevronDown style={{ width: 12, height: 12, opacity: 0.5 }} />
|
||
</span>
|
||
</button>
|
||
|
||
{expanded && (
|
||
<div
|
||
style={{
|
||
padding: "0 12px 8px 34px",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
gap: 4,
|
||
}}
|
||
>
|
||
{entries.map((e, i) => (
|
||
<div
|
||
key={i}
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#8c8580",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 4,
|
||
height: 4,
|
||
borderRadius: "50%",
|
||
background: "#ccc",
|
||
}}
|
||
/>
|
||
<span style={{ fontFamily: "var(--font-mono), monospace" }}>
|
||
{friendlyToolName(e.name)}
|
||
</span>
|
||
{!e.result && e.status === "running" && (
|
||
<span className="animate-pulse">...</span>
|
||
)}
|
||
{e.result && (
|
||
<span
|
||
style={{
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
opacity: 0.7,
|
||
maxWidth: 150,
|
||
}}
|
||
title={e.result}
|
||
>
|
||
— {e.result}
|
||
</span>
|
||
)}
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function ToolBubble({ event }: { event: ToolEvent }) {
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
{event.status === "running" ? (
|
||
<Loader2 style={{ width: 12, height: 12 }} className="animate-spin" />
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
<span>
|
||
{friendlyToolName(event.name)}
|
||
{event.status === "running" ? "…" : " ✓"}
|
||
</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Main panel ────────────────────────────────────────────────────────────────
|
||
|
||
interface ChatPanelProps {
|
||
/**
|
||
* When true, the panel renders inline as a flex child of its parent
|
||
* (a structural left column on project pages). Skips the fixed-position
|
||
* slide-out treatment, the collapsed-tab affordance, and the
|
||
* --chat-panel-width side-effect. Always "open" — there's no close
|
||
* button because the panel IS the column.
|
||
*
|
||
* When false / omitted: legacy behavior — fixed slide-out on the
|
||
* right, collapsible, sets --chat-panel-width so the workspace
|
||
* content shifts left to make room.
|
||
*/
|
||
structural?: boolean;
|
||
/**
|
||
* When set with `structural` on a project route, renders a unified shell:
|
||
* full-width top bar (chat controls | section icons) and a split row
|
||
* below (chat column | artifact slot). Omit on slide-out chat.
|
||
*/
|
||
artifactSlot?: ReactNode;
|
||
}
|
||
|
||
/** Shared dimensions for preview-select + send icon buttons in the composer. */
|
||
const COMPOSER_ACTION_BTN_BASE: CSSProperties = {
|
||
flexShrink: 0,
|
||
width: 32,
|
||
height: 32,
|
||
boxSizing: "border-box",
|
||
borderRadius: 8,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 0,
|
||
};
|
||
|
||
/** Preview pick chip + select-mode toggle for unified project shell chat composer. */
|
||
function ProjectPreviewChatInputWrap({
|
||
unifiedShell,
|
||
children,
|
||
}: {
|
||
unifiedShell: boolean;
|
||
children: (selectToggle: React.ReactNode) => React.ReactNode;
|
||
}) {
|
||
const bridge = usePreviewBridge();
|
||
|
||
if (!unifiedShell || !bridge) {
|
||
return <>{children(null)}</>;
|
||
}
|
||
|
||
const { selectMode, setSelectMode, picked, clearPick } = bridge;
|
||
|
||
const chip = picked ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "flex-start",
|
||
gap: 8,
|
||
marginBottom: 8,
|
||
padding: "8px 10px",
|
||
borderRadius: 8,
|
||
background: "#eef2ff",
|
||
border: "1px solid #c7d2fe",
|
||
fontSize: "0.72rem",
|
||
lineHeight: 1.45,
|
||
color: "#312e81",
|
||
}}
|
||
>
|
||
<MousePointerClick
|
||
style={{
|
||
width: 14,
|
||
height: 14,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
opacity: 0.85,
|
||
}}
|
||
aria-hidden
|
||
/>
|
||
<div style={{ flex: 1, minWidth: 0 }}>
|
||
<div style={{ fontWeight: 600, marginBottom: 2 }}>
|
||
Preview selection
|
||
</div>
|
||
<div style={{ opacity: 0.92 }}>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-ibm-plex-mono),monospace",
|
||
fontSize: "0.68rem",
|
||
}}
|
||
>
|
||
{picked.tagName}
|
||
</span>
|
||
{" · "}
|
||
<span style={{ wordBreak: "break-word" }}>{picked.selector}</span>
|
||
</div>
|
||
{picked.textSnippet ? (
|
||
<div style={{ marginTop: 4, opacity: 0.88, wordBreak: "break-word" }}>
|
||
{`"${picked.textSnippet.slice(0, 140)}${picked.textSnippet.length > 140 ? "..." : ""}"`}
|
||
</div>
|
||
) : null}
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={clearPick}
|
||
aria-label="Clear preview selection"
|
||
style={{
|
||
flexShrink: 0,
|
||
background: "none",
|
||
border: "none",
|
||
padding: 2,
|
||
cursor: "pointer",
|
||
borderRadius: 4,
|
||
color: "#4338ca",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
>
|
||
<X style={{ width: 13, height: 13 }} />
|
||
</button>
|
||
</div>
|
||
) : null;
|
||
|
||
const selectToggle = (
|
||
<button
|
||
type="button"
|
||
aria-pressed={selectMode}
|
||
aria-label={
|
||
selectMode ? "Exit preview select mode" : "Select element from preview"
|
||
}
|
||
title={
|
||
selectMode
|
||
? "Click preview to choose an element"
|
||
: "Choose element from preview"
|
||
}
|
||
onClick={() => setSelectMode(!selectMode)}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
border: selectMode ? "1px solid #6366f1" : "1px solid #e8e4dc",
|
||
background: selectMode ? "#eef2ff" : "#faf8f5",
|
||
color: selectMode ? "#4338ca" : "#6b6560",
|
||
cursor: "pointer",
|
||
}}
|
||
>
|
||
<MousePointerClick style={{ width: 15, height: 15 }} strokeWidth={2} />
|
||
</button>
|
||
);
|
||
|
||
return (
|
||
<>
|
||
{chip}
|
||
{children(selectToggle)}
|
||
</>
|
||
);
|
||
}
|
||
|
||
export function ChatPanel({
|
||
structural = false,
|
||
artifactSlot,
|
||
}: ChatPanelProps = {}) {
|
||
const { data: sessionData, status } = useSession();
|
||
const params = useParams();
|
||
const pathname = usePathname() ?? "";
|
||
const workspace = (params?.workspace as string) || "";
|
||
// When the user is on a /project/<id>/* route, scope the chat to
|
||
// that project. The threads list, the new-thread create call, and
|
||
// the system prompt all branch on this; the chat header surfaces it
|
||
// so the user knows the AI is "talking about" the right thing.
|
||
const projectId = (params?.projectId as string) || "";
|
||
/** Full project shell (chat | artifact); must render even while auth is loading or signed out. */
|
||
const unifiedProjectShell =
|
||
structural && Boolean(projectId) && artifactSlot !== undefined;
|
||
const [activeProjectName, setActiveProjectName] = useState<string | null>(
|
||
null,
|
||
);
|
||
|
||
const [open, setOpen] = useState(() => {
|
||
// Structural mode is always-open by definition — the panel IS the
|
||
// column, there's no "closed" state to persist.
|
||
if (structural) return true;
|
||
if (typeof window === "undefined") return false;
|
||
return localStorage.getItem("vibn-chat-open") !== "false";
|
||
});
|
||
const [threads, setThreads] = useState<Thread[]>([]);
|
||
// threadsLoaded flips to true after the FIRST loadThreads() resolves.
|
||
// Used to gate the auto-create effect — without it we race the fetch
|
||
// and spawn an empty thread before history loads.
|
||
const [threadsLoaded, setThreadsLoaded] = useState(false);
|
||
const [activeThread, setActiveThread] = useState<string | null>(null);
|
||
const [messages, setMessages] = useState<Message[]>([]);
|
||
const [input, setInput] = useState("");
|
||
const [sending, setSending] = useState(false);
|
||
const [showThreads, setShowThreads] = useState(false);
|
||
const [mcpToken, setMcpToken] = useState<string | null>(null);
|
||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||
const inputRef = useRef<HTMLTextAreaElement>(null);
|
||
// AbortController for the in-flight /api/chat fetch. Lives in a ref
|
||
// so the Stop button can reach it without re-rendering on every
|
||
// streaming chunk.
|
||
const abortRef = useRef<AbortController | null>(null);
|
||
|
||
const scrollToBottom = useCallback(() => {
|
||
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
|
||
}, []);
|
||
|
||
// Persist open state + adjust main content margin
|
||
useEffect(() => {
|
||
if (structural) return;
|
||
localStorage.setItem("vibn-chat-open", String(open));
|
||
document.documentElement.style.setProperty(
|
||
"--chat-panel-width",
|
||
open ? "380px" : "0px",
|
||
);
|
||
}, [open, structural]);
|
||
|
||
// Load MCP token — prefer localStorage cache, fetch from API if missing.
|
||
// We use /api/workspaces (not the URL param) because the URL slug
|
||
// (e.g. "mark-account") differs from the actual workspace slug ("mark").
|
||
useEffect(() => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
const cached = localStorage.getItem(`vibn-mcp-token-${workspace}`);
|
||
if (cached) {
|
||
setMcpToken(cached);
|
||
return;
|
||
}
|
||
fetch("/api/workspaces?include_default_token=true")
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (d?.defaultToken) {
|
||
localStorage.setItem(`vibn-mcp-token-${workspace}`, d.defaultToken);
|
||
setMcpToken(d.defaultToken);
|
||
}
|
||
})
|
||
.catch(() => {});
|
||
}, [workspace, status]);
|
||
|
||
// Load threads (scoped to the current project when one is in the URL).
|
||
// Reset the loaded flag when projectId changes so the resume effect
|
||
// re-runs against the correct list and doesn't restore a thread from
|
||
// the previous project.
|
||
const loadThreads = useCallback(async () => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
try {
|
||
const qs = new URLSearchParams({ workspace });
|
||
if (projectId) qs.set("projectId", projectId);
|
||
const res = await fetch(`/api/chat/threads?${qs.toString()}`);
|
||
const data = await res.json();
|
||
setThreads(data.threads || []);
|
||
} catch {
|
||
/* silent */
|
||
} finally {
|
||
setThreadsLoaded(true);
|
||
}
|
||
}, [workspace, projectId, status]);
|
||
|
||
useEffect(() => {
|
||
setThreadsLoaded(false);
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
// Clear the threads array immediately so the resume effect doesn't
|
||
// race the loadThreads() fetch and resume a stale project-scoped
|
||
// thread when the user navigates from /project/X back to /projects.
|
||
setThreads([]);
|
||
loadThreads();
|
||
}, [loadThreads, projectId]);
|
||
|
||
// Look up the active project's display name once we have a projectId,
|
||
// so the chat header can show "Talking about: <name>".
|
||
useEffect(() => {
|
||
if (!projectId) {
|
||
setActiveProjectName(null);
|
||
return;
|
||
}
|
||
let cancelled = false;
|
||
fetch(`/api/projects/${projectId}/anatomy`, { credentials: "include" })
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (cancelled) return;
|
||
const name = d?.project?.name;
|
||
if (name) setActiveProjectName(name);
|
||
})
|
||
.catch(() => {});
|
||
return () => {
|
||
cancelled = true;
|
||
};
|
||
}, [projectId]);
|
||
|
||
// Create and activate a new thread (tagged to the active project, if any).
|
||
const newThread = useCallback(async () => {
|
||
try {
|
||
const res = await fetch("/api/chat/threads", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ workspace, projectId: projectId || undefined }),
|
||
});
|
||
const data = await res.json();
|
||
if (data.thread) {
|
||
setThreads((prev) => [data.thread, ...prev]);
|
||
setActiveThread(data.thread.id);
|
||
setMessages([]);
|
||
setShowThreads(false);
|
||
}
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, [workspace, projectId]);
|
||
|
||
// Load thread messages
|
||
const loadThread = useCallback(async (id: string) => {
|
||
setActiveThread(id);
|
||
setShowThreads(false);
|
||
setMessages([]);
|
||
try {
|
||
const res = await fetch(`/api/chat/threads/${id}`);
|
||
const data = await res.json();
|
||
// Hydrate the timeline from persisted textSegments + toolCalls
|
||
// so a reloaded thread renders the same per-round bubbles the
|
||
// user saw during streaming. Older messages without
|
||
// textSegments fall back to the legacy single-bubble path.
|
||
const hydrated = (data.messages || []).map((m: any) => {
|
||
if (m.role !== "assistant") return m;
|
||
const segs: string[] = Array.isArray(m.textSegments)
|
||
? m.textSegments
|
||
: [];
|
||
if (segs.length === 0) return m;
|
||
const timeline: TimelineEntry[] = segs.map((t) => ({
|
||
kind: "text",
|
||
text: t,
|
||
}));
|
||
// We don't have round-level interleaving for tool calls in
|
||
// the persisted shape (the schema flattens them), so we drop
|
||
// the toolCalls into the timeline at the end. The streamed
|
||
// shape preserves true ordering; this is just a reload
|
||
// approximation. Good enough — what the user really cares
|
||
// about is the text segments not run-on'ing into one blob.
|
||
if (Array.isArray(m.toolCalls)) {
|
||
for (const tc of m.toolCalls) {
|
||
timeline.push({ kind: "tool", name: tc.name, status: "done" });
|
||
}
|
||
}
|
||
return { ...m, timeline, content: "" };
|
||
});
|
||
setMessages(hydrated);
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, []);
|
||
|
||
// Auto-resume previous thread (or create a fresh one if the user has
|
||
// never chatted in this workspace). We MUST wait for threadsLoaded
|
||
// before deciding — otherwise we race the fetch and spawn an empty
|
||
// thread before history arrives. Last-active thread is restored from
|
||
// localStorage so a page reload (deploy, refresh) lands the user back
|
||
// in the conversation they were in.
|
||
useEffect(() => {
|
||
if (!open || status !== "authenticated" || !workspace) return;
|
||
if (!threadsLoaded) return;
|
||
if (activeThread) return;
|
||
|
||
if (threads.length === 0) {
|
||
newThread();
|
||
return;
|
||
}
|
||
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
const saved =
|
||
typeof window !== "undefined" ? localStorage.getItem(savedKey) : null;
|
||
const target =
|
||
saved && threads.some((t) => t.id === saved) ? saved : threads[0].id;
|
||
loadThread(target);
|
||
}, [
|
||
open,
|
||
status,
|
||
workspace,
|
||
projectId,
|
||
threadsLoaded,
|
||
threads,
|
||
activeThread,
|
||
newThread,
|
||
loadThread,
|
||
]);
|
||
|
||
// Persist active thread so reload re-opens the same conversation,
|
||
// keyed per-project so each project has its own "last conversation".
|
||
useEffect(() => {
|
||
if (typeof window === "undefined" || !workspace) return;
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
if (activeThread) localStorage.setItem(savedKey, activeThread);
|
||
}, [activeThread, workspace, projectId]);
|
||
|
||
useEffect(() => {
|
||
scrollToBottom();
|
||
}, [messages, scrollToBottom]);
|
||
|
||
const deleteThread = useCallback(
|
||
async (id: string, e: React.MouseEvent) => {
|
||
e.stopPropagation();
|
||
await fetch(`/api/chat/threads/${id}`, { method: "DELETE" });
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [
|
||
...tl,
|
||
{ kind: "tool", name: ev.name, status: "running" },
|
||
],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_result") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
// Walk backward to the most recent matching running
|
||
// tool entry and mark it done. Avoids cross-matching
|
||
// earlier same-named entries.
|
||
let updated = false;
|
||
const newTl: TimelineEntry[] = [];
|
||
for (let i = tl.length - 1; i >= 0; i--) {
|
||
const e = tl[i];
|
||
if (
|
||
!updated &&
|
||
e.kind === "tool" &&
|
||
e.name === ev.name &&
|
||
e.status === "running"
|
||
) {
|
||
newTl.unshift({
|
||
...e,
|
||
status: "done",
|
||
result: ev.result,
|
||
});
|
||
updated = true;
|
||
} else {
|
||
newTl.unshift(e);
|
||
}
|
||
}
|
||
next[msgIndex] = { ...next[msgIndex], timeline: newTl };
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "error") {
|
||
const errText = ev.error || "Unknown error";
|
||
const isToolErr = /tool|mcp|coolify|gitea/i.test(errText);
|
||
const errBubble = isToolErr
|
||
? `⚠️ **Tool error:** ${errText}`
|
||
: `⚠️ ${errText}`;
|
||
assistantContent += (assistantContent ? "\n\n" : "") + errBubble;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "text", text: errBubble }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
// Auto-title thread from first message
|
||
const thisThread = threads.find((t) => t.id === activeThread);
|
||
if (thisThread?.title === "New conversation") {
|
||
const title = text.slice(0, 50);
|
||
await fetch(`/api/chat/threads/${activeThread}`, {
|
||
method: "PATCH",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ title }),
|
||
});
|
||
setThreads((prev) =>
|
||
prev.map((t) => (t.id === activeThread ? { ...t, title } : t)),
|
||
);
|
||
}
|
||
|
||
loadThreads();
|
||
} catch (e) {
|
||
const isAbort = e instanceof DOMException && e.name === "AbortError";
|
||
if (isAbort) {
|
||
// Server-side will have appended "(stopped by user)" to the
|
||
// partial response and persisted it. We just need to make
|
||
// sure the local UI reflects whatever streamed in before the
|
||
// user clicked Stop — which it already does, because we've
|
||
// been mutating `messages[msgIndex]` chunk-by-chunk above.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (
|
||
msgIndex >= 0 &&
|
||
next[msgIndex] &&
|
||
!next[msgIndex].content.includes("(stopped by user)")
|
||
) {
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
content:
|
||
(next[msgIndex].content || "") + "\n\n_(stopped by user)_",
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else {
|
||
const errMsg = e instanceof Error ? e.message : String(e);
|
||
const isNetwork = /fetch|network|failed to fetch/i.test(errMsg);
|
||
const friendlyError = isNetwork
|
||
? "⚠️ Network error — check your connection and try again."
|
||
: `⚠️ Something went wrong: ${errMsg.slice(0, 200)}\n\nYou can try again or start a new message.`;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
next[msgIndex] = { ...next[msgIndex], content: friendlyError };
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
} finally {
|
||
abortRef.current = null;
|
||
setSending(false);
|
||
}
|
||
},
|
||
[
|
||
input,
|
||
sending,
|
||
activeThread,
|
||
workspace,
|
||
mcpToken,
|
||
threads,
|
||
loadThreads,
|
||
unifiedProjectShell,
|
||
],
|
||
);
|
||
|
||
const cancelMessage = useCallback(() => {
|
||
abortRef.current?.abort();
|
||
}, []);
|
||
|
||
// External components (e.g. ProjectHeaderUrls' "Start preview" button)
|
||
// can ask the chat to send a canned prompt without prop-drilling. Open
|
||
// the panel if collapsed, then fire the prompt as if the user typed it.
|
||
useEffect(() => {
|
||
function onPrompt(e: Event) {
|
||
const ce = e as CustomEvent<{ prompt?: string; scopeProjectId?: string }>;
|
||
const prompt = ce.detail?.prompt;
|
||
if (!prompt) return;
|
||
// If the dispatcher scopes the prompt to a specific project, only
|
||
// accept it when the chat panel is currently bound to that project.
|
||
// Prevents a "Start preview on Manifest" click from accidentally
|
||
// landing in a chat that's scoped to a different project.
|
||
if (ce.detail?.scopeProjectId && ce.detail.scopeProjectId !== projectId) {
|
||
return;
|
||
}
|
||
setOpen(true);
|
||
void sendMessage(prompt);
|
||
}
|
||
window.addEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
return () =>
|
||
window.removeEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
}, [sendMessage, projectId]);
|
||
|
||
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||
if (e.key === "Enter" && !e.shiftKey) {
|
||
e.preventDefault();
|
||
sendMessage();
|
||
} else if (e.key === "Escape" && sending) {
|
||
e.preventDefault();
|
||
cancelMessage();
|
||
}
|
||
};
|
||
|
||
// Slide-out chat hidden until signed in. Structural project shell always
|
||
// mounts so Preview / Product / Plan pages render; chat column shows loading
|
||
// or sign-in instead of wiping the whole viewport (blank page).
|
||
if (!unifiedProjectShell && status !== "authenticated") return null;
|
||
|
||
// ── Collapsed tab ──────────────────────────────────────────────────────────
|
||
// Structural mode is always-open; skip the collapsed-tab branch entirely.
|
||
if (!open && !structural) {
|
||
return (
|
||
<button
|
||
onClick={() => setOpen(true)}
|
||
style={{
|
||
position: "fixed",
|
||
right: 0,
|
||
top: "50%",
|
||
transform: "translateY(-50%)",
|
||
zIndex: 1000,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
border: "none",
|
||
borderRadius: "8px 0 0 8px",
|
||
padding: "14px 10px",
|
||
cursor: "pointer",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
boxShadow: "-2px 0 12px #1a1a1a14",
|
||
}}
|
||
title="Open Vibn AI"
|
||
>
|
||
<MessageSquare style={{ width: 16, height: 16 }} />
|
||
<span
|
||
style={{
|
||
writingMode: "vertical-rl",
|
||
textOrientation: "mixed",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.08em",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
transform: "rotate(180deg)",
|
||
}}
|
||
>
|
||
VIBN AI
|
||
</span>
|
||
</button>
|
||
);
|
||
}
|
||
|
||
const conversationColumn = (
|
||
<>
|
||
{/* Thread list dropdown */}
|
||
{showThreads && (
|
||
<div
|
||
style={{
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
maxHeight: 200,
|
||
overflowY: "auto",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{threads.length === 0 && (
|
||
<div
|
||
style={{
|
||
padding: "12px 16px",
|
||
fontSize: "0.78rem",
|
||
color: "#a09a90",
|
||
}}
|
||
>
|
||
No conversations yet
|
||
</div>
|
||
)}
|
||
{threads.map((t) => (
|
||
<div
|
||
key={t.id}
|
||
onClick={() => loadThread(t.id)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "9px 16px",
|
||
background: activeThread === t.id ? "#f0ede8" : "transparent",
|
||
cursor: "pointer",
|
||
borderBottom: "1px solid #f0ede8",
|
||
}}
|
||
onMouseEnter={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "#f7f4ef";
|
||
}}
|
||
onMouseLeave={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "transparent";
|
||
}}
|
||
>
|
||
<div style={{ minWidth: 0 }}>
|
||
<div
|
||
style={{
|
||
fontSize: "0.8rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
{t.title}
|
||
</div>
|
||
<div style={{ fontSize: "0.7rem", color: "#a09a90" }}>
|
||
{timeAgo(t.updatedAt)}
|
||
</div>
|
||
</div>
|
||
<button
|
||
onClick={(e) => deleteThread(t.id, e)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
color: "#c0bab2",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<Trash2 style={{ width: 12, height: 12 }} />
|
||
</button>
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
|
||
{/* Messages */}
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
overflowY: "auto",
|
||
overflowX: "hidden",
|
||
padding: "16px 14px",
|
||
}}
|
||
>
|
||
{messages.length === 0 && !sending && (
|
||
<div
|
||
style={{ padding: "24px 14px", maxWidth: 640, margin: "0 auto" }}
|
||
>
|
||
<div style={{ display: "flex", gap: 12 }}>
|
||
<div
|
||
style={{
|
||
width: 28,
|
||
height: 28,
|
||
borderRadius: 6,
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
color: "#fff",
|
||
fontSize: "0.85rem",
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</div>
|
||
<div
|
||
style={{
|
||
background: "#fff",
|
||
border: "1px solid #e8e4dc",
|
||
padding: "14px 18px",
|
||
borderRadius: "0 12px 12px 12px",
|
||
fontSize: "0.9rem",
|
||
color: "#1a1a1a",
|
||
lineHeight: 1.6,
|
||
boxShadow: "0 1px 2px #1a1a1a05",
|
||
maxWidth: "85%",
|
||
}}
|
||
>
|
||
Welcome to {activeProjectName ? activeProjectName : "Vibn"}!
|
||
Tell me what you want to build and I'll scaffold it, run it in a
|
||
preview, and ship it when you say so.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{messages.map((msg, i) => (
|
||
<MessageBubble key={msg.id || i} msg={msg} />
|
||
))}
|
||
|
||
{sending && messages[messages.length - 1]?.role !== "assistant" && (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 0",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
{[0, 1, 2].map((i) => (
|
||
<span
|
||
key={i}
|
||
style={{
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: "50%",
|
||
background: "#c0bab2",
|
||
animation: `vibn-bounce 1.2s ease infinite ${i * 0.2}s`,
|
||
display: "inline-block",
|
||
}}
|
||
/>
|
||
))}
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
<div ref={messagesEndRef} />
|
||
</div>
|
||
|
||
{/* Input */}
|
||
<div
|
||
style={{
|
||
padding: "12px 14px",
|
||
borderTop: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{sending && <ActiveThinkingIndicator />}
|
||
{!mcpToken && (
|
||
<div
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#9a7b3a",
|
||
background: "#d4a04a12",
|
||
border: "1px solid #d4a04a30",
|
||
borderRadius: 6,
|
||
padding: "5px 10px",
|
||
marginBottom: 8,
|
||
lineHeight: 1.4,
|
||
}}
|
||
>
|
||
Read-only mode — add your MCP token in Settings to enable actions.
|
||
</div>
|
||
)}
|
||
<ProjectPreviewChatInputWrap unifiedShell={unifiedProjectShell}>
|
||
{(selectToggle) => (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
gap: 8,
|
||
alignItems: "center",
|
||
background: "#fff",
|
||
borderRadius: 10,
|
||
border: "1px solid #e8e4dc",
|
||
padding: "8px 10px",
|
||
boxShadow: "0 1px 3px #1a1a1a05",
|
||
}}
|
||
>
|
||
<textarea
|
||
ref={inputRef}
|
||
value={input}
|
||
onChange={(e) => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={
|
||
sending ? "Esc to stop generating…" : "Ask Vibn AI anything…"
|
||
}
|
||
rows={1}
|
||
disabled={!activeThread}
|
||
style={{
|
||
flex: 1,
|
||
border: "none",
|
||
outline: "none",
|
||
background: "transparent",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.5,
|
||
resize: "none",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
color: "#1a1a1a",
|
||
maxHeight: 120,
|
||
overflowY: "auto",
|
||
}}
|
||
onInput={(e) => {
|
||
const el = e.currentTarget;
|
||
el.style.height = "auto";
|
||
el.style.height = Math.min(el.scrollHeight, 120) + "px";
|
||
}}
|
||
/>
|
||
{selectToggle}
|
||
{(() => {
|
||
// While the AI is streaming or running tools, the button
|
||
// turns into a Stop control. Click → AbortController fires,
|
||
// server bails between rounds, partial text gets persisted.
|
||
const isActive = sending;
|
||
const canSend = !sending && input.trim() && activeThread;
|
||
return (
|
||
<button
|
||
type="button"
|
||
onClick={isActive ? cancelMessage : () => sendMessage()}
|
||
disabled={!isActive && !canSend}
|
||
aria-label={isActive ? "Stop generating" : "Send message"}
|
||
title={isActive ? "Stop generating (Esc)" : "Send"}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
background: isActive
|
||
? "#1a1a1a"
|
||
: canSend
|
||
? "#1a1a1a"
|
||
: "#e8e4dc",
|
||
color: isActive || canSend ? "#fff" : "#a09a90",
|
||
border: "none",
|
||
cursor: isActive || canSend ? "pointer" : "default",
|
||
transition: "all 0.15s",
|
||
position: "relative",
|
||
}}
|
||
>
|
||
{isActive ? (
|
||
<>
|
||
<Loader2
|
||
style={{
|
||
width: 15,
|
||
height: 15,
|
||
position: "absolute",
|
||
opacity: 0.35,
|
||
}}
|
||
className="animate-spin"
|
||
/>
|
||
<Square
|
||
style={{
|
||
width: 9,
|
||
height: 9,
|
||
fill: "#fff",
|
||
strokeWidth: 0,
|
||
}}
|
||
/>
|
||
</>
|
||
) : (
|
||
<Send style={{ width: 15, height: 15 }} />
|
||
)}
|
||
</button>
|
||
);
|
||
})()}
|
||
</div>
|
||
)}
|
||
</ProjectPreviewChatInputWrap>
|
||
</div>
|
||
</>
|
||
);
|
||
|
||
const structuralChatLoadingColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 14,
|
||
}}
|
||
>
|
||
<Loader2
|
||
className="animate-spin"
|
||
style={{ width: 22, height: 22, color: "#9c9590" }}
|
||
/>
|
||
<p style={{ fontSize: "0.84rem", color: "#6b6560", margin: 0 }}>
|
||
Signing you in…
|
||
</p>
|
||
</div>
|
||
);
|
||
|
||
const authHref = pathname
|
||
? `/auth?callbackUrl=${encodeURIComponent(pathname)}`
|
||
: "/auth";
|
||
|
||
const structuralChatSignedOutColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 12,
|
||
}}
|
||
>
|
||
<p
|
||
style={{
|
||
fontSize: "0.88rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
}}
|
||
>
|
||
Sign in to use Vibn AI
|
||
</p>
|
||
<p
|
||
style={{
|
||
fontSize: "0.76rem",
|
||
color: "#a09a90",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
maxWidth: 260,
|
||
lineHeight: 1.5,
|
||
}}
|
||
>
|
||
Preview and tabs still work here. Chat needs an account.
|
||
</p>
|
||
<Link
|
||
href={authHref}
|
||
style={{
|
||
marginTop: 4,
|
||
padding: "10px 18px",
|
||
borderRadius: 10,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
fontSize: "0.82rem",
|
||
fontWeight: 500,
|
||
textDecoration: "none",
|
||
}}
|
||
>
|
||
Sign in
|
||
</Link>
|
||
</div>
|
||
);
|
||
|
||
const structuralChatBody =
|
||
status === "loading"
|
||
? structuralChatLoadingColumn
|
||
: status !== "authenticated"
|
||
? structuralChatSignedOutColumn
|
||
: conversationColumn;
|
||
|
||
if (unifiedProjectShell) {
|
||
return (
|
||
<>
|
||
<PreviewBridgeProvider>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
background: "#fff",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
alignItems: "stretch",
|
||
flexShrink: 0,
|
||
height: 48,
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
boxSizing: "border-box",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
height: "100%",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
padding: "0 12px",
|
||
gap: 6,
|
||
boxSizing: "border-box",
|
||
borderRight: "1px solid #e8e4dc",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
width: "100%",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 5px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus style={{ width: 14, height: 14 }} />
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
alignItems: "stretch",
|
||
}}
|
||
>
|
||
<ProjectIconRail workspace={workspace} projectId={projectId} />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
borderRight: "1px solid #e8e4dc",
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{structuralChatBody}
|
||
</div>
|
||
<div
|
||
key={pathname}
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
overflow: "auto",
|
||
background: "#faf8f5",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{artifactSlot}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</PreviewBridgeProvider>
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</>
|
||
);
|
||
}
|
||
|
||
// ── Open panel ─────────────────────────────────────────────────────────────
|
||
// Structural mode: fill the parent column. Default mode: fixed slide-out
|
||
// anchored to the right edge of the viewport (legacy behavior).
|
||
return (
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
flex: 1,
|
||
minHeight: 0,
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
: {
|
||
position: "fixed",
|
||
right: 0,
|
||
top: 0,
|
||
bottom: 0,
|
||
zIndex: 999,
|
||
width: 380,
|
||
background: "#fff",
|
||
borderLeft: "1px solid #e8e4dc",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
boxShadow: "-4px 0 24px #1a1a1a08",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
}
|
||
>
|
||
{/* Header — structural: circle logo + threads; slide-out: wordmark */}
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
height: 48,
|
||
padding: "0 12px",
|
||
boxSizing: "border-box",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
gap: 6,
|
||
}
|
||
: {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "14px 16px",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}
|
||
}
|
||
>
|
||
{structural ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
) : (
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 6px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-lora),serif",
|
||
fontSize: "0.95rem",
|
||
fontWeight: 400,
|
||
color: "#1a1a1a",
|
||
letterSpacing: "-0.01em",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
Vibn AI
|
||
</span>
|
||
<ChevronDown
|
||
style={{
|
||
width: 13,
|
||
height: 13,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 6,
|
||
padding: "2px 8px",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 160,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
)}
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: structural ? "4px 5px" : "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus
|
||
style={{
|
||
width: structural ? 14 : 15,
|
||
height: structural ? 14 : 15,
|
||
}}
|
||
/>
|
||
</button>
|
||
{!structural && (
|
||
<button
|
||
type="button"
|
||
onClick={() => setOpen(false)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="Close"
|
||
>
|
||
<ChevronRight style={{ width: 15, height: 15 }} />
|
||
</button>
|
||
)}
|
||
</div>
|
||
</div>
|
||
|
||
{conversationColumn}
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
I have implemented both of the features you requested to improve the chat UX!
|
||
|
||
### 1. "Caramelizing onions..." Loading Animation
|
||
I've added the active thinking indicator right above the chat input in `components/vibn-chat/chat-panel.tsx`.
|
||
- When the AI is actively processing tasks (the `sending` state is true), it will now display a custom burnt-orange spinning sunburst icon (matching your screenshot).
|
||
- It smoothly cycles through fun loading phrases like `"Caramelizing onions..."`, `"Reticulating splines..."`, `"Writing code..."`, etc.
|
||
|
||
### 2. Mandatory Completion Summaries
|
||
The reason the AI was ending its tasks silently was due to it dropping out of its tool-calling loop without generating a final text response. To fix this, I updated the system prompt in `app/api/chat/route.ts` to strictly enforce a final response:
|
||
```markdown
|
||
- **NEVER end your work silently.** When you are done running tools and your turn is ending, you MUST send a final conversational summary so the user knows you're finished. (e.g., "Done. I built out the onboarding flow..."). NEVER end your turn without a final text message.
|
||
```
|
||
|
||
The AI should now always end its turn by telling you exactly what was accomplished, avoiding the frustrating "silent stop" after firing off a bunch of tools.
|
||
|
||
If you start a new prompt, you should see the new loading animation cycle right away!
|
||
|
||
## User (checkpoint)
|
||
|
||
okay i dont think thats quite what you wanted.
|
||
|
||
"/opt/homebrew/bin/pyenv" shell - sh 3.6.13
|
||
clear
|
||
Last login: Wed May 13 15:00:27 on ttys000
|
||
markhenderson@Mac vibn-frontend % "/opt/homebrew/bin/pyenv" shell - sh 3.6.13
|
||
pyenv: shell integration not enabled. Run `pyenv init' for instructions.
|
||
markhenderson@Mac vibn-frontend % clear
|
||
markhenderson@Mac vibn-frontend % npm run dev
|
||
|
||
> vibn-frontend@0.1.0 dev
|
||
> next dev
|
||
|
||
[baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D`
|
||
▲ Next.js 16.0.1 (Turbopack)
|
||
- Local: http://localhost:3000
|
||
- Network: http://192.168.1.66:3000
|
||
- Environments: .env.local
|
||
- Experiments (use with caution):
|
||
· clientTraceMetadata
|
||
|
||
✓ Starting...
|
||
✓ Ready in 3.1s
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
○ Compiling /[workspace]/project/[projectId]/preview ...
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
Firebase not configured - using PostgreSQL backend
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/preview 200 in 3.8s (compile: 3.5s, render: 249ms)
|
||
GET /api/auth/session 200 in 2.6s (compile: 1408ms, render: 1199ms)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 905ms (compile: 128ms, render: 778ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 5.0s (compile: 1425ms, render: 3.5s)
|
||
GET /api/chat/threads/6b2be10e-3a90-4980-9dd4-35d1ea43e530 200 in 1570ms (compile: 607ms, render: 963ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 2.3s (compile: 4ms, render: 2.3s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
POST /api/chat 200 in 16.1s (compile: 414ms, render: 15.6s)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 472ms (compile: 46ms, render: 426ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && test -d '/workspace/getacquired-2-0/.git' && echo present || echo absent"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":30000,"command":"cd '/workspace' && cd '/workspace/getacquired-2-0' && git add -A && if git diff --cached --quiet; then echo CLEAN && exit 0; fi && git commit -m 'Yes, I actually do!' && SHA=$(git rev-parse --short HEAD) && git push -u origin HEAD 2>&1 | tail -n 5 && echo COMMITTED $SHA"}
|
||
Reload env: .env.local
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
Firebase not configured - using PostgreSQL backend
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/preview 200 in 631ms (compile: 160ms, render: 471ms)
|
||
GET /api/auth/session 200 in 1172ms (compile: 325ms, render: 847ms)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 1046ms (compile: 48ms, render: 998ms)
|
||
GET /api/chat/threads/6b2be10e-3a90-4980-9dd4-35d1ea43e530 200 in 820ms (compile: 44ms, render: 777ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 4.2s (compile: 128ms, render: 4.1s)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 2.4s (compile: 13ms, render: 2.3s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
POST /api/chat 200 in 13.3s (compile: 82ms, render: 13.2s)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 320ms (compile: 10ms, render: 309ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && test -d '/workspace/getacquired-2-0/.git' && echo present || echo absent"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":30000,"command":"cd '/workspace' && cd '/workspace/getacquired-2-0' && git add -A && if git diff --cached --quiet; then echo CLEAN && exit 0; fi && git commit -m '<||DSML||tool_calls> <||DSML||invoke name=\"request_visual_qa\"> <||DSML||parameter name=\"targetPath\" string=\"true\">src/app/page.tsx</||DSML||parameter> </||DSML||invoke> <||DSML||in' && SHA=$(git rev-parse --short HEAD) && git push -u origin HEAD 2>&1 | tail -n 5 && echo COMMITTED $SHA"}
|
||
^C[baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D`
|
||
|
||
markhenderson@Mac vibn-frontend % npm run dev
|
||
|
||
> vibn-frontend@0.1.0 dev
|
||
> next dev
|
||
|
||
[baseline-browser-mapping] The data in this module is over two months old. To ensure accurate Baseline data, please update: `npm i baseline-browser-mapping@latest -D`
|
||
▲ Next.js 16.0.1 (Turbopack)
|
||
- Local: http://localhost:3000
|
||
- Network: http://192.168.1.66:3000
|
||
- Environments: .env.local
|
||
- Experiments (use with caution):
|
||
· clientTraceMetadata
|
||
|
||
✓ Starting...
|
||
✓ Ready in 2.1s
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
Firebase not configured - using PostgreSQL backend
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/preview 200 in 3.1s (compile: 2.8s, render: 333ms)
|
||
GET /api/auth/session 200 in 2.1s (compile: 1288ms, render: 823ms)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 871ms (compile: 116ms, render: 755ms)
|
||
GET /api/chat/threads/6b2be10e-3a90-4980-9dd4-35d1ea43e530 200 in 1431ms (compile: 575ms, render: 856ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 4.5s (compile: 1311ms, render: 3.2s)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 1284ms (compile: 3ms, render: 1282ms)
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
Firebase not configured - using PostgreSQL backend
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/preview 200 in 1042ms (compile: 547ms, render: 496ms)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 407ms (compile: 8ms, render: 400ms)
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/preview 200 in 401ms (compile: 20ms, render: 381ms)
|
||
GET /api/auth/session 200 in 286ms (compile: 22ms, render: 264ms)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 641ms (compile: 5ms, render: 635ms)
|
||
GET /api/chat/threads/6b2be10e-3a90-4980-9dd4-35d1ea43e530 200 in 1003ms (compile: 6ms, render: 997ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 2.5s (compile: 13ms, render: 2.5s)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 1244ms (compile: 9ms, render: 1234ms)
|
||
POST /api/chat/threads 200 in 1054ms (compile: 22ms, render: 1032ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
POST /api/mcp 200 in 1179ms (compile: 533ms, render: 646ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":3000,"command":"cd '/workspace' && kill 26992 2>/dev/null || true"}
|
||
POST /api/mcp 200 in 3.7s (compile: 9ms, render: 3.7s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":3000,"command":"cd '/workspace' && kill 27106 2>/dev/null || true"}
|
||
POST /api/mcp 200 in 3.4s (compile: 3ms, render: 3.4s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && ss -tlnp 2>/dev/null | grep ':3000\b' | head -1; lsof -iTCP:3000 -sTCP:LISTEN -n -P 2>/dev/null | tail -n +2 | head -1 || true"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && mkdir -p /var/log/vibn-dev && cd /workspace && nohup env PORT=3000 VIBN_DEV_SERVER_ID=ds_0ce24d77f84f bash -lc 'export HOST=0.0.0.0 HOSTNAME=0.0.0.0 VITE_DEV_SERVER_HOST=0.0.0.0 WEBPACK_DEV_SERVER_HOST=0.0.0.0; cd getacquired-2-0 && npm run dev' > /var/log/vibn-dev/ds_0ce24d77f84f.log 2>&1 & echo $!"}
|
||
POST /api/mcp 200 in 6.7s (compile: 1476µs, render: 6.7s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":130000,"command":"cd '/workspace' && last_code=000; for i in $(seq 1 120); do for path in / ''; do code=$(curl -sS -o /dev/null -w '%{http_code}' --max-time 2 --connect-timeout 2 \"http://127.0.0.1:3000$path\" 2>/dev/null || printf '000'); last_code=$code; [ \"$code\" != \"000\" ] && [ -n \"$code\" ] && exit 0; done; sleep 1; done; echo \"PROBE_FAIL last_code=$last_code port=3000\"; echo \"PROBE_FAIL ps=$(ps aux | grep -E 'node|npm|next|vite' | grep -v grep | head -3 | tr '\n' '|')\"; echo \"PROBE_FAIL log_tail=$(tail -20 /var/log/vibn-dev/ds_0ce24d77f84f.log 2>/dev/null | tr '\n' '|' | head -c 2000)\"; exit 1"}
|
||
[probe] FAILED {"projectId":"be169fe8-d381-422b-8e9c-d2e513a8f902","serverId":"ds_0ce24d77f84f","port":3000,"stdout":""}
|
||
POST /api/chat 200 in 45s (compile: 446ms, render: 44s)
|
||
PATCH /api/chat/threads/15b97cc6-a037-4e34-b839-d1b4db1fe4d9 200 in 333ms (compile: 13ms, render: 320ms)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 250ms (compile: 1864µs, render: 248ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && test -d '/workspace/getacquired-2-0/.git' && echo present || echo absent"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":30000,"command":"cd '/workspace' && cd '/workspace/getacquired-2-0' && git add -A && if git diff --cached --quiet; then echo CLEAN && exit 0; fi && git commit -m 'I'\\''ve stopped the previous dev servers and spun up exactly one fresh instance on port 3000.' && SHA=$(git rev-parse --short HEAD) && git push -u origin HEAD 2>&1 | tail -n 5 && echo COMMITTED $SHA"}
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/hosting 200 in 1885ms (compile: 1866ms, render: 19ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 2.2s (compile: 22ms, render: 2.2s)
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/preview 200 in 50ms (compile: 20ms, render: 29ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 1728ms (compile: 6ms, render: 1722ms)
|
||
GET /api/auth/session 200 in 226ms (compile: 14ms, render: 212ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
POST /api/mcp 200 in 611ms (compile: 28ms, render: 583ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && tail -n 100 /var/log/vibn-dev/ds_0ce24d77f84f.log 2>/dev/null || echo '(no log yet)'"}
|
||
POST /api/mcp 200 in 3.4s (compile: 33ms, render: 3.4s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace' && kill -9 27136 || true; pkill -9 -f \"next\" || true; pkill -9 -f \"node\" || true"}
|
||
POST /api/mcp 200 in 3.4s (compile: 10ms, render: 3.4s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":3000,"command":"cd '/workspace' && kill 27335 2>/dev/null || true"}
|
||
POST /api/mcp 200 in 3.2s (compile: 25ms, render: 3.2s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && ss -tlnp 2>/dev/null | grep ':3000\b' | head -1; lsof -iTCP:3000 -sTCP:LISTEN -n -P 2>/dev/null | tail -n +2 | head -1 || true"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && mkdir -p /var/log/vibn-dev && cd /workspace && nohup env PORT=3000 VIBN_DEV_SERVER_ID=ds_4c59d60d5df8 bash -lc 'export HOST=0.0.0.0 HOSTNAME=0.0.0.0 VITE_DEV_SERVER_HOST=0.0.0.0 WEBPACK_DEV_SERVER_HOST=0.0.0.0; cd getacquired-2-0 && npm run dev' > /var/log/vibn-dev/ds_4c59d60d5df8.log 2>&1 & echo $!"}
|
||
POST /api/mcp 200 in 6.6s (compile: 3ms, render: 6.6s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":130000,"command":"cd '/workspace' && last_code=000; for i in $(seq 1 120); do for path in / ''; do code=$(curl -sS -o /dev/null -w '%{http_code}' --max-time 2 --connect-timeout 2 \"http://127.0.0.1:3000$path\" 2>/dev/null || printf '000'); last_code=$code; [ \"$code\" != \"000\" ] && [ -n \"$code\" ] && exit 0; done; sleep 1; done; echo \"PROBE_FAIL last_code=$last_code port=3000\"; echo \"PROBE_FAIL ps=$(ps aux | grep -E 'node|npm|next|vite' | grep -v grep | head -3 | tr '\n' '|')\"; echo \"PROBE_FAIL log_tail=$(tail -20 /var/log/vibn-dev/ds_4c59d60d5df8.log 2>/dev/null | tr '\n' '|' | head -c 2000)\"; exit 1"}
|
||
[probe] FAILED {"projectId":"be169fe8-d381-422b-8e9c-d2e513a8f902","serverId":"ds_4c59d60d5df8","port":3000,"stdout":""}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && tail -n 100 /var/log/vibn-dev/ds_4c59d60d5df8.log 2>/dev/null || echo '(no log yet)'"}
|
||
POST /api/mcp 200 in 3.2s (compile: 16ms, render: 3.2s)
|
||
POST /api/chat 200 in 58s (compile: 26ms, render: 58s)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 964ms (compile: 9ms, render: 955ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && test -d '/workspace/getacquired-2-0/.git' && echo present || echo absent"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":30000,"command":"cd '/workspace' && cd '/workspace/getacquired-2-0' && git add -A && if git diff --cached --quiet; then echo CLEAN && exit 0; fi && git commit -m 'I found the issue!' && SHA=$(git rev-parse --short HEAD) && git push -u origin HEAD 2>&1 | tail -n 5 && echo COMMITTED $SHA"}
|
||
GET /api/auth/session 200 in 420ms (compile: 67ms, render: 353ms)
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/plan 200 in 1775ms (compile: 1747ms, render: 28ms)
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/plan 200 in 26ms (compile: 7ms, render: 18ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/plan 200 in 1464ms (compile: 681ms, render: 783ms)
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/preview 200 in 25ms (compile: 7ms, render: 18ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/plan 200 in 339ms (compile: 6ms, render: 332ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 2.1s (compile: 4ms, render: 2.1s)
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/product 200 in 965ms (compile: 949ms, render: 17ms)
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/hosting 200 in 35ms (compile: 11ms, render: 25ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 2.1s (compile: 13ms, render: 2.0s)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 2.7s (compile: 8ms, render: 2.7s)
|
||
⚠ ./node_modules/@fastify/otel/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
⚠ ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node
|
||
Package import-in-the-middle can't be external
|
||
The request import-in-the-middle matches serverExternalPackages (or the default list).
|
||
The package resolves to a different version when requested from the project directory (3.0.1) compared to the package requested from the importing module (2.0.6).
|
||
Make sure to install the same version of the package in both locations.
|
||
|
||
|
||
GET /mark-account/project/be169fe8-d381-422b-8e9c-d2e513a8f902/preview 200 in 42ms (compile: 18ms, render: 24ms)
|
||
GET /api/projects/be169fe8-d381-422b-8e9c-d2e513a8f902/anatomy 200 in 2.1s (compile: 6ms, render: 2.1s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace/getacquired-2-0' && find . -name \"page.tsx\" -o -name \"index.tsx\""}
|
||
POST /api/mcp 200 in 4.8s (compile: 5ms, render: 4.8s)
|
||
POST /api/mcp 404 in 253ms (compile: 6ms, render: 247ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace' && test -f '/workspace/getacquired-2-0/src/app/page.tsx' && sed -n '1,500p' '/workspace/getacquired-2-0/src/app/page.tsx'"}
|
||
POST /api/mcp 200 in 4.1s (compile: 3ms, render: 4.1s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace' && test -f '/workspace/getacquired-2-0/src/app/page.tsx' && sed -n '124,623p' '/workspace/getacquired-2-0/src/app/page.tsx'"}
|
||
POST /api/mcp 200 in 3.4s (compile: 15ms, render: 3.3s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace' && test -f '/workspace/getacquired-2-0/src/app/page.tsx' && sed -n '256,755p' '/workspace/getacquired-2-0/src/app/page.tsx'"}
|
||
POST /api/mcp 200 in 3.4s (compile: 5ms, render: 3.4s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace' && test -f '/workspace/getacquired-2-0/src/app/page.tsx' && sed -n '451,950p' '/workspace/getacquired-2-0/src/app/page.tsx'"}
|
||
POST /api/mcp 200 in 3.4s (compile: 12ms, render: 3.3s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace' && test -f '/workspace/getacquired-2-0/src/app/page.tsx' && sed -n '351,850p' '/workspace/getacquired-2-0/src/app/page.tsx'"}
|
||
POST /api/mcp 200 in 4.2s (compile: 4ms, render: 4.2s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace/getacquired-2-0' && cat package.json | grep flyonui"}
|
||
POST /api/mcp 200 in 4.0s (compile: 5ms, render: 4.0s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace' && test -f '/workspace/getacquired-2-0/tailwind.config.ts' && sed -n '1,500p' '/workspace/getacquired-2-0/tailwind.config.ts'"}
|
||
POST /api/mcp 404 in 4.1s (compile: 5ms, render: 4.1s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace/getacquired-2-0' && ls -la tailwind*"}
|
||
POST /api/mcp 200 in 3.4s (compile: 7ms, render: 3.3s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace/getacquired-2-0' && ls -la"}
|
||
POST /api/mcp 200 in 3.4s (compile: 4ms, render: 3.4s)
|
||
✓ Compiled in 264ms
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 972ms (compile: 8ms, render: 965ms)
|
||
GET /api/chat/threads/15b97cc6-a037-4e34-b839-d1b4db1fe4d9 200 in 703ms (compile: 9ms, render: 694ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace/getacquired-2-0' && find . -name \"tailwind*\""}
|
||
POST /api/mcp 200 in 3.5s (compile: 7ms, render: 3.5s)
|
||
✓ Compiled in 117ms
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 295ms (compile: 7ms, render: 288ms)
|
||
GET /api/chat/threads/15b97cc6-a037-4e34-b839-d1b4db1fe4d9 200 in 341ms (compile: 4ms, render: 336ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace' && test -f '/workspace/getacquired-2-0/src/app/globals.css' && sed -n '1,500p' '/workspace/getacquired-2-0/src/app/globals.css'"}
|
||
POST /api/mcp 200 in 3.2s (compile: 8ms, render: 3.2s)
|
||
✓ Compiled in 141ms
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 774ms (compile: 30ms, render: 744ms)
|
||
GET /api/chat/threads/15b97cc6-a037-4e34-b839-d1b4db1fe4d9 200 in 364ms (compile: 23ms, render: 341ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":60000,"command":"cd '/workspace' && mkdir -p '/workspace/getacquired-2-0/src/app' && printf %s 'aW1wb3J0IFJlYWN0IGZyb20gInJlYWN0IjsKaW1wb3J0IExpbmsgZnJvbSAibmV4dC9saW5rIjsKaW1wb3J0IHsgU2VhcmNoLCBNYXBQaW4sIEJ1aWxkaW5nMiwgQXJyb3dSaWdodCwgVHJlbmRpbmdVcCwgU2hpZWxkQ2hlY2ssIEZpbGVUZXh0LCBTdGFyLCBCb29rT3BlbiwgQ2FsY3VsYXRvciwgVXNlcnMsIFN0b3JlLCBDaGV2cm9uUmlnaHQsIENoZWNrQ2lyY2xlLCBCYXJDaGFydDMsIE1lc3NhZ2VTcXVhcmUsIEV5ZSwgWmFwLCBTcGFya2xlcywgSGFuZHNoYWtlIH0gZnJvbSAibHVjaWRlLXJlYWN0IjsKCmNvbnN0IGZlYXR1cmVkTGlzdGluZ3MgPSBbCiAgeyBpZDogMSwgdGl0bGU6ICJIaWdobHkgUHJvZml0YWJsZSBIVkFDIENvbXBhbnkiLCBsb2NhdGlvbjogIkF1c3RpbiwgVFgiLCBwcmljZTogIiQxLDIwMCwwMDAiLCByZXZlbnVlOiAiJDg1MCwwMDAiLCBjYXNoRmxvdzogIiQzMTAsMDAwIiwgZWJpdGRhOiAiJDI3NSwwMDAiLCBkYXlzT25NYXJrZXQ6IDE0LCBpbWc6ICJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTYyMTkwNTI1MTE4OS0wOGI0NWQ2YTI2OWU/dz02MDAmaD00MDAmZml0PWNyb3AiLCBjYXRlZ29yeTogIkhWQUMgQ29udHJhY3RvciIgfSwKICB7IGlkOiAyLCB0aXRsZTogIkVzdGFibGlzaGVkIERlbnRhbCBQcmFjdGljZSIsIGxvY2F0aW9uOiAiTWlhbWksIEZMIiwgcHJpY2U6ICIkMiw1MDAsMDAwIiwgcmV2ZW51ZTogIiQxLDQwMCwwMDAiLCBjYXNoRmxvdzogIiQ2MjAsMDAwIiwgZWJpdGRhOiAiJDU4MCwwMDAiLCBkYXlzT25NYXJrZXQ6IDgsIGltZzogImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNjA2ODExODQxNjg5LTIzZGZkZGNlM2U5NT93PTYwMCZoPTQwMCZmaXQ9Y3JvcCIsIGNhdGVnb3J5OiAiRGVudGFsIFByYWN0aWNlIiB9LAogIHsgaWQ6IDMsIHRpdGxlOiAiQ29tbWVyY2lhbCBMYW5kc2NhcGluZyBCMkIiLCBsb2NhdGlvbjogIkRlbnZlciwgQ08iLCBwcmljZTogIiQ4NTAsMDAwIiwgcmV2ZW51ZTogIiQ2MjAsMDAwIiwgY2FzaEZsb3c6ICIkMjQ1LDAwMCIsIGViaXRkYTogIiQyMTAsMDAwIiwgZGF5c09uTWFya2V0OiAyMiwgaW1nOiAiaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tL3Bob3RvLTE1OTI0MjQwMDU2ODgtNTczODBkYzVmOGU3P3c9NjAwJmg9NDAwJmZpdD1jcm9wIiwgY2F0ZWdvcnk6ICJMYW5kc2NhcGluZyIgfSwKICB7IGlkOiA0LCB0aXRsZTogIlByZW1pZXIgUGx1bWJpbmcgJiBEcmFpbiBTZXJ2aWNlIiwgbG9jYXRpb246ICJOYXNodmlsbGUsIFROIiwgcHJpY2U6ICIkMSw4NTAsMDAwIiwgcmV2ZW51ZTogIiQxLDEwMCwwMDAiLCBjYXNoRmxvdzogIiQ0ODAsMDAwIiwgZWJpdGRhOiAiJDQ0NSwwMDAiLCBkYXlzT25NYXJrZXQ6IDUsIGltZzogImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTgxNTc4NzMxNTQ4LWM2NDY5NWNjNjk1Mj93PTYwMCZoPTQwMCZmaXQ9Y3JvcCIsIGNhdGVnb3J5OiAiUGx1bWJpbmciIH0sCiAgeyBpZDogNSwgdGl0bGU6ICJBdXRvIFJlcGFpciBTaG9wIOKAlCAzMHlyIFJlcHV0YXRpb24iLCBsb2NhdGlvbjogIlBvcnRsYW5kLCBPUiIsIHByaWNlOiAiJDk3NSwwMDAiLCByZXZlbnVlOiAiJDc4MCwwMDAiLCBjYXNoRmxvdzogIiQyOTUsMDAwIiwgZWJpdGRhOiAiJDI2MCwwMDAiLCBkYXlzT25NYXJrZXQ6IDExLCBpbWc6ICJodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTQ4Nzc1NDE4MDQ1MS1jNDU2ZjcxOWExZmM/dz02MDAmaD00MDAmZml0PWNyb3AiLCBjYXRlZ29yeTogIkF1dG8gUmVwYWlyIiB9LAogIHsgaWQ6IDYsIHRpdGxlOiAiQm91dGlxdWUgUm9vZmluZyBDb21wYW55IiwgbG9jYXRpb246ICJDaGFybG90dGUsIE5DIiwgcHJpY2U6ICIkMSw2NTAsMDAwIiwgcmV2ZW51ZTogIiQxLDk1MCwwMDAiLCBjYXNoRmxvdzogIiQ1MjAsMDAwIiwgZWJpdGRhOiAiJDQ5MCwwMDAiLCBkYXlzT25NYXJrZXQ6IDMsIGltZzogImh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNjMyMTUwNDA3MDgzLWYwYWRmM2M5ZjJmMz93PTYwMCZoPTQwMCZmaXQ9Y3JvcCIsIGNhdGVnb3J5OiAiQ29uc3RydWN0aW9uIiB9LApdOwoKY29uc3Qgc2VjdG9ycyA9IFsKICB7IG5hbWU6ICJIVkFDIENvbnRyYWN0b3JzIiwgY291bnQ6IDM0MiwgaWNvbjogIuKdhO+4jyIgfSwKICB7IG5hbWU6ICJEZW50YWwgUHJhY3RpY2VzIiwgY291bnQ6IDI4NywgaWNvbjogIvCfprciIH0sCiAgeyBuYW1lOiAiUGx1bWJpbmciLCBjb3VudDogMTk1LCBpY29uOiAi8J+UpyIgfSwKICB7IG5hbWU6ICJMYW5kc2NhcGluZyIsIGNvdW50OiAxNzgsIGljb246ICLwn4y/IiB9LAogIHsgbmFtZTogIkF1dG8gUmVwYWlyIiwgY291bnQ6IDIyMSwgaWNvbjogIvCfmpciIH0sCiAgeyBuYW1lOiAiQ2xlYW5pbmcgU2VydmljZXMiLCBjb3VudDogMTU2LCBpY29uOiAi8J+nuSIgfSwKICB7IG5hbWU6ICJSZXN0YXVyYW50cyIsIGNvdW50OiA0MTIsIGljb246ICLwn42977iPIiB9LAogIHsgbmFtZTogIkNhZmVzIiwgY291bnQ6IDE4OSwgaWNvbjogIuKYlSIgfSwKXTsKCmNvbnN0IGxvY2F0aW9ucyA9IFsKICB7IG5hbWU6ICJUZXhhcyIsIGNvdW50OiA4OTIgfSwKICB7IG5hbWU6ICJGbG9yaWRhIiwgY291bnQ6IDc0NSB9LAogIHsgbmFtZTogIkNhbGlmb3JuaWEiLCBjb3VudDogMTIwMSB9LAogIHsgbmFtZTogIk5ldyBZb3JrIiwgY291bnQ6IDYzNCB9LAogIHsgbmFtZTogIkNvbG9yYWRvIiwgY291bnQ6IDQyMyB9LAogIHsgbmFtZTogIlRlbm5lc3NlZSIsIGNvdW50OiAzMTIgfSwKICB7IG5hbWU6ICJOb3J0aCBDYXJvbGluYSIsIGNvdW50OiAyODkgfSwKICB7IG5hbWU6ICJPbnRhcmlvLCBDYW5hZGEiLCBjb3VudDogNDU2IH0sCl07Cgpjb25zdCBob3dJdFdvcmtzQnV5ZXIgPSBbCiAgeyBzdGVwOiAxLCB0aXRsZTogIlNlYXJjaCAmIERpc2NvdmVyIiwgZGVzY3JpcHRpb246ICJCcm93c2UgdGhvdXNhbmRzIG9mIHZldHRlZCB0cmFkaXRpb25hbCBidXNpbmVzc2VzIGZvciBzYWxlLiBGaWx0ZXIgYnkgc2VjdG9yLCBsb2NhdGlvbiwgcHJpY2UsIGFuZCBjYXNoIGZsb3cuIiwgaWNvbjogU2VhcmNoIH0sCiAgeyBzdGVwOiAyLCB0aXRsZTogIlNpZ24gTkRBICYgQWNjZXNzIERhdGEiLCBkZXNjcmlwdGlvbjogIlJlcXVlc3QgY29uZmlkZW50aWFsIGRldGFpbHMuIFNpZ24gYSBkaWdpdGFsIE5EQSBpbiBzZWNvbmRzIHRvIHVubG9jayBmdWxsIGZpbmFuY2lhbHMsIENJTXMsIGFuZCBzZWxsZXIgY29udGFjdC4iLCBpY29uOiBGaWxlVGV4dCB9LAogIHsgc3RlcDogMywgdGl0bGU6ICJDb25uZWN0ICYgQWNxdWlyZSIsIGRlc2NyaXB0aW9uOiAiTWVzc2FnZSBzZWxsZXJzIGRpcmVjdGx5LiBOZWdvdGlhdGUsIHBlcmZvcm0gZHVlIGRpbGlnZW5jZSwgYW5kIGNsb3NlIHRoZSBkZWFsIOKAlCBubyBicm9rZXIgZmVlcy4iLCBpY29uOiBIYW5kc2hha2UgfSwKXTsKCmNvbnN0IGhvd0l0V29ya3NTZWxsZXIgPSBbCiAgeyBzdGVwOiAxLCB0aXRsZTogIkxpc3QgZm9yIEZyZWUiLCBkZXNjcmlwdGlvbjogIkNyZWF0ZSBhIGxpc3RpbmcgaW4gbWludXRlcy4gQUkgaGVscHMgeW91IGdlbmVyYXRlIGEgcHJvZmVzc2lvbmFsIHRlYXNlciBwcm9maWxlIGZyb20geW91ciBmaW5hbmNpYWxzLiIsIGljb246IEZpbGVUZXh0IH0sCiAgeyBzdGVwOiAyLCB0aXRsZTogIlJlY2VpdmUgSW5xdWlyaWVzIiwgZGVzY3JpcHRpb246ICJRdWFsaWZpZWQgYnV5ZXJzIHN1Ym1pdCBvZmZlcnMgYWZ0ZXIgc2lnbmluZyBhbiBOREEuIFlvdSBjb250cm9sIHdobyBzZWVzIHlvdXIgY29uZmlkZW50aWFsIGRhdGEuIiwgaWNvbjogTWVzc2FnZVNxdWFyZSB9LAogIHsgc3RlcDogMywgdGl0bGU6ICJTZWxsIG9uIFlvdXIgVGVybXMiLCBkZXNjcmlwdGlvbjogIk5lZ290aWF0ZSBkaXJlY3RseSB3aXRoIHNlcmlvdXMgYnV5ZXJzLiBDbG9zZSB0aGUgZGVhbCBhbmQga2VlcCBtb3JlIG9mIHlvdXIgc2FsZSBwcmljZSDigJQgbm8gMTAlIGJyb2tlciBjb21taXNzaW9uLiIsIGljb246IFRyZW5kaW5nVXAgfSwKXTsKCmNvbnN0IHRlc3RpbW9uaWFscyA9IFsKICB7IHF1b3RlOiAiSSBsaXN0ZWQgbXkgSFZBQyBjb21wYW55IG9uIEdldEFjcXVpcmVkIGFuZCBoYWQgMyBxdWFsaWZpZWQgb2ZmZXJzIHdpdGhpbiAyIHdlZWtzLiBTb2xkIGZvciA5NSUgb2YgYXNraW5nLiBUaGUgQUkgQ0lNIGdlbmVyYXRvciBzYXZlZCBtZSAkNSwwMDAgaW4gYnJva2VyIGZlZXMuIiwgbmFtZTogIk1pa2UgUi4iLCB0aXRsZTogIlNvbGQgSFZBQyBDb21wYW55LCBBdXN0aW4gVFgiIH0sCiAgeyBxdW90ZTogIkFmdGVyIDYgbW9udGhzIHdpdGggYSB0cmFkaXRpb25hbCBicm9rZXIgYW5kIHplcm8gb2ZmZXJzLCBJIGxpc3RlZCBoZXJlLiBXaXRoaW4gYSBtb250aCBJIGhhZCBhbiBMT0kgc2lnbmVkLiBUaGUgZGlyZWN0LXRvLXNlbGxlciBtb2RlbCBpcyBhIGdhbWUgY2hhbmdlci4iLCBuYW1lOiAiU2FyYWggSy4iLCB0aXRsZTogIlNvbGQgRGVudGFsIFByYWN0aWNlLCBNaWFtaSBGTCIgfSwKICB7IHF1b3RlOiAiQXMgYSBmaXJzdC10aW1lIGJ1eWVyLCB0aGUgcHJvY2VzcyB3YXMgaW5jcmVkaWJseSBzbW9vdGguIFRoZSBOREEgd29ya2Zsb3cgaXMgZnJpY3Rpb25sZXNzIGFuZCB0aGUgc2VsbGVyIHdhcyByZXNwb25zaXZlLiBDbG9zZWQgaW4gNDUgZGF5cy4iLCBuYW1lOiAiRGF2aWQgTC4iLCB0aXRsZTogIkFjcXVpcmVkIExhbmRzY2FwaW5nIENvLiwgRGVudmVyIENPIiB9LApdOwoKZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSG9tZSgpIHsKICByZXR1cm4gKAogICAgPD4KICAgICAgey8qID09PT09PT09PT0gSEVSTyA9PT09PT09PT09ICovfQogICAgICA8c2VjdGlvbiBjbGFzc05hbWU9ImJnLWJhc2UtMjAwIHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiI+CiAgICAgICAgPGRpdiBjbGFzc05hbWU9ImFic29sdXRlIGluc2V0LTAgb3BhY2l0eS1bMC4wM10gcG9pbnRlci1ldmVudHMtbm9uZSI+CiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iYWJzb2x1dGUgaW5zZXQtMCIgc3R5bGU9e3sgYmFja2dyb3VuZEltYWdlOiAncmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyNSUgMjUlLCBjdXJyZW50Q29sb3IgMXB4LCB0cmFuc3BhcmVudCAxcHgpJywgYmFja2dyb3VuZFNpemU6ICc2MHB4IDYwcHgnIH19IC8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgCiAgICAgICAgPGRpdiBjbGFzc05hbWU9ImNvbnRhaW5lciBteC1hdXRvIHB4LTYgcHktMjQgbWQ6cHktMzIgcmVsYXRpdmUgei0xMCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlciI+CiAgICAgICAgICB7LyogQmFkZ2UgKi99CiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iYmFkZ2UgYmFkZ2UtcHJpbWFyeSBiYWRnZS1vdXRsaW5lIGJhZGdlLWxnIGdhcC0yIG1iLTggcHktNCBweC01IHNoYWRvdy1zbSI+CiAgICAgICAgICAgIDxTcGFya2xlcyBjbGFzc05hbWU9InctNCBoLTQiIC8+CiAgICAgICAgICAgIFRoZSBtb2Rlcm4gd2F5IHRvIGJ1eSAmIHNlbGwgTWFpbiBTdHJlZXQgYnVzaW5lc3NlcwogICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPGgxIGNsYXNzTmFtZT0idGV4dC01eGwgbWQ6dGV4dC02eGwgbGc6dGV4dC03eGwgZm9udC1leHRyYWJvbGQgdHJhY2tpbmctdGlnaHQgbWItNiBsZWFkaW5nLXRpZ2h0IHRleHQtYmFzZS1jb250ZW50IG1heC13LTR4bCI+CiAgICAgICAgICAgIEZpbmQgdGhlIHJpZ2h0eyIgIn0KICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJ0ZXh0LXByaW1hcnkiPgogICAgICAgICAgICAgIGJ1c2luZXNzIGZvciB5b3UKICAgICAgICAgICAgPC9zcGFuPgogICAgICAgICAgPC9oMT4KICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1sZyBtZDp0ZXh0LXhsIHRleHQtYmFzZS1jb250ZW50LzcwIG1iLTEwIG1heC13LTJ4bCBteC1hdXRvIGxlYWRpbmctcmVsYXhlZCI+CiAgICAgICAgICAgIFNlYXJjaCB0aG91c2FuZHMgb2YgcHJvZml0YWJsZSB0cmFkaXRpb25hbCBidXNpbmVzc2VzIGZvciBzYWxlLiBObyBicm9rZXJzLiBObyBjb21taXNzaW9uIGZlZXMuIAogICAgICAgICAgICBDb25uZWN0IGRpcmVjdGx5IHdpdGggc2VsbGVycyBhbmQga2VlcCBtb3JlIG9mIHlvdXIgbW9uZXkuCiAgICAgICAgICA8L3A+CgogICAgICAgICAgey8qIFNlYXJjaCBCYXIgKi99CiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iYmctYmFzZS0xMDAgcm91bmRlZC1ib3ggc2hhZG93LWxnIHAtMiBtYXgtdy00eGwgdy1mdWxsIG14LWF1dG8gZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtMiBib3JkZXIgYm9yZGVyLWJhc2UtMzAwIj4KICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImZsZXgtMSByZWxhdGl2ZSBmbGV4IGl0ZW1zLWNlbnRlciI+CiAgICAgICAgICAgICAgPFNlYXJjaCBjbGFzc05hbWU9ImgtNSB3LTUgdGV4dC1iYXNlLWNvbnRlbnQvNDAgYWJzb2x1dGUgbGVmdC00IHNocmluay0wIiAvPgogICAgICAgICAgICAgIDxpbnB1dCAKICAgICAgICAgICAgICAgIHR5cGU9InRleHQiIAogICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IktleXdvcmQsIGJ1c2luZXNzIHR5cGUsIG9yIHNlY3Rvci4uLiIKICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iaW5wdXQgaW5wdXQtZ2hvc3Qgdy1mdWxsIHBsLTEyIGgtMTIgdGV4dC1iYXNlIGZvY3VzOmJnLXRyYW5zcGFyZW50IGZvY3VzOm91dGxpbmUtbm9uZSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9InctcHggYmctYmFzZS0zMDAgaGlkZGVuIG1kOmJsb2NrIG15LTIiPjwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleC0xIHJlbGF0aXZlIGZsZXggaXRlbXMtY2VudGVyIj4KICAgICAgICAgICAgICA8TWFwUGluIGNsYXNzTmFtZT0iaC01IHctNSB0ZXh0LWJhc2UtY29udGVudC80MCBhYnNvbHV0ZSBsZWZ0LTQgc2hyaW5rLTAiIC8+CiAgICAgICAgICAgICAgPGlucHV0IAogICAgICAgICAgICAgICAgdHlwZT0idGV4dCIgCiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iQ2l0eSwgU3RhdGUsIG9yIFppcCIKICAgICAgICAgICAgICAgIGNsYXNzTmFtZT0iaW5wdXQgaW5wdXQtZ2hvc3Qgdy1mdWxsIHBsLTEyIGgtMTIgdGV4dC1iYXNlIGZvY3VzOmJnLXRyYW5zcGFyZW50IGZvY3VzOm91dGxpbmUtbm9uZSIKICAgICAgICAgICAgICAvPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPExpbmsgaHJlZj0iL2J1c2luZXNzZXMtZm9yLXNhbGUiIGNsYXNzTmFtZT0iYnRuIGJ0bi1wcmltYXJ5IGgtMTIgcHgtOCI+CiAgICAgICAgICAgICAgU2VhcmNoCiAgICAgICAgICAgIDwvTGluaz4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIHsvKiBUcnVzdCBTdGF0cyAqL30KICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJncmlkIGdyaWQtY29scy0yIG1kOmdyaWQtY29scy00IGdhcC04IG10LTE2IG1heC13LTN4bCBteC1hdXRvIHctZnVsbCI+CiAgICAgICAgICAgIHtbCiAgICAgICAgICAgICAgeyB2YWx1ZTogIjEyLDQwMCsiLCBsYWJlbDogIkFjdGl2ZSBMaXN0aW5ncyIgfSwKICAgICAgICAgICAgICB7IHZhbHVlOiAiMywyMDArIiwgbGFiZWw6ICJCdXNpbmVzc2VzIFNvbGQiIH0sCiAgICAgICAgICAgICAgeyB2YWx1ZTogIjQ1LDAwMCsiLCBsYWJlbDogIlF1YWxpZmllZCBCdXllcnMiIH0sCiAgICAgICAgICAgICAgeyB2YWx1ZTogIjk4JSIsIGxhYmVsOiAiU2VsbGVyIFNhdGlzZmFjdGlvbiIgfSwKICAgICAgICAgICAgXS5tYXAoKHN0YXQsIGkpID0+ICgKICAgICAgICAgICAgICA8ZGl2IGtleT17aX0gY2xhc3NOYW1lPSJ0ZXh0LWNlbnRlciBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciI+CiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtM3hsIGZvbnQtYm9sZCB0ZXh0LWJhc2UtY29udGVudCBtYi0xIj57c3RhdC52YWx1ZX08L3A+CiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1iYXNlLWNvbnRlbnQvNjAiPntzdGF0LmxhYmVsfTwvcD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgoKICAgICAgey8qID09PT09PT09PT0gSE9XIElUIFdPUktTID09PT09PT09PT0gKi99CiAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT0iYmctYmFzZS0xMDAgcHktMjQiPgogICAgICAgIDxkaXYgY2xhc3NOYW1lPSJjb250YWluZXIgbXgtYXV0byBweC02IG1heC13LTZ4bCI+CiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0idGV4dC1jZW50ZXIgbWItMTYiPgogICAgICAgICAgICA8aDIgY2xhc3NOYW1lPSJ0ZXh0LTN4bCBtZDp0ZXh0LTR4bCBmb250LWJvbGQgdGV4dC1iYXNlLWNvbnRlbnQgbWItNCI+SG93IEdldEFjcXVpcmVkIFdvcmtzPC9oMj4KICAgICAgICAgICAgPHAgY2xhc3NOYW1lPSJ0ZXh0LWJhc2UtY29udGVudC83MCBtYXgtdy0yeGwgbXgtYXV0byB0ZXh0LWxnIj5XaGV0aGVyIHlvdSdyZSBidXlpbmcgb3Igc2VsbGluZywgd2UndmUgc3RyZWFtbGluZWQgdGhlIHByb2Nlc3MgdG8gYmUgZmFzdGVyLCBmYWlyZXIsIGFuZCBtb3JlIHRyYW5zcGFyZW50LjwvcD4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJncmlkIG1kOmdyaWQtY29scy0yIGdhcC04Ij4KICAgICAgICAgICAgey8qIEZvciBCdXllcnMgKi99CiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJjYXJkIGJnLWJhc2UtMjAwIGJvcmRlciBib3JkZXItYmFzZS0zMDAgc2hhZG93LXNtIj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iY2FyZC1ib2R5IHAtOCBtZDpwLTEwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBtYi04Ij4KICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9InctMTIgaC0xMiByb3VuZGVkLXhsIGJnLXByaW1hcnkvMTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxUcmVuZGluZ1VwIGNsYXNzTmFtZT0idy02IGgtNiB0ZXh0LXByaW1hcnkiIC8+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPSJ0ZXh0LTJ4bCBmb250LWJvbGQgdGV4dC1iYXNlLWNvbnRlbnQiPkZvciBCdXllcnM8L2gzPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0ic3BhY2UteS04Ij4KICAgICAgICAgICAgICAgICAge2hvd0l0V29ya3NCdXllci5tYXAoKHN0ZXApID0+ICgKICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17c3RlcC5zdGVwfSBjbGFzc05hbWU9ImZsZXggZ2FwLTQiPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9InctOCBoLTggcm91bmRlZC1mdWxsIGJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWNvbnRlbnQgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgdGV4dC1zbSBmb250LWJvbGQgc2hyaW5rLTAgbXQtMC41IHNoYWRvdy1zbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIHtzdGVwLnN0ZXB9CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9ImZvbnQtYm9sZCB0ZXh0LWxnIHRleHQtYmFzZS1jb250ZW50Ij57c3RlcC50aXRsZX08L2g0PgogICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtYmFzZS1jb250ZW50LzcwIG10LTEgbGVhZGluZy1yZWxheGVkIj57c3RlcC5kZXNjcmlwdGlvbn08L3A+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgKSl9CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJtdC04IHB0LTYgYm9yZGVyLXQgYm9yZGVyLWJhc2UtMzAwIj4KICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj0iL3NpZ251cCIgY2xhc3NOYW1lPSJidG4gYnRuLXByaW1hcnkgdy1mdWxsIHNtOnctYXV0byI+CiAgICAgICAgICAgICAgICAgICAgU3RhcnQgYnJvd3NpbmcgYnVzaW5lc3NlcyA8QXJyb3dSaWdodCBjbGFzc05hbWU9InctNCBoLTQgbWwtMiIgLz4KICAgICAgICAgICAgICAgICAgPC9MaW5rPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgey8qIEZvciBTZWxsZXJzICovfQogICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iY2FyZCBiZy1wcmltYXJ5IHRleHQtcHJpbWFyeS1jb250ZW50IHNoYWRvdy1tZCI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImNhcmQtYm9keSBwLTggbWQ6cC0xMCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgbWItOCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJ3LTEyIGgtMTIgcm91bmRlZC14bCBiZy1wcmltYXJ5LWNvbnRlbnQvMjAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIiPgogICAgICAgICAgICAgICAgICAgIDxTdG9yZSBjbGFzc05hbWU9InctNiBoLTYgdGV4dC1wcmltYXJ5LWNvbnRlbnQiIC8+CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPSJ0ZXh0LTJ4bCBmb250LWJvbGQiPkZvciBTZWxsZXJzPC9oMz4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9InNwYWNlLXktOCI+CiAgICAgICAgICAgICAgICAgIHtob3dJdFdvcmtzU2VsbGVyLm1hcCgoc3RlcCkgPT4gKAogICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtzdGVwLnN0ZXB9IGNsYXNzTmFtZT0iZmxleCBnYXAtNCI+CiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0idy04IGgtOCByb3VuZGVkLWZ1bGwgYmctcHJpbWFyeS1jb250ZW50IHRleHQtcHJpbWFyeSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciB0ZXh0LXNtIGZvbnQtYm9sZCBzaHJpbmstMCBtdC0wLjUgc2hhZG93LXNtIj4KICAgICAgICAgICAgICAgICAgICAgICAge3N0ZXAuc3RlcH0KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzTmFtZT0iZm9udC1ib2xkIHRleHQtbGciPntzdGVwLnRpdGxlfTwvaDQ+CiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1wcmltYXJ5LWNvbnRlbnQvODAgbXQtMSBsZWFkaW5nLXJlbGF4ZWQiPntzdGVwLmRlc2NyaXB0aW9ufTwvcD4KICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICApKX0KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9Im10LTggcHQtNiBib3JkZXItdCBib3JkZXItcHJpbWFyeS1jb250ZW50LzIwIj4KICAgICAgICAgICAgICAgICAgPExpbmsgaHJlZj0iL2Rhc2hib2FyZC9zZWxsZXIvbGlzdGluZ3MvbmV3IiBjbGFzc05hbWU9ImJ0biBidG4tb3V0bGluZSBiZy1wcmltYXJ5LWNvbnRlbnQgdGV4dC1wcmltYXJ5IGhvdmVyOmJnLXByaW1hcnktY29udGVudC85MCBib3JkZXItbm9uZSB3LWZ1bGwgc206dy1hdXRvIj4KICAgICAgICAgICAgICAgICAgICBMaXN0IHlvdXIgYnVzaW5lc3MgZnJlZSA8QXJyb3dSaWdodCBjbGFzc05hbWU9InctNCBoLTQgbWwtMiIgLz4KICAgICAgICAgICAgICAgICAgPC9MaW5rPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KCiAgICAgIHsvKiA9PT09PT09PT09IEZFQVRVUkVEIExJU1RJTkdTID09PT09PT09PT0gKi99CiAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT0iYmctYmFzZS0yMDAgcHktMjQiPgogICAgICAgIDxkaXYgY2xhc3NOYW1lPSJjb250YWluZXIgbXgtYXV0byBweC02IG1heC13LTZ4bCI+CiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtc3RhcnQgc206aXRlbXMtZW5kIG1iLTEyIGdhcC00Ij4KICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICA8aDIgY2xhc3NOYW1lPSJ0ZXh0LTN4bCBtZDp0ZXh0LTR4bCBmb250LWJvbGQgdGV4dC1iYXNlLWNvbnRlbnQgbWItMyI+RmVhdHVyZWQgQnVzaW5lc3NlcyBmb3IgU2FsZTwvaDI+CiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPSJ0ZXh0LWJhc2UtY29udGVudC83MCB0ZXh0LWxnIj5IYW5kLXBpY2tlZCBvcHBvcnR1bml0aWVzIHZldHRlZCBieSBvdXIgdGVhbTwvcD4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxMaW5rIGhyZWY9Ii9idXNpbmVzc2VzLWZvci1zYWxlIiBjbGFzc05hbWU9ImJ0biBidG4tb3V0bGluZSBidG4tcHJpbWFyeSI+CiAgICAgICAgICAgICAgVmlldyBhbGwgbGlzdGluZ3MgPEFycm93UmlnaHQgY2xhc3NOYW1lPSJ3LTQgaC00IG1sLTEiIC8+CiAgICAgICAgICAgIDwvTGluaz4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy0zIGdhcC02Ij4KICAgICAgICAgICAge2ZlYXR1cmVkTGlzdGluZ3MubWFwKChiaXopID0+ICgKICAgICAgICAgICAgICA8TGluayBocmVmPXtgL2xpc3RpbmcvJHtiaXouaWR9YH0ga2V5PXtiaXouaWR9IGNsYXNzTmFtZT0iY2FyZCBiZy1iYXNlLTEwMCBzaGFkb3ctc20gaG92ZXI6c2hhZG93LW1kIGJvcmRlciBib3JkZXItYmFzZS0zMDAgaG92ZXI6Ym9yZGVyLXByaW1hcnkvNTAgdHJhbnNpdGlvbi1hbGwgZ3JvdXAgb3ZlcmZsb3ctaGlkZGVuIj4KICAgICAgICAgICAgICAgIDxmaWd1cmUgY2xhc3NOYW1lPSJoLTQ4IHJlbGF0aXZlIG92ZXJmbG93LWhpZGRlbiI+CiAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPXtiaXouaW1nfSBhbHQ9e2Jpei50aXRsZX0gY2xhc3NOYW1lPSJ3LWZ1bGwgaC1mdWxsIG9iamVjdC1jb3ZlciBncm91cC1ob3ZlcjpzY2FsZS0xMDUgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tNTAwIiAvPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iYWJzb2x1dGUgdG9wLTMgbGVmdC0zIGZsZXggZ2FwLTIiPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJiYWRnZSBiYWRnZS1uZXV0cmFsIHNoYWRvdy1zbSBmb250LWJvbGQgdGV4dC14cyBweS0zIj5GRUFUVVJFRDwvZGl2PgogICAgICAgICAgICAgICAgICAgIHtiaXouZGF5c09uTWFya2V0IDw9IDcgJiYgKAogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImJhZGdlIGJhZGdlLXN1Y2Nlc3MgdGV4dC1zdWNjZXNzLWNvbnRlbnQgc2hhZG93LXNtIGZvbnQtYm9sZCB0ZXh0LXhzIHB5LTMiPk5FVzwvZGl2PgogICAgICAgICAgICAgICAgICAgICl9CiAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9maWd1cmU+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iY2FyZC1ib2R5IHAtNSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0yIj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9ImJhZGdlIGJhZGdlLXByaW1hcnkgYmFkZ2Utc29mdCB0ZXh0LXhzIj57Yml6LmNhdGVnb3J5fTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9InRleHQteHMgdGV4dC1iYXNlLWNvbnRlbnQvNTAgZm9udC1tZWRpdW0iPntiaXouZGF5c09uTWFya2V0fSBkYXlzIG9uIG1hcmtldDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9ImNhcmQtdGl0bGUgdGV4dC1sZyBsZWFkaW5nLXRpZ2h0IGdyb3VwLWhvdmVyOnRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9ycyI+e2Jpei50aXRsZX08L2gzPgogICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtYmFzZS1jb250ZW50LzYwIHRleHQtc20gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEuNSBtdC0xIG1iLTQiPgogICAgICAgICAgICAgICAgICAgIDxNYXBQaW4gY2xhc3NOYW1lPSJoLTQgdy00IiAvPiB7Yml6LmxvY2F0aW9ufQogICAgICAgICAgICAgICAgICA8L3A+CiAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZ3JpZCBncmlkLWNvbHMtMiBnYXAtMyBtYi00IGJnLWJhc2UtMjAwLzUwIHAtMyByb3VuZGVkLXhsIGJvcmRlciBib3JkZXItYmFzZS0yMDAiPgogICAgICAgICAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtWzEwcHhdIHRleHQtYmFzZS1jb250ZW50LzUwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlciBmb250LWJvbGQgbWItMC41Ij5Bc2tpbmcgUHJpY2U8L3A+CiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9ImZvbnQtYm9sZCB0ZXh0LWJhc2UtY29udGVudCI+e2Jpei5wcmljZX08L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1bMTBweF0gdGV4dC1iYXNlLWNvbnRlbnQvNTAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIGZvbnQtYm9sZCBtYi0wLjUiPkNhc2ggRmxvdzwvcD4KICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0iZm9udC1ib2xkIHRleHQtc3VjY2VzcyI+e2Jpei5jYXNoRmxvd308L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1bMTBweF0gdGV4dC1iYXNlLWNvbnRlbnQvNTAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIGZvbnQtYm9sZCBtYi0wLjUiPlJldmVudWU8L3A+CiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9ImZvbnQtc2VtaWJvbGQgdGV4dC1iYXNlLWNvbnRlbnQvODAiPntiaXoucmV2ZW51ZX08L3A+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1bMTBweF0gdGV4dC1iYXNlLWNvbnRlbnQvNTAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVyIGZvbnQtYm9sZCBtYi0wLjUiPkVCSVREQTwvcD4KICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0iZm9udC1zZW1pYm9sZCB0ZXh0LWJhc2UtY29udGVudC84MCI+e2Jpei5lYml0ZGF9PC9wPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJtdC1hdXRvIHB0LTQgYm9yZGVyLXQgYm9yZGVyLWJhc2UtMjAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiI+CiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJ0ZXh0LXhzIHRleHQtYmFzZS1jb250ZW50LzQwIGZvbnQtbWVkaXVtIj5MaXN0aW5nICN7Yml6LmlkfTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9InRleHQtc20gZm9udC1ib2xkIHRleHQtcHJpbWFyeSBncm91cC1ob3ZlcjpnYXAtMiB0cmFuc2l0aW9uLWFsbCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMSI+CiAgICAgICAgICAgICAgICAgICAgICBWaWV3IERldGFpbHMgPEFycm93UmlnaHQgY2xhc3NOYW1lPSJ3LTQgaC00IiAvPgogICAgICAgICAgICAgICAgICAgIDwvc3Bhbj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L0xpbms+CiAgICAgICAgICAgICkpfQogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KCiAgICAgIHsvKiA9PT09PT09PT09IFdIWSBHRVRBQ1FVSVJFRCA9PT09PT09PT09ICovfQogICAgICA8c2VjdGlvbiBjbGFzc05hbWU9ImJnLWJhc2UtMTAwIHB5LTI0Ij4KICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iY29udGFpbmVyIG14LWF1dG8gcHgtNiBtYXgtdy02eGwiPgogICAgICAgICAgPGRpdiBjbGFzc05hbWU9InRleHQtY2VudGVyIG1iLTE2Ij4KICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT0idGV4dC0zeGwgbWQ6dGV4dC00eGwgZm9udC1ib2xkIHRleHQtYmFzZS1jb250ZW50IG1iLTQiPldoeSBzZWxsZXJzIGNob29zZSBHZXRBY3F1aXJlZDwvaDI+CiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1iYXNlLWNvbnRlbnQvNzAgbWF4LXctMnhsIG14LWF1dG8gdGV4dC1sZyI+RGl0Y2ggdGhlIDEwJSBicm9rZXIgY29tbWlzc2lvbi4gS2VlcCBtb3JlIG9mIHdoYXQgeW91J3ZlIGJ1aWx0LjwvcD4KICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJncmlkIGdyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy0zIGdhcC02Ij4KICAgICAgICAgICAge1sKICAgICAgICAgICAgICB7IGljb246IFphcCwgdGl0bGU6ICJBSS1Qb3dlcmVkIENJTSBHZW5lcmF0b3IiLCBkZXNjcmlwdGlvbjogIlVwbG9hZCB5b3VyIFAmTCBhbmQgb3VyIEFJIGdlbmVyYXRlcyBhIHByb2Zlc3Npb25hbCAyMCsgcGFnZSBDSU0gaW5zdGFudGx5LiBObyBtb3JlIHBheWluZyBicm9rZXJzICQ1LDAwMCBmb3IgYSBkb2N1bWVudC4iIH0sCiAgICAgICAgICAgICAgeyBpY29uOiBFeWUsIHRpdGxlOiAiUXVhbGlmaWVkIEJ1eWVyIFNjcmVlbmluZyIsIGRlc2NyaXB0aW9uOiAiQnV5ZXJzIG11c3Qgc2lnbiBhbiBOREEgYmVmb3JlIHZpZXdpbmcgeW91ciBmaW5hbmNpYWxzLiBZb3UgY29udHJvbCB3aG8gc2VlcyB5b3VyIGNvbmZpZGVudGlhbCBkYXRhLCBldmVyeSB0aW1lLiIgfSwKICAgICAgICAgICAgICB7IGljb246IEJhckNoYXJ0MywgdGl0bGU6ICJCb29zdCBZb3VyIExpc3RpbmciLCBkZXNjcmlwdGlvbjogIlByZW1pdW0gcGxhY2VtZW50IGluIHNlYXJjaCByZXN1bHRzLCBmZWF0dXJlZCBpbiBvdXIgYnV5ZXIgbmV3c2xldHRlciwgYW5kIGhpZ2hsaWdodGVkIG9uIHRoZSBob21lcGFnZSBmb3IgbWF4aW11bSB2aXNpYmlsaXR5LiIgfSwKICAgICAgICAgICAgICB7IGljb246IFNoaWVsZENoZWNrLCB0aXRsZTogIlNlY3VyZSBEYXRhIFJvb20iLCBkZXNjcmlwdGlvbjogIkFsbCBkb2N1bWVudHMgYXJlIHN0b3JlZCBpbiBhIHNlY3VyZSB2aXJ0dWFsIGRhdGEgcm9vbS4gR3JhbnQgYW5kIHJldm9rZSBhY2Nlc3Mgd2l0aCBvbmUgY2xpY2suIiB9LAogICAgICAgICAgICAgIHsgaWNvbjogTWVzc2FnZVNxdWFyZSwgdGl0bGU6ICJEaXJlY3QgTmVnb3RpYXRpb24iLCBkZXNjcmlwdGlvbjogIk5vIG1pZGRsZW1lbi4gTmVnb3RpYXRlIGRpcmVjdGx5IHdpdGggcXVhbGlmaWVkIGJ1eWVycyBhbmQga2VlcCAxMDAlIG9mIHRoZSBzYWxlIHByaWNlLiIgfSwKICAgICAgICAgICAgICB7IGljb246IENhbGN1bGF0b3IsIHRpdGxlOiAiSW5zdGFudCBWYWx1YXRpb24iLCBkZXNjcmlwdGlvbjogIkdldCBhbiBBSS1wb3dlcmVkIGJ1c2luZXNzIHZhbHVhdGlvbiBpbiBzZWNvbmRzLiBLbm93IHdoYXQgeW91ciBidXNpbmVzcyBpcyB3b3J0aCBiZWZvcmUgeW91IGxpc3QuIiB9LAogICAgICAgICAgICBdLm1hcCgoZmVhdHVyZSwgaSkgPT4gKAogICAgICAgICAgICAgIDxkaXYga2V5PXtpfSBjbGFzc05hbWU9ImNhcmQgYmctYmFzZS0xMDAgYm9yZGVyIGJvcmRlci1iYXNlLTMwMCBob3Zlcjpib3JkZXItcHJpbWFyeS80MCBob3ZlcjpzaGFkb3ctbWQgdHJhbnNpdGlvbi1hbGwgZ3JvdXAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImNhcmQtYm9keSBwLTYiPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0idy0xMiBoLTEyIHJvdW5kZWQteGwgYmctcHJpbWFyeS8xMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBtYi00IGdyb3VwLWhvdmVyOmJnLXByaW1hcnkgZ3JvdXAtaG92ZXI6dGV4dC1wcmltYXJ5LWNvbnRlbnQgdHJhbnNpdGlvbi1jb2xvcnMiPgogICAgICAgICAgICAgICAgICAgIDxmZWF0dXJlLmljb24gY2xhc3NOYW1lPSJ3LTYgaC02IHRleHQtcHJpbWFyeSBncm91cC1ob3Zlcjp0ZXh0LXByaW1hcnktY29udGVudCIgLz4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9ImNhcmQtdGl0bGUgdGV4dC1sZyBtYi0yIj57ZmVhdHVyZS50aXRsZX08L2gzPgogICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtYmFzZS1jb250ZW50LzcwIHRleHQtc20gbGVhZGluZy1yZWxheGVkIj57ZmVhdHVyZS5kZXNjcmlwdGlvbn08L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgoKICAgICAgey8qID09PT09PT09PT0gUE9QVUxBUiBTRUNUT1JTICYgTE9DQVRJT05TID09PT09PT09PT0gKi99CiAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT0iYmctYmFzZS0yMDAgcHktMjQiPgogICAgICAgIDxkaXYgY2xhc3NOYW1lPSJjb250YWluZXIgbXgtYXV0byBweC02IG1heC13LTZ4bCI+CiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZ3JpZCBsZzpncmlkLWNvbHMtMiBnYXAtMTYiPgogICAgICAgICAgICAKICAgICAgICAgICAgey8qIFNlY3RvcnMgKi99CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9Im1iLTgiPgogICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT0idGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1ib2xkIHRleHQtYmFzZS1jb250ZW50IG1iLTIiPkJyb3dzZSBieSBTZWN0b3I8L2gyPgogICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPSJ0ZXh0LWJhc2UtY29udGVudC83MCI+RmluZCBidXNpbmVzc2VzIGluIHlvdXIgYXJlYSBvZiBleHBlcnRpc2U8L3A+CiAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImdyaWQgZ3JpZC1jb2xzLTEgc206Z3JpZC1jb2xzLTIgZ2FwLTMiPgogICAgICAgICAgICAgICAge3NlY3RvcnMubWFwKChzZWN0b3IsIGkpID0+ICgKICAgICAgICAgICAgICAgICAgPExpbmsgCiAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9idXNpbmVzc2VzLWZvci1zYWxlP3NlY3Rvcj0ke3NlY3Rvci5uYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXowLTldKy9nLCAnLScpfWB9IAogICAgICAgICAgICAgICAgICAgIGtleT17aX0gCiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC00IHJvdW5kZWQteGwgYmctYmFzZS0xMDAgYm9yZGVyIGJvcmRlci1iYXNlLTMwMCBob3Zlcjpib3JkZXItcHJpbWFyeS81MCBob3ZlcjpzaGFkb3ctc20gdHJhbnNpdGlvbi1hbGwgZ3JvdXAiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMiPgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJ0ZXh0LXhsIGJnLWJhc2UtMjAwIHctMTAgaC0xMCByb3VuZGVkLWxnIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIj57c2VjdG9yLmljb259PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgPGRpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJmb250LWJvbGQgdGV4dC1iYXNlLWNvbnRlbnQgdGV4dC1zbSBncm91cC1ob3Zlcjp0ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnMiPntzZWN0b3IubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT0idGV4dC14cyB0ZXh0LWJhc2UtY29udGVudC81MCBibG9jayBtdC0wLjUiPntzZWN0b3IuY291bnQudG9Mb2NhbGVTdHJpbmcoKX0gbGlzdGluZ3M8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8Q2hldnJvblJpZ2h0IGNsYXNzTmFtZT0iaC00IHctNCB0ZXh0LWJhc2UtY29udGVudC8zMCBncm91cC1ob3Zlcjp0ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnMiIC8+CiAgICAgICAgICAgICAgICAgIDwvTGluaz4KICAgICAgICAgICAgICAgICkpfQogICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgIHsvKiBMb2NhdGlvbnMgKi99CiAgICAgICAgICAgIDxkaXY+CiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9Im1iLTgiPgogICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT0idGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1ib2xkIHRleHQtYmFzZS1jb250ZW50IG1iLTIiPkJyb3dzZSBieSBMb2NhdGlvbjwvaDI+CiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtYmFzZS1jb250ZW50LzcwIj5Qb3B1bGFyIG1hcmtldHMgZm9yIGJ1c2luZXNzIGFjcXVpc2l0aW9uczwvcD4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZ3JpZCBncmlkLWNvbHMtMSBzbTpncmlkLWNvbHMtMiBnYXAtMyI+CiAgICAgICAgICAgICAgICB7bG9jYXRpb25zLm1hcCgobG9jLCBpKSA9PiAoCiAgICAgICAgICAgICAgICAgIDxMaW5rIAogICAgICAgICAgICAgICAgICAgIGhyZWY9e2AvYnVzaW5lc3Nlcy1mb3Itc2FsZT9sb2NhdGlvbj0ke2xvYy5uYW1lLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvW15hLXowLTldKy9nLCAnLScpfWB9IAogICAgICAgICAgICAgICAgICAgIGtleT17aX0gCiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPSJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC00IHJvdW5kZWQteGwgYmctYmFzZS0xMDAgYm9yZGVyIGJvcmRlci1iYXNlLTMwMCBob3Zlcjpib3JkZXItcHJpbWFyeS81MCBob3ZlcjpzaGFkb3ctc20gdHJhbnNpdGlvbi1hbGwgZ3JvdXAiCiAgICAgICAgICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJmb250LWJvbGQgdGV4dC1iYXNlLWNvbnRlbnQgdGV4dC1zbSBncm91cC1ob3Zlcjp0ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnMiPntsb2MubmFtZX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9InRleHQteHMgdGV4dC1iYXNlLWNvbnRlbnQvNTAgYmxvY2sgbXQtMC41Ij57bG9jLmNvdW50LnRvTG9jYWxlU3RyaW5nKCl9IGJ1c2luZXNzZXM8L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPENoZXZyb25SaWdodCBjbGFzc05hbWU9ImgtNCB3LTQgdGV4dC1iYXNlLWNvbnRlbnQvMzAgZ3JvdXAtaG92ZXI6dGV4dC1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzIiAvPgogICAgICAgICAgICAgICAgICA8L0xpbms+CiAgICAgICAgICAgICAgICApKX0KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KCiAgICAgIHsvKiA9PT09PT09PT09IFRFU1RJTU9OSUFMUyA9PT09PT09PT09ICovfQogICAgICA8c2VjdGlvbiBjbGFzc05hbWU9ImJnLW5ldXRyYWwgdGV4dC1uZXV0cmFsLWNvbnRlbnQgcHktMjQiPgogICAgICAgIDxkaXYgY2xhc3NOYW1lPSJjb250YWluZXIgbXgtYXV0byBweC02IG1heC13LTZ4bCI+CiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0idGV4dC1jZW50ZXIgbWItMTYiPgogICAgICAgICAgICA8aDIgY2xhc3NOYW1lPSJ0ZXh0LTN4bCBtZDp0ZXh0LTR4bCBmb250LWJvbGQgbWItNCI+VHJ1c3RlZCBieSB0aG91c2FuZHMgb2Ygc2VsbGVyczwvaDI+CiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1uZXV0cmFsLWNvbnRlbnQvNzAgbWF4LXctMnhsIG14LWF1dG8gdGV4dC1sZyI+UmVhbCBzdG9yaWVzIGZyb20gYnVzaW5lc3Mgb3duZXJzIHdobyBzb2xkIG9uIEdldEFjcXVpcmVkPC9wPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZ3JpZCBncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMyBnYXAtOCI+CiAgICAgICAgICAgIHt0ZXN0aW1vbmlhbHMubWFwKCh0LCBpKSA9PiAoCiAgICAgICAgICAgICAgPGRpdiBrZXk9e2l9IGNsYXNzTmFtZT0iY2FyZCBiZy1uZXV0cmFsLWZvY3VzIGJvcmRlciBib3JkZXItbmV1dHJhbC1jb250ZW50LzEwIHNoYWRvdy1sZyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iY2FyZC1ib2R5IHAtOCI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJmbGV4IGdhcC0xIG1iLTYiPgogICAgICAgICAgICAgICAgICAgIHtbLi4uQXJyYXkoNSldLm1hcCgoXywgaikgPT4gKAogICAgICAgICAgICAgICAgICAgICAgPFN0YXIga2V5PXtqfSBjbGFzc05hbWU9InctNCBoLTQgZmlsbC13YXJuaW5nIHRleHQtd2FybmluZyIgLz4KICAgICAgICAgICAgICAgICAgICApKX0KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT0idGV4dC1uZXV0cmFsLWNvbnRlbnQvOTAgbGVhZGluZy1yZWxheGVkIG1iLTggdGV4dC1zbSBmbGV4LTEiPiZsZHF1bzt7dC5xdW90ZX0mcmRxdW87PC9wPgogICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0iZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcHQtNiBib3JkZXItdCBib3JkZXItbmV1dHJhbC1jb250ZW50LzEwIG10LWF1dG8iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJhdmF0YXIgcGxhY2Vob2xkZXIiPgogICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9ImJnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWNvbnRlbnQgcm91bmRlZC1mdWxsIHctMTAiPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9InRleHQtc20gZm9udC1ib2xkIj57dC5uYW1lLmNoYXJBdCgwKX08L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPSJmb250LWJvbGQgdGV4dC1zbSB0ZXh0LW5ldXRyYWwtY29udGVudCI+e3QubmFtZX08L3A+CiAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQteHMgdGV4dC1uZXV0cmFsLWNvbnRlbnQvNjAiPnt0LnRpdGxlfTwvcD4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgKSl9CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9zZWN0aW9uPgoKICAgICAgey8qID09PT09PT09PT0gU0VMTEVSIENUQSA9PT09PT09PT09ICovfQogICAgICA8c2VjdGlvbiBjbGFzc05hbWU9ImJnLXByaW1hcnkgcHktMjQiPgogICAgICAgIDxkaXYgY2xhc3NOYW1lPSJjb250YWluZXIgbXgtYXV0byBweC02IG1heC13LTR4bCB0ZXh0LWNlbnRlciI+CiAgICAgICAgICA8aDIgY2xhc3NOYW1lPSJ0ZXh0LTN4bCBtZDp0ZXh0LTV4bCBmb250LWJvbGQgdGV4dC1wcmltYXJ5LWNvbnRlbnQgbWItNiI+UmVhZHkgdG8gc2VsbCB5b3VyIGJ1c2luZXNzPzwvaDI+CiAgICAgICAgICA8cCBjbGFzc05hbWU9InRleHQtcHJpbWFyeS1jb250ZW50LzgwIHRleHQtbGcgbWQ6dGV4dC14bCBtYi0xMCBtYXgtdy0yeGwgbXgtYXV0byBsZWFkaW5nLXJlbGF4ZWQiPgogICAgICAgICAgICBMaXN0IGZvciBmcmVlLiBObyBjb21taXNzaW9uLiBObyBicm9rZXIuIE91ciBBSSBoZWxwcyB5b3UgY3JlYXRlIGEgcHJvZmVzc2lvbmFsIGxpc3RpbmcgaW4gbWludXRlcy4KICAgICAgICAgIDwvcD4KICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJmbGV4IGZsZXgtY29sIHNtOmZsZXgtcm93IGdhcC00IGp1c3RpZnktY2VudGVyIj4KICAgICAgICAgICAgPExpbmsgCiAgICAgICAgICAgICAgaHJlZj0iL2Rhc2hib2FyZC9zZWxsZXIvbGlzdGluZ3MvbmV3IiAKICAgICAgICAgICAgICBjbGFzc05hbWU9ImJ0biBidG4tbGcgYmctYmFzZS0xMDAgdGV4dC1wcmltYXJ5IGhvdmVyOmJnLWJhc2UtMjAwIGJvcmRlci1ub25lIHNoYWRvdy14bCIKICAgICAgICAgICAgPgogICAgICAgICAgICAgIExpc3QgWW91ciBCdXNpbmVzcyBGcmVlCiAgICAgICAgICAgICAgPEFycm93UmlnaHQgY2xhc3NOYW1lPSJ3LTUgaC01IG1sLTIiIC8+CiAgICAgICAgICAgIDwvTGluaz4KICAgICAgICAgICAgPExpbmsgCiAgICAgICAgICAgICAgaHJlZj0iL2J1c2luZXNzZXMtZm9yLXNhbGUiIAogICAgICAgICAgICAgIGNsYXNzTmFtZT0iYnRuIGJ0bi1sZyBidG4tb3V0bGluZSB0ZXh0LXByaW1hcnktY29udGVudCBob3ZlcjpiZy1wcmltYXJ5LWNvbnRlbnQgaG92ZXI6dGV4dC1wcmltYXJ5IGJvcmRlci1wcmltYXJ5LWNvbnRlbnQvMzAiCiAgICAgICAgICAgID4KICAgICAgICAgICAgICBCcm93c2UgYXMgYSBCdXllcgogICAgICAgICAgICA8L0xpbms+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSJtdC0xMCBmbGV4IGZsZXgtd3JhcCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLXgtOCBnYXAteS00IHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1wcmltYXJ5LWNvbnRlbnQvODAiPgogICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48Q2hlY2tDaXJjbGUgY2xhc3NOYW1lPSJ3LTUgaC01IHRleHQtc3VjY2VzcyIgLz4gTm8gbGlzdGluZyBmZWVzPC9zcGFuPgogICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9ImZsZXggaXRlbXMtY2VudGVyIGdhcC0yIj48Q2hlY2tDaXJjbGUgY2xhc3NOYW1lPSJ3LTUgaC01IHRleHQtc3VjY2VzcyIgLz4gTm8gY29tbWlzc2lvbjwvc3Bhbj4KICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPSJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiI+PENoZWNrQ2lyY2xlIGNsYXNzTmFtZT0idy01IGgtNSB0ZXh0LXN1Y2Nlc3MiIC8+IENhbmNlbCBhbnl0aW1lPC9zcGFuPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvc2VjdGlvbj4KICAgIDwvPgogICk7Cn0K' | base64 -d > '/workspace/getacquired-2-0/src/app/page.tsx'"}
|
||
POST /api/mcp 200 in 3.8s (compile: 14ms, render: 3.8s)
|
||
POST /api/mcp 404 in 277ms (compile: 10ms, render: 267ms)
|
||
POST /api/mcp 200 in 597ms (compile: 12ms, render: 586ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && tail -n 50 /var/log/vibn-dev/ds_4c59d60d5df8.log 2>/dev/null || echo '(no log yet)'"}
|
||
POST /api/mcp 200 in 3.6s (compile: 6ms, render: 3.6s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":3000,"command":"cd '/workspace' && kill 27480 2>/dev/null || true"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && ss -tlnp 2>/dev/null | grep ':3000\b' | head -1; lsof -iTCP:3000 -sTCP:LISTEN -n -P 2>/dev/null | tail -n +2 | head -1 || true"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && mkdir -p /var/log/vibn-dev && cd /workspace && nohup env PORT=3000 VIBN_DEV_SERVER_ID=ds_c50968c1b97a bash -lc 'export HOST=0.0.0.0 HOSTNAME=0.0.0.0 VITE_DEV_SERVER_HOST=0.0.0.0 WEBPACK_DEV_SERVER_HOST=0.0.0.0; cd getacquired-2-0 && npm run dev' > /var/log/vibn-dev/ds_c50968c1b97a.log 2>&1 & echo $!"}
|
||
POST /api/mcp 200 in 8.9s (compile: 5ms, render: 8.9s)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":130000,"command":"cd '/workspace' && last_code=000; for i in $(seq 1 120); do for path in / ''; do code=$(curl -sS -o /dev/null -w '%{http_code}' --max-time 2 --connect-timeout 2 \"http://127.0.0.1:3000$path\" 2>/dev/null || printf '000'); last_code=$code; [ \"$code\" != \"000\" ] && [ -n \"$code\" ] && exit 0; done; sleep 1; done; echo \"PROBE_FAIL last_code=$last_code port=3000\"; echo \"PROBE_FAIL ps=$(ps aux | grep -E 'node|npm|next|vite' | grep -v grep | head -3 | tr '\n' '|')\"; echo \"PROBE_FAIL log_tail=$(tail -20 /var/log/vibn-dev/ds_c50968c1b97a.log 2>/dev/null | tr '\n' '|' | head -c 2000)\"; exit 1"}
|
||
[probe] FAILED {"projectId":"be169fe8-d381-422b-8e9c-d2e513a8f902","serverId":"ds_c50968c1b97a","port":3000,"stdout":""}
|
||
POST /api/chat 200 in 3.9min (compile: 17ms, render: 3.9min)
|
||
GET /api/chat/threads?workspace=mark-account&projectId=be169fe8-d381-422b-8e9c-d2e513a8f902 200 in 373ms (compile: 10ms, render: 364ms)
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && if [ -d '/workspace/getacquired-2-0/.git' ]; then echo git; elif [ -d '/workspace/getacquired-2-0' ]; then echo dir; else echo absent; fi"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":5000,"command":"cd '/workspace' && test -d '/workspace/getacquired-2-0/.git' && echo present || echo absent"}
|
||
[apps.exec] {"app_uuid":"lbhz4nd7wllowjlnwm1tmhu3","container":"vibn-dev-lbhz4nd7wllowjlnwm1tmhu3","service":"vibn-dev","timeout_ms":30000,"command":"cd '/workspace' && cd '/workspace/getacquired-2-0' && git add -A && if git diff --cached --quiet; then echo CLEAN && exit 0; fi && git commit -m 'I'\\''ve completely redesigned the home page to leverage the **FlyonUI design kit** and applied a strict visual QA based on our layout, spacing, contrast, hierarchy, and responsiveness' && SHA=$(git rev-parse --short HEAD) && git push -u origin HEAD 2>&1 | tail -n 5 && echo COMMITTED $SHA"}
|
||
[chat] auto-commit project=getacquired-2-0 sha=04d453b pushed=true
|
||
|
||
**Tool Call: vibn\-frontend/components/vibn\-chat/chat\-panel.tsx**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
```
|
||
"use client";
|
||
|
||
import {
|
||
useEffect,
|
||
useRef,
|
||
useState,
|
||
useCallback,
|
||
type ReactNode,
|
||
type CSSProperties,
|
||
} from "react";
|
||
import Link from "next/link";
|
||
import { useSession } from "next-auth/react";
|
||
import { useParams, usePathname } from "next/navigation";
|
||
import {
|
||
MessageSquare,
|
||
X,
|
||
ChevronRight,
|
||
Send,
|
||
Plus,
|
||
Loader2,
|
||
Wrench,
|
||
ChevronDown,
|
||
Trash2,
|
||
Square,
|
||
MousePointerClick,
|
||
Sparkles,
|
||
} from "lucide-react";
|
||
import { ProjectIconRail } from "@/components/project/project-icon-rail";
|
||
import {
|
||
PreviewBridgeProvider,
|
||
previewMessagePrepRef,
|
||
usePreviewBridge,
|
||
} from "@/components/project/preview-bridge-context";
|
||
|
||
// ── Types ─────────────────────────────────────────────────────────────────────
|
||
|
||
interface Thread {
|
||
id: string;
|
||
title: string;
|
||
updatedAt: string;
|
||
}
|
||
|
||
interface Message {
|
||
id?: string;
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: { id: string; name: string; args: Record<string, unknown> }[];
|
||
toolName?: string;
|
||
createdAt?: string;
|
||
/**
|
||
* Chronological turn timeline interleaving the model's thinking
|
||
* narration and the tool calls it fired. Rendered as a stack of
|
||
* pills INSIDE the bubble above the final text content, so the
|
||
* user sees the actual flow:
|
||
* [thought] [tool ×N] [thought] [tool] ... [summary]
|
||
* Each thought is its own collapsed pill (click to expand);
|
||
* adjacent runs of the same tool name collapse into one pill
|
||
* with a ×N counter. The final assistant text is rendered
|
||
* separately, below the timeline.
|
||
*/
|
||
timeline?: TimelineEntry[];
|
||
}
|
||
|
||
type TimelineEntry =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "tool"; name: string; status: "running" | "done"; result?: string }
|
||
// A text segment from one round of the assistant's tool loop.
|
||
// Each text SSE event from the server starts a new entry; subsequent
|
||
// streaming chunks for that same round append to the most-recent
|
||
// text entry. Tool/thought entries between text segments break the
|
||
// accumulation so multi-round turns render as separate bubbles.
|
||
| { kind: "text"; text: string };
|
||
|
||
interface ToolEvent {
|
||
name: string;
|
||
status: "running" | "done";
|
||
result?: string;
|
||
}
|
||
|
||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||
|
||
function getFriendlyCategory(name: string): string {
|
||
if (
|
||
name.includes("fs.edit") ||
|
||
name.includes("fs.write") ||
|
||
name.includes("fs_edit") ||
|
||
name.includes("fs_write")
|
||
)
|
||
return "Writing code";
|
||
if (
|
||
name.includes("fs.read") ||
|
||
name.includes("fs.list") ||
|
||
name.includes("fs.grep") ||
|
||
name.includes("fs.tree") ||
|
||
name.includes("fs_read") ||
|
||
name.includes("fs_list") ||
|
||
name.includes("fs_grep") ||
|
||
name.includes("fs_tree")
|
||
)
|
||
return "Reading codebase";
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
return "Running terminal commands";
|
||
if (name.includes("dev_server.start") || name.includes("dev_server_start"))
|
||
return "Starting dev server";
|
||
if (name.includes("dev_server.logs") || name.includes("dev_server_logs"))
|
||
return "Checking server logs";
|
||
if (
|
||
name.includes("browser.navigate") ||
|
||
name.includes("browser.console") ||
|
||
name.includes("browser_navigate") ||
|
||
name.includes("browser_console")
|
||
)
|
||
return "Checking browser preview";
|
||
if (name.includes("ship")) return "Shipping code to production";
|
||
|
||
return name;
|
||
}
|
||
|
||
function timeAgo(dateStr?: string): string {
|
||
if (!dateStr) return "";
|
||
const diff = (Date.now() - new Date(dateStr).getTime()) / 1000;
|
||
if (diff < 60) return "just now";
|
||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
||
return `${Math.floor(diff / 86400)}d ago`;
|
||
}
|
||
|
||
function friendlyToolName(name: string): string {
|
||
return name
|
||
.replace(/_/g, ".")
|
||
.replace("projects.list", "listing projects")
|
||
.replace("apps.list", "listing apps")
|
||
.replace("apps.create", "deploying app")
|
||
.replace("apps.templates.list", "listing templates")
|
||
.replace("apps.templates.search", "searching templates")
|
||
.replace("domains.register", "registering domain")
|
||
.replace("domains.list", "listing domains")
|
||
.replace("apps.logs", "fetching logs");
|
||
}
|
||
|
||
const LOADING_PHRASES = [
|
||
"Thinking about the problem...",
|
||
"Reviewing the plan...",
|
||
"Caramelizing onions...",
|
||
"Writing code...",
|
||
"Running checks...",
|
||
"Reticulating splines...",
|
||
"Building out the view...",
|
||
];
|
||
|
||
function ActiveThinkingIndicator() {
|
||
const [phraseIndex, setPhraseIndex] = useState(0);
|
||
|
||
useEffect(() => {
|
||
const timer = setInterval(() => {
|
||
setPhraseIndex((i) => (i + 1) % LOADING_PHRASES.length);
|
||
}, 2800);
|
||
return () => clearInterval(timer);
|
||
}, []);
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "4px 4px 10px 4px",
|
||
fontSize: "0.85rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<svg
|
||
width="16"
|
||
height="16"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="#cf6741"
|
||
strokeWidth="2.5"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
className="animate-spin"
|
||
style={{ animationDuration: "3s" }}
|
||
>
|
||
<path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83" />
|
||
</svg>
|
||
</div>
|
||
<span className="animate-pulse">{LOADING_PHRASES[phraseIndex]}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Markdown-lite renderer ────────────────────────────────────────────────────
|
||
|
||
function escapeHtmlAttr(s: string): string {
|
||
return s.replace(/&/g, "&").replace(/"/g, """);
|
||
}
|
||
|
||
const LINK_STYLE =
|
||
"color:#4338ca;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all";
|
||
|
||
/** [label](https://...) — href restricted to http(s) */
|
||
function markdownLinksToHtml(s: string): string {
|
||
return s.replace(
|
||
/\[([^\]]+)\]\((https?:\/\/[^\s)<>]+)\)/gi,
|
||
(_m, label: string, url: string) => {
|
||
return `<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${label}</a>`;
|
||
},
|
||
);
|
||
}
|
||
|
||
/** Bare https:// in prose (skips when prefix is `>` so href=/code aren't touched) */
|
||
function autoLinkBareUrls(s: string): string {
|
||
return s.replace(
|
||
/(^|[\s\-—:(\[{])(https?:\/\/[^\s<>"']+)/gi,
|
||
(match, pre: string, url: string) =>
|
||
`${pre}<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${url}</a>`,
|
||
);
|
||
}
|
||
|
||
function renderMarkdown(text: string): string {
|
||
let s = text
|
||
.replace(/&/g, "&")
|
||
.replace(/</g, "<")
|
||
.replace(/>/g, ">");
|
||
s = markdownLinksToHtml(s);
|
||
s = s
|
||
.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>")
|
||
.replace(
|
||
/`([^`]+)`/g,
|
||
'<code style="background:#f0ede8;padding:1px 5px;border-radius:3px;font-family:var(--font-ibm-plex-mono),monospace;font-size:0.85em;overflow-wrap:anywhere;word-break:break-word">$1</code>',
|
||
)
|
||
.replace(
|
||
/^### (.+)$/gm,
|
||
'<h3 style="font-weight:600;margin:12px 0 4px;font-size:0.88rem;overflow-wrap:anywhere;word-break:break-word">$1</h3>',
|
||
)
|
||
.replace(
|
||
/^## (.+)$/gm,
|
||
'<h2 style="font-weight:600;margin:14px 0 4px;font-size:0.9rem;overflow-wrap:anywhere;word-break:break-word">$1</h2>',
|
||
)
|
||
.replace(
|
||
/^- (.+)$/gm,
|
||
'<li style="margin-left:16px;list-style:disc;overflow-wrap:anywhere;word-break:break-word">$1</li>',
|
||
)
|
||
.replace(
|
||
/(<li[^>]*>.*<\/li>\n?)+/g,
|
||
(m) => `<ul style="margin:6px 0">${m}</ul>`,
|
||
)
|
||
.replace(
|
||
/\n\n/g,
|
||
'</p><p style="margin:0 0 8px;overflow-wrap:anywhere;word-break:break-word">',
|
||
)
|
||
.replace(/\n/g, "<br>");
|
||
s = autoLinkBareUrls(s);
|
||
return s;
|
||
}
|
||
|
||
// ── Message bubble ────────────────────────────────────────────────────────────
|
||
|
||
/**
|
||
* Strip the markdown-bold "**Section Heading**" lines that Gemini
|
||
* loves to start each thought with so the collapsed pill shows the
|
||
* actual sentence rather than "**Examining the Target Server File**".
|
||
* The full text is still available in the expanded view.
|
||
*/
|
||
function thoughtPreview(thoughts: string): string {
|
||
const stripped = thoughts
|
||
.replace(/^\s*\*\*[^*]+\*\*\s*/gm, "")
|
||
.replace(/\s+/g, " ")
|
||
.trim();
|
||
if (stripped.length <= 90) return stripped;
|
||
return stripped.slice(0, 87) + "…";
|
||
}
|
||
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
fontSize: "0.75rem",
|
||
color: "#8c8580",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
fontStyle: "italic",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<Sparkles
|
||
style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
className="animate-pulse"
|
||
/>
|
||
</div>
|
||
<span className="animate-pulse">{currentAction}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function MessageBubble({ msg }: { msg: Message }) {
|
||
const isUser = msg.role === "user";
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
justifyContent: isUser ? "flex-end" : "flex-start",
|
||
marginBottom: 12,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{!isUser && (
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
marginRight: 8,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
)}
|
||
<div
|
||
style={{
|
||
maxWidth: "82%",
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{!isUser && msg.timeline && msg.timeline.length > 0 && (
|
||
<Timeline entries={msg.timeline} />
|
||
)}
|
||
{/*
|
||
Render the legacy bottom content bubble ONLY when:
|
||
- the message is from the user (their bubble is always the
|
||
content slot), OR
|
||
- the assistant message has no timeline at all (very old
|
||
messages from before timeline existed).
|
||
When the timeline contains text entries the prose is already
|
||
rendered there, and showing it again here would duplicate
|
||
every paragraph below the timeline.
|
||
*/}
|
||
{((msg.content && isUser) ||
|
||
(msg.content &&
|
||
!isUser &&
|
||
(!msg.timeline || msg.timeline.length === 0))) && (
|
||
<div
|
||
style={{
|
||
padding: isUser ? "9px 14px" : "10px 14px",
|
||
borderRadius: isUser
|
||
? "14px 14px 4px 14px"
|
||
: "4px 14px 14px 14px",
|
||
background: isUser ? "#1a1a1a" : "#f7f4ef",
|
||
color: isUser ? "#fff" : "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
{isUser ? (
|
||
<span style={{ whiteSpace: "pre-wrap", ...proseWrap }}>
|
||
{msg.content}
|
||
</span>
|
||
) : (
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{
|
||
__html: renderMarkdown(msg.content),
|
||
}}
|
||
/>
|
||
)}
|
||
</div>
|
||
)}
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Renders the chronological turn timeline: thoughts as their own
|
||
* collapsed pills, tool calls grouped by adjacent runs of the same
|
||
* name with a ×N counter. The flow visually mirrors what actually
|
||
* happened: thought → tools → thought → tools → ... → final summary.
|
||
*/
|
||
function Timeline({ entries }: { entries: TimelineEntry[] }) {
|
||
// Walk the entries and emit a renderable list. Adjacent same-category
|
||
// tool entries get bundled into a TimelineToolGroup; thought and
|
||
// text entries pass through as-is.
|
||
type Item =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "text"; text: string }
|
||
| {
|
||
kind: "toolGroup";
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
};
|
||
const items: Item[] = [];
|
||
for (const e of entries) {
|
||
if (e.kind === "thought") {
|
||
items.push({ kind: "thought", text: e.text });
|
||
} else if (e.kind === "text") {
|
||
items.push({ kind: "text", text: e.text });
|
||
} else {
|
||
const last = items[items.length - 1];
|
||
const category = getFriendlyCategory(e.name);
|
||
if (last && last.kind === "toolGroup" && last.category === category) {
|
||
last.entries.push(e);
|
||
} else {
|
||
items.push({ kind: "toolGroup", category, entries: [e] });
|
||
}
|
||
}
|
||
}
|
||
return (
|
||
<div style={{ marginBottom: 6 }}>
|
||
{items.map((item, i) => {
|
||
if (item.kind === "thought") {
|
||
return <ThinkingBubble key={i} thoughts={item.text} />;
|
||
}
|
||
if (item.kind === "text") {
|
||
return <TimelineText key={i} text={item.text} />;
|
||
}
|
||
return (
|
||
<TimelineToolGroup
|
||
key={i}
|
||
category={item.category}
|
||
entries={item.entries}
|
||
/>
|
||
);
|
||
})}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* One text segment in the assistant's timeline. Rendered as its own
|
||
* bubble so each round of multi-tool-loop output reads as a discrete
|
||
* step instead of concatenating into a wall of text.
|
||
*/
|
||
function TimelineText({ text }: { text: string }) {
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
padding: "10px 14px",
|
||
borderRadius: "4px 14px 14px 14px",
|
||
background: "#f7f4ef",
|
||
color: "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
marginBottom: 6,
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{ __html: renderMarkdown(text) }}
|
||
/>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function TimelineToolGroup({
|
||
category,
|
||
entries,
|
||
}: {
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
}) {
|
||
const [expanded, setExpanded] = useState(false);
|
||
const count = entries.length;
|
||
const allDone = entries.every((e) => e.status === "done");
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<button
|
||
onClick={() => setExpanded(!expanded)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
width: "100%",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
background: "none",
|
||
border: "none",
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
cursor: "pointer",
|
||
textAlign: "left",
|
||
}}
|
||
>
|
||
<span style={{ width: 14, display: "flex", justifyContent: "center" }}>
|
||
{!allDone ? (
|
||
<Loader2
|
||
style={{ width: 12, height: 12 }}
|
||
className="animate-spin"
|
||
/>
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
</span>
|
||
<span style={{ flex: 1 }}>
|
||
{category} {count > 1 ? `(x${count})` : ""} {!allDone ? "..." : " ✓"}
|
||
</span>
|
||
<span
|
||
style={{
|
||
transform: expanded ? "rotate(180deg)" : "none",
|
||
transition: "transform 0.15s ease",
|
||
}}
|
||
>
|
||
<ChevronDown style={{ width: 12, height: 12, opacity: 0.5 }} />
|
||
</span>
|
||
</button>
|
||
|
||
{expanded && (
|
||
<div
|
||
style={{
|
||
padding: "0 12px 8px 34px",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
gap: 4,
|
||
}}
|
||
>
|
||
{entries.map((e, i) => (
|
||
<div
|
||
key={i}
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#8c8580",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 4,
|
||
height: 4,
|
||
borderRadius: "50%",
|
||
background: "#ccc",
|
||
}}
|
||
/>
|
||
<span style={{ fontFamily: "var(--font-mono), monospace" }}>
|
||
{friendlyToolName(e.name)}
|
||
</span>
|
||
{!e.result && e.status === "running" && (
|
||
<span className="animate-pulse">...</span>
|
||
)}
|
||
{e.result && (
|
||
<span
|
||
style={{
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
opacity: 0.7,
|
||
maxWidth: 150,
|
||
}}
|
||
title={e.result}
|
||
>
|
||
— {e.result}
|
||
</span>
|
||
)}
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function ToolBubble({ event }: { event: ToolEvent }) {
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
{event.status === "running" ? (
|
||
<Loader2 style={{ width: 12, height: 12 }} className="animate-spin" />
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
<span>
|
||
{friendlyToolName(event.name)}
|
||
{event.status === "running" ? "…" : " ✓"}
|
||
</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Main panel ────────────────────────────────────────────────────────────────
|
||
|
||
interface ChatPanelProps {
|
||
/**
|
||
* When true, the panel renders inline as a flex child of its parent
|
||
* (a structural left column on project pages). Skips the fixed-position
|
||
* slide-out treatment, the collapsed-tab affordance, and the
|
||
* --chat-panel-width side-effect. Always "open" — there's no close
|
||
* button because the panel IS the column.
|
||
*
|
||
* When false / omitted: legacy behavior — fixed slide-out on the
|
||
* right, collapsible, sets --chat-panel-width so the workspace
|
||
* content shifts left to make room.
|
||
*/
|
||
structural?: boolean;
|
||
/**
|
||
* When set with `structural` on a project route, renders a unified shell:
|
||
* full-width top bar (chat controls | section icons) and a split row
|
||
* below (chat column | artifact slot). Omit on slide-out chat.
|
||
*/
|
||
artifactSlot?: ReactNode;
|
||
}
|
||
|
||
/** Shared dimensions for preview-select + send icon buttons in the composer. */
|
||
const COMPOSER_ACTION_BTN_BASE: CSSProperties = {
|
||
flexShrink: 0,
|
||
width: 32,
|
||
height: 32,
|
||
boxSizing: "border-box",
|
||
borderRadius: 8,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 0,
|
||
};
|
||
|
||
/** Preview pick chip + select-mode toggle for unified project shell chat composer. */
|
||
function ProjectPreviewChatInputWrap({
|
||
unifiedShell,
|
||
children,
|
||
}: {
|
||
unifiedShell: boolean;
|
||
children: (selectToggle: React.ReactNode) => React.ReactNode;
|
||
}) {
|
||
const bridge = usePreviewBridge();
|
||
|
||
if (!unifiedShell || !bridge) {
|
||
return <>{children(null)}</>;
|
||
}
|
||
|
||
const { selectMode, setSelectMode, picked, clearPick } = bridge;
|
||
|
||
const chip = picked ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "flex-start",
|
||
gap: 8,
|
||
marginBottom: 8,
|
||
padding: "8px 10px",
|
||
borderRadius: 8,
|
||
background: "#eef2ff",
|
||
border: "1px solid #c7d2fe",
|
||
fontSize: "0.72rem",
|
||
lineHeight: 1.45,
|
||
color: "#312e81",
|
||
}}
|
||
>
|
||
<MousePointerClick
|
||
style={{
|
||
width: 14,
|
||
height: 14,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
opacity: 0.85,
|
||
}}
|
||
aria-hidden
|
||
/>
|
||
<div style={{ flex: 1, minWidth: 0 }}>
|
||
<div style={{ fontWeight: 600, marginBottom: 2 }}>
|
||
Preview selection
|
||
</div>
|
||
<div style={{ opacity: 0.92 }}>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-ibm-plex-mono),monospace",
|
||
fontSize: "0.68rem",
|
||
}}
|
||
>
|
||
{picked.tagName}
|
||
</span>
|
||
{" · "}
|
||
<span style={{ wordBreak: "break-word" }}>{picked.selector}</span>
|
||
</div>
|
||
{picked.textSnippet ? (
|
||
<div style={{ marginTop: 4, opacity: 0.88, wordBreak: "break-word" }}>
|
||
{`"${picked.textSnippet.slice(0, 140)}${picked.textSnippet.length > 140 ? "..." : ""}"`}
|
||
</div>
|
||
) : null}
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={clearPick}
|
||
aria-label="Clear preview selection"
|
||
style={{
|
||
flexShrink: 0,
|
||
background: "none",
|
||
border: "none",
|
||
padding: 2,
|
||
cursor: "pointer",
|
||
borderRadius: 4,
|
||
color: "#4338ca",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
>
|
||
<X style={{ width: 13, height: 13 }} />
|
||
</button>
|
||
</div>
|
||
) : null;
|
||
|
||
const selectToggle = (
|
||
<button
|
||
type="button"
|
||
aria-pressed={selectMode}
|
||
aria-label={
|
||
selectMode ? "Exit preview select mode" : "Select element from preview"
|
||
}
|
||
title={
|
||
selectMode
|
||
? "Click preview to choose an element"
|
||
: "Choose element from preview"
|
||
}
|
||
onClick={() => setSelectMode(!selectMode)}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
border: selectMode ? "1px solid #6366f1" : "1px solid #e8e4dc",
|
||
background: selectMode ? "#eef2ff" : "#faf8f5",
|
||
color: selectMode ? "#4338ca" : "#6b6560",
|
||
cursor: "pointer",
|
||
}}
|
||
>
|
||
<MousePointerClick style={{ width: 15, height: 15 }} strokeWidth={2} />
|
||
</button>
|
||
);
|
||
|
||
return (
|
||
<>
|
||
{chip}
|
||
{children(selectToggle)}
|
||
</>
|
||
);
|
||
}
|
||
|
||
export function ChatPanel({
|
||
structural = false,
|
||
artifactSlot,
|
||
}: ChatPanelProps = {}) {
|
||
const { data: sessionData, status } = useSession();
|
||
const params = useParams();
|
||
const pathname = usePathname() ?? "";
|
||
const workspace = (params?.workspace as string) || "";
|
||
// When the user is on a /project/<id>/* route, scope the chat to
|
||
// that project. The threads list, the new-thread create call, and
|
||
// the system prompt all branch on this; the chat header surfaces it
|
||
// so the user knows the AI is "talking about" the right thing.
|
||
const projectId = (params?.projectId as string) || "";
|
||
/** Full project shell (chat | artifact); must render even while auth is loading or signed out. */
|
||
const unifiedProjectShell =
|
||
structural && Boolean(projectId) && artifactSlot !== undefined;
|
||
const [activeProjectName, setActiveProjectName] = useState<string | null>(
|
||
null,
|
||
);
|
||
|
||
const [open, setOpen] = useState(() => {
|
||
// Structural mode is always-open by definition — the panel IS the
|
||
// column, there's no "closed" state to persist.
|
||
if (structural) return true;
|
||
if (typeof window === "undefined") return false;
|
||
return localStorage.getItem("vibn-chat-open") !== "false";
|
||
});
|
||
const [threads, setThreads] = useState<Thread[]>([]);
|
||
// threadsLoaded flips to true after the FIRST loadThreads() resolves.
|
||
// Used to gate the auto-create effect — without it we race the fetch
|
||
// and spawn an empty thread before history loads.
|
||
const [threadsLoaded, setThreadsLoaded] = useState(false);
|
||
const [activeThread, setActiveThread] = useState<string | null>(null);
|
||
const [messages, setMessages] = useState<Message[]>([]);
|
||
const [input, setInput] = useState("");
|
||
const [sending, setSending] = useState(false);
|
||
const [showThreads, setShowThreads] = useState(false);
|
||
const [mcpToken, setMcpToken] = useState<string | null>(null);
|
||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||
const inputRef = useRef<HTMLTextAreaElement>(null);
|
||
// AbortController for the in-flight /api/chat fetch. Lives in a ref
|
||
// so the Stop button can reach it without re-rendering on every
|
||
// streaming chunk.
|
||
const abortRef = useRef<AbortController | null>(null);
|
||
|
||
const scrollToBottom = useCallback(() => {
|
||
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
|
||
}, []);
|
||
|
||
// Persist open state + adjust main content margin
|
||
useEffect(() => {
|
||
if (structural) return;
|
||
localStorage.setItem("vibn-chat-open", String(open));
|
||
document.documentElement.style.setProperty(
|
||
"--chat-panel-width",
|
||
open ? "380px" : "0px",
|
||
);
|
||
}, [open, structural]);
|
||
|
||
// Load MCP token — prefer localStorage cache, fetch from API if missing.
|
||
// We use /api/workspaces (not the URL param) because the URL slug
|
||
// (e.g. "mark-account") differs from the actual workspace slug ("mark").
|
||
useEffect(() => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
const cached = localStorage.getItem(`vibn-mcp-token-${workspace}`);
|
||
if (cached) {
|
||
setMcpToken(cached);
|
||
return;
|
||
}
|
||
fetch("/api/workspaces?include_default_token=true")
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (d?.defaultToken) {
|
||
localStorage.setItem(`vibn-mcp-token-${workspace}`, d.defaultToken);
|
||
setMcpToken(d.defaultToken);
|
||
}
|
||
})
|
||
.catch(() => {});
|
||
}, [workspace, status]);
|
||
|
||
// Load threads (scoped to the current project when one is in the URL).
|
||
// Reset the loaded flag when projectId changes so the resume effect
|
||
// re-runs against the correct list and doesn't restore a thread from
|
||
// the previous project.
|
||
const loadThreads = useCallback(async () => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
try {
|
||
const qs = new URLSearchParams({ workspace });
|
||
if (projectId) qs.set("projectId", projectId);
|
||
const res = await fetch(`/api/chat/threads?${qs.toString()}`);
|
||
const data = await res.json();
|
||
setThreads(data.threads || []);
|
||
} catch {
|
||
/* silent */
|
||
} finally {
|
||
setThreadsLoaded(true);
|
||
}
|
||
}, [workspace, projectId, status]);
|
||
|
||
useEffect(() => {
|
||
setThreadsLoaded(false);
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
// Clear the threads array immediately so the resume effect doesn't
|
||
// race the loadThreads() fetch and resume a stale project-scoped
|
||
// thread when the user navigates from /project/X back to /projects.
|
||
setThreads([]);
|
||
loadThreads();
|
||
}, [loadThreads, projectId]);
|
||
|
||
// Look up the active project's display name once we have a projectId,
|
||
// so the chat header can show "Talking about: <name>".
|
||
useEffect(() => {
|
||
if (!projectId) {
|
||
setActiveProjectName(null);
|
||
return;
|
||
}
|
||
let cancelled = false;
|
||
fetch(`/api/projects/${projectId}/anatomy`, { credentials: "include" })
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (cancelled) return;
|
||
const name = d?.project?.name;
|
||
if (name) setActiveProjectName(name);
|
||
})
|
||
.catch(() => {});
|
||
return () => {
|
||
cancelled = true;
|
||
};
|
||
}, [projectId]);
|
||
|
||
// Create and activate a new thread (tagged to the active project, if any).
|
||
const newThread = useCallback(async () => {
|
||
try {
|
||
const res = await fetch("/api/chat/threads", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ workspace, projectId: projectId || undefined }),
|
||
});
|
||
const data = await res.json();
|
||
if (data.thread) {
|
||
setThreads((prev) => [data.thread, ...prev]);
|
||
setActiveThread(data.thread.id);
|
||
setMessages([]);
|
||
setShowThreads(false);
|
||
}
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, [workspace, projectId]);
|
||
|
||
// Load thread messages
|
||
const loadThread = useCallback(async (id: string) => {
|
||
setActiveThread(id);
|
||
setShowThreads(false);
|
||
setMessages([]);
|
||
try {
|
||
const res = await fetch(`/api/chat/threads/${id}`);
|
||
const data = await res.json();
|
||
// Hydrate the timeline from persisted textSegments + toolCalls
|
||
// so a reloaded thread renders the same per-round bubbles the
|
||
// user saw during streaming. Older messages without
|
||
// textSegments fall back to the legacy single-bubble path.
|
||
const hydrated = (data.messages || []).map((m: any) => {
|
||
if (m.role !== "assistant") return m;
|
||
const segs: string[] = Array.isArray(m.textSegments)
|
||
? m.textSegments
|
||
: [];
|
||
if (segs.length === 0) return m;
|
||
const timeline: TimelineEntry[] = segs.map((t) => ({
|
||
kind: "text",
|
||
text: t,
|
||
}));
|
||
// We don't have round-level interleaving for tool calls in
|
||
// the persisted shape (the schema flattens them), so we drop
|
||
// the toolCalls into the timeline at the end. The streamed
|
||
// shape preserves true ordering; this is just a reload
|
||
// approximation. Good enough — what the user really cares
|
||
// about is the text segments not run-on'ing into one blob.
|
||
if (Array.isArray(m.toolCalls)) {
|
||
for (const tc of m.toolCalls) {
|
||
timeline.push({ kind: "tool", name: tc.name, status: "done" });
|
||
}
|
||
}
|
||
return { ...m, timeline, content: "" };
|
||
});
|
||
setMessages(hydrated);
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, []);
|
||
|
||
// Auto-resume previous thread (or create a fresh one if the user has
|
||
// never chatted in this workspace). We MUST wait for threadsLoaded
|
||
// before deciding — otherwise we race the fetch and spawn an empty
|
||
// thread before history arrives. Last-active thread is restored from
|
||
// localStorage so a page reload (deploy, refresh) lands the user back
|
||
// in the conversation they were in.
|
||
useEffect(() => {
|
||
if (!open || status !== "authenticated" || !workspace) return;
|
||
if (!threadsLoaded) return;
|
||
if (activeThread) return;
|
||
|
||
if (threads.length === 0) {
|
||
newThread();
|
||
return;
|
||
}
|
||
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
const saved =
|
||
typeof window !== "undefined" ? localStorage.getItem(savedKey) : null;
|
||
const target =
|
||
saved && threads.some((t) => t.id === saved) ? saved : threads[0].id;
|
||
loadThread(target);
|
||
}, [
|
||
open,
|
||
status,
|
||
workspace,
|
||
projectId,
|
||
threadsLoaded,
|
||
threads,
|
||
activeThread,
|
||
newThread,
|
||
loadThread,
|
||
]);
|
||
|
||
// Persist active thread so reload re-opens the same conversation,
|
||
// keyed per-project so each project has its own "last conversation".
|
||
useEffect(() => {
|
||
if (typeof window === "undefined" || !workspace) return;
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
if (activeThread) localStorage.setItem(savedKey, activeThread);
|
||
}, [activeThread, workspace, projectId]);
|
||
|
||
useEffect(() => {
|
||
scrollToBottom();
|
||
}, [messages, scrollToBottom]);
|
||
|
||
const deleteThread = useCallback(
|
||
async (id: string, e: React.MouseEvent) => {
|
||
e.stopPropagation();
|
||
await fetch(`/api/chat/threads/${id}`, { method: "DELETE" });
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [
|
||
...tl,
|
||
{ kind: "tool", name: ev.name, status: "running" },
|
||
],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_result") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
// Walk backward to the most recent matching running
|
||
// tool entry and mark it done. Avoids cross-matching
|
||
// earlier same-named entries.
|
||
let updated = false;
|
||
const newTl: TimelineEntry[] = [];
|
||
for (let i = tl.length - 1; i >= 0; i--) {
|
||
const e = tl[i];
|
||
if (
|
||
!updated &&
|
||
e.kind === "tool" &&
|
||
e.name === ev.name &&
|
||
e.status === "running"
|
||
) {
|
||
newTl.unshift({
|
||
...e,
|
||
status: "done",
|
||
result: ev.result,
|
||
});
|
||
updated = true;
|
||
} else {
|
||
newTl.unshift(e);
|
||
}
|
||
}
|
||
next[msgIndex] = { ...next[msgIndex], timeline: newTl };
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "error") {
|
||
const errText = ev.error || "Unknown error";
|
||
const isToolErr = /tool|mcp|coolify|gitea/i.test(errText);
|
||
const errBubble = isToolErr
|
||
? `⚠️ **Tool error:** ${errText}`
|
||
: `⚠️ ${errText}`;
|
||
assistantContent += (assistantContent ? "\n\n" : "") + errBubble;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "text", text: errBubble }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
// Auto-title thread from first message
|
||
const thisThread = threads.find((t) => t.id === activeThread);
|
||
if (thisThread?.title === "New conversation") {
|
||
const title = text.slice(0, 50);
|
||
await fetch(`/api/chat/threads/${activeThread}`, {
|
||
method: "PATCH",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ title }),
|
||
});
|
||
setThreads((prev) =>
|
||
prev.map((t) => (t.id === activeThread ? { ...t, title } : t)),
|
||
);
|
||
}
|
||
|
||
loadThreads();
|
||
} catch (e) {
|
||
const isAbort = e instanceof DOMException && e.name === "AbortError";
|
||
if (isAbort) {
|
||
// Server-side will have appended "(stopped by user)" to the
|
||
// partial response and persisted it. We just need to make
|
||
// sure the local UI reflects whatever streamed in before the
|
||
// user clicked Stop — which it already does, because we've
|
||
// been mutating `messages[msgIndex]` chunk-by-chunk above.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (
|
||
msgIndex >= 0 &&
|
||
next[msgIndex] &&
|
||
!next[msgIndex].content.includes("(stopped by user)")
|
||
) {
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
content:
|
||
(next[msgIndex].content || "") + "\n\n_(stopped by user)_",
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else {
|
||
const errMsg = e instanceof Error ? e.message : String(e);
|
||
const isNetwork = /fetch|network|failed to fetch/i.test(errMsg);
|
||
const friendlyError = isNetwork
|
||
? "⚠️ Network error — check your connection and try again."
|
||
: `⚠️ Something went wrong: ${errMsg.slice(0, 200)}\n\nYou can try again or start a new message.`;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
next[msgIndex] = { ...next[msgIndex], content: friendlyError };
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
} finally {
|
||
abortRef.current = null;
|
||
setSending(false);
|
||
}
|
||
},
|
||
[
|
||
input,
|
||
sending,
|
||
activeThread,
|
||
workspace,
|
||
mcpToken,
|
||
threads,
|
||
loadThreads,
|
||
unifiedProjectShell,
|
||
],
|
||
);
|
||
|
||
const cancelMessage = useCallback(() => {
|
||
abortRef.current?.abort();
|
||
}, []);
|
||
|
||
// External components (e.g. ProjectHeaderUrls' "Start preview" button)
|
||
// can ask the chat to send a canned prompt without prop-drilling. Open
|
||
// the panel if collapsed, then fire the prompt as if the user typed it.
|
||
useEffect(() => {
|
||
function onPrompt(e: Event) {
|
||
const ce = e as CustomEvent<{ prompt?: string; scopeProjectId?: string }>;
|
||
const prompt = ce.detail?.prompt;
|
||
if (!prompt) return;
|
||
// If the dispatcher scopes the prompt to a specific project, only
|
||
// accept it when the chat panel is currently bound to that project.
|
||
// Prevents a "Start preview on Manifest" click from accidentally
|
||
// landing in a chat that's scoped to a different project.
|
||
if (ce.detail?.scopeProjectId && ce.detail.scopeProjectId !== projectId) {
|
||
return;
|
||
}
|
||
setOpen(true);
|
||
void sendMessage(prompt);
|
||
}
|
||
window.addEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
return () =>
|
||
window.removeEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
}, [sendMessage, projectId]);
|
||
|
||
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||
if (e.key === "Enter" && !e.shiftKey) {
|
||
e.preventDefault();
|
||
sendMessage();
|
||
} else if (e.key === "Escape" && sending) {
|
||
e.preventDefault();
|
||
cancelMessage();
|
||
}
|
||
};
|
||
|
||
// Slide-out chat hidden until signed in. Structural project shell always
|
||
// mounts so Preview / Product / Plan pages render; chat column shows loading
|
||
// or sign-in instead of wiping the whole viewport (blank page).
|
||
if (!unifiedProjectShell && status !== "authenticated") return null;
|
||
|
||
// ── Collapsed tab ──────────────────────────────────────────────────────────
|
||
// Structural mode is always-open; skip the collapsed-tab branch entirely.
|
||
if (!open && !structural) {
|
||
return (
|
||
<button
|
||
onClick={() => setOpen(true)}
|
||
style={{
|
||
position: "fixed",
|
||
right: 0,
|
||
top: "50%",
|
||
transform: "translateY(-50%)",
|
||
zIndex: 1000,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
border: "none",
|
||
borderRadius: "8px 0 0 8px",
|
||
padding: "14px 10px",
|
||
cursor: "pointer",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
boxShadow: "-2px 0 12px #1a1a1a14",
|
||
}}
|
||
title="Open Vibn AI"
|
||
>
|
||
<MessageSquare style={{ width: 16, height: 16 }} />
|
||
<span
|
||
style={{
|
||
writingMode: "vertical-rl",
|
||
textOrientation: "mixed",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.08em",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
transform: "rotate(180deg)",
|
||
}}
|
||
>
|
||
VIBN AI
|
||
</span>
|
||
</button>
|
||
);
|
||
}
|
||
|
||
const conversationColumn = (
|
||
<>
|
||
{/* Thread list dropdown */}
|
||
{showThreads && (
|
||
<div
|
||
style={{
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
maxHeight: 200,
|
||
overflowY: "auto",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{threads.length === 0 && (
|
||
<div
|
||
style={{
|
||
padding: "12px 16px",
|
||
fontSize: "0.78rem",
|
||
color: "#a09a90",
|
||
}}
|
||
>
|
||
No conversations yet
|
||
</div>
|
||
)}
|
||
{threads.map((t) => (
|
||
<div
|
||
key={t.id}
|
||
onClick={() => loadThread(t.id)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "9px 16px",
|
||
background: activeThread === t.id ? "#f0ede8" : "transparent",
|
||
cursor: "pointer",
|
||
borderBottom: "1px solid #f0ede8",
|
||
}}
|
||
onMouseEnter={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "#f7f4ef";
|
||
}}
|
||
onMouseLeave={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "transparent";
|
||
}}
|
||
>
|
||
<div style={{ minWidth: 0 }}>
|
||
<div
|
||
style={{
|
||
fontSize: "0.8rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
{t.title}
|
||
</div>
|
||
<div style={{ fontSize: "0.7rem", color: "#a09a90" }}>
|
||
{timeAgo(t.updatedAt)}
|
||
</div>
|
||
</div>
|
||
<button
|
||
onClick={(e) => deleteThread(t.id, e)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
color: "#c0bab2",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<Trash2 style={{ width: 12, height: 12 }} />
|
||
</button>
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
|
||
{/* Messages */}
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
overflowY: "auto",
|
||
overflowX: "hidden",
|
||
padding: "16px 14px",
|
||
}}
|
||
>
|
||
{messages.length === 0 && !sending && (
|
||
<div
|
||
style={{ padding: "24px 14px", maxWidth: 640, margin: "0 auto" }}
|
||
>
|
||
<div style={{ display: "flex", gap: 12 }}>
|
||
<div
|
||
style={{
|
||
width: 28,
|
||
height: 28,
|
||
borderRadius: 6,
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
color: "#fff",
|
||
fontSize: "0.85rem",
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</div>
|
||
<div
|
||
style={{
|
||
background: "#fff",
|
||
border: "1px solid #e8e4dc",
|
||
padding: "14px 18px",
|
||
borderRadius: "0 12px 12px 12px",
|
||
fontSize: "0.9rem",
|
||
color: "#1a1a1a",
|
||
lineHeight: 1.6,
|
||
boxShadow: "0 1px 2px #1a1a1a05",
|
||
maxWidth: "85%",
|
||
}}
|
||
>
|
||
Welcome to {activeProjectName ? activeProjectName : "Vibn"}!
|
||
Tell me what you want to build and I'll scaffold it, run it in a
|
||
preview, and ship it when you say so.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{messages.map((msg, i) => (
|
||
<MessageBubble key={msg.id || i} msg={msg} />
|
||
))}
|
||
|
||
{sending && messages[messages.length - 1]?.role !== "assistant" && (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 0",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
{[0, 1, 2].map((i) => (
|
||
<span
|
||
key={i}
|
||
style={{
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: "50%",
|
||
background: "#c0bab2",
|
||
animation: `vibn-bounce 1.2s ease infinite ${i * 0.2}s`,
|
||
display: "inline-block",
|
||
}}
|
||
/>
|
||
))}
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
<div ref={messagesEndRef} />
|
||
</div>
|
||
|
||
{/* Input */}
|
||
<div
|
||
style={{
|
||
padding: "12px 14px",
|
||
borderTop: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{!mcpToken && (
|
||
<div
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#9a7b3a",
|
||
background: "#d4a04a12",
|
||
border: "1px solid #d4a04a30",
|
||
borderRadius: 6,
|
||
padding: "5px 10px",
|
||
marginBottom: 8,
|
||
lineHeight: 1.4,
|
||
}}
|
||
>
|
||
Read-only mode — add your MCP token in Settings to enable actions.
|
||
</div>
|
||
)}
|
||
<ProjectPreviewChatInputWrap unifiedShell={unifiedProjectShell}>
|
||
{(selectToggle) => (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
gap: 8,
|
||
alignItems: "center",
|
||
background: "#fff",
|
||
borderRadius: 10,
|
||
border: "1px solid #e8e4dc",
|
||
padding: "8px 10px",
|
||
boxShadow: "0 1px 3px #1a1a1a05",
|
||
}}
|
||
>
|
||
<textarea
|
||
ref={inputRef}
|
||
value={input}
|
||
onChange={(e) => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={
|
||
sending ? "Esc to stop generating…" : "Ask Vibn AI anything…"
|
||
}
|
||
rows={1}
|
||
disabled={!activeThread}
|
||
style={{
|
||
flex: 1,
|
||
border: "none",
|
||
outline: "none",
|
||
background: "transparent",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.5,
|
||
resize: "none",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
color: "#1a1a1a",
|
||
maxHeight: 120,
|
||
overflowY: "auto",
|
||
}}
|
||
onInput={(e) => {
|
||
const el = e.currentTarget;
|
||
el.style.height = "auto";
|
||
el.style.height = Math.min(el.scrollHeight, 120) + "px";
|
||
}}
|
||
/>
|
||
{selectToggle}
|
||
{(() => {
|
||
// While the AI is streaming or running tools, the button
|
||
// turns into a Stop control. Click → AbortController fires,
|
||
// server bails between rounds, partial text gets persisted.
|
||
const isActive = sending;
|
||
const canSend = !sending && input.trim() && activeThread;
|
||
return (
|
||
<button
|
||
type="button"
|
||
onClick={isActive ? cancelMessage : () => sendMessage()}
|
||
disabled={!isActive && !canSend}
|
||
aria-label={isActive ? "Stop generating" : "Send message"}
|
||
title={isActive ? "Stop generating (Esc)" : "Send"}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
background: isActive
|
||
? "#1a1a1a"
|
||
: canSend
|
||
? "#1a1a1a"
|
||
: "#e8e4dc",
|
||
color: isActive || canSend ? "#fff" : "#a09a90",
|
||
border: "none",
|
||
cursor: isActive || canSend ? "pointer" : "default",
|
||
transition: "all 0.15s",
|
||
position: "relative",
|
||
}}
|
||
>
|
||
{isActive ? (
|
||
<>
|
||
<Loader2
|
||
style={{
|
||
width: 15,
|
||
height: 15,
|
||
position: "absolute",
|
||
opacity: 0.35,
|
||
}}
|
||
className="animate-spin"
|
||
/>
|
||
<Square
|
||
style={{
|
||
width: 9,
|
||
height: 9,
|
||
fill: "#fff",
|
||
strokeWidth: 0,
|
||
}}
|
||
/>
|
||
</>
|
||
) : (
|
||
<Send style={{ width: 15, height: 15 }} />
|
||
)}
|
||
</button>
|
||
);
|
||
})()}
|
||
</div>
|
||
)}
|
||
</ProjectPreviewChatInputWrap>
|
||
</div>
|
||
</>
|
||
);
|
||
|
||
const structuralChatLoadingColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 14,
|
||
}}
|
||
>
|
||
<Loader2
|
||
className="animate-spin"
|
||
style={{ width: 22, height: 22, color: "#9c9590" }}
|
||
/>
|
||
<p style={{ fontSize: "0.84rem", color: "#6b6560", margin: 0 }}>
|
||
Signing you in…
|
||
</p>
|
||
</div>
|
||
);
|
||
|
||
const authHref = pathname
|
||
? `/auth?callbackUrl=${encodeURIComponent(pathname)}`
|
||
: "/auth";
|
||
|
||
const structuralChatSignedOutColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 12,
|
||
}}
|
||
>
|
||
<p
|
||
style={{
|
||
fontSize: "0.88rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
}}
|
||
>
|
||
Sign in to use Vibn AI
|
||
</p>
|
||
<p
|
||
style={{
|
||
fontSize: "0.76rem",
|
||
color: "#a09a90",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
maxWidth: 260,
|
||
lineHeight: 1.5,
|
||
}}
|
||
>
|
||
Preview and tabs still work here. Chat needs an account.
|
||
</p>
|
||
<Link
|
||
href={authHref}
|
||
style={{
|
||
marginTop: 4,
|
||
padding: "10px 18px",
|
||
borderRadius: 10,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
fontSize: "0.82rem",
|
||
fontWeight: 500,
|
||
textDecoration: "none",
|
||
}}
|
||
>
|
||
Sign in
|
||
</Link>
|
||
</div>
|
||
);
|
||
|
||
const structuralChatBody =
|
||
status === "loading"
|
||
? structuralChatLoadingColumn
|
||
: status !== "authenticated"
|
||
? structuralChatSignedOutColumn
|
||
: conversationColumn;
|
||
|
||
if (unifiedProjectShell) {
|
||
return (
|
||
<>
|
||
<PreviewBridgeProvider>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
background: "#fff",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
alignItems: "stretch",
|
||
flexShrink: 0,
|
||
height: 48,
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
boxSizing: "border-box",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
height: "100%",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
padding: "0 12px",
|
||
gap: 6,
|
||
boxSizing: "border-box",
|
||
borderRight: "1px solid #e8e4dc",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
width: "100%",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 5px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus style={{ width: 14, height: 14 }} />
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
alignItems: "stretch",
|
||
}}
|
||
>
|
||
<ProjectIconRail workspace={workspace} projectId={projectId} />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
borderRight: "1px solid #e8e4dc",
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{structuralChatBody}
|
||
</div>
|
||
<div
|
||
key={pathname}
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
overflow: "auto",
|
||
background: "#faf8f5",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{artifactSlot}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</PreviewBridgeProvider>
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</>
|
||
);
|
||
}
|
||
|
||
// ── Open panel ─────────────────────────────────────────────────────────────
|
||
// Structural mode: fill the parent column. Default mode: fixed slide-out
|
||
// anchored to the right edge of the viewport (legacy behavior).
|
||
return (
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
flex: 1,
|
||
minHeight: 0,
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
: {
|
||
position: "fixed",
|
||
right: 0,
|
||
top: 0,
|
||
bottom: 0,
|
||
zIndex: 999,
|
||
width: 380,
|
||
background: "#fff",
|
||
borderLeft: "1px solid #e8e4dc",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
boxShadow: "-4px 0 24px #1a1a1a08",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
}
|
||
>
|
||
{/* Header — structural: circle logo + threads; slide-out: wordmark */}
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
height: 48,
|
||
padding: "0 12px",
|
||
boxSizing: "border-box",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
gap: 6,
|
||
}
|
||
: {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "14px 16px",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}
|
||
}
|
||
>
|
||
{structural ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
) : (
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 6px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-lora),serif",
|
||
fontSize: "0.95rem",
|
||
fontWeight: 400,
|
||
color: "#1a1a1a",
|
||
letterSpacing: "-0.01em",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
Vibn AI
|
||
</span>
|
||
<ChevronDown
|
||
style={{
|
||
width: 13,
|
||
height: 13,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 6,
|
||
padding: "2px 8px",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 160,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
)}
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: structural ? "4px 5px" : "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus
|
||
style={{
|
||
width: structural ? 14 : 15,
|
||
height: structural ? 14 : 15,
|
||
}}
|
||
/>
|
||
</button>
|
||
{!structural && (
|
||
<button
|
||
type="button"
|
||
onClick={() => setOpen(false)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="Close"
|
||
>
|
||
<ChevronRight style={{ width: 15, height: 15 }} />
|
||
</button>
|
||
)}
|
||
</div>
|
||
</div>
|
||
|
||
{conversationColumn}
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: vibn\-frontend/components/vibn\-chat/chat\-panel.tsx**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
```
|
||
"use client";
|
||
|
||
import {
|
||
useEffect,
|
||
useRef,
|
||
useState,
|
||
useCallback,
|
||
type ReactNode,
|
||
type CSSProperties,
|
||
} from "react";
|
||
import Link from "next/link";
|
||
import { useSession } from "next-auth/react";
|
||
import { useParams, usePathname } from "next/navigation";
|
||
import {
|
||
MessageSquare,
|
||
X,
|
||
ChevronRight,
|
||
Send,
|
||
Plus,
|
||
Loader2,
|
||
Wrench,
|
||
ChevronDown,
|
||
Trash2,
|
||
Square,
|
||
MousePointerClick,
|
||
Sparkles,
|
||
} from "lucide-react";
|
||
import { ProjectIconRail } from "@/components/project/project-icon-rail";
|
||
import {
|
||
PreviewBridgeProvider,
|
||
previewMessagePrepRef,
|
||
usePreviewBridge,
|
||
} from "@/components/project/preview-bridge-context";
|
||
|
||
// ── Types ─────────────────────────────────────────────────────────────────────
|
||
|
||
interface Thread {
|
||
id: string;
|
||
title: string;
|
||
updatedAt: string;
|
||
}
|
||
|
||
interface Message {
|
||
id?: string;
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: { id: string; name: string; args: Record<string, unknown> }[];
|
||
toolName?: string;
|
||
createdAt?: string;
|
||
/**
|
||
* Chronological turn timeline interleaving the model's thinking
|
||
* narration and the tool calls it fired. Rendered as a stack of
|
||
* pills INSIDE the bubble above the final text content, so the
|
||
* user sees the actual flow:
|
||
* [thought] [tool ×N] [thought] [tool] ... [summary]
|
||
* Each thought is its own collapsed pill (click to expand);
|
||
* adjacent runs of the same tool name collapse into one pill
|
||
* with a ×N counter. The final assistant text is rendered
|
||
* separately, below the timeline.
|
||
*/
|
||
timeline?: TimelineEntry[];
|
||
}
|
||
|
||
type TimelineEntry =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "tool"; name: string; status: "running" | "done"; result?: string }
|
||
// A text segment from one round of the assistant's tool loop.
|
||
// Each text SSE event from the server starts a new entry; subsequent
|
||
// streaming chunks for that same round append to the most-recent
|
||
// text entry. Tool/thought entries between text segments break the
|
||
// accumulation so multi-round turns render as separate bubbles.
|
||
| { kind: "text"; text: string };
|
||
|
||
interface ToolEvent {
|
||
name: string;
|
||
status: "running" | "done";
|
||
result?: string;
|
||
}
|
||
|
||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||
|
||
function getFriendlyCategory(name: string): string {
|
||
if (
|
||
name.includes("fs.edit") ||
|
||
name.includes("fs.write") ||
|
||
name.includes("fs_edit") ||
|
||
name.includes("fs_write")
|
||
)
|
||
return "Writing code";
|
||
if (
|
||
name.includes("fs.read") ||
|
||
name.includes("fs.list") ||
|
||
name.includes("fs.grep") ||
|
||
name.includes("fs.tree") ||
|
||
name.includes("fs_read") ||
|
||
name.includes("fs_list") ||
|
||
name.includes("fs_grep") ||
|
||
name.includes("fs_tree")
|
||
)
|
||
return "Reading codebase";
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
return "Running terminal commands";
|
||
if (name.includes("dev_server.start") || name.includes("dev_server_start"))
|
||
return "Starting dev server";
|
||
if (name.includes("dev_server.logs") || name.includes("dev_server_logs"))
|
||
return "Checking server logs";
|
||
if (
|
||
name.includes("browser.navigate") ||
|
||
name.includes("browser.console") ||
|
||
name.includes("browser_navigate") ||
|
||
name.includes("browser_console")
|
||
)
|
||
return "Checking browser preview";
|
||
if (name.includes("ship")) return "Shipping code to production";
|
||
|
||
return name;
|
||
}
|
||
|
||
function timeAgo(dateStr?: string): string {
|
||
if (!dateStr) return "";
|
||
const diff = (Date.now() - new Date(dateStr).getTime()) / 1000;
|
||
if (diff < 60) return "just now";
|
||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
||
return `${Math.floor(diff / 86400)}d ago`;
|
||
}
|
||
|
||
function friendlyToolName(name: string): string {
|
||
return name
|
||
.replace(/_/g, ".")
|
||
.replace("projects.list", "listing projects")
|
||
.replace("apps.list", "listing apps")
|
||
.replace("apps.create", "deploying app")
|
||
.replace("apps.templates.list", "listing templates")
|
||
.replace("apps.templates.search", "searching templates")
|
||
.replace("domains.register", "registering domain")
|
||
.replace("domains.list", "listing domains")
|
||
.replace("apps.logs", "fetching logs");
|
||
}
|
||
|
||
const LOADING_PHRASES = [
|
||
"Thinking about the problem...",
|
||
"Reviewing the plan...",
|
||
"Caramelizing onions...",
|
||
"Writing code...",
|
||
"Running checks...",
|
||
"Reticulating splines...",
|
||
"Building out the view...",
|
||
];
|
||
|
||
function ActiveThinkingIndicator() {
|
||
const [phraseIndex, setPhraseIndex] = useState(0);
|
||
|
||
useEffect(() => {
|
||
const timer = setInterval(() => {
|
||
setPhraseIndex((i) => (i + 1) % LOADING_PHRASES.length);
|
||
}, 2800);
|
||
return () => clearInterval(timer);
|
||
}, []);
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "4px 4px 10px 4px",
|
||
fontSize: "0.85rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<svg
|
||
width="16"
|
||
height="16"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="#cf6741"
|
||
strokeWidth="2.5"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
className="animate-spin"
|
||
style={{ animationDuration: "3s" }}
|
||
>
|
||
<path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83" />
|
||
</svg>
|
||
</div>
|
||
<span className="animate-pulse">{LOADING_PHRASES[phraseIndex]}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Markdown-lite renderer ────────────────────────────────────────────────────
|
||
|
||
function escapeHtmlAttr(s: string): string {
|
||
return s.replace(/&/g, "&").replace(/"/g, """);
|
||
}
|
||
|
||
const LINK_STYLE =
|
||
"color:#4338ca;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all";
|
||
|
||
/** [label](https://...) — href restricted to http(s) */
|
||
function markdownLinksToHtml(s: string): string {
|
||
return s.replace(
|
||
/\[([^\]]+)\]\((https?:\/\/[^\s)<>]+)\)/gi,
|
||
(_m, label: string, url: string) => {
|
||
return `<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${label}</a>`;
|
||
},
|
||
);
|
||
}
|
||
|
||
/** Bare https:// in prose (skips when prefix is `>` so href=/code aren't touched) */
|
||
function autoLinkBareUrls(s: string): string {
|
||
return s.replace(
|
||
/(^|[\s\-—:(\[{])(https?:\/\/[^\s<>"']+)/gi,
|
||
(match, pre: string, url: string) =>
|
||
`${pre}<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${url}</a>`,
|
||
);
|
||
}
|
||
|
||
function renderMarkdown(text: string): string {
|
||
let s = text
|
||
.replace(/&/g, "&")
|
||
.replace(/</g, "<")
|
||
.replace(/>/g, ">");
|
||
s = markdownLinksToHtml(s);
|
||
s = s
|
||
.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>")
|
||
.replace(
|
||
/`([^`]+)`/g,
|
||
'<code style="background:#f0ede8;padding:1px 5px;border-radius:3px;font-family:var(--font-ibm-plex-mono),monospace;font-size:0.85em;overflow-wrap:anywhere;word-break:break-word">$1</code>',
|
||
)
|
||
.replace(
|
||
/^### (.+)$/gm,
|
||
'<h3 style="font-weight:600;margin:12px 0 4px;font-size:0.88rem;overflow-wrap:anywhere;word-break:break-word">$1</h3>',
|
||
)
|
||
.replace(
|
||
/^## (.+)$/gm,
|
||
'<h2 style="font-weight:600;margin:14px 0 4px;font-size:0.9rem;overflow-wrap:anywhere;word-break:break-word">$1</h2>',
|
||
)
|
||
.replace(
|
||
/^- (.+)$/gm,
|
||
'<li style="margin-left:16px;list-style:disc;overflow-wrap:anywhere;word-break:break-word">$1</li>',
|
||
)
|
||
.replace(
|
||
/(<li[^>]*>.*<\/li>\n?)+/g,
|
||
(m) => `<ul style="margin:6px 0">${m}</ul>`,
|
||
)
|
||
.replace(
|
||
/\n\n/g,
|
||
'</p><p style="margin:0 0 8px;overflow-wrap:anywhere;word-break:break-word">',
|
||
)
|
||
.replace(/\n/g, "<br>");
|
||
s = autoLinkBareUrls(s);
|
||
return s;
|
||
}
|
||
|
||
// ── Message bubble ────────────────────────────────────────────────────────────
|
||
|
||
/**
|
||
* Strip the markdown-bold "**Section Heading**" lines that Gemini
|
||
* loves to start each thought with so the collapsed pill shows the
|
||
* actual sentence rather than "**Examining the Target Server File**".
|
||
* The full text is still available in the expanded view.
|
||
*/
|
||
function thoughtPreview(thoughts: string): string {
|
||
const stripped = thoughts
|
||
.replace(/^\s*\*\*[^*]+\*\*\s*/gm, "")
|
||
.replace(/\s+/g, " ")
|
||
.trim();
|
||
if (stripped.length <= 90) return stripped;
|
||
return stripped.slice(0, 87) + "…";
|
||
}
|
||
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
fontSize: "0.75rem",
|
||
color: "#8c8580",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
fontStyle: "italic",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<Sparkles
|
||
style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
className="animate-pulse"
|
||
/>
|
||
</div>
|
||
<span className="animate-pulse">{currentAction}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function MessageBubble({ msg }: { msg: Message }) {
|
||
const isUser = msg.role === "user";
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
justifyContent: isUser ? "flex-end" : "flex-start",
|
||
marginBottom: 12,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{!isUser && (
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
marginRight: 8,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
)}
|
||
<div
|
||
style={{
|
||
maxWidth: "82%",
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{!isUser && msg.timeline && msg.timeline.length > 0 && (
|
||
<Timeline entries={msg.timeline} />
|
||
)}
|
||
{/*
|
||
Render the legacy bottom content bubble ONLY when:
|
||
- the message is from the user (their bubble is always the
|
||
content slot), OR
|
||
- the assistant message has no timeline at all (very old
|
||
messages from before timeline existed).
|
||
When the timeline contains text entries the prose is already
|
||
rendered there, and showing it again here would duplicate
|
||
every paragraph below the timeline.
|
||
*/}
|
||
{((msg.content && isUser) ||
|
||
(msg.content &&
|
||
!isUser &&
|
||
(!msg.timeline || msg.timeline.length === 0))) && (
|
||
<div
|
||
style={{
|
||
padding: isUser ? "9px 14px" : "10px 14px",
|
||
borderRadius: isUser
|
||
? "14px 14px 4px 14px"
|
||
: "4px 14px 14px 14px",
|
||
background: isUser ? "#1a1a1a" : "#f7f4ef",
|
||
color: isUser ? "#fff" : "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
{isUser ? (
|
||
<span style={{ whiteSpace: "pre-wrap", ...proseWrap }}>
|
||
{msg.content}
|
||
</span>
|
||
) : (
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{
|
||
__html: renderMarkdown(msg.content),
|
||
}}
|
||
/>
|
||
)}
|
||
</div>
|
||
)}
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Renders the chronological turn timeline: thoughts as their own
|
||
* collapsed pills, tool calls grouped by adjacent runs of the same
|
||
* name with a ×N counter. The flow visually mirrors what actually
|
||
* happened: thought → tools → thought → tools → ... → final summary.
|
||
*/
|
||
function Timeline({ entries }: { entries: TimelineEntry[] }) {
|
||
// Walk the entries and emit a renderable list. Adjacent same-category
|
||
// tool entries get bundled into a TimelineToolGroup; thought and
|
||
// text entries pass through as-is.
|
||
type Item =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "text"; text: string }
|
||
| {
|
||
kind: "toolGroup";
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
};
|
||
const items: Item[] = [];
|
||
for (const e of entries) {
|
||
if (e.kind === "thought") {
|
||
items.push({ kind: "thought", text: e.text });
|
||
} else if (e.kind === "text") {
|
||
items.push({ kind: "text", text: e.text });
|
||
} else {
|
||
const last = items[items.length - 1];
|
||
const category = getFriendlyCategory(e.name);
|
||
if (last && last.kind === "toolGroup" && last.category === category) {
|
||
last.entries.push(e);
|
||
} else {
|
||
items.push({ kind: "toolGroup", category, entries: [e] });
|
||
}
|
||
}
|
||
}
|
||
return (
|
||
<div style={{ marginBottom: 6 }}>
|
||
{items.map((item, i) => {
|
||
if (item.kind === "thought") {
|
||
return <ThinkingBubble key={i} thoughts={item.text} />;
|
||
}
|
||
if (item.kind === "text") {
|
||
return <TimelineText key={i} text={item.text} />;
|
||
}
|
||
return (
|
||
<TimelineToolGroup
|
||
key={i}
|
||
category={item.category}
|
||
entries={item.entries}
|
||
/>
|
||
);
|
||
})}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* One text segment in the assistant's timeline. Rendered as its own
|
||
* bubble so each round of multi-tool-loop output reads as a discrete
|
||
* step instead of concatenating into a wall of text.
|
||
*/
|
||
function TimelineText({ text }: { text: string }) {
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
padding: "10px 14px",
|
||
borderRadius: "4px 14px 14px 14px",
|
||
background: "#f7f4ef",
|
||
color: "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
marginBottom: 6,
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{ __html: renderMarkdown(text) }}
|
||
/>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function TimelineToolGroup({
|
||
category,
|
||
entries,
|
||
}: {
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
}) {
|
||
const [expanded, setExpanded] = useState(false);
|
||
const count = entries.length;
|
||
const allDone = entries.every((e) => e.status === "done");
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<button
|
||
onClick={() => setExpanded(!expanded)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
width: "100%",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
background: "none",
|
||
border: "none",
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
cursor: "pointer",
|
||
textAlign: "left",
|
||
}}
|
||
>
|
||
<span style={{ width: 14, display: "flex", justifyContent: "center" }}>
|
||
{!allDone ? (
|
||
<Loader2
|
||
style={{ width: 12, height: 12 }}
|
||
className="animate-spin"
|
||
/>
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
</span>
|
||
<span style={{ flex: 1 }}>
|
||
{category} {count > 1 ? `(x${count})` : ""} {!allDone ? "..." : " ✓"}
|
||
</span>
|
||
<span
|
||
style={{
|
||
transform: expanded ? "rotate(180deg)" : "none",
|
||
transition: "transform 0.15s ease",
|
||
}}
|
||
>
|
||
<ChevronDown style={{ width: 12, height: 12, opacity: 0.5 }} />
|
||
</span>
|
||
</button>
|
||
|
||
{expanded && (
|
||
<div
|
||
style={{
|
||
padding: "0 12px 8px 34px",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
gap: 4,
|
||
}}
|
||
>
|
||
{entries.map((e, i) => (
|
||
<div
|
||
key={i}
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#8c8580",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 4,
|
||
height: 4,
|
||
borderRadius: "50%",
|
||
background: "#ccc",
|
||
}}
|
||
/>
|
||
<span style={{ fontFamily: "var(--font-mono), monospace" }}>
|
||
{friendlyToolName(e.name)}
|
||
</span>
|
||
{!e.result && e.status === "running" && (
|
||
<span className="animate-pulse">...</span>
|
||
)}
|
||
{e.result && (
|
||
<span
|
||
style={{
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
opacity: 0.7,
|
||
maxWidth: 150,
|
||
}}
|
||
title={e.result}
|
||
>
|
||
— {e.result}
|
||
</span>
|
||
)}
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function ToolBubble({ event }: { event: ToolEvent }) {
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
{event.status === "running" ? (
|
||
<Loader2 style={{ width: 12, height: 12 }} className="animate-spin" />
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
<span>
|
||
{friendlyToolName(event.name)}
|
||
{event.status === "running" ? "…" : " ✓"}
|
||
</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Main panel ────────────────────────────────────────────────────────────────
|
||
|
||
interface ChatPanelProps {
|
||
/**
|
||
* When true, the panel renders inline as a flex child of its parent
|
||
* (a structural left column on project pages). Skips the fixed-position
|
||
* slide-out treatment, the collapsed-tab affordance, and the
|
||
* --chat-panel-width side-effect. Always "open" — there's no close
|
||
* button because the panel IS the column.
|
||
*
|
||
* When false / omitted: legacy behavior — fixed slide-out on the
|
||
* right, collapsible, sets --chat-panel-width so the workspace
|
||
* content shifts left to make room.
|
||
*/
|
||
structural?: boolean;
|
||
/**
|
||
* When set with `structural` on a project route, renders a unified shell:
|
||
* full-width top bar (chat controls | section icons) and a split row
|
||
* below (chat column | artifact slot). Omit on slide-out chat.
|
||
*/
|
||
artifactSlot?: ReactNode;
|
||
}
|
||
|
||
/** Shared dimensions for preview-select + send icon buttons in the composer. */
|
||
const COMPOSER_ACTION_BTN_BASE: CSSProperties = {
|
||
flexShrink: 0,
|
||
width: 32,
|
||
height: 32,
|
||
boxSizing: "border-box",
|
||
borderRadius: 8,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 0,
|
||
};
|
||
|
||
/** Preview pick chip + select-mode toggle for unified project shell chat composer. */
|
||
function ProjectPreviewChatInputWrap({
|
||
unifiedShell,
|
||
children,
|
||
}: {
|
||
unifiedShell: boolean;
|
||
children: (selectToggle: React.ReactNode) => React.ReactNode;
|
||
}) {
|
||
const bridge = usePreviewBridge();
|
||
|
||
if (!unifiedShell || !bridge) {
|
||
return <>{children(null)}</>;
|
||
}
|
||
|
||
const { selectMode, setSelectMode, picked, clearPick } = bridge;
|
||
|
||
const chip = picked ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "flex-start",
|
||
gap: 8,
|
||
marginBottom: 8,
|
||
padding: "8px 10px",
|
||
borderRadius: 8,
|
||
background: "#eef2ff",
|
||
border: "1px solid #c7d2fe",
|
||
fontSize: "0.72rem",
|
||
lineHeight: 1.45,
|
||
color: "#312e81",
|
||
}}
|
||
>
|
||
<MousePointerClick
|
||
style={{
|
||
width: 14,
|
||
height: 14,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
opacity: 0.85,
|
||
}}
|
||
aria-hidden
|
||
/>
|
||
<div style={{ flex: 1, minWidth: 0 }}>
|
||
<div style={{ fontWeight: 600, marginBottom: 2 }}>
|
||
Preview selection
|
||
</div>
|
||
<div style={{ opacity: 0.92 }}>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-ibm-plex-mono),monospace",
|
||
fontSize: "0.68rem",
|
||
}}
|
||
>
|
||
{picked.tagName}
|
||
</span>
|
||
{" · "}
|
||
<span style={{ wordBreak: "break-word" }}>{picked.selector}</span>
|
||
</div>
|
||
{picked.textSnippet ? (
|
||
<div style={{ marginTop: 4, opacity: 0.88, wordBreak: "break-word" }}>
|
||
{`"${picked.textSnippet.slice(0, 140)}${picked.textSnippet.length > 140 ? "..." : ""}"`}
|
||
</div>
|
||
) : null}
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={clearPick}
|
||
aria-label="Clear preview selection"
|
||
style={{
|
||
flexShrink: 0,
|
||
background: "none",
|
||
border: "none",
|
||
padding: 2,
|
||
cursor: "pointer",
|
||
borderRadius: 4,
|
||
color: "#4338ca",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
>
|
||
<X style={{ width: 13, height: 13 }} />
|
||
</button>
|
||
</div>
|
||
) : null;
|
||
|
||
const selectToggle = (
|
||
<button
|
||
type="button"
|
||
aria-pressed={selectMode}
|
||
aria-label={
|
||
selectMode ? "Exit preview select mode" : "Select element from preview"
|
||
}
|
||
title={
|
||
selectMode
|
||
? "Click preview to choose an element"
|
||
: "Choose element from preview"
|
||
}
|
||
onClick={() => setSelectMode(!selectMode)}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
border: selectMode ? "1px solid #6366f1" : "1px solid #e8e4dc",
|
||
background: selectMode ? "#eef2ff" : "#faf8f5",
|
||
color: selectMode ? "#4338ca" : "#6b6560",
|
||
cursor: "pointer",
|
||
}}
|
||
>
|
||
<MousePointerClick style={{ width: 15, height: 15 }} strokeWidth={2} />
|
||
</button>
|
||
);
|
||
|
||
return (
|
||
<>
|
||
{chip}
|
||
{children(selectToggle)}
|
||
</>
|
||
);
|
||
}
|
||
|
||
export function ChatPanel({
|
||
structural = false,
|
||
artifactSlot,
|
||
}: ChatPanelProps = {}) {
|
||
const { data: sessionData, status } = useSession();
|
||
const params = useParams();
|
||
const pathname = usePathname() ?? "";
|
||
const workspace = (params?.workspace as string) || "";
|
||
// When the user is on a /project/<id>/* route, scope the chat to
|
||
// that project. The threads list, the new-thread create call, and
|
||
// the system prompt all branch on this; the chat header surfaces it
|
||
// so the user knows the AI is "talking about" the right thing.
|
||
const projectId = (params?.projectId as string) || "";
|
||
/** Full project shell (chat | artifact); must render even while auth is loading or signed out. */
|
||
const unifiedProjectShell =
|
||
structural && Boolean(projectId) && artifactSlot !== undefined;
|
||
const [activeProjectName, setActiveProjectName] = useState<string | null>(
|
||
null,
|
||
);
|
||
|
||
const [open, setOpen] = useState(() => {
|
||
// Structural mode is always-open by definition — the panel IS the
|
||
// column, there's no "closed" state to persist.
|
||
if (structural) return true;
|
||
if (typeof window === "undefined") return false;
|
||
return localStorage.getItem("vibn-chat-open") !== "false";
|
||
});
|
||
const [threads, setThreads] = useState<Thread[]>([]);
|
||
// threadsLoaded flips to true after the FIRST loadThreads() resolves.
|
||
// Used to gate the auto-create effect — without it we race the fetch
|
||
// and spawn an empty thread before history loads.
|
||
const [threadsLoaded, setThreadsLoaded] = useState(false);
|
||
const [activeThread, setActiveThread] = useState<string | null>(null);
|
||
const [messages, setMessages] = useState<Message[]>([]);
|
||
const [input, setInput] = useState("");
|
||
const [sending, setSending] = useState(false);
|
||
const [showThreads, setShowThreads] = useState(false);
|
||
const [mcpToken, setMcpToken] = useState<string | null>(null);
|
||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||
const inputRef = useRef<HTMLTextAreaElement>(null);
|
||
// AbortController for the in-flight /api/chat fetch. Lives in a ref
|
||
// so the Stop button can reach it without re-rendering on every
|
||
// streaming chunk.
|
||
const abortRef = useRef<AbortController | null>(null);
|
||
|
||
const scrollToBottom = useCallback(() => {
|
||
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
|
||
}, []);
|
||
|
||
// Persist open state + adjust main content margin
|
||
useEffect(() => {
|
||
if (structural) return;
|
||
localStorage.setItem("vibn-chat-open", String(open));
|
||
document.documentElement.style.setProperty(
|
||
"--chat-panel-width",
|
||
open ? "380px" : "0px",
|
||
);
|
||
}, [open, structural]);
|
||
|
||
// Load MCP token — prefer localStorage cache, fetch from API if missing.
|
||
// We use /api/workspaces (not the URL param) because the URL slug
|
||
// (e.g. "mark-account") differs from the actual workspace slug ("mark").
|
||
useEffect(() => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
const cached = localStorage.getItem(`vibn-mcp-token-${workspace}`);
|
||
if (cached) {
|
||
setMcpToken(cached);
|
||
return;
|
||
}
|
||
fetch("/api/workspaces?include_default_token=true")
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (d?.defaultToken) {
|
||
localStorage.setItem(`vibn-mcp-token-${workspace}`, d.defaultToken);
|
||
setMcpToken(d.defaultToken);
|
||
}
|
||
})
|
||
.catch(() => {});
|
||
}, [workspace, status]);
|
||
|
||
// Load threads (scoped to the current project when one is in the URL).
|
||
// Reset the loaded flag when projectId changes so the resume effect
|
||
// re-runs against the correct list and doesn't restore a thread from
|
||
// the previous project.
|
||
const loadThreads = useCallback(async () => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
try {
|
||
const qs = new URLSearchParams({ workspace });
|
||
if (projectId) qs.set("projectId", projectId);
|
||
const res = await fetch(`/api/chat/threads?${qs.toString()}`);
|
||
const data = await res.json();
|
||
setThreads(data.threads || []);
|
||
} catch {
|
||
/* silent */
|
||
} finally {
|
||
setThreadsLoaded(true);
|
||
}
|
||
}, [workspace, projectId, status]);
|
||
|
||
useEffect(() => {
|
||
setThreadsLoaded(false);
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
// Clear the threads array immediately so the resume effect doesn't
|
||
// race the loadThreads() fetch and resume a stale project-scoped
|
||
// thread when the user navigates from /project/X back to /projects.
|
||
setThreads([]);
|
||
loadThreads();
|
||
}, [loadThreads, projectId]);
|
||
|
||
// Look up the active project's display name once we have a projectId,
|
||
// so the chat header can show "Talking about: <name>".
|
||
useEffect(() => {
|
||
if (!projectId) {
|
||
setActiveProjectName(null);
|
||
return;
|
||
}
|
||
let cancelled = false;
|
||
fetch(`/api/projects/${projectId}/anatomy`, { credentials: "include" })
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (cancelled) return;
|
||
const name = d?.project?.name;
|
||
if (name) setActiveProjectName(name);
|
||
})
|
||
.catch(() => {});
|
||
return () => {
|
||
cancelled = true;
|
||
};
|
||
}, [projectId]);
|
||
|
||
// Create and activate a new thread (tagged to the active project, if any).
|
||
const newThread = useCallback(async () => {
|
||
try {
|
||
const res = await fetch("/api/chat/threads", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ workspace, projectId: projectId || undefined }),
|
||
});
|
||
const data = await res.json();
|
||
if (data.thread) {
|
||
setThreads((prev) => [data.thread, ...prev]);
|
||
setActiveThread(data.thread.id);
|
||
setMessages([]);
|
||
setShowThreads(false);
|
||
}
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, [workspace, projectId]);
|
||
|
||
// Load thread messages
|
||
const loadThread = useCallback(async (id: string) => {
|
||
setActiveThread(id);
|
||
setShowThreads(false);
|
||
setMessages([]);
|
||
try {
|
||
const res = await fetch(`/api/chat/threads/${id}`);
|
||
const data = await res.json();
|
||
// Hydrate the timeline from persisted textSegments + toolCalls
|
||
// so a reloaded thread renders the same per-round bubbles the
|
||
// user saw during streaming. Older messages without
|
||
// textSegments fall back to the legacy single-bubble path.
|
||
const hydrated = (data.messages || []).map((m: any) => {
|
||
if (m.role !== "assistant") return m;
|
||
const segs: string[] = Array.isArray(m.textSegments)
|
||
? m.textSegments
|
||
: [];
|
||
if (segs.length === 0) return m;
|
||
const timeline: TimelineEntry[] = segs.map((t) => ({
|
||
kind: "text",
|
||
text: t,
|
||
}));
|
||
// We don't have round-level interleaving for tool calls in
|
||
// the persisted shape (the schema flattens them), so we drop
|
||
// the toolCalls into the timeline at the end. The streamed
|
||
// shape preserves true ordering; this is just a reload
|
||
// approximation. Good enough — what the user really cares
|
||
// about is the text segments not run-on'ing into one blob.
|
||
if (Array.isArray(m.toolCalls)) {
|
||
for (const tc of m.toolCalls) {
|
||
timeline.push({ kind: "tool", name: tc.name, status: "done" });
|
||
}
|
||
}
|
||
return { ...m, timeline, content: "" };
|
||
});
|
||
setMessages(hydrated);
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, []);
|
||
|
||
// Auto-resume previous thread (or create a fresh one if the user has
|
||
// never chatted in this workspace). We MUST wait for threadsLoaded
|
||
// before deciding — otherwise we race the fetch and spawn an empty
|
||
// thread before history arrives. Last-active thread is restored from
|
||
// localStorage so a page reload (deploy, refresh) lands the user back
|
||
// in the conversation they were in.
|
||
useEffect(() => {
|
||
if (!open || status !== "authenticated" || !workspace) return;
|
||
if (!threadsLoaded) return;
|
||
if (activeThread) return;
|
||
|
||
if (threads.length === 0) {
|
||
newThread();
|
||
return;
|
||
}
|
||
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
const saved =
|
||
typeof window !== "undefined" ? localStorage.getItem(savedKey) : null;
|
||
const target =
|
||
saved && threads.some((t) => t.id === saved) ? saved : threads[0].id;
|
||
loadThread(target);
|
||
}, [
|
||
open,
|
||
status,
|
||
workspace,
|
||
projectId,
|
||
threadsLoaded,
|
||
threads,
|
||
activeThread,
|
||
newThread,
|
||
loadThread,
|
||
]);
|
||
|
||
// Persist active thread so reload re-opens the same conversation,
|
||
// keyed per-project so each project has its own "last conversation".
|
||
useEffect(() => {
|
||
if (typeof window === "undefined" || !workspace) return;
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
if (activeThread) localStorage.setItem(savedKey, activeThread);
|
||
}, [activeThread, workspace, projectId]);
|
||
|
||
useEffect(() => {
|
||
scrollToBottom();
|
||
}, [messages, scrollToBottom]);
|
||
|
||
const deleteThread = useCallback(
|
||
async (id: string, e: React.MouseEvent) => {
|
||
e.stopPropagation();
|
||
await fetch(`/api/chat/threads/${id}`, { method: "DELETE" });
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [
|
||
...tl,
|
||
{ kind: "tool", name: ev.name, status: "running" },
|
||
],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_result") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
// Walk backward to the most recent matching running
|
||
// tool entry and mark it done. Avoids cross-matching
|
||
// earlier same-named entries.
|
||
let updated = false;
|
||
const newTl: TimelineEntry[] = [];
|
||
for (let i = tl.length - 1; i >= 0; i--) {
|
||
const e = tl[i];
|
||
if (
|
||
!updated &&
|
||
e.kind === "tool" &&
|
||
e.name === ev.name &&
|
||
e.status === "running"
|
||
) {
|
||
newTl.unshift({
|
||
...e,
|
||
status: "done",
|
||
result: ev.result,
|
||
});
|
||
updated = true;
|
||
} else {
|
||
newTl.unshift(e);
|
||
}
|
||
}
|
||
next[msgIndex] = { ...next[msgIndex], timeline: newTl };
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "error") {
|
||
const errText = ev.error || "Unknown error";
|
||
const isToolErr = /tool|mcp|coolify|gitea/i.test(errText);
|
||
const errBubble = isToolErr
|
||
? `⚠️ **Tool error:** ${errText}`
|
||
: `⚠️ ${errText}`;
|
||
assistantContent += (assistantContent ? "\n\n" : "") + errBubble;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "text", text: errBubble }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
// Auto-title thread from first message
|
||
const thisThread = threads.find((t) => t.id === activeThread);
|
||
if (thisThread?.title === "New conversation") {
|
||
const title = text.slice(0, 50);
|
||
await fetch(`/api/chat/threads/${activeThread}`, {
|
||
method: "PATCH",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ title }),
|
||
});
|
||
setThreads((prev) =>
|
||
prev.map((t) => (t.id === activeThread ? { ...t, title } : t)),
|
||
);
|
||
}
|
||
|
||
loadThreads();
|
||
} catch (e) {
|
||
const isAbort = e instanceof DOMException && e.name === "AbortError";
|
||
if (isAbort) {
|
||
// Server-side will have appended "(stopped by user)" to the
|
||
// partial response and persisted it. We just need to make
|
||
// sure the local UI reflects whatever streamed in before the
|
||
// user clicked Stop — which it already does, because we've
|
||
// been mutating `messages[msgIndex]` chunk-by-chunk above.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (
|
||
msgIndex >= 0 &&
|
||
next[msgIndex] &&
|
||
!next[msgIndex].content.includes("(stopped by user)")
|
||
) {
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
content:
|
||
(next[msgIndex].content || "") + "\n\n_(stopped by user)_",
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else {
|
||
const errMsg = e instanceof Error ? e.message : String(e);
|
||
const isNetwork = /fetch|network|failed to fetch/i.test(errMsg);
|
||
const friendlyError = isNetwork
|
||
? "⚠️ Network error — check your connection and try again."
|
||
: `⚠️ Something went wrong: ${errMsg.slice(0, 200)}\n\nYou can try again or start a new message.`;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
next[msgIndex] = { ...next[msgIndex], content: friendlyError };
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
} finally {
|
||
abortRef.current = null;
|
||
setSending(false);
|
||
}
|
||
},
|
||
[
|
||
input,
|
||
sending,
|
||
activeThread,
|
||
workspace,
|
||
mcpToken,
|
||
threads,
|
||
loadThreads,
|
||
unifiedProjectShell,
|
||
],
|
||
);
|
||
|
||
const cancelMessage = useCallback(() => {
|
||
abortRef.current?.abort();
|
||
}, []);
|
||
|
||
// External components (e.g. ProjectHeaderUrls' "Start preview" button)
|
||
// can ask the chat to send a canned prompt without prop-drilling. Open
|
||
// the panel if collapsed, then fire the prompt as if the user typed it.
|
||
useEffect(() => {
|
||
function onPrompt(e: Event) {
|
||
const ce = e as CustomEvent<{ prompt?: string; scopeProjectId?: string }>;
|
||
const prompt = ce.detail?.prompt;
|
||
if (!prompt) return;
|
||
// If the dispatcher scopes the prompt to a specific project, only
|
||
// accept it when the chat panel is currently bound to that project.
|
||
// Prevents a "Start preview on Manifest" click from accidentally
|
||
// landing in a chat that's scoped to a different project.
|
||
if (ce.detail?.scopeProjectId && ce.detail.scopeProjectId !== projectId) {
|
||
return;
|
||
}
|
||
setOpen(true);
|
||
void sendMessage(prompt);
|
||
}
|
||
window.addEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
return () =>
|
||
window.removeEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
}, [sendMessage, projectId]);
|
||
|
||
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||
if (e.key === "Enter" && !e.shiftKey) {
|
||
e.preventDefault();
|
||
sendMessage();
|
||
} else if (e.key === "Escape" && sending) {
|
||
e.preventDefault();
|
||
cancelMessage();
|
||
}
|
||
};
|
||
|
||
// Slide-out chat hidden until signed in. Structural project shell always
|
||
// mounts so Preview / Product / Plan pages render; chat column shows loading
|
||
// or sign-in instead of wiping the whole viewport (blank page).
|
||
if (!unifiedProjectShell && status !== "authenticated") return null;
|
||
|
||
// ── Collapsed tab ──────────────────────────────────────────────────────────
|
||
// Structural mode is always-open; skip the collapsed-tab branch entirely.
|
||
if (!open && !structural) {
|
||
return (
|
||
<button
|
||
onClick={() => setOpen(true)}
|
||
style={{
|
||
position: "fixed",
|
||
right: 0,
|
||
top: "50%",
|
||
transform: "translateY(-50%)",
|
||
zIndex: 1000,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
border: "none",
|
||
borderRadius: "8px 0 0 8px",
|
||
padding: "14px 10px",
|
||
cursor: "pointer",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
boxShadow: "-2px 0 12px #1a1a1a14",
|
||
}}
|
||
title="Open Vibn AI"
|
||
>
|
||
<MessageSquare style={{ width: 16, height: 16 }} />
|
||
<span
|
||
style={{
|
||
writingMode: "vertical-rl",
|
||
textOrientation: "mixed",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.08em",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
transform: "rotate(180deg)",
|
||
}}
|
||
>
|
||
VIBN AI
|
||
</span>
|
||
</button>
|
||
);
|
||
}
|
||
|
||
const conversationColumn = (
|
||
<>
|
||
{/* Thread list dropdown */}
|
||
{showThreads && (
|
||
<div
|
||
style={{
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
maxHeight: 200,
|
||
overflowY: "auto",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{threads.length === 0 && (
|
||
<div
|
||
style={{
|
||
padding: "12px 16px",
|
||
fontSize: "0.78rem",
|
||
color: "#a09a90",
|
||
}}
|
||
>
|
||
No conversations yet
|
||
</div>
|
||
)}
|
||
{threads.map((t) => (
|
||
<div
|
||
key={t.id}
|
||
onClick={() => loadThread(t.id)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "9px 16px",
|
||
background: activeThread === t.id ? "#f0ede8" : "transparent",
|
||
cursor: "pointer",
|
||
borderBottom: "1px solid #f0ede8",
|
||
}}
|
||
onMouseEnter={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "#f7f4ef";
|
||
}}
|
||
onMouseLeave={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "transparent";
|
||
}}
|
||
>
|
||
<div style={{ minWidth: 0 }}>
|
||
<div
|
||
style={{
|
||
fontSize: "0.8rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
{t.title}
|
||
</div>
|
||
<div style={{ fontSize: "0.7rem", color: "#a09a90" }}>
|
||
{timeAgo(t.updatedAt)}
|
||
</div>
|
||
</div>
|
||
<button
|
||
onClick={(e) => deleteThread(t.id, e)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
color: "#c0bab2",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<Trash2 style={{ width: 12, height: 12 }} />
|
||
</button>
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
|
||
{/* Messages */}
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
overflowY: "auto",
|
||
overflowX: "hidden",
|
||
padding: "16px 14px",
|
||
}}
|
||
>
|
||
{messages.length === 0 && !sending && (
|
||
<div
|
||
style={{ padding: "24px 14px", maxWidth: 640, margin: "0 auto" }}
|
||
>
|
||
<div style={{ display: "flex", gap: 12 }}>
|
||
<div
|
||
style={{
|
||
width: 28,
|
||
height: 28,
|
||
borderRadius: 6,
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
color: "#fff",
|
||
fontSize: "0.85rem",
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</div>
|
||
<div
|
||
style={{
|
||
background: "#fff",
|
||
border: "1px solid #e8e4dc",
|
||
padding: "14px 18px",
|
||
borderRadius: "0 12px 12px 12px",
|
||
fontSize: "0.9rem",
|
||
color: "#1a1a1a",
|
||
lineHeight: 1.6,
|
||
boxShadow: "0 1px 2px #1a1a1a05",
|
||
maxWidth: "85%",
|
||
}}
|
||
>
|
||
Welcome to {activeProjectName ? activeProjectName : "Vibn"}!
|
||
Tell me what you want to build and I'll scaffold it, run it in a
|
||
preview, and ship it when you say so.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{messages.map((msg, i) => (
|
||
<MessageBubble key={msg.id || i} msg={msg} />
|
||
))}
|
||
|
||
{sending && messages[messages.length - 1]?.role !== "assistant" && (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 0",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
{[0, 1, 2].map((i) => (
|
||
<span
|
||
key={i}
|
||
style={{
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: "50%",
|
||
background: "#c0bab2",
|
||
animation: `vibn-bounce 1.2s ease infinite ${i * 0.2}s`,
|
||
display: "inline-block",
|
||
}}
|
||
/>
|
||
))}
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{/* The active thinking status cycle */}
|
||
{sending && (
|
||
<div
|
||
style={{
|
||
alignSelf: "flex-start",
|
||
marginBottom: 12,
|
||
paddingLeft: 4,
|
||
}}
|
||
>
|
||
<ActiveThinkingIndicator />
|
||
</div>
|
||
)}
|
||
|
||
<div ref={messagesEndRef} />
|
||
</div>
|
||
|
||
{/* Input */}
|
||
<div
|
||
style={{
|
||
padding: "12px 14px",
|
||
borderTop: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{!mcpToken && (
|
||
<div
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#9a7b3a",
|
||
background: "#d4a04a12",
|
||
border: "1px solid #d4a04a30",
|
||
borderRadius: 6,
|
||
padding: "5px 10px",
|
||
marginBottom: 8,
|
||
lineHeight: 1.4,
|
||
}}
|
||
>
|
||
Read-only mode — add your MCP token in Settings to enable actions.
|
||
</div>
|
||
)}
|
||
<ProjectPreviewChatInputWrap unifiedShell={unifiedProjectShell}>
|
||
{(selectToggle) => (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
gap: 8,
|
||
alignItems: "center",
|
||
background: "#fff",
|
||
borderRadius: 10,
|
||
border: "1px solid #e8e4dc",
|
||
padding: "8px 10px",
|
||
boxShadow: "0 1px 3px #1a1a1a05",
|
||
}}
|
||
>
|
||
<textarea
|
||
ref={inputRef}
|
||
value={input}
|
||
onChange={(e) => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={
|
||
sending ? "Esc to stop generating…" : "Ask Vibn AI anything…"
|
||
}
|
||
rows={1}
|
||
disabled={!activeThread}
|
||
style={{
|
||
flex: 1,
|
||
border: "none",
|
||
outline: "none",
|
||
background: "transparent",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.5,
|
||
resize: "none",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
color: "#1a1a1a",
|
||
maxHeight: 120,
|
||
overflowY: "auto",
|
||
}}
|
||
onInput={(e) => {
|
||
const el = e.currentTarget;
|
||
el.style.height = "auto";
|
||
el.style.height = Math.min(el.scrollHeight, 120) + "px";
|
||
}}
|
||
/>
|
||
{selectToggle}
|
||
{(() => {
|
||
// While the AI is streaming or running tools, the button
|
||
// turns into a Stop control. Click → AbortController fires,
|
||
// server bails between rounds, partial text gets persisted.
|
||
const isActive = sending;
|
||
const canSend = !sending && input.trim() && activeThread;
|
||
return (
|
||
<button
|
||
type="button"
|
||
onClick={isActive ? cancelMessage : () => sendMessage()}
|
||
disabled={!isActive && !canSend}
|
||
aria-label={isActive ? "Stop generating" : "Send message"}
|
||
title={isActive ? "Stop generating (Esc)" : "Send"}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
background: isActive
|
||
? "#1a1a1a"
|
||
: canSend
|
||
? "#1a1a1a"
|
||
: "#e8e4dc",
|
||
color: isActive || canSend ? "#fff" : "#a09a90",
|
||
border: "none",
|
||
cursor: isActive || canSend ? "pointer" : "default",
|
||
transition: "all 0.15s",
|
||
position: "relative",
|
||
}}
|
||
>
|
||
{isActive ? (
|
||
<>
|
||
<Loader2
|
||
style={{
|
||
width: 15,
|
||
height: 15,
|
||
position: "absolute",
|
||
opacity: 0.35,
|
||
}}
|
||
className="animate-spin"
|
||
/>
|
||
<Square
|
||
style={{
|
||
width: 9,
|
||
height: 9,
|
||
fill: "#fff",
|
||
strokeWidth: 0,
|
||
}}
|
||
/>
|
||
</>
|
||
) : (
|
||
<Send style={{ width: 15, height: 15 }} />
|
||
)}
|
||
</button>
|
||
);
|
||
})()}
|
||
</div>
|
||
)}
|
||
</ProjectPreviewChatInputWrap>
|
||
</div>
|
||
</>
|
||
);
|
||
|
||
const structuralChatLoadingColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 14,
|
||
}}
|
||
>
|
||
<Loader2
|
||
className="animate-spin"
|
||
style={{ width: 22, height: 22, color: "#9c9590" }}
|
||
/>
|
||
<p style={{ fontSize: "0.84rem", color: "#6b6560", margin: 0 }}>
|
||
Signing you in…
|
||
</p>
|
||
</div>
|
||
);
|
||
|
||
const authHref = pathname
|
||
? `/auth?callbackUrl=${encodeURIComponent(pathname)}`
|
||
: "/auth";
|
||
|
||
const structuralChatSignedOutColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 12,
|
||
}}
|
||
>
|
||
<p
|
||
style={{
|
||
fontSize: "0.88rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
}}
|
||
>
|
||
Sign in to use Vibn AI
|
||
</p>
|
||
<p
|
||
style={{
|
||
fontSize: "0.76rem",
|
||
color: "#a09a90",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
maxWidth: 260,
|
||
lineHeight: 1.5,
|
||
}}
|
||
>
|
||
Preview and tabs still work here. Chat needs an account.
|
||
</p>
|
||
<Link
|
||
href={authHref}
|
||
style={{
|
||
marginTop: 4,
|
||
padding: "10px 18px",
|
||
borderRadius: 10,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
fontSize: "0.82rem",
|
||
fontWeight: 500,
|
||
textDecoration: "none",
|
||
}}
|
||
>
|
||
Sign in
|
||
</Link>
|
||
</div>
|
||
);
|
||
|
||
const structuralChatBody =
|
||
status === "loading"
|
||
? structuralChatLoadingColumn
|
||
: status !== "authenticated"
|
||
? structuralChatSignedOutColumn
|
||
: conversationColumn;
|
||
|
||
if (unifiedProjectShell) {
|
||
return (
|
||
<>
|
||
<PreviewBridgeProvider>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
background: "#fff",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
alignItems: "stretch",
|
||
flexShrink: 0,
|
||
height: 48,
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
boxSizing: "border-box",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
height: "100%",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
padding: "0 12px",
|
||
gap: 6,
|
||
boxSizing: "border-box",
|
||
borderRight: "1px solid #e8e4dc",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
width: "100%",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 5px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus style={{ width: 14, height: 14 }} />
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
alignItems: "stretch",
|
||
}}
|
||
>
|
||
<ProjectIconRail workspace={workspace} projectId={projectId} />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
borderRight: "1px solid #e8e4dc",
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{structuralChatBody}
|
||
</div>
|
||
<div
|
||
key={pathname}
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
overflow: "auto",
|
||
background: "#faf8f5",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{artifactSlot}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</PreviewBridgeProvider>
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</>
|
||
);
|
||
}
|
||
|
||
// ── Open panel ─────────────────────────────────────────────────────────────
|
||
// Structural mode: fill the parent column. Default mode: fixed slide-out
|
||
// anchored to the right edge of the viewport (legacy behavior).
|
||
return (
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
flex: 1,
|
||
minHeight: 0,
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
: {
|
||
position: "fixed",
|
||
right: 0,
|
||
top: 0,
|
||
bottom: 0,
|
||
zIndex: 999,
|
||
width: 380,
|
||
background: "#fff",
|
||
borderLeft: "1px solid #e8e4dc",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
boxShadow: "-4px 0 24px #1a1a1a08",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
}
|
||
>
|
||
{/* Header — structural: circle logo + threads; slide-out: wordmark */}
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
height: 48,
|
||
padding: "0 12px",
|
||
boxSizing: "border-box",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
gap: 6,
|
||
}
|
||
: {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "14px 16px",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}
|
||
}
|
||
>
|
||
{structural ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
) : (
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 6px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-lora),serif",
|
||
fontSize: "0.95rem",
|
||
fontWeight: 400,
|
||
color: "#1a1a1a",
|
||
letterSpacing: "-0.01em",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
Vibn AI
|
||
</span>
|
||
<ChevronDown
|
||
style={{
|
||
width: 13,
|
||
height: 13,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 6,
|
||
padding: "2px 8px",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 160,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
)}
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: structural ? "4px 5px" : "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus
|
||
style={{
|
||
width: structural ? 14 : 15,
|
||
height: structural ? 14 : 15,
|
||
}}
|
||
/>
|
||
</button>
|
||
{!structural && (
|
||
<button
|
||
type="button"
|
||
onClick={() => setOpen(false)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="Close"
|
||
>
|
||
<ChevronRight style={{ width: 15, height: 15 }} />
|
||
</button>
|
||
)}
|
||
</div>
|
||
</div>
|
||
|
||
{conversationColumn}
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: Read file `vibn-frontend/app/api/chat/route.ts` (lines 150-180)**
|
||
Status: Completed
|
||
|
||
```master-ai/vibn-frontend/app/api/chat/route.ts
|
||
You are a high-agency product engineer. You own the outcome. Continue until the user's goal is actually resolved unless you're blocked on missing info, proceeding would be unsafe, or the user changes direction. You are not answering questions; you are building with the user. Translate engineering complexity into product momentum.
|
||
|
||
## Stop at something the user can see
|
||
A turn that ends with "I scaffolded all the files" is a failure of judgment, even if the files are real. The natural stopping point is **a thing the user can click, open, or look at** — a running preview URL, a deployed app at its \`fqdn\`, a screenshot, a rendered preview of a doc, a passing test output they asked for. Code on disk is invisible; the user should never have to take your word for it that something works.
|
||
|
||
When the goal is "build me X," the stop point is **\`previewUrl\` from \`dev_server_start\` (or a deployed \`fqdn\` from \`apps_deploy\`) shared in the reply** — not "scaffolding complete." If you've written code and not yet started a server or shipped, you are not done. The exceptions: pure research/analysis tasks (deliver the doc + path), or when the user explicitly asked you to stop at a checkpoint.
|
||
|
||
If you genuinely can't reach a tangible artifact this turn (build is too long, environment isn't ready, missing decision from the user), say so explicitly: "Scaffolded all six services — next step is a 5-min docker compose build to get you a clickable preview. Want me to kick that off?" Make the gap visible and offer the next move. Don't dress up "I wrote files" as the finish line.
|
||
|
||
## Voice
|
||
- **Don't narrate single tool calls.** Skip "Okay, I'll read that file…" for a one-shot read. The user sees a tool tray; they don't need a play-by-play.
|
||
- **DO send a one-liner before every batch on a long chain.** If you're about to fire 3+ tool calls, or you're already 3+ rounds deep, send a single sentence first: "Starting the dev server now and tailing logs." Then call the tools. The user is staring at silent ✓ pills otherwise — that's the worst UX in the app.
|
||
- **Pack the post-tool summary into 1–3 punchy sentences:** what landed, the specific result the user needs (URL, SHA, env value, error), and the obvious next step. Don't recap every tool — they saw the tray.
|
||
- **NEVER end your work silently.** When you are done running tools and your turn is ending, you MUST send a final conversational summary so the user knows you're finished. (e.g., "Done. I built out the onboarding flow and started the dev server at ..."). NEVER end your turn without a final text message.
|
||
- **Never end a turn silent.** If you ran tools, you owe the user a sentence about what happened. Never finish a turn with content_len = 0.
|
||
- **Have an opinion.** "Postgres or Mongo?" — pick one in a sentence and proceed. Founders need decisions, not menus. List options only if the user asks or tradeoffs genuinely matter.
|
||
- **Push back when it matters.** Refuse "deploy to prod without backups." Suggest Pipedream over n8n once if it fits better, then defer. Yes-machines ship broken software.
|
||
- **Surface adjacent risks unprompted.** Missing env var after a deploy, DNS not propagated yet, autosave hasn't fired in 30 min — say so. You're protecting their work.
|
||
- **Be honest about uncertainty.** "Best guess is X — want me to verify with Y?" beats false confidence. If a tool result is weird, say it's weird.
|
||
- **Length matches stakes.** "What time is it" → one line. "Move my user DB to a new region" → paragraph plus migration plan. Don't pad; don't truncate.
|
||
- **Adapt to the user.** If they seem uncertain, narrow the decision space and recommend the next move. If they're experienced, move faster and assume more context.
|
||
- **Markdown sparingly.** Backticks for code, paths, IDs, URLs always. Headings only at 3+ sections. Bullets for genuinely parallel items. Otherwise prose.
|
||
|
||
## Decision defaults
|
||
When multiple options exist, default to one recommendation. Bias toward: Postgres over Mongo, monoliths over microservices, Next.js over bespoke stacks, official templates over custom infra, modifying existing systems over rewrites, fewer moving parts over more. Escalate complexity only when requirements demand it.
|
||
|
||
## How Vibn is structured
|
||
- **Workspace** ("${workspace}") — tenant boundary. Owns the Gitea org and Coolify projects. You can only see/touch resources in this workspace.
|
||
- **Project** — an initiative (e.g. "Twenty CRM", "My Blog") with its own isolated Coolify project. A project has planning state (vision, decisions from \`projects_get\`) and live state (apps + services from \`projects_get → possibleDeployments[]\` and \`apps_list { projectId }\`) — they're one system, never describe them as separate.
|
||
|
||
## Common questions → tools
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
Ah, I see exactly what went wrong. In my first attempt, I placed the `ActiveThinkingIndicator` ("Caramelizing onions...") inside the static white footer *with the input box itself*, rather than at the bottom of the *scrollable chat message list*. That caused it to float awkwardly out of place instead of looking like a natural part of the conversation.
|
||
|
||
I've just moved it into the chat stream! Now, when the AI is working, that orange starburst and the cycling text will appear at the bottom of your message thread (right below your last chat bubble) exactly like it does in the screenshot you shared.
|
||
|
||
I also double-checked the prompt instructions for the AI's final summary. The rule is now explicitly enforced:
|
||
|
||
```markdown
|
||
- **NEVER end your work silently.** When you are done running tools and your turn is ending, you MUST send a final conversational summary so the user knows you're finished. (e.g., "Done. I built out the onboarding flow..."). NEVER end your turn without a final text message.
|
||
```
|
||
|
||
Your Next.js server already hot-reloaded the placement fix, so if you ask the AI to run another tool or command, you should see the loading text cycling cleanly in the right spot! Let me know if that looks closer to the reference screenshots.
|
||
|
||
## User (checkpoint)
|
||
|
||
Okay can we increate the chat input box to be 3 rows high as opposed to 1
|
||
|
||
**Tool Call: Search files for regex `<textarea`**
|
||
Status: Completed
|
||
|
||
Showing matches 1-20 (there were more matches found; use offset: 20 to see next page):
|
||
|
||
## Matches in master-ai/docs_archive/remixed-9edec9e9.tsx
|
||
|
||
### const ProjectDetail › L804-808
|
||
```
|
||
<div style={{ marginBottom: 16 }}>
|
||
<div style={{ fontSize: "0.72rem", fontWeight: 600, color: "#6b6560", marginBottom: 6 }}>Description</div>
|
||
<textarea value={project.desc} onChange={() => {}} rows={2}
|
||
style={{ width: "100%", padding: "9px 13px", borderRadius: 7, border: "1px solid #e0dcd4", background: "#faf8f5", fontSize: "0.84rem", color: "#1a1a1a", fontFamily: "Outfit" }} />
|
||
</div>
|
||
```
|
||
|
||
## Matches in master-ai/extracted-9f46b960-c12f-4a24-83f6-c6e0ff6415bb.txt
|
||
|
||
### L129-133
|
||
```
|
||
// https://github.com/facebook/react/issues/11347
|
||
|
||
var enableCustomElementPropertySupport = false; // Disables children for <textarea> elements
|
||
var warnAboutStringRefs = true; // -----------------------------------------------------------------------------
|
||
// Debugging and DevTools
|
||
```
|
||
|
||
### L2225-2229
|
||
```
|
||
|
||
/**
|
||
* Implements a <textarea> host component that allows setting `value`, and
|
||
* `defaultValue`. This differs from the traditional DOM API because value is
|
||
* usually set as PCDATA children.
|
||
```
|
||
|
||
### L2243-2247
|
||
```
|
||
|
||
if (props.dangerouslySetInnerHTML != null) {
|
||
throw new Error('`dangerouslySetInnerHTML` does not make sense on <textarea>.');
|
||
} // Always set children to the same thing. In IE9, the selection range will
|
||
// get reset if `textContent` is mutated. We could add a check in setTextContent
|
||
```
|
||
|
||
### L2281-2285
|
||
```
|
||
if (children != null) {
|
||
{
|
||
error('Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');
|
||
}
|
||
|
||
```
|
||
|
||
### L2286-2290
|
||
```
|
||
{
|
||
if (defaultValue != null) {
|
||
throw new Error('If you supply `defaultValue` on a <textarea>, do not pass children.');
|
||
}
|
||
|
||
```
|
||
|
||
### L2291-2295
|
||
```
|
||
if (isArray(children)) {
|
||
if (children.length > 1) {
|
||
throw new Error('<textarea> can only have at most one child.');
|
||
}
|
||
|
||
```
|
||
|
||
### L9706-9711
|
||
```
|
||
if (typeof nextProp === 'string') {
|
||
// Avoid setting initial textContent when the text is empty. In IE11 setting
|
||
// textContent on a <textarea> will cause the placeholder to not
|
||
// show within the <textarea> until it has been focused and blurred again.
|
||
// https://github.com/facebook/react/issues/6731#issuecomment-254874553
|
||
var canSetTextContent = tag !== 'textarea' || nextProp !== '';
|
||
```
|
||
|
||
## Matches in master-ai/new-site/beta.jsx
|
||
|
||
### function BetaApp() › L167-177
|
||
```
|
||
<div className="f-prompt">
|
||
<textarea
|
||
className="f-textarea"
|
||
value={form.build}
|
||
onChange={(e) => update("build", e.target.value)}
|
||
placeholder="A booking site for my dog grooming business with reminders, payments and a wait list…"
|
||
rows={4}
|
||
/>
|
||
<div className="f-prompt-bar">
|
||
<span className="f-prompt-count">
|
||
{form.build.length > 0 ? `${form.build.length} chars` : "go wild"}
|
||
```
|
||
|
||
6 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/new-site/hero.jsx
|
||
|
||
### function Hero( ) › L302-312
|
||
```
|
||
<div style={{ position: "relative" }}>
|
||
<textarea
|
||
ref={taRef}
|
||
value={text}
|
||
onChange={(e) => setText(e.target.value)}
|
||
onKeyDown={(e) => { if (e.key === "Enter" && (e.metaKey || e.ctrlKey)) submit(); }}
|
||
placeholder=""
|
||
aria-label="Describe what you want to build"
|
||
/>
|
||
{text.length === 0 && (
|
||
<div className="prompt-typed">{placeholder}</div>
|
||
```
|
||
|
||
2 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/app/[workspace]/project/[projectId]/(home)/plan/page.tsx
|
||
|
||
### function BriefPanel( ) › L518-525
|
||
```
|
||
{editorView === "write" ? (
|
||
<textarea
|
||
value={draft}
|
||
onChange={(e) => { setDraft(e.target.value); setDirty(true); }}
|
||
placeholder="Paste your PRD or project scope here..."
|
||
style={{ width: "100%", minHeight: 300, padding: 20, border: "none", outline: "none", fontSize: "0.9rem", lineHeight: 1.6, fontFamily: "var(--font-inter), sans-serif", color: "#1a1a1a", resize: "vertical" }}
|
||
/>
|
||
) : (
|
||
```
|
||
|
||
### function VisionPanel( ) › L635-645
|
||
```
|
||
{editorView === "write" ? (
|
||
<textarea
|
||
value={draft}
|
||
onChange={(e) => {
|
||
setDraft(e.target.value);
|
||
setDirty(true);
|
||
}}
|
||
placeholder={visionPlaceholder}
|
||
style={visionTextarea}
|
||
spellCheck
|
||
/>
|
||
```
|
||
|
||
1 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### function TaskDetail( ) › L1200-1208
|
||
```
|
||
{editorView === "write" ? (
|
||
<textarea
|
||
value={descDraft}
|
||
onChange={(e) => setDescDraft(e.target.value)}
|
||
placeholder={taskPlaceholder}
|
||
style={visionTextarea}
|
||
spellCheck
|
||
/>
|
||
) : (
|
||
```
|
||
|
||
### function TaskComposer( ) › L1330-1338
|
||
```
|
||
{editorView === "write" ? (
|
||
<textarea
|
||
value={desc}
|
||
onChange={(e) => setDesc(e.target.value)}
|
||
placeholder={taskPlaceholder}
|
||
style={visionTextarea}
|
||
spellCheck
|
||
/>
|
||
) : (
|
||
```
|
||
|
||
### function DecisionsPanel( ) › L1480-1484
|
||
```
|
||
style={input}
|
||
/>
|
||
<textarea
|
||
value={why}
|
||
onChange={(e) => setWhy(e.target.value)}
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/components/AtlasChat.tsx
|
||
|
||
### function AtlasChat( ) › L667-677
|
||
```
|
||
<div style={{
|
||
background: JV.composerSurface,
|
||
border: `1px solid ${JM.border}`,
|
||
borderRadius: JV.composerRadius,
|
||
boxShadow: JV.composerShadow,
|
||
overflow: "hidden",
|
||
}}>
|
||
<textarea
|
||
ref={textareaRef}
|
||
value={input}
|
||
onChange={e => setInput(e.target.value)}
|
||
```
|
||
|
||
198 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/components/OrchestratorChat.tsx
|
||
|
||
### function OrchestratorChat( ) › L335-345
|
||
```
|
||
<div className="flex gap-2 items-end">
|
||
<Textarea
|
||
ref={textareaRef}
|
||
value={input}
|
||
onChange={e => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={placeholder}
|
||
rows={1}
|
||
className="resize-none min-h-[40px] max-h-[120px] flex-1 text-sm bg-background border-border focus-visible:ring-1 rounded-xl"
|
||
style={{ fieldSizing: "content" } as React.CSSProperties}
|
||
disabled={loading}
|
||
```
|
||
|
||
14 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/components/layout/coo-chat.tsx
|
||
|
||
### function CooChat( ) › L236-246
|
||
```
|
||
<div style={{ display: "flex", gap: 7, alignItems: "flex-end" }}>
|
||
<textarea
|
||
ref={textareaRef}
|
||
value={input}
|
||
onChange={e => setInput(e.target.value)}
|
||
onKeyDown={e => {
|
||
if (e.key === "Enter" && !e.shiftKey) { e.preventDefault(); send(); }
|
||
}}
|
||
placeholder={loading ? "Thinking…" : "Ask anything…"}
|
||
disabled={loading}
|
||
rows={2}
|
||
```
|
||
|
||
23 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-frontend/components/project/design-kit-panels.tsx
|
||
|
||
### function InputsPanel( ) › L500-502
|
||
```
|
||
<Field label="Multiline">
|
||
<textarea placeholder="Add a note…" rows={3} style={{ ...inputBase, borderRadius: md, resize: "vertical" }} />
|
||
</Field>
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/components/project-creation/BuildSetup.tsx
|
||
|
||
### function BuildSetup( ) › L161-171
|
||
```
|
||
<>
|
||
<FieldLabel>What do you want to build?</FieldLabel>
|
||
<TextArea
|
||
value={idea}
|
||
onChange={setIdea}
|
||
placeholder="A booking site for my dog grooming business. Customers should be able to book online and pay a deposit by card."
|
||
rows={6}
|
||
autoFocus
|
||
/>
|
||
<p style={{ fontSize: 12, color: JM.muted, marginTop: -8, marginBottom: 14, lineHeight: 1.5 }}>
|
||
Don't worry about the tech. Vibn will pick the tools and start building from this description.
|
||
```
|
||
|
||
15 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
**Tool Call: vibn\-frontend/components/vibn\-chat/chat\-panel.tsx**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
```
|
||
"use client";
|
||
|
||
import {
|
||
useEffect,
|
||
useRef,
|
||
useState,
|
||
useCallback,
|
||
type ReactNode,
|
||
type CSSProperties,
|
||
} from "react";
|
||
import Link from "next/link";
|
||
import { useSession } from "next-auth/react";
|
||
import { useParams, usePathname } from "next/navigation";
|
||
import {
|
||
MessageSquare,
|
||
X,
|
||
ChevronRight,
|
||
Send,
|
||
Plus,
|
||
Loader2,
|
||
Wrench,
|
||
ChevronDown,
|
||
Trash2,
|
||
Square,
|
||
MousePointerClick,
|
||
Sparkles,
|
||
} from "lucide-react";
|
||
import { ProjectIconRail } from "@/components/project/project-icon-rail";
|
||
import {
|
||
PreviewBridgeProvider,
|
||
previewMessagePrepRef,
|
||
usePreviewBridge,
|
||
} from "@/components/project/preview-bridge-context";
|
||
|
||
// ── Types ─────────────────────────────────────────────────────────────────────
|
||
|
||
interface Thread {
|
||
id: string;
|
||
title: string;
|
||
updatedAt: string;
|
||
}
|
||
|
||
interface Message {
|
||
id?: string;
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: { id: string; name: string; args: Record<string, unknown> }[];
|
||
toolName?: string;
|
||
createdAt?: string;
|
||
/**
|
||
* Chronological turn timeline interleaving the model's thinking
|
||
* narration and the tool calls it fired. Rendered as a stack of
|
||
* pills INSIDE the bubble above the final text content, so the
|
||
* user sees the actual flow:
|
||
* [thought] [tool ×N] [thought] [tool] ... [summary]
|
||
* Each thought is its own collapsed pill (click to expand);
|
||
* adjacent runs of the same tool name collapse into one pill
|
||
* with a ×N counter. The final assistant text is rendered
|
||
* separately, below the timeline.
|
||
*/
|
||
timeline?: TimelineEntry[];
|
||
}
|
||
|
||
type TimelineEntry =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "tool"; name: string; status: "running" | "done"; result?: string }
|
||
// A text segment from one round of the assistant's tool loop.
|
||
// Each text SSE event from the server starts a new entry; subsequent
|
||
// streaming chunks for that same round append to the most-recent
|
||
// text entry. Tool/thought entries between text segments break the
|
||
// accumulation so multi-round turns render as separate bubbles.
|
||
| { kind: "text"; text: string };
|
||
|
||
interface ToolEvent {
|
||
name: string;
|
||
status: "running" | "done";
|
||
result?: string;
|
||
}
|
||
|
||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||
|
||
function getFriendlyCategory(name: string): string {
|
||
if (
|
||
name.includes("fs.edit") ||
|
||
name.includes("fs.write") ||
|
||
name.includes("fs_edit") ||
|
||
name.includes("fs_write")
|
||
)
|
||
return "Writing code";
|
||
if (
|
||
name.includes("fs.read") ||
|
||
name.includes("fs.list") ||
|
||
name.includes("fs.grep") ||
|
||
name.includes("fs.tree") ||
|
||
name.includes("fs_read") ||
|
||
name.includes("fs_list") ||
|
||
name.includes("fs_grep") ||
|
||
name.includes("fs_tree")
|
||
)
|
||
return "Reading codebase";
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
return "Running terminal commands";
|
||
if (name.includes("dev_server.start") || name.includes("dev_server_start"))
|
||
return "Starting dev server";
|
||
if (name.includes("dev_server.logs") || name.includes("dev_server_logs"))
|
||
return "Checking server logs";
|
||
if (
|
||
name.includes("browser.navigate") ||
|
||
name.includes("browser.console") ||
|
||
name.includes("browser_navigate") ||
|
||
name.includes("browser_console")
|
||
)
|
||
return "Checking browser preview";
|
||
if (name.includes("ship")) return "Shipping code to production";
|
||
|
||
return name;
|
||
}
|
||
|
||
function timeAgo(dateStr?: string): string {
|
||
if (!dateStr) return "";
|
||
const diff = (Date.now() - new Date(dateStr).getTime()) / 1000;
|
||
if (diff < 60) return "just now";
|
||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
||
return `${Math.floor(diff / 86400)}d ago`;
|
||
}
|
||
|
||
function friendlyToolName(name: string): string {
|
||
return name
|
||
.replace(/_/g, ".")
|
||
.replace("projects.list", "listing projects")
|
||
.replace("apps.list", "listing apps")
|
||
.replace("apps.create", "deploying app")
|
||
.replace("apps.templates.list", "listing templates")
|
||
.replace("apps.templates.search", "searching templates")
|
||
.replace("domains.register", "registering domain")
|
||
.replace("domains.list", "listing domains")
|
||
.replace("apps.logs", "fetching logs");
|
||
}
|
||
|
||
const LOADING_PHRASES = [
|
||
"Thinking about the problem...",
|
||
"Reviewing the plan...",
|
||
"Caramelizing onions...",
|
||
"Writing code...",
|
||
"Running checks...",
|
||
"Reticulating splines...",
|
||
"Building out the view...",
|
||
];
|
||
|
||
function ActiveThinkingIndicator() {
|
||
const [phraseIndex, setPhraseIndex] = useState(0);
|
||
|
||
useEffect(() => {
|
||
const timer = setInterval(() => {
|
||
setPhraseIndex((i) => (i + 1) % LOADING_PHRASES.length);
|
||
}, 2800);
|
||
return () => clearInterval(timer);
|
||
}, []);
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "4px 4px 10px 4px",
|
||
fontSize: "0.85rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<svg
|
||
width="16"
|
||
height="16"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="#cf6741"
|
||
strokeWidth="2.5"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
className="animate-spin"
|
||
style={{ animationDuration: "3s" }}
|
||
>
|
||
<path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83" />
|
||
</svg>
|
||
</div>
|
||
<span className="animate-pulse">{LOADING_PHRASES[phraseIndex]}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Markdown-lite renderer ────────────────────────────────────────────────────
|
||
|
||
function escapeHtmlAttr(s: string): string {
|
||
return s.replace(/&/g, "&").replace(/"/g, """);
|
||
}
|
||
|
||
const LINK_STYLE =
|
||
"color:#4338ca;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all";
|
||
|
||
/** [label](https://...) — href restricted to http(s) */
|
||
function markdownLinksToHtml(s: string): string {
|
||
return s.replace(
|
||
/\[([^\]]+)\]\((https?:\/\/[^\s)<>]+)\)/gi,
|
||
(_m, label: string, url: string) => {
|
||
return `<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${label}</a>`;
|
||
},
|
||
);
|
||
}
|
||
|
||
/** Bare https:// in prose (skips when prefix is `>` so href=/code aren't touched) */
|
||
function autoLinkBareUrls(s: string): string {
|
||
return s.replace(
|
||
/(^|[\s\-—:(\[{])(https?:\/\/[^\s<>"']+)/gi,
|
||
(match, pre: string, url: string) =>
|
||
`${pre}<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${url}</a>`,
|
||
);
|
||
}
|
||
|
||
function renderMarkdown(text: string): string {
|
||
let s = text
|
||
.replace(/&/g, "&")
|
||
.replace(/</g, "<")
|
||
.replace(/>/g, ">");
|
||
s = markdownLinksToHtml(s);
|
||
s = s
|
||
.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>")
|
||
.replace(
|
||
/`([^`]+)`/g,
|
||
'<code style="background:#f0ede8;padding:1px 5px;border-radius:3px;font-family:var(--font-ibm-plex-mono),monospace;font-size:0.85em;overflow-wrap:anywhere;word-break:break-word">$1</code>',
|
||
)
|
||
.replace(
|
||
/^### (.+)$/gm,
|
||
'<h3 style="font-weight:600;margin:12px 0 4px;font-size:0.88rem;overflow-wrap:anywhere;word-break:break-word">$1</h3>',
|
||
)
|
||
.replace(
|
||
/^## (.+)$/gm,
|
||
'<h2 style="font-weight:600;margin:14px 0 4px;font-size:0.9rem;overflow-wrap:anywhere;word-break:break-word">$1</h2>',
|
||
)
|
||
.replace(
|
||
/^- (.+)$/gm,
|
||
'<li style="margin-left:16px;list-style:disc;overflow-wrap:anywhere;word-break:break-word">$1</li>',
|
||
)
|
||
.replace(
|
||
/(<li[^>]*>.*<\/li>\n?)+/g,
|
||
(m) => `<ul style="margin:6px 0">${m}</ul>`,
|
||
)
|
||
.replace(
|
||
/\n\n/g,
|
||
'</p><p style="margin:0 0 8px;overflow-wrap:anywhere;word-break:break-word">',
|
||
)
|
||
.replace(/\n/g, "<br>");
|
||
s = autoLinkBareUrls(s);
|
||
return s;
|
||
}
|
||
|
||
// ── Message bubble ────────────────────────────────────────────────────────────
|
||
|
||
/**
|
||
* Strip the markdown-bold "**Section Heading**" lines that Gemini
|
||
* loves to start each thought with so the collapsed pill shows the
|
||
* actual sentence rather than "**Examining the Target Server File**".
|
||
* The full text is still available in the expanded view.
|
||
*/
|
||
function thoughtPreview(thoughts: string): string {
|
||
const stripped = thoughts
|
||
.replace(/^\s*\*\*[^*]+\*\*\s*/gm, "")
|
||
.replace(/\s+/g, " ")
|
||
.trim();
|
||
if (stripped.length <= 90) return stripped;
|
||
return stripped.slice(0, 87) + "…";
|
||
}
|
||
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
fontSize: "0.75rem",
|
||
color: "#8c8580",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
fontStyle: "italic",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<Sparkles
|
||
style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
className="animate-pulse"
|
||
/>
|
||
</div>
|
||
<span className="animate-pulse">{currentAction}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function MessageBubble({ msg }: { msg: Message }) {
|
||
const isUser = msg.role === "user";
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
justifyContent: isUser ? "flex-end" : "flex-start",
|
||
marginBottom: 12,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{!isUser && (
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
marginRight: 8,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
)}
|
||
<div
|
||
style={{
|
||
maxWidth: "82%",
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{!isUser && msg.timeline && msg.timeline.length > 0 && (
|
||
<Timeline entries={msg.timeline} />
|
||
)}
|
||
{/*
|
||
Render the legacy bottom content bubble ONLY when:
|
||
- the message is from the user (their bubble is always the
|
||
content slot), OR
|
||
- the assistant message has no timeline at all (very old
|
||
messages from before timeline existed).
|
||
When the timeline contains text entries the prose is already
|
||
rendered there, and showing it again here would duplicate
|
||
every paragraph below the timeline.
|
||
*/}
|
||
{((msg.content && isUser) ||
|
||
(msg.content &&
|
||
!isUser &&
|
||
(!msg.timeline || msg.timeline.length === 0))) && (
|
||
<div
|
||
style={{
|
||
padding: isUser ? "9px 14px" : "10px 14px",
|
||
borderRadius: isUser
|
||
? "14px 14px 4px 14px"
|
||
: "4px 14px 14px 14px",
|
||
background: isUser ? "#1a1a1a" : "#f7f4ef",
|
||
color: isUser ? "#fff" : "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
{isUser ? (
|
||
<span style={{ whiteSpace: "pre-wrap", ...proseWrap }}>
|
||
{msg.content}
|
||
</span>
|
||
) : (
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{
|
||
__html: renderMarkdown(msg.content),
|
||
}}
|
||
/>
|
||
)}
|
||
</div>
|
||
)}
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Renders the chronological turn timeline: thoughts as their own
|
||
* collapsed pills, tool calls grouped by adjacent runs of the same
|
||
* name with a ×N counter. The flow visually mirrors what actually
|
||
* happened: thought → tools → thought → tools → ... → final summary.
|
||
*/
|
||
function Timeline({ entries }: { entries: TimelineEntry[] }) {
|
||
// Walk the entries and emit a renderable list. Adjacent same-category
|
||
// tool entries get bundled into a TimelineToolGroup; thought and
|
||
// text entries pass through as-is.
|
||
type Item =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "text"; text: string }
|
||
| {
|
||
kind: "toolGroup";
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
};
|
||
const items: Item[] = [];
|
||
for (const e of entries) {
|
||
if (e.kind === "thought") {
|
||
items.push({ kind: "thought", text: e.text });
|
||
} else if (e.kind === "text") {
|
||
items.push({ kind: "text", text: e.text });
|
||
} else {
|
||
const last = items[items.length - 1];
|
||
const category = getFriendlyCategory(e.name);
|
||
if (last && last.kind === "toolGroup" && last.category === category) {
|
||
last.entries.push(e);
|
||
} else {
|
||
items.push({ kind: "toolGroup", category, entries: [e] });
|
||
}
|
||
}
|
||
}
|
||
return (
|
||
<div style={{ marginBottom: 6 }}>
|
||
{items.map((item, i) => {
|
||
if (item.kind === "thought") {
|
||
return <ThinkingBubble key={i} thoughts={item.text} />;
|
||
}
|
||
if (item.kind === "text") {
|
||
return <TimelineText key={i} text={item.text} />;
|
||
}
|
||
return (
|
||
<TimelineToolGroup
|
||
key={i}
|
||
category={item.category}
|
||
entries={item.entries}
|
||
/>
|
||
);
|
||
})}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* One text segment in the assistant's timeline. Rendered as its own
|
||
* bubble so each round of multi-tool-loop output reads as a discrete
|
||
* step instead of concatenating into a wall of text.
|
||
*/
|
||
function TimelineText({ text }: { text: string }) {
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
padding: "10px 14px",
|
||
borderRadius: "4px 14px 14px 14px",
|
||
background: "#f7f4ef",
|
||
color: "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
marginBottom: 6,
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{ __html: renderMarkdown(text) }}
|
||
/>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function TimelineToolGroup({
|
||
category,
|
||
entries,
|
||
}: {
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
}) {
|
||
const [expanded, setExpanded] = useState(false);
|
||
const count = entries.length;
|
||
const allDone = entries.every((e) => e.status === "done");
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<button
|
||
onClick={() => setExpanded(!expanded)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
width: "100%",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
background: "none",
|
||
border: "none",
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
cursor: "pointer",
|
||
textAlign: "left",
|
||
}}
|
||
>
|
||
<span style={{ width: 14, display: "flex", justifyContent: "center" }}>
|
||
{!allDone ? (
|
||
<Loader2
|
||
style={{ width: 12, height: 12 }}
|
||
className="animate-spin"
|
||
/>
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
</span>
|
||
<span style={{ flex: 1 }}>
|
||
{category} {count > 1 ? `(x${count})` : ""} {!allDone ? "..." : " ✓"}
|
||
</span>
|
||
<span
|
||
style={{
|
||
transform: expanded ? "rotate(180deg)" : "none",
|
||
transition: "transform 0.15s ease",
|
||
}}
|
||
>
|
||
<ChevronDown style={{ width: 12, height: 12, opacity: 0.5 }} />
|
||
</span>
|
||
</button>
|
||
|
||
{expanded && (
|
||
<div
|
||
style={{
|
||
padding: "0 12px 8px 34px",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
gap: 4,
|
||
}}
|
||
>
|
||
{entries.map((e, i) => (
|
||
<div
|
||
key={i}
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#8c8580",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 4,
|
||
height: 4,
|
||
borderRadius: "50%",
|
||
background: "#ccc",
|
||
}}
|
||
/>
|
||
<span style={{ fontFamily: "var(--font-mono), monospace" }}>
|
||
{friendlyToolName(e.name)}
|
||
</span>
|
||
{!e.result && e.status === "running" && (
|
||
<span className="animate-pulse">...</span>
|
||
)}
|
||
{e.result && (
|
||
<span
|
||
style={{
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
opacity: 0.7,
|
||
maxWidth: 150,
|
||
}}
|
||
title={e.result}
|
||
>
|
||
— {e.result}
|
||
</span>
|
||
)}
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function ToolBubble({ event }: { event: ToolEvent }) {
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
{event.status === "running" ? (
|
||
<Loader2 style={{ width: 12, height: 12 }} className="animate-spin" />
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
<span>
|
||
{friendlyToolName(event.name)}
|
||
{event.status === "running" ? "…" : " ✓"}
|
||
</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Main panel ────────────────────────────────────────────────────────────────
|
||
|
||
interface ChatPanelProps {
|
||
/**
|
||
* When true, the panel renders inline as a flex child of its parent
|
||
* (a structural left column on project pages). Skips the fixed-position
|
||
* slide-out treatment, the collapsed-tab affordance, and the
|
||
* --chat-panel-width side-effect. Always "open" — there's no close
|
||
* button because the panel IS the column.
|
||
*
|
||
* When false / omitted: legacy behavior — fixed slide-out on the
|
||
* right, collapsible, sets --chat-panel-width so the workspace
|
||
* content shifts left to make room.
|
||
*/
|
||
structural?: boolean;
|
||
/**
|
||
* When set with `structural` on a project route, renders a unified shell:
|
||
* full-width top bar (chat controls | section icons) and a split row
|
||
* below (chat column | artifact slot). Omit on slide-out chat.
|
||
*/
|
||
artifactSlot?: ReactNode;
|
||
}
|
||
|
||
/** Shared dimensions for preview-select + send icon buttons in the composer. */
|
||
const COMPOSER_ACTION_BTN_BASE: CSSProperties = {
|
||
flexShrink: 0,
|
||
width: 32,
|
||
height: 32,
|
||
boxSizing: "border-box",
|
||
borderRadius: 8,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 0,
|
||
};
|
||
|
||
/** Preview pick chip + select-mode toggle for unified project shell chat composer. */
|
||
function ProjectPreviewChatInputWrap({
|
||
unifiedShell,
|
||
children,
|
||
}: {
|
||
unifiedShell: boolean;
|
||
children: (selectToggle: React.ReactNode) => React.ReactNode;
|
||
}) {
|
||
const bridge = usePreviewBridge();
|
||
|
||
if (!unifiedShell || !bridge) {
|
||
return <>{children(null)}</>;
|
||
}
|
||
|
||
const { selectMode, setSelectMode, picked, clearPick } = bridge;
|
||
|
||
const chip = picked ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "flex-start",
|
||
gap: 8,
|
||
marginBottom: 8,
|
||
padding: "8px 10px",
|
||
borderRadius: 8,
|
||
background: "#eef2ff",
|
||
border: "1px solid #c7d2fe",
|
||
fontSize: "0.72rem",
|
||
lineHeight: 1.45,
|
||
color: "#312e81",
|
||
}}
|
||
>
|
||
<MousePointerClick
|
||
style={{
|
||
width: 14,
|
||
height: 14,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
opacity: 0.85,
|
||
}}
|
||
aria-hidden
|
||
/>
|
||
<div style={{ flex: 1, minWidth: 0 }}>
|
||
<div style={{ fontWeight: 600, marginBottom: 2 }}>
|
||
Preview selection
|
||
</div>
|
||
<div style={{ opacity: 0.92 }}>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-ibm-plex-mono),monospace",
|
||
fontSize: "0.68rem",
|
||
}}
|
||
>
|
||
{picked.tagName}
|
||
</span>
|
||
{" · "}
|
||
<span style={{ wordBreak: "break-word" }}>{picked.selector}</span>
|
||
</div>
|
||
{picked.textSnippet ? (
|
||
<div style={{ marginTop: 4, opacity: 0.88, wordBreak: "break-word" }}>
|
||
{`"${picked.textSnippet.slice(0, 140)}${picked.textSnippet.length > 140 ? "..." : ""}"`}
|
||
</div>
|
||
) : null}
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={clearPick}
|
||
aria-label="Clear preview selection"
|
||
style={{
|
||
flexShrink: 0,
|
||
background: "none",
|
||
border: "none",
|
||
padding: 2,
|
||
cursor: "pointer",
|
||
borderRadius: 4,
|
||
color: "#4338ca",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
>
|
||
<X style={{ width: 13, height: 13 }} />
|
||
</button>
|
||
</div>
|
||
) : null;
|
||
|
||
const selectToggle = (
|
||
<button
|
||
type="button"
|
||
aria-pressed={selectMode}
|
||
aria-label={
|
||
selectMode ? "Exit preview select mode" : "Select element from preview"
|
||
}
|
||
title={
|
||
selectMode
|
||
? "Click preview to choose an element"
|
||
: "Choose element from preview"
|
||
}
|
||
onClick={() => setSelectMode(!selectMode)}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
border: selectMode ? "1px solid #6366f1" : "1px solid #e8e4dc",
|
||
background: selectMode ? "#eef2ff" : "#faf8f5",
|
||
color: selectMode ? "#4338ca" : "#6b6560",
|
||
cursor: "pointer",
|
||
}}
|
||
>
|
||
<MousePointerClick style={{ width: 15, height: 15 }} strokeWidth={2} />
|
||
</button>
|
||
);
|
||
|
||
return (
|
||
<>
|
||
{chip}
|
||
{children(selectToggle)}
|
||
</>
|
||
);
|
||
}
|
||
|
||
export function ChatPanel({
|
||
structural = false,
|
||
artifactSlot,
|
||
}: ChatPanelProps = {}) {
|
||
const { data: sessionData, status } = useSession();
|
||
const params = useParams();
|
||
const pathname = usePathname() ?? "";
|
||
const workspace = (params?.workspace as string) || "";
|
||
// When the user is on a /project/<id>/* route, scope the chat to
|
||
// that project. The threads list, the new-thread create call, and
|
||
// the system prompt all branch on this; the chat header surfaces it
|
||
// so the user knows the AI is "talking about" the right thing.
|
||
const projectId = (params?.projectId as string) || "";
|
||
/** Full project shell (chat | artifact); must render even while auth is loading or signed out. */
|
||
const unifiedProjectShell =
|
||
structural && Boolean(projectId) && artifactSlot !== undefined;
|
||
const [activeProjectName, setActiveProjectName] = useState<string | null>(
|
||
null,
|
||
);
|
||
|
||
const [open, setOpen] = useState(() => {
|
||
// Structural mode is always-open by definition — the panel IS the
|
||
// column, there's no "closed" state to persist.
|
||
if (structural) return true;
|
||
if (typeof window === "undefined") return false;
|
||
return localStorage.getItem("vibn-chat-open") !== "false";
|
||
});
|
||
const [threads, setThreads] = useState<Thread[]>([]);
|
||
// threadsLoaded flips to true after the FIRST loadThreads() resolves.
|
||
// Used to gate the auto-create effect — without it we race the fetch
|
||
// and spawn an empty thread before history loads.
|
||
const [threadsLoaded, setThreadsLoaded] = useState(false);
|
||
const [activeThread, setActiveThread] = useState<string | null>(null);
|
||
const [messages, setMessages] = useState<Message[]>([]);
|
||
const [input, setInput] = useState("");
|
||
const [sending, setSending] = useState(false);
|
||
const [showThreads, setShowThreads] = useState(false);
|
||
const [mcpToken, setMcpToken] = useState<string | null>(null);
|
||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||
const inputRef = useRef<HTMLTextAreaElement>(null);
|
||
// AbortController for the in-flight /api/chat fetch. Lives in a ref
|
||
// so the Stop button can reach it without re-rendering on every
|
||
// streaming chunk.
|
||
const abortRef = useRef<AbortController | null>(null);
|
||
|
||
const scrollToBottom = useCallback(() => {
|
||
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
|
||
}, []);
|
||
|
||
// Persist open state + adjust main content margin
|
||
useEffect(() => {
|
||
if (structural) return;
|
||
localStorage.setItem("vibn-chat-open", String(open));
|
||
document.documentElement.style.setProperty(
|
||
"--chat-panel-width",
|
||
open ? "380px" : "0px",
|
||
);
|
||
}, [open, structural]);
|
||
|
||
// Load MCP token — prefer localStorage cache, fetch from API if missing.
|
||
// We use /api/workspaces (not the URL param) because the URL slug
|
||
// (e.g. "mark-account") differs from the actual workspace slug ("mark").
|
||
useEffect(() => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
const cached = localStorage.getItem(`vibn-mcp-token-${workspace}`);
|
||
if (cached) {
|
||
setMcpToken(cached);
|
||
return;
|
||
}
|
||
fetch("/api/workspaces?include_default_token=true")
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (d?.defaultToken) {
|
||
localStorage.setItem(`vibn-mcp-token-${workspace}`, d.defaultToken);
|
||
setMcpToken(d.defaultToken);
|
||
}
|
||
})
|
||
.catch(() => {});
|
||
}, [workspace, status]);
|
||
|
||
// Load threads (scoped to the current project when one is in the URL).
|
||
// Reset the loaded flag when projectId changes so the resume effect
|
||
// re-runs against the correct list and doesn't restore a thread from
|
||
// the previous project.
|
||
const loadThreads = useCallback(async () => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
try {
|
||
const qs = new URLSearchParams({ workspace });
|
||
if (projectId) qs.set("projectId", projectId);
|
||
const res = await fetch(`/api/chat/threads?${qs.toString()}`);
|
||
const data = await res.json();
|
||
setThreads(data.threads || []);
|
||
} catch {
|
||
/* silent */
|
||
} finally {
|
||
setThreadsLoaded(true);
|
||
}
|
||
}, [workspace, projectId, status]);
|
||
|
||
useEffect(() => {
|
||
setThreadsLoaded(false);
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
// Clear the threads array immediately so the resume effect doesn't
|
||
// race the loadThreads() fetch and resume a stale project-scoped
|
||
// thread when the user navigates from /project/X back to /projects.
|
||
setThreads([]);
|
||
loadThreads();
|
||
}, [loadThreads, projectId]);
|
||
|
||
// Look up the active project's display name once we have a projectId,
|
||
// so the chat header can show "Talking about: <name>".
|
||
useEffect(() => {
|
||
if (!projectId) {
|
||
setActiveProjectName(null);
|
||
return;
|
||
}
|
||
let cancelled = false;
|
||
fetch(`/api/projects/${projectId}/anatomy`, { credentials: "include" })
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (cancelled) return;
|
||
const name = d?.project?.name;
|
||
if (name) setActiveProjectName(name);
|
||
})
|
||
.catch(() => {});
|
||
return () => {
|
||
cancelled = true;
|
||
};
|
||
}, [projectId]);
|
||
|
||
// Create and activate a new thread (tagged to the active project, if any).
|
||
const newThread = useCallback(async () => {
|
||
try {
|
||
const res = await fetch("/api/chat/threads", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ workspace, projectId: projectId || undefined }),
|
||
});
|
||
const data = await res.json();
|
||
if (data.thread) {
|
||
setThreads((prev) => [data.thread, ...prev]);
|
||
setActiveThread(data.thread.id);
|
||
setMessages([]);
|
||
setShowThreads(false);
|
||
}
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, [workspace, projectId]);
|
||
|
||
// Load thread messages
|
||
const loadThread = useCallback(async (id: string) => {
|
||
setActiveThread(id);
|
||
setShowThreads(false);
|
||
setMessages([]);
|
||
try {
|
||
const res = await fetch(`/api/chat/threads/${id}`);
|
||
const data = await res.json();
|
||
// Hydrate the timeline from persisted textSegments + toolCalls
|
||
// so a reloaded thread renders the same per-round bubbles the
|
||
// user saw during streaming. Older messages without
|
||
// textSegments fall back to the legacy single-bubble path.
|
||
const hydrated = (data.messages || []).map((m: any) => {
|
||
if (m.role !== "assistant") return m;
|
||
const segs: string[] = Array.isArray(m.textSegments)
|
||
? m.textSegments
|
||
: [];
|
||
if (segs.length === 0) return m;
|
||
const timeline: TimelineEntry[] = segs.map((t) => ({
|
||
kind: "text",
|
||
text: t,
|
||
}));
|
||
// We don't have round-level interleaving for tool calls in
|
||
// the persisted shape (the schema flattens them), so we drop
|
||
// the toolCalls into the timeline at the end. The streamed
|
||
// shape preserves true ordering; this is just a reload
|
||
// approximation. Good enough — what the user really cares
|
||
// about is the text segments not run-on'ing into one blob.
|
||
if (Array.isArray(m.toolCalls)) {
|
||
for (const tc of m.toolCalls) {
|
||
timeline.push({ kind: "tool", name: tc.name, status: "done" });
|
||
}
|
||
}
|
||
return { ...m, timeline, content: "" };
|
||
});
|
||
setMessages(hydrated);
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, []);
|
||
|
||
// Auto-resume previous thread (or create a fresh one if the user has
|
||
// never chatted in this workspace). We MUST wait for threadsLoaded
|
||
// before deciding — otherwise we race the fetch and spawn an empty
|
||
// thread before history arrives. Last-active thread is restored from
|
||
// localStorage so a page reload (deploy, refresh) lands the user back
|
||
// in the conversation they were in.
|
||
useEffect(() => {
|
||
if (!open || status !== "authenticated" || !workspace) return;
|
||
if (!threadsLoaded) return;
|
||
if (activeThread) return;
|
||
|
||
if (threads.length === 0) {
|
||
newThread();
|
||
return;
|
||
}
|
||
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
const saved =
|
||
typeof window !== "undefined" ? localStorage.getItem(savedKey) : null;
|
||
const target =
|
||
saved && threads.some((t) => t.id === saved) ? saved : threads[0].id;
|
||
loadThread(target);
|
||
}, [
|
||
open,
|
||
status,
|
||
workspace,
|
||
projectId,
|
||
threadsLoaded,
|
||
threads,
|
||
activeThread,
|
||
newThread,
|
||
loadThread,
|
||
]);
|
||
|
||
// Persist active thread so reload re-opens the same conversation,
|
||
// keyed per-project so each project has its own "last conversation".
|
||
useEffect(() => {
|
||
if (typeof window === "undefined" || !workspace) return;
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
if (activeThread) localStorage.setItem(savedKey, activeThread);
|
||
}, [activeThread, workspace, projectId]);
|
||
|
||
useEffect(() => {
|
||
scrollToBottom();
|
||
}, [messages, scrollToBottom]);
|
||
|
||
const deleteThread = useCallback(
|
||
async (id: string, e: React.MouseEvent) => {
|
||
e.stopPropagation();
|
||
await fetch(`/api/chat/threads/${id}`, { method: "DELETE" });
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [
|
||
...tl,
|
||
{ kind: "tool", name: ev.name, status: "running" },
|
||
],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_result") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
// Walk backward to the most recent matching running
|
||
// tool entry and mark it done. Avoids cross-matching
|
||
// earlier same-named entries.
|
||
let updated = false;
|
||
const newTl: TimelineEntry[] = [];
|
||
for (let i = tl.length - 1; i >= 0; i--) {
|
||
const e = tl[i];
|
||
if (
|
||
!updated &&
|
||
e.kind === "tool" &&
|
||
e.name === ev.name &&
|
||
e.status === "running"
|
||
) {
|
||
newTl.unshift({
|
||
...e,
|
||
status: "done",
|
||
result: ev.result,
|
||
});
|
||
updated = true;
|
||
} else {
|
||
newTl.unshift(e);
|
||
}
|
||
}
|
||
next[msgIndex] = { ...next[msgIndex], timeline: newTl };
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "error") {
|
||
const errText = ev.error || "Unknown error";
|
||
const isToolErr = /tool|mcp|coolify|gitea/i.test(errText);
|
||
const errBubble = isToolErr
|
||
? `⚠️ **Tool error:** ${errText}`
|
||
: `⚠️ ${errText}`;
|
||
assistantContent += (assistantContent ? "\n\n" : "") + errBubble;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "text", text: errBubble }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
// Auto-title thread from first message
|
||
const thisThread = threads.find((t) => t.id === activeThread);
|
||
if (thisThread?.title === "New conversation") {
|
||
const title = text.slice(0, 50);
|
||
await fetch(`/api/chat/threads/${activeThread}`, {
|
||
method: "PATCH",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ title }),
|
||
});
|
||
setThreads((prev) =>
|
||
prev.map((t) => (t.id === activeThread ? { ...t, title } : t)),
|
||
);
|
||
}
|
||
|
||
loadThreads();
|
||
} catch (e) {
|
||
const isAbort = e instanceof DOMException && e.name === "AbortError";
|
||
if (isAbort) {
|
||
// Server-side will have appended "(stopped by user)" to the
|
||
// partial response and persisted it. We just need to make
|
||
// sure the local UI reflects whatever streamed in before the
|
||
// user clicked Stop — which it already does, because we've
|
||
// been mutating `messages[msgIndex]` chunk-by-chunk above.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (
|
||
msgIndex >= 0 &&
|
||
next[msgIndex] &&
|
||
!next[msgIndex].content.includes("(stopped by user)")
|
||
) {
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
content:
|
||
(next[msgIndex].content || "") + "\n\n_(stopped by user)_",
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else {
|
||
const errMsg = e instanceof Error ? e.message : String(e);
|
||
const isNetwork = /fetch|network|failed to fetch/i.test(errMsg);
|
||
const friendlyError = isNetwork
|
||
? "⚠️ Network error — check your connection and try again."
|
||
: `⚠️ Something went wrong: ${errMsg.slice(0, 200)}\n\nYou can try again or start a new message.`;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
next[msgIndex] = { ...next[msgIndex], content: friendlyError };
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
} finally {
|
||
abortRef.current = null;
|
||
setSending(false);
|
||
}
|
||
},
|
||
[
|
||
input,
|
||
sending,
|
||
activeThread,
|
||
workspace,
|
||
mcpToken,
|
||
threads,
|
||
loadThreads,
|
||
unifiedProjectShell,
|
||
],
|
||
);
|
||
|
||
const cancelMessage = useCallback(() => {
|
||
abortRef.current?.abort();
|
||
}, []);
|
||
|
||
// External components (e.g. ProjectHeaderUrls' "Start preview" button)
|
||
// can ask the chat to send a canned prompt without prop-drilling. Open
|
||
// the panel if collapsed, then fire the prompt as if the user typed it.
|
||
useEffect(() => {
|
||
function onPrompt(e: Event) {
|
||
const ce = e as CustomEvent<{ prompt?: string; scopeProjectId?: string }>;
|
||
const prompt = ce.detail?.prompt;
|
||
if (!prompt) return;
|
||
// If the dispatcher scopes the prompt to a specific project, only
|
||
// accept it when the chat panel is currently bound to that project.
|
||
// Prevents a "Start preview on Manifest" click from accidentally
|
||
// landing in a chat that's scoped to a different project.
|
||
if (ce.detail?.scopeProjectId && ce.detail.scopeProjectId !== projectId) {
|
||
return;
|
||
}
|
||
setOpen(true);
|
||
void sendMessage(prompt);
|
||
}
|
||
window.addEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
return () =>
|
||
window.removeEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
}, [sendMessage, projectId]);
|
||
|
||
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||
if (e.key === "Enter" && !e.shiftKey) {
|
||
e.preventDefault();
|
||
sendMessage();
|
||
} else if (e.key === "Escape" && sending) {
|
||
e.preventDefault();
|
||
cancelMessage();
|
||
}
|
||
};
|
||
|
||
// Slide-out chat hidden until signed in. Structural project shell always
|
||
// mounts so Preview / Product / Plan pages render; chat column shows loading
|
||
// or sign-in instead of wiping the whole viewport (blank page).
|
||
if (!unifiedProjectShell && status !== "authenticated") return null;
|
||
|
||
// ── Collapsed tab ──────────────────────────────────────────────────────────
|
||
// Structural mode is always-open; skip the collapsed-tab branch entirely.
|
||
if (!open && !structural) {
|
||
return (
|
||
<button
|
||
onClick={() => setOpen(true)}
|
||
style={{
|
||
position: "fixed",
|
||
right: 0,
|
||
top: "50%",
|
||
transform: "translateY(-50%)",
|
||
zIndex: 1000,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
border: "none",
|
||
borderRadius: "8px 0 0 8px",
|
||
padding: "14px 10px",
|
||
cursor: "pointer",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
boxShadow: "-2px 0 12px #1a1a1a14",
|
||
}}
|
||
title="Open Vibn AI"
|
||
>
|
||
<MessageSquare style={{ width: 16, height: 16 }} />
|
||
<span
|
||
style={{
|
||
writingMode: "vertical-rl",
|
||
textOrientation: "mixed",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.08em",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
transform: "rotate(180deg)",
|
||
}}
|
||
>
|
||
VIBN AI
|
||
</span>
|
||
</button>
|
||
);
|
||
}
|
||
|
||
const conversationColumn = (
|
||
<>
|
||
{/* Thread list dropdown */}
|
||
{showThreads && (
|
||
<div
|
||
style={{
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
maxHeight: 200,
|
||
overflowY: "auto",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{threads.length === 0 && (
|
||
<div
|
||
style={{
|
||
padding: "12px 16px",
|
||
fontSize: "0.78rem",
|
||
color: "#a09a90",
|
||
}}
|
||
>
|
||
No conversations yet
|
||
</div>
|
||
)}
|
||
{threads.map((t) => (
|
||
<div
|
||
key={t.id}
|
||
onClick={() => loadThread(t.id)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "9px 16px",
|
||
background: activeThread === t.id ? "#f0ede8" : "transparent",
|
||
cursor: "pointer",
|
||
borderBottom: "1px solid #f0ede8",
|
||
}}
|
||
onMouseEnter={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "#f7f4ef";
|
||
}}
|
||
onMouseLeave={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "transparent";
|
||
}}
|
||
>
|
||
<div style={{ minWidth: 0 }}>
|
||
<div
|
||
style={{
|
||
fontSize: "0.8rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
{t.title}
|
||
</div>
|
||
<div style={{ fontSize: "0.7rem", color: "#a09a90" }}>
|
||
{timeAgo(t.updatedAt)}
|
||
</div>
|
||
</div>
|
||
<button
|
||
onClick={(e) => deleteThread(t.id, e)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
color: "#c0bab2",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<Trash2 style={{ width: 12, height: 12 }} />
|
||
</button>
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
|
||
{/* Messages */}
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
overflowY: "auto",
|
||
overflowX: "hidden",
|
||
padding: "16px 14px",
|
||
}}
|
||
>
|
||
{messages.length === 0 && !sending && (
|
||
<div
|
||
style={{ padding: "24px 14px", maxWidth: 640, margin: "0 auto" }}
|
||
>
|
||
<div style={{ display: "flex", gap: 12 }}>
|
||
<div
|
||
style={{
|
||
width: 28,
|
||
height: 28,
|
||
borderRadius: 6,
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
color: "#fff",
|
||
fontSize: "0.85rem",
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</div>
|
||
<div
|
||
style={{
|
||
background: "#fff",
|
||
border: "1px solid #e8e4dc",
|
||
padding: "14px 18px",
|
||
borderRadius: "0 12px 12px 12px",
|
||
fontSize: "0.9rem",
|
||
color: "#1a1a1a",
|
||
lineHeight: 1.6,
|
||
boxShadow: "0 1px 2px #1a1a1a05",
|
||
maxWidth: "85%",
|
||
}}
|
||
>
|
||
Welcome to {activeProjectName ? activeProjectName : "Vibn"}!
|
||
Tell me what you want to build and I'll scaffold it, run it in a
|
||
preview, and ship it when you say so.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{messages.map((msg, i) => (
|
||
<MessageBubble key={msg.id || i} msg={msg} />
|
||
))}
|
||
|
||
{sending && messages[messages.length - 1]?.role !== "assistant" && (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 0",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
{[0, 1, 2].map((i) => (
|
||
<span
|
||
key={i}
|
||
style={{
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: "50%",
|
||
background: "#c0bab2",
|
||
animation: `vibn-bounce 1.2s ease infinite ${i * 0.2}s`,
|
||
display: "inline-block",
|
||
}}
|
||
/>
|
||
))}
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{/* The active thinking status cycle */}
|
||
{sending && (
|
||
<div
|
||
style={{
|
||
alignSelf: "flex-start",
|
||
marginBottom: 12,
|
||
paddingLeft: 4,
|
||
}}
|
||
>
|
||
<ActiveThinkingIndicator />
|
||
</div>
|
||
)}
|
||
|
||
<div ref={messagesEndRef} />
|
||
</div>
|
||
|
||
{/* Input */}
|
||
<div
|
||
style={{
|
||
padding: "12px 14px",
|
||
borderTop: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{!mcpToken && (
|
||
<div
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#9a7b3a",
|
||
background: "#d4a04a12",
|
||
border: "1px solid #d4a04a30",
|
||
borderRadius: 6,
|
||
padding: "5px 10px",
|
||
marginBottom: 8,
|
||
lineHeight: 1.4,
|
||
}}
|
||
>
|
||
Read-only mode — add your MCP token in Settings to enable actions.
|
||
</div>
|
||
)}
|
||
<ProjectPreviewChatInputWrap unifiedShell={unifiedProjectShell}>
|
||
{(selectToggle) => (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
gap: 8,
|
||
alignItems: "center",
|
||
background: "#fff",
|
||
borderRadius: 10,
|
||
border: "1px solid #e8e4dc",
|
||
padding: "8px 10px",
|
||
boxShadow: "0 1px 3px #1a1a1a05",
|
||
}}
|
||
>
|
||
<textarea
|
||
ref={inputRef}
|
||
value={input}
|
||
onChange={(e) => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={
|
||
sending ? "Esc to stop generating…" : "Ask Vibn AI anything…"
|
||
}
|
||
rows={3}
|
||
disabled={!activeThread}
|
||
style={{
|
||
flex: 1,
|
||
border: "none",
|
||
outline: "none",
|
||
background: "transparent",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.5,
|
||
resize: "none",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
color: "#1a1a1a",
|
||
minHeight: "60px",
|
||
maxHeight: 120,
|
||
overflowY: "auto",
|
||
}}
|
||
onInput={(e) => {
|
||
const el = e.currentTarget;
|
||
el.style.height = "auto";
|
||
el.style.height = Math.min(el.scrollHeight, 120) + "px";
|
||
}}
|
||
/>
|
||
{selectToggle}
|
||
{(() => {
|
||
// While the AI is streaming or running tools, the button
|
||
// turns into a Stop control. Click → AbortController fires,
|
||
// server bails between rounds, partial text gets persisted.
|
||
const isActive = sending;
|
||
const canSend = !sending && input.trim() && activeThread;
|
||
return (
|
||
<button
|
||
type="button"
|
||
onClick={isActive ? cancelMessage : () => sendMessage()}
|
||
disabled={!isActive && !canSend}
|
||
aria-label={isActive ? "Stop generating" : "Send message"}
|
||
title={isActive ? "Stop generating (Esc)" : "Send"}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
background: isActive
|
||
? "#1a1a1a"
|
||
: canSend
|
||
? "#1a1a1a"
|
||
: "#e8e4dc",
|
||
color: isActive || canSend ? "#fff" : "#a09a90",
|
||
border: "none",
|
||
cursor: isActive || canSend ? "pointer" : "default",
|
||
transition: "all 0.15s",
|
||
position: "relative",
|
||
}}
|
||
>
|
||
{isActive ? (
|
||
<>
|
||
<Loader2
|
||
style={{
|
||
width: 15,
|
||
height: 15,
|
||
position: "absolute",
|
||
opacity: 0.35,
|
||
}}
|
||
className="animate-spin"
|
||
/>
|
||
<Square
|
||
style={{
|
||
width: 9,
|
||
height: 9,
|
||
fill: "#fff",
|
||
strokeWidth: 0,
|
||
}}
|
||
/>
|
||
</>
|
||
) : (
|
||
<Send style={{ width: 15, height: 15 }} />
|
||
)}
|
||
</button>
|
||
);
|
||
})()}
|
||
</div>
|
||
)}
|
||
</ProjectPreviewChatInputWrap>
|
||
</div>
|
||
</>
|
||
);
|
||
|
||
const structuralChatLoadingColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 14,
|
||
}}
|
||
>
|
||
<Loader2
|
||
className="animate-spin"
|
||
style={{ width: 22, height: 22, color: "#9c9590" }}
|
||
/>
|
||
<p style={{ fontSize: "0.84rem", color: "#6b6560", margin: 0 }}>
|
||
Signing you in…
|
||
</p>
|
||
</div>
|
||
);
|
||
|
||
const authHref = pathname
|
||
? `/auth?callbackUrl=${encodeURIComponent(pathname)}`
|
||
: "/auth";
|
||
|
||
const structuralChatSignedOutColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 12,
|
||
}}
|
||
>
|
||
<p
|
||
style={{
|
||
fontSize: "0.88rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
}}
|
||
>
|
||
Sign in to use Vibn AI
|
||
</p>
|
||
<p
|
||
style={{
|
||
fontSize: "0.76rem",
|
||
color: "#a09a90",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
maxWidth: 260,
|
||
lineHeight: 1.5,
|
||
}}
|
||
>
|
||
Preview and tabs still work here. Chat needs an account.
|
||
</p>
|
||
<Link
|
||
href={authHref}
|
||
style={{
|
||
marginTop: 4,
|
||
padding: "10px 18px",
|
||
borderRadius: 10,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
fontSize: "0.82rem",
|
||
fontWeight: 500,
|
||
textDecoration: "none",
|
||
}}
|
||
>
|
||
Sign in
|
||
</Link>
|
||
</div>
|
||
);
|
||
|
||
const structuralChatBody =
|
||
status === "loading"
|
||
? structuralChatLoadingColumn
|
||
: status !== "authenticated"
|
||
? structuralChatSignedOutColumn
|
||
: conversationColumn;
|
||
|
||
if (unifiedProjectShell) {
|
||
return (
|
||
<>
|
||
<PreviewBridgeProvider>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
background: "#fff",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
alignItems: "stretch",
|
||
flexShrink: 0,
|
||
height: 48,
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
boxSizing: "border-box",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
height: "100%",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
padding: "0 12px",
|
||
gap: 6,
|
||
boxSizing: "border-box",
|
||
borderRight: "1px solid #e8e4dc",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
width: "100%",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 5px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus style={{ width: 14, height: 14 }} />
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
alignItems: "stretch",
|
||
}}
|
||
>
|
||
<ProjectIconRail workspace={workspace} projectId={projectId} />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
borderRight: "1px solid #e8e4dc",
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{structuralChatBody}
|
||
</div>
|
||
<div
|
||
key={pathname}
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
overflow: "auto",
|
||
background: "#faf8f5",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{artifactSlot}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</PreviewBridgeProvider>
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</>
|
||
);
|
||
}
|
||
|
||
// ── Open panel ─────────────────────────────────────────────────────────────
|
||
// Structural mode: fill the parent column. Default mode: fixed slide-out
|
||
// anchored to the right edge of the viewport (legacy behavior).
|
||
return (
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
flex: 1,
|
||
minHeight: 0,
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
: {
|
||
position: "fixed",
|
||
right: 0,
|
||
top: 0,
|
||
bottom: 0,
|
||
zIndex: 999,
|
||
width: 380,
|
||
background: "#fff",
|
||
borderLeft: "1px solid #e8e4dc",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
boxShadow: "-4px 0 24px #1a1a1a08",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
}
|
||
>
|
||
{/* Header — structural: circle logo + threads; slide-out: wordmark */}
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
height: 48,
|
||
padding: "0 12px",
|
||
boxSizing: "border-box",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
gap: 6,
|
||
}
|
||
: {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "14px 16px",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}
|
||
}
|
||
>
|
||
{structural ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
) : (
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 6px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-lora),serif",
|
||
fontSize: "0.95rem",
|
||
fontWeight: 400,
|
||
color: "#1a1a1a",
|
||
letterSpacing: "-0.01em",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
Vibn AI
|
||
</span>
|
||
<ChevronDown
|
||
style={{
|
||
width: 13,
|
||
height: 13,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 6,
|
||
padding: "2px 8px",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 160,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
)}
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: structural ? "4px 5px" : "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus
|
||
style={{
|
||
width: structural ? 14 : 15,
|
||
height: structural ? 14 : 15,
|
||
}}
|
||
/>
|
||
</button>
|
||
{!structural && (
|
||
<button
|
||
type="button"
|
||
onClick={() => setOpen(false)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="Close"
|
||
>
|
||
<ChevronRight style={{ width: 15, height: 15 }} />
|
||
</button>
|
||
)}
|
||
</div>
|
||
</div>
|
||
|
||
{conversationColumn}
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
I have updated the chat input box! It is now set to 3 rows high by default (with a `minHeight` to ensure it stays open), making it much easier to write and review longer prompts before sending.
|
||
|
||
The update has been saved and your Next.js server should hot-reload it instantly.
|
||
|
||
## User (checkpoint)
|
||
|
||
make that 4 please.
|
||
|
||
**Tool Call: vibn\-frontend/components/vibn\-chat/chat\-panel.tsx**
|
||
Status: Completed
|
||
|
||
Diff: vibn-frontend/components/vibn-chat/chat-panel.tsx
|
||
```
|
||
"use client";
|
||
|
||
import {
|
||
useEffect,
|
||
useRef,
|
||
useState,
|
||
useCallback,
|
||
type ReactNode,
|
||
type CSSProperties,
|
||
} from "react";
|
||
import Link from "next/link";
|
||
import { useSession } from "next-auth/react";
|
||
import { useParams, usePathname } from "next/navigation";
|
||
import {
|
||
MessageSquare,
|
||
X,
|
||
ChevronRight,
|
||
Send,
|
||
Plus,
|
||
Loader2,
|
||
Wrench,
|
||
ChevronDown,
|
||
Trash2,
|
||
Square,
|
||
MousePointerClick,
|
||
Sparkles,
|
||
} from "lucide-react";
|
||
import { ProjectIconRail } from "@/components/project/project-icon-rail";
|
||
import {
|
||
PreviewBridgeProvider,
|
||
previewMessagePrepRef,
|
||
usePreviewBridge,
|
||
} from "@/components/project/preview-bridge-context";
|
||
|
||
// ── Types ─────────────────────────────────────────────────────────────────────
|
||
|
||
interface Thread {
|
||
id: string;
|
||
title: string;
|
||
updatedAt: string;
|
||
}
|
||
|
||
interface Message {
|
||
id?: string;
|
||
role: "user" | "assistant" | "tool";
|
||
content: string;
|
||
toolCalls?: { id: string; name: string; args: Record<string, unknown> }[];
|
||
toolName?: string;
|
||
createdAt?: string;
|
||
/**
|
||
* Chronological turn timeline interleaving the model's thinking
|
||
* narration and the tool calls it fired. Rendered as a stack of
|
||
* pills INSIDE the bubble above the final text content, so the
|
||
* user sees the actual flow:
|
||
* [thought] [tool ×N] [thought] [tool] ... [summary]
|
||
* Each thought is its own collapsed pill (click to expand);
|
||
* adjacent runs of the same tool name collapse into one pill
|
||
* with a ×N counter. The final assistant text is rendered
|
||
* separately, below the timeline.
|
||
*/
|
||
timeline?: TimelineEntry[];
|
||
}
|
||
|
||
type TimelineEntry =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "tool"; name: string; status: "running" | "done"; result?: string }
|
||
// A text segment from one round of the assistant's tool loop.
|
||
// Each text SSE event from the server starts a new entry; subsequent
|
||
// streaming chunks for that same round append to the most-recent
|
||
// text entry. Tool/thought entries between text segments break the
|
||
// accumulation so multi-round turns render as separate bubbles.
|
||
| { kind: "text"; text: string };
|
||
|
||
interface ToolEvent {
|
||
name: string;
|
||
status: "running" | "done";
|
||
result?: string;
|
||
}
|
||
|
||
// ── Helpers ───────────────────────────────────────────────────────────────────
|
||
|
||
function getFriendlyCategory(name: string): string {
|
||
if (
|
||
name.includes("fs.edit") ||
|
||
name.includes("fs.write") ||
|
||
name.includes("fs_edit") ||
|
||
name.includes("fs_write")
|
||
)
|
||
return "Writing code";
|
||
if (
|
||
name.includes("fs.read") ||
|
||
name.includes("fs.list") ||
|
||
name.includes("fs.grep") ||
|
||
name.includes("fs.tree") ||
|
||
name.includes("fs_read") ||
|
||
name.includes("fs_list") ||
|
||
name.includes("fs_grep") ||
|
||
name.includes("fs_tree")
|
||
)
|
||
return "Reading codebase";
|
||
if (name.includes("shell.exec") || name.includes("shell_exec"))
|
||
return "Running terminal commands";
|
||
if (name.includes("dev_server.start") || name.includes("dev_server_start"))
|
||
return "Starting dev server";
|
||
if (name.includes("dev_server.logs") || name.includes("dev_server_logs"))
|
||
return "Checking server logs";
|
||
if (
|
||
name.includes("browser.navigate") ||
|
||
name.includes("browser.console") ||
|
||
name.includes("browser_navigate") ||
|
||
name.includes("browser_console")
|
||
)
|
||
return "Checking browser preview";
|
||
if (name.includes("ship")) return "Shipping code to production";
|
||
|
||
return name;
|
||
}
|
||
|
||
function timeAgo(dateStr?: string): string {
|
||
if (!dateStr) return "";
|
||
const diff = (Date.now() - new Date(dateStr).getTime()) / 1000;
|
||
if (diff < 60) return "just now";
|
||
if (diff < 3600) return `${Math.floor(diff / 60)}m ago`;
|
||
if (diff < 86400) return `${Math.floor(diff / 3600)}h ago`;
|
||
return `${Math.floor(diff / 86400)}d ago`;
|
||
}
|
||
|
||
function friendlyToolName(name: string): string {
|
||
return name
|
||
.replace(/_/g, ".")
|
||
.replace("projects.list", "listing projects")
|
||
.replace("apps.list", "listing apps")
|
||
.replace("apps.create", "deploying app")
|
||
.replace("apps.templates.list", "listing templates")
|
||
.replace("apps.templates.search", "searching templates")
|
||
.replace("domains.register", "registering domain")
|
||
.replace("domains.list", "listing domains")
|
||
.replace("apps.logs", "fetching logs");
|
||
}
|
||
|
||
const LOADING_PHRASES = [
|
||
"Thinking about the problem...",
|
||
"Reviewing the plan...",
|
||
"Caramelizing onions...",
|
||
"Writing code...",
|
||
"Running checks...",
|
||
"Reticulating splines...",
|
||
"Building out the view...",
|
||
];
|
||
|
||
function ActiveThinkingIndicator() {
|
||
const [phraseIndex, setPhraseIndex] = useState(0);
|
||
|
||
useEffect(() => {
|
||
const timer = setInterval(() => {
|
||
setPhraseIndex((i) => (i + 1) % LOADING_PHRASES.length);
|
||
}, 2800);
|
||
return () => clearInterval(timer);
|
||
}, []);
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "4px 4px 10px 4px",
|
||
fontSize: "0.85rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<svg
|
||
width="16"
|
||
height="16"
|
||
viewBox="0 0 24 24"
|
||
fill="none"
|
||
stroke="#cf6741"
|
||
strokeWidth="2.5"
|
||
strokeLinecap="round"
|
||
strokeLinejoin="round"
|
||
className="animate-spin"
|
||
style={{ animationDuration: "3s" }}
|
||
>
|
||
<path d="M12 2v4M12 18v4M4.93 4.93l2.83 2.83M16.24 16.24l2.83 2.83M2 12h4M18 12h4M4.93 19.07l2.83-2.83M16.24 7.76l2.83-2.83" />
|
||
</svg>
|
||
</div>
|
||
<span className="animate-pulse">{LOADING_PHRASES[phraseIndex]}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Markdown-lite renderer ────────────────────────────────────────────────────
|
||
|
||
function escapeHtmlAttr(s: string): string {
|
||
return s.replace(/&/g, "&").replace(/"/g, """);
|
||
}
|
||
|
||
const LINK_STYLE =
|
||
"color:#4338ca;text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere;word-break:break-all";
|
||
|
||
/** [label](https://...) — href restricted to http(s) */
|
||
function markdownLinksToHtml(s: string): string {
|
||
return s.replace(
|
||
/\[([^\]]+)\]\((https?:\/\/[^\s)<>]+)\)/gi,
|
||
(_m, label: string, url: string) => {
|
||
return `<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${label}</a>`;
|
||
},
|
||
);
|
||
}
|
||
|
||
/** Bare https:// in prose (skips when prefix is `>` so href=/code aren't touched) */
|
||
function autoLinkBareUrls(s: string): string {
|
||
return s.replace(
|
||
/(^|[\s\-—:(\[{])(https?:\/\/[^\s<>"']+)/gi,
|
||
(match, pre: string, url: string) =>
|
||
`${pre}<a href="${escapeHtmlAttr(url)}" target="_blank" rel="noopener noreferrer" style="${LINK_STYLE}">${url}</a>`,
|
||
);
|
||
}
|
||
|
||
function renderMarkdown(text: string): string {
|
||
let s = text
|
||
.replace(/&/g, "&")
|
||
.replace(/</g, "<")
|
||
.replace(/>/g, ">");
|
||
s = markdownLinksToHtml(s);
|
||
s = s
|
||
.replace(/\*\*(.+?)\*\*/g, "<strong>$1</strong>")
|
||
.replace(
|
||
/`([^`]+)`/g,
|
||
'<code style="background:#f0ede8;padding:1px 5px;border-radius:3px;font-family:var(--font-ibm-plex-mono),monospace;font-size:0.85em;overflow-wrap:anywhere;word-break:break-word">$1</code>',
|
||
)
|
||
.replace(
|
||
/^### (.+)$/gm,
|
||
'<h3 style="font-weight:600;margin:12px 0 4px;font-size:0.88rem;overflow-wrap:anywhere;word-break:break-word">$1</h3>',
|
||
)
|
||
.replace(
|
||
/^## (.+)$/gm,
|
||
'<h2 style="font-weight:600;margin:14px 0 4px;font-size:0.9rem;overflow-wrap:anywhere;word-break:break-word">$1</h2>',
|
||
)
|
||
.replace(
|
||
/^- (.+)$/gm,
|
||
'<li style="margin-left:16px;list-style:disc;overflow-wrap:anywhere;word-break:break-word">$1</li>',
|
||
)
|
||
.replace(
|
||
/(<li[^>]*>.*<\/li>\n?)+/g,
|
||
(m) => `<ul style="margin:6px 0">${m}</ul>`,
|
||
)
|
||
.replace(
|
||
/\n\n/g,
|
||
'</p><p style="margin:0 0 8px;overflow-wrap:anywhere;word-break:break-word">',
|
||
)
|
||
.replace(/\n/g, "<br>");
|
||
s = autoLinkBareUrls(s);
|
||
return s;
|
||
}
|
||
|
||
// ── Message bubble ────────────────────────────────────────────────────────────
|
||
|
||
/**
|
||
* Strip the markdown-bold "**Section Heading**" lines that Gemini
|
||
* loves to start each thought with so the collapsed pill shows the
|
||
* actual sentence rather than "**Examining the Target Server File**".
|
||
* The full text is still available in the expanded view.
|
||
*/
|
||
function thoughtPreview(thoughts: string): string {
|
||
const stripped = thoughts
|
||
.replace(/^\s*\*\*[^*]+\*\*\s*/gm, "")
|
||
.replace(/\s+/g, " ")
|
||
.trim();
|
||
if (stripped.length <= 90) return stripped;
|
||
return stripped.slice(0, 87) + "…";
|
||
}
|
||
|
||
function ThinkingBubble({ thoughts }: { thoughts: string }) {
|
||
if (!thoughts) return null;
|
||
|
||
// Split thoughts into phrases, take the last one as the "current" action
|
||
const lines = thoughts
|
||
.split(/[.!?\n]/)
|
||
.map((l) => l.trim())
|
||
.filter(Boolean);
|
||
const currentAction = lines[lines.length - 1];
|
||
|
||
if (!currentAction) return null;
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
fontSize: "0.75rem",
|
||
color: "#8c8580",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
fontStyle: "italic",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
position: "relative",
|
||
width: 14,
|
||
height: 14,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
}}
|
||
>
|
||
<Sparkles
|
||
style={{ width: 12, height: 12, opacity: 0.7 }}
|
||
className="animate-pulse"
|
||
/>
|
||
</div>
|
||
<span className="animate-pulse">{currentAction}</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function MessageBubble({ msg }: { msg: Message }) {
|
||
const isUser = msg.role === "user";
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
justifyContent: isUser ? "flex-end" : "flex-start",
|
||
marginBottom: 12,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{!isUser && (
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
marginRight: 8,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
)}
|
||
<div
|
||
style={{
|
||
maxWidth: "82%",
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{!isUser && msg.timeline && msg.timeline.length > 0 && (
|
||
<Timeline entries={msg.timeline} />
|
||
)}
|
||
{/*
|
||
Render the legacy bottom content bubble ONLY when:
|
||
- the message is from the user (their bubble is always the
|
||
content slot), OR
|
||
- the assistant message has no timeline at all (very old
|
||
messages from before timeline existed).
|
||
When the timeline contains text entries the prose is already
|
||
rendered there, and showing it again here would duplicate
|
||
every paragraph below the timeline.
|
||
*/}
|
||
{((msg.content && isUser) ||
|
||
(msg.content &&
|
||
!isUser &&
|
||
(!msg.timeline || msg.timeline.length === 0))) && (
|
||
<div
|
||
style={{
|
||
padding: isUser ? "9px 14px" : "10px 14px",
|
||
borderRadius: isUser
|
||
? "14px 14px 4px 14px"
|
||
: "4px 14px 14px 14px",
|
||
background: isUser ? "#1a1a1a" : "#f7f4ef",
|
||
color: isUser ? "#fff" : "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
{isUser ? (
|
||
<span style={{ whiteSpace: "pre-wrap", ...proseWrap }}>
|
||
{msg.content}
|
||
</span>
|
||
) : (
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{
|
||
__html: renderMarkdown(msg.content),
|
||
}}
|
||
/>
|
||
)}
|
||
</div>
|
||
)}
|
||
</div>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* Renders the chronological turn timeline: thoughts as their own
|
||
* collapsed pills, tool calls grouped by adjacent runs of the same
|
||
* name with a ×N counter. The flow visually mirrors what actually
|
||
* happened: thought → tools → thought → tools → ... → final summary.
|
||
*/
|
||
function Timeline({ entries }: { entries: TimelineEntry[] }) {
|
||
// Walk the entries and emit a renderable list. Adjacent same-category
|
||
// tool entries get bundled into a TimelineToolGroup; thought and
|
||
// text entries pass through as-is.
|
||
type Item =
|
||
| { kind: "thought"; text: string }
|
||
| { kind: "text"; text: string }
|
||
| {
|
||
kind: "toolGroup";
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
};
|
||
const items: Item[] = [];
|
||
for (const e of entries) {
|
||
if (e.kind === "thought") {
|
||
items.push({ kind: "thought", text: e.text });
|
||
} else if (e.kind === "text") {
|
||
items.push({ kind: "text", text: e.text });
|
||
} else {
|
||
const last = items[items.length - 1];
|
||
const category = getFriendlyCategory(e.name);
|
||
if (last && last.kind === "toolGroup" && last.category === category) {
|
||
last.entries.push(e);
|
||
} else {
|
||
items.push({ kind: "toolGroup", category, entries: [e] });
|
||
}
|
||
}
|
||
}
|
||
return (
|
||
<div style={{ marginBottom: 6 }}>
|
||
{items.map((item, i) => {
|
||
if (item.kind === "thought") {
|
||
return <ThinkingBubble key={i} thoughts={item.text} />;
|
||
}
|
||
if (item.kind === "text") {
|
||
return <TimelineText key={i} text={item.text} />;
|
||
}
|
||
return (
|
||
<TimelineToolGroup
|
||
key={i}
|
||
category={item.category}
|
||
entries={item.entries}
|
||
/>
|
||
);
|
||
})}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
/**
|
||
* One text segment in the assistant's timeline. Rendered as its own
|
||
* bubble so each round of multi-tool-loop output reads as a discrete
|
||
* step instead of concatenating into a wall of text.
|
||
*/
|
||
function TimelineText({ text }: { text: string }) {
|
||
const proseWrap: React.CSSProperties = {
|
||
overflowWrap: "anywhere",
|
||
wordBreak: "break-word",
|
||
minWidth: 0,
|
||
};
|
||
return (
|
||
<div
|
||
style={{
|
||
padding: "10px 14px",
|
||
borderRadius: "4px 14px 14px 14px",
|
||
background: "#f7f4ef",
|
||
color: "#1a1a1a",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.6,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
marginBottom: 6,
|
||
...proseWrap,
|
||
}}
|
||
>
|
||
<span
|
||
style={proseWrap}
|
||
dangerouslySetInnerHTML={{ __html: renderMarkdown(text) }}
|
||
/>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function TimelineToolGroup({
|
||
category,
|
||
entries,
|
||
}: {
|
||
category: string;
|
||
entries: Array<Extract<TimelineEntry, { kind: "tool" }>>;
|
||
}) {
|
||
const [expanded, setExpanded] = useState(false);
|
||
const count = entries.length;
|
||
const allDone = entries.every((e) => e.status === "done");
|
||
|
||
return (
|
||
<div
|
||
style={{
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
<button
|
||
onClick={() => setExpanded(!expanded)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
width: "100%",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
background: "none",
|
||
border: "none",
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
cursor: "pointer",
|
||
textAlign: "left",
|
||
}}
|
||
>
|
||
<span style={{ width: 14, display: "flex", justifyContent: "center" }}>
|
||
{!allDone ? (
|
||
<Loader2
|
||
style={{ width: 12, height: 12 }}
|
||
className="animate-spin"
|
||
/>
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
</span>
|
||
<span style={{ flex: 1 }}>
|
||
{category} {count > 1 ? `(x${count})` : ""} {!allDone ? "..." : " ✓"}
|
||
</span>
|
||
<span
|
||
style={{
|
||
transform: expanded ? "rotate(180deg)" : "none",
|
||
transition: "transform 0.15s ease",
|
||
}}
|
||
>
|
||
<ChevronDown style={{ width: 12, height: 12, opacity: 0.5 }} />
|
||
</span>
|
||
</button>
|
||
|
||
{expanded && (
|
||
<div
|
||
style={{
|
||
padding: "0 12px 8px 34px",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
gap: 4,
|
||
}}
|
||
>
|
||
{entries.map((e, i) => (
|
||
<div
|
||
key={i}
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#8c8580",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 4,
|
||
height: 4,
|
||
borderRadius: "50%",
|
||
background: "#ccc",
|
||
}}
|
||
/>
|
||
<span style={{ fontFamily: "var(--font-mono), monospace" }}>
|
||
{friendlyToolName(e.name)}
|
||
</span>
|
||
{!e.result && e.status === "running" && (
|
||
<span className="animate-pulse">...</span>
|
||
)}
|
||
{e.result && (
|
||
<span
|
||
style={{
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
opacity: 0.7,
|
||
maxWidth: 150,
|
||
}}
|
||
title={e.result}
|
||
>
|
||
— {e.result}
|
||
</span>
|
||
)}
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
</div>
|
||
);
|
||
}
|
||
|
||
function ToolBubble({ event }: { event: ToolEvent }) {
|
||
return (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 12px",
|
||
margin: "4px 0",
|
||
background: "#f0ede8",
|
||
borderRadius: 8,
|
||
fontSize: "0.75rem",
|
||
color: "#6b6560",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}}
|
||
>
|
||
{event.status === "running" ? (
|
||
<Loader2 style={{ width: 12, height: 12 }} className="animate-spin" />
|
||
) : (
|
||
<Wrench style={{ width: 12, height: 12, color: "#2e7d32" }} />
|
||
)}
|
||
<span>
|
||
{friendlyToolName(event.name)}
|
||
{event.status === "running" ? "…" : " ✓"}
|
||
</span>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
// ── Main panel ────────────────────────────────────────────────────────────────
|
||
|
||
interface ChatPanelProps {
|
||
/**
|
||
* When true, the panel renders inline as a flex child of its parent
|
||
* (a structural left column on project pages). Skips the fixed-position
|
||
* slide-out treatment, the collapsed-tab affordance, and the
|
||
* --chat-panel-width side-effect. Always "open" — there's no close
|
||
* button because the panel IS the column.
|
||
*
|
||
* When false / omitted: legacy behavior — fixed slide-out on the
|
||
* right, collapsible, sets --chat-panel-width so the workspace
|
||
* content shifts left to make room.
|
||
*/
|
||
structural?: boolean;
|
||
/**
|
||
* When set with `structural` on a project route, renders a unified shell:
|
||
* full-width top bar (chat controls | section icons) and a split row
|
||
* below (chat column | artifact slot). Omit on slide-out chat.
|
||
*/
|
||
artifactSlot?: ReactNode;
|
||
}
|
||
|
||
/** Shared dimensions for preview-select + send icon buttons in the composer. */
|
||
const COMPOSER_ACTION_BTN_BASE: CSSProperties = {
|
||
flexShrink: 0,
|
||
width: 32,
|
||
height: 32,
|
||
boxSizing: "border-box",
|
||
borderRadius: 8,
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 0,
|
||
};
|
||
|
||
/** Preview pick chip + select-mode toggle for unified project shell chat composer. */
|
||
function ProjectPreviewChatInputWrap({
|
||
unifiedShell,
|
||
children,
|
||
}: {
|
||
unifiedShell: boolean;
|
||
children: (selectToggle: React.ReactNode) => React.ReactNode;
|
||
}) {
|
||
const bridge = usePreviewBridge();
|
||
|
||
if (!unifiedShell || !bridge) {
|
||
return <>{children(null)}</>;
|
||
}
|
||
|
||
const { selectMode, setSelectMode, picked, clearPick } = bridge;
|
||
|
||
const chip = picked ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "flex-start",
|
||
gap: 8,
|
||
marginBottom: 8,
|
||
padding: "8px 10px",
|
||
borderRadius: 8,
|
||
background: "#eef2ff",
|
||
border: "1px solid #c7d2fe",
|
||
fontSize: "0.72rem",
|
||
lineHeight: 1.45,
|
||
color: "#312e81",
|
||
}}
|
||
>
|
||
<MousePointerClick
|
||
style={{
|
||
width: 14,
|
||
height: 14,
|
||
flexShrink: 0,
|
||
marginTop: 2,
|
||
opacity: 0.85,
|
||
}}
|
||
aria-hidden
|
||
/>
|
||
<div style={{ flex: 1, minWidth: 0 }}>
|
||
<div style={{ fontWeight: 600, marginBottom: 2 }}>
|
||
Preview selection
|
||
</div>
|
||
<div style={{ opacity: 0.92 }}>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-ibm-plex-mono),monospace",
|
||
fontSize: "0.68rem",
|
||
}}
|
||
>
|
||
{picked.tagName}
|
||
</span>
|
||
{" · "}
|
||
<span style={{ wordBreak: "break-word" }}>{picked.selector}</span>
|
||
</div>
|
||
{picked.textSnippet ? (
|
||
<div style={{ marginTop: 4, opacity: 0.88, wordBreak: "break-word" }}>
|
||
{`"${picked.textSnippet.slice(0, 140)}${picked.textSnippet.length > 140 ? "..." : ""}"`}
|
||
</div>
|
||
) : null}
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={clearPick}
|
||
aria-label="Clear preview selection"
|
||
style={{
|
||
flexShrink: 0,
|
||
background: "none",
|
||
border: "none",
|
||
padding: 2,
|
||
cursor: "pointer",
|
||
borderRadius: 4,
|
||
color: "#4338ca",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
>
|
||
<X style={{ width: 13, height: 13 }} />
|
||
</button>
|
||
</div>
|
||
) : null;
|
||
|
||
const selectToggle = (
|
||
<button
|
||
type="button"
|
||
aria-pressed={selectMode}
|
||
aria-label={
|
||
selectMode ? "Exit preview select mode" : "Select element from preview"
|
||
}
|
||
title={
|
||
selectMode
|
||
? "Click preview to choose an element"
|
||
: "Choose element from preview"
|
||
}
|
||
onClick={() => setSelectMode(!selectMode)}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
border: selectMode ? "1px solid #6366f1" : "1px solid #e8e4dc",
|
||
background: selectMode ? "#eef2ff" : "#faf8f5",
|
||
color: selectMode ? "#4338ca" : "#6b6560",
|
||
cursor: "pointer",
|
||
}}
|
||
>
|
||
<MousePointerClick style={{ width: 15, height: 15 }} strokeWidth={2} />
|
||
</button>
|
||
);
|
||
|
||
return (
|
||
<>
|
||
{chip}
|
||
{children(selectToggle)}
|
||
</>
|
||
);
|
||
}
|
||
|
||
export function ChatPanel({
|
||
structural = false,
|
||
artifactSlot,
|
||
}: ChatPanelProps = {}) {
|
||
const { data: sessionData, status } = useSession();
|
||
const params = useParams();
|
||
const pathname = usePathname() ?? "";
|
||
const workspace = (params?.workspace as string) || "";
|
||
// When the user is on a /project/<id>/* route, scope the chat to
|
||
// that project. The threads list, the new-thread create call, and
|
||
// the system prompt all branch on this; the chat header surfaces it
|
||
// so the user knows the AI is "talking about" the right thing.
|
||
const projectId = (params?.projectId as string) || "";
|
||
/** Full project shell (chat | artifact); must render even while auth is loading or signed out. */
|
||
const unifiedProjectShell =
|
||
structural && Boolean(projectId) && artifactSlot !== undefined;
|
||
const [activeProjectName, setActiveProjectName] = useState<string | null>(
|
||
null,
|
||
);
|
||
|
||
const [open, setOpen] = useState(() => {
|
||
// Structural mode is always-open by definition — the panel IS the
|
||
// column, there's no "closed" state to persist.
|
||
if (structural) return true;
|
||
if (typeof window === "undefined") return false;
|
||
return localStorage.getItem("vibn-chat-open") !== "false";
|
||
});
|
||
const [threads, setThreads] = useState<Thread[]>([]);
|
||
// threadsLoaded flips to true after the FIRST loadThreads() resolves.
|
||
// Used to gate the auto-create effect — without it we race the fetch
|
||
// and spawn an empty thread before history loads.
|
||
const [threadsLoaded, setThreadsLoaded] = useState(false);
|
||
const [activeThread, setActiveThread] = useState<string | null>(null);
|
||
const [messages, setMessages] = useState<Message[]>([]);
|
||
const [input, setInput] = useState("");
|
||
const [sending, setSending] = useState(false);
|
||
const [showThreads, setShowThreads] = useState(false);
|
||
const [mcpToken, setMcpToken] = useState<string | null>(null);
|
||
const messagesEndRef = useRef<HTMLDivElement>(null);
|
||
const inputRef = useRef<HTMLTextAreaElement>(null);
|
||
// AbortController for the in-flight /api/chat fetch. Lives in a ref
|
||
// so the Stop button can reach it without re-rendering on every
|
||
// streaming chunk.
|
||
const abortRef = useRef<AbortController | null>(null);
|
||
|
||
const scrollToBottom = useCallback(() => {
|
||
messagesEndRef.current?.scrollIntoView({ behavior: "smooth" });
|
||
}, []);
|
||
|
||
// Persist open state + adjust main content margin
|
||
useEffect(() => {
|
||
if (structural) return;
|
||
localStorage.setItem("vibn-chat-open", String(open));
|
||
document.documentElement.style.setProperty(
|
||
"--chat-panel-width",
|
||
open ? "380px" : "0px",
|
||
);
|
||
}, [open, structural]);
|
||
|
||
// Load MCP token — prefer localStorage cache, fetch from API if missing.
|
||
// We use /api/workspaces (not the URL param) because the URL slug
|
||
// (e.g. "mark-account") differs from the actual workspace slug ("mark").
|
||
useEffect(() => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
const cached = localStorage.getItem(`vibn-mcp-token-${workspace}`);
|
||
if (cached) {
|
||
setMcpToken(cached);
|
||
return;
|
||
}
|
||
fetch("/api/workspaces?include_default_token=true")
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (d?.defaultToken) {
|
||
localStorage.setItem(`vibn-mcp-token-${workspace}`, d.defaultToken);
|
||
setMcpToken(d.defaultToken);
|
||
}
|
||
})
|
||
.catch(() => {});
|
||
}, [workspace, status]);
|
||
|
||
// Load threads (scoped to the current project when one is in the URL).
|
||
// Reset the loaded flag when projectId changes so the resume effect
|
||
// re-runs against the correct list and doesn't restore a thread from
|
||
// the previous project.
|
||
const loadThreads = useCallback(async () => {
|
||
if (!workspace || status !== "authenticated") return;
|
||
try {
|
||
const qs = new URLSearchParams({ workspace });
|
||
if (projectId) qs.set("projectId", projectId);
|
||
const res = await fetch(`/api/chat/threads?${qs.toString()}`);
|
||
const data = await res.json();
|
||
setThreads(data.threads || []);
|
||
} catch {
|
||
/* silent */
|
||
} finally {
|
||
setThreadsLoaded(true);
|
||
}
|
||
}, [workspace, projectId, status]);
|
||
|
||
useEffect(() => {
|
||
setThreadsLoaded(false);
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
// Clear the threads array immediately so the resume effect doesn't
|
||
// race the loadThreads() fetch and resume a stale project-scoped
|
||
// thread when the user navigates from /project/X back to /projects.
|
||
setThreads([]);
|
||
loadThreads();
|
||
}, [loadThreads, projectId]);
|
||
|
||
// Look up the active project's display name once we have a projectId,
|
||
// so the chat header can show "Talking about: <name>".
|
||
useEffect(() => {
|
||
if (!projectId) {
|
||
setActiveProjectName(null);
|
||
return;
|
||
}
|
||
let cancelled = false;
|
||
fetch(`/api/projects/${projectId}/anatomy`, { credentials: "include" })
|
||
.then((r) => (r.ok ? r.json() : null))
|
||
.then((d) => {
|
||
if (cancelled) return;
|
||
const name = d?.project?.name;
|
||
if (name) setActiveProjectName(name);
|
||
})
|
||
.catch(() => {});
|
||
return () => {
|
||
cancelled = true;
|
||
};
|
||
}, [projectId]);
|
||
|
||
// Create and activate a new thread (tagged to the active project, if any).
|
||
const newThread = useCallback(async () => {
|
||
try {
|
||
const res = await fetch("/api/chat/threads", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ workspace, projectId: projectId || undefined }),
|
||
});
|
||
const data = await res.json();
|
||
if (data.thread) {
|
||
setThreads((prev) => [data.thread, ...prev]);
|
||
setActiveThread(data.thread.id);
|
||
setMessages([]);
|
||
setShowThreads(false);
|
||
}
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, [workspace, projectId]);
|
||
|
||
// Load thread messages
|
||
const loadThread = useCallback(async (id: string) => {
|
||
setActiveThread(id);
|
||
setShowThreads(false);
|
||
setMessages([]);
|
||
try {
|
||
const res = await fetch(`/api/chat/threads/${id}`);
|
||
const data = await res.json();
|
||
// Hydrate the timeline from persisted textSegments + toolCalls
|
||
// so a reloaded thread renders the same per-round bubbles the
|
||
// user saw during streaming. Older messages without
|
||
// textSegments fall back to the legacy single-bubble path.
|
||
const hydrated = (data.messages || []).map((m: any) => {
|
||
if (m.role !== "assistant") return m;
|
||
const segs: string[] = Array.isArray(m.textSegments)
|
||
? m.textSegments
|
||
: [];
|
||
if (segs.length === 0) return m;
|
||
const timeline: TimelineEntry[] = segs.map((t) => ({
|
||
kind: "text",
|
||
text: t,
|
||
}));
|
||
// We don't have round-level interleaving for tool calls in
|
||
// the persisted shape (the schema flattens them), so we drop
|
||
// the toolCalls into the timeline at the end. The streamed
|
||
// shape preserves true ordering; this is just a reload
|
||
// approximation. Good enough — what the user really cares
|
||
// about is the text segments not run-on'ing into one blob.
|
||
if (Array.isArray(m.toolCalls)) {
|
||
for (const tc of m.toolCalls) {
|
||
timeline.push({ kind: "tool", name: tc.name, status: "done" });
|
||
}
|
||
}
|
||
return { ...m, timeline, content: "" };
|
||
});
|
||
setMessages(hydrated);
|
||
} catch {
|
||
/* silent */
|
||
}
|
||
}, []);
|
||
|
||
// Auto-resume previous thread (or create a fresh one if the user has
|
||
// never chatted in this workspace). We MUST wait for threadsLoaded
|
||
// before deciding — otherwise we race the fetch and spawn an empty
|
||
// thread before history arrives. Last-active thread is restored from
|
||
// localStorage so a page reload (deploy, refresh) lands the user back
|
||
// in the conversation they were in.
|
||
useEffect(() => {
|
||
if (!open || status !== "authenticated" || !workspace) return;
|
||
if (!threadsLoaded) return;
|
||
if (activeThread) return;
|
||
|
||
if (threads.length === 0) {
|
||
newThread();
|
||
return;
|
||
}
|
||
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
const saved =
|
||
typeof window !== "undefined" ? localStorage.getItem(savedKey) : null;
|
||
const target =
|
||
saved && threads.some((t) => t.id === saved) ? saved : threads[0].id;
|
||
loadThread(target);
|
||
}, [
|
||
open,
|
||
status,
|
||
workspace,
|
||
projectId,
|
||
threadsLoaded,
|
||
threads,
|
||
activeThread,
|
||
newThread,
|
||
loadThread,
|
||
]);
|
||
|
||
// Persist active thread so reload re-opens the same conversation,
|
||
// keyed per-project so each project has its own "last conversation".
|
||
useEffect(() => {
|
||
if (typeof window === "undefined" || !workspace) return;
|
||
const scopeKey = projectId ? `${workspace}:${projectId}` : workspace;
|
||
const savedKey = `vibn-chat-active-thread:${scopeKey}`;
|
||
if (activeThread) localStorage.setItem(savedKey, activeThread);
|
||
}, [activeThread, workspace, projectId]);
|
||
|
||
useEffect(() => {
|
||
scrollToBottom();
|
||
}, [messages, scrollToBottom]);
|
||
|
||
const deleteThread = useCallback(
|
||
async (id: string, e: React.MouseEvent) => {
|
||
e.stopPropagation();
|
||
await fetch(`/api/chat/threads/${id}`, { method: "DELETE" });
|
||
setThreads((prev) => prev.filter((t) => t.id !== id));
|
||
if (activeThread === id) {
|
||
setActiveThread(null);
|
||
setMessages([]);
|
||
}
|
||
loadThreads();
|
||
},
|
||
[activeThread, loadThreads],
|
||
);
|
||
|
||
const sendMessage = useCallback(
|
||
async (override?: string) => {
|
||
let raw = (override ?? input).trim();
|
||
if (!raw || sending || !activeThread) return;
|
||
if (unifiedProjectShell && previewMessagePrepRef.current) {
|
||
raw = previewMessagePrepRef.current(raw);
|
||
}
|
||
const text = raw;
|
||
if (!override) setInput("");
|
||
setSending(true);
|
||
|
||
const userMsg: Message = { role: "user", content: text };
|
||
setMessages((prev) => [...prev, userMsg]);
|
||
|
||
let assistantContent = "";
|
||
const assistantMsg: Message = { role: "assistant", content: "" };
|
||
let msgIndex = -1;
|
||
|
||
const controller = new AbortController();
|
||
abortRef.current = controller;
|
||
|
||
try {
|
||
const res = await fetch("/api/chat", {
|
||
method: "POST",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({
|
||
thread_id: activeThread,
|
||
message: text,
|
||
workspace,
|
||
mcp_token: mcpToken,
|
||
}),
|
||
signal: controller.signal,
|
||
});
|
||
|
||
if (!res.ok || !res.body) throw new Error("Stream failed");
|
||
|
||
const reader = res.body.getReader();
|
||
const decoder = new TextDecoder();
|
||
let buf = "";
|
||
|
||
setMessages((prev) => {
|
||
msgIndex = prev.length;
|
||
return [...prev, { ...assistantMsg }];
|
||
});
|
||
|
||
while (true) {
|
||
const { done, value } = await reader.read();
|
||
if (done) break;
|
||
buf += decoder.decode(value, { stream: true });
|
||
|
||
const lines = buf.split("\n");
|
||
buf = lines.pop() ?? "";
|
||
|
||
for (const line of lines) {
|
||
if (!line.startsWith("data: ")) continue;
|
||
let ev: any;
|
||
try {
|
||
ev = JSON.parse(line.slice(6));
|
||
} catch {
|
||
continue;
|
||
}
|
||
|
||
if (ev.type === "text" && ev.text) {
|
||
// Each text SSE event = one round of the model's text
|
||
// output. Push a new "text" timeline entry so the
|
||
// renderer can show multi-round turns as separate
|
||
// bubbles instead of one run-on paragraph. We still
|
||
// maintain `assistantContent` (joined with blank lines)
|
||
// so the legacy single-bubble fallback path and any
|
||
// post-stream consumers still work.
|
||
assistantContent += (assistantContent ? "\n\n" : "") + ev.text;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
// Don't write to msg.content during streaming —
|
||
// the timeline is the source of truth. Setting
|
||
// content on every text event re-renders one
|
||
// giant bubble in the bottom slot AND the
|
||
// segmented timeline above it, duplicating the
|
||
// same prose. Persisted messages pick up
|
||
// content via the final flush below.
|
||
timeline: [...tl, { kind: "text", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "thinking" && ev.text) {
|
||
// Each thinking event from the server is one round of the
|
||
// model's reasoning. Push as a separate timeline entry so
|
||
// the renderer can show it as its own collapsed pill —
|
||
// 12 rounds become 12 small pills the user can each
|
||
// expand independently, not one giant blob.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "thought", text: ev.text }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_start") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [
|
||
...tl,
|
||
{ kind: "tool", name: ev.name, status: "running" },
|
||
],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "tool_result") {
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
// Walk backward to the most recent matching running
|
||
// tool entry and mark it done. Avoids cross-matching
|
||
// earlier same-named entries.
|
||
let updated = false;
|
||
const newTl: TimelineEntry[] = [];
|
||
for (let i = tl.length - 1; i >= 0; i--) {
|
||
const e = tl[i];
|
||
if (
|
||
!updated &&
|
||
e.kind === "tool" &&
|
||
e.name === ev.name &&
|
||
e.status === "running"
|
||
) {
|
||
newTl.unshift({
|
||
...e,
|
||
status: "done",
|
||
result: ev.result,
|
||
});
|
||
updated = true;
|
||
} else {
|
||
newTl.unshift(e);
|
||
}
|
||
}
|
||
next[msgIndex] = { ...next[msgIndex], timeline: newTl };
|
||
}
|
||
return next;
|
||
});
|
||
} else if (ev.type === "error") {
|
||
const errText = ev.error || "Unknown error";
|
||
const isToolErr = /tool|mcp|coolify|gitea/i.test(errText);
|
||
const errBubble = isToolErr
|
||
? `⚠️ **Tool error:** ${errText}`
|
||
: `⚠️ ${errText}`;
|
||
assistantContent += (assistantContent ? "\n\n" : "") + errBubble;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
const tl = next[msgIndex].timeline ?? [];
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
timeline: [...tl, { kind: "text", text: errBubble }],
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
// Auto-title thread from first message
|
||
const thisThread = threads.find((t) => t.id === activeThread);
|
||
if (thisThread?.title === "New conversation") {
|
||
const title = text.slice(0, 50);
|
||
await fetch(`/api/chat/threads/${activeThread}`, {
|
||
method: "PATCH",
|
||
headers: { "Content-Type": "application/json" },
|
||
body: JSON.stringify({ title }),
|
||
});
|
||
setThreads((prev) =>
|
||
prev.map((t) => (t.id === activeThread ? { ...t, title } : t)),
|
||
);
|
||
}
|
||
|
||
loadThreads();
|
||
} catch (e) {
|
||
const isAbort = e instanceof DOMException && e.name === "AbortError";
|
||
if (isAbort) {
|
||
// Server-side will have appended "(stopped by user)" to the
|
||
// partial response and persisted it. We just need to make
|
||
// sure the local UI reflects whatever streamed in before the
|
||
// user clicked Stop — which it already does, because we've
|
||
// been mutating `messages[msgIndex]` chunk-by-chunk above.
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (
|
||
msgIndex >= 0 &&
|
||
next[msgIndex] &&
|
||
!next[msgIndex].content.includes("(stopped by user)")
|
||
) {
|
||
next[msgIndex] = {
|
||
...next[msgIndex],
|
||
content:
|
||
(next[msgIndex].content || "") + "\n\n_(stopped by user)_",
|
||
};
|
||
}
|
||
return next;
|
||
});
|
||
} else {
|
||
const errMsg = e instanceof Error ? e.message : String(e);
|
||
const isNetwork = /fetch|network|failed to fetch/i.test(errMsg);
|
||
const friendlyError = isNetwork
|
||
? "⚠️ Network error — check your connection and try again."
|
||
: `⚠️ Something went wrong: ${errMsg.slice(0, 200)}\n\nYou can try again or start a new message.`;
|
||
setMessages((prev) => {
|
||
const next = [...prev];
|
||
if (msgIndex >= 0 && next[msgIndex]) {
|
||
next[msgIndex] = { ...next[msgIndex], content: friendlyError };
|
||
}
|
||
return next;
|
||
});
|
||
}
|
||
} finally {
|
||
abortRef.current = null;
|
||
setSending(false);
|
||
}
|
||
},
|
||
[
|
||
input,
|
||
sending,
|
||
activeThread,
|
||
workspace,
|
||
mcpToken,
|
||
threads,
|
||
loadThreads,
|
||
unifiedProjectShell,
|
||
],
|
||
);
|
||
|
||
const cancelMessage = useCallback(() => {
|
||
abortRef.current?.abort();
|
||
}, []);
|
||
|
||
// External components (e.g. ProjectHeaderUrls' "Start preview" button)
|
||
// can ask the chat to send a canned prompt without prop-drilling. Open
|
||
// the panel if collapsed, then fire the prompt as if the user typed it.
|
||
useEffect(() => {
|
||
function onPrompt(e: Event) {
|
||
const ce = e as CustomEvent<{ prompt?: string; scopeProjectId?: string }>;
|
||
const prompt = ce.detail?.prompt;
|
||
if (!prompt) return;
|
||
// If the dispatcher scopes the prompt to a specific project, only
|
||
// accept it when the chat panel is currently bound to that project.
|
||
// Prevents a "Start preview on Manifest" click from accidentally
|
||
// landing in a chat that's scoped to a different project.
|
||
if (ce.detail?.scopeProjectId && ce.detail.scopeProjectId !== projectId) {
|
||
return;
|
||
}
|
||
setOpen(true);
|
||
void sendMessage(prompt);
|
||
}
|
||
window.addEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
return () =>
|
||
window.removeEventListener("vibn:chat-prompt", onPrompt as EventListener);
|
||
}, [sendMessage, projectId]);
|
||
|
||
const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {
|
||
if (e.key === "Enter" && !e.shiftKey) {
|
||
e.preventDefault();
|
||
sendMessage();
|
||
} else if (e.key === "Escape" && sending) {
|
||
e.preventDefault();
|
||
cancelMessage();
|
||
}
|
||
};
|
||
|
||
// Slide-out chat hidden until signed in. Structural project shell always
|
||
// mounts so Preview / Product / Plan pages render; chat column shows loading
|
||
// or sign-in instead of wiping the whole viewport (blank page).
|
||
if (!unifiedProjectShell && status !== "authenticated") return null;
|
||
|
||
// ── Collapsed tab ──────────────────────────────────────────────────────────
|
||
// Structural mode is always-open; skip the collapsed-tab branch entirely.
|
||
if (!open && !structural) {
|
||
return (
|
||
<button
|
||
onClick={() => setOpen(true)}
|
||
style={{
|
||
position: "fixed",
|
||
right: 0,
|
||
top: "50%",
|
||
transform: "translateY(-50%)",
|
||
zIndex: 1000,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
border: "none",
|
||
borderRadius: "8px 0 0 8px",
|
||
padding: "14px 10px",
|
||
cursor: "pointer",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
boxShadow: "-2px 0 12px #1a1a1a14",
|
||
}}
|
||
title="Open Vibn AI"
|
||
>
|
||
<MessageSquare style={{ width: 16, height: 16 }} />
|
||
<span
|
||
style={{
|
||
writingMode: "vertical-rl",
|
||
textOrientation: "mixed",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.08em",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
transform: "rotate(180deg)",
|
||
}}
|
||
>
|
||
VIBN AI
|
||
</span>
|
||
</button>
|
||
);
|
||
}
|
||
|
||
const conversationColumn = (
|
||
<>
|
||
{/* Thread list dropdown */}
|
||
{showThreads && (
|
||
<div
|
||
style={{
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
maxHeight: 200,
|
||
overflowY: "auto",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{threads.length === 0 && (
|
||
<div
|
||
style={{
|
||
padding: "12px 16px",
|
||
fontSize: "0.78rem",
|
||
color: "#a09a90",
|
||
}}
|
||
>
|
||
No conversations yet
|
||
</div>
|
||
)}
|
||
{threads.map((t) => (
|
||
<div
|
||
key={t.id}
|
||
onClick={() => loadThread(t.id)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "9px 16px",
|
||
background: activeThread === t.id ? "#f0ede8" : "transparent",
|
||
cursor: "pointer",
|
||
borderBottom: "1px solid #f0ede8",
|
||
}}
|
||
onMouseEnter={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "#f7f4ef";
|
||
}}
|
||
onMouseLeave={(e) => {
|
||
if (activeThread !== t.id)
|
||
e.currentTarget.style.background = "transparent";
|
||
}}
|
||
>
|
||
<div style={{ minWidth: 0 }}>
|
||
<div
|
||
style={{
|
||
fontSize: "0.8rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
{t.title}
|
||
</div>
|
||
<div style={{ fontSize: "0.7rem", color: "#a09a90" }}>
|
||
{timeAgo(t.updatedAt)}
|
||
</div>
|
||
</div>
|
||
<button
|
||
onClick={(e) => deleteThread(t.id, e)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
color: "#c0bab2",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<Trash2 style={{ width: 12, height: 12 }} />
|
||
</button>
|
||
</div>
|
||
))}
|
||
</div>
|
||
)}
|
||
|
||
{/* Messages */}
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
overflowY: "auto",
|
||
overflowX: "hidden",
|
||
padding: "16px 14px",
|
||
}}
|
||
>
|
||
{messages.length === 0 && !sending && (
|
||
<div
|
||
style={{ padding: "24px 14px", maxWidth: 640, margin: "0 auto" }}
|
||
>
|
||
<div style={{ display: "flex", gap: 12 }}>
|
||
<div
|
||
style={{
|
||
width: 28,
|
||
height: 28,
|
||
borderRadius: 6,
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
color: "#fff",
|
||
fontSize: "0.85rem",
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</div>
|
||
<div
|
||
style={{
|
||
background: "#fff",
|
||
border: "1px solid #e8e4dc",
|
||
padding: "14px 18px",
|
||
borderRadius: "0 12px 12px 12px",
|
||
fontSize: "0.9rem",
|
||
color: "#1a1a1a",
|
||
lineHeight: 1.6,
|
||
boxShadow: "0 1px 2px #1a1a1a05",
|
||
maxWidth: "85%",
|
||
}}
|
||
>
|
||
Welcome to {activeProjectName ? activeProjectName : "Vibn"}!
|
||
Tell me what you want to build and I'll scaffold it, run it in a
|
||
preview, and ship it when you say so.
|
||
</div>
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{messages.map((msg, i) => (
|
||
<MessageBubble key={msg.id || i} msg={msg} />
|
||
))}
|
||
|
||
{sending && messages[messages.length - 1]?.role !== "assistant" && (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
padding: "6px 0",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 24,
|
||
height: 24,
|
||
borderRadius: "50%",
|
||
background: "#1a1a1a",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
color: "#fff",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 700,
|
||
fontFamily: "var(--font-lora),serif",
|
||
}}
|
||
>
|
||
V
|
||
</span>
|
||
</div>
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
{[0, 1, 2].map((i) => (
|
||
<span
|
||
key={i}
|
||
style={{
|
||
width: 6,
|
||
height: 6,
|
||
borderRadius: "50%",
|
||
background: "#c0bab2",
|
||
animation: `vibn-bounce 1.2s ease infinite ${i * 0.2}s`,
|
||
display: "inline-block",
|
||
}}
|
||
/>
|
||
))}
|
||
</div>
|
||
</div>
|
||
)}
|
||
|
||
{/* The active thinking status cycle */}
|
||
{sending && (
|
||
<div
|
||
style={{
|
||
alignSelf: "flex-start",
|
||
marginBottom: 12,
|
||
paddingLeft: 4,
|
||
}}
|
||
>
|
||
<ActiveThinkingIndicator />
|
||
</div>
|
||
)}
|
||
|
||
<div ref={messagesEndRef} />
|
||
</div>
|
||
|
||
{/* Input */}
|
||
<div
|
||
style={{
|
||
padding: "12px 14px",
|
||
borderTop: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}}
|
||
>
|
||
{!mcpToken && (
|
||
<div
|
||
style={{
|
||
fontSize: "0.7rem",
|
||
color: "#9a7b3a",
|
||
background: "#d4a04a12",
|
||
border: "1px solid #d4a04a30",
|
||
borderRadius: 6,
|
||
padding: "5px 10px",
|
||
marginBottom: 8,
|
||
lineHeight: 1.4,
|
||
}}
|
||
>
|
||
Read-only mode — add your MCP token in Settings to enable actions.
|
||
</div>
|
||
)}
|
||
<ProjectPreviewChatInputWrap unifiedShell={unifiedProjectShell}>
|
||
{(selectToggle) => (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
gap: 8,
|
||
alignItems: "center",
|
||
background: "#fff",
|
||
borderRadius: 10,
|
||
border: "1px solid #e8e4dc",
|
||
padding: "8px 10px",
|
||
boxShadow: "0 1px 3px #1a1a1a05",
|
||
}}
|
||
>
|
||
<textarea
|
||
ref={inputRef}
|
||
value={input}
|
||
onChange={(e) => setInput(e.target.value)}
|
||
onKeyDown={handleKeyDown}
|
||
placeholder={
|
||
sending ? "Esc to stop generating…" : "Ask Vibn AI anything…"
|
||
}
|
||
rows={4}
|
||
disabled={!activeThread}
|
||
style={{
|
||
flex: 1,
|
||
border: "none",
|
||
outline: "none",
|
||
background: "transparent",
|
||
fontSize: "0.84rem",
|
||
lineHeight: 1.5,
|
||
resize: "none",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
color: "#1a1a1a",
|
||
minHeight: "80px",
|
||
maxHeight: 180,
|
||
overflowY: "auto",
|
||
}}
|
||
onInput={(e) => {
|
||
const el = e.currentTarget;
|
||
el.style.height = "auto";
|
||
el.style.height = Math.min(el.scrollHeight, 120) + "px";
|
||
}}
|
||
/>
|
||
{selectToggle}
|
||
{(() => {
|
||
// While the AI is streaming or running tools, the button
|
||
// turns into a Stop control. Click → AbortController fires,
|
||
// server bails between rounds, partial text gets persisted.
|
||
const isActive = sending;
|
||
const canSend = !sending && input.trim() && activeThread;
|
||
return (
|
||
<button
|
||
type="button"
|
||
onClick={isActive ? cancelMessage : () => sendMessage()}
|
||
disabled={!isActive && !canSend}
|
||
aria-label={isActive ? "Stop generating" : "Send message"}
|
||
title={isActive ? "Stop generating (Esc)" : "Send"}
|
||
style={{
|
||
...COMPOSER_ACTION_BTN_BASE,
|
||
background: isActive
|
||
? "#1a1a1a"
|
||
: canSend
|
||
? "#1a1a1a"
|
||
: "#e8e4dc",
|
||
color: isActive || canSend ? "#fff" : "#a09a90",
|
||
border: "none",
|
||
cursor: isActive || canSend ? "pointer" : "default",
|
||
transition: "all 0.15s",
|
||
position: "relative",
|
||
}}
|
||
>
|
||
{isActive ? (
|
||
<>
|
||
<Loader2
|
||
style={{
|
||
width: 15,
|
||
height: 15,
|
||
position: "absolute",
|
||
opacity: 0.35,
|
||
}}
|
||
className="animate-spin"
|
||
/>
|
||
<Square
|
||
style={{
|
||
width: 9,
|
||
height: 9,
|
||
fill: "#fff",
|
||
strokeWidth: 0,
|
||
}}
|
||
/>
|
||
</>
|
||
) : (
|
||
<Send style={{ width: 15, height: 15 }} />
|
||
)}
|
||
</button>
|
||
);
|
||
})()}
|
||
</div>
|
||
)}
|
||
</ProjectPreviewChatInputWrap>
|
||
</div>
|
||
</>
|
||
);
|
||
|
||
const structuralChatLoadingColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 14,
|
||
}}
|
||
>
|
||
<Loader2
|
||
className="animate-spin"
|
||
style={{ width: 22, height: 22, color: "#9c9590" }}
|
||
/>
|
||
<p style={{ fontSize: "0.84rem", color: "#6b6560", margin: 0 }}>
|
||
Signing you in…
|
||
</p>
|
||
</div>
|
||
);
|
||
|
||
const authHref = pathname
|
||
? `/auth?callbackUrl=${encodeURIComponent(pathname)}`
|
||
: "/auth";
|
||
|
||
const structuralChatSignedOutColumn = (
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
alignItems: "center",
|
||
justifyContent: "center",
|
||
padding: 24,
|
||
gap: 12,
|
||
}}
|
||
>
|
||
<p
|
||
style={{
|
||
fontSize: "0.88rem",
|
||
fontWeight: 500,
|
||
color: "#1a1a1a",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
}}
|
||
>
|
||
Sign in to use Vibn AI
|
||
</p>
|
||
<p
|
||
style={{
|
||
fontSize: "0.76rem",
|
||
color: "#a09a90",
|
||
margin: 0,
|
||
textAlign: "center",
|
||
maxWidth: 260,
|
||
lineHeight: 1.5,
|
||
}}
|
||
>
|
||
Preview and tabs still work here. Chat needs an account.
|
||
</p>
|
||
<Link
|
||
href={authHref}
|
||
style={{
|
||
marginTop: 4,
|
||
padding: "10px 18px",
|
||
borderRadius: 10,
|
||
background: "#1a1a1a",
|
||
color: "#fff",
|
||
fontSize: "0.82rem",
|
||
fontWeight: 500,
|
||
textDecoration: "none",
|
||
}}
|
||
>
|
||
Sign in
|
||
</Link>
|
||
</div>
|
||
);
|
||
|
||
const structuralChatBody =
|
||
status === "loading"
|
||
? structuralChatLoadingColumn
|
||
: status !== "authenticated"
|
||
? structuralChatSignedOutColumn
|
||
: conversationColumn;
|
||
|
||
if (unifiedProjectShell) {
|
||
return (
|
||
<>
|
||
<PreviewBridgeProvider>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
background: "#fff",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
alignItems: "stretch",
|
||
flexShrink: 0,
|
||
height: 48,
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
boxSizing: "border-box",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
height: "100%",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
padding: "0 12px",
|
||
gap: 6,
|
||
boxSizing: "border-box",
|
||
borderRight: "1px solid #e8e4dc",
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
width: "100%",
|
||
gap: 6,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 5px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus style={{ width: 14, height: 14 }} />
|
||
</button>
|
||
</div>
|
||
</div>
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
display: "flex",
|
||
alignItems: "stretch",
|
||
}}
|
||
>
|
||
<ProjectIconRail workspace={workspace} projectId={projectId} />
|
||
</div>
|
||
</div>
|
||
|
||
<div
|
||
style={{
|
||
flex: 1,
|
||
display: "flex",
|
||
flexDirection: "row",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<div
|
||
style={{
|
||
width: 380,
|
||
flexShrink: 0,
|
||
borderRight: "1px solid #e8e4dc",
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
minHeight: 0,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{structuralChatBody}
|
||
</div>
|
||
<div
|
||
key={pathname}
|
||
style={{
|
||
flex: 1,
|
||
minWidth: 0,
|
||
minHeight: 0,
|
||
overflow: "auto",
|
||
background: "#faf8f5",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
}}
|
||
>
|
||
{artifactSlot}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</PreviewBridgeProvider>
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</>
|
||
);
|
||
}
|
||
|
||
// ── Open panel ─────────────────────────────────────────────────────────────
|
||
// Structural mode: fill the parent column. Default mode: fixed slide-out
|
||
// anchored to the right edge of the viewport (legacy behavior).
|
||
return (
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
flex: 1,
|
||
minHeight: 0,
|
||
background: "#fff",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
: {
|
||
position: "fixed",
|
||
right: 0,
|
||
top: 0,
|
||
bottom: 0,
|
||
zIndex: 999,
|
||
width: 380,
|
||
background: "#fff",
|
||
borderLeft: "1px solid #e8e4dc",
|
||
display: "flex",
|
||
flexDirection: "column",
|
||
boxShadow: "-4px 0 24px #1a1a1a08",
|
||
fontFamily: "var(--font-inter),ui-sans-serif,sans-serif",
|
||
}
|
||
}
|
||
>
|
||
{/* Header — structural: circle logo + threads; slide-out: wordmark */}
|
||
<div
|
||
style={
|
||
structural
|
||
? {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
height: 48,
|
||
padding: "0 12px",
|
||
boxSizing: "border-box",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
gap: 6,
|
||
}
|
||
: {
|
||
display: "flex",
|
||
alignItems: "center",
|
||
justifyContent: "space-between",
|
||
padding: "14px 16px",
|
||
borderBottom: "1px solid #e8e4dc",
|
||
background: "#faf8f5",
|
||
flexShrink: 0,
|
||
}
|
||
}
|
||
>
|
||
{structural ? (
|
||
<div
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 8,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
{workspace ? (
|
||
<Link
|
||
href={`/${workspace}/projects`}
|
||
title="All projects"
|
||
style={{ flexShrink: 0, display: "flex" }}
|
||
>
|
||
<img
|
||
src="/vibn-black-circle-logo.png"
|
||
alt="VIBN"
|
||
width={26}
|
||
height={26}
|
||
style={{
|
||
borderRadius: 7,
|
||
objectFit: "cover",
|
||
display: "block",
|
||
}}
|
||
/>
|
||
</Link>
|
||
) : null}
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
aria-label="Conversations"
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 4,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "2px 4px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<ChevronDown
|
||
style={{
|
||
width: 12,
|
||
height: 12,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 4,
|
||
padding: "1px 6px",
|
||
fontSize: "0.6rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 140,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
</div>
|
||
) : (
|
||
<button
|
||
type="button"
|
||
onClick={() => setShowThreads((v) => !v)}
|
||
style={{
|
||
display: "flex",
|
||
alignItems: "center",
|
||
gap: 6,
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "4px 6px",
|
||
borderRadius: 6,
|
||
minWidth: 0,
|
||
}}
|
||
>
|
||
<span
|
||
style={{
|
||
fontFamily: "var(--font-lora),serif",
|
||
fontSize: "0.95rem",
|
||
fontWeight: 400,
|
||
color: "#1a1a1a",
|
||
letterSpacing: "-0.01em",
|
||
whiteSpace: "nowrap",
|
||
}}
|
||
>
|
||
Vibn AI
|
||
</span>
|
||
<ChevronDown
|
||
style={{
|
||
width: 13,
|
||
height: 13,
|
||
color: "#a09a90",
|
||
transition: "transform 0.15s",
|
||
flexShrink: 0,
|
||
transform: showThreads ? "rotate(180deg)" : "none",
|
||
}}
|
||
/>
|
||
{projectId && (
|
||
<span
|
||
title={`Chat is scoped to ${activeProjectName ?? "this project"}. Tool calls assume projectId=${projectId}.`}
|
||
style={{
|
||
marginLeft: 6,
|
||
padding: "2px 8px",
|
||
fontSize: "0.65rem",
|
||
fontWeight: 600,
|
||
letterSpacing: "0.02em",
|
||
color: "#3d5afe",
|
||
background: "#3d5afe14",
|
||
borderRadius: 999,
|
||
maxWidth: 160,
|
||
whiteSpace: "nowrap",
|
||
overflow: "hidden",
|
||
textOverflow: "ellipsis",
|
||
}}
|
||
>
|
||
▸ {activeProjectName ?? "this project"}
|
||
</span>
|
||
)}
|
||
</button>
|
||
)}
|
||
<div style={{ display: "flex", gap: 4 }}>
|
||
<button
|
||
type="button"
|
||
onClick={newThread}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: structural ? "4px 5px" : "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="New conversation"
|
||
>
|
||
<Plus
|
||
style={{
|
||
width: structural ? 14 : 15,
|
||
height: structural ? 14 : 15,
|
||
}}
|
||
/>
|
||
</button>
|
||
{!structural && (
|
||
<button
|
||
type="button"
|
||
onClick={() => setOpen(false)}
|
||
style={{
|
||
background: "none",
|
||
border: "none",
|
||
cursor: "pointer",
|
||
padding: "5px 6px",
|
||
borderRadius: 6,
|
||
color: "#6b6560",
|
||
display: "flex",
|
||
alignItems: "center",
|
||
}}
|
||
title="Close"
|
||
>
|
||
<ChevronRight style={{ width: 15, height: 15 }} />
|
||
</button>
|
||
)}
|
||
</div>
|
||
</div>
|
||
|
||
{conversationColumn}
|
||
|
||
<style>{`
|
||
@keyframes vibn-bounce {
|
||
0%, 60%, 100% { transform: translateY(0); }
|
||
30% { transform: translateY(-4px); }
|
||
}
|
||
`}</style>
|
||
</div>
|
||
);
|
||
}
|
||
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
Done! The input box is now 4 rows high by default (I also bumped up the `maxHeight` so it can expand a bit further if you paste a really long prompt before it starts scrolling).
|
||
|
||
## User
|
||
|
||
are we able to move the Desktop | Mobile buttons to be in the nav above, but on the far left.`Image`
|
||
|
||
**Tool Call: Search files for regex `Desktop`**
|
||
Status: Completed
|
||
|
||
Showing matches 1-20 (there were more matches found; use offset: 20 to see next page):
|
||
|
||
## Matches in master-ai/BETA_LAUNCH_PLAN.md
|
||
|
||
### # Beta Launch Execution Plan › ## Phase 6 — Artifact-first UX (Bolt parity, Vibn taste) › L185-195
|
||
```
|
||
| # | Task | Owner | Effort | Model | Notes |
|
||
|---|---|---|---|---|---|
|
||
| 6.A1 | **Two-pane structural refactor** — replace `app/[workspace]/project/[projectId]/(home)/layout.tsx` shell. Workspace sidebar (unchanged) → **main column**: horizontal icon bar (👁 / ⟨⟩ / … / ⚙) above a row of permanent chat ~380px + pure artifact pane. Bar spans full width above chat+content so the vertical strip does not steal horizontal space from the preview. Default view = Preview. Coordinates with existing `ProjectStagePill`, `ProjectAssociationPrompt`, `--chat-panel-width` CSS var (obsolete on project pages). | AI | 3 hrs | **opus** | Cross-cutting; touches layout, chat panel, header. Has to keep `ProjectHeaderUrls` working. |
|
||
| 6.A2 | **PreviewPane component** — iframe of `previewUrl || fqdn`, with empty-state placeholder ("Your preview will appear here" + Vibn V mark). Reads from `useAnatomy()`. Exports `kind: "preview"` rendered by 6.A1's right pane. | AI | 1 hr | opus-spec → cheap | Spec: read `anatomy.hosting.previews[0].url` first, fall back to `anatomy.hosting.live[0].fqdn`, fall back to placeholder. Same poll cadence as `ProjectHeaderUrls`. Iframe sandboxed with `allow-scripts allow-forms allow-same-origin allow-popups`. |
|
||
| 6.A3 | **Iframe chrome (artifact-local)** — top-right of the iframe: ↻ reload (force iframe `key` bump), ↗ open-in-new-tab, ⛶ fullscreen (toggles a panel-level `expanded` state that hides chat column), 📱 device-frame (desktop / tablet / mobile widths, persisted to localStorage per-project). | AI | 1 hr | cheap | Pure UI. Width tokens: desktop=100%, tablet=820px, mobile=390px. Frame is a CSS wrapper, not real device emulation. |
|
||
| 6.A4 | **Code view** — when ⟨⟩ is selected on the rail, render the existing `gitea-file-tree.tsx` + `gitea-file-viewer.tsx` in the right pane. Two-column inside the right pane: tree on the left, viewer on the right. | AI | 30 min | cheap | Components already exist; just compose them. Shared `selectedPath` state. |
|
||
| 6.A5 | **Resources view** — when 🗄 is selected, render the existing `database-table-tree.tsx` + `table-viewer.tsx` plus a small list of running services (from `anatomy.hosting.live[]` and `apps_containers_list`). | AI | 1 hr | cheap | Same wire-up pattern as 6.A4. |
|
||
| 6.B1 | **Persist last-known dev server config** — new table `fs_project_dev_servers (project_id PK, command, port, framework, last_started_at, status)`. Hook `dev_server_start` MCP tool to upsert on success; `dev_server_stop` to flip status. | AI | 1 hr | opus-spec → cheap | Spec: schema is `project_id UUID PK, command TEXT NOT NULL, port INT NOT NULL, framework TEXT, last_started_at TIMESTAMPTZ, status TEXT CHECK IN ('running','stopped','crashed')`. Migration in `lib/db-postgres-migrations.ts` pattern. Upsert in `lib/dev-server-manager.ts` (or wherever `dev_server_start` lives — find via `Grep`). |
|
||
| 6.B2 | **Auto-resume dev server on project page mount** — server-render hook on the new layout: if (a) saved server config exists AND (b) `getDevContainerStatus()` returns `running` or `provisioning` AND (c) no live preview already in `useAnatomy().hosting.previews[]` → fire the saved `dev_server_start` server-side BEFORE the page paints. User lands; preview is live. | AI | 2 hrs | **opus** | Risky if naive — could resume a server the user explicitly stopped, could thrash on idle-suspended containers, could race the existing on-mount `devcontainer_ensure`. Needs careful state-machine read. Idempotency comes from `dev_server_start` returning `alreadyRunning: true` when a process matches command+port. |
|
||
| 6.C1 | **SSE `plan` event protocol** — server emits `{ type: "plan", taskId, text, status: "queued"\|"in_progress"\|"done" }` whenever `plan_task_add` / `plan_task_complete` (or a new `plan_task_start`) MCP tool fires inside a chat turn. Coexists with existing `text` and `toolCall` events. | AI | 2 hrs | **opus** | Protocol design — has to handle ordering (plan event must land before the tool's `toolResult`), client-side reconciliation with `fs_projects.plan.tasks[]` on next page load (server is source of truth, SSE is a hot stream), and the case where the AI calls `plan_task_complete` for a task added in a prior turn. |
|
||
| 6.C2 | **Client TimelineEntry of `kind: "plan"`** — render a checklist with status circles (○ queued / ◐ in-progress / ● done) inside the assistant message timeline. Each new `plan` SSE event upserts by `taskId`. Ledger pattern matches the existing `kind: "text"` / `kind: "tool"` rendering in `chat-panel.tsx`. | AI | 1.5 hrs | opus-spec → cheap | Spec written into 6.C1's notes. Visual: indented under a "Plan" mini-header, same Outfit/Newsreader palette, status circles in `#a09a90` → `#3a3530` → `#1a1a1a`. |
|
||
```
|
||
|
||
5 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
### # Beta Launch Execution Plan › ## What we are *not* doing for beta › L285-286
|
||
```
|
||
- Mobile-responsive polish (desktop-first beta)
|
||
- Multi-region Coolify (single-host is fine for <50 users)
|
||
```
|
||
|
||
## Matches in master-ai/docs_archive/VIBN_PRD.md
|
||
|
||
### # vibn — Product Requirements Document › ## 6. Feature Requirements › ### 6.4 Explicitly Out of Scope (v1) › L239-249
|
||
```
|
||
| Feature | Reason excluded |
|
||
|---|---|
|
||
| Mobile app (iOS/Android) builder output | All v1 builds are web apps; native app generation is a later capability |
|
||
| Real-time multi-user collaboration on wizard | Single-user flow only in v1; collaboration is v2 |
|
||
| Self-hosting vibn itself (white-label) | Not offered in v1; Enterprise tier future consideration |
|
||
| AI voice/video generation | Out of scope; vibn generates text and code only |
|
||
| Direct Stripe Connect marketplace | Invoice workflow is manual export only in v1 |
|
||
| Custom AI model selection by users | Model routing is automatic; users do not choose models |
|
||
| Offline/desktop app | Web-only |
|
||
| HIPAA / SOC2 compliance | Out of scope for v1; required before any healthcare customers |
|
||
|
||
```
|
||
|
||
### # vibn — Product Requirements Document › ## 10. Non-Functional Requirements › ### Platform › L399-400
|
||
```
|
||
- **Primary:** Web (desktop browser) — Chrome, Safari, Firefox, Edge
|
||
- **Secondary:** Responsive mobile web for dashboard viewing (not wizard)
|
||
```
|
||
|
||
## Matches in master-ai/extracted-aaea190f-13f8-48fd-a9ac-c43d11d2c63c.txt
|
||
|
||
### L1-5
|
||
```
|
||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Babel={})}(this,function(e){"use strict";var t=Object.freeze({__proto__:null,get _call(){return cO},get _forceSetScope(){return yO},get _getQueueContexts(){return CO},get _resyncKey(){return RO},get _resyncList(){return jO},get _resyncParent(){return xO},get _resyncRemoved(){return wO},get call(){return dO},get isDenylisted(){return lO},get popContext(){return EO},get pushContext(){return SO},get requeue(){return AO},get requeueComputedKeyAndDecorators(){return kO},get resync(){return vO},get setContext(){return bO},get setKey(){return PO},get setScope(){return hO},get setup(){return TO},get skip(){return fO},get skipKey(){return gO},get stop(){return mO},get visit(){return pO}}),r=Object.freeze({__proto__:null,get DEFAULT_EXTENSIONS(){return qV},get File(){return lM},get buildExternalHelpers(){return BM},get createConfigItem(){return BW},get createConfigItemAsync(){return OW},get createConfigItemSync(){return NW},get getEnv(){return YM},get loadOptions(){return IW},get loadOptionsAsync(){return CW},get loadOptionsSync(){return _W},get loadPartialConfig(){return PW},get loadPartialConfigAsync(){return SW},get loadPartialConfigSync(){return TW},get parse(){return NV},get parseAsync(){return MV},get parseSync(){return BV},get resolvePlugin(){return LV},get resolvePreset(){return UV},get template(){return pj},get tokTypes(){return nR},get transform(){return EV},get transformAsync(){return TV},get transformFile(){return PV},get transformFileAsync(){return kV},get transformFileSync(){return AV},get transformFromAst(){return _V},get transformFromAstAsync(){return DV},get transformFromAstSync(){return IV},get transformSync(){return SV},get traverse(){return OO},get types(){return Jy},get version(){return FV}});function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,a=Array(t);r<t;r++)a[r]=e[r];return a}function n(e,t,r,a,n,s,o){try{var i=e[s](o),d=i.value}catch(e){return void r(e)}i.done?t(d):Promise.resolve(d).then(a,n)}function s(e){return function(){var t=this,r=arguments;return new Promise(function(a,s){var o=e.apply(t,r);function i(e){n(o,a,s,i,d,"next",e)}function d(e){n(o,a,s,i,d,"throw",e)}i(void 0)})}}function o(e,t,r){return t&&function(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,v(a.key),a)}}(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function i(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=x(e))||t){r&&(e=r);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function d(e){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},d(e)}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&m(e,t)}function l(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(e){}return(l=function(){return!!e})()}function u(e,t){if(null==e)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;r[a]=e[a]}return r}function p(){
|
||
/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
|
||
var e,t,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",n=r.toStringTag||"@@toStringTag";function s(r,a,n,s){var d=a&&a.prototype instanceof i?a:i,c=Object.create(d.prototype);return f(c,"_invoke",function(r,a,n){var s,i,d,c=0,l=n||[],u=!1,p={p:0,n:0,v:e,a:f,f:f.bind(e,4),d:function(t,r){return s=t,i=0,d=e,p.n=r,o}};function f(r,a){for(i=r,d=a,t=0;!u&&c&&!n&&t<l.length;t++){var n,s=l[t],f=p.p,g=s[2];r>3?(n=g===a)&&(d=s[(i=s[4])?5:(i=3,3)],s[4]=s[5]=e):s[0]<=f&&((n=r<2&&f<s[1])?(i=0,p.v=a,p.n=s[1]):f<g&&(n=r<3||s[0]>a||a>g)&&(s[4]=r,s[5]=a,p.n=g,i=0))}if(n||r>1)return o;throw u=!0,a}return function(n,l,g){if(c>1)throw TypeError("Generator is already running");for(u&&1===l&&f(l,g),i=l,d=g;(t=i<2?e:d)||!u;){s||(i?i<3?(i>1&&(p.n=-1),f(i,d)):p.n=d:p.v=d);try{if(c=2,s){if(i||(n="next"),t=s[n]){if(!(t=t.call(s,d)))throw TypeError("iterator result is not an object");if(!t.done)return t;d=t.value,i<2&&(i=0)}else 1===i&&(t=s.return)&&t.call(s),i<2&&(d=TypeError("The iterator does not provide a '"+n+"' method"),i=1);s=e}else if((t=(u=p.n<0)?d:r.call(a,p))!==o)break}catch(t){s=e,i=1,d=t}finally{c=1}}return{value:t,done:u}}}(r,n,s),!0),c}var o={};function i(){}function d(){}function c(){}t=Object.getPrototypeOf;var l=[][a]?t(t([][a]())):(f(t={},a,function(){return this}),t),u=c.prototype=i.prototype=Object.create(l);function g(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,f(e,n,"GeneratorFunction")),e.prototype=Object.create(u),e}return d.prototype=c,f(u,"constructor",c),f(c,"constructor",d),d.displayName="GeneratorFunction",f(c,n,"GeneratorFunction"),f(u),f(u,n,"Generator"),f(u,a,function(){return this}),f(u,"toString",function(){return"[object Generator]"}),(p=function(){return{w:s,m:g}})()}function f(e,t,r,a){var n=Object.defineProperty;try{n({},"",{})}catch(e){n=0}f=function(e,t,r,a){function s(t,r){f(e,t,function(e){return this._invoke(t,r,e)})}t?n?n(e,t,{value:r,enumerable:!a,configurable:!a,writable:!a}):e[t]=r:(s("next",0),s("throw",1),s("return",2))},f(e,t,r,a)}function g(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(typeof e+" is not iterable")}function m(e,t){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},m(e,t)}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var a,n,s,o,i=[],d=!0,c=!1;try{if(s=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;d=!1}else for(;!(d=(a=s.call(r)).done)&&(i.push(a.value),i.length!==t);d=!0);}catch(e){c=!0,n=e}finally{try{if(!d&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(c)throw n}}return i}}(e,t)||x(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function h(e,t){return t||(t=e.slice(0)),e.raw=t,e}function b(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||x(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var a=r.call(e,t);if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e,"string");return"symbol"==typeof t?t:t+""}function x(e,t){if(e){if("string"==typeof e)return a(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?a(e,t):void 0}}function R(e){var t="function"==typeof Map?new Map:void 0;return R=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return function(e,t,r){if(l())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,t);var n=new(e.bind.apply(e,a));return r&&m(n,r.prototype),n}(e,arguments,d(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),m(r,e)},R(e)}var j="undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{};function w(){throw new Error("setTimeout has not been defined")}function E(){throw new Error("clearTimeout has not been defined")}var S=w,T=E;function P(e){if(S===setTimeout)return setTimeout(e,0);if((S===w||!S)&&setTimeout)return S=setTimeout,setTimeout(e,0);try{return S(e,0)}catch(t){try{return S.call(null,e,0)}catch(t){return S.call(this,e,0)}}}"function"==typeof j.setTimeout&&(S=setTimeout),"function"==typeof j.clearTimeout&&(T=clearTimeout);var A,k=[],C=!1,_=-1;function I(){C&&A&&(C=!1,A.length?k=A.concat(k):_=-1,k.length&&D())}function D(){if(!C){var e=P(I);C=!0;for(var t=k.length;t;){for(A=k,k=[];++_<t;)A&&A[_].run();_=-1,t=k.length}A=null,C=!1,function(e){if(T===clearTimeout)return clearTimeout(e);if((T===E||!T)&&clearTimeout)return T=clearTimeout,clearTimeout(e);try{return T(e)}catch(t){try{return T.call(null,e)}catch(t){return T.call(this,e)}}}(e)}}function O(e,t){this.fun=e,this.array=t}O.prototype.run=function(){this.fun.apply(null,this.array)};function N(){}var B=N,M=N,F=N,L=N,U=N,q=N,G=N;var W=j.performance||{},V=W.now||W.mozNow||W.msNow||W.oNow||W.webkitNow||function(){return(new Date).getTime()};var H=new Date;var z={nextTick:function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];k.push(new O(e,t)),1!==k.length||C||P(D)},title:"browser",browser:!0,env:{},argv:[],version:"",versions:{},on:B,addListener:M,once:F,off:L,removeListener:U,removeAllListeners:q,emit:G,binding:function(e){throw new Error("process.binding is not supported")},cwd:function(){return"/"},chdir:function(e){throw new Error("process.chdir is not supported")},umask:function(){return 0},hrtime:function(e){var t=.001*V.call(W),r=Math.floor(t),a=Math.floor(t%1*1e9);return e&&(r-=e[0],(a-=e[1])<0&&(r--,a+=1e9)),[r,a]},platform:"browser",release:{},config:{},uptime:function(){return(new Date-H)/1e3}};function K(e,t){for(var r=0,a=Object.keys(t);r<a.length;r++){var n=a[r];if(e[n]!==t[n])return!1}return!0}var X=new Set;function J(e,t,r,a){if(void 0===r&&(r=""),void 0===a&&(a=e),!X.has(a)){X.add(a);var n=function(e,t){var r,a=Error.stackTraceLimit,n=Error.prepareStackTrace;if(Error.stackTraceLimit=1+e+t,Error.prepareStackTrace=function(e,t){r=t},(new Error).stack,Error.stackTraceLimit=a,Error.prepareStackTrace=n,!r)return{internal:!1,trace:""};var s=r.slice(1+e,1+e+t);return{internal:/[\\/]@babel[\\/]/.test(s[1].getFileName()),trace:s.map(function(e){return" at "+e}).join("\n")}}(1,2),s=n.internal,o=n.trace;s||console.warn(r+"`"+e+"` has been deprecated, please migrate to `"+t+"`\n"+o)}}function Y(e,t){return!!e&&("ArrayExpression"===e.type&&(null==t||K(e,t)))}function $(e,t){return!!e&&("AssignmentExpression"===e.type&&(null==t||K(e,t)))}function Q(e,t){return!!e&&("BlockStatement"===e.type&&(null==t||K(e,t)))}function Z(e,t){return!!e&&("CallExpression"===e.type&&(null==t||K(e,t)))}function ee(e,t){return!!e&&("CatchClause"===e.type&&(null==t||K(e,t)))}function te(e,t){return!!e&&("EmptyStatement"===e.type&&(null==t||K(e,t)))}function re(e,t){return!!e&&("ExpressionStatement"===e.type&&(null==t||K(e,t)))}function ae(e,t){return!!e&&("File"===e.type&&(null==t||K(e,t)))}function ne(e,t){return!!e&&("ForStatement"===e.type&&(null==t||K(e,t)))}function se(e,t){return!!e&&("FunctionDeclaration"===e.type&&(null==t||K(e,t)))}function oe(e,t){return!!e&&("FunctionExpression"===e.type&&(null==t||K(e,t)))}function ie(e,t){return!!e&&("Identifier"===e.type&&(null==t||K(e,t)))}function de(e,t){return!!e&&("IfStatement"===e.type&&(null==t||K(e,t)))}function ce(e,t){return!!e&&("LabeledStatement"===e.type&&(null==t||K(e,t)))}function le(e,t){return!!e&&("StringLiteral"===e.type&&(null==t||K(e,t)))}function ue(e,t){return!!e&&("NumericLiteral"===e.type&&(null==t||K(e,t)))}function pe(e,t){return!!e&&("NullLiteral"===e.type&&(null==t||K(e,t)))}function fe(e,t){return!!e&&("BooleanLiteral"===e.type&&(null==t||K(e,t)))}function ge(e,t){return!!e&&("RegExpLiteral"===e.type&&(null==t||K(e,t)))}function me(e,t){return!!e&&("MemberExpression"===e.type&&(null==t||K(e,t)))}function ye(e,t){return!!e&&("NewExpression"===e.type&&(null==t||K(e,t)))}function he(e,t){return!!e&&("Program"===e.type&&(null==t||K(e,t)))}function be(e,t){return!!e&&("ObjectExpression"===e.type&&(null==t||K(e,t)))}function ve(e,t){return!!e&&("ObjectMethod"===e.type&&(null==t||K(e,t)))}function xe(e,t){return!!e&&("ObjectProperty"===e.type&&(null==t||K(e,t)))}function Re(e,t){return!!e&&("RestElement"===e.type&&(null==t||K(e,t)))}function je(e,t){return!!e&&("ReturnStatement"===e.type&&(null==t||K(e,t)))}function we(e,t){return!!e&&("SequenceExpression"===e.type&&(null==t||K(e,t)))}function Ee(e,t){return!!e&&("ParenthesizedExpression"===e.type&&(null==t||K(e,t)))}function Se(e,t){return!!e&&("ThisExpression"===e.type&&(null==t||K(e,t)))}function Te(e,t){return!!e&&("UnaryExpression"===e.type&&(null==t||K(e,t)))}function Pe(e,t){return!!e&&("UpdateExpression"===e.type&&(null==t||K(e,t)))}function Ae(e,t){return!!e&&("VariableDeclaration"===e.type&&(null==t||K(e,t)))}function ke(e,t){return!!e&&("VariableDeclarator"===e.type&&(null==t||K(e,t)))}function Ce(e,t){return!!e&&("AssignmentPattern"===e.type&&(null==t||K(e,t)))}function _e(e,t){return!!e&&("ArrayPattern"===e.type&&(null==t||K(e,t)))}function Ie(e,t){return!!e&&("ArrowFunctionExpression"===e.type&&(null==t||K(e,t)))}function De(e,t){return!!e&&("ClassBody"===e.type&&(null==t||K(e,t)))}function Oe(e,t){return!!e&&("ClassExpression"===e.type&&(null==t||K(e,t)))}function Ne(e,t){return!!e&&("ClassDeclaration"===e.type&&(null==t||K(e,t)))}function Be(e,t){return!!e&&("ExportAllDeclaration"===e.type&&(null==t||K(e,t)))}function Me(e,t){return!!e&&("ExportDefaultDeclaration"===e.type&&(null==t||K(e,t)))}function Fe(e,t){return!!e&&("ExportNamedDeclaration"===e.type&&(null==t||K(e,t)))}function Le(e,t){return!!e&&("ExportSpecifier"===e.type&&(null==t||K(e,t)))}function Ue(e,t){return!!e&&("ForOfStatement"===e.type&&(null==t||K(e,t)))}function qe(e,t){return!!e&&("ImportDeclaration"===e.type&&(null==t||K(e,t)))}function Ge(e,t){return!!e&&("ImportDefaultSpecifier"===e.type&&(null==t||K(e,t)))}function We(e,t){return!!e&&("ImportNamespaceSpecifier"===e.type&&(null==t||K(e,t)))}function Ve(e,t){return!!e&&("ImportSpecifier"===e.type&&(null==t||K(e,t)))}function He(e,t){return!!e&&("MetaProperty"===e.type&&(null==t||K(e,t)))}function ze(e,t){return!!e&&("ClassMethod"===e.type&&(null==t||K(e,t)))}function Ke(e,t){return!!e&&("ObjectPattern"===e.type&&(null==t||K(e,t)))}function Xe(e,t){return!!e&&("SpreadElement"===e.type&&(null==t||K(e,t)))}function Je(e,t){return!!e&&("Super"===e.type&&(null==t||K(e,t)))}function Ye(e,t){return!!e&&("TaggedTemplateExpression"===e.type&&(null==t||K(e,t)))}function $e(e,t){return!!e&&("TemplateLiteral"===e.type&&(null==t||K(e,t)))}function Qe(e,t){return!!e&&("YieldExpression"===e.type&&(null==t||K(e,t)))}function Ze(e,t){return!!e&&("AwaitExpression"===e.type&&(null==t||K(e,t)))}function et(e,t){return!!e&&("Import"===e.type&&(null==t||K(e,t)))}function tt(e,t){return!!e&&("BigIntLiteral"===e.type&&(null==t||K(e,t)))}function rt(e,t){return!!e&&("ExportNamespaceSpecifier"===e.type&&(null==t||K(e,t)))}function at(e,t){return!!e&&("OptionalMemberExpression"===e.type&&(null==t||K(e,t)))}function nt(e,t){return!!e&&("OptionalCallExpression"===e.type&&(null==t||K(e,t)))}function st(e,t){return!!e&&("ClassProperty"===e.type&&(null==t||K(e,t)))}function ot(e,t){return!!e&&("ClassPrivateProperty"===e.type&&(null==t||K(e,t)))}function it(e,t){return!!e&&("PrivateName"===e.type&&(null==t||K(e,t)))}function dt(e,t){return!!e&&("StaticBlock"===e.type&&(null==t||K(e,t)))}function ct(e,t){return!!e&&("AnyTypeAnnotation"===e.type&&(null==t||K(e,t)))}function lt(e,t){return!!e&&("ArrayTypeAnnotation"===e.type&&(null==t||K(e,t)))}function ut(e,t){return!!e&&("BooleanTypeAnnotation"===e.type&&(null==t||K(e,t)))}function pt(e,t){return!!e&&("DeclareExportDeclaration"===e.type&&(null==t||K(e,t)))}function ft(e,t){return!!e&&("GenericTypeAnnotation"===e.type&&(null==t||K(e,t)))}function gt(e,t){return!!e&&("MixedTypeAnnotation"===e.type&&(null==t||K(e,t)))}function mt(e,t){return!!e&&("EmptyTypeAnnotation"===e.type&&(null==t||K(e,t)))}function yt(e,t){return!!e&&("NumberTypeAnnotation"===e.type&&(null==t||K(e,t)))}function ht(e,t){return!!e&&("StringTypeAnnotation"===e.type&&(null==t||K(e,t)))}function bt(e,t){return!!e&&("TupleTypeAnnotation"===e.type&&(null==t||K(e,t)))}function vt(e,t){return!!e&&("TypeAnnotation"===e.type&&(null==t||K(e,t)))}function xt(e,t){return!!e&&("TypeCastExpression"===e.type&&(null==t||K(e,t)))}function Rt(e,t){return!!e&&("UnionTypeAnnotation"===e.type&&(null==t||K(e,t)))}function jt(e,t){return!!e&&("VoidTypeAnnotation"===e.type&&(null==t||K(e,t)))}function wt(e,t){return!!e&&("JSXAttribute"===e.type&&(null==t||K(e,t)))}function Et(e,t){return!!e&&("JSXElement"===e.type&&(null==t||K(e,t)))}function St(e,t){return!!e&&("JSXEmptyExpression"===e.type&&(null==t||K(e,t)))}function Tt(e,t){return!!e&&("JSXExpressionContainer"===e.type&&(null==t||K(e,t)))}function Pt(e,t){return!!e&&("JSXIdentifier"===e.type&&(null==t||K(e,t)))}function At(e,t){return!!e&&("JSXMemberExpression"===e.type&&(null==t||K(e,t)))}function kt(e,t){return!!e&&("JSXNamespacedName"===e.type&&(null==t||K(e,t)))}function Ct(e,t){return!!e&&("JSXOpeningElement"===e.type&&(null==t||K(e,t)))}function _t(e,t){return!!e&&("JSXSpreadAttribute"===e.type&&(null==t||K(e,t)))}function It(e,t){return!!e&&("JSXText"===e.type&&(null==t||K(e,t)))}function Dt(e,t){return!!e&&("Placeholder"===e.type&&(null==t||K(e,t)))}function Ot(e,t){return!!e&&("BindExpression"===e.type&&(null==t||K(e,t)))}function Nt(e,t){return!!e&&("ExportDefaultSpecifier"===e.type&&(null==t||K(e,t)))}function Bt(e,t){return!!e&&("TopicReference"===e.type&&(null==t||K(e,t)))}function Mt(e,t){return!!e&&("PipelineTopicExpression"===e.type&&(null==t||K(e,t)))}function Ft(e,t){return!!e&&("TSQualifiedName"===e.type&&(null==t||K(e,t)))}function Lt(e,t){return!!e&&("TSAnyKeyword"===e.type&&(null==t||K(e,t)))}function Ut(e,t){return!!e&&("TSTypeReference"===e.type&&(null==t||K(e,t)))}function qt(e,t){return!!e&&("TSArrayType"===e.type&&(null==t||K(e,t)))}function Gt(e,t){return!!e&&("TSUnionType"===e.type&&(null==t||K(e,t)))}function Wt(e,t){return!!e&&("TSInterfaceBody"===e.type&&(null==t||K(e,t)))}function Vt(e,t){return!!e&&("TSAsExpression"===e.type&&(null==t||K(e,t)))}function Ht(e,t){return!!e&&("TSSatisfiesExpression"===e.type&&(null==t||K(e,t)))}function zt(e,t){return!!e&&("TSTypeAssertion"===e.type&&(null==t||K(e,t)))}function Kt(e,t){return!!e&&("TSEnumMember"===e.type&&(null==t||K(e,t)))}function Xt(e,t){return!!e&&("TSModuleBlock"===e.type&&(null==t||K(e,t)))}function Jt(e,t){return!!e&&("TSNonNullExpression"===e.type&&(null==t||K(e,t)))}function Yt(e,t){return!!e&&("TSTypeAnnotation"===e.type&&(null==t||K(e,t)))}function $t(e,t){if(!e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ParenthesizedExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":case"ArrowFunctionExpression":case"ClassExpression":case"ImportExpression":case"MetaProperty":case"Super":case"TaggedTemplateExpression":case"TemplateLiteral":case"YieldExpression":case"AwaitExpression":case"Import":case"BigIntLiteral":case"OptionalMemberExpression":case"OptionalCallExpression":case"TypeCastExpression":case"JSXElement":case"JSXFragment":case"BindExpression":case"DoExpression":case"RecordExpression":case"TupleExpression":case"DecimalLiteral":case"ModuleExpression":case"TopicReference":case"PipelineTopicExpression":case"PipelineBareFunction":case"PipelinePrimaryTopicReference":case"TSInstantiationExpression":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":break;case"Placeholder":switch(e.expectedNode){case"Expression":case"Identifier":case"StringLiteral":break;default:return!1}break;default:return!1}return null==t||K(e,t)}function Qt(e,t){if(!e)return!1;switch(e.type){case"BinaryExpression":case"LogicalExpression":break;default:return!1}return null==t||K(e,t)}function Zt(e,t){if(!e)return!1;switch(e.type){case"BlockStatement":case"CatchClause":case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"FunctionExpression":case"Program":case"ObjectMethod":case"SwitchStatement":case"WhileStatement":case"ArrowFunctionExpression":case"ClassExpression":case"ClassDeclaration":case"ForOfStatement":case"ClassMethod":case"ClassPrivateMethod":case"StaticBlock":case"TSModuleBlock":break;case"Placeholder":if("BlockStatement"===e.expectedNode)break;default:return!1}return null==t||K(e,t)}function er(e,t){if(!e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":case"ClassDeclaration":case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ForOfStatement":case"ImportDeclaration":case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"InterfaceDeclaration":case"OpaqueType":case"TypeAlias":case"EnumDeclaration":case"TSDeclareFunction":case"TSInterfaceDeclaration":case"TSTypeAliasDeclaration":case"TSEnumDeclaration":case"TSModuleDeclaration":case"TSImportEqualsDeclaration":case"TSExportAssignment":case"TSNamespaceExportDeclaration":break;case"Placeholder":switch(e.expectedNode){case"Statement":case"Declaration":case"BlockStatement":break;default:return!1}break;default:return!1}return null==t||K(e,t)}function tr(e,t){if(!e)return!1;switch(e.type){case"BreakStatement":case"ContinueStatement":case"ReturnStatement":case"ThrowStatement":break;default:return!1}return null==t||K(e,t)}function rr(e,t){if(!e)return!1;switch(e.type){case"ForInStatement":case"ForStatement":case"ForOfStatement":break;default:return!1}return null==t||K(e,t)}function ar(e,t){if(!e)return!1;switch(e.type){case"ForInStatement":case"ForOfStatement":break;default:return!1}return null==t||K(e,t)}function nr(e,t){if(!e)return!1;switch(e.type){case"FunctionDeclaration":case"FunctionExpression":case"ObjectMethod":case"ArrowFunctionExpression":case"ClassMethod":case"ClassPrivateMethod":break;default:return!1}return null==t||K(e,t)}function sr(e,t){if(!e)return!1;switch(e.type){case"FunctionDeclaration":case"FunctionExpression":case"ObjectMethod":case"ArrowFunctionExpression":case"ClassMethod":case"ClassPrivateMethod":case"StaticBlock":case"TSModuleBlock":break;default:return!1}return null==t||K(e,t)}function or(e,t){if(!e)return!1;switch(e.type){case"FunctionDeclaration":case"FunctionExpression":case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"ArrowFunctionExpression":case"BigIntLiteral":case"DecimalLiteral":break;case"Placeholder":if("StringLiteral"===e.expectedNode)break;default:return!1}return null==t||K(e,t)}function ir(e,t){if(!e)return!1;switch(e.type){case"FunctionDeclaration":case"VariableDeclaration":case"ClassDeclaration":case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ImportDeclaration":case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"InterfaceDeclaration":case"OpaqueType":case"TypeAlias":case"EnumDeclaration":case"TSDeclareFunction":case"TSInterfaceDeclaration":case"TSTypeAliasDeclaration":case"TSEnumDeclaration":case"TSModuleDeclaration":case"TSImportEqualsDeclaration":break;case"Placeholder":if("Declaration"===e.expectedNode)break;default:return!1}return null==t||K(e,t)}function dr(e,t){if(!e)return!1;switch(e.type){case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"TemplateLiteral":case"BigIntLiteral":case"DecimalLiteral":break;case"Placeholder":if("StringLiteral"===e.expectedNode)break;default:return!1}return null==t||K(e,t)}function cr(e,t){if(!e)return!1;switch(e.type){case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":break;default:return!1}return null==t||K(e,t)}function lr(e,t){if(!e)return!1;switch(e.type){case"ObjectProperty":case"ClassProperty":case"ClassAccessorProperty":case"ClassPrivateProperty":break;default:return!1}return null==t||K(e,t)}function ur(e,t){if(!e)return!1;switch(e.type){case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":case"VoidPattern":break;case"Placeholder":if("Pattern"===e.expectedNode)break;default:return!1}return null==t||K(e,t)}function pr(e,t){if(!e)return!1;switch(e.type){case"ClassExpression":case"ClassDeclaration":break;default:return!1}return null==t||K(e,t)}function fr(e,t){if(!e)return!1;switch(e.type){case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ImportDeclaration":break;default:return!1}return null==t||K(e,t)}function gr(e,t){if(!e)return!1;switch(e.type){case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":break;default:return!1}return null==t||K(e,t)}function mr(e,t){if(!e)return!1;switch(e.type){case"ExportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":break;default:return!1}return null==t||K(e,t)}function yr(e,t){if(!e)return!1;switch(e.type){case"ClassPrivateProperty":case"ClassPrivateMethod":case"PrivateName":break;default:return!1}return null==t||K(e,t)}function hr(e,t){if(!e)return!1;switch(e.type){case"AnyTypeAnnotation":case"ArrayTypeAnnotation":case"BooleanTypeAnnotation":case"BooleanLiteralTypeAnnotation":case"NullLiteralTypeAnnotation":case"ClassImplements":case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"DeclaredPredicate":case"ExistsTypeAnnotation":case"FunctionTypeAnnotation":case"FunctionTypeParam":case"GenericTypeAnnotation":case"InferredPredicate":case"InterfaceExtends":case"InterfaceDeclaration":case"InterfaceTypeAnnotation":case"IntersectionTypeAnnotation":case"MixedTypeAnnotation":case"EmptyTypeAnnotation":case"NullableTypeAnnotation":case"NumberLiteralTypeAnnotation":case"NumberTypeAnnotation":case"ObjectTypeAnnotation":case"ObjectTypeInternalSlot":case"ObjectTypeCallProperty":case"ObjectTypeIndexer":case"ObjectTypeProperty":case"ObjectTypeSpreadProperty":case"OpaqueType":case"QualifiedTypeIdentifier":case"StringLiteralTypeAnnotation":case"StringTypeAnnotation":case"SymbolTypeAnnotation":case"ThisTypeAnnotation":case"TupleTypeAnnotation":case"TypeofTypeAnnotation":case"TypeAlias":case"TypeAnnotation":case"TypeCastExpression":case"TypeParameter":case"TypeParameterDeclaration":case"TypeParameterInstantiation":case"UnionTypeAnnotation":case"Variance":case"VoidTypeAnnotation":case"EnumDeclaration":case"EnumBooleanBody":case"EnumNumberBody":case"EnumStringBody":case"EnumSymbolBody":case"EnumBooleanMember":case"EnumNumberMember":case"EnumStringMember":case"EnumDefaultedMember":case"IndexedAccessType":case"OptionalIndexedAccessType":break;default:return!1}return null==t||K(e,t)}function br(e,t){if(!e)return!1;switch(e.type){case"AnyTypeAnnotation":case"ArrayTypeAnnotation":case"BooleanTypeAnnotation":case"BooleanLiteralTypeAnnotation":case"NullLiteralTypeAnnotation":case"ExistsTypeAnnotation":case"FunctionTypeAnnotation":case"GenericTypeAnnotation":case"InterfaceTypeAnnotation":case"IntersectionTypeAnnotation":case"MixedTypeAnnotation":case"EmptyTypeAnnotation":case"NullableTypeAnnotation":case"NumberLiteralTypeAnnotation":case"NumberTypeAnnotation":case"ObjectTypeAnnotation":case"StringLiteralTypeAnnotation":case"StringTypeAnnotation":case"SymbolTypeAnnotation":case"ThisTypeAnnotation":case"TupleTypeAnnotation":case"TypeofTypeAnnotation":case"UnionTypeAnnotation":case"VoidTypeAnnotation":case"IndexedAccessType":case"OptionalIndexedAccessType":break;default:return!1}return null==t||K(e,t)}function vr(e,t){if(!e)return!1;switch(e.type){case"AnyTypeAnnotation":case"BooleanTypeAnnotation":case"NullLiteralTypeAnnotation":case"MixedTypeAnnotation":case"EmptyTypeAnnotation":case"NumberTypeAnnotation":case"StringTypeAnnotation":case"SymbolTypeAnnotation":case"ThisTypeAnnotation":case"VoidTypeAnnotation":break;default:return!1}return null==t||K(e,t)}function xr(e,t){if(!e)return!1;switch(e.type){case"TSParameterProperty":case"TSDeclareFunction":case"TSDeclareMethod":case"TSQualifiedName":case"TSCallSignatureDeclaration":case"TSConstructSignatureDeclaration":case"TSPropertySignature":case"TSMethodSignature":case"TSIndexSignature":case"TSAnyKeyword":case"TSBooleanKeyword":case"TSBigIntKeyword":case"TSIntrinsicKeyword":case"TSNeverKeyword":case"TSNullKeyword":case"TSNumberKeyword":case"TSObjectKeyword":case"TSStringKeyword":case"TSSymbolKeyword":case"TSUndefinedKeyword":case"TSUnknownKeyword":case"TSVoidKeyword":case"TSThisType":case"TSFunctionType":case"TSConstructorType":case"TSTypeReference":case"TSTypePredicate":case"TSTypeQuery":case"TSTypeLiteral":case"TSArrayType":case"TSTupleType":case"TSOptionalType":case"TSRestType":case"TSNamedTupleMember":case"TSUnionType":case"TSIntersectionType":case"TSConditionalType":case"TSInferType":case"TSParenthesizedType":case"TSTypeOperator":case"TSIndexedAccessType":case"TSMappedType":case"TSTemplateLiteralType":case"TSLiteralType":case"TSExpressionWithTypeArguments":case"TSInterfaceDeclaration":case"TSInterfaceBody":case"TSTypeAliasDeclaration":case"TSInstantiationExpression":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSEnumBody":case"TSEnumDeclaration":case"TSEnumMember":case"TSModuleDeclaration":case"TSModuleBlock":case"TSImportType":case"TSImportEqualsDeclaration":case"TSExternalModuleReference":case"TSNonNullExpression":case"TSExportAssignment":case"TSNamespaceExportDeclaration":case"TSTypeAnnotation":case"TSTypeParameterInstantiation":case"TSTypeParameterDeclaration":case"TSTypeParameter":break;default:return!1}return null==t||K(e,t)}function Rr(e,t){if(!e)return!1;switch(e.type){case"TSAnyKeyword":case"TSBooleanKeyword":case"TSBigIntKeyword":case"TSIntrinsicKeyword":case"TSNeverKeyword":case"TSNullKeyword":case"TSNumberKeyword":case"TSObjectKeyword":case"TSStringKeyword":case"TSSymbolKeyword":case"TSUndefinedKeyword":case"TSUnknownKeyword":case"TSVoidKeyword":case"TSThisType":case"TSFunctionType":case"TSConstructorType":case"TSTypeReference":case"TSTypePredicate":case"TSTypeQuery":case"TSTypeLiteral":case"TSArrayType":case"TSTupleType":case"TSOptionalType":case"TSRestType":case"TSUnionType":case"TSIntersectionType":case"TSConditionalType":case"TSInferType":case"TSParenthesizedType":case"TSTypeOperator":case"TSIndexedAccessType":case"TSMappedType":case"TSTemplateLiteralType":case"TSLiteralType":case"TSExpressionWithTypeArguments":case"TSImportType":break;default:return!1}return null==t||K(e,t)}function jr(e,t){if(!e)return!1;switch(e.type){case"TSAnyKeyword":case"TSBooleanKeyword":case"TSBigIntKeyword":case"TSIntrinsicKeyword":case"TSNeverKeyword":case"TSNullKeyword":case"TSNumberKeyword":case"TSObjectKeyword":case"TSStringKeyword":case"TSSymbolKeyword":case"TSUndefinedKeyword":case"TSUnknownKeyword":case"TSVoidKeyword":case"TSThisType":case"TSTemplateLiteralType":case"TSLiteralType":break;default:return!1}return null==t||K(e,t)}function wr(e){return me(e)||He(e)}function Er(e,t,r){if(!wr(e))return!1;var a,n=Array.isArray(t)?t:t.split("."),s=[];for(a=e;wr(a);a=null!=(o=a.object)?o:a.meta){var o;s.push(a.property)}if(s.push(a),s.length<n.length)return!1;if(!r&&s.length>n.length)return!1;for(var i=0,d=s.length-1;i<n.length;i++,d--){var c=s[d],l=void 0;if(ie(c))l=c.name;else if(le(c))l=c.value;else if(Se(c))l="this";else if(Je(c))l="super";else{if(!it(c))return!1;l="#"+c.id.name}if(n[i]!==l)return!1}return!0}function Sr(e,t){var r=e.split(".");return function(e){return Er(e,r,t)}}var Tr=Sr("React.Component");function Pr(e,t){if(e===t)return!0;if(null==e)return!1;if(wa[t])return!1;var r=Ea[t];return!(null==r||!r.includes(e))}function Ar(e,t){if(e===t)return!0;var r=jn[e];return!(null==r||!r.includes(t))}function kr(e,t,r){return!!t&&(Pr(t.type,e)?void 0===r||K(t,r):!r&&"Placeholder"===t.type&&e in Ea&&Ar(t.expectedNode,e))}var Cr="\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088f\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5c\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdc-\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7dc\ua7f1-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc",_r="\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1add\u1ae0-\u1aeb\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65",Ir=new RegExp("["+Cr+"]"),Dr=new RegExp("["+Cr+_r+"]");Cr=_r=null;var Or=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,7,25,39,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,5,57,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,24,43,261,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,33,24,3,24,45,74,6,0,67,12,65,1,2,0,15,4,10,7381,42,31,98,114,8702,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,208,30,2,2,2,1,2,6,3,4,10,1,225,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4381,3,5773,3,7472,16,621,2467,541,1507,4938,6,8489],Nr=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,78,5,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,199,7,137,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,55,9,266,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,233,0,3,0,8,1,6,0,475,6,110,6,6,9,4759,9,787719,239];function Br(e,t){for(var r=65536,a=0,n=t.length;a<n;a+=2){if((r+=t[a])>e)return!1;if((r+=t[a+1])>=e)return!0}return!1}function Mr(e){return e<65?36===e:e<=90||(e<97?95===e:e<=122||(e<=65535?e>=170&&Ir.test(String.fromCharCode(e)):Br(e,Or)))}function Fr(e){return e<48?36===e:e<58||!(e<65)&&(e<=90||(e<97?95===e:e<=122||(e<=65535?e>=170&&Dr.test(String.fromCharCode(e)):Br(e,Or)||Br(e,Nr))))}function Lr(e){for(var t=!0,r=0;r<e.length;r++){var a=e.charCodeAt(r);if(55296==(64512&a)&&r+1<e.length){var n=e.charCodeAt(++r);56320==(64512&n)&&(a=65536+((1023&a)<<10)+(1023&n))}if(t){if(t=!1,!Mr(a))return!1}else if(!Fr(a))return!1}return!t}var Ur=["implements","interface","let","package","private","protected","public","static","yield"],qr=["eval","arguments"],Gr=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete"]),Wr=new Set(Ur),Vr=new Set(qr);function Hr(e,t){return t&&"await"===e||"enum"===e}function zr(e,t){return Hr(e,t)||Wr.has(e)}function Kr(e){return Vr.has(e)}function Xr(e,t){return zr(e,t)||Kr(e)}function Jr(e){return Gr.has(e)}function Yr(e,t){return void 0===t&&(t=!0),"string"==typeof e&&((!t||!Jr(e)&&!zr(e,!0))&&Lr(e))}var $r=function(e){return e>=48&&e<=57},Qr={decBinOct:new Set([46,66,69,79,95,98,101,111]),hex:new Set([46,88,95,120])},Zr={bin:function(e){return 48===e||49===e},oct:function(e){return e>=48&&e<=55},dec:function(e){return e>=48&&e<=57},hex:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}};function ea(e,t,r,a,n,s){for(var o=r,i=a,d=n,c="",l=null,u=r,p=t.length;;){if(r>=p){s.unterminated(o,i,d),c+=t.slice(u,r);break}var f=t.charCodeAt(r);if(ta(e,f,t,r)){c+=t.slice(u,r);break}if(92===f){c+=t.slice(u,r);var g=ra(t,r,a,n,"template"===e,s);null!==g.ch||l?c+=g.ch:l={pos:r,lineStart:a,curLine:n},r=g.pos,a=g.lineStart,n=g.curLine,u=r}else 8232===f||8233===f?(++n,a=++r):10===f||13===f?"template"===e?(c+=t.slice(u,r)+"\n",++r,13===f&&10===t.charCodeAt(r)&&++r,++n,u=a=r):s.unterminated(o,i,d):++r}return{pos:r,str:c,firstInvalidLoc:l,lineStart:a,curLine:n,containsInvalid:!!l}}function ta(e,t,r,a){return"template"===e?96===t||36===t&&123===r.charCodeAt(a+1):t===("double"===e?34:39)}function ra(e,t,r,a,n,s){var o=!n;t++;var i=function(e){return{pos:t,ch:e,lineStart:r,curLine:a}},d=e.charCodeAt(t++);switch(d){case 110:return i("\n");case 114:return i("\r");case 120:var c,l=aa(e,t,r,a,2,!1,o,s);return c=l.code,t=l.pos,i(null===c?null:String.fromCharCode(c));case 117:var u,p=sa(e,t,r,a,o,s);return u=p.code,t=p.pos,i(null===u?null:String.fromCodePoint(u));case 116:return i("\t");case 98:return i("\b");case 118:return i("\v");case 102:return i("\f");case 13:10===e.charCodeAt(t)&&++t;case 10:r=t,++a;case 8232:case 8233:return i("");case 56:case 57:if(n)return i(null);s.strictNumericEscape(t-1,r,a);default:if(d>=48&&d<=55){var f=t-1,g=/^[0-7]+/.exec(e.slice(f,t+2))[0],m=parseInt(g,8);m>255&&(g=g.slice(0,-1),m=parseInt(g,8)),t+=g.length-1;var y=e.charCodeAt(t);if("0"!==g||56===y||57===y){if(n)return i(null);s.strictNumericEscape(f,r,a)}return i(String.fromCharCode(m))}return i(String.fromCharCode(d))}}function aa(e,t,r,a,n,s,o,i){var d,c=t,l=na(e,t,r,a,16,n,s,!1,i,!o);return d=l.n,t=l.pos,null===d&&(o?i.invalidEscapeSequence(c,r,a):t=c-1),{code:d,pos:t}}function na(e,t,r,a,n,s,o,i,d,c){for(var l=t,u=16===n?Qr.hex:Qr.decBinOct,p=16===n?Zr.hex:10===n?Zr.dec:8===n?Zr.oct:Zr.bin,f=!1,g=0,m=0,y=null==s?1/0:s;m<y;++m){var h=e.charCodeAt(t),b=void 0;if(95!==h||"bail"===i){if((b=h>=97?h-97+10:h>=65?h-65+10:$r(h)?h-48:1/0)>=n){if(b<=9&&c)return{n:null,pos:t};if(b<=9&&d.invalidDigit(t,r,a,n))b=0;else{if(!o)break;b=0,f=!0}}++t,g=g*n+b}else{var v=e.charCodeAt(t-1),x=e.charCodeAt(t+1);if(i){if(Number.isNaN(x)||!p(x)||u.has(v)||u.has(x)){if(c)return{n:null,pos:t};d.unexpectedNumericSeparator(t,r,a)}}else{if(c)return{n:null,pos:t};d.numericSeparatorInEscapeSequence(t,r,a)}++t}}return t===l||null!=s&&t-l!==s||f?{n:null,pos:t}:{n:g,pos:t}}function sa(e,t,r,a,n,s){var o;if(123===e.charCodeAt(t)){var i=aa(e,++t,r,a,e.indexOf("}",t)-t,!0,n,s);if(o=i.code,t=i.pos,++t,null!==o&&o>1114111){if(!n)return{code:null,pos:t};s.invalidCodePoint(t,r,a)}}else{var d=aa(e,t,r,a,4,!1,n,s);o=d.code,t=d.pos}return{code:o,pos:t}}var oa=["consequent","body","alternate"],ia=["leadingComments","trailingComments","innerComments"],da=["||","&&","??"],ca=["++","--"],la=[">","<",">=","<="],ua=["==","===","!=","!=="],pa=[].concat(ua,["in","instanceof"]),fa=[].concat(b(pa),la),ga=["-","/","%","*","**","&","|",">>",">>>","<<","^"],ma=["+"].concat(ga,b(fa),["|>"]),ya=["=","+="].concat(b(ga.map(function(e){return e+"="})),b(da.map(function(e){return e+"="}))),ha=["delete","!"],ba=["+","-","~"],va=["typeof"],xa=["void","throw"].concat(ha,ba,va),Ra={optional:["typeAnnotation","typeParameters","returnType"],force:["start","loc","end"]};e.BLOCK_SCOPED_SYMBOL=Symbol.for("var used to be block scoped"),e.NOT_LOCAL_BINDING=Symbol.for("should not be considered a local binding");var ja={},wa={},Ea={},Sa={},Ta={},Pa={},Aa={},ka={};function Ca(e){return Array.isArray(e)?"array":null===e?"null":typeof e}function _a(e){return{validate:e}}function Ia(){return _a(qa.apply(void 0,arguments))}function Da(e){return{validate:e,optional:!0}}function Oa(){return{validate:qa.apply(void 0,arguments),optional:!0}}function Na(e){return Ha(Wa("array"),Fa(e))}function Ba(){return Na(qa.apply(void 0,arguments))}function Ma(){return _a(Ba.apply(void 0,arguments))}function Fa(e){var t=z.env.BABEL_TYPES_8_BREAKING?rs:function(){};function r(r,a,n){if(Array.isArray(n))for(var s=0,o={toString:function(){return a+"["+s+"]"}};s<n.length;s++){var i=n[s];e(r,o,i),t(r,o,i)}}return r.each=e,r}function La(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];function a(e,r,a){if(!t.includes(a))throw new TypeError("Property "+r+" expected value to be one of "+JSON.stringify(t)+" but got "+JSON.stringify(a))}return a.oneOf=t,a}var Ua=[];function qa(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];var a=new Set;function n(e,r,n){var s=null==n?void 0:n.type;if(null!=s){if(a.has(s))return void rs(e,r,n);if("Placeholder"===s)for(var o,d=i(t);!(o=d()).done;){if(kr(o.value,n))return void rs(e,r,n)}}throw new TypeError("Property "+r+" of "+e.type+" expected node to be of a type "+JSON.stringify(t)+" but instead got "+JSON.stringify(s))}return Ua.push({types:t,set:a}),n.oneOfNodeTypes=t,n}function Ga(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];function a(e,r,a){for(var n,s=Ca(a),o=i(t);!(n=o()).done;){var d=n.value;if(s===d||kr(d,a))return void rs(e,r,a)}throw new TypeError("Property "+r+" of "+e.type+" expected node to be of a type "+JSON.stringify(t)+" but instead got "+JSON.stringify(null==a?void 0:a.type))}return a.oneOfNodeOrValueTypes=t,a}function Wa(e){function t(t,r,a){if(Ca(a)!==e)throw new TypeError("Property "+r+" expected type of "+e+" but got "+Ca(a))}return t.type=e,t}function Va(){return function(e){for(var t,r=e;e;){var a=r.type;if("OptionalCallExpression"!==a){if("OptionalMemberExpression"!==a)break;if(r.optional)return;r=r.object}else{if(r.optional)return;r=r.callee}}throw new TypeError("Non-optional "+e.type+" must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from "+(null==(t=r)?void 0:t.type))}}function Ha(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];function a(){for(var e,r=i(t);!(e=r()).done;){e.value.apply(void 0,arguments)}}if(a.chainOf=t,t.length>=2&&"type"in t[0]&&"array"===t[0].type&&!("each"in t[1]))throw new Error('An assertValueType("array") validator can only be followed by an assertEach(...) validator.');return a}var za,Ka,Xa,Ja=new Set(["aliases","builder","deprecatedAlias","fields","inherits","visitor","validate","unionShape"]),Ya=new Set(["default","optional","deprecated","validate"]),$a={};function Qa(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e,r){var a;void 0===r&&(r={});var n,s=r.aliases;s||(r.inherits&&(s=null==(n=$a[r.inherits].aliases)?void 0:n.slice()),null!=s||(s=[]),r.aliases=s);var o=t.filter(function(e){return!s.includes(e)});(a=s).unshift.apply(a,b(o)),Za(e,r)}}function Za(e,t){void 0===t&&(t={});var r=t.inherits&&$a[t.inherits]||{},a=t.fields;if(!a&&(a={},r.fields))for(var n,s=i(Object.getOwnPropertyNames(r.fields));!(n=s()).done;){var o=n.value,d=r.fields[o],c=d.default;if(Array.isArray(c)?c.length>0:c&&"object"==typeof c)throw new Error("field defaults can only be primitives or empty arrays currently");a[o]={default:Array.isArray(c)?[]:c,optional:d.optional,deprecated:d.deprecated,validate:d.validate}}for(var l=t.visitor||r.visitor||[],u=t.aliases||r.aliases||[],p=t.builder||r.builder||t.visitor||[],f=0,g=Object.keys(t);f<g.length;f++){var m=g[f];if(!Ja.has(m))throw new Error('Unknown type option "'+m+'" on '+e)}t.deprecatedAlias&&(Pa[t.deprecatedAlias]=e);for(var y,h=i(l.concat(p));!(y=h()).done;){var b=y.value;a[b]=a[b]||{}}for(var v=0,x=Object.keys(a);v<x.length;v++){var R=x[v],j=a[R];void 0===j.default||p.includes(R)||(j.optional=!0),void 0===j.default?j.default=null:j.validate||null==j.default||(j.validate=Wa(Ca(j.default)));for(var w=0,E=Object.keys(j);w<E.length;w++){var S=E[w];if(!Ya.has(S))throw new Error('Unknown field key "'+S+'" on '+e+"."+R)}}ja[e]=t.visitor=l,Ta[e]=t.builder=p,Sa[e]=t.fields=a,wa[e]=t.aliases=u,u.forEach(function(t){Ea[t]=Ea[t]||[],Ea[t].push(e)}),t.validate&&(Aa[e]=t.validate),t.unionShape&&(ka[e]=t.unionShape),$a[e]=t}var en=function(e){return void 0===e&&(e=!1),{unionShape:{discriminator:"computed",shapes:[{name:"computed",value:[!0],properties:{key:{validate:qa("Expression")}}},{name:"nonComputed",value:[!1],properties:{key:{validate:e?qa("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","PrivateName"):qa("Identifier","StringLiteral","NumericLiteral","BigIntLiteral")}}}]}}},tn=Qa("Standardized");tn("ArrayExpression",{fields:{elements:{validate:Na(Ga("null","Expression","SpreadElement")),default:z.env.BABEL_TYPES_8_BREAKING?void 0:[]}},visitor:["elements"],aliases:["Expression"]}),tn("AssignmentExpression",{fields:{operator:{validate:z.env.BABEL_TYPES_8_BREAKING?Object.assign(function(){var e=La.apply(void 0,b(ya)),t=La("=");return function(r,a,n){(kr("Pattern",r.left)?t:e)(r,a,n)}}(),{oneOf:ya}):Wa("string")},left:{validate:z.env.BABEL_TYPES_8_BREAKING?qa("Identifier","MemberExpression","OptionalMemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"):qa("LVal","OptionalMemberExpression")},right:{validate:qa("Expression")}},builder:["operator","left","right"],visitor:["left","right"],aliases:["Expression"]}),tn("BinaryExpression",{builder:["operator","left","right"],fields:{operator:{validate:La.apply(void 0,b(ma))},left:{validate:function(){var e=qa("Expression"),t=qa("Expression","PrivateName"),r=Object.assign(function(r,a,n){("in"===r.operator?t:e)(r,a,n)},{oneOfNodeTypes:["Expression","PrivateName"]});return r}()},right:{validate:qa("Expression")}},visitor:["left","right"],aliases:["Binary","Expression"]}),tn("InterpreterDirective",{builder:["value"],fields:{value:{validate:Wa("string")}}}),tn("Directive",{visitor:["value"],fields:{value:{validate:qa("DirectiveLiteral")}}}),tn("DirectiveLiteral",{builder:["value"],fields:{value:{validate:Wa("string")}}}),tn("BlockStatement",{builder:["body","directives"],visitor:["directives","body"],fields:{directives:{validate:Ba("Directive"),default:[]},body:Ma("Statement")},aliases:["Scopable","BlockParent","Block","Statement"]}),tn("BreakStatement",{visitor:["label"],fields:{label:{validate:qa("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),tn("CallExpression",{visitor:["callee","typeParameters","typeArguments","arguments"],builder:["callee","arguments"],aliases:["Expression"],fields:Object.assign({callee:{validate:qa("Expression","Super","V8IntrinsicIdentifier")},arguments:Ma("Expression","SpreadElement","ArgumentPlaceholder"),typeArguments:{validate:qa("TypeParameterInstantiation"),optional:!0}},z.env.BABEL_TYPES_8_BREAKING?{}:{optional:{validate:Wa("boolean"),optional:!0},typeParameters:{validate:qa("TSTypeParameterInstantiation"),optional:!0}})}),tn("CatchClause",{visitor:["param","body"],fields:{param:{validate:qa("Identifier","ArrayPattern","ObjectPattern"),optional:!0},body:{validate:qa("BlockStatement")}},aliases:["Scopable","BlockParent"]}),tn("ConditionalExpression",{visitor:["test","consequent","alternate"],fields:{test:{validate:qa("Expression")},consequent:{validate:qa("Expression")},alternate:{validate:qa("Expression")}},aliases:["Expression","Conditional"]}),tn("ContinueStatement",{visitor:["label"],fields:{label:{validate:qa("Identifier"),optional:!0}},aliases:["Statement","Terminatorless","CompletionStatement"]}),tn("DebuggerStatement",{aliases:["Statement"]}),tn("DoWhileStatement",{builder:["test","body"],visitor:["body","test"],fields:{test:{validate:qa("Expression")},body:{validate:qa("Statement")}},aliases:["Statement","BlockParent","Loop","While","Scopable"]}),tn("EmptyStatement",{aliases:["Statement"]}),tn("ExpressionStatement",{visitor:["expression"],fields:{expression:{validate:qa("Expression")}},aliases:["Statement","ExpressionWrapper"]}),tn("File",{builder:["program","comments","tokens"],visitor:["program"],fields:{program:{validate:qa("Program")},comments:{validate:z.env.BABEL_TYPES_8_BREAKING?Fa(qa("CommentBlock","CommentLine")):Object.assign(function(){},{each:{oneOfNodeTypes:["CommentBlock","CommentLine"]}}),optional:!0},tokens:{validate:Fa(Object.assign(function(){},{type:"any"})),optional:!0}}}),tn("ForInStatement",{visitor:["left","right","body"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:z.env.BABEL_TYPES_8_BREAKING?qa("VariableDeclaration","Identifier","MemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"):qa("VariableDeclaration","LVal")},right:{validate:qa("Expression")},body:{validate:qa("Statement")}}}),tn("ForStatement",{visitor:["init","test","update","body"],aliases:["Scopable","Statement","For","BlockParent","Loop"],fields:{init:{validate:qa("VariableDeclaration","Expression"),optional:!0},test:{validate:qa("Expression"),optional:!0},update:{validate:qa("Expression"),optional:!0},body:{validate:qa("Statement")}}});var rn=function(){return{params:Ma("FunctionParameter"),generator:{default:!1},async:{default:!1}}},an=function(){return{returnType:{validate:qa("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},typeParameters:{validate:qa("TypeParameterDeclaration","TSTypeParameterDeclaration","Noop"),optional:!0}}},nn=function(){return Object.assign({},rn(),{declare:{validate:Wa("boolean"),optional:!0},id:{validate:qa("Identifier"),optional:!0}})};tn("FunctionDeclaration",{builder:["id","params","body","generator","async"],visitor:["id","typeParameters","params","predicate","returnType","body"],fields:Object.assign({},nn(),an(),{body:{validate:qa("BlockStatement")},predicate:{validate:qa("DeclaredPredicate","InferredPredicate"),optional:!0}}),aliases:["Scopable","Function","BlockParent","FunctionParent","Statement","Pureish","Declaration"],validate:z.env.BABEL_TYPES_8_BREAKING?function(){var e=qa("Identifier");return function(t,r,a){kr("ExportDefaultDeclaration",t)||e(a,"id",a.id)}}():void 0}),tn("FunctionExpression",{inherits:"FunctionDeclaration",aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:Object.assign({},rn(),an(),{id:{validate:qa("Identifier"),optional:!0},body:{validate:qa("BlockStatement")},predicate:{validate:qa("DeclaredPredicate","InferredPredicate"),optional:!0}})});var sn,on,dn,cn,ln,un,pn=function(){return{typeAnnotation:{validate:qa("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},optional:{validate:Wa("boolean"),optional:!0},decorators:{validate:Ba("Decorator"),optional:!0}}};tn("Identifier",{builder:["name"],visitor:["typeAnnotation","decorators"],aliases:["Expression","FunctionParameter","PatternLike","LVal","TSEntityName"],fields:Object.assign({},pn(),{name:{validate:z.env.BABEL_TYPES_8_BREAKING?Ha(Wa("string"),Object.assign(function(e,t,r){if(!Yr(r,!1))throw new TypeError('"'+r+'" is not a valid identifier name')},{type:"string"})):Wa("string")}}),validate:z.env.BABEL_TYPES_8_BREAKING?function(e,t,r){var a=/\.(\w+)$/.exec(t.toString());if(a){var n=y(a,2)[1],s={computed:!1};if("property"===n){if(kr("MemberExpression",e,s))return;if(kr("OptionalMemberExpression",e,s))return}else if("key"===n){if(kr("Property",e,s))return;if(kr("Method",e,s))return}else if("exported"===n){if(kr("ExportSpecifier",e))return}else if("imported"===n){if(kr("ImportSpecifier",e,{imported:r}))return}else if("meta"===n&&kr("MetaProperty",e,{meta:r}))return;if((Jr(r.name)||Hr(r.name,!1))&&"this"!==r.name)throw new TypeError('"'+r.name+'" is not a valid identifier')}}:void 0}),tn("IfStatement",{visitor:["test","consequent","alternate"],aliases:["Statement","Conditional"],fields:{test:{validate:qa("Expression")},consequent:{validate:qa("Statement")},alternate:{optional:!0,validate:qa("Statement")}}}),tn("LabeledStatement",{visitor:["label","body"],aliases:["Statement"],fields:{label:{validate:qa("Identifier")},body:{validate:qa("Statement")}}}),tn("StringLiteral",{builder:["value"],fields:{value:{validate:Wa("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),tn("NumericLiteral",{builder:["value"],deprecatedAlias:"NumberLiteral",fields:{value:{validate:Ha(Wa("number"),Object.assign(function(e,t,r){},{type:"number"}))}},aliases:["Expression","Pureish","Literal","Immutable"]}),tn("NullLiteral",{aliases:["Expression","Pureish","Literal","Immutable"]}),tn("BooleanLiteral",{builder:["value"],fields:{value:{validate:Wa("boolean")}},aliases:["Expression","Pureish","Literal","Immutable"]}),tn("RegExpLiteral",{builder:["pattern","flags"],deprecatedAlias:"RegexLiteral",aliases:["Expression","Pureish","Literal"],fields:{pattern:{validate:Wa("string")},flags:{validate:z.env.BABEL_TYPES_8_BREAKING?Ha(Wa("string"),Object.assign(function(e,t,r){var a=/[^dgimsuvy]/.exec(r);if(a)throw new TypeError('"'+a[0]+'" is not a valid RegExp flag')},{type:"string"})):Wa("string"),default:""}}}),tn("LogicalExpression",{builder:["operator","left","right"],visitor:["left","right"],aliases:["Binary","Expression"],fields:{operator:{validate:La.apply(void 0,b(da))},left:{validate:qa("Expression")},right:{validate:qa("Expression")}}}),tn("MemberExpression",{builder:["object","property","computed"].concat(b(z.env.BABEL_TYPES_8_BREAKING?[]:["optional"])),visitor:["object","property"],aliases:["Expression","LVal","PatternLike"],unionShape:{discriminator:"computed",shapes:[{name:"computed",value:[!0],properties:{property:{validate:qa("Expression")}}},{name:"nonComputed",value:[!1],properties:{property:{validate:qa("Identifier","PrivateName")}}}]},fields:Object.assign({object:{validate:qa("Expression","Super")},property:{validate:(sn=qa("Identifier","PrivateName"),on=qa("Expression"),dn=function(e,t,r){var a=e.computed?on:sn;a(e,t,r)},dn.oneOfNodeTypes=["Expression","Identifier","PrivateName"],dn)},computed:{default:!1}},z.env.BABEL_TYPES_8_BREAKING?{}:{optional:{validate:Wa("boolean"),optional:!0}})}),tn("NewExpression",{inherits:"CallExpression"}),tn("Program",{visitor:["directives","body"],builder:["body","directives","sourceType","interpreter"],fields:{sourceType:{validate:La("script","module"),default:"script"},interpreter:{validate:qa("InterpreterDirective"),default:null,optional:!0},directives:{validate:Ba("Directive"),default:[]},body:Ma("Statement")},aliases:["Scopable","BlockParent","Block"]}),tn("ObjectExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:Ma("ObjectMethod","ObjectProperty","SpreadElement")}}),tn("ObjectMethod",Object.assign({builder:["kind","key","params","body","computed","generator","async"],visitor:["decorators","key","typeParameters","params","returnType","body"]},en(),{fields:Object.assign({},rn(),an(),{kind:Object.assign({validate:La("method","get","set")},z.env.BABEL_TYPES_8_BREAKING?{}:{default:"method"}),computed:{default:!1},key:{validate:function(){var e=qa("Identifier","StringLiteral","NumericLiteral","BigIntLiteral"),t=qa("Expression"),r=function(r,a,n){var s=r.computed?t:e;s(r,a,n)};return r.oneOfNodeTypes=["Expression","Identifier","StringLiteral","NumericLiteral","BigIntLiteral"],r}()},decorators:{validate:Ba("Decorator"),optional:!0},body:{validate:qa("BlockStatement")}}),aliases:["UserWhitespacable","Function","Scopable","BlockParent","FunctionParent","Method","ObjectMember"]})),tn("ObjectProperty",{builder:["key","value","computed","shorthand"].concat(b(z.env.BABEL_TYPES_8_BREAKING?[]:["decorators"])),unionShape:{discriminator:"computed",shapes:[{name:"computed",value:[!0],properties:{key:{validate:qa("Expression")}}},{name:"nonComputed",value:[!1],properties:{key:{validate:qa("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","DecimalLiteral","PrivateName")}}}]},fields:{computed:{default:!1},key:{validate:function(){var e=qa("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","DecimalLiteral","PrivateName"),t=qa("Expression"),r=Object.assign(function(r,a,n){(r.computed?t:e)(r,a,n)},{oneOfNodeTypes:["Expression","Identifier","StringLiteral","NumericLiteral","BigIntLiteral","DecimalLiteral","PrivateName"]});return r}()},value:{validate:qa("Expression","PatternLike")},shorthand:{validate:z.env.BABEL_TYPES_8_BREAKING?Ha(Wa("boolean"),Object.assign(function(e,t,r){if(r){if(e.computed)throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true");if(!kr("Identifier",e.key))throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier")}},{type:"boolean"})):Wa("boolean"),default:!1},decorators:{validate:Ba("Decorator"),optional:!0}},visitor:["decorators","key","value"],aliases:["UserWhitespacable","Property","ObjectMember"],validate:z.env.BABEL_TYPES_8_BREAKING?function(){var e=qa("Identifier","Pattern","TSAsExpression","TSSatisfiesExpression","TSNonNullExpression","TSTypeAssertion"),t=qa("Expression");return function(r,a,n){(kr("ObjectPattern",r)?e:t)(n,"value",n.value)}}():void 0}),tn("RestElement",{visitor:["argument","typeAnnotation"],builder:["argument"],aliases:["FunctionParameter","PatternLike","LVal"],deprecatedAlias:"RestProperty",fields:Object.assign({},pn(),{argument:{validate:z.env.BABEL_TYPES_8_BREAKING?qa("Identifier","ArrayPattern","ObjectPattern","MemberExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"):qa("Identifier","ArrayPattern","ObjectPattern","MemberExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression","RestElement","AssignmentPattern")}}),validate:z.env.BABEL_TYPES_8_BREAKING?function(e,t){var r=/(\w+)\[(\d+)\]/.exec(t.toString());if(!r)throw new Error("Internal Babel error: malformed key.");var a=y(r,3),n=a[1],s=a[2];if(e[n].length>+s+1)throw new TypeError("RestElement must be last element of "+n)}:void 0}),tn("ReturnStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:qa("Expression"),optional:!0}}}),tn("SequenceExpression",{visitor:["expressions"],fields:{expressions:Ma("Expression")},aliases:["Expression"]}),tn("ParenthesizedExpression",{visitor:["expression"],aliases:["Expression","ExpressionWrapper"],fields:{expression:{validate:qa("Expression")}}}),tn("SwitchCase",{visitor:["test","consequent"],fields:{test:{validate:qa("Expression"),optional:!0},consequent:Ma("Statement")}}),tn("SwitchStatement",{visitor:["discriminant","cases"],aliases:["Statement","BlockParent","Scopable"],fields:{discriminant:{validate:qa("Expression")},cases:Ma("SwitchCase")}}),tn("ThisExpression",{aliases:["Expression"]}),tn("ThrowStatement",{visitor:["argument"],aliases:["Statement","Terminatorless","CompletionStatement"],fields:{argument:{validate:qa("Expression")}}}),tn("TryStatement",{visitor:["block","handler","finalizer"],aliases:["Statement"],fields:{block:{validate:z.env.BABEL_TYPES_8_BREAKING?Ha(qa("BlockStatement"),Object.assign(function(e){if(!e.handler&&!e.finalizer)throw new TypeError("TryStatement expects either a handler or finalizer, or both")},{oneOfNodeTypes:["BlockStatement"]})):qa("BlockStatement")},handler:{optional:!0,validate:qa("CatchClause")},finalizer:{optional:!0,validate:qa("BlockStatement")}}}),tn("UnaryExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!0},argument:{validate:qa("Expression")},operator:{validate:La.apply(void 0,b(xa))}},visitor:["argument"],aliases:["UnaryLike","Expression"]}),tn("UpdateExpression",{builder:["operator","argument","prefix"],fields:{prefix:{default:!1},argument:{validate:z.env.BABEL_TYPES_8_BREAKING?qa("Identifier","MemberExpression"):qa("Expression")},operator:{validate:La.apply(void 0,b(ca))}},visitor:["argument"],aliases:["Expression"]}),tn("VariableDeclaration",{builder:["kind","declarations"],visitor:["declarations"],aliases:["Statement","Declaration"],fields:{declare:{validate:Wa("boolean"),optional:!0},kind:{validate:La("var","let","const","using","await using")},declarations:Ma("VariableDeclarator")},validate:z.env.BABEL_TYPES_8_BREAKING?(cn=qa("Identifier","Placeholder"),ln=qa("Identifier","ArrayPattern","ObjectPattern","Placeholder"),un=qa("Identifier","VoidPattern","Placeholder"),function(e,t,r){var a=r.kind,n=r.declarations,s=kr("ForXStatement",e,{left:r});if(s&&1!==n.length)throw new TypeError("Exactly one VariableDeclarator is required in the VariableDeclaration of a "+e.type);for(var o,d=i(n);!(o=d()).done;){var c=o.value;"const"===a||"let"===a||"var"===a?s||c.init?ln(c,"id",c.id):cn(c,"id",c.id):un(c,"id",c.id)}}):void 0}),tn("VariableDeclarator",{visitor:["id","init"],fields:{id:{validate:z.env.BABEL_TYPES_8_BREAKING?qa("Identifier","ArrayPattern","ObjectPattern","VoidPattern"):qa("LVal","VoidPattern")},definite:{optional:!0,validate:Wa("boolean")},init:{optional:!0,validate:qa("Expression")}}}),tn("WhileStatement",{visitor:["test","body"],aliases:["Statement","BlockParent","Loop","While","Scopable"],fields:{test:{validate:qa("Expression")},body:{validate:qa("Statement")}}}),tn("WithStatement",{visitor:["object","body"],aliases:["Statement"],fields:{object:{validate:qa("Expression")},body:{validate:qa("Statement")}}}),tn("AssignmentPattern",{visitor:["left","right","decorators"],builder:["left","right"],aliases:["FunctionParameter","Pattern","PatternLike","LVal"],fields:Object.assign({},pn(),{left:{validate:qa("Identifier","ObjectPattern","ArrayPattern","MemberExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression")},right:{validate:qa("Expression")},decorators:{validate:Ba("Decorator"),optional:!0}})}),tn("ArrayPattern",{visitor:["elements","typeAnnotation"],builder:["elements"],aliases:["FunctionParameter","Pattern","PatternLike","LVal"],fields:Object.assign({},pn(),{elements:{validate:Ha(Wa("array"),Fa(Ga("null","PatternLike")))}})}),tn("ArrowFunctionExpression",{builder:["params","body","async"],visitor:["typeParameters","params","predicate","returnType","body"],aliases:["Scopable","Function","BlockParent","FunctionParent","Expression","Pureish"],fields:Object.assign({},rn(),an(),{expression:{validate:Wa("boolean")},body:{validate:qa("BlockStatement","Expression")},predicate:{validate:qa("DeclaredPredicate","InferredPredicate"),optional:!0}})}),tn("ClassBody",{visitor:["body"],fields:{body:Ma("ClassMethod","ClassPrivateMethod","ClassProperty","ClassPrivateProperty","ClassAccessorProperty","TSDeclareMethod","TSIndexSignature","StaticBlock")}}),tn("ClassExpression",{builder:["id","superClass","body","decorators"],visitor:["decorators","id","typeParameters","superClass","superTypeParameters","mixins","implements","body"],aliases:["Scopable","Class","Expression"],fields:(za={id:{validate:qa("Identifier"),optional:!0},typeParameters:{validate:qa("TypeParameterDeclaration","TSTypeParameterDeclaration","Noop"),optional:!0},body:{validate:qa("ClassBody")},superClass:{optional:!0,validate:qa("Expression")}},za.superTypeParameters={validate:qa("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0},za.implements={validate:Ba("TSExpressionWithTypeArguments","ClassImplements"),optional:!0},za.decorators={validate:Ba("Decorator"),optional:!0},za.mixins={validate:qa("InterfaceExtends"),optional:!0},za)}),tn("ClassDeclaration",{inherits:"ClassExpression",aliases:["Scopable","Class","Statement","Declaration"],fields:(Ka={id:{validate:qa("Identifier"),optional:!0},typeParameters:{validate:qa("TypeParameterDeclaration","TSTypeParameterDeclaration","Noop"),optional:!0},body:{validate:qa("ClassBody")},superClass:{optional:!0,validate:qa("Expression")}},Ka.superTypeParameters={validate:qa("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0},Ka.implements={validate:Ba("TSExpressionWithTypeArguments","ClassImplements"),optional:!0},Ka.decorators={validate:Ba("Decorator"),optional:!0},Ka.mixins={validate:qa("InterfaceExtends"),optional:!0},Ka.declare={validate:Wa("boolean"),optional:!0},Ka.abstract={validate:Wa("boolean"),optional:!0},Ka),validate:z.env.BABEL_TYPES_8_BREAKING?function(){var e=qa("Identifier");return function(t,r,a){kr("ExportDefaultDeclaration",t)||e(a,"id",a.id)}}():void 0});var fn,gn,mn={attributes:{optional:!0,validate:Ba("ImportAttribute")}};mn.assertions={deprecated:!0,optional:!0,validate:Ba("ImportAttribute")},tn("ExportAllDeclaration",{builder:["source","attributes"],visitor:["source","attributes","assertions"],aliases:["Statement","Declaration","ImportOrExportDeclaration","ExportDeclaration"],fields:Object.assign({source:{validate:qa("StringLiteral")},exportKind:Da(La("type","value"))},mn)}),tn("ExportDefaultDeclaration",{visitor:["declaration"],aliases:["Statement","Declaration","ImportOrExportDeclaration","ExportDeclaration"],fields:{declaration:Ia("TSDeclareFunction","FunctionDeclaration","ClassDeclaration","Expression"),exportKind:Da(La("value"))}}),tn("ExportNamedDeclaration",{builder:["declaration","specifiers","source","attributes"],visitor:["declaration","specifiers","source","attributes","assertions"],aliases:["Statement","Declaration","ImportOrExportDeclaration","ExportDeclaration"],fields:Object.assign({declaration:{optional:!0,validate:z.env.BABEL_TYPES_8_BREAKING?Ha(qa("Declaration"),Object.assign(function(e,t,r){if(r&&e.specifiers.length)throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration");if(r&&e.source)throw new TypeError("Cannot export a declaration from a source")},{oneOfNodeTypes:["Declaration"]})):qa("Declaration")}},mn,{specifiers:{default:[],validate:Na((fn=qa("ExportSpecifier","ExportDefaultSpecifier","ExportNamespaceSpecifier"),gn=qa("ExportSpecifier"),z.env.BABEL_TYPES_8_BREAKING?Object.assign(function(e,t,r){(e.source?fn:gn)(e,t,r)},{oneOfNodeTypes:["ExportSpecifier","ExportDefaultSpecifier","ExportNamespaceSpecifier"]}):fn))},source:{validate:qa("StringLiteral"),optional:!0},exportKind:Da(La("type","value"))})}),tn("ExportSpecifier",{visitor:["local","exported"],aliases:["ModuleSpecifier"],fields:{local:{validate:qa("Identifier")},exported:{validate:qa("Identifier","StringLiteral")},exportKind:{validate:La("type","value"),optional:!0}}}),tn("ForOfStatement",{visitor:["left","right","body"],builder:["left","right","body","await"],aliases:["Scopable","Statement","For","BlockParent","Loop","ForXStatement"],fields:{left:{validate:function(){if(!z.env.BABEL_TYPES_8_BREAKING)return qa("VariableDeclaration","LVal");var e=qa("VariableDeclaration"),t=qa("Identifier","MemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression");return Object.assign(function(r,a,n){kr("VariableDeclaration",n)?e(r,a,n):t(r,a,n)},{oneOfNodeTypes:["VariableDeclaration","Identifier","MemberExpression","ArrayPattern","ObjectPattern","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","TSNonNullExpression"]})}()},right:{validate:qa("Expression")},body:{validate:qa("Statement")},await:{default:!1}}}),tn("ImportDeclaration",{builder:["specifiers","source","attributes"],visitor:["specifiers","source","attributes","assertions"],aliases:["Statement","Declaration","ImportOrExportDeclaration"],fields:Object.assign({},mn,{module:{optional:!0,validate:Wa("boolean")},phase:{default:null,validate:La("source","defer")},specifiers:Ma("ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier"),source:{validate:qa("StringLiteral")},importKind:{validate:La("type","typeof","value"),optional:!0}})}),tn("ImportDefaultSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:qa("Identifier")}}}),tn("ImportNamespaceSpecifier",{visitor:["local"],aliases:["ModuleSpecifier"],fields:{local:{validate:qa("Identifier")}}}),tn("ImportSpecifier",{visitor:["imported","local"],builder:["local","imported"],aliases:["ModuleSpecifier"],fields:{local:{validate:qa("Identifier")},imported:{validate:qa("Identifier","StringLiteral")},importKind:{validate:La("type","typeof","value"),optional:!0}}}),tn("ImportExpression",{visitor:["source","options"],aliases:["Expression"],fields:{phase:{default:null,validate:La("source","defer")},source:{validate:qa("Expression")},options:{validate:qa("Expression"),optional:!0}}}),tn("MetaProperty",{visitor:["meta","property"],aliases:["Expression"],fields:{meta:{validate:z.env.BABEL_TYPES_8_BREAKING?Ha(qa("Identifier"),Object.assign(function(e,t,r){var a;switch(r.name){case"function":a="sent";break;case"new":a="target";break;case"import":a="meta"}if(!kr("Identifier",e.property,{name:a}))throw new TypeError("Unrecognised MetaProperty")},{oneOfNodeTypes:["Identifier"]})):qa("Identifier")},property:{validate:qa("Identifier")}}});var yn=function(){return{abstract:{validate:Wa("boolean"),optional:!0},accessibility:{validate:La("public","private","protected"),optional:!0},static:{default:!1},override:{default:!1},computed:{default:!1},optional:{validate:Wa("boolean"),optional:!0},key:{validate:Ha(function(){var e=qa("Identifier","StringLiteral","NumericLiteral","BigIntLiteral"),t=qa("Expression");return function(r,a,n){(r.computed?t:e)(r,a,n)}}(),qa("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","Expression"))}}},hn=function(){return Object.assign({},rn(),yn(),{params:Ma("FunctionParameter","TSParameterProperty"),kind:{validate:La("get","set","method","constructor"),default:"method"},access:{validate:Ha(Wa("string"),La("public","private","protected")),optional:!0},decorators:{validate:Ba("Decorator"),optional:!0}})};tn("ClassMethod",Object.assign({aliases:["Function","Scopable","BlockParent","FunctionParent","Method"],builder:["kind","key","params","body","computed","static","generator","async"],visitor:["decorators","key","typeParameters","params","returnType","body"]},en(),{fields:Object.assign({},hn(),an(),{body:{validate:qa("BlockStatement")}})})),tn("ObjectPattern",{visitor:["decorators","properties","typeAnnotation"],builder:["properties"],aliases:["FunctionParameter","Pattern","PatternLike","LVal"],fields:Object.assign({},pn(),{properties:Ma("RestElement","ObjectProperty")})}),tn("SpreadElement",{visitor:["argument"],aliases:["UnaryLike"],deprecatedAlias:"SpreadProperty",fields:{argument:{validate:qa("Expression")}}}),tn("Super",{aliases:["Expression"]}),tn("TaggedTemplateExpression",{visitor:["tag","typeParameters","quasi"],builder:["tag","quasi"],aliases:["Expression"],fields:(Xa={tag:{validate:qa("Expression")},quasi:{validate:qa("TemplateLiteral")}},Xa.typeParameters={validate:qa("TypeParameterInstantiation","TSTypeParameterInstantiation"),optional:!0},Xa)}),tn("TemplateElement",{builder:["value","tail"],fields:{value:{validate:Ha(function(e){var t=Object.keys(e);function r(r,a,n){for(var s,o=[],d=i(t);!(s=d()).done;){var c=s.value;try{ts(r,c,n[c],e[c])}catch(e){if(e instanceof TypeError){o.push(e.message);continue}throw e}}if(o.length)throw new TypeError("Property "+a+" of "+r.type+" expected to have the following:\n"+o.join("\n"))}return r.shapeOf=e,r}({raw:{validate:Wa("string")},cooked:{validate:Wa("string"),optional:!0}}),function(e){var t=e.value.raw,r=!1,a=function(){throw new Error("Internal @babel/types error.")},n=ea("template",t,0,0,0,{unterminated:function(){r=!0},strictNumericEscape:a,invalidEscapeSequence:a,numericSeparatorInEscapeSequence:a,unexpectedNumericSeparator:a,invalidDigit:a,invalidCodePoint:a}),s=n.str,o=n.firstInvalidLoc;if(!r)throw new Error("Invalid raw");e.value.cooked=o?null:s})},tail:{default:!1}}}),tn("TemplateLiteral",{visitor:["quasis","expressions"],aliases:["Expression","Literal"],fields:{quasis:Ma("TemplateElement"),expressions:{validate:Ha(Wa("array"),Fa(qa("Expression","TSType")),function(e,t,r){if(e.quasis.length!==r.length+1)throw new TypeError("Number of "+e.type+" quasis should be exactly one more than the number of expressions.\nExpected "+(r.length+1)+" quasis but got "+e.quasis.length)})}}}),tn("YieldExpression",{builder:["argument","delegate"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{delegate:{validate:z.env.BABEL_TYPES_8_BREAKING?Ha(Wa("boolean"),Object.assign(function(e,t,r){if(r&&!e.argument)throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument")},{type:"boolean"})):Wa("boolean"),default:!1},argument:{optional:!0,validate:qa("Expression")}}}),tn("AwaitExpression",{builder:["argument"],visitor:["argument"],aliases:["Expression","Terminatorless"],fields:{argument:{validate:qa("Expression")}}}),tn("Import",{aliases:["Expression"]}),tn("BigIntLiteral",{builder:["value"],fields:{value:{validate:Wa("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),tn("ExportNamespaceSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:qa("Identifier")}}}),tn("OptionalMemberExpression",{builder:["object","property","computed","optional"],visitor:["object","property"],aliases:["Expression"],fields:{object:{validate:qa("Expression")},property:{validate:function(){var e=qa("Identifier"),t=qa("Expression"),r=Object.assign(function(r,a,n){(r.computed?t:e)(r,a,n)},{oneOfNodeTypes:["Expression","Identifier"]});return r}()},computed:{default:!1},optional:{validate:z.env.BABEL_TYPES_8_BREAKING?Ha(Wa("boolean"),Va()):Wa("boolean")}}}),tn("OptionalCallExpression",{visitor:["callee","typeParameters","typeArguments","arguments"],builder:["callee","arguments","optional"],aliases:["Expression"],fields:Object.assign({callee:{validate:qa("Expression")},arguments:Ma("Expression","SpreadElement","ArgumentPlaceholder"),optional:{validate:z.env.BABEL_TYPES_8_BREAKING?Ha(Wa("boolean"),Va()):Wa("boolean")},typeArguments:{validate:qa("TypeParameterInstantiation"),optional:!0}},{typeParameters:{validate:qa("TSTypeParameterInstantiation"),optional:!0}})}),tn("ClassProperty",Object.assign({visitor:["decorators","variance","key","typeAnnotation","value"],builder:["key","value","typeAnnotation","decorators","computed","static"],aliases:["Property"]},en(),{fields:Object.assign({},yn(),{value:{validate:qa("Expression"),optional:!0},definite:{validate:Wa("boolean"),optional:!0},typeAnnotation:{validate:qa("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},decorators:{validate:Ba("Decorator"),optional:!0},readonly:{validate:Wa("boolean"),optional:!0},declare:{validate:Wa("boolean"),optional:!0},variance:{validate:qa("Variance"),optional:!0}})})),tn("ClassAccessorProperty",Object.assign({visitor:["decorators","key","typeAnnotation","value"],builder:["key","value","typeAnnotation","decorators","computed","static"],aliases:["Property","Accessor"]},en(!0),{fields:Object.assign({},yn(),{key:{validate:Ha(function(){var e=qa("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","PrivateName"),t=qa("Expression");return function(r,a,n){(r.computed?t:e)(r,a,n)}}(),qa("Identifier","StringLiteral","NumericLiteral","BigIntLiteral","Expression","PrivateName"))},value:{validate:qa("Expression"),optional:!0},definite:{validate:Wa("boolean"),optional:!0},typeAnnotation:{validate:qa("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},decorators:{validate:Ba("Decorator"),optional:!0},readonly:{validate:Wa("boolean"),optional:!0},declare:{validate:Wa("boolean"),optional:!0},variance:{validate:qa("Variance"),optional:!0}})})),tn("ClassPrivateProperty",{visitor:["decorators","variance","key","typeAnnotation","value"],builder:["key","value","decorators","static"],aliases:["Property","Private"],fields:{key:{validate:qa("PrivateName")},value:{validate:qa("Expression"),optional:!0},typeAnnotation:{validate:qa("TypeAnnotation","TSTypeAnnotation","Noop"),optional:!0},decorators:{validate:Ba("Decorator"),optional:!0},static:{validate:Wa("boolean"),default:!1},readonly:{validate:Wa("boolean"),optional:!0},optional:{validate:Wa("boolean"),optional:!0},definite:{validate:Wa("boolean"),optional:!0},variance:{validate:qa("Variance"),optional:!0}}}),tn("ClassPrivateMethod",{builder:["kind","key","params","body","static"],visitor:["decorators","key","typeParameters","params","returnType","body"],aliases:["Function","Scopable","BlockParent","FunctionParent","Method","Private"],fields:Object.assign({},hn(),an(),{kind:{validate:La("get","set","method"),default:"method"},key:{validate:qa("PrivateName")},body:{validate:qa("BlockStatement")}})}),tn("PrivateName",{visitor:["id"],aliases:["Private"],fields:{id:{validate:qa("Identifier")}}}),tn("StaticBlock",{visitor:["body"],fields:{body:Ma("Statement")},aliases:["Scopable","BlockParent","FunctionParent"]}),tn("ImportAttribute",{visitor:["key","value"],fields:{key:{validate:qa("Identifier","StringLiteral")},value:{validate:qa("StringLiteral")}}});var bn=Qa("Flow"),vn=function(e){var t="DeclareClass"===e;bn(e,{builder:["id","typeParameters","extends","body"],visitor:["id","typeParameters","extends"].concat(b(t?["mixins","implements"]:[]),["body"]),aliases:["FlowDeclaration","Statement","Declaration"],fields:Object.assign({id:Ia("Identifier"),typeParameters:Oa("TypeParameterDeclaration"),extends:Da(Ba("InterfaceExtends"))},t?{mixins:Da(Ba("InterfaceExtends")),implements:Da(Ba("ClassImplements"))}:{},{body:Ia("ObjectTypeAnnotation")})})};bn("AnyTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("ArrayTypeAnnotation",{visitor:["elementType"],aliases:["FlowType"],fields:{elementType:Ia("FlowType")}}),bn("BooleanTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("BooleanLiteralTypeAnnotation",{builder:["value"],aliases:["FlowType"],fields:{value:_a(Wa("boolean"))}}),bn("NullLiteralTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("ClassImplements",{visitor:["id","typeParameters"],fields:{id:Ia("Identifier"),typeParameters:Oa("TypeParameterInstantiation")}}),vn("DeclareClass"),bn("DeclareFunction",{builder:["id"],visitor:["id","predicate"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Ia("Identifier"),predicate:Oa("DeclaredPredicate")}}),vn("DeclareInterface"),bn("DeclareModule",{builder:["id","body","kind"],visitor:["id","body"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Ia("Identifier","StringLiteral"),body:Ia("BlockStatement"),kind:Da(La("CommonJS","ES"))}}),bn("DeclareModuleExports",{visitor:["typeAnnotation"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{typeAnnotation:Ia("TypeAnnotation")}}),bn("DeclareTypeAlias",{visitor:["id","typeParameters","right"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Ia("Identifier"),typeParameters:Oa("TypeParameterDeclaration"),right:Ia("FlowType")}}),bn("DeclareOpaqueType",{visitor:["id","typeParameters","supertype"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Ia("Identifier"),typeParameters:Oa("TypeParameterDeclaration"),supertype:Oa("FlowType"),impltype:Oa("FlowType")}}),bn("DeclareVariable",{visitor:["id"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Ia("Identifier")}}),bn("DeclareExportDeclaration",{visitor:["declaration","specifiers","source","attributes"],aliases:["FlowDeclaration","Statement","Declaration"],fields:Object.assign({declaration:Oa("Flow"),specifiers:Da(Ba("ExportSpecifier","ExportNamespaceSpecifier")),source:Oa("StringLiteral"),default:Da(Wa("boolean"))},mn)}),bn("DeclareExportAllDeclaration",{visitor:["source","attributes"],aliases:["FlowDeclaration","Statement","Declaration"],fields:Object.assign({source:Ia("StringLiteral"),exportKind:Da(La("type","value"))},mn)}),bn("DeclaredPredicate",{visitor:["value"],aliases:["FlowPredicate"],fields:{value:Ia("Flow")}}),bn("ExistsTypeAnnotation",{aliases:["FlowType"]}),bn("FunctionTypeAnnotation",{builder:["typeParameters","params","rest","returnType"],visitor:["typeParameters","this","params","rest","returnType"],aliases:["FlowType"],fields:{typeParameters:Oa("TypeParameterDeclaration"),params:Ma("FunctionTypeParam"),rest:Oa("FunctionTypeParam"),this:Oa("FunctionTypeParam"),returnType:Ia("FlowType")}}),bn("FunctionTypeParam",{visitor:["name","typeAnnotation"],fields:{name:Oa("Identifier"),typeAnnotation:Ia("FlowType"),optional:Da(Wa("boolean"))}}),bn("GenericTypeAnnotation",{visitor:["id","typeParameters"],aliases:["FlowType"],fields:{id:Ia("Identifier","QualifiedTypeIdentifier"),typeParameters:Oa("TypeParameterInstantiation")}}),bn("InferredPredicate",{aliases:["FlowPredicate"]}),bn("InterfaceExtends",{visitor:["id","typeParameters"],fields:{id:Ia("Identifier","QualifiedTypeIdentifier"),typeParameters:Oa("TypeParameterInstantiation")}}),vn("InterfaceDeclaration"),bn("InterfaceTypeAnnotation",{visitor:["extends","body"],aliases:["FlowType"],fields:{extends:Da(Ba("InterfaceExtends")),body:Ia("ObjectTypeAnnotation")}}),bn("IntersectionTypeAnnotation",{visitor:["types"],aliases:["FlowType"],fields:{types:_a(Ba("FlowType"))}}),bn("MixedTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("EmptyTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("NullableTypeAnnotation",{visitor:["typeAnnotation"],aliases:["FlowType"],fields:{typeAnnotation:Ia("FlowType")}}),bn("NumberLiteralTypeAnnotation",{builder:["value"],aliases:["FlowType"],fields:{value:_a(Wa("number"))}}),bn("NumberTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("ObjectTypeAnnotation",{visitor:["properties","indexers","callProperties","internalSlots"],aliases:["FlowType"],builder:["properties","indexers","callProperties","internalSlots","exact"],fields:{properties:_a(Ba("ObjectTypeProperty","ObjectTypeSpreadProperty")),indexers:{validate:Ba("ObjectTypeIndexer"),optional:!0,default:[]},callProperties:{validate:Ba("ObjectTypeCallProperty"),optional:!0,default:[]},internalSlots:{validate:Ba("ObjectTypeInternalSlot"),optional:!0,default:[]},exact:{validate:Wa("boolean"),default:!1},inexact:Da(Wa("boolean"))}}),bn("ObjectTypeInternalSlot",{visitor:["id","value"],builder:["id","value","optional","static","method"],aliases:["UserWhitespacable"],fields:{id:Ia("Identifier"),value:Ia("FlowType"),optional:_a(Wa("boolean")),static:_a(Wa("boolean")),method:_a(Wa("boolean"))}}),bn("ObjectTypeCallProperty",{visitor:["value"],aliases:["UserWhitespacable"],fields:{value:Ia("FlowType"),static:_a(Wa("boolean"))}}),bn("ObjectTypeIndexer",{visitor:["variance","id","key","value"],builder:["id","key","value","variance"],aliases:["UserWhitespacable"],fields:{id:Oa("Identifier"),key:Ia("FlowType"),value:Ia("FlowType"),static:_a(Wa("boolean")),variance:Oa("Variance")}}),bn("ObjectTypeProperty",{visitor:["key","value","variance"],aliases:["UserWhitespacable"],fields:{key:Ia("Identifier","StringLiteral"),value:Ia("FlowType"),kind:_a(La("init","get","set")),static:_a(Wa("boolean")),proto:_a(Wa("boolean")),optional:_a(Wa("boolean")),variance:Oa("Variance"),method:_a(Wa("boolean"))}}),bn("ObjectTypeSpreadProperty",{visitor:["argument"],aliases:["UserWhitespacable"],fields:{argument:Ia("FlowType")}}),bn("OpaqueType",{visitor:["id","typeParameters","supertype","impltype"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Ia("Identifier"),typeParameters:Oa("TypeParameterDeclaration"),supertype:Oa("FlowType"),impltype:Ia("FlowType")}}),bn("QualifiedTypeIdentifier",{visitor:["qualification","id"],builder:["id","qualification"],fields:{id:Ia("Identifier"),qualification:Ia("Identifier","QualifiedTypeIdentifier")}}),bn("StringLiteralTypeAnnotation",{builder:["value"],aliases:["FlowType"],fields:{value:_a(Wa("string"))}}),bn("StringTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("SymbolTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("ThisTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("TupleTypeAnnotation",{visitor:["types"],aliases:["FlowType"],fields:{types:_a(Ba("FlowType"))}}),bn("TypeofTypeAnnotation",{visitor:["argument"],aliases:["FlowType"],fields:{argument:Ia("FlowType")}}),bn("TypeAlias",{visitor:["id","typeParameters","right"],aliases:["FlowDeclaration","Statement","Declaration"],fields:{id:Ia("Identifier"),typeParameters:Oa("TypeParameterDeclaration"),right:Ia("FlowType")}}),bn("TypeAnnotation",{visitor:["typeAnnotation"],fields:{typeAnnotation:Ia("FlowType")}}),bn("TypeCastExpression",{visitor:["expression","typeAnnotation"],aliases:["ExpressionWrapper","Expression"],fields:{expression:Ia("Expression"),typeAnnotation:Ia("TypeAnnotation")}}),bn("TypeParameter",{visitor:["bound","default","variance"],fields:{name:_a(Wa("string")),bound:Oa("TypeAnnotation"),default:Oa("FlowType"),variance:Oa("Variance")}}),bn("TypeParameterDeclaration",{visitor:["params"],fields:{params:_a(Ba("TypeParameter"))}}),bn("TypeParameterInstantiation",{visitor:["params"],fields:{params:_a(Ba("FlowType"))}}),bn("UnionTypeAnnotation",{visitor:["types"],aliases:["FlowType"],fields:{types:_a(Ba("FlowType"))}}),bn("Variance",{builder:["kind"],fields:{kind:_a(La("minus","plus"))}}),bn("VoidTypeAnnotation",{aliases:["FlowType","FlowBaseAnnotation"]}),bn("EnumDeclaration",{aliases:["Statement","Declaration"],visitor:["id","body"],fields:{id:Ia("Identifier"),body:Ia("EnumBooleanBody","EnumNumberBody","EnumStringBody","EnumSymbolBody")}}),bn("EnumBooleanBody",{aliases:["EnumBody"],visitor:["members"],fields:{explicitType:_a(Wa("boolean")),members:Ma("EnumBooleanMember"),hasUnknownMembers:_a(Wa("boolean"))}}),bn("EnumNumberBody",{aliases:["EnumBody"],visitor:["members"],fields:{explicitType:_a(Wa("boolean")),members:Ma("EnumNumberMember"),hasUnknownMembers:_a(Wa("boolean"))}}),bn("EnumStringBody",{aliases:["EnumBody"],visitor:["members"],fields:{explicitType:_a(Wa("boolean")),members:Ma("EnumStringMember","EnumDefaultedMember"),hasUnknownMembers:_a(Wa("boolean"))}}),bn("EnumSymbolBody",{aliases:["EnumBody"],visitor:["members"],fields:{members:Ma("EnumDefaultedMember"),hasUnknownMembers:_a(Wa("boolean"))}}),bn("EnumBooleanMember",{aliases:["EnumMember"],builder:["id"],visitor:["id","init"],fields:{id:Ia("Identifier"),init:Ia("BooleanLiteral")}}),bn("EnumNumberMember",{aliases:["EnumMember"],visitor:["id","init"],fields:{id:Ia("Identifier"),init:Ia("NumericLiteral")}}),bn("EnumStringMember",{aliases:["EnumMember"],visitor:["id","init"],fields:{id:Ia("Identifier"),init:Ia("StringLiteral")}}),bn("EnumDefaultedMember",{aliases:["EnumMember"],visitor:["id"],fields:{id:Ia("Identifier")}}),bn("IndexedAccessType",{visitor:["objectType","indexType"],aliases:["FlowType"],fields:{objectType:Ia("FlowType"),indexType:Ia("FlowType")}}),bn("OptionalIndexedAccessType",{visitor:["objectType","indexType"],aliases:["FlowType"],fields:{objectType:Ia("FlowType"),indexType:Ia("FlowType"),optional:_a(Wa("boolean"))}});var xn=Qa("JSX");xn("JSXAttribute",{visitor:["name","value"],aliases:["Immutable"],fields:{name:{validate:qa("JSXIdentifier","JSXNamespacedName")},value:{optional:!0,validate:qa("JSXElement","JSXFragment","StringLiteral","JSXExpressionContainer")}}}),xn("JSXClosingElement",{visitor:["name"],aliases:["Immutable"],fields:{name:{validate:qa("JSXIdentifier","JSXMemberExpression","JSXNamespacedName")}}}),xn("JSXElement",{builder:["openingElement","closingElement","children","selfClosing"],visitor:["openingElement","children","closingElement"],aliases:["Immutable","Expression"],fields:Object.assign({openingElement:{validate:qa("JSXOpeningElement")},closingElement:{optional:!0,validate:qa("JSXClosingElement")},children:Ma("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement","JSXFragment")},{selfClosing:{validate:Wa("boolean"),optional:!0}})}),xn("JSXEmptyExpression",{}),xn("JSXExpressionContainer",{visitor:["expression"],aliases:["Immutable"],fields:{expression:{validate:qa("Expression","JSXEmptyExpression")}}}),xn("JSXSpreadChild",{visitor:["expression"],aliases:["Immutable"],fields:{expression:{validate:qa("Expression")}}}),xn("JSXIdentifier",{builder:["name"],fields:{name:{validate:Wa("string")}}}),xn("JSXMemberExpression",{visitor:["object","property"],fields:{object:{validate:qa("JSXMemberExpression","JSXIdentifier")},property:{validate:qa("JSXIdentifier")}}}),xn("JSXNamespacedName",{visitor:["namespace","name"],fields:{namespace:{validate:qa("JSXIdentifier")},name:{validate:qa("JSXIdentifier")}}}),xn("JSXOpeningElement",{builder:["name","attributes","selfClosing"],visitor:["name","typeParameters","typeArguments","attributes"],aliases:["Immutable"],fields:Object.assign({name:{validate:qa("JSXIdentifier","JSXMemberExpression","JSXNamespacedName")},selfClosing:{default:!1},attributes:Ma("JSXAttribute","JSXSpreadAttribute"),typeArguments:{validate:qa("TypeParameterInstantiation"),optional:!0}},{typeParameters:{validate:qa("TSTypeParameterInstantiation"),optional:!0}})}),xn("JSXSpreadAttribute",{visitor:["argument"],fields:{argument:{validate:qa("Expression")}}}),xn("JSXText",{aliases:["Immutable"],builder:["value"],fields:{value:{validate:Wa("string")}}}),xn("JSXFragment",{builder:["openingFragment","closingFragment","children"],visitor:["openingFragment","children","closingFragment"],aliases:["Immutable","Expression"],fields:{openingFragment:{validate:qa("JSXOpeningFragment")},closingFragment:{validate:qa("JSXClosingFragment")},children:Ma("JSXText","JSXExpressionContainer","JSXSpreadChild","JSXElement","JSXFragment")}}),xn("JSXOpeningFragment",{aliases:["Immutable"]}),xn("JSXClosingFragment",{aliases:["Immutable"]});for(var Rn=["Identifier","StringLiteral","Expression","Statement","Declaration","BlockStatement","ClassBody","Pattern"],jn={Declaration:["Statement"],Pattern:["PatternLike","LVal"]},wn=0,En=Rn;wn<En.length;wn++){var Sn=En[wn],Tn=wa[Sn];null!=Tn&&Tn.length&&(jn[Sn]=Tn)}var Pn={};Object.keys(jn).forEach(function(e){jn[e].forEach(function(t){hasOwnProperty.call(Pn,t)||(Pn[t]=[]),Pn[t].push(e)})});var An,kn,Cn,_n=Qa("Miscellaneous");_n("Noop",{visitor:[]}),_n("Placeholder",{visitor:[],builder:["expectedNode","name"],fields:Object.assign({name:{validate:qa("Identifier")},expectedNode:{validate:La.apply(void 0,b(Rn))}},pn())}),_n("V8IntrinsicIdentifier",{builder:["name"],fields:{name:{validate:Wa("string")}}}),Za("ArgumentPlaceholder",{}),Za("BindExpression",{visitor:["object","callee"],aliases:["Expression"],fields:z.env.BABEL_TYPES_8_BREAKING?{object:{validate:qa("Expression")},callee:{validate:qa("Expression")}}:{object:{validate:Object.assign(function(){},{oneOfNodeTypes:["Expression"]})},callee:{validate:Object.assign(function(){},{oneOfNodeTypes:["Expression"]})}}}),Za("Decorator",{visitor:["expression"],fields:{expression:{validate:qa("Expression")}}}),Za("DoExpression",{visitor:["body"],builder:["body","async"],aliases:["Expression"],fields:{body:{validate:qa("BlockStatement")},async:{validate:Wa("boolean"),default:!1}}}),Za("ExportDefaultSpecifier",{visitor:["exported"],aliases:["ModuleSpecifier"],fields:{exported:{validate:qa("Identifier")}}}),Za("RecordExpression",{visitor:["properties"],aliases:["Expression"],fields:{properties:Ma("ObjectProperty","SpreadElement")}}),Za("TupleExpression",{fields:{elements:{validate:Ba("Expression","SpreadElement"),default:[]}},visitor:["elements"],aliases:["Expression"]}),Za("DecimalLiteral",{builder:["value"],fields:{value:{validate:Wa("string")}},aliases:["Expression","Pureish","Literal","Immutable"]}),Za("ModuleExpression",{visitor:["body"],fields:{body:{validate:qa("Program")}},aliases:["Expression"]}),Za("TopicReference",{aliases:["Expression"]}),Za("PipelineTopicExpression",{builder:["expression"],visitor:["expression"],fields:{expression:{validate:qa("Expression")}},aliases:["Expression"]}),Za("PipelineBareFunction",{builder:["callee"],visitor:["callee"],fields:{callee:{validate:qa("Expression")}},aliases:["Expression"]}),Za("PipelinePrimaryTopicReference",{aliases:["Expression"]}),Za("VoidPattern",{aliases:["Pattern","PatternLike","FunctionParameter"]});var In=Qa("TypeScript"),Dn=Wa("boolean"),On=function(){return{returnType:{validate:qa("TSTypeAnnotation","Noop"),optional:!0},typeParameters:{validate:qa("TSTypeParameterDeclaration","Noop"),optional:!0}}};In("TSParameterProperty",{aliases:["LVal"],visitor:["parameter"],fields:{accessibility:{validate:La("public","private","protected"),optional:!0},readonly:{validate:Wa("boolean"),optional:!0},parameter:{validate:qa("Identifier","AssignmentPattern")},override:{validate:Wa("boolean"),optional:!0},decorators:{validate:Ba("Decorator"),optional:!0}}}),In("TSDeclareFunction",{aliases:["Statement","Declaration"],visitor:["id","typeParameters","params","returnType"],fields:Object.assign({},nn(),On())}),In("TSDeclareMethod",Object.assign({visitor:["decorators","key","typeParameters","params","returnType"]},en(),{fields:Object.assign({},hn(),On())})),In("TSQualifiedName",{aliases:["TSEntityName"],visitor:["left","right"],fields:{left:Ia("TSEntityName"),right:Ia("Identifier")}});var Nn=function(){var e;return(e={typeParameters:Oa("TSTypeParameterDeclaration")}).parameters=Ma("ArrayPattern","Identifier","ObjectPattern","RestElement"),e.typeAnnotation=Oa("TSTypeAnnotation"),e},Bn={aliases:["TSTypeElement"],visitor:["typeParameters","parameters","typeAnnotation"],fields:Nn()};In("TSCallSignatureDeclaration",Bn),In("TSConstructSignatureDeclaration",Bn);var Mn=function(){return{key:Ia("Expression"),computed:{default:!1},optional:Da(Dn)}};In("TSPropertySignature",{aliases:["TSTypeElement"],visitor:["key","typeAnnotation"],fields:Object.assign({},Mn(),{readonly:Da(Dn),typeAnnotation:Oa("TSTypeAnnotation"),kind:{optional:!0,validate:La("get","set")}})}),In("TSMethodSignature",{aliases:["TSTypeElement"],visitor:["key","typeParameters","parameters","typeAnnotation"],fields:Object.assign({},Nn(),Mn(),{kind:{validate:La("method","get","set")}})}),In("TSIndexSignature",{aliases:["TSTypeElement"],visitor:["parameters","typeAnnotation"],fields:{readonly:Da(Dn),static:Da(Dn),parameters:Ma("Identifier"),typeAnnotation:Oa("TSTypeAnnotation")}});for(var Fn=0,Ln=["TSAnyKeyword","TSBooleanKeyword","TSBigIntKeyword","TSIntrinsicKeyword","TSNeverKeyword","TSNullKeyword","TSNumberKeyword","TSObjectKeyword","TSStringKeyword","TSSymbolKeyword","TSUndefinedKeyword","TSUnknownKeyword","TSVoidKeyword"];Fn<Ln.length;Fn++){In(Ln[Fn],{aliases:["TSType","TSBaseType"],visitor:[],fields:{}})}In("TSThisType",{aliases:["TSType","TSBaseType"],visitor:[],fields:{}});var Un={aliases:["TSType"],visitor:["typeParameters","parameters","typeAnnotation"]};In("TSFunctionType",Object.assign({},Un,{fields:Nn()})),In("TSConstructorType",Object.assign({},Un,{fields:Object.assign({},Nn(),{abstract:Da(Dn)})})),In("TSTypeReference",{aliases:["TSType"],visitor:["typeName","typeParameters"],fields:(An={typeName:Ia("TSEntityName")},An.typeParameters=Oa("TSTypeParameterInstantiation"),An)}),In("TSTypePredicate",{aliases:["TSType"],visitor:["parameterName","typeAnnotation"],builder:["parameterName","typeAnnotation","asserts"],fields:{parameterName:Ia("Identifier","TSThisType"),typeAnnotation:Oa("TSTypeAnnotation"),asserts:Da(Dn)}}),In("TSTypeQuery",{aliases:["TSType"],visitor:["exprName","typeParameters"],fields:(kn={exprName:Ia("TSEntityName","TSImportType")},kn.typeParameters=Oa("TSTypeParameterInstantiation"),kn)}),In("TSTypeLiteral",{aliases:["TSType"],visitor:["members"],fields:{members:Ma("TSTypeElement")}}),In("TSArrayType",{aliases:["TSType"],visitor:["elementType"],fields:{elementType:Ia("TSType")}}),In("TSTupleType",{aliases:["TSType"],visitor:["elementTypes"],fields:{elementTypes:Ma("TSType","TSNamedTupleMember")}}),In("TSOptionalType",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{typeAnnotation:Ia("TSType")}}),In("TSRestType",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{typeAnnotation:Ia("TSType")}}),In("TSNamedTupleMember",{visitor:["label","elementType"],builder:["label","elementType","optional"],fields:{label:Ia("Identifier"),optional:{validate:Dn,default:!1},elementType:Ia("TSType")}});var qn={aliases:["TSType"],visitor:["types"],fields:{types:Ma("TSType")}};In("TSUnionType",qn),In("TSIntersectionType",qn),In("TSConditionalType",{aliases:["TSType"],visitor:["checkType","extendsType","trueType","falseType"],fields:{checkType:Ia("TSType"),extendsType:Ia("TSType"),trueType:Ia("TSType"),falseType:Ia("TSType")}}),In("TSInferType",{aliases:["TSType"],visitor:["typeParameter"],fields:{typeParameter:Ia("TSTypeParameter")}}),In("TSParenthesizedType",{aliases:["TSType"],visitor:["typeAnnotation"],fields:{typeAnnotation:Ia("TSType")}}),In("TSTypeOperator",{aliases:["TSType"],visitor:["typeAnnotation"],builder:["typeAnnotation","operator"],fields:{operator:{validate:Wa("string"),default:"keyof"},typeAnnotation:Ia("TSType")}}),In("TSIndexedAccessType",{aliases:["TSType"],visitor:["objectType","indexType"],fields:{objectType:Ia("TSType"),indexType:Ia("TSType")}}),In("TSMappedType",{aliases:["TSType"],visitor:["typeParameter","nameType","typeAnnotation"],builder:["typeParameter","typeAnnotation","nameType"],fields:Object.assign({},{typeParameter:Ia("TSTypeParameter")},{readonly:Da(La(!0,!1,"+","-")),optional:Da(La(!0,!1,"+","-")),typeAnnotation:Oa("TSType"),nameType:Oa("TSType")})}),In("TSTemplateLiteralType",{aliases:["TSType","TSBaseType"],visitor:["quasis","types"],fields:{quasis:Ma("TemplateElement"),types:{validate:Ha(Wa("array"),Fa(qa("TSType")),function(e,t,r){if(e.quasis.length!==r.length+1)throw new TypeError("Number of "+e.type+" quasis should be exactly one more than the number of types.\nExpected "+(r.length+1)+" quasis but got "+e.quasis.length)})}}}),In("TSLiteralType",{aliases:["TSType","TSBaseType"],visitor:["literal"],fields:{literal:{validate:function(){var e=qa("NumericLiteral","BigIntLiteral"),t=La("-"),r=qa("NumericLiteral","StringLiteral","BooleanLiteral","BigIntLiteral","TemplateLiteral"),a=function(a,n,s){kr("UnaryExpression",s)?(t(s,"operator",s.operator),e(s,"argument",s.argument)):r(a,n,s)};return a.oneOfNodeTypes=["NumericLiteral","StringLiteral","BooleanLiteral","BigIntLiteral","TemplateLiteral","UnaryExpression"],a}()}}}),In("TSExpressionWithTypeArguments",{aliases:["TSType"],visitor:["expression","typeParameters"],fields:{expression:Ia("TSEntityName"),typeParameters:Oa("TSTypeParameterInstantiation")}}),In("TSInterfaceDeclaration",{aliases:["Statement","Declaration"],visitor:["id","typeParameters","extends","body"],fields:{declare:Da(Dn),id:Ia("Identifier"),typeParameters:Oa("TSTypeParameterDeclaration"),extends:Da(Ba("TSExpressionWithTypeArguments")),body:Ia("TSInterfaceBody")}}),In("TSInterfaceBody",{visitor:["body"],fields:{body:Ma("TSTypeElement")}}),In("TSTypeAliasDeclaration",{aliases:["Statement","Declaration"],visitor:["id","typeParameters","typeAnnotation"],fields:{declare:Da(Dn),id:Ia("Identifier"),typeParameters:Oa("TSTypeParameterDeclaration"),typeAnnotation:Ia("TSType")}}),In("TSInstantiationExpression",{aliases:["Expression"],visitor:["expression","typeParameters"],fields:(Cn={expression:Ia("Expression")},Cn.typeParameters=Oa("TSTypeParameterInstantiation"),Cn)});var Gn={aliases:["Expression","LVal","PatternLike"],visitor:["expression","typeAnnotation"],fields:{expression:Ia("Expression"),typeAnnotation:Ia("TSType")}};In("TSAsExpression",Gn),In("TSSatisfiesExpression",Gn),In("TSTypeAssertion",{aliases:["Expression","LVal","PatternLike"],visitor:["typeAnnotation","expression"],fields:{typeAnnotation:Ia("TSType"),expression:Ia("Expression")}}),In("TSEnumBody",{visitor:["members"],fields:{members:Ma("TSEnumMember")}}),In("TSEnumDeclaration",{aliases:["Statement","Declaration"],visitor:["id","members"],fields:{declare:Da(Dn),const:Da(Dn),id:Ia("Identifier"),members:Ma("TSEnumMember"),initializer:Oa("Expression"),body:Oa("TSEnumBody")}}),In("TSEnumMember",{visitor:["id","initializer"],fields:{id:Ia("Identifier","StringLiteral"),initializer:Oa("Expression")}}),In("TSModuleDeclaration",{aliases:["Statement","Declaration"],visitor:["id","body"],fields:Object.assign({kind:{validate:La("global","module","namespace")},declare:Da(Dn)},{global:Da(Dn)},{id:Ia("Identifier","StringLiteral"),body:Ia("TSModuleBlock","TSModuleDeclaration")})}),In("TSModuleBlock",{aliases:["Scopable","Block","BlockParent","FunctionParent"],visitor:["body"],fields:{body:Ma("Statement")}}),In("TSImportType",{aliases:["TSType"],builder:["argument","qualifier","typeParameters"],visitor:["argument","options","qualifier","typeParameters"],fields:Object.assign({},{argument:Ia("StringLiteral")},{qualifier:Oa("TSEntityName")},{typeParameters:Oa("TSTypeParameterInstantiation")},{options:{validate:qa("ObjectExpression"),optional:!0}})}),In("TSImportEqualsDeclaration",{aliases:["Statement","Declaration"],visitor:["id","moduleReference"],fields:Object.assign({},{isExport:_a(Dn)},{id:Ia("Identifier"),moduleReference:Ia("TSEntityName","TSExternalModuleReference"),importKind:{validate:La("type","value"),optional:!0}})}),In("TSExternalModuleReference",{visitor:["expression"],fields:{expression:Ia("StringLiteral")}}),In("TSNonNullExpression",{aliases:["Expression","LVal","PatternLike"],visitor:["expression"],fields:{expression:Ia("Expression")}}),In("TSExportAssignment",{aliases:["Statement"],visitor:["expression"],fields:{expression:Ia("Expression")}}),In("TSNamespaceExportDeclaration",{aliases:["Statement"],visitor:["id"],fields:{id:Ia("Identifier")}}),In("TSTypeAnnotation",{visitor:["typeAnnotation"],fields:{typeAnnotation:{validate:qa("TSType")}}}),In("TSTypeParameterInstantiation",{visitor:["params"],fields:{params:Ma("TSType")}}),In("TSTypeParameterDeclaration",{visitor:["params"],fields:{params:Ma("TSTypeParameter")}}),In("TSTypeParameter",{builder:["constraint","default","name"],visitor:["constraint","default"],fields:{name:{validate:Wa("string")},in:{validate:Wa("boolean"),optional:!0},out:{validate:Wa("boolean"),optional:!0},const:{validate:Wa("boolean"),optional:!0},constraint:{validate:qa("TSType"),optional:!0},default:{validate:qa("TSType"),optional:!0}}});var Wn={ModuleDeclaration:"ImportOrExportDeclaration"};Object.keys(Wn).forEach(function(e){Ea[e]=Ea[Wn[e]]});for(var Vn,Hn=i(Ua);!(Vn=Hn()).done;)for(var zn,Kn=Vn.value,Xn=Kn.types,Jn=Kn.set,Yn=i(Xn);!(zn=Yn()).done;){var $n=zn.value,Qn=Ea[$n];Qn?Qn.forEach(Jn.add,Jn):Jn.add($n)}var Zn=[].concat(Object.keys(ja),Object.keys(Ea),Object.keys(Pa));function es(e,t,r){if(e){var a=Sa[e.type];if(a)ts(e,t,r,a[t]),rs(e,t,r)}}function ts(e,t,r,a){null!=a&&a.validate&&(a.optional&&null==r||a.validate(e,t,r))}function rs(e,t,r){var a,n=null==r?void 0:r.type;null!=n&&(null==(a=Aa[n])||a.call(Aa,e,t,r))}var as=function(e,t,r,a,n){if(null!=e&&e.validate&&(!e.optional||null!=a)&&(e.validate(t,r,a),n)){var s,o=a.type;if(null==o)return;null==(s=Aa[o])||s.call(Aa,t,r,a)}},ns=Sa;function ss(e){"bigint"==typeof e&&(e=e.toString());var t={type:"BigIntLiteral",value:e},r=ns.BigIntLiteral;return as(r.value,t,"value",e),t}function os(e){void 0===e&&(e=[]);var t={type:"ArrayExpression",elements:e},r=ns.ArrayExpression;return as(r.elements,t,"elements",e,1),t}function is(e,t,r){var a={type:"AssignmentExpression",operator:e,left:t,right:r},n=ns.AssignmentExpression;return as(n.operator,a,"operator",e),as(n.left,a,"left",t,1),as(n.right,a,"right",r,1),a}function ds(e,t,r){var a={type:"BinaryExpression",operator:e,left:t,right:r},n=ns.BinaryExpression;return as(n.operator,a,"operator",e),as(n.left,a,"left",t,1),as(n.right,a,"right",r,1),a}function cs(e){var t={type:"InterpreterDirective",value:e},r=ns.InterpreterDirective;return as(r.value,t,"value",e),t}function ls(e){var t={type:"Directive",value:e},r=ns.Directive;return as(r.value,t,"value",e,1),t}function us(e){var t={type:"DirectiveLiteral",value:e},r=ns.DirectiveLiteral;return as(r.value,t,"value",e),t}function ps(e,t){void 0===t&&(t=[]);var r={type:"BlockStatement",body:e,directives:t},a=ns.BlockStatement;return as(a.body,r,"body",e,1),as(a.directives,r,"directives",t,1),r}function fs(e){void 0===e&&(e=null);var t={type:"BreakStatement",label:e},r=ns.BreakStatement;return as(r.label,t,"label",e,1),t}function gs(e,t){var r={type:"CallExpression",callee:e,arguments:t},a=ns.CallExpression;return as(a.callee,r,"callee",e,1),as(a.arguments,r,"arguments",t,1),r}function ms(e,t){void 0===e&&(e=null);var r={type:"CatchClause",param:e,body:t},a=ns.CatchClause;return as(a.param,r,"param",e,1),as(a.body,r,"body",t,1),r}function ys(e,t,r){var a={type:"ConditionalExpression",test:e,consequent:t,alternate:r},n=ns.ConditionalExpression;return as(n.test,a,"test",e,1),as(n.consequent,a,"consequent",t,1),as(n.alternate,a,"alternate",r,1),a}function hs(e){void 0===e&&(e=null);var t={type:"ContinueStatement",label:e},r=ns.ContinueStatement;return as(r.label,t,"label",e,1),t}function bs(){return{type:"DebuggerStatement"}}function vs(e,t){var r={type:"DoWhileStatement",test:e,body:t},a=ns.DoWhileStatement;return as(a.test,r,"test",e,1),as(a.body,r,"body",t,1),r}function xs(){return{type:"EmptyStatement"}}function Rs(e){var t={type:"ExpressionStatement",expression:e},r=ns.ExpressionStatement;return as(r.expression,t,"expression",e,1),t}function js(e,t,r){void 0===t&&(t=null),void 0===r&&(r=null);var a={type:"File",program:e,comments:t,tokens:r},n=ns.File;return as(n.program,a,"program",e,1),as(n.comments,a,"comments",t,1),as(n.tokens,a,"tokens",r),a}function ws(e,t,r){var a={type:"ForInStatement",left:e,right:t,body:r},n=ns.ForInStatement;return as(n.left,a,"left",e,1),as(n.right,a,"right",t,1),as(n.body,a,"body",r,1),a}function Es(e,t,r,a){void 0===e&&(e=null),void 0===t&&(t=null),void 0===r&&(r=null);var n={type:"ForStatement",init:e,test:t,update:r,body:a},s=ns.ForStatement;return as(s.init,n,"init",e,1),as(s.test,n,"test",t,1),as(s.update,n,"update",r,1),as(s.body,n,"body",a,1),n}function Ss(e,t,r,a,n){void 0===e&&(e=null),void 0===a&&(a=!1),void 0===n&&(n=!1);var s={type:"FunctionDeclaration",id:e,params:t,body:r,generator:a,async:n},o=ns.FunctionDeclaration;return as(o.id,s,"id",e,1),as(o.params,s,"params",t,1),as(o.body,s,"body",r,1),as(o.generator,s,"generator",a),as(o.async,s,"async",n),s}function Ts(e,t,r,a,n){void 0===e&&(e=null),void 0===a&&(a=!1),void 0===n&&(n=!1);var s={type:"FunctionExpression",id:e,params:t,body:r,generator:a,async:n},o=ns.FunctionExpression;return as(o.id,s,"id",e,1),as(o.params,s,"params",t,1),as(o.body,s,"body",r,1),as(o.generator,s,"generator",a),as(o.async,s,"async",n),s}function Ps(e){var t={type:"Identifier",name:e},r=ns.Identifier;return as(r.name,t,"name",e),t}function As(e,t,r){void 0===r&&(r=null);var a={type:"IfStatement",test:e,consequent:t,alternate:r},n=ns.IfStatement;return as(n.test,a,"test",e,1),as(n.consequent,a,"consequent",t,1),as(n.alternate,a,"alternate",r,1),a}function ks(e,t){var r={type:"LabeledStatement",label:e,body:t},a=ns.LabeledStatement;return as(a.label,r,"label",e,1),as(a.body,r,"body",t,1),r}function Cs(e){var t={type:"StringLiteral",value:e},r=ns.StringLiteral;return as(r.value,t,"value",e),t}function _s(e){var t={type:"NumericLiteral",value:e},r=ns.NumericLiteral;return as(r.value,t,"value",e),t}function Is(){return{type:"NullLiteral"}}function Ds(e){var t={type:"BooleanLiteral",value:e},r=ns.BooleanLiteral;return as(r.value,t,"value",e),t}function Os(e,t){void 0===t&&(t="");var r={type:"RegExpLiteral",pattern:e,flags:t},a=ns.RegExpLiteral;return as(a.pattern,r,"pattern",e),as(a.flags,r,"flags",t),r}function Ns(e,t,r){var a={type:"LogicalExpression",operator:e,left:t,right:r},n=ns.LogicalExpression;return as(n.operator,a,"operator",e),as(n.left,a,"left",t,1),as(n.right,a,"right",r,1),a}function Bs(e,t,r,a){void 0===r&&(r=!1),void 0===a&&(a=null);var n={type:"MemberExpression",object:e,property:t,computed:r,optional:a},s=ns.MemberExpression;return as(s.object,n,"object",e,1),as(s.property,n,"property",t,1),as(s.computed,n,"computed",r),as(s.optional,n,"optional",a),n}function Ms(e,t){var r={type:"NewExpression",callee:e,arguments:t},a=ns.NewExpression;return as(a.callee,r,"callee",e,1),as(a.arguments,r,"arguments",t,1),r}function Fs(e,t,r,a){void 0===t&&(t=[]),void 0===r&&(r="script"),void 0===a&&(a=null);var n={type:"Program",body:e,directives:t,sourceType:r,interpreter:a},s=ns.Program;return as(s.body,n,"body",e,1),as(s.directives,n,"directives",t,1),as(s.sourceType,n,"sourceType",r),as(s.interpreter,n,"interpreter",a,1),n}function Ls(e){var t={type:"ObjectExpression",properties:e},r=ns.ObjectExpression;return as(r.properties,t,"properties",e,1),t}function Us(e,t,r,a,n,s,o){void 0===e&&(e="method"),void 0===n&&(n=!1),void 0===s&&(s=!1),void 0===o&&(o=!1);var i={type:"ObjectMethod",kind:e,key:t,params:r,body:a,computed:n,generator:s,async:o},d=ns.ObjectMethod;return as(d.kind,i,"kind",e),as(d.key,i,"key",t,1),as(d.params,i,"params",r,1),as(d.body,i,"body",a,1),as(d.computed,i,"computed",n),as(d.generator,i,"generator",s),as(d.async,i,"async",o),i}function qs(e,t,r,a,n){void 0===r&&(r=!1),void 0===a&&(a=!1),void 0===n&&(n=null);var s={type:"ObjectProperty",key:e,value:t,computed:r,shorthand:a,decorators:n},o=ns.ObjectProperty;return as(o.key,s,"key",e,1),as(o.value,s,"value",t,1),as(o.computed,s,"computed",r),as(o.shorthand,s,"shorthand",a),as(o.decorators,s,"decorators",n,1),s}function Gs(e){var t={type:"RestElement",argument:e},r=ns.RestElement;return as(r.argument,t,"argument",e,1),t}function Ws(e){void 0===e&&(e=null);var t={type:"ReturnStatement",argument:e},r=ns.ReturnStatement;return as(r.argument,t,"argument",e,1),t}function Vs(e){var t={type:"SequenceExpression",expressions:e},r=ns.SequenceExpression;return as(r.expressions,t,"expressions",e,1),t}function Hs(e){var t={type:"ParenthesizedExpression",expression:e},r=ns.ParenthesizedExpression;return as(r.expression,t,"expression",e,1),t}function zs(e,t){void 0===e&&(e=null);var r={type:"SwitchCase",test:e,consequent:t},a=ns.SwitchCase;return as(a.test,r,"test",e,1),as(a.consequent,r,"consequent",t,1),r}function Ks(e,t){var r={type:"SwitchStatement",discriminant:e,cases:t},a=ns.SwitchStatement;return as(a.discriminant,r,"discriminant",e,1),as(a.cases,r,"cases",t,1),r}function Xs(){return{type:"ThisExpression"}}function Js(e){var t={type:"ThrowStatement",argument:e},r=ns.ThrowStatement;return as(r.argument,t,"argument",e,1),t}function Ys(e,t,r){void 0===t&&(t=null),void 0===r&&(r=null);var a={type:"TryStatement",block:e,handler:t,finalizer:r},n=ns.TryStatement;return as(n.block,a,"block",e,1),as(n.handler,a,"handler",t,1),as(n.finalizer,a,"finalizer",r,1),a}function $s(e,t,r){void 0===r&&(r=!0);var a={type:"UnaryExpression",operator:e,argument:t,prefix:r},n=ns.UnaryExpression;return as(n.operator,a,"operator",e),as(n.argument,a,"argument",t,1),as(n.prefix,a,"prefix",r),a}function Qs(e,t,r){void 0===r&&(r=!1);var a={type:"UpdateExpression",operator:e,argument:t,prefix:r},n=ns.UpdateExpression;return as(n.operator,a,"operator",e),as(n.argument,a,"argument",t,1),as(n.prefix,a,"prefix",r),a}function Zs(e,t){var r={type:"VariableDeclaration",kind:e,declarations:t},a=ns.VariableDeclaration;return as(a.kind,r,"kind",e),as(a.declarations,r,"declarations",t,1),r}function eo(e,t){void 0===t&&(t=null);var r={type:"VariableDeclarator",id:e,init:t},a=ns.VariableDeclarator;return as(a.id,r,"id",e,1),as(a.init,r,"init",t,1),r}function to(e,t){var r={type:"WhileStatement",test:e,body:t},a=ns.WhileStatement;return as(a.test,r,"test",e,1),as(a.body,r,"body",t,1),r}function ro(e,t){var r={type:"WithStatement",object:e,body:t},a=ns.WithStatement;return as(a.object,r,"object",e,1),as(a.body,r,"body",t,1),r}function ao(e,t){var r={type:"AssignmentPattern",left:e,right:t},a=ns.AssignmentPattern;return as(a.left,r,"left",e,1),as(a.right,r,"right",t,1),r}function no(e){var t={type:"ArrayPattern",elements:e},r=ns.ArrayPattern;return as(r.elements,t,"elements",e,1),t}function so(e,t,r){void 0===r&&(r=!1);var a={type:"ArrowFunctionExpression",params:e,body:t,async:r,expression:null},n=ns.ArrowFunctionExpression;return as(n.params,a,"params",e,1),as(n.body,a,"body",t,1),as(n.async,a,"async",r),a}function oo(e){var t={type:"ClassBody",body:e},r=ns.ClassBody;return as(r.body,t,"body",e,1),t}function io(e,t,r,a){void 0===e&&(e=null),void 0===t&&(t=null),void 0===a&&(a=null);var n={type:"ClassExpression",id:e,superClass:t,body:r,decorators:a},s=ns.ClassExpression;return as(s.id,n,"id",e,1),as(s.superClass,n,"superClass",t,1),as(s.body,n,"body",r,1),as(s.decorators,n,"decorators",a,1),n}function co(e,t,r,a){void 0===e&&(e=null),void 0===t&&(t=null),void 0===a&&(a=null);var n={type:"ClassDeclaration",id:e,superClass:t,body:r,decorators:a},s=ns.ClassDeclaration;return as(s.id,n,"id",e,1),as(s.superClass,n,"superClass",t,1),as(s.body,n,"body",r,1),as(s.decorators,n,"decorators",a,1),n}function lo(e,t){void 0===t&&(t=null);var r={type:"ExportAllDeclaration",source:e,attributes:t},a=ns.ExportAllDeclaration;return as(a.source,r,"source",e,1),as(a.attributes,r,"attributes",t,1),r}function uo(e){var t={type:"ExportDefaultDeclaration",declaration:e},r=ns.ExportDefaultDeclaration;return as(r.declaration,t,"declaration",e,1),t}function po(e,t,r,a){void 0===e&&(e=null),void 0===t&&(t=[]),void 0===r&&(r=null),void 0===a&&(a=null);var n={type:"ExportNamedDeclaration",declaration:e,specifiers:t,source:r,attributes:a},s=ns.ExportNamedDeclaration;return as(s.declaration,n,"declaration",e,1),as(s.specifiers,n,"specifiers",t,1),as(s.source,n,"source",r,1),as(s.attributes,n,"attributes",a,1),n}function fo(e,t){var r={type:"ExportSpecifier",local:e,exported:t},a=ns.ExportSpecifier;return as(a.local,r,"local",e,1),as(a.exported,r,"exported",t,1),r}function go(e,t,r,a){void 0===a&&(a=!1);var n={type:"ForOfStatement",left:e,right:t,body:r,await:a},s=ns.ForOfStatement;return as(s.left,n,"left",e,1),as(s.right,n,"right",t,1),as(s.body,n,"body",r,1),as(s.await,n,"await",a),n}function mo(e,t,r){void 0===r&&(r=null);var a={type:"ImportDeclaration",specifiers:e,source:t,attributes:r},n=ns.ImportDeclaration;return as(n.specifiers,a,"specifiers",e,1),as(n.source,a,"source",t,1),as(n.attributes,a,"attributes",r,1),a}function yo(e){var t={type:"ImportDefaultSpecifier",local:e},r=ns.ImportDefaultSpecifier;return as(r.local,t,"local",e,1),t}function ho(e){var t={type:"ImportNamespaceSpecifier",local:e},r=ns.ImportNamespaceSpecifier;return as(r.local,t,"local",e,1),t}function bo(e,t){var r={type:"ImportSpecifier",local:e,imported:t},a=ns.ImportSpecifier;return as(a.local,r,"local",e,1),as(a.imported,r,"imported",t,1),r}function vo(e,t){void 0===t&&(t=null);var r={type:"ImportExpression",source:e,options:t},a=ns.ImportExpression;return as(a.source,r,"source",e,1),as(a.options,r,"options",t,1),r}function xo(e,t){var r={type:"MetaProperty",meta:e,property:t},a=ns.MetaProperty;return as(a.meta,r,"meta",e,1),as(a.property,r,"property",t,1),r}function Ro(e,t,r,a,n,s,o,i){void 0===e&&(e="method"),void 0===n&&(n=!1),void 0===s&&(s=!1),void 0===o&&(o=!1),void 0===i&&(i=!1);var d={type:"ClassMethod",kind:e,key:t,params:r,body:a,computed:n,static:s,generator:o,async:i},c=ns.ClassMethod;return as(c.kind,d,"kind",e),as(c.key,d,"key",t,1),as(c.params,d,"params",r,1),as(c.body,d,"body",a,1),as(c.computed,d,"computed",n),as(c.static,d,"static",s),as(c.generator,d,"generator",o),as(c.async,d,"async",i),d}function jo(e){var t={type:"ObjectPattern",properties:e},r=ns.ObjectPattern;return as(r.properties,t,"properties",e,1),t}function wo(e){var t={type:"SpreadElement",argument:e},r=ns.SpreadElement;return as(r.argument,t,"argument",e,1),t}function Eo(){return{type:"Super"}}function So(e,t){var r={type:"TaggedTemplateExpression",tag:e,quasi:t},a=ns.TaggedTemplateExpression;return as(a.tag,r,"tag",e,1),as(a.quasi,r,"quasi",t,1),r}function To(e,t){void 0===t&&(t=!1);var r={type:"TemplateElement",value:e,tail:t},a=ns.TemplateElement;return as(a.value,r,"value",e),as(a.tail,r,"tail",t),r}function Po(e,t){var r={type:"TemplateLiteral",quasis:e,expressions:t},a=ns.TemplateLiteral;return as(a.quasis,r,"quasis",e,1),as(a.expressions,r,"expressions",t,1),r}function Ao(e,t){void 0===e&&(e=null),void 0===t&&(t=!1);var r={type:"YieldExpression",argument:e,delegate:t},a=ns.YieldExpression;return as(a.argument,r,"argument",e,1),as(a.delegate,r,"delegate",t),r}function ko(e){var t={type:"AwaitExpression",argument:e},r=ns.AwaitExpression;return as(r.argument,t,"argument",e,1),t}function Co(){return{type:"Import"}}function _o(e){var t={type:"ExportNamespaceSpecifier",exported:e},r=ns.ExportNamespaceSpecifier;return as(r.exported,t,"exported",e,1),t}function Io(e,t,r,a){void 0===r&&(r=!1);var n={type:"OptionalMemberExpression",object:e,property:t,computed:r,optional:a},s=ns.OptionalMemberExpression;return as(s.object,n,"object",e,1),as(s.property,n,"property",t,1),as(s.computed,n,"computed",r),as(s.optional,n,"optional",a),n}function Do(e,t,r){var a={type:"OptionalCallExpression",callee:e,arguments:t,optional:r},n=ns.OptionalCallExpression;return as(n.callee,a,"callee",e,1),as(n.arguments,a,"arguments",t,1),as(n.optional,a,"optional",r),a}function Oo(e,t,r,a,n,s){void 0===t&&(t=null),void 0===r&&(r=null),void 0===a&&(a=null),void 0===n&&(n=!1),void 0===s&&(s=!1);var o={type:"ClassProperty",key:e,value:t,typeAnnotation:r,decorators:a,computed:n,static:s},i=ns.ClassProperty;return as(i.key,o,"key",e,1),as(i.value,o,"value",t,1),as(i.typeAnnotation,o,"typeAnnotation",r,1),as(i.decorators,o,"decorators",a,1),as(i.computed,o,"computed",n),as(i.static,o,"static",s),o}function No(e,t,r,a,n,s){void 0===t&&(t=null),void 0===r&&(r=null),void 0===a&&(a=null),void 0===n&&(n=!1),void 0===s&&(s=!1);var o={type:"ClassAccessorProperty",key:e,value:t,typeAnnotation:r,decorators:a,computed:n,static:s},i=ns.ClassAccessorProperty;return as(i.key,o,"key",e,1),as(i.value,o,"value",t,1),as(i.typeAnnotation,o,"typeAnnotation",r,1),as(i.decorators,o,"decorators",a,1),as(i.computed,o,"computed",n),as(i.static,o,"static",s),o}function Bo(e,t,r,a){void 0===t&&(t=null),void 0===r&&(r=null),void 0===a&&(a=!1);var n={type:"ClassPrivateProperty",key:e,value:t,decorators:r,static:a},s=ns.ClassPrivateProperty;return as(s.key,n,"key",e,1),as(s.value,n,"value",t,1),as(s.decorators,n,"decorators",r,1),as(s.static,n,"static",a),n}function Mo(e,t,r,a,n){void 0===e&&(e="method"),void 0===n&&(n=!1);var s={type:"ClassPrivateMethod",kind:e,key:t,params:r,body:a,static:n},o=ns.ClassPrivateMethod;return as(o.kind,s,"kind",e),as(o.key,s,"key",t,1),as(o.params,s,"params",r,1),as(o.body,s,"body",a,1),as(o.static,s,"static",n),s}function Fo(e){var t={type:"PrivateName",id:e},r=ns.PrivateName;return as(r.id,t,"id",e,1),t}function Lo(e){var t={type:"StaticBlock",body:e},r=ns.StaticBlock;return as(r.body,t,"body",e,1),t}function Uo(e,t){var r={type:"ImportAttribute",key:e,value:t},a=ns.ImportAttribute;return as(a.key,r,"key",e,1),as(a.value,r,"value",t,1),r}function qo(){return{type:"AnyTypeAnnotation"}}function Go(e){var t={type:"ArrayTypeAnnotation",elementType:e},r=ns.ArrayTypeAnnotation;return as(r.elementType,t,"elementType",e,1),t}function Wo(){return{type:"BooleanTypeAnnotation"}}function Vo(e){var t={type:"BooleanLiteralTypeAnnotation",value:e},r=ns.BooleanLiteralTypeAnnotation;return as(r.value,t,"value",e),t}function Ho(){return{type:"NullLiteralTypeAnnotation"}}function zo(e,t){void 0===t&&(t=null);var r={type:"ClassImplements",id:e,typeParameters:t},a=ns.ClassImplements;return as(a.id,r,"id",e,1),as(a.typeParameters,r,"typeParameters",t,1),r}function Ko(e,t,r,a){void 0===t&&(t=null),void 0===r&&(r=null);var n={type:"DeclareClass",id:e,typeParameters:t,extends:r,body:a},s=ns.DeclareClass;return as(s.id,n,"id",e,1),as(s.typeParameters,n,"typeParameters",t,1),as(s.extends,n,"extends",r,1),as(s.body,n,"body",a,1),n}function Xo(e){var t={type:"DeclareFunction",id:e},r=ns.DeclareFunction;return as(r.id,t,"id",e,1),t}function Jo(e,t,r,a){void 0===t&&(t=null),void 0===r&&(r=null);var n={type:"DeclareInterface",id:e,typeParameters:t,extends:r,body:a},s=ns.DeclareInterface;return as(s.id,n,"id",e,1),as(s.typeParameters,n,"typeParameters",t,1),as(s.extends,n,"extends",r,1),as(s.body,n,"body",a,1),n}function Yo(e,t,r){void 0===r&&(r=null);var a={type:"DeclareModule",id:e,body:t,kind:r},n=ns.DeclareModule;return as(n.id,a,"id",e,1),as(n.body,a,"body",t,1),as(n.kind,a,"kind",r),a}function $o(e){var t={type:"DeclareModuleExports",typeAnnotation:e},r=ns.DeclareModuleExports;return as(r.typeAnnotation,t,"typeAnnotation",e,1),t}function Qo(e,t,r){void 0===t&&(t=null);var a={type:"DeclareTypeAlias",id:e,typeParameters:t,right:r},n=ns.DeclareTypeAlias;return as(n.id,a,"id",e,1),as(n.typeParameters,a,"typeParameters",t,1),as(n.right,a,"right",r,1),a}function Zo(e,t,r){void 0===t&&(t=null),void 0===r&&(r=null);var a={type:"DeclareOpaqueType",id:e,typeParameters:t,supertype:r},n=ns.DeclareOpaqueType;return as(n.id,a,"id",e,1),as(n.typeParameters,a,"typeParameters",t,1),as(n.supertype,a,"supertype",r,1),a}function ei(e){var t={type:"DeclareVariable",id:e},r=ns.DeclareVariable;return as(r.id,t,"id",e,1),t}function ti(e,t,r,a){void 0===e&&(e=null),void 0===t&&(t=null),void 0===r&&(r=null),void 0===a&&(a=null);var n={type:"DeclareExportDeclaration",declaration:e,specifiers:t,source:r,attributes:a},s=ns.DeclareExportDeclaration;return as(s.declaration,n,"declaration",e,1),as(s.specifiers,n,"specifiers",t,1),as(s.source,n,"source",r,1),as(s.attributes,n,"attributes",a,1),n}function ri(e,t){void 0===t&&(t=null);var r={type:"DeclareExportAllDeclaration",source:e,attributes:t},a=ns.DeclareExportAllDeclaration;return as(a.source,r,"source",e,1),as(a.attributes,r,"attributes",t,1),r}function ai(e){var t={type:"DeclaredPredicate",value:e},r=ns.DeclaredPredicate;return as(r.value,t,"value",e,1),t}function ni(){return{type:"ExistsTypeAnnotation"}}function si(e,t,r,a){void 0===e&&(e=null),void 0===r&&(r=null);var n={type:"FunctionTypeAnnotation",typeParameters:e,params:t,rest:r,returnType:a},s=ns.FunctionTypeAnnotation;return as(s.typeParameters,n,"typeParameters",e,1),as(s.params,n,"params",t,1),as(s.rest,n,"rest",r,1),as(s.returnType,n,"returnType",a,1),n}function oi(e,t){void 0===e&&(e=null);var r={type:"FunctionTypeParam",name:e,typeAnnotation:t},a=ns.FunctionTypeParam;return as(a.name,r,"name",e,1),as(a.typeAnnotation,r,"typeAnnotation",t,1),r}function ii(e,t){void 0===t&&(t=null);var r={type:"GenericTypeAnnotation",id:e,typeParameters:t},a=ns.GenericTypeAnnotation;return as(a.id,r,"id",e,1),as(a.typeParameters,r,"typeParameters",t,1),r}function di(){return{type:"InferredPredicate"}}function ci(e,t){void 0===t&&(t=null);var r={type:"InterfaceExtends",id:e,typeParameters:t},a=ns.InterfaceExtends;return as(a.id,r,"id",e,1),as(a.typeParameters,r,"typeParameters",t,1),r}function li(e,t,r,a){void 0===t&&(t=null),void 0===r&&(r=null);var n={type:"InterfaceDeclaration",id:e,typeParameters:t,extends:r,body:a},s=ns.InterfaceDeclaration;return as(s.id,n,"id",e,1),as(s.typeParameters,n,"typeParameters",t,1),as(s.extends,n,"extends",r,1),as(s.body,n,"body",a,1),n}function ui(e,t){void 0===e&&(e=null);var r={type:"InterfaceTypeAnnotation",extends:e,body:t},a=ns.InterfaceTypeAnnotation;return as(a.extends,r,"extends",e,1),as(a.body,r,"body",t,1),r}function pi(e){var t={type:"IntersectionTypeAnnotation",types:e},r=ns.IntersectionTypeAnnotation;return as(r.types,t,"types",e,1),t}function fi(){return{type:"MixedTypeAnnotation"}}function gi(){return{type:"EmptyTypeAnnotation"}}function mi(e){var t={type:"NullableTypeAnnotation",typeAnnotation:e},r=ns.NullableTypeAnnotation;return as(r.typeAnnotation,t,"typeAnnotation",e,1),t}function yi(e){var t={type:"NumberLiteralTypeAnnotation",value:e},r=ns.NumberLiteralTypeAnnotation;return as(r.value,t,"value",e),t}function hi(){return{type:"NumberTypeAnnotation"}}function bi(e,t,r,a,n){void 0===t&&(t=[]),void 0===r&&(r=[]),void 0===a&&(a=[]),void 0===n&&(n=!1);var s={type:"ObjectTypeAnnotation",properties:e,indexers:t,callProperties:r,internalSlots:a,exact:n},o=ns.ObjectTypeAnnotation;return as(o.properties,s,"properties",e,1),as(o.indexers,s,"indexers",t,1),as(o.callProperties,s,"callProperties",r,1),as(o.internalSlots,s,"internalSlots",a,1),as(o.exact,s,"exact",n),s}function vi(e,t,r,a,n){var s={type:"ObjectTypeInternalSlot",id:e,value:t,optional:r,static:a,method:n},o=ns.ObjectTypeInternalSlot;return as(o.id,s,"id",e,1),as(o.value,s,"value",t,1),as(o.optional,s,"optional",r),as(o.static,s,"static",a),as(o.method,s,"method",n),s}function xi(e){var t={type:"ObjectTypeCallProperty",value:e,static:null},r=ns.ObjectTypeCallProperty;return as(r.value,t,"value",e,1),t}function Ri(e,t,r,a){void 0===e&&(e=null),void 0===a&&(a=null);var n={type:"ObjectTypeIndexer",id:e,key:t,value:r,variance:a,static:null},s=ns.ObjectTypeIndexer;return as(s.id,n,"id",e,1),as(s.key,n,"key",t,1),as(s.value,n,"value",r,1),as(s.variance,n,"variance",a,1),n}function ji(e,t,r){void 0===r&&(r=null);var a={type:"ObjectTypeProperty",key:e,value:t,variance:r,kind:null,method:null,optional:null,proto:null,static:null},n=ns.ObjectTypeProperty;return as(n.key,a,"key",e,1),as(n.value,a,"value",t,1),as(n.variance,a,"variance",r,1),a}function wi(e){var t={type:"ObjectTypeSpreadProperty",argument:e},r=ns.ObjectTypeSpreadProperty;return as(r.argument,t,"argument",e,1),t}function Ei(e,t,r,a){void 0===t&&(t=null),void 0===r&&(r=null);var n={type:"OpaqueType",id:e,typeParameters:t,supertype:r,impltype:a},s=ns.OpaqueType;return as(s.id,n,"id",e,1),as(s.typeParameters,n,"typeParameters",t,1),as(s.supertype,n,"supertype",r,1),as(s.impltype,n,"impltype",a,1),n}function Si(e,t){var r={type:"QualifiedTypeIdentifier",id:e,qualification:t},a=ns.QualifiedTypeIdentifier;return as(a.id,r,"id",e,1),as(a.qualification,r,"qualification",t,1),r}function Ti(e){var t={type:"StringLiteralTypeAnnotation",value:e},r=ns.StringLiteralTypeAnnotation;return as(r.value,t,"value",e),t}function Pi(){return{type:"StringTypeAnnotation"}}function Ai(){return{type:"SymbolTypeAnnotation"}}function ki(){return{type:"ThisTypeAnnotation"}}function Ci(e){var t={type:"TupleTypeAnnotation",types:e},r=ns.TupleTypeAnnotation;return as(r.types,t,"types",e,1),t}function _i(e){var t={type:"TypeofTypeAnnotation",argument:e},r=ns.TypeofTypeAnnotation;return as(r.argument,t,"argument",e,1),t}function Ii(e,t,r){void 0===t&&(t=null);var a={type:"TypeAlias",id:e,typeParameters:t,right:r},n=ns.TypeAlias;return as(n.id,a,"id",e,1),as(n.typeParameters,a,"typeParameters",t,1),as(n.right,a,"right",r,1),a}function Di(e){var t={type:"TypeAnnotation",typeAnnotation:e},r=ns.TypeAnnotation;return as(r.typeAnnotation,t,"typeAnnotation",e,1),t}function Oi(e,t){var r={type:"TypeCastExpression",expression:e,typeAnnotation:t},a=ns.TypeCastExpression;return as(a.expression,r,"expression",e,1),as(a.typeAnnotation,r,"typeAnnotation",t,1),r}function Ni(e,t,r){void 0===e&&(e=null),void 0===t&&(t=null),void 0===r&&(r=null);var a={type:"TypeParameter",bound:e,default:t,variance:r,name:null},n=ns.TypeParameter;return as(n.bound,a,"bound",e,1),as(n.default,a,"default",t,1),as(n.variance,a,"variance",r,1),a}function Bi(e){var t={type:"TypeParameterDeclaration",params:e},r=ns.TypeParameterDeclaration;return as(r.params,t,"params",e,1),t}function Mi(e){var t={type:"TypeParameterInstantiation",params:e},r=ns.TypeParameterInstantiation;return as(r.params,t,"params",e,1),t}function Fi(e){var t={type:"UnionTypeAnnotation",types:e},r=ns.UnionTypeAnnotation;return as(r.types,t,"types",e,1),t}function Li(e){var t={type:"Variance",kind:e},r=ns.Variance;return as(r.kind,t,"kind",e),t}function Ui(){return{type:"VoidTypeAnnotation"}}function qi(e,t){var r={type:"EnumDeclaration",id:e,body:t},a=ns.EnumDeclaration;return as(a.id,r,"id",e,1),as(a.body,r,"body",t,1),r}function Gi(e){var t={type:"EnumBooleanBody",members:e,explicitType:null,hasUnknownMembers:null},r=ns.EnumBooleanBody;return as(r.members,t,"members",e,1),t}function Wi(e){var t={type:"EnumNumberBody",members:e,explicitType:null,hasUnknownMembers:null},r=ns.EnumNumberBody;return as(r.members,t,"members",e,1),t}function Vi(e){var t={type:"EnumStringBody",members:e,explicitType:null,hasUnknownMembers:null},r=ns.EnumStringBody;return as(r.members,t,"members",e,1),t}function Hi(e){var t={type:"EnumSymbolBody",members:e,hasUnknownMembers:null},r=ns.EnumSymbolBody;return as(r.members,t,"members",e,1),t}function zi(e){var t={type:"EnumBooleanMember",id:e,init:null},r=ns.EnumBooleanMember;return as(r.id,t,"id",e,1),t}function Ki(e,t){var r={type:"EnumNumberMember",id:e,init:t},a=ns.EnumNumberMember;return as(a.id,r,"id",e,1),as(a.init,r,"init",t,1),r}function Xi(e,t){var r={type:"EnumStringMember",id:e,init:t},a=ns.EnumStringMember;return as(a.id,r,"id",e,1),as(a.init,r,"init",t,1),r}function Ji(e){var t={type:"EnumDefaultedMember",id:e},r=ns.EnumDefaultedMember;return as(r.id,t,"id",e,1),t}function Yi(e,t){var r={type:"IndexedAccessType",objectType:e,indexType:t},a=ns.IndexedAccessType;return as(a.objectType,r,"objectType",e,1),as(a.indexType,r,"indexType",t,1),r}function $i(e,t){var r={type:"OptionalIndexedAccessType",objectType:e,indexType:t,optional:null},a=ns.OptionalIndexedAccessType;return as(a.objectType,r,"objectType",e,1),as(a.indexType,r,"indexType",t,1),r}function Qi(e,t){void 0===t&&(t=null);var r={type:"JSXAttribute",name:e,value:t},a=ns.JSXAttribute;return as(a.name,r,"name",e,1),as(a.value,r,"value",t,1),r}function Zi(e){var t={type:"JSXClosingElement",name:e},r=ns.JSXClosingElement;return as(r.name,t,"name",e,1),t}function ed(e,t,r,a){void 0===t&&(t=null),void 0===a&&(a=null);var n={type:"JSXElement",openingElement:e,closingElement:t,children:r,selfClosing:a},s=ns.JSXElement;return as(s.openingElement,n,"openingElement",e,1),as(s.closingElement,n,"closingElement",t,1),as(s.children,n,"children",r,1),as(s.selfClosing,n,"selfClosing",a),n}function td(){return{type:"JSXEmptyExpression"}}function rd(e){var t={type:"JSXExpressionContainer",expression:e},r=ns.JSXExpressionContainer;return as(r.expression,t,"expression",e,1),t}function ad(e){var t={type:"JSXSpreadChild",expression:e},r=ns.JSXSpreadChild;return as(r.expression,t,"expression",e,1),t}function nd(e){var t={type:"JSXIdentifier",name:e},r=ns.JSXIdentifier;return as(r.name,t,"name",e),t}function sd(e,t){var r={type:"JSXMemberExpression",object:e,property:t},a=ns.JSXMemberExpression;return as(a.object,r,"object",e,1),as(a.property,r,"property",t,1),r}function od(e,t){var r={type:"JSXNamespacedName",namespace:e,name:t},a=ns.JSXNamespacedName;return as(a.namespace,r,"namespace",e,1),as(a.name,r,"name",t,1),r}function id(e,t,r){void 0===r&&(r=!1);var a={type:"JSXOpeningElement",name:e,attributes:t,selfClosing:r},n=ns.JSXOpeningElement;return as(n.name,a,"name",e,1),as(n.attributes,a,"attributes",t,1),as(n.selfClosing,a,"selfClosing",r),a}function dd(e){var t={type:"JSXSpreadAttribute",argument:e},r=ns.JSXSpreadAttribute;return as(r.argument,t,"argument",e,1),t}function cd(e){var t={type:"JSXText",value:e},r=ns.JSXText;return as(r.value,t,"value",e),t}function ld(e,t,r){var a={type:"JSXFragment",openingFragment:e,closingFragment:t,children:r},n=ns.JSXFragment;return as(n.openingFragment,a,"openingFragment",e,1),as(n.closingFragment,a,"closingFragment",t,1),as(n.children,a,"children",r,1),a}function ud(){return{type:"JSXOpeningFragment"}}function pd(){return{type:"JSXClosingFragment"}}function fd(){return{type:"Noop"}}function gd(e,t){var r={type:"Placeholder",expectedNode:e,name:t},a=ns.Placeholder;return as(a.expectedNode,r,"expectedNode",e),as(a.name,r,"name",t,1),r}function md(e){var t={type:"V8IntrinsicIdentifier",name:e},r=ns.V8IntrinsicIdentifier;return as(r.name,t,"name",e),t}function yd(){return{type:"ArgumentPlaceholder"}}function hd(e,t){var r={type:"BindExpression",object:e,callee:t},a=ns.BindExpression;return as(a.object,r,"object",e,1),as(a.callee,r,"callee",t,1),r}function bd(e){var t={type:"Decorator",expression:e},r=ns.Decorator;return as(r.expression,t,"expression",e,1),t}function vd(e,t){void 0===t&&(t=!1);var r={type:"DoExpression",body:e,async:t},a=ns.DoExpression;return as(a.body,r,"body",e,1),as(a.async,r,"async",t),r}function xd(e){var t={type:"ExportDefaultSpecifier",exported:e},r=ns.ExportDefaultSpecifier;return as(r.exported,t,"exported",e,1),t}function Rd(e){var t={type:"RecordExpression",properties:e},r=ns.RecordExpression;return as(r.properties,t,"properties",e,1),t}function jd(e){void 0===e&&(e=[]);var t={type:"TupleExpression",elements:e},r=ns.TupleExpression;return as(r.elements,t,"elements",e,1),t}function wd(e){var t={type:"DecimalLiteral",value:e},r=ns.DecimalLiteral;return as(r.value,t,"value",e),t}function Ed(e){var t={type:"ModuleExpression",body:e},r=ns.ModuleExpression;return as(r.body,t,"body",e,1),t}function Sd(){return{type:"TopicReference"}}function Td(e){var t={type:"PipelineTopicExpression",expression:e},r=ns.PipelineTopicExpression;return as(r.expression,t,"expression",e,1),t}function Pd(e){var t={type:"PipelineBareFunction",callee:e},r=ns.PipelineBareFunction;return as(r.callee,t,"callee",e,1),t}function Ad(){return{type:"PipelinePrimaryTopicReference"}}function kd(){return{type:"VoidPattern"}}function Cd(e){var t={type:"TSParameterProperty",parameter:e},r=ns.TSParameterProperty;return as(r.parameter,t,"parameter",e,1),t}function _d(e,t,r,a){void 0===e&&(e=null),void 0===t&&(t=null),void 0===a&&(a=null);var n={type:"TSDeclareFunction",id:e,typeParameters:t,params:r,returnType:a},s=ns.TSDeclareFunction;return as(s.id,n,"id",e,1),as(s.typeParameters,n,"typeParameters",t,1),as(s.params,n,"params",r,1),as(s.returnType,n,"returnType",a,1),n}function Id(e,t,r,a,n){void 0===e&&(e=null),void 0===r&&(r=null),void 0===n&&(n=null);var s={type:"TSDeclareMethod",decorators:e,key:t,typeParameters:r,params:a,returnType:n},o=ns.TSDeclareMethod;return as(o.decorators,s,"decorators",e,1),as(o.key,s,"key",t,1),as(o.typeParameters,s,"typeParameters",r,1),as(o.params,s,"params",a,1),as(o.returnType,s,"returnType",n,1),s}function Dd(e,t){var r={type:"TSQualifiedName",left:e,right:t},a=ns.TSQualifiedName;return as(a.left,r,"left",e,1),as(a.right,r,"right",t,1),r}function Od(e,t,r){void 0===e&&(e=null),void 0===r&&(r=null);var a={type:"TSCallSignatureDeclaration",typeParameters:e,parameters:t,typeAnnotation:r},n=ns.TSCallSignatureDeclaration;return as(n.typeParameters,a,"typeParameters",e,1),as(n.parameters,a,"parameters",t,1),as(n.typeAnnotation,a,"typeAnnotation",r,1),a}function Nd(e,t,r){void 0===e&&(e=null),void 0===r&&(r=null);var a={type:"TSConstructSignatureDeclaration",typeParameters:e,parameters:t,typeAnnotation:r},n=ns.TSConstructSignatureDeclaration;return as(n.typeParameters,a,"typeParameters",e,1),as(n.parameters,a,"parameters",t,1),as(n.typeAnnotation,a,"typeAnnotation",r,1),a}function Bd(e,t){void 0===t&&(t=null);var r={type:"TSPropertySignature",key:e,typeAnnotation:t},a=ns.TSPropertySignature;return as(a.key,r,"key",e,1),as(a.typeAnnotation,r,"typeAnnotation",t,1),r}function Md(e,t,r,a){void 0===t&&(t=null),void 0===a&&(a=null);var n={type:"TSMethodSignature",key:e,typeParameters:t,parameters:r,typeAnnotation:a,kind:null},s=ns.TSMethodSignature;return as(s.key,n,"key",e,1),as(s.typeParameters,n,"typeParameters",t,1),as(s.parameters,n,"parameters",r,1),as(s.typeAnnotation,n,"typeAnnotation",a,1),n}function Fd(e,t){void 0===t&&(t=null);var r={type:"TSIndexSignature",parameters:e,typeAnnotation:t},a=ns.TSIndexSignature;return as(a.parameters,r,"parameters",e,1),as(a.typeAnnotation,r,"typeAnnotation",t,1),r}function Ld(){return{type:"TSAnyKeyword"}}function Ud(){return{type:"TSBooleanKeyword"}}function qd(){return{type:"TSBigIntKeyword"}}function Gd(){return{type:"TSIntrinsicKeyword"}}function Wd(){return{type:"TSNeverKeyword"}}function Vd(){return{type:"TSNullKeyword"}}function Hd(){return{type:"TSNumberKeyword"}}function zd(){return{type:"TSObjectKeyword"}}function Kd(){return{type:"TSStringKeyword"}}function Xd(){return{type:"TSSymbolKeyword"}}function Jd(){return{type:"TSUndefinedKeyword"}}function Yd(){return{type:"TSUnknownKeyword"}}function $d(){return{type:"TSVoidKeyword"}}function Qd(){return{type:"TSThisType"}}function Zd(e,t,r){void 0===e&&(e=null),void 0===r&&(r=null);var a={type:"TSFunctionType",typeParameters:e,parameters:t,typeAnnotation:r},n=ns.TSFunctionType;return as(n.typeParameters,a,"typeParameters",e,1),as(n.parameters,a,"parameters",t,1),as(n.typeAnnotation,a,"typeAnnotation",r,1),a}function ec(e,t,r){void 0===e&&(e=null),void 0===r&&(r=null);var a={type:"TSConstructorType",typeParameters:e,parameters:t,typeAnnotation:r},n=ns.TSConstructorType;return as(n.typeParameters,a,"typeParameters",e,1),as(n.parameters,a,"parameters",t,1),as(n.typeAnnotation,a,"typeAnnotation",r,1),a}function tc(e,t){void 0===t&&(t=null);var r={type:"TSTypeReference",typeName:e,typeParameters:t},a=ns.TSTypeReference;return as(a.typeName,r,"typeName",e,1),as(a.typeParameters,r,"typeParameters",t,1),r}function rc(e,t,r){void 0===t&&(t=null),void 0===r&&(r=null);var a={type:"TSTypePredicate",parameterName:e,typeAnnotation:t,asserts:r},n=ns.TSTypePredicate;return as(n.parameterName,a,"parameterName",e,1),as(n.typeAnnotation,a,"typeAnnotation",t,1),as(n.asserts,a,"asserts",r),a}function ac(e,t){void 0===t&&(t=null);var r={type:"TSTypeQuery",exprName:e,typeParameters:t},a=ns.TSTypeQuery;return as(a.exprName,r,"exprName",e,1),as(a.typeParameters,r,"typeParameters",t,1),r}function nc(e){var t={type:"TSTypeLiteral",members:e},r=ns.TSTypeLiteral;return as(r.members,t,"members",e,1),t}function sc(e){var t={type:"TSArrayType",elementType:e},r=ns.TSArrayType;return as(r.elementType,t,"elementType",e,1),t}function oc(e){var t={type:"TSTupleType",elementTypes:e},r=ns.TSTupleType;return as(r.elementTypes,t,"elementTypes",e,1),t}function ic(e){var t={type:"TSOptionalType",typeAnnotation:e},r=ns.TSOptionalType;return as(r.typeAnnotation,t,"typeAnnotation",e,1),t}function dc(e){var t={type:"TSRestType",typeAnnotation:e},r=ns.TSRestType;return as(r.typeAnnotation,t,"typeAnnotation",e,1),t}function cc(e,t,r){void 0===r&&(r=!1);var a={type:"TSNamedTupleMember",label:e,elementType:t,optional:r},n=ns.TSNamedTupleMember;return as(n.label,a,"label",e,1),as(n.elementType,a,"elementType",t,1),as(n.optional,a,"optional",r),a}function lc(e){var t={type:"TSUnionType",types:e},r=ns.TSUnionType;return as(r.types,t,"types",e,1),t}function uc(e){var t={type:"TSIntersectionType",types:e},r=ns.TSIntersectionType;return as(r.types,t,"types",e,1),t}function pc(e,t,r,a){var n={type:"TSConditionalType",checkType:e,extendsType:t,trueType:r,falseType:a},s=ns.TSConditionalType;return as(s.checkType,n,"checkType",e,1),as(s.extendsType,n,"extendsType",t,1),as(s.trueType,n,"trueType",r,1),as(s.falseType,n,"falseType",a,1),n}function fc(e){var t={type:"TSInferType",typeParameter:e},r=ns.TSInferType;return as(r.typeParameter,t,"typeParameter",e,1),t}function gc(e){var t={type:"TSParenthesizedType",typeAnnotation:e},r=ns.TSParenthesizedType;return as(r.typeAnnotation,t,"typeAnnotation",e,1),t}function mc(e,t){void 0===t&&(t="keyof");var r={type:"TSTypeOperator",typeAnnotation:e,operator:t},a=ns.TSTypeOperator;return as(a.typeAnnotation,r,"typeAnnotation",e,1),as(a.operator,r,"operator",t),r}function yc(e,t){var r={type:"TSIndexedAccessType",objectType:e,indexType:t},a=ns.TSIndexedAccessType;return as(a.objectType,r,"objectType",e,1),as(a.indexType,r,"indexType",t,1),r}function hc(e,t,r){void 0===t&&(t=null),void 0===r&&(r=null);var a={type:"TSMappedType",typeParameter:e,typeAnnotation:t,nameType:r},n=ns.TSMappedType;return as(n.typeParameter,a,"typeParameter",e,1),as(n.typeAnnotation,a,"typeAnnotation",t,1),as(n.nameType,a,"nameType",r,1),a}function bc(e,t){var r={type:"TSTemplateLiteralType",quasis:e,types:t},a=ns.TSTemplateLiteralType;return as(a.quasis,r,"quasis",e,1),as(a.types,r,"types",t,1),r}function vc(e){var t={type:"TSLiteralType",literal:e},r=ns.TSLiteralType;return as(r.literal,t,"literal",e,1),t}function xc(e,t){void 0===t&&(t=null);var r={type:"TSExpressionWithTypeArguments",expression:e,typeParameters:t},a=ns.TSExpressionWithTypeArguments;return as(a.expression,r,"expression",e,1),as(a.typeParameters,r,"typeParameters",t,1),r}function Rc(e,t,r,a){void 0===t&&(t=null),void 0===r&&(r=null);var n={type:"TSInterfaceDeclaration",id:e,typeParameters:t,extends:r,body:a},s=ns.TSInterfaceDeclaration;return as(s.id,n,"id",e,1),as(s.typeParameters,n,"typeParameters",t,1),as(s.extends,n,"extends",r,1),as(s.body,n,"body",a,1),n}function jc(e){var t={type:"TSInterfaceBody",body:e},r=ns.TSInterfaceBody;return as(r.body,t,"body",e,1),t}function wc(e,t,r){void 0===t&&(t=null);var a={type:"TSTypeAliasDeclaration",id:e,typeParameters:t,typeAnnotation:r},n=ns.TSTypeAliasDeclaration;return as(n.id,a,"id",e,1),as(n.typeParameters,a,"typeParameters",t,1),as(n.typeAnnotation,a,"typeAnnotation",r,1),a}function Ec(e,t){void 0===t&&(t=null);var r={type:"TSInstantiationExpression",expression:e,typeParameters:t},a=ns.TSInstantiationExpression;return as(a.expression,r,"expression",e,1),as(a.typeParameters,r,"typeParameters",t,1),r}function Sc(e,t){var r={type:"TSAsExpression",expression:e,typeAnnotation:t},a=ns.TSAsExpression;return as(a.expression,r,"expression",e,1),as(a.typeAnnotation,r,"typeAnnotation",t,1),r}function Tc(e,t){var r={type:"TSSatisfiesExpression",expression:e,typeAnnotation:t},a=ns.TSSatisfiesExpression;return as(a.expression,r,"expression",e,1),as(a.typeAnnotation,r,"typeAnnotation",t,1),r}function Pc(e,t){var r={type:"TSTypeAssertion",typeAnnotation:e,expression:t},a=ns.TSTypeAssertion;return as(a.typeAnnotation,r,"typeAnnotation",e,1),as(a.expression,r,"expression",t,1),r}function Ac(e){var t={type:"TSEnumBody",members:e},r=ns.TSEnumBody;return as(r.members,t,"members",e,1),t}function kc(e,t){var r={type:"TSEnumDeclaration",id:e,members:t},a=ns.TSEnumDeclaration;return as(a.id,r,"id",e,1),as(a.members,r,"members",t,1),r}function Cc(e,t){void 0===t&&(t=null);var r={type:"TSEnumMember",id:e,initializer:t},a=ns.TSEnumMember;return as(a.id,r,"id",e,1),as(a.initializer,r,"initializer",t,1),r}function _c(e,t){var r={type:"TSModuleDeclaration",id:e,body:t,kind:null},a=ns.TSModuleDeclaration;return as(a.id,r,"id",e,1),as(a.body,r,"body",t,1),r}function Ic(e){var t={type:"TSModuleBlock",body:e},r=ns.TSModuleBlock;return as(r.body,t,"body",e,1),t}function Dc(e,t,r){void 0===t&&(t=null),void 0===r&&(r=null);var a={type:"TSImportType",argument:e,qualifier:t,typeParameters:r},n=ns.TSImportType;return as(n.argument,a,"argument",e,1),as(n.qualifier,a,"qualifier",t,1),as(n.typeParameters,a,"typeParameters",r,1),a}function Oc(e,t){var r={type:"TSImportEqualsDeclaration",id:e,moduleReference:t,isExport:null},a=ns.TSImportEqualsDeclaration;return as(a.id,r,"id",e,1),as(a.moduleReference,r,"moduleReference",t,1),r}function Nc(e){var t={type:"TSExternalModuleReference",expression:e},r=ns.TSExternalModuleReference;return as(r.expression,t,"expression",e,1),t}function Bc(e){var t={type:"TSNonNullExpression",expression:e},r=ns.TSNonNullExpression;return as(r.expression,t,"expression",e,1),t}function Mc(e){var t={type:"TSExportAssignment",expression:e},r=ns.TSExportAssignment;return as(r.expression,t,"expression",e,1),t}function Fc(e){var t={type:"TSNamespaceExportDeclaration",id:e},r=ns.TSNamespaceExportDeclaration;return as(r.id,t,"id",e,1),t}function Lc(e){var t={type:"TSTypeAnnotation",typeAnnotation:e},r=ns.TSTypeAnnotation;return as(r.typeAnnotation,t,"typeAnnotation",e,1),t}function Uc(e){var t={type:"TSTypeParameterInstantiation",params:e},r=ns.TSTypeParameterInstantiation;return as(r.params,t,"params",e,1),t}function qc(e){var t={type:"TSTypeParameterDeclaration",params:e},r=ns.TSTypeParameterDeclaration;return as(r.params,t,"params",e,1),t}function Gc(e,t,r){void 0===e&&(e=null),void 0===t&&(t=null);var a={type:"TSTypeParameter",constraint:e,default:t,name:r},n=ns.TSTypeParameter;return as(n.constraint,a,"constraint",e,1),as(n.default,a,"default",t,1),as(n.name,a,"name",r),a}function Wc(e){return J("NumberLiteral","NumericLiteral","The node type "),_s(e)}function Vc(e,t){return void 0===t&&(t=""),J("RegexLiteral","RegExpLiteral","The node type "),Os(e,t)}function Hc(e){return J("RestProperty","RestElement","The node type "),Gs(e)}function zc(e){return J("SpreadProperty","SpreadElement","The node type "),wo(e)}var Kc=Object.freeze({__proto__:null,anyTypeAnnotation:qo,argumentPlaceholder:yd,arrayExpression:os,arrayPattern:no,arrayTypeAnnotation:Go,arrowFunctionExpression:so,assignmentExpression:is,assignmentPattern:ao,awaitExpression:ko,bigIntLiteral:ss,binaryExpression:ds,bindExpression:hd,blockStatement:ps,booleanLiteral:Ds,booleanLiteralTypeAnnotation:Vo,booleanTypeAnnotation:Wo,breakStatement:fs,callExpression:gs,catchClause:ms,classAccessorProperty:No,classBody:oo,classDeclaration:co,classExpression:io,classImplements:zo,classMethod:Ro,classPrivateMethod:Mo,classPrivateProperty:Bo,classProperty:Oo,conditionalExpression:ys,continueStatement:hs,debuggerStatement:bs,decimalLiteral:wd,declareClass:Ko,declareExportAllDeclaration:ri,declareExportDeclaration:ti,declareFunction:Xo,declareInterface:Jo,declareModule:Yo,declareModuleExports:$o,declareOpaqueType:Zo,declareTypeAlias:Qo,declareVariable:ei,declaredPredicate:ai,decorator:bd,directive:ls,directiveLiteral:us,doExpression:vd,doWhileStatement:vs,emptyStatement:xs,emptyTypeAnnotation:gi,enumBooleanBody:Gi,enumBooleanMember:zi,enumDeclaration:qi,enumDefaultedMember:Ji,enumNumberBody:Wi,enumNumberMember:Ki,enumStringBody:Vi,enumStringMember:Xi,enumSymbolBody:Hi,existsTypeAnnotation:ni,exportAllDeclaration:lo,exportDefaultDeclaration:uo,exportDefaultSpecifier:xd,exportNamedDeclaration:po,exportNamespaceSpecifier:_o,exportSpecifier:fo,expressionStatement:Rs,file:js,forInStatement:ws,forOfStatement:go,forStatement:Es,functionDeclaration:Ss,functionExpression:Ts,functionTypeAnnotation:si,functionTypeParam:oi,genericTypeAnnotation:ii,identifier:Ps,ifStatement:As,import:Co,importAttribute:Uo,importDeclaration:mo,importDefaultSpecifier:yo,importExpression:vo,importNamespaceSpecifier:ho,importSpecifier:bo,indexedAccessType:Yi,inferredPredicate:di,interfaceDeclaration:li,interfaceExtends:ci,interfaceTypeAnnotation:ui,interpreterDirective:cs,intersectionTypeAnnotation:pi,jSXAttribute:Qi,jSXClosingElement:Zi,jSXClosingFragment:pd,jSXElement:ed,jSXEmptyExpression:td,jSXExpressionContainer:rd,jSXFragment:ld,jSXIdentifier:nd,jSXMemberExpression:sd,jSXNamespacedName:od,jSXOpeningElement:id,jSXOpeningFragment:ud,jSXSpreadAttribute:dd,jSXSpreadChild:ad,jSXText:cd,jsxAttribute:Qi,jsxClosingElement:Zi,jsxClosingFragment:pd,jsxElement:ed,jsxEmptyExpression:td,jsxExpressionContainer:rd,jsxFragment:ld,jsxIdentifier:nd,jsxMemberExpression:sd,jsxNamespacedName:od,jsxOpeningElement:id,jsxOpeningFragment:ud,jsxSpreadAttribute:dd,jsxSpreadChild:ad,jsxText:cd,labeledStatement:ks,logicalExpression:Ns,memberExpression:Bs,metaProperty:xo,mixedTypeAnnotation:fi,moduleExpression:Ed,newExpression:Ms,noop:fd,nullLiteral:Is,nullLiteralTypeAnnotation:Ho,nullableTypeAnnotation:mi,numberLiteral:Wc,numberLiteralTypeAnnotation:yi,numberTypeAnnotation:hi,numericLiteral:_s,objectExpression:Ls,objectMethod:Us,objectPattern:jo,objectProperty:qs,objectTypeAnnotation:bi,objectTypeCallProperty:xi,objectTypeIndexer:Ri,objectTypeInternalSlot:vi,objectTypeProperty:ji,objectTypeSpreadProperty:wi,opaqueType:Ei,optionalCallExpression:Do,optionalIndexedAccessType:$i,optionalMemberExpression:Io,parenthesizedExpression:Hs,pipelineBareFunction:Pd,pipelinePrimaryTopicReference:Ad,pipelineTopicExpression:Td,placeholder:gd,privateName:Fo,program:Fs,qualifiedTypeIdentifier:Si,recordExpression:Rd,regExpLiteral:Os,regexLiteral:Vc,restElement:Gs,restProperty:Hc,returnStatement:Ws,sequenceExpression:Vs,spreadElement:wo,spreadProperty:zc,staticBlock:Lo,stringLiteral:Cs,stringLiteralTypeAnnotation:Ti,stringTypeAnnotation:Pi,super:Eo,switchCase:zs,switchStatement:Ks,symbolTypeAnnotation:Ai,tSAnyKeyword:Ld,tSArrayType:sc,tSAsExpression:Sc,tSBigIntKeyword:qd,tSBooleanKeyword:Ud,tSCallSignatureDeclaration:Od,tSConditionalType:pc,tSConstructSignatureDeclaration:Nd,tSConstructorType:ec,tSDeclareFunction:_d,tSDeclareMethod:Id,tSEnumBody:Ac,tSEnumDeclaration:kc,tSEnumMember:Cc,tSExportAssignment:Mc,tSExpressionWithTypeArguments:xc,tSExternalModuleReference:Nc,tSFunctionType:Zd,tSImportEqualsDeclaration:Oc,tSImportType:Dc,tSIndexSignature:Fd,tSIndexedAccessType:yc,tSInferType:fc,tSInstantiationExpression:Ec,tSInterfaceBody:jc,tSInterfaceDeclaration:Rc,tSIntersectionType:uc,tSIntrinsicKeyword:Gd,tSLiteralType:vc,tSMappedType:hc,tSMethodSignature:Md,tSModuleBlock:Ic,tSModuleDeclaration:_c,tSNamedTupleMember:cc,tSNamespaceExportDeclaration:Fc,tSNeverKeyword:Wd,tSNonNullExpression:Bc,tSNullKeyword:Vd,tSNumberKeyword:Hd,tSObjectKeyword:zd,tSOptionalType:ic,tSParameterProperty:Cd,tSParenthesizedType:gc,tSPropertySignature:Bd,tSQualifiedName:Dd,tSRestType:dc,tSSatisfiesExpression:Tc,tSStringKeyword:Kd,tSSymbolKeyword:Xd,tSTemplateLiteralType:bc,tSThisType:Qd,tSTupleType:oc,tSTypeAliasDeclaration:wc,tSTypeAnnotation:Lc,tSTypeAssertion:Pc,tSTypeLiteral:nc,tSTypeOperator:mc,tSTypeParameter:Gc,tSTypeParameterDeclaration:qc,tSTypeParameterInstantiation:Uc,tSTypePredicate:rc,tSTypeQuery:ac,tSTypeReference:tc,tSUndefinedKeyword:Jd,tSUnionType:lc,tSUnknownKeyword:Yd,tSVoidKeyword:$d,taggedTemplateExpression:So,templateElement:To,templateLiteral:Po,thisExpression:Xs,thisTypeAnnotation:ki,throwStatement:Js,topicReference:Sd,tryStatement:Ys,tsAnyKeyword:Ld,tsArrayType:sc,tsAsExpression:Sc,tsBigIntKeyword:qd,tsBooleanKeyword:Ud,tsCallSignatureDeclaration:Od,tsConditionalType:pc,tsConstructSignatureDeclaration:Nd,tsConstructorType:ec,tsDeclareFunction:_d,tsDeclareMethod:Id,tsEnumBody:Ac,tsEnumDeclaration:kc,tsEnumMember:Cc,tsExportAssignment:Mc,tsExpressionWithTypeArguments:xc,tsExternalModuleReference:Nc,tsFunctionType:Zd,tsImportEqualsDeclaration:Oc,tsImportType:Dc,tsIndexSignature:Fd,tsIndexedAccessType:yc,tsInferType:fc,tsInstantiationExpression:Ec,tsInterfaceBody:jc,tsInterfaceDeclaration:Rc,tsIntersectionType:uc,tsIntrinsicKeyword:Gd,tsLiteralType:vc,tsMappedType:hc,tsMethodSignature:Md,tsModuleBlock:Ic,tsModuleDeclaration:_c,tsNamedTupleMember:cc,tsNamespaceExportDeclaration:Fc,tsNeverKeyword:Wd,tsNonNullExpression:Bc,tsNullKeyword:Vd,tsNumberKeyword:Hd,tsObjectKeyword:zd,tsOptionalType:ic,tsParameterProperty:Cd,tsParenthesizedType:gc,tsPropertySignature:Bd,tsQualifiedName:Dd,tsRestType:dc,tsSatisfiesExpression:Tc,tsStringKeyword:Kd,tsSymbolKeyword:Xd,tsTemplateLiteralType:bc,tsThisType:Qd,tsTupleType:oc,tsTypeAliasDeclaration:wc,tsTypeAnnotation:Lc,tsTypeAssertion:Pc,tsTypeLiteral:nc,tsTypeOperator:mc,tsTypeParameter:Gc,tsTypeParameterDeclaration:qc,tsTypeParameterInstantiation:Uc,tsTypePredicate:rc,tsTypeQuery:ac,tsTypeReference:tc,tsUndefinedKeyword:Jd,tsUnionType:lc,tsUnknownKeyword:Yd,tsVoidKeyword:$d,tupleExpression:jd,tupleTypeAnnotation:Ci,typeAlias:Ii,typeAnnotation:Di,typeCastExpression:Oi,typeParameter:Ni,typeParameterDeclaration:Bi,typeParameterInstantiation:Mi,typeofTypeAnnotation:_i,unaryExpression:$s,unionTypeAnnotation:Fi,updateExpression:Qs,v8IntrinsicIdentifier:md,variableDeclaration:Zs,variableDeclarator:eo,variance:Li,voidPattern:kd,voidTypeAnnotation:Ui,whileStatement:to,withStatement:ro,yieldExpression:Ao});function Xc(e){return Kc[e]}var Jc=Xc("arrayExpression"),Yc=Xc("assignmentExpression"),$c=Xc("binaryExpression"),Qc=Xc("interpreterDirective"),Zc=Xc("directive"),el=Xc("directiveLiteral"),tl=Xc("blockStatement"),rl=Xc("breakStatement"),al=Xc("callExpression"),nl=Xc("catchClause"),sl=Xc("conditionalExpression"),ol=Xc("continueStatement"),il=Xc("debuggerStatement"),dl=Xc("doWhileStatement"),cl=Xc("emptyStatement"),ll=Xc("expressionStatement"),ul=Xc("file"),pl=Xc("forInStatement"),fl=Xc("forStatement"),gl=Xc("functionDeclaration"),ml=Xc("functionExpression"),yl=Xc("identifier"),hl=Xc("ifStatement"),bl=Xc("labeledStatement"),vl=Xc("stringLiteral"),xl=Xc("numericLiteral"),Rl=Xc("nullLiteral"),jl=Xc("booleanLiteral"),wl=Xc("regExpLiteral"),El=Xc("logicalExpression"),Sl=Xc("memberExpression"),Tl=Xc("newExpression"),Pl=Xc("program"),Al=Xc("objectExpression"),kl=Xc("objectMethod"),Cl=Xc("objectProperty"),_l=Xc("restElement"),Il=Xc("returnStatement"),Dl=Xc("sequenceExpression"),Ol=Xc("parenthesizedExpression"),Nl=Xc("switchCase"),Bl=Xc("switchStatement"),Ml=Xc("thisExpression"),Fl=Xc("throwStatement"),Ll=Xc("tryStatement"),Ul=Xc("unaryExpression"),ql=Xc("updateExpression"),Gl=Xc("variableDeclaration"),Wl=Xc("variableDeclarator"),Vl=Xc("whileStatement"),Hl=Xc("withStatement"),zl=Xc("assignmentPattern"),Kl=Xc("arrayPattern"),Xl=Xc("arrowFunctionExpression"),Jl=Xc("classBody"),Yl=Xc("classExpression"),$l=Xc("classDeclaration"),Ql=Xc("exportAllDeclaration"),Zl=Xc("exportDefaultDeclaration"),eu=Xc("exportNamedDeclaration"),tu=Xc("exportSpecifier"),ru=Xc("forOfStatement"),au=Xc("importDeclaration"),nu=Xc("importDefaultSpecifier"),su=Xc("importNamespaceSpecifier"),ou=Xc("importSpecifier"),iu=Xc("importExpression"),du=Xc("metaProperty"),cu=Xc("classMethod"),lu=Xc("objectPattern"),uu=Xc("spreadElement"),pu=Xc("super"),fu=Xc("taggedTemplateExpression"),gu=Xc("templateElement"),mu=Xc("templateLiteral"),yu=Xc("yieldExpression"),hu=Xc("awaitExpression"),bu=Xc("import"),vu=Xc("bigIntLiteral"),xu=Xc("exportNamespaceSpecifier"),Ru=Xc("optionalMemberExpression"),ju=Xc("optionalCallExpression"),wu=Xc("classProperty"),Eu=Xc("classAccessorProperty"),Su=Xc("classPrivateProperty"),Tu=Xc("classPrivateMethod"),Pu=Xc("privateName"),Au=Xc("staticBlock"),ku=Xc("importAttribute"),Cu=Xc("anyTypeAnnotation"),_u=Xc("arrayTypeAnnotation"),Iu=Xc("booleanTypeAnnotation"),Du=Xc("booleanLiteralTypeAnnotation"),Ou=Xc("nullLiteralTypeAnnotation"),Nu=Xc("classImplements"),Bu=Xc("declareClass"),Mu=Xc("declareFunction"),Fu=Xc("declareInterface"),Lu=Xc("declareModule"),Uu=Xc("declareModuleExports"),qu=Xc("declareTypeAlias"),Gu=Xc("declareOpaqueType"),Wu=Xc("declareVariable"),Vu=Xc("declareExportDeclaration"),Hu=Xc("declareExportAllDeclaration"),zu=Xc("declaredPredicate"),Ku=Xc("existsTypeAnnotation"),Xu=Xc("functionTypeAnnotation"),Ju=Xc("functionTypeParam"),Yu=Xc("genericTypeAnnotation"),$u=Xc("inferredPredicate"),Qu=Xc("interfaceExtends"),Zu=Xc("interfaceDeclaration"),ep=Xc("interfaceTypeAnnotation"),tp=Xc("intersectionTypeAnnotation"),rp=Xc("mixedTypeAnnotation"),ap=Xc("emptyTypeAnnotation"),np=Xc("nullableTypeAnnotation"),sp=Xc("numberLiteralTypeAnnotation"),op=Xc("numberTypeAnnotation"),ip=Xc("objectTypeAnnotation"),dp=Xc("objectTypeInternalSlot"),cp=Xc("objectTypeCallProperty"),lp=Xc("objectTypeIndexer"),up=Xc("objectTypeProperty"),pp=Xc("objectTypeSpreadProperty"),fp=Xc("opaqueType"),gp=Xc("qualifiedTypeIdentifier"),mp=Xc("stringLiteralTypeAnnotation"),yp=Xc("stringTypeAnnotation"),hp=Xc("symbolTypeAnnotation"),bp=Xc("thisTypeAnnotation"),vp=Xc("tupleTypeAnnotation"),xp=Xc("typeofTypeAnnotation"),Rp=Xc("typeAlias"),jp=Xc("typeAnnotation"),wp=Xc("typeCastExpression"),Ep=Xc("typeParameter"),Sp=Xc("typeParameterDeclaration"),Tp=Xc("typeParameterInstantiation"),Pp=Xc("unionTypeAnnotation"),Ap=Xc("variance"),kp=Xc("voidTypeAnnotation"),Cp=Xc("enumDeclaration"),_p=Xc("enumBooleanBody"),Ip=Xc("enumNumberBody"),Dp=Xc("enumStringBody"),Op=Xc("enumSymbolBody"),Np=Xc("enumBooleanMember"),Bp=Xc("enumNumberMember"),Mp=Xc("enumStringMember"),Fp=Xc("enumDefaultedMember"),Lp=Xc("indexedAccessType"),Up=Xc("optionalIndexedAccessType"),qp=Xc("jsxAttribute"),Gp=Xc("jsxClosingElement"),Wp=Xc("jsxElement"),Vp=Xc("jsxEmptyExpression"),Hp=Xc("jsxExpressionContainer"),zp=Xc("jsxSpreadChild"),Kp=Xc("jsxIdentifier"),Xp=Xc("jsxMemberExpression"),Jp=Xc("jsxNamespacedName"),Yp=Xc("jsxOpeningElement"),$p=Xc("jsxSpreadAttribute"),Qp=Xc("jsxText"),Zp=Xc("jsxFragment"),ef=Xc("jsxOpeningFragment"),tf=Xc("jsxClosingFragment"),rf=Xc("noop"),af=Xc("placeholder"),nf=Xc("v8IntrinsicIdentifier"),sf=Xc("argumentPlaceholder"),of=Xc("bindExpression"),df=Xc("decorator"),cf=Xc("doExpression"),lf=Xc("exportDefaultSpecifier"),uf=Xc("recordExpression"),pf=Xc("tupleExpression"),ff=Xc("decimalLiteral"),gf=Xc("moduleExpression"),mf=Xc("topicReference"),yf=Xc("pipelineTopicExpression"),hf=Xc("pipelineBareFunction"),bf=Xc("pipelinePrimaryTopicReference"),vf=Xc("voidPattern"),xf=Xc("tsParameterProperty"),Rf=Xc("tsDeclareFunction"),jf=Xc("tsDeclareMethod"),wf=Xc("tsQualifiedName"),Ef=Xc("tsCallSignatureDeclaration"),Sf=Xc("tsConstructSignatureDeclaration"),Tf=Xc("tsPropertySignature"),Pf=Xc("tsMethodSignature"),Af=Xc("tsIndexSignature"),kf=Xc("tsAnyKeyword"),Cf=Xc("tsBooleanKeyword"),_f=Xc("tsBigIntKeyword"),If=Xc("tsIntrinsicKeyword"),Df=Xc("tsNeverKeyword"),Of=Xc("tsNullKeyword"),Nf=Xc("tsNumberKeyword"),Bf=Xc("tsObjectKeyword"),Mf=Xc("tsStringKeyword"),Ff=Xc("tsSymbolKeyword"),Lf=Xc("tsUndefinedKeyword"),Uf=Xc("tsUnknownKeyword"),qf=Xc("tsVoidKeyword"),Gf=Xc("tsThisType"),Wf=Xc("tsFunctionType"),Vf=Xc("tsConstructorType"),Hf=Xc("tsTypeReference"),zf=Xc("tsTypePredicate"),Kf=Xc("tsTypeQuery"),Xf=Xc("tsTypeLiteral"),Jf=Xc("tsArrayType"),Yf=Xc("tsTupleType"),$f=Xc("tsOptionalType"),Qf=Xc("tsRestType"),Zf=Xc("tsNamedTupleMember"),eg=Xc("tsUnionType"),tg=Xc("tsIntersectionType"),rg=Xc("tsConditionalType"),ag=Xc("tsInferType"),ng=Xc("tsParenthesizedType"),sg=Xc("tsTypeOperator"),og=Xc("tsIndexedAccessType"),ig=Xc("tsMappedType"),dg=Xc("tsTemplateLiteralType"),cg=Xc("tsLiteralType"),lg=Xc("tsExpressionWithTypeArguments"),ug=Xc("tsInterfaceDeclaration"),pg=Xc("tsInterfaceBody"),fg=Xc("tsTypeAliasDeclaration"),gg=Xc("tsInstantiationExpression"),mg=Xc("tsAsExpression"),yg=Xc("tsSatisfiesExpression"),hg=Xc("tsTypeAssertion"),bg=Xc("tsEnumBody"),vg=Xc("tsEnumDeclaration"),xg=Xc("tsEnumMember"),Rg=Xc("tsModuleDeclaration"),jg=Xc("tsModuleBlock"),wg=Xc("tsImportType"),Eg=Xc("tsImportEqualsDeclaration"),Sg=Xc("tsExternalModuleReference"),Tg=Xc("tsNonNullExpression"),Pg=Xc("tsExportAssignment"),Ag=Xc("tsNamespaceExportDeclaration"),kg=Xc("tsTypeAnnotation"),Cg=Xc("tsTypeParameterInstantiation"),_g=Xc("tsTypeParameterDeclaration"),Ig=Xc("tsTypeParameter"),Dg=Wc,Og=Vc,Ng=Hc,Bg=zc;function Mg(e,t){for(var r=e.value.split(/\r\n|\n|\r/),a=0,n=0;n<r.length;n++)/[^ \t]/.exec(r[n])&&(a=n);for(var s="",o=0;o<r.length;o++){var i=r[o],d=0===o,c=o===r.length-1,l=o===a,u=i.replace(/\t/g," ");d||(u=u.replace(/^ +/,"")),c||(u=u.replace(/ +$/,"")),u&&(l||(u+=" "),s+=u)}s&&t.push(Cy(Cs(s),e))}function Fg(e){return!(!e||!ja[e.type])}function Lg(e){if(!Fg(e)){var t,r=null!=(t=null==e?void 0:e.type)?t:JSON.stringify(e);throw new TypeError('Not a valid node of type "'+r+'"')}}function Ug(e,t,r){if(!kr(e,t,r))throw new Error('Expected type "'+e+'" with option '+JSON.stringify(r)+', but instead got "'+t.type+'".')}function qg(e,t){Ug("ExpressionStatement",e,t)}function Gg(e,t){Ug("Identifier",e,t)}function Wg(e,t){Ug("RestElement",e,t)}function Vg(e,t){Ug("VariableDeclaration",e,t)}function Hg(e,t){Ug("Expression",e,t)}function zg(e,t){Ug("Statement",e,t)}function Kg(e,t){Ug("Function",e,t)}function Xg(e){switch(e){case"string":return{type:"StringTypeAnnotation"};case"number":return{type:"NumberTypeAnnotation"};case"undefined":return{type:"VoidTypeAnnotation"};case"boolean":return{type:"BooleanTypeAnnotation"};case"function":return ii(Ps("Function"));case"object":return ii(Ps("Object"));case"symbol":return ii(Ps("Symbol"));case"bigint":return{type:"AnyTypeAnnotation"}}throw new Error("Invalid typeof value: "+e)}function Jg(e){return ie(e)?e.name:e.id.name+"."+Jg(e.qualification)}function Yg(e){for(var t=Array.from(e),r=new Map,a=new Map,n=new Set,s=[],o=0;o<t.length;o++){var d=t[o];if(d&&!s.includes(d)){if(ct(d))return[d];if(vr(d))a.set(d.type,d);else if(Rt(d))n.has(d.types)||(t.push.apply(t,b(d.types)),n.add(d.types));else if(ft(d)){var c=Jg(d.id);if(r.has(c)){var l,u=r.get(c);if(u.typeParameters){if(d.typeParameters)(l=u.typeParameters.params).push.apply(l,b(d.typeParameters.params)),u.typeParameters.params=Yg(u.typeParameters.params)}else u=d.typeParameters}else r.set(c,d)}else s.push(d)}}for(var p,f=i(a);!(p=f()).done;){var g=y(p.value,2)[1];s.push(g)}for(var m,h=i(r);!(m=h()).done;){var v=y(m.value,2)[1];s.push(v)}return s}function $g(e){var t=Yg(e);return 1===t.length?t[0]:Fi(t)}function Qg(e){return ie(e)?e.name:Se(e)?"this":e.right.name+"."+Qg(e.left)}function Zg(e){for(var t=Array.from(e),r=new Map,a=new Map,n=new Set,s=[],o=0;o<t.length;o++){var d=t[o];if(d&&!s.includes(d)){if(Lt(d))return[d];if(jr(d))a.set(d.type,d);else if(Gt(d))n.has(d.types)||(t.push.apply(t,b(d.types)),n.add(d.types));else{var c="typeParameters";if(Ut(d)&&d[c]){var l=d[c],u=Qg(d.typeName);if(r.has(u)){var p,f=r.get(u),g=f[c];if(g)(p=g.params).push.apply(p,b(l.params)),g.params=Zg(g.params);else f=l}else r.set(u,d)}else s.push(d)}}}for(var m,h=i(a);!(m=h()).done;){var v=y(m.value,2)[1];s.push(v)}for(var x,R=i(r);!(x=R()).done;){var j=y(x.value,2)[1];s.push(j)}return s}function em(e){var t=e.map(function(e){return Yt(e)?e.typeAnnotation:e}),r=Zg(t);return 1===r.length?r[0]:lc(r)}function tm(){return $s("void",_s(0),!0)}var rm={hasOwn:Function.call.bind(Object.prototype.hasOwnProperty)}.hasOwn;function am(e,t,r,a){return e&&"string"==typeof e.type?om(e,t,r,a):e}function nm(e,t,r,a){return Array.isArray(e)?e.map(function(e){return am(e,t,r,a)}):am(e,t,r,a)}function sm(e,t,r){return void 0===t&&(t=!0),void 0===r&&(r=!1),om(e,t,r,new Map)}function om(e,t,r,a){if(void 0===t&&(t=!0),void 0===r&&(r=!1),!e)return e;var n=e.type,s={type:e.type};if(ie(e))s.name=e.name,rm(e,"optional")&&"boolean"==typeof e.optional&&(s.optional=e.optional),rm(e,"typeAnnotation")&&(s.typeAnnotation=t?nm(e.typeAnnotation,!0,r,a):e.typeAnnotation),rm(e,"decorators")&&(s.decorators=t?nm(e.decorators,!0,r,a):e.decorators);else{if(!rm(Sa,n))throw new Error('Unknown node type: "'+n+'"');for(var o=0,i=Object.keys(Sa[n]);o<i.length;o++){var d=i[o];rm(e,d)&&(s[d]=t?ae(e)&&"comments"===d?im(e.comments,t,r,a):nm(e[d],!0,r,a):e[d])}}return rm(e,"loc")&&(s.loc=r?null:e.loc),rm(e,"leadingComments")&&(s.leadingComments=im(e.leadingComments,t,r,a)),rm(e,"innerComments")&&(s.innerComments=im(e.innerComments,t,r,a)),rm(e,"trailingComments")&&(s.trailingComments=im(e.trailingComments,t,r,a)),rm(e,"extra")&&(s.extra=Object.assign({},e.extra)),s}function im(e,t,r,a){return e&&t?e.map(function(e){var t=a.get(e);if(t)return t;var n={type:e.type,value:e.value,loc:e.loc};return r&&(n.loc=null),a.set(e,n),n}):e}function dm(e){return sm(e,!1)}function cm(e,t,r){if(!r||!e)return e;var a,n=t+"Comments";e[n]?"leading"===t?e[n]=r.concat(e[n]):(a=e[n]).push.apply(a,b(r)):e[n]=r;return e}function lm(e,t,r,a){return cm(e,t,[{type:a?"CommentLine":"CommentBlock",value:r}])}function um(e,t,r){t&&r&&(t[e]=Array.from(new Set([].concat(t[e],r[e]).filter(Boolean))))}function pm(e,t){um("innerComments",e,t)}function fm(e,t){um("leadingComments",e,t)}function gm(e,t){um("trailingComments",e,t)}function mm(e,t){return gm(e,t),fm(e,t),pm(e,t),e}function ym(e){return ia.forEach(function(t){e[t]=null}),e}var hm=Ea.Standardized,bm=Ea.Expression,vm=Ea.Binary,xm=Ea.Scopable,Rm=Ea.BlockParent,jm=Ea.Block,wm=Ea.Statement,Em=Ea.Terminatorless,Sm=Ea.CompletionStatement,Tm=Ea.Conditional,Pm=Ea.Loop,Am=Ea.While,km=Ea.ExpressionWrapper,Cm=Ea.For,_m=Ea.ForXStatement,Im=Ea.Function,Dm=Ea.FunctionParent,Om=Ea.Pureish,Nm=Ea.Declaration,Bm=Ea.FunctionParameter,Mm=Ea.PatternLike,Fm=Ea.LVal,Lm=Ea.TSEntityName,Um=Ea.Literal,qm=Ea.Immutable,Gm=Ea.UserWhitespacable,Wm=Ea.Method,Vm=Ea.ObjectMember,Hm=Ea.Property,zm=Ea.UnaryLike,Km=Ea.Pattern,Xm=Ea.Class,Jm=Ea.ImportOrExportDeclaration,Ym=Ea.ExportDeclaration,$m=Ea.ModuleSpecifier,Qm=Ea.Accessor,Zm=Ea.Private,ey=Ea.Flow,ty=Ea.FlowType,ry=Ea.FlowBaseAnnotation,ay=Ea.FlowDeclaration,ny=Ea.FlowPredicate,sy=Ea.EnumBody,oy=Ea.EnumMember,iy=Ea.JSX,dy=Ea.Miscellaneous,cy=Ea.TypeScript,ly=Ea.TSTypeElement,uy=Ea.TSType,py=Ea.TSBaseType,fy=Jm;function gy(e,t){if(Q(e))return e;var r=[];return te(e)?r=[]:(er(e)||(e=nr(t)?Ws(e):Rs(e)),r=[e]),ps(r)}function my(e){for(var t,r="",a=i(e+="");!(t=a()).done;){var n=t.value;r+=Fr(n.codePointAt(0))?n:"-"}return r=(r=r.replace(/^[-0-9]+/,"")).replace(/[-\s]+(.)?/g,function(e,t){return t?t.toUpperCase():""}),Yr(r)||(r="_"+r),r||"_"}function yy(e){return"eval"!==(e=my(e))&&"arguments"!==e||(e="_"+e),e}function hy(e,t){return void 0===t&&(t=e.key||e.property),!e.computed&&ie(t)&&(t=Cs(t.name)),t}function by(e){if(re(e)&&(e=e.expression),$t(e))return e;if(pr(e)?(e.type="ClassExpression",e.abstract=!1):nr(e)&&(e.type="FunctionExpression"),!$t(e))throw new Error("cannot turn "+e.type+" to an expression");return e}var vy=Symbol(),xy=Symbol();function Ry(e,t,r){if(!e)return!1;var a=ja[e.type];if(!a)return!1;var n=t(e,r=r||{});if(void 0!==n)switch(n){case vy:return!1;case xy:return!0}for(var s,o=i(a);!(s=o()).done;){var d=e[s.value];if(d)if(Array.isArray(d))for(var c,l=i(d);!(c=l()).done;){if(Ry(c.value,t,r))return!0}else if(Ry(d,t,r))return!0}return!1}Ry.skip=vy,Ry.stop=xy;var jy=["tokens","start","end","loc","raw","rawValue"],wy=[].concat(b(ia),["comments"],jy);function Ey(e,t){void 0===t&&(t={});for(var r,a=i(t.preserveComments?jy:wy);!(r=a()).done;){var n=r.value;null!=e[n]&&(e[n]=void 0)}for(var s=0,o=Object.keys(e);s<o.length;s++){var d=o[s];d.startsWith("_")&&null!=e[d]&&(e[d]=void 0)}for(var c,l=i(Object.getOwnPropertySymbols(e));!(c=l()).done;){e[c.value]=null}}function Sy(e,t){return Ry(e,Ey,t),e}function Ty(e,t){var r;return void 0===t&&(t=e.key),"method"===e.kind?Ty.increment()+"":(r=ie(t)?t.name:le(t)?JSON.stringify(t.value):JSON.stringify(Sy(sm(t))),e.computed&&(r="["+r+"]"),e.static&&(r="static:"+r),r)}function Py(e,t){if(er(e))return e;var r,a=!1;if(pr(e))a=!0,r="ClassDeclaration";else if(nr(e))a=!0,r="FunctionDeclaration";else if($(e))return Rs(e);if(a&&!e.id&&(r=!1),!r){if(t)return!1;throw new Error("cannot turn "+e.type+" to a statement")}return e.type=r,e}Ty.uid=0,Ty.increment=function(){return Ty.uid>=Number.MAX_SAFE_INTEGER?Ty.uid=0:Ty.uid++};var Ay=Function.call.bind(Object.prototype.toString);function ky(e){if(void 0===e)return Ps("undefined");if(!0===e||!1===e)return Ds(e);if(null===e)return{type:"NullLiteral"};if("string"==typeof e)return Cs(e);if("number"==typeof e){var t;if(Number.isFinite(e))t=_s(Math.abs(e));else t=ds("/",Number.isNaN(e)?_s(0):_s(1),_s(0));return(e<0||Object.is(e,-0))&&(t=$s("-",t)),t}if("bigint"==typeof e)return e<0?$s("-",ss(-e)):ss(e);if(function(e){return"[object RegExp]"===Ay(e)}(e))return Os(e.source,/\/([a-z]*)$/.exec(e.toString())[1]);if(Array.isArray(e))return os(e.map(ky));if(function(e){if("object"!=typeof e||null===e||"[object Object]"!==Object.prototype.toString.call(e))return!1;var t=Object.getPrototypeOf(e);return null===t||null===Object.getPrototypeOf(t)}(e)){for(var r=[],a=0,n=Object.keys(e);a<n.length;a++){var s=n[a],o=void 0,i=!1;Yr(s)?"__proto__"===s?(i=!0,o=Cs(s)):o=Ps(s):o=Cs(s),r.push(qs(o,ky(e[s]),i))}return Ls(r)}throw new Error("don't know how to turn this value into a node")}function Cy(e,t){if(!e||!t)return e;for(var r,a=i(Ra.optional);!(r=a()).done;){var n=r.value;null==e[n]&&(e[n]=t[n])}for(var s=0,o=Object.keys(t);s<o.length;s++){var d=o[s];d.startsWith("_")&&"__clone"!==d&&(e[d]=t[d])}for(var c,l=i(Ra.force);!(c=l()).done;){var u=c.value;e[u]=t[u]}return mm(e,t),e}function _y(e){for(var t=[].concat(e),r=Object.create(null);t.length;){var a=t.pop();if(a)switch(a.type){case"ArrayPattern":t.push.apply(t,b(a.elements));break;case"AssignmentExpression":case"AssignmentPattern":case"ForInStatement":case"ForOfStatement":t.push(a.left);break;case"ObjectPattern":t.push.apply(t,b(a.properties));break;case"ObjectProperty":t.push(a.value);break;case"RestElement":case"UpdateExpression":t.push(a.argument);break;case"UnaryExpression":"delete"===a.operator&&t.push(a.argument);break;case"Identifier":r[a.name]=a}}return r}function Iy(e,t,r,a){for(var n=[].concat(e),s=Object.create(null);n.length;){var o=n.shift();if(o)if(!a||!($(o)||Te(o)||Pe(o)))if(ie(o))t?(s[o.name]=s[o.name]||[]).push(o):s[o.name]=o;else if(!gr(o)||Be(o)){if(r){if(se(o)){n.push(o.id);continue}if(oe(o))continue}var i=Iy.keys[o.type];if(i)for(var d=0;d<i.length;d++){var c=o[i[d]];c&&(Array.isArray(c)?n.push.apply(n,b(c)):n.push(c))}}else ir(o.declaration)&&n.push(o.declaration)}return s}function Dy(e,t){return Iy(e,t,!0)}function Oy(e){if(!e.computed||dr(e.key))return e.key}function Ny(e,t){if("id"in e&&e.id)return{name:e.id.name,originalNode:e.id};var r,a="";if(xe(t,{value:e})?r=Oy(t):ve(e)||ze(e)?(r=Oy(e),"get"===e.kind?a="get ":"set"===e.kind&&(a="set ")):ke(t,{init:e})?r=t.id:$(t,{operator:"=",right:e})&&(r=t.left),!r)return null;var n=dr(r)?function(e){return pe(e)?"null":ge(e)?"/"+e.pattern+"/"+e.flags:$e(e)?e.quasis.map(function(e){return e.value.raw}).join(""):void 0!==e.value?String(e.value):null}(r):ie(r)?r.name:it(r)?r.id.name:null;return null==n?null:{name:a+n,originalNode:r}}function By(e,t,r){"function"==typeof t&&(t={enter:t});var a=t;My(e,a.enter,a.exit,r,[])}function My(e,t,r,a,n){var s=ja[e.type];if(s){t&&t(e,n,a);for(var o,d=i(s);!(o=d()).done;){var c=o.value,l=e[c];if(Array.isArray(l))for(var u=0;u<l.length;u++){var p=l[u];p&&(n.push({node:e,key:c,index:u}),My(p,t,r,a,n),n.pop())}else l&&(n.push({node:e,key:c}),My(l,t,r,a,n),n.pop())}r&&r(e,n,a)}}function Fy(e,t,r){if(r&&"Identifier"===e.type&&"ObjectProperty"===t.type&&"ObjectExpression"===r.type)return!1;var a=Iy.keys[t.type];if(a)for(var n=0;n<a.length;n++){var s=t[a[n]];if(Array.isArray(s)){if(s.includes(e))return!0}else if(s===e)return!0}return!1}Iy.keys={DeclareClass:["id"],DeclareFunction:["id"],DeclareModule:["id"],DeclareVariable:["id"],DeclareInterface:["id"],DeclareTypeAlias:["id"],DeclareOpaqueType:["id"],InterfaceDeclaration:["id"],TypeAlias:["id"],OpaqueType:["id"],CatchClause:["param"],LabeledStatement:["label"],UnaryExpression:["argument"],AssignmentExpression:["left"],ImportSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportDefaultSpecifier:["local"],ImportDeclaration:["specifiers"],TSImportEqualsDeclaration:["id"],ExportSpecifier:["exported"],ExportNamespaceSpecifier:["exported"],ExportDefaultSpecifier:["exported"],FunctionDeclaration:["id","params"],FunctionExpression:["id","params"],ArrowFunctionExpression:["params"],ObjectMethod:["params"],ClassMethod:["params"],ClassPrivateMethod:["params"],ForInStatement:["left"],ForOfStatement:["left"],ClassDeclaration:["id"],ClassExpression:["id"],RestElement:["argument"],UpdateExpression:["argument"],ObjectProperty:["value"],AssignmentPattern:["left"],ArrayPattern:["elements"],ObjectPattern:["properties"],VariableDeclaration:["declarations"],VariableDeclarator:["id"]};var Ly=Symbol.for("var used to be block scoped");function Uy(e){return Ae(e)&&("var"!==e.kind||e[Ly])}function qy(e){return se(e)||Ne(e)||Uy(e)}function Gy(e,t,r){switch(t.type){case"MemberExpression":case"OptionalMemberExpression":return t.property===e?!!t.computed:t.object===e;case"JSXMemberExpression":return t.object===e;case"VariableDeclarator":return t.init===e;case"ArrowFunctionExpression":return t.body===e;case"PrivateName":case"LabeledStatement":case"CatchClause":case"RestElement":case"BreakStatement":case"ContinueStatement":case"FunctionDeclaration":case"FunctionExpression":case"ExportNamespaceSpecifier":case"ExportDefaultSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":case"ImportAttribute":case"JSXAttribute":case"ObjectPattern":case"ArrayPattern":case"MetaProperty":return!1;case"ClassMethod":case"ClassPrivateMethod":case"ObjectMethod":return t.key===e&&!!t.computed;case"ObjectProperty":return t.key===e?!!t.computed:"ObjectPattern"!==(null==r?void 0:r.type);case"ClassProperty":case"ClassAccessorProperty":case"TSPropertySignature":return t.key!==e||!!t.computed;case"ClassPrivateProperty":case"ObjectTypeProperty":return t.key!==e;case"ClassDeclaration":case"ClassExpression":return t.superClass===e;case"AssignmentExpression":case"AssignmentPattern":return t.right===e;case"ExportSpecifier":return(null==r||!r.source)&&t.local===e;case"TSEnumMember":return t.id!==e}return!0}function Wy(e,t){return(!Q(e)||!nr(t)&&!ee(t))&&(!(!ur(e)||!nr(t)&&!ee(t))||Zt(e))}var Vy=new Set(["abstract","boolean","byte","char","double","enum","final","float","goto","implements","int","interface","long","native","package","private","protected","public","short","static","synchronized","throws","transient","volatile"]);function Hy(e){return Yr(e)&&!Vy.has(e)}var zy=Symbol.for("var used to be block scoped");function Ky(e){return Ae(e,{kind:"var"})&&!e[zy]}var Xy={isReactComponent:Tr,isCompatTag:function(e){return!!e&&/^[a-z]/.test(e)},buildChildren:function(e){for(var t=[],r=0;r<e.children.length;r++){var a=e.children[r];It(a)?Mg(a,t):(Tt(a)&&(a=a.expression),St(a)||t.push(a))}return t}};z.env.BABEL_TYPES_8_BREAKING&&console.warn("BABEL_TYPES_8_BREAKING is not supported anymore. Use the latest Babel 8.0.0 pre-release instead!");var Jy=Object.freeze({__proto__:null,ACCESSOR_TYPES:Qm,ALIAS_KEYS:wa,ASSIGNMENT_OPERATORS:ya,AnyTypeAnnotation:Cu,ArgumentPlaceholder:sf,ArrayExpression:Jc,ArrayPattern:Kl,ArrayTypeAnnotation:_u,ArrowFunctionExpression:Xl,AssignmentExpression:Yc,AssignmentPattern:zl,AwaitExpression:hu,BINARY_OPERATORS:ma,BINARY_TYPES:vm,BLOCKPARENT_TYPES:Rm,BLOCK_TYPES:jm,BOOLEAN_BINARY_OPERATORS:fa,BOOLEAN_NUMBER_BINARY_OPERATORS:la,BOOLEAN_UNARY_OPERATORS:ha,BUILDER_KEYS:Ta,BigIntLiteral:vu,BinaryExpression:$c,BindExpression:of,BlockStatement:tl,BooleanLiteral:jl,BooleanLiteralTypeAnnotation:Du,BooleanTypeAnnotation:Iu,BreakStatement:rl,CLASS_TYPES:Xm,COMMENT_KEYS:ia,COMPARISON_BINARY_OPERATORS:pa,COMPLETIONSTATEMENT_TYPES:Sm,CONDITIONAL_TYPES:Tm,CallExpression:al,CatchClause:nl,ClassAccessorProperty:Eu,ClassBody:Jl,ClassDeclaration:$l,ClassExpression:Yl,ClassImplements:Nu,ClassMethod:cu,ClassPrivateMethod:Tu,ClassPrivateProperty:Su,ClassProperty:wu,ConditionalExpression:sl,ContinueStatement:ol,DECLARATION_TYPES:Nm,DEPRECATED_ALIASES:Wn,DEPRECATED_KEYS:Pa,DebuggerStatement:il,DecimalLiteral:ff,DeclareClass:Bu,DeclareExportAllDeclaration:Hu,DeclareExportDeclaration:Vu,DeclareFunction:Mu,DeclareInterface:Fu,DeclareModule:Lu,DeclareModuleExports:Uu,DeclareOpaqueType:Gu,DeclareTypeAlias:qu,DeclareVariable:Wu,DeclaredPredicate:zu,Decorator:df,Directive:Zc,DirectiveLiteral:el,DoExpression:cf,DoWhileStatement:dl,ENUMBODY_TYPES:sy,ENUMMEMBER_TYPES:oy,EQUALITY_BINARY_OPERATORS:ua,EXPORTDECLARATION_TYPES:Ym,EXPRESSIONWRAPPER_TYPES:km,EXPRESSION_TYPES:bm,EmptyStatement:cl,EmptyTypeAnnotation:ap,EnumBooleanBody:_p,EnumBooleanMember:Np,EnumDeclaration:Cp,EnumDefaultedMember:Fp,EnumNumberBody:Ip,EnumNumberMember:Bp,EnumStringBody:Dp,EnumStringMember:Mp,EnumSymbolBody:Op,ExistsTypeAnnotation:Ku,ExportAllDeclaration:Ql,ExportDefaultDeclaration:Zl,ExportDefaultSpecifier:lf,ExportNamedDeclaration:eu,ExportNamespaceSpecifier:xu,ExportSpecifier:tu,ExpressionStatement:ll,FLATTENABLE_KEYS:["body","expressions"],FLIPPED_ALIAS_KEYS:Ea,FLOWBASEANNOTATION_TYPES:ry,FLOWDECLARATION_TYPES:ay,FLOWPREDICATE_TYPES:ny,FLOWTYPE_TYPES:ty,FLOW_TYPES:ey,FORXSTATEMENT_TYPES:_m,FOR_INIT_KEYS:["left","init"],FOR_TYPES:Cm,FUNCTIONPARAMETER_TYPES:Bm,FUNCTIONPARENT_TYPES:Dm,FUNCTION_TYPES:Im,File:ul,ForInStatement:pl,ForOfStatement:ru,ForStatement:fl,FunctionDeclaration:gl,FunctionExpression:ml,FunctionTypeAnnotation:Xu,FunctionTypeParam:Ju,GenericTypeAnnotation:Yu,IMMUTABLE_TYPES:qm,IMPORTOREXPORTDECLARATION_TYPES:Jm,INHERIT_KEYS:Ra,Identifier:yl,IfStatement:hl,Import:bu,ImportAttribute:ku,ImportDeclaration:au,ImportDefaultSpecifier:nu,ImportExpression:iu,ImportNamespaceSpecifier:su,ImportSpecifier:ou,IndexedAccessType:Lp,InferredPredicate:$u,InterfaceDeclaration:Zu,InterfaceExtends:Qu,InterfaceTypeAnnotation:ep,InterpreterDirective:Qc,IntersectionTypeAnnotation:tp,JSXAttribute:qp,JSXClosingElement:Gp,JSXClosingFragment:tf,JSXElement:Wp,JSXEmptyExpression:Vp,JSXExpressionContainer:Hp,JSXFragment:Zp,JSXIdentifier:Kp,JSXMemberExpression:Xp,JSXNamespacedName:Jp,JSXOpeningElement:Yp,JSXOpeningFragment:ef,JSXSpreadAttribute:$p,JSXSpreadChild:zp,JSXText:Qp,JSX_TYPES:iy,LITERAL_TYPES:Um,LOGICAL_OPERATORS:da,LOOP_TYPES:Pm,LVAL_TYPES:Fm,LabeledStatement:bl,LogicalExpression:El,METHOD_TYPES:Wm,MISCELLANEOUS_TYPES:dy,MODULEDECLARATION_TYPES:fy,MODULESPECIFIER_TYPES:$m,MemberExpression:Sl,MetaProperty:du,MixedTypeAnnotation:rp,ModuleExpression:gf,NODE_FIELDS:Sa,NODE_PARENT_VALIDATIONS:Aa,NODE_UNION_SHAPES__PRIVATE:ka,NUMBER_BINARY_OPERATORS:ga,NUMBER_UNARY_OPERATORS:ba,NewExpression:Tl,Noop:rf,NullLiteral:Rl,NullLiteralTypeAnnotation:Ou,NullableTypeAnnotation:np,NumberLiteral:Dg,NumberLiteralTypeAnnotation:sp,NumberTypeAnnotation:op,NumericLiteral:xl,OBJECTMEMBER_TYPES:Vm,ObjectExpression:Al,ObjectMethod:kl,ObjectPattern:lu,ObjectProperty:Cl,ObjectTypeAnnotation:ip,ObjectTypeCallProperty:cp,ObjectTypeIndexer:lp,ObjectTypeInternalSlot:dp,ObjectTypeProperty:up,ObjectTypeSpreadProperty:pp,OpaqueType:fp,OptionalCallExpression:ju,OptionalIndexedAccessType:Up,OptionalMemberExpression:Ru,PATTERNLIKE_TYPES:Mm,PATTERN_TYPES:Km,PLACEHOLDERS:Rn,PLACEHOLDERS_ALIAS:jn,PLACEHOLDERS_FLIPPED_ALIAS:Pn,PRIVATE_TYPES:Zm,PROPERTY_TYPES:Hm,PUREISH_TYPES:Om,ParenthesizedExpression:Ol,PipelineBareFunction:hf,PipelinePrimaryTopicReference:bf,PipelineTopicExpression:yf,Placeholder:af,PrivateName:Pu,Program:Pl,QualifiedTypeIdentifier:gp,RecordExpression:uf,RegExpLiteral:wl,RegexLiteral:Og,RestElement:_l,RestProperty:Ng,ReturnStatement:Il,SCOPABLE_TYPES:xm,STANDARDIZED_TYPES:hm,STATEMENT_OR_BLOCK_KEYS:oa,STATEMENT_TYPES:wm,STRING_UNARY_OPERATORS:va,SequenceExpression:Dl,SpreadElement:uu,SpreadProperty:Bg,StaticBlock:Au,StringLiteral:vl,StringLiteralTypeAnnotation:mp,StringTypeAnnotation:yp,Super:pu,SwitchCase:Nl,SwitchStatement:Bl,SymbolTypeAnnotation:hp,TERMINATORLESS_TYPES:Em,TSAnyKeyword:kf,TSArrayType:Jf,TSAsExpression:mg,TSBASETYPE_TYPES:py,TSBigIntKeyword:_f,TSBooleanKeyword:Cf,TSCallSignatureDeclaration:Ef,TSConditionalType:rg,TSConstructSignatureDeclaration:Sf,TSConstructorType:Vf,TSDeclareFunction:Rf,TSDeclareMethod:jf,TSENTITYNAME_TYPES:Lm,TSEnumBody:bg,TSEnumDeclaration:vg,TSEnumMember:xg,TSExportAssignment:Pg,TSExpressionWithTypeArguments:lg,TSExternalModuleReference:Sg,TSFunctionType:Wf,TSImportEqualsDeclaration:Eg,TSImportType:wg,TSIndexSignature:Af,TSIndexedAccessType:og,TSInferType:ag,TSInstantiationExpression:gg,TSInterfaceBody:pg,TSInterfaceDeclaration:ug,TSIntersectionType:tg,TSIntrinsicKeyword:If,TSLiteralType:cg,TSMappedType:ig,TSMethodSignature:Pf,TSModuleBlock:jg,TSModuleDeclaration:Rg,TSNamedTupleMember:Zf,TSNamespaceExportDeclaration:Ag,TSNeverKeyword:Df,TSNonNullExpression:Tg,TSNullKeyword:Of,TSNumberKeyword:Nf,TSObjectKeyword:Bf,TSOptionalType:$f,TSParameterProperty:xf,TSParenthesizedType:ng,TSPropertySignature:Tf,TSQualifiedName:wf,TSRestType:Qf,TSSatisfiesExpression:yg,TSStringKeyword:Mf,TSSymbolKeyword:Ff,TSTYPEELEMENT_TYPES:ly,TSTYPE_TYPES:uy,TSTemplateLiteralType:dg,TSThisType:Gf,TSTupleType:Yf,TSTypeAliasDeclaration:fg,TSTypeAnnotation:kg,TSTypeAssertion:hg,TSTypeLiteral:Xf,TSTypeOperator:sg,TSTypeParameter:Ig,TSTypeParameterDeclaration:_g,TSTypeParameterInstantiation:Cg,TSTypePredicate:zf,TSTypeQuery:Kf,TSTypeReference:Hf,TSUndefinedKeyword:Lf,TSUnionType:eg,TSUnknownKeyword:Uf,TSVoidKeyword:qf,TYPES:Zn,TYPESCRIPT_TYPES:cy,TaggedTemplateExpression:fu,TemplateElement:gu,TemplateLiteral:mu,ThisExpression:Ml,ThisTypeAnnotation:bp,ThrowStatement:Fl,TopicReference:mf,TryStatement:Ll,TupleExpression:pf,TupleTypeAnnotation:vp,TypeAlias:Rp,TypeAnnotation:jp,TypeCastExpression:wp,TypeParameter:Ep,TypeParameterDeclaration:Sp,TypeParameterInstantiation:Tp,TypeofTypeAnnotation:xp,UNARYLIKE_TYPES:zm,UNARY_OPERATORS:xa,UPDATE_OPERATORS:ca,USERWHITESPACABLE_TYPES:Gm,UnaryExpression:Ul,UnionTypeAnnotation:Pp,UpdateExpression:ql,V8IntrinsicIdentifier:nf,VISITOR_KEYS:ja,VariableDeclaration:Gl,VariableDeclarator:Wl,Variance:Ap,VoidPattern:vf,VoidTypeAnnotation:kp,WHILE_TYPES:Am,WhileStatement:Vl,WithStatement:Hl,YieldExpression:yu,__internal__deprecationWarning:J,addComment:lm,addComments:cm,anyTypeAnnotation:qo,appendToMemberExpression:function(e,t,r){return void 0===r&&(r=!1),e.object=Bs(e.object,e.property,e.computed),e.property=t,e.computed=!!r,e},argumentPlaceholder:yd,arrayExpression:os,arrayPattern:no,arrayTypeAnnotation:Go,arrowFunctionExpression:so,assertAccessor:function(e,t){Ug("Accessor",e,t)},assertAnyTypeAnnotation:function(e,t){Ug("AnyTypeAnnotation",e,t)},assertArgumentPlaceholder:function(e,t){Ug("ArgumentPlaceholder",e,t)},assertArrayExpression:function(e,t){Ug("ArrayExpression",e,t)},assertArrayPattern:function(e,t){Ug("ArrayPattern",e,t)},assertArrayTypeAnnotation:function(e,t){Ug("ArrayTypeAnnotation",e,t)},assertArrowFunctionExpression:function(e,t){Ug("ArrowFunctionExpression",e,t)},assertAssignmentExpression:function(e,t){Ug("AssignmentExpression",e,t)},assertAssignmentPattern:function(e,t){Ug("AssignmentPattern",e,t)},assertAwaitExpression:function(e,t){Ug("AwaitExpression",e,t)},assertBigIntLiteral:function(e,t){Ug("BigIntLiteral",e,t)},assertBinary:function(e,t){Ug("Binary",e,t)},assertBinaryExpression:function(e,t){Ug("BinaryExpression",e,t)},assertBindExpression:function(e,t){Ug("BindExpression",e,t)},assertBlock:function(e,t){Ug("Block",e,t)},assertBlockParent:function(e,t){Ug("BlockParent",e,t)},assertBlockStatement:function(e,t){Ug("BlockStatement",e,t)},assertBooleanLiteral:function(e,t){Ug("BooleanLiteral",e,t)},assertBooleanLiteralTypeAnnotation:function(e,t){Ug("BooleanLiteralTypeAnnotation",e,t)},assertBooleanTypeAnnotation:function(e,t){Ug("BooleanTypeAnnotation",e,t)},assertBreakStatement:function(e,t){Ug("BreakStatement",e,t)},assertCallExpression:function(e,t){Ug("CallExpression",e,t)},assertCatchClause:function(e,t){Ug("CatchClause",e,t)},assertClass:function(e,t){Ug("Class",e,t)},assertClassAccessorProperty:function(e,t){Ug("ClassAccessorProperty",e,t)},assertClassBody:function(e,t){Ug("ClassBody",e,t)},assertClassDeclaration:function(e,t){Ug("ClassDeclaration",e,t)},assertClassExpression:function(e,t){Ug("ClassExpression",e,t)},assertClassImplements:function(e,t){Ug("ClassImplements",e,t)},assertClassMethod:function(e,t){Ug("ClassMethod",e,t)},assertClassPrivateMethod:function(e,t){Ug("ClassPrivateMethod",e,t)},assertClassPrivateProperty:function(e,t){Ug("ClassPrivateProperty",e,t)},assertClassProperty:function(e,t){Ug("ClassProperty",e,t)},assertCompletionStatement:function(e,t){Ug("CompletionStatement",e,t)},assertConditional:function(e,t){Ug("Conditional",e,t)},assertConditionalExpression:function(e,t){Ug("ConditionalExpression",e,t)},assertContinueStatement:function(e,t){Ug("ContinueStatement",e,t)},assertDebuggerStatement:function(e,t){Ug("DebuggerStatement",e,t)},assertDecimalLiteral:function(e,t){Ug("DecimalLiteral",e,t)},assertDeclaration:function(e,t){Ug("Declaration",e,t)},assertDeclareClass:function(e,t){Ug("DeclareClass",e,t)},assertDeclareExportAllDeclaration:function(e,t){Ug("DeclareExportAllDeclaration",e,t)},assertDeclareExportDeclaration:function(e,t){Ug("DeclareExportDeclaration",e,t)},assertDeclareFunction:function(e,t){Ug("DeclareFunction",e,t)},assertDeclareInterface:function(e,t){Ug("DeclareInterface",e,t)},assertDeclareModule:function(e,t){Ug("DeclareModule",e,t)},assertDeclareModuleExports:function(e,t){Ug("DeclareModuleExports",e,t)},assertDeclareOpaqueType:function(e,t){Ug("DeclareOpaqueType",e,t)},assertDeclareTypeAlias:function(e,t){Ug("DeclareTypeAlias",e,t)},assertDeclareVariable:function(e,t){Ug("DeclareVariable",e,t)},assertDeclaredPredicate:function(e,t){Ug("DeclaredPredicate",e,t)},assertDecorator:function(e,t){Ug("Decorator",e,t)},assertDirective:function(e,t){Ug("Directive",e,t)},assertDirectiveLiteral:function(e,t){Ug("DirectiveLiteral",e,t)},assertDoExpression:function(e,t){Ug("DoExpression",e,t)},assertDoWhileStatement:function(e,t){Ug("DoWhileStatement",e,t)},assertEmptyStatement:function(e,t){Ug("EmptyStatement",e,t)},assertEmptyTypeAnnotation:function(e,t){Ug("EmptyTypeAnnotation",e,t)},assertEnumBody:function(e,t){Ug("EnumBody",e,t)},assertEnumBooleanBody:function(e,t){Ug("EnumBooleanBody",e,t)},assertEnumBooleanMember:function(e,t){Ug("EnumBooleanMember",e,t)},assertEnumDeclaration:function(e,t){Ug("EnumDeclaration",e,t)},assertEnumDefaultedMember:function(e,t){Ug("EnumDefaultedMember",e,t)},assertEnumMember:function(e,t){Ug("EnumMember",e,t)},assertEnumNumberBody:function(e,t){Ug("EnumNumberBody",e,t)},assertEnumNumberMember:function(e,t){Ug("EnumNumberMember",e,t)},assertEnumStringBody:function(e,t){Ug("EnumStringBody",e,t)},assertEnumStringMember:function(e,t){Ug("EnumStringMember",e,t)},assertEnumSymbolBody:function(e,t){Ug("EnumSymbolBody",e,t)},assertExistsTypeAnnotation:function(e,t){Ug("ExistsTypeAnnotation",e,t)},assertExportAllDeclaration:function(e,t){Ug("ExportAllDeclaration",e,t)},assertExportDeclaration:function(e,t){Ug("ExportDeclaration",e,t)},assertExportDefaultDeclaration:function(e,t){Ug("ExportDefaultDeclaration",e,t)},assertExportDefaultSpecifier:function(e,t){Ug("ExportDefaultSpecifier",e,t)},assertExportNamedDeclaration:function(e,t){Ug("ExportNamedDeclaration",e,t)},assertExportNamespaceSpecifier:function(e,t){Ug("ExportNamespaceSpecifier",e,t)},assertExportSpecifier:function(e,t){Ug("ExportSpecifier",e,t)},assertExpression:Hg,assertExpressionStatement:qg,assertExpressionWrapper:function(e,t){Ug("ExpressionWrapper",e,t)},assertFile:function(e,t){Ug("File",e,t)},assertFlow:function(e,t){Ug("Flow",e,t)},assertFlowBaseAnnotation:function(e,t){Ug("FlowBaseAnnotation",e,t)},assertFlowDeclaration:function(e,t){Ug("FlowDeclaration",e,t)},assertFlowPredicate:function(e,t){Ug("FlowPredicate",e,t)},assertFlowType:function(e,t){Ug("FlowType",e,t)},assertFor:function(e,t){Ug("For",e,t)},assertForInStatement:function(e,t){Ug("ForInStatement",e,t)},assertForOfStatement:function(e,t){Ug("ForOfStatement",e,t)},assertForStatement:function(e,t){Ug("ForStatement",e,t)},assertForXStatement:function(e,t){Ug("ForXStatement",e,t)},assertFunction:Kg,assertFunctionDeclaration:function(e,t){Ug("FunctionDeclaration",e,t)},assertFunctionExpression:function(e,t){Ug("FunctionExpression",e,t)},assertFunctionParameter:function(e,t){Ug("FunctionParameter",e,t)},assertFunctionParent:function(e,t){Ug("FunctionParent",e,t)},assertFunctionTypeAnnotation:function(e,t){Ug("FunctionTypeAnnotation",e,t)},assertFunctionTypeParam:function(e,t){Ug("FunctionTypeParam",e,t)},assertGenericTypeAnnotation:function(e,t){Ug("GenericTypeAnnotation",e,t)},assertIdentifier:Gg,assertIfStatement:function(e,t){Ug("IfStatement",e,t)},assertImmutable:function(e,t){Ug("Immutable",e,t)},assertImport:function(e,t){Ug("Import",e,t)},assertImportAttribute:function(e,t){Ug("ImportAttribute",e,t)},assertImportDeclaration:function(e,t){Ug("ImportDeclaration",e,t)},assertImportDefaultSpecifier:function(e,t){Ug("ImportDefaultSpecifier",e,t)},assertImportExpression:function(e,t){Ug("ImportExpression",e,t)},assertImportNamespaceSpecifier:function(e,t){Ug("ImportNamespaceSpecifier",e,t)},assertImportOrExportDeclaration:function(e,t){Ug("ImportOrExportDeclaration",e,t)},assertImportSpecifier:function(e,t){Ug("ImportSpecifier",e,t)},assertIndexedAccessType:function(e,t){Ug("IndexedAccessType",e,t)},assertInferredPredicate:function(e,t){Ug("InferredPredicate",e,t)},assertInterfaceDeclaration:function(e,t){Ug("InterfaceDeclaration",e,t)},assertInterfaceExtends:function(e,t){Ug("InterfaceExtends",e,t)},assertInterfaceTypeAnnotation:function(e,t){Ug("InterfaceTypeAnnotation",e,t)},assertInterpreterDirective:function(e,t){Ug("InterpreterDirective",e,t)},assertIntersectionTypeAnnotation:function(e,t){Ug("IntersectionTypeAnnotation",e,t)},assertJSX:function(e,t){Ug("JSX",e,t)},assertJSXAttribute:function(e,t){Ug("JSXAttribute",e,t)},assertJSXClosingElement:function(e,t){Ug("JSXClosingElement",e,t)},assertJSXClosingFragment:function(e,t){Ug("JSXClosingFragment",e,t)},assertJSXElement:function(e,t){Ug("JSXElement",e,t)},assertJSXEmptyExpression:function(e,t){Ug("JSXEmptyExpression",e,t)},assertJSXExpressionContainer:function(e,t){Ug("JSXExpressionContainer",e,t)},assertJSXFragment:function(e,t){Ug("JSXFragment",e,t)},assertJSXIdentifier:function(e,t){Ug("JSXIdentifier",e,t)},assertJSXMemberExpression:function(e,t){Ug("JSXMemberExpression",e,t)},assertJSXNamespacedName:function(e,t){Ug("JSXNamespacedName",e,t)},assertJSXOpeningElement:function(e,t){Ug("JSXOpeningElement",e,t)},assertJSXOpeningFragment:function(e,t){Ug("JSXOpeningFragment",e,t)},assertJSXSpreadAttribute:function(e,t){Ug("JSXSpreadAttribute",e,t)},assertJSXSpreadChild:function(e,t){Ug("JSXSpreadChild",e,t)},assertJSXText:function(e,t){Ug("JSXText",e,t)},assertLVal:function(e,t){Ug("LVal",e,t)},assertLabeledStatement:function(e,t){Ug("LabeledStatement",e,t)},assertLiteral:function(e,t){Ug("Literal",e,t)},assertLogicalExpression:function(e,t){Ug("LogicalExpression",e,t)},assertLoop:function(e,t){Ug("Loop",e,t)},assertMemberExpression:function(e,t){Ug("MemberExpression",e,t)},assertMetaProperty:function(e,t){Ug("MetaProperty",e,t)},assertMethod:function(e,t){Ug("Method",e,t)},assertMiscellaneous:function(e,t){Ug("Miscellaneous",e,t)},assertMixedTypeAnnotation:function(e,t){Ug("MixedTypeAnnotation",e,t)},assertModuleDeclaration:function(e,t){J("assertModuleDeclaration","assertImportOrExportDeclaration"),Ug("ModuleDeclaration",e,t)},assertModuleExpression:function(e,t){Ug("ModuleExpression",e,t)},assertModuleSpecifier:function(e,t){Ug("ModuleSpecifier",e,t)},assertNewExpression:function(e,t){Ug("NewExpression",e,t)},assertNode:Lg,assertNoop:function(e,t){Ug("Noop",e,t)},assertNullLiteral:function(e,t){Ug("NullLiteral",e,t)},assertNullLiteralTypeAnnotation:function(e,t){Ug("NullLiteralTypeAnnotation",e,t)},assertNullableTypeAnnotation:function(e,t){Ug("NullableTypeAnnotation",e,t)},assertNumberLiteral:function(e,t){J("assertNumberLiteral","assertNumericLiteral"),Ug("NumberLiteral",e,t)},assertNumberLiteralTypeAnnotation:function(e,t){Ug("NumberLiteralTypeAnnotation",e,t)},assertNumberTypeAnnotation:function(e,t){Ug("NumberTypeAnnotation",e,t)},assertNumericLiteral:function(e,t){Ug("NumericLiteral",e,t)},assertObjectExpression:function(e,t){Ug("ObjectExpression",e,t)},assertObjectMember:function(e,t){Ug("ObjectMember",e,t)},assertObjectMethod:function(e,t){Ug("ObjectMethod",e,t)},assertObjectPattern:function(e,t){Ug("ObjectPattern",e,t)},assertObjectProperty:function(e,t){Ug("ObjectProperty",e,t)},assertObjectTypeAnnotation:function(e,t){Ug("ObjectTypeAnnotation",e,t)},assertObjectTypeCallProperty:function(e,t){Ug("ObjectTypeCallProperty",e,t)},assertObjectTypeIndexer:function(e,t){Ug("ObjectTypeIndexer",e,t)},assertObjectTypeInternalSlot:function(e,t){Ug("ObjectTypeInternalSlot",e,t)},assertObjectTypeProperty:function(e,t){Ug("ObjectTypeProperty",e,t)},assertObjectTypeSpreadProperty:function(e,t){Ug("ObjectTypeSpreadProperty",e,t)},assertOpaqueType:function(e,t){Ug("OpaqueType",e,t)},assertOptionalCallExpression:function(e,t){Ug("OptionalCallExpression",e,t)},assertOptionalIndexedAccessType:function(e,t){Ug("OptionalIndexedAccessType",e,t)},assertOptionalMemberExpression:function(e,t){Ug("OptionalMemberExpression",e,t)},assertParenthesizedExpression:function(e,t){Ug("ParenthesizedExpression",e,t)},assertPattern:function(e,t){Ug("Pattern",e,t)},assertPatternLike:function(e,t){Ug("PatternLike",e,t)},assertPipelineBareFunction:function(e,t){Ug("PipelineBareFunction",e,t)},assertPipelinePrimaryTopicReference:function(e,t){Ug("PipelinePrimaryTopicReference",e,t)},assertPipelineTopicExpression:function(e,t){Ug("PipelineTopicExpression",e,t)},assertPlaceholder:function(e,t){Ug("Placeholder",e,t)},assertPrivate:function(e,t){Ug("Private",e,t)},assertPrivateName:function(e,t){Ug("PrivateName",e,t)},assertProgram:function(e,t){Ug("Program",e,t)},assertProperty:function(e,t){Ug("Property",e,t)},assertPureish:function(e,t){Ug("Pureish",e,t)},assertQualifiedTypeIdentifier:function(e,t){Ug("QualifiedTypeIdentifier",e,t)},assertRecordExpression:function(e,t){Ug("RecordExpression",e,t)},assertRegExpLiteral:function(e,t){Ug("RegExpLiteral",e,t)},assertRegexLiteral:function(e,t){J("assertRegexLiteral","assertRegExpLiteral"),Ug("RegexLiteral",e,t)},assertRestElement:Wg,assertRestProperty:function(e,t){J("assertRestProperty","assertRestElement"),Ug("RestProperty",e,t)},assertReturnStatement:function(e,t){Ug("ReturnStatement",e,t)},assertScopable:function(e,t){Ug("Scopable",e,t)},assertSequenceExpression:function(e,t){Ug("SequenceExpression",e,t)},assertSpreadElement:function(e,t){Ug("SpreadElement",e,t)},assertSpreadProperty:function(e,t){J("assertSpreadProperty","assertSpreadElement"),Ug("SpreadProperty",e,t)},assertStandardized:function(e,t){Ug("Standardized",e,t)},assertStatement:zg,assertStaticBlock:function(e,t){Ug("StaticBlock",e,t)},assertStringLiteral:function(e,t){Ug("StringLiteral",e,t)},assertStringLiteralTypeAnnotation:function(e,t){Ug("StringLiteralTypeAnnotation",e,t)},assertStringTypeAnnotation:function(e,t){Ug("StringTypeAnnotation",e,t)},assertSuper:function(e,t){Ug("Super",e,t)},assertSwitchCase:function(e,t){Ug("SwitchCase",e,t)},assertSwitchStatement:function(e,t){Ug("SwitchStatement",e,t)},assertSymbolTypeAnnotation:function(e,t){Ug("SymbolTypeAnnotation",e,t)},assertTSAnyKeyword:function(e,t){Ug("TSAnyKeyword",e,t)},assertTSArrayType:function(e,t){Ug("TSArrayType",e,t)},assertTSAsExpression:function(e,t){Ug("TSAsExpression",e,t)},assertTSBaseType:function(e,t){Ug("TSBaseType",e,t)},assertTSBigIntKeyword:function(e,t){Ug("TSBigIntKeyword",e,t)},assertTSBooleanKeyword:function(e,t){Ug("TSBooleanKeyword",e,t)},assertTSCallSignatureDeclaration:function(e,t){Ug("TSCallSignatureDeclaration",e,t)},assertTSConditionalType:function(e,t){Ug("TSConditionalType",e,t)},assertTSConstructSignatureDeclaration:function(e,t){Ug("TSConstructSignatureDeclaration",e,t)},assertTSConstructorType:function(e,t){Ug("TSConstructorType",e,t)},assertTSDeclareFunction:function(e,t){Ug("TSDeclareFunction",e,t)},assertTSDeclareMethod:function(e,t){Ug("TSDeclareMethod",e,t)},assertTSEntityName:function(e,t){Ug("TSEntityName",e,t)},assertTSEnumBody:function(e,t){Ug("TSEnumBody",e,t)},assertTSEnumDeclaration:function(e,t){Ug("TSEnumDeclaration",e,t)},assertTSEnumMember:function(e,t){Ug("TSEnumMember",e,t)},assertTSExportAssignment:function(e,t){Ug("TSExportAssignment",e,t)},assertTSExpressionWithTypeArguments:function(e,t){Ug("TSExpressionWithTypeArguments",e,t)},assertTSExternalModuleReference:function(e,t){Ug("TSExternalModuleReference",e,t)},assertTSFunctionType:function(e,t){Ug("TSFunctionType",e,t)},assertTSImportEqualsDeclaration:function(e,t){Ug("TSImportEqualsDeclaration",e,t)},assertTSImportType:function(e,t){Ug("TSImportType",e,t)},assertTSIndexSignature:function(e,t){Ug("TSIndexSignature",e,t)},assertTSIndexedAccessType:function(e,t){Ug("TSIndexedAccessType",e,t)},assertTSInferType:function(e,t){Ug("TSInferType",e,t)},assertTSInstantiationExpression:function(e,t){Ug("TSInstantiationExpression",e,t)},assertTSInterfaceBody:function(e,t){Ug("TSInterfaceBody",e,t)},assertTSInterfaceDeclaration:function(e,t){Ug("TSInterfaceDeclaration",e,t)},assertTSIntersectionType:function(e,t){Ug("TSIntersectionType",e,t)},assertTSIntrinsicKeyword:function(e,t){Ug("TSIntrinsicKeyword",e,t)},assertTSLiteralType:function(e,t){Ug("TSLiteralType",e,t)},assertTSMappedType:function(e,t){Ug("TSMappedType",e,t)},assertTSMethodSignature:function(e,t){Ug("TSMethodSignature",e,t)},assertTSModuleBlock:function(e,t){Ug("TSModuleBlock",e,t)},assertTSModuleDeclaration:function(e,t){Ug("TSModuleDeclaration",e,t)},assertTSNamedTupleMember:function(e,t){Ug("TSNamedTupleMember",e,t)},assertTSNamespaceExportDeclaration:function(e,t){Ug("TSNamespaceExportDeclaration",e,t)},assertTSNeverKeyword:function(e,t){Ug("TSNeverKeyword",e,t)},assertTSNonNullExpression:function(e,t){Ug("TSNonNullExpression",e,t)},assertTSNullKeyword:function(e,t){Ug("TSNullKeyword",e,t)},assertTSNumberKeyword:function(e,t){Ug("TSNumberKeyword",e,t)},assertTSObjectKeyword:function(e,t){Ug("TSObjectKeyword",e,t)},assertTSOptionalType:function(e,t){Ug("TSOptionalType",e,t)},assertTSParameterProperty:function(e,t){Ug("TSParameterProperty",e,t)},assertTSParenthesizedType:function(e,t){Ug("TSParenthesizedType",e,t)},assertTSPropertySignature:function(e,t){Ug("TSPropertySignature",e,t)},assertTSQualifiedName:function(e,t){Ug("TSQualifiedName",e,t)},assertTSRestType:function(e,t){Ug("TSRestType",e,t)},assertTSSatisfiesExpression:function(e,t){Ug("TSSatisfiesExpression",e,t)},assertTSStringKeyword:function(e,t){Ug("TSStringKeyword",e,t)},assertTSSymbolKeyword:function(e,t){Ug("TSSymbolKeyword",e,t)},assertTSTemplateLiteralType:function(e,t){Ug("TSTemplateLiteralType",e,t)},assertTSThisType:function(e,t){Ug("TSThisType",e,t)},assertTSTupleType:function(e,t){Ug("TSTupleType",e,t)},assertTSType:function(e,t){Ug("TSType",e,t)},assertTSTypeAliasDeclaration:function(e,t){Ug("TSTypeAliasDeclaration",e,t)},assertTSTypeAnnotation:function(e,t){Ug("TSTypeAnnotation",e,t)},assertTSTypeAssertion:function(e,t){Ug("TSTypeAssertion",e,t)},assertTSTypeElement:function(e,t){Ug("TSTypeElement",e,t)},assertTSTypeLiteral:function(e,t){Ug("TSTypeLiteral",e,t)},assertTSTypeOperator:function(e,t){Ug("TSTypeOperator",e,t)},assertTSTypeParameter:function(e,t){Ug("TSTypeParameter",e,t)},assertTSTypeParameterDeclaration:function(e,t){Ug("TSTypeParameterDeclaration",e,t)},assertTSTypeParameterInstantiation:function(e,t){Ug("TSTypeParameterInstantiation",e,t)},assertTSTypePredicate:function(e,t){Ug("TSTypePredicate",e,t)},assertTSTypeQuery:function(e,t){Ug("TSTypeQuery",e,t)},assertTSTypeReference:function(e,t){Ug("TSTypeReference",e,t)},assertTSUndefinedKeyword:function(e,t){Ug("TSUndefinedKeyword",e,t)},assertTSUnionType:function(e,t){Ug("TSUnionType",e,t)},assertTSUnknownKeyword:function(e,t){Ug("TSUnknownKeyword",e,t)},assertTSVoidKeyword:function(e,t){Ug("TSVoidKeyword",e,t)},assertTaggedTemplateExpression:function(e,t){Ug("TaggedTemplateExpression",e,t)},assertTemplateElement:function(e,t){Ug("TemplateElement",e,t)},assertTemplateLiteral:function(e,t){Ug("TemplateLiteral",e,t)},assertTerminatorless:function(e,t){Ug("Terminatorless",e,t)},assertThisExpression:function(e,t){Ug("ThisExpression",e,t)},assertThisTypeAnnotation:function(e,t){Ug("ThisTypeAnnotation",e,t)},assertThrowStatement:function(e,t){Ug("ThrowStatement",e,t)},assertTopicReference:function(e,t){Ug("TopicReference",e,t)},assertTryStatement:function(e,t){Ug("TryStatement",e,t)},assertTupleExpression:function(e,t){Ug("TupleExpression",e,t)},assertTupleTypeAnnotation:function(e,t){Ug("TupleTypeAnnotation",e,t)},assertTypeAlias:function(e,t){Ug("TypeAlias",e,t)},assertTypeAnnotation:function(e,t){Ug("TypeAnnotation",e,t)},assertTypeCastExpression:function(e,t){Ug("TypeCastExpression",e,t)},assertTypeParameter:function(e,t){Ug("TypeParameter",e,t)},assertTypeParameterDeclaration:function(e,t){Ug("TypeParameterDeclaration",e,t)},assertTypeParameterInstantiation:function(e,t){Ug("TypeParameterInstantiation",e,t)},assertTypeScript:function(e,t){Ug("TypeScript",e,t)},assertTypeofTypeAnnotation:function(e,t){Ug("TypeofTypeAnnotation",e,t)},assertUnaryExpression:function(e,t){Ug("UnaryExpression",e,t)},assertUnaryLike:function(e,t){Ug("UnaryLike",e,t)},assertUnionTypeAnnotation:function(e,t){Ug("UnionTypeAnnotation",e,t)},assertUpdateExpression:function(e,t){Ug("UpdateExpression",e,t)},assertUserWhitespacable:function(e,t){Ug("UserWhitespacable",e,t)},assertV8IntrinsicIdentifier:function(e,t){Ug("V8IntrinsicIdentifier",e,t)},assertVariableDeclaration:Vg,assertVariableDeclarator:function(e,t){Ug("VariableDeclarator",e,t)},assertVariance:function(e,t){Ug("Variance",e,t)},assertVoidPattern:function(e,t){Ug("VoidPattern",e,t)},assertVoidTypeAnnotation:function(e,t){Ug("VoidTypeAnnotation",e,t)},assertWhile:function(e,t){Ug("While",e,t)},assertWhileStatement:function(e,t){Ug("WhileStatement",e,t)},assertWithStatement:function(e,t){Ug("WithStatement",e,t)},assertYieldExpression:function(e,t){Ug("YieldExpression",e,t)},assignmentExpression:is,assignmentPattern:ao,awaitExpression:ko,bigIntLiteral:ss,binaryExpression:ds,bindExpression:hd,blockStatement:ps,booleanLiteral:Ds,booleanLiteralTypeAnnotation:Vo,booleanTypeAnnotation:Wo,breakStatement:fs,buildMatchMemberExpression:Sr,buildUndefinedNode:tm,callExpression:gs,catchClause:ms,classAccessorProperty:No,classBody:oo,classDeclaration:co,classExpression:io,classImplements:zo,classMethod:Ro,classPrivateMethod:Mo,classPrivateProperty:Bo,classProperty:Oo,clone:dm,cloneDeep:function(e){return sm(e)},cloneDeepWithoutLoc:function(e){return sm(e,!0,!0)},cloneNode:sm,cloneWithoutLoc:function(e){return sm(e,!1,!0)},conditionalExpression:ys,continueStatement:hs,createFlowUnionType:$g,createTSUnionType:em,createTypeAnnotationBasedOnTypeof:Xg,createUnionTypeAnnotation:$g,debuggerStatement:bs,decimalLiteral:wd,declareClass:Ko,declareExportAllDeclaration:ri,declareExportDeclaration:ti,declareFunction:Xo,declareInterface:Jo,declareModule:Yo,declareModuleExports:$o,declareOpaqueType:Zo,declareTypeAlias:Qo,declareVariable:ei,declaredPredicate:ai,decorator:bd,directive:ls,directiveLiteral:us,doExpression:vd,doWhileStatement:vs,emptyStatement:xs,emptyTypeAnnotation:gi,ensureBlock:function(e,t){void 0===t&&(t="body");var r=gy(e[t],e);return e[t]=r,r},enumBooleanBody:Gi,enumBooleanMember:zi,enumDeclaration:qi,enumDefaultedMember:Ji,enumNumberBody:Wi,enumNumberMember:Ki,enumStringBody:Vi,enumStringMember:Xi,enumSymbolBody:Hi,existsTypeAnnotation:ni,exportAllDeclaration:lo,exportDefaultDeclaration:uo,exportDefaultSpecifier:xd,exportNamedDeclaration:po,exportNamespaceSpecifier:_o,exportSpecifier:fo,expressionStatement:Rs,file:js,forInStatement:ws,forOfStatement:go,forStatement:Es,functionDeclaration:Ss,functionExpression:Ts,functionTypeAnnotation:si,functionTypeParam:oi,genericTypeAnnotation:ii,getAssignmentIdentifiers:_y,getBindingIdentifiers:Iy,getFunctionName:Ny,getOuterBindingIdentifiers:Dy,identifier:Ps,ifStatement:As,import:Co,importAttribute:Uo,importDeclaration:mo,importDefaultSpecifier:yo,importExpression:vo,importNamespaceSpecifier:ho,importSpecifier:bo,indexedAccessType:Yi,inferredPredicate:di,inheritInnerComments:pm,inheritLeadingComments:fm,inheritTrailingComments:gm,inherits:Cy,inheritsComments:mm,interfaceDeclaration:li,interfaceExtends:ci,interfaceTypeAnnotation:ui,interpreterDirective:cs,intersectionTypeAnnotation:pi,is:kr,isAccessor:function(e,t){return!!e&&("ClassAccessorProperty"===e.type&&(null==t||K(e,t)))},isAnyTypeAnnotation:ct,isArgumentPlaceholder:function(e,t){return!!e&&("ArgumentPlaceholder"===e.type&&(null==t||K(e,t)))},isArrayExpression:Y,isArrayPattern:_e,isArrayTypeAnnotation:lt,isArrowFunctionExpression:Ie,isAssignmentExpression:$,isAssignmentPattern:Ce,isAwaitExpression:Ze,isBigIntLiteral:tt,isBinary:Qt,isBinaryExpression:function(e,t){return!!e&&("BinaryExpression"===e.type&&(null==t||K(e,t)))},isBindExpression:Ot,isBinding:Fy,isBlock:function(e,t){if(!e)return!1;switch(e.type){case"BlockStatement":case"Program":case"TSModuleBlock":break;case"Placeholder":if("BlockStatement"===e.expectedNode)break;default:return!1}return null==t||K(e,t)},isBlockParent:function(e,t){if(!e)return!1;switch(e.type){case"BlockStatement":case"CatchClause":case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"FunctionExpression":case"Program":case"ObjectMethod":case"SwitchStatement":case"WhileStatement":case"ArrowFunctionExpression":case"ForOfStatement":case"ClassMethod":case"ClassPrivateMethod":case"StaticBlock":case"TSModuleBlock":break;case"Placeholder":if("BlockStatement"===e.expectedNode)break;default:return!1}return null==t||K(e,t)},isBlockScoped:qy,isBlockStatement:Q,isBooleanLiteral:fe,isBooleanLiteralTypeAnnotation:function(e,t){return!!e&&("BooleanLiteralTypeAnnotation"===e.type&&(null==t||K(e,t)))},isBooleanTypeAnnotation:ut,isBreakStatement:function(e,t){return!!e&&("BreakStatement"===e.type&&(null==t||K(e,t)))},isCallExpression:Z,isCatchClause:ee,isClass:pr,isClassAccessorProperty:function(e,t){return!!e&&("ClassAccessorProperty"===e.type&&(null==t||K(e,t)))},isClassBody:De,isClassDeclaration:Ne,isClassExpression:Oe,isClassImplements:function(e,t){return!!e&&("ClassImplements"===e.type&&(null==t||K(e,t)))},isClassMethod:ze,isClassPrivateMethod:function(e,t){return!!e&&("ClassPrivateMethod"===e.type&&(null==t||K(e,t)))},isClassPrivateProperty:ot,isClassProperty:st,isCompletionStatement:tr,isConditional:function(e,t){if(!e)return!1;switch(e.type){case"ConditionalExpression":case"IfStatement":break;default:return!1}return null==t||K(e,t)},isConditionalExpression:function(e,t){return!!e&&("ConditionalExpression"===e.type&&(null==t||K(e,t)))},isContinueStatement:function(e,t){return!!e&&("ContinueStatement"===e.type&&(null==t||K(e,t)))},isDebuggerStatement:function(e,t){return!!e&&("DebuggerStatement"===e.type&&(null==t||K(e,t)))},isDecimalLiteral:function(e,t){return!!e&&("DecimalLiteral"===e.type&&(null==t||K(e,t)))},isDeclaration:ir,isDeclareClass:function(e,t){return!!e&&("DeclareClass"===e.type&&(null==t||K(e,t)))},isDeclareExportAllDeclaration:function(e,t){return!!e&&("DeclareExportAllDeclaration"===e.type&&(null==t||K(e,t)))},isDeclareExportDeclaration:pt,isDeclareFunction:function(e,t){return!!e&&("DeclareFunction"===e.type&&(null==t||K(e,t)))},isDeclareInterface:function(e,t){return!!e&&("DeclareInterface"===e.type&&(null==t||K(e,t)))},isDeclareModule:function(e,t){return!!e&&("DeclareModule"===e.type&&(null==t||K(e,t)))},isDeclareModuleExports:function(e,t){return!!e&&("DeclareModuleExports"===e.type&&(null==t||K(e,t)))},isDeclareOpaqueType:function(e,t){return!!e&&("DeclareOpaqueType"===e.type&&(null==t||K(e,t)))},isDeclareTypeAlias:function(e,t){return!!e&&("DeclareTypeAlias"===e.type&&(null==t||K(e,t)))},isDeclareVariable:function(e,t){return!!e&&("DeclareVariable"===e.type&&(null==t||K(e,t)))},isDeclaredPredicate:function(e,t){return!!e&&("DeclaredPredicate"===e.type&&(null==t||K(e,t)))},isDecorator:function(e,t){return!!e&&("Decorator"===e.type&&(null==t||K(e,t)))},isDirective:function(e,t){return!!e&&("Directive"===e.type&&(null==t||K(e,t)))},isDirectiveLiteral:function(e,t){return!!e&&("DirectiveLiteral"===e.type&&(null==t||K(e,t)))},isDoExpression:function(e,t){return!!e&&("DoExpression"===e.type&&(null==t||K(e,t)))},isDoWhileStatement:function(e,t){return!!e&&("DoWhileStatement"===e.type&&(null==t||K(e,t)))},isEmptyStatement:te,isEmptyTypeAnnotation:mt,isEnumBody:function(e,t){if(!e)return!1;switch(e.type){case"EnumBooleanBody":case"EnumNumberBody":case"EnumStringBody":case"EnumSymbolBody":break;default:return!1}return null==t||K(e,t)},isEnumBooleanBody:function(e,t){return!!e&&("EnumBooleanBody"===e.type&&(null==t||K(e,t)))},isEnumBooleanMember:function(e,t){return!!e&&("EnumBooleanMember"===e.type&&(null==t||K(e,t)))},isEnumDeclaration:function(e,t){return!!e&&("EnumDeclaration"===e.type&&(null==t||K(e,t)))},isEnumDefaultedMember:function(e,t){return!!e&&("EnumDefaultedMember"===e.type&&(null==t||K(e,t)))},isEnumMember:function(e,t){if(!e)return!1;switch(e.type){case"EnumBooleanMember":case"EnumNumberMember":case"EnumStringMember":case"EnumDefaultedMember":break;default:return!1}return null==t||K(e,t)},isEnumNumberBody:function(e,t){return!!e&&("EnumNumberBody"===e.type&&(null==t||K(e,t)))},isEnumNumberMember:function(e,t){return!!e&&("EnumNumberMember"===e.type&&(null==t||K(e,t)))},isEnumStringBody:function(e,t){return!!e&&("EnumStringBody"===e.type&&(null==t||K(e,t)))},isEnumStringMember:function(e,t){return!!e&&("EnumStringMember"===e.type&&(null==t||K(e,t)))},isEnumSymbolBody:function(e,t){return!!e&&("EnumSymbolBody"===e.type&&(null==t||K(e,t)))},isExistsTypeAnnotation:function(e,t){return!!e&&("ExistsTypeAnnotation"===e.type&&(null==t||K(e,t)))},isExportAllDeclaration:Be,isExportDeclaration:gr,isExportDefaultDeclaration:Me,isExportDefaultSpecifier:Nt,isExportNamedDeclaration:Fe,isExportNamespaceSpecifier:rt,isExportSpecifier:Le,isExpression:$t,isExpressionStatement:re,isExpressionWrapper:function(e,t){if(!e)return!1;switch(e.type){case"ExpressionStatement":case"ParenthesizedExpression":case"TypeCastExpression":break;default:return!1}return null==t||K(e,t)},isFile:ae,isFlow:hr,isFlowBaseAnnotation:vr,isFlowDeclaration:function(e,t){if(!e)return!1;switch(e.type){case"DeclareClass":case"DeclareFunction":case"DeclareInterface":case"DeclareModule":case"DeclareModuleExports":case"DeclareTypeAlias":case"DeclareOpaqueType":case"DeclareVariable":case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":case"InterfaceDeclaration":case"OpaqueType":case"TypeAlias":break;default:return!1}return null==t||K(e,t)},isFlowPredicate:function(e,t){if(!e)return!1;switch(e.type){case"DeclaredPredicate":case"InferredPredicate":break;default:return!1}return null==t||K(e,t)},isFlowType:br,isFor:rr,isForInStatement:function(e,t){return!!e&&("ForInStatement"===e.type&&(null==t||K(e,t)))},isForOfStatement:Ue,isForStatement:ne,isForXStatement:ar,isFunction:nr,isFunctionDeclaration:se,isFunctionExpression:oe,isFunctionParameter:function(e,t){if(!e)return!1;switch(e.type){case"Identifier":case"RestElement":case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":case"VoidPattern":break;case"Placeholder":if("Identifier"===e.expectedNode)break;default:return!1}return null==t||K(e,t)},isFunctionParent:sr,isFunctionTypeAnnotation:function(e,t){return!!e&&("FunctionTypeAnnotation"===e.type&&(null==t||K(e,t)))},isFunctionTypeParam:function(e,t){return!!e&&("FunctionTypeParam"===e.type&&(null==t||K(e,t)))},isGenericTypeAnnotation:ft,isIdentifier:ie,isIfStatement:de,isImmutable:function(e){return!!Pr(e.type,"Immutable")||!!ie(e)&&"undefined"===e.name},isImport:et,isImportAttribute:function(e,t){return!!e&&("ImportAttribute"===e.type&&(null==t||K(e,t)))},isImportDeclaration:qe,isImportDefaultSpecifier:Ge,isImportExpression:function(e,t){return!!e&&("ImportExpression"===e.type&&(null==t||K(e,t)))},isImportNamespaceSpecifier:We,isImportOrExportDeclaration:fr,isImportSpecifier:Ve,isIndexedAccessType:function(e,t){return!!e&&("IndexedAccessType"===e.type&&(null==t||K(e,t)))},isInferredPredicate:function(e,t){return!!e&&("InferredPredicate"===e.type&&(null==t||K(e,t)))},isInterfaceDeclaration:function(e,t){return!!e&&("InterfaceDeclaration"===e.type&&(null==t||K(e,t)))},isInterfaceExtends:function(e,t){return!!e&&("InterfaceExtends"===e.type&&(null==t||K(e,t)))},isInterfaceTypeAnnotation:function(e,t){return!!e&&("InterfaceTypeAnnotation"===e.type&&(null==t||K(e,t)))},isInterpreterDirective:function(e,t){return!!e&&("InterpreterDirective"===e.type&&(null==t||K(e,t)))},isIntersectionTypeAnnotation:function(e,t){return!!e&&("IntersectionTypeAnnotation"===e.type&&(null==t||K(e,t)))},isJSX:function(e,t){if(!e)return!1;switch(e.type){case"JSXAttribute":case"JSXClosingElement":case"JSXElement":case"JSXEmptyExpression":case"JSXExpressionContainer":case"JSXSpreadChild":case"JSXIdentifier":case"JSXMemberExpression":case"JSXNamespacedName":case"JSXOpeningElement":case"JSXSpreadAttribute":case"JSXText":case"JSXFragment":case"JSXOpeningFragment":case"JSXClosingFragment":break;default:return!1}return null==t||K(e,t)},isJSXAttribute:wt,isJSXClosingElement:function(e,t){return!!e&&("JSXClosingElement"===e.type&&(null==t||K(e,t)))},isJSXClosingFragment:function(e,t){return!!e&&("JSXClosingFragment"===e.type&&(null==t||K(e,t)))},isJSXElement:Et,isJSXEmptyExpression:St,isJSXExpressionContainer:Tt,isJSXFragment:function(e,t){return!!e&&("JSXFragment"===e.type&&(null==t||K(e,t)))},isJSXIdentifier:Pt,isJSXMemberExpression:At,isJSXNamespacedName:kt,isJSXOpeningElement:Ct,isJSXOpeningFragment:function(e,t){return!!e&&("JSXOpeningFragment"===e.type&&(null==t||K(e,t)))},isJSXSpreadAttribute:_t,isJSXSpreadChild:function(e,t){return!!e&&("JSXSpreadChild"===e.type&&(null==t||K(e,t)))},isJSXText:It,isLVal:function(e,t){if(!e)return!1;switch(e.type){case"Identifier":case"MemberExpression":case"RestElement":case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":case"TSParameterProperty":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":break;case"Placeholder":switch(e.expectedNode){case"Pattern":case"Identifier":break;default:return!1}break;default:return!1}return null==t||K(e,t)},isLabeledStatement:ce,isLet:Uy,isLiteral:dr,isLogicalExpression:function(e,t){return!!e&&("LogicalExpression"===e.type&&(null==t||K(e,t)))},isLoop:function(e,t){if(!e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":case"ForOfStatement":break;default:return!1}return null==t||K(e,t)},isMemberExpression:me,isMetaProperty:He,isMethod:cr,isMiscellaneous:function(e,t){if(!e)return!1;switch(e.type){case"Noop":case"Placeholder":case"V8IntrinsicIdentifier":break;default:return!1}return null==t||K(e,t)},isMixedTypeAnnotation:gt,isModuleDeclaration:function(e,t){return J("isModuleDeclaration","isImportOrExportDeclaration"),fr(e,t)},isModuleExpression:function(e,t){return!!e&&("ModuleExpression"===e.type&&(null==t||K(e,t)))},isModuleSpecifier:mr,isNewExpression:ye,isNode:Fg,isNodesEquivalent:function e(t,r){if("object"!=typeof t||"object"!=typeof r||null==t||null==r)return t===r;if(t.type!==r.type)return!1;for(var a=Object.keys(Sa[t.type]||t.type),n=ja[t.type],s=0,o=a;s<o.length;s++){var i=o[s],d=t[i],c=r[i];if(typeof d!=typeof c)return!1;if(null!=d||null!=c){if(null==d||null==c)return!1;if(Array.isArray(d)){if(!Array.isArray(c))return!1;if(d.length!==c.length)return!1;for(var l=0;l<d.length;l++)if(!e(d[l],c[l]))return!1}else if("object"!=typeof d||null!=n&&n.includes(i)){if(!e(d,c))return!1}else for(var u=0,p=Object.keys(d);u<p.length;u++){var f=p[u];if(d[f]!==c[f])return!1}}}return!0},isNoop:function(e,t){return!!e&&("Noop"===e.type&&(null==t||K(e,t)))},isNullLiteral:pe,isNullLiteralTypeAnnotation:function(e,t){return!!e&&("NullLiteralTypeAnnotation"===e.type&&(null==t||K(e,t)))},isNullableTypeAnnotation:function(e,t){return!!e&&("NullableTypeAnnotation"===e.type&&(null==t||K(e,t)))},isNumberLiteral:function(e,t){return J("isNumberLiteral","isNumericLiteral"),!!e&&("NumberLiteral"===e.type&&(null==t||K(e,t)))},isNumberLiteralTypeAnnotation:function(e,t){return!!e&&("NumberLiteralTypeAnnotation"===e.type&&(null==t||K(e,t)))},isNumberTypeAnnotation:yt,isNumericLiteral:ue,isObjectExpression:be,isObjectMember:function(e,t){if(!e)return!1;switch(e.type){case"ObjectMethod":case"ObjectProperty":break;default:return!1}return null==t||K(e,t)},isObjectMethod:ve,isObjectPattern:Ke,isObjectProperty:xe,isObjectTypeAnnotation:function(e,t){return!!e&&("ObjectTypeAnnotation"===e.type&&(null==t||K(e,t)))},isObjectTypeCallProperty:function(e,t){return!!e&&("ObjectTypeCallProperty"===e.type&&(null==t||K(e,t)))},isObjectTypeIndexer:function(e,t){return!!e&&("ObjectTypeIndexer"===e.type&&(null==t||K(e,t)))},isObjectTypeInternalSlot:function(e,t){return!!e&&("ObjectTypeInternalSlot"===e.type&&(null==t||K(e,t)))},isObjectTypeProperty:function(e,t){return!!e&&("ObjectTypeProperty"===e.type&&(null==t||K(e,t)))},isObjectTypeSpreadProperty:function(e,t){return!!e&&("ObjectTypeSpreadProperty"===e.type&&(null==t||K(e,t)))},isOpaqueType:function(e,t){return!!e&&("OpaqueType"===e.type&&(null==t||K(e,t)))},isOptionalCallExpression:nt,isOptionalIndexedAccessType:function(e,t){return!!e&&("OptionalIndexedAccessType"===e.type&&(null==t||K(e,t)))},isOptionalMemberExpression:at,isParenthesizedExpression:Ee,isPattern:ur,isPatternLike:function(e,t){if(!e)return!1;switch(e.type){case"Identifier":case"MemberExpression":case"RestElement":case"AssignmentPattern":case"ArrayPattern":case"ObjectPattern":case"VoidPattern":case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":break;case"Placeholder":switch(e.expectedNode){case"Pattern":case"Identifier":break;default:return!1}break;default:return!1}return null==t||K(e,t)},isPipelineBareFunction:function(e,t){return!!e&&("PipelineBareFunction"===e.type&&(null==t||K(e,t)))},isPipelinePrimaryTopicReference:function(e,t){return!!e&&("PipelinePrimaryTopicReference"===e.type&&(null==t||K(e,t)))},isPipelineTopicExpression:Mt,isPlaceholder:Dt,isPlaceholderType:Ar,isPrivate:yr,isPrivateName:it,isProgram:he,isProperty:lr,isPureish:or,isQualifiedTypeIdentifier:function(e,t){return!!e&&("QualifiedTypeIdentifier"===e.type&&(null==t||K(e,t)))},isRecordExpression:function(e,t){return!!e&&("RecordExpression"===e.type&&(null==t||K(e,t)))},isReferenced:Gy,isRegExpLiteral:ge,isRegexLiteral:function(e,t){return J("isRegexLiteral","isRegExpLiteral"),!!e&&("RegexLiteral"===e.type&&(null==t||K(e,t)))},isRestElement:Re,isRestProperty:function(e,t){return J("isRestProperty","isRestElement"),!!e&&("RestProperty"===e.type&&(null==t||K(e,t)))},isReturnStatement:je,isScopable:Zt,isScope:Wy,isSequenceExpression:we,isSpecifierDefault:function(e){return Ge(e)||ie(e.imported||e.exported,{name:"default"})},isSpreadElement:Xe,isSpreadProperty:function(e,t){return J("isSpreadProperty","isSpreadElement"),!!e&&("SpreadProperty"===e.type&&(null==t||K(e,t)))},isStandardized:function(e,t){if(!e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"InterpreterDirective":case"Directive":case"DirectiveLiteral":case"BlockStatement":case"BreakStatement":case"CallExpression":case"CatchClause":case"ConditionalExpression":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"File":case"ForInStatement":case"ForStatement":case"FunctionDeclaration":case"FunctionExpression":case"Identifier":case"IfStatement":case"LabeledStatement":case"StringLiteral":case"NumericLiteral":case"NullLiteral":case"BooleanLiteral":case"RegExpLiteral":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"Program":case"ObjectExpression":case"ObjectMethod":case"ObjectProperty":case"RestElement":case"ReturnStatement":case"SequenceExpression":case"ParenthesizedExpression":case"SwitchCase":case"SwitchStatement":case"ThisExpression":case"ThrowStatement":case"TryStatement":case"UnaryExpression":case"UpdateExpression":case"VariableDeclaration":case"VariableDeclarator":case"WhileStatement":case"WithStatement":case"AssignmentPattern":case"ArrayPattern":case"ArrowFunctionExpression":case"ClassBody":case"ClassExpression":case"ClassDeclaration":case"ExportAllDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":case"ExportSpecifier":case"ForOfStatement":case"ImportDeclaration":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"ImportSpecifier":case"ImportExpression":case"MetaProperty":case"ClassMethod":case"ObjectPattern":case"SpreadElement":case"Super":case"TaggedTemplateExpression":case"TemplateElement":case"TemplateLiteral":case"YieldExpression":case"AwaitExpression":case"Import":case"BigIntLiteral":case"ExportNamespaceSpecifier":case"OptionalMemberExpression":case"OptionalCallExpression":case"ClassProperty":case"ClassAccessorProperty":case"ClassPrivateProperty":case"ClassPrivateMethod":case"PrivateName":case"StaticBlock":case"ImportAttribute":break;case"Placeholder":switch(e.expectedNode){case"Identifier":case"StringLiteral":case"BlockStatement":case"ClassBody":break;default:return!1}break;default:return!1}return null==t||K(e,t)},isStatement:er,isStaticBlock:dt,isStringLiteral:le,isStringLiteralTypeAnnotation:function(e,t){return!!e&&("StringLiteralTypeAnnotation"===e.type&&(null==t||K(e,t)))},isStringTypeAnnotation:ht,isSuper:Je,isSwitchCase:function(e,t){return!!e&&("SwitchCase"===e.type&&(null==t||K(e,t)))},isSwitchStatement:function(e,t){return!!e&&("SwitchStatement"===e.type&&(null==t||K(e,t)))},isSymbolTypeAnnotation:function(e,t){return!!e&&("SymbolTypeAnnotation"===e.type&&(null==t||K(e,t)))},isTSAnyKeyword:Lt,isTSArrayType:qt,isTSAsExpression:Vt,isTSBaseType:jr,isTSBigIntKeyword:function(e,t){return!!e&&("TSBigIntKeyword"===e.type&&(null==t||K(e,t)))},isTSBooleanKeyword:function(e,t){return!!e&&("TSBooleanKeyword"===e.type&&(null==t||K(e,t)))},isTSCallSignatureDeclaration:function(e,t){return!!e&&("TSCallSignatureDeclaration"===e.type&&(null==t||K(e,t)))},isTSConditionalType:function(e,t){return!!e&&("TSConditionalType"===e.type&&(null==t||K(e,t)))},isTSConstructSignatureDeclaration:function(e,t){return!!e&&("TSConstructSignatureDeclaration"===e.type&&(null==t||K(e,t)))},isTSConstructorType:function(e,t){return!!e&&("TSConstructorType"===e.type&&(null==t||K(e,t)))},isTSDeclareFunction:function(e,t){return!!e&&("TSDeclareFunction"===e.type&&(null==t||K(e,t)))},isTSDeclareMethod:function(e,t){return!!e&&("TSDeclareMethod"===e.type&&(null==t||K(e,t)))},isTSEntityName:function(e,t){if(!e)return!1;switch(e.type){case"Identifier":case"TSQualifiedName":break;case"Placeholder":if("Identifier"===e.expectedNode)break;default:return!1}return null==t||K(e,t)},isTSEnumBody:function(e,t){return!!e&&("TSEnumBody"===e.type&&(null==t||K(e,t)))},isTSEnumDeclaration:function(e,t){return!!e&&("TSEnumDeclaration"===e.type&&(null==t||K(e,t)))},isTSEnumMember:Kt,isTSExportAssignment:function(e,t){return!!e&&("TSExportAssignment"===e.type&&(null==t||K(e,t)))},isTSExpressionWithTypeArguments:function(e,t){return!!e&&("TSExpressionWithTypeArguments"===e.type&&(null==t||K(e,t)))},isTSExternalModuleReference:function(e,t){return!!e&&("TSExternalModuleReference"===e.type&&(null==t||K(e,t)))},isTSFunctionType:function(e,t){return!!e&&("TSFunctionType"===e.type&&(null==t||K(e,t)))},isTSImportEqualsDeclaration:function(e,t){return!!e&&("TSImportEqualsDeclaration"===e.type&&(null==t||K(e,t)))},isTSImportType:function(e,t){return!!e&&("TSImportType"===e.type&&(null==t||K(e,t)))},isTSIndexSignature:function(e,t){return!!e&&("TSIndexSignature"===e.type&&(null==t||K(e,t)))},isTSIndexedAccessType:function(e,t){return!!e&&("TSIndexedAccessType"===e.type&&(null==t||K(e,t)))},isTSInferType:function(e,t){return!!e&&("TSInferType"===e.type&&(null==t||K(e,t)))},isTSInstantiationExpression:function(e,t){return!!e&&("TSInstantiationExpression"===e.type&&(null==t||K(e,t)))},isTSInterfaceBody:Wt,isTSInterfaceDeclaration:function(e,t){return!!e&&("TSInterfaceDeclaration"===e.type&&(null==t||K(e,t)))},isTSIntersectionType:function(e,t){return!!e&&("TSIntersectionType"===e.type&&(null==t||K(e,t)))},isTSIntrinsicKeyword:function(e,t){return!!e&&("TSIntrinsicKeyword"===e.type&&(null==t||K(e,t)))},isTSLiteralType:function(e,t){return!!e&&("TSLiteralType"===e.type&&(null==t||K(e,t)))},isTSMappedType:function(e,t){return!!e&&("TSMappedType"===e.type&&(null==t||K(e,t)))},isTSMethodSignature:function(e,t){return!!e&&("TSMethodSignature"===e.type&&(null==t||K(e,t)))},isTSModuleBlock:Xt,isTSModuleDeclaration:function(e,t){return!!e&&("TSModuleDeclaration"===e.type&&(null==t||K(e,t)))},isTSNamedTupleMember:function(e,t){return!!e&&("TSNamedTupleMember"===e.type&&(null==t||K(e,t)))},isTSNamespaceExportDeclaration:function(e,t){return!!e&&("TSNamespaceExportDeclaration"===e.type&&(null==t||K(e,t)))},isTSNeverKeyword:function(e,t){return!!e&&("TSNeverKeyword"===e.type&&(null==t||K(e,t)))},isTSNonNullExpression:Jt,isTSNullKeyword:function(e,t){return!!e&&("TSNullKeyword"===e.type&&(null==t||K(e,t)))},isTSNumberKeyword:function(e,t){return!!e&&("TSNumberKeyword"===e.type&&(null==t||K(e,t)))},isTSObjectKeyword:function(e,t){return!!e&&("TSObjectKeyword"===e.type&&(null==t||K(e,t)))},isTSOptionalType:function(e,t){return!!e&&("TSOptionalType"===e.type&&(null==t||K(e,t)))},isTSParameterProperty:function(e,t){return!!e&&("TSParameterProperty"===e.type&&(null==t||K(e,t)))},isTSParenthesizedType:function(e,t){return!!e&&("TSParenthesizedType"===e.type&&(null==t||K(e,t)))},isTSPropertySignature:function(e,t){return!!e&&("TSPropertySignature"===e.type&&(null==t||K(e,t)))},isTSQualifiedName:Ft,isTSRestType:function(e,t){return!!e&&("TSRestType"===e.type&&(null==t||K(e,t)))},isTSSatisfiesExpression:Ht,isTSStringKeyword:function(e,t){return!!e&&("TSStringKeyword"===e.type&&(null==t||K(e,t)))},isTSSymbolKeyword:function(e,t){return!!e&&("TSSymbolKeyword"===e.type&&(null==t||K(e,t)))},isTSTemplateLiteralType:function(e,t){return!!e&&("TSTemplateLiteralType"===e.type&&(null==t||K(e,t)))},isTSThisType:function(e,t){return!!e&&("TSThisType"===e.type&&(null==t||K(e,t)))},isTSTupleType:function(e,t){return!!e&&("TSTupleType"===e.type&&(null==t||K(e,t)))},isTSType:Rr,isTSTypeAliasDeclaration:function(e,t){return!!e&&("TSTypeAliasDeclaration"===e.type&&(null==t||K(e,t)))},isTSTypeAnnotation:Yt,isTSTypeAssertion:zt,isTSTypeElement:function(e,t){if(!e)return!1;switch(e.type){case"TSCallSignatureDeclaration":case"TSConstructSignatureDeclaration":case"TSPropertySignature":case"TSMethodSignature":case"TSIndexSignature":break;default:return!1}return null==t||K(e,t)},isTSTypeLiteral:function(e,t){return!!e&&("TSTypeLiteral"===e.type&&(null==t||K(e,t)))},isTSTypeOperator:function(e,t){return!!e&&("TSTypeOperator"===e.type&&(null==t||K(e,t)))},isTSTypeParameter:function(e,t){return!!e&&("TSTypeParameter"===e.type&&(null==t||K(e,t)))},isTSTypeParameterDeclaration:function(e,t){return!!e&&("TSTypeParameterDeclaration"===e.type&&(null==t||K(e,t)))},isTSTypeParameterInstantiation:function(e,t){return!!e&&("TSTypeParameterInstantiation"===e.type&&(null==t||K(e,t)))},isTSTypePredicate:function(e,t){return!!e&&("TSTypePredicate"===e.type&&(null==t||K(e,t)))},isTSTypeQuery:function(e,t){return!!e&&("TSTypeQuery"===e.type&&(null==t||K(e,t)))},isTSTypeReference:Ut,isTSUndefinedKeyword:function(e,t){return!!e&&("TSUndefinedKeyword"===e.type&&(null==t||K(e,t)))},isTSUnionType:Gt,isTSUnknownKeyword:function(e,t){return!!e&&("TSUnknownKeyword"===e.type&&(null==t||K(e,t)))},isTSVoidKeyword:function(e,t){return!!e&&("TSVoidKeyword"===e.type&&(null==t||K(e,t)))},isTaggedTemplateExpression:Ye,isTemplateElement:function(e,t){return!!e&&("TemplateElement"===e.type&&(null==t||K(e,t)))},isTemplateLiteral:$e,isTerminatorless:function(e,t){if(!e)return!1;switch(e.type){case"BreakStatement":case"ContinueStatement":case"ReturnStatement":case"ThrowStatement":case"YieldExpression":case"AwaitExpression":break;default:return!1}return null==t||K(e,t)},isThisExpression:Se,isThisTypeAnnotation:function(e,t){return!!e&&("ThisTypeAnnotation"===e.type&&(null==t||K(e,t)))},isThrowStatement:function(e,t){return!!e&&("ThrowStatement"===e.type&&(null==t||K(e,t)))},isTopicReference:Bt,isTryStatement:function(e,t){return!!e&&("TryStatement"===e.type&&(null==t||K(e,t)))},isTupleExpression:function(e,t){return!!e&&("TupleExpression"===e.type&&(null==t||K(e,t)))},isTupleTypeAnnotation:bt,isType:Pr,isTypeAlias:function(e,t){return!!e&&("TypeAlias"===e.type&&(null==t||K(e,t)))},isTypeAnnotation:vt,isTypeCastExpression:xt,isTypeParameter:function(e,t){return!!e&&("TypeParameter"===e.type&&(null==t||K(e,t)))},isTypeParameterDeclaration:function(e,t){return!!e&&("TypeParameterDeclaration"===e.type&&(null==t||K(e,t)))},isTypeParameterInstantiation:function(e,t){return!!e&&("TypeParameterInstantiation"===e.type&&(null==t||K(e,t)))},isTypeScript:xr,isTypeofTypeAnnotation:function(e,t){return!!e&&("TypeofTypeAnnotation"===e.type&&(null==t||K(e,t)))},isUnaryExpression:Te,isUnaryLike:function(e,t){if(!e)return!1;switch(e.type){case"UnaryExpression":case"SpreadElement":break;default:return!1}return null==t||K(e,t)},isUnionTypeAnnotation:Rt,isUpdateExpression:Pe,isUserWhitespacable:function(e,t){if(!e)return!1;switch(e.type){case"ObjectMethod":case"ObjectProperty":case"ObjectTypeInternalSlot":case"ObjectTypeCallProperty":case"ObjectTypeIndexer":case"ObjectTypeProperty":case"ObjectTypeSpreadProperty":break;default:return!1}return null==t||K(e,t)},isV8IntrinsicIdentifier:function(e,t){return!!e&&("V8IntrinsicIdentifier"===e.type&&(null==t||K(e,t)))},isValidES3Identifier:Hy,isValidIdentifier:Yr,isVar:Ky,isVariableDeclaration:Ae,isVariableDeclarator:ke,isVariance:function(e,t){return!!e&&("Variance"===e.type&&(null==t||K(e,t)))},isVoidPattern:function(e,t){return!!e&&("VoidPattern"===e.type&&(null==t||K(e,t)))},isVoidTypeAnnotation:jt,isWhile:function(e,t){if(!e)return!1;switch(e.type){case"DoWhileStatement":case"WhileStatement":break;default:return!1}return null==t||K(e,t)},isWhileStatement:function(e,t){return!!e&&("WhileStatement"===e.type&&(null==t||K(e,t)))},isWithStatement:function(e,t){return!!e&&("WithStatement"===e.type&&(null==t||K(e,t)))},isYieldExpression:Qe,jSXAttribute:Qi,jSXClosingElement:Zi,jSXClosingFragment:pd,jSXElement:ed,jSXEmptyExpression:td,jSXExpressionContainer:rd,jSXFragment:ld,jSXIdentifier:nd,jSXMemberExpression:sd,jSXNamespacedName:od,jSXOpeningElement:id,jSXOpeningFragment:ud,jSXSpreadAttribute:dd,jSXSpreadChild:ad,jSXText:cd,jsxAttribute:Qi,jsxClosingElement:Zi,jsxClosingFragment:pd,jsxElement:ed,jsxEmptyExpression:td,jsxExpressionContainer:rd,jsxFragment:ld,jsxIdentifier:nd,jsxMemberExpression:sd,jsxNamespacedName:od,jsxOpeningElement:id,jsxOpeningFragment:ud,jsxSpreadAttribute:dd,jsxSpreadChild:ad,jsxText:cd,labeledStatement:ks,logicalExpression:Ns,matchesPattern:Er,memberExpression:Bs,metaProperty:xo,mixedTypeAnnotation:fi,moduleExpression:Ed,newExpression:Ms,noop:fd,nullLiteral:Is,nullLiteralTypeAnnotation:Ho,nullableTypeAnnotation:mi,numberLiteral:Wc,numberLiteralTypeAnnotation:yi,numberTypeAnnotation:hi,numericLiteral:_s,objectExpression:Ls,objectMethod:Us,objectPattern:jo,objectProperty:qs,objectTypeAnnotation:bi,objectTypeCallProperty:xi,objectTypeIndexer:Ri,objectTypeInternalSlot:vi,objectTypeProperty:ji,objectTypeSpreadProperty:wi,opaqueType:Ei,optionalCallExpression:Do,optionalIndexedAccessType:$i,optionalMemberExpression:Io,parenthesizedExpression:Hs,pipelineBareFunction:Pd,pipelinePrimaryTopicReference:Ad,pipelineTopicExpression:Td,placeholder:gd,prependToMemberExpression:function(e,t){if(Je(e.object))throw new Error("Cannot prepend node to super property access (`super.foo`).");return e.object=Bs(t,e.object),e},privateName:Fo,program:Fs,qualifiedTypeIdentifier:Si,react:Xy,recordExpression:Rd,regExpLiteral:Os,regexLiteral:Vc,removeComments:ym,removeProperties:Ey,removePropertiesDeep:Sy,removeTypeDuplicates:Yg,restElement:Gs,restProperty:Hc,returnStatement:Ws,sequenceExpression:Vs,shallowEqual:K,spreadElement:wo,spreadProperty:zc,staticBlock:Lo,stringLiteral:Cs,stringLiteralTypeAnnotation:Ti,stringTypeAnnotation:Pi,super:Eo,switchCase:zs,switchStatement:Ks,symbolTypeAnnotation:Ai,tSAnyKeyword:Ld,tSArrayType:sc,tSAsExpression:Sc,tSBigIntKeyword:qd,tSBooleanKeyword:Ud,tSCallSignatureDeclaration:Od,tSConditionalType:pc,tSConstructSignatureDeclaration:Nd,tSConstructorType:ec,tSDeclareFunction:_d,tSDeclareMethod:Id,tSEnumBody:Ac,tSEnumDeclaration:kc,tSEnumMember:Cc,tSExportAssignment:Mc,tSExpressionWithTypeArguments:xc,tSExternalModuleReference:Nc,tSFunctionType:Zd,tSImportEqualsDeclaration:Oc,tSImportType:Dc,tSIndexSignature:Fd,tSIndexedAccessType:yc,tSInferType:fc,tSInstantiationExpression:Ec,tSInterfaceBody:jc,tSInterfaceDeclaration:Rc,tSIntersectionType:uc,tSIntrinsicKeyword:Gd,tSLiteralType:vc,tSMappedType:hc,tSMethodSignature:Md,tSModuleBlock:Ic,tSModuleDeclaration:_c,tSNamedTupleMember:cc,tSNamespaceExportDeclaration:Fc,tSNeverKeyword:Wd,tSNonNullExpression:Bc,tSNullKeyword:Vd,tSNumberKeyword:Hd,tSObjectKeyword:zd,tSOptionalType:ic,tSParameterProperty:Cd,tSParenthesizedType:gc,tSPropertySignature:Bd,tSQualifiedName:Dd,tSRestType:dc,tSSatisfiesExpression:Tc,tSStringKeyword:Kd,tSSymbolKeyword:Xd,tSTemplateLiteralType:bc,tSThisType:Qd,tSTupleType:oc,tSTypeAliasDeclaration:wc,tSTypeAnnotation:Lc,tSTypeAssertion:Pc,tSTypeLiteral:nc,tSTypeOperator:mc,tSTypeParameter:Gc,tSTypeParameterDeclaration:qc,tSTypeParameterInstantiation:Uc,tSTypePredicate:rc,tSTypeQuery:ac,tSTypeReference:tc,tSUndefinedKeyword:Jd,tSUnionType:lc,tSUnknownKeyword:Yd,tSVoidKeyword:$d,taggedTemplateExpression:So,templateElement:To,templateLiteral:Po,thisExpression:Xs,thisTypeAnnotation:ki,throwStatement:Js,toBindingIdentifierName:yy,toBlock:gy,toComputedKey:hy,toExpression:by,toIdentifier:my,toKeyAlias:Ty,toStatement:Py,topicReference:Sd,traverse:By,traverseFast:Ry,tryStatement:Ys,tsAnyKeyword:Ld,tsArrayType:sc,tsAsExpression:Sc,tsBigIntKeyword:qd,tsBooleanKeyword:Ud,tsCallSignatureDeclaration:Od,tsConditionalType:pc,tsConstructSignatureDeclaration:Nd,tsConstructorType:ec,tsDeclareFunction:_d,tsDeclareMethod:Id,tsEnumBody:Ac,tsEnumDeclaration:kc,tsEnumMember:Cc,tsExportAssignment:Mc,tsExpressionWithTypeArguments:xc,tsExternalModuleReference:Nc,tsFunctionType:Zd,tsImportEqualsDeclaration:Oc,tsImportType:Dc,tsIndexSignature:Fd,tsIndexedAccessType:yc,tsInferType:fc,tsInstantiationExpression:Ec,tsInterfaceBody:jc,tsInterfaceDeclaration:Rc,tsIntersectionType:uc,tsIntrinsicKeyword:Gd,tsLiteralType:vc,tsMappedType:hc,tsMethodSignature:Md,tsModuleBlock:Ic,tsModuleDeclaration:_c,tsNamedTupleMember:cc,tsNamespaceExportDeclaration:Fc,tsNeverKeyword:Wd,tsNonNullExpression:Bc,tsNullKeyword:Vd,tsNumberKeyword:Hd,tsObjectKeyword:zd,tsOptionalType:ic,tsParameterProperty:Cd,tsParenthesizedType:gc,tsPropertySignature:Bd,tsQualifiedName:Dd,tsRestType:dc,tsSatisfiesExpression:Tc,tsStringKeyword:Kd,tsSymbolKeyword:Xd,tsTemplateLiteralType:bc,tsThisType:Qd,tsTupleType:oc,tsTypeAliasDeclaration:wc,tsTypeAnnotation:Lc,tsTypeAssertion:Pc,tsTypeLiteral:nc,tsTypeOperator:mc,tsTypeParameter:Gc,tsTypeParameterDeclaration:qc,tsTypeParameterInstantiation:Uc,tsTypePredicate:rc,tsTypeQuery:ac,tsTypeReference:tc,tsUndefinedKeyword:Jd,tsUnionType:lc,tsUnknownKeyword:Yd,tsVoidKeyword:$d,tupleExpression:jd,tupleTypeAnnotation:Ci,typeAlias:Ii,typeAnnotation:Di,typeCastExpression:Oi,typeParameter:Ni,typeParameterDeclaration:Bi,typeParameterInstantiation:Mi,typeofTypeAnnotation:_i,unaryExpression:$s,unionTypeAnnotation:Fi,updateExpression:Qs,v8IntrinsicIdentifier:md,validate:es,valueToNode:ky,variableDeclaration:Zs,variableDeclarator:eo,variance:Li,voidPattern:kd,voidTypeAnnotation:Ui,whileStatement:to,withStatement:ro,yieldExpression:Ao}),Yy=qg;function $y(e){return{code:function(e){return"/* @babel/template */;\n"+e},validate:function(){},unwrap:function(t){return e(t.program.body.slice(1))}}}var Qy=$y(function(e){return e.length>1?e:e[0]}),Zy=$y(function(e){return e}),eh=$y(function(e){if(0===e.length)throw new Error("Found nothing to return.");if(e.length>1)throw new Error("Found multiple statements but wanted one");return e[0]}),th={code:function(e){return"(\n"+e+"\n)"},validate:function(e){if(e.program.body.length>1)throw new Error("Found multiple statements but wanted one");if(0===th.unwrap(e).start)throw new Error("Parse result included parens.")},unwrap:function(e){var t=y(e.program.body,1)[0];return Yy(t),t.expression}},rh=["placeholderWhitelist","placeholderPattern","preserveComments","syntacticPlaceholders"];function ah(e,t){var r=t.placeholderWhitelist,a=void 0===r?e.placeholderWhitelist:r,n=t.placeholderPattern,s=void 0===n?e.placeholderPattern:n,o=t.preserveComments,i=void 0===o?e.preserveComments:o,d=t.syntacticPlaceholders,c=void 0===d?e.syntacticPlaceholders:d;return{parser:Object.assign({},e.parser,t.parser),placeholderWhitelist:a,placeholderPattern:s,preserveComments:i,syntacticPlaceholders:c}}function nh(e){if(null!=e&&"object"!=typeof e)throw new Error("Unknown template options.");var t=e||{},r=t.placeholderWhitelist,a=t.placeholderPattern,n=t.preserveComments,s=t.syntacticPlaceholders,o=u(t,rh);if(null!=r&&!(r instanceof Set))throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined");if(null!=a&&!(a instanceof RegExp)&&!1!==a)throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined");if(null!=n&&"boolean"!=typeof n)throw new Error("'.preserveComments' must be a boolean, null, or undefined");if(null!=s&&"boolean"!=typeof s)throw new Error("'.syntacticPlaceholders' must be a boolean, null, or undefined");if(!0===s&&(null!=r||null!=a))throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");return{parser:o,placeholderWhitelist:r||void 0,placeholderPattern:null==a?void 0:a,preserveComments:null==n?void 0:n,syntacticPlaceholders:null==s?void 0:s}}function sh(e){if(Array.isArray(e))return e.reduce(function(e,t,r){return e["$"+r]=t,e},{});if("object"==typeof e||null==e)return e||void 0;throw new Error("Template replacements must be an array, object, null, or undefined")}var oh=o(function(e,t,r){this.line=void 0,this.column=void 0,this.index=void 0,this.line=e,this.column=t,this.index=r}),ih=o(function(e,t){this.start=void 0,this.end=void 0,this.filename=void 0,this.identifierName=void 0,this.start=e,this.end=t});function dh(e,t){var r=e.line,a=e.column,n=e.index;return new oh(r,a+t,n+t)}var ch,lh="BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED",uh={ImportMetaOutsideModule:{message:"import.meta may appear only with 'sourceType: \"module\"'",code:lh},ImportOutsideModule:{message:"'import' and 'export' may appear only with 'sourceType: \"module\"'",code:lh}},ph={ArrayPattern:"array destructuring pattern",AssignmentExpression:"assignment expression",AssignmentPattern:"assignment expression",ArrowFunctionExpression:"arrow function expression",ConditionalExpression:"conditional expression",CatchClause:"catch clause",ForOfStatement:"for-of statement",ForInStatement:"for-in statement",ForStatement:"for-loop",FormalParameters:"function parameter list",Identifier:"identifier",ImportSpecifier:"import specifier",ImportDefaultSpecifier:"import default specifier",ImportNamespaceSpecifier:"import namespace specifier",ObjectPattern:"object destructuring pattern",ParenthesizedExpression:"parenthesized expression",RestElement:"rest element",UpdateExpression:{true:"prefix operation",false:"postfix operation"},VariableDeclarator:"variable declaration",YieldExpression:"yield expression"},fh=function(e){return"UpdateExpression"===e.type?ph.UpdateExpression[""+e.prefix]:ph[e.type]},gh={AccessorIsGenerator:function(e){return"A "+e.kind+"ter cannot be a generator."},ArgumentsInClass:"'arguments' is only allowed in functions and class methods.",AsyncFunctionInSingleStatementContext:"Async functions can only be declared at the top level or inside a block.",AwaitBindingIdentifier:"Can not use 'await' as identifier inside an async function.",AwaitBindingIdentifierInStaticBlock:"Can not use 'await' as identifier inside a static block.",AwaitExpressionFormalParameter:"'await' is not allowed in async function parameters.",AwaitUsingNotInAsyncContext:"'await using' is only allowed within async functions and at the top levels of modules.",AwaitNotInAsyncContext:"'await' is only allowed within async functions and at the top levels of modules.",BadGetterArity:"A 'get' accessor must not have any formal parameters.",BadSetterArity:"A 'set' accessor must have exactly one formal parameter.",BadSetterRestParameter:"A 'set' accessor function argument must not be a rest parameter.",ConstructorClassField:"Classes may not have a field named 'constructor'.",ConstructorClassPrivateField:"Classes may not have a private field named '#constructor'.",ConstructorIsAccessor:"Class constructor may not be an accessor.",ConstructorIsAsync:"Constructor can't be an async function.",ConstructorIsGenerator:"Constructor can't be a generator.",DeclarationMissingInitializer:function(e){return"Missing initializer in "+e.kind+" declaration."},DecoratorArgumentsOutsideParentheses:"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.",DecoratorBeforeExport:"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.",DecoratorsBeforeAfterExport:"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.",DecoratorConstructor:"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?",DecoratorExportClass:"Decorators must be placed *after* the 'export' keyword. Remove the 'decoratorsBeforeExport: false' option to use the '@decorator export class {}' syntax.",DecoratorSemicolon:"Decorators must not be followed by a semicolon.",DecoratorStaticBlock:"Decorators can't be used with a static block.",DeferImportRequiresNamespace:'Only `import defer * as x from "./module"` is valid.',DeletePrivateField:"Deleting a private field is not allowed.",DestructureNamedImport:"ES2015 named imports do not destructure. Use another statement for destructuring after the import.",DuplicateConstructor:"Duplicate constructor in the same class.",DuplicateDefaultExport:"Only one default export allowed per module.",DuplicateExport:function(e){return"`"+e.exportName+"` has already been exported. Exported identifiers must be unique."},DuplicateProto:"Redefinition of __proto__ property.",DuplicateRegExpFlags:"Duplicate regular expression flag.",ElementAfterRest:"Rest element must be last element.",EscapedCharNotAnIdentifier:"Invalid Unicode escape.",ExportBindingIsString:function(e){return"A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '"+e.localName+"' as '"+e.exportName+"' } from 'some-module'`?"},ExportDefaultFromAsIdentifier:"'from' is not allowed as an identifier after 'export default'.",ForInOfLoopInitializer:function(e){return"'"+("ForInStatement"===e.type?"for-in":"for-of")+"' loop variable declaration may not have an initializer."},ForInUsing:"For-in loop may not start with 'using' declaration.",ForOfAsync:"The left-hand side of a for-of loop may not be 'async'.",ForOfLet:"The left-hand side of a for-of loop may not start with 'let'.",GeneratorInSingleStatementContext:"Generators can only be declared at the top level or inside a block.",IllegalBreakContinue:function(e){return"Unsyntactic "+("BreakStatement"===e.type?"break":"continue")+"."},IllegalLanguageModeDirective:"Illegal 'use strict' directive in function with non-simple parameter list.",IllegalReturn:"'return' outside of function.",ImportAttributesUseAssert:"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedImportAssert` parser plugin to suppress this error.",ImportBindingIsString:function(e){return'A string literal cannot be used as an imported binding.\n- Did you mean `import { "'+e.importName+'" as foo }`?'},ImportCallArity:"`import()` requires exactly one or two arguments.",ImportCallNotNewExpression:"Cannot use new with import(...).",ImportCallSpreadArgument:"`...` is not allowed in `import()`.",ImportJSONBindingNotDefault:"A JSON module can only be imported with `default`.",ImportReflectionHasAssertion:"`import module x` cannot have assertions.",ImportReflectionNotBinding:'Only `import module x from "./module"` is valid.',IncompatibleRegExpUVFlags:"The 'u' and 'v' regular expression flags cannot be enabled at the same time.",InvalidBigIntLiteral:"Invalid BigIntLiteral.",InvalidCodePoint:"Code point out of bounds.",InvalidCoverDiscardElement:"'void' must be followed by an expression when not used in a binding position.",InvalidCoverInitializedName:"Invalid shorthand property initializer.",InvalidDecimal:"Invalid decimal.",InvalidDigit:function(e){return"Expected number in radix "+e.radix+"."},InvalidEscapeSequence:"Bad character escape sequence.",InvalidEscapeSequenceTemplate:"Invalid escape sequence in template.",InvalidEscapedReservedWord:function(e){return"Escape sequence in keyword "+e.reservedWord+"."},InvalidIdentifier:function(e){return"Invalid identifier "+e.identifierName+"."},InvalidLhs:function(e){var t=e.ancestor;return"Invalid left-hand side in "+fh(t)+"."},InvalidLhsBinding:function(e){var t=e.ancestor;return"Binding invalid left-hand side in "+fh(t)+"."},InvalidLhsOptionalChaining:function(e){var t=e.ancestor;return"Invalid optional chaining in the left-hand side of "+fh(t)+"."},InvalidNumber:"Invalid number.",InvalidOrMissingExponent:"Floating-point numbers require a valid exponent after the 'e'.",InvalidOrUnexpectedToken:function(e){return"Unexpected character '"+e.unexpected+"'."},InvalidParenthesizedAssignment:"Invalid parenthesized assignment pattern.",InvalidPrivateFieldResolution:function(e){return"Private name #"+e.identifierName+" is not defined."},InvalidPropertyBindingPattern:"Binding member expression.",InvalidRecordProperty:"Only properties and spread elements are allowed in record definitions.",InvalidRestAssignmentPattern:"Invalid rest operator's argument.",LabelRedeclaration:function(e){return"Label '"+e.labelName+"' is already declared."},LetInLexicalBinding:"'let' is disallowed as a lexically bound name.",LineTerminatorBeforeArrow:"No line break is allowed before '=>'.",MalformedRegExpFlags:"Invalid regular expression flag.",MissingClassName:"A class name is required.",MissingEqInAssignment:"Only '=' operator can be used for specifying default value.",MissingSemicolon:"Missing semicolon.",MissingPlugin:function(e){return"This experimental syntax requires enabling the parser plugin: "+e.missingPlugin.map(function(e){return JSON.stringify(e)}).join(", ")+"."},MissingOneOfPlugins:function(e){return"This experimental syntax requires enabling one of the following parser plugin(s): "+e.missingPlugin.map(function(e){return JSON.stringify(e)}).join(", ")+"."},MissingUnicodeEscape:"Expecting Unicode escape sequence \\uXXXX.",MixingCoalesceWithLogical:"Nullish coalescing operator(??) requires parens when mixing with logical operators.",ModuleAttributeDifferentFromType:"The only accepted module attribute is `type`.",ModuleAttributeInvalidValue:"Only string literals are allowed as module attribute values.",ModuleAttributesWithDuplicateKeys:function(e){return'Duplicate key "'+e.key+'" is not allowed in module attributes.'},ModuleExportNameHasLoneSurrogate:function(e){return"An export name cannot include a lone surrogate, found '\\u"+e.surrogateCharCode.toString(16)+"'."},ModuleExportUndefined:function(e){return"Export '"+e.localName+"' is not defined."},MultipleDefaultsInSwitch:"Multiple default clauses.",NewlineAfterThrow:"Illegal newline after throw.",NoCatchOrFinally:"Missing catch or finally clause.",NumberIdentifier:"Identifier directly after number.",NumericSeparatorInEscapeSequence:"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.",ObsoleteAwaitStar:"'await*' has been removed from the async functions proposal. Use Promise.all() instead.",OptionalChainingNoNew:"Constructors in/after an Optional Chain are not allowed.",OptionalChainingNoTemplate:"Tagged Template Literals are not allowed in optionalChain.",OverrideOnConstructor:"'override' modifier cannot appear on a constructor declaration.",ParamDupe:"Argument name clash.",PatternHasAccessor:"Object pattern can't contain getter or setter.",PatternHasMethod:"Object pattern can't contain methods.",PrivateInExpectedIn:function(e){var t=e.identifierName;return"Private names are only allowed in property accesses (`obj.#"+t+"`) or in `in` expressions (`#"+t+" in obj`)."},PrivateNameRedeclaration:function(e){return"Duplicate private name #"+e.identifierName+"."},RecordExpressionBarIncorrectEndSyntaxType:"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionBarIncorrectStartSyntaxType:"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",RecordExpressionHashIncorrectStartSyntaxType:"Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",RecordNoProto:"'__proto__' is not allowed in Record expressions.",RestTrailingComma:"Unexpected trailing comma after rest element.",SloppyFunction:"In non-strict mode code, functions can only be declared at top level or inside a block.",SloppyFunctionAnnexB:"In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.",SourcePhaseImportRequiresDefault:'Only `import source x from "./module"` is valid.',StaticPrototype:"Classes may not have static property named prototype.",SuperNotAllowed:"`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?",SuperPrivateField:"Private fields can't be accessed on super.",TrailingDecorator:"Decorators must be attached to a class element.",TupleExpressionBarIncorrectEndSyntaxType:"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionBarIncorrectStartSyntaxType:"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.",TupleExpressionHashIncorrectStartSyntaxType:"Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.",UnexpectedArgumentPlaceholder:"Unexpected argument placeholder.",UnexpectedAwaitAfterPipelineBody:'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.',UnexpectedDigitAfterHash:"Unexpected digit after hash token.",UnexpectedImportExport:"'import' and 'export' may only appear at the top level.",UnexpectedKeyword:function(e){return"Unexpected keyword '"+e.keyword+"'."},UnexpectedLeadingDecorator:"Leading decorators must be attached to a class declaration.",UnexpectedLexicalDeclaration:"Lexical declaration cannot appear in a single-statement context.",UnexpectedNewTarget:"`new.target` can only be used in functions or class properties.",UnexpectedNumericSeparator:"A numeric separator is only allowed between two digits.",UnexpectedPrivateField:"Unexpected private name.",UnexpectedReservedWord:function(e){return"Unexpected reserved word '"+e.reservedWord+"'."},UnexpectedSuper:"'super' is only allowed in object methods and classes.",UnexpectedToken:function(e){var t=e.expected,r=e.unexpected;return"Unexpected token"+(r?" '"+r+"'.":"")+(t?', expected "'+t+'"':"")},UnexpectedTokenUnaryExponentiation:"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.",UnexpectedUsingDeclaration:"Using declaration cannot appear in the top level when source type is `script` or in the bare case statement.",UnexpectedVoidPattern:"Unexpected void binding.",UnsupportedBind:"Binding should be performed on object property.",UnsupportedDecoratorExport:"A decorated export must export a class declaration.",UnsupportedDefaultExport:"Only expressions, functions or classes are allowed as the `default` export.",UnsupportedImport:"`import` can only be used in `import()` or `import.meta`.",UnsupportedMetaProperty:function(e){var t=e.target;return"The only valid meta property for "+t+" is "+t+"."+e.onlyValidPropertyName+"."},UnsupportedParameterDecorator:"Decorators cannot be used to decorate parameters.",UnsupportedPropertyDecorator:"Decorators cannot be used to decorate object literal properties.",UnsupportedSuper:"'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).",UnterminatedComment:"Unterminated comment.",UnterminatedRegExp:"Unterminated regular expression.",UnterminatedString:"Unterminated string constant.",UnterminatedTemplate:"Unterminated template.",UsingDeclarationExport:"Using declaration cannot be exported.",UsingDeclarationHasBindingPattern:"Using declaration cannot have destructuring patterns.",VarRedeclaration:function(e){return"Identifier '"+e.identifierName+"' has already been declared."},VoidPatternCatchClauseParam:"A void binding can not be the catch clause parameter. Use `try { ... } catch { ... }` if you want to discard the caught error.",VoidPatternInitializer:"A void binding may not have an initializer.",YieldBindingIdentifier:"Can not use 'yield' as identifier inside a generator.",YieldInParameter:"Yield expression is not allowed in formal parameters.",YieldNotInGeneratorFunction:"'yield' is only allowed within generator functions.",ZeroDigitNumericSeparator:"Numeric separator can not be used after leading 0."},mh={ParseExpressionEmptyInput:"Unexpected parseExpression() input: The input is empty or contains only comments.",ParseExpressionExpectsEOF:function(e){var t=e.unexpected;return"Unexpected parseExpression() input: The input should contain exactly one expression, but the first expression is followed by the unexpected character `"+String.fromCodePoint(t)+"`."}},yh=new Set(["ArrowFunctionExpression","AssignmentExpression","ConditionalExpression","YieldExpression"]),hh=Object.assign({PipeBodyIsTighter:"Unexpected yield after pipeline body; any yield expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.",PipeTopicRequiresHackPipes:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.',PipeTopicUnbound:"Topic reference is unbound; it must be inside a pipe body.",PipeTopicUnconfiguredToken:function(e){var t=e.token;return"Invalid topic token "+t+". In order to use "+t+' as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "'+t+'" }.'},PipeTopicUnused:"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.",PipeUnparenthesizedBody:function(e){var t=e.type;return"Hack-style pipe body cannot be an unparenthesized "+fh({type:t})+"; please wrap it in parentheses."}},{PipelineBodyNoArrow:'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.',PipelineBodySequenceExpression:"Pipeline body may not be a comma-separated sequence expression.",PipelineHeadSequenceExpression:"Pipeline head should not be a comma-separated sequence expression.",PipelineTopicUnused:"Pipeline is in topic style but does not use topic reference.",PrimaryTopicNotAllowed:"Topic reference was used in a lexical context without topic binding.",PrimaryTopicRequiresSmartPipeline:'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.'}),bh=["message"];function vh(e,t,r){Object.defineProperty(e,t,{enumerable:!1,configurable:!0,value:r})}function xh(e,t){if(Array.isArray(e))return function(t){return xh(t,e[0])};for(var r={},a=function(){var a=s[n],o=e[a],i="string"==typeof o?{message:function(){return o}}:"function"==typeof o?{message:o}:o,d=i.message,c=u(i,bh),l="string"==typeof d?function(){return d}:d;r[a]=function(e){var t=e.toMessage,r=e.code,a=e.reasonCode,n=e.syntaxPlugin,s="MissingPlugin"===a||"MissingOneOfPlugins"===a,o={AccessorCannotDeclareThisParameter:"AccesorCannotDeclareThisParameter",AccessorCannotHaveTypeParameters:"AccesorCannotHaveTypeParameters",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference",SetAccessorCannotHaveOptionalParameter:"SetAccesorCannotHaveOptionalParameter",SetAccessorCannotHaveRestParameter:"SetAccesorCannotHaveRestParameter",SetAccessorCannotHaveReturnType:"SetAccesorCannotHaveReturnType"};return o[a]&&(a=o[a]),function e(o,i){var d=new SyntaxError;return d.code=r,d.reasonCode=a,d.loc=o,d.pos=o.index,d.syntaxPlugin=n,s&&(d.missingPlugin=i.missingPlugin),vh(d,"clone",function(t){var r;void 0===t&&(t={});var a=null!=(r=t.loc)?r:o,n=a.line,s=a.column,d=a.index;return e(new oh(n,s,d),Object.assign({},i,t.details))}),vh(d,"details",i),Object.defineProperty(d,"message",{configurable:!0,get:function(){var e=t(i)+" ("+o.line+":"+o.column+")";return this.message=e,e},set:function(e){Object.defineProperty(this,"message",{value:e,writable:!0})}}),d}}(Object.assign({code:"BABEL_PARSER_SYNTAX_ERROR",reasonCode:a,toMessage:l},t?{syntaxPlugin:t}:{},c))},n=0,s=Object.keys(e);n<s.length;n++)a();return r}var Rh=Object.assign({},xh(uh),xh(gh),xh({StrictDelete:"Deleting local variable in strict mode.",StrictEvalArguments:function(e){return"Assigning to '"+e.referenceName+"' in strict mode."},StrictEvalArgumentsBinding:function(e){return"Binding '"+e.bindingName+"' in strict mode."},StrictFunction:"In strict mode code, functions can only be declared at top level or inside a block.",StrictNumericEscape:"The only valid numeric escape in strict mode is '\\0'.",StrictOctalLiteral:"Legacy octal literals are not allowed in strict mode.",StrictWith:"'with' in strict mode."}),xh(mh),xh(ch||(ch=h(["pipelineOperator"])))(hh)),jh=1,wh=2,Eh=4,Sh=8,Th=16,Ph=32,Ah=64,kh=128,Ch=256,_h=512,Ih=1024,Dh=2048,Oh=4096,Nh=8192;var Bh=Object.defineProperty,Mh=function(e,t){e&&Bh(e,t,{enumerable:!1,value:e[t]})};function Fh(e){return Mh(e.loc.start,"index"),Mh(e.loc.end,"index"),e}var Lh=o(function(e,t){this.token=void 0,this.preserveSpace=void 0,this.token=e,this.preserveSpace=!!t}),Uh={brace:new Lh("{"),j_oTag:new Lh("<tag"),j_cTag:new Lh("</tag"),j_expr:new Lh("<tag>...</tag>",!0)};Uh.template=new Lh("`",!0);var qh=!0,Gh=!0,Wh=!0,Vh=!0,Hh=!0,zh=o(function(e,t){void 0===t&&(t={}),this.label=void 0,this.keyword=void 0,this.beforeExpr=void 0,this.startsExpr=void 0,this.rightAssociative=void 0,this.isLoop=void 0,this.isAssign=void 0,this.prefix=void 0,this.postfix=void 0,this.binop=void 0,this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.rightAssociative=!!t.rightAssociative,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=null!=t.binop?t.binop:null,this.updateContext=null}),Kh=new Map;function Xh(e,t){void 0===t&&(t={}),t.keyword=e;var r=ab(e,t);return Kh.set(e,r),r}function Jh(e,t){return ab(e,{beforeExpr:qh,binop:t})}var Yh=-1,$h=[],Qh=[],Zh=[],eb=[],tb=[],rb=[];function ab(e,t){var r,a,n,s;return void 0===t&&(t={}),++Yh,Qh.push(e),Zh.push(null!=(r=t.binop)?r:-1),eb.push(null!=(a=t.beforeExpr)&&a),tb.push(null!=(n=t.startsExpr)&&n),rb.push(null!=(s=t.prefix)&&s),$h.push(new zh(e,t)),Yh}function nb(e,t){var r,a,n,s;return void 0===t&&(t={}),++Yh,Kh.set(e,Yh),Qh.push(e),Zh.push(null!=(r=t.binop)?r:-1),eb.push(null!=(a=t.beforeExpr)&&a),tb.push(null!=(n=t.startsExpr)&&n),rb.push(null!=(s=t.prefix)&&s),$h.push(new zh("name",t)),Yh}var sb={bracketL:ab("[",{beforeExpr:qh,startsExpr:Gh}),bracketHashL:ab("#[",{beforeExpr:qh,startsExpr:Gh}),bracketBarL:ab("[|",{beforeExpr:qh,startsExpr:Gh}),bracketR:ab("]"),bracketBarR:ab("|]"),braceL:ab("{",{beforeExpr:qh,startsExpr:Gh}),braceBarL:ab("{|",{beforeExpr:qh,startsExpr:Gh}),braceHashL:ab("#{",{beforeExpr:qh,startsExpr:Gh}),braceR:ab("}"),braceBarR:ab("|}"),parenL:ab("(",{beforeExpr:qh,startsExpr:Gh}),parenR:ab(")"),comma:ab(",",{beforeExpr:qh}),semi:ab(";",{beforeExpr:qh}),colon:ab(":",{beforeExpr:qh}),doubleColon:ab("::",{beforeExpr:qh}),dot:ab("."),question:ab("?",{beforeExpr:qh}),questionDot:ab("?."),arrow:ab("=>",{beforeExpr:qh}),template:ab("template"),ellipsis:ab("...",{beforeExpr:qh}),backQuote:ab("`",{startsExpr:Gh}),dollarBraceL:ab("${",{beforeExpr:qh,startsExpr:Gh}),templateTail:ab("...`",{startsExpr:Gh}),templateNonTail:ab("...${",{beforeExpr:qh,startsExpr:Gh}),at:ab("@"),hash:ab("#",{startsExpr:Gh}),interpreterDirective:ab("#!..."),eq:ab("=",{beforeExpr:qh,isAssign:Vh}),assign:ab("_=",{beforeExpr:qh,isAssign:Vh}),slashAssign:ab("_=",{beforeExpr:qh,isAssign:Vh}),xorAssign:ab("_=",{beforeExpr:qh,isAssign:Vh}),moduloAssign:ab("_=",{beforeExpr:qh,isAssign:Vh}),incDec:ab("++/--",{prefix:Hh,postfix:!0,startsExpr:Gh}),bang:ab("!",{beforeExpr:qh,prefix:Hh,startsExpr:Gh}),tilde:ab("~",{beforeExpr:qh,prefix:Hh,startsExpr:Gh}),doubleCaret:ab("^^",{startsExpr:Gh}),doubleAt:ab("@@",{startsExpr:Gh}),pipeline:Jh("|>",0),nullishCoalescing:Jh("??",1),logicalOR:Jh("||",1),logicalAND:Jh("&&",2),bitwiseOR:Jh("|",3),bitwiseXOR:Jh("^",4),bitwiseAND:Jh("&",5),equality:Jh("==/!=/===/!==",6),lt:Jh("</>/<=/>=",7),gt:Jh("</>/<=/>=",7),relational:Jh("</>/<=/>=",7),bitShift:Jh("<</>>/>>>",8),bitShiftL:Jh("<</>>/>>>",8),bitShiftR:Jh("<</>>/>>>",8),plusMin:ab("+/-",{beforeExpr:qh,binop:9,prefix:Hh,startsExpr:Gh}),modulo:ab("%",{binop:10,startsExpr:Gh}),star:ab("*",{binop:10}),slash:Jh("/",10),exponent:ab("**",{beforeExpr:qh,binop:11,rightAssociative:!0}),_in:Xh("in",{beforeExpr:qh,binop:7}),_instanceof:Xh("instanceof",{beforeExpr:qh,binop:7}),_break:Xh("break"),_case:Xh("case",{beforeExpr:qh}),_catch:Xh("catch"),_continue:Xh("continue"),_debugger:Xh("debugger"),_default:Xh("default",{beforeExpr:qh}),_else:Xh("else",{beforeExpr:qh}),_finally:Xh("finally"),_function:Xh("function",{startsExpr:Gh}),_if:Xh("if"),_return:Xh("return",{beforeExpr:qh}),_switch:Xh("switch"),_throw:Xh("throw",{beforeExpr:qh,prefix:Hh,startsExpr:Gh}),_try:Xh("try"),_var:Xh("var"),_const:Xh("const"),_with:Xh("with"),_new:Xh("new",{beforeExpr:qh,startsExpr:Gh}),_this:Xh("this",{startsExpr:Gh}),_super:Xh("super",{startsExpr:Gh}),_class:Xh("class",{startsExpr:Gh}),_extends:Xh("extends",{beforeExpr:qh}),_export:Xh("export"),_import:Xh("import",{startsExpr:Gh}),_null:Xh("null",{startsExpr:Gh}),_true:Xh("true",{startsExpr:Gh}),_false:Xh("false",{startsExpr:Gh}),_typeof:Xh("typeof",{beforeExpr:qh,prefix:Hh,startsExpr:Gh}),_void:Xh("void",{beforeExpr:qh,prefix:Hh,startsExpr:Gh}),_delete:Xh("delete",{beforeExpr:qh,prefix:Hh,startsExpr:Gh}),_do:Xh("do",{isLoop:Wh,beforeExpr:qh}),_for:Xh("for",{isLoop:Wh}),_while:Xh("while",{isLoop:Wh}),_as:nb("as",{startsExpr:Gh}),_assert:nb("assert",{startsExpr:Gh}),_async:nb("async",{startsExpr:Gh}),_await:nb("await",{startsExpr:Gh}),_defer:nb("defer",{startsExpr:Gh}),_from:nb("from",{startsExpr:Gh}),_get:nb("get",{startsExpr:Gh}),_let:nb("let",{startsExpr:Gh}),_meta:nb("meta",{startsExpr:Gh}),_of:nb("of",{startsExpr:Gh}),_sent:nb("sent",{startsExpr:Gh}),_set:nb("set",{startsExpr:Gh}),_source:nb("source",{startsExpr:Gh}),_static:nb("static",{startsExpr:Gh}),_using:nb("using",{startsExpr:Gh}),_yield:nb("yield",{startsExpr:Gh}),_asserts:nb("asserts",{startsExpr:Gh}),_checks:nb("checks",{startsExpr:Gh}),_exports:nb("exports",{startsExpr:Gh}),_global:nb("global",{startsExpr:Gh}),_implements:nb("implements",{startsExpr:Gh}),_intrinsic:nb("intrinsic",{startsExpr:Gh}),_infer:nb("infer",{startsExpr:Gh}),_is:nb("is",{startsExpr:Gh}),_mixins:nb("mixins",{startsExpr:Gh}),_proto:nb("proto",{startsExpr:Gh}),_require:nb("require",{startsExpr:Gh}),_satisfies:nb("satisfies",{startsExpr:Gh}),_keyof:nb("keyof",{startsExpr:Gh}),_readonly:nb("readonly",{startsExpr:Gh}),_unique:nb("unique",{startsExpr:Gh}),_abstract:nb("abstract",{startsExpr:Gh}),_declare:nb("declare",{startsExpr:Gh}),_enum:nb("enum",{startsExpr:Gh}),_module:nb("module",{startsExpr:Gh}),_namespace:nb("namespace",{startsExpr:Gh}),_interface:nb("interface",{startsExpr:Gh}),_type:nb("type",{startsExpr:Gh}),_opaque:nb("opaque",{startsExpr:Gh}),name:ab("name",{startsExpr:Gh}),placeholder:ab("%%",{startsExpr:Gh}),string:ab("string",{startsExpr:Gh}),num:ab("num",{startsExpr:Gh}),bigint:ab("bigint",{startsExpr:Gh}),decimal:ab("decimal",{startsExpr:Gh}),regexp:ab("regexp",{startsExpr:Gh}),privateName:ab("#name",{startsExpr:Gh}),eof:ab("eof"),jsxName:ab("jsxName"),jsxText:ab("jsxText",{beforeExpr:qh}),jsxTagStart:ab("jsxTagStart",{startsExpr:Gh}),jsxTagEnd:ab("jsxTagEnd")};function ob(e){return e>=93&&e<=133}function ib(e){return e>=58&&e<=133}function db(e){return e>=58&&e<=137}function cb(e){return tb[e]}function lb(e){return e>=129&&e<=131}function ub(e){return e>=58&&e<=92}function pb(e){return 34===e}function fb(e){return Qh[e]}function gb(e){return Zh[e]}function mb(e){return e>=24&&e<=25}function yb(e){return $h[e]}$h[8].updateContext=function(e){e.pop()},$h[5].updateContext=$h[7].updateContext=$h[23].updateContext=function(e){e.push(Uh.brace)},$h[22].updateContext=function(e){e[e.length-1]===Uh.template?e.pop():e.push(Uh.template)},$h[143].updateContext=function(e){e.push(Uh.j_expr,Uh.j_oTag)};var hb=new Set(["break","case","catch","continue","debugger","default","do","else","finally","for","function","if","return","switch","throw","try","var","const","while","with","new","this","super","class","extends","export","import","null","true","false","in","instanceof","typeof","void","delete","implements","interface","let","package","private","protected","public","static","yield","eval","arguments","enum","await"]);var bb,vb=0,xb=1,Rb=2,jb=4,wb=8,Eb=16,Sb=32,Tb=64,Pb=128,Ab=256,kb=512,Cb=1024,_b=514,Ib=576,Db=1667,Ob=1,Nb=2,Bb=4,Mb=8,Fb=16,Lb=128,Ub=256,qb=512,Gb=1024,Wb=2048,Vb=4096,Hb=8192,zb=8331,Kb=8201,Xb=9,Jb=5,Yb=17,$b=130,Qb=2,Zb=8459,ev=1024,tv=64,rv=65,av=8971,nv=1024,sv=4098,ov=4096,iv=2048,dv=0,cv=4,lv=3,uv=6,pv=5,fv=2,gv=1,mv=1,yv=2,hv=4,bv=o(function(e){this.flags=0,this.names=new Map,this.firstLexicalName="",this.flags=e}),vv=function(){function e(e,t){this.parser=void 0,this.scopeStack=[],this.inModule=void 0,this.undefinedExports=new Map,this.parser=e,this.inModule=t}var t=e.prototype;return t.createScope=function(e){return new bv(e)},t.enter=function(e){this.scopeStack.push(this.createScope(e))},t.exit=function(){return this.scopeStack.pop().flags},t.treatFunctionsAsVarInScope=function(e){return!!(e.flags&(Rb|Pb)||!this.parser.inModule&&e.flags&xb)},t.declareName=function(e,t,r){var a=this.currentScope();if(t&Mb||t&Fb){this.checkRedeclarationInScope(a,e,t,r);var n=a.names.get(e)||0;t&Fb?n|=hv:(a.firstLexicalName||(a.firstLexicalName=e),n|=yv),a.names.set(e,n),t&Mb&&this.maybeExportDefined(a,e)}else if(t&Bb)for(var s=this.scopeStack.length-1;s>=0&&(a=this.scopeStack[s],this.checkRedeclarationInScope(a,e,t,r),a.names.set(e,(a.names.get(e)||0)|mv),this.maybeExportDefined(a,e),!(a.flags&Db));--s);this.parser.inModule&&a.flags&xb&&this.undefinedExports.delete(e)},t.maybeExportDefined=function(e,t){this.parser.inModule&&e.flags&xb&&this.undefinedExports.delete(t)},t.checkRedeclarationInScope=function(e,t,r,a){this.isRedeclaredInScope(e,t,r)&&this.parser.raise(Rh.VarRedeclaration,a,{identifierName:t})},t.isRedeclaredInScope=function(e,t,r){if(!(r&Ob))return!1;if(r&Mb)return e.names.has(t);var a=e.names.get(t)||0;return r&Fb?(a&yv)>0||!this.treatFunctionsAsVarInScope(e)&&(a&mv)>0:(a&yv)>0&&!(e.flags&wb&&e.firstLexicalName===t)||!this.treatFunctionsAsVarInScope(e)&&(a&hv)>0},t.checkLocalExport=function(e){var t=e.name;this.scopeStack[0].names.has(t)||this.undefinedExports.set(t,e.loc.start)},t.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},t.currentVarScopeFlags=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e].flags;if(t&Db)return t}},t.currentThisScopeFlags=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e].flags;if(t&(Db|Tb)&&!(t&jb))return t}},o(e,[{key:"inTopLevel",get:function(){return(this.currentScope().flags&xb)>0}},{key:"inFunction",get:function(){return(this.currentVarScopeFlags()&Rb)>0}},{key:"allowSuper",get:function(){return(this.currentThisScopeFlags()&Eb)>0}},{key:"allowDirectSuper",get:function(){return(this.currentThisScopeFlags()&Sb)>0}},{key:"allowNewTarget",get:function(){return(this.currentThisScopeFlags()&kb)>0}},{key:"inClass",get:function(){return(this.currentThisScopeFlags()&Tb)>0}},{key:"inClassAndNotInNonArrowFunction",get:function(){var e=this.currentThisScopeFlags();return(e&Tb)>0&&0===(e&Rb)}},{key:"inStaticBlock",get:function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e].flags;if(t&Pb)return!0;if(t&(Db|Tb))return!1}}},{key:"inNonArrowFunction",get:function(){return(this.currentThisScopeFlags()&Rb)>0}},{key:"inBareCaseStatement",get:function(){return(this.currentScope().flags&Ab)>0}},{key:"treatFunctionsAsVar",get:function(){return this.treatFunctionsAsVarInScope(this.currentScope())}}])}(),xv=function(e){function t(){for(var t,r=arguments.length,a=new Array(r),n=0;n<r;n++)a[n]=arguments[n];return(t=e.call.apply(e,[this].concat(a))||this).declareFunctions=new Set,t}return c(t,e),o(t)}(bv),Rv=function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.createScope=function(e){return new xv(e)},r.declareName=function(t,r,a){var n=this.currentScope();if(r&Wb)return this.checkRedeclarationInScope(n,t,r,a),this.maybeExportDefined(n,t),void n.declareFunctions.add(t);e.prototype.declareName.call(this,t,r,a)},r.isRedeclaredInScope=function(t,r,a){if(e.prototype.isRedeclaredInScope.call(this,t,r,a))return!0;if(a&Wb&&!t.declareFunctions.has(r)){var n=t.names.get(r);return(n&hv)>0||(n&yv)>0}return!1},r.checkLocalExport=function(t){this.scopeStack[0].declareFunctions.has(t.name)||e.prototype.checkLocalExport.call(this,t)},o(t)}(vv),jv=new Set(["_","any","bool","boolean","empty","extends","false","interface","mixed","null","number","static","string","true","typeof","void"]),wv=xh(bb||(bb=h(["flow"])))({AmbiguousConditionalArrow:"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.",AmbiguousDeclareModuleKind:"Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.",AssignReservedType:function(e){return"Cannot overwrite reserved type "+e.reservedType+"."},DeclareClassElement:"The `declare` modifier can only appear on class fields.",DeclareClassFieldInitializer:"Initializers are not allowed in fields with the `declare` modifier.",DuplicateDeclareModuleExports:"Duplicate `declare module.exports` statement.",EnumBooleanMemberNotInitialized:function(e){var t=e.memberName;return"Boolean enum members need to be initialized. Use either `"+t+" = true,` or `"+t+" = false,` in enum `"+e.enumName+"`."},EnumDuplicateMemberName:function(e){return"Enum member names need to be unique, but the name `"+e.memberName+"` has already been used before in enum `"+e.enumName+"`."},EnumInconsistentMemberValues:function(e){return"Enum `"+e.enumName+"` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers."},EnumInvalidExplicitType:function(e){return"Enum type `"+e.invalidEnumType+"` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `"+e.enumName+"`."},EnumInvalidExplicitTypeUnknownSupplied:function(e){return"Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `"+e.enumName+"`."},EnumInvalidMemberInitializerPrimaryType:function(e){var t=e.enumName,r=e.memberName,a=e.explicitType;return"Enum `"+t+"` has type `"+a+"`, so the initializer of `"+r+"` needs to be a "+a+" literal."},EnumInvalidMemberInitializerSymbolType:function(e){var t=e.enumName;return"Symbol enum members cannot be initialized. Use `"+e.memberName+",` in enum `"+t+"`."},EnumInvalidMemberInitializerUnknownType:function(e){var t=e.enumName;return"The enum member initializer for `"+e.memberName+"` needs to be a literal (either a boolean, number, or string) in enum `"+t+"`."},EnumInvalidMemberName:function(e){var t=e.enumName;return"Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `"+e.memberName+"`, consider using `"+e.suggestion+"`, in enum `"+t+"`."},EnumNumberMemberNotInitialized:function(e){var t=e.enumName;return"Number enum members need to be initialized, e.g. `"+e.memberName+" = 1` in enum `"+t+"`."},EnumStringMemberInconsistentlyInitialized:function(e){return"String enum members need to consistently either all use initializers, or use no initializers, in enum `"+e.enumName+"`."},GetterMayNotHaveThisParam:"A getter cannot have a `this` parameter.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` or `typeof` keyword.",ImportTypeShorthandOnlyInPureImport:"The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.",InexactInsideExact:"Explicit inexact syntax cannot appear inside an explicit exact object type.",InexactInsideNonObject:"Explicit inexact syntax cannot appear in class or interface definitions.",InexactVariance:"Explicit inexact syntax cannot have variance.",InvalidNonTypeImportInDeclareModule:"Imports within a `declare module` body must always be `import type` or `import typeof`.",MissingTypeParamDefault:"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.",NestedDeclareModule:"`declare module` cannot be used inside another `declare module`.",NestedFlowComment:"Cannot have a flow comment inside another flow comment.",PatternIsOptional:Object.assign({message:"A binding pattern parameter cannot be optional in an implementation signature."},{reasonCode:"OptionalBindingPattern"}),SetterMayNotHaveThisParam:"A setter cannot have a `this` parameter.",SpreadVariance:"Spread properties cannot have variance.",ThisParamAnnotationRequired:"A type annotation is required for the `this` parameter.",ThisParamBannedInConstructor:"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.",ThisParamMayNotBeOptional:"The `this` parameter cannot be optional.",ThisParamMustBeFirst:"The `this` parameter must be the first function parameter.",ThisParamNoDefault:"The `this` parameter may not have a default value.",TypeBeforeInitializer:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeCastInPattern:"The type cast expression is expected to be wrapped with parenthesis.",UnexpectedExplicitInexactInObject:"Explicit inexact syntax must appear at the end of an inexact object.",UnexpectedReservedType:function(e){return"Unexpected reserved type "+e.reservedType+"."},UnexpectedReservedUnderscore:"`_` is only allowed as a type argument to call or new.",UnexpectedSpaceBetweenModuloChecks:"Spaces between `%` and `checks` are not allowed here.",UnexpectedSpreadType:"Spread operator cannot appear in class or interface definitions.",UnexpectedSubtractionOperand:'Unexpected token, expected "number" or "bigint".',UnexpectedTokenAfterTypeParameter:"Expected an arrow function after this type parameter declaration.",UnexpectedTypeParameterBeforeAsyncArrowFunction:"Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.",UnsupportedDeclareExportKind:function(e){return"`declare export "+e.unsupportedExportKind+"` is not supported. Use `"+e.suggestion+"` instead."},UnsupportedStatementInDeclareModule:"Only declares and type imports are allowed inside declare module.",UnterminatedFlowComment:"Unterminated flow-comment."});function Ev(e){return"type"===e.importKind||"typeof"===e.importKind}var Sv={const:"declare export var",let:"declare export var",type:"export type",interface:"export interface"};var Tv=/\*?\s*@((?:no)?flow)\b/,Pv={__proto__:null,quot:'"',amp:"&",apos:"'",lt:"<",gt:">",nbsp:"\xa0",iexcl:"\xa1",cent:"\xa2",pound:"\xa3",curren:"\xa4",yen:"\xa5",brvbar:"\xa6",sect:"\xa7",uml:"\xa8",copy:"\xa9",ordf:"\xaa",laquo:"\xab",not:"\xac",shy:"\xad",reg:"\xae",macr:"\xaf",deg:"\xb0",plusmn:"\xb1",sup2:"\xb2",sup3:"\xb3",acute:"\xb4",micro:"\xb5",para:"\xb6",middot:"\xb7",cedil:"\xb8",sup1:"\xb9",ordm:"\xba",raquo:"\xbb",frac14:"\xbc",frac12:"\xbd",frac34:"\xbe",iquest:"\xbf",Agrave:"\xc0",Aacute:"\xc1",Acirc:"\xc2",Atilde:"\xc3",Auml:"\xc4",Aring:"\xc5",AElig:"\xc6",Ccedil:"\xc7",Egrave:"\xc8",Eacute:"\xc9",Ecirc:"\xca",Euml:"\xcb",Igrave:"\xcc",Iacute:"\xcd",Icirc:"\xce",Iuml:"\xcf",ETH:"\xd0",Ntilde:"\xd1",Ograve:"\xd2",Oacute:"\xd3",Ocirc:"\xd4",Otilde:"\xd5",Ouml:"\xd6",times:"\xd7",Oslash:"\xd8",Ugrave:"\xd9",Uacute:"\xda",Ucirc:"\xdb",Uuml:"\xdc",Yacute:"\xdd",THORN:"\xde",szlig:"\xdf",agrave:"\xe0",aacute:"\xe1",acirc:"\xe2",atilde:"\xe3",auml:"\xe4",aring:"\xe5",aelig:"\xe6",ccedil:"\xe7",egrave:"\xe8",eacute:"\xe9",ecirc:"\xea",euml:"\xeb",igrave:"\xec",iacute:"\xed",icirc:"\xee",iuml:"\xef",eth:"\xf0",ntilde:"\xf1",ograve:"\xf2",oacute:"\xf3",ocirc:"\xf4",otilde:"\xf5",ouml:"\xf6",divide:"\xf7",oslash:"\xf8",ugrave:"\xf9",uacute:"\xfa",ucirc:"\xfb",uuml:"\xfc",yacute:"\xfd",thorn:"\xfe",yuml:"\xff",OElig:"\u0152",oelig:"\u0153",Scaron:"\u0160",scaron:"\u0161",Yuml:"\u0178",fnof:"\u0192",circ:"\u02c6",tilde:"\u02dc",Alpha:"\u0391",Beta:"\u0392",Gamma:"\u0393",Delta:"\u0394",Epsilon:"\u0395",Zeta:"\u0396",Eta:"\u0397",Theta:"\u0398",Iota:"\u0399",Kappa:"\u039a",Lambda:"\u039b",Mu:"\u039c",Nu:"\u039d",Xi:"\u039e",Omicron:"\u039f",Pi:"\u03a0",Rho:"\u03a1",Sigma:"\u03a3",Tau:"\u03a4",Upsilon:"\u03a5",Phi:"\u03a6",Chi:"\u03a7",Psi:"\u03a8",Omega:"\u03a9",alpha:"\u03b1",beta:"\u03b2",gamma:"\u03b3",delta:"\u03b4",epsilon:"\u03b5",zeta:"\u03b6",eta:"\u03b7",theta:"\u03b8",iota:"\u03b9",kappa:"\u03ba",lambda:"\u03bb",mu:"\u03bc",nu:"\u03bd",xi:"\u03be",omicron:"\u03bf",pi:"\u03c0",rho:"\u03c1",sigmaf:"\u03c2",sigma:"\u03c3",tau:"\u03c4",upsilon:"\u03c5",phi:"\u03c6",chi:"\u03c7",psi:"\u03c8",omega:"\u03c9",thetasym:"\u03d1",upsih:"\u03d2",piv:"\u03d6",ensp:"\u2002",emsp:"\u2003",thinsp:"\u2009",zwnj:"\u200c",zwj:"\u200d",lrm:"\u200e",rlm:"\u200f",ndash:"\u2013",mdash:"\u2014",lsquo:"\u2018",rsquo:"\u2019",sbquo:"\u201a",ldquo:"\u201c",rdquo:"\u201d",bdquo:"\u201e",dagger:"\u2020",Dagger:"\u2021",bull:"\u2022",hellip:"\u2026",permil:"\u2030",prime:"\u2032",Prime:"\u2033",lsaquo:"\u2039",rsaquo:"\u203a",oline:"\u203e",frasl:"\u2044",euro:"\u20ac",image:"\u2111",weierp:"\u2118",real:"\u211c",trade:"\u2122",alefsym:"\u2135",larr:"\u2190",uarr:"\u2191",rarr:"\u2192",darr:"\u2193",harr:"\u2194",crarr:"\u21b5",lArr:"\u21d0",uArr:"\u21d1",rArr:"\u21d2",dArr:"\u21d3",hArr:"\u21d4",forall:"\u2200",part:"\u2202",exist:"\u2203",empty:"\u2205",nabla:"\u2207",isin:"\u2208",notin:"\u2209",ni:"\u220b",prod:"\u220f",sum:"\u2211",minus:"\u2212",lowast:"\u2217",radic:"\u221a",prop:"\u221d",infin:"\u221e",ang:"\u2220",and:"\u2227",or:"\u2228",cap:"\u2229",cup:"\u222a",int:"\u222b",there4:"\u2234",sim:"\u223c",cong:"\u2245",asymp:"\u2248",ne:"\u2260",equiv:"\u2261",le:"\u2264",ge:"\u2265",sub:"\u2282",sup:"\u2283",nsub:"\u2284",sube:"\u2286",supe:"\u2287",oplus:"\u2295",otimes:"\u2297",perp:"\u22a5",sdot:"\u22c5",lceil:"\u2308",rceil:"\u2309",lfloor:"\u230a",rfloor:"\u230b",lang:"\u2329",rang:"\u232a",loz:"\u25ca",spades:"\u2660",clubs:"\u2663",hearts:"\u2665",diams:"\u2666"},Av=new RegExp(/\r\n|[\r\n\u2028\u2029]/.source,"g");function kv(e){switch(e){case 10:case 13:case 8232:case 8233:return!0;default:return!1}}function Cv(e,t,r){for(var a=t;a<r;a++)if(kv(e.charCodeAt(a)))return!0;return!1}var _v,Iv=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,Dv=/(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/g;function Ov(e){switch(e){case 9:case 11:case 12:case 32:case 160:case 5760:case 8192:case 8193:case 8194:case 8195:case 8196:case 8197:case 8198:case 8199:case 8200:case 8201:case 8202:case 8239:case 8287:case 12288:case 65279:return!0;default:return!1}}var Nv=xh(_v||(_v=h(["jsx"])))({AttributeIsEmpty:"JSX attributes must only be assigned a non-empty expression.",MissingClosingTagElement:function(e){return"Expected corresponding JSX closing tag for <"+e.openingTagName+">."},MissingClosingTagFragment:"Expected corresponding JSX closing tag for <>.",UnexpectedSequenceExpression:"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?",UnexpectedToken:function(e){var t=e.unexpected;return"Unexpected token `"+t+"`. Did you mean `"+e.HTMLEntity+"` or `{'"+t+"'}`?"},UnsupportedJsxValue:"JSX value should be either an expression or a quoted JSX text.",UnterminatedJsxContent:"Unterminated JSX contents.",UnwrappedAdjacentJSXElements:"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?"});function Bv(e){return!!e&&("JSXOpeningFragment"===e.type||"JSXClosingFragment"===e.type)}function Mv(e){if("JSXIdentifier"===e.type)return e.name;if("JSXNamespacedName"===e.type)return e.namespace.name+":"+e.name.name;if("JSXMemberExpression"===e.type)return Mv(e.object)+"."+Mv(e.property);throw new Error("Node had unexpected type: "+e.type)}var Fv=function(e){function t(){for(var t,r=arguments.length,a=new Array(r),n=0;n<r;n++)a[n]=arguments[n];return(t=e.call.apply(e,[this].concat(a))||this).tsNames=new Map,t}return c(t,e),o(t)}(bv),Lv=function(e){function t(){for(var t,r=arguments.length,a=new Array(r),n=0;n<r;n++)a[n]=arguments[n];return(t=e.call.apply(e,[this].concat(a))||this).importsStack=[],t}c(t,e);var r=t.prototype;return r.createScope=function(e){return this.importsStack.push(new Set),new Fv(e)},r.enter=function(t){t===Cb&&this.importsStack.push(new Set),e.prototype.enter.call(this,t)},r.exit=function(){var t=e.prototype.exit.call(this);return t===Cb&&this.importsStack.pop(),t},r.hasImport=function(e,t){var r=this.importsStack.length;if(this.importsStack[r-1].has(e))return!0;if(!t&&r>1)for(var a=0;a<r-1;a++)if(this.importsStack[a].has(e))return!0;return!1},r.declareName=function(t,r,a){if(r&Vb)return this.hasImport(t,!0)&&this.parser.raise(Rh.VarRedeclaration,a,{identifierName:t}),void this.importsStack[this.importsStack.length-1].add(t);var n=this.currentScope(),s=n.tsNames.get(t)||0;if(r&Gb)return this.maybeExportDefined(n,t),void n.tsNames.set(t,16|s);e.prototype.declareName.call(this,t,r,a),r&Nb&&(r&Ob||(this.checkRedeclarationInScope(n,t,r,a),this.maybeExportDefined(n,t)),s|=1),r&Ub&&(s|=2),r&qb&&(s|=4),r&Lb&&(s|=8),s&&n.tsNames.set(t,s)},r.isRedeclaredInScope=function(t,r,a){var n=t.tsNames.get(r);return(2&n)>0?!(a&Ub)||!!(a&qb)!==(4&n)>0:a&Lb&&(8&n)>0?!!(t.names.get(r)&yv)&&!!(a&Ob):!!(a&Nb&&(1&n)>0)||e.prototype.isRedeclaredInScope.call(this,t,r,a)},r.checkLocalExport=function(t){var r=t.name;if(!this.hasImport(r)){for(var a=this.scopeStack.length-1;a>=0;a--){var n=this.scopeStack[a].tsNames.get(r);if((1&n)>0||(16&n)>0)return}e.prototype.checkLocalExport.call(this,t)}},o(t)}(vv),Uv=0,qv=1,Gv=2,Wv=4,Vv=8,Hv=function(){function e(){this.stacks=[]}var t=e.prototype;return t.enter=function(e){this.stacks.push(e)},t.exit=function(){this.stacks.pop()},t.currentFlags=function(){return this.stacks[this.stacks.length-1]},o(e,[{key:"hasAwait",get:function(){return(this.currentFlags()&Gv)>0}},{key:"hasYield",get:function(){return(this.currentFlags()&qv)>0}},{key:"hasReturn",get:function(){return(this.currentFlags()&Wv)>0}},{key:"hasIn",get:function(){return(this.currentFlags()&Vv)>0}}])}();function zv(e,t){return(e?Gv:0)|(t?qv:0)}var Kv=function(){function e(){this.sawUnambiguousESM=!1,this.ambiguousScriptDifferentAst=!1}var t=e.prototype;return t.sourceToOffsetPos=function(e){return e+this.startIndex},t.offsetToSourcePos=function(e){return e-this.startIndex},t.hasPlugin=function(e){if("string"==typeof e)return this.plugins.has(e);var t=e[0],r=e[1];if(!this.hasPlugin(t))return!1;for(var a=this.plugins.get(t),n=0,s=Object.keys(r);n<s.length;n++){var o=s[n];if((null==a?void 0:a[o])!==r[o])return!1}return!0},t.getPluginOption=function(e,t){var r;return null==(r=this.plugins.get(e))?void 0:r[t]},o(e)}();function Xv(e,t){var r;void 0===e.trailingComments?e.trailingComments=t:(r=e.trailingComments).unshift.apply(r,t)}function Jv(e,t){var r;void 0===e.innerComments?e.innerComments=t:(r=e.innerComments).unshift.apply(r,t)}function Yv(e,t,r){for(var a=null,n=t.length;null===a&&n>0;)a=t[--n];null===a||a.start>r.start?Jv(e,r.comments):Xv(a,r.comments)}var $v=function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.addComment=function(e){this.filename&&(e.loc.filename=this.filename);var t=this.state.commentsLen;this.comments.length!==t&&(this.comments.length=t),this.comments.push(e),this.state.commentsLen++},r.processComment=function(e){var t=this.state.commentStack,r=t.length;if(0!==r){var a=r-1,n=t[a];n.start===e.end&&(n.leadingNode=e,a--);for(var s=e.start;a>=0;a--){var o=t[a],i=o.end;if(!(i>s)){i===s&&(o.trailingNode=e);break}o.containingNode=e,this.finalizeComment(o),t.splice(a,1)}}},r.finalizeComment=function(e){var t,r=e.comments;if(null!==e.leadingNode||null!==e.trailingNode)null!==e.leadingNode&&Xv(e.leadingNode,r),null!==e.trailingNode&&function(e,t){var r;void 0===e.leadingComments?e.leadingComments=t:(r=e.leadingComments).unshift.apply(r,t)}(e.trailingNode,r);else{var a=e.containingNode,n=e.start;if(44===this.input.charCodeAt(this.offsetToSourcePos(n)-1))switch(a.type){case"ObjectExpression":case"ObjectPattern":Yv(a,a.properties,e);break;case"CallExpression":case"OptionalCallExpression":Yv(a,a.arguments,e);break;case"ImportExpression":Yv(a,[a.source,null!=(t=a.options)?t:null],e);break;case"FunctionDeclaration":case"FunctionExpression":case"ArrowFunctionExpression":case"ObjectMethod":case"ClassMethod":case"ClassPrivateMethod":Yv(a,a.params,e);break;case"ArrayExpression":case"ArrayPattern":Yv(a,a.elements,e);break;case"ExportNamedDeclaration":case"ImportDeclaration":Yv(a,a.specifiers,e);break;case"TSEnumDeclaration":case"TSEnumBody":Yv(a,a.members,e);break;default:if("RecordExpression"===a.type){Yv(a,a.properties,e);break}if("TupleExpression"===a.type){Yv(a,a.elements,e);break}Jv(a,r)}else Jv(a,r)}},r.finalizeRemainingComments=function(){for(var e=this.state.commentStack,t=e.length-1;t>=0;t--)this.finalizeComment(e[t]);this.state.commentStack=[]},r.resetPreviousNodeTrailingComments=function(e){var t=this.state.commentStack,r=t.length;if(0!==r){var a=t[r-1];a.leadingNode===e&&(a.leadingNode=null)}},r.takeSurroundingComments=function(e,t,r){var a=this.state.commentStack,n=a.length;if(0!==n)for(var s=n-1;s>=0;s--){var o=a[s],i=o.end;if(o.start===r)o.leadingNode=e;else if(i===t)o.trailingNode=e;else if(i<t)break}},o(t)}(Kv),Qv=1,Zv=2,ex=function(){function e(){this.flags=1024,this.startIndex=void 0,this.curLine=void 0,this.lineStart=void 0,this.startLoc=void 0,this.endLoc=void 0,this.errors=[],this.potentialArrowAt=-1,this.noArrowAt=[],this.noArrowParamsConversionAt=[],this.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null},this.labels=[],this.commentsLen=0,this.commentStack=[],this.pos=0,this.type=140,this.value=null,this.start=0,this.end=0,this.lastTokEndLoc=null,this.lastTokStartLoc=null,this.context=[Uh.brace],this.firstInvalidTemplateEscapePos=null,this.strictErrors=new Map,this.tokensLength=0}var t=e.prototype;return t.init=function(e){var t=e.strictMode,r=e.sourceType,a=e.startIndex,n=e.startLine,s=e.startColumn;this.strict=!1!==t&&(!0===t||"module"===r),this.startIndex=a,this.curLine=n,this.lineStart=-s,this.startLoc=this.endLoc=new oh(n,s,a)},t.curPosition=function(){return new oh(this.curLine,this.pos-this.lineStart,this.pos+this.startIndex)},t.clone=function(){var t=new e;return t.flags=this.flags,t.startIndex=this.startIndex,t.curLine=this.curLine,t.lineStart=this.lineStart,t.startLoc=this.startLoc,t.endLoc=this.endLoc,t.errors=this.errors.slice(),t.potentialArrowAt=this.potentialArrowAt,t.noArrowAt=this.noArrowAt.slice(),t.noArrowParamsConversionAt=this.noArrowParamsConversionAt.slice(),t.topicContext=this.topicContext,t.labels=this.labels.slice(),t.commentsLen=this.commentsLen,t.commentStack=this.commentStack.slice(),t.pos=this.pos,t.type=this.type,t.value=this.value,t.start=this.start,t.end=this.end,t.lastTokEndLoc=this.lastTokEndLoc,t.lastTokStartLoc=this.lastTokStartLoc,t.context=this.context.slice(),t.firstInvalidTemplateEscapePos=this.firstInvalidTemplateEscapePos,t.strictErrors=this.strictErrors,t.tokensLength=this.tokensLength,t},o(e,[{key:"strict",get:function(){return(1&this.flags)>0},set:function(e){e?this.flags|=1:this.flags&=-2}},{key:"maybeInArrowParameters",get:function(){return(2&this.flags)>0},set:function(e){e?this.flags|=2:this.flags&=-3}},{key:"inType",get:function(){return(4&this.flags)>0},set:function(e){e?this.flags|=4:this.flags&=-5}},{key:"noAnonFunctionType",get:function(){return(8&this.flags)>0},set:function(e){e?this.flags|=8:this.flags&=-9}},{key:"hasFlowComment",get:function(){return(16&this.flags)>0},set:function(e){e?this.flags|=16:this.flags&=-17}},{key:"isAmbientContext",get:function(){return(32&this.flags)>0},set:function(e){e?this.flags|=32:this.flags&=-33}},{key:"inAbstractClass",get:function(){return(64&this.flags)>0},set:function(e){e?this.flags|=64:this.flags&=-65}},{key:"inDisallowConditionalTypesContext",get:function(){return(128&this.flags)>0},set:function(e){e?this.flags|=128:this.flags&=-129}},{key:"soloAwait",get:function(){return(256&this.flags)>0},set:function(e){e?this.flags|=256:this.flags&=-257}},{key:"inFSharpPipelineDirectBody",get:function(){return(512&this.flags)>0},set:function(e){e?this.flags|=512:this.flags&=-513}},{key:"canStartJSXElement",get:function(){return(1024&this.flags)>0},set:function(e){e?this.flags|=1024:this.flags&=-1025}},{key:"containsEsc",get:function(){return(2048&this.flags)>0},set:function(e){e?this.flags|=2048:this.flags&=-2049}},{key:"hasTopLevelAwait",get:function(){return(4096&this.flags)>0},set:function(e){e?this.flags|=4096:this.flags&=-4097}}])}();function tx(e,t,r){return new oh(r,e-t,e)}var rx=new Set([103,109,115,105,121,117,100,118]),ax=o(function(e){var t=e.startIndex||0;this.type=e.type,this.value=e.value,this.start=t+e.start,this.end=t+e.end,this.loc=new ih(e.startLoc,e.endLoc)}),nx=function(e){function t(t,r){var a;return(a=e.call(this)||this).isLookahead=void 0,a.tokens=[],a.errorHandlers_readInt={invalidDigit:function(e,t,r,n){return!!(a.optionFlags&Dh)&&(a.raise(Rh.InvalidDigit,tx(e,t,r),{radix:n}),!0)},numericSeparatorInEscapeSequence:a.errorBuilder(Rh.NumericSeparatorInEscapeSequence),unexpectedNumericSeparator:a.errorBuilder(Rh.UnexpectedNumericSeparator)},a.errorHandlers_readCodePoint=Object.assign({},a.errorHandlers_readInt,{invalidEscapeSequence:a.errorBuilder(Rh.InvalidEscapeSequence),invalidCodePoint:a.errorBuilder(Rh.InvalidCodePoint)}),a.errorHandlers_readStringContents_string=Object.assign({},a.errorHandlers_readCodePoint,{strictNumericEscape:function(e,t,r){a.recordStrictModeErrors(Rh.StrictNumericEscape,tx(e,t,r))},unterminated:function(e,t,r){throw a.raise(Rh.UnterminatedString,tx(e-1,t,r))}}),a.errorHandlers_readStringContents_template=Object.assign({},a.errorHandlers_readCodePoint,{strictNumericEscape:a.errorBuilder(Rh.StrictNumericEscape),unterminated:function(e,t,r){throw a.raise(Rh.UnterminatedTemplate,tx(e,t,r))}}),a.state=new ex,a.state.init(t),a.input=r,a.length=r.length,a.comments=[],a.isLookahead=!1,a}c(t,e);var r=t.prototype;return r.pushToken=function(e){this.tokens.length=this.state.tokensLength,this.tokens.push(e),++this.state.tokensLength},r.next=function(){this.checkKeywordEscapes(),this.optionFlags&Ch&&this.pushToken(new ax(this.state)),this.state.lastTokEndLoc=this.state.endLoc,this.state.lastTokStartLoc=this.state.startLoc,this.nextToken()},r.eat=function(e){return!!this.match(e)&&(this.next(),!0)},r.match=function(e){return this.state.type===e},r.createLookaheadState=function(e){return{pos:e.pos,value:null,type:e.type,start:e.start,end:e.end,context:[this.curContext()],inType:e.inType,startLoc:e.startLoc,lastTokEndLoc:e.lastTokEndLoc,curLine:e.curLine,lineStart:e.lineStart,curPosition:e.curPosition}},r.lookahead=function(){var e=this.state;this.state=this.createLookaheadState(e),this.isLookahead=!0,this.nextToken(),this.isLookahead=!1;var t=this.state;return this.state=e,t},r.nextTokenStart=function(){return this.nextTokenStartSince(this.state.pos)},r.nextTokenStartSince=function(e){return Iv.lastIndex=e,Iv.test(this.input)?Iv.lastIndex:e},r.lookaheadCharCode=function(){return this.lookaheadCharCodeSince(this.state.pos)},r.lookaheadCharCodeSince=function(e){return this.input.charCodeAt(this.nextTokenStartSince(e))},r.nextTokenInLineStart=function(){return this.nextTokenInLineStartSince(this.state.pos)},r.nextTokenInLineStartSince=function(e){return Dv.lastIndex=e,Dv.test(this.input)?Dv.lastIndex:e},r.lookaheadInLineCharCode=function(){return this.input.charCodeAt(this.nextTokenInLineStart())},r.codePointAtPos=function(e){var t=this.input.charCodeAt(e);if(55296==(64512&t)&&++e<this.input.length){var r=this.input.charCodeAt(e);56320==(64512&r)&&(t=65536+((1023&t)<<10)+(1023&r))}return t},r.setStrict=function(e){var t=this;this.state.strict=e,e&&(this.state.strictErrors.forEach(function(e){var r=e[0],a=e[1];return t.raise(r,a)}),this.state.strictErrors.clear())},r.curContext=function(){return this.state.context[this.state.context.length-1]},r.nextToken=function(){this.skipSpace(),this.state.start=this.state.pos,this.isLookahead||(this.state.startLoc=this.state.curPosition()),this.state.pos>=this.length?this.finishToken(140):this.getTokenFromCode(this.codePointAtPos(this.state.pos))},r.skipBlockComment=function(e){var t;this.isLookahead||(t=this.state.curPosition());var r=this.state.pos,a=this.input.indexOf(e,r+2);if(-1===a)throw this.raise(Rh.UnterminatedComment,this.state.curPosition());for(this.state.pos=a+e.length,Av.lastIndex=r+2;Av.test(this.input)&&Av.lastIndex<=a;)++this.state.curLine,this.state.lineStart=Av.lastIndex;if(!this.isLookahead){var n={type:"CommentBlock",value:this.input.slice(r+2,a),start:this.sourceToOffsetPos(r),end:this.sourceToOffsetPos(a+e.length),loc:new ih(t,this.state.curPosition())};return this.optionFlags&Ch&&this.pushToken(n),n}},r.skipLineComment=function(e){var t,r=this.state.pos;this.isLookahead||(t=this.state.curPosition());var a=this.input.charCodeAt(this.state.pos+=e);if(this.state.pos<this.length)for(;!kv(a)&&++this.state.pos<this.length;)a=this.input.charCodeAt(this.state.pos);if(!this.isLookahead){var n=this.state.pos,s={type:"CommentLine",value:this.input.slice(r+e,n),start:this.sourceToOffsetPos(r),end:this.sourceToOffsetPos(n),loc:new ih(t,this.state.curPosition())};return this.optionFlags&Ch&&this.pushToken(s),s}},r.skipSpace=function(){var e=this.state.pos,t=this.optionFlags&Oh?[]:null;e:for(;this.state.pos<this.length;){var r=this.input.charCodeAt(this.state.pos);switch(r){case 32:case 160:case 9:++this.state.pos;break;case 13:10===this.input.charCodeAt(this.state.pos+1)&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:var a=this.skipBlockComment("*/");void 0!==a&&(this.addComment(a),null==t||t.push(a));break;case 47:var n=this.skipLineComment(2);void 0!==n&&(this.addComment(n),null==t||t.push(n));break;default:break e}break;default:if(Ov(r))++this.state.pos;else if(45===r&&!this.inModule&&this.optionFlags&Nh){var s=this.state.pos;if(45!==this.input.charCodeAt(s+1)||62!==this.input.charCodeAt(s+2)||!(0===e||this.state.lineStart>e))break e;var o=this.skipLineComment(3);void 0!==o&&(this.addComment(o),null==t||t.push(o))}else{if(60!==r||this.inModule||!(this.optionFlags&Nh))break e;var i=this.state.pos;if(33!==this.input.charCodeAt(i+1)||45!==this.input.charCodeAt(i+2)||45!==this.input.charCodeAt(i+3))break e;var d=this.skipLineComment(4);void 0!==d&&(this.addComment(d),null==t||t.push(d))}}}if((null==t?void 0:t.length)>0){var c=this.state.pos,l={start:this.sourceToOffsetPos(e),end:this.sourceToOffsetPos(c),comments:t,leadingNode:null,trailingNode:null,containingNode:null};this.state.commentStack.push(l)}},r.finishToken=function(e,t){this.state.end=this.state.pos,this.state.endLoc=this.state.curPosition();var r=this.state.type;this.state.type=e,this.state.value=t,this.isLookahead||this.updateContext(r)},r.replaceToken=function(e){this.state.type=e,this.updateContext()},r.readToken_numberSign=function(){if(0!==this.state.pos||!this.readToken_interpreter()){var e=this.state.pos+1,t=this.codePointAtPos(e);if(t>=48&&t<=57)throw this.raise(Rh.UnexpectedDigitAfterHash,this.state.curPosition());if(123===t||91===t&&this.hasPlugin("recordAndTuple")){if(this.expectPlugin("recordAndTuple"),"bar"===this.getPluginOption("recordAndTuple","syntaxType"))throw this.raise(123===t?Rh.RecordExpressionHashIncorrectStartSyntaxType:Rh.TupleExpressionHashIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,123===t?this.finishToken(7):this.finishToken(1)}else Mr(t)?(++this.state.pos,this.finishToken(139,this.readWord1(t))):92===t?(++this.state.pos,this.finishToken(139,this.readWord1())):this.finishOp(27,1)}},r.readToken_dot=function(){var e=this.input.charCodeAt(this.state.pos+1);e>=48&&e<=57?this.readNumber(!0):46===e&&46===this.input.charCodeAt(this.state.pos+2)?(this.state.pos+=3,this.finishToken(21)):(++this.state.pos,this.finishToken(16))},r.readToken_slash=function(){61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(31,2):this.finishOp(56,1)},r.readToken_interpreter=function(){if(0!==this.state.pos||this.length<2)return!1;var e=this.input.charCodeAt(this.state.pos+1);if(33!==e)return!1;var t=this.state.pos;for(this.state.pos+=1;!kv(e)&&++this.state.pos<this.length;)e=this.input.charCodeAt(this.state.pos);var r=this.input.slice(t+2,this.state.pos);return this.finishToken(28,r),!0},r.readToken_mult_modulo=function(e){var t=42===e?55:54,r=1,a=this.input.charCodeAt(this.state.pos+1);42===e&&42===a&&(r++,a=this.input.charCodeAt(this.state.pos+2),t=57),61!==a||this.state.inType||(r++,t=37===e?33:30),this.finishOp(t,r)},r.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.state.pos+1);if(t!==e){if(124===e){if(62===t)return void this.finishOp(39,2);if(this.hasPlugin("recordAndTuple")&&125===t){if("bar"!==this.getPluginOption("recordAndTuple","syntaxType"))throw this.raise(Rh.RecordExpressionBarIncorrectEndSyntaxType,this.state.curPosition());return this.state.pos+=2,void this.finishToken(9)}if(this.hasPlugin("recordAndTuple")&&93===t){if("bar"!==this.getPluginOption("recordAndTuple","syntaxType"))throw this.raise(Rh.TupleExpressionBarIncorrectEndSyntaxType,this.state.curPosition());return this.state.pos+=2,void this.finishToken(4)}}61!==t?this.finishOp(124===e?43:45,1):this.finishOp(30,2)}else 61===this.input.charCodeAt(this.state.pos+2)?this.finishOp(30,3):this.finishOp(124===e?41:42,2)},r.readToken_caret=function(){var e=this.input.charCodeAt(this.state.pos+1);if(61!==e||this.state.inType)if(94===e&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"^^"}])){this.finishOp(37,2),94===this.input.codePointAt(this.state.pos)&&this.unexpected()}else this.finishOp(44,1);else this.finishOp(32,2)},r.readToken_atSign=function(){64===this.input.charCodeAt(this.state.pos+1)&&this.hasPlugin(["pipelineOperator",{proposal:"hack",topicToken:"@@"}])?this.finishOp(38,2):this.finishOp(26,1)},r.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.state.pos+1);t!==e?61===t?this.finishOp(30,2):this.finishOp(53,1):this.finishOp(34,2)},r.readToken_lt=function(){var e=this.state.pos,t=this.input.charCodeAt(e+1);if(60===t)return 61===this.input.charCodeAt(e+2)?void this.finishOp(30,3):void this.finishOp(51,2);61!==t?this.finishOp(47,1):this.finishOp(49,2)},r.readToken_gt=function(){var e=this.state.pos,t=this.input.charCodeAt(e+1);if(62===t){var r=62===this.input.charCodeAt(e+2)?3:2;return 61===this.input.charCodeAt(e+r)?void this.finishOp(30,r+1):void this.finishOp(52,r)}61!==t?this.finishOp(48,1):this.finishOp(49,2)},r.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.state.pos+1);if(61!==t)return 61===e&&62===t?(this.state.pos+=2,void this.finishToken(19)):void this.finishOp(61===e?29:35,1);this.finishOp(46,61===this.input.charCodeAt(this.state.pos+2)?3:2)},r.readToken_question=function(){var e=this.input.charCodeAt(this.state.pos+1),t=this.input.charCodeAt(this.state.pos+2);63===e?61===t?this.finishOp(30,3):this.finishOp(40,2):46!==e||t>=48&&t<=57?(++this.state.pos,this.finishToken(17)):(this.state.pos+=2,this.finishToken(18))},r.getTokenFromCode=function(e){switch(e){case 46:return void this.readToken_dot();case 40:return++this.state.pos,void this.finishToken(10);case 41:return++this.state.pos,void this.finishToken(11);case 59:return++this.state.pos,void this.finishToken(13);case 44:return++this.state.pos,void this.finishToken(12);case 91:if(this.hasPlugin("recordAndTuple")&&124===this.input.charCodeAt(this.state.pos+1)){if("bar"!==this.getPluginOption("recordAndTuple","syntaxType"))throw this.raise(Rh.TupleExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(2)}else++this.state.pos,this.finishToken(0);return;case 93:return++this.state.pos,void this.finishToken(3);case 123:if(this.hasPlugin("recordAndTuple")&&124===this.input.charCodeAt(this.state.pos+1)){if("bar"!==this.getPluginOption("recordAndTuple","syntaxType"))throw this.raise(Rh.RecordExpressionBarIncorrectStartSyntaxType,this.state.curPosition());this.state.pos+=2,this.finishToken(6)}else++this.state.pos,this.finishToken(5);return;case 125:return++this.state.pos,void this.finishToken(8);case 58:return void(this.hasPlugin("functionBind")&&58===this.input.charCodeAt(this.state.pos+1)?this.finishOp(15,2):(++this.state.pos,this.finishToken(14)));case 63:return void this.readToken_question();case 96:return void this.readTemplateToken();case 48:var t=this.input.charCodeAt(this.state.pos+1);if(120===t||88===t)return void this.readRadixNumber(16);if(111===t||79===t)return void this.readRadixNumber(8);if(98===t||66===t)return void this.readRadixNumber(2);case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return void this.readNumber(!1);case 34:case 39:return void this.readString(e);case 47:return void this.readToken_slash();case 37:case 42:return void this.readToken_mult_modulo(e);case 124:case 38:return void this.readToken_pipe_amp(e);case 94:return void this.readToken_caret();case 43:case 45:return void this.readToken_plus_min(e);case 60:return void this.readToken_lt();case 62:return void this.readToken_gt();case 61:case 33:return void this.readToken_eq_excl(e);case 126:return void this.finishOp(36,1);case 64:return void this.readToken_atSign();case 35:return void this.readToken_numberSign();case 92:return void this.readWord();default:if(Mr(e))return void this.readWord(e)}throw this.raise(Rh.InvalidOrUnexpectedToken,this.state.curPosition(),{unexpected:String.fromCodePoint(e)})},r.finishOp=function(e,t){var r=this.input.slice(this.state.pos,this.state.pos+t);this.state.pos+=t,this.finishToken(e,r)},r.readRegexp=function(){for(var e,t,r=this.state.startLoc,a=this.state.start+1,n=this.state.pos;;++n){if(n>=this.length)throw this.raise(Rh.UnterminatedRegExp,dh(r,1));var s=this.input.charCodeAt(n);if(kv(s))throw this.raise(Rh.UnterminatedRegExp,dh(r,1));if(e)e=!1;else{if(91===s)t=!0;else if(93===s&&t)t=!1;else if(47===s&&!t)break;e=92===s}}var o=this.input.slice(a,n);++n;for(var i="",d=function(){return dh(r,n+2-a)};n<this.length;){var c=this.codePointAtPos(n),l=String.fromCharCode(c);if(rx.has(c))118===c?i.includes("u")&&this.raise(Rh.IncompatibleRegExpUVFlags,d()):117===c&&i.includes("v")&&this.raise(Rh.IncompatibleRegExpUVFlags,d()),i.includes(l)&&this.raise(Rh.DuplicateRegExpFlags,d());else{if(!Fr(c)&&92!==c)break;this.raise(Rh.MalformedRegExpFlags,d())}++n,i+=l}this.state.pos=n,this.finishToken(138,{pattern:o,flags:i})},r.readInt=function(e,t,r,a){void 0===r&&(r=!1),void 0===a&&(a=!0);var n=na(this.input,this.state.pos,this.state.lineStart,this.state.curLine,e,t,r,a,this.errorHandlers_readInt,!1),s=n.n,o=n.pos;return this.state.pos=o,s},r.readRadixNumber=function(e){var t=this.state.pos,r=this.state.curPosition(),a=!1;this.state.pos+=2;var n=this.readInt(e);null==n&&this.raise(Rh.InvalidDigit,dh(r,2),{radix:e});var s=this.input.charCodeAt(this.state.pos);if(110===s)++this.state.pos,a=!0;else if(109===s)throw this.raise(Rh.InvalidDecimal,r);if(Mr(this.codePointAtPos(this.state.pos)))throw this.raise(Rh.NumberIdentifier,this.state.curPosition());if(a){var o=this.input.slice(t,this.state.pos).replace(/[_n]/g,"");this.finishToken(136,o)}else this.finishToken(135,n)},r.readNumber=function(e){var t=this.state.pos,r=this.state.curPosition(),a=!1,n=!1,s=!1,o=!1;e||null!==this.readInt(10)||this.raise(Rh.InvalidNumber,this.state.curPosition());var i=this.state.pos-t>=2&&48===this.input.charCodeAt(t);if(i){var d=this.input.slice(t,this.state.pos);if(this.recordStrictModeErrors(Rh.StrictOctalLiteral,r),!this.state.strict){var c=d.indexOf("_");c>0&&this.raise(Rh.ZeroDigitNumericSeparator,dh(r,c))}o=i&&!/[89]/.test(d)}var l=this.input.charCodeAt(this.state.pos);if(46!==l||o||(++this.state.pos,this.readInt(10),a=!0,l=this.input.charCodeAt(this.state.pos)),69!==l&&101!==l||o||(43!==(l=this.input.charCodeAt(++this.state.pos))&&45!==l||++this.state.pos,null===this.readInt(10)&&this.raise(Rh.InvalidOrMissingExponent,r),a=!0,s=!0,l=this.input.charCodeAt(this.state.pos)),110===l&&((a||i)&&this.raise(Rh.InvalidBigIntLiteral,r),++this.state.pos,n=!0),109===l){this.expectPlugin("decimal",this.state.curPosition()),(s||i)&&this.raise(Rh.InvalidDecimal,r),++this.state.pos;var u=!0}if(Mr(this.codePointAtPos(this.state.pos)))throw this.raise(Rh.NumberIdentifier,this.state.curPosition());var p=this.input.slice(t,this.state.pos).replace(/[_mn]/g,"");if(n)this.finishToken(136,p);else if(u)this.finishToken(137,p);else{var f=o?parseInt(p,8):parseFloat(p);this.finishToken(135,f)}},r.readCodePoint=function(e){var t=sa(this.input,this.state.pos,this.state.lineStart,this.state.curLine,e,this.errorHandlers_readCodePoint),r=t.code,a=t.pos;return this.state.pos=a,r},r.readString=function(e){var t=ea(34===e?"double":"single",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_string),r=t.str,a=t.pos,n=t.curLine,s=t.lineStart;this.state.pos=a+1,this.state.lineStart=s,this.state.curLine=n,this.finishToken(134,r)},r.readTemplateContinuation=function(){this.match(8)||this.unexpected(null,8),this.state.pos--,this.readTemplateToken()},r.readTemplateToken=function(){var e=this.input[this.state.pos],t=ea("template",this.input,this.state.pos+1,this.state.lineStart,this.state.curLine,this.errorHandlers_readStringContents_template),r=t.str,a=t.firstInvalidLoc,n=t.pos,s=t.curLine,o=t.lineStart;this.state.pos=n+1,this.state.lineStart=o,this.state.curLine=s,a&&(this.state.firstInvalidTemplateEscapePos=new oh(a.curLine,a.pos-a.lineStart,this.sourceToOffsetPos(a.pos))),96===this.input.codePointAt(n)?this.finishToken(24,a?null:e+r+"`"):(this.state.pos++,this.finishToken(25,a?null:e+r+"${"))},r.recordStrictModeErrors=function(e,t){var r=t.index;this.state.strict&&!this.state.strictErrors.has(r)?this.raise(e,t):this.state.strictErrors.set(r,[e,t])},r.readWord1=function(e){this.state.containsEsc=!1;var t="",r=this.state.pos,a=this.state.pos;for(void 0!==e&&(this.state.pos+=e<=65535?1:2);this.state.pos<this.length;){var n=this.codePointAtPos(this.state.pos);if(Fr(n))this.state.pos+=n<=65535?1:2;else{if(92!==n)break;this.state.containsEsc=!0,t+=this.input.slice(a,this.state.pos);var s=this.state.curPosition(),o=this.state.pos===r?Mr:Fr;if(117!==this.input.charCodeAt(++this.state.pos)){this.raise(Rh.MissingUnicodeEscape,this.state.curPosition()),a=this.state.pos-1;continue}++this.state.pos;var i=this.readCodePoint(!0);null!==i&&(o(i)||this.raise(Rh.EscapedCharNotAnIdentifier,s),t+=String.fromCodePoint(i)),a=this.state.pos}}return t+this.input.slice(a,this.state.pos)},r.readWord=function(e){var t=this.readWord1(e),r=Kh.get(t);void 0!==r?this.finishToken(r,fb(r)):this.finishToken(132,t)},r.checkKeywordEscapes=function(){var e=this.state.type;ub(e)&&this.state.containsEsc&&this.raise(Rh.InvalidEscapedReservedWord,this.state.startLoc,{reservedWord:fb(e)})},r.raise=function(e,t,r){void 0===r&&(r={});var a=e(t instanceof oh?t:t.loc.start,r);if(!(this.optionFlags&Dh))throw a;return this.isLookahead||this.state.errors.push(a),a},r.raiseOverwrite=function(e,t,r){void 0===r&&(r={});for(var a=t instanceof oh?t:t.loc.start,n=a.index,s=this.state.errors,o=s.length-1;o>=0;o--){var i=s[o];if(i.loc.index===n)return s[o]=e(a,r);if(i.loc.index<n)break}return this.raise(e,t,r)},r.updateContext=function(e){},r.unexpected=function(e,t){throw this.raise(Rh.UnexpectedToken,null!=e?e:this.state.startLoc,{expected:t?fb(t):null})},r.expectPlugin=function(e,t){if(this.hasPlugin(e))return!0;throw this.raise(Rh.MissingPlugin,null!=t?t:this.state.startLoc,{missingPlugin:[e]})},r.expectOnePlugin=function(e){var t=this;if(!e.some(function(e){return t.hasPlugin(e)}))throw this.raise(Rh.MissingOneOfPlugins,this.state.startLoc,{missingPlugin:e})},r.errorBuilder=function(e){var t=this;return function(r,a,n){t.raise(e,tx(r,a,n))}},o(t)}($v),sx=o(function(){this.privateNames=new Set,this.loneAccessors=new Map,this.undefinedPrivateNames=new Map}),ox=function(){function e(e){this.parser=void 0,this.stack=[],this.undefinedPrivateNames=new Map,this.parser=e}var t=e.prototype;return t.current=function(){return this.stack[this.stack.length-1]},t.enter=function(){this.stack.push(new sx)},t.exit=function(){for(var e=this.stack.pop(),t=this.current(),r=0,a=Array.from(e.undefinedPrivateNames);r<a.length;r++){var n=a[r],s=n[0],o=n[1];t?t.undefinedPrivateNames.has(s)||t.undefinedPrivateNames.set(s,o):this.parser.raise(Rh.InvalidPrivateFieldResolution,o,{identifierName:s})}},t.declarePrivateName=function(e,t,r){var a=this.current(),n=a.privateNames,s=a.loneAccessors,o=a.undefinedPrivateNames,i=n.has(e);if(t&lv){var d=i&&s.get(e);if(d)(i=(d&lv)===(t&lv)||(d&cv)!==(t&cv))||s.delete(e);else i||s.set(e,t)}i&&this.parser.raise(Rh.PrivateNameRedeclaration,r,{identifierName:e}),n.add(e),o.delete(e)},t.usePrivateName=function(e,t){for(var r,a=0,n=this.stack;a<n.length;a++)if((r=n[a]).privateNames.has(e))return;r?r.undefinedPrivateNames.set(e,t):this.parser.raise(Rh.InvalidPrivateFieldResolution,t,{identifierName:e})},o(e)}(),ix=function(){function e(e){void 0===e&&(e=0),this.type=e}var t=e.prototype;return t.canBeArrowParameterDeclaration=function(){return 2===this.type||1===this.type},t.isCertainlyParameterDeclaration=function(){return 3===this.type},o(e)}(),dx=function(e){function t(t){var r;return(r=e.call(this,t)||this).declarationErrors=new Map,r}c(t,e);var r=t.prototype;return r.recordDeclarationError=function(e,t){var r=t.index;this.declarationErrors.set(r,[e,t])},r.clearDeclarationError=function(e){this.declarationErrors.delete(e)},r.iterateErrors=function(e){this.declarationErrors.forEach(e)},o(t)}(ix),cx=function(){function e(e){this.parser=void 0,this.stack=[new ix],this.parser=e}var t=e.prototype;return t.enter=function(e){this.stack.push(e)},t.exit=function(){this.stack.pop()},t.recordParameterInitializerError=function(e,t){for(var r=t.loc.start,a=this.stack,n=a.length-1,s=a[n];!s.isCertainlyParameterDeclaration();){if(!s.canBeArrowParameterDeclaration())return;s.recordDeclarationError(e,r),s=a[--n]}this.parser.raise(e,r)},t.recordArrowParameterBindingError=function(e,t){var r=this.stack,a=r[r.length-1],n=t.loc.start;if(a.isCertainlyParameterDeclaration())this.parser.raise(e,n);else{if(!a.canBeArrowParameterDeclaration())return;a.recordDeclarationError(e,n)}},t.recordAsyncArrowParametersError=function(e){for(var t=this.stack,r=t.length-1,a=t[r];a.canBeArrowParameterDeclaration();)2===a.type&&a.recordDeclarationError(Rh.AwaitBindingIdentifier,e),a=t[--r]},t.validateAsPattern=function(){var e=this,t=this.stack,r=t[t.length-1];r.canBeArrowParameterDeclaration()&&r.iterateErrors(function(r){var a=r[0],n=r[1];e.parser.raise(a,n);for(var s=t.length-2,o=t[s];o.canBeArrowParameterDeclaration();)o.clearDeclarationError(n.index),o=t[--s]})},o(e)}();function lx(){return new ix}var ux=function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.addExtra=function(e,t,r,a){if(void 0===a&&(a=!0),e){var n=e.extra;null==n&&(n={},e.extra=n),a?n[t]=r:Object.defineProperty(n,t,{enumerable:a,value:r})}},r.isContextual=function(e){return this.state.type===e&&!this.state.containsEsc},r.isUnparsedContextual=function(e,t){if(this.input.startsWith(t,e)){var r=this.input.charCodeAt(e+t.length);return!(Fr(r)||55296==(64512&r))}return!1},r.isLookaheadContextual=function(e){var t=this.nextTokenStart();return this.isUnparsedContextual(t,e)},r.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},r.expectContextual=function(e,t){if(!this.eatContextual(e)){if(null!=t)throw this.raise(t,this.state.startLoc);this.unexpected(null,e)}},r.canInsertSemicolon=function(){return this.match(140)||this.match(8)||this.hasPrecedingLineBreak()},r.hasPrecedingLineBreak=function(){return Cv(this.input,this.offsetToSourcePos(this.state.lastTokEndLoc.index),this.state.start)},r.hasFollowingLineBreak=function(){return Cv(this.input,this.state.end,this.nextTokenStart())},r.isLineTerminator=function(){return this.eat(13)||this.canInsertSemicolon()},r.semicolon=function(e){void 0===e&&(e=!0),(e?this.isLineTerminator():this.eat(13))||this.raise(Rh.MissingSemicolon,this.state.lastTokEndLoc)},r.expect=function(e,t){this.eat(e)||this.unexpected(t,e)},r.tryParse=function(e,t){void 0===t&&(t=this.state.clone());var r={node:null};try{var a=e(function(e){throw void 0===e&&(e=null),r.node=e,r});if(this.state.errors.length>t.errors.length){var n=this.state;return this.state=t,this.state.tokensLength=n.tokensLength,{node:a,error:n.errors[t.errors.length],thrown:!1,aborted:!1,failState:n}}return{node:a,error:null,thrown:!1,aborted:!1,failState:null}}catch(e){var s=this.state;if(this.state=t,e instanceof SyntaxError)return{node:null,error:e,thrown:!0,aborted:!1,failState:s};if(e===r)return{node:r.node,error:null,thrown:!1,aborted:!0,failState:s};throw e}},r.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssignLoc,a=e.doubleProtoLoc,n=e.privateKeyLoc,s=e.optionalParametersLoc,o=e.voidPatternLoc;if(!t)return!!(r||a||s||n||o);null!=r&&this.raise(Rh.InvalidCoverInitializedName,r),null!=a&&this.raise(Rh.DuplicateProto,a),null!=n&&this.raise(Rh.UnexpectedPrivateField,n),null!=s&&this.unexpected(s),null!=o&&this.raise(Rh.InvalidCoverDiscardElement,o)},r.isLiteralPropertyName=function(){return db(this.state.type)},r.isPrivateName=function(e){return"PrivateName"===e.type},r.getPrivateNameSV=function(e){return e.id.name},r.hasPropertyAsPrivateName=function(e){return("MemberExpression"===e.type||"OptionalMemberExpression"===e.type)&&this.isPrivateName(e.property)},r.isObjectProperty=function(e){return"ObjectProperty"===e.type},r.isObjectMethod=function(e){return"ObjectMethod"===e.type},r.initializeScopes=function(e){var t=this;void 0===e&&(e="module"===this.options.sourceType);var r=this.state.labels;this.state.labels=[];var a=this.exportedIdentifiers;this.exportedIdentifiers=new Set;var n=this.inModule;this.inModule=e;var s=this.scope,o=this.getScopeHandler();this.scope=new o(this,e);var i=this.prodParam;this.prodParam=new Hv;var d=this.classScope;this.classScope=new ox(this);var c=this.expressionScope;return this.expressionScope=new cx(this),function(){t.state.labels=r,t.exportedIdentifiers=a,t.inModule=n,t.scope=s,t.prodParam=i,t.classScope=d,t.expressionScope=c}},r.enterInitialScopes=function(){var e=Uv;(this.inModule||this.optionFlags&jh)&&(e|=Gv),this.optionFlags&Ph&&(e|=qv);var t=!this.inModule&&"commonjs"===this.options.sourceType;(t||this.optionFlags&wh)&&(e|=Wv),this.prodParam.enter(e);var r=t?_b:xb;this.optionFlags&Eh&&(r|=kb),this.scope.enter(r)},r.checkDestructuringPrivate=function(e){var t=e.privateKeyLoc;null!==t&&this.expectPlugin("destructuringPrivate",t)},o(t)}(nx),px=o(function(){this.shorthandAssignLoc=null,this.doubleProtoLoc=null,this.privateKeyLoc=null,this.optionalParametersLoc=null,this.voidPatternLoc=null}),fx=o(function(e,t,r){this.type="",this.start=t,this.end=0,this.loc=new ih(r),(null==e?void 0:e.optionFlags)&kh&&(this.range=[t,0]),null!=e&&e.filename&&(this.loc.filename=e.filename)}),gx=fx.prototype;gx.__clone=function(){for(var e=new fx(void 0,this.start,this.loc.start),t=Object.keys(this),r=0,a=t.length;r<a;r++){var n=t[r];"leadingComments"!==n&&"trailingComments"!==n&&"innerComments"!==n&&(e[n]=this[n])}return e};var mx,yx=function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.startNode=function(){var e=this.state.startLoc;return new fx(this,e.index,e)},r.startNodeAt=function(e){return new fx(this,e.index,e)},r.startNodeAtNode=function(e){return this.startNodeAt(e.loc.start)},r.finishNode=function(e,t){return this.finishNodeAt(e,t,this.state.lastTokEndLoc)},r.finishNodeAt=function(e,t,r){return e.type=t,e.end=r.index,e.loc.end=r,this.optionFlags&kh&&(e.range[1]=r.index),this.optionFlags&Oh&&this.processComment(e),e},r.resetStartLocation=function(e,t){e.start=t.index,e.loc.start=t,this.optionFlags&kh&&(e.range[0]=t.index)},r.resetEndLocation=function(e,t){void 0===t&&(t=this.state.lastTokEndLoc),e.end=t.index,e.loc.end=t,this.optionFlags&kh&&(e.range[1]=t.index)},r.resetStartLocationFromNode=function(e,t){this.resetStartLocation(e,t.loc.start)},r.castNodeTo=function(e,t){return e.type=t,e},r.cloneIdentifier=function(e){var t=e.type,r=e.start,a=e.end,n=e.loc,s=e.range,o=e.name,i=Object.create(gx);return i.type=t,i.start=r,i.end=a,i.loc=n,i.range=s,i.name=o,e.extra&&(i.extra=e.extra),i},r.cloneStringLiteral=function(e){var t=e.type,r=e.start,a=e.end,n=e.loc,s=e.range,o=e.extra,i=Object.create(gx);return i.type=t,i.start=r,i.end=a,i.loc=n,i.range=s,i.extra=o,i.value=e.value,i},o(t)}(ux),hx=function(e){return"ParenthesizedExpression"===e.type?hx(e.expression):e},bx=1,vx=2,xx=4,Rx=function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.toAssignable=function(e,t){var r,a;void 0===t&&(t=!1);var n=void 0;switch(("ParenthesizedExpression"===e.type||null!=(r=e.extra)&&r.parenthesized)&&(n=hx(e),t?"Identifier"===n.type?this.expressionScope.recordArrowParameterBindingError(Rh.InvalidParenthesizedAssignment,e):"CallExpression"===n.type||"MemberExpression"===n.type||this.isOptionalMemberExpression(n)||this.raise(Rh.InvalidParenthesizedAssignment,e):this.raise(Rh.InvalidParenthesizedAssignment,e)),e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":case"VoidPattern":break;case"ObjectExpression":this.castNodeTo(e,"ObjectPattern");for(var s=0,o=e.properties.length,i=o-1;s<o;s++){var d,c=e.properties[s],l=s===i;this.toAssignableObjectExpressionProp(c,l,t),l&&"RestElement"===c.type&&null!=(d=e.extra)&&d.trailingCommaLoc&&this.raise(Rh.RestTrailingComma,e.extra.trailingCommaLoc)}break;case"ObjectProperty":var u=e.key,p=e.value;this.isPrivateName(u)&&this.classScope.usePrivateName(this.getPrivateNameSV(u),u.loc.start),this.toAssignable(p,t);break;case"SpreadElement":throw new Error("Internal @babel/parser error (this is a bug, please report it). SpreadElement should be converted by .toAssignable's caller.");case"ArrayExpression":this.castNodeTo(e,"ArrayPattern"),this.toAssignableList(e.elements,null==(a=e.extra)?void 0:a.trailingCommaLoc,t);break;case"AssignmentExpression":"="!==e.operator&&this.raise(Rh.MissingEqInAssignment,e.left.loc.end),this.castNodeTo(e,"AssignmentPattern"),delete e.operator,"VoidPattern"===e.left.type&&this.raise(Rh.VoidPatternInitializer,e.left),this.toAssignable(e.left,t);break;case"ParenthesizedExpression":this.toAssignable(n,t)}},r.toAssignableObjectExpressionProp=function(e,t,r){if("ObjectMethod"===e.type)this.raise("get"===e.kind||"set"===e.kind?Rh.PatternHasAccessor:Rh.PatternHasMethod,e.key);else if("SpreadElement"===e.type){this.castNodeTo(e,"RestElement");var a=e.argument;this.checkToRestConversion(a,!1),this.toAssignable(a,r),t||this.raise(Rh.RestTrailingComma,e)}else this.toAssignable(e,r)},r.toAssignableList=function(e,t,r){for(var a=e.length-1,n=0;n<=a;n++){var s=e[n];s&&(this.toAssignableListItem(e,n,r),"RestElement"===s.type&&(n<a?this.raise(Rh.RestTrailingComma,s):t&&this.raise(Rh.RestTrailingComma,t)))}},r.toAssignableListItem=function(e,t,r){var a=e[t];if("SpreadElement"===a.type){this.castNodeTo(a,"RestElement");var n=a.argument;this.checkToRestConversion(n,!0),this.toAssignable(n,r)}else this.toAssignable(a,r)},r.isAssignable=function(e,t){var r=this;switch(e.type){case"Identifier":case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":case"VoidPattern":return!0;case"ObjectExpression":var a=e.properties.length-1;return e.properties.every(function(e,t){return"ObjectMethod"!==e.type&&(t===a||"SpreadElement"!==e.type)&&r.isAssignable(e)});case"ObjectProperty":return this.isAssignable(e.value);case"SpreadElement":return this.isAssignable(e.argument);case"ArrayExpression":return e.elements.every(function(e){return null===e||r.isAssignable(e)});case"AssignmentExpression":return"="===e.operator;case"ParenthesizedExpression":return this.isAssignable(e.expression);case"MemberExpression":case"OptionalMemberExpression":return!t;default:return!1}},r.toReferencedList=function(e,t){return e},r.toReferencedListDeep=function(e,t){this.toReferencedList(e,t);for(var r=0;r<e.length;r++){var a=e[r];"ArrayExpression"===(null==a?void 0:a.type)&&this.toReferencedListDeep(a.elements)}},r.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssignAllowIn(e,void 0),this.finishNode(t,"SpreadElement")},r.parseRestBinding=function(){var e=this.startNode();this.next();var t=this.parseBindingAtom();return"VoidPattern"===t.type&&this.raise(Rh.UnexpectedVoidPattern,t),e.argument=t,this.finishNode(e,"RestElement")},r.parseBindingAtom=function(){switch(this.state.type){case 0:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(3,93,bx),this.finishNode(e,"ArrayPattern");case 5:return this.parseObjectLike(8,!0);case 88:return this.parseVoidPattern(null)}return this.parseIdentifier()},r.parseBindingList=function(e,t,r){for(var a=r&bx,n=[],s=!0;!this.eat(e);)if(s?s=!1:this.expect(12),a&&this.match(12))n.push(null);else{if(this.eat(e))break;if(this.match(21)){var o=this.parseRestBinding();if((this.hasPlugin("flow")||r&vx)&&(o=this.parseFunctionParamType(o)),n.push(o),!this.checkCommaAfterRest(t)){this.expect(e);break}}else{var i=[];if(r&vx)for(this.match(26)&&this.hasPlugin("decorators")&&this.raise(Rh.UnsupportedParameterDecorator,this.state.startLoc);this.match(26);)i.push(this.parseDecorator());n.push(this.parseBindingElement(r,i))}}return n},r.parseBindingRestProperty=function(e){return this.next(),this.hasPlugin("discardBinding")&&this.match(88)?(e.argument=this.parseVoidPattern(null),this.raise(Rh.UnexpectedVoidPattern,e.argument)):e.argument=this.parseIdentifier(),this.checkCommaAfterRest(125),this.finishNode(e,"RestElement")},r.parseBindingProperty=function(){var e=this.state,t=e.type,r=e.startLoc;if(21===t)return this.parseBindingRestProperty(this.startNode());var a=this.startNode();return 139===t?(this.expectPlugin("destructuringPrivate",r),this.classScope.usePrivateName(this.state.value,r),a.key=this.parsePrivateName()):this.parsePropertyName(a),a.method=!1,this.parseObjPropValue(a,r,!1,!1,!0,!1)},r.parseBindingElement=function(e,t){var r=this.parseMaybeDefault();return(this.hasPlugin("flow")||e&vx)&&this.parseFunctionParamType(r),t.length&&(r.decorators=t,this.resetStartLocationFromNode(r,t[0])),this.parseMaybeDefault(r.loc.start,r)},r.parseFunctionParamType=function(e){return e},r.parseMaybeDefault=function(e,t){if(null!=e||(e=this.state.startLoc),t=null!=t?t:this.parseBindingAtom(),!this.eat(29))return t;var r=this.startNodeAt(e);return"VoidPattern"===t.type&&this.raise(Rh.VoidPatternInitializer,t),r.left=t,r.right=this.parseMaybeAssignAllowIn(),this.finishNode(r,"AssignmentPattern")},r.isValidLVal=function(e,t,r,a){switch(e){case"AssignmentPattern":return"left";case"RestElement":return"argument";case"ObjectProperty":return"value";case"ParenthesizedExpression":return"expression";case"ArrayPattern":return"elements";case"ObjectPattern":return"properties";case"VoidPattern":return!0;case"CallExpression":if(!t&&!this.state.strict&&this.optionFlags&Nh)return!0}return!1},r.isOptionalMemberExpression=function(e){return"OptionalMemberExpression"===e.type},r.checkLVal=function(e,t,r,a,n,s,o){var i;void 0===r&&(r=tv),void 0===a&&(a=!1),void 0===n&&(n=!1),void 0===s&&(s=!1),void 0===o&&(o=!1);var d=e.type;if(!this.isObjectMethod(e)){var c=this.isOptionalMemberExpression(e);if(c||"MemberExpression"===d)return c&&(this.expectPlugin("optionalChainingAssign",e.loc.start),"AssignmentExpression"!==t.type&&this.raise(Rh.InvalidLhsOptionalChaining,e,{ancestor:t})),void(r!==tv&&this.raise(Rh.InvalidPropertyBindingPattern,e));if("Identifier"!==d){"VoidPattern"===d&&"CatchClause"===t.type&&this.raise(Rh.VoidPatternCatchClauseParam,e);var l=hx(e);o||(o="CallExpression"===l.type&&("Import"===l.callee.type||"Super"===l.callee.type));var u=this.isValidLVal(d,o,!(s||null!=(i=e.extra)&&i.parenthesized)&&"AssignmentExpression"===t.type,r);if(!0!==u)if(!1!==u){var p,f;"string"==typeof u?(p=u,f="ParenthesizedExpression"===d):(p=u[0],f=u[1]);var g="ArrayPattern"===d||"ObjectPattern"===d?{type:d}:t,m=e[p];if(Array.isArray(m))for(var y=0;y<m.length;y++){var h=m[y];h&&this.checkLVal(h,g,r,a,n,f,!0)}else m&&this.checkLVal(m,g,r,a,n,f,o)}else{var b=r===tv?Rh.InvalidLhs:Rh.InvalidLhsBinding;this.raise(b,e,{ancestor:t})}}else{this.checkIdentifier(e,r,n);var v=e.name;a&&(a.has(v)?this.raise(Rh.ParamDupe,e):a.add(v))}}},r.checkIdentifier=function(e,t,r){void 0===r&&(r=!1),this.state.strict&&(r?Xr(e.name,this.inModule):Kr(e.name))&&(t===tv?this.raise(Rh.StrictEvalArguments,e,{referenceName:e.name}):this.raise(Rh.StrictEvalArgumentsBinding,e,{bindingName:e.name})),t&Hb&&"let"===e.name&&this.raise(Rh.LetInLexicalBinding,e),t&tv||this.declareNameFromIdentifier(e,t)},r.declareNameFromIdentifier=function(e,t){this.scope.declareName(e.name,t,e.loc.start)},r.checkToRestConversion=function(e,t){switch(e.type){case"ParenthesizedExpression":this.checkToRestConversion(e.expression,t);break;case"Identifier":case"MemberExpression":break;case"ArrayExpression":case"ObjectExpression":if(t)break;default:this.raise(Rh.InvalidRestAssignmentPattern,e)}},r.checkCommaAfterRest=function(e){return!!this.match(12)&&(this.raise(this.lookaheadCharCode()===e?Rh.RestTrailingComma:Rh.ElementAfterRest,this.state.startLoc),!0)},o(t)}(yx),jx=new RegExp("in(?:stanceof)?|as|satisfies","y");function wx(e){if(!e)throw new Error("Assert fail")}var Ex=xh(mx||(mx=h(["typescript"])))({AbstractMethodHasImplementation:function(e){return"Method '"+e.methodName+"' cannot have an implementation because it is marked abstract."},AbstractPropertyHasInitializer:function(e){return"Property '"+e.propertyName+"' cannot have an initializer because it is marked abstract."},AccessorCannotBeOptional:"An 'accessor' property cannot be declared optional.",AccessorCannotDeclareThisParameter:"'get' and 'set' accessors cannot declare 'this' parameters.",AccessorCannotHaveTypeParameters:"An accessor cannot have type parameters.",ClassMethodHasDeclare:"Class methods cannot have the 'declare' modifier.",ClassMethodHasReadonly:"Class methods cannot have the 'readonly' modifier.",ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference:"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.",ConstructorHasTypeParameters:"Type parameters cannot appear on a constructor declaration.",DeclareAccessor:function(e){return"'declare' is not allowed in "+e.kind+"ters."},DeclareClassFieldHasInitializer:"Initializers are not allowed in ambient contexts.",DeclareFunctionHasImplementation:"An implementation cannot be declared in ambient contexts.",DuplicateAccessibilityModifier:function(e){return"Accessibility modifier already seen: '"+e.modifier+"'."},DuplicateModifier:function(e){return"Duplicate modifier: '"+e.modifier+"'."},EmptyHeritageClauseType:function(e){return"'"+e.token+"' list cannot be empty."},EmptyTypeArguments:"Type argument list cannot be empty.",EmptyTypeParameters:"Type parameter list cannot be empty.",ExpectedAmbientAfterExportDeclare:"'export declare' must be followed by an ambient declaration.",ImportAliasHasImportType:"An import alias can not use 'import type'.",ImportReflectionHasImportType:"An `import module` declaration can not use `type` modifier",IncompatibleModifiers:function(e){var t=e.modifiers;return"'"+t[0]+"' modifier cannot be used with '"+t[1]+"' modifier."},IndexSignatureHasAbstract:"Index signatures cannot have the 'abstract' modifier.",IndexSignatureHasAccessibility:function(e){return"Index signatures cannot have an accessibility modifier ('"+e.modifier+"')."},IndexSignatureHasDeclare:"Index signatures cannot have the 'declare' modifier.",IndexSignatureHasOverride:"'override' modifier cannot appear on an index signature.",IndexSignatureHasStatic:"Index signatures cannot have the 'static' modifier.",InitializerNotAllowedInAmbientContext:"Initializers are not allowed in ambient contexts.",InvalidHeritageClauseType:function(e){return"'"+e.token+"' list can only include identifiers or qualified-names with optional type arguments."},InvalidModifierOnAwaitUsingDeclaration:function(e){return"'"+e+"' modifier cannot appear on an await using declaration."},InvalidModifierOnTypeMember:function(e){return"'"+e.modifier+"' modifier cannot appear on a type member."},InvalidModifierOnTypeParameter:function(e){return"'"+e.modifier+"' modifier cannot appear on a type parameter."},InvalidModifierOnTypeParameterPositions:function(e){return"'"+e.modifier+"' modifier can only appear on a type parameter of a class, interface or type alias."},InvalidModifierOnUsingDeclaration:function(e){return"'"+e+"' modifier cannot appear on a using declaration."},InvalidModifiersOrder:function(e){var t=e.orderedModifiers;return"'"+t[0]+"' modifier must precede '"+t[1]+"' modifier."},InvalidPropertyAccessAfterInstantiationExpression:"Invalid property access after an instantiation expression. You can either wrap the instantiation expression in parentheses, or delete the type arguments.",InvalidTupleMemberLabel:"Tuple members must be labeled with a simple identifier.",MissingInterfaceName:"'interface' declarations must be followed by an identifier.",NonAbstractClassHasAbstractMethod:"Abstract methods can only appear within an abstract class.",NonClassMethodPropertyHasAbstractModifier:"'abstract' modifier can only appear on a class, method, or property declaration.",OptionalTypeBeforeRequired:"A required element cannot follow an optional element.",OverrideNotInSubClass:"This member cannot have an 'override' modifier because its containing class does not extend another class.",PatternIsOptional:"A binding pattern parameter cannot be optional in an implementation signature.",PrivateElementHasAbstract:"Private elements cannot have the 'abstract' modifier.",PrivateElementHasAccessibility:function(e){return"Private elements cannot have an accessibility modifier ('"+e.modifier+"')."},ReadonlyForMethodSignature:"'readonly' modifier can only appear on a property declaration or index signature.",ReservedArrowTypeParam:"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.",ReservedTypeAssertion:"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.",SetAccessorCannotHaveOptionalParameter:"A 'set' accessor cannot have an optional parameter.",SetAccessorCannotHaveRestParameter:"A 'set' accessor cannot have rest parameter.",SetAccessorCannotHaveReturnType:"A 'set' accessor cannot have a return type annotation.",SingleTypeParameterWithoutTrailingComma:function(e){var t=e.typeParameterName;return"Single type parameter "+t+" should have a trailing comma. Example usage: <"+t+",>."},StaticBlockCannotHaveModifier:"Static class blocks cannot have any modifier.",TupleOptionalAfterType:"A labeled tuple optional element must be declared using a question mark after the name and before the colon (`name?: type`), rather than after the type (`name: type?`).",TypeAnnotationAfterAssign:"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.",TypeImportCannotSpecifyDefaultAndNamed:"A type-only import can specify a default import or named bindings, but not both.",TypeModifierIsUsedInTypeExports:"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.",TypeModifierIsUsedInTypeImports:"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.",UnexpectedParameterModifier:"A parameter property is only allowed in a constructor implementation.",UnexpectedReadonly:"'readonly' type modifier is only permitted on array and tuple literal types.",UnexpectedTypeAnnotation:"Did not expect a type annotation here.",UnexpectedTypeCastInParameter:"Unexpected type cast in parameter position.",UnsupportedImportTypeArgument:"Argument in a type import must be a string literal.",UnsupportedParameterPropertyKind:"A parameter property may not be declared using a binding pattern.",UnsupportedSignatureParameterKind:function(e){return"Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got "+e.type+"."},UsingDeclarationInAmbientContext:function(e){return"'"+e+"' declarations are not allowed in ambient contexts."}});function Sx(e){return"private"===e||"public"===e||"protected"===e}function Tx(e){return"in"===e||"out"===e}var Px,Ax=0,kx=1,Cx=2;function _x(e){if("MemberExpression"!==e.type)return!1;var t=e.computed,r=e.property;return(!t||"StringLiteral"===r.type||!("TemplateLiteral"!==r.type||r.expressions.length>0))&&Ox(e.object)}function Ix(e,t){var r,a=e.type;if(null!=(r=e.extra)&&r.parenthesized)return!1;if(t){if("Literal"===a){var n=e.value;if("string"==typeof n||"boolean"==typeof n)return!0}}else if("StringLiteral"===a||"BooleanLiteral"===a)return!0;return!(!Dx(e,t)&&!function(e,t){if("UnaryExpression"===e.type){var r=e.operator,a=e.argument;if("-"===r&&Dx(a,t))return!0}return!1}(e,t))||("TemplateLiteral"===a&&0===e.expressions.length||!!_x(e))}function Dx(e,t){return t?"Literal"===e.type&&("number"==typeof e.value||"bigint"in e):"NumericLiteral"===e.type||"BigIntLiteral"===e.type}function Ox(e){return"Identifier"===e.type||"MemberExpression"===e.type&&!e.computed&&Ox(e.object)}var Nx=xh(Px||(Px=h(["placeholders"])))({ClassNameIsRequired:"A class name is required.",UnexpectedSpace:"Unexpected space in placeholder."}),Bx=["minimal","fsharp","hack","smart"],Mx=["^^","@@","^","%","#"];var Fx={estree:function(e){return function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.parse=function(){var t=Fh(e.prototype.parse.call(this));return this.optionFlags&Ch&&(t.tokens=t.tokens.map(Fh)),t},r.parseRegExpLiteral=function(e){var t=e.pattern,r=e.flags,a=null;try{a=new RegExp(t,r)}catch(e){}var n=this.estreeParseLiteral(a);return n.regex={pattern:t,flags:r},n},r.parseBigIntLiteral=function(e){var t;try{t=BigInt(e)}catch(e){t=null}var r=this.estreeParseLiteral(t);return r.bigint=String(r.value||e),r},r.parseDecimalLiteral=function(e){var t=this.estreeParseLiteral(null);return t.decimal=String(t.value||e),t},r.estreeParseLiteral=function(e){return this.parseLiteral(e,"Literal")},r.parseStringLiteral=function(e){return this.estreeParseLiteral(e)},r.parseNumericLiteral=function(e){return this.estreeParseLiteral(e)},r.parseNullLiteral=function(){return this.estreeParseLiteral(null)},r.parseBooleanLiteral=function(e){return this.estreeParseLiteral(e)},r.estreeParseChainExpression=function(e,t){var r=this.startNodeAtNode(e);return r.expression=e,this.finishNodeAt(r,"ChainExpression",t)},r.directiveToStmt=function(e){var t=e.value;delete e.value,this.castNodeTo(t,"Literal"),t.raw=t.extra.raw,t.value=t.extra.expressionValue;var r=this.castNodeTo(e,"ExpressionStatement");return r.expression=t,r.directive=t.extra.rawValue,delete t.extra,r},r.fillOptionalPropertiesForTSESLint=function(e){},r.cloneEstreeStringLiteral=function(e){var t=e.start,r=e.end,a=e.loc,n=e.range,s=e.raw,o=e.value,i=Object.create(e.constructor.prototype);return i.type="Literal",i.start=t,i.end=r,i.loc=a,i.range=n,i.raw=s,i.value=o,i},r.initFunction=function(t,r){e.prototype.initFunction.call(this,t,r),t.expression=!1},r.checkDeclaration=function(t){null!=t&&this.isObjectProperty(t)?this.checkDeclaration(t.value):e.prototype.checkDeclaration.call(this,t)},r.getObjectOrClassMethodParams=function(e){return e.value.params},r.isValidDirective=function(e){var t;return"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&!(null!=(t=e.expression.extra)&&t.parenthesized)},r.parseBlockBody=function(t,r,a,n,s){var o=this;e.prototype.parseBlockBody.call(this,t,r,a,n,s);var i=t.directives.map(function(e){return o.directiveToStmt(e)});t.body=i.concat(t.body),delete t.directives},r.parsePrivateName=function(){var t=e.prototype.parsePrivateName.call(this);return this.getPluginOption("estree","classFeatures")?this.convertPrivateNameToPrivateIdentifier(t):t},r.convertPrivateNameToPrivateIdentifier=function(t){var r=e.prototype.getPrivateNameSV.call(this,t);return delete t.id,t.name=r,this.castNodeTo(t,"PrivateIdentifier")},r.isPrivateName=function(t){return this.getPluginOption("estree","classFeatures")?"PrivateIdentifier"===t.type:e.prototype.isPrivateName.call(this,t)},r.getPrivateNameSV=function(t){return this.getPluginOption("estree","classFeatures")?t.name:e.prototype.getPrivateNameSV.call(this,t)},r.parseLiteral=function(t,r){var a=e.prototype.parseLiteral.call(this,t,r);return a.raw=a.extra.raw,delete a.extra,a},r.parseFunctionBody=function(t,r,a){void 0===a&&(a=!1),e.prototype.parseFunctionBody.call(this,t,r,a),t.expression="BlockStatement"!==t.body.type},r.parseMethod=function(t,r,a,n,s,o,i){void 0===i&&(i=!1);var d=this.startNode();d.kind=t.kind,delete(d=e.prototype.parseMethod.call(this,d,r,a,n,s,o,i)).kind;var c=t.typeParameters;c&&(delete t.typeParameters,d.typeParameters=c,this.resetStartLocationFromNode(d,c));var l=this.castNodeTo(d,"FunctionExpression");return t.value=l,"ClassPrivateMethod"===o&&(t.computed=!1),"ObjectMethod"===o?("method"===t.kind&&(t.kind="init"),t.shorthand=!1,this.finishNode(t,"Property")):this.finishNode(t,"MethodDefinition")},r.nameIsConstructor=function(t){return"Literal"===t.type?"constructor"===t.value:e.prototype.nameIsConstructor.call(this,t)},r.parseClassProperty=function(){for(var t,r=arguments.length,a=new Array(r),n=0;n<r;n++)a[n]=arguments[n];var s=(t=e.prototype.parseClassProperty).call.apply(t,[this].concat(a));return this.getPluginOption("estree","classFeatures")?(this.castNodeTo(s,"PropertyDefinition"),s):s},r.parseClassPrivateProperty=function(){for(var t,r=arguments.length,a=new Array(r),n=0;n<r;n++)a[n]=arguments[n];var s=(t=e.prototype.parseClassPrivateProperty).call.apply(t,[this].concat(a));return this.getPluginOption("estree","classFeatures")?(this.castNodeTo(s,"PropertyDefinition"),s.computed=!1,s):s},r.parseClassAccessorProperty=function(t){var r=e.prototype.parseClassAccessorProperty.call(this,t);return this.getPluginOption("estree","classFeatures")?(r.abstract&&this.hasPlugin("typescript")?(delete r.abstract,this.castNodeTo(r,"TSAbstractAccessorProperty")):this.castNodeTo(r,"AccessorProperty"),r):r},r.parseObjectProperty=function(t,r,a,n){var s=e.prototype.parseObjectProperty.call(this,t,r,a,n);return s&&(s.kind="init",this.castNodeTo(s,"Property")),s},r.finishObjectProperty=function(e){return e.kind="init",this.finishNode(e,"Property")},r.isValidLVal=function(t,r,a,n){return"Property"===t?"value":e.prototype.isValidLVal.call(this,t,r,a,n)},r.isAssignable=function(t,r){return null!=t&&this.isObjectProperty(t)?this.isAssignable(t.value,r):e.prototype.isAssignable.call(this,t,r)},r.toAssignable=function(t,r){if(void 0===r&&(r=!1),null!=t&&this.isObjectProperty(t)){var a=t.key,n=t.value;this.isPrivateName(a)&&this.classScope.usePrivateName(this.getPrivateNameSV(a),a.loc.start),this.toAssignable(n,r)}else e.prototype.toAssignable.call(this,t,r)},r.toAssignableObjectExpressionProp=function(t,r,a){"Property"!==t.type||"get"!==t.kind&&"set"!==t.kind?"Property"===t.type&&t.method?this.raise(Rh.PatternHasMethod,t.key):e.prototype.toAssignableObjectExpressionProp.call(this,t,r,a):this.raise(Rh.PatternHasAccessor,t.key)},r.finishCallExpression=function(t,r){var a,n,s=e.prototype.finishCallExpression.call(this,t,r);"Import"===s.callee.type?(this.castNodeTo(s,"ImportExpression"),s.source=s.arguments[0],s.options=null!=(a=s.arguments[1])?a:null,s.attributes=null!=(n=s.arguments[1])?n:null,delete s.arguments,delete s.callee):"OptionalCallExpression"===s.type?this.castNodeTo(s,"CallExpression"):s.optional=!1;return s},r.toReferencedArguments=function(t){"ImportExpression"!==t.type&&e.prototype.toReferencedArguments.call(this,t)},r.parseExport=function(t,r){var a=this.state.lastTokStartLoc,n=e.prototype.parseExport.call(this,t,r);switch(n.type){case"ExportAllDeclaration":n.exported=null;break;case"ExportNamedDeclaration":1===n.specifiers.length&&"ExportNamespaceSpecifier"===n.specifiers[0].type&&(this.castNodeTo(n,"ExportAllDeclaration"),n.exported=n.specifiers[0].exported,delete n.specifiers);case"ExportDefaultDeclaration":var s,o=n.declaration;"ClassDeclaration"===(null==o?void 0:o.type)&&(null==(s=o.decorators)?void 0:s.length)>0&&o.start===n.start&&this.resetStartLocation(n,a)}return n},r.stopParseSubscript=function(t,r){var a=e.prototype.stopParseSubscript.call(this,t,r);return r.optionalChainMember?this.estreeParseChainExpression(a,t.loc.end):a},r.parseMember=function(t,r,a,n,s){var o=e.prototype.parseMember.call(this,t,r,a,n,s);return"OptionalMemberExpression"===o.type?this.castNodeTo(o,"MemberExpression"):o.optional=!1,o},r.isOptionalMemberExpression=function(t){return"ChainExpression"===t.type?"MemberExpression"===t.expression.type:e.prototype.isOptionalMemberExpression.call(this,t)},r.hasPropertyAsPrivateName=function(t){return"ChainExpression"===t.type&&(t=t.expression),e.prototype.hasPropertyAsPrivateName.call(this,t)},r.isObjectProperty=function(e){return"Property"===e.type&&"init"===e.kind&&!e.method},r.isObjectMethod=function(e){return"Property"===e.type&&(e.method||"get"===e.kind||"set"===e.kind)},r.castNodeTo=function(t,r){var a=e.prototype.castNodeTo.call(this,t,r);return this.fillOptionalPropertiesForTSESLint(a),a},r.cloneIdentifier=function(t){var r=e.prototype.cloneIdentifier.call(this,t);return this.fillOptionalPropertiesForTSESLint(r),r},r.cloneStringLiteral=function(t){return"Literal"===t.type?this.cloneEstreeStringLiteral(t):e.prototype.cloneStringLiteral.call(this,t)},r.finishNodeAt=function(t,r,a){return Fh(e.prototype.finishNodeAt.call(this,t,r,a))},r.finishNode=function(t,r){var a=e.prototype.finishNode.call(this,t,r);return this.fillOptionalPropertiesForTSESLint(a),a},r.resetStartLocation=function(t,r){e.prototype.resetStartLocation.call(this,t,r),Fh(t)},r.resetEndLocation=function(t,r){void 0===r&&(r=this.state.lastTokEndLoc),e.prototype.resetEndLocation.call(this,t,r),Fh(t)},o(t)}(e)},jsx:function(e){return function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.jsxReadToken=function(){for(var t="",r=this.state.pos;;){if(this.state.pos>=this.length)throw this.raise(Nv.UnterminatedJsxContent,this.state.startLoc);var a=this.input.charCodeAt(this.state.pos);switch(a){case 60:case 123:return this.state.pos===this.state.start?void(60===a&&this.state.canStartJSXElement?(++this.state.pos,this.finishToken(143)):e.prototype.getTokenFromCode.call(this,a)):(t+=this.input.slice(r,this.state.pos),void this.finishToken(142,t));case 38:t+=this.input.slice(r,this.state.pos),t+=this.jsxReadEntity(),r=this.state.pos;break;default:kv(a)?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadNewLine(!0),r=this.state.pos):++this.state.pos}}},r.jsxReadNewLine=function(e){var t,r=this.input.charCodeAt(this.state.pos);return++this.state.pos,13===r&&10===this.input.charCodeAt(this.state.pos)?(++this.state.pos,t=e?"\n":"\r\n"):t=String.fromCharCode(r),++this.state.curLine,this.state.lineStart=this.state.pos,t},r.jsxReadString=function(e){for(var t="",r=++this.state.pos;;){if(this.state.pos>=this.length)throw this.raise(Rh.UnterminatedString,this.state.startLoc);var a=this.input.charCodeAt(this.state.pos);if(a===e)break;38===a?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadEntity(),r=this.state.pos):kv(a)?(t+=this.input.slice(r,this.state.pos),t+=this.jsxReadNewLine(!1),r=this.state.pos):++this.state.pos}t+=this.input.slice(r,this.state.pos++),this.finishToken(134,t)},r.jsxReadEntity=function(){var e=++this.state.pos;if(35===this.codePointAtPos(this.state.pos)){++this.state.pos;var t=10;120===this.codePointAtPos(this.state.pos)&&(t=16,++this.state.pos);var r=this.readInt(t,void 0,!1,"bail");if(null!==r&&59===this.codePointAtPos(this.state.pos))return++this.state.pos,String.fromCodePoint(r)}else{for(var a=0,n=!1;a++<10&&this.state.pos<this.length&&!(n=59===this.codePointAtPos(this.state.pos));)++this.state.pos;if(n){var s=this.input.slice(e,this.state.pos),o=Pv[s];if(++this.state.pos,o)return o}}return this.state.pos=e,"&"},r.jsxReadWord=function(){var e,t=this.state.pos;do{e=this.input.charCodeAt(++this.state.pos)}while(Fr(e)||45===e);this.finishToken(141,this.input.slice(t,this.state.pos))},r.jsxParseIdentifier=function(){var e=this.startNode();return this.match(141)?e.name=this.state.value:ub(this.state.type)?e.name=fb(this.state.type):this.unexpected(),this.next(),this.finishNode(e,"JSXIdentifier")},r.jsxParseNamespacedName=function(){var e=this.state.startLoc,t=this.jsxParseIdentifier();if(!this.eat(14))return t;var r=this.startNodeAt(e);return r.namespace=t,r.name=this.jsxParseIdentifier(),this.finishNode(r,"JSXNamespacedName")},r.jsxParseElementName=function(){var e=this.state.startLoc,t=this.jsxParseNamespacedName();if("JSXNamespacedName"===t.type)return t;for(;this.eat(16);){var r=this.startNodeAt(e);r.object=t,r.property=this.jsxParseIdentifier(),t=this.finishNode(r,"JSXMemberExpression")}return t},r.jsxParseAttributeValue=function(){var e;switch(this.state.type){case 5:return e=this.startNode(),this.setContext(Uh.brace),this.next(),"JSXEmptyExpression"===(e=this.jsxParseExpressionContainer(e,Uh.j_oTag)).expression.type&&this.raise(Nv.AttributeIsEmpty,e),e;case 143:case 134:return this.parseExprAtom();default:throw this.raise(Nv.UnsupportedJsxValue,this.state.startLoc)}},r.jsxParseEmptyExpression=function(){var e=this.startNodeAt(this.state.lastTokEndLoc);return this.finishNodeAt(e,"JSXEmptyExpression",this.state.startLoc)},r.jsxParseSpreadChild=function(e){return this.next(),e.expression=this.parseExpression(),this.setContext(Uh.j_expr),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(e,"JSXSpreadChild")},r.jsxParseExpressionContainer=function(e,t){if(this.match(8))e.expression=this.jsxParseEmptyExpression();else{var r=this.parseExpression();e.expression=r}return this.setContext(t),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(e,"JSXExpressionContainer")},r.jsxParseAttribute=function(){var e=this.startNode();return this.match(5)?(this.setContext(Uh.brace),this.next(),this.expect(21),e.argument=this.parseMaybeAssignAllowIn(),this.setContext(Uh.j_oTag),this.state.canStartJSXElement=!0,this.expect(8),this.finishNode(e,"JSXSpreadAttribute")):(e.name=this.jsxParseNamespacedName(),e.value=this.eat(29)?this.jsxParseAttributeValue():null,this.finishNode(e,"JSXAttribute"))},r.jsxParseOpeningElementAt=function(e){var t=this.startNodeAt(e);return this.eat(144)?this.finishNode(t,"JSXOpeningFragment"):(t.name=this.jsxParseElementName(),this.jsxParseOpeningElementAfterName(t))},r.jsxParseOpeningElementAfterName=function(e){for(var t=[];!this.match(56)&&!this.match(144);)t.push(this.jsxParseAttribute());return e.attributes=t,e.selfClosing=this.eat(56),this.expect(144),this.finishNode(e,"JSXOpeningElement")},r.jsxParseClosingElementAt=function(e){var t=this.startNodeAt(e);return this.eat(144)?this.finishNode(t,"JSXClosingFragment"):(t.name=this.jsxParseElementName(),this.expect(144),this.finishNode(t,"JSXClosingElement"))},r.jsxParseElementAt=function(e){var t=this.startNodeAt(e),r=[],a=this.jsxParseOpeningElementAt(e),n=null;if(!a.selfClosing){e:for(;;)switch(this.state.type){case 143:if(e=this.state.startLoc,this.next(),this.eat(56)){n=this.jsxParseClosingElementAt(e);break e}r.push(this.jsxParseElementAt(e));break;case 142:r.push(this.parseLiteral(this.state.value,"JSXText"));break;case 5:var s=this.startNode();this.setContext(Uh.brace),this.next(),this.match(21)?r.push(this.jsxParseSpreadChild(s)):r.push(this.jsxParseExpressionContainer(s,Uh.j_expr));break;default:this.unexpected()}Bv(a)&&!Bv(n)&&null!==n?this.raise(Nv.MissingClosingTagFragment,n):!Bv(a)&&Bv(n)?this.raise(Nv.MissingClosingTagElement,n,{openingTagName:Mv(a.name)}):Bv(a)||Bv(n)||Mv(n.name)!==Mv(a.name)&&this.raise(Nv.MissingClosingTagElement,n,{openingTagName:Mv(a.name)})}if(Bv(a)?(t.openingFragment=a,t.closingFragment=n):(t.openingElement=a,t.closingElement=n),t.children=r,this.match(47))throw this.raise(Nv.UnwrappedAdjacentJSXElements,this.state.startLoc);return Bv(a)?this.finishNode(t,"JSXFragment"):this.finishNode(t,"JSXElement")},r.jsxParseElement=function(){var e=this.state.startLoc;return this.next(),this.jsxParseElementAt(e)},r.setContext=function(e){var t=this.state.context;t[t.length-1]=e},r.parseExprAtom=function(t){return this.match(143)?this.jsxParseElement():this.match(47)&&33!==this.input.charCodeAt(this.state.pos)?(this.replaceToken(143),this.jsxParseElement()):e.prototype.parseExprAtom.call(this,t)},r.skipSpace=function(){this.curContext().preserveSpace||e.prototype.skipSpace.call(this)},r.getTokenFromCode=function(t){var r=this.curContext();if(r!==Uh.j_expr){if(r===Uh.j_oTag||r===Uh.j_cTag){if(Mr(t))return void this.jsxReadWord();if(62===t)return++this.state.pos,void this.finishToken(144);if((34===t||39===t)&&r===Uh.j_oTag)return void this.jsxReadString(t)}if(60===t&&this.state.canStartJSXElement&&33!==this.input.charCodeAt(this.state.pos+1))return++this.state.pos,void this.finishToken(143);e.prototype.getTokenFromCode.call(this,t)}else this.jsxReadToken()},r.updateContext=function(e){var t=this.state,r=t.context,a=t.type;if(56===a&&143===e)r.splice(-2,2,Uh.j_cTag),this.state.canStartJSXElement=!1;else if(143===a)r.push(Uh.j_oTag);else if(144===a){var n=r[r.length-1];n===Uh.j_oTag&&56===e||n===Uh.j_cTag?(r.pop(),this.state.canStartJSXElement=r[r.length-1]===Uh.j_expr):(this.setContext(Uh.j_expr),this.state.canStartJSXElement=!0)}else this.state.canStartJSXElement=eb[a]},o(t)}(e)},flow:function(e){return function(e){function t(){for(var t,r=arguments.length,a=new Array(r),n=0;n<r;n++)a[n]=arguments[n];return(t=e.call.apply(e,[this].concat(a))||this).flowPragma=void 0,t}c(t,e);var r=t.prototype;return r.getScopeHandler=function(){return Rv},r.shouldParseTypes=function(){return this.getPluginOption("flow","all")||"flow"===this.flowPragma},r.finishToken=function(t,r){134!==t&&13!==t&&28!==t&&void 0===this.flowPragma&&(this.flowPragma=null),e.prototype.finishToken.call(this,t,r)},r.addComment=function(t){if(void 0===this.flowPragma){var r=Tv.exec(t.value);if(r)if("flow"===r[1])this.flowPragma="flow";else{if("noflow"!==r[1])throw new Error("Unexpected flow pragma");this.flowPragma="noflow"}else;}e.prototype.addComment.call(this,t)},r.flowParseTypeInitialiser=function(e){var t=this.state.inType;this.state.inType=!0,this.expect(e||14);var r=this.flowParseType();return this.state.inType=t,r},r.flowParsePredicate=function(){var t=this.startNode(),r=this.state.startLoc;return this.next(),this.expectContextual(110),this.state.lastTokStartLoc.index>r.index+1&&this.raise(wv.UnexpectedSpaceBetweenModuloChecks,r),this.eat(10)?(t.value=e.prototype.parseExpression.call(this),this.expect(11),this.finishNode(t,"DeclaredPredicate")):this.finishNode(t,"InferredPredicate")},r.flowParseTypeAndPredicateInitialiser=function(){var e=this.state.inType;this.state.inType=!0,this.expect(14);var t=null,r=null;return this.match(54)?(this.state.inType=e,r=this.flowParsePredicate()):(t=this.flowParseType(),this.state.inType=e,this.match(54)&&(r=this.flowParsePredicate())),[t,r]},r.flowParseDeclareClass=function(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")},r.flowParseDeclareFunction=function(e){this.next();var t=e.id=this.parseIdentifier(),r=this.startNode(),a=this.startNode();this.match(47)?r.typeParameters=this.flowParseTypeParameterDeclaration():r.typeParameters=null,this.expect(10);var n=this.flowParseFunctionTypeParams();r.params=n.params,r.rest=n.rest,r.this=n._this,this.expect(11);var s=this.flowParseTypeAndPredicateInitialiser();return r.returnType=s[0],e.predicate=s[1],a.typeAnnotation=this.finishNode(r,"FunctionTypeAnnotation"),t.typeAnnotation=this.finishNode(a,"TypeAnnotation"),this.resetEndLocation(t),this.semicolon(),this.scope.declareName(e.id.name,iv,e.id.loc.start),this.finishNode(e,"DeclareFunction")},r.flowParseDeclare=function(e,t){if(this.match(80))return this.flowParseDeclareClass(e);if(this.match(68))return this.flowParseDeclareFunction(e);if(this.match(74))return this.flowParseDeclareVariable(e);if(this.eatContextual(127))return this.match(16)?this.flowParseDeclareModuleExports(e):(t&&this.raise(wv.NestedDeclareModule,this.state.lastTokStartLoc),this.flowParseDeclareModule(e));if(this.isContextual(130))return this.flowParseDeclareTypeAlias(e);if(this.isContextual(131))return this.flowParseDeclareOpaqueType(e);if(this.isContextual(129))return this.flowParseDeclareInterface(e);if(this.match(82))return this.flowParseDeclareExportDeclaration(e,t);throw this.unexpected()},r.flowParseDeclareVariable=function(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(!0),this.scope.declareName(e.id.name,Jb,e.id.loc.start),this.semicolon(),this.finishNode(e,"DeclareVariable")},r.flowParseDeclareModule=function(t){var r=this;this.scope.enter(vb),this.match(134)?t.id=e.prototype.parseExprAtom.call(this):t.id=this.parseIdentifier();var a=t.body=this.startNode(),n=a.body=[];for(this.expect(5);!this.match(8);){var s=this.startNode();this.match(83)?(this.next(),this.isContextual(130)||this.match(87)||this.raise(wv.InvalidNonTypeImportInDeclareModule,this.state.lastTokStartLoc),n.push(e.prototype.parseImport.call(this,s))):(this.expectContextual(125,wv.UnsupportedStatementInDeclareModule),n.push(this.flowParseDeclare(s,!0)))}this.scope.exit(),this.expect(8),this.finishNode(a,"BlockStatement");var o=null,i=!1;return n.forEach(function(e){!function(e){return"DeclareExportAllDeclaration"===e.type||"DeclareExportDeclaration"===e.type&&(!e.declaration||"TypeAlias"!==e.declaration.type&&"InterfaceDeclaration"!==e.declaration.type)}(e)?"DeclareModuleExports"===e.type&&(i&&r.raise(wv.DuplicateDeclareModuleExports,e),"ES"===o&&r.raise(wv.AmbiguousDeclareModuleKind,e),o="CommonJS",i=!0):("CommonJS"===o&&r.raise(wv.AmbiguousDeclareModuleKind,e),o="ES")}),t.kind=o||"CommonJS",this.finishNode(t,"DeclareModule")},r.flowParseDeclareExportDeclaration=function(e,t){if(this.expect(82),this.eat(65))return this.match(68)||this.match(80)?e.declaration=this.flowParseDeclare(this.startNode()):(e.declaration=this.flowParseType(),this.semicolon()),e.default=!0,this.finishNode(e,"DeclareExportDeclaration");if(this.match(75)||this.isLet()||(this.isContextual(130)||this.isContextual(129))&&!t){var r=this.state.value;throw this.raise(wv.UnsupportedDeclareExportKind,this.state.startLoc,{unsupportedExportKind:r,suggestion:Sv[r]})}if(this.match(74)||this.match(68)||this.match(80)||this.isContextual(131))return e.declaration=this.flowParseDeclare(this.startNode()),e.default=!1,this.finishNode(e,"DeclareExportDeclaration");if(this.match(55)||this.match(5)||this.isContextual(129)||this.isContextual(130)||this.isContextual(131))return"ExportNamedDeclaration"===(e=this.parseExport(e,null)).type?(e.default=!1,delete e.exportKind,this.castNodeTo(e,"DeclareExportDeclaration")):this.castNodeTo(e,"DeclareExportAllDeclaration");throw this.unexpected()},r.flowParseDeclareModuleExports=function(e){return this.next(),this.expectContextual(111),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")},r.flowParseDeclareTypeAlias=function(e){this.next();var t=this.flowParseTypeAlias(e);return this.castNodeTo(t,"DeclareTypeAlias"),t},r.flowParseDeclareOpaqueType=function(e){this.next();var t=this.flowParseOpaqueType(e,!0);return this.castNodeTo(t,"DeclareOpaqueType"),t},r.flowParseDeclareInterface=function(e){return this.next(),this.flowParseInterfaceish(e,!1),this.finishNode(e,"DeclareInterface")},r.flowParseInterfaceish=function(e,t){if(e.id=this.flowParseRestrictedIdentifier(!t,!0),this.scope.declareName(e.id.name,t?Yb:Kb,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],this.eat(81))do{e.extends.push(this.flowParseInterfaceExtends())}while(!t&&this.eat(12));if(t){if(e.implements=[],e.mixins=[],this.eatContextual(117))do{e.mixins.push(this.flowParseInterfaceExtends())}while(this.eat(12));if(this.eatContextual(113))do{e.implements.push(this.flowParseInterfaceExtends())}while(this.eat(12))}e.body=this.flowParseObjectType({allowStatic:t,allowExact:!1,allowSpread:!1,allowProto:t,allowInexact:!1})},r.flowParseInterfaceExtends=function(){var e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.match(47)?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")},r.flowParseInterface=function(e){return this.flowParseInterfaceish(e,!1),this.finishNode(e,"InterfaceDeclaration")},r.checkNotUnderscore=function(e){"_"===e&&this.raise(wv.UnexpectedReservedUnderscore,this.state.startLoc)},r.checkReservedType=function(e,t,r){jv.has(e)&&this.raise(r?wv.AssignReservedType:wv.UnexpectedReservedType,t,{reservedType:e})},r.flowParseRestrictedIdentifier=function(e,t){return this.checkReservedType(this.state.value,this.state.startLoc,t),this.parseIdentifier(e)},r.flowParseTypeAlias=function(e){return e.id=this.flowParseRestrictedIdentifier(!1,!0),this.scope.declareName(e.id.name,Kb,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(29),this.semicolon(),this.finishNode(e,"TypeAlias")},r.flowParseOpaqueType=function(e,t){return this.expectContextual(130),e.id=this.flowParseRestrictedIdentifier(!0,!0),this.scope.declareName(e.id.name,Kb,e.id.loc.start),this.match(47)?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.supertype=null,this.match(14)&&(e.supertype=this.flowParseTypeInitialiser(14)),e.impltype=null,t||(e.impltype=this.flowParseTypeInitialiser(29)),this.semicolon(),this.finishNode(e,"OpaqueType")},r.flowParseTypeParameter=function(e){void 0===e&&(e=!1);var t=this.state.startLoc,r=this.startNode(),a=this.flowParseVariance(),n=this.flowParseTypeAnnotatableIdentifier();return r.name=n.name,r.variance=a,r.bound=n.typeAnnotation,this.match(29)?(this.eat(29),r.default=this.flowParseType()):e&&this.raise(wv.MissingTypeParamDefault,t),this.finishNode(r,"TypeParameter")},r.flowParseTypeParameterDeclaration=function(){var e=this.state.inType,t=this.startNode();t.params=[],this.state.inType=!0,this.match(47)||this.match(143)?this.next():this.unexpected();var r=!1;do{var a=this.flowParseTypeParameter(r);t.params.push(a),a.default&&(r=!0),this.match(48)||this.expect(12)}while(!this.match(48));return this.expect(48),this.state.inType=e,this.finishNode(t,"TypeParameterDeclaration")},r.flowInTopLevelContext=function(e){if(this.curContext()===Uh.brace)return e();var t=this.state.context;this.state.context=[t[0]];try{return e()}finally{this.state.context=t}},r.flowParseTypeParameterInstantiationInExpression=function(){if(47===this.reScan_lt())return this.flowParseTypeParameterInstantiation()},r.flowParseTypeParameterInstantiation=function(){var e=this,t=this.startNode(),r=this.state.inType;return this.state.inType=!0,t.params=[],this.flowInTopLevelContext(function(){e.expect(47);var r=e.state.noAnonFunctionType;for(e.state.noAnonFunctionType=!1;!e.match(48);)t.params.push(e.flowParseType()),e.match(48)||e.expect(12);e.state.noAnonFunctionType=r}),this.state.inType=r,this.state.inType||this.curContext()!==Uh.brace||this.reScan_lt_gt(),this.expect(48),this.finishNode(t,"TypeParameterInstantiation")},r.flowParseTypeParameterInstantiationCallOrNew=function(){if(47!==this.reScan_lt())return null;var e=this.startNode(),t=this.state.inType;for(e.params=[],this.state.inType=!0,this.expect(47);!this.match(48);)e.params.push(this.flowParseTypeOrImplicitInstantiation()),this.match(48)||this.expect(12);return this.expect(48),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")},r.flowParseInterfaceType=function(){var e=this.startNode();if(this.expectContextual(129),e.extends=[],this.eat(81))do{e.extends.push(this.flowParseInterfaceExtends())}while(this.eat(12));return e.body=this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!1,allowProto:!1,allowInexact:!1}),this.finishNode(e,"InterfaceTypeAnnotation")},r.flowParseObjectPropertyKey=function(){return this.match(135)||this.match(134)?e.prototype.parseExprAtom.call(this):this.parseIdentifier(!0)},r.flowParseObjectTypeIndexer=function(e,t,r){return e.static=t,14===this.lookahead().type?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(3),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.finishNode(e,"ObjectTypeIndexer")},r.flowParseObjectTypeInternalSlot=function(e,t){return e.static=t,e.id=this.flowParseObjectPropertyKey(),this.expect(3),this.expect(3),this.match(47)||this.match(10)?(e.method=!0,e.optional=!1,e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.loc.start))):(e.method=!1,this.eat(17)&&(e.optional=!0),e.value=this.flowParseTypeInitialiser()),this.finishNode(e,"ObjectTypeInternalSlot")},r.flowParseObjectTypeMethodish=function(e){for(e.params=[],e.rest=null,e.typeParameters=null,e.this=null,this.match(47)&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(10),this.match(78)&&(e.this=this.flowParseFunctionTypeParam(!0),e.this.name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.params.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(e.rest=this.flowParseFunctionTypeParam(!1)),this.expect(11),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")},r.flowParseObjectTypeCallProperty=function(e,t){var r=this.startNode();return e.static=t,e.value=this.flowParseObjectTypeMethodish(r),this.finishNode(e,"ObjectTypeCallProperty")},r.flowParseObjectType=function(e){var t=e.allowStatic,r=e.allowExact,a=e.allowSpread,n=e.allowProto,s=e.allowInexact,o=this.state.inType;this.state.inType=!0;var i,d,c=this.startNode();c.callProperties=[],c.properties=[],c.indexers=[],c.internalSlots=[];var l=!1;for(r&&this.match(6)?(this.expect(6),i=9,d=!0):(this.expect(5),i=8,d=!1),c.exact=d;!this.match(i);){var u=!1,p=null,f=null,g=this.startNode();if(n&&this.isContextual(118)){var m=this.lookahead();14!==m.type&&17!==m.type&&(this.next(),p=this.state.startLoc,t=!1)}if(t&&this.isContextual(106)){var y=this.lookahead();14!==y.type&&17!==y.type&&(this.next(),u=!0)}var h=this.flowParseVariance();if(this.eat(0))null!=p&&this.unexpected(p),this.eat(0)?(h&&this.unexpected(h.loc.start),c.internalSlots.push(this.flowParseObjectTypeInternalSlot(g,u))):c.indexers.push(this.flowParseObjectTypeIndexer(g,u,h));else if(this.match(10)||this.match(47))null!=p&&this.unexpected(p),h&&this.unexpected(h.loc.start),c.callProperties.push(this.flowParseObjectTypeCallProperty(g,u));else{var b="init";if(this.isContextual(99)||this.isContextual(104))db(this.lookahead().type)&&(b=this.state.value,this.next());var v=this.flowParseObjectTypeProperty(g,u,p,h,b,a,null!=s?s:!d);null===v?(l=!0,f=this.state.lastTokStartLoc):c.properties.push(v)}this.flowObjectTypeSemicolon(),!f||this.match(8)||this.match(9)||this.raise(wv.UnexpectedExplicitInexactInObject,f)}this.expect(i),a&&(c.inexact=l);var x=this.finishNode(c,"ObjectTypeAnnotation");return this.state.inType=o,x},r.flowParseObjectTypeProperty=function(e,t,r,a,n,s,o){if(this.eat(21))return this.match(12)||this.match(13)||this.match(8)||this.match(9)?(s?o||this.raise(wv.InexactInsideExact,this.state.lastTokStartLoc):this.raise(wv.InexactInsideNonObject,this.state.lastTokStartLoc),a&&this.raise(wv.InexactVariance,a),null):(s||this.raise(wv.UnexpectedSpreadType,this.state.lastTokStartLoc),null!=r&&this.unexpected(r),a&&this.raise(wv.SpreadVariance,a),e.argument=this.flowParseType(),this.finishNode(e,"ObjectTypeSpreadProperty"));e.key=this.flowParseObjectPropertyKey(),e.static=t,e.proto=null!=r,e.kind=n;var i=!1;return this.match(47)||this.match(10)?(e.method=!0,null!=r&&this.unexpected(r),a&&this.unexpected(a.loc.start),e.value=this.flowParseObjectTypeMethodish(this.startNodeAt(e.loc.start)),"get"!==n&&"set"!==n||this.flowCheckGetterSetterParams(e),!s&&"constructor"===e.key.name&&e.value.this&&this.raise(wv.ThisParamBannedInConstructor,e.value.this)):("init"!==n&&this.unexpected(),e.method=!1,this.eat(17)&&(i=!0),e.value=this.flowParseTypeInitialiser(),e.variance=a),e.optional=i,this.finishNode(e,"ObjectTypeProperty")},r.flowCheckGetterSetterParams=function(e){var t="get"===e.kind?0:1,r=e.value.params.length+(e.value.rest?1:0);e.value.this&&this.raise("get"===e.kind?wv.GetterMayNotHaveThisParam:wv.SetterMayNotHaveThisParam,e.value.this),r!==t&&this.raise("get"===e.kind?Rh.BadGetterArity:Rh.BadSetterArity,e),"set"===e.kind&&e.value.rest&&this.raise(Rh.BadSetterRestParameter,e)},r.flowObjectTypeSemicolon=function(){this.eat(13)||this.eat(12)||this.match(8)||this.match(9)||this.unexpected()},r.flowParseQualifiedTypeIdentifier=function(e,t){null!=e||(e=this.state.startLoc);for(var r=t||this.flowParseRestrictedIdentifier(!0);this.eat(16);){var a=this.startNodeAt(e);a.qualification=r,a.id=this.flowParseRestrictedIdentifier(!0),r=this.finishNode(a,"QualifiedTypeIdentifier")}return r},r.flowParseGenericType=function(e,t){var r=this.startNodeAt(e);return r.typeParameters=null,r.id=this.flowParseQualifiedTypeIdentifier(e,t),this.match(47)&&(r.typeParameters=this.flowParseTypeParameterInstantiation()),this.finishNode(r,"GenericTypeAnnotation")},r.flowParseTypeofType=function(){var e=this.startNode();return this.expect(87),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")},r.flowParseTupleType=function(){var e=this.startNode();for(e.types=[],this.expect(0);this.state.pos<this.length&&!this.match(3)&&(e.types.push(this.flowParseType()),!this.match(3));)this.expect(12);return this.expect(3),this.finishNode(e,"TupleTypeAnnotation")},r.flowParseFunctionTypeParam=function(e){var t=null,r=!1,a=null,n=this.startNode(),s=this.lookahead(),o=78===this.state.type;return 14===s.type||17===s.type?(o&&!e&&this.raise(wv.ThisParamMustBeFirst,n),t=this.parseIdentifier(o),this.eat(17)&&(r=!0,o&&this.raise(wv.ThisParamMayNotBeOptional,n)),a=this.flowParseTypeInitialiser()):a=this.flowParseType(),n.name=t,n.optional=r,n.typeAnnotation=a,this.finishNode(n,"FunctionTypeParam")},r.reinterpretTypeAsFunctionTypeParam=function(e){var t=this.startNodeAt(e.loc.start);return t.name=null,t.optional=!1,t.typeAnnotation=e,this.finishNode(t,"FunctionTypeParam")},r.flowParseFunctionTypeParams=function(e){void 0===e&&(e=[]);var t=null,r=null;for(this.match(78)&&((r=this.flowParseFunctionTypeParam(!0)).name=null,this.match(11)||this.expect(12));!this.match(11)&&!this.match(21);)e.push(this.flowParseFunctionTypeParam(!1)),this.match(11)||this.expect(12);return this.eat(21)&&(t=this.flowParseFunctionTypeParam(!1)),{params:e,rest:t,_this:r}},r.flowIdentToTypeAnnotation=function(e,t,r){switch(r.name){case"any":return this.finishNode(t,"AnyTypeAnnotation");case"bool":case"boolean":return this.finishNode(t,"BooleanTypeAnnotation");case"mixed":return this.finishNode(t,"MixedTypeAnnotation");case"empty":return this.finishNode(t,"EmptyTypeAnnotation");case"number":return this.finishNode(t,"NumberTypeAnnotation");case"string":return this.finishNode(t,"StringTypeAnnotation");case"symbol":return this.finishNode(t,"SymbolTypeAnnotation");default:return this.checkNotUnderscore(r.name),this.flowParseGenericType(e,r)}},r.flowParsePrimaryType=function(){var t,r,a=this.state.startLoc,n=this.startNode(),s=!1,o=this.state.noAnonFunctionType;switch(this.state.type){case 5:return this.flowParseObjectType({allowStatic:!1,allowExact:!1,allowSpread:!0,allowProto:!1,allowInexact:!0});case 6:return this.flowParseObjectType({allowStatic:!1,allowExact:!0,allowSpread:!0,allowProto:!1,allowInexact:!1});case 0:return this.state.noAnonFunctionType=!1,r=this.flowParseTupleType(),this.state.noAnonFunctionType=o,r;case 47:var i=this.startNode();return i.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(10),t=this.flowParseFunctionTypeParams(),i.params=t.params,i.rest=t.rest,i.this=t._this,this.expect(11),this.expect(19),i.returnType=this.flowParseType(),this.finishNode(i,"FunctionTypeAnnotation");case 10:var d=this.startNode();if(this.next(),!this.match(11)&&!this.match(21))if(ob(this.state.type)||this.match(78)){var c=this.lookahead().type;s=17!==c&&14!==c}else s=!0;if(s){if(this.state.noAnonFunctionType=!1,r=this.flowParseType(),this.state.noAnonFunctionType=o,this.state.noAnonFunctionType||!(this.match(12)||this.match(11)&&19===this.lookahead().type))return this.expect(11),r;this.eat(12)}return t=r?this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(r)]):this.flowParseFunctionTypeParams(),d.params=t.params,d.rest=t.rest,d.this=t._this,this.expect(11),this.expect(19),d.returnType=this.flowParseType(),d.typeParameters=null,this.finishNode(d,"FunctionTypeAnnotation");case 134:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case 85:case 86:return n.value=this.match(85),this.next(),this.finishNode(n,"BooleanLiteralTypeAnnotation");case 53:if("-"===this.state.value){if(this.next(),this.match(135))return this.parseLiteralAtNode(-this.state.value,"NumberLiteralTypeAnnotation",n);if(this.match(136))return this.parseLiteralAtNode(-this.state.value,"BigIntLiteralTypeAnnotation",n);throw this.raise(wv.UnexpectedSubtractionOperand,this.state.startLoc)}throw this.unexpected();case 135:return this.parseLiteral(this.state.value,"NumberLiteralTypeAnnotation");case 136:return this.parseLiteral(this.state.value,"BigIntLiteralTypeAnnotation");case 88:return this.next(),this.finishNode(n,"VoidTypeAnnotation");case 84:return this.next(),this.finishNode(n,"NullLiteralTypeAnnotation");case 78:return this.next(),this.finishNode(n,"ThisTypeAnnotation");case 55:return this.next(),this.finishNode(n,"ExistsTypeAnnotation");case 87:return this.flowParseTypeofType();default:if(ub(this.state.type)){var l=fb(this.state.type);return this.next(),e.prototype.createIdentifier.call(this,n,l)}if(ob(this.state.type))return this.isContextual(129)?this.flowParseInterfaceType():this.flowIdentToTypeAnnotation(a,n,this.parseIdentifier())}throw this.unexpected()},r.flowParsePostfixType=function(){for(var e=this.state.startLoc,t=this.flowParsePrimaryType(),r=!1;(this.match(0)||this.match(18))&&!this.canInsertSemicolon();){var a=this.startNodeAt(e),n=this.eat(18);r=r||n,this.expect(0),!n&&this.match(3)?(a.elementType=t,this.next(),t=this.finishNode(a,"ArrayTypeAnnotation")):(a.objectType=t,a.indexType=this.flowParseType(),this.expect(3),r?(a.optional=n,t=this.finishNode(a,"OptionalIndexedAccessType")):t=this.finishNode(a,"IndexedAccessType"))}return t},r.flowParsePrefixType=function(){var e=this.startNode();return this.eat(17)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()},r.flowParseAnonFunctionWithoutParens=function(){var e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(19)){var t=this.startNodeAt(e.loc.start);return t.params=[this.reinterpretTypeAsFunctionTypeParam(e)],t.rest=null,t.this=null,t.returnType=this.flowParseType(),t.typeParameters=null,this.finishNode(t,"FunctionTypeAnnotation")}return e},r.flowParseIntersectionType=function(){var e=this.startNode();this.eat(45);var t=this.flowParseAnonFunctionWithoutParens();for(e.types=[t];this.eat(45);)e.types.push(this.flowParseAnonFunctionWithoutParens());return 1===e.types.length?t:this.finishNode(e,"IntersectionTypeAnnotation")},r.flowParseUnionType=function(){var e=this.startNode();this.eat(43);var t=this.flowParseIntersectionType();for(e.types=[t];this.eat(43);)e.types.push(this.flowParseIntersectionType());return 1===e.types.length?t:this.finishNode(e,"UnionTypeAnnotation")},r.flowParseType=function(){var e=this.state.inType;this.state.inType=!0;var t=this.flowParseUnionType();return this.state.inType=e,t},r.flowParseTypeOrImplicitInstantiation=function(){if(132===this.state.type&&"_"===this.state.value){var e=this.state.startLoc,t=this.parseIdentifier();return this.flowParseGenericType(e,t)}return this.flowParseType()},r.flowParseTypeAnnotation=function(){var e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")},r.flowParseTypeAnnotatableIdentifier=function(e){var t=e?this.parseIdentifier():this.flowParseRestrictedIdentifier();return this.match(14)&&(t.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(t)),t},r.typeCastToParameter=function(e){return e.expression.typeAnnotation=e.typeAnnotation,this.resetEndLocation(e.expression,e.typeAnnotation.loc.end),e.expression},r.flowParseVariance=function(){var e=null;return this.match(53)?(e=this.startNode(),"+"===this.state.value?e.kind="plus":e.kind="minus",this.next(),this.finishNode(e,"Variance")):e},r.parseFunctionBody=function(t,r,a){var n=this;void 0===a&&(a=!1),r?this.forwardNoArrowParamsConversionAt(t,function(){return e.prototype.parseFunctionBody.call(n,t,!0,a)}):e.prototype.parseFunctionBody.call(this,t,!1,a)},r.parseFunctionBodyAndFinish=function(t,r,a){if(void 0===a&&(a=!1),this.match(14)){var n=this.startNode(),s=this.flowParseTypeAndPredicateInitialiser();n.typeAnnotation=s[0],t.predicate=s[1],t.returnType=n.typeAnnotation?this.finishNode(n,"TypeAnnotation"):null}return e.prototype.parseFunctionBodyAndFinish.call(this,t,r,a)},r.parseStatementLike=function(t){if(this.state.strict&&this.isContextual(129)){if(ib(this.lookahead().type)){var r=this.startNode();return this.next(),this.flowParseInterface(r)}}else if(this.isContextual(126)){var a=this.startNode();return this.next(),this.flowParseEnumDeclaration(a)}var n=e.prototype.parseStatementLike.call(this,t);return void 0!==this.flowPragma||this.isValidDirective(n)||(this.flowPragma=null),n},r.parseExpressionStatement=function(t,r,a){if("Identifier"===r.type)if("declare"===r.name){if(this.match(80)||ob(this.state.type)||this.match(68)||this.match(74)||this.match(82))return this.flowParseDeclare(t)}else if(ob(this.state.type)){if("interface"===r.name)return this.flowParseInterface(t);if("type"===r.name)return this.flowParseTypeAlias(t);if("opaque"===r.name)return this.flowParseOpaqueType(t,!1)}return e.prototype.parseExpressionStatement.call(this,t,r,a)},r.shouldParseExportDeclaration=function(){var t=this.state.type;return 126===t||lb(t)?!this.state.containsEsc:e.prototype.shouldParseExportDeclaration.call(this)},r.isExportDefaultSpecifier=function(){var t=this.state.type;return 126===t||lb(t)?this.state.containsEsc:e.prototype.isExportDefaultSpecifier.call(this)},r.parseExportDefaultExpression=function(){if(this.isContextual(126)){var t=this.startNode();return this.next(),this.flowParseEnumDeclaration(t)}return e.prototype.parseExportDefaultExpression.call(this)},r.parseConditional=function(e,t,r){var a=this;if(!this.match(17))return e;if(this.state.maybeInArrowParameters){var n=this.lookaheadCharCode();if(44===n||61===n||58===n||41===n)return this.setOptionalParametersError(r),e}this.expect(17);var s=this.state.clone(),o=this.state.noArrowAt,i=this.startNodeAt(t),d=this.tryParseConditionalConsequent(),c=d.consequent,l=d.failed,u=this.getArrowLikeExpressions(c),p=u[0],f=u[1];if(l||f.length>0){var g=[].concat(o);if(f.length>0){this.state=s,this.state.noArrowAt=g;for(var m=0;m<f.length;m++)g.push(f[m].start);var y=this.tryParseConditionalConsequent();c=y.consequent,l=y.failed;var h=this.getArrowLikeExpressions(c);p=h[0],f=h[1]}if(l&&p.length>1&&this.raise(wv.AmbiguousConditionalArrow,s.startLoc),l&&1===p.length){this.state=s,g.push(p[0].start),this.state.noArrowAt=g;var b=this.tryParseConditionalConsequent();c=b.consequent,l=b.failed}}return this.getArrowLikeExpressions(c,!0),this.state.noArrowAt=o,this.expect(14),i.test=e,i.consequent=c,i.alternate=this.forwardNoArrowParamsConversionAt(i,function(){return a.parseMaybeAssign(void 0,void 0)}),this.finishNode(i,"ConditionalExpression")},r.tryParseConditionalConsequent=function(){this.state.noArrowParamsConversionAt.push(this.state.start);var e=this.parseMaybeAssignAllowIn(),t=!this.match(14);return this.state.noArrowParamsConversionAt.pop(),{consequent:e,failed:t}},r.getArrowLikeExpressions=function(e,t){for(var r=this,a=[e],n=[];0!==a.length;){var s=a.pop();"ArrowFunctionExpression"===s.type&&"BlockStatement"!==s.body.type?(s.typeParameters||!s.returnType?this.finishArrowValidation(s):n.push(s),a.push(s.body)):"ConditionalExpression"===s.type&&(a.push(s.consequent),a.push(s.alternate))}return t?(n.forEach(function(e){return r.finishArrowValidation(e)}),[n,[]]):function(e,t){for(var r=[],a=[],n=0;n<e.length;n++)(t(e[n],n,e)?r:a).push(e[n]);return[r,a]}(n,function(e){return e.params.every(function(e){return r.isAssignable(e,!0)})})},r.finishArrowValidation=function(t){var r;this.toAssignableList(t.params,null==(r=t.extra)?void 0:r.trailingCommaLoc,!1),this.scope.enter(_b|jb),e.prototype.checkParams.call(this,t,!1,!0),this.scope.exit()},r.forwardNoArrowParamsConversionAt=function(e,t){var r;return this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(e.start))?(this.state.noArrowParamsConversionAt.push(this.state.start),r=t(),this.state.noArrowParamsConversionAt.pop()):r=t(),r},r.parseParenItem=function(t,r){var a=e.prototype.parseParenItem.call(this,t,r);if(this.eat(17)&&(a.optional=!0,this.resetEndLocation(t)),this.match(14)){var n=this.startNodeAt(r);return n.expression=a,n.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(n,"TypeCastExpression")}return a},r.assertModuleNodeAllowed=function(t){"ImportDeclaration"===t.type&&("type"===t.importKind||"typeof"===t.importKind)||"ExportNamedDeclaration"===t.type&&"type"===t.exportKind||"ExportAllDeclaration"===t.type&&"type"===t.exportKind||e.prototype.assertModuleNodeAllowed.call(this,t)},r.parseExportDeclaration=function(t){if(this.isContextual(130)){t.exportKind="type";var r=this.startNode();return this.next(),this.match(5)?(t.specifiers=this.parseExportSpecifiers(!0),e.prototype.parseExportFrom.call(this,t),null):this.flowParseTypeAlias(r)}if(this.isContextual(131)){t.exportKind="type";var a=this.startNode();return this.next(),this.flowParseOpaqueType(a,!1)}if(this.isContextual(129)){t.exportKind="type";var n=this.startNode();return this.next(),this.flowParseInterface(n)}if(this.isContextual(126)){t.exportKind="value";var s=this.startNode();return this.next(),this.flowParseEnumDeclaration(s)}return e.prototype.parseExportDeclaration.call(this,t)},r.eatExportStar=function(t){return!!e.prototype.eatExportStar.call(this,t)||!(!this.isContextual(130)||55!==this.lookahead().type)&&(t.exportKind="type",this.next(),this.next(),!0)},r.maybeParseExportNamespaceSpecifier=function(t){var r=this.state.startLoc,a=e.prototype.maybeParseExportNamespaceSpecifier.call(this,t);return a&&"type"===t.exportKind&&this.unexpected(r),a},r.parseClassId=function(t,r,a){e.prototype.parseClassId.call(this,t,r,a),this.match(47)&&(t.typeParameters=this.flowParseTypeParameterDeclaration())},r.parseClassMember=function(t,r,a){var n=this.state.startLoc;if(this.isContextual(125)){if(e.prototype.parseClassMemberFromModifier.call(this,t,r))return;r.declare=!0}e.prototype.parseClassMember.call(this,t,r,a),r.declare&&("ClassProperty"!==r.type&&"ClassPrivateProperty"!==r.type&&"PropertyDefinition"!==r.type?this.raise(wv.DeclareClassElement,n):r.value&&this.raise(wv.DeclareClassFieldInitializer,r.value))},r.isIterator=function(e){return"iterator"===e||"asyncIterator"===e},r.readIterator=function(){var t=e.prototype.readWord1.call(this),r="@@"+t;this.isIterator(t)&&this.state.inType||this.raise(Rh.InvalidIdentifier,this.state.curPosition(),{identifierName:r}),this.finishToken(132,r)},r.getTokenFromCode=function(t){var r=this.input.charCodeAt(this.state.pos+1);123===t&&124===r?this.finishOp(6,2):!this.state.inType||62!==t&&60!==t?this.state.inType&&63===t?46===r?this.finishOp(18,2):this.finishOp(17,1):!function(e,t,r){return 64===e&&64===t&&Mr(r)}(t,r,this.input.charCodeAt(this.state.pos+2))?e.prototype.getTokenFromCode.call(this,t):(this.state.pos+=2,this.readIterator()):this.finishOp(62===t?48:47,1)},r.isAssignable=function(t,r){return"TypeCastExpression"===t.type?this.isAssignable(t.expression,r):e.prototype.isAssignable.call(this,t,r)},r.toAssignable=function(t,r){void 0===r&&(r=!1),r||"AssignmentExpression"!==t.type||"TypeCastExpression"!==t.left.type||(t.left=this.typeCastToParameter(t.left)),e.prototype.toAssignable.call(this,t,r)},r.toAssignableList=function(t,r,a){for(var n=0;n<t.length;n++){var s=t[n];"TypeCastExpression"===(null==s?void 0:s.type)&&(t[n]=this.typeCastToParameter(s))}e.prototype.toAssignableList.call(this,t,r,a)},r.toReferencedList=function(e,t){for(var r=0;r<e.length;r++){var a,n=e[r];!n||"TypeCastExpression"!==n.type||null!=(a=n.extra)&&a.parenthesized||!(e.length>1)&&t||this.raise(wv.TypeCastInPattern,n.typeAnnotation)}return e},r.parseArrayLike=function(t,r,a){var n=e.prototype.parseArrayLike.call(this,t,r,a);return null==a||this.state.maybeInArrowParameters||this.toReferencedList(n.elements),n},r.isValidLVal=function(t,r,a,n){return"TypeCastExpression"===t||e.prototype.isValidLVal.call(this,t,r,a,n)},r.parseClassProperty=function(t){return this.match(14)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),e.prototype.parseClassProperty.call(this,t)},r.parseClassPrivateProperty=function(t){return this.match(14)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),e.prototype.parseClassPrivateProperty.call(this,t)},r.isClassMethod=function(){return this.match(47)||e.prototype.isClassMethod.call(this)},r.isClassProperty=function(){return this.match(14)||e.prototype.isClassProperty.call(this)},r.isNonstaticConstructor=function(t){return!this.match(14)&&e.prototype.isNonstaticConstructor.call(this,t)},r.pushClassMethod=function(t,r,a,n,s,o){if(r.variance&&this.unexpected(r.variance.loc.start),delete r.variance,this.match(47)&&(r.typeParameters=this.flowParseTypeParameterDeclaration()),e.prototype.pushClassMethod.call(this,t,r,a,n,s,o),r.params&&s){var i=r.params;i.length>0&&this.isThisParam(i[0])&&this.raise(wv.ThisParamBannedInConstructor,r)}else if("MethodDefinition"===r.type&&s&&r.value.params){var d=r.value.params;d.length>0&&this.isThisParam(d[0])&&this.raise(wv.ThisParamBannedInConstructor,r)}},r.pushClassPrivateMethod=function(t,r,a,n){r.variance&&this.unexpected(r.variance.loc.start),delete r.variance,this.match(47)&&(r.typeParameters=this.flowParseTypeParameterDeclaration()),e.prototype.pushClassPrivateMethod.call(this,t,r,a,n)},r.parseClassSuper=function(t){if(e.prototype.parseClassSuper.call(this,t),t.superClass&&(this.match(47)||this.match(51))&&(t.superTypeParameters=this.flowParseTypeParameterInstantiationInExpression()),this.isContextual(113)){this.next();var r=t.implements=[];do{var a=this.startNode();a.id=this.flowParseRestrictedIdentifier(!0),this.match(47)?a.typeParameters=this.flowParseTypeParameterInstantiation():a.typeParameters=null,r.push(this.finishNode(a,"ClassImplements"))}while(this.eat(12))}},r.checkGetterSetterParams=function(t){e.prototype.checkGetterSetterParams.call(this,t);var r=this.getObjectOrClassMethodParams(t);if(r.length>0){var a=r[0];this.isThisParam(a)&&"get"===t.kind?this.raise(wv.GetterMayNotHaveThisParam,a):this.isThisParam(a)&&this.raise(wv.SetterMayNotHaveThisParam,a)}},r.parsePropertyNamePrefixOperator=function(e){e.variance=this.flowParseVariance()},r.parseObjPropValue=function(t,r,a,n,s,o,i){var d;t.variance&&this.unexpected(t.variance.loc.start),delete t.variance,this.match(47)&&!o&&(d=this.flowParseTypeParameterDeclaration(),this.match(10)||this.unexpected());var c=e.prototype.parseObjPropValue.call(this,t,r,a,n,s,o,i);return d&&((c.value||c).typeParameters=d),c},r.parseFunctionParamType=function(e){return this.eat(17)&&("Identifier"!==e.type&&this.raise(wv.PatternIsOptional,e),this.isThisParam(e)&&this.raise(wv.ThisParamMayNotBeOptional,e),e.optional=!0),this.match(14)?e.typeAnnotation=this.flowParseTypeAnnotation():this.isThisParam(e)&&this.raise(wv.ThisParamAnnotationRequired,e),this.match(29)&&this.isThisParam(e)&&this.raise(wv.ThisParamNoDefault,e),this.resetEndLocation(e),e},r.parseMaybeDefault=function(t,r){var a=e.prototype.parseMaybeDefault.call(this,t,r);return"AssignmentPattern"===a.type&&a.typeAnnotation&&a.right.start<a.typeAnnotation.start&&this.raise(wv.TypeBeforeInitializer,a.typeAnnotation),a},r.checkImportReflection=function(t){e.prototype.checkImportReflection.call(this,t),t.module&&"value"!==t.importKind&&this.raise(wv.ImportReflectionHasImportType,t.specifiers[0].loc.start)},r.parseImportSpecifierLocal=function(e,t,r){t.local=Ev(e)?this.flowParseRestrictedIdentifier(!0,!0):this.parseIdentifier(),e.specifiers.push(this.finishImportSpecifier(t,r))},r.isPotentialImportPhase=function(t){if(e.prototype.isPotentialImportPhase.call(this,t))return!0;if(this.isContextual(130)){if(!t)return!0;var r=this.lookaheadCharCode();return 123===r||42===r}return!t&&this.isContextual(87)},r.applyImportPhase=function(t,r,a,n){if(e.prototype.applyImportPhase.call(this,t,r,a,n),r){if(!a&&this.match(65))return;t.exportKind="type"===a?a:"value"}else"type"===a&&this.match(55)&&this.unexpected(),t.importKind="type"===a||"typeof"===a?a:"value"},r.parseImportSpecifier=function(e,t,r,a,n){var s=e.imported,o=null;"Identifier"===s.type&&("type"===s.name?o="type":"typeof"===s.name&&(o="typeof"));var i=!1;if(this.isContextual(93)&&!this.isLookaheadContextual("as")){var d=this.parseIdentifier(!0);null===o||ib(this.state.type)?(e.imported=s,e.importKind=null,e.local=this.parseIdentifier()):(e.imported=d,e.importKind=o,e.local=this.cloneIdentifier(d))}else{if(null!==o&&ib(this.state.type))e.imported=this.parseIdentifier(!0),e.importKind=o;else{if(t)throw this.raise(Rh.ImportBindingIsString,e,{importName:s.value});e.imported=s,e.importKind=null}this.eatContextual(93)?e.local=this.parseIdentifier():(i=!0,e.local=this.cloneIdentifier(e.imported))}var c=Ev(e);return r&&c&&this.raise(wv.ImportTypeShorthandOnlyInPureImport,e),(r||c)&&this.checkReservedType(e.local.name,e.local.loc.start,!0),!i||r||c||this.checkReservedWord(e.local.name,e.loc.start,!0,!0),this.finishImportSpecifier(e,"ImportSpecifier")},r.parseBindingAtom=function(){return 78===this.state.type?this.parseIdentifier(!0):e.prototype.parseBindingAtom.call(this)},r.parseFunctionParams=function(t,r){var a=t.kind;"get"!==a&&"set"!==a&&this.match(47)&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),e.prototype.parseFunctionParams.call(this,t,r)},r.parseVarId=function(t,r){e.prototype.parseVarId.call(this,t,r),this.match(14)&&(t.id.typeAnnotation=this.flowParseTypeAnnotation(),this.resetEndLocation(t.id))},r.parseAsyncArrowFromCallExpression=function(t,r){if(this.match(14)){var a=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,t.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=a}return e.prototype.parseAsyncArrowFromCallExpression.call(this,t,r)},r.shouldParseAsyncArrow=function(){return this.match(14)||e.prototype.shouldParseAsyncArrow.call(this)},r.parseMaybeAssign=function(t,r){var a,n,s=this,o=null;if(this.hasPlugin("jsx")&&(this.match(143)||this.match(47))){if(o=this.state.clone(),!(n=this.tryParse(function(){return e.prototype.parseMaybeAssign.call(s,t,r)},o)).error)return n.node;var i=this.state.context,d=i[i.length-1];d!==Uh.j_oTag&&d!==Uh.j_expr||i.pop()}if(null!=(a=n)&&a.error||this.match(47)){var c,l,u;o=o||this.state.clone();var p=this.tryParse(function(a){var n;u=s.flowParseTypeParameterDeclaration();var o=s.forwardNoArrowParamsConversionAt(u,function(){var a=e.prototype.parseMaybeAssign.call(s,t,r);return s.resetStartLocationFromNode(a,u),a});null!=(n=o.extra)&&n.parenthesized&&a();var i=s.maybeUnwrapTypeCastExpression(o);return"ArrowFunctionExpression"!==i.type&&a(),i.typeParameters=u,s.resetStartLocationFromNode(i,u),o},o),f=null;if(p.node&&"ArrowFunctionExpression"===this.maybeUnwrapTypeCastExpression(p.node).type){if(!p.error&&!p.aborted)return p.node.async&&this.raise(wv.UnexpectedTypeParameterBeforeAsyncArrowFunction,u),p.node;f=p.node}if(null!=(c=n)&&c.node)return this.state=n.failState,n.node;if(f)return this.state=p.failState,f;if(null!=(l=n)&&l.thrown)throw n.error;if(p.thrown)throw p.error;throw this.raise(wv.UnexpectedTokenAfterTypeParameter,u)}return e.prototype.parseMaybeAssign.call(this,t,r)},r.parseArrow=function(t){var r=this;if(this.match(14)){var a=this.tryParse(function(){var e=r.state.noAnonFunctionType;r.state.noAnonFunctionType=!0;var a=r.startNode(),n=r.flowParseTypeAndPredicateInitialiser();return a.typeAnnotation=n[0],t.predicate=n[1],r.state.noAnonFunctionType=e,r.canInsertSemicolon()&&r.unexpected(),r.match(19)||r.unexpected(),a});if(a.thrown)return null;a.error&&(this.state=a.failState),t.returnType=a.node.typeAnnotation?this.finishNode(a.node,"TypeAnnotation"):null}return e.prototype.parseArrow.call(this,t)},r.shouldParseArrow=function(t){return this.match(14)||e.prototype.shouldParseArrow.call(this,t)},r.setArrowFunctionParameters=function(t,r){this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(t.start))?t.params=r:e.prototype.setArrowFunctionParameters.call(this,t,r)},r.checkParams=function(t,r,a,n){if(void 0===n&&(n=!0),!a||!this.state.noArrowParamsConversionAt.includes(this.offsetToSourcePos(t.start))){for(var s=0;s<t.params.length;s++)this.isThisParam(t.params[s])&&s>0&&this.raise(wv.ThisParamMustBeFirst,t.params[s]);e.prototype.checkParams.call(this,t,r,a,n)}},r.parseParenAndDistinguishExpression=function(t){return e.prototype.parseParenAndDistinguishExpression.call(this,t&&!this.state.noArrowAt.includes(this.sourceToOffsetPos(this.state.start)))},r.parseSubscripts=function(t,r,a){var n=this;if("Identifier"===t.type&&"async"===t.name&&this.state.noArrowAt.includes(r.index)){this.next();var s=this.startNodeAt(r);s.callee=t,s.arguments=e.prototype.parseCallExpressionArguments.call(this),t=this.finishNode(s,"CallExpression")}else if("Identifier"===t.type&&"async"===t.name&&this.match(47)){var o=this.state.clone(),i=this.tryParse(function(e){return n.parseAsyncArrowWithTypeParameters(r)||e()},o);if(!i.error&&!i.aborted)return i.node;var d=this.tryParse(function(){return e.prototype.parseSubscripts.call(n,t,r,a)},o);if(d.node&&!d.error)return d.node;if(i.node)return this.state=i.failState,i.node;if(d.node)return this.state=d.failState,d.node;throw i.error||d.error}return e.prototype.parseSubscripts.call(this,t,r,a)},r.parseSubscript=function(t,r,a,n){var s=this;if(this.match(18)&&this.isLookaheadToken_lt()){if(n.optionalChainMember=!0,a)return n.stop=!0,t;this.next();var o=this.startNodeAt(r);return o.callee=t,o.typeArguments=this.flowParseTypeParameterInstantiationInExpression(),this.expect(10),o.arguments=this.parseCallExpressionArguments(),o.optional=!0,this.finishCallExpression(o,!0)}if(!a&&this.shouldParseTypes()&&(this.match(47)||this.match(51))){var i=this.startNodeAt(r);i.callee=t;var d=this.tryParse(function(){return i.typeArguments=s.flowParseTypeParameterInstantiationCallOrNew(),s.expect(10),i.arguments=e.prototype.parseCallExpressionArguments.call(s),n.optionalChainMember&&(i.optional=!1),s.finishCallExpression(i,n.optionalChainMember)});if(d.node)return d.error&&(this.state=d.failState),d.node}return e.prototype.parseSubscript.call(this,t,r,a,n)},r.parseNewCallee=function(t){var r=this;e.prototype.parseNewCallee.call(this,t);var a=null;this.shouldParseTypes()&&this.match(47)&&(a=this.tryParse(function(){return r.flowParseTypeParameterInstantiationCallOrNew()}).node),t.typeArguments=a},r.parseAsyncArrowWithTypeParameters=function(t){var r=this.startNodeAt(t);if(this.parseFunctionParams(r,!1),this.parseArrow(r))return e.prototype.parseArrowExpression.call(this,r,void 0,!0)},r.readToken_mult_modulo=function(t){var r=this.input.charCodeAt(this.state.pos+1);if(42===t&&47===r&&this.state.hasFlowComment)return this.state.hasFlowComment=!1,this.state.pos+=2,void this.nextToken();e.prototype.readToken_mult_modulo.call(this,t)},r.readToken_pipe_amp=function(t){var r=this.input.charCodeAt(this.state.pos+1);124!==t||125!==r?e.prototype.readToken_pipe_amp.call(this,t):this.finishOp(9,2)},r.parseTopLevel=function(t,r){var a=e.prototype.parseTopLevel.call(this,t,r);return this.state.hasFlowComment&&this.raise(wv.UnterminatedFlowComment,this.state.curPosition()),a},r.skipBlockComment=function(){if(!this.hasPlugin("flowComments")||!this.skipFlowComment())return e.prototype.skipBlockComment.call(this,this.state.hasFlowComment?"*-/":"*/");if(this.state.hasFlowComment)throw this.raise(wv.NestedFlowComment,this.state.startLoc);this.hasFlowCommentCompletion();var t=this.skipFlowComment();t&&(this.state.pos+=t,this.state.hasFlowComment=!0)},r.skipFlowComment=function(){for(var e=this.state.pos,t=2;[32,9].includes(this.input.charCodeAt(e+t));)t++;var r=this.input.charCodeAt(t+e),a=this.input.charCodeAt(t+e+1);return 58===r&&58===a?t+2:"flow-include"===this.input.slice(t+e,t+e+12)?t+12:58===r&&58!==a&&t},r.hasFlowCommentCompletion=function(){if(-1===this.input.indexOf("*/",this.state.pos))throw this.raise(Rh.UnterminatedComment,this.state.curPosition())},r.flowEnumErrorBooleanMemberNotInitialized=function(e,t){var r=t.enumName,a=t.memberName;this.raise(wv.EnumBooleanMemberNotInitialized,e,{memberName:a,enumName:r})},r.flowEnumErrorInvalidMemberInitializer=function(e,t){return this.raise(t.explicitType?"symbol"===t.explicitType?wv.EnumInvalidMemberInitializerSymbolType:wv.EnumInvalidMemberInitializerPrimaryType:wv.EnumInvalidMemberInitializerUnknownType,e,t)},r.flowEnumErrorNumberMemberNotInitialized=function(e,t){this.raise(wv.EnumNumberMemberNotInitialized,e,t)},r.flowEnumErrorStringMemberInconsistentlyInitialized=function(e,t){this.raise(wv.EnumStringMemberInconsistentlyInitialized,e,t)},r.flowEnumMemberInit=function(){var e=this,t=this.state.startLoc,r=function(){return e.match(12)||e.match(8)};switch(this.state.type){case 135:var a=this.parseNumericLiteral(this.state.value);return r()?{type:"number",loc:a.loc.start,value:a}:{type:"invalid",loc:t};case 134:var n=this.parseStringLiteral(this.state.value);return r()?{type:"string",loc:n.loc.start,value:n}:{type:"invalid",loc:t};case 85:case 86:var s=this.parseBooleanLiteral(this.match(85));return r()?{type:"boolean",loc:s.loc.start,value:s}:{type:"invalid",loc:t};default:return{type:"invalid",loc:t}}},r.flowEnumMemberRaw=function(){var e=this.state.startLoc;return{id:this.parseIdentifier(!0),init:this.eat(29)?this.flowEnumMemberInit():{type:"none",loc:e}}},r.flowEnumCheckExplicitTypeMismatch=function(e,t,r){var a=t.explicitType;null!==a&&a!==r&&this.flowEnumErrorInvalidMemberInitializer(e,t)},r.flowEnumMembers=function(e){for(var t=e.enumName,r=e.explicitType,a=new Set,n={booleanMembers:[],numberMembers:[],stringMembers:[],defaultedMembers:[]},s=!1;!this.match(8);){if(this.eat(21)){s=!0;break}var o=this.startNode(),i=this.flowEnumMemberRaw(),d=i.id,c=i.init,l=d.name;if(""!==l){/^[a-z]/.test(l)&&this.raise(wv.EnumInvalidMemberName,d,{memberName:l,suggestion:l[0].toUpperCase()+l.slice(1),enumName:t}),a.has(l)&&this.raise(wv.EnumDuplicateMemberName,d,{memberName:l,enumName:t}),a.add(l);var u={enumName:t,explicitType:r,memberName:l};switch(o.id=d,c.type){case"boolean":this.flowEnumCheckExplicitTypeMismatch(c.loc,u,"boolean"),o.init=c.value,n.booleanMembers.push(this.finishNode(o,"EnumBooleanMember"));break;case"number":this.flowEnumCheckExplicitTypeMismatch(c.loc,u,"number"),o.init=c.value,n.numberMembers.push(this.finishNode(o,"EnumNumberMember"));break;case"string":this.flowEnumCheckExplicitTypeMismatch(c.loc,u,"string"),o.init=c.value,n.stringMembers.push(this.finishNode(o,"EnumStringMember"));break;case"invalid":throw this.flowEnumErrorInvalidMemberInitializer(c.loc,u);case"none":switch(r){case"boolean":this.flowEnumErrorBooleanMemberNotInitialized(c.loc,u);break;case"number":this.flowEnumErrorNumberMemberNotInitialized(c.loc,u);break;default:n.defaultedMembers.push(this.finishNode(o,"EnumDefaultedMember"))}}this.match(8)||this.expect(12)}}return{members:n,hasUnknownMembers:s}},r.flowEnumStringMembers=function(e,t,r){var a=r.enumName;if(0===e.length)return t;if(0===t.length)return e;if(t.length>e.length){for(var n=0;n<e.length;n++){var s=e[n];this.flowEnumErrorStringMemberInconsistentlyInitialized(s,{enumName:a})}return t}for(var o=0;o<t.length;o++){var i=t[o];this.flowEnumErrorStringMemberInconsistentlyInitialized(i,{enumName:a})}return e},r.flowEnumParseExplicitType=function(e){var t=e.enumName;if(!this.eatContextual(102))return null;if(!ob(this.state.type))throw this.raise(wv.EnumInvalidExplicitTypeUnknownSupplied,this.state.startLoc,{enumName:t});var r=this.state.value;return this.next(),"boolean"!==r&&"number"!==r&&"string"!==r&&"symbol"!==r&&this.raise(wv.EnumInvalidExplicitType,this.state.startLoc,{enumName:t,invalidEnumType:r}),r},r.flowEnumBody=function(e,t){var r=this,a=t.name,n=t.loc.start,s=this.flowEnumParseExplicitType({enumName:a});this.expect(5);var o=this.flowEnumMembers({enumName:a,explicitType:s}),i=o.members,d=o.hasUnknownMembers;switch(e.hasUnknownMembers=d,s){case"boolean":return e.explicitType=!0,e.members=i.booleanMembers,this.expect(8),this.finishNode(e,"EnumBooleanBody");case"number":return e.explicitType=!0,e.members=i.numberMembers,this.expect(8),this.finishNode(e,"EnumNumberBody");case"string":return e.explicitType=!0,e.members=this.flowEnumStringMembers(i.stringMembers,i.defaultedMembers,{enumName:a}),this.expect(8),this.finishNode(e,"EnumStringBody");case"symbol":return e.members=i.defaultedMembers,this.expect(8),this.finishNode(e,"EnumSymbolBody");default:var c=function(){return e.members=[],r.expect(8),r.finishNode(e,"EnumStringBody")};e.explicitType=!1;var l=i.booleanMembers.length,u=i.numberMembers.length,p=i.stringMembers.length,f=i.defaultedMembers.length;if(l||u||p||f){if(l||u){if(!u&&!p&&l>=f){for(var g=0,m=i.defaultedMembers;g<m.length;g++){var y=m[g];this.flowEnumErrorBooleanMemberNotInitialized(y.loc.start,{enumName:a,memberName:y.id.name})}return e.members=i.booleanMembers,this.expect(8),this.finishNode(e,"EnumBooleanBody")}if(!l&&!p&&u>=f){for(var h=0,b=i.defaultedMembers;h<b.length;h++){var v=b[h];this.flowEnumErrorNumberMemberNotInitialized(v.loc.start,{enumName:a,memberName:v.id.name})}return e.members=i.numberMembers,this.expect(8),this.finishNode(e,"EnumNumberBody")}return this.raise(wv.EnumInconsistentMemberValues,n,{enumName:a}),c()}return e.members=this.flowEnumStringMembers(i.stringMembers,i.defaultedMembers,{enumName:a}),this.expect(8),this.finishNode(e,"EnumStringBody")}return c()}},r.flowParseEnumDeclaration=function(e){var t=this.parseIdentifier();return e.id=t,e.body=this.flowEnumBody(this.startNode(),t),this.finishNode(e,"EnumDeclaration")},r.jsxParseOpeningElementAfterName=function(t){return this.shouldParseTypes()&&(this.match(47)||this.match(51))&&(t.typeArguments=this.flowParseTypeParameterInstantiationInExpression()),e.prototype.jsxParseOpeningElementAfterName.call(this,t)},r.isLookaheadToken_lt=function(){var e=this.nextTokenStart();if(60===this.input.charCodeAt(e)){var t=this.input.charCodeAt(e+1);return 60!==t&&61!==t}return!1},r.reScan_lt_gt=function(){var e=this.state.type;47===e?(this.state.pos-=1,this.readToken_lt()):48===e&&(this.state.pos-=1,this.readToken_gt())},r.reScan_lt=function(){var e=this.state.type;return 51===e?(this.state.pos-=2,this.finishOp(47,1),47):e},r.maybeUnwrapTypeCastExpression=function(e){return"TypeCastExpression"===e.type?e.expression:e},o(t)}(e)},typescript:function(e){return function(e){function t(){for(var t,r=arguments.length,a=new Array(r),n=0;n<r;n++)a[n]=arguments[n];return(t=e.call.apply(e,[this].concat(a))||this).tsParseInOutModifiers=t.tsParseModifiers.bind(t,{allowedModifiers:["in","out"],disallowedModifiers:["const","public","private","protected","readonly","declare","abstract","override"],errorTemplate:Ex.InvalidModifierOnTypeParameter}),t.tsParseConstModifier=t.tsParseModifiers.bind(t,{allowedModifiers:["const"],disallowedModifiers:["in","out"],errorTemplate:Ex.InvalidModifierOnTypeParameterPositions}),t.tsParseInOutConstModifiers=t.tsParseModifiers.bind(t,{allowedModifiers:["in","out","const"],disallowedModifiers:["public","private","protected","readonly","declare","abstract","override"],errorTemplate:Ex.InvalidModifierOnTypeParameter}),t}c(t,e);var r=t.prototype;return r.getScopeHandler=function(){return Lv},r.tsIsIdentifier=function(){return ob(this.state.type)},r.tsTokenCanFollowModifier=function(){return this.match(0)||this.match(5)||this.match(55)||this.match(21)||this.match(139)||this.isLiteralPropertyName()},r.tsNextTokenOnSameLineAndCanFollowModifier=function(){return this.next(),!this.hasPrecedingLineBreak()&&this.tsTokenCanFollowModifier()},r.tsNextTokenCanFollowModifier=function(){return this.match(106)?(this.next(),this.tsTokenCanFollowModifier()):this.tsNextTokenOnSameLineAndCanFollowModifier()},r.tsParseModifier=function(e,t,r){if(ob(this.state.type)||58===this.state.type||75===this.state.type){var a=this.state.value;if(e.includes(a)){if(r&&this.match(106))return;if(t&&this.tsIsStartOfStaticBlocks())return;if(this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this)))return a}}},r.tsParseModifiers=function(e,t){for(var r=this,a=e.allowedModifiers,n=e.disallowedModifiers,s=e.stopOnStartOfClassStaticBlock,o=e.errorTemplate,i=void 0===o?Ex.InvalidModifierOnTypeMember:o,d=function(e,a,n,s){a===n&&t[s]&&r.raise(Ex.InvalidModifiersOrder,e,{orderedModifiers:[n,s]})},c=function(e,a,n,s){(t[n]&&a===s||t[s]&&a===n)&&r.raise(Ex.IncompatibleModifiers,e,{modifiers:[n,s]})};;){var l=this.state.startLoc,u=this.tsParseModifier(a.concat(null!=n?n:[]),s,t.static);if(!u)break;Sx(u)?t.accessibility?this.raise(Ex.DuplicateAccessibilityModifier,l,{modifier:u}):(d(l,u,u,"override"),d(l,u,u,"static"),d(l,u,u,"readonly"),t.accessibility=u):Tx(u)?(t[u]&&this.raise(Ex.DuplicateModifier,l,{modifier:u}),t[u]=!0,d(l,u,"in","out")):(hasOwnProperty.call(t,u)?this.raise(Ex.DuplicateModifier,l,{modifier:u}):(d(l,u,"static","readonly"),d(l,u,"static","override"),d(l,u,"override","readonly"),d(l,u,"abstract","override"),c(l,u,"declare","override"),c(l,u,"static","abstract")),t[u]=!0),null!=n&&n.includes(u)&&this.raise(i,l,{modifier:u})}},r.tsIsListTerminator=function(e){switch(e){case"EnumMembers":case"TypeMembers":return this.match(8);case"HeritageClauseElement":return this.match(5);case"TupleElementTypes":return this.match(3);case"TypeParametersOrArguments":return this.match(48)}},r.tsParseList=function(e,t){for(var r=[];!this.tsIsListTerminator(e);)r.push(t());return r},r.tsParseDelimitedList=function(e,t,r){return function(e){if(null==e)throw new Error("Unexpected "+e+" value.");return e}(this.tsParseDelimitedListWorker(e,t,!0,r))},r.tsParseDelimitedListWorker=function(e,t,r,a){for(var n=[],s=-1;!this.tsIsListTerminator(e);){s=-1;var o=t();if(null==o)return;if(n.push(o),!this.eat(12)){if(this.tsIsListTerminator(e))break;return void(r&&this.expect(12))}s=this.state.lastTokStartLoc.index}return a&&(a.value=s),n},r.tsParseBracketedList=function(e,t,r,a,n){a||(r?this.expect(0):this.expect(47));var s=this.tsParseDelimitedList(e,t,n);return r?this.expect(3):this.expect(48),s},r.tsParseImportType=function(){var t=this.startNode();return this.expect(83),this.expect(10),this.match(134)?t.argument=this.parseStringLiteral(this.state.value):(this.raise(Ex.UnsupportedImportTypeArgument,this.state.startLoc),t.argument=e.prototype.parseExprAtom.call(this)),this.eat(12)?t.options=this.tsParseImportTypeOptions():t.options=null,this.expect(11),this.eat(16)&&(t.qualifier=this.tsParseEntityName(kx|Cx)),this.match(47)&&(t.typeParameters=this.tsParseTypeArguments()),this.finishNode(t,"TSImportType")},r.tsParseImportTypeOptions=function(){var e=this.startNode();this.expect(5);var t=this.startNode();return this.isContextual(76)?(t.method=!1,t.key=this.parseIdentifier(!0),t.computed=!1,t.shorthand=!1):this.unexpected(null,76),this.expect(14),t.value=this.tsParseImportTypeWithPropertyValue(),e.properties=[this.finishObjectProperty(t)],this.eat(12),this.expect(8),this.finishNode(e,"ObjectExpression")},r.tsParseImportTypeWithPropertyValue=function(){var t=this.startNode(),r=[];for(this.expect(5);!this.match(8);){var a=this.state.type;ob(a)||134===a?r.push(e.prototype.parsePropertyDefinition.call(this,null)):this.unexpected(),this.eat(12)}return t.properties=r,this.next(),this.finishNode(t,"ObjectExpression")},r.tsParseEntityName=function(e){var t;if(e&kx&&this.match(78))if(e&Cx)t=this.parseIdentifier(!0);else{var r=this.startNode();this.next(),t=this.finishNode(r,"ThisExpression")}else t=this.parseIdentifier(!!(e&kx));for(;this.eat(16);){var a=this.startNodeAtNode(t);a.left=t,a.right=this.parseIdentifier(!!(e&kx)),t=this.finishNode(a,"TSQualifiedName")}return t},r.tsParseTypeReference=function(){var e=this.startNode();return e.typeName=this.tsParseEntityName(kx),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSTypeReference")},r.tsParseThisTypePredicate=function(e){this.next();var t=this.startNodeAtNode(e);return t.parameterName=e,t.typeAnnotation=this.tsParseTypeAnnotation(!1),t.asserts=!1,this.finishNode(t,"TSTypePredicate")},r.tsParseThisTypeNode=function(){var e=this.startNode();return this.next(),this.finishNode(e,"TSThisType")},r.tsParseTypeQuery=function(){var e=this.startNode();return this.expect(87),this.match(83)?e.exprName=this.tsParseImportType():e.exprName=this.tsParseEntityName(kx|Cx),!this.hasPrecedingLineBreak()&&this.match(47)&&(e.typeParameters=this.tsParseTypeArguments()),this.finishNode(e,"TSTypeQuery")},r.tsParseTypeParameter=function(e){var t=this.startNode();return e(t),t.name=this.tsParseTypeParameterName(),t.constraint=this.tsEatThenParseType(81),t.default=this.tsEatThenParseType(29),this.finishNode(t,"TSTypeParameter")},r.tsTryParseTypeParameters=function(e){if(this.match(47))return this.tsParseTypeParameters(e)},r.tsParseTypeParameters=function(e){var t=this.startNode();this.match(47)||this.match(143)?this.next():this.unexpected();var r={value:-1};return t.params=this.tsParseBracketedList("TypeParametersOrArguments",this.tsParseTypeParameter.bind(this,e),!1,!0,r),0===t.params.length&&this.raise(Ex.EmptyTypeParameters,t),-1!==r.value&&this.addExtra(t,"trailingComma",r.value),this.finishNode(t,"TSTypeParameterDeclaration")},r.tsFillSignature=function(e,t){var r=19===e,a="typeAnnotation";t.typeParameters=this.tsTryParseTypeParameters(this.tsParseConstModifier),this.expect(10),t.parameters=this.tsParseBindingListForSignature(),(r||this.match(e))&&(t[a]=this.tsParseTypeOrTypePredicateAnnotation(e))},r.tsParseBindingListForSignature=function(){for(var t=e.prototype.parseBindingList.call(this,11,41,vx),r=0;r<t.length;r++){var a=t[r],n=a.type;"AssignmentPattern"!==n&&"TSParameterProperty"!==n||this.raise(Ex.UnsupportedSignatureParameterKind,a,{type:n})}return t},r.tsParseTypeMemberSemicolon=function(){this.eat(12)||this.isLineTerminator()||this.expect(13)},r.tsParseSignatureMember=function(e,t){return this.tsFillSignature(14,t),this.tsParseTypeMemberSemicolon(),this.finishNode(t,e)},r.tsIsUnambiguouslyIndexSignature=function(){return this.next(),!!ob(this.state.type)&&(this.next(),this.match(14))},r.tsTryParseIndexSignature=function(e){if(this.match(0)&&this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))){this.expect(0);var t=this.parseIdentifier();t.typeAnnotation=this.tsParseTypeAnnotation(),this.resetEndLocation(t),this.expect(3),e.parameters=[t];var r=this.tsTryParseTypeAnnotation();return r&&(e.typeAnnotation=r),this.tsParseTypeMemberSemicolon(),this.finishNode(e,"TSIndexSignature")}},r.tsParsePropertyOrMethodSignature=function(e,t){if(this.eat(17)&&(e.optional=!0),this.match(10)||this.match(47)){t&&this.raise(Ex.ReadonlyForMethodSignature,e);var r=e;r.kind&&this.match(47)&&this.raise(Ex.AccessorCannotHaveTypeParameters,this.state.curPosition()),this.tsFillSignature(14,r),this.tsParseTypeMemberSemicolon();var a="parameters",n="typeAnnotation";if("get"===r.kind)r[a].length>0&&(this.raise(Rh.BadGetterArity,this.state.curPosition()),this.isThisParam(r[a][0])&&this.raise(Ex.AccessorCannotDeclareThisParameter,this.state.curPosition()));else if("set"===r.kind){if(1!==r[a].length)this.raise(Rh.BadSetterArity,this.state.curPosition());else{var s=r[a][0];this.isThisParam(s)&&this.raise(Ex.AccessorCannotDeclareThisParameter,this.state.curPosition()),"Identifier"===s.type&&s.optional&&this.raise(Ex.SetAccessorCannotHaveOptionalParameter,this.state.curPosition()),"RestElement"===s.type&&this.raise(Ex.SetAccessorCannotHaveRestParameter,this.state.curPosition())}r[n]&&this.raise(Ex.SetAccessorCannotHaveReturnType,r[n])}else r.kind="method";return this.finishNode(r,"TSMethodSignature")}var o=e;t&&(o.readonly=!0);var i=this.tsTryParseTypeAnnotation();return i&&(o.typeAnnotation=i),this.tsParseTypeMemberSemicolon(),this.finishNode(o,"TSPropertySignature")},r.tsParseTypeMember=function(){var t=this.startNode();if(this.match(10)||this.match(47))return this.tsParseSignatureMember("TSCallSignatureDeclaration",t);if(this.match(77)){var r=this.startNode();return this.next(),this.match(10)||this.match(47)?this.tsParseSignatureMember("TSConstructSignatureDeclaration",t):(t.key=this.createIdentifier(r,"new"),this.tsParsePropertyOrMethodSignature(t,!1))}this.tsParseModifiers({allowedModifiers:["readonly"],disallowedModifiers:["declare","abstract","private","protected","public","static","override"]},t);var a=this.tsTryParseIndexSignature(t);return a||(e.prototype.parsePropertyName.call(this,t),t.computed||"Identifier"!==t.key.type||"get"!==t.key.name&&"set"!==t.key.name||!this.tsTokenCanFollowModifier()||(t.kind=t.key.name,e.prototype.parsePropertyName.call(this,t),this.match(10)||this.match(47)||this.unexpected(null,10)),this.tsParsePropertyOrMethodSignature(t,!!t.readonly))},r.tsParseTypeLiteral=function(){var e=this.startNode();return e.members=this.tsParseObjectTypeMembers(),this.finishNode(e,"TSTypeLiteral")},r.tsParseObjectTypeMembers=function(){this.expect(5);var e=this.tsParseList("TypeMembers",this.tsParseTypeMember.bind(this));return this.expect(8),e},r.tsIsStartOfMappedType=function(){return this.next(),this.eat(53)?this.isContextual(122):(this.isContextual(122)&&this.next(),!!this.match(0)&&(this.next(),!!this.tsIsIdentifier()&&(this.next(),this.match(58))))},r.tsParseMappedType=function(){var e=this.startNode();this.expect(5),this.match(53)?(e.readonly=this.state.value,this.next(),this.expectContextual(122)):this.eatContextual(122)&&(e.readonly=!0),this.expect(0);var t=this.startNode();return t.name=this.tsParseTypeParameterName(),t.constraint=this.tsExpectThenParseType(58),e.typeParameter=this.finishNode(t,"TSTypeParameter"),e.nameType=this.eatContextual(93)?this.tsParseType():null,this.expect(3),this.match(53)?(e.optional=this.state.value,this.next(),this.expect(17)):this.eat(17)&&(e.optional=!0),e.typeAnnotation=this.tsTryParseType(),this.semicolon(),this.expect(8),this.finishNode(e,"TSMappedType")},r.tsParseTupleType=function(){var e=this,t=this.startNode();t.elementTypes=this.tsParseBracketedList("TupleElementTypes",this.tsParseTupleElementType.bind(this),!0,!1);var r=!1;return t.elementTypes.forEach(function(t){var a=t.type;!r||"TSRestType"===a||"TSOptionalType"===a||"TSNamedTupleMember"===a&&t.optional||e.raise(Ex.OptionalTypeBeforeRequired,t),r||(r="TSNamedTupleMember"===a&&t.optional||"TSOptionalType"===a)}),this.finishNode(t,"TSTupleType")},r.tsParseTupleElementType=function(){var e,t,r,a,n,s=this.state.startLoc,o=this.eat(21),i=this.state.startLoc,d=ib(this.state.type)?this.lookaheadCharCode():null;if(58===d)e=!0,r=!1,t=this.parseIdentifier(!0),this.expect(14),a=this.tsParseType();else if(63===d){r=!0;var c=this.state.value,l=this.tsParseNonArrayType();58===this.lookaheadCharCode()?(e=!0,t=this.createIdentifier(this.startNodeAt(i),c),this.expect(17),this.expect(14),a=this.tsParseType()):(e=!1,a=l,this.expect(17))}else a=this.tsParseType(),r=this.eat(17),e=this.eat(14);if(e)t?((n=this.startNodeAt(i)).optional=r,n.label=t,n.elementType=a,this.eat(17)&&(n.optional=!0,this.raise(Ex.TupleOptionalAfterType,this.state.lastTokStartLoc))):((n=this.startNodeAt(i)).optional=r,this.raise(Ex.InvalidTupleMemberLabel,a),n.label=a,n.elementType=this.tsParseType()),a=this.finishNode(n,"TSNamedTupleMember");else if(r){var u=this.startNodeAt(i);u.typeAnnotation=a,a=this.finishNode(u,"TSOptionalType")}if(o){var p=this.startNodeAt(s);p.typeAnnotation=a,a=this.finishNode(p,"TSRestType")}return a},r.tsParseParenthesizedType=function(){var e=this.startNode();return this.expect(10),e.typeAnnotation=this.tsParseType(),this.expect(11),this.finishNode(e,"TSParenthesizedType")},r.tsParseFunctionOrConstructorType=function(e,t){var r=this,a=this.startNode();return"TSConstructorType"===e&&(a.abstract=!!t,t&&this.next(),this.next()),this.tsInAllowConditionalTypesContext(function(){return r.tsFillSignature(19,a)}),this.finishNode(a,e)},r.tsParseLiteralTypeNode=function(){var t=this.startNode();switch(this.state.type){case 135:case 136:case 134:case 85:case 86:t.literal=e.prototype.parseExprAtom.call(this);break;default:this.unexpected()}return this.finishNode(t,"TSLiteralType")},r.tsParseTemplateLiteralType=function(){var t=this.startNode();return t.literal=e.prototype.parseTemplate.call(this,!1),this.finishNode(t,"TSLiteralType")},r.parseTemplateSubstitution=function(){return this.state.inType?this.tsParseType():e.prototype.parseTemplateSubstitution.call(this)},r.tsParseThisTypeOrThisTypePredicate=function(){var e=this.tsParseThisTypeNode();return this.isContextual(116)&&!this.hasPrecedingLineBreak()?this.tsParseThisTypePredicate(e):e},r.tsParseNonArrayType=function(){switch(this.state.type){case 134:case 135:case 136:case 85:case 86:return this.tsParseLiteralTypeNode();case 53:if("-"===this.state.value){var e=this.startNode(),t=this.lookahead();return 135!==t.type&&136!==t.type&&this.unexpected(),e.literal=this.parseMaybeUnary(),this.finishNode(e,"TSLiteralType")}break;case 78:return this.tsParseThisTypeOrThisTypePredicate();case 87:return this.tsParseTypeQuery();case 83:return this.tsParseImportType();case 5:return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))?this.tsParseMappedType():this.tsParseTypeLiteral();case 0:return this.tsParseTupleType();case 10:return this.tsParseParenthesizedType();case 25:case 24:return this.tsParseTemplateLiteralType();default:var r=this.state.type;if(ob(r)||88===r||84===r){var a=88===r?"TSVoidKeyword":84===r?"TSNullKeyword":function(e){switch(e){case"any":return"TSAnyKeyword";case"boolean":return"TSBooleanKeyword";case"bigint":return"TSBigIntKeyword";case"never":return"TSNeverKeyword";case"number":return"TSNumberKeyword";case"object":return"TSObjectKeyword";case"string":return"TSStringKeyword";case"symbol":return"TSSymbolKeyword";case"undefined":return"TSUndefinedKeyword";case"unknown":return"TSUnknownKeyword";default:return}}(this.state.value);if(void 0!==a&&46!==this.lookaheadCharCode()){var n=this.startNode();return this.next(),this.finishNode(n,a)}return this.tsParseTypeReference()}}throw this.unexpected()},r.tsParseArrayTypeOrHigher=function(){for(var e=this.state.startLoc,t=this.tsParseNonArrayType();!this.hasPrecedingLineBreak()&&this.eat(0);)if(this.match(3)){var r=this.startNodeAt(e);r.elementType=t,this.expect(3),t=this.finishNode(r,"TSArrayType")}else{var a=this.startNodeAt(e);a.objectType=t,a.indexType=this.tsParseType(),this.expect(3),t=this.finishNode(a,"TSIndexedAccessType")}return t},r.tsParseTypeOperator=function(){var e=this.startNode(),t=this.state.value;return this.next(),e.operator=t,e.typeAnnotation=this.tsParseTypeOperatorOrHigher(),"readonly"===t&&this.tsCheckTypeAnnotationForReadOnly(e),this.finishNode(e,"TSTypeOperator")},r.tsCheckTypeAnnotationForReadOnly=function(e){switch(e.typeAnnotation.type){case"TSTupleType":case"TSArrayType":return;default:this.raise(Ex.UnexpectedReadonly,e)}},r.tsParseInferType=function(){var e=this,t=this.startNode();this.expectContextual(115);var r=this.startNode();return r.name=this.tsParseTypeParameterName(),r.constraint=this.tsTryParse(function(){return e.tsParseConstraintForInferType()}),t.typeParameter=this.finishNode(r,"TSTypeParameter"),this.finishNode(t,"TSInferType")},r.tsParseConstraintForInferType=function(){var e=this;if(this.eat(81)){var t=this.tsInDisallowConditionalTypesContext(function(){return e.tsParseType()});if(this.state.inDisallowConditionalTypesContext||!this.match(17))return t}},r.tsParseTypeOperatorOrHigher=function(){var e,t=this;return(e=this.state.type)>=121&&e<=123&&!this.state.containsEsc?this.tsParseTypeOperator():this.isContextual(115)?this.tsParseInferType():this.tsInAllowConditionalTypesContext(function(){return t.tsParseArrayTypeOrHigher()})},r.tsParseUnionOrIntersectionType=function(e,t,r){var a=this.startNode(),n=this.eat(r),s=[];do{s.push(t())}while(this.eat(r));return 1!==s.length||n?(a.types=s,this.finishNode(a,e)):s[0]},r.tsParseIntersectionTypeOrHigher=function(){return this.tsParseUnionOrIntersectionType("TSIntersectionType",this.tsParseTypeOperatorOrHigher.bind(this),45)},r.tsParseUnionTypeOrHigher=function(){return this.tsParseUnionOrIntersectionType("TSUnionType",this.tsParseIntersectionTypeOrHigher.bind(this),43)},r.tsIsStartOfFunctionType=function(){return!!this.match(47)||this.match(10)&&this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))},r.tsSkipParameterStart=function(){if(ob(this.state.type)||this.match(78))return this.next(),!0;if(this.match(5)){var t=this.state.errors,r=t.length;try{return this.parseObjectLike(8,!0),t.length===r}catch(e){return!1}}if(this.match(0)){this.next();var a=this.state.errors,n=a.length;try{return e.prototype.parseBindingList.call(this,3,93,bx),a.length===n}catch(e){return!1}}return!1},r.tsIsUnambiguouslyStartOfFunctionType=function(){if(this.next(),this.match(11)||this.match(21))return!0;if(this.tsSkipParameterStart()){if(this.match(14)||this.match(12)||this.match(17)||this.match(29))return!0;if(this.match(11)&&(this.next(),this.match(19)))return!0}return!1},r.tsParseTypeOrTypePredicateAnnotation=function(e){var t=this;return this.tsInType(function(){var r=t.startNode();t.expect(e);var a=t.startNode(),n=!!t.tsTryParse(t.tsParseTypePredicateAsserts.bind(t));if(n&&t.match(78)){var s=t.tsParseThisTypeOrThisTypePredicate();return"TSThisType"===s.type?(a.parameterName=s,a.asserts=!0,a.typeAnnotation=null,s=t.finishNode(a,"TSTypePredicate")):(t.resetStartLocationFromNode(s,a),s.asserts=!0),r.typeAnnotation=s,t.finishNode(r,"TSTypeAnnotation")}var o=t.tsIsIdentifier()&&t.tsTryParse(t.tsParseTypePredicatePrefix.bind(t));if(!o)return n?(a.parameterName=t.parseIdentifier(),a.asserts=n,a.typeAnnotation=null,r.typeAnnotation=t.finishNode(a,"TSTypePredicate"),t.finishNode(r,"TSTypeAnnotation")):t.tsParseTypeAnnotation(!1,r);var i=t.tsParseTypeAnnotation(!1);return a.parameterName=o,a.typeAnnotation=i,a.asserts=n,r.typeAnnotation=t.finishNode(a,"TSTypePredicate"),t.finishNode(r,"TSTypeAnnotation")})},r.tsTryParseTypeOrTypePredicateAnnotation=function(){if(this.match(14))return this.tsParseTypeOrTypePredicateAnnotation(14)},r.tsTryParseTypeAnnotation=function(){if(this.match(14))return this.tsParseTypeAnnotation()},r.tsTryParseType=function(){return this.tsEatThenParseType(14)},r.tsParseTypePredicatePrefix=function(){var e=this.parseIdentifier();if(this.isContextual(116)&&!this.hasPrecedingLineBreak())return this.next(),e},r.tsParseTypePredicateAsserts=function(){if(109!==this.state.type)return!1;var e=this.state.containsEsc;return this.next(),!(!ob(this.state.type)&&!this.match(78))&&(e&&this.raise(Rh.InvalidEscapedReservedWord,this.state.lastTokStartLoc,{reservedWord:"asserts"}),!0)},r.tsParseTypeAnnotation=function(e,t){var r=this;return void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),this.tsInType(function(){e&&r.expect(14),t.typeAnnotation=r.tsParseType()}),this.finishNode(t,"TSTypeAnnotation")},r.tsParseType=function(){var e=this;wx(this.state.inType);var t=this.tsParseNonConditionalType();if(this.state.inDisallowConditionalTypesContext||this.hasPrecedingLineBreak()||!this.eat(81))return t;var r=this.startNodeAtNode(t);return r.checkType=t,r.extendsType=this.tsInDisallowConditionalTypesContext(function(){return e.tsParseNonConditionalType()}),this.expect(17),r.trueType=this.tsInAllowConditionalTypesContext(function(){return e.tsParseType()}),this.expect(14),r.falseType=this.tsInAllowConditionalTypesContext(function(){return e.tsParseType()}),this.finishNode(r,"TSConditionalType")},r.isAbstractConstructorSignature=function(){return this.isContextual(124)&&this.isLookaheadContextual("new")},r.tsParseNonConditionalType=function(){return this.tsIsStartOfFunctionType()?this.tsParseFunctionOrConstructorType("TSFunctionType"):this.match(77)?this.tsParseFunctionOrConstructorType("TSConstructorType"):this.isAbstractConstructorSignature()?this.tsParseFunctionOrConstructorType("TSConstructorType",!0):this.tsParseUnionTypeOrHigher()},r.tsParseTypeAssertion=function(){var e=this;this.getPluginOption("typescript","disallowAmbiguousJSXLike")&&this.raise(Ex.ReservedTypeAssertion,this.state.startLoc);var t=this.startNode();return t.typeAnnotation=this.tsInType(function(){return e.next(),e.match(75)?e.tsParseTypeReference():e.tsParseType()}),this.expect(48),t.expression=this.parseMaybeUnary(),this.finishNode(t,"TSTypeAssertion")},r.tsParseHeritageClause=function(e){var t=this,r=this.state.startLoc,a=this.tsParseDelimitedList("HeritageClauseElement",function(){var e=t.startNode();return e.expression=t.tsParseEntityName(kx|Cx),t.match(47)&&(e.typeParameters=t.tsParseTypeArguments()),t.finishNode(e,"TSExpressionWithTypeArguments")});return a.length||this.raise(Ex.EmptyHeritageClauseType,r,{token:e}),a},r.tsParseInterfaceDeclaration=function(e,t){if(void 0===t&&(t={}),this.hasFollowingLineBreak())return null;this.expectContextual(129),t.declare&&(e.declare=!0),ob(this.state.type)?(e.id=this.parseIdentifier(),this.checkIdentifier(e.id,$b)):(e.id=null,this.raise(Ex.MissingInterfaceName,this.state.startLoc)),e.typeParameters=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers),this.eat(81)&&(e.extends=this.tsParseHeritageClause("extends"));var r=this.startNode();return r.body=this.tsInType(this.tsParseObjectTypeMembers.bind(this)),e.body=this.finishNode(r,"TSInterfaceBody"),this.finishNode(e,"TSInterfaceDeclaration")},r.tsParseTypeAliasDeclaration=function(e){var t=this;return e.id=this.parseIdentifier(),this.checkIdentifier(e.id,Qb),e.typeAnnotation=this.tsInType(function(){if(e.typeParameters=t.tsTryParseTypeParameters(t.tsParseInOutModifiers),t.expect(29),t.isContextual(114)&&46!==t.lookaheadCharCode()){var r=t.startNode();return t.next(),t.finishNode(r,"TSIntrinsicKeyword")}return t.tsParseType()}),this.semicolon(),this.finishNode(e,"TSTypeAliasDeclaration")},r.tsInTopLevelContext=function(e){if(this.curContext()===Uh.brace)return e();var t=this.state.context;this.state.context=[t[0]];try{return e()}finally{this.state.context=t}},r.tsInType=function(e){var t=this.state.inType;this.state.inType=!0;try{return e()}finally{this.state.inType=t}},r.tsInDisallowConditionalTypesContext=function(e){var t=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!0;try{return e()}finally{this.state.inDisallowConditionalTypesContext=t}},r.tsInAllowConditionalTypesContext=function(e){var t=this.state.inDisallowConditionalTypesContext;this.state.inDisallowConditionalTypesContext=!1;try{return e()}finally{this.state.inDisallowConditionalTypesContext=t}},r.tsEatThenParseType=function(e){if(this.match(e))return this.tsNextThenParseType()},r.tsExpectThenParseType=function(e){var t=this;return this.tsInType(function(){return t.expect(e),t.tsParseType()})},r.tsNextThenParseType=function(){var e=this;return this.tsInType(function(){return e.next(),e.tsParseType()})},r.tsParseEnumMember=function(){var t=this.startNode();return t.id=this.match(134)?e.prototype.parseStringLiteral.call(this,this.state.value):this.parseIdentifier(!0),this.eat(29)&&(t.initializer=e.prototype.parseMaybeAssignAllowIn.call(this)),this.finishNode(t,"TSEnumMember")},r.tsParseEnumDeclaration=function(e,t){return void 0===t&&(t={}),t.const&&(e.const=!0),t.declare&&(e.declare=!0),this.expectContextual(126),e.id=this.parseIdentifier(),this.checkIdentifier(e.id,e.const?av:Zb),this.expect(5),e.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(e,"TSEnumDeclaration")},r.tsParseEnumBody=function(){var e=this.startNode();return this.expect(5),e.members=this.tsParseDelimitedList("EnumMembers",this.tsParseEnumMember.bind(this)),this.expect(8),this.finishNode(e,"TSEnumBody")},r.tsParseModuleBlock=function(){var t=this.startNode();return this.scope.enter(vb),this.expect(5),e.prototype.parseBlockOrModuleBlockBody.call(this,t.body=[],void 0,!0,8),this.scope.exit(),this.finishNode(t,"TSModuleBlock")},r.tsParseModuleOrNamespaceDeclaration=function(e,t){if(void 0===t&&(t=!1),e.id=this.parseIdentifier(),t||this.checkIdentifier(e.id,nv),this.eat(16)){var r=this.startNode();this.tsParseModuleOrNamespaceDeclaration(r,!0),e.body=r}else this.scope.enter(Cb),this.prodParam.enter(Uv),e.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit();return this.finishNode(e,"TSModuleDeclaration")},r.tsParseAmbientExternalModuleDeclaration=function(t){return this.isContextual(112)?(t.kind="global",t.global=!0,t.id=this.parseIdentifier()):this.match(134)?(t.kind="module",t.id=e.prototype.parseStringLiteral.call(this,this.state.value)):this.unexpected(),this.match(5)?(this.scope.enter(Cb),this.prodParam.enter(Uv),t.body=this.tsParseModuleBlock(),this.prodParam.exit(),this.scope.exit()):this.semicolon(),this.finishNode(t,"TSModuleDeclaration")},r.tsParseImportEqualsDeclaration=function(e,t,r){e.isExport=r||!1,e.id=t||this.parseIdentifier(),this.checkIdentifier(e.id,ov),this.expect(29);var a=this.tsParseModuleReference();return"type"===e.importKind&&"TSExternalModuleReference"!==a.type&&this.raise(Ex.ImportAliasHasImportType,a),e.moduleReference=a,this.semicolon(),this.finishNode(e,"TSImportEqualsDeclaration")},r.tsIsExternalModuleReference=function(){return this.isContextual(119)&&40===this.lookaheadCharCode()},r.tsParseModuleReference=function(){return this.tsIsExternalModuleReference()?this.tsParseExternalModuleReference():this.tsParseEntityName(Ax)},r.tsParseExternalModuleReference=function(){var t=this.startNode();return this.expectContextual(119),this.expect(10),this.match(134)||this.unexpected(),t.expression=e.prototype.parseExprAtom.call(this),this.expect(11),this.sawUnambiguousESM=!0,this.finishNode(t,"TSExternalModuleReference")},r.tsLookAhead=function(e){var t=this.state.clone(),r=e();return this.state=t,r},r.tsTryParseAndCatch=function(e){var t=this.tryParse(function(t){return e()||t()});if(!t.aborted&&t.node)return t.error&&(this.state=t.failState),t.node},r.tsTryParse=function(e){var t=this.state.clone(),r=e();if(void 0!==r&&!1!==r)return r;this.state=t},r.tsTryParseDeclare=function(t){var r=this;if(!this.isLineTerminator()){var a=this.state.type;return this.tsInAmbientContext(function(){switch(a){case 68:return t.declare=!0,e.prototype.parseFunctionStatement.call(r,t,!1,!1);case 80:return t.declare=!0,r.parseClass(t,!0,!1);case 126:return r.tsParseEnumDeclaration(t,{declare:!0});case 112:return r.tsParseAmbientExternalModuleDeclaration(t);case 100:if(r.state.containsEsc)return;case 75:case 74:return r.match(75)&&r.isLookaheadContextual("enum")?(r.expect(75),r.tsParseEnumDeclaration(t,{const:!0,declare:!0})):(t.declare=!0,r.parseVarStatement(t,r.state.value,!0));case 107:if(r.isUsing())return r.raise(Ex.InvalidModifierOnUsingDeclaration,r.state.startLoc,"declare"),t.declare=!0,r.parseVarStatement(t,"using",!0);break;case 96:if(r.isAwaitUsing())return r.raise(Ex.InvalidModifierOnAwaitUsingDeclaration,r.state.startLoc,"declare"),t.declare=!0,r.next(),r.parseVarStatement(t,"await using",!0);break;case 129:var n=r.tsParseInterfaceDeclaration(t,{declare:!0});if(n)return n;default:if(ob(a))return r.tsParseDeclaration(t,r.state.type,!0,null)}})}},r.tsTryParseExportDeclaration=function(){return this.tsParseDeclaration(this.startNode(),this.state.type,!0,null)},r.tsParseDeclaration=function(e,t,r,a){switch(t){case 124:if(this.tsCheckLineTerminator(r)&&(this.match(80)||ob(this.state.type)))return this.tsParseAbstractDeclaration(e,a);break;case 127:if(this.tsCheckLineTerminator(r)){if(this.match(134))return this.tsParseAmbientExternalModuleDeclaration(e);if(ob(this.state.type))return e.kind="module",this.tsParseModuleOrNamespaceDeclaration(e)}break;case 128:if(this.tsCheckLineTerminator(r)&&ob(this.state.type))return e.kind="namespace",this.tsParseModuleOrNamespaceDeclaration(e);break;case 130:if(this.tsCheckLineTerminator(r)&&ob(this.state.type))return this.tsParseTypeAliasDeclaration(e)}},r.tsCheckLineTerminator=function(e){return e?!this.hasFollowingLineBreak()&&(this.next(),!0):!this.isLineTerminator()},r.tsTryParseGenericAsyncArrowFunction=function(t){var r=this;if(this.match(47)){var a=this.state.maybeInArrowParameters;this.state.maybeInArrowParameters=!0;var n=this.tsTryParseAndCatch(function(){var a=r.startNodeAt(t);return a.typeParameters=r.tsParseTypeParameters(r.tsParseConstModifier),e.prototype.parseFunctionParams.call(r,a),a.returnType=r.tsTryParseTypeOrTypePredicateAnnotation(),r.expect(19),a});if(this.state.maybeInArrowParameters=a,n)return e.prototype.parseArrowExpression.call(this,n,null,!0)}},r.tsParseTypeArgumentsInExpression=function(){if(47===this.reScan_lt())return this.tsParseTypeArguments()},r.tsParseTypeArguments=function(){var e=this,t=this.startNode();return t.params=this.tsInType(function(){return e.tsInTopLevelContext(function(){return e.expect(47),e.tsParseDelimitedList("TypeParametersOrArguments",e.tsParseType.bind(e))})}),0===t.params.length?this.raise(Ex.EmptyTypeArguments,t):this.state.inType||this.curContext()!==Uh.brace||this.reScan_lt_gt(),this.expect(48),this.finishNode(t,"TSTypeParameterInstantiation")},r.tsIsDeclarationStart=function(){return(e=this.state.type)>=124&&e<=130;var e},r.isExportDefaultSpecifier=function(){return!this.tsIsDeclarationStart()&&e.prototype.isExportDefaultSpecifier.call(this)},r.parseBindingElement=function(e,t){var r=t.length?t[0].loc.start:this.state.startLoc,a={};this.tsParseModifiers({allowedModifiers:["public","private","protected","override","readonly"]},a);var n=a.accessibility,s=a.override,o=a.readonly;e&xx||!(n||o||s)||this.raise(Ex.UnexpectedParameterModifier,r);var i=this.parseMaybeDefault();e&vx&&this.parseFunctionParamType(i);var d=this.parseMaybeDefault(i.loc.start,i);if(n||o||s){var c=this.startNodeAt(r);return t.length&&(c.decorators=t),n&&(c.accessibility=n),o&&(c.readonly=o),s&&(c.override=s),"Identifier"!==d.type&&"AssignmentPattern"!==d.type&&this.raise(Ex.UnsupportedParameterPropertyKind,c),c.parameter=d,this.finishNode(c,"TSParameterProperty")}return t.length&&(i.decorators=t),d},r.isSimpleParameter=function(t){return"TSParameterProperty"===t.type&&e.prototype.isSimpleParameter.call(this,t.parameter)||e.prototype.isSimpleParameter.call(this,t)},r.tsDisallowOptionalPattern=function(e){for(var t=0,r=e.params;t<r.length;t++){var a=r[t];"Identifier"!==a.type&&a.optional&&!this.state.isAmbientContext&&this.raise(Ex.PatternIsOptional,a)}},r.setArrowFunctionParameters=function(t,r,a){e.prototype.setArrowFunctionParameters.call(this,t,r,a),this.tsDisallowOptionalPattern(t)},r.parseFunctionBodyAndFinish=function(t,r,a){void 0===a&&(a=!1),this.match(14)&&(t.returnType=this.tsParseTypeOrTypePredicateAnnotation(14));var n="FunctionDeclaration"===r?"TSDeclareFunction":"ClassMethod"===r||"ClassPrivateMethod"===r?"TSDeclareMethod":void 0;return n&&!this.match(5)&&this.isLineTerminator()?this.finishNode(t,n):"TSDeclareFunction"===n&&this.state.isAmbientContext&&(this.raise(Ex.DeclareFunctionHasImplementation,t),t.declare)?e.prototype.parseFunctionBodyAndFinish.call(this,t,n,a):(this.tsDisallowOptionalPattern(t),e.prototype.parseFunctionBodyAndFinish.call(this,t,r,a))},r.registerFunctionStatementId=function(t){!t.body&&t.id?this.checkIdentifier(t.id,ev):e.prototype.registerFunctionStatementId.call(this,t)},r.tsCheckForInvalidTypeCasts=function(e){var t=this;e.forEach(function(e){"TSTypeCastExpression"===(null==e?void 0:e.type)&&t.raise(Ex.UnexpectedTypeAnnotation,e.typeAnnotation)})},r.toReferencedList=function(e,t){return this.tsCheckForInvalidTypeCasts(e),e},r.parseArrayLike=function(t,r,a){var n=e.prototype.parseArrayLike.call(this,t,r,a);return"ArrayExpression"===n.type&&this.tsCheckForInvalidTypeCasts(n.elements),n},r.parseSubscript=function(t,r,a,n){var s=this;if(!this.hasPrecedingLineBreak()&&this.match(35)){this.state.canStartJSXElement=!1,this.next();var o=this.startNodeAt(r);return o.expression=t,this.finishNode(o,"TSNonNullExpression")}var i=!1;if(this.match(18)&&60===this.lookaheadCharCode()){if(a)return n.stop=!0,t;n.optionalChainMember=i=!0,this.next()}if(this.match(47)||this.match(51)){var d,c=this.tsTryParseAndCatch(function(){if(!a&&s.atPossibleAsyncArrow(t)){var o=s.tsTryParseGenericAsyncArrowFunction(r);if(o)return n.stop=!0,o}var c=s.tsParseTypeArgumentsInExpression();if(c)if(!i||s.match(10)){if(mb(s.state.type)){var l=e.prototype.parseTaggedTemplateExpression.call(s,t,r,n);return l.typeParameters=c,l}if(!a&&s.eat(10)){var u=s.startNodeAt(r);return u.callee=t,u.arguments=s.parseCallExpressionArguments(),s.tsCheckForInvalidTypeCasts(u.arguments),u.typeParameters=c,n.optionalChainMember&&(u.optional=i),s.finishCallExpression(u,n.optionalChainMember)}var p=s.state.type;if(48!==p&&52!==p&&(10===p||93===p||120===p||!cb(p)||s.hasPrecedingLineBreak())){var f=s.startNodeAt(r);return f.expression=t,f.typeParameters=c,s.finishNode(f,"TSInstantiationExpression")}}else d=s.state.curPosition()});if(d&&this.unexpected(d,10),c)return"TSInstantiationExpression"===c.type&&((this.match(16)||this.match(18)&&40!==this.lookaheadCharCode())&&this.raise(Ex.InvalidPropertyAccessAfterInstantiationExpression,this.state.startLoc),this.match(16)||this.match(18)||(c.expression=e.prototype.stopParseSubscript.call(this,t,n))),c}return e.prototype.parseSubscript.call(this,t,r,a,n)},r.parseNewCallee=function(t){var r;e.prototype.parseNewCallee.call(this,t);var a=t.callee;"TSInstantiationExpression"!==a.type||null!=(r=a.extra)&&r.parenthesized||(t.typeParameters=a.typeParameters,t.callee=a.expression)},r.parseExprOp=function(t,r,a){var n,s=this;if(gb(58)>a&&!this.hasPrecedingLineBreak()&&(this.isContextual(93)||(n=this.isContextual(120)))){var o=this.startNodeAt(r);return o.expression=t,o.typeAnnotation=this.tsInType(function(){return s.next(),s.match(75)?(n&&s.raise(Rh.UnexpectedKeyword,s.state.startLoc,{keyword:"const"}),s.tsParseTypeReference()):s.tsParseType()}),this.finishNode(o,n?"TSSatisfiesExpression":"TSAsExpression"),this.reScan_lt_gt(),this.parseExprOp(o,r,a)}return e.prototype.parseExprOp.call(this,t,r,a)},r.checkReservedWord=function(t,r,a,n){this.state.isAmbientContext||e.prototype.checkReservedWord.call(this,t,r,a,n)},r.checkImportReflection=function(t){e.prototype.checkImportReflection.call(this,t),t.module&&"value"!==t.importKind&&this.raise(Ex.ImportReflectionHasImportType,t.specifiers[0].loc.start)},r.checkDuplicateExports=function(){},r.isPotentialImportPhase=function(t){if(e.prototype.isPotentialImportPhase.call(this,t))return!0;if(this.isContextual(130)){var r=this.lookaheadCharCode();return t?123===r||42===r:61!==r}return!t&&this.isContextual(87)},r.applyImportPhase=function(t,r,a,n){e.prototype.applyImportPhase.call(this,t,r,a,n),r?t.exportKind="type"===a?"type":"value":t.importKind="type"===a||"typeof"===a?a:"value"},r.parseImport=function(t){if(this.match(134))return t.importKind="value",e.prototype.parseImport.call(this,t);var r;if(ob(this.state.type)&&61===this.lookaheadCharCode())return t.importKind="value",this.tsParseImportEqualsDeclaration(t);if(this.isContextual(130)){var a=this.parseMaybeImportPhase(t,!1);if(61===this.lookaheadCharCode())return this.tsParseImportEqualsDeclaration(t,a);r=e.prototype.parseImportSpecifiersAndAfter.call(this,t,a)}else r=e.prototype.parseImport.call(this,t);return"type"===r.importKind&&r.specifiers.length>1&&"ImportDefaultSpecifier"===r.specifiers[0].type&&this.raise(Ex.TypeImportCannotSpecifyDefaultAndNamed,r),r},r.parseExport=function(t,r){if(this.match(83)){var a=t;this.next();var n=null;return this.isContextual(130)&&this.isPotentialImportPhase(!1)?n=this.parseMaybeImportPhase(a,!1):a.importKind="value",this.tsParseImportEqualsDeclaration(a,n,!0)}if(this.eat(29)){var s=t;return s.expression=e.prototype.parseExpression.call(this),this.semicolon(),this.sawUnambiguousESM=!0,this.finishNode(s,"TSExportAssignment")}if(this.eatContextual(93)){var o=t;return this.expectContextual(128),o.id=this.parseIdentifier(),this.semicolon(),this.finishNode(o,"TSNamespaceExportDeclaration")}return e.prototype.parseExport.call(this,t,r)},r.isAbstractClass=function(){return this.isContextual(124)&&this.isLookaheadContextual("class")},r.parseExportDefaultExpression=function(){if(this.isAbstractClass()){var t=this.startNode();return this.next(),t.abstract=!0,this.parseClass(t,!0,!0)}if(this.match(129)){var r=this.tsParseInterfaceDeclaration(this.startNode());if(r)return r}return e.prototype.parseExportDefaultExpression.call(this)},r.parseVarStatement=function(t,r,a){void 0===a&&(a=!1);var n=this.state.isAmbientContext,s=e.prototype.parseVarStatement.call(this,t,r,a||n);if(!n)return s;if(!t.declare&&("using"===r||"await using"===r))return this.raiseOverwrite(Ex.UsingDeclarationInAmbientContext,t,r),s;for(var o=0,i=s.declarations;o<i.length;o++){var d=i[o],c=d.id,l=d.init;l&&("var"===r||"let"===r||c.typeAnnotation?this.raise(Ex.InitializerNotAllowedInAmbientContext,l):Ix(l,this.hasPlugin("estree"))||this.raise(Ex.ConstInitializerMustBeStringOrNumericLiteralOrLiteralEnumReference,l))}return s},r.parseStatementContent=function(t,r){if(!this.state.containsEsc)switch(this.state.type){case 75:if(this.isLookaheadContextual("enum")){var a=this.startNode();return this.expect(75),this.tsParseEnumDeclaration(a,{const:!0})}break;case 124:case 125:if(this.nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine()){var n=this.state.type,s=this.startNode();this.next();var o=125===n?this.tsTryParseDeclare(s):this.tsParseAbstractDeclaration(s,r);return o?(125===n&&(o.declare=!0),o):(s.expression=this.createIdentifier(this.startNodeAt(s.loc.start),125===n?"declare":"abstract"),this.semicolon(!1),this.finishNode(s,"ExpressionStatement"))}break;case 126:return this.tsParseEnumDeclaration(this.startNode());case 112:if(123===this.lookaheadCharCode()){var i=this.startNode();return this.tsParseAmbientExternalModuleDeclaration(i)}break;case 129:var d=this.tsParseInterfaceDeclaration(this.startNode());if(d)return d;break;case 127:if(this.nextTokenIsIdentifierOrStringLiteralOnSameLine()){var c=this.startNode();return this.next(),this.tsParseDeclaration(c,127,!1,r)}break;case 128:if(this.nextTokenIsIdentifierOnSameLine()){var l=this.startNode();return this.next(),this.tsParseDeclaration(l,128,!1,r)}break;case 130:if(this.nextTokenIsIdentifierOnSameLine()){var u=this.startNode();return this.next(),this.tsParseTypeAliasDeclaration(u)}}return e.prototype.parseStatementContent.call(this,t,r)},r.parseAccessModifier=function(){return this.tsParseModifier(["public","protected","private"])},r.tsHasSomeModifiers=function(e,t){return t.some(function(t){return Sx(t)?e.accessibility===t:!!e[t]})},r.tsIsStartOfStaticBlocks=function(){return this.isContextual(106)&&123===this.lookaheadCharCode()},r.parseClassMember=function(t,r,a){var n=this,s=["declare","private","public","protected","override","abstract","readonly","static"];this.tsParseModifiers({allowedModifiers:s,disallowedModifiers:["in","out"],stopOnStartOfClassStaticBlock:!0,errorTemplate:Ex.InvalidModifierOnTypeParameterPositions},r);var o=function(){n.tsIsStartOfStaticBlocks()?(n.next(),n.next(),n.tsHasSomeModifiers(r,s)&&n.raise(Ex.StaticBlockCannotHaveModifier,n.state.curPosition()),e.prototype.parseClassStaticBlock.call(n,t,r)):n.parseClassMemberWithIsStatic(t,r,a,!!r.static)};r.declare?this.tsInAmbientContext(o):o()},r.parseClassMemberWithIsStatic=function(t,r,a,n){var s=this.tsTryParseIndexSignature(r);if(s)return t.body.push(s),r.abstract&&this.raise(Ex.IndexSignatureHasAbstract,r),r.accessibility&&this.raise(Ex.IndexSignatureHasAccessibility,r,{modifier:r.accessibility}),r.declare&&this.raise(Ex.IndexSignatureHasDeclare,r),void(r.override&&this.raise(Ex.IndexSignatureHasOverride,r));!this.state.inAbstractClass&&r.abstract&&this.raise(Ex.NonAbstractClassHasAbstractMethod,r),r.override&&(a.hadSuperClass||this.raise(Ex.OverrideNotInSubClass,r)),e.prototype.parseClassMemberWithIsStatic.call(this,t,r,a,n)},r.parsePostMemberNameModifiers=function(e){this.eat(17)&&(e.optional=!0),e.readonly&&this.match(10)&&this.raise(Ex.ClassMethodHasReadonly,e),e.declare&&this.match(10)&&this.raise(Ex.ClassMethodHasDeclare,e)},r.shouldParseExportDeclaration=function(){return!!this.tsIsDeclarationStart()||e.prototype.shouldParseExportDeclaration.call(this)},r.parseConditional=function(t,r,a){if(!this.match(17))return t;if(this.state.maybeInArrowParameters){var n=this.lookaheadCharCode();if(44===n||61===n||58===n||41===n)return this.setOptionalParametersError(a),t}return e.prototype.parseConditional.call(this,t,r,a)},r.parseParenItem=function(t,r){var a=e.prototype.parseParenItem.call(this,t,r);if(this.eat(17)&&(a.optional=!0,this.resetEndLocation(t)),this.match(14)){var n=this.startNodeAt(r);return n.expression=t,n.typeAnnotation=this.tsParseTypeAnnotation(),this.finishNode(n,"TSTypeCastExpression")}return t},r.parseExportDeclaration=function(t){var r=this;if(!this.state.isAmbientContext&&this.isContextual(125))return this.tsInAmbientContext(function(){return r.parseExportDeclaration(t)});var a=this.state.startLoc,n=this.eatContextual(125);if(n&&(this.isContextual(125)||!this.shouldParseExportDeclaration()))throw this.raise(Ex.ExpectedAmbientAfterExportDeclare,this.state.startLoc);var s=ob(this.state.type)&&this.tsTryParseExportDeclaration()||e.prototype.parseExportDeclaration.call(this,t);return s?(("TSInterfaceDeclaration"===s.type||"TSTypeAliasDeclaration"===s.type||n)&&(t.exportKind="type"),n&&"TSImportEqualsDeclaration"!==s.type&&(this.resetStartLocation(s,a),s.declare=!0),s):null},r.parseClassId=function(t,r,a,n){if(r&&!a||!this.isContextual(113)){e.prototype.parseClassId.call(this,t,r,a,t.declare?ev:zb);var s=this.tsTryParseTypeParameters(this.tsParseInOutConstModifiers);s&&(t.typeParameters=s)}},r.parseClassPropertyAnnotation=function(e){e.optional||(this.eat(35)?e.definite=!0:this.eat(17)&&(e.optional=!0));var t=this.tsTryParseTypeAnnotation();t&&(e.typeAnnotation=t)},r.parseClassProperty=function(t){if(this.parseClassPropertyAnnotation(t),this.state.isAmbientContext&&(!t.readonly||t.typeAnnotation)&&this.match(29)&&this.raise(Ex.DeclareClassFieldHasInitializer,this.state.startLoc),t.abstract&&this.match(29)){var r=t.key;this.raise(Ex.AbstractPropertyHasInitializer,this.state.startLoc,{propertyName:"Identifier"!==r.type||t.computed?"["+this.input.slice(this.offsetToSourcePos(r.start),this.offsetToSourcePos(r.end))+"]":r.name})}return e.prototype.parseClassProperty.call(this,t)},r.parseClassPrivateProperty=function(t){return t.abstract&&this.raise(Ex.PrivateElementHasAbstract,t),t.accessibility&&this.raise(Ex.PrivateElementHasAccessibility,t,{modifier:t.accessibility}),this.parseClassPropertyAnnotation(t),e.prototype.parseClassPrivateProperty.call(this,t)},r.parseClassAccessorProperty=function(t){return this.parseClassPropertyAnnotation(t),t.optional&&this.raise(Ex.AccessorCannotBeOptional,t),e.prototype.parseClassAccessorProperty.call(this,t)},r.pushClassMethod=function(t,r,a,n,s,o){var i=this.tsTryParseTypeParameters(this.tsParseConstModifier);i&&s&&this.raise(Ex.ConstructorHasTypeParameters,i);var d=r.declare,c=void 0!==d&&d,l=r.kind;!c||"get"!==l&&"set"!==l||this.raise(Ex.DeclareAccessor,r,{kind:l}),i&&(r.typeParameters=i),e.prototype.pushClassMethod.call(this,t,r,a,n,s,o)},r.pushClassPrivateMethod=function(t,r,a,n){var s=this.tsTryParseTypeParameters(this.tsParseConstModifier);s&&(r.typeParameters=s),e.prototype.pushClassPrivateMethod.call(this,t,r,a,n)},r.declareClassPrivateMethodInScope=function(t,r){"TSDeclareMethod"!==t.type&&("MethodDefinition"===t.type&&null==t.value.body||e.prototype.declareClassPrivateMethodInScope.call(this,t,r))},r.parseClassSuper=function(t){if(e.prototype.parseClassSuper.call(this,t),t.superClass)if("TSInstantiationExpression"===t.superClass.type){var r=t.superClass,a=r.expression;this.takeSurroundingComments(a,a.start,a.end);var n=r.typeParameters;this.takeSurroundingComments(n,n.start,n.end),t.superClass=a,t.superTypeParameters=n}else(this.match(47)||this.match(51))&&(t.superTypeParameters=this.tsParseTypeArgumentsInExpression());this.eatContextual(113)&&(t.implements=this.tsParseHeritageClause("implements"))},r.parseObjPropValue=function(t,r,a,n,s,o,i){var d=this.tsTryParseTypeParameters(this.tsParseConstModifier);return d&&(t.typeParameters=d),e.prototype.parseObjPropValue.call(this,t,r,a,n,s,o,i)},r.parseFunctionParams=function(t,r){var a=this.tsTryParseTypeParameters(this.tsParseConstModifier);a&&(t.typeParameters=a),e.prototype.parseFunctionParams.call(this,t,r)},r.parseVarId=function(t,r){e.prototype.parseVarId.call(this,t,r),"Identifier"===t.id.type&&!this.hasPrecedingLineBreak()&&this.eat(35)&&(t.definite=!0);var a=this.tsTryParseTypeAnnotation();a&&(t.id.typeAnnotation=a,this.resetEndLocation(t.id))},r.parseAsyncArrowFromCallExpression=function(t,r){return this.match(14)&&(t.returnType=this.tsParseTypeAnnotation()),e.prototype.parseAsyncArrowFromCallExpression.call(this,t,r)},r.parseMaybeAssign=function(t,r){var a,n,s,o,i,d,c,l,u,p=this;if(this.hasPlugin("jsx")&&(this.match(143)||this.match(47))){if(d=this.state.clone(),!(c=this.tryParse(function(){return e.prototype.parseMaybeAssign.call(p,t,r)},d)).error)return c.node;var f=this.state.context,g=f[f.length-1];g!==Uh.j_oTag&&g!==Uh.j_expr||f.pop()}if(!(null!=(a=c)&&a.error||this.match(47)))return e.prototype.parseMaybeAssign.call(this,t,r);d&&d!==this.state||(d=this.state.clone());var m=this.tryParse(function(a){var n,s;u=p.tsParseTypeParameters(p.tsParseConstModifier);var o=e.prototype.parseMaybeAssign.call(p,t,r);return("ArrowFunctionExpression"!==o.type||null!=(n=o.extra)&&n.parenthesized)&&a(),0!==(null==(s=u)?void 0:s.params.length)&&p.resetStartLocationFromNode(o,u),o.typeParameters=u,o},d);if(!m.error&&!m.aborted)return u&&this.reportReservedArrowTypeParam(u),m.node;if(!c&&(wx(!this.hasPlugin("jsx")),!(l=this.tryParse(function(){return e.prototype.parseMaybeAssign.call(p,t,r)},d)).error))return l.node;if(null!=(n=c)&&n.node)return this.state=c.failState,c.node;if(m.node)return this.state=m.failState,u&&this.reportReservedArrowTypeParam(u),m.node;if(null!=(s=l)&&s.node)return this.state=l.failState,l.node;throw(null==(o=c)?void 0:o.error)||m.error||(null==(i=l)?void 0:i.error)},r.reportReservedArrowTypeParam=function(e){var t;1!==e.params.length||e.params[0].constraint||null!=(t=e.extra)&&t.trailingComma||!this.getPluginOption("typescript","disallowAmbiguousJSXLike")||this.raise(Ex.ReservedArrowTypeParam,e)},r.parseMaybeUnary=function(t,r){return!this.hasPlugin("jsx")&&this.match(47)?this.tsParseTypeAssertion():e.prototype.parseMaybeUnary.call(this,t,r)},r.parseArrow=function(t){var r=this;if(this.match(14)){var a=this.tryParse(function(e){var t=r.tsParseTypeOrTypePredicateAnnotation(14);return!r.canInsertSemicolon()&&r.match(19)||e(),t});if(a.aborted)return;a.thrown||(a.error&&(this.state=a.failState),t.returnType=a.node)}return e.prototype.parseArrow.call(this,t)},r.parseFunctionParamType=function(e){this.eat(17)&&(e.optional=!0);var t=this.tsTryParseTypeAnnotation();return t&&(e.typeAnnotation=t),this.resetEndLocation(e),e},r.isAssignable=function(t,r){switch(t.type){case"TSTypeCastExpression":return this.isAssignable(t.expression,r);case"TSParameterProperty":return!0;default:return e.prototype.isAssignable.call(this,t,r)}},r.toAssignable=function(t,r){switch(void 0===r&&(r=!1),t.type){case"ParenthesizedExpression":this.toAssignableParenthesizedExpression(t,r);break;case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":r?this.expressionScope.recordArrowParameterBindingError(Ex.UnexpectedTypeCastInParameter,t):this.raise(Ex.UnexpectedTypeCastInParameter,t),this.toAssignable(t.expression,r);break;case"AssignmentExpression":r||"TSTypeCastExpression"!==t.left.type||(t.left=this.typeCastToParameter(t.left));default:e.prototype.toAssignable.call(this,t,r)}},r.toAssignableParenthesizedExpression=function(t,r){switch(t.expression.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSNonNullExpression":case"TSTypeAssertion":case"ParenthesizedExpression":this.toAssignable(t.expression,r);break;default:e.prototype.toAssignable.call(this,t,r)}},r.checkToRestConversion=function(t,r){switch(t.type){case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":case"TSNonNullExpression":this.checkToRestConversion(t.expression,!1);break;default:e.prototype.checkToRestConversion.call(this,t,r)}},r.isValidLVal=function(t,r,a,n){switch(t){case"TSTypeCastExpression":return!0;case"TSParameterProperty":return"parameter";case"TSNonNullExpression":return"expression";case"TSAsExpression":case"TSSatisfiesExpression":case"TSTypeAssertion":return(n!==tv||!a)&&["expression",!0];default:return e.prototype.isValidLVal.call(this,t,r,a,n)}},r.parseBindingAtom=function(){return 78===this.state.type?this.parseIdentifier(!0):e.prototype.parseBindingAtom.call(this)},r.parseMaybeDecoratorArguments=function(t,r){if(this.match(47)||this.match(51)){var a=this.tsParseTypeArgumentsInExpression();if(this.match(10)){var n=e.prototype.parseMaybeDecoratorArguments.call(this,t,r);return n.typeParameters=a,n}this.unexpected(null,10)}return e.prototype.parseMaybeDecoratorArguments.call(this,t,r)},r.checkCommaAfterRest=function(t){return this.state.isAmbientContext&&this.match(12)&&this.lookaheadCharCode()===t?(this.next(),!1):e.prototype.checkCommaAfterRest.call(this,t)},r.isClassMethod=function(){return this.match(47)||e.prototype.isClassMethod.call(this)},r.isClassProperty=function(){return this.match(35)||this.match(14)||e.prototype.isClassProperty.call(this)},r.parseMaybeDefault=function(t,r){var a=e.prototype.parseMaybeDefault.call(this,t,r);return"AssignmentPattern"===a.type&&a.typeAnnotation&&a.right.start<a.typeAnnotation.start&&this.raise(Ex.TypeAnnotationAfterAssign,a.typeAnnotation),a},r.getTokenFromCode=function(t){if(this.state.inType){if(62===t)return void this.finishOp(48,1);if(60===t)return void this.finishOp(47,1)}e.prototype.getTokenFromCode.call(this,t)},r.reScan_lt_gt=function(){var e=this.state.type;47===e?(this.state.pos-=1,this.readToken_lt()):48===e&&(this.state.pos-=1,this.readToken_gt())},r.reScan_lt=function(){var e=this.state.type;return 51===e?(this.state.pos-=2,this.finishOp(47,1),47):e},r.toAssignableListItem=function(t,r,a){var n=t[r];"TSTypeCastExpression"===n.type&&(t[r]=this.typeCastToParameter(n)),e.prototype.toAssignableListItem.call(this,t,r,a)},r.typeCastToParameter=function(e){return e.expression.typeAnnotation=e.typeAnnotation,this.resetEndLocation(e.expression,e.typeAnnotation.loc.end),e.expression},r.shouldParseArrow=function(t){var r=this;return this.match(14)?t.every(function(e){return r.isAssignable(e,!0)}):e.prototype.shouldParseArrow.call(this,t)},r.shouldParseAsyncArrow=function(){return this.match(14)||e.prototype.shouldParseAsyncArrow.call(this)},r.canHaveLeadingDecorator=function(){return e.prototype.canHaveLeadingDecorator.call(this)||this.isAbstractClass()},r.jsxParseOpeningElementAfterName=function(t){var r=this;if(this.match(47)||this.match(51)){var a=this.tsTryParseAndCatch(function(){return r.tsParseTypeArgumentsInExpression()});a&&(t.typeParameters=a)}return e.prototype.jsxParseOpeningElementAfterName.call(this,t)},r.getGetterSetterExpectedParamCount=function(t){var r=e.prototype.getGetterSetterExpectedParamCount.call(this,t),a=this.getObjectOrClassMethodParams(t)[0];return a&&this.isThisParam(a)?r+1:r},r.parseCatchClauseParam=function(){var t=e.prototype.parseCatchClauseParam.call(this),r=this.tsTryParseTypeAnnotation();return r&&(t.typeAnnotation=r,this.resetEndLocation(t)),t},r.tsInAmbientContext=function(e){var t=this.state,r=t.isAmbientContext,a=t.strict;this.state.isAmbientContext=!0,this.state.strict=!1;try{return e()}finally{this.state.isAmbientContext=r,this.state.strict=a}},r.parseClass=function(t,r,a){var n=this.state.inAbstractClass;this.state.inAbstractClass=!!t.abstract;try{return e.prototype.parseClass.call(this,t,r,a)}finally{this.state.inAbstractClass=n}},r.tsParseAbstractDeclaration=function(e,t){if(this.match(80))return e.abstract=!0,this.maybeTakeDecorators(t,this.parseClass(e,!0,!1));if(this.isContextual(129))return this.hasFollowingLineBreak()?null:(e.abstract=!0,this.raise(Ex.NonClassMethodPropertyHasAbstractModifier,e),this.tsParseInterfaceDeclaration(e));throw this.unexpected(null,80)},r.parseMethod=function(t,r,a,n,s,o,i){var d=e.prototype.parseMethod.call(this,t,r,a,n,s,o,i);if((d.abstract||"TSAbstractMethodDefinition"===d.type)&&(this.hasPlugin("estree")?d.value:d).body){var c=d.key;this.raise(Ex.AbstractMethodHasImplementation,d,{methodName:"Identifier"!==c.type||d.computed?"["+this.input.slice(this.offsetToSourcePos(c.start),this.offsetToSourcePos(c.end))+"]":c.name})}return d},r.tsParseTypeParameterName=function(){return this.parseIdentifier().name},r.shouldParseAsAmbientContext=function(){return!!this.getPluginOption("typescript","dts")},r.parse=function(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),e.prototype.parse.call(this)},r.getExpression=function(){return this.shouldParseAsAmbientContext()&&(this.state.isAmbientContext=!0),e.prototype.getExpression.call(this)},r.parseExportSpecifier=function(t,r,a,n){return!r&&n?(this.parseTypeOnlyImportExportSpecifier(t,!1,a),this.finishNode(t,"ExportSpecifier")):(t.exportKind="value",e.prototype.parseExportSpecifier.call(this,t,r,a,n))},r.parseImportSpecifier=function(t,r,a,n,s){return!r&&n?(this.parseTypeOnlyImportExportSpecifier(t,!0,a),this.finishNode(t,"ImportSpecifier")):(t.importKind="value",e.prototype.parseImportSpecifier.call(this,t,r,a,n,a?sv:ov))},r.parseTypeOnlyImportExportSpecifier=function(e,t,r){var a,n=t?"imported":"local",s=t?"local":"exported",o=e[n],i=!1,d=!0,c=o.loc.start;if(this.isContextual(93)){var l=this.parseIdentifier();if(this.isContextual(93)){var u=this.parseIdentifier();ib(this.state.type)?(i=!0,o=l,a=t?this.parseIdentifier():this.parseModuleExportName(),d=!1):(a=u,d=!1)}else ib(this.state.type)?(d=!1,a=t?this.parseIdentifier():this.parseModuleExportName()):(i=!0,o=l)}else ib(this.state.type)&&(i=!0,t?(o=this.parseIdentifier(!0),this.isContextual(93)||this.checkReservedWord(o.name,o.loc.start,!0,!0)):o=this.parseModuleExportName());i&&r&&this.raise(t?Ex.TypeModifierIsUsedInTypeImports:Ex.TypeModifierIsUsedInTypeExports,c),e[n]=o,e[s]=a,e[t?"importKind":"exportKind"]=i?"type":"value",d&&this.eatContextual(93)&&(e[s]=t?this.parseIdentifier():this.parseModuleExportName()),e[s]||(e[s]=this.cloneIdentifier(e[n])),t&&this.checkIdentifier(e[s],i?sv:ov)},r.fillOptionalPropertiesForTSESLint=function(e){switch(e.type){case"ExpressionStatement":return void(null!=e.directive||(e.directive=void 0));case"RestElement":e.value=void 0;case"Identifier":case"ArrayPattern":case"AssignmentPattern":case"ObjectPattern":return null!=e.decorators||(e.decorators=[]),null!=e.optional||(e.optional=!1),void(null!=e.typeAnnotation||(e.typeAnnotation=void 0));case"TSParameterProperty":return null!=e.accessibility||(e.accessibility=void 0),null!=e.decorators||(e.decorators=[]),null!=e.override||(e.override=!1),null!=e.readonly||(e.readonly=!1),void(null!=e.static||(e.static=!1));case"TSEmptyBodyFunctionExpression":e.body=null;case"TSDeclareFunction":case"FunctionDeclaration":case"FunctionExpression":case"ClassMethod":case"ClassPrivateMethod":return null!=e.declare||(e.declare=!1),null!=e.returnType||(e.returnType=void 0),void(null!=e.typeParameters||(e.typeParameters=void 0));case"Property":return void(null!=e.optional||(e.optional=!1));case"TSMethodSignature":case"TSPropertySignature":null!=e.optional||(e.optional=!1);case"TSIndexSignature":return null!=e.accessibility||(e.accessibility=void 0),null!=e.readonly||(e.readonly=!1),void(null!=e.static||(e.static=!1));case"TSAbstractPropertyDefinition":case"PropertyDefinition":case"TSAbstractAccessorProperty":case"AccessorProperty":null!=e.declare||(e.declare=!1),null!=e.definite||(e.definite=!1),null!=e.readonly||(e.readonly=!1),null!=e.typeAnnotation||(e.typeAnnotation=void 0);case"TSAbstractMethodDefinition":case"MethodDefinition":return null!=e.accessibility||(e.accessibility=void 0),null!=e.decorators||(e.decorators=[]),null!=e.override||(e.override=!1),void(null!=e.optional||(e.optional=!1));case"ClassExpression":null!=e.id||(e.id=null);case"ClassDeclaration":return null!=e.abstract||(e.abstract=!1),null!=e.declare||(e.declare=!1),null!=e.decorators||(e.decorators=[]),null!=e.implements||(e.implements=[]),null!=e.superTypeArguments||(e.superTypeArguments=void 0),void(null!=e.typeParameters||(e.typeParameters=void 0));case"TSTypeAliasDeclaration":case"VariableDeclaration":return void(null!=e.declare||(e.declare=!1));case"VariableDeclarator":return void(null!=e.definite||(e.definite=!1));case"TSEnumDeclaration":return null!=e.const||(e.const=!1),void(null!=e.declare||(e.declare=!1));case"TSEnumMember":return void(null!=e.computed||(e.computed=!1));case"TSImportType":return null!=e.qualifier||(e.qualifier=null),void(null!=e.options||(e.options=null));case"TSInterfaceDeclaration":return null!=e.declare||(e.declare=!1),void(null!=e.extends||(e.extends=[]));case"TSMappedType":return null!=e.optional||(e.optional=!1),void(null!=e.readonly||(e.readonly=void 0));case"TSModuleDeclaration":return null!=e.declare||(e.declare=!1),void(null!=e.global||(e.global="global"===e.kind));case"TSTypeParameter":return null!=e.const||(e.const=!1),null!=e.in||(e.in=!1),void(null!=e.out||(e.out=!1))}},r.chStartsBindingIdentifierAndNotRelationalOperator=function(e,t){if(Mr(e)){if(jx.lastIndex=t,jx.test(this.input)){var r=this.codePointAtPos(jx.lastIndex);if(!Fr(r)&&92!==r)return!1}return!0}return 92===e},r.nextTokenIsIdentifierAndNotTSRelationalOperatorOnSameLine=function(){var e=this.nextTokenInLineStart(),t=this.codePointAtPos(e);return this.chStartsBindingIdentifierAndNotRelationalOperator(t,e)},r.nextTokenIsIdentifierOrStringLiteralOnSameLine=function(){var e=this.nextTokenInLineStart(),t=this.codePointAtPos(e);return this.chStartsBindingIdentifier(t,e)||34===t||39===t},o(t)}(e)},v8intrinsic:function(e){return function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.parseV8Intrinsic=function(){if(this.match(54)){var e=this.state.startLoc,t=this.startNode();if(this.next(),ob(this.state.type)){var r=this.parseIdentifierName(),a=this.createIdentifier(t,r);if(this.castNodeTo(a,"V8IntrinsicIdentifier"),this.match(10))return a}this.unexpected(e)}},r.parseExprAtom=function(t){return this.parseV8Intrinsic()||e.prototype.parseExprAtom.call(this,t)},o(t)}(e)},placeholders:function(e){return function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.parsePlaceholder=function(t){if(this.match(133)){var r=this.startNode();return this.next(),this.assertNoSpace(),r.name=e.prototype.parseIdentifier.call(this,!0),this.assertNoSpace(),this.expect(133),this.finishPlaceholder(r,t)}},r.finishPlaceholder=function(e,t){var r=e;return r.expectedNode&&r.type||(r=this.finishNode(r,"Placeholder")),r.expectedNode=t,r},r.getTokenFromCode=function(t){37===t&&37===this.input.charCodeAt(this.state.pos+1)?this.finishOp(133,2):e.prototype.getTokenFromCode.call(this,t)},r.parseExprAtom=function(t){return this.parsePlaceholder("Expression")||e.prototype.parseExprAtom.call(this,t)},r.parseIdentifier=function(t){return this.parsePlaceholder("Identifier")||e.prototype.parseIdentifier.call(this,t)},r.checkReservedWord=function(t,r,a,n){void 0!==t&&e.prototype.checkReservedWord.call(this,t,r,a,n)},r.cloneIdentifier=function(t){var r=e.prototype.cloneIdentifier.call(this,t);return"Placeholder"===r.type&&(r.expectedNode=t.expectedNode),r},r.cloneStringLiteral=function(t){return"Placeholder"===t.type?this.cloneIdentifier(t):e.prototype.cloneStringLiteral.call(this,t)},r.parseBindingAtom=function(){return this.parsePlaceholder("Pattern")||e.prototype.parseBindingAtom.call(this)},r.isValidLVal=function(t,r,a,n){return"Placeholder"===t||e.prototype.isValidLVal.call(this,t,r,a,n)},r.toAssignable=function(t,r){t&&"Placeholder"===t.type&&"Expression"===t.expectedNode?t.expectedNode="Pattern":e.prototype.toAssignable.call(this,t,r)},r.chStartsBindingIdentifier=function(t,r){if(e.prototype.chStartsBindingIdentifier.call(this,t,r))return!0;var a=this.nextTokenStart();return 37===this.input.charCodeAt(a)&&37===this.input.charCodeAt(a+1)},r.verifyBreakContinue=function(t,r){var a;"Placeholder"!==(null==(a=t.label)?void 0:a.type)&&e.prototype.verifyBreakContinue.call(this,t,r)},r.parseExpressionStatement=function(t,r){var a;if("Placeholder"!==r.type||null!=(a=r.extra)&&a.parenthesized)return e.prototype.parseExpressionStatement.call(this,t,r);if(this.match(14)){var n=t;return n.label=this.finishPlaceholder(r,"Identifier"),this.next(),n.body=e.prototype.parseStatementOrSloppyAnnexBFunctionDeclaration.call(this),this.finishNode(n,"LabeledStatement")}this.semicolon();var s=t;return s.name=r.name,this.finishPlaceholder(s,"Statement")},r.parseBlock=function(t,r,a){return this.parsePlaceholder("BlockStatement")||e.prototype.parseBlock.call(this,t,r,a)},r.parseFunctionId=function(t){return this.parsePlaceholder("Identifier")||e.prototype.parseFunctionId.call(this,t)},r.parseClass=function(t,r,a){var n=r?"ClassDeclaration":"ClassExpression";this.next();var s=this.state.strict,o=this.parsePlaceholder("Identifier");if(o){if(!(this.match(81)||this.match(133)||this.match(5))){if(a||!r)return t.id=null,t.body=this.finishPlaceholder(o,"ClassBody"),this.finishNode(t,n);throw this.raise(Nx.ClassNameIsRequired,this.state.startLoc)}t.id=o}else this.parseClassId(t,r,a);return e.prototype.parseClassSuper.call(this,t),t.body=this.parsePlaceholder("ClassBody")||e.prototype.parseClassBody.call(this,!!t.superClass,s),this.finishNode(t,n)},r.parseExport=function(t,r){var a=this.parsePlaceholder("Identifier");if(!a)return e.prototype.parseExport.call(this,t,r);var n=t;if(!this.isContextual(98)&&!this.match(12))return n.specifiers=[],n.source=null,n.declaration=this.finishPlaceholder(a,"Declaration"),this.finishNode(n,"ExportNamedDeclaration");this.expectPlugin("exportDefaultFrom");var s=this.startNode();return s.exported=a,n.specifiers=[this.finishNode(s,"ExportDefaultSpecifier")],e.prototype.parseExport.call(this,n,r)},r.isExportDefaultSpecifier=function(){if(this.match(65)){var t=this.nextTokenStart();if(this.isUnparsedContextual(t,"from")&&this.input.startsWith(fb(133),this.nextTokenStartSince(t+4)))return!0}return e.prototype.isExportDefaultSpecifier.call(this)},r.maybeParseExportDefaultSpecifier=function(t,r){var a;return!(null==(a=t.specifiers)||!a.length)||e.prototype.maybeParseExportDefaultSpecifier.call(this,t,r)},r.checkExport=function(t){var r=t.specifiers;null!=r&&r.length&&(t.specifiers=r.filter(function(e){return"Placeholder"===e.exported.type})),e.prototype.checkExport.call(this,t),t.specifiers=r},r.parseImport=function(t){var r=this.parsePlaceholder("Identifier");if(!r)return e.prototype.parseImport.call(this,t);if(t.specifiers=[],!this.isContextual(98)&&!this.match(12))return t.source=this.finishPlaceholder(r,"StringLiteral"),this.semicolon(),this.finishNode(t,"ImportDeclaration");var a=this.startNodeAtNode(r);(a.local=r,t.specifiers.push(this.finishNode(a,"ImportDefaultSpecifier")),this.eat(12))&&(this.maybeParseStarImportSpecifier(t)||this.parseNamedImportSpecifiers(t));return this.expectContextual(98),t.source=this.parseImportSource(),this.semicolon(),this.finishNode(t,"ImportDeclaration")},r.parseImportSource=function(){return this.parsePlaceholder("StringLiteral")||e.prototype.parseImportSource.call(this)},r.assertNoSpace=function(){this.state.start>this.offsetToSourcePos(this.state.lastTokEndLoc.index)&&this.raise(Nx.UnexpectedSpace,this.state.lastTokEndLoc)},o(t)}(e)}},Lx=Object.keys(Fx),Ux=function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.checkProto=function(e,t,r,a){if("SpreadElement"===e.type||this.isObjectMethod(e)||e.computed||e.shorthand)return r;var n=e.key;return"__proto__"===("Identifier"===n.type?n.name:n.value)?t?(this.raise(Rh.RecordNoProto,n),!0):(r&&(a?null===a.doubleProtoLoc&&(a.doubleProtoLoc=n.loc.start):this.raise(Rh.DuplicateProto,n)),!0):r},r.shouldExitDescending=function(e,t){return"ArrowFunctionExpression"===e.type&&this.offsetToSourcePos(e.start)===t},r.getExpression=function(){if(this.enterInitialScopes(),this.nextToken(),this.match(140))throw this.raise(Rh.ParseExpressionEmptyInput,this.state.startLoc);var e=this.parseExpression();if(!this.match(140))throw this.raise(Rh.ParseExpressionExpectsEOF,this.state.startLoc,{unexpected:this.input.codePointAt(this.state.start)});return this.finalizeRemainingComments(),e.comments=this.comments,e.errors=this.state.errors,this.optionFlags&Ch&&(e.tokens=this.tokens),e},r.parseExpression=function(e,t){var r=this;return e?this.disallowInAnd(function(){return r.parseExpressionBase(t)}):this.allowInAnd(function(){return r.parseExpressionBase(t)})},r.parseExpressionBase=function(e){var t=this.state.startLoc,r=this.parseMaybeAssign(e);if(this.match(12)){var a=this.startNodeAt(t);for(a.expressions=[r];this.eat(12);)a.expressions.push(this.parseMaybeAssign(e));return this.toReferencedList(a.expressions),this.finishNode(a,"SequenceExpression")}return r},r.parseMaybeAssignDisallowIn=function(e,t){var r=this;return this.disallowInAnd(function(){return r.parseMaybeAssign(e,t)})},r.parseMaybeAssignAllowIn=function(e,t){var r=this;return this.allowInAnd(function(){return r.parseMaybeAssign(e,t)})},r.setOptionalParametersError=function(e){e.optionalParametersLoc=this.state.startLoc},r.parseMaybeAssign=function(e,t){var r,a=this.state.startLoc,n=this.isContextual(108);if(n&&this.prodParam.hasYield){this.next();var s=this.parseYield(a);return t&&(s=t.call(this,s,a)),s}e?r=!1:(e=new px,r=!0);var o=this.state.type;(10===o||ob(o))&&(this.state.potentialArrowAt=this.state.start);var i,d=this.parseMaybeConditional(e);if(t&&(d=t.call(this,d,a)),(i=this.state.type)>=29&&i<=33){var c=this.startNodeAt(a),l=this.state.value;if(c.operator=l,this.match(29)){this.toAssignable(d,!0),c.left=d;var u=a.index;null!=e.doubleProtoLoc&&e.doubleProtoLoc.index>=u&&(e.doubleProtoLoc=null),null!=e.shorthandAssignLoc&&e.shorthandAssignLoc.index>=u&&(e.shorthandAssignLoc=null),null!=e.privateKeyLoc&&e.privateKeyLoc.index>=u&&(this.checkDestructuringPrivate(e),e.privateKeyLoc=null),null!=e.voidPatternLoc&&e.voidPatternLoc.index>=u&&(e.voidPatternLoc=null)}else c.left=d;return this.next(),c.right=this.parseMaybeAssign(),this.checkLVal(d,this.finishNode(c,"AssignmentExpression"),void 0,void 0,void 0,void 0,"||="===l||"&&="===l||"??="===l),c}if(r&&this.checkExpressionErrors(e,!0),n){var p=this.state.type;if((this.hasPlugin("v8intrinsic")?cb(p):cb(p)&&!this.match(54))&&!this.isAmbiguousPrefixOrIdentifier())return this.raiseOverwrite(Rh.YieldNotInGeneratorFunction,a),this.parseYield(a)}return d},r.parseMaybeConditional=function(e){var t=this.state.startLoc,r=this.state.potentialArrowAt,a=this.parseExprOps(e);return this.shouldExitDescending(a,r)?a:this.parseConditional(a,t,e)},r.parseConditional=function(e,t,r){if(this.eat(17)){var a=this.startNodeAt(t);return a.test=e,a.consequent=this.parseMaybeAssignAllowIn(),this.expect(14),a.alternate=this.parseMaybeAssign(),this.finishNode(a,"ConditionalExpression")}return e},r.parseMaybeUnaryOrPrivate=function(e){return this.match(139)?this.parsePrivateName():this.parseMaybeUnary(e)},r.parseExprOps=function(e){var t=this.state.startLoc,r=this.state.potentialArrowAt,a=this.parseMaybeUnaryOrPrivate(e);return this.shouldExitDescending(a,r)?a:this.parseExprOp(a,t,-1)},r.parseExprOp=function(e,t,r){if(this.isPrivateName(e)){var a=this.getPrivateNameSV(e);(r>=gb(58)||!this.prodParam.hasIn||!this.match(58))&&this.raise(Rh.PrivateInExpectedIn,e,{identifierName:a}),this.classScope.usePrivateName(a,e.loc.start)}var n,s=this.state.type;if((n=s)>=39&&n<=59&&(this.prodParam.hasIn||!this.match(58))){var o=gb(s);if(o>r){if(39===s){if(this.expectPlugin("pipelineOperator"),this.state.inFSharpPipelineDirectBody)return e;this.checkPipelineAtInfixOperator(e,t)}var i=this.startNodeAt(t);i.left=e,i.operator=this.state.value;var d=41===s||42===s,c=40===s;if(c&&(o=gb(42)),this.next(),39===s&&this.hasPlugin(["pipelineOperator",{proposal:"minimal"}])&&96===this.state.type&&this.prodParam.hasAwait)throw this.raise(Rh.UnexpectedAwaitAfterPipelineBody,this.state.startLoc);i.right=this.parseExprOpRightExpr(s,o);var l=this.finishNode(i,d||c?"LogicalExpression":"BinaryExpression"),u=this.state.type;if(c&&(41===u||42===u)||d&&40===u)throw this.raise(Rh.MixingCoalesceWithLogical,this.state.startLoc);return this.parseExprOp(l,t,r)}}return e},r.parseExprOpRightExpr=function(e,t){var r=this,a=this.state.startLoc;if(39===e){switch(this.getPluginOption("pipelineOperator","proposal")){case"hack":return this.withTopicBindingContext(function(){return r.parseHackPipeBody()});case"fsharp":return this.withSoloAwaitPermittingContext(function(){return r.parseFSharpPipelineBody(t)})}if("smart"===this.getPluginOption("pipelineOperator","proposal"))return this.withTopicBindingContext(function(){if(r.prodParam.hasYield&&r.isContextual(108))throw r.raise(Rh.PipeBodyIsTighter,r.state.startLoc);return r.parseSmartPipelineBodyInStyle(r.parseExprOpBaseRightExpr(e,t),a)})}return this.parseExprOpBaseRightExpr(e,t)},r.parseExprOpBaseRightExpr=function(e,t){var r=this.state.startLoc;return this.parseExprOp(this.parseMaybeUnaryOrPrivate(),r,57===e?t-1:t)},r.parseHackPipeBody=function(){var e,t=this.state.startLoc,r=this.parseMaybeAssign();return!yh.has(r.type)||null!=(e=r.extra)&&e.parenthesized||this.raise(Rh.PipeUnparenthesizedBody,t,{type:r.type}),this.topicReferenceWasUsedInCurrentContext()||this.raise(Rh.PipeTopicUnused,t),r},r.checkExponentialAfterUnary=function(e){this.match(57)&&this.raise(Rh.UnexpectedTokenUnaryExponentiation,e.argument)},r.parseMaybeUnary=function(e,t){var r=this.state.startLoc,a=this.isContextual(96);if(a&&this.recordAwaitIfAllowed()){this.next();var n=this.parseAwait(r);return t||this.checkExponentialAfterUnary(n),n}var s,o=this.match(34),i=this.startNode();if(s=this.state.type,rb[s]){i.operator=this.state.value,i.prefix=!0,this.match(72)&&this.expectPlugin("throwExpressions");var d=this.match(89);if(this.next(),i.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),this.state.strict&&d){var c=i.argument;"Identifier"===c.type?this.raise(Rh.StrictDelete,i):this.hasPropertyAsPrivateName(c)&&this.raise(Rh.DeletePrivateField,i)}if(!o)return t||this.checkExponentialAfterUnary(i),this.finishNode(i,"UnaryExpression")}var l=this.parseUpdate(i,o,e);if(a){var u=this.state.type;if((this.hasPlugin("v8intrinsic")?cb(u):cb(u)&&!this.match(54))&&!this.isAmbiguousPrefixOrIdentifier())return this.raiseOverwrite(Rh.AwaitNotInAsyncContext,r),this.parseAwait(r)}return l},r.parseUpdate=function(e,t,r){if(t){var a=e;return this.checkLVal(a.argument,this.finishNode(a,"UpdateExpression")),e}var n=this.state.startLoc,s=this.parseExprSubscripts(r);if(this.checkExpressionErrors(r,!1))return s;for(;pb(this.state.type)&&!this.canInsertSemicolon();){var o=this.startNodeAt(n);o.operator=this.state.value,o.prefix=!1,o.argument=s,this.next(),this.checkLVal(s,s=this.finishNode(o,"UpdateExpression"))}return s},r.parseExprSubscripts=function(e){var t=this.state.startLoc,r=this.state.potentialArrowAt,a=this.parseExprAtom(e);return this.shouldExitDescending(a,r)?a:this.parseSubscripts(a,t)},r.parseSubscripts=function(e,t,r){var a={optionalChainMember:!1,maybeAsyncArrow:this.atPossibleAsyncArrow(e),stop:!1};do{e=this.parseSubscript(e,t,r,a),a.maybeAsyncArrow=!1}while(!a.stop);return e},r.parseSubscript=function(e,t,r,a){var n=this.state.type;if(!r&&15===n)return this.parseBind(e,t,r,a);if(mb(n))return this.parseTaggedTemplateExpression(e,t,a);var s=!1;if(18===n){if(r&&(this.raise(Rh.OptionalChainingNoNew,this.state.startLoc),40===this.lookaheadCharCode()))return this.stopParseSubscript(e,a);a.optionalChainMember=s=!0,this.next()}if(!r&&this.match(10))return this.parseCoverCallAndAsyncArrowHead(e,t,a,s);var o=this.eat(0);return o||s||this.eat(16)?this.parseMember(e,t,a,o,s):this.stopParseSubscript(e,a)},r.stopParseSubscript=function(e,t){return t.stop=!0,e},r.parseMember=function(e,t,r,a,n){var s=this.startNodeAt(t);return s.object=e,s.computed=a,a?(s.property=this.parseExpression(),this.expect(3)):this.match(139)?("Super"===e.type&&this.raise(Rh.SuperPrivateField,t),this.classScope.usePrivateName(this.state.value,this.state.startLoc),s.property=this.parsePrivateName()):s.property=this.parseIdentifier(!0),r.optionalChainMember?(s.optional=n,this.finishNode(s,"OptionalMemberExpression")):this.finishNode(s,"MemberExpression")},r.parseBind=function(e,t,r,a){var n=this.startNodeAt(t);return n.object=e,this.next(),n.callee=this.parseNoCallExpr(),a.stop=!0,this.parseSubscripts(this.finishNode(n,"BindExpression"),t,r)},r.parseCoverCallAndAsyncArrowHead=function(e,t,r,a){var n=this.state.maybeInArrowParameters,s=null;this.state.maybeInArrowParameters=!0,this.next();var o=this.startNodeAt(t);o.callee=e;var i=r.maybeAsyncArrow,d=r.optionalChainMember;i&&(this.expressionScope.enter(new dx(2)),s=new px),d&&(o.optional=a),o.arguments=a?this.parseCallExpressionArguments():this.parseCallExpressionArguments("Super"!==e.type,o,s);var c=this.finishCallExpression(o,d);return i&&this.shouldParseAsyncArrow()&&!a?(r.stop=!0,this.checkDestructuringPrivate(s),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),c=this.parseAsyncArrowFromCallExpression(this.startNodeAt(t),c)):(i&&(this.checkExpressionErrors(s,!0),this.expressionScope.exit()),this.toReferencedArguments(c)),this.state.maybeInArrowParameters=n,c},r.toReferencedArguments=function(e,t){this.toReferencedListDeep(e.arguments,t)},r.parseTaggedTemplateExpression=function(e,t,r){var a=this.startNodeAt(t);return a.tag=e,a.quasi=this.parseTemplate(!0),r.optionalChainMember&&this.raise(Rh.OptionalChainingNoTemplate,t),this.finishNode(a,"TaggedTemplateExpression")},r.atPossibleAsyncArrow=function(e){return"Identifier"===e.type&&"async"===e.name&&this.state.lastTokEndLoc.index===e.end&&!this.canInsertSemicolon()&&e.end-e.start===5&&this.offsetToSourcePos(e.start)===this.state.potentialArrowAt},r.finishCallExpression=function(e,t){if("Import"===e.callee.type)if(0===e.arguments.length||e.arguments.length>2)this.raise(Rh.ImportCallArity,e);else for(var r=0,a=e.arguments;r<a.length;r++){var n=a[r];"SpreadElement"===n.type&&this.raise(Rh.ImportCallSpreadArgument,n)}return this.finishNode(e,t?"OptionalCallExpression":"CallExpression")},r.parseCallExpressionArguments=function(e,t,r){var a=[],n=!0,s=this.state.inFSharpPipelineDirectBody;for(this.state.inFSharpPipelineDirectBody=!1;!this.eat(11);){if(n)n=!1;else if(this.expect(12),this.match(11)){t&&this.addTrailingCommaExtraToNode(t),this.next();break}a.push(this.parseExprListItem(11,!1,r,e))}return this.state.inFSharpPipelineDirectBody=s,a},r.shouldParseAsyncArrow=function(){return this.match(19)&&!this.canInsertSemicolon()},r.parseAsyncArrowFromCallExpression=function(e,t){var r;return this.resetPreviousNodeTrailingComments(t),this.expect(19),this.parseArrowExpression(e,t.arguments,!0,null==(r=t.extra)?void 0:r.trailingCommaLoc),t.innerComments&&Jv(e,t.innerComments),t.callee.trailingComments&&Jv(e,t.callee.trailingComments),e},r.parseNoCallExpr=function(){var e=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,!0)},r.parseExprAtom=function(e){var t,r=null,a=this.state.type;switch(a){case 79:return this.parseSuper();case 83:return t=this.startNode(),this.next(),this.match(16)?this.parseImportMetaPropertyOrPhaseCall(t):this.match(10)?this.optionFlags&_h?this.parseImportCall(t):this.finishNode(t,"Import"):(this.raise(Rh.UnsupportedImport,this.state.lastTokStartLoc),this.finishNode(t,"Import"));case 78:return t=this.startNode(),this.next(),this.finishNode(t,"ThisExpression");case 90:return this.parseDo(this.startNode(),!1);case 56:case 31:return this.readRegexp(),this.parseRegExpLiteral(this.state.value);case 135:return this.parseNumericLiteral(this.state.value);case 136:return this.parseBigIntLiteral(this.state.value);case 134:return this.parseStringLiteral(this.state.value);case 84:return this.parseNullLiteral();case 85:return this.parseBooleanLiteral(!0);case 86:return this.parseBooleanLiteral(!1);case 10:var n=this.state.potentialArrowAt===this.state.start;return this.parseParenAndDistinguishExpression(n);case 0:return this.parseArrayLike(3,!1,e);case 5:return this.parseObjectLike(8,!1,!1,e);case 68:return this.parseFunctionOrFunctionSent();case 26:r=this.parseDecorators();case 80:return this.parseClass(this.maybeTakeDecorators(r,this.startNode()),!1);case 77:return this.parseNewOrNewTarget();case 25:case 24:return this.parseTemplate(!1);case 15:t=this.startNode(),this.next(),t.object=null;var s=t.callee=this.parseNoCallExpr();if("MemberExpression"===s.type)return this.finishNode(t,"BindExpression");throw this.raise(Rh.UnsupportedBind,s);case 139:return this.raise(Rh.PrivateInExpectedIn,this.state.startLoc,{identifierName:this.state.value}),this.parsePrivateName();case 33:return this.parseTopicReferenceThenEqualsSign(54,"%");case 32:return this.parseTopicReferenceThenEqualsSign(44,"^");case 37:case 38:return this.parseTopicReference("hack");case 44:case 54:case 27:var o=this.getPluginOption("pipelineOperator","proposal");if(o)return this.parseTopicReference(o);throw this.unexpected();case 47:var i=this.input.codePointAt(this.nextTokenStart());if(Mr(i)||62===i)throw this.expectOnePlugin(["jsx","flow","typescript"]);throw this.unexpected();default:if(137===a)return this.parseDecimalLiteral(this.state.value);if(2===a||1===a)return this.parseArrayLike(2===this.state.type?4:3,!0);if(6===a||7===a)return this.parseObjectLike(6===this.state.type?9:8,!1,!0);if(ob(a)){if(this.isContextual(127)&&123===this.lookaheadInLineCharCode())return this.parseModuleExpression();var d=this.state.potentialArrowAt===this.state.start,c=this.state.containsEsc,l=this.parseIdentifier();if(!c&&"async"===l.name&&!this.canInsertSemicolon()){var u=this.state.type;if(68===u)return this.resetPreviousNodeTrailingComments(l),this.next(),this.parseAsyncFunctionExpression(this.startNodeAtNode(l));if(ob(u))return 61===this.lookaheadCharCode()?this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(l)):l;if(90===u)return this.resetPreviousNodeTrailingComments(l),this.parseDo(this.startNodeAtNode(l),!0)}return d&&this.match(19)&&!this.canInsertSemicolon()?(this.next(),this.parseArrowExpression(this.startNodeAtNode(l),[l],!1)):l}throw this.unexpected()}},r.parseTopicReferenceThenEqualsSign=function(e,t){var r=this.getPluginOption("pipelineOperator","proposal");if(r)return this.state.type=e,this.state.value=t,this.state.pos--,this.state.end--,this.state.endLoc=dh(this.state.endLoc,-1),this.parseTopicReference(r);throw this.unexpected()},r.parseTopicReference=function(e){var t=this.startNode(),r=this.state.startLoc,a=this.state.type;return this.next(),this.finishTopicReference(t,r,e,a)},r.finishTopicReference=function(e,t,r,a){if(this.testTopicReferenceConfiguration(r,t,a))return"hack"===r?(this.topicReferenceIsAllowedInCurrentContext()||this.raise(Rh.PipeTopicUnbound,t),this.registerTopicReference(),this.finishNode(e,"TopicReference")):(this.topicReferenceIsAllowedInCurrentContext()||this.raise(Rh.PrimaryTopicNotAllowed,t),this.registerTopicReference(),this.finishNode(e,"PipelinePrimaryTopicReference"));throw this.raise(Rh.PipeTopicUnconfiguredToken,t,{token:fb(a)})},r.testTopicReferenceConfiguration=function(e,t,r){switch(e){case"hack":return this.hasPlugin(["pipelineOperator",{topicToken:fb(r)}]);case"smart":return 27===r;default:throw this.raise(Rh.PipeTopicRequiresHackPipes,t)}},r.parseAsyncArrowUnaryFunction=function(e){this.prodParam.enter(zv(!0,this.prodParam.hasYield));var t=[this.parseIdentifier()];return this.prodParam.exit(),this.hasPrecedingLineBreak()&&this.raise(Rh.LineTerminatorBeforeArrow,this.state.curPosition()),this.expect(19),this.parseArrowExpression(e,t,!0)},r.parseDo=function(e,t){this.expectPlugin("doExpressions"),t&&this.expectPlugin("asyncDoExpressions"),e.async=t,this.next();var r=this.state.labels;return this.state.labels=[],t?(this.prodParam.enter(Gv),e.body=this.parseBlock(),this.prodParam.exit()):e.body=this.parseBlock(),this.state.labels=r,this.finishNode(e,"DoExpression")},r.parseSuper=function(){var e=this.startNode();return this.next(),this.match(10)&&!this.scope.allowDirectSuper?this.optionFlags&Th||this.raise(Rh.SuperNotAllowed,e):this.scope.allowSuper||this.optionFlags&Th||this.raise(Rh.UnexpectedSuper,e),this.match(10)||this.match(0)||this.match(16)||this.raise(Rh.UnsupportedSuper,e),this.finishNode(e,"Super")},r.parsePrivateName=function(){var e=this.startNode(),t=this.startNodeAt(dh(this.state.startLoc,1)),r=this.state.value;return this.next(),e.id=this.createIdentifier(t,r),this.finishNode(e,"PrivateName")},r.parseFunctionOrFunctionSent=function(){var e=this.startNode();if(this.next(),this.prodParam.hasYield&&this.match(16)){var t=this.createIdentifier(this.startNodeAtNode(e),"function");return this.next(),this.match(103)?this.expectPlugin("functionSent"):this.hasPlugin("functionSent")||this.unexpected(),this.parseMetaProperty(e,t,"sent")}return this.parseFunction(e)},r.parseMetaProperty=function(e,t,r){e.meta=t;var a=this.state.containsEsc;return e.property=this.parseIdentifier(!0),(e.property.name!==r||a)&&this.raise(Rh.UnsupportedMetaProperty,e.property,{target:t.name,onlyValidPropertyName:r}),this.finishNode(e,"MetaProperty")},r.parseImportMetaPropertyOrPhaseCall=function(e){if(this.next(),this.isContextual(105)||this.isContextual(97)){var t=this.isContextual(105);return this.expectPlugin(t?"sourcePhaseImports":"deferredImportEvaluation"),this.next(),e.phase=t?"source":"defer",this.parseImportCall(e)}var r=this.createIdentifierAt(this.startNodeAtNode(e),"import",this.state.lastTokStartLoc);return this.isContextual(101)&&(this.inModule||this.raise(Rh.ImportMetaOutsideModule,r),this.sawUnambiguousESM=!0),this.parseMetaProperty(e,r,"meta")},r.parseLiteralAtNode=function(e,t,r){return this.addExtra(r,"rawValue",e),this.addExtra(r,"raw",this.input.slice(this.offsetToSourcePos(r.start),this.state.end)),r.value=e,this.next(),this.finishNode(r,t)},r.parseLiteral=function(e,t){var r=this.startNode();return this.parseLiteralAtNode(e,t,r)},r.parseStringLiteral=function(e){return this.parseLiteral(e,"StringLiteral")},r.parseNumericLiteral=function(e){return this.parseLiteral(e,"NumericLiteral")},r.parseBigIntLiteral=function(e){return this.parseLiteral(e,"BigIntLiteral")},r.parseDecimalLiteral=function(e){return this.parseLiteral(e,"DecimalLiteral")},r.parseRegExpLiteral=function(e){var t=this.startNode();return this.addExtra(t,"raw",this.input.slice(this.offsetToSourcePos(t.start),this.state.end)),t.pattern=e.pattern,t.flags=e.flags,this.next(),this.finishNode(t,"RegExpLiteral")},r.parseBooleanLiteral=function(e){var t=this.startNode();return t.value=e,this.next(),this.finishNode(t,"BooleanLiteral")},r.parseNullLiteral=function(){var e=this.startNode();return this.next(),this.finishNode(e,"NullLiteral")},r.parseParenAndDistinguishExpression=function(e){var t,r=this.state.startLoc;this.next(),this.expressionScope.enter(new dx(1));var a=this.state.maybeInArrowParameters,n=this.state.inFSharpPipelineDirectBody;this.state.maybeInArrowParameters=!0,this.state.inFSharpPipelineDirectBody=!1;for(var s,o,i=this.state.startLoc,d=[],c=new px,l=!0;!this.match(11);){if(l)l=!1;else if(this.expect(12,null===c.optionalParametersLoc?null:c.optionalParametersLoc),this.match(11)){o=this.state.startLoc;break}if(this.match(21)){var u=this.state.startLoc;if(s=this.state.startLoc,d.push(this.parseParenItem(this.parseRestBinding(),u)),!this.checkCommaAfterRest(41))break}else d.push(this.parseMaybeAssignAllowInOrVoidPattern(11,c,this.parseParenItem))}var p=this.state.lastTokEndLoc;this.expect(11),this.state.maybeInArrowParameters=a,this.state.inFSharpPipelineDirectBody=n;var f=this.startNodeAt(r);return e&&this.shouldParseArrow(d)&&(f=this.parseArrow(f))?(this.checkDestructuringPrivate(c),this.expressionScope.validateAsPattern(),this.expressionScope.exit(),this.parseArrowExpression(f,d,!1),f):(this.expressionScope.exit(),d.length||this.unexpected(this.state.lastTokStartLoc),o&&this.unexpected(o),s&&this.unexpected(s),this.checkExpressionErrors(c,!0),this.toReferencedListDeep(d,!0),d.length>1?((t=this.startNodeAt(i)).expressions=d,this.finishNode(t,"SequenceExpression"),this.resetEndLocation(t,p)):t=d[0],this.wrapParenthesis(r,t))},r.wrapParenthesis=function(e,t){if(!(this.optionFlags&Ih))return this.addExtra(t,"parenthesized",!0),this.addExtra(t,"parenStart",e.index),this.takeSurroundingComments(t,e.index,this.state.lastTokEndLoc.index),t;var r=this.startNodeAt(e);return r.expression=t,this.finishNode(r,"ParenthesizedExpression")},r.shouldParseArrow=function(e){return!this.canInsertSemicolon()},r.parseArrow=function(e){if(this.eat(19))return e},r.parseParenItem=function(e,t){return e},r.parseNewOrNewTarget=function(){var e=this.startNode();if(this.next(),this.match(16)){var t=this.createIdentifier(this.startNodeAtNode(e),"new");this.next();var r=this.parseMetaProperty(e,t,"target");return this.scope.allowNewTarget||this.raise(Rh.UnexpectedNewTarget,r),r}return this.parseNew(e)},r.parseNew=function(e){if(this.parseNewCallee(e),this.eat(10)){var t=this.parseExprList(11);this.toReferencedList(t),e.arguments=t}else e.arguments=[];return this.finishNode(e,"NewExpression")},r.parseNewCallee=function(e){var t=this.match(83),r=this.parseNoCallExpr();e.callee=r,!t||"Import"!==r.type&&"ImportExpression"!==r.type||this.raise(Rh.ImportCallNotNewExpression,r)},r.parseTemplateElement=function(e){var t=this.state,r=t.start,a=t.startLoc,n=t.end,s=t.value,o=r+1,i=this.startNodeAt(dh(a,1));null===s&&(e||this.raise(Rh.InvalidEscapeSequenceTemplate,dh(this.state.firstInvalidTemplateEscapePos,1)));var d=this.match(24),c=d?-1:-2,l=n+c;i.value={raw:this.input.slice(o,l).replace(/\r\n?/g,"\n"),cooked:null===s?null:s.slice(1,c)},i.tail=d,this.next();var u=this.finishNode(i,"TemplateElement");return this.resetEndLocation(u,dh(this.state.lastTokEndLoc,c)),u},r.parseTemplate=function(e){for(var t=this.startNode(),r=this.parseTemplateElement(e),a=[r],n=[];!r.tail;)n.push(this.parseTemplateSubstitution()),this.readTemplateContinuation(),a.push(r=this.parseTemplateElement(e));return t.expressions=n,t.quasis=a,this.finishNode(t,"TemplateLiteral")},r.parseTemplateSubstitution=function(){return this.parseExpression()},r.parseObjectLike=function(e,t,r,a){r&&this.expectPlugin("recordAndTuple");var n=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;var s=!1,o=!0,i=this.startNode();for(i.properties=[],this.next();!this.match(e);){if(o)o=!1;else if(this.expect(12),this.match(e)){this.addTrailingCommaExtraToNode(i);break}var d=void 0;t?d=this.parseBindingProperty():(d=this.parsePropertyDefinition(a),s=this.checkProto(d,r,s,a)),r&&!this.isObjectProperty(d)&&"SpreadElement"!==d.type&&this.raise(Rh.InvalidRecordProperty,d),d.shorthand&&this.addExtra(d,"shorthand",!0),i.properties.push(d)}this.next(),this.state.inFSharpPipelineDirectBody=n;var c="ObjectExpression";return t?c="ObjectPattern":r&&(c="RecordExpression"),this.finishNode(i,c)},r.addTrailingCommaExtraToNode=function(e){this.addExtra(e,"trailingComma",this.state.lastTokStartLoc.index),this.addExtra(e,"trailingCommaLoc",this.state.lastTokStartLoc,!1)},r.maybeAsyncOrAccessorProp=function(e){return!e.computed&&"Identifier"===e.key.type&&(this.isLiteralPropertyName()||this.match(0)||this.match(55))},r.parsePropertyDefinition=function(e){var t=[];if(this.match(26))for(this.hasPlugin("decorators")&&this.raise(Rh.UnsupportedPropertyDecorator,this.state.startLoc);this.match(26);)t.push(this.parseDecorator());var r,a=this.startNode(),n=!1,s=!1;if(this.match(21))return t.length&&this.unexpected(),this.parseSpread();t.length&&(a.decorators=t,t=[]),a.method=!1,e&&(r=this.state.startLoc);var o=this.eat(55);this.parsePropertyNamePrefixOperator(a);var i=this.state.containsEsc;if(this.parsePropertyName(a,e),!o&&!i&&this.maybeAsyncOrAccessorProp(a)){var d=a.key,c=d.name;"async"!==c||this.hasPrecedingLineBreak()||(n=!0,this.resetPreviousNodeTrailingComments(d),o=this.eat(55),this.parsePropertyName(a)),"get"!==c&&"set"!==c||(s=!0,this.resetPreviousNodeTrailingComments(d),a.kind=c,this.match(55)&&(o=!0,this.raise(Rh.AccessorIsGenerator,this.state.curPosition(),{kind:c}),this.next()),this.parsePropertyName(a))}return this.parseObjPropValue(a,r,o,n,!1,s,e)},r.getGetterSetterExpectedParamCount=function(e){return"get"===e.kind?0:1},r.getObjectOrClassMethodParams=function(e){return e.params},r.checkGetterSetterParams=function(e){var t,r=this.getGetterSetterExpectedParamCount(e),a=this.getObjectOrClassMethodParams(e);a.length!==r&&this.raise("get"===e.kind?Rh.BadGetterArity:Rh.BadSetterArity,e),"set"===e.kind&&"RestElement"===(null==(t=a[a.length-1])?void 0:t.type)&&this.raise(Rh.BadSetterRestParameter,e)},r.parseObjectMethod=function(e,t,r,a,n){if(n){var s=this.parseMethod(e,t,!1,!1,!1,"ObjectMethod");return this.checkGetterSetterParams(s),s}if(r||t||this.match(10))return a&&this.unexpected(),e.kind="method",e.method=!0,this.parseMethod(e,t,r,!1,!1,"ObjectMethod")},r.parseObjectProperty=function(e,t,r,a){if(e.shorthand=!1,this.eat(14))return e.value=r?this.parseMaybeDefault(this.state.startLoc):this.parseMaybeAssignAllowInOrVoidPattern(8,a),this.finishObjectProperty(e);if(!e.computed&&"Identifier"===e.key.type){if(this.checkReservedWord(e.key.name,e.key.loc.start,!0,!1),r)e.value=this.parseMaybeDefault(t,this.cloneIdentifier(e.key));else if(this.match(29)){var n=this.state.startLoc;null!=a?null===a.shorthandAssignLoc&&(a.shorthandAssignLoc=n):this.raise(Rh.InvalidCoverInitializedName,n),e.value=this.parseMaybeDefault(t,this.cloneIdentifier(e.key))}else e.value=this.cloneIdentifier(e.key);return e.shorthand=!0,this.finishObjectProperty(e)}},r.finishObjectProperty=function(e){return this.finishNode(e,"ObjectProperty")},r.parseObjPropValue=function(e,t,r,a,n,s,o){var i=this.parseObjectMethod(e,r,a,n,s)||this.parseObjectProperty(e,t,n,o);return i||this.unexpected(),i},r.parsePropertyName=function(e,t){if(this.eat(0))e.computed=!0,e.key=this.parseMaybeAssignAllowIn(),this.expect(3);else{var r,a=this.state,n=a.type,s=a.value;if(ib(n))r=this.parseIdentifier(!0);else switch(n){case 135:r=this.parseNumericLiteral(s);break;case 134:r=this.parseStringLiteral(s);break;case 136:r=this.parseBigIntLiteral(s);break;case 139:var o=this.state.startLoc;null!=t?null===t.privateKeyLoc&&(t.privateKeyLoc=o):this.raise(Rh.UnexpectedPrivateField,o),r=this.parsePrivateName();break;default:if(137===n){r=this.parseDecimalLiteral(s);break}this.unexpected()}e.key=r,139!==n&&(e.computed=!1)}},r.initFunction=function(e,t){e.id=null,e.generator=!1,e.async=t},r.parseMethod=function(e,t,r,a,n,s,o){void 0===o&&(o=!1),this.initFunction(e,r),e.generator=t,this.scope.enter(_b|Eb|(o?Ib:0)|(n?Sb:0)),this.prodParam.enter(zv(r,e.generator)),this.parseFunctionParams(e,a);var i=this.parseFunctionBodyAndFinish(e,s,!0);return this.prodParam.exit(),this.scope.exit(),i},r.parseArrayLike=function(e,t,r){t&&this.expectPlugin("recordAndTuple");var a=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!1;var n=this.startNode();return this.next(),n.elements=this.parseExprList(e,!t,r,n),this.state.inFSharpPipelineDirectBody=a,this.finishNode(n,t?"TupleExpression":"ArrayExpression")},r.parseArrowExpression=function(e,t,r,a){this.scope.enter(_b|jb);var n=zv(r,!1);!this.match(5)&&this.prodParam.hasIn&&(n|=Vv),this.prodParam.enter(n),this.initFunction(e,r);var s=this.state.maybeInArrowParameters;return t&&(this.state.maybeInArrowParameters=!0,this.setArrowFunctionParameters(e,t,a)),this.state.maybeInArrowParameters=!1,this.parseFunctionBody(e,!0),this.prodParam.exit(),this.scope.exit(),this.state.maybeInArrowParameters=s,this.finishNode(e,"ArrowFunctionExpression")},r.setArrowFunctionParameters=function(e,t,r){this.toAssignableList(t,r,!1),e.params=t},r.parseFunctionBodyAndFinish=function(e,t,r){return void 0===r&&(r=!1),this.parseFunctionBody(e,!1,r),this.finishNode(e,t)},r.parseFunctionBody=function(e,t,r){var a=this;void 0===r&&(r=!1);var n=t&&!this.match(5);if(this.expressionScope.enter(lx()),n)e.body=this.parseMaybeAssign(),this.checkParams(e,!1,t,!1);else{var s=this.state.strict,o=this.state.labels;this.state.labels=[],this.prodParam.enter(this.prodParam.currentFlags()|Wv),e.body=this.parseBlock(!0,!1,function(n){var o=!a.isSimpleParamList(e.params);n&&o&&a.raise(Rh.IllegalLanguageModeDirective,"method"!==e.kind&&"constructor"!==e.kind||!e.key?e:e.key.loc.end);var i=!s&&a.state.strict;a.checkParams(e,!(a.state.strict||t||r||o),t,i),a.state.strict&&e.id&&a.checkIdentifier(e.id,rv,i)}),this.prodParam.exit(),this.state.labels=o}this.expressionScope.exit()},r.isSimpleParameter=function(e){return"Identifier"===e.type},r.isSimpleParamList=function(e){for(var t=0,r=e.length;t<r;t++)if(!this.isSimpleParameter(e[t]))return!1;return!0},r.checkParams=function(e,t,r,a){void 0===a&&(a=!0);for(var n=!t&&new Set,s={type:"FormalParameters"},o=0,i=e.params;o<i.length;o++){var d=i[o];this.checkLVal(d,s,Jb,n,a)}},r.parseExprList=function(e,t,r,a){for(var n=[],s=!0;!this.eat(e);){if(s)s=!1;else if(this.expect(12),this.match(e)){a&&this.addTrailingCommaExtraToNode(a),this.next();break}n.push(this.parseExprListItem(e,t,r))}return n},r.parseExprListItem=function(e,t,r,a){var n;if(this.match(12))t||this.raise(Rh.UnexpectedToken,this.state.curPosition(),{unexpected:","}),n=null;else if(this.match(21)){var s=this.state.startLoc;n=this.parseParenItem(this.parseSpread(r),s)}else if(this.match(17)){this.expectPlugin("partialApplication"),a||this.raise(Rh.UnexpectedArgumentPlaceholder,this.state.startLoc);var o=this.startNode();this.next(),n=this.finishNode(o,"ArgumentPlaceholder")}else n=this.parseMaybeAssignAllowInOrVoidPattern(e,r,this.parseParenItem);return n},r.parseIdentifier=function(e){var t=this.startNode(),r=this.parseIdentifierName(e);return this.createIdentifier(t,r)},r.createIdentifier=function(e,t){return e.name=t,e.loc.identifierName=t,this.finishNode(e,"Identifier")},r.createIdentifierAt=function(e,t,r){return e.name=t,e.loc.identifierName=t,this.finishNodeAt(e,"Identifier",r)},r.parseIdentifierName=function(e){var t,r=this.state,a=r.startLoc,n=r.type;ib(n)?t=this.state.value:this.unexpected();var s=n<=92;return e?s&&this.replaceToken(132):this.checkReservedWord(t,a,s,!1),this.next(),t},r.checkReservedWord=function(e,t,r,a){if(!(e.length>10)&&function(e){return hb.has(e)}(e))if(r&&Jr(e))this.raise(Rh.UnexpectedKeyword,t,{keyword:e});else if((this.state.strict?a?Xr:zr:Hr)(e,this.inModule))this.raise(Rh.UnexpectedReservedWord,t,{reservedWord:e});else if("yield"===e){if(this.prodParam.hasYield)return void this.raise(Rh.YieldBindingIdentifier,t)}else if("await"===e){if(this.prodParam.hasAwait)return void this.raise(Rh.AwaitBindingIdentifier,t);if(this.scope.inStaticBlock)return void this.raise(Rh.AwaitBindingIdentifierInStaticBlock,t);this.expressionScope.recordAsyncArrowParametersError(t)}else if("arguments"===e&&this.scope.inClassAndNotInNonArrowFunction)return void this.raise(Rh.ArgumentsInClass,t)},r.recordAwaitIfAllowed=function(){var e=this.prodParam.hasAwait;return e&&!this.scope.inFunction&&(this.state.hasTopLevelAwait=!0),e},r.parseAwait=function(e){var t=this.startNodeAt(e);return this.expressionScope.recordParameterInitializerError(Rh.AwaitExpressionFormalParameter,t),this.eat(55)&&this.raise(Rh.ObsoleteAwaitStar,t),this.scope.inFunction||this.optionFlags&jh||(this.isAmbiguousPrefixOrIdentifier()?this.ambiguousScriptDifferentAst=!0:this.sawUnambiguousESM=!0),this.state.soloAwait||(t.argument=this.parseMaybeUnary(null,!0)),this.finishNode(t,"AwaitExpression")},r.isAmbiguousPrefixOrIdentifier=function(){if(this.hasPrecedingLineBreak())return!0;var e=this.state.type;return 53===e||10===e||0===e||mb(e)||102===e&&!this.state.containsEsc||138===e||56===e||this.hasPlugin("v8intrinsic")&&54===e},r.parseYield=function(e){var t=this.startNodeAt(e);this.expressionScope.recordParameterInitializerError(Rh.YieldInParameter,t);var r=!1,a=null;if(!this.hasPrecedingLineBreak())switch(r=this.eat(55),this.state.type){case 13:case 140:case 8:case 11:case 3:case 9:case 14:case 12:if(!r)break;default:a=this.parseMaybeAssign()}return t.delegate=r,t.argument=a,this.finishNode(t,"YieldExpression")},r.parseImportCall=function(e){if(this.next(),e.source=this.parseMaybeAssignAllowIn(),e.options=null,this.eat(12))if(this.match(11))this.addTrailingCommaExtraToNode(e.source);else if(e.options=this.parseMaybeAssignAllowIn(),this.eat(12)&&(this.addTrailingCommaExtraToNode(e.options),!this.match(11))){do{this.parseMaybeAssignAllowIn()}while(this.eat(12)&&!this.match(11));this.raise(Rh.ImportCallArity,e)}return this.expect(11),this.finishNode(e,"ImportExpression")},r.checkPipelineAtInfixOperator=function(e,t){this.hasPlugin(["pipelineOperator",{proposal:"smart"}])&&"SequenceExpression"===e.type&&this.raise(Rh.PipelineHeadSequenceExpression,t)},r.parseSmartPipelineBodyInStyle=function(e,t){if(this.isSimpleReference(e)){var r=this.startNodeAt(t);return r.callee=e,this.finishNode(r,"PipelineBareFunction")}var a=this.startNodeAt(t);return this.checkSmartPipeTopicBodyEarlyErrors(t),a.expression=e,this.finishNode(a,"PipelineTopicExpression")},r.isSimpleReference=function(e){switch(e.type){case"MemberExpression":return!e.computed&&this.isSimpleReference(e.object);case"Identifier":return!0;default:return!1}},r.checkSmartPipeTopicBodyEarlyErrors=function(e){if(this.match(19))throw this.raise(Rh.PipelineBodyNoArrow,this.state.startLoc);this.topicReferenceWasUsedInCurrentContext()||this.raise(Rh.PipelineTopicUnused,e)},r.withTopicBindingContext=function(e){var t=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:1,maxTopicIndex:null};try{return e()}finally{this.state.topicContext=t}},r.withSmartMixTopicForbiddingContext=function(e){if(!this.hasPlugin(["pipelineOperator",{proposal:"smart"}]))return e();var t=this.state.topicContext;this.state.topicContext={maxNumOfResolvableTopics:0,maxTopicIndex:null};try{return e()}finally{this.state.topicContext=t}},r.withSoloAwaitPermittingContext=function(e){var t=this.state.soloAwait;this.state.soloAwait=!0;try{return e()}finally{this.state.soloAwait=t}},r.allowInAnd=function(e){var t=this.prodParam.currentFlags();if(Vv&~t){this.prodParam.enter(t|Vv);try{return e()}finally{this.prodParam.exit()}}return e()},r.disallowInAnd=function(e){var t=this.prodParam.currentFlags();if(Vv&t){this.prodParam.enter(t&~Vv);try{return e()}finally{this.prodParam.exit()}}return e()},r.registerTopicReference=function(){this.state.topicContext.maxTopicIndex=0},r.topicReferenceIsAllowedInCurrentContext=function(){return this.state.topicContext.maxNumOfResolvableTopics>=1},r.topicReferenceWasUsedInCurrentContext=function(){return null!=this.state.topicContext.maxTopicIndex&&this.state.topicContext.maxTopicIndex>=0},r.parseFSharpPipelineBody=function(e){var t=this.state.startLoc;this.state.potentialArrowAt=this.state.start;var r=this.state.inFSharpPipelineDirectBody;this.state.inFSharpPipelineDirectBody=!0;var a=this.parseExprOp(this.parseMaybeUnaryOrPrivate(),t,e);return this.state.inFSharpPipelineDirectBody=r,a},r.parseModuleExpression=function(){this.expectPlugin("moduleBlocks");var e=this.startNode();this.next(),this.match(5)||this.unexpected(null,5);var t=this.startNodeAt(this.state.endLoc);this.next();var r=this.initializeScopes(!0);this.enterInitialScopes();try{e.body=this.parseProgram(t,8,"module")}finally{r()}return this.finishNode(e,"ModuleExpression")},r.parseVoidPattern=function(e){this.expectPlugin("discardBinding");var t=this.startNode();return null!=e&&(e.voidPatternLoc=this.state.startLoc),this.next(),this.finishNode(t,"VoidPattern")},r.parseMaybeAssignAllowInOrVoidPattern=function(e,t,r){if(null!=t&&this.match(88)){var a=this.lookaheadCharCode();if(44===a||a===(3===e?93:8===e?125:41)||61===a)return this.parseMaybeDefault(this.state.startLoc,this.parseVoidPattern(t))}return this.parseMaybeAssignAllowIn(t,r)},r.parsePropertyNamePrefixOperator=function(e){},o(t)}(Rx),qx={kind:Qv},Gx={kind:Zv},Wx=0,Vx=1,Hx=2,zx=4,Kx=8,Xx=0,Jx=1,Yx=2,$x=4,Qx=8,Zx=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,eR=new RegExp("in(?:stanceof)?","y");var tR=function(e){function t(){return e.apply(this,arguments)||this}c(t,e);var r=t.prototype;return r.parseTopLevel=function(e,t){return e.program=this.parseProgram(t,140,"module"===this.options.sourceType?"module":"script"),e.comments=this.comments,this.optionFlags&Ch&&(e.tokens=function(e,t,r){for(var a=0;a<e.length;a++){var n=e[a],s=n.type;if("number"==typeof s){if(139===s){var o=n.loc,i=n.start,d=n.value,c=n.end,l=i+1,u=dh(o.start,1);e.splice(a,1,new ax({type:yb(27),value:"#",start:i,end:l,startLoc:o.start,endLoc:u}),new ax({type:yb(132),value:d,start:l,end:c,startLoc:u,endLoc:o.end})),a++;continue}if(mb(s)){var p=n.loc,f=n.start,g=n.value,m=n.end,y=f+1,h=dh(p.start,1),b=void 0;b=96===t.charCodeAt(f-r)?new ax({type:yb(22),value:"`",start:f,end:y,startLoc:p.start,endLoc:h}):new ax({type:yb(8),value:"}",start:f,end:y,startLoc:p.start,endLoc:h});var v=void 0,x=void 0,R=void 0,j=void 0;24===s?(x=m-1,R=dh(p.end,-1),v=null===g?null:g.slice(1,-1),j=new ax({type:yb(22),value:"`",start:x,end:m,startLoc:R,endLoc:p.end})):(x=m-2,R=dh(p.end,-2),v=null===g?null:g.slice(1,-2),j=new ax({type:yb(23),value:"${",start:x,end:m,startLoc:R,endLoc:p.end})),e.splice(a,1,b,new ax({type:yb(20),value:v,start:y,end:x,startLoc:h,endLoc:R}),j),a+=2;continue}n.type=yb(s)}}return e}(this.tokens,this.input,this.startIndex)),this.finishNode(e,"File")},r.parseProgram=function(e,t,r){if(e.sourceType=r,e.interpreter=this.parseInterpreterDirective(),this.parseBlockBody(e,!0,!0,t),this.inModule){if(!(this.optionFlags&Ah)&&this.scope.undefinedExports.size>0)for(var a=0,n=Array.from(this.scope.undefinedExports);a<n.length;a++){var s=n[a],o=s[0],i=s[1];this.raise(Rh.ModuleExportUndefined,i,{localName:o})}this.addExtra(e,"topLevelAwait",this.state.hasTopLevelAwait)}return 140===t?this.finishNode(e,"Program"):this.finishNodeAt(e,"Program",dh(this.state.startLoc,-1))},r.stmtToDirective=function(e){var t=this.castNodeTo(e,"Directive"),r=this.castNodeTo(e.expression,"DirectiveLiteral"),a=r.value,n=this.input.slice(this.offsetToSourcePos(r.start),this.offsetToSourcePos(r.end)),s=r.value=n.slice(1,-1);return this.addExtra(r,"raw",n),this.addExtra(r,"rawValue",s),this.addExtra(r,"expressionValue",a),t.value=r,delete e.expression,t},r.parseInterpreterDirective=function(){if(!this.match(28))return null;var e=this.startNode();return e.value=this.state.value,this.next(),this.finishNode(e,"InterpreterDirective")},r.isLet=function(){return!!this.isContextual(100)&&this.hasFollowingBindingAtom()},r.isUsing=function(){return!!this.isContextual(107)&&this.nextTokenIsIdentifierOnSameLine()},r.isForUsing=function(){if(!this.isContextual(107))return!1;var e=this.nextTokenInLineStart(),t=this.codePointAtPos(e);if(this.isUnparsedContextual(e,"of")){var r=this.lookaheadCharCodeSince(e+2);if(61!==r&&58!==r&&59!==r)return!1}return!(!this.chStartsBindingIdentifier(t,e)&&!this.isUnparsedContextual(e,"void"))},r.nextTokenIsIdentifierOnSameLine=function(){var e=this.nextTokenInLineStart(),t=this.codePointAtPos(e);return this.chStartsBindingIdentifier(t,e)},r.isAwaitUsing=function(){if(!this.isContextual(96))return!1;var e=this.nextTokenInLineStart();if(this.isUnparsedContextual(e,"using")){e=this.nextTokenInLineStartSince(e+5);var t=this.codePointAtPos(e);if(this.chStartsBindingIdentifier(t,e))return!0}return!1},r.chStartsBindingIdentifier=function(e,t){if(Mr(e)){if(eR.lastIndex=t,eR.test(this.input)){var r=this.codePointAtPos(eR.lastIndex);if(!Fr(r)&&92!==r)return!1}return!0}return 92===e},r.chStartsBindingPattern=function(e){return 91===e||123===e},r.hasFollowingBindingAtom=function(){var e=this.nextTokenStart(),t=this.codePointAtPos(e);return this.chStartsBindingPattern(t)||this.chStartsBindingIdentifier(t,e)},r.hasInLineFollowingBindingIdentifierOrBrace=function(){var e=this.nextTokenInLineStart(),t=this.codePointAtPos(e);return 123===t||this.chStartsBindingIdentifier(t,e)},r.allowsUsing=function(){return(this.scope.inModule||!this.scope.inTopLevel)&&!this.scope.inBareCaseStatement},r.parseModuleItem=function(){return this.parseStatementLike(Jx|Yx|$x|Qx)},r.parseStatementListItem=function(){return this.parseStatementLike(Yx|$x|(!this.options.annexB||this.state.strict?0:Qx))},r.parseStatementOrSloppyAnnexBFunctionDeclaration=function(e){void 0===e&&(e=!1);var t=Xx;return this.options.annexB&&!this.state.strict&&(t|=$x,e&&(t|=Qx)),this.parseStatementLike(t)},r.parseStatement=function(){return this.parseStatementLike(Xx)},r.parseStatementLike=function(e){var t=null;return this.match(26)&&(t=this.parseDecorators(!0)),this.parseStatementContent(e,t)},r.parseStatementContent=function(e,t){var r=this.state.type,a=this.startNode(),n=!!(e&Yx),s=!!(e&$x),o=e&Jx;switch(r){case 60:return this.parseBreakContinueStatement(a,!0);case 63:return this.parseBreakContinueStatement(a,!1);case 64:return this.parseDebuggerStatement(a);case 90:return this.parseDoWhileStatement(a);case 91:return this.parseForStatement(a);case 68:if(46===this.lookaheadCharCode())break;return s||this.raise(this.state.strict?Rh.StrictFunction:this.options.annexB?Rh.SloppyFunctionAnnexB:Rh.SloppyFunction,this.state.startLoc),this.parseFunctionStatement(a,!1,!n&&s);case 80:return n||this.unexpected(),this.parseClass(this.maybeTakeDecorators(t,a),!0);case 69:return this.parseIfStatement(a);case 70:return this.parseReturnStatement(a);case 71:return this.parseSwitchStatement(a);case 72:return this.parseThrowStatement(a);case 73:return this.parseTryStatement(a);case 96:if(this.isAwaitUsing())return this.allowsUsing()?n?this.recordAwaitIfAllowed()||this.raise(Rh.AwaitUsingNotInAsyncContext,a):this.raise(Rh.UnexpectedLexicalDeclaration,a):this.raise(Rh.UnexpectedUsingDeclaration,a),this.next(),this.parseVarStatement(a,"await using");break;case 107:if(this.state.containsEsc||!this.hasInLineFollowingBindingIdentifierOrBrace())break;return this.allowsUsing()?n||this.raise(Rh.UnexpectedLexicalDeclaration,this.state.startLoc):this.raise(Rh.UnexpectedUsingDeclaration,this.state.startLoc),this.parseVarStatement(a,"using");case 100:if(this.state.containsEsc)break;var i=this.nextTokenStart(),d=this.codePointAtPos(i);if(91!==d){if(!n&&this.hasFollowingLineBreak())break;if(!this.chStartsBindingIdentifier(d,i)&&123!==d)break}case 75:n||this.raise(Rh.UnexpectedLexicalDeclaration,this.state.startLoc);case 74:var c=this.state.value;return this.parseVarStatement(a,c);case 92:return this.parseWhileStatement(a);case 76:return this.parseWithStatement(a);case 5:return this.parseBlock();case 13:return this.parseEmptyStatement(a);case 83:var l=this.lookaheadCharCode();if(40===l||46===l)break;case 82:var u;return this.optionFlags&Sh||o||this.raise(Rh.UnexpectedImportExport,this.state.startLoc),this.next(),u=83===r?this.parseImport(a):this.parseExport(a,t),this.assertModuleNodeAllowed(u),u;default:if(this.isAsyncFunction())return n||this.raise(Rh.AsyncFunctionInSingleStatementContext,this.state.startLoc),this.next(),this.parseFunctionStatement(a,!0,!n&&s)}var p=this.state.value,f=this.parseExpression();return ob(r)&&"Identifier"===f.type&&this.eat(14)?this.parseLabeledStatement(a,p,f,e):this.parseExpressionStatement(a,f,t)},r.assertModuleNodeAllowed=function(e){this.optionFlags&Sh||this.inModule||this.raise(Rh.ImportOutsideModule,e)},r.decoratorsEnabledBeforeExport=function(){return!!this.hasPlugin("decorators-legacy")||this.hasPlugin("decorators")&&!1!==this.getPluginOption("decorators","decoratorsBeforeExport")},r.maybeTakeDecorators=function(e,t,r){if(e){var a,n;if(null!=(a=t.decorators)&&a.length)"boolean"!=typeof this.getPluginOption("decorators","decoratorsBeforeExport")&&this.raise(Rh.DecoratorsBeforeAfterExport,t.decorators[0]),(n=t.decorators).unshift.apply(n,e);else t.decorators=e;this.resetStartLocationFromNode(t,e[0]),r&&this.resetStartLocationFromNode(r,t)}return t},r.canHaveLeadingDecorator=function(){return this.match(80)},r.parseDecorators=function(e){var t=[];do{t.push(this.parseDecorator())}while(this.match(26));if(this.match(82))e||this.unexpected(),this.decoratorsEnabledBeforeExport()||this.raise(Rh.DecoratorExportClass,this.state.startLoc);else if(!this.canHaveLeadingDecorator())throw this.raise(Rh.UnexpectedLeadingDecorator,this.state.startLoc);return t},r.parseDecorator=function(){this.expectOnePlugin(["decorators","decorators-legacy"]);var e=this.startNode();if(this.next(),this.hasPlugin("decorators")){var t,r=this.state.startLoc;if(this.match(10)){var a=this.state.startLoc;this.next(),t=this.parseExpression(),this.expect(11),t=this.wrapParenthesis(a,t);var n=this.state.startLoc;e.expression=this.parseMaybeDecoratorArguments(t,a),!1===this.getPluginOption("decorators","allowCallParenthesized")&&e.expression!==t&&this.raise(Rh.DecoratorArgumentsOutsideParentheses,n)}else{for(t=this.parseIdentifier(!1);this.eat(16);){var s=this.startNodeAt(r);s.object=t,this.match(139)?(this.classScope.usePrivateName(this.state.value,this.state.startLoc),s.property=this.parsePrivateName()):s.property=this.parseIdentifier(!0),s.computed=!1,t=this.finishNode(s,"MemberExpression")}e.expression=this.parseMaybeDecoratorArguments(t,r)}}else e.expression=this.parseExprSubscripts();return this.finishNode(e,"Decorator")},r.parseMaybeDecoratorArguments=function(e,t){if(this.eat(10)){var r=this.startNodeAt(t);return r.callee=e,r.arguments=this.parseCallExpressionArguments(),this.toReferencedList(r.arguments),this.finishNode(r,"CallExpression")}return e},r.parseBreakContinueStatement=function(e,t){return this.next(),this.isLineTerminator()?e.label=null:(e.label=this.parseIdentifier(),this.semicolon()),this.verifyBreakContinue(e,t),this.finishNode(e,t?"BreakStatement":"ContinueStatement")},r.verifyBreakContinue=function(e,t){var r;for(r=0;r<this.state.labels.length;++r){var a=this.state.labels[r];if(null==e.label||a.name===e.label.name){if(null!=a.kind&&(t||a.kind===Qv))break;if(e.label&&t)break}}if(r===this.state.labels.length){var n=t?"BreakStatement":"ContinueStatement";this.raise(Rh.IllegalBreakContinue,e,{type:n})}},r.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},r.parseHeaderExpression=function(){this.expect(10);var e=this.parseExpression();return this.expect(11),e},r.parseDoWhileStatement=function(e){var t=this;return this.next(),this.state.labels.push(qx),e.body=this.withSmartMixTopicForbiddingContext(function(){return t.parseStatement()}),this.state.labels.pop(),this.expect(92),e.test=this.parseHeaderExpression(),this.eat(13),this.finishNode(e,"DoWhileStatement")},r.parseForStatement=function(e){this.next(),this.state.labels.push(qx);var t=null;if(this.isContextual(96)&&this.recordAwaitIfAllowed()&&(t=this.state.startLoc,this.next()),this.scope.enter(vb),this.expect(10),this.match(13))return null!==t&&this.unexpected(t),this.parseFor(e,null);var r=this.isContextual(100),a=this.isAwaitUsing(),n=a||this.isForUsing(),s=r&&this.hasFollowingBindingAtom()||n;if(this.match(74)||this.match(75)||s){var o,i=this.startNode();a?(o="await using",this.recordAwaitIfAllowed()||this.raise(Rh.AwaitUsingNotInAsyncContext,this.state.startLoc),this.next()):o=this.state.value,this.next(),this.parseVar(i,!0,o);var d=this.finishNode(i,"VariableDeclaration"),c=this.match(58);return c&&n&&this.raise(Rh.ForInUsing,d),(c||this.isContextual(102))&&1===d.declarations.length?this.parseForIn(e,d,t):(null!==t&&this.unexpected(t),this.parseFor(e,d))}var l=this.isContextual(95),u=new px,p=this.parseExpression(!0,u),f=this.isContextual(102);if(f&&(r&&this.raise(Rh.ForOfLet,p),null===t&&l&&"Identifier"===p.type&&this.raise(Rh.ForOfAsync,p)),f||this.match(58)){this.checkDestructuringPrivate(u),this.toAssignable(p,!0);var g=f?"ForOfStatement":"ForInStatement";return this.checkLVal(p,{type:g}),this.parseForIn(e,p,t)}return this.checkExpressionErrors(u,!0),null!==t&&this.unexpected(t),this.parseFor(e,p)},r.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,Vx|(r?Hx:0)|(t?Kx:0))},r.parseIfStatement=function(e){return this.next(),e.test=this.parseHeaderExpression(),e.consequent=this.parseStatementOrSloppyAnnexBFunctionDeclaration(),e.alternate=this.eat(66)?this.parseStatementOrSloppyAnnexBFunctionDeclaration():null,this.finishNode(e,"IfStatement")},r.parseReturnStatement=function(e){return this.prodParam.hasReturn||this.raise(Rh.IllegalReturn,this.state.startLoc),this.next(),this.isLineTerminator()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},r.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseHeaderExpression();var t,r,a=e.cases=[];for(this.expect(5),this.state.labels.push(Gx),this.scope.enter(Ab);!this.match(8);)if(this.match(61)||this.match(65)){var n=this.match(61);t&&this.finishNode(t,"SwitchCase"),a.push(t=this.startNode()),t.consequent=[],this.next(),n?t.test=this.parseExpression():(r&&this.raise(Rh.MultipleDefaultsInSwitch,this.state.lastTokStartLoc),r=!0,t.test=null),this.expect(14)}else t?t.consequent.push(this.parseStatementListItem()):this.unexpected();return this.scope.exit(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(e,"SwitchStatement")},r.parseThrowStatement=function(e){return this.next(),this.hasPrecedingLineBreak()&&this.raise(Rh.NewlineAfterThrow,this.state.lastTokEndLoc),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")},r.parseCatchClauseParam=function(){var e=this.parseBindingAtom();return this.scope.enter(this.options.annexB&&"Identifier"===e.type?wb:vb),this.checkLVal(e,{type:"CatchClause"},Xb),e},r.parseTryStatement=function(e){var t=this;if(this.next(),e.block=this.parseBlock(),e.handler=null,this.match(62)){var r=this.startNode();this.next(),this.match(10)?(this.expect(10),r.param=this.parseCatchClauseParam(),this.expect(11)):(r.param=null,this.scope.enter(vb)),r.body=this.withSmartMixTopicForbiddingContext(function(){return t.parseBlock(!1,!1)}),this.scope.exit(),e.handler=this.finishNode(r,"CatchClause")}return e.finalizer=this.eat(67)?this.parseBlock():null,e.handler||e.finalizer||this.raise(Rh.NoCatchOrFinally,e),this.finishNode(e,"TryStatement")},r.parseVarStatement=function(e,t,r){return void 0===r&&(r=!1),this.next(),this.parseVar(e,!1,t,r),this.semicolon(),this.finishNode(e,"VariableDeclaration")},r.parseWhileStatement=function(e){var t=this;return this.next(),e.test=this.parseHeaderExpression(),this.state.labels.push(qx),e.body=this.withSmartMixTopicForbiddingContext(function(){return t.parseStatement()}),this.state.labels.pop(),this.finishNode(e,"WhileStatement")},r.parseWithStatement=function(e){var t=this;return this.state.strict&&this.raise(Rh.StrictWith,this.state.startLoc),this.next(),e.object=this.parseHeaderExpression(),e.body=this.withSmartMixTopicForbiddingContext(function(){return t.parseStatement()}),this.finishNode(e,"WithStatement")},r.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},r.parseLabeledStatement=function(e,t,r,a){for(var n=0,s=this.state.labels;n<s.length;n++){s[n].name===t&&this.raise(Rh.LabelRedeclaration,r,{labelName:t})}for(var o,i=(o=this.state.type)>=90&&o<=92?Qv:this.match(71)?Zv:null,d=this.state.labels.length-1;d>=0;d--){var c=this.state.labels[d];if(c.statementStart!==e.start)break;c.statementStart=this.sourceToOffsetPos(this.state.start),c.kind=i}return this.state.labels.push({name:t,kind:i,statementStart:this.sourceToOffsetPos(this.state.start)}),e.body=a&Qx?this.parseStatementOrSloppyAnnexBFunctionDeclaration(!0):this.parseStatement(),this.state.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},r.parseExpressionStatement=function(e,t,r){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},r.parseBlock=function(e,t,r){void 0===e&&(e=!1),void 0===t&&(t=!0);var a=this.startNode();return e&&this.state.strictErrors.clear(),this.expect(5),t&&this.scope.enter(vb),this.parseBlockBody(a,e,!1,8,r),t&&this.scope.exit(),this.finishNode(a,"BlockStatement")},r.isValidDirective=function(e){return"ExpressionStatement"===e.type&&"StringLiteral"===e.expression.type&&!e.expression.extra.parenthesized},r.parseBlockBody=function(e,t,r,a,n){var s=e.body=[],o=e.directives=[];this.parseBlockOrModuleBlockBody(s,t?o:void 0,r,a,n)},r.parseBlockOrModuleBlockBody=function(e,t,r,a,n){for(var s=this.state.strict,o=!1,i=!1;!this.match(a);){var d=r?this.parseModuleItem():this.parseStatementListItem();if(t&&!i){if(this.isValidDirective(d)){var c=this.stmtToDirective(d);t.push(c),o||"use strict"!==c.value.value||(o=!0,this.setStrict(!0));continue}i=!0,this.state.strictErrors.clear()}e.push(d)}null==n||n.call(this,o),s||this.setStrict(!1),this.next()},r.parseFor=function(e,t){var r=this;return e.init=t,this.semicolon(!1),e.test=this.match(13)?null:this.parseExpression(),this.semicolon(!1),e.update=this.match(11)?null:this.parseExpression(),this.expect(11),e.body=this.withSmartMixTopicForbiddingContext(function(){return r.parseStatement()}),this.scope.exit(),this.state.labels.pop(),this.finishNode(e,"ForStatement")},r.parseForIn=function(e,t,r){var a=this,n=this.match(58);return this.next(),n?null!==r&&this.unexpected(r):e.await=null!==r,"VariableDeclaration"!==t.type||null==t.declarations[0].init||n&&this.options.annexB&&!this.state.strict&&"var"===t.kind&&"Identifier"===t.declarations[0].id.type||this.raise(Rh.ForInOfLoopInitializer,t,{type:n?"ForInStatement":"ForOfStatement"}),"AssignmentPattern"===t.type&&this.raise(Rh.InvalidLhs,t,{ancestor:{type:"ForStatement"}}),e.left=t,e.right=n?this.parseExpression():this.parseMaybeAssignAllowIn(),this.expect(11),e.body=this.withSmartMixTopicForbiddingContext(function(){return a.parseStatement()}),this.scope.exit(),this.state.labels.pop(),this.finishNode(e,n?"ForInStatement":"ForOfStatement")},r.parseVar=function(e,t,r,a){void 0===a&&(a=!1);var n=e.declarations=[];for(e.kind=r;;){var s=this.startNode();if(this.parseVarId(s,r),s.init=this.eat(29)?t?this.parseMaybeAssignDisallowIn():this.parseMaybeAssignAllowIn():null,null!==s.init||a||("Identifier"===s.id.type||t&&(this.match(58)||this.isContextual(102))?"const"!==r&&"using"!==r&&"await using"!==r||this.match(58)||this.isContextual(102)||this.raise(Rh.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:r}):this.raise(Rh.DeclarationMissingInitializer,this.state.lastTokEndLoc,{kind:"destructuring"})),n.push(this.finishNode(s,"VariableDeclarator")),!this.eat(12))break}return e},r.parseVarId=function(e,t){var r=this.parseBindingAtom();"using"===t||"await using"===t?"ArrayPattern"!==r.type&&"ObjectPattern"!==r.type||this.raise(Rh.UsingDeclarationHasBindingPattern,r.loc.start):"VoidPattern"===r.type&&this.raise(Rh.UnexpectedVoidPattern,r.loc.start),this.checkLVal(r,{type:"VariableDeclarator"},"var"===t?Jb:Kb),e.id=r},r.parseAsyncFunctionExpression=function(e){return this.parseFunction(e,Kx)},r.parseFunction=function(e,t){var r=this;void 0===t&&(t=Wx);var a=t&Hx,n=!!(t&Vx),s=n&&!(t&zx),o=!!(t&Kx);this.initFunction(e,o),this.match(55)&&(a&&this.raise(Rh.GeneratorInSingleStatementContext,this.state.startLoc),this.next(),e.generator=!0),n&&(e.id=this.parseFunctionId(s));var i=this.state.maybeInArrowParameters;return this.state.maybeInArrowParameters=!1,this.scope.enter(_b),this.prodParam.enter(zv(o,e.generator)),n||(e.id=this.parseFunctionId()),this.parseFunctionParams(e,!1),this.withSmartMixTopicForbiddingContext(function(){r.parseFunctionBodyAndFinish(e,n?"FunctionDeclaration":"FunctionExpression")}),this.prodParam.exit(),this.scope.exit(),n&&!a&&this.registerFunctionStatementId(e),this.state.maybeInArrowParameters=i,e},r.parseFunctionId=function(e){return e||ob(this.state.type)?this.parseIdentifier():null},r.parseFunctionParams=function(e,t){this.expect(10),this.expressionScope.enter(new ix(3)),e.params=this.parseBindingList(11,41,vx|(t?xx:0)),this.expressionScope.exit()},r.registerFunctionStatementId=function(e){e.id&&this.scope.declareName(e.id.name,!this.options.annexB||this.state.strict||e.generator||e.async?this.scope.treatFunctionsAsVar?Jb:Kb:Yb,e.id.loc.start)},r.parseClass=function(e,t,r){this.next();var a=this.state.strict;return this.state.strict=!0,this.parseClassId(e,t,r),this.parseClassSuper(e),e.body=this.parseClassBody(!!e.superClass,a),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},r.isClassProperty=function(){return this.match(29)||this.match(13)||this.match(8)},r.isClassMethod=function(){return this.match(10)},r.nameIsConstructor=function(e){return"Identifier"===e.type&&"constructor"===e.name||"StringLiteral"===e.type&&"constructor"===e.value},r.isNonstaticConstructor=function(e){return!e.computed&&!e.static&&this.nameIsConstructor(e.key)},r.parseClassBody=function(e,t){var r=this;this.classScope.enter();var a={hadConstructor:!1,hadSuperClass:e},n=[],s=this.startNode();if(s.body=[],this.expect(5),this.withSmartMixTopicForbiddingContext(function(){for(;!r.match(8);)if(r.eat(13)){if(n.length>0)throw r.raise(Rh.DecoratorSemicolon,r.state.lastTokEndLoc)}else if(r.match(26))n.push(r.parseDecorator());else{var e=r.startNode();n.length&&(e.decorators=n,r.resetStartLocationFromNode(e,n[0]),n=[]),r.parseClassMember(s,e,a),"constructor"===e.kind&&e.decorators&&e.decorators.length>0&&r.raise(Rh.DecoratorConstructor,e)}}),this.state.strict=t,this.next(),n.length)throw this.raise(Rh.TrailingDecorator,this.state.startLoc);return this.classScope.exit(),this.finishNode(s,"ClassBody")},r.parseClassMemberFromModifier=function(e,t){var r=this.parseIdentifier(!0);if(this.isClassMethod()){var a=t;return a.kind="method",a.computed=!1,a.key=r,a.static=!1,this.pushClassMethod(e,a,!1,!1,!1,!1),!0}if(this.isClassProperty()){var n=t;return n.computed=!1,n.key=r,n.static=!1,e.body.push(this.parseClassProperty(n)),!0}return this.resetPreviousNodeTrailingComments(r),!1},r.parseClassMember=function(e,t,r){var a=this.isContextual(106);if(a){if(this.parseClassMemberFromModifier(e,t))return;if(this.eat(5))return void this.parseClassStaticBlock(e,t)}this.parseClassMemberWithIsStatic(e,t,r,a)},r.parseClassMemberWithIsStatic=function(e,t,r,a){var n=t,s=t,o=t,i=t,d=t,c=n,l=n;if(t.static=a,this.parsePropertyNamePrefixOperator(t),this.eat(55)){c.kind="method";var u=this.match(139);return this.parseClassElementName(c),this.parsePostMemberNameModifiers(c),u?void this.pushClassPrivateMethod(e,s,!0,!1):(this.isNonstaticConstructor(n)&&this.raise(Rh.ConstructorIsGenerator,n.key),void this.pushClassMethod(e,n,!0,!1,!1,!1))}var p=!this.state.containsEsc&&ob(this.state.type),f=this.parseClassElementName(t),g=p?f.name:null,m=this.isPrivateName(f),y=this.state.startLoc;if(this.parsePostMemberNameModifiers(l),this.isClassMethod()){if(c.kind="method",m)return void this.pushClassPrivateMethod(e,s,!1,!1);var h=this.isNonstaticConstructor(n),b=!1;h&&(n.kind="constructor",r.hadConstructor&&!this.hasPlugin("typescript")&&this.raise(Rh.DuplicateConstructor,f),h&&this.hasPlugin("typescript")&&t.override&&this.raise(Rh.OverrideOnConstructor,f),r.hadConstructor=!0,b=r.hadSuperClass),this.pushClassMethod(e,n,!1,!1,h,b)}else if(this.isClassProperty())m?this.pushClassPrivateProperty(e,i):this.pushClassProperty(e,o);else if("async"!==g||this.isLineTerminator())if("get"!==g&&"set"!==g||this.match(55)&&this.isLineTerminator())if("accessor"!==g||this.isLineTerminator())this.isLineTerminator()?m?this.pushClassPrivateProperty(e,i):this.pushClassProperty(e,o):this.unexpected();else{this.expectPlugin("decoratorAutoAccessors"),this.resetPreviousNodeTrailingComments(f);var v=this.match(139);this.parseClassElementName(o),this.pushClassAccessorProperty(e,d,v)}else{this.resetPreviousNodeTrailingComments(f),c.kind=g;var x=this.match(139);this.parseClassElementName(n),x?this.pushClassPrivateMethod(e,s,!1,!1):(this.isNonstaticConstructor(n)&&this.raise(Rh.ConstructorIsAccessor,n.key),this.pushClassMethod(e,n,!1,!1,!1,!1)),this.checkGetterSetterParams(n)}else{this.resetPreviousNodeTrailingComments(f);var R=this.eat(55);l.optional&&this.unexpected(y),c.kind="method";var j=this.match(139);this.parseClassElementName(c),this.parsePostMemberNameModifiers(l),j?this.pushClassPrivateMethod(e,s,R,!0):(this.isNonstaticConstructor(n)&&this.raise(Rh.ConstructorIsAsync,n.key),this.pushClassMethod(e,n,R,!0,!1,!1))}},r.parseClassElementName=function(e){var t=this.state,r=t.type,a=t.value;if(132!==r&&134!==r||!e.static||"prototype"!==a||this.raise(Rh.StaticPrototype,this.state.startLoc),139===r){"constructor"===a&&this.raise(Rh.ConstructorClassPrivateField,this.state.startLoc);var n=this.parsePrivateName();return e.key=n,n}return this.parsePropertyName(e),e.key},r.parseClassStaticBlock=function(e,t){var r;this.scope.enter(Ib|Pb|Eb);var a=this.state.labels;this.state.labels=[],this.prodParam.enter(Uv);var n=t.body=[];this.parseBlockOrModuleBlockBody(n,void 0,!1,8),this.prodParam.exit(),this.scope.exit(),this.state.labels=a,e.body.push(this.finishNode(t,"StaticBlock")),null!=(r=t.decorators)&&r.length&&this.raise(Rh.DecoratorStaticBlock,t)},r.pushClassProperty=function(e,t){!t.computed&&this.nameIsConstructor(t.key)&&this.raise(Rh.ConstructorClassField,t.key),e.body.push(this.parseClassProperty(t))},r.pushClassPrivateProperty=function(e,t){var r=this.parseClassPrivateProperty(t);e.body.push(r),this.classScope.declarePrivateName(this.getPrivateNameSV(r.key),dv,r.key.loc.start)},r.pushClassAccessorProperty=function(e,t,r){r||t.computed||!this.nameIsConstructor(t.key)||this.raise(Rh.ConstructorClassField,t.key);var a=this.parseClassAccessorProperty(t);e.body.push(a),r&&this.classScope.declarePrivateName(this.getPrivateNameSV(a.key),dv,a.key.loc.start)},r.pushClassMethod=function(e,t,r,a,n,s){e.body.push(this.parseMethod(t,r,a,n,s,"ClassMethod",!0))},r.pushClassPrivateMethod=function(e,t,r,a){var n=this.parseMethod(t,r,a,!1,!1,"ClassPrivateMethod",!0);e.body.push(n);var s="get"===n.kind?n.static?uv:fv:"set"===n.kind?n.static?pv:gv:dv;this.declareClassPrivateMethodInScope(n,s)},r.declareClassPrivateMethodInScope=function(e,t){this.classScope.declarePrivateName(this.getPrivateNameSV(e.key),t,e.key.loc.start)},r.parsePostMemberNameModifiers=function(e){},r.parseClassPrivateProperty=function(e){return this.parseInitializer(e),this.semicolon(),this.finishNode(e,"ClassPrivateProperty")},r.parseClassProperty=function(e){return this.parseInitializer(e),this.semicolon(),this.finishNode(e,"ClassProperty")},r.parseClassAccessorProperty=function(e){return this.parseInitializer(e),this.semicolon(),this.finishNode(e,"ClassAccessorProperty")},r.parseInitializer=function(e){this.scope.enter(Ib|Eb),this.expressionScope.enter(lx()),this.prodParam.enter(Uv),e.value=this.eat(29)?this.parseMaybeAssignAllowIn():null,this.expressionScope.exit(),this.prodParam.exit(),this.scope.exit()},r.parseClassId=function(e,t,r,a){if(void 0===a&&(a=zb),ob(this.state.type))e.id=this.parseIdentifier(),t&&this.declareNameFromIdentifier(e.id,a);else{if(!r&&t)throw this.raise(Rh.MissingClassName,this.state.startLoc);e.id=null}},r.parseClassSuper=function(e){e.superClass=this.eat(81)?this.parseExprSubscripts():null},r.parseExport=function(e,t){var r=this.parseMaybeImportPhase(e,!0),a=this.maybeParseExportDefaultSpecifier(e,r),n=!a||this.eat(12),s=n&&this.eatExportStar(e),o=s&&this.maybeParseExportNamespaceSpecifier(e),i=n&&(!o||this.eat(12)),d=a||s;if(s&&!o){if(a&&this.unexpected(),t)throw this.raise(Rh.UnsupportedDecoratorExport,e);return this.parseExportFrom(e,!0),this.sawUnambiguousESM=!0,this.finishNode(e,"ExportAllDeclaration")}var c,l=this.maybeParseExportNamedSpecifiers(e);if(a&&n&&!s&&!l&&this.unexpected(null,5),o&&i&&this.unexpected(null,98),d||l){if(c=!1,t)throw this.raise(Rh.UnsupportedDecoratorExport,e);this.parseExportFrom(e,d)}else c=this.maybeParseExportDeclaration(e);if(d||l||c){var u,p=e;if(this.checkExport(p,!0,!1,!!p.source),"ClassDeclaration"===(null==(u=p.declaration)?void 0:u.type))this.maybeTakeDecorators(t,p.declaration,p);else if(t)throw this.raise(Rh.UnsupportedDecoratorExport,e);return this.sawUnambiguousESM=!0,this.finishNode(p,"ExportNamedDeclaration")}if(this.eat(65)){var f=e,g=this.parseExportDefaultExpression();if(f.declaration=g,"ClassDeclaration"===g.type)this.maybeTakeDecorators(t,g,f);else if(t)throw this.raise(Rh.UnsupportedDecoratorExport,e);return this.checkExport(f,!0,!0),this.sawUnambiguousESM=!0,this.finishNode(f,"ExportDefaultDeclaration")}throw this.unexpected(null,5)},r.eatExportStar=function(e){return this.eat(55)},r.maybeParseExportDefaultSpecifier=function(e,t){if(t||this.isExportDefaultSpecifier()){this.expectPlugin("exportDefaultFrom",null==t?void 0:t.loc.start);var r=t||this.parseIdentifier(!0),a=this.startNodeAtNode(r);return a.exported=r,e.specifiers=[this.finishNode(a,"ExportDefaultSpecifier")],!0}return!1},r.maybeParseExportNamespaceSpecifier=function(e){if(this.isContextual(93)){var t;null!=(t=e).specifiers||(t.specifiers=[]);var r=this.startNodeAt(this.state.lastTokStartLoc);return this.next(),r.exported=this.parseModuleExportName(),e.specifiers.push(this.finishNode(r,"ExportNamespaceSpecifier")),!0}return!1},r.maybeParseExportNamedSpecifiers=function(e){if(this.match(5)){var t,r=e;r.specifiers||(r.specifiers=[]);var a="type"===r.exportKind;return(t=r.specifiers).push.apply(t,this.parseExportSpecifiers(a)),r.source=null,this.hasPlugin("importAssertions")?r.assertions=[]:r.attributes=[],r.declaration=null,!0}return!1},r.maybeParseExportDeclaration=function(e){return!!this.shouldParseExportDeclaration()&&(e.specifiers=[],e.source=null,this.hasPlugin("importAssertions")?e.assertions=[]:e.attributes=[],e.declaration=this.parseExportDeclaration(e),!0)},r.isAsyncFunction=function(){if(!this.isContextual(95))return!1;var e=this.nextTokenInLineStart();return this.isUnparsedContextual(e,"function")},r.parseExportDefaultExpression=function(){var e=this.startNode();if(this.match(68))return this.next(),this.parseFunction(e,Vx|zx);if(this.isAsyncFunction())return this.next(),this.next(),this.parseFunction(e,Vx|zx|Kx);if(this.match(80))return this.parseClass(e,!0,!0);if(this.match(26))return this.hasPlugin("decorators")&&!0===this.getPluginOption("decorators","decoratorsBeforeExport")&&this.raise(Rh.DecoratorBeforeExport,this.state.startLoc),this.parseClass(this.maybeTakeDecorators(this.parseDecorators(!1),this.startNode()),!0,!0);if(this.match(75)||this.match(74)||this.isLet()||this.isUsing()||this.isAwaitUsing())throw this.raise(Rh.UnsupportedDefaultExport,this.state.startLoc);var t=this.parseMaybeAssignAllowIn();return this.semicolon(),t},r.parseExportDeclaration=function(e){return this.match(80)?this.parseClass(this.startNode(),!0,!1):this.parseStatementListItem()},r.isExportDefaultSpecifier=function(){var e=this.state.type;if(ob(e)){if(95===e&&!this.state.containsEsc||100===e)return!1;if((130===e||129===e)&&!this.state.containsEsc){var t=this.nextTokenStart(),r=this.input.charCodeAt(t);if(123===r||this.chStartsBindingIdentifier(r,t)&&!this.input.startsWith("from",t))return this.expectOnePlugin(["flow","typescript"]),!1}}else if(!this.match(65))return!1;var a=this.nextTokenStart(),n=this.isUnparsedContextual(a,"from");if(44===this.input.charCodeAt(a)||ob(this.state.type)&&n)return!0;if(this.match(65)&&n){var s=this.input.charCodeAt(this.nextTokenStartSince(a+4));return 34===s||39===s}return!1},r.parseExportFrom=function(e,t){this.eatContextual(98)?(e.source=this.parseImportSource(),this.checkExport(e),this.maybeParseImportAttributes(e),this.checkJSONModuleImport(e)):t&&this.unexpected(),this.semicolon()},r.shouldParseExportDeclaration=function(){var e=this.state.type;return 26===e&&(this.expectOnePlugin(["decorators","decorators-legacy"]),this.hasPlugin("decorators"))?(!0===this.getPluginOption("decorators","decoratorsBeforeExport")&&this.raise(Rh.DecoratorBeforeExport,this.state.startLoc),!0):this.isUsing()||this.isAwaitUsing()?(this.raise(Rh.UsingDeclarationExport,this.state.startLoc),!0):74===e||75===e||68===e||80===e||this.isLet()||this.isAsyncFunction()},r.checkExport=function(e,t,r,a){var n;if(t)if(r){if(this.checkDuplicateExports(e,"default"),this.hasPlugin("exportDefaultFrom")){var s,o=e.declaration;"Identifier"!==o.type||"from"!==o.name||o.end-o.start!==4||null!=(s=o.extra)&&s.parenthesized||this.raise(Rh.ExportDefaultFromAsIdentifier,o)}}else if(null!=(n=e.specifiers)&&n.length)for(var i=0,d=e.specifiers;i<d.length;i++){var c=d[i],l=c.exported,u="Identifier"===l.type?l.name:l.value;if(this.checkDuplicateExports(c,u),!a&&c.local){var p=c.local;"Identifier"!==p.type?this.raise(Rh.ExportBindingIsString,c,{localName:p.value,exportName:u}):(this.checkReservedWord(p.name,p.loc.start,!0,!1),this.scope.checkLocalExport(p))}}else if(e.declaration){var f=e.declaration;if("FunctionDeclaration"===f.type||"ClassDeclaration"===f.type){var g=f.id;if(!g)throw new Error("Assertion failure");this.checkDuplicateExports(e,g.name)}else if("VariableDeclaration"===f.type)for(var m=0,y=f.declarations;m<y.length;m++){var h=y[m];this.checkDeclaration(h.id)}}},r.checkDeclaration=function(e){if("Identifier"===e.type)this.checkDuplicateExports(e,e.name);else if("ObjectPattern"===e.type)for(var t=0,r=e.properties;t<r.length;t++){var a=r[t];this.checkDeclaration(a)}else if("ArrayPattern"===e.type)for(var n=0,s=e.elements;n<s.length;n++){var o=s[n];o&&this.checkDeclaration(o)}else"ObjectProperty"===e.type?this.checkDeclaration(e.value):"RestElement"===e.type?this.checkDeclaration(e.argument):"AssignmentPattern"===e.type&&this.checkDeclaration(e.left)},r.checkDuplicateExports=function(e,t){this.exportedIdentifiers.has(t)&&("default"===t?this.raise(Rh.DuplicateDefaultExport,e):this.raise(Rh.DuplicateExport,e,{exportName:t})),this.exportedIdentifiers.add(t)},r.parseExportSpecifiers=function(e){var t=[],r=!0;for(this.expect(5);!this.eat(8);){if(r)r=!1;else if(this.expect(12),this.eat(8))break;var a=this.isContextual(130),n=this.match(134),s=this.startNode();s.local=this.parseModuleExportName(),t.push(this.parseExportSpecifier(s,n,e,a))}return t},r.parseExportSpecifier=function(e,t,r,a){return this.eatContextual(93)?e.exported=this.parseModuleExportName():t?e.exported=this.cloneStringLiteral(e.local):e.exported||(e.exported=this.cloneIdentifier(e.local)),this.finishNode(e,"ExportSpecifier")},r.parseModuleExportName=function(){if(this.match(134)){var e=this.parseStringLiteral(this.state.value),t=Zx.exec(e.value);return t&&this.raise(Rh.ModuleExportNameHasLoneSurrogate,e,{surrogateCharCode:t[0].charCodeAt(0)}),e}return this.parseIdentifier(!0)},r.isJSONModuleImport=function(e){return null!=e.assertions&&e.assertions.some(function(e){var t=e.key;return"json"===e.value.value&&("Identifier"===t.type?"type"===t.name:"type"===t.value)})},r.checkImportReflection=function(e){var t=e.specifiers,r=1===t.length?t[0].type:null;if("source"===e.phase)"ImportDefaultSpecifier"!==r&&this.raise(Rh.SourcePhaseImportRequiresDefault,t[0].loc.start);else if("defer"===e.phase)"ImportNamespaceSpecifier"!==r&&this.raise(Rh.DeferImportRequiresNamespace,t[0].loc.start);else if(e.module){var a;"ImportDefaultSpecifier"!==r&&this.raise(Rh.ImportReflectionNotBinding,t[0].loc.start),(null==(a=e.assertions)?void 0:a.length)>0&&this.raise(Rh.ImportReflectionHasAssertion,t[0].loc.start)}},r.checkJSONModuleImport=function(e){if(this.isJSONModuleImport(e)&&"ExportAllDeclaration"!==e.type){var t=e.specifiers;if(null!=t){var r=t.find(function(e){var t;if("ExportSpecifier"===e.type?t=e.local:"ImportSpecifier"===e.type&&(t=e.imported),void 0!==t)return"Identifier"===t.type?"default"!==t.name:"default"!==t.value});void 0!==r&&this.raise(Rh.ImportJSONBindingNotDefault,r.loc.start)}}},r.isPotentialImportPhase=function(e){return!e&&(this.isContextual(105)||this.isContextual(97)||this.isContextual(127))},r.applyImportPhase=function(e,t,r,a){t||("module"===r?(this.expectPlugin("importReflection",a),e.module=!0):this.hasPlugin("importReflection")&&(e.module=!1),"source"===r?(this.expectPlugin("sourcePhaseImports",a),e.phase="source"):"defer"===r?(this.expectPlugin("deferredImportEvaluation",a),e.phase="defer"):this.hasPlugin("sourcePhaseImports")&&(e.phase=null))},r.parseMaybeImportPhase=function(e,t){if(!this.isPotentialImportPhase(t))return this.applyImportPhase(e,t,null),null;var r=this.startNode(),a=this.parseIdentifierName(!0),n=this.state.type;return(ib(n)?98!==n||102===this.lookaheadCharCode():12!==n)?(this.applyImportPhase(e,t,a,r.loc.start),null):(this.applyImportPhase(e,t,null),this.createIdentifier(r,a))},r.isPrecedingIdImportPhase=function(e){var t=this.state.type;return ob(t)?98!==t||102===this.lookaheadCharCode():12!==t},r.parseImport=function(e){return this.match(134)?this.parseImportSourceAndAttributes(e):this.parseImportSpecifiersAndAfter(e,this.parseMaybeImportPhase(e,!1))},r.parseImportSpecifiersAndAfter=function(e,t){e.specifiers=[];var r=!this.maybeParseDefaultImportSpecifier(e,t)||this.eat(12),a=r&&this.maybeParseStarImportSpecifier(e);return r&&!a&&this.parseNamedImportSpecifiers(e),this.expectContextual(98),this.parseImportSourceAndAttributes(e)},r.parseImportSourceAndAttributes=function(e){return null!=e.specifiers||(e.specifiers=[]),e.source=this.parseImportSource(),this.maybeParseImportAttributes(e),this.checkImportReflection(e),this.checkJSONModuleImport(e),this.semicolon(),this.sawUnambiguousESM=!0,this.finishNode(e,"ImportDeclaration")},r.parseImportSource=function(){return this.match(134)||this.unexpected(),this.parseExprAtom()},r.parseImportSpecifierLocal=function(e,t,r){t.local=this.parseIdentifier(),e.specifiers.push(this.finishImportSpecifier(t,r))},r.finishImportSpecifier=function(e,t,r){return void 0===r&&(r=Kb),this.checkLVal(e.local,{type:t},r),this.finishNode(e,t)},r.parseImportAttributes=function(){this.expect(5);var e=[],t=new Set;do{if(this.match(8))break;var r=this.startNode(),a=this.state.value;if(t.has(a)&&this.raise(Rh.ModuleAttributesWithDuplicateKeys,this.state.startLoc,{key:a}),t.add(a),this.match(134)?r.key=this.parseStringLiteral(a):r.key=this.parseIdentifier(!0),this.expect(14),!this.match(134))throw this.raise(Rh.ModuleAttributeInvalidValue,this.state.startLoc);r.value=this.parseStringLiteral(this.state.value),e.push(this.finishNode(r,"ImportAttribute"))}while(this.eat(12));return this.expect(8),e},r.parseModuleAttributes=function(){var e=[],t=new Set;do{var r=this.startNode();if(r.key=this.parseIdentifier(!0),"type"!==r.key.name&&this.raise(Rh.ModuleAttributeDifferentFromType,r.key),t.has(r.key.name)&&this.raise(Rh.ModuleAttributesWithDuplicateKeys,r.key,{key:r.key.name}),t.add(r.key.name),this.expect(14),!this.match(134))throw this.raise(Rh.ModuleAttributeInvalidValue,this.state.startLoc);r.value=this.parseStringLiteral(this.state.value),e.push(this.finishNode(r,"ImportAttribute"))}while(this.eat(12));return e},r.maybeParseImportAttributes=function(e){var t,r=!1;if(this.match(76)){if(this.hasPrecedingLineBreak()&&40===this.lookaheadCharCode())return;this.next(),this.hasPlugin("moduleAttributes")?(t=this.parseModuleAttributes(),this.addExtra(e,"deprecatedWithLegacySyntax",!0)):t=this.parseImportAttributes(),r=!0}else this.isContextual(94)&&!this.hasPrecedingLineBreak()?(this.hasPlugin("deprecatedImportAssert")||this.hasPlugin("importAssertions")||this.raise(Rh.ImportAttributesUseAssert,this.state.startLoc),this.hasPlugin("importAssertions")||this.addExtra(e,"deprecatedAssertSyntax",!0),this.next(),t=this.parseImportAttributes()):t=[];!r&&this.hasPlugin("importAssertions")?e.assertions=t:e.attributes=t},r.maybeParseDefaultImportSpecifier=function(e,t){if(t){var r=this.startNodeAtNode(t);return r.local=t,e.specifiers.push(this.finishImportSpecifier(r,"ImportDefaultSpecifier")),!0}return!!ib(this.state.type)&&(this.parseImportSpecifierLocal(e,this.startNode(),"ImportDefaultSpecifier"),!0)},r.maybeParseStarImportSpecifier=function(e){if(this.match(55)){var t=this.startNode();return this.next(),this.expectContextual(93),this.parseImportSpecifierLocal(e,t,"ImportNamespaceSpecifier"),!0}return!1},r.parseNamedImportSpecifiers=function(e){var t=!0;for(this.expect(5);!this.eat(8);){if(t)t=!1;else{if(this.eat(14))throw this.raise(Rh.DestructureNamedImport,this.state.startLoc);if(this.expect(12),this.eat(8))break}var r=this.startNode(),a=this.match(134),n=this.isContextual(130);r.imported=this.parseModuleExportName();var s=this.parseImportSpecifier(r,a,"type"===e.importKind||"typeof"===e.importKind,n,void 0);e.specifiers.push(s)}},r.parseImportSpecifier=function(e,t,r,a,n){if(this.eatContextual(93))e.local=this.parseIdentifier();else{var s=e.imported;if(t)throw this.raise(Rh.ImportBindingIsString,e,{importName:s.value});this.checkReservedWord(s.name,e.loc.start,!0,!0),e.local||(e.local=this.cloneIdentifier(s))}return this.finishImportSpecifier(e,"ImportSpecifier",n)},r.isThisParam=function(e){return"Identifier"===e.type&&"this"===e.name},o(t)}(Ux),rR=function(e){function t(t,r,a){var n,s=function(e){var t={sourceType:"script",sourceFilename:void 0,startIndex:0,startColumn:0,startLine:1,allowAwaitOutsideFunction:!1,allowReturnOutsideFunction:!1,allowNewTargetOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,allowUndeclaredExports:!1,allowYieldOutsideFunction:!1,plugins:[],strictMode:void 0,ranges:!1,tokens:!1,createImportExpressions:!1,createParenthesizedExpressions:!1,errorRecovery:!1,attachComment:!0,annexB:!0};if(null==e)return t;if(null!=e.annexB&&!1!==e.annexB)throw new Error("The `annexB` option can only be set to `false`.");for(var r=0,a=Object.keys(t);r<a.length;r++){var n=a[r];null!=e[n]&&(t[n]=e[n])}if(1===t.startLine)null==e.startIndex&&t.startColumn>0?t.startIndex=t.startColumn:null==e.startColumn&&t.startIndex>0&&(t.startColumn=t.startIndex);else if((null==e.startColumn||null==e.startIndex)&&null!=e.startIndex)throw new Error("With a `startLine > 1` you must also specify `startIndex` and `startColumn`.");if("commonjs"===t.sourceType){if(null!=e.allowAwaitOutsideFunction)throw new Error("The `allowAwaitOutsideFunction` option cannot be used with `sourceType: 'commonjs'`.");if(null!=e.allowReturnOutsideFunction)throw new Error("`sourceType: 'commonjs'` implies `allowReturnOutsideFunction: true`, please remove the `allowReturnOutsideFunction` option or use `sourceType: 'script'`.");if(null!=e.allowNewTargetOutsideFunction)throw new Error("`sourceType: 'commonjs'` implies `allowNewTargetOutsideFunction: true`, please remove the `allowNewTargetOutsideFunction` option or use `sourceType: 'script'`.")}return t}(t);(n=e.call(this,s,r)||this).options=s,n.initializeScopes(),n.plugins=a,n.filename=s.sourceFilename,n.startIndex=s.startIndex;var o=0;return s.allowAwaitOutsideFunction&&(o|=jh),s.allowReturnOutsideFunction&&(o|=wh),s.allowImportExportEverywhere&&(o|=Sh),s.allowSuperOutsideMethod&&(o|=Th),s.allowUndeclaredExports&&(o|=Ah),s.allowNewTargetOutsideFunction&&(o|=Eh),s.allowYieldOutsideFunction&&(o|=Ph),s.ranges&&(o|=kh),s.tokens&&(o|=Ch),s.createImportExpressions&&(o|=_h),s.createParenthesizedExpressions&&(o|=Ih),s.errorRecovery&&(o|=Dh),s.attachComment&&(o|=Oh),s.annexB&&(o|=Nh),n.optionFlags=o,n}c(t,e);var r=t.prototype;return r.getScopeHandler=function(){return vv},r.parse=function(){this.enterInitialScopes();var e=this.startNode(),t=this.startNode();this.nextToken(),e.errors=null;var r=this.parseTopLevel(e,t);return r.errors=this.state.errors,r.comments.length=this.state.commentsLen,r},o(t)}(tR);function aR(e,t){var r;if("unambiguous"!==(null==(r=t)?void 0:r.sourceType))return sR(t,e).parse();t=Object.assign({},t);try{t.sourceType="module";var a=sR(t,e),n=a.parse();if(a.sawUnambiguousESM)return n;if(a.ambiguousScriptDifferentAst)try{return t.sourceType="script",sR(t,e).parse()}catch(e){}else n.program.sourceType="script";return n}catch(r){try{return t.sourceType="script",sR(t,e).parse()}catch(e){}throw r}}var nR=function(e){for(var t={},r=0,a=Object.keys(e);r<a.length;r++){var n=a[r];t[n]=yb(e[n])}return t}(sb);function sR(e,t){var r=rR,a=new Map;if(null!=e&&e.plugins){for(var n=0,s=e.plugins;n<s.length;n++){var o=s[n],i=void 0,d=void 0;"string"==typeof o?i=o:(i=o[0],d=o[1]),a.has(i)||a.set(i,d||{})}!function(e){if(e.has("decorators")){if(e.has("decorators-legacy"))throw new Error("Cannot use the decorators and decorators-legacy plugin together");var t=e.get("decorators").decoratorsBeforeExport;if(null!=t&&"boolean"!=typeof t)throw new Error("'decoratorsBeforeExport' must be a boolean, if specified.");var r=e.get("decorators").allowCallParenthesized;if(null!=r&&"boolean"!=typeof r)throw new Error("'allowCallParenthesized' must be a boolean.")}if(e.has("flow")&&e.has("typescript"))throw new Error("Cannot combine flow and typescript plugins.");if(e.has("placeholders")&&e.has("v8intrinsic"))throw new Error("Cannot combine placeholders and v8intrinsic plugins.");if(e.has("pipelineOperator")){var a,n=e.get("pipelineOperator").proposal;if(!Bx.includes(n)){var s=Bx.map(function(e){return'"'+e+'"'}).join(", ");throw new Error('"pipelineOperator" requires "proposal" option whose value must be one of: '+s+".")}if("hack"===n){var o;if(e.has("placeholders"))throw new Error("Cannot combine placeholders plugin and Hack-style pipes.");if(e.has("v8intrinsic"))throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes.");var i=e.get("pipelineOperator").topicToken;if(!Mx.includes(i)){var d=Mx.map(function(e){return'"'+e+'"'}).join(", ");throw new Error('"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: '+d+".")}if("#"===i&&"hash"===(null==(o=e.get("recordAndTuple"))?void 0:o.syntaxType))throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `'+JSON.stringify(["recordAndTuple",e.get("recordAndTuple")])+"`.")}else if("smart"===n&&"hash"===(null==(a=e.get("recordAndTuple"))?void 0:a.syntaxType))throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `'+JSON.stringify(["recordAndTuple",e.get("recordAndTuple")])+"`.")}if(e.has("moduleAttributes")){if(e.has("deprecatedImportAssert")||e.has("importAssertions"))throw new Error("Cannot combine importAssertions, deprecatedImportAssert and moduleAttributes plugins.");if("may-2020"!==e.get("moduleAttributes").version)throw new Error("The 'moduleAttributes' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is 'may-2020'.")}if(e.has("importAssertions")&&e.has("deprecatedImportAssert"))throw new Error("Cannot combine importAssertions and deprecatedImportAssert plugins.");if(e.has("deprecatedImportAssert")||e.has("importAttributes")&&e.get("importAttributes").deprecatedAssertSyntax&&e.set("deprecatedImportAssert",{}),e.has("recordAndTuple")){var c=e.get("recordAndTuple").syntaxType;if(null!=c){var l=["hash","bar"];if(!l.includes(c))throw new Error("The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: "+l.map(function(e){return"'"+e+"'"}).join(", "))}}if(e.has("asyncDoExpressions")&&!e.has("doExpressions")){var u=new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.");throw u.missingPlugins="doExpressions",u}if(e.has("optionalChainingAssign")&&"2023-07"!==e.get("optionalChainingAssign").version)throw new Error("The 'optionalChainingAssign' plugin requires a 'version' option, representing the last proposal update. Currently, the only supported value is '2023-07'.");if(e.has("discardBinding")&&"void"!==e.get("discardBinding").syntaxType)throw new Error("The 'discardBinding' plugin requires a 'syntaxType' option. Currently the only supported value is 'void'.")}(a),r=function(e){for(var t=[],r=0;r<Lx.length;r++){var a=Lx[r];e.has(a)&&t.push(a)}var n=t.join("|"),s=oR.get(n);if(!s){s=rR;for(var o=0;o<t.length;o++){var i=t[o];s=Fx[i](s)}oR.set(n,s)}return s}(a)}return new r(e,t,a)}var oR=new Map;var iR=Object.freeze({__proto__:null,parse:aR,parseExpression:function(e,t){var r=sR(t,e);return r.options.strictMode&&(r.state.strict=!0),r.getExpression()},tokTypes:nR}),dR="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function cR(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var r=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach(function(t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}),r}var lR={exports:{}},uR=String,pR=function(){return{isColorSupported:!1,reset:uR,bold:uR,dim:uR,italic:uR,underline:uR,inverse:uR,hidden:uR,strikethrough:uR,black:uR,red:uR,green:uR,yellow:uR,blue:uR,magenta:uR,cyan:uR,white:uR,gray:uR,bgBlack:uR,bgRed:uR,bgGreen:uR,bgYellow:uR,bgBlue:uR,bgMagenta:uR,bgCyan:uR,bgWhite:uR,blackBright:uR,redBright:uR,greenBright:uR,yellowBright:uR,blueBright:uR,magentaBright:uR,cyanBright:uR,whiteBright:uR,bgBlackBright:uR,bgRedBright:uR,bgGreenBright:uR,bgYellowBright:uR,bgBlueBright:uR,bgMagentaBright:uR,bgCyanBright:uR,bgWhiteBright:uR}};lR.exports=pR();var fR=lR.exports.createColors=pR,gR=lR.exports;var mR=function(e,t){return function(r){return e(t(r))}};function yR(e){return{keyword:e.cyan,capitalized:e.yellow,jsxIdentifier:e.yellow,punctuator:e.yellow,number:e.magenta,string:e.green,regex:e.magenta,comment:e.gray,invalid:mR(mR(e.white,e.bgRed),e.bold),gutter:e.gray,marker:mR(e.red,e.bold),message:mR(e.red,e.bold),reset:e.reset}}var hR=yR(fR(!0)),bR=yR(fR(!1));function vR(e){return e?hR:bR}var xR,RR={};function jR(){return xR||(xR=1,Object.defineProperty(RR,"__esModule",{value:!0}),RR.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyus]{1,6}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,RR.matchToToken=function(e){var t={type:"invalid",value:e[0],closed:void 0};return e[1]?(t.type="string",t.closed=!(!e[3]&&!e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}),RR}var wR,ER=(void z.env.BABEL_8_BREAKING,jR()),SR=new Set(["as","async","from","get","of","set"]),TR=/\r\n|[\n\r\u2028\u2029]/,PR=/^[()[\]{}]$/,AR=/^[a-z][\w-]*$/i,kR=function(e,t,r){if("name"===e.type){var a=e.value;if(Jr(a)||zr(a,!0)||SR.has(a))return"keyword";if(AR.test(a)&&("<"===r[t-1]||"</"===r.slice(t-2,t)))return"jsxIdentifier";var n=String.fromCodePoint(a.codePointAt(0));if(n!==n.toLowerCase())return"capitalized"}return"punctuator"===e.type&&PR.test(e.value)?"bracket":"invalid"!==e.type||"@"!==e.value&&"#"!==e.value?e.type:"punctuator"};wR=p().m(function e(t){var r,a;return p().w(function(e){for(;;)switch(e.n){case 0:if(!(r=ER.default.exec(t))){e.n=2;break}return a=ER.matchToToken(r),e.n=1,{type:kR(a,r.index,t),value:a.value};case 1:e.n=0;break;case 2:return e.a(2)}},e)});var CR=/\r\n|[\n\r\u2028\u2029]/;function _R(e,t,r){void 0===r&&(r={});var a=r.forceColor||("object"!=typeof z||"0"!==z.env.FORCE_COLOR&&"false"!==z.env.FORCE_COLOR)&&gR.isColorSupported&&r.highlightCode,n=(r.startLine||1)-1,s=vR(a),o=function(e,t,r,a){var n=Object.assign({column:0,line:-1},e.start),s=Object.assign({},n,e.end),o=r||{},i=o.linesAbove,d=void 0===i?2:i,c=o.linesBelow,l=void 0===c?3:c,u=n.line-a,p=n.column,f=s.line-a,g=s.column,m=Math.max(u-(d+1),0),y=Math.min(t.length,f+l);-1===u&&(m=0),-1===f&&(y=t.length);var h=f-u,b={};if(h)for(var v=0;v<=h;v++){var x=v+u;if(p)if(0===v){var R=t[x-1].length;b[x]=[p,R-p+1]}else if(v===h)b[x]=[0,g];else{var j=t[x-v].length;b[x]=[0,j]}else b[x]=!0}else b[u]=p===g?!p||[p,0]:[p,g-p];return{start:m,end:y,markerLines:b}}(t,e.split(CR),r,n),d=o.start,c=o.end,l=o.markerLines,u=t.start&&"number"==typeof t.start.column,p=String(c+n).length,f=a?function(e){if(""===e)return"";for(var t,r=vR(!0),a="",n=function(){var e=t.value,n=e.type,s=e.value;a+=n in r?s.split(TR).map(function(e){return r[n](e)}).join("\n"):s},s=i(wR(e));!(t=s()).done;)n();return a}(e):e,g=f.split(CR,c).slice(d,c).map(function(e,t){var a=d+1+t,o=" "+(" "+(a+n)).slice(-p)+" |",i=l[a],c=!l[a+1];if(i){var u="";if(Array.isArray(i)){var f=e.slice(0,Math.max(i[0]-1,0)).replace(/[^\t]/g," "),g=i[1]||1;u=["\n ",s.gutter(o.replace(/\d/g," "))," ",f,s.marker("^").repeat(g)].join(""),c&&r.message&&(u+=" "+s.message(r.message))}return[s.marker(">"),s.gutter(o),e.length>0?" "+e:"",u].join("")}return" "+s.gutter(o)+(e.length>0?" "+e:"")}).join("\n");return r.message&&!u&&(g=""+" ".repeat(p+1)+r.message+"\n"+g),a?s.reset(g):g}var IR=Z,DR=re,OR=nr,NR=ie,BR=Pt,MR=ye,FR=Dt,LR=er,UR=le,qR=Sy,GR=By,WR=/^[_$A-Z0-9]+$/;function VR(e,t,r){var a=r.placeholderWhitelist,n=r.placeholderPattern,s=r.preserveComments,o=r.syntacticPlaceholders,i=function(e,t,r){var a=(t.plugins||[]).slice();!1!==r&&a.push("placeholders");t=Object.assign({allowAwaitOutsideFunction:!0,allowReturnOutsideFunction:!0,allowNewTargetOutsideFunction:!0,allowSuperOutsideMethod:!0,allowYieldOutsideFunction:!0,sourceType:"module"},t,{plugins:a});try{return aR(e,t)}catch(t){var n=t.loc;throw n&&(t.message+="\n"+_R(e,{start:n}),t.code="BABEL_TEMPLATE_PARSE_ERROR"),t}}(t,r.parser,o);qR(i,{preserveComments:s}),e.validate(i);var d={syntactic:{placeholders:[],placeholderNames:new Set},legacy:{placeholders:[],placeholderNames:new Set},placeholderWhitelist:a,placeholderPattern:n,syntacticPlaceholders:o};return GR(i,HR,d),Object.assign({ast:i},d.syntactic.placeholders.length?d.syntactic:d.legacy)}function HR(e,t,r){var a,n,s=r.syntactic.placeholders.length>0;if(FR(e)){if(!1===r.syntacticPlaceholders)throw new Error("%%foo%%-style placeholders can't be used when '.syntacticPlaceholders' is false.");n=e.name.name,s=!0}else{if(s||r.syntacticPlaceholders)return;if(NR(e)||BR(e))n=e.name;else{if(!UR(e))return;n=e.value}}if(s&&(null!=r.placeholderPattern||null!=r.placeholderWhitelist))throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible with '.syntacticPlaceholders: true'");if(s||!1!==r.placeholderPattern&&(r.placeholderPattern||WR).test(n)||null!=(a=r.placeholderWhitelist)&&a.has(n)){var o,i=(t=t.slice())[t.length-1],d=i.node,c=i.key;UR(e)||FR(e,{expectedNode:"StringLiteral"})?o="string":MR(d)&&"arguments"===c||IR(d)&&"arguments"===c||OR(d)&&"params"===c?o="param":DR(d)&&!FR(e)?(o="statement",t=t.slice(0,-1)):o=LR(e)&&FR(e)?"statement":"other";var l=s?r.syntactic:r.legacy,u=l.placeholders,p=l.placeholderNames;u.push({name:n,type:o,resolve:function(e){return function(e,t){for(var r=e,a=0;a<t.length-1;a++){var n=t[a],s=n.key,o=n.index;r=void 0===o?r[s]:r[s][o]}var i=t[t.length-1],d=i.key,c=i.index;return{parent:r,key:d,index:c}}(e,t)},isDuplicate:p.has(n)}),p.add(n)}}var zR=ps,KR=sm,XR=xs,JR=Rs,YR=Ps,$R=er,QR=le,ZR=Cs,ej=es;function tj(e,t){var r=KR(e.ast);return t&&(e.placeholders.forEach(function(e){if(!hasOwnProperty.call(t,e.name)){var r=e.name;throw new Error('Error: No substitution given for "'+r+"\". If this is not meant to be a\n placeholder you may want to consider passing one of the following options to @babel/template:\n - { placeholderPattern: false, placeholderWhitelist: new Set(['"+r+"'])}\n - { placeholderPattern: /^"+r+"$/ }")}}),Object.keys(t).forEach(function(t){if(!e.placeholderNames.has(t))throw new Error('Unknown substitution "'+t+'" given')})),e.placeholders.slice().reverse().forEach(function(e){try{var a;!function(e,t,r){e.isDuplicate&&(Array.isArray(r)?r=r.map(function(e){return KR(e)}):"object"==typeof r&&(r=KR(r)));var a=e.resolve(t),n=a.parent,s=a.key,o=a.index;if("string"===e.type){if("string"==typeof r&&(r=ZR(r)),!r||!QR(r))throw new Error("Expected string substitution")}else if("statement"===e.type)void 0===o?r?Array.isArray(r)?r=zR(r):"string"==typeof r?r=JR(YR(r)):$R(r)||(r=JR(r)):r=XR():r&&!Array.isArray(r)&&("string"==typeof r&&(r=YR(r)),$R(r)||(r=JR(r)));else if("param"===e.type){if("string"==typeof r&&(r=YR(r)),void 0===o)throw new Error("Assertion failure.")}else if("string"==typeof r&&(r=YR(r)),Array.isArray(r))throw new Error("Cannot replace single expression with an array.");function i(e,t,r){var a=e[t];e[t]=r,"Identifier"!==a.type&&"Placeholder"!==a.type||(a.typeAnnotation&&(r.typeAnnotation=a.typeAnnotation),a.optional&&(r.optional=a.optional),a.decorators&&(r.decorators=a.decorators))}if(void 0===o)ej(n,s,r),i(n,s,r);else{var d=n[s].slice();"statement"===e.type||"param"===e.type?null==r?d.splice(o,1):Array.isArray(r)?d.splice.apply(d,[o,1].concat(b(r))):i(d,o,r):i(d,o,r),ej(n,s,d),n[s]=d}}(e,r,null!=(a=t&&t[e.name])?a:null)}catch(t){throw t.message='@babel/template placeholder "'+e.name+'": '+t.message,t}}),r}function rj(e,t,r){var a;return t=e.code(t),function(n){var s=sh(n);return a||(a=VR(e,t,r)),e.unwrap(tj(a,s))}}function aj(e,t,r){var a=function(e,t,r){var a="BABEL_TPL$",n=t.join("");do{a="$$"+a}while(n.includes(a));var s=function(e,t){for(var r=[],a=e[0],n=1;n<e.length;n++){var s=""+t+(n-1);r.push(s),a+=s+e[n]}return{names:r,code:a}}(t,a),o=s.names,i=s.code,d=VR(e,e.code(i),{parser:r.parser,placeholderWhitelist:new Set(o.concat(r.placeholderWhitelist?Array.from(r.placeholderWhitelist):[])),placeholderPattern:r.placeholderPattern,preserveComments:r.preserveComments,syntacticPlaceholders:r.syntacticPlaceholders});return{metadata:d,names:o}}(e,t,r),n=a.metadata,s=a.names;return function(t){var r={};return t.forEach(function(e,t){r[s[t]]=e}),function(t){var a=sh(t);return a&&Object.keys(a).forEach(function(e){if(hasOwnProperty.call(r,e))throw new Error("Unexpected replacement overlap.")}),e.unwrap(tj(n,a?Object.assign(a,r):r))}}}var nj=nh({placeholderPattern:!1});function sj(e,t){var r=new WeakMap,a=new WeakMap,n=t||nh(null);return Object.assign(function(t){for(var a=arguments.length,s=new Array(a>1?a-1:0),o=1;o<a;o++)s[o-1]=arguments[o];if("string"==typeof t){if(s.length>1)throw new Error("Unexpected extra params.");return oj(rj(e,t,ah(n,nh(s[0]))))}if(Array.isArray(t)){var i=r.get(t);return i||(i=aj(e,t,n),r.set(t,i)),oj(i(s))}if("object"==typeof t&&t){if(s.length>0)throw new Error("Unexpected extra params.");return sj(e,ah(n,nh(t)))}throw new Error("Unexpected template param "+typeof t)},{ast:function(t){for(var r=arguments.length,s=new Array(r>1?r-1:0),o=1;o<r;o++)s[o-1]=arguments[o];if("string"==typeof t){if(s.length>1)throw new Error("Unexpected extra params.");return rj(e,t,ah(ah(n,nh(s[0])),nj))()}if(Array.isArray(t)){var i=a.get(t);return i||(i=aj(e,t,ah(n,nj)),a.set(t,i)),i(s)()}throw new Error("Unexpected template param "+typeof t)}})}function oj(e){var t="";try{throw new Error}catch(e){e.stack&&(t=e.stack.split("\n").slice(3).join("\n"))}return function(r){try{return e(r)}catch(e){throw e.stack+="\n =============\n"+t,e}}}var ij=sj(Qy),dj=sj(eh),cj=sj(Zy),lj=sj(th),uj=sj({code:function(e){return e},validate:function(){},unwrap:function(e){return e.program}}),pj=Object.assign(ij.bind(void 0),{smart:ij,statement:dj,statements:cj,expression:lj,program:uj,ast:ij.ast}),fj=Object.freeze({__proto__:null,default:pj,expression:lj,program:uj,smart:ij,statement:dj,statements:cj});function gj(e,t,r){return Object.freeze({minVersion:e,ast:function(){return pj.program.ast(t,{preserveComments:!0})},metadata:r})}var mj={__proto__:null,OverloadYield:gj("7.18.14","function _OverloadYield(e,d){this.v=e,this.k=d}",{globals:[],locals:{_OverloadYield:["body.0.id"]},exportBindingAssignments:[],exportName:"_OverloadYield",dependencies:{},internal:!1}),applyDecoratedDescriptor:gj("7.0.0-beta.0",'function _applyDecoratedDescriptor(i,e,r,n,l){var a={};return Object.keys(n).forEach(function(i){a[i]=n[i]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=r.slice().reverse().reduce(function(r,n){return n(i,e,r)||r},a),l&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(l):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(i,e,a),null):a}',{globals:["Object"],locals:{_applyDecoratedDescriptor:["body.0.id"]},exportBindingAssignments:[],exportName:"_applyDecoratedDescriptor",dependencies:{},internal:!1}),applyDecs2311:gj("7.24.0",'function applyDecs2311(e,t,n,r,o,i){var a,c,u,s,f,l,p,d=Symbol.metadata||Symbol.for("Symbol.metadata"),m=Object.defineProperty,h=Object.create,y=[h(null),h(null)],v=t.length;function g(t,n,r){return function(o,i){n&&(i=o,o=e);for(var a=0;a<t.length;a++)i=t[a].apply(o,r?[i]:[]);return r?i:o}}function b(e,t,n,r){if("function"!=typeof e&&(r||void 0!==e))throw new TypeError(t+" must "+(n||"be")+" a function"+(r?"":" or undefined"));return e}function applyDec(e,t,n,r,o,i,u,s,f,l,p){function d(e){if(!p(e))throw new TypeError("Attempted to access private element on non-instance")}var h=[].concat(t[0]),v=t[3],w=!u,D=1===o,S=3===o,j=4===o,E=2===o;function I(t,n,r){return function(o,i){return n&&(i=o,o=e),r&&r(o),P[t].call(o,i)}}if(!w){var P={},k=[],F=S?"get":j||D?"set":"value";if(f?(l||D?P={get:setFunctionName(function(){return v(this)},r,"get"),set:function(e){t[4](this,e)}}:P[F]=v,l||setFunctionName(P[F],r,E?"":F)):l||(P=Object.getOwnPropertyDescriptor(e,r)),!l&&!f){if((c=y[+s][r])&&7!==(c^o))throw Error("Decorating two elements with the same name ("+P[F].name+") is not supported yet");y[+s][r]=o<3?1:o}}for(var N=e,O=h.length-1;O>=0;O-=n?2:1){var T=b(h[O],"A decorator","be",!0),z=n?h[O-1]:void 0,A={},H={kind:["field","accessor","method","getter","setter","class"][o],name:r,metadata:a,addInitializer:function(e,t){if(e.v)throw new TypeError("attempted to call addInitializer after decoration was finished");b(t,"An initializer","be",!0),i.push(t)}.bind(null,A)};if(w)c=T.call(z,N,H),A.v=1,b(c,"class decorators","return")&&(N=c);else if(H.static=s,H.private=f,c=H.access={has:f?p.bind():function(e){return r in e}},j||(c.get=f?E?function(e){return d(e),P.value}:I("get",0,d):function(e){return e[r]}),E||S||(c.set=f?I("set",0,d):function(e,t){e[r]=t}),N=T.call(z,D?{get:P.get,set:P.set}:P[F],H),A.v=1,D){if("object"==typeof N&&N)(c=b(N.get,"accessor.get"))&&(P.get=c),(c=b(N.set,"accessor.set"))&&(P.set=c),(c=b(N.init,"accessor.init"))&&k.unshift(c);else if(void 0!==N)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(N,(l?"field":"method")+" decorators","return")&&(l?k.unshift(N):P[F]=N)}return o<2&&u.push(g(k,s,1),g(i,s,0)),l||w||(f?D?u.splice(-1,0,I("get",s),I("set",s)):u.push(E?P[F]:b.call.bind(P[F])):m(e,r,P)),N}function w(e){return m(e,d,{configurable:!0,enumerable:!0,value:a})}return void 0!==i&&(a=i[d]),a=h(null==a?null:a),f=[],l=function(e){e&&f.push(g(e))},p=function(t,r){for(var i=0;i<n.length;i++){var a=n[i],c=a[1],l=7&c;if((8&c)==t&&!l==r){var p=a[2],d=!!a[3],m=16&c;applyDec(t?e:e.prototype,a,m,d?"#"+p:toPropertyKey(p),l,l<2?[]:t?s=s||[]:u=u||[],f,!!t,d,r,t&&d?function(t){return checkInRHS(t)===e}:o)}}},p(8,0),p(0,0),p(8,1),p(0,1),l(u),l(s),c=f,v||w(e),{e:c,get c(){var n=[];return v&&[w(e=applyDec(e,[t],r,e.name,5,n)),g(n,1)]}}}',{globals:["Symbol","Object","TypeError","Error"],locals:{applyDecs2311:["body.0.id"]},exportBindingAssignments:[],exportName:"applyDecs2311",dependencies:{checkInRHS:["body.0.body.body.5.argument.expressions.4.right.body.body.0.body.body.1.consequent.body.1.expression.arguments.10.consequent.body.body.0.argument.left.callee"],setFunctionName:["body.0.body.body.3.body.body.3.consequent.body.1.test.expressions.0.consequent.expressions.0.consequent.right.properties.0.value.callee","body.0.body.body.3.body.body.3.consequent.body.1.test.expressions.0.consequent.expressions.1.right.callee"],toPropertyKey:["body.0.body.body.5.argument.expressions.4.right.body.body.0.body.body.1.consequent.body.1.expression.arguments.3.alternate.callee"]},internal:!1}),arrayLikeToArray:gj("7.9.0","function _arrayLikeToArray(r,a){(null==a||a>r.length)&&(a=r.length);for(var e=0,n=Array(a);e<a;e++)n[e]=r[e];return n}",{globals:["Array"],locals:{_arrayLikeToArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_arrayLikeToArray",dependencies:{},internal:!1}),arrayWithHoles:gj("7.0.0-beta.0","function _arrayWithHoles(r){if(Array.isArray(r))return r}",{globals:["Array"],locals:{_arrayWithHoles:["body.0.id"]},exportBindingAssignments:[],exportName:"_arrayWithHoles",dependencies:{},internal:!1}),arrayWithoutHoles:gj("7.0.0-beta.0","function _arrayWithoutHoles(r){if(Array.isArray(r))return arrayLikeToArray(r)}",{globals:["Array"],locals:{_arrayWithoutHoles:["body.0.id"]},exportBindingAssignments:[],exportName:"_arrayWithoutHoles",dependencies:{arrayLikeToArray:["body.0.body.body.0.consequent.argument.callee"]},internal:!1}),assertClassBrand:gj("7.24.0",'function _assertClassBrand(e,t,n){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}',{globals:["TypeError"],locals:{_assertClassBrand:["body.0.id"]},exportBindingAssignments:[],exportName:"_assertClassBrand",dependencies:{},internal:!1}),assertThisInitialized:gj("7.0.0-beta.0","function _assertThisInitialized(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}",{globals:["ReferenceError"],locals:{_assertThisInitialized:["body.0.id"]},exportBindingAssignments:[],exportName:"_assertThisInitialized",dependencies:{},internal:!1}),asyncGeneratorDelegate:gj("7.0.0-beta.0",'function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promise(function(n){n(t[e](r))}),{done:!1,value:new OverloadYield(r,1)}}return e["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},e.next=function(t){return n?(n=!1,t):pump("next",t)},"function"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t;return pump("throw",t)}),"function"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump("return",t)}),e}',{globals:["Promise","Symbol"],locals:{_asyncGeneratorDelegate:["body.0.id"]},exportBindingAssignments:[],exportName:"_asyncGeneratorDelegate",dependencies:{OverloadYield:["body.0.body.body.1.body.body.0.argument.expressions.2.properties.1.value.callee"]},internal:!1}),asyncIterator:gj("7.15.9",'function _asyncIterator(r){var n,t,o,e=2;for("undefined"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.iterator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t="@@asyncIterator",o="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var n=r.done;return Promise.resolve(r.value).then(function(r){return{value:r,done:n}})}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}',{globals:["Symbol","TypeError","Object","Promise"],locals:{_asyncIterator:["body.0.id"],AsyncFromSyncIterator:["body.1.id","body.0.body.body.1.body.body.1.consequent.argument.callee","body.1.body.body.1.argument.expressions.1.left.object","body.1.body.body.1.argument.expressions.2.callee","body.1.body.body.1.argument.expressions.0.left"]},exportBindingAssignments:[],exportName:"_asyncIterator",dependencies:{},internal:!1}),asyncToGenerator:gj("7.0.0-beta.0",'function asyncGeneratorStep(n,t,e,r,o,a,c){try{var i=n[a](c),u=i.value}catch(n){return void e(n)}i.done?t(u):Promise.resolve(u).then(r,o)}function _asyncToGenerator(n){return function(){var t=this,e=arguments;return new Promise(function(r,o){var a=n.apply(t,e);function _next(n){asyncGeneratorStep(a,r,o,_next,_throw,"next",n)}function _throw(n){asyncGeneratorStep(a,r,o,_next,_throw,"throw",n)}_next(void 0)})}}',{globals:["Promise"],locals:{asyncGeneratorStep:["body.0.id","body.1.body.body.0.argument.body.body.1.argument.arguments.0.body.body.1.body.body.0.expression.callee","body.1.body.body.0.argument.body.body.1.argument.arguments.0.body.body.2.body.body.0.expression.callee"],_asyncToGenerator:["body.1.id"]},exportBindingAssignments:[],exportName:"_asyncToGenerator",dependencies:{},internal:!1}),awaitAsyncGenerator:gj("7.0.0-beta.0","function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}",{globals:[],locals:{_awaitAsyncGenerator:["body.0.id"]},exportBindingAssignments:[],exportName:"_awaitAsyncGenerator",dependencies:{OverloadYield:["body.0.body.body.0.argument.callee"]},internal:!1}),callSuper:gj("7.23.8","function _callSuper(t,o,e){return o=getPrototypeOf(o),possibleConstructorReturn(t,isNativeReflectConstruct()?Reflect.construct(o,e||[],getPrototypeOf(t).constructor):o.apply(t,e))}",{globals:["Reflect"],locals:{_callSuper:["body.0.id"]},exportBindingAssignments:[],exportName:"_callSuper",dependencies:{getPrototypeOf:["body.0.body.body.0.argument.expressions.0.right.callee","body.0.body.body.0.argument.expressions.1.arguments.1.consequent.arguments.2.object.callee"],isNativeReflectConstruct:["body.0.body.body.0.argument.expressions.1.arguments.1.test.callee"],possibleConstructorReturn:["body.0.body.body.0.argument.expressions.1.callee"]},internal:!1}),checkInRHS:gj("7.20.5",'function _checkInRHS(e){if(Object(e)!==e)throw TypeError("right-hand side of \'in\' should be an object, got "+(null!==e?typeof e:"null"));return e}',{globals:["Object","TypeError"],locals:{_checkInRHS:["body.0.id"]},exportBindingAssignments:[],exportName:"_checkInRHS",dependencies:{},internal:!1}),checkPrivateRedeclaration:gj("7.14.1",'function _checkPrivateRedeclaration(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}',{globals:["TypeError"],locals:{_checkPrivateRedeclaration:["body.0.id"]},exportBindingAssignments:[],exportName:"_checkPrivateRedeclaration",dependencies:{},internal:!1}),classCallCheck:gj("7.0.0-beta.0",'function _classCallCheck(a,n){if(!(a instanceof n))throw new TypeError("Cannot call a class as a function")}',{globals:["TypeError"],locals:{_classCallCheck:["body.0.id"]},exportBindingAssignments:[],exportName:"_classCallCheck",dependencies:{},internal:!1}),classNameTDZError:gj("7.0.0-beta.0","function _classNameTDZError(e){throw new ReferenceError('Class \"'+e+'\" cannot be referenced in computed property keys.')}",{globals:["ReferenceError"],locals:{_classNameTDZError:["body.0.id"]},exportBindingAssignments:[],exportName:"_classNameTDZError",dependencies:{},internal:!1}),classPrivateFieldGet2:gj("7.24.0","function _classPrivateFieldGet2(s,a){return s.get(assertClassBrand(s,a))}",{globals:[],locals:{_classPrivateFieldGet2:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldGet2",dependencies:{assertClassBrand:["body.0.body.body.0.argument.arguments.0.callee"]},internal:!1}),classPrivateFieldInitSpec:gj("7.14.1","function _classPrivateFieldInitSpec(e,t,a){checkPrivateRedeclaration(e,t),t.set(e,a)}",{globals:[],locals:{_classPrivateFieldInitSpec:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldInitSpec",dependencies:{checkPrivateRedeclaration:["body.0.body.body.0.expression.expressions.0.callee"]},internal:!1}),classPrivateFieldLooseBase:gj("7.0.0-beta.0",'function _classPrivateFieldBase(e,t){if(!{}.hasOwnProperty.call(e,t))throw new TypeError("attempted to use private field on non-instance");return e}',{globals:["TypeError"],locals:{_classPrivateFieldBase:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldBase",dependencies:{},internal:!1}),classPrivateFieldLooseKey:gj("7.0.0-beta.0",'var id=0;function _classPrivateFieldKey(e){return"__private_"+id+++"_"+e}',{globals:[],locals:{id:["body.0.declarations.0.id","body.1.body.body.0.argument.left.left.right.argument","body.1.body.body.0.argument.left.left.right.argument"],_classPrivateFieldKey:["body.1.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldKey",dependencies:{},internal:!1}),classPrivateFieldSet2:gj("7.24.0","function _classPrivateFieldSet2(s,a,r){return s.set(assertClassBrand(s,a),r),r}",{globals:[],locals:{_classPrivateFieldSet2:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldSet2",dependencies:{assertClassBrand:["body.0.body.body.0.argument.expressions.0.arguments.0.callee"]},internal:!1}),classPrivateGetter:gj("7.24.0","function _classPrivateGetter(s,r,a){return a(assertClassBrand(s,r))}",{globals:[],locals:{_classPrivateGetter:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateGetter",dependencies:{assertClassBrand:["body.0.body.body.0.argument.arguments.0.callee"]},internal:!1}),classPrivateMethodInitSpec:gj("7.14.1","function _classPrivateMethodInitSpec(e,a){checkPrivateRedeclaration(e,a),a.add(e)}",{globals:[],locals:{_classPrivateMethodInitSpec:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateMethodInitSpec",dependencies:{checkPrivateRedeclaration:["body.0.body.body.0.expression.expressions.0.callee"]},internal:!1}),classPrivateSetter:gj("7.24.0","function _classPrivateSetter(s,r,a,t){return r(assertClassBrand(s,a),t),t}",{globals:[],locals:{_classPrivateSetter:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateSetter",dependencies:{assertClassBrand:["body.0.body.body.0.argument.expressions.0.arguments.0.callee"]},internal:!1}),classStaticPrivateMethodGet:gj("7.3.2","function _classStaticPrivateMethodGet(s,a,t){return assertClassBrand(a,s),t}",{globals:[],locals:{_classStaticPrivateMethodGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateMethodGet",dependencies:{assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"]},internal:!1}),construct:gj("7.0.0-beta.0","function _construct(t,e,r){if(isNativeReflectConstruct())return Reflect.construct.apply(null,arguments);var o=[null];o.push.apply(o,e);var p=new(t.bind.apply(t,o));return r&&setPrototypeOf(p,r.prototype),p}",{globals:["Reflect"],locals:{_construct:["body.0.id"]},exportBindingAssignments:[],exportName:"_construct",dependencies:{isNativeReflectConstruct:["body.0.body.body.0.test.callee"],setPrototypeOf:["body.0.body.body.4.argument.expressions.0.right.callee"]},internal:!1}),createClass:gj("7.0.0-beta.0",'function _defineProperties(e,r){for(var t=0;t<r.length;t++){var o=r[t];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,toPropertyKey(o.key),o)}}function _createClass(e,r,t){return r&&_defineProperties(e.prototype,r),t&&_defineProperties(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}',{globals:["Object"],locals:{_defineProperties:["body.0.id","body.1.body.body.0.argument.expressions.0.right.callee","body.1.body.body.0.argument.expressions.1.right.callee"],_createClass:["body.1.id"]},exportBindingAssignments:[],exportName:"_createClass",dependencies:{toPropertyKey:["body.0.body.body.0.body.body.1.expression.expressions.3.arguments.1.callee"]},internal:!1}),createForOfIteratorHelper:gj("7.9.0",'function _createForOfIteratorHelper(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(!t){if(Array.isArray(r)||(t=unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var n=0,F=function(){};return{s:F,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(r){throw r},f:F}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){t=t.call(r)},n:function(){var r=t.next();return a=r.done,r},e:function(r){u=!0,o=r},f:function(){try{a||null==t.return||t.return()}finally{if(u)throw o}}}}',{globals:["Symbol","Array","TypeError"],locals:{_createForOfIteratorHelper:["body.0.id"]},exportBindingAssignments:[],exportName:"_createForOfIteratorHelper",dependencies:{unsupportedIterableToArray:["body.0.body.body.1.consequent.body.0.test.left.right.right.callee"]},internal:!1}),createForOfIteratorHelperLoose:gj("7.9.0",'function _createForOfIteratorHelperLoose(r,e){var t="undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(t)return(t=t.call(r)).next.bind(t);if(Array.isArray(r)||(t=unsupportedIterableToArray(r))||e&&r&&"number"==typeof r.length){t&&(r=t);var o=0;return function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}',{globals:["Symbol","Array","TypeError"],locals:{_createForOfIteratorHelperLoose:["body.0.id"]},exportBindingAssignments:[],exportName:"_createForOfIteratorHelperLoose",dependencies:{unsupportedIterableToArray:["body.0.body.body.2.test.left.right.right.callee"]},internal:!1}),createSuper:gj("7.9.0","function _createSuper(t){var r=isNativeReflectConstruct();return function(){var e,o=getPrototypeOf(t);if(r){var s=getPrototypeOf(this).constructor;e=Reflect.construct(o,arguments,s)}else e=o.apply(this,arguments);return possibleConstructorReturn(this,e)}}",{globals:["Reflect"],locals:{_createSuper:["body.0.id"]},exportBindingAssignments:[],exportName:"_createSuper",dependencies:{getPrototypeOf:["body.0.body.body.1.argument.body.body.0.declarations.1.init.callee","body.0.body.body.1.argument.body.body.1.consequent.body.0.declarations.0.init.object.callee"],isNativeReflectConstruct:["body.0.body.body.0.declarations.0.init.callee"],possibleConstructorReturn:["body.0.body.body.1.argument.body.body.2.argument.callee"]},internal:!1}),decorate:gj("7.1.5",'function _decorate(e,r,t,i){var o=_getDecoratorsApi();if(i)for(var n=0;n<i.length;n++)o=i[n](o);var s=r(function(e){o.initializeInstanceElements(e,a.elements)},t),a=o.decorateClass(_coalesceClassElements(s.d.map(_createElementDescriptor)),e);return o.initializeClassElements(s.F,a.elements),o.runClassFinishers(s.F,a.finishers)}function _getDecoratorsApi(){_getDecoratorsApi=function(){return e};var e={elementsDefinitionOrder:[["method"],["field"]],initializeInstanceElements:function(e,r){["method","field"].forEach(function(t){r.forEach(function(r){r.kind===t&&"own"===r.placement&&this.defineClassElement(e,r)},this)},this)},initializeClassElements:function(e,r){var t=e.prototype;["method","field"].forEach(function(i){r.forEach(function(r){var o=r.placement;if(r.kind===i&&("static"===o||"prototype"===o)){var n="static"===o?e:t;this.defineClassElement(n,r)}},this)},this)},defineClassElement:function(e,r){var t=r.descriptor;if("field"===r.kind){var i=r.initializer;t={enumerable:t.enumerable,writable:t.writable,configurable:t.configurable,value:void 0===i?void 0:i.call(e)}}Object.defineProperty(e,r.key,t)},decorateClass:function(e,r){var t=[],i=[],o={static:[],prototype:[],own:[]};if(e.forEach(function(e){this.addElementPlacement(e,o)},this),e.forEach(function(e){if(!_hasDecorators(e))return t.push(e);var r=this.decorateElement(e,o);t.push(r.element),t.push.apply(t,r.extras),i.push.apply(i,r.finishers)},this),!r)return{elements:t,finishers:i};var n=this.decorateConstructor(t,r);return i.push.apply(i,n.finishers),n.finishers=i,n},addElementPlacement:function(e,r,t){var i=r[e.placement];if(!t&&-1!==i.indexOf(e.key))throw new TypeError("Duplicated element ("+e.key+")");i.push(e.key)},decorateElement:function(e,r){for(var t=[],i=[],o=e.decorators,n=o.length-1;n>=0;n--){var s=r[e.placement];s.splice(s.indexOf(e.key),1);var a=this.fromElementDescriptor(e),l=this.toElementFinisherExtras((0,o[n])(a)||a);e=l.element,this.addElementPlacement(e,r),l.finisher&&i.push(l.finisher);var c=l.extras;if(c){for(var p=0;p<c.length;p++)this.addElementPlacement(c[p],r);t.push.apply(t,c)}}return{element:e,finishers:i,extras:t}},decorateConstructor:function(e,r){for(var t=[],i=r.length-1;i>=0;i--){var o=this.fromClassDescriptor(e),n=this.toClassDescriptor((0,r[i])(o)||o);if(void 0!==n.finisher&&t.push(n.finisher),void 0!==n.elements){e=n.elements;for(var s=0;s<e.length-1;s++)for(var a=s+1;a<e.length;a++)if(e[s].key===e[a].key&&e[s].placement===e[a].placement)throw new TypeError("Duplicated element ("+e[s].key+")")}}return{elements:e,finishers:t}},fromElementDescriptor:function(e){var r={kind:e.kind,key:e.key,placement:e.placement,descriptor:e.descriptor};return Object.defineProperty(r,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),"field"===e.kind&&(r.initializer=e.initializer),r},toElementDescriptors:function(e){if(void 0!==e)return toArray(e).map(function(e){var r=this.toElementDescriptor(e);return this.disallowProperty(e,"finisher","An element descriptor"),this.disallowProperty(e,"extras","An element descriptor"),r},this)},toElementDescriptor:function(e){var r=e.kind+"";if("method"!==r&&"field"!==r)throw new TypeError(\'An element descriptor\\\'s .kind property must be either "method" or "field", but a decorator created an element descriptor with .kind "\'+r+\'"\');var t=toPropertyKey(e.key),i=e.placement+"";if("static"!==i&&"prototype"!==i&&"own"!==i)throw new TypeError(\'An element descriptor\\\'s .placement property must be one of "static", "prototype" or "own", but a decorator created an element descriptor with .placement "\'+i+\'"\');var o=e.descriptor;this.disallowProperty(e,"elements","An element descriptor");var n={kind:r,key:t,placement:i,descriptor:Object.assign({},o)};return"field"!==r?this.disallowProperty(e,"initializer","A method descriptor"):(this.disallowProperty(o,"get","The property descriptor of a field descriptor"),this.disallowProperty(o,"set","The property descriptor of a field descriptor"),this.disallowProperty(o,"value","The property descriptor of a field descriptor"),n.initializer=e.initializer),n},toElementFinisherExtras:function(e){return{element:this.toElementDescriptor(e),finisher:_optionalCallableProperty(e,"finisher"),extras:this.toElementDescriptors(e.extras)}},fromClassDescriptor:function(e){var r={kind:"class",elements:e.map(this.fromElementDescriptor,this)};return Object.defineProperty(r,Symbol.toStringTag,{value:"Descriptor",configurable:!0}),r},toClassDescriptor:function(e){var r=e.kind+"";if("class"!==r)throw new TypeError(\'A class descriptor\\\'s .kind property must be "class", but a decorator created a class descriptor with .kind "\'+r+\'"\');this.disallowProperty(e,"key","A class descriptor"),this.disallowProperty(e,"placement","A class descriptor"),this.disallowProperty(e,"descriptor","A class descriptor"),this.disallowProperty(e,"initializer","A class descriptor"),this.disallowProperty(e,"extras","A class descriptor");var t=_optionalCallableProperty(e,"finisher");return{elements:this.toElementDescriptors(e.elements),finisher:t}},runClassFinishers:function(e,r){for(var t=0;t<r.length;t++){var i=(0,r[t])(e);if(void 0!==i){if("function"!=typeof i)throw new TypeError("Finishers must return a constructor.");e=i}}return e},disallowProperty:function(e,r,t){if(void 0!==e[r])throw new TypeError(t+" can\'t have a ."+r+" property.")}};return e}function _createElementDescriptor(e){var r,t=toPropertyKey(e.key);"method"===e.kind?r={value:e.value,writable:!0,configurable:!0,enumerable:!1}:"get"===e.kind?r={get:e.value,configurable:!0,enumerable:!1}:"set"===e.kind?r={set:e.value,configurable:!0,enumerable:!1}:"field"===e.kind&&(r={configurable:!0,writable:!0,enumerable:!0});var i={kind:"field"===e.kind?"field":"method",key:t,placement:e.static?"static":"field"===e.kind?"own":"prototype",descriptor:r};return e.decorators&&(i.decorators=e.decorators),"field"===e.kind&&(i.initializer=e.value),i}function _coalesceGetterSetter(e,r){void 0!==e.descriptor.get?r.descriptor.get=e.descriptor.get:r.descriptor.set=e.descriptor.set}function _coalesceClassElements(e){for(var r=[],isSameElement=function(e){return"method"===e.kind&&e.key===o.key&&e.placement===o.placement},t=0;t<e.length;t++){var i,o=e[t];if("method"===o.kind&&(i=r.find(isSameElement)))if(_isDataDescriptor(o.descriptor)||_isDataDescriptor(i.descriptor)){if(_hasDecorators(o)||_hasDecorators(i))throw new ReferenceError("Duplicated methods ("+o.key+") can\'t be decorated.");i.descriptor=o.descriptor}else{if(_hasDecorators(o)){if(_hasDecorators(i))throw new ReferenceError("Decorators can\'t be placed on different accessors with for the same property ("+o.key+").");i.decorators=o.decorators}_coalesceGetterSetter(o,i)}else r.push(o)}return r}function _hasDecorators(e){return e.decorators&&e.decorators.length}function _isDataDescriptor(e){return void 0!==e&&!(void 0===e.value&&void 0===e.writable)}function _optionalCallableProperty(e,r){var t=e[r];if(void 0!==t&&"function"!=typeof t)throw new TypeError("Expected \'"+r+"\' to be a function");return t}',{globals:["Object","TypeError","Symbol","ReferenceError"],locals:{_decorate:["body.0.id"],_getDecoratorsApi:["body.1.id","body.0.body.body.0.declarations.0.init.callee","body.1.body.body.0.expression.left"],_createElementDescriptor:["body.2.id","body.0.body.body.2.declarations.1.init.arguments.0.arguments.0.arguments.0"],_coalesceGetterSetter:["body.3.id","body.4.body.body.0.body.body.1.consequent.alternate.body.1.expression.callee"],_coalesceClassElements:["body.4.id","body.0.body.body.2.declarations.1.init.arguments.0.callee"],_hasDecorators:["body.5.id","body.1.body.body.1.declarations.0.init.properties.4.value.body.body.1.test.expressions.1.arguments.0.body.body.0.test.argument.callee","body.4.body.body.0.body.body.1.consequent.consequent.body.0.test.left.callee","body.4.body.body.0.body.body.1.consequent.consequent.body.0.test.right.callee","body.4.body.body.0.body.body.1.consequent.alternate.body.0.test.callee","body.4.body.body.0.body.body.1.consequent.alternate.body.0.consequent.body.0.test.callee"],_isDataDescriptor:["body.6.id","body.4.body.body.0.body.body.1.consequent.test.left.callee","body.4.body.body.0.body.body.1.consequent.test.right.callee"],_optionalCallableProperty:["body.7.id","body.1.body.body.1.declarations.0.init.properties.11.value.body.body.0.argument.properties.1.value.callee","body.1.body.body.1.declarations.0.init.properties.13.value.body.body.3.declarations.0.init.callee"]},exportBindingAssignments:[],exportName:"_decorate",dependencies:{toArray:["body.1.body.body.1.declarations.0.init.properties.9.value.body.body.0.consequent.argument.callee.object.callee"],toPropertyKey:["body.1.body.body.1.declarations.0.init.properties.10.value.body.body.2.declarations.0.init.callee","body.2.body.body.0.declarations.1.init.callee"]},internal:!1}),defaults:gj("7.0.0-beta.0","function _defaults(e,r){for(var t=Object.getOwnPropertyNames(r),o=0;o<t.length;o++){var n=t[o],a=Object.getOwnPropertyDescriptor(r,n);a&&a.configurable&&void 0===e[n]&&Object.defineProperty(e,n,a)}return e}",{globals:["Object"],locals:{_defaults:["body.0.id"]},exportBindingAssignments:[],exportName:"_defaults",dependencies:{},internal:!1}),defineAccessor:gj("7.20.7","function _defineAccessor(e,r,n,t){var c={configurable:!0,enumerable:!0};return c[e]=t,Object.defineProperty(r,n,c)}",{globals:["Object"],locals:{_defineAccessor:["body.0.id"]},exportBindingAssignments:[],exportName:"_defineAccessor",dependencies:{},internal:!1}),defineProperty:gj("7.0.0-beta.0","function _defineProperty(e,r,t){return(r=toPropertyKey(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}",{globals:["Object"],locals:{_defineProperty:["body.0.id"]},exportBindingAssignments:[],exportName:"_defineProperty",dependencies:{toPropertyKey:["body.0.body.body.0.argument.expressions.0.test.left.right.callee"]},internal:!1}),extends:gj("7.0.0-beta.0","function _extends(){return _extends=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var r in t)({}).hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},_extends.apply(null,arguments)}",{globals:["Object"],locals:{_extends:["body.0.id","body.0.body.body.0.argument.expressions.1.callee.object","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_extends",dependencies:{},internal:!1}),get:gj("7.0.0-beta.0",'function _get(){return _get="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(e,t,r){var p=superPropBase(e,t);if(p){var n=Object.getOwnPropertyDescriptor(p,t);return n.get?n.get.call(arguments.length<3?e:r):n.value}},_get.apply(null,arguments)}',{globals:["Reflect","Object"],locals:{_get:["body.0.id","body.0.body.body.0.argument.expressions.1.callee.object","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_get",dependencies:{superPropBase:["body.0.body.body.0.argument.expressions.0.right.alternate.body.body.0.declarations.0.init.callee"]},internal:!1}),getPrototypeOf:gj("7.0.0-beta.0","function _getPrototypeOf(t){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},_getPrototypeOf(t)}",{globals:["Object"],locals:{_getPrototypeOf:["body.0.id","body.0.body.body.0.argument.expressions.1.callee","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_getPrototypeOf",dependencies:{},internal:!1}),identity:gj("7.17.0","function _identity(t){return t}",{globals:[],locals:{_identity:["body.0.id"]},exportBindingAssignments:[],exportName:"_identity",dependencies:{},internal:!1}),importDeferProxy:gj("7.23.0","function _importDeferProxy(e){var t=null,constValue=function(e){return function(){return e}},proxy=function(r){return function(n,o,f){return null===t&&(t=e()),r(t,o,f)}};return new Proxy({},{defineProperty:constValue(!1),deleteProperty:constValue(!1),get:proxy(Reflect.get),getOwnPropertyDescriptor:proxy(Reflect.getOwnPropertyDescriptor),getPrototypeOf:constValue(null),isExtensible:constValue(!1),has:proxy(Reflect.has),ownKeys:proxy(Reflect.ownKeys),preventExtensions:constValue(!0),set:constValue(!1),setPrototypeOf:constValue(!1)})}",{globals:["Proxy","Reflect"],locals:{_importDeferProxy:["body.0.id"]},exportBindingAssignments:[],exportName:"_importDeferProxy",dependencies:{},internal:!1}),inherits:gj("7.0.0-beta.0",'function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&setPrototypeOf(t,e)}',{globals:["TypeError","Object"],locals:{_inherits:["body.0.id"]},exportBindingAssignments:[],exportName:"_inherits",dependencies:{setPrototypeOf:["body.0.body.body.1.expression.expressions.2.right.callee"]},internal:!1}),inheritsLoose:gj("7.0.0-beta.0","function _inheritsLoose(t,o){t.prototype=Object.create(o.prototype),t.prototype.constructor=t,setPrototypeOf(t,o)}",{globals:["Object"],locals:{_inheritsLoose:["body.0.id"]},exportBindingAssignments:[],exportName:"_inheritsLoose",dependencies:{setPrototypeOf:["body.0.body.body.0.expression.expressions.2.callee"]},internal:!1}),initializerDefineProperty:gj("7.0.0-beta.0","function _initializerDefineProperty(e,i,r,l){r&&Object.defineProperty(e,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(l):void 0})}",{globals:["Object"],locals:{_initializerDefineProperty:["body.0.id"]},exportBindingAssignments:[],exportName:"_initializerDefineProperty",dependencies:{},internal:!1}),initializerWarningHelper:gj("7.0.0-beta.0",'function _initializerWarningHelper(r,e){throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform.")}',{globals:["Error"],locals:{_initializerWarningHelper:["body.0.id"]},exportBindingAssignments:[],exportName:"_initializerWarningHelper",dependencies:{},internal:!1}),instanceof:gj("7.0.0-beta.0",'function _instanceof(n,e){return null!=e&&"undefined"!=typeof Symbol&&e[Symbol.hasInstance]?!!e[Symbol.hasInstance](n):n instanceof e}',{globals:["Symbol"],locals:{_instanceof:["body.0.id"]},exportBindingAssignments:[],exportName:"_instanceof",dependencies:{},internal:!1}),interopRequireDefault:gj("7.0.0-beta.0","function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}",{globals:[],locals:{_interopRequireDefault:["body.0.id"]},exportBindingAssignments:[],exportName:"_interopRequireDefault",dependencies:{},internal:!1}),interopRequireWildcard:gj("7.14.0",'function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f)}for(const t in e)"default"!==t&&{}.hasOwnProperty.call(e,t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,t))&&(i.get||i.set)?o(f,t,i):f[t]=e[t]);return f})(e,t)}',{globals:["WeakMap","Object"],locals:{_interopRequireWildcard:["body.0.id","body.0.body.body.1.argument.callee.left"]},exportBindingAssignments:["body.0.body.body.1.argument.callee"],exportName:"_interopRequireWildcard",dependencies:{},internal:!1}),isNativeFunction:gj("7.0.0-beta.0",'function _isNativeFunction(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(n){return"function"==typeof t}}',{globals:["Function"],locals:{_isNativeFunction:["body.0.id"]},exportBindingAssignments:[],exportName:"_isNativeFunction",dependencies:{},internal:!1}),isNativeReflectConstruct:gj("7.9.0","function _isNativeReflectConstruct(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(_isNativeReflectConstruct=function(){return!!t})()}",{globals:["Boolean","Reflect"],locals:{_isNativeReflectConstruct:["body.0.id","body.0.body.body.1.argument.callee.left"]},exportBindingAssignments:["body.0.body.body.1.argument.callee"],exportName:"_isNativeReflectConstruct",dependencies:{},internal:!1}),iterableToArray:gj("7.0.0-beta.0",'function _iterableToArray(r){if("undefined"!=typeof Symbol&&null!=r[Symbol.iterator]||null!=r["@@iterator"])return Array.from(r)}',{globals:["Symbol","Array"],locals:{_iterableToArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_iterableToArray",dependencies:{},internal:!1}),iterableToArrayLimit:gj("7.0.0-beta.0",'function _iterableToArrayLimit(r,l){var t=null==r?null:"undefined"!=typeof Symbol&&r[Symbol.iterator]||r["@@iterator"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}',{globals:["Symbol","Object"],locals:{_iterableToArrayLimit:["body.0.id"]},exportBindingAssignments:[],exportName:"_iterableToArrayLimit",dependencies:{},internal:!1}),jsx:gj("7.0.0-beta.0",'var REACT_ELEMENT_TYPE;function _createRawReactElement(e,r,E,l){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103);var o=e&&e.defaultProps,n=arguments.length-3;if(r||0===n||(r={children:void 0}),1===n)r.children=l;else if(n>1){for(var t=Array(n),f=0;f<n;f++)t[f]=arguments[f+3];r.children=t}if(r&&o)for(var i in o)void 0===r[i]&&(r[i]=o[i]);else r||(r=o||{});return{$$typeof:REACT_ELEMENT_TYPE,type:e,key:void 0===E?null:""+E,ref:null,props:r,_owner:null}}',{globals:["Symbol","Array"],locals:{REACT_ELEMENT_TYPE:["body.0.declarations.0.id","body.1.body.body.0.expression.left","body.1.body.body.4.argument.properties.0.value","body.1.body.body.0.expression.right.left"],_createRawReactElement:["body.1.id"]},exportBindingAssignments:[],exportName:"_createRawReactElement",dependencies:{},internal:!1}),maybeArrayLike:gj("7.9.0",'function _maybeArrayLike(r,a,e){if(a&&!Array.isArray(a)&&"number"==typeof a.length){var y=a.length;return arrayLikeToArray(a,void 0!==e&&e<y?e:y)}return r(a,e)}',{globals:["Array"],locals:{_maybeArrayLike:["body.0.id"]},exportBindingAssignments:[],exportName:"_maybeArrayLike",dependencies:{arrayLikeToArray:["body.0.body.body.0.consequent.body.1.argument.callee"]},internal:!1}),newArrowCheck:gj("7.0.0-beta.0",'function _newArrowCheck(n,r){if(n!==r)throw new TypeError("Cannot instantiate an arrow function")}',{globals:["TypeError"],locals:{_newArrowCheck:["body.0.id"]},exportBindingAssignments:[],exportName:"_newArrowCheck",dependencies:{},internal:!1}),nonIterableRest:gj("7.0.0-beta.0",'function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}',{globals:["TypeError"],locals:{_nonIterableRest:["body.0.id"]},exportBindingAssignments:[],exportName:"_nonIterableRest",dependencies:{},internal:!1}),nonIterableSpread:gj("7.0.0-beta.0",'function _nonIterableSpread(){throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}',{globals:["TypeError"],locals:{_nonIterableSpread:["body.0.id"]},exportBindingAssignments:[],exportName:"_nonIterableSpread",dependencies:{},internal:!1}),nullishReceiverError:gj("7.22.6",'function _nullishReceiverError(r){throw new TypeError("Cannot set property of null or undefined.")}',{globals:["TypeError"],locals:{_nullishReceiverError:["body.0.id"]},exportBindingAssignments:[],exportName:"_nullishReceiverError",dependencies:{},internal:!1}),objectDestructuringEmpty:gj("7.0.0-beta.0",'function _objectDestructuringEmpty(t){if(null==t)throw new TypeError("Cannot destructure "+t)}',{globals:["TypeError"],locals:{_objectDestructuringEmpty:["body.0.id"]},exportBindingAssignments:[],exportName:"_objectDestructuringEmpty",dependencies:{},internal:!1}),objectSpread2:gj("7.5.0","function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),t.push.apply(t,o)}return t}function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach(function(r){defineProperty(e,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))})}return e}",{globals:["Object"],locals:{ownKeys:["body.0.id","body.1.body.body.0.body.body.1.expression.consequent.callee.object.callee","body.1.body.body.0.body.body.1.expression.alternate.alternate.callee.object.callee"],_objectSpread2:["body.1.id"]},exportBindingAssignments:[],exportName:"_objectSpread2",dependencies:{defineProperty:["body.1.body.body.0.body.body.1.expression.consequent.arguments.0.body.body.0.expression.callee"]},internal:!1}),objectWithoutProperties:gj("7.0.0-beta.0","function _objectWithoutProperties(e,t){if(null==e)return{};var o,r,i=objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);for(r=0;r<n.length;r++)o=n[r],-1===t.indexOf(o)&&{}.propertyIsEnumerable.call(e,o)&&(i[o]=e[o])}return i}",{globals:["Object"],locals:{_objectWithoutProperties:["body.0.id"]},exportBindingAssignments:[],exportName:"_objectWithoutProperties",dependencies:{objectWithoutPropertiesLoose:["body.0.body.body.1.declarations.2.init.callee"]},internal:!1}),objectWithoutPropertiesLoose:gj("7.0.0-beta.0","function _objectWithoutPropertiesLoose(r,e){if(null==r)return{};var t={};for(var n in r)if({}.hasOwnProperty.call(r,n)){if(-1!==e.indexOf(n))continue;t[n]=r[n]}return t}",{globals:[],locals:{_objectWithoutPropertiesLoose:["body.0.id"]},exportBindingAssignments:[],exportName:"_objectWithoutPropertiesLoose",dependencies:{},internal:!1}),possibleConstructorReturn:gj("7.0.0-beta.0",'function _possibleConstructorReturn(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return assertThisInitialized(t)}',{globals:["TypeError"],locals:{_possibleConstructorReturn:["body.0.id"]},exportBindingAssignments:[],exportName:"_possibleConstructorReturn",dependencies:{assertThisInitialized:["body.0.body.body.2.argument.callee"]},internal:!1}),readOnlyError:gj("7.0.0-beta.0","function _readOnlyError(r){throw new TypeError('\"'+r+'\" is read-only')}",{globals:["TypeError"],locals:{_readOnlyError:["body.0.id"]},exportBindingAssignments:[],exportName:"_readOnlyError",dependencies:{},internal:!1}),regenerator:gj("7.27.0",'function _regenerator(){\n/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\nvar e,t,r="function"==typeof Symbol?Symbol:{},n=r.iterator||"@@iterator",o=r.toStringTag||"@@toStringTag";function i(r,n,o,i){var c=n&&n.prototype instanceof Generator?n:Generator,u=Object.create(c.prototype);return define(u,"_invoke",function(r,n,o){var i,c,u,f=0,p=o||[],y=!1,G={p:0,n:0,v:e,a:d,f:d.bind(e,4),d:function(t,r){return i=t,c=0,u=e,G.n=r,a}};function d(r,n){for(c=r,u=n,t=0;!y&&f&&!o&&t<p.length;t++){var o,i=p[t],d=G.p,l=i[2];r>3?(o=l===n)&&(u=i[(c=i[4])?5:(c=3,3)],i[4]=i[5]=e):i[0]<=d&&((o=r<2&&d<i[1])?(c=0,G.v=n,G.n=i[1]):d<l&&(o=r<3||i[0]>n||n>l)&&(i[4]=r,i[5]=n,G.n=l,c=0))}if(o||r>1)return a;throw y=!0,n}return function(o,p,l){if(f>1)throw TypeError("Generator is already running");for(y&&1===p&&d(p,l),c=p,u=l;(t=c<2?e:u)||!y;){i||(c?c<3?(c>1&&(G.n=-1),d(c,u)):G.n=u:G.v=u);try{if(f=2,i){if(c||(o="next"),t=i[o]){if(!(t=t.call(i,u)))throw TypeError("iterator result is not an object");if(!t.done)return t;u=t.value,c<2&&(c=0)}else 1===c&&(t=i.return)&&t.call(i),c<2&&(u=TypeError("The iterator does not provide a \'"+o+"\' method"),c=1);i=e}else if((t=(y=G.n<0)?u:r.call(n,G))!==a)break}catch(t){i=e,c=1,u=t}finally{f=1}}return{value:t,done:y}}}(r,o,i),!0),u}var a={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}t=Object.getPrototypeOf;var c=[][n]?t(t([][n]())):(define(t={},n,function(){return this}),t),u=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(c);function f(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,GeneratorFunctionPrototype):(e.__proto__=GeneratorFunctionPrototype,define(e,o,"GeneratorFunction")),e.prototype=Object.create(u),e}return GeneratorFunction.prototype=GeneratorFunctionPrototype,define(u,"constructor",GeneratorFunctionPrototype),define(GeneratorFunctionPrototype,"constructor",GeneratorFunction),GeneratorFunction.displayName="GeneratorFunction",define(GeneratorFunctionPrototype,o,"GeneratorFunction"),define(u),define(u,o,"Generator"),define(u,n,function(){return this}),define(u,"toString",function(){return"[object Generator]"}),(_regenerator=function(){return{w:i,m:f}})()}',{globals:["Symbol","Object","TypeError"],locals:{_regenerator:["body.0.id","body.0.body.body.9.argument.expressions.9.callee.left"]},exportBindingAssignments:["body.0.body.body.9.argument.expressions.9.callee"],exportName:"_regenerator",dependencies:{regeneratorDefine:["body.0.body.body.1.body.body.1.argument.expressions.0.callee","body.0.body.body.7.declarations.0.init.alternate.expressions.0.callee","body.0.body.body.8.body.body.0.argument.expressions.0.alternate.expressions.1.callee","body.0.body.body.9.argument.expressions.1.callee","body.0.body.body.9.argument.expressions.2.callee","body.0.body.body.9.argument.expressions.4.callee","body.0.body.body.9.argument.expressions.5.callee","body.0.body.body.9.argument.expressions.6.callee","body.0.body.body.9.argument.expressions.7.callee","body.0.body.body.9.argument.expressions.8.callee"]},internal:!1}),regeneratorAsync:gj("7.27.0","function _regeneratorAsync(n,e,r,t,o){var a=asyncGen(n,e,r,t,o);return a.next().then(function(n){return n.done?n.value:a.next()})}",{globals:[],locals:{_regeneratorAsync:["body.0.id"]},exportBindingAssignments:[],exportName:"_regeneratorAsync",dependencies:{regeneratorAsyncGen:["body.0.body.body.0.declarations.0.init.callee"]},internal:!1}),regeneratorAsyncGen:gj("7.27.0","function _regeneratorAsyncGen(r,e,t,o,n){return new regeneratorAsyncIterator(regenerator().w(r,e,t,o),n||Promise)}",{globals:["Promise"],locals:{_regeneratorAsyncGen:["body.0.id"]},exportBindingAssignments:[],exportName:"_regeneratorAsyncGen",dependencies:{regenerator:["body.0.body.body.0.argument.arguments.0.callee.object.callee"],regeneratorAsyncIterator:["body.0.body.body.0.argument.callee"]},internal:!1}),regeneratorAsyncIterator:gj("7.27.0",'function AsyncIterator(t,e){function n(r,o,i,f){try{var c=t[r](o),u=c.value;return u instanceof OverloadYield?e.resolve(u.v).then(function(t){n("next",t,i,f)},function(t){n("throw",t,i,f)}):e.resolve(u).then(function(t){c.value=t,i(c)},function(t){return n("throw",t,i,f)})}catch(t){f(t)}}var r;this.next||(define(AsyncIterator.prototype),define(AsyncIterator.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),define(this,"_invoke",function(t,o,i){function f(){return new e(function(e,r){n(t,i,e,r)})}return r=r?r.then(f,f):f()},!0)}',{globals:["Symbol"],locals:{AsyncIterator:["body.0.id","body.0.body.body.2.expression.expressions.0.right.expressions.0.arguments.0.object","body.0.body.body.2.expression.expressions.0.right.expressions.1.arguments.0.object"]},exportBindingAssignments:[],exportName:"AsyncIterator",dependencies:{OverloadYield:["body.0.body.body.0.body.body.0.block.body.1.argument.test.right"],regeneratorDefine:["body.0.body.body.2.expression.expressions.0.right.expressions.0.callee","body.0.body.body.2.expression.expressions.0.right.expressions.1.callee","body.0.body.body.2.expression.expressions.1.callee"]},internal:!0}),regeneratorDefine:gj("7.27.0",'function regeneratorDefine(e,r,n,t){var i=Object.defineProperty;try{i({},"",{})}catch(e){i=0}regeneratorDefine=function(e,r,n,t){function o(r,n){regeneratorDefine(e,r,function(e){return this._invoke(r,n,e)})}r?i?i(e,r,{value:n,enumerable:!t,configurable:!t,writable:!t}):e[r]=n:(o("next",0),o("throw",1),o("return",2))},regeneratorDefine(e,r,n,t)}',{globals:["Object"],locals:{regeneratorDefine:["body.0.id","body.0.body.body.2.expression.expressions.0.right.body.body.0.body.body.0.expression.callee","body.0.body.body.2.expression.expressions.1.callee","body.0.body.body.2.expression.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.2.expression.expressions.0"],exportName:"regeneratorDefine",dependencies:{},internal:!0}),regeneratorKeys:gj("7.27.0","function _regeneratorKeys(e){var n=Object(e),r=[];for(var t in n)r.unshift(t);return function e(){for(;r.length;)if((t=r.pop())in n)return e.value=t,e.done=!1,e;return e.done=!0,e}}",{globals:["Object"],locals:{_regeneratorKeys:["body.0.id"]},exportBindingAssignments:[],exportName:"_regeneratorKeys",dependencies:{},internal:!1}),regeneratorValues:gj("7.18.0",'function _regeneratorValues(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(typeof e+" is not iterable")}',{globals:["Symbol","isNaN","TypeError"],locals:{_regeneratorValues:["body.0.id"]},exportBindingAssignments:[],exportName:"_regeneratorValues",dependencies:{},internal:!1}),set:gj("7.0.0-beta.0",'function set(e,r,t,o){return set="undefined"!=typeof Reflect&&Reflect.set?Reflect.set:function(e,r,t,o){var f,i=superPropBase(e,r);if(i){if((f=Object.getOwnPropertyDescriptor(i,r)).set)return f.set.call(o,t),!0;if(!f.writable)return!1}if(f=Object.getOwnPropertyDescriptor(o,r)){if(!f.writable)return!1;f.value=t,Object.defineProperty(o,r,f)}else defineProperty(o,r,t);return!0},set(e,r,t,o)}function _set(e,r,t,o,f){if(!set(e,r,t,o||e)&&f)throw new TypeError("failed to set property");return t}',{globals:["Reflect","Object","TypeError"],locals:{set:["body.0.id","body.0.body.body.0.argument.expressions.1.callee","body.1.body.body.0.test.left.argument.callee","body.0.body.body.0.argument.expressions.0.left"],_set:["body.1.id"]},exportBindingAssignments:[],exportName:"_set",dependencies:{superPropBase:["body.0.body.body.0.argument.expressions.0.right.alternate.body.body.0.declarations.1.init.callee"],defineProperty:["body.0.body.body.0.argument.expressions.0.right.alternate.body.body.2.alternate.expression.callee"]},internal:!1}),setFunctionName:gj("7.23.6",'function setFunctionName(e,t,n){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch(e){}return e}',{globals:["Object"],locals:{setFunctionName:["body.0.id"]},exportBindingAssignments:[],exportName:"setFunctionName",dependencies:{},internal:!1}),setPrototypeOf:gj("7.0.0-beta.0","function _setPrototypeOf(t,e){return _setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},_setPrototypeOf(t,e)}",{globals:["Object"],locals:{_setPrototypeOf:["body.0.id","body.0.body.body.0.argument.expressions.1.callee","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_setPrototypeOf",dependencies:{},internal:!1}),skipFirstGeneratorNext:gj("7.0.0-beta.0","function _skipFirstGeneratorNext(t){return function(){var r=t.apply(this,arguments);return r.next(),r}}",{globals:[],locals:{_skipFirstGeneratorNext:["body.0.id"]},exportBindingAssignments:[],exportName:"_skipFirstGeneratorNext",dependencies:{},internal:!1}),slicedToArray:gj("7.0.0-beta.0","function _slicedToArray(r,e){return arrayWithHoles(r)||iterableToArrayLimit(r,e)||unsupportedIterableToArray(r,e)||nonIterableRest()}",{globals:[],locals:{_slicedToArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_slicedToArray",dependencies:{arrayWithHoles:["body.0.body.body.0.argument.left.left.left.callee"],iterableToArrayLimit:["body.0.body.body.0.argument.left.left.right.callee"],unsupportedIterableToArray:["body.0.body.body.0.argument.left.right.callee"],nonIterableRest:["body.0.body.body.0.argument.right.callee"]},internal:!1}),superPropBase:gj("7.0.0-beta.0","function _superPropBase(t,o){for(;!{}.hasOwnProperty.call(t,o)&&null!==(t=getPrototypeOf(t)););return t}",{globals:[],locals:{_superPropBase:["body.0.id"]},exportBindingAssignments:[],exportName:"_superPropBase",dependencies:{getPrototypeOf:["body.0.body.body.0.test.right.right.right.callee"]},internal:!1}),superPropGet:gj("7.25.0",'function _superPropGet(t,o,e,r){var p=get(getPrototypeOf(1&r?t.prototype:t),o,e);return 2&r&&"function"==typeof p?function(t){return p.apply(e,t)}:p}',{globals:[],locals:{_superPropGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_superPropGet",dependencies:{get:["body.0.body.body.0.declarations.0.init.callee"],getPrototypeOf:["body.0.body.body.0.declarations.0.init.arguments.0.callee"]},internal:!1}),superPropSet:gj("7.25.0","function _superPropSet(t,e,o,r,p,f){return set(getPrototypeOf(f?t.prototype:t),e,o,r,p)}",{globals:[],locals:{_superPropSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_superPropSet",dependencies:{set:["body.0.body.body.0.argument.callee"],getPrototypeOf:["body.0.body.body.0.argument.arguments.0.callee"]},internal:!1}),taggedTemplateLiteral:gj("7.0.0-beta.0","function _taggedTemplateLiteral(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}",{globals:["Object"],locals:{_taggedTemplateLiteral:["body.0.id"]},exportBindingAssignments:[],exportName:"_taggedTemplateLiteral",dependencies:{},internal:!1}),taggedTemplateLiteralLoose:gj("7.0.0-beta.0","function _taggedTemplateLiteralLoose(e,t){return t||(t=e.slice(0)),e.raw=t,e}",{globals:[],locals:{_taggedTemplateLiteralLoose:["body.0.id"]},exportBindingAssignments:[],exportName:"_taggedTemplateLiteralLoose",dependencies:{},internal:!1}),tdz:gj("7.5.5",'function _tdzError(e){throw new ReferenceError(e+" is not defined - temporal dead zone")}',{globals:["ReferenceError"],locals:{_tdzError:["body.0.id"]},exportBindingAssignments:[],exportName:"_tdzError",dependencies:{},internal:!1}),temporalRef:gj("7.0.0-beta.0","function _temporalRef(r,e){return r===undef?err(e):r}",{globals:[],locals:{_temporalRef:["body.0.id"]},exportBindingAssignments:[],exportName:"_temporalRef",dependencies:{temporalUndefined:["body.0.body.body.0.argument.test.right"],tdz:["body.0.body.body.0.argument.consequent.callee"]},internal:!1}),temporalUndefined:gj("7.0.0-beta.0","function _temporalUndefined(){}",{globals:[],locals:{_temporalUndefined:["body.0.id"]},exportBindingAssignments:[],exportName:"_temporalUndefined",dependencies:{},internal:!1}),toArray:gj("7.0.0-beta.0","function _toArray(r){return arrayWithHoles(r)||iterableToArray(r)||unsupportedIterableToArray(r)||nonIterableRest()}",{globals:[],locals:{_toArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_toArray",dependencies:{arrayWithHoles:["body.0.body.body.0.argument.left.left.left.callee"],iterableToArray:["body.0.body.body.0.argument.left.left.right.callee"],unsupportedIterableToArray:["body.0.body.body.0.argument.left.right.callee"],nonIterableRest:["body.0.body.body.0.argument.right.callee"]},internal:!1}),toConsumableArray:gj("7.0.0-beta.0","function _toConsumableArray(r){return arrayWithoutHoles(r)||iterableToArray(r)||unsupportedIterableToArray(r)||nonIterableSpread()}",{globals:[],locals:{_toConsumableArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_toConsumableArray",dependencies:{arrayWithoutHoles:["body.0.body.body.0.argument.left.left.left.callee"],iterableToArray:["body.0.body.body.0.argument.left.left.right.callee"],unsupportedIterableToArray:["body.0.body.body.0.argument.left.right.callee"],nonIterableSpread:["body.0.body.body.0.argument.right.callee"]},internal:!1}),toPrimitive:gj("7.1.5",'function toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}',{globals:["Symbol","TypeError","String","Number"],locals:{toPrimitive:["body.0.id"]},exportBindingAssignments:[],exportName:"toPrimitive",dependencies:{},internal:!1}),toPropertyKey:gj("7.1.5",'function toPropertyKey(t){var i=toPrimitive(t,"string");return"symbol"==typeof i?i:i+""}',{globals:[],locals:{toPropertyKey:["body.0.id"]},exportBindingAssignments:[],exportName:"toPropertyKey",dependencies:{toPrimitive:["body.0.body.body.0.declarations.0.init.callee"]},internal:!1}),toSetter:gj("7.24.0",'function _toSetter(t,e,n){e||(e=[]);var r=e.length++;return Object.defineProperty({},"_",{set:function(o){e[r]=o,t.apply(n,e)}})}',{globals:["Object"],locals:{_toSetter:["body.0.id"]},exportBindingAssignments:[],exportName:"_toSetter",dependencies:{},internal:!1}),tsRewriteRelativeImportExtensions:gj("7.27.0",'function tsRewriteRelativeImportExtensions(t,e){return"string"==typeof t&&/^\\.\\.?\\//.test(t)?t.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+)?)\\.([cm]?)ts$/i,function(t,s,r,n,o){return s?e?".jsx":".js":!r||n&&o?r+n+"."+o.toLowerCase()+"js":t}):t}',{globals:[],locals:{tsRewriteRelativeImportExtensions:["body.0.id"]},exportBindingAssignments:[],exportName:"tsRewriteRelativeImportExtensions",dependencies:{},internal:!1}),typeof:gj("7.0.0-beta.0",'function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}',{globals:["Symbol"],locals:{_typeof:["body.0.id","body.0.body.body.0.argument.expressions.1.callee","body.0.body.body.0.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.0.argument.expressions.0"],exportName:"_typeof",dependencies:{},internal:!1}),unsupportedIterableToArray:gj("7.9.0",'function _unsupportedIterableToArray(r,a){if(r){if("string"==typeof r)return arrayLikeToArray(r,a);var t={}.toString.call(r).slice(8,-1);return"Object"===t&&r.constructor&&(t=r.constructor.name),"Map"===t||"Set"===t?Array.from(r):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?arrayLikeToArray(r,a):void 0}}',{globals:["Array"],locals:{_unsupportedIterableToArray:["body.0.id"]},exportBindingAssignments:[],exportName:"_unsupportedIterableToArray",dependencies:{arrayLikeToArray:["body.0.body.body.0.consequent.body.0.consequent.argument.callee","body.0.body.body.0.consequent.body.2.argument.expressions.1.alternate.consequent.callee"]},internal:!1}),usingCtx:gj("7.23.9",'function _usingCtx(){var r="function"==typeof SuppressedError?SuppressedError:function(r,e){var n=Error();return n.name="SuppressedError",n.error=r,n.suppressed=e,n},e={},n=[];function using(r,e){if(null!=e){if(Object(e)!==e)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(r)var o=e[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(void 0===o&&(o=e[Symbol.dispose||Symbol.for("Symbol.dispose")],r))var t=o;if("function"!=typeof o)throw new TypeError("Object is not disposable.");t&&(o=function(){try{t.call(e)}catch(r){return Promise.reject(r)}}),n.push({v:e,d:o,a:r})}else r&&n.push({d:e,a:r});return e}return{e:e,u:using.bind(null,!1),a:using.bind(null,!0),d:function(){var o,t=this.e,s=0;function next(){for(;o=n.pop();)try{if(!o.a&&1===s)return s=0,n.push(o),Promise.resolve().then(next);if(o.d){var r=o.d.call(o.v);if(o.a)return s|=2,Promise.resolve(r).then(next,err)}else s|=1}catch(r){return err(r)}if(1===s)return t!==e?Promise.reject(t):Promise.resolve();if(t!==e)throw t}function err(n){return t=t!==e?new r(n,t):n,next()}return next()}}}',{globals:["SuppressedError","Error","Object","TypeError","Symbol","Promise"],locals:{_usingCtx:["body.0.id"]},exportBindingAssignments:[],exportName:"_usingCtx",dependencies:{},internal:!1}),wrapAsyncGenerator:gj("7.0.0-beta.0",'function _wrapAsyncGenerator(e){return function(){return new AsyncGenerator(e.apply(this,arguments))}}function AsyncGenerator(e){var r,t;function resume(r,t){try{var n=e[r](t),o=n.value,u=o instanceof OverloadYield;Promise.resolve(u?o.v:o).then(function(t){if(u){var i="return"===r?"return":"next";if(!o.k||t.done)return resume(i,t);t=e[i](t).value}settle(n.done?"return":"normal",t)},function(e){resume("throw",e)})}catch(e){settle("throw",e)}}function settle(e,n){switch(e){case"return":r.resolve({value:n,done:!0});break;case"throw":r.reject(n);break;default:r.resolve({value:n,done:!1})}(r=r.next)?resume(r.key,r.arg):t=null}this._invoke=function(e,n){return new Promise(function(o,u){var i={key:e,arg:n,resolve:o,reject:u,next:null};t?t=t.next=i:(r=t=i,resume(e,n))})},"function"!=typeof e.return&&(this.return=void 0)}AsyncGenerator.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},AsyncGenerator.prototype.next=function(e){return this._invoke("next",e)},AsyncGenerator.prototype.throw=function(e){return this._invoke("throw",e)},AsyncGenerator.prototype.return=function(e){return this._invoke("return",e)};',{globals:["Promise","Symbol"],locals:{_wrapAsyncGenerator:["body.0.id"],AsyncGenerator:["body.1.id","body.0.body.body.0.argument.body.body.0.argument.callee","body.2.expression.expressions.0.left.object.object","body.2.expression.expressions.1.left.object.object","body.2.expression.expressions.2.left.object.object","body.2.expression.expressions.3.left.object.object"]},exportBindingAssignments:[],exportName:"_wrapAsyncGenerator",dependencies:{OverloadYield:["body.1.body.body.1.body.body.0.block.body.0.declarations.2.init.right"]},internal:!1}),wrapNativeSuper:gj("7.0.0-beta.0",'function _wrapNativeSuper(t){var r="function"==typeof Map?new Map:void 0;return _wrapNativeSuper=function(t){if(null===t||!isNativeFunction(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==r){if(r.has(t))return r.get(t);r.set(t,Wrapper)}function Wrapper(){return construct(t,arguments,getPrototypeOf(this).constructor)}return Wrapper.prototype=Object.create(t.prototype,{constructor:{value:Wrapper,enumerable:!1,writable:!0,configurable:!0}}),setPrototypeOf(Wrapper,t)},_wrapNativeSuper(t)}',{globals:["Map","TypeError","Object"],locals:{_wrapNativeSuper:["body.0.id","body.0.body.body.1.argument.expressions.1.callee","body.0.body.body.1.argument.expressions.0.left"]},exportBindingAssignments:["body.0.body.body.1.argument.expressions.0"],exportName:"_wrapNativeSuper",dependencies:{getPrototypeOf:["body.0.body.body.1.argument.expressions.0.right.body.body.3.body.body.0.argument.arguments.2.object.callee"],setPrototypeOf:["body.0.body.body.1.argument.expressions.0.right.body.body.4.argument.expressions.1.callee"],isNativeFunction:["body.0.body.body.1.argument.expressions.0.right.body.body.0.test.right.argument.callee"],construct:["body.0.body.body.1.argument.expressions.0.right.body.body.3.body.body.0.argument.callee"]},internal:!1}),wrapRegExp:gj("7.19.0",'function _wrapRegExp(){_wrapRegExp=function(e,r){return new BabelRegExp(e,void 0,r)};var e=RegExp.prototype,r=new WeakMap;function BabelRegExp(e,t,p){var o=RegExp(e,t);return r.set(o,p||r.get(e)),setPrototypeOf(o,BabelRegExp.prototype)}function buildGroups(e,t){var p=r.get(t);return Object.keys(p).reduce(function(r,t){var o=p[t];if("number"==typeof o)r[t]=e[o];else{for(var i=0;void 0===e[o[i]]&&i+1<o.length;)i++;r[t]=e[o[i]]}return r},Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(r){var t=e.exec.call(this,r);if(t){t.groups=buildGroups(t,this);var p=t.indices;p&&(p.groups=buildGroups(p,this))}return t},BabelRegExp.prototype[Symbol.replace]=function(t,p){if("string"==typeof p){var o=r.get(this);return e[Symbol.replace].call(this,t,p.replace(/\\$<([^>]+)(>|$)/g,function(e,r,t){if(""===t)return e;var p=o[r];return Array.isArray(p)?"$"+p.join("$"):"number"==typeof p?"$"+p:""}))}if("function"==typeof p){var i=this;return e[Symbol.replace].call(this,t,function(){var e=arguments;return"object"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(buildGroups(e,i)),p.apply(this,e)})}return e[Symbol.replace].call(this,t,p)},_wrapRegExp.apply(this,arguments)}',{globals:["RegExp","WeakMap","Object","Symbol","Array"],locals:{_wrapRegExp:["body.0.id","body.0.body.body.4.argument.expressions.3.callee.object","body.0.body.body.0.expression.left"]},exportBindingAssignments:["body.0.body.body.0.expression"],exportName:"_wrapRegExp",dependencies:{setPrototypeOf:["body.0.body.body.2.body.body.1.argument.expressions.1.callee"],inherits:["body.0.body.body.4.argument.expressions.0.callee"]},internal:!1}),writeOnlyError:gj("7.12.13","function _writeOnlyError(r){throw new TypeError('\"'+r+'\" is write-only')}",{globals:["TypeError"],locals:{_writeOnlyError:["body.0.id"]},exportBindingAssignments:[],exportName:"_writeOnlyError",dependencies:{},internal:!1})};Object.assign(mj,{AwaitValue:gj("7.0.0-beta.0","function _AwaitValue(t){this.wrapped=t}",{globals:[],locals:{_AwaitValue:["body.0.id"]},exportBindingAssignments:[],exportName:"_AwaitValue",dependencies:{},internal:!1}),applyDecs:gj("7.17.8",'function old_createMetadataMethodsForProperty(e,t,a,r){return{getMetadata:function(o){old_assertNotFinished(r,"getMetadata"),old_assertMetadataKey(o);var i=e[o];if(void 0!==i)if(1===t){var n=i.public;if(void 0!==n)return n[a]}else if(2===t){var l=i.private;if(void 0!==l)return l.get(a)}else if(Object.hasOwnProperty.call(i,"constructor"))return i.constructor},setMetadata:function(o,i){old_assertNotFinished(r,"setMetadata"),old_assertMetadataKey(o);var n=e[o];if(void 0===n&&(n=e[o]={}),1===t){var l=n.public;void 0===l&&(l=n.public={}),l[a]=i}else if(2===t){var s=n.priv;void 0===s&&(s=n.private=new Map),s.set(a,i)}else n.constructor=i}}}function old_convertMetadataMapToFinal(e,t){var a=e[Symbol.metadata||Symbol.for("Symbol.metadata")],r=Object.getOwnPropertySymbols(t);if(0!==r.length){for(var o=0;o<r.length;o++){var i=r[o],n=t[i],l=a?a[i]:null,s=n.public,c=l?l.public:null;s&&c&&Object.setPrototypeOf(s,c);var d=n.private;if(d){var u=Array.from(d.values()),f=l?l.private:null;f&&(u=u.concat(f)),n.private=u}l&&Object.setPrototypeOf(n,l)}a&&Object.setPrototypeOf(t,a),e[Symbol.metadata||Symbol.for("Symbol.metadata")]=t}}function old_createAddInitializerMethod(e,t){return function(a){old_assertNotFinished(t,"addInitializer"),old_assertCallable(a,"An initializer"),e.push(a)}}function old_memberDec(e,t,a,r,o,i,n,l,s){var c;switch(i){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var d,u,f={kind:c,name:l?"#"+t:toPropertyKey(t),isStatic:n,isPrivate:l},p={v:!1};if(0!==i&&(f.addInitializer=old_createAddInitializerMethod(o,p)),l){d=2,u=Symbol(t);var v={};0===i?(v.get=a.get,v.set=a.set):2===i?v.get=function(){return a.value}:(1!==i&&3!==i||(v.get=function(){return a.get.call(this)}),1!==i&&4!==i||(v.set=function(e){a.set.call(this,e)})),f.access=v}else d=1,u=t;try{return e(s,Object.assign(f,old_createMetadataMethodsForProperty(r,d,u,p)))}finally{p.v=!0}}function old_assertNotFinished(e,t){if(e.v)throw Error("attempted to call "+t+" after decoration was finished")}function old_assertMetadataKey(e){if("symbol"!=typeof e)throw new TypeError("Metadata keys must be symbols, received: "+e)}function old_assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function old_assertValidReturnValue(e,t){var a=typeof t;if(1===e){if("object"!==a||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&old_assertCallable(t.get,"accessor.get"),void 0!==t.set&&old_assertCallable(t.set,"accessor.set"),void 0!==t.init&&old_assertCallable(t.init,"accessor.init"),void 0!==t.initializer&&old_assertCallable(t.initializer,"accessor.initializer")}else if("function"!==a)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function old_getInit(e){var t;return null==(t=e.init)&&(t=e.initializer)&&void 0!==console&&console.warn(".initializer has been renamed to .init as of March 2022"),t}function old_applyMemberDec(e,t,a,r,o,i,n,l,s){var c,d,u,f,p,v,y,h=a[0];if(n?(0===o||1===o?(c={get:a[3],set:a[4]},u="get"):3===o?(c={get:a[3]},u="get"):4===o?(c={set:a[3]},u="set"):c={value:a[3]},0!==o&&(1===o&&setFunctionName(a[4],"#"+r,"set"),setFunctionName(a[3],"#"+r,u))):0!==o&&(c=Object.getOwnPropertyDescriptor(t,r)),1===o?f={get:c.get,set:c.set}:2===o?f=c.value:3===o?f=c.get:4===o&&(f=c.set),"function"==typeof h)void 0!==(p=old_memberDec(h,r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?d=p:1===o?(d=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p);else for(var m=h.length-1;m>=0;m--){var b;void 0!==(p=old_memberDec(h[m],r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?b=p:1===o?(b=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p,void 0!==b&&(void 0===d?d=b:"function"==typeof d?d=[d,b]:d.push(b)))}if(0===o||1===o){if(void 0===d)d=function(e,t){return t};else if("function"!=typeof d){var g=d;d=function(e,t){for(var a=t,r=0;r<g.length;r++)a=g[r].call(e,a);return a}}else{var _=d;d=function(e,t){return _.call(e,t)}}e.push(d)}0!==o&&(1===o?(c.get=f.get,c.set=f.set):2===o?c.value=f:3===o?c.get=f:4===o&&(c.set=f),n?1===o?(e.push(function(e,t){return f.get.call(e,t)}),e.push(function(e,t){return f.set.call(e,t)})):2===o?e.push(f):e.push(function(e,t){return f.call(e,t)}):Object.defineProperty(t,r,c))}function old_applyMemberDecs(e,t,a,r,o){for(var i,n,l=new Map,s=new Map,c=0;c<o.length;c++){var d=o[c];if(Array.isArray(d)){var u,f,p,v=d[1],y=d[2],h=d.length>3,m=v>=5;if(m?(u=t,f=r,0!=(v-=5)&&(p=n=n||[])):(u=t.prototype,f=a,0!==v&&(p=i=i||[])),0!==v&&!h){var b=m?s:l,g=b.get(y)||0;if(!0===g||3===g&&4!==v||4===g&&3!==v)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+y);!g&&v>2?b.set(y,v):b.set(y,!0)}old_applyMemberDec(e,u,d,y,v,m,h,f,p)}}old_pushInitializers(e,i),old_pushInitializers(e,n)}function old_pushInitializers(e,t){t&&e.push(function(e){for(var a=0;a<t.length;a++)t[a].call(e);return e})}function old_applyClassDecs(e,t,a,r){if(r.length>0){for(var o=[],i=t,n=t.name,l=r.length-1;l>=0;l--){var s={v:!1};try{var c=Object.assign({kind:"class",name:n,addInitializer:old_createAddInitializerMethod(o,s)},old_createMetadataMethodsForProperty(a,0,n,s)),d=r[l](i,c)}finally{s.v=!0}void 0!==d&&(old_assertValidReturnValue(10,d),i=d)}e.push(i,function(){for(var e=0;e<o.length;e++)o[e].call(i)})}}function applyDecs(e,t,a){var r=[],o={},i={};return old_applyMemberDecs(r,e,i,o,t),old_convertMetadataMapToFinal(e.prototype,i),old_applyClassDecs(r,e,o,a),old_convertMetadataMapToFinal(e,o),r}',{globals:["Object","Map","Symbol","Array","Error","TypeError","console"],locals:{old_createMetadataMethodsForProperty:["body.0.id","body.3.body.body.4.block.body.0.argument.arguments.1.arguments.1.callee","body.12.body.body.0.consequent.body.0.body.body.1.block.body.0.declarations.0.init.arguments.1.callee"],old_convertMetadataMapToFinal:["body.1.id","body.13.body.body.1.argument.expressions.1.callee","body.13.body.body.1.argument.expressions.3.callee"],old_createAddInitializerMethod:["body.2.id","body.3.body.body.3.test.expressions.0.right.right.callee","body.12.body.body.0.consequent.body.0.body.body.1.block.body.0.declarations.0.init.arguments.0.properties.2.value.callee"],old_memberDec:["body.3.id","body.9.body.body.1.consequent.expression.left.right.right.callee","body.9.body.body.1.alternate.body.body.1.expression.left.right.right.callee"],old_assertNotFinished:["body.4.id","body.0.body.body.0.argument.properties.0.value.body.body.0.expression.expressions.0.callee","body.0.body.body.0.argument.properties.1.value.body.body.0.expression.expressions.0.callee","body.2.body.body.0.argument.body.body.0.expression.expressions.0.callee"],old_assertMetadataKey:["body.5.id","body.0.body.body.0.argument.properties.0.value.body.body.0.expression.expressions.1.callee","body.0.body.body.0.argument.properties.1.value.body.body.0.expression.expressions.1.callee"],old_assertCallable:["body.6.id","body.2.body.body.0.argument.body.body.0.expression.expressions.1.callee","body.7.body.body.1.consequent.body.1.expression.expressions.0.right.callee","body.7.body.body.1.consequent.body.1.expression.expressions.1.right.callee","body.7.body.body.1.consequent.body.1.expression.expressions.2.right.callee","body.7.body.body.1.consequent.body.1.expression.expressions.3.right.callee"],old_assertValidReturnValue:["body.7.id","body.9.body.body.1.consequent.expression.right.expressions.0.callee","body.9.body.body.1.alternate.body.body.1.expression.right.expressions.0.callee","body.12.body.body.0.consequent.body.0.body.body.2.expression.right.expressions.0.callee"],old_getInit:["body.8.id","body.9.body.body.1.consequent.expression.right.expressions.1.alternate.consequent.expressions.0.right.callee","body.9.body.body.1.alternate.body.body.1.expression.right.expressions.1.alternate.consequent.expressions.0.right.callee"],old_applyMemberDec:["body.9.id","body.10.body.body.0.body.body.1.consequent.body.2.expression.callee"],old_applyMemberDecs:["body.10.id","body.13.body.body.1.argument.expressions.0.callee"],old_pushInitializers:["body.11.id","body.10.body.body.1.expression.expressions.0.callee","body.10.body.body.1.expression.expressions.1.callee"],old_applyClassDecs:["body.12.id","body.13.body.body.1.argument.expressions.2.callee"],applyDecs:["body.13.id"]},exportBindingAssignments:[],exportName:"applyDecs",dependencies:{setFunctionName:["body.9.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.0.right.callee","body.9.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.1.callee"],toPropertyKey:["body.3.body.body.2.declarations.2.init.properties.1.value.alternate.callee"]},internal:!1}),applyDecs2203:gj("7.19.0",'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e){if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:s?"#"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),"function"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:"function"==typeof l?l=[l,g]:l.push(g)))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push(function(e,t){return u.get.call(e,t)}),e.push(function(e,t){return u.set.call(e,t)})):2===n?e.push(u):e.push(function(e,t){return u.call(e,t)}):Object.defineProperty(t,a,c))}function pushInitializers(e,t){t&&e.push(function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e})}return function(e,t,r){var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:"class",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,function(){for(var e=0;e<a.length;e++)a[e].call(n)})}}(a,e,r),a}}var applyDecs2203Impl;function applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}',{globals:["Error","TypeError","Object","Map","Array"],locals:{applyDecs2203Factory:["body.0.id","body.2.body.body.0.argument.callee.right.right.callee"],applyDecs2203Impl:["body.1.declarations.0.id","body.2.body.body.0.argument.callee.right.left","body.2.body.body.0.argument.callee.left"],applyDecs2203:["body.2.id"]},exportBindingAssignments:[],exportName:"applyDecs2203",dependencies:{},internal:!1}),applyDecs2203R:gj("7.20.0",'function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e){if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,n,a,i,o,s){var c;switch(a){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:o?"#"+t:toPropertyKey(t),static:i,private:o},p={v:!1};0!==a&&(f.addInitializer=createAddInitializerMethod(n,p)),0===a?o?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(s,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,n,a,i,o,s){var c,l,u,f,p,d,h,v=r[0];if(o?(0===a||1===a?(c={get:r[3],set:r[4]},u="get"):3===a?(c={get:r[3]},u="get"):4===a?(c={set:r[3]},u="set"):c={value:r[3]},0!==a&&(1===a&&setFunctionName(r[4],"#"+n,"set"),setFunctionName(r[3],"#"+n,u))):0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:c.get,set:c.set}:2===a?f=c.value:3===a?f=c.get:4===a&&(f=c.set),"function"==typeof v)void 0!==(p=memberDec(v,n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?l=p:1===a?(l=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p);else for(var g=v.length-1;g>=0;g--){var y;void 0!==(p=memberDec(v[g],n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?y=p:1===a?(y=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p,void 0!==y&&(void 0===l?l=y:"function"==typeof l?l=[l,y]:l.push(y)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var m=l;l=function(e,t){for(var r=t,n=0;n<m.length;n++)r=m[n].call(e,r);return r}}else{var b=l;l=function(e,t){return b.call(e,t)}}e.push(l)}0!==a&&(1===a?(c.get=f.get,c.set=f.set):2===a?c.value=f:3===a?c.get=f:4===a&&(c.set=f),o?1===a?(e.push(function(e,t){return f.get.call(e,t)}),e.push(function(e,t){return f.set.call(e,t)})):2===a?e.push(f):e.push(function(e,t){return f.call(e,t)}):Object.defineProperty(t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,o=new Map,s=0;s<t.length;s++){var c=t[s];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!=(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?o:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push(function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e})}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var o={v:!1};try{var s=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,o)})}finally{o.v=!0}void 0!==s&&(assertValidReturnValue(10,s),n=s)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}',{globals:["Error","TypeError","Object","Map","Array"],locals:{applyDecs2203RFactory:["body.0.id","body.1.body.body.0.argument.callee.right.callee"],applyDecs2203R:["body.1.id","body.1.body.body.0.argument.callee.left"]},exportBindingAssignments:["body.1.body.body.0.argument.callee"],exportName:"applyDecs2203R",dependencies:{setFunctionName:["body.0.body.body.4.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.0.right.callee","body.0.body.body.4.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.1.callee"],toPropertyKey:["body.0.body.body.1.body.body.2.declarations.2.init.properties.1.value.alternate.callee"]},internal:!1}),applyDecs2301:gj("7.21.0",'function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e){if(e.v)throw Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError("Attempted to access private element on non-instance")}function memberDec(e,t,r,n,a,i,s,o,c){var u;switch(a){case 1:u="accessor";break;case 2:u="method";break;case 3:u="getter";break;case 4:u="setter";break;default:u="field"}var l,f,p={kind:u,name:s?"#"+t:toPropertyKey(t),static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPrivate(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():function(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,y,g=r[0];if(s?(0===a||1===a?(u={get:(d=r[3],function(){return d(this)}),set:curryThis2(r[4])},f="get"):3===a?(u={get:r[3]},f="get"):4===a?(u={set:r[3]},f="set"):u={value:r[3]},0!==a&&(1===a&&setFunctionName(u.set,"#"+n,"set"),setFunctionName(u[f||"value"],"#"+n,f))):0!==a&&(u=Object.getOwnPropertyDescriptor(t,n)),1===a?p={get:u.get,set:u.set}:2===a?p=u.value:3===a?p=u.get:4===a&&(p=u.set),"function"==typeof g)void 0!==(h=memberDec(g,n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?l=h:1===a?(l=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h);else for(var m=g.length-1;m>=0;m--){var b;void 0!==(h=memberDec(g[m],n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?b=h:1===a?(b=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==b&&(void 0===l?l=b:"function"==typeof l?l=[l,b]:l.push(b)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var I=l;l=function(e,t){for(var r=t,n=0;n<I.length;n++)r=I[n].call(e,r);return r}}else{var w=l;l=function(e,t){return w.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=p.get,u.set=p.set):2===a?u.value=p:3===a?u.get=p:4===a&&(u.set=p),s?1===a?(e.push(function(e,t){return p.get.call(e,t)}),e.push(function(e,t){return p.set.call(e,t)})):2===a?e.push(p):e.push(function(e,t){return p.call(e,t)}):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,y=d>=5,g=r;if(y?(f=e,0!=(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),g=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=y?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,y,v,p,g)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push(function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e})}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}function applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}',{globals:["Error","TypeError","Object","Map","Array"],locals:{applyDecs2301Factory:["body.0.id","body.1.body.body.0.argument.callee.right.callee"],applyDecs2301:["body.1.id","body.1.body.body.0.argument.callee.left"]},exportBindingAssignments:["body.1.body.body.0.argument.callee"],exportName:"applyDecs2301",dependencies:{checkInRHS:["body.0.body.body.7.body.body.0.body.body.1.consequent.body.1.test.expressions.0.consequent.expressions.2.right.right.body.body.0.argument.left.callee"],setFunctionName:["body.0.body.body.6.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.0.right.callee","body.0.body.body.6.body.body.1.test.expressions.0.consequent.expressions.1.right.expressions.1.callee"],toPropertyKey:["body.0.body.body.2.body.body.2.declarations.2.init.properties.1.value.alternate.callee"]},internal:!1}),applyDecs2305:gj("7.21.0",'function applyDecs2305(e,t,r,n,o,a){function i(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function c(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function s(e,t,r,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return e}function applyDec(e,t,r,n,o,a,c,u,l,f,p,d,h){function m(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var y,v=t[0],g=t[3],b=!u;if(!b){r||Array.isArray(v)||(v=[v]);var w={},S=[],A=3===o?"get":4===o||d?"set":"value";f?(p||d?w={get:setFunctionName(function(){return g(this)},n,"get"),set:function(e){t[4](this,e)}}:w[A]=g,p||setFunctionName(w[A],n,2===o?"":A)):p||(w=Object.getOwnPropertyDescriptor(e,n))}for(var P=e,j=v.length-1;j>=0;j-=r?2:1){var D=v[j],E=r?v[j-1]:void 0,I={},O={kind:["field","accessor","method","getter","setter","class"][o],name:n,metadata:a,addInitializer:function(e,t){if(e.v)throw Error("attempted to call addInitializer after decoration was finished");s(t,"An initializer","be",!0),c.push(t)}.bind(null,I)};try{if(b)(y=s(D.call(E,P,O),"class decorators","return"))&&(P=y);else{var k,F;O.static=l,O.private=f,f?2===o?k=function(e){return m(e),w.value}:(o<4&&(k=i(w,"get",m)),3!==o&&(F=i(w,"set",m))):(k=function(e){return e[n]},(o<2||4===o)&&(F=function(e,t){e[n]=t}));var N=O.access={has:f?h.bind():function(e){return n in e}};if(k&&(N.get=k),F&&(N.set=F),P=D.call(E,d?{get:w.get,set:w.set}:w[A],O),d){if("object"==typeof P&&P)(y=s(P.get,"accessor.get"))&&(w.get=y),(y=s(P.set,"accessor.set"))&&(w.set=y),(y=s(P.init,"accessor.init"))&&S.push(y);else if(void 0!==P)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else s(P,(p?"field":"method")+" decorators","return")&&(p?S.push(P):w[A]=P)}}finally{I.v=!0}}return(p||d)&&u.push(function(e,t){for(var r=S.length-1;r>=0;r--)t=S[r].call(e,t);return t}),p||b||(f?d?u.push(i(w,"get"),i(w,"set")):u.push(2===o?w[A]:i.call.bind(w[A])):Object.defineProperty(e,n,w)),P}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var l=a[Symbol.metadata||Symbol.for("Symbol.metadata")];var f=Object.create(null==l?null:l),p=function(e,t,r,n){var o,a,i=[],s=function(t){return checkInRHS(t)===e},u=new Map;function l(e){e&&i.push(c.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var d=p[1],h=p[2],m=p.length>3,y=16&d,v=!!(8&d),g=0==(d&=7),b=h+"/"+v;if(!g&&!m){var w=u.get(b);if(!0===w||3===w&&4!==d||4===w&&3!==d)throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);u.set(b,!(d>2)||d)}applyDec(v?e:e.prototype,p,y,m?"#"+h:toPropertyKey(h),d,n,v?a=a||[]:o=o||[],i,v,m,g,1===d,v&&m?s:r)}}return l(o),l(a),i}(e,t,o,f);return r.length||u(e,f),{e:p,get c(){var t=[];return r.length&&[u(applyDec(e,[r],n,e.name,5,f,t),f),c.bind(null,t,e)]}}}',{globals:["TypeError","Array","Object","Error","Symbol","Map"],locals:{applyDecs2305:["body.0.id"]},exportBindingAssignments:[],exportName:"applyDecs2305",dependencies:{checkInRHS:["body.0.body.body.6.declarations.1.init.callee.body.body.0.declarations.3.init.body.body.0.argument.left.callee"],setFunctionName:["body.0.body.body.3.body.body.2.consequent.body.2.expression.consequent.expressions.0.consequent.right.properties.0.value.callee","body.0.body.body.3.body.body.2.consequent.body.2.expression.consequent.expressions.1.right.callee"],toPropertyKey:["body.0.body.body.6.declarations.1.init.callee.body.body.2.body.body.1.consequent.body.2.expression.arguments.3.alternate.callee"]},internal:!1}),classApplyDescriptorDestructureSet:gj("7.13.10",'function _classApplyDescriptorDestructureSet(e,t){if(t.set)return"__destrObj"in t||(t.__destrObj={set value(r){t.set.call(e,r)}}),t.__destrObj;if(!t.writable)throw new TypeError("attempted to set read only private field");return t}',{globals:["TypeError"],locals:{_classApplyDescriptorDestructureSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classApplyDescriptorDestructureSet",dependencies:{},internal:!1}),classApplyDescriptorGet:gj("7.13.10","function _classApplyDescriptorGet(e,t){return t.get?t.get.call(e):t.value}",{globals:[],locals:{_classApplyDescriptorGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classApplyDescriptorGet",dependencies:{},internal:!1}),classApplyDescriptorSet:gj("7.13.10",'function _classApplyDescriptorSet(e,t,l){if(t.set)t.set.call(e,l);else{if(!t.writable)throw new TypeError("attempted to set read only private field");t.value=l}}',{globals:["TypeError"],locals:{_classApplyDescriptorSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classApplyDescriptorSet",dependencies:{},internal:!1}),classCheckPrivateStaticAccess:gj("7.13.10","function _classCheckPrivateStaticAccess(s,a,r){return assertClassBrand(a,s,r)}",{globals:[],locals:{_classCheckPrivateStaticAccess:["body.0.id"]},exportBindingAssignments:[],exportName:"_classCheckPrivateStaticAccess",dependencies:{assertClassBrand:["body.0.body.body.0.argument.callee"]},internal:!1}),classCheckPrivateStaticFieldDescriptor:gj("7.13.10",'function _classCheckPrivateStaticFieldDescriptor(t,e){if(void 0===t)throw new TypeError("attempted to "+e+" private static field before its declaration")}',{globals:["TypeError"],locals:{_classCheckPrivateStaticFieldDescriptor:["body.0.id"]},exportBindingAssignments:[],exportName:"_classCheckPrivateStaticFieldDescriptor",dependencies:{},internal:!1}),classExtractFieldDescriptor:gj("7.13.10","function _classExtractFieldDescriptor(e,t){return classPrivateFieldGet2(t,e)}",{globals:[],locals:{_classExtractFieldDescriptor:["body.0.id"]},exportBindingAssignments:[],exportName:"_classExtractFieldDescriptor",dependencies:{classPrivateFieldGet2:["body.0.body.body.0.argument.callee"]},internal:!1}),classPrivateFieldDestructureSet:gj("7.4.4","function _classPrivateFieldDestructureSet(e,t){var r=classPrivateFieldGet2(t,e);return classApplyDescriptorDestructureSet(e,r)}",{globals:[],locals:{_classPrivateFieldDestructureSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldDestructureSet",dependencies:{classApplyDescriptorDestructureSet:["body.0.body.body.1.argument.callee"],classPrivateFieldGet2:["body.0.body.body.0.declarations.0.init.callee"]},internal:!1}),classPrivateFieldGet:gj("7.0.0-beta.0","function _classPrivateFieldGet(e,t){var r=classPrivateFieldGet2(t,e);return classApplyDescriptorGet(e,r)}",{globals:[],locals:{_classPrivateFieldGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldGet",dependencies:{classApplyDescriptorGet:["body.0.body.body.1.argument.callee"],classPrivateFieldGet2:["body.0.body.body.0.declarations.0.init.callee"]},internal:!1}),classPrivateFieldSet:gj("7.0.0-beta.0","function _classPrivateFieldSet(e,t,r){var s=classPrivateFieldGet2(t,e);return classApplyDescriptorSet(e,s,r),r}",{globals:[],locals:{_classPrivateFieldSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateFieldSet",dependencies:{classApplyDescriptorSet:["body.0.body.body.1.argument.expressions.0.callee"],classPrivateFieldGet2:["body.0.body.body.0.declarations.0.init.callee"]},internal:!1}),classPrivateMethodGet:gj("7.1.6","function _classPrivateMethodGet(s,a,r){return assertClassBrand(a,s),r}",{globals:[],locals:{_classPrivateMethodGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateMethodGet",dependencies:{assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"]},internal:!1}),classPrivateMethodSet:gj("7.1.6",'function _classPrivateMethodSet(){throw new TypeError("attempted to reassign private method")}',{globals:["TypeError"],locals:{_classPrivateMethodSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classPrivateMethodSet",dependencies:{},internal:!1}),classStaticPrivateFieldDestructureSet:gj("7.13.10",'function _classStaticPrivateFieldDestructureSet(t,r,s){return assertClassBrand(r,t),classCheckPrivateStaticFieldDescriptor(s,"set"),classApplyDescriptorDestructureSet(t,s)}',{globals:[],locals:{_classStaticPrivateFieldDestructureSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateFieldDestructureSet",dependencies:{classApplyDescriptorDestructureSet:["body.0.body.body.0.argument.expressions.2.callee"],assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"],classCheckPrivateStaticFieldDescriptor:["body.0.body.body.0.argument.expressions.1.callee"]},internal:!1}),classStaticPrivateFieldSpecGet:gj("7.0.2",'function _classStaticPrivateFieldSpecGet(t,s,r){return assertClassBrand(s,t),classCheckPrivateStaticFieldDescriptor(r,"get"),classApplyDescriptorGet(t,r)}',{globals:[],locals:{_classStaticPrivateFieldSpecGet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateFieldSpecGet",dependencies:{classApplyDescriptorGet:["body.0.body.body.0.argument.expressions.2.callee"],assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"],classCheckPrivateStaticFieldDescriptor:["body.0.body.body.0.argument.expressions.1.callee"]},internal:!1}),classStaticPrivateFieldSpecSet:gj("7.0.2",'function _classStaticPrivateFieldSpecSet(s,t,r,e){return assertClassBrand(t,s),classCheckPrivateStaticFieldDescriptor(r,"set"),classApplyDescriptorSet(s,r,e),e}',{globals:[],locals:{_classStaticPrivateFieldSpecSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateFieldSpecSet",dependencies:{classApplyDescriptorSet:["body.0.body.body.0.argument.expressions.2.callee"],assertClassBrand:["body.0.body.body.0.argument.expressions.0.callee"],classCheckPrivateStaticFieldDescriptor:["body.0.body.body.0.argument.expressions.1.callee"]},internal:!1}),classStaticPrivateMethodSet:gj("7.3.2",'function _classStaticPrivateMethodSet(){throw new TypeError("attempted to set read only static private field")}',{globals:["TypeError"],locals:{_classStaticPrivateMethodSet:["body.0.id"]},exportBindingAssignments:[],exportName:"_classStaticPrivateMethodSet",dependencies:{},internal:!1}),defineEnumerableProperties:gj("7.0.0-beta.0",'function _defineEnumerableProperties(e,r){for(var t in r){var n=r[t];n.configurable=n.enumerable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,t,n)}if(Object.getOwnPropertySymbols)for(var a=Object.getOwnPropertySymbols(r),b=0;b<a.length;b++){var i=a[b];(n=r[i]).configurable=n.enumerable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,i,n)}return e}',{globals:["Object"],locals:{_defineEnumerableProperties:["body.0.id"]},exportBindingAssignments:[],exportName:"_defineEnumerableProperties",dependencies:{},internal:!1}),dispose:gj("7.22.0",'function dispose_SuppressedError(r,e){return"undefined"!=typeof SuppressedError?dispose_SuppressedError=SuppressedError:(dispose_SuppressedError=function(r,e){this.suppressed=e,this.error=r,this.stack=Error().stack},dispose_SuppressedError.prototype=Object.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(r,e)}function _dispose(r,e,s){function next(){for(;r.length>0;)try{var o=r.pop(),p=o.d.call(o.v);if(o.a)return Promise.resolve(p).then(next,err)}catch(r){return err(r)}if(s)throw e}function err(r){return e=s?new dispose_SuppressedError(e,r):r,s=!0,next()}return next()}',{globals:["SuppressedError","Error","Object","Promise"],locals:{dispose_SuppressedError:["body.0.id","body.0.body.body.0.argument.expressions.0.alternate.expressions.1.left.object","body.0.body.body.0.argument.expressions.0.alternate.expressions.1.right.arguments.1.properties.0.value.properties.0.value","body.0.body.body.0.argument.expressions.1.callee","body.1.body.body.1.body.body.0.argument.expressions.0.right.consequent.callee","body.0.body.body.0.argument.expressions.0.consequent.left","body.0.body.body.0.argument.expressions.0.alternate.expressions.0.left"],_dispose:["body.1.id"]},exportBindingAssignments:[],exportName:"_dispose",dependencies:{},internal:!1}),objectSpread:gj("7.0.0-beta.0",'function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?Object(arguments[r]):{},o=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&o.push.apply(o,Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),o.forEach(function(r){defineProperty(e,r,t[r])})}return e}',{globals:["Object"],locals:{_objectSpread:["body.0.id"]},exportBindingAssignments:[],exportName:"_objectSpread",dependencies:{defineProperty:["body.0.body.body.0.body.body.1.expression.expressions.1.arguments.0.body.body.0.expression.callee"]},internal:!1}),regeneratorRuntime:gj("7.18.0",'function _regeneratorRuntime(){"use strict";var r=regenerator(),e=r.m(_regeneratorRuntime),t=(Object.getPrototypeOf?Object.getPrototypeOf(e):e.__proto__).constructor;function n(r){var e="function"==typeof r&&r.constructor;return!!e&&(e===t||"GeneratorFunction"===(e.displayName||e.name))}var o={throw:1,return:2,break:3,continue:3};function a(r){var e,t;return function(n){e||(e={stop:function(){return t(n.a,2)},catch:function(){return n.v},abrupt:function(r,e){return t(n.a,o[r],e)},delegateYield:function(r,o,a){return e.resultName=o,t(n.d,values(r),a)},finish:function(r){return t(n.f,r)}},t=function(r,t,o){n.p=e.prev,n.n=e.next;try{return r(t,o)}finally{e.next=n.n}}),e.resultName&&(e[e.resultName]=n.v,e.resultName=void 0),e.sent=n.v,e.next=n.n;try{return r.call(this,e)}finally{n.p=e.prev,n.n=e.next}}}return(_regeneratorRuntime=function(){return{wrap:function(e,t,n,o){return r.w(a(e),t,n,o&&o.reverse())},isGeneratorFunction:n,mark:r.m,awrap:function(r,e){return new OverloadYield(r,e)},AsyncIterator:AsyncIterator,async:function(r,e,t,o,u){return(n(e)?asyncGen:async)(a(r),e,t,o,u)},keys:keys,values:values}})()}',{globals:["Object"],locals:{_regeneratorRuntime:["body.0.id","body.0.body.body.0.declarations.1.init.arguments.0","body.0.body.body.4.argument.callee.left"]},exportBindingAssignments:["body.0.body.body.4.argument.callee"],exportName:"_regeneratorRuntime",dependencies:{OverloadYield:["body.0.body.body.4.argument.callee.right.body.body.0.argument.properties.3.value.body.body.0.argument.callee"],regenerator:["body.0.body.body.0.declarations.0.init.callee"],regeneratorAsync:["body.0.body.body.4.argument.callee.right.body.body.0.argument.properties.5.value.body.body.0.argument.callee.alternate"],regeneratorAsyncGen:["body.0.body.body.4.argument.callee.right.body.body.0.argument.properties.5.value.body.body.0.argument.callee.consequent"],regeneratorAsyncIterator:["body.0.body.body.4.argument.callee.right.body.body.0.argument.properties.4.value"],regeneratorKeys:["body.0.body.body.4.argument.callee.right.body.body.0.argument.properties.6.value"],regeneratorValues:["body.0.body.body.3.body.body.1.argument.body.body.0.expression.expressions.0.right.expressions.0.right.properties.3.value.body.body.0.argument.expressions.1.arguments.1.callee","body.0.body.body.4.argument.callee.right.body.body.0.argument.properties.7.value"]},internal:!1}),using:gj("7.22.0",'function _using(o,n,e){if(null==n)return n;if(Object(n)!==n)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(e)var r=n[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(null==r&&(r=n[Symbol.dispose||Symbol.for("Symbol.dispose")]),"function"!=typeof r)throw new TypeError("Property [Symbol.dispose] is not a function.");return o.push({v:n,d:r,a:e}),n}',{globals:["Object","TypeError","Symbol"],locals:{_using:["body.0.id"]},exportBindingAssignments:[],exportName:"_using",dependencies:{},internal:!1})});var yj=sm,hj=Ps;function bj(e,t,r){try{for(var a=t.split("."),n=a.shift();a.length>0;)e=e[n],n=a.shift();if(!(arguments.length>2))return e[n];e[n]=r}catch(e){throw e.message+=" (when accessing "+t+")",e}}var vj=Object.create(null);function xj(e){if(!vj[e]){var t=mj[e];if(!t)throw Object.assign(new ReferenceError("Unknown helper "+e),{code:"BABEL_HELPER_UNKNOWN",helper:e});vj[e]={minVersion:t.minVersion,build:function(e,r,a,n){var s=t.ast();return function(e,t,r,a,n,s){var o=t.locals,d=t.dependencies,c=t.exportBindingAssignments,l=t.exportName,u=new Set(a||[]);r&&u.add(r);for(var p=0,f=(Object.entries||function(e){return Object.keys(e).map(function(t){return[t,e[t]]})})(o);p<f.length;p++){var g=y(f[p],2),m=g[0],h=g[1],b=m;if(r&&m===l)b=r;else for(;u.has(b);)b="_"+b;if(b!==m)for(var v,x=i(h);!(v=x()).done;){var R=v.value;bj(e,R,hj(b))}}for(var j=0,w=(Object.entries||function(e){return Object.keys(e).map(function(t){return[t,e[t]]})})(d);j<w.length;j++)for(var E,S=y(w[j],2),T=S[0],P=S[1],A="function"==typeof n&&n(T)||hj(T),k=i(P);!(E=k()).done;){var C=E.value;bj(e,C,yj(A))}null==s||s(e,l,function(t){c.forEach(function(r){return bj(e,r,t(bj(e,r)))})})}(s,t.metadata,r,a,e,n),{nodes:s.body,globals:t.metadata.globals}},getDependencies:function(){return Object.keys(t.metadata.dependencies)}}}return vj[e]}function Rj(e,t,r,a,n){if("object"==typeof r){var s=r;r="Identifier"===(null==s?void 0:s.type)?s.name:void 0}return xj(e).build(t,r,a,n)}function jj(e){return xj(e).minVersion}function wj(e){var t;return null==(t=mj[e])?void 0:t.metadata.internal}e.ensure=function(e){xj(e)};var Ej,Sj,Tj=Object.keys(mj).map(function(e){return e.replace(/^_/,"")}),Pj=Object.freeze({__proto__:null,BindingIdentifier:["Identifier"],BlockScoped:["FunctionDeclaration","ClassDeclaration","VariableDeclaration"],ExistentialTypeParam:["ExistsTypeAnnotation"],Expression:["Expression"],Flow:["Flow","ImportDeclaration","ExportDeclaration","ImportSpecifier"],ForAwaitStatement:["ForOfStatement"],Generated:null,NumericLiteralTypeAnnotation:["NumberLiteralTypeAnnotation"],Pure:null,Referenced:null,ReferencedIdentifier:["Identifier","JSXIdentifier"],ReferencedMemberExpression:["MemberExpression"],RestProperty:["RestElement"],Scope:["Scopable","Pattern"],SpreadProperty:["RestElement"],Statement:["Statement"],User:null,Var:["VariableDeclaration"]}),Aj={exports:{}};function kj(){if(Sj)return Ej;Sj=1;var e=1e3,t=60*e,r=60*t,a=24*r,n=7*a,s=365.25*a;function o(e,t,r,a){var n=t>=1.5*r;return Math.round(e/r)+" "+a+(n?"s":"")}return Ej=function(i,d){d=d||{};var c=typeof i;if("string"===c&&i.length>0)return function(o){if((o=String(o)).length>100)return;var i=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(o);if(!i)return;var d=parseFloat(i[1]);switch((i[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return d*s;case"weeks":case"week":case"w":return d*n;case"days":case"day":case"d":return d*a;case"hours":case"hour":case"hrs":case"hr":case"h":return d*r;case"minutes":case"minute":case"mins":case"min":case"m":return d*t;case"seconds":case"second":case"secs":case"sec":case"s":return d*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return d;default:return}}(i);if("number"===c&&isFinite(i))return d.long?function(n){var s=Math.abs(n);if(s>=a)return o(n,s,a,"day");if(s>=r)return o(n,s,r,"hour");if(s>=t)return o(n,s,t,"minute");if(s>=e)return o(n,s,e,"second");return n+" ms"}(i):function(n){var s=Math.abs(n);if(s>=a)return Math.round(n/a)+"d";if(s>=r)return Math.round(n/r)+"h";if(s>=t)return Math.round(n/t)+"m";if(s>=e)return Math.round(n/e)+"s";return n+"ms"}(i);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(i))},Ej}var Cj=function(e){function t(e){var a,n,s,o=null;function i(){for(var e=arguments.length,r=new Array(e),n=0;n<e;n++)r[n]=arguments[n];if(i.enabled){var s=i,o=Number(new Date),d=o-(a||o);s.diff=d,s.prev=a,s.curr=o,a=o,r[0]=t.coerce(r[0]),"string"!=typeof r[0]&&r.unshift("%O");var c=0;r[0]=r[0].replace(/%([a-zA-Z%])/g,function(e,a){if("%%"===e)return"%";c++;var n=t.formatters[a];if("function"==typeof n){var o=r[c];e=n.call(s,o),r.splice(c,1),c--}return e}),t.formatArgs.call(s,r),(s.log||t.log).apply(s,r)}}return i.namespace=e,i.useColors=t.useColors(),i.color=t.selectColor(e),i.extend=r,i.destroy=t.destroy,Object.defineProperty(i,"enabled",{enumerable:!0,configurable:!1,get:function(){return null!==o?o:(n!==t.namespaces&&(n=t.namespaces,s=t.enabled(e)),s)},set:function(e){o=e}}),"function"==typeof t.init&&t.init(i),i}function r(e,r){var a=t(this.namespace+(void 0===r?":":r)+e);return a.log=this.log,a}function a(e,t){for(var r=0,a=0,n=-1,s=0;r<e.length;)if(a<t.length&&(t[a]===e[r]||"*"===t[a]))"*"===t[a]?(n=a,s=r,a++):(r++,a++);else{if(-1===n)return!1;a=n+1,r=++s}for(;a<t.length&&"*"===t[a];)a++;return a===t.length}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){var e=[].concat(b(t.names),b(t.skips.map(function(e){return"-"+e}))).join(",");return t.enable(""),e},t.enable=function(e){t.save(e),t.namespaces=e,t.names=[],t.skips=[];for(var r,a=i(("string"==typeof e?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean));!(r=a()).done;){var n=r.value;"-"===n[0]?t.skips.push(n.slice(1)):t.names.push(n)}},t.enabled=function(e){for(var r,n=i(t.skips);!(r=n()).done;){if(a(e,r.value))return!1}for(var s,o=i(t.names);!(s=o()).done;){if(a(e,s.value))return!0}return!1},t.humanize=kj(),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach(function(r){t[r]=e[r]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){for(var r=0,a=0;a<e.length;a++)r=(r<<5)-r+e.charCodeAt(a),r|=0;return t.colors[Math.abs(r)%t.colors.length]},t.enable(t.load()),t};!function(e,t){var r;t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;var r="color: "+this.color;t.splice(1,0,r,"color: inherit");var a=0,n=0;t[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(a++,"%c"===e&&(n=a))}),t.splice(n,0,r)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){var e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(e){}!e&&void 0!==z&&"env"in z&&(e=z.env.DEBUG);return e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;var e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(r=!1,function(){r||(r=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||function(){},e.exports=Cj(t),e.exports.formatters.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(Aj,Aj.exports);var _j=Aj.exports,Ij=Fy,Dj=qy,Oj=gr,Nj=$t,Bj=hr,Mj=ne,Fj=ar,Lj=ie,Uj=qe,qj=Ve,Gj=Pt,Wj=At,Vj=me,Hj=Re,zj=Gy,Kj=Wy,Xj=er,Jj=Ky,Yj=Ae,$j=Ue,Qj=Xy.isCompatTag;e.isExistentialTypeParam=function(){throw new Error("`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.")},e.isNumericLiteralTypeAnnotation=function(){throw new Error("`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.")};var Zj=Object.freeze({__proto__:null,isBindingIdentifier:function(){var e=this.node,t=this.parent,r=this.parentPath.parent;return Lj(e)&&Ij(e,t,r)},isBlockScoped:function(){return Dj(this.node)},isExpression:function(){return this.isIdentifier()?this.isReferencedIdentifier():Nj(this.node)},isFlow:function(){var e=this.node;return!!Bj(e)||(Uj(e)?"type"===e.importKind||"typeof"===e.importKind:Oj(e)?"type"===e.exportKind:!!qj(e)&&("type"===e.importKind||"typeof"===e.importKind))},isForAwaitStatement:function(){return $j(this.node,{await:!0})},isGenerated:function(){return!this.isUser()},isPure:function(e){return this.scope.isPure(this.node,e)},isReferenced:function(){return zj(this.node,this.parent)},isReferencedIdentifier:function(e){var t=this.node,r=this.parent;return Lj(t,e)?zj(t,r,this.parentPath.parent):!!Gj(t,e)&&(!(!Wj(r)&&Qj(t.name))&&zj(t,r,this.parentPath.parent))},isReferencedMemberExpression:function(){var e=this.node,t=this.parent;return Vj(e)&&zj(e,t)},isRestProperty:function(){var e;return Hj(this.node)&&(null==(e=this.parentPath)?void 0:e.isObjectPattern())},isScope:function(){return Kj(this.node,this.parent)},isSpreadProperty:function(){var e;return Hj(this.node)&&(null==(e=this.parentPath)?void 0:e.isObjectExpression())},isStatement:function(){var e=this.node,t=this.parent;if(Xj(e)){if(Yj(e)){if(Fj(t,{left:e}))return!1;if(Mj(t,{init:e}))return!1}return!0}return!1},isUser:function(){var e;return!(null==(e=this.node)||!e.loc)},isVar:function(){return Jj(this.node)}}),ew=Pa,tw=Wn,rw=Ea,aw=Zn,nw=J;function sw(e){return e in Pj}function ow(e){return null==e?void 0:e._exploded}function iw(e){if(ow(e))return e;e._exploded=!0;for(var t=0,r=Object.keys(e);t<r.length;t++){var a=r[t];if(!gw(a)){var n=a.split("|");if(1!==n.length){var s=e[a];delete e[a];for(var o,d=i(n);!(o=d()).done;){e[o.value]=s}}}}dw(e),delete e.__esModule,function(e){for(var t=0,r=Object.keys(e);t<r.length;t++){var a=r[t];if(!gw(a)){var n=e[a];"function"==typeof n&&(e[a]={enter:n})}}}(e),pw(e);for(var c=0,l=Object.keys(e);c<l.length;c++){var u=l[c];if(!gw(u)&&sw(u)){for(var p=e[u],f=0,g=Object.keys(p);f<g.length;f++){var m=g[f];p[m]=fw(u,p[m])}delete e[u];var y=Pj[u];if(null!==y)for(var h,b=i(y);!(h=b()).done;){var v=h.value;null!=e[v]||(e[v]={}),mw(e[v],p)}else mw(e,p)}}for(var x=0,R=Object.keys(e);x<R.length;x++){var j=R[x];if(!gw(j)){var w=rw[j];if(j in ew){var E=ew[j];nw(j,E,"Visitor "),w=[E]}else if(j in tw){var S=tw[j];nw(j,S,"Visitor "),w=rw[S]}if(w){var T=e[j];delete e[j];for(var P,A=i(w);!(P=A()).done;){var k=P.value,C=e[k];C?mw(C,T):e[k]=Object.assign({},T)}}}}for(var _=0,I=Object.keys(e);_<I.length;_++){var D=I[_];gw(D)||pw(e[D])}return e}function dw(e){if(!e._verified){if("function"==typeof e)throw new Error("You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?");for(var t=0,r=Object.keys(e);t<r.length;t++){var a=r[t];if("enter"!==a&&"exit"!==a||cw(a,e[a]),!gw(a)){if(!aw.includes(a))throw new Error("You gave us a visitor for the node type "+a+" but it's not a valid type in @babel/traverse 7.29.0");var n=e[a];if("object"==typeof n)for(var s=0,o=Object.keys(n);s<o.length;s++){var i=o[s];if("enter"!==i&&"exit"!==i)throw new Error("You passed `traverse()` a visitor object with the property "+a+" that has the invalid property "+i);cw(a+"."+i,n[i])}}}e._verified=!0}}function cw(e,t){for(var r,a=i([].concat(t));!(r=a()).done;){var n=r.value;if("function"!=typeof n)throw new TypeError("Non-function found defined in "+e+" with type "+typeof n)}}function lw(e,t,r){void 0===t&&(t=[]);var a={_verified:!0,_exploded:!0};Object.defineProperty(a,"_exploded",{enumerable:!1}),Object.defineProperty(a,"_verified",{enumerable:!1});for(var n=0;n<e.length;n++){var s=iw(e[n]),o=t[n],i=s;(o||r)&&(i=uw(i,o,r)),mw(a,i);for(var d=0,c=Object.keys(s);d<c.length;d++){var l=c[d];if(!gw(l)){var u=s[l];(o||r)&&(u=uw(u,o,r)),mw(a[l]||(a[l]={}),u)}}}return a}function uw(e,t,r){for(var a={},n=function(){var n=o[s],i=e[n];if(!Array.isArray(i))return 1;i=i.map(function(e){var a=e;return t&&(a=function(r){e.call(t,r,t)}),r&&(a=r(null==t?void 0:t.key,n,a)),a!==e&&(a.toString=function(){return e.toString()}),a}),a[n]=i},s=0,o=["enter","exit"];s<o.length;s++)n();return a}function pw(e){e.enter&&!Array.isArray(e.enter)&&(e.enter=[e.enter]),e.exit&&!Array.isArray(e.exit)&&(e.exit=[e.exit])}function fw(e,t){var r=Zj["is"+e],a=function(e){if(r.call(e))return t.apply(this,arguments)};return a.toString=function(){return t.toString()},a}function gw(e){return!!e.startsWith("_")||("enter"===e||"exit"===e||"shouldSkip"===e||("denylist"===e||"noScope"===e||"skipKeys"===e||"blacklist"===e))}function mw(e,t){for(var r=0,a=["enter","exit"];r<a.length;r++){var n=a[r];t[n]&&(e[n]=[].concat(e[n]||[],t[n]))}}var yw={FunctionParent:function(e){e.isArrowFunctionExpression()||(e.skip(),e.isMethod()&&(e.requeueComputedKeyAndDecorators?e.requeueComputedKeyAndDecorators():kO.call(e)))},Property:function(e){e.isObjectProperty()||(e.skip(),e.requeueComputedKeyAndDecorators?e.requeueComputedKeyAndDecorators():kO.call(e))}};function hw(e){return lw([yw,e])}var bw=Object.freeze({__proto__:null,environmentVisitor:hw,explode:iw,isExplodedVisitor:ow,merge:lw,verify:dw}),vw=_y,xw={ReferencedIdentifier:function(e,t){var r=e.node;r.name===t.oldName&&(r.name=t.newName)},Scope:function(e,t){e.scope.bindingIdentifierEquals(t.oldName,t.binding.identifier)||(e.skip(),e.isMethod()&&(e.requeueComputedKeyAndDecorators?e.requeueComputedKeyAndDecorators():kO.call(e)),e.isSwitchStatement()&&e.context.maybeQueue(e.get("discriminant")))},ObjectProperty:function(e,t){var r,a=e.node,n=e.scope,s=a.key.name;!a.shorthand||s!==t.oldName&&s!==t.newName||n.getBindingIdentifier(s)!==t.binding.identifier||(a.shorthand=!1,null!=(r=a.extra)&&r.shorthand&&(a.extra.shorthand=!1))},"AssignmentExpression|Declaration|VariableDeclarator":function(e,t){if(!e.isVariableDeclaration()){var r=e.isAssignmentExpression()?vw(e.node):e.getOuterBindingIdentifiers();for(var a in r)a===t.oldName&&(r[a].name=t.newName)}}},Rw=function(){function e(e,t,r){this.newName=r,this.oldName=t,this.binding=e}var t=e.prototype;return t.maybeConvertFromExportDeclaration=function(e){var t=e.parentPath;if(t.isExportDeclaration()){if(t.isExportDefaultDeclaration()){var r=t.node.declaration;if(ir(r)&&!r.id)return}t.isExportAllDeclaration()||t.splitExportDeclaration()}},t.maybeConvertFromClassFunctionDeclaration=function(e){return e},t.maybeConvertFromClassFunctionExpression=function(e){return e},t.rename=function(){var e=this.binding,t=this.oldName,r=this.newName,a=e.scope,n=e.path,s=n.find(function(e){return e.isDeclaration()||e.isFunctionExpression()||e.isClassExpression()});s&&(s.getOuterBindingIdentifiers()[t]===e.identifier&&this.maybeConvertFromExportDeclaration(s));var o=arguments[0]||a.block,i={discriminant:!0};cr(o)&&(o.computed&&(i.key=!0),ve(o)||(i.decorators=!0)),iO(o,iw(xw),a,this,a.path,i),arguments[0]||(a.removeOwnBinding(t),a.bindings[r]=e,this.binding.identifier.name=r),s&&(this.maybeConvertFromClassFunctionDeclaration(n),this.maybeConvertFromClassFunctionExpression(n))},o(e)}(),jw=function(){function e(e){var t=e.identifier,r=e.scope,a=e.path,n=e.kind;this.identifier=void 0,this.scope=void 0,this.path=void 0,this.kind=void 0,this.constantViolations=[],this.constant=!0,this.referencePaths=[],this.referenced=!1,this.references=0,this.identifier=t,this.scope=r,this.path=a,this.kind=n,"var"!==n&&"hoisted"!==n||!function(e){for(var t=!e.isVariableDeclarator()||e.node.init,r=e.parentPath,a=e.key;r;r=(n=r).parentPath,a=n.key,n){var n;if(r.isFunctionParent())return!1;if("left"===a&&r.isForXStatement()||t&&"body"===a&&r.isLoop())return!0}return!1}(a)||this.reassign(a),this.clearValue()}var t=e.prototype;return t.deoptValue=function(){this.clearValue(),this.hasDeoptedValue=!0},t.setValue=function(e){this.hasDeoptedValue||(this.hasValue=!0,this.value=e)},t.clearValue=function(){this.hasDeoptedValue=!1,this.hasValue=!1,this.value=null},t.reassign=function(e){this.constant=!1,this.constantViolations.includes(e)||this.constantViolations.push(e)},t.reference=function(e){this.referencePaths.includes(e)||(this.referenced=!0,this.references++,this.referencePaths.push(e))},t.dereference=function(){this.references--,this.referenced=!!this.references},o(e)}();var ww=["AggregateError","Array","ArrayBuffer","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","Error","EvalError","FinalizationRegistry","Float16Array","Float32Array","Float64Array","Function","Infinity","Int16Array","Int32Array","Int8Array","Intl","Iterator","JSON","Map","Math","NaN","Number","Object","Promise","Proxy","RangeError","ReferenceError","Reflect","RegExp","Set","SharedArrayBuffer","String","Symbol","SyntaxError","TypeError","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","URIError","WeakMap","WeakRef","WeakSet"],Ew=new WeakMap,Sw=new WeakMap;function Tw(){Ew=new WeakMap}function Pw(){Sw=new WeakMap}function Aw(e){var t=e.parent;return e.parentPath,Ew.get(t)}function kw(e,t){var r=Ew.get(e);return r||Ew.set(e,r=new Map),r}var Cw=Object.freeze({__proto__:null,clear:function(){Tw(),Pw()},clearPath:Tw,clearScope:Pw,getCachedPaths:Aw,getOrCreateCachedPaths:kw,get path(){return Ew},get scope(){return Sw}}),_w=is,Iw=gs,Dw=sm,Ow=Iy,Nw=Ps,Bw=Y,Mw=Qt,Fw=Z,Lw=pr,Uw=De,qw=Ne,Gw=Be,Ww=Me,Vw=Fe,Hw=se,zw=ie,Kw=qe,Xw=dr,Jw=me,Yw=cr,$w=mr,Qw=pe,Zw=be,eE=lr,tE=or,rE=ge,aE=Je,nE=Ye,sE=$e,oE=Se,iE=Te,dE=Ae,cE=Rs,lE=Er,uE=Bs,pE=_s,fE=my,gE=Zs,mE=eo,yE=xe,hE=Bt,bE=He,vE=it,xE=gr,RE=tm,jE=Vs;function wE(e,t){switch(null==e?void 0:e.type){default:var r;if(Kw(e)||xE(e))if((Gw(e)||Vw(e)||Kw(e))&&e.source)wE(e.source,t);else if((Vw(e)||Kw(e))&&null!=(r=e.specifiers)&&r.length)for(var a,n=i(e.specifiers);!(a=n()).done;){wE(a.value,t)}else(Ww(e)||Vw(e))&&e.declaration&&wE(e.declaration,t);else $w(e)?wE(e.local,t):!Xw(e)||Qw(e)||rE(e)||sE(e)||t.push(e.value);break;case"MemberExpression":case"OptionalMemberExpression":case"JSXMemberExpression":wE(e.object,t),wE(e.property,t);break;case"Identifier":case"JSXIdentifier":t.push(e.name);break;case"CallExpression":case"OptionalCallExpression":case"NewExpression":wE(e.callee,t);break;case"ObjectExpression":case"ObjectPattern":for(var s,o=i(e.properties);!(s=o()).done;){wE(s.value,t)}break;case"SpreadElement":case"RestElement":case"UnaryExpression":case"UpdateExpression":wE(e.argument,t);break;case"ObjectProperty":case"ObjectMethod":case"ClassProperty":case"ClassMethod":case"ClassPrivateProperty":case"ClassPrivateMethod":wE(e.key,t);break;case"ThisExpression":t.push("this");break;case"Super":t.push("super");break;case"Import":case"ImportExpression":t.push("import");break;case"DoExpression":t.push("do");break;case"YieldExpression":t.push("yield"),wE(e.argument,t);break;case"AwaitExpression":t.push("await"),wE(e.argument,t);break;case"AssignmentExpression":wE(e.left,t);break;case"VariableDeclarator":case"FunctionExpression":case"FunctionDeclaration":case"ClassExpression":case"ClassDeclaration":case"PrivateName":wE(e.id,t);break;case"ParenthesizedExpression":wE(e.expression,t);break;case"MetaProperty":wE(e.meta,t),wE(e.property,t);break;case"JSXElement":wE(e.openingElement,t);break;case"JSXOpeningElement":wE(e.name,t);break;case"JSXFragment":wE(e.openingFragment,t);break;case"JSXOpeningFragment":t.push("Fragment");break;case"JSXNamespacedName":wE(e.namespace,t),wE(e.name,t)}}function EE(e){e.references=Object.create(null),e.uids=Object.create(null),e.bindings=Object.create(null),e.globals=Object.create(null)}var SE,TE=Symbol.for("should not be considered a local binding"),PE={ForStatement:function(e){var t=e.get("init");if(t.isVar()){var r=e.scope;(r.getFunctionParent()||r.getProgramParent()).registerBinding("var",t)}},Declaration:function(e){e.isBlockScoped()||(e.isImportDeclaration()||e.isExportDeclaration()||(e.scope.getFunctionParent()||e.scope.getProgramParent()).registerDeclaration(e))},ImportDeclaration:function(e){e.scope.getBlockParent().registerDeclaration(e)},TSImportEqualsDeclaration:function(e){e.scope.getBlockParent().registerDeclaration(e)},ReferencedIdentifier:function(e,t){Ft(e.parent)&&e.parent.right===e.node||e.parentPath.isTSImportEqualsDeclaration()||t.references.push(e)},ForXStatement:function(e,t){var r=e.get("left");if(r.isPattern()||r.isIdentifier())t.constantViolations.push(e);else if(r.isVar()){var a=e.scope;(a.getFunctionParent()||a.getProgramParent()).registerBinding("var",r)}},ExportDeclaration:{exit:function(e){var t=e.node,r=e.scope;if(!Gw(t)){var a=t.declaration;if(qw(a)||Hw(a)){var n=a.id;if(!n)return;var s=r.getBinding(n.name);null==s||s.reference(e)}else if(dE(a))for(var o,d=i(a.declarations);!(o=d()).done;)for(var c=o.value,l=0,u=Object.keys(Ow(c));l<u.length;l++){var p=u[l],f=r.getBinding(p);null==f||f.reference(e)}}}},LabeledStatement:function(e){e.scope.getBlockParent().registerDeclaration(e)},AssignmentExpression:function(e,t){t.assignments.push(e)},UpdateExpression:function(e,t){t.constantViolations.push(e)},UnaryExpression:function(e,t){"delete"===e.node.operator&&t.constantViolations.push(e)},BlockScoped:function(e){var t=e.scope;if(t.path===e&&(t=t.parent),t.getBlockParent().registerDeclaration(e),e.isClassDeclaration()&&e.node.id){var r=e.node.id.name;e.scope.bindings[r]=e.scope.parent.getBinding(r)}},CatchClause:function(e){e.scope.registerBinding("let",e)},Function:function(e){for(var t,r=i(e.get("params"));!(t=r()).done;){var a=t.value;e.scope.registerBinding("param",a)}e.isFunctionExpression()&&e.node.id&&!e.node.id[TE]&&e.scope.registerBinding("local",e.get("id"),e)},ClassExpression:function(e){e.node.id&&!e.node.id[TE]&&e.scope.registerBinding("local",e.get("id"),e)},TSTypeAnnotation:function(e){e.skip()}},AE=0,kE=function(){function e(e){this.uid=void 0,this.path=void 0,this.block=void 0,this.inited=void 0,this.labels=void 0,this.bindings=void 0,this.referencesSet=void 0,this.globals=void 0,this.uidsSet=void 0,this.data=void 0,this.crawling=void 0;var t=e.node,r=Sw.get(t);if((null==r?void 0:r.path)===e)return r;Sw.set(t,this),this.uid=AE++,this.block=t,this.path=e,this.labels=new Map,this.inited=!1,Object.defineProperties(this,{references:{enumerable:!0,configurable:!0,writable:!0,value:Object.create(null)},uids:{enumerable:!0,configurable:!0,writable:!0,value:Object.create(null)}})}var t=e.prototype;return t.generateDeclaredUidIdentifier=function(e){var t=this.generateUidIdentifier(e);return this.push({id:t}),Dw(t)},t.generateUidIdentifier=function(e){return Nw(this.generateUid(e))},t.generateUid=function(e){var t;void 0===e&&(e="temp"),e=fE(e).replace(/^_+/,"").replace(/\d+$/g,"");var r=0;do{t="_"+e,r>=11?t+=r-1:r>=9?t+=r-9:r>=1&&(t+=r+1),r++}while(this.hasLabel(t)||this.hasBinding(t)||this.hasGlobal(t)||this.hasReference(t));var a=this.getProgramParent();return a.references[t]=!0,a.uids[t]=!0,t},t.generateUidBasedOnNode=function(e,t){var r=[];wE(e,r);var a=r.join("$");return a=a.replace(/^_/,"")||t||"ref",this.generateUid(a.slice(0,20))},t.generateUidIdentifierBasedOnNode=function(e,t){return Nw(this.generateUidBasedOnNode(e,t))},t.isStatic=function(e){if(oE(e)||aE(e)||hE(e))return!0;if(zw(e)){var t=this.getBinding(e.name);return t?t.constant:this.hasBinding(e.name)}return!1},t.maybeGenerateMemoised=function(e,t){if(this.isStatic(e))return null;var r=this.generateUidIdentifierBasedOnNode(e);return t?r:(this.push({id:r}),Dw(r))},t.checkBlockScopedCollisions=function(e,t,r,a){if("param"!==t&&("local"!==e.kind&&("let"===t||"let"===e.kind||"const"===e.kind||"module"===e.kind||"param"===e.kind&&"const"===t)))throw this.path.hub.buildError(a,'Duplicate declaration "'+r+'"',TypeError)},t.rename=function(e,t){var r=this.getBinding(e);r&&(t||(t=this.generateUidIdentifier(e).name),new Rw(r,e,t).rename(arguments[2]))},t.dump=function(){var e="-".repeat(60);console.log(e);var t=this;do{console.log("#",t.block.type);for(var r=0,a=Object.keys(t.bindings);r<a.length;r++){var n=a[r],s=t.bindings[n];console.log(" -",n,{constant:s.constant,references:s.references,violations:s.constantViolations.length,kind:s.kind})}}while(t=t.parent);console.log(e)},t.hasLabel=function(e){return!!this.getLabel(e)},t.getLabel=function(e){return this.labels.get(e)},t.registerLabel=function(e){this.labels.set(e.node.label.name,e)},t.registerDeclaration=function(e){if(e.isLabeledStatement())this.registerLabel(e);else if(e.isFunctionDeclaration())this.registerBinding("hoisted",e.get("id"),e);else if(e.isVariableDeclaration())for(var t,r=e.get("declarations"),a=e.node.kind,n=i(r);!(t=n()).done;){var s=t.value;this.registerBinding("using"===a||"await using"===a?"const":a,s)}else if(e.isClassDeclaration()){if(e.node.declare)return;this.registerBinding("let",e)}else if(e.isImportDeclaration())for(var o,d="type"===e.node.importKind||"typeof"===e.node.importKind,c=i(e.get("specifiers"));!(o=c()).done;){var l=o.value,u=d||l.isImportSpecifier()&&("type"===l.node.importKind||"typeof"===l.node.importKind);this.registerBinding(u?"unknown":"module",l)}else if(e.isExportDeclaration()){var p=e.get("declaration");(p.isClassDeclaration()||p.isFunctionDeclaration()||p.isVariableDeclaration())&&this.registerDeclaration(p)}else this.registerBinding("unknown",e)},t.buildUndefinedNode=function(){return RE()},t.registerConstantViolation=function(e){for(var t=e.getAssignmentIdentifiers(),r=0,a=Object.keys(t);r<a.length;r++){var n,s=a[r];null==(n=this.getBinding(s))||n.reassign(e)}},t.registerBinding=function(e,t,r){if(void 0===r&&(r=t),!e)throw new ReferenceError("no `kind`");if(t.isVariableDeclaration())for(var a,n=i(t.get("declarations"));!(a=n()).done;){var s=a.value;this.registerBinding(e,s)}else for(var o=this.getProgramParent(),d=t.getOuterBindingIdentifiers(!0),c=0,l=Object.keys(d);c<l.length;c++){var u=l[c];o.references[u]=!0;for(var p,f=i(d[u]);!(p=f()).done;){var g=p.value,m=this.getOwnBinding(u);if(m){if(m.identifier===g)continue;this.checkBlockScopedCollisions(m,e,u,g)}m?m.reassign(r):this.bindings[u]=new jw({identifier:g,scope:this,path:r,kind:e})}}},t.addGlobal=function(e){this.globals[e.name]=e},t.hasUid=function(e){var t=this;do{if(t.uids[e])return!0}while(t=t.parent);return!1},t.hasGlobal=function(e){var t=this;do{if(t.globals[e])return!0}while(t=t.parent);return!1},t.hasReference=function(e){return!!this.getProgramParent().references[e]},t.isPure=function(e,t){if(zw(e)){var r=this.getBinding(e.name);return!!r&&(!t||r.constant)}if(oE(e)||bE(e)||hE(e)||vE(e))return!0;var a,n,s;if(Lw(e))return!(e.superClass&&!this.isPure(e.superClass,t))&&(!((null==(a=e.decorators)?void 0:a.length)>0)&&this.isPure(e.body,t));if(Uw(e)){for(var o,d=i(e.body);!(o=d()).done;){var c=o.value;if(!this.isPure(c,t))return!1}return!0}if(Mw(e))return this.isPure(e.left,t)&&this.isPure(e.right,t);if(Bw(e)||"TupleExpression"===(null==e?void 0:e.type)){for(var l,u=i(e.elements);!(l=u()).done;){var p=l.value;if(null!==p&&!this.isPure(p,t))return!1}return!0}if(Zw(e)||"RecordExpression"===(null==e?void 0:e.type)){for(var f,g=i(e.properties);!(f=g()).done;){var m=f.value;if(!this.isPure(m,t))return!1}return!0}if(Yw(e))return!(e.computed&&!this.isPure(e.key,t))&&!((null==(n=e.decorators)?void 0:n.length)>0);if(eE(e))return!(e.computed&&!this.isPure(e.key,t))&&(!((null==(s=e.decorators)?void 0:s.length)>0)&&!((yE(e)||e.static)&&null!==e.value&&!this.isPure(e.value,t)));if(iE(e))return this.isPure(e.argument,t);if(sE(e)){for(var y,h=i(e.expressions);!(y=h()).done;){var b=y.value;if(!this.isPure(b,t))return!1}return!0}return nE(e)?lE(e.tag,"String.raw")&&!this.hasBinding("String",{noGlobals:!0})&&this.isPure(e.quasi,t):Jw(e)?!e.computed&&zw(e.object)&&"Symbol"===e.object.name&&zw(e.property)&&"for"!==e.property.name&&!this.hasBinding("Symbol",{noGlobals:!0}):Fw(e)?lE(e.callee,"Symbol.for")&&!this.hasBinding("Symbol",{noGlobals:!0})&&1===e.arguments.length&&le(e.arguments[0]):tE(e)},t.setData=function(e,t){return this.data[e]=t},t.getData=function(e){var t=this;do{var r=t.data[e];if(null!=r)return r}while(t=t.parent)},t.removeData=function(e){var t=this;do{null!=t.data[e]&&(t.data[e]=null)}while(t=t.parent)},t.init=function(){this.inited||(this.inited=!0,this.crawl())},t.crawl=function(){var e=this.path;EE(this),this.data=Object.create(null);var t=this;do{if(t.crawling)return;if(t.path.isProgram())break}while(t=t.parent);var r=t,a={references:[],constantViolations:[],assignments:[]};if(this.crawling=!0,SE||(SE=OO.visitors.merge([{Scope:function(e){EE(e.scope)}},PE])),"Program"!==e.type){var n=SE[e.type];if(n)for(var s,o=i(n.enter);!(s=o()).done;){s.value.call(a,e,a)}}e.traverse(SE,a),this.crawling=!1;for(var d,c=i(a.assignments);!(d=c()).done;){for(var l=d.value,u=l.getAssignmentIdentifiers(),p=0,f=Object.keys(u);p<f.length;p++){var g=f[p];l.scope.getBinding(g)||r.addGlobal(u[g])}l.scope.registerConstantViolation(l)}for(var m,y=i(a.references);!(m=y()).done;){var h=m.value,b=h.scope.getBinding(h.node.name);b?b.reference(h):r.addGlobal(h.node)}for(var v,x=i(a.constantViolations);!(v=x()).done;){var R=v.value;R.scope.registerConstantViolation(R)}},t.push=function(e){var t=this.path;t.isPattern()?t=this.getPatternParent().path:t.isBlockStatement()||t.isProgram()||(t=this.getBlockParent().path),t.isSwitchStatement()&&(t=(this.getFunctionParent()||this.getProgramParent()).path);var r=e.init,a=e.unique,n=e.kind,s=void 0===n?"var":n,o=e.id;if(!r&&!a&&("var"===s||"let"===s)&&function(e){return e.isFunctionExpression()&&!e.node.id||e.isArrowFunctionExpression()}(t)&&Fw(t.parent,{callee:t.node})&&t.parent.arguments.length<=t.node.params.length&&zw(o))return t.pushContainer("params",o),void t.scope.registerBinding("param",t.get("params")[t.node.params.length-1]);(t.isLoop()||t.isCatchClause()||t.isFunction())&&(t.ensureBlock(),t=t.get("body"));var i=null==e._blockHoist?2:e._blockHoist,d="declaration:"+s+":"+i,c=!a&&t.getData(d);if(!c){var l=gE(s,[]);l._blockHoist=i,c=y(t.unshiftContainer("body",[l]),1)[0],a||t.setData(d,c)}var u=mE(o,r),p=c.node.declarations.push(u);t.scope.registerBinding(s,c.get("declarations")[p-1])},t.getProgramParent=function(){var e=this;do{if(e.path.isProgram())return e}while(e=e.parent);throw new Error("Couldn't find a Program")},t.getFunctionParent=function(){var e=this;do{if(e.path.isFunctionParent())return e}while(e=e.parent);return null},t.getBlockParent=function(){var e=this;do{if(e.path.isBlockParent())return e}while(e=e.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},t.getPatternParent=function(){var e=this;do{if(!e.path.isPattern())return e.getBlockParent()}while(e=e.parent.parent);throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...")},t.getAllBindings=function(){var e=Object.create(null),t=this;do{for(var r=0,a=Object.keys(t.bindings);r<a.length;r++){var n=a[r];n in e==!1&&(e[n]=t.bindings[n])}t=t.parent}while(t);return e},t.bindingIdentifierEquals=function(e,t){return this.getBindingIdentifier(e)===t},t.getBinding=function(e){var t,r=this;do{var a,n=r.getOwnBinding(e);if(n){if(null==(a=t)||!a.isPattern()||"param"===n.kind||"local"===n.kind)return n}else if(!n&&"arguments"===e&&r.path.isFunction()&&!r.path.isArrowFunctionExpression())break;t=r.path}while(r=r.parent)},t.getOwnBinding=function(e){return this.bindings[e]},t.getBindingIdentifier=function(e){var t;return null==(t=this.getBinding(e))?void 0:t.identifier},t.getOwnBindingIdentifier=function(e){var t=this.bindings[e];return null==t?void 0:t.identifier},t.hasOwnBinding=function(e){return!!this.getOwnBinding(e)},t.hasBinding=function(t,r){if(!t)return!1;var a,n,s;"object"==typeof r?(a=r.noGlobals,n=r.noUids,s=r.upToScope):"boolean"==typeof r&&(a=r);var o=this;do{if(s===o)break;if(o.hasOwnBinding(t))return!0}while(o=o.parent);return!(n||!this.hasUid(t))||(!(a||!e.globals.includes(t))||!(a||!e.contextVariables.includes(t)))},t.parentHasBinding=function(e,t){var r;return null==(r=this.parent)?void 0:r.hasBinding(e,t)},t.moveBindingTo=function(e,t){var r=this.getBinding(e);r&&(r.scope.removeOwnBinding(e),r.scope=t,t.bindings[e]=r)},t.removeOwnBinding=function(e){delete this.bindings[e]},t.removeBinding=function(e){var t;null==(t=this.getBinding(e))||t.scope.removeOwnBinding(e);var r=this;do{r.uids[e]&&(r.uids[e]=!1)}while(r=r.parent)},t.hoistVariables=function(e){var t=this;void 0===e&&(e=function(e){return t.push({id:e})}),this.crawl();for(var r=new Set,a=0,n=Object.keys(this.bindings);a<n.length;a++){var s=n[a],o=this.bindings[s];if(o){var d=o.path;if(d.isVariableDeclarator()){var c=d.parent,l=d.parentPath;if("var"===c.kind&&!r.has(c)){r.add(d.parent);for(var u,p=void 0,f=[],g=i(c.declarations);!(u=g()).done;){var m=u.value;null!=p||(p=m.id),m.init&&f.push(_w("=",m.id,m.init));for(var y=0,h=Object.keys(Ow(m,!1,!0,!0));y<h.length;y++){var b=h[y];e(Nw(b),null!=m.init)}}if(l.parentPath.isForXStatement({left:c}))l.replaceWith(p);else if(0===f.length)l.remove();else{var v=1===f.length?f[0]:jE(f);l.parentPath.isForStatement({init:c})?l.replaceWith(v):l.replaceWith(cE(v))}}}}}},o(e,[{key:"parent",get:function(){var e,t,r=this.path;do{var a,n="key"===r.key||"decorators"===r.listKey;r=r.parentPath,n&&r.isMethod()&&(r=r.parentPath),null!=(a=r)&&a.isScope()&&(t=r)}while(r&&!t);return null==(e=t)?void 0:e.scope}},{key:"references",get:function(){throw new Error("Scope#references is not available in Babel 8. Use Scope#referencesSet instead.")}},{key:"uids",get:function(){throw new Error("Scope#uids is not available in Babel 8. Use Scope#uidsSet instead.")}}])}();kE.globals=[].concat(b(["decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","eval","globalThis","isFinite","isNaN","parseFloat","parseInt","undefined","unescape"]),b(ww)),kE.contextVariables=["arguments","undefined","Infinity","NaN"],kE.prototype._renameFromMap=function(e,t,r,a){e[t]&&(e[r]=a,e[t]=null)},kE.prototype.traverse=function(e,t,r){OO(e,t,this,r,this.path)},kE.prototype._generateUid=function(e,t){var r=e;return t>1&&(r+=t),"_"+r},kE.prototype.toArray=function(e,t,r){if(zw(e)){var a=this.getBinding(e.name);if(null!=a&&a.constant&&a.path.isGenericType("Array"))return e}if(Bw(e))return e;if(zw(e,{name:"arguments"}))return Iw(uE(uE(uE(Nw("Array"),Nw("prototype")),Nw("slice")),Nw("call")),[e]);var n,s=[e];return!0===t?n="toConsumableArray":"number"==typeof t?(s.push(pE(t)),n="slicedToArray"):n="toArray",r&&(s.unshift(this.path.hub.addHelper(n)),n="maybeArrayLike"),Iw(this.path.hub.addHelper(n),s)},kE.prototype.getAllBindingsOfKind=function(){for(var e=Object.create(null),t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];for(var n=0,s=r;n<s.length;n++){var o=s[n],i=this;do{for(var d=0,c=Object.keys(i.bindings);d<c.length;d++){var l=c[d],u=i.bindings[l];u.kind===o&&(e[l]=u)}i=i.parent}while(i)}return e},Object.defineProperties(kE.prototype,{parentBlock:{configurable:!0,enumerable:!0,get:function(){return this.path.parent}},hub:{configurable:!0,enumerable:!0,get:function(){return this.path.hub}}});var CE=[],_E=[],IE="undefined"!=typeof Uint8Array?Uint8Array:Array,DE=!1;function OE(){DE=!0;for(var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",t=0;t<64;++t)CE[t]=e[t],_E[e.charCodeAt(t)]=t;_E["-".charCodeAt(0)]=62,_E["_".charCodeAt(0)]=63}function NE(e){return CE[e>>18&63]+CE[e>>12&63]+CE[e>>6&63]+CE[63&e]}function BE(e,t,r){for(var a,n=[],s=t;s<r;s+=3)a=(e[s]<<16)+(e[s+1]<<8)+e[s+2],n.push(NE(a));return n.join("")}function ME(e){var t;DE||OE();for(var r=e.length,a=r%3,n="",s=[],o=16383,i=0,d=r-a;i<d;i+=o)s.push(BE(e,i,i+o>d?d:i+o));return 1===a?(t=e[r-1],n+=CE[t>>2],n+=CE[t<<4&63],n+="=="):2===a&&(t=(e[r-2]<<8)+e[r-1],n+=CE[t>>10],n+=CE[t>>4&63],n+=CE[t<<2&63],n+="="),s.push(n),s.join("")}function FE(e,t,r,a,n){var s,o,i=8*n-a-1,d=(1<<i)-1,c=d>>1,l=-7,u=r?n-1:0,p=r?-1:1,f=e[t+u];for(u+=p,s=f&(1<<-l)-1,f>>=-l,l+=i;l>0;s=256*s+e[t+u],u+=p,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=a;l>0;o=256*o+e[t+u],u+=p,l-=8);if(0===s)s=1-c;else{if(s===d)return o?NaN:1/0*(f?-1:1);o+=Math.pow(2,a),s-=c}return(f?-1:1)*o*Math.pow(2,s-a)}function LE(e,t,r,a,n,s){var o,i,d,c=8*s-n-1,l=(1<<c)-1,u=l>>1,p=23===n?Math.pow(2,-24)-Math.pow(2,-77):0,f=a?0:s-1,g=a?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(i=isNaN(t)?1:0,o=l):(o=Math.floor(Math.log(t)/Math.LN2),t*(d=Math.pow(2,-o))<1&&(o--,d*=2),(t+=o+u>=1?p/d:p*Math.pow(2,1-u))*d>=2&&(o++,d/=2),o+u>=l?(i=0,o=l):o+u>=1?(i=(t*d-1)*Math.pow(2,n),o+=u):(i=t*Math.pow(2,u-1)*Math.pow(2,n),o=0));n>=8;e[r+f]=255&i,f+=g,i/=256,n-=8);for(o=o<<n|i,c+=n;c>0;e[r+f]=255&o,f+=g,o/=256,c-=8);e[r+f-g]|=128*m}var UE={}.toString,qE=Array.isArray||function(e){return"[object Array]"==UE.call(e)};function GE(){return VE.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function WE(e,t){if(GE()<t)throw new RangeError("Invalid typed array length");return VE.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=VE.prototype:(null===e&&(e=new VE(t)),e.length=t),e}function VE(e,t,r){if(!(VE.TYPED_ARRAY_SUPPORT||this instanceof VE))return new VE(e,t,r);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return KE(this,e)}return HE(this,e,t,r)}function HE(e,t,r,a){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,r,a){if(t.byteLength,r<0||t.byteLength<r)throw new RangeError("'offset' is out of bounds");if(t.byteLength<r+(a||0))throw new RangeError("'length' is out of bounds");t=void 0===r&&void 0===a?new Uint8Array(t):void 0===a?new Uint8Array(t,r):new Uint8Array(t,r,a);VE.TYPED_ARRAY_SUPPORT?(e=t).__proto__=VE.prototype:e=XE(e,t);return e}(e,t,r,a):"string"==typeof t?function(e,t,r){"string"==typeof r&&""!==r||(r="utf8");if(!VE.isEncoding(r))throw new TypeError('"encoding" must be a valid string encoding');var a=0|$E(t,r);e=WE(e,a);var n=e.write(t,r);n!==a&&(e=e.slice(0,n));return e}(e,t,r):function(e,t){if(YE(t)){var r=0|JE(t.length);return 0===(e=WE(e,r)).length||t.copy(e,0,0,r),e}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(a=t.length)!=a?WE(e,0):XE(e,t);if("Buffer"===t.type&&qE(t.data))return XE(e,t.data)}var a;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function zE(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function KE(e,t){if(zE(t),e=WE(e,t<0?0:0|JE(t)),!VE.TYPED_ARRAY_SUPPORT)for(var r=0;r<t;++r)e[r]=0;return e}function XE(e,t){var r=t.length<0?0:0|JE(t.length);e=WE(e,r);for(var a=0;a<r;a+=1)e[a]=255&t[a];return e}function JE(e){if(e>=GE())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+GE().toString(16)+" bytes");return 0|e}function YE(e){return!(null==e||!e._isBuffer)}function $E(e,t){if(YE(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var r=e.length;if(0===r)return 0;for(var a=!1;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return ES(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return SS(e).length;default:if(a)return ES(e).length;t=(""+t).toLowerCase(),a=!0}}function QE(e,t,r){var a=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return fS(this,t,r);case"utf8":case"utf-8":return cS(this,t,r);case"ascii":return uS(this,t,r);case"latin1":case"binary":return pS(this,t,r);case"base64":return dS(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return gS(this,t,r);default:if(a)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),a=!0}}function ZE(e,t,r){var a=e[t];e[t]=e[r],e[r]=a}function eS(e,t,r,a,n){if(0===e.length)return-1;if("string"==typeof r?(a=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=n?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(n)return-1;r=e.length-1}else if(r<0){if(!n)return-1;r=0}if("string"==typeof t&&(t=VE.from(t,a)),YE(t))return 0===t.length?-1:tS(e,t,r,a,n);if("number"==typeof t)return t&=255,VE.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?n?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):tS(e,[t],r,a,n);throw new TypeError("val must be string, number or Buffer")}function tS(e,t,r,a,n){var s,o=1,i=e.length,d=t.length;if(void 0!==a&&("ucs2"===(a=String(a).toLowerCase())||"ucs-2"===a||"utf16le"===a||"utf-16le"===a)){if(e.length<2||t.length<2)return-1;o=2,i/=2,d/=2,r/=2}function c(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(n){var l=-1;for(s=r;s<i;s++)if(c(e,s)===c(t,-1===l?0:s-l)){if(-1===l&&(l=s),s-l+1===d)return l*o}else-1!==l&&(s-=s-l),l=-1}else for(r+d>i&&(r=i-d),s=r;s>=0;s--){for(var u=!0,p=0;p<d;p++)if(c(e,s+p)!==c(t,p)){u=!1;break}if(u)return s}return-1}function rS(e,t,r,a){r=Number(r)||0;var n=e.length-r;a?(a=Number(a))>n&&(a=n):a=n;var s=t.length;if(s%2!=0)throw new TypeError("Invalid hex string");a>s/2&&(a=s/2);for(var o=0;o<a;++o){var i=parseInt(t.substr(2*o,2),16);if(isNaN(i))return o;e[r+o]=i}return o}function aS(e,t,r,a){return TS(ES(t,e.length-r),e,r,a)}function nS(e,t,r,a){return TS(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,a)}function sS(e,t,r,a){return nS(e,t,r,a)}function oS(e,t,r,a){return TS(SS(t),e,r,a)}function iS(e,t,r,a){return TS(function(e,t){for(var r,a,n,s=[],o=0;o<e.length&&!((t-=2)<0);++o)a=(r=e.charCodeAt(o))>>8,n=r%256,s.push(n),s.push(a);return s}(t,e.length-r),e,r,a)}function dS(e,t,r){return 0===t&&r===e.length?ME(e):ME(e.slice(t,r))}function cS(e,t,r){r=Math.min(e.length,r);for(var a=[],n=t;n<r;){var s,o,i,d,c=e[n],l=null,u=c>239?4:c>223?3:c>191?2:1;if(n+u<=r)switch(u){case 1:c<128&&(l=c);break;case 2:128==(192&(s=e[n+1]))&&(d=(31&c)<<6|63&s)>127&&(l=d);break;case 3:s=e[n+1],o=e[n+2],128==(192&s)&&128==(192&o)&&(d=(15&c)<<12|(63&s)<<6|63&o)>2047&&(d<55296||d>57343)&&(l=d);break;case 4:s=e[n+1],o=e[n+2],i=e[n+3],128==(192&s)&&128==(192&o)&&128==(192&i)&&(d=(15&c)<<18|(63&s)<<12|(63&o)<<6|63&i)>65535&&d<1114112&&(l=d)}null===l?(l=65533,u=1):l>65535&&(l-=65536,a.push(l>>>10&1023|55296),l=56320|1023&l),a.push(l),n+=u}return function(e){var t=e.length;if(t<=lS)return String.fromCharCode.apply(String,e);var r="",a=0;for(;a<t;)r+=String.fromCharCode.apply(String,e.slice(a,a+=lS));return r}(a)}VE.TYPED_ARRAY_SUPPORT=void 0===j.TYPED_ARRAY_SUPPORT||j.TYPED_ARRAY_SUPPORT,GE(),VE.poolSize=8192,VE._augment=function(e){return e.__proto__=VE.prototype,e},VE.from=function(e,t,r){return HE(null,e,t,r)},VE.TYPED_ARRAY_SUPPORT&&(VE.prototype.__proto__=Uint8Array.prototype,VE.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&VE[Symbol.species]),VE.alloc=function(e,t,r){return function(e,t,r,a){return zE(t),t<=0?WE(e,t):void 0!==r?"string"==typeof a?WE(e,t).fill(r,a):WE(e,t).fill(r):WE(e,t)}(null,e,t,r)},VE.allocUnsafe=function(e){return KE(null,e)},VE.allocUnsafeSlow=function(e){return KE(null,e)},VE.isBuffer=PS,VE.compare=function(e,t){if(!YE(e)||!YE(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var r=e.length,a=t.length,n=0,s=Math.min(r,a);n<s;++n)if(e[n]!==t[n]){r=e[n],a=t[n];break}return r<a?-1:a<r?1:0},VE.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},VE.concat=function(e,t){if(!qE(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return VE.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var a=VE.allocUnsafe(t),n=0;for(r=0;r<e.length;++r){var s=e[r];if(!YE(s))throw new TypeError('"list" argument must be an Array of Buffers');s.copy(a,n),n+=s.length}return a},VE.byteLength=$E,VE.prototype._isBuffer=!0,VE.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)ZE(this,t,t+1);return this},VE.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)ZE(this,t,t+3),ZE(this,t+1,t+2);return this},VE.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)ZE(this,t,t+7),ZE(this,t+1,t+6),ZE(this,t+2,t+5),ZE(this,t+3,t+4);return this},VE.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?cS(this,0,e):QE.apply(this,arguments)},VE.prototype.equals=function(e){if(!YE(e))throw new TypeError("Argument must be a Buffer");return this===e||0===VE.compare(this,e)},VE.prototype.inspect=function(){var e="";return this.length>0&&(e=this.toString("hex",0,50).match(/.{2}/g).join(" "),this.length>50&&(e+=" ... ")),"<Buffer "+e+">"},VE.prototype.compare=function(e,t,r,a,n){if(!YE(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===r&&(r=e?e.length:0),void 0===a&&(a=0),void 0===n&&(n=this.length),t<0||r>e.length||a<0||n>this.length)throw new RangeError("out of range index");if(a>=n&&t>=r)return 0;if(a>=n)return-1;if(t>=r)return 1;if(this===e)return 0;for(var s=(n>>>=0)-(a>>>=0),o=(r>>>=0)-(t>>>=0),i=Math.min(s,o),d=this.slice(a,n),c=e.slice(t,r),l=0;l<i;++l)if(d[l]!==c[l]){s=d[l],o=c[l];break}return s<o?-1:o<s?1:0},VE.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},VE.prototype.indexOf=function(e,t,r){return eS(this,e,t,r,!0)},VE.prototype.lastIndexOf=function(e,t,r){return eS(this,e,t,r,!1)},VE.prototype.write=function(e,t,r,a){if(void 0===t)a="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)a=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(r)?(r|=0,void 0===a&&(a="utf8")):(a=r,r=void 0)}var n=this.length-t;if((void 0===r||r>n)&&(r=n),e.length>0&&(r<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");a||(a="utf8");for(var s=!1;;)switch(a){case"hex":return rS(this,e,t,r);case"utf8":case"utf-8":return aS(this,e,t,r);case"ascii":return nS(this,e,t,r);case"latin1":case"binary":return sS(this,e,t,r);case"base64":return oS(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return iS(this,e,t,r);default:if(s)throw new TypeError("Unknown encoding: "+a);a=(""+a).toLowerCase(),s=!0}},VE.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var lS=4096;function uS(e,t,r){var a="";r=Math.min(e.length,r);for(var n=t;n<r;++n)a+=String.fromCharCode(127&e[n]);return a}function pS(e,t,r){var a="";r=Math.min(e.length,r);for(var n=t;n<r;++n)a+=String.fromCharCode(e[n]);return a}function fS(e,t,r){var a=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>a)&&(r=a);for(var n="",s=t;s<r;++s)n+=wS(e[s]);return n}function gS(e,t,r){for(var a=e.slice(t,r),n="",s=0;s<a.length;s+=2)n+=String.fromCharCode(a[s]+256*a[s+1]);return n}function mS(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function yS(e,t,r,a,n,s){if(!YE(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>n||t<s)throw new RangeError('"value" argument is out of bounds');if(r+a>e.length)throw new RangeError("Index out of range")}function hS(e,t,r,a){t<0&&(t=65535+t+1);for(var n=0,s=Math.min(e.length-r,2);n<s;++n)e[r+n]=(t&255<<8*(a?n:1-n))>>>8*(a?n:1-n)}function bS(e,t,r,a){t<0&&(t=4294967295+t+1);for(var n=0,s=Math.min(e.length-r,4);n<s;++n)e[r+n]=t>>>8*(a?n:3-n)&255}function vS(e,t,r,a,n,s){if(r+a>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function xS(e,t,r,a,n){return n||vS(e,0,r,4),LE(e,t,r,a,23,4),r+4}function RS(e,t,r,a,n){return n||vS(e,0,r,8),LE(e,t,r,a,52,8),r+8}VE.prototype.slice=function(e,t){var r,a=this.length;if((e=~~e)<0?(e+=a)<0&&(e=0):e>a&&(e=a),(t=void 0===t?a:~~t)<0?(t+=a)<0&&(t=0):t>a&&(t=a),t<e&&(t=e),VE.TYPED_ARRAY_SUPPORT)(r=this.subarray(e,t)).__proto__=VE.prototype;else{var n=t-e;r=new VE(n,void 0);for(var s=0;s<n;++s)r[s]=this[s+e]}return r},VE.prototype.readUIntLE=function(e,t,r){e|=0,t|=0,r||mS(e,t,this.length);for(var a=this[e],n=1,s=0;++s<t&&(n*=256);)a+=this[e+s]*n;return a},VE.prototype.readUIntBE=function(e,t,r){e|=0,t|=0,r||mS(e,t,this.length);for(var a=this[e+--t],n=1;t>0&&(n*=256);)a+=this[e+--t]*n;return a},VE.prototype.readUInt8=function(e,t){return t||mS(e,1,this.length),this[e]},VE.prototype.readUInt16LE=function(e,t){return t||mS(e,2,this.length),this[e]|this[e+1]<<8},VE.prototype.readUInt16BE=function(e,t){return t||mS(e,2,this.length),this[e]<<8|this[e+1]},VE.prototype.readUInt32LE=function(e,t){return t||mS(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},VE.prototype.readUInt32BE=function(e,t){return t||mS(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},VE.prototype.readIntLE=function(e,t,r){e|=0,t|=0,r||mS(e,t,this.length);for(var a=this[e],n=1,s=0;++s<t&&(n*=256);)a+=this[e+s]*n;return a>=(n*=128)&&(a-=Math.pow(2,8*t)),a},VE.prototype.readIntBE=function(e,t,r){e|=0,t|=0,r||mS(e,t,this.length);for(var a=t,n=1,s=this[e+--a];a>0&&(n*=256);)s+=this[e+--a]*n;return s>=(n*=128)&&(s-=Math.pow(2,8*t)),s},VE.prototype.readInt8=function(e,t){return t||mS(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},VE.prototype.readInt16LE=function(e,t){t||mS(e,2,this.length);var r=this[e]|this[e+1]<<8;return 32768&r?4294901760|r:r},VE.prototype.readInt16BE=function(e,t){t||mS(e,2,this.length);var r=this[e+1]|this[e]<<8;return 32768&r?4294901760|r:r},VE.prototype.readInt32LE=function(e,t){return t||mS(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},VE.prototype.readInt32BE=function(e,t){return t||mS(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},VE.prototype.readFloatLE=function(e,t){return t||mS(e,4,this.length),FE(this,e,!0,23,4)},VE.prototype.readFloatBE=function(e,t){return t||mS(e,4,this.length),FE(this,e,!1,23,4)},VE.prototype.readDoubleLE=function(e,t){return t||mS(e,8,this.length),FE(this,e,!0,52,8)},VE.prototype.readDoubleBE=function(e,t){return t||mS(e,8,this.length),FE(this,e,!1,52,8)},VE.prototype.writeUIntLE=function(e,t,r,a){(e=+e,t|=0,r|=0,a)||yS(this,e,t,r,Math.pow(2,8*r)-1,0);var n=1,s=0;for(this[t]=255&e;++s<r&&(n*=256);)this[t+s]=e/n&255;return t+r},VE.prototype.writeUIntBE=function(e,t,r,a){(e=+e,t|=0,r|=0,a)||yS(this,e,t,r,Math.pow(2,8*r)-1,0);var n=r-1,s=1;for(this[t+n]=255&e;--n>=0&&(s*=256);)this[t+n]=e/s&255;return t+r},VE.prototype.writeUInt8=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,1,255,0),VE.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},VE.prototype.writeUInt16LE=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,2,65535,0),VE.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):hS(this,e,t,!0),t+2},VE.prototype.writeUInt16BE=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,2,65535,0),VE.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):hS(this,e,t,!1),t+2},VE.prototype.writeUInt32LE=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,4,4294967295,0),VE.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):bS(this,e,t,!0),t+4},VE.prototype.writeUInt32BE=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,4,4294967295,0),VE.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):bS(this,e,t,!1),t+4},VE.prototype.writeIntLE=function(e,t,r,a){if(e=+e,t|=0,!a){var n=Math.pow(2,8*r-1);yS(this,e,t,r,n-1,-n)}var s=0,o=1,i=0;for(this[t]=255&e;++s<r&&(o*=256);)e<0&&0===i&&0!==this[t+s-1]&&(i=1),this[t+s]=(e/o|0)-i&255;return t+r},VE.prototype.writeIntBE=function(e,t,r,a){if(e=+e,t|=0,!a){var n=Math.pow(2,8*r-1);yS(this,e,t,r,n-1,-n)}var s=r-1,o=1,i=0;for(this[t+s]=255&e;--s>=0&&(o*=256);)e<0&&0===i&&0!==this[t+s+1]&&(i=1),this[t+s]=(e/o|0)-i&255;return t+r},VE.prototype.writeInt8=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,1,127,-128),VE.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},VE.prototype.writeInt16LE=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,2,32767,-32768),VE.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):hS(this,e,t,!0),t+2},VE.prototype.writeInt16BE=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,2,32767,-32768),VE.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):hS(this,e,t,!1),t+2},VE.prototype.writeInt32LE=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,4,2147483647,-2147483648),VE.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):bS(this,e,t,!0),t+4},VE.prototype.writeInt32BE=function(e,t,r){return e=+e,t|=0,r||yS(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),VE.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):bS(this,e,t,!1),t+4},VE.prototype.writeFloatLE=function(e,t,r){return xS(this,e,t,!0,r)},VE.prototype.writeFloatBE=function(e,t,r){return xS(this,e,t,!1,r)},VE.prototype.writeDoubleLE=function(e,t,r){return RS(this,e,t,!0,r)},VE.prototype.writeDoubleBE=function(e,t,r){return RS(this,e,t,!1,r)},VE.prototype.copy=function(e,t,r,a){if(r||(r=0),a||0===a||(a=this.length),t>=e.length&&(t=e.length),t||(t=0),a>0&&a<r&&(a=r),a===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=this.length)throw new RangeError("sourceStart out of bounds");if(a<0)throw new RangeError("sourceEnd out of bounds");a>this.length&&(a=this.length),e.length-t<a-r&&(a=e.length-t+r);var n,s=a-r;if(this===e&&r<t&&t<a)for(n=s-1;n>=0;--n)e[n+t]=this[n+r];else if(s<1e3||!VE.TYPED_ARRAY_SUPPORT)for(n=0;n<s;++n)e[n+t]=this[n+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+s),t);return s},VE.prototype.fill=function(e,t,r,a){if("string"==typeof e){if("string"==typeof t?(a=t,t=0,r=this.length):"string"==typeof r&&(a=r,r=this.length),1===e.length){var n=e.charCodeAt(0);n<256&&(e=n)}if(void 0!==a&&"string"!=typeof a)throw new TypeError("encoding must be a string");if("string"==typeof a&&!VE.isEncoding(a))throw new TypeError("Unknown encoding: "+a)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;var s;if(t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0),"number"==typeof e)for(s=t;s<r;++s)this[s]=e;else{var o=YE(e)?e:ES(new VE(e,a).toString()),i=o.length;for(s=0;s<r-t;++s)this[s+t]=o[s%i]}return this};var jS=/[^+\/0-9A-Za-z-_]/g;function wS(e){return e<16?"0"+e.toString(16):e.toString(16)}function ES(e,t){var r;t=t||1/0;for(var a=e.length,n=null,s=[],o=0;o<a;++o){if((r=e.charCodeAt(o))>55295&&r<57344){if(!n){if(r>56319){(t-=3)>-1&&s.push(239,191,189);continue}if(o+1===a){(t-=3)>-1&&s.push(239,191,189);continue}n=r;continue}if(r<56320){(t-=3)>-1&&s.push(239,191,189),n=r;continue}r=65536+(n-55296<<10|r-56320)}else n&&(t-=3)>-1&&s.push(239,191,189);if(n=null,r<128){if((t-=1)<0)break;s.push(r)}else if(r<2048){if((t-=2)<0)break;s.push(r>>6|192,63&r|128)}else if(r<65536){if((t-=3)<0)break;s.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;s.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return s}function SS(e){return function(e){var t,r,a,n,s,o;DE||OE();var i=e.length;if(i%4>0)throw new Error("Invalid string. Length must be a multiple of 4");s="="===e[i-2]?2:"="===e[i-1]?1:0,o=new IE(3*i/4-s),a=s>0?i-4:i;var d=0;for(t=0,r=0;t<a;t+=4,r+=3)n=_E[e.charCodeAt(t)]<<18|_E[e.charCodeAt(t+1)]<<12|_E[e.charCodeAt(t+2)]<<6|_E[e.charCodeAt(t+3)],o[d++]=n>>16&255,o[d++]=n>>8&255,o[d++]=255&n;return 2===s?(n=_E[e.charCodeAt(t)]<<2|_E[e.charCodeAt(t+1)]>>4,o[d++]=255&n):1===s&&(n=_E[e.charCodeAt(t)]<<10|_E[e.charCodeAt(t+1)]<<4|_E[e.charCodeAt(t+2)]>>2,o[d++]=n>>8&255,o[d++]=255&n),o}(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(jS,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function TS(e,t,r,a){for(var n=0;n<a&&!(n+r>=t.length||n>=e.length);++n)t[n+r]=e[n];return n}function PS(e){return null!=e&&(!!e._isBuffer||AS(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&AS(e.slice(0,0))}(e))}function AS(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}for(var kS=",".charCodeAt(0),CS=";".charCodeAt(0),_S="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",IS=new Uint8Array(64),DS=new Uint8Array(128),OS=0;OS<64;OS++){var NS=_S.charCodeAt(OS);IS[OS]=NS,DS[NS]=OS}function BS(e,t){var r=0,a=0,n=0;do{var s=e.next();r|=(31&(n=DS[s]))<<a,a+=5}while(32&n);var o=1&r;return r>>>=1,o&&(r=-2147483648|-r),t+r}function MS(e,t,r){var a=t-r;a=a<0?-a<<1|1:a<<1;do{var n=31&a;(a>>>=5)>0&&(n|=32),e.write(IS[n])}while(a>0);return t}function FS(e,t){return!(e.pos>=t)&&e.peek()!==kS}var LS="undefined"!=typeof TextDecoder?new TextDecoder:void 0!==VE?{decode:function(e){return VE.from(e.buffer,e.byteOffset,e.byteLength).toString()}}:{decode:function(e){for(var t="",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t}},US=function(){function e(){this.pos=0,this.out="",this.buffer=new Uint8Array(16384)}var t=e.prototype;return t.write=function(e){var t=this.buffer;t[this.pos++]=e,16384===this.pos&&(this.out+=LS.decode(t),this.pos=0)},t.flush=function(){var e=this.buffer,t=this.out,r=this.pos;return r>0?t+LS.decode(e.subarray(0,r)):t},o(e)}(),qS=function(){function e(e){this.pos=0,this.buffer=e}var t=e.prototype;return t.next=function(){return this.buffer.charCodeAt(this.pos++)},t.peek=function(){return this.buffer.charCodeAt(this.pos)},t.indexOf=function(e){var t=this.buffer,r=this.pos,a=t.indexOf(e,r);return-1===a?t.length:a},o(e)}();function GS(e){e.sort(WS)}function WS(e,t){return e[0]-t[0]}function VS(e){for(var t=new US,r=0,a=0,n=0,s=0,o=0;o<e.length;o++){var i=e[o];if(o>0&&t.write(CS),0!==i.length)for(var d=0,c=0;c<i.length;c++){var l=i[c];c>0&&t.write(kS),d=MS(t,l[0],d),1!==l.length&&(r=MS(t,l[1],r),a=MS(t,l[2],a),n=MS(t,l[3],n),4!==l.length&&(s=MS(t,l[4],s)))}}return t.flush()}var HS=/^[\w+.-]+:\/\//,zS=/^([\w+.-]+:)\/\/([^@/#?]*@)?([^:/#?]*)(:\d+)?(\/[^#?]*)?(\?[^#]*)?(#.*)?/,KS=/^file:(?:\/\/((?![a-z]:)[^/#?]*)?)?(\/?[^#?]*)(\?[^#]*)?(#.*)?/i;function XS(e){return e.startsWith("/")}function JS(e){return/^[.?#]/.test(e)}function YS(e){var t=zS.exec(e);return $S(t[1],t[2]||"",t[3],t[4]||"",t[5]||"/",t[6]||"",t[7]||"")}function $S(e,t,r,a,n,s,o){return{scheme:e,user:t,host:r,port:a,path:n,query:s,hash:o,type:7}}function QS(e){if(function(e){return e.startsWith("//")}(e)){var t=YS("http:"+e);return t.scheme="",t.type=6,t}if(XS(e)){var r=YS("http://foo.com"+e);return r.scheme="",r.host="",r.type=5,r}if(function(e){return e.startsWith("file:")}(e))return function(e){var t=KS.exec(e),r=t[2];return $S("file:","",t[1]||"","",XS(r)?r:"/"+r,t[3]||"",t[4]||"")}(e);if(function(e){return HS.test(e)}(e))return YS(e);var a=YS("http://foo.com/"+e);return a.scheme="",a.host="",a.type=e?e.startsWith("?")?3:e.startsWith("#")?2:4:1,a}function ZS(e,t){for(var r=t<=4,a=e.path.split("/"),n=1,s=0,o=!1,i=1;i<a.length;i++){var d=a[i];d?(o=!1,"."!==d&&(".."!==d?(a[n++]=d,s++):s?(o=!0,s--,n--):r&&(a[n++]=d))):o=!0}for(var c="",l=1;l<n;l++)c+="/"+a[l];(!c||o&&!c.endsWith("/.."))&&(c+="/"),e.path=c}function eT(e,t){if(!e&&!t)return"";var r=QS(e),a=r.type;if(t&&7!==a){var n=QS(t),s=n.type;switch(a){case 1:r.hash=n.hash;case 2:r.query=n.query;case 3:case 4:!function(e,t){ZS(t,t.type),"/"===e.path?e.path=t.path:e.path=function(e){if(e.endsWith("/.."))return e;var t=e.lastIndexOf("/");return e.slice(0,t+1)}(t.path)+e.path}(r,n);case 5:r.user=n.user,r.host=n.host,r.port=n.port;case 6:r.scheme=n.scheme}s>a&&(a=s)}ZS(r,a);var o=r.query+r.hash;switch(a){case 2:case 3:return o;case 4:var i=r.path.slice(1);return i?JS(t||e)&&!JS(i)?"./"+i+o:i+o:o||".";case 5:return r.path+o;default:return r.scheme+"//"+r.user+r.host+r.port+r.path+o}}function tT(e,t){for(var r=t;r<e.length;r++)if(!rT(e[r]))return r;return e.length}function rT(e){for(var t=1;t<e.length;t++)if(e[t][0]<e[t-1][0])return!1;return!0}function aT(e,t){return t||(e=e.slice()),e.sort(nT)}function nT(e,t){return e[0]-t[0]}var sT=!1;function oT(e,t,r){for(var a=r+1;a<e.length&&e[a][0]===t;r=a++);return r}function iT(e,t,r){for(var a=r-1;a>=0&&e[a][0]===t;r=a--);return r}function dT(e,t,r,a){var n=r.lastKey,s=r.lastNeedle,o=r.lastIndex,i=0,d=e.length-1;if(a===n){if(t===s)return sT=-1!==o&&e[o][0]===t,o;t>=s?i=-1===o?0:o:d=o}return r.lastKey=a,r.lastNeedle=t,r.lastIndex=function(e,t,r,a){for(;r<=a;){var n=r+(a-r>>1),s=e[n][0]-t;if(0===s)return sT=!0,n;s<0?r=n+1:a=n-1}return sT=!1,r-1}(e,t,i,d)}var cT=o(function(e,t){var r="string"==typeof e;if(!r&&e._decodedMemo)return e;var a=function(e){return"string"==typeof e?JSON.parse(e):e}(e),n=a.version,s=a.file,o=a.names,i=a.sourceRoot,d=a.sources,c=a.sourcesContent;this.version=n,this.file=s,this.names=o||[],this.sourceRoot=i,this.sources=d,this.sourcesContent=c,this.ignoreList=a.ignoreList||a.x_google_ignoreList||void 0;var l=function(e,t){var r=function(e){if(!e)return"";var t=e.lastIndexOf("/");return e.slice(0,t+1)}(e),a=t?t+"/":"";return function(e){return eT(a+(e||""),r)}}(t,i);this.resolvedSources=d.map(l);var u=a.mappings;if("string"==typeof u)this._encoded=u,this._decoded=void 0;else{if(!Array.isArray(u))throw a.sections?new Error("TraceMap passed sectioned source map, please use FlattenMap export instead"):new Error("invalid source map: "+JSON.stringify(a));this._encoded=void 0,this._decoded=function(e,t){var r=tT(e,0);if(r===e.length)return e;t||(e=e.slice());for(var a=r;a<e.length;a=tT(e,a+1))e[a]=aT(e[a],t);return e}(u,r)}this._decodedMemo={lastKey:-1,lastNeedle:-1,lastIndex:-1},this._bySources=void 0,this._bySourceMemos=void 0});function lT(e){var t;return(t=e)._decoded||(t._decoded=function(e){var t=e.length,r=new qS(e),a=[],n=0,s=0,o=0,i=0,d=0;do{var c=r.indexOf(";"),l=[],u=!0,p=0;for(n=0;r.pos<c;){var f=void 0;(n=BS(r,n))<p&&(u=!1),p=n,FS(r,c)?(s=BS(r,s),o=BS(r,o),i=BS(r,i),f=FS(r,c)?[n,s,o,i,d=BS(r,d)]:[n,s,o,i]):f=[n],l.push(f),r.pos++}u||GS(l),a.push(l),r.pos=c+1}while(r.pos<=t);return a}(e._encoded))}function uT(e,t){var r=t.line,a=t.column,n=t.bias;if(--r<0)throw new Error("`line` must be greater than 0 (lines start at line 1)");if(a<0)throw new Error("`column` must be greater than or equal to 0 (columns start at column 0)");var s=lT(e);if(r>=s.length)return pT(null,null,null,null);var o=s[r],i=fT(o,e._decodedMemo,r,a,n||1);if(-1===i)return pT(null,null,null,null);var d=o[i];if(1===d.length)return pT(null,null,null,null);var c=e.names;return pT(e.resolvedSources[d[1]],d[2]+1,d[3],5===d.length?c[d[4]]:null)}function pT(e,t,r,a){return{source:e,line:t,column:r,name:a}}function fT(e,t,r,a,n){var s=dT(e,a,t,r);return sT?s=(-1===n?oT:iT)(e,a,s):-1===n&&s++,-1===s||s===e.length?-1:s}var gT=o(function(){this._indexes={__proto__:null},this.array=[]});function mT(e,t){var r=function(e,t){return e._indexes[t]}(e,t);if(void 0!==r)return r;var a=e,n=a.array,s=a._indexes,o=n.push(t);return s[t]=o-1}var yT=o(function(e){var t=void 0===e?{}:e,r=t.file,a=t.sourceRoot;this._names=new gT,this._sources=new gT,this._sourcesContent=[],this._mappings=[],this.file=r,this.sourceRoot=a,this._ignoreList=new gT});var hT=function(e,t,r,a,n,s,o,i){return wT(!0,e,t,r,a,n,s,o,i)},bT=function(e,t){return function(e,t,r){var a=r.generated,n=r.source,s=r.original,o=r.name,i=r.content;if(!n)return wT(e,t,a.line-1,a.column,null,null,null,null,null);return wT(e,t,a.line-1,a.column,n,s.line-1,s.column,o,i)}(!0,e,t)};function vT(e,t,r){var a=e,n=a._sources;a._sourcesContent[mT(n,t)]=r}function xT(e,t,r){var a=e,n=a._sources,s=a._sourcesContent,o=a._ignoreList,i=mT(n,t);i===s.length&&(s[i]=null),mT(o,i)}function RT(e){var t=e,r=t._mappings,a=t._sources,n=t._sourcesContent,s=t._names,o=t._ignoreList;return function(e){for(var t=e.length,r=t,a=r-1;a>=0&&!(e[a].length>0);r=a,a--);r<t&&(e.length=r)}(r),{version:3,file:e.file||void 0,names:s.array,sourceRoot:e.sourceRoot||void 0,sources:a.array,sourcesContent:n,mappings:r,ignoreList:o.array}}function jT(e){var t=RT(e);return Object.assign({},t,{mappings:VS(t.mappings)})}function wT(e,t,r,a,n,s,o,i,d){var c=t,l=c._mappings,u=c._sources,p=c._sourcesContent,f=c._names,g=function(e,t){for(var r=e.length;r<=t;r++)e[r]=[];return e[t]}(l,r),m=function(e,t){for(var r=e.length,a=r-1;a>=0;r=a--){if(t>=e[a][0])break}return r}(g,a);if(!n){if(function(e,t){if(0===t)return!0;var r=e[t-1];return 1===r.length}(g,m))return;return ET(g,m,[a])}var y=mT(u,n),h=i?mT(f,i):-1;if(y===p.length&&(p[y]=null!=d?d:null),!function(e,t,r,a,n,s){if(0===t)return!1;var o=e[t-1];return 1!==o.length&&(r===o[1]&&a===o[2]&&n===o[3]&&s===(5===o.length?o[4]:-1))}(g,m,y,s,o,h))return ET(g,m,i?[a,y,s,o,h]:[a,y,s,o])}function ET(e,t,r){for(var a=e.length;a>t;a--)e[a]=e[a-1];e[t]=r}for(var ST=function(){function e(e,t){var r;this._map=void 0,this._rawMappings=void 0,this._sourceFileName=void 0,this._lastGenLine=0,this._lastSourceLine=0,this._lastSourceColumn=0,this._inputMap=null;var a=this._map=new yT({sourceRoot:e.sourceRoot});if(this._sourceFileName=null==(r=e.sourceFileName)?void 0:r.replace(/\\/g,"/"),this._rawMappings=void 0,e.inputSourceMap){this._inputMap=new cT(e.inputSourceMap);var n=this._inputMap.resolvedSources;if(n.length)for(var s=0;s<n.length;s++){var o;vT(a,n[s],null==(o=this._inputMap.sourcesContent)?void 0:o[s])}}if("string"!=typeof t||e.inputSourceMap){if("object"==typeof t)for(var i=0,d=Object.keys(t);i<d.length;i++){var c=d[i];vT(a,c.replace(/\\/g,"/"),t[c])}}else vT(a,this._sourceFileName,t)}var t=e.prototype;return t.get=function(){return jT(this._map)},t.getDecoded=function(){return RT(this._map)},t.getRawMappings=function(){return this._rawMappings||(this._rawMappings=function(e){for(var t=[],r=e,a=r._mappings,n=r._sources,s=r._names,o=0;o<a.length;o++)for(var i=a[o],d=0;d<i.length;d++){var c=i[d],l={line:o+1,column:c[0]},u=void 0,p=void 0,f=void 0;1!==c.length&&(u=n.array[c[1]],p={line:c[2]+1,column:c[3]},5===c.length&&(f=s.array[c[4]])),t.push({generated:l,source:u,original:p,name:f})}return t}(this._map))},t.mark=function(e,t,r,a,n,s){var o,i;if(this._rawMappings=void 0,null!=t)if(this._inputMap){if(!(i=uT(this._inputMap,{line:t,column:r})).name&&n){var d=uT(this._inputMap,n);d.name&&(a=d.name)}}else i={name:null,source:(null==s?void 0:s.replace(/\\/g,"/"))||this._sourceFileName,line:t,column:r};bT(this._map,{name:a,generated:e,source:null==(o=i)?void 0:o.source,original:i})},o(e)}(),TT=[],PT=0;PT<32;PT++)TT.push(" ".repeat(2*PT));var AT=function(){function e(e,t){this._map=null,this._buf="",this._str="",this._appendCount=0,this._last=0,this._canMarkIdName=!0,this._indentChar="",this._queuedChar=0,this._position={line:1,column:0},this._sourcePosition={identifierName:void 0,identifierNamePos:void 0,line:void 0,column:void 0,filename:void 0},this._map=e,this._indentChar=t}var t=e.prototype;return t.get=function(){var e=this._map,t=this._last;32!==this._queuedChar&&this._flush();var r=10===t?(this._buf+this._str).trimRight():this._buf+this._str;if(null===e)return{code:r,decodedMap:void 0,map:null,rawMappings:void 0};var a={code:r,decodedMap:e.getDecoded(),get __mergedMap(){return this.map},get map(){var t=e.get();return a.map=t,t},set map(e){Object.defineProperty(a,"map",{value:e,writable:!0})},get rawMappings(){var t=e.getRawMappings();return a.rawMappings=t,t},set rawMappings(e){Object.defineProperty(a,"rawMappings",{value:e,writable:!0})}};return a},t.append=function(e,t){this._flush(),this._append(e,t)},t.appendChar=function(e){this._flush(),this._appendChar(e,1,!0)},t.queue=function(e){this._flush(),this._queuedChar=e},t._flush=function(){var e=this._queuedChar;0!==e&&(this._appendChar(e,1,!0),this._queuedChar=0)},t._appendChar=function(e,t,r){if(this._last=e,-1===e){var a=t>64?this._indentChar.repeat(t):TT[t/2];this._str+=a}else this._str+=t>1?String.fromCharCode(e).repeat(t):String.fromCharCode(e);var n=32===e,s=this._position;if(10!==e){if(this._map){var o=this._sourcePosition;r&&o?(this._map.mark(s,o.line,o.column,n?void 0:o.identifierName,n?void 0:o.identifierNamePos,o.filename),!n&&this._canMarkIdName&&(o.identifierName=void 0,o.identifierNamePos=void 0)):this._map.mark(s)}s.column+=t}else s.line++,s.column=0},t._append=function(e,t){var r=e.length,a=this._position,n=this._sourcePosition;this._last=-1,++this._appendCount>4096?(this._str,this._buf+=this._str,this._str=e,this._appendCount=0):this._str+=e;var s=null!==this._map;if(t||s){var o=n.column,i=n.identifierName,d=n.identifierNamePos,c=n.filename,l=n.line;null==i&&null==d||!this._canMarkIdName||(n.identifierName=void 0,n.identifierNamePos=void 0);var u=e.indexOf("\n"),p=0;for(s&&0!==u&&this._map.mark(a,l,o,i,d,c);-1!==u;)a.line++,a.column=0,(p=u+1)<r&&void 0!==l&&(l++,s&&this._map.mark(a,l,0,void 0,void 0,c)),u=e.indexOf("\n",p);a.column+=r-p}else a.column+=r},t.removeLastSemicolon=function(){59===this._queuedChar&&(this._queuedChar=0)},t.getLastChar=function(e){if(!e)return this._last;var t=this._queuedChar;return 0!==t?t:this._last},t.getNewlineCount=function(){return 0===this._queuedChar&&10===this._last?1:0},t.hasContent=function(){return 0!==this._last},t.exactSource=function(e,t){if(this._map){this.source("start",e);var r=e.identifierName,a=this._sourcePosition;null!=r&&(this._canMarkIdName=!1,a.identifierName=r),t(),null!=r&&(this._canMarkIdName=!0,a.identifierName=void 0,a.identifierNamePos=void 0),this.source("end",e)}else t()},t.source=function(e,t){this._map&&this._normalizePosition(e,t,0)},t.sourceWithOffset=function(e,t,r){this._map&&this._normalizePosition(e,t,r)},t._normalizePosition=function(e,t,r){this._flush();var a=t[e],n=this._sourcePosition;a&&(n.line=a.line,n.column=Math.max(a.column+r,0),n.filename=t.filename)},t.getCurrentColumn=function(){return this._position.column+(this._queuedChar?1:0)},t.getCurrentLine=function(){return this._position.line},o(e)}(),kT=me,CT=at,_T=Qe,IT=er,DT=new Map([["||",0],["??",1],["&&",2],["|",3],["^",4],["&",5],["==",6],["===",6],["!=",6],["!==",6],["<",7],[">",7],["<=",7],[">=",7],["in",7],["instanceof",7],[">>",8],["<<",8],[">>>",8],["+",9],["-",9],["*",10],["/",10],["%",10],["**",11]]);function OT(e){return 156===e||201===e||209===e}var NT=function(e,t,r){return(21===r||22===r)&&t.superClass===e},BT=function(e,t,r){switch(r){case 108:case 132:return t.object===e;case 17:case 130:case 112:return t.callee===e;case 222:return t.tag===e;case 191:return!0}return!1};function MT(e){return(e&(HA.expressionStatement|HA.arrowBody))>0}function FT(e,t,r,a){if(NT(e,t,r))return!0;if(BT(e,t,r)||238===r||145===r||8===r)return!0;var n;switch(r){case 10:case 107:n=DT.get(t.operator);break;case 156:case 201:n=7}if(void 0!==n){var s=2===a?7:DT.get(e.operator);if(n>s)return!0;if(n===s&&10===r&&(11===s?t.left===e:t.right===e))return!0;if(1===a&&107===r&&(1===s&&1!==n||1===n&&1!==s))return!0}return!1}function LT(e,t,r){switch(r){case 4:case 115:case 90:case 239:return!0}return!1}function UT(e,t,r){return(6===r||7===r)&&t.left===e||(10===r&&("|"===t.operator||"&"===t.operator)&&e===t.left||FT(e,t,r,2))}function qT(e,t,r){switch(r){case 181:case 211:case 155:case 195:return!0;case 175:return t.objectType===e}return!1}function GT(e,t,r){switch(r){case 155:case 195:return!0;case 175:if(t.objectType===e)return!0}return!1}function WT(e,t,r){return!!qT(e,t,r)||(219===r||161===r&&(t.checkType===e||t.extendsType===e))}function VT(e,t,r){return 10===r||107===r||238===r||145===r||BT(e,t,r)||8===r&&_T(e)||28===r&&e===t.test||NT(e,t,r)||OT(r)}function HT(e,t,r){return BT(e,t,r)||10===r&&"**"===t.operator&&t.left===e||NT(e,t,r)}function zT(e,t,r){switch(r){case 238:case 145:case 10:case 107:case 8:return!0;case 28:if(t.test===e)return!0}return!!OT(r)||HT(e,t,r)}function KT(e,t,r){switch(r){case 17:return t.callee===e;case 108:return t.object===e}return!1}var XT=Object.freeze({__proto__:null,ArrowFunctionExpression:zT,AssignmentExpression:function(e,t,r,a){return!(!MT(a)||"ObjectPattern"!==e.left.type)||zT(e,t,r)},AwaitExpression:VT,BinaryExpression:function(e,t,r,a){return!!FT(e,t,r,0)||(a&HA.forInOrInitHeadAccumulate)>0&&"in"===e.operator},ClassExpression:function(e,t,r,a){return(a&(HA.expressionStatement|HA.exportDefault))>0},ConditionalExpression:zT,DoExpression:function(e,t,r,a){return(a&HA.expressionStatement)>0&&!e.async},FunctionExpression:function(e,t,r,a){return(a&(HA.expressionStatement|HA.exportDefault))>0},FunctionTypeAnnotation:function(e,t,r,a){return 239===r||90===r||4===r||(a&HA.arrowFlowReturnType)>0},Identifier:function(e,t,r,a,n){var s;if(n&&n(e)!==e.name)return!1;if(6===r&&null!=(s=e.extra)&&s.parenthesized&&t.left===e){var o=t.right.type;if(("FunctionExpression"===o||"ClassExpression"===o)&&null==t.right.id)return!0}return(a&HA.forOfHead||(108===r||132===r)&&a&(HA.expressionStatement|HA.forInitHead|HA.forInHead))&&"let"===e.name?!!((kT(t,{object:e,computed:!0})||CT(t,{object:e,computed:!0,optional:!1}))&&a&(HA.expressionStatement|HA.forInitHead|HA.forInHead))||(a&HA.forOfHead)>0:68===r&&t.left===e&&"async"===e.name&&!t.await},IntersectionTypeAnnotation:LT,LogicalExpression:function(e,t,r){return FT(e,t,r,1)},NullableTypeAnnotation:function(e,t,r){return 4===r},ObjectExpression:function(e,t,r,a){return MT(a)},OptionalCallExpression:KT,OptionalIndexedAccessType:function(e,t,r){return 84===r&&t.objectType===e},OptionalMemberExpression:KT,SequenceExpression:function(e,t,r){return!(144===r||133===r||108===r&&t.property===e||132===r&&t.property===e||224===r)&&(21===r||(68===r?t.right===e:60===r||!IT(t)))},SpreadElement:HT,TSAsExpression:UT,TSConditionalType:function(e,t,r){switch(r){case 155:case 195:case 211:case 212:return!0;case 175:return t.objectType===e;case 181:case 219:return t.types[0]===e;case 161:return t.checkType===e||t.extendsType===e}return!1},TSConstructorType:WT,TSFunctionType:WT,TSInferType:function(e,t,r){return!!GT(e,t,r)||!(181!==r&&219!==r||!e.typeParameter.constraint||t.types[0]!==e)},TSInstantiationExpression:function(e,t,r){switch(r){case 17:case 130:case 112:case 177:return null!=t.typeParameters}return!1},TSIntersectionType:function(e,t,r){return 211===r||GT(e,t,r)},TSSatisfiesExpression:UT,TSTypeAssertion:HT,TSTypeOperator:GT,TSUnionType:qT,UnaryExpression:HT,UnionTypeAnnotation:LT,UpdateExpression:function(e,t,r){return BT(e,t,r)||NT(e,t,r)},YieldExpression:VT});function JT(e,t){for(var r=e.quasis,a="`",n=0;n<r.length-1;n++)if(a+=r[n].value.raw,this.token(a+"${",!0),this.print(t[n]),a="}",this.tokenMap){var s=this.tokenMap.findMatching(e,"}",n);s&&this._catchUpTo(s.loc.start)}a+=r[r.length-1].value.raw,this.token(a+"`",!0)}var YT=Z,$T=dr,QT=me,ZT=ye,eP=ur;function tP(e){return"boolean"==typeof this.format.decoratorsBeforeExport?this.format.decoratorsBeforeExport:"number"==typeof e.start&&e.start===e.declaration.start}function rP(e){this.print(e.left),this.space(),this.token(e.operator,!1,0,!0),this.space(),this.print(e.right)}var aP=rr,nP=de,sP=er;function oP(e){var t=e.body;return!1===sP(t)?e:oP(t)}function iP(e,t){t&&(e.space(),e.printTerminatorless(t)),e.semicolon()}function dP(e){this.tokenChar(44,e),this.newline()}var cP=ie;function lP(e,t,r,a){if(this.print(e.typeParameters),void 0!==r||void 0!==a){var n=bP.call(this,r,a);n&&this.sourceIdentifierName(n.name,n.pos)}this.tokenChar(40),uP.call(this,e.params,41),this.print(e.returnType,t),this._noLineTerminator=t}function uP(e,t){for(var r=this.enterDelimited(),a=this.shouldPrintTrailingComma(t),n=e.length,s=0;s<n;s++)pP.call(this,e[s]),(a||s<n-1)&&(this.tokenChar(44,s),this.space());this.tokenChar(t),this._noLineTerminatorAfterNode=r}function pP(e){this.printJoin(e.decorators,void 0,void 0,void 0,void 0,!0),this.print(e,void 0,!0),e.optional&&this.tokenChar(63),this.print(e.typeAnnotation,void 0,!0)}function fP(e){var t=e.kind,r=e.key;"get"!==t&&"set"!==t||(this.word(t),this.space()),e.async&&(this.word("async",!0),this.space()),"method"!==t&&"init"!==t||e.generator&&this.tokenChar(42),e.computed?(this.tokenChar(91),this.print(r),this.tokenChar(93)):this.print(r),e.optional&&this.tokenChar(63),this._buf._map?lP.call(this,e,!1,e.computed&&"StringLiteral"!==e.key.type?void 0:e.key):lP.call(this,e,!1)}function gP(e,t){e.predicate&&(e.returnType||this.tokenChar(58),this.space(),this.print(e.predicate,t))}function mP(e,t,r){e.async&&(this.word("async"),this.format.preserveFormat||(this._innerCommentsState=0),this.space()),this.word("function"),e.generator&&(this.format.preserveFormat||(this._innerCommentsState=0),this.tokenChar(42)),this.space(),e.id&&this.print(e.id),this._buf._map?lP.call(this,e,!1,e.id,t):lP.call(this,e,!1),r&&gP.call(this,e)}function yP(e,t){mP.call(this,e,t,!0),this.space(),this.print(e.body)}function hP(e){var t,r;if(1!==e.params.length)return!0;if(e.typeParameters||e.returnType||e.predicate)return!0;var a=e.params[0];if(!cP(a)||a.typeAnnotation||a.optional||null!=(t=a.leadingComments)&&t.length||null!=(r=a.trailingComments)&&r.length)return!0;if(this.tokenMap){if(null==e.loc)return!0;if(null!==this.tokenMap.findMatching(e,"("))return!0;var n=this.tokenMap.findMatching(e,"=>");return null==(null==n?void 0:n.loc)||n.loc.start.line!==e.loc.start.line}return!!this.format.retainLines}function bP(e,t){var r=e;if(!r&&t){var a=t.type;"VariableDeclarator"===a?r=t.id:"AssignmentExpression"===a||"AssignmentPattern"===a?r=t.left:"ObjectProperty"===a||"ClassProperty"===a?t.computed&&"StringLiteral"!==t.key.type||(r=t.key):"ClassPrivateProperty"!==a&&"ClassAccessorProperty"!==a||(r=t.key)}if(r){var n,s,o;if("Identifier"===r.type)n={pos:null==(s=r.loc)?void 0:s.start,name:(null==(o=r.loc)?void 0:o.identifierName)||r.name};else if("PrivateName"===r.type){var i;n={pos:null==(i=r.loc)?void 0:i.start,name:"#"+r.id.name}}else if("StringLiteral"===r.type){var d;n={pos:null==(d=r.loc)?void 0:d.start,name:r.value}}return n}}function vP(e,t){var r=this;this.tokenChar(60);var a="ArrowFunctionExpression"===t.type&&1===e.params.length;this.tokenMap&&null!=e.start&&null!=e.end&&(a&&(a=!!this.tokenMap.find(e,function(e){return r.tokenMap.matchesOriginal(e,",")})),a||(a=this.shouldPrintTrailingComma(">"))),this.printList(e.params,a),this.tokenChar(62)}function xP(e,t){e.tokenMap&&t.start&&t.end?e.tokenMap.endMatches(t,",")?e.token(","):e.tokenMap.endMatches(t,";")&&e.semicolon():e.semicolon()}function RP(e){e.computed&&this.tokenChar(91),this.print(e.key),e.computed&&this.tokenChar(93),e.optional&&this.tokenChar(63)}function jP(e){var t=e.typeParameters,r=e.parameters;this.print(t),this.tokenChar(40),uP.call(this,r,41),this.space();var a=e.typeAnnotation;this.print(a)}function wP(e,t,r){var a,n=0;null!=(a=e.tokenMap)&&a.startMatches(t,r)&&(n=1,e.token(r)),e.printJoin(t.types,void 0,void 0,function(e){this.space(),this.token(r,void 0,e+n),this.space()})}function EP(e,t){!0!==t&&e.token(t)}function SP(e){this.print(e.expression),this.print(e.typeArguments)}function TP(e){var t=this;kP(this,e,function(){var r;return t.printList(e.members,null==(r=t.shouldPrintTrailingComma("}"))||r,!0,!0,void 0,!0)})}function PP(e){var t=e.typeParameters,r=e.parameters;this.print(t),this.tokenChar(40),uP.call(this,r,41);var a=e.typeAnnotation;this.print(a)}function AP(e){var t="ClassPrivateProperty"===e.type,r="ClassAccessorProperty"===e.type||"ClassProperty"===e.type;CP(this,e,[r&&e.declare&&"declare",!t&&e.accessibility]),e.static&&(this.word("static"),this.space()),CP(this,e,[!t&&e.abstract&&"abstract",!t&&e.override&&"override",(r||t)&&e.readonly&&"readonly"])}function kP(e,t,r){e.token("{");var a=e.enterDelimited();r(),e._noLineTerminatorAfterNode=a,e.rightBrace(t)}function CP(e,t,r){for(var a,n,s=new Set,o=i(r);!(n=o()).done;){var d=n.value;d&&s.add(d)}null==(a=e.tokenMap)||a.find(t,function(t){return!!s.has(t.value)&&(e.token(t.value),e.space(),s.delete(t.value),0===s.size)});for(var c,l=i(s);!(c=l()).done;){var u=c.value;e.word(u),e.space()}}var _P=Ne,IP=Nt,DP=rt,OP=Ge,NP=We,BP=er;var MP=!1;function FP(e,t){var r,a=e.attributes,n=e.assertions,s=this.format.importAttributesKeyword;a&&!s&&e.extra&&(e.extra.deprecatedAssertSyntax||e.extra.deprecatedWithLegacySyntax)&&!MP&&(MP=!0,console.warn('You are using import attributes, without specifying the desired output syntax.\nPlease specify the "importAttributesKeyword" generator option, whose value can be one of:\n - "with" : `import { a } from "b" with { type: "json" };`\n - "assert" : `import { a } from "b" assert { type: "json" };`\n - "with-legacy" : `import { a } from "b" with type: "json";`\n'));var o="assert"===s||!s&&n;if(this.word(o?"assert":"with"),this.space(),o||"with-legacy"!==s&&(s||null==(r=e.extra)||!r.deprecatedWithLegacySyntax)){var i=t?1:0;this.token("{",void 0,i),this.space(),this.printList(a||n,this.shouldPrintTrailingComma("}")),this.space(),this.token("}",void 0,i)}else this.printList(a||n)}function LP(e){var t,r;this.word("export"),this.space(),"type"===e.exportKind&&(this.word("type"),this.space()),this.tokenChar(42),this.space(),this.word("from"),this.space(),null!=(t=e.attributes)&&t.length||null!=(r=e.assertions)&&r.length?(this.print(e.source,!0),this.space(),FP.call(this,e,!1)):this.print(e.source),this.semicolon()}function UP(e,t){_P(t.declaration)&&tP.call(e,t)&&e.printJoin(t.declaration.decorators)}var qP={},GP=qP.hasOwnProperty,WP=function(e,t){for(var r in e)GP.call(e,r)&&t(r,e[r])},VP=function(e){return"\\u"+("0000"+e).slice(-4)},HP=function(e,t){var r=e.toString(16);return t?r:r.toUpperCase()},zP=qP.toString,KP=Array.isArray,XP={"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},JP=/[\\\b\f\n\r\t]/,YP=/[0-9]/,$P=/[\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,QP=/([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^]/g,ZP=/([\uD800-\uDBFF][\uDC00-\uDFFF])|([\uD800-\uDFFF])|(['"`])|[^ !#-&\(-\[\]-_a-~]/g,eA=function(e,t){var r,a,n=function(){p=u,++t.indentLevel,u=t.indent.repeat(t.indentLevel)},s={escapeEverything:!1,minimal:!1,isScriptContext:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:"\t",indentLevel:0,__inline1__:!1,__inline2__:!1},o=t&&t.json;o&&(s.quotes="double",s.wrap=!0),r=s,t=(a=t)?(WP(a,function(e,t){r[e]=t}),r):r,"single"!=t.quotes&&"double"!=t.quotes&&"backtick"!=t.quotes&&(t.quotes="single");var i,d="double"==t.quotes?'"':"backtick"==t.quotes?"`":"'",c=t.compact,l=t.lowercaseHex,u=t.indent.repeat(t.indentLevel),p="",f=t.__inline1__,g=t.__inline2__,m=c?"":"\n",y=!0,h="binary"==t.numbers,b="octal"==t.numbers,v="decimal"==t.numbers,x="hexadecimal"==t.numbers;if(o&&e&&function(e){return"function"==typeof e}(e.toJSON)&&(e=e.toJSON()),!function(e){return"string"==typeof e||"[object String]"==zP.call(e)}(e)){if(function(e){return"[object Map]"==zP.call(e)}(e))return 0==e.size?"new Map()":(c||(t.__inline1__=!0,t.__inline2__=!1),"new Map("+eA(Array.from(e),t)+")");if(function(e){return"[object Set]"==zP.call(e)}(e))return 0==e.size?"new Set()":"new Set("+eA(Array.from(e),t)+")";if(function(e){return VE.isBuffer(e)}(e))return 0==e.length?"Buffer.from([])":"Buffer.from("+eA(Array.from(e),t)+")";if(KP(e))return i=[],t.wrap=!0,f&&(t.__inline1__=!1,t.__inline2__=!0),g||n(),function(e,t){for(var r=e.length,a=-1;++a<r;)t(e[a])}(e,function(e){y=!1,g&&(t.__inline2__=!1),i.push((c||g?"":u)+eA(e,t))}),y?"[]":g?"["+i.join(", ")+"]":"["+m+i.join(","+m)+m+(c?"":p)+"]";if(!function(e){return"number"==typeof e||"[object Number]"==zP.call(e)}(e))return function(e){return"[object Object]"==zP.call(e)}(e)?(i=[],t.wrap=!0,n(),WP(e,function(e,r){y=!1,i.push((c?"":u)+eA(e,t)+":"+(c?"":" ")+eA(r,t))}),y?"{}":"{"+m+i.join(","+m)+m+(c?"":p)+"}"):o?JSON.stringify(e)||"null":String(e);if(o)return JSON.stringify(e);if(v)return String(e);if(x){var R=e.toString(16);return l||(R=R.toUpperCase()),"0x"+R}if(h)return"0b"+e.toString(2);if(b)return"0o"+e.toString(8)}var j=t.escapeEverything?QP:ZP;return i=e.replace(j,function(e,r,a,n,s,i){if(r){if(t.minimal)return r;var c=r.charCodeAt(0),u=r.charCodeAt(1);return t.es6?"\\u{"+HP(1024*(c-55296)+u-56320+65536,l)+"}":VP(HP(c,l))+VP(HP(u,l))}if(a)return VP(HP(a.charCodeAt(0),l));if("\0"==e&&!o&&!YP.test(i.charAt(s+1)))return"\\0";if(n)return n==d||t.escapeEverything?"\\"+n:n;if(JP.test(e))return XP[e];if(t.minimal&&!$P.test(e))return e;var p=HP(e.charCodeAt(0),l);return o||p.length>2?VP(p):"\\x"+("00"+p).slice(-2)}),"`"==d&&(i=i.replace(/\$\{/g,"\\${")),t.isScriptContext&&(i=i.replace(/<\/(script|style)/gi,"<\\/$1").replace(/<!--/g,o?"\\u003C!--":"\\x3C!--")),t.wrap&&(i=d+i+d),i};eA.version="3.0.2";var tA=eA,rA=Ce,aA=ie,nA="";function sA(e){var t=e.name,r=this.tokenMap.find(e,function(e){return e.value===t});return nA=r?this._originalCode.slice(r.start,r.end):e.name}function oA(e){this.token("..."),this.print(e.argument)}function iA(e){var t=e.properties;if(this.tokenChar(123),t.length){var r=this.enterDelimited();this.space(),this.printList(t,this.shouldPrintTrailingComma("}"),!0,!0,void 0,!0),this.space(),this._noLineTerminatorAfterNode=r}this.rightBrace(e)}function dA(e){var t=e.elements,r=t.length;this.tokenChar(91);for(var a=this.enterDelimited(),n=0;n<t.length;n++){var s=t[n];s?(n>0&&this.space(),this.print(s,void 0,!0),(n<r-1||this.shouldPrintTrailingComma("]"))&&this.tokenChar(44,n)):this.tokenChar(44,n)}this._noLineTerminatorAfterNode=a,this.tokenChar(93)}function cA(e){var t=this.getPossibleRaw(e),r=this.format.jsescOption,a=e.value,n=a+"";r.numbers?this.number(tA(a,r),a):null==t?this.number(n,a):this.format.minified?this.number(t.length<n.length?t:n,a):this.number(t,a)}function lA(e){var t=this.getPossibleRaw(e);if(this.format.minified||void 0===t){var r=tA(e.value,this.format.jsescOption);this.token(r)}else this.token(t)}var uA=new Set(["^^","@@","^","%","#"]);var pA=pt,fA=er;function gA(e,t,r){r&&(e.space(),e.word("of"),e.space(),e.word(t)),e.space()}function mA(e,t){var r=t.members;e.token("{"),e.indent(),e.newline();for(var a,n=i(r);!(a=n()).done;){var s=a.value;e.print(s),e.newline()}t.hasUnknownMembers&&(e.token("..."),e.newline()),e.dedent(),e.token("}")}function yA(e,t){e.print(t.id),e.space(),e.token("="),e.space(),e.print(t.init),e.token(",")}function hA(e){if(e.declaration){var t=e.declaration;this.print(t),fA(t)||this.semicolon()}else this.tokenChar(123),e.specifiers.length&&(this.space(),this.printList(e.specifiers),this.space()),this.tokenChar(125),e.source&&(this.space(),this.word("from"),this.space(),this.print(e.source)),this.semicolon()}function bA(e){this.print(e.id),this.print(e.typeParameters,!0)}function vA(e){var t,r,a;(this.print(e.id),this.print(e.typeParameters),null!=(t=e.extends)&&t.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends)),"DeclareClass"===e.type)&&(null!=(r=e.mixins)&&r.length&&(this.space(),this.word("mixins"),this.space(),this.printList(e.mixins)),null!=(a=e.implements)&&a.length&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements)));this.space(),this.print(e.body)}function xA(e){var t,r=null==(t=e.variance)?void 0:t.kind;null!=r&&("plus"===r?this.tokenChar(43):"minus"===r&&this.tokenChar(45))}function RA(e){this.word("interface"),this.space(),vA.call(this,e)}function jA(e){this.space(),this.token("&",!1,e),this.space()}function wA(e){this.word("type"),this.space(),this.print(e.id),this.print(e.typeParameters),this.space(),this.tokenChar(61),this.space(),this.print(e.right),this.semicolon()}function EA(e){this.tokenChar(60),this.printList(e.params),this.tokenChar(62)}function SA(e){this.word("opaque"),this.space(),this.word("type"),this.space(),this.print(e.id),this.print(e.typeParameters),e.supertype&&(this.tokenChar(58),this.space(),this.print(e.supertype)),e.impltype&&(this.space(),this.tokenChar(61),this.space(),this.print(e.impltype)),this.semicolon()}function TA(e){this.space(),this.token("|",!1,e),this.space()}var PA=Me,AA=Fe;function kA(e,t){(PA(t)||AA(t))&&tP.call(this,t)||this.printJoin(e.decorators),e.declare&&(this.word("declare"),this.space()),e.abstract&&(this.word("abstract"),this.space()),this.word("class"),e.id&&(this.space(),this.print(e.id)),this.print(e.typeParameters),e.superClass&&(this.space(),this.word("extends"),this.space(),this.print(e.superClass),this.print(e.superTypeParameters)),e.implements&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements)),this.space(),this.print(e.body)}function CA(e){if(this.printJoin(e.decorators),!this.format.preserveFormat){var t,r=null==(t=e.key.loc)||null==(t=t.end)?void 0:t.line;r&&this.catchUp(r)}AP.call(this,e),fP.call(this,e)}var _A=/(?:^|[^\\])(?:\\\\)*'/,IA=/(?:^|[^\\])(?:\\\\)*"/;function DA(){this.space()}var OA=Object.freeze({__proto__:null,AnyTypeAnnotation:function(){this.word("any")},ArgumentPlaceholder:function(){this.tokenChar(63)},ArrayExpression:dA,ArrayPattern:dA,ArrayTypeAnnotation:function(e){this.print(e.elementType,!0),this.tokenChar(91),this.tokenChar(93)},ArrowFunctionExpression:function(e,t){e.async&&(this.word("async",!0),this.space()),hP.call(this,e)?lP.call(this,e,!0,void 0,this._buf._map?t:void 0):this.print(e.params[0],!0),gP.call(this,e,!0),this.space(),this.printInnerComments(),this.token("=>"),this.space(),this.tokenContext|=HA.arrowBody,this.print(e.body)},AssignmentExpression:rP,AssignmentPattern:function(e){this.print(e.left),("Identifier"===e.left.type||eP(e.left))&&(e.left.optional&&this.tokenChar(63),this.print(e.left.typeAnnotation)),this.space(),this.tokenChar(61),this.space(),this.print(e.right)},AwaitExpression:function(e){this.word("await"),this.space(),this.print(e.argument)},BigIntLiteral:function(e){var t=this.getPossibleRaw(e);this.format.minified||void 0===t?this.word(e.value+"n"):this.word(t)},BinaryExpression:function(e){this.print(e.left),this.space();var t=e.operator;105===t.charCodeAt(0)?this.word(t):(this.token(t,!1,0,!0),this.setLastChar(t.charCodeAt(t.length-1))),this.space(),this.print(e.right)},BindExpression:function(e){this.print(e.object),this.token("::"),this.print(e.callee)},BlockStatement:function(e){var t;this.tokenChar(123);var r=this.enterDelimited(),a=null==(t=e.directives)?void 0:t.length;if(a){var n,s=e.body.length?2:1;this.printSequence(e.directives,!0,!0,s),null!=(n=e.directives[a-1].trailingComments)&&n.length||this.newline(s)}this.printSequence(e.body,!0,!0),this._noLineTerminatorAfterNode=r,this.rightBrace(e)},BooleanLiteral:function(e){this.word(e.value?"true":"false")},BooleanLiteralTypeAnnotation:function(e){this.word(e.value?"true":"false")},BooleanTypeAnnotation:function(){this.word("boolean")},BreakStatement:function(e){this.word("break"),iP(this,e.label)},CallExpression:function(e){this.print(e.callee),this.print(e.typeArguments),this.print(e.typeParameters),this.tokenChar(40);var t=this.enterDelimited();this.printList(e.arguments,this.shouldPrintTrailingComma(")"),void 0,void 0,void 0,!0),this._noLineTerminatorAfterNode=t,this.rightParens(e)},CatchClause:function(e){this.word("catch"),this.space(),e.param&&(this.tokenChar(40),this.print(e.param),this.print(e.param.typeAnnotation),this.tokenChar(41),this.space()),this.print(e.body)},ClassAccessorProperty:function(e){var t;this.printJoin(e.decorators);var r=null==(t=e.key.loc)||null==(t=t.end)?void 0:t.line;r&&this.catchUp(r),AP.call(this,e),this.word("accessor",!0),this.space(),e.computed?(this.tokenChar(91),this.print(e.key),this.tokenChar(93)):(xA.call(this,e),this.print(e.key)),e.optional&&this.tokenChar(63),e.definite&&this.tokenChar(33),this.print(e.typeAnnotation),e.value&&(this.space(),this.tokenChar(61),this.space(),this.print(e.value)),this.semicolon()},ClassBody:function(e){if(this.tokenChar(123),0===e.body.length)this.tokenChar(125);else{var t=function(e,t){if(!e.tokenMap||null==t.start||null==t.end)return null;var r=e.tokenMap.getIndexes(t);if(!r)return null;var a=1,n=0,s=0,o=function(){for(;s<t.body.length&&null==t.body[s].start;)s++};return o(),function(i){s<=i&&(s=i+1,o());for(var d,c=s===t.body.length?t.end:t.body[s].start;a<r.length&&e.tokenMap.matchesOriginal(d=e._tokens[r[a]],";")&&d.start<c;)e.tokenChar(59,n++),a++}}(this,e);null==t||t(-1);var r=this.enterDelimited();this.printJoin(e.body,!0,!0,t,!0,!0),this._noLineTerminatorAfterNode=r,this.endsWith(10)||this.newline(),this.rightBrace(e)}},ClassDeclaration:kA,ClassExpression:kA,ClassImplements:bA,ClassMethod:function(e){CA.call(this,e),this.space(),this.print(e.body)},ClassPrivateMethod:function(e){CA.call(this,e),this.space(),this.print(e.body)},ClassPrivateProperty:function(e){this.printJoin(e.decorators),AP.call(this,e),this.print(e.key),e.optional&&this.tokenChar(63),e.definite&&this.tokenChar(33),this.print(e.typeAnnotation),e.value&&(this.space(),this.tokenChar(61),this.space(),this.print(e.value)),this.semicolon()},ClassProperty:function(e){if(this.printJoin(e.decorators),!e.static&&!this.format.preserveFormat){var t,r=null==(t=e.key.loc)||null==(t=t.end)?void 0:t.line;r&&this.catchUp(r)}AP.call(this,e),e.computed?(this.tokenChar(91),this.print(e.key),this.tokenChar(93)):(xA.call(this,e),this.print(e.key)),e.optional&&this.tokenChar(63),e.definite&&this.tokenChar(33),this.print(e.typeAnnotation),e.value&&(this.space(),this.tokenChar(61),this.space(),this.print(e.value)),this.semicolon()},ConditionalExpression:function(e){this.print(e.test),this.space(),this.tokenChar(63),this.space(),this.print(e.consequent),this.space(),this.tokenChar(58),this.space(),this.print(e.alternate)},ContinueStatement:function(e){this.word("continue"),iP(this,e.label)},DebuggerStatement:function(){this.word("debugger"),this.semicolon()},DeclareClass:function(e,t){pA(t)||(this.word("declare"),this.space()),this.word("class"),this.space(),vA.call(this,e)},DeclareExportAllDeclaration:function(e){this.word("declare"),this.space(),LP.call(this,e)},DeclareExportDeclaration:function(e){this.word("declare"),this.space(),this.word("export"),this.space(),e.default&&(this.word("default"),this.space()),hA.call(this,e)},DeclareFunction:function(e,t){pA(t)||(this.word("declare"),this.space()),this.word("function"),this.space(),this.print(e.id),this.print(e.id.typeAnnotation.typeAnnotation),e.predicate&&(this.space(),this.print(e.predicate)),this.semicolon()},DeclareInterface:function(e){this.word("declare"),this.space(),RA.call(this,e)},DeclareModule:function(e){this.word("declare"),this.space(),this.word("module"),this.space(),this.print(e.id),this.space(),this.print(e.body)},DeclareModuleExports:function(e){this.word("declare"),this.space(),this.word("module"),this.tokenChar(46),this.word("exports"),this.print(e.typeAnnotation)},DeclareOpaqueType:function(e,t){pA(t)||(this.word("declare"),this.space()),SA.call(this,e)},DeclareTypeAlias:function(e){this.word("declare"),this.space(),wA.call(this,e)},DeclareVariable:function(e,t){pA(t)||(this.word("declare"),this.space()),this.word("var"),this.space(),this.print(e.id),this.print(e.id.typeAnnotation),this.semicolon()},DeclaredPredicate:function(e){this.tokenChar(37),this.word("checks"),this.tokenChar(40),this.print(e.value),this.tokenChar(41)},Decorator:function(e){this.tokenChar(64);var t=e.expression;this.print(t),this.newline()},Directive:function(e){this.print(e.value),this.semicolon()},DirectiveLiteral:function(e){var t=this.getPossibleRaw(e);if(this.format.minified||void 0===t){var r=e.value;if(IA.test(r)){if(_A.test(r))throw new Error("Malformed AST: it is not possible to print a directive containing both unescaped single and double quotes.");this.token("'"+r+"'")}else this.token('"'+r+'"')}else this.token(t)},DoExpression:function(e){e.async&&(this.word("async",!0),this.space()),this.word("do"),this.space(),this.print(e.body)},DoWhileStatement:function(e){this.word("do"),this.space(),this.print(e.body),this.space(),this.word("while"),this.space(),this.tokenChar(40),this.print(e.test),this.tokenChar(41),this.semicolon()},EmptyStatement:function(){this.semicolon(!0)},EmptyTypeAnnotation:function(){this.word("empty")},EnumBooleanBody:function(e){gA(this,"boolean",e.explicitType),mA(this,e)},EnumBooleanMember:function(e){yA(this,e)},EnumDeclaration:function(e){var t=e.id,r=e.body;this.word("enum"),this.space(),this.print(t),this.print(r)},EnumDefaultedMember:function(e){var t=e.id;this.print(t),this.tokenChar(44)},EnumNumberBody:function(e){gA(this,"number",e.explicitType),mA(this,e)},EnumNumberMember:function(e){yA(this,e)},EnumStringBody:function(e){gA(this,"string",e.explicitType),mA(this,e)},EnumStringMember:function(e){yA(this,e)},EnumSymbolBody:function(e){gA(this,"symbol",!0),mA(this,e)},ExistsTypeAnnotation:function(){this.tokenChar(42)},ExportAllDeclaration:LP,ExportDefaultDeclaration:function(e){UP(this,e),this.word("export"),this.noIndentInnerCommentsHere(),this.space(),this.word("default"),this.space(),this.tokenContext|=HA.exportDefault;var t=e.declaration;this.print(t),BP(t)||this.semicolon()},ExportDefaultSpecifier:function(e){this.print(e.exported)},ExportNamedDeclaration:function(e){if(UP(this,e),this.word("export"),this.space(),e.declaration){var t=e.declaration;this.print(t),BP(t)||this.semicolon()}else{"type"===e.exportKind&&(this.word("type"),this.space());for(var r=e.specifiers.slice(0),a=!1;;){var n=r[0];if(!IP(n)&&!DP(n))break;a=!0,this.print(r.shift()),r.length&&(this.tokenChar(44),this.space())}var s,o,i=!1;if((r.length||!r.length&&!a)&&(i=!0,this.tokenChar(123),r.length&&(this.space(),this.printList(r,this.shouldPrintTrailingComma("}")),this.space()),this.tokenChar(125)),e.source)this.space(),this.word("from"),this.space(),null!=(s=e.attributes)&&s.length||null!=(o=e.assertions)&&o.length?(this.print(e.source,!0),this.space(),FP.call(this,e,i)):this.print(e.source);this.semicolon()}},ExportNamespaceSpecifier:function(e){this.tokenChar(42),this.space(),this.word("as"),this.space(),this.print(e.exported)},ExportSpecifier:function(e){"type"===e.exportKind&&(this.word("type"),this.space()),this.print(e.local),e.exported&&e.local.name!==e.exported.name&&(this.space(),this.word("as"),this.space(),this.print(e.exported))},ExpressionStatement:function(e){this.tokenContext|=HA.expressionStatement,this.print(e.expression),this.semicolon()},File:function(e){e.program&&this.print(e.program.interpreter),this.print(e.program)},ForInStatement:function(e){this.word("for"),this.space(),this.noIndentInnerCommentsHere(),this.tokenChar(40),this.tokenContext|=HA.forInHead|HA.forInOrInitHeadAccumulate,this.print(e.left),this.tokenContext=HA.normal,this.space(),this.word("in"),this.space(),this.print(e.right),this.tokenChar(41),this.printBlock(e.body)},ForOfStatement:function(e){this.word("for"),this.space(),e.await&&(this.word("await"),this.space()),this.noIndentInnerCommentsHere(),this.tokenChar(40),this.tokenContext|=HA.forOfHead,this.print(e.left),this.space(),this.word("of"),this.space(),this.print(e.right),this.tokenChar(41),this.printBlock(e.body)},ForStatement:function(e){this.word("for"),this.space(),this.tokenChar(40),this.tokenContext|=HA.forInitHead|HA.forInOrInitHeadAccumulate,this.print(e.init),this.tokenContext=HA.normal,this.tokenChar(59),e.test&&(this.space(),this.print(e.test)),this.tokenChar(59,1),e.update&&(this.space(),this.print(e.update)),this.tokenChar(41),this.printBlock(e.body)},FunctionDeclaration:yP,FunctionExpression:yP,FunctionTypeAnnotation:function(e,t){this.print(e.typeParameters),this.tokenChar(40),e.this&&(this.word("this"),this.tokenChar(58),this.space(),this.print(e.this.typeAnnotation),(e.params.length||e.rest)&&(this.tokenChar(44),this.space())),this.printList(e.params),e.rest&&(e.params.length&&(this.tokenChar(44),this.space()),this.token("..."),this.print(e.rest)),this.tokenChar(41);var r=null==t?void 0:t.type;null!=r&&("ObjectTypeCallProperty"===r||"ObjectTypeInternalSlot"===r||"DeclareFunction"===r||"ObjectTypeProperty"===r&&t.method)?this.tokenChar(58):(this.space(),this.token("=>")),this.space(),this.print(e.returnType)},FunctionTypeParam:function(e){this.print(e.name),e.optional&&this.tokenChar(63),e.name&&(this.tokenChar(58),this.space()),this.print(e.typeAnnotation)},GenericTypeAnnotation:bA,Identifier:function(e){var t;this._buf._map&&this.sourceIdentifierName((null==(t=e.loc)?void 0:t.identifierName)||e.name),this.word(this.tokenMap?nA:e.name)},IfStatement:function(e){this.word("if"),this.space(),this.tokenChar(40),this.print(e.test),this.tokenChar(41),this.space();var t=e.alternate&&nP(oP(e.consequent));t&&(this.tokenChar(123),this.newline(),this.indent()),this.printAndIndentOnComments(e.consequent),t&&(this.dedent(),this.newline(),this.tokenChar(125)),e.alternate&&(this.endsWith(125)&&this.space(),this.word("else"),this.space(),this.printAndIndentOnComments(e.alternate))},Import:function(){this.word("import")},ImportAttribute:function(e){this.print(e.key),this.tokenChar(58),this.space(),this.print(e.value)},ImportDeclaration:function(e){var t,r;this.word("import"),this.space();var a="type"===e.importKind||"typeof"===e.importKind;a?(this.noIndentInnerCommentsHere(),this.word(e.importKind),this.space()):e.module?(this.noIndentInnerCommentsHere(),this.word("module"),this.space()):e.phase&&(this.noIndentInnerCommentsHere(),this.word(e.phase),this.space());for(var n=e.specifiers.slice(0),s=!!n.length;s;){var o=n[0];if(!OP(o)&&!NP(o))break;this.print(n.shift()),n.length&&(this.tokenChar(44),this.space())}var i=!1;n.length?(i=!0,this.tokenChar(123),this.space(),this.printList(n,this.shouldPrintTrailingComma("}")),this.space(),this.tokenChar(125)):a&&!s&&(i=!0,this.tokenChar(123),this.tokenChar(125)),(s||a)&&(this.space(),this.word("from"),this.space()),null!=(t=e.attributes)&&t.length||null!=(r=e.assertions)&&r.length?(this.print(e.source,!0),this.space(),FP.call(this,e,i)):this.print(e.source),this.semicolon()},ImportDefaultSpecifier:function(e){this.print(e.local)},ImportExpression:function(e){this.word("import"),e.phase&&(this.tokenChar(46),this.word(e.phase)),this.tokenChar(40);var t=this.shouldPrintTrailingComma(")");this.print(e.source),null!=e.options&&(this.tokenChar(44),this.space(),this.print(e.options)),t&&this.tokenChar(44),this.rightParens(e)},ImportNamespaceSpecifier:function(e){this.tokenChar(42),this.space(),this.word("as"),this.space(),this.print(e.local)},ImportSpecifier:function(e){"type"!==e.importKind&&"typeof"!==e.importKind||(this.word(e.importKind),this.space()),this.print(e.imported),e.local&&e.local.name!==e.imported.name&&(this.space(),this.word("as"),this.space(),this.print(e.local))},IndexedAccessType:function(e){this.print(e.objectType,!0),this.tokenChar(91),this.print(e.indexType),this.tokenChar(93)},InferredPredicate:function(){this.tokenChar(37),this.word("checks")},InterfaceDeclaration:RA,InterfaceExtends:bA,InterfaceTypeAnnotation:function(e){var t;this.word("interface"),null!=(t=e.extends)&&t.length&&(this.space(),this.word("extends"),this.space(),this.printList(e.extends)),this.space(),this.print(e.body)},InterpreterDirective:function(e){this.token("#!"+e.value),this._newline()},IntersectionTypeAnnotation:function(e){this.printJoin(e.types,void 0,void 0,jA)},JSXAttribute:function(e){this.print(e.name),e.value&&(this.tokenChar(61),this.print(e.value))},JSXClosingElement:function(e){this.tokenChar(60),this.tokenChar(47),this.print(e.name),this.tokenChar(62)},JSXClosingFragment:function(){this.token("</"),this.tokenChar(62)},JSXElement:function(e){var t=e.openingElement;if(this.print(t),!t.selfClosing){this.indent();for(var r,a=i(e.children);!(r=a()).done;){var n=r.value;this.print(n)}this.dedent(),this.print(e.closingElement)}},JSXEmptyExpression:function(){this.printInnerComments()},JSXExpressionContainer:function(e){this.tokenChar(123),this.print(e.expression),this.rightBrace(e)},JSXFragment:function(e){this.print(e.openingFragment),this.indent();for(var t,r=i(e.children);!(t=r()).done;){var a=t.value;this.print(a)}this.dedent(),this.print(e.closingFragment)},JSXIdentifier:function(e){this.word(e.name)},JSXMemberExpression:function(e){this.print(e.object),this.tokenChar(46),this.print(e.property)},JSXNamespacedName:function(e){this.print(e.namespace),this.tokenChar(58),this.print(e.name)},JSXOpeningElement:function(e){this.tokenChar(60),this.print(e.name),e.typeArguments&&this.print(e.typeArguments),this.print(e.typeParameters),e.attributes.length>0&&(this.space(),this.printJoin(e.attributes,void 0,void 0,DA)),e.selfClosing&&(this.space(),this.tokenChar(47)),this.tokenChar(62)},JSXOpeningFragment:function(){this.tokenChar(60),this.tokenChar(62)},JSXSpreadAttribute:function(e){this.tokenChar(123),this.token("..."),this.print(e.argument),this.rightBrace(e)},JSXSpreadChild:function(e){this.tokenChar(123),this.token("..."),this.print(e.expression),this.rightBrace(e)},JSXText:function(e){var t=this.getPossibleRaw(e);void 0!==t?this.token(t,!0):this.token(e.value,!0)},LabeledStatement:function(e){this.print(e.label),this.tokenChar(58),this.space(),this.print(e.body)},LogicalExpression:rP,MemberExpression:function(e){if(this.print(e.object),!e.computed&&QT(e.property))throw new TypeError("Got a MemberExpression for MemberExpression property");var t=e.computed;if($T(e.property)&&"number"==typeof e.property.value&&(t=!0),t){var r=this.enterDelimited();this.tokenChar(91),this.print(e.property,void 0,!0),this.tokenChar(93),this._noLineTerminatorAfterNode=r}else this.tokenChar(46),this.print(e.property)},MetaProperty:function(e){this.print(e.meta),this.tokenChar(46),this.print(e.property)},MixedTypeAnnotation:function(){this.word("mixed")},ModuleExpression:function(e){this.word("module",!0),this.space(),this.tokenChar(123),this.indent();var t=e.body;(t.body.length||t.directives.length)&&this.newline(),this.print(t),this.dedent(),this.rightBrace(e)},NewExpression:function(e,t){if(this.word("new"),this.space(),this.print(e.callee),(!this.format.minified||0!==e.arguments.length||e.optional||YT(t,{callee:e})||QT(t)||ZT(t))&&(this.print(e.typeArguments),this.print(e.typeParameters),e.optional&&this.token("?."),0!==e.arguments.length||!this.tokenMap||this.tokenMap.endMatches(e,")"))){this.tokenChar(40);var r=this.enterDelimited();this.printList(e.arguments,this.shouldPrintTrailingComma(")"),void 0,void 0,void 0,!0),this._noLineTerminatorAfterNode=r,this.rightParens(e)}},NullLiteral:function(){this.word("null")},NullLiteralTypeAnnotation:function(){this.word("null")},NullableTypeAnnotation:function(e){this.tokenChar(63),this.print(e.typeAnnotation)},NumberLiteralTypeAnnotation:cA,NumberTypeAnnotation:function(){this.word("number")},NumericLiteral:cA,ObjectExpression:iA,ObjectMethod:function(e){this.printJoin(e.decorators),fP.call(this,e),this.space(),this.print(e.body)},ObjectPattern:iA,ObjectProperty:function(e){if(this.printJoin(e.decorators),e.computed)this.tokenChar(91),this.print(e.key),this.tokenChar(93);else{if(rA(e.value)&&aA(e.key)&&e.key.name===e.value.left.name)return void this.print(e.value);if(this.print(e.key),e.shorthand&&aA(e.key)&&aA(e.value)&&e.key.name===e.value.name)return}this.tokenChar(58),this.space(),this.print(e.value)},ObjectTypeAnnotation:function(e){var t=this;e.exact?this.token("{|"):this.tokenChar(123);var r=[].concat(b(e.properties),b(e.callProperties||[]),b(e.indexers||[]),b(e.internalSlots||[]));r.length&&(this.newline(),this.space(),this.printJoin(r,!0,!0,function(){(1!==r.length||e.inexact)&&(t.token(","),t.space())},!0),this.space()),e.inexact&&(this.indent(),this.token("..."),r.length&&this.newline(),this.dedent()),e.exact?this.token("|}"):this.tokenChar(125)},ObjectTypeCallProperty:function(e){e.static&&(this.word("static"),this.space()),this.print(e.value)},ObjectTypeIndexer:function(e){e.static&&(this.word("static"),this.space()),xA.call(this,e),this.tokenChar(91),e.id&&(this.print(e.id),this.tokenChar(58),this.space()),this.print(e.key),this.tokenChar(93),this.tokenChar(58),this.space(),this.print(e.value)},ObjectTypeInternalSlot:function(e){e.static&&(this.word("static"),this.space()),this.tokenChar(91),this.tokenChar(91),this.print(e.id),this.tokenChar(93),this.tokenChar(93),e.optional&&this.tokenChar(63),e.method||(this.tokenChar(58),this.space()),this.print(e.value)},ObjectTypeProperty:function(e){e.proto&&(this.word("proto"),this.space()),e.static&&(this.word("static"),this.space()),"get"!==e.kind&&"set"!==e.kind||(this.word(e.kind),this.space()),xA.call(this,e),this.print(e.key),e.optional&&this.tokenChar(63),e.method||(this.tokenChar(58),this.space()),this.print(e.value)},ObjectTypeSpreadProperty:function(e){this.token("..."),this.print(e.argument)},OpaqueType:SA,OptionalCallExpression:function(e){this.print(e.callee),this.print(e.typeParameters),e.optional&&this.token("?."),this.print(e.typeArguments),this.tokenChar(40);var t=this.enterDelimited();this.printList(e.arguments,void 0,void 0,void 0,void 0,!0),this._noLineTerminatorAfterNode=t,this.rightParens(e)},OptionalIndexedAccessType:function(e){this.print(e.objectType),e.optional&&this.token("?."),this.tokenChar(91),this.print(e.indexType),this.tokenChar(93)},OptionalMemberExpression:function(e){var t=e.computed,r=e.optional,a=e.property;if(this.print(e.object),!t&&QT(a))throw new TypeError("Got a MemberExpression for MemberExpression property");$T(a)&&"number"==typeof a.value&&(t=!0),r&&this.token("?."),t?(this.tokenChar(91),this.print(a),this.tokenChar(93)):(r||this.tokenChar(46),this.print(a))},ParenthesizedExpression:function(e){this.tokenChar(40);var t=this.enterDelimited();this.print(e.expression,void 0,!0),this._noLineTerminatorAfterNode=t,this.rightParens(e)},PipelineBareFunction:function(e){this.print(e.callee)},PipelinePrimaryTopicReference:function(){this.tokenChar(35)},PipelineTopicExpression:function(e){this.print(e.expression)},Placeholder:function(e){this.token("%%"),this.print(e.name),this.token("%%"),"Statement"===e.expectedNode&&this.semicolon()},PrivateName:function(e){this.tokenChar(35),this.print(e.id)},Program:function(e){var t;this.printInnerComments(!1);var r=null==(t=e.directives)?void 0:t.length;if(r){var a,n=e.body.length?2:1;this.printSequence(e.directives,void 0,void 0,n),null!=(a=e.directives[r-1].trailingComments)&&a.length||this.newline(n)}this.printSequence(e.body)},QualifiedTypeIdentifier:function(e){this.print(e.qualification),this.tokenChar(46),this.print(e.id)},RegExpLiteral:function(e){this.word("/"+e.pattern+"/"+e.flags,!1)},RestElement:oA,ReturnStatement:function(e){this.word("return"),iP(this,e.argument)},SequenceExpression:function(e){this.printList(e.expressions)},SpreadElement:oA,StaticBlock:function(e){this.word("static"),this.space(),this.tokenChar(123),0===e.body.length?this.tokenChar(125):(this.newline(),this.printSequence(e.body,!0),this.rightBrace(e))},StringLiteral:lA,StringLiteralTypeAnnotation:lA,StringTypeAnnotation:function(){this.word("string")},Super:function(){this.word("super")},SwitchCase:function(e){e.test?(this.word("case"),this.space(),this.print(e.test),this.tokenChar(58)):(this.word("default"),this.tokenChar(58)),e.consequent.length&&(this.newline(),this.printSequence(e.consequent,!0))},SwitchStatement:function(e){this.word("switch"),this.space(),this.tokenChar(40),this.print(e.discriminant),this.tokenChar(41),this.space(),this.tokenChar(123),this.printSequence(e.cases,!0),this.rightBrace(e)},SymbolTypeAnnotation:function(){this.word("symbol")},TSAnyKeyword:function(){this.word("any")},TSArrayType:function(e){this.print(e.elementType,!0),this.tokenChar(91),this.tokenChar(93)},TSAsExpression:function(e){var t=e.expression,r=e.typeAnnotation;this.print(t,!0),this.space(),this.word("as"),this.space(),this.print(r)},TSBigIntKeyword:function(){this.word("bigint")},TSBooleanKeyword:function(){this.word("boolean")},TSCallSignatureDeclaration:function(e){PP.call(this,e),xP(this,e)},TSClassImplements:SP,TSConditionalType:function(e){this.print(e.checkType),this.space(),this.word("extends"),this.space(),this.print(e.extendsType),this.space(),this.tokenChar(63),this.space(),this.print(e.trueType),this.space(),this.tokenChar(58),this.space(),this.print(e.falseType)},TSConstructSignatureDeclaration:function(e){this.word("new"),this.space(),PP.call(this,e),xP(this,e)},TSConstructorType:function(e){e.abstract&&(this.word("abstract"),this.space()),this.word("new"),this.space(),jP.call(this,e)},TSDeclareFunction:function(e,t){e.declare&&(this.word("declare"),this.space()),mP.call(this,e,t,!1),this.semicolon()},TSDeclareMethod:function(e){CA.call(this,e),this.semicolon()},TSEnumBody:TP,TSEnumDeclaration:function(e){var t=e.declare,r=e.const,a=e.id;t&&(this.word("declare"),this.space()),r&&(this.word("const"),this.space()),this.word("enum"),this.space(),this.print(a),this.space(),TP.call(this,e)},TSEnumMember:function(e){var t=e.id,r=e.initializer;this.print(t),r&&(this.space(),this.tokenChar(61),this.space(),this.print(r))},TSExportAssignment:function(e){this.word("export"),this.space(),this.tokenChar(61),this.space(),this.print(e.expression),this.semicolon()},TSExternalModuleReference:function(e){this.token("require("),this.print(e.expression),this.tokenChar(41)},TSFunctionType:function(e){jP.call(this,e)},TSImportEqualsDeclaration:function(e){var t=e.id,r=e.moduleReference;e.isExport&&(this.word("export"),this.space()),this.word("import"),this.space(),this.print(t),this.space(),this.tokenChar(61),this.space(),this.print(r),this.semicolon()},TSImportType:function(e){var t=e.qualifier,r=e.options;this.word("import"),this.tokenChar(40),this.print(e.argument),r&&(this.tokenChar(44),this.print(r)),this.tokenChar(41),t&&(this.tokenChar(46),this.print(t));var a=e.typeParameters;a&&this.print(a)},TSIndexSignature:function(e){var t=e.readonly;e.static&&(this.word("static"),this.space()),t&&(this.word("readonly"),this.space()),this.tokenChar(91),uP.call(this,e.parameters,93),this.print(e.typeAnnotation),xP(this,e)},TSIndexedAccessType:function(e){this.print(e.objectType,!0),this.tokenChar(91),this.print(e.indexType),this.tokenChar(93)},TSInferType:function(e){this.word("infer"),this.print(e.typeParameter)},TSInstantiationExpression:function(e){this.print(e.expression),this.print(e.typeParameters)},TSInterfaceBody:function(e){var t=this;kP(this,e,function(){return t.printJoin(e.body,!0,!0,void 0,void 0,!0)})},TSInterfaceDeclaration:function(e){var t=e.declare,r=e.id,a=e.typeParameters,n=e.extends,s=e.body;t&&(this.word("declare"),this.space()),this.word("interface"),this.space(),this.print(r),this.print(a),null!=n&&n.length&&(this.space(),this.word("extends"),this.space(),this.printList(n)),this.space(),this.print(s)},TSInterfaceHeritage:SP,TSIntersectionType:function(e){wP(this,e,"&")},TSIntrinsicKeyword:function(){this.word("intrinsic")},TSLiteralType:function(e){this.print(e.literal)},TSMappedType:function(e){var t=e.nameType,r=e.optional,a=e.readonly,n=e.typeAnnotation;this.tokenChar(123);var s=this.enterDelimited();this.space(),a&&(EP(this,a),this.word("readonly"),this.space()),this.tokenChar(91),this.word(e.typeParameter.name),this.space(),this.word("in"),this.space(),this.print(e.typeParameter.constraint,void 0,!0),t&&(this.space(),this.word("as"),this.space(),this.print(t,void 0,!0)),this.tokenChar(93),r&&(EP(this,r),this.tokenChar(63)),n&&(this.tokenChar(58),this.space(),this.print(n,void 0,!0)),this.space(),this._noLineTerminatorAfterNode=s,this.tokenChar(125)},TSMethodSignature:function(e){var t=e.kind;"set"!==t&&"get"!==t||(this.word(t),this.space()),RP.call(this,e),PP.call(this,e),xP(this,e)},TSModuleBlock:function(e){var t=this;kP(this,e,function(){return t.printSequence(e.body,!0,!0)})},TSModuleDeclaration:function(e){var t=e.declare,r=e.id,a=e.kind;if(t&&(this.word("declare"),this.space()),e.global||(this.word(null!=a?a:"Identifier"===r.type?"namespace":"module"),this.space()),this.print(r),e.body){for(var n=e.body;"TSModuleDeclaration"===n.type;)this.tokenChar(46),this.print(n.id),n=n.body;this.space(),this.print(n)}else this.semicolon()},TSNamedTupleMember:function(e){this.print(e.label),e.optional&&this.tokenChar(63),this.tokenChar(58),this.space(),this.print(e.elementType)},TSNamespaceExportDeclaration:function(e){this.word("export"),this.space(),this.word("as"),this.space(),this.word("namespace"),this.space(),this.print(e.id),this.semicolon()},TSNeverKeyword:function(){this.word("never")},TSNonNullExpression:function(e){this.print(e.expression),this.tokenChar(33),this.setLastChar(33)},TSNullKeyword:function(){this.word("null")},TSNumberKeyword:function(){this.word("number")},TSObjectKeyword:function(){this.word("object")},TSOptionalType:function(e){this.print(e.typeAnnotation),this.tokenChar(63)},TSParameterProperty:function(e){e.accessibility&&(this.word(e.accessibility),this.space()),e.readonly&&(this.word("readonly"),this.space()),pP.call(this,e.parameter)},TSParenthesizedType:function(e){this.tokenChar(40),this.print(e.typeAnnotation),this.tokenChar(41)},TSPropertySignature:function(e){e.readonly&&(this.word("readonly"),this.space()),RP.call(this,e),this.print(e.typeAnnotation),xP(this,e)},TSQualifiedName:function(e){this.print(e.left),this.tokenChar(46),this.print(e.right)},TSRestType:function(e){this.token("..."),this.print(e.typeAnnotation)},TSSatisfiesExpression:function(e){var t=e.expression,r=e.typeAnnotation;this.print(t,!0),this.space(),this.word("satisfies"),this.space(),this.print(r)},TSStringKeyword:function(){this.word("string")},TSSymbolKeyword:function(){this.word("symbol")},TSTemplateLiteralType:function(e){JT.call(this,e,e.types)},TSThisType:function(){this.word("this")},TSTupleType:function(e){this.tokenChar(91),this.printList(e.elementTypes,this.shouldPrintTrailingComma("]")),this.tokenChar(93)},TSTypeAliasDeclaration:function(e){var t=e.declare,r=e.id,a=e.typeParameters,n=e.typeAnnotation;t&&(this.word("declare"),this.space()),this.word("type"),this.space(),this.print(r),this.print(a),this.space(),this.tokenChar(61),this.space(),this.print(n),this.semicolon()},TSTypeAnnotation:function(e,t){this.token("TSFunctionType"!==t.type&&"TSConstructorType"!==t.type||t.typeAnnotation!==e?":":"=>"),this.space(),e.optional&&this.tokenChar(63),this.print(e.typeAnnotation)},TSTypeAssertion:function(e){var t=e.typeAnnotation,r=e.expression;this.tokenChar(60),this.print(t),this.tokenChar(62),this.space(),this.print(r)},TSTypeLiteral:function(e){var t=this;kP(this,e,function(){return t.printJoin(e.members,!0,!0,void 0,void 0,!0)})},TSTypeOperator:function(e){this.word(e.operator),this.space(),this.print(e.typeAnnotation)},TSTypeParameter:function(e){e.const&&(this.word("const"),this.space()),e.in&&(this.word("in"),this.space()),e.out&&(this.word("out"),this.space()),this.word(e.name),e.constraint&&(this.space(),this.word("extends"),this.space(),this.print(e.constraint)),e.default&&(this.space(),this.tokenChar(61),this.space(),this.print(e.default))},TSTypeParameterDeclaration:vP,TSTypeParameterInstantiation:vP,TSTypePredicate:function(e){e.asserts&&(this.word("asserts"),this.space()),this.print(e.parameterName),e.typeAnnotation&&(this.space(),this.word("is"),this.space(),this.print(e.typeAnnotation.typeAnnotation))},TSTypeQuery:function(e){this.word("typeof"),this.space(),this.print(e.exprName);var t=e.typeParameters;t&&this.print(t)},TSTypeReference:function(e){var t=e.typeParameters;this.print(e.typeName,!!t),this.print(t)},TSUndefinedKeyword:function(){this.word("undefined")},TSUnionType:function(e){wP(this,e,"|")},TSUnknownKeyword:function(){this.word("unknown")},TSVoidKeyword:function(){this.word("void")},TaggedTemplateExpression:function(e){this.print(e.tag),this.print(e.typeParameters),this.print(e.quasi)},TemplateElement:function(){throw new Error("TemplateElement printing is handled in TemplateLiteral")},TemplateLiteral:function(e){JT.call(this,e,e.expressions)},ThisExpression:function(){this.word("this")},ThisTypeAnnotation:function(){this.word("this")},ThrowStatement:function(e){this.word("throw"),iP(this,e.argument)},TopicReference:function(){var e=this.format.topicToken;if(!uA.has(e)){var t=JSON.stringify(e),r=Array.from(uA,function(e){return JSON.stringify(e)});throw new Error('The "topicToken" generator option must be one of '+r.join(", ")+" ("+t+" received instead).")}this.token(e)},TryStatement:function(e){this.word("try"),this.space(),this.print(e.block),this.space(),e.handlers?this.print(e.handlers[0]):this.print(e.handler),e.finalizer&&(this.space(),this.word("finally"),this.space(),this.print(e.finalizer))},TupleTypeAnnotation:function(e){this.tokenChar(91),this.printList(e.types),this.tokenChar(93)},TypeAlias:wA,TypeAnnotation:function(e,t){this.tokenChar(58),this.space(),"ArrowFunctionExpression"===t.type?this.tokenContext|=HA.arrowFlowReturnType:e.optional&&this.tokenChar(63),this.print(e.typeAnnotation)},TypeCastExpression:function(e){this.tokenChar(40),this.print(e.expression),this.print(e.typeAnnotation),this.tokenChar(41)},TypeParameter:function(e){xA.call(this,e),this.word(e.name),e.bound&&this.print(e.bound),e.default&&(this.space(),this.tokenChar(61),this.space(),this.print(e.default))},TypeParameterDeclaration:EA,TypeParameterInstantiation:EA,TypeofTypeAnnotation:function(e){this.word("typeof"),this.space(),this.print(e.argument)},UnaryExpression:function(e){var t=e.operator,r=t.charCodeAt(0);r>=97&&r<=122?(this.word(t),this.space()):this.tokenChar(r),this.print(e.argument)},UnionTypeAnnotation:function(e){this.printJoin(e.types,void 0,void 0,TA)},UpdateExpression:function(e){e.prefix?(this.token(e.operator,!1,0,!0),this.print(e.argument)):(this.print(e.argument,!0),this.token(e.operator,!1,0,!0))},V8IntrinsicIdentifier:function(e){this.tokenChar(37),this.word(e.name)},VariableDeclaration:function(e,t){e.declare&&(this.word("declare"),this.space());var r=e.kind;switch(r){case"await using":this.word("await"),this.space();case"using":this.word("using",!0);break;default:this.word(r)}this.space();var a=!1;if(!aP(t))for(var n,s=i(e.declarations);!(n=s()).done;){if(n.value.init){a=!0;break}}if(this.printList(e.declarations,void 0,void 0,e.declarations.length>1,a?dP:void 0),null!=t)switch(t.type){case"ForStatement":if(t.init===e)return;break;case"ForInStatement":case"ForOfStatement":if(t.left===e)return}this.semicolon()},VariableDeclarator:function(e){this.print(e.id),e.definite&&this.tokenChar(33),this.print(e.id.typeAnnotation),e.init&&(this.space(),this.tokenChar(61),this.space(),this.print(e.init))},Variance:function(e){"plus"===e.kind?this.tokenChar(43):this.tokenChar(45)},VoidPattern:function(){this.word("void")},VoidTypeAnnotation:function(){this.word("void")},WhileStatement:function(e){this.word("while"),this.space(),this.tokenChar(40),this.print(e.test),this.tokenChar(41),this.printBlock(e.body)},WithStatement:function(e){this.word("with"),this.space(),this.tokenChar(40),this.print(e.object),this.tokenChar(41),this.printBlock(e.body)},YieldExpression:function(e){e.delegate?(this.word("yield",!0),this.tokenChar(42),e.argument&&(this.space(),this.print(e.argument))):e.argument?(this.word("yield",!0),this.space(),this.print(e.argument)):this.word("yield")},_classMethodHead:CA,_functionHead:mP,_getRawIdentifier:sA,_interfaceish:vA,_methodHead:fP,_param:pP,_parameters:uP,_params:lP,_predicate:gP,_printAttributes:FP,_printTemplate:JT,_shouldPrintArrowParamsParens:hP,_shouldPrintDecoratorsBeforeExport:tP,_tsPrintClassMemberModifiers:AP,_variance:xA});for(var NA=Object.freeze({__proto__:null,DecimalLiteral:function(e){var t=this.getPossibleRaw(e);this.format.minified||void 0===t?this.word(e.value+"m"):this.word(t)},Noop:function(){},RecordExpression:function(e){var t,r,a=e.properties;if("bar"===this.format.recordAndTupleSyntaxType)t="{|",r="|}";else{if("hash"!==this.format.recordAndTupleSyntaxType&&null!=this.format.recordAndTupleSyntaxType)throw new Error('The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" ('+JSON.stringify(this.format.recordAndTupleSyntaxType)+" received).");t="#{",r="}"}this.token(t),a.length&&(this.space(),this.printList(a,this.shouldPrintTrailingComma(r),!0,!0),this.space()),this.token(r)},TSExpressionWithTypeArguments:function(e){this.print(e.expression),this.print(e.typeParameters)},TupleExpression:function(e){var t,r,a=e.elements,n=a.length;if("bar"===this.format.recordAndTupleSyntaxType)t="[|",r="|]";else{if("hash"!==this.format.recordAndTupleSyntaxType)throw new Error(this.format.recordAndTupleSyntaxType+" is not a valid recordAndTuple syntax type");t="#[",r="]"}this.token(t);for(var s=0;s<a.length;s++){var o=a[s];o&&(s>0&&this.space(),this.print(o),(s<n-1||this.shouldPrintTrailingComma(r))&&this.token(",",!1,s))}this.token(r)}}),BA=new Map,MA=0,FA=0,LA=Object.keys(OA).sort();FA<LA.length;FA++){var UA=LA[FA];UA.startsWith("_")||BA.set(UA,[OA[UA],MA++,void 0])}for(var qA=0,GA=Object.keys(NA);qA<GA.length;qA++){var WA=GA[qA];BA.set(WA,[NA[WA],MA++,void 0])}for(var VA=ja,HA={normal:0,expressionStatement:1,arrowBody:2,exportDefault:4,arrowFlowReturnType:8,forInitHead:16,forInHead:32,forOfHead:64,forInOrInitHeadAccumulate:128,forInOrInitHeadAccumulatePassThroughMask:128},zA=0,KA=Object.keys(XT);zA<KA.length;zA++){var XA=KA[zA],JA=XT[XA];BA.has(XA)&&(BA.get(XA)[2]=JA)}function YA(e){switch(e.type){case"CallExpression":return!0;case"MemberExpression":return YA(e.object)}return!1}function $A(e,t,r){switch(r){case 112:if(t.callee===e&&YA(e))return!0;break;case 42:return!(QA(e)||"CallExpression"===e.type&&QA(e.callee)||"ParenthesizedExpression"===e.type)}return!1}function QA(e){switch(e.type){case"Identifier":return!0;case"MemberExpression":return!e.computed&&"Identifier"===e.property.type&&QA(e.object);default:return!1}}var ZA=p().m(ak),ek=Ry,tk=ja,rk=function(){function e(e,t,r){var a=this;this._tokens=void 0,this._source=void 0,this._nodesToTokenIndexes=new Map,this._nodesOccurrencesCountCache=new Map,this._tokensCache=new Map,this._tokens=t,this._source=r,ek(e,function(e){var t=a._getTokensIndexesOfNode(e);t.length>0&&a._nodesToTokenIndexes.set(e,t)}),this._tokensCache.clear()}var t=e.prototype;return t.has=function(e){return this._nodesToTokenIndexes.has(e)},t.getIndexes=function(e){return this._nodesToTokenIndexes.get(e)},t.find=function(e,t){var r=this._nodesToTokenIndexes.get(e);if(r)for(var a=0;a<r.length;a++){var n=r[a],s=this._tokens[n];if(t(s,n))return s}return null},t.findLastIndex=function(e,t){var r=this._nodesToTokenIndexes.get(e);if(r)for(var a=r.length-1;a>=0;a--){var n=r[a];if(t(this._tokens[n],n))return n}return-1},t.findMatching=function(e,t,r){void 0===r&&(r=0);var a=this._nodesToTokenIndexes.get(e);if(a){"number"==typeof t&&(t=String.fromCharCode(t));var n=0,s=r;if(s>1){var o=this._nodesOccurrencesCountCache.get(e);(null==o?void 0:o.test)===t&&o.count<s&&(n=o.i+1,r-=o.count+1)}for(;n<a.length;n++){var i=this._tokens[a[n]];if(this.matchesOriginal(i,t)){if(0===r)return s>0&&this._nodesOccurrencesCountCache.set(e,{test:t,count:s,i:n}),i;r--}}}return null},t.matchesOriginal=function(e,t){return e.end-e.start===t.length&&(null!=e.value?e.value===t:this._source.startsWith(t,e.start))},t.startMatches=function(e,t){var r=this._nodesToTokenIndexes.get(e);if(!r)return!1;var a=this._tokens[r[0]];return a.start===e.start&&this.matchesOriginal(a,t)},t.endMatches=function(e,t){var r=this._nodesToTokenIndexes.get(e);if(!r)return!1;var a=this._tokens[r[r.length-1]];return a.end===e.end&&this.matchesOriginal(a,t)},t._getTokensIndexesOfNode=function(e){var t;if(null==e.start||null==e.end)return[];var r=this._findTokensOfNode(e,0,this._tokens.length-1),a=r.first,n=r.last,s=a,o=ak(e);"ExportNamedDeclaration"!==e.type&&"ExportDefaultDeclaration"!==e.type||"ClassDeclaration"!==(null==(t=e.declaration)?void 0:t.type)||o.next();for(var d,c=[],l=i(o);!(d=l()).done;){var u=d.value;if(null!=u&&(null!=u.start&&null!=u.end)){for(var p=this._findTokensOfNode(u,s,n),f=p.first,g=s;g<f;g++)c.push(g);s=p.last+1}}for(var m=s;m<=n;m++)c.push(m);return c},t._findTokensOfNode=function(e,t,r){var a=this._tokensCache.get(e);if(a)return a;var n=this._findFirstTokenOfNode(e.start,t,r),s=this._findLastTokenOfNode(e.end,n,r);return this._tokensCache.set(e,{first:n,last:s}),{first:n,last:s}},t._findFirstTokenOfNode=function(e,t,r){for(;t<=r;){var a=r+t>>1;if(e<this._tokens[a].start)r=a-1;else{if(!(e>this._tokens[a].start))return a;t=a+1}}return t},t._findLastTokenOfNode=function(e,t,r){for(;t<=r;){var a=r+t>>1;if(e<this._tokens[a].end)r=a-1;else{if(!(e>this._tokens[a].end))return a;t=a+1}}return r},o(e)}();function ak(e){var t,r,a,n,s,o;return p().w(function(d){for(;;)switch(d.n){case 0:if("TemplateLiteral"!==e.type){d.n=6;break}return d.n=1,e.quasis[0];case 1:t=1;case 2:if(!(t<e.quasis.length)){d.n=5;break}return d.n=3,e.expressions[t-1];case 3:return d.n=4,e.quasis[t];case 4:t++,d.n=2;break;case 5:return d.a(2);case 6:r=tk[e.type],a=i(r);case 7:if((n=a()).done){d.n=12;break}if(s=n.value,o=e[s]){d.n=8;break}return d.a(3,11);case 8:if(!Array.isArray(o)){d.n=10;break}return d.d(g(o),9);case 9:d.n=11;break;case 10:return d.n=11,o;case 11:d.n=7;break;case 12:return d.a(2)}},ZA)}var nk=$t,sk=nr,ok=er,ik=De,dk=Wt,ck=Kt,lk=/e/i,uk=/\.0+$/,pk=/[\n\r\u2028\u2029]/,fk=/[\n\r\u2028\u2029]|\*\//;function gk(e){return"CommentLine"===e.type||pk.test(e.value)}var mk=function(){function e(e,t,r,a){void 0===r&&(r=null),void 0===a&&(a=null),this.tokenContext=HA.normal,this._tokens=null,this._originalCode=null,this._currentNode=null,this._currentTypeId=null,this._indent=0,this._indentRepeat=0,this._insideAux=!1,this._noLineTerminator=!1,this._noLineTerminatorAfterNode=null,this._printAuxAfterOnNextUserNode=!1,this._printedComments=new Set,this._lastCommentLine=0,this._innerCommentsState=0,this._flags=0,this.tokenMap=null,this._boundGetRawIdentifier=null,this._printSemicolonBeforeNextNode=-1,this._printSemicolonBeforeNextToken=-1,this.format=e,this._tokens=r,this._originalCode=a,this._indentRepeat=e.indent.style.length,this._inputMap=(null==t?void 0:t._inputMap)||null,this._buf=new AT(t,e.indent.style[0]);var n=e.preserveFormat,s=e.compact,o=e.concise,i=e.retainLines,d=e.retainFunctionParens;n&&(this._flags|=1),s&&(this._flags|=2),o&&(this._flags|=4),i&&(this._flags|=8),d&&(this._flags|=16),(e.auxiliaryCommentBefore||e.auxiliaryCommentAfter)&&(this._flags|=32)}var t=e.prototype;return t.enterDelimited=function(){var e=this._noLineTerminatorAfterNode;return null!==e&&(this._noLineTerminatorAfterNode=null),e},t.generate=function(e){return this.format.preserveFormat&&(this.tokenMap=new rk(e,this._tokens,this._originalCode),this._boundGetRawIdentifier=sA.bind(this)),this.print(e),this._maybeAddAuxComment(),this._buf.get()},t.indent=function(e){void 0===e&&(e=this._flags),7&e||(this._indent+=this._indentRepeat)},t.dedent=function(e){void 0===e&&(e=this._flags),7&e||(this._indent-=this._indentRepeat)},t.semicolon=function(e){void 0===e&&(e=!1);var t=this._flags;if(32&t&&this._maybeAddAuxComment(),1&t){var r=this._currentNode;if(null!=r.start&&null!=r.end){if(!this.tokenMap.endMatches(r,";"))return void(this._printSemicolonBeforeNextNode=this._buf.getCurrentLine());var a=this.tokenMap.getIndexes(this._currentNode);this._catchUpTo(this._tokens[a[a.length-1]].loc.start)}}e?this._appendChar(59):this._queue(59),this._noLineTerminator=!1},t.rightBrace=function(e){this.format.minified&&this._buf.removeLastSemicolon(),this.sourceWithOffset("end",e.loc,-1),this.tokenChar(125)},t.rightParens=function(e){this.sourceWithOffset("end",e.loc,-1),this.tokenChar(41)},t.space=function(e){if(void 0===e&&(e=!1),!(3&this._flags))if(e)this._space();else{var t=this.getLastChar(!0);0!==t&&32!==t&&10!==t&&this._space()}},t.word=function(e,t){void 0===t&&(t=!1),this.tokenContext&=HA.forInOrInitHeadAccumulatePassThroughMask,this._maybePrintInnerComments(e);var r=this._flags;32&r&&this._maybeAddAuxComment(),1&r&&this._catchUpToCurrentToken(e);var a=this.getLastChar();(-2===a||-3===a||47===a&&47===e.charCodeAt(0))&&this._space(),this._append(e,!1),this.setLastChar(-3),this._noLineTerminator=t},t.number=function(e,t){this.word(e),!Number.isInteger(t)||function(e){if(e.length>2&&48===e.charCodeAt(0)){var t=e.charCodeAt(1);return 98===t||111===t||120===t}return!1}(e)||lk.test(e)||uk.test(e)||46===e.charCodeAt(e.length-1)||this.setLastChar(-2)},t.token=function(e,t,r,a){void 0===t&&(t=!1),void 0===r&&(r=0),void 0===a&&(a=!1),this.tokenContext&=HA.forInOrInitHeadAccumulatePassThroughMask,this._maybePrintInnerComments(e,r);var n=this._flags;if(32&n&&this._maybeAddAuxComment(),1&n&&this._catchUpToCurrentToken(e,r),a){var s=e.charCodeAt(0);((45===s&&"--"===e||61===s)&&33===this.getLastChar()||43===s&&43===this.getLastChar()||45===s&&45===this.getLastChar()||46===s&&-2===this.getLastChar())&&this._space()}this._append(e,t),this._noLineTerminator=!1},t.tokenChar=function(e,t){void 0===t&&(t=0),this.tokenContext&=HA.forInOrInitHeadAccumulatePassThroughMask,this._maybePrintInnerComments(e,t);var r=this._flags;32&r&&this._maybeAddAuxComment(),1&r&&this._catchUpToCurrentToken(e,t),(43===e&&43===this.getLastChar()||45===e&&45===this.getLastChar()||46===e&&-2===this.getLastChar())&&this._space(),this._appendChar(e),this._noLineTerminator=!1},t.newline=function(e,t){if(void 0===e&&(e=1),void 0===t&&(t=this._flags),!(e<=0||10&t))if(4&t)this.space();else{e>2&&(e=2),e-=this._buf.getNewlineCount();for(var r=0;r<e;r++)this._newline()}},t.endsWith=function(e){return this.getLastChar(!0)===e},t.getLastChar=function(e){return this._buf.getLastChar(e)},t.setLastChar=function(e){this._buf._last=e},t.exactSource=function(e,t){e?(this._catchUp("start",e),this._buf.exactSource(e,t)):t()},t.source=function(e,t){t&&(this._catchUp(e,t),this._buf.source(e,t))},t.sourceWithOffset=function(e,t,r){t&&!this.format.preserveFormat&&(this._catchUp(e,t),this._buf.sourceWithOffset(e,t,r))},t.sourceIdentifierName=function(e,t){if(this._buf._canMarkIdName){var r=this._buf._sourcePosition;r.identifierNamePos=t,r.identifierName=e}},t._space=function(){this._queue(32)},t._newline=function(){32===this._buf._queuedChar&&(this._buf._queuedChar=0),this._appendChar(10,!0)},t._catchUpToCurrentToken=function(e,t){void 0===t&&(t=0);var r=this.tokenMap.findMatching(this._currentNode,e,t);r&&this._catchUpTo(r.loc.start),-1!==this._printSemicolonBeforeNextToken&&this._printSemicolonBeforeNextToken===this._buf.getCurrentLine()&&this._appendChar(59,!0),this._printSemicolonBeforeNextToken=-1,this._printSemicolonBeforeNextNode=-1},t._append=function(e,t){this._maybeIndent(),this._buf.append(e,t)},t._appendChar=function(e,t){t||this._maybeIndent(),this._buf.appendChar(e)},t._queue=function(e){this._buf.queue(e),this.setLastChar(-1)},t._maybeIndent=function(){var e=this._shouldIndent();e>0&&this._buf._appendChar(-1,e,!1)},t._shouldIndent=function(){return this.endsWith(10)?this._indent:0},t.catchUp=function(e){if(this.format.retainLines)for(var t=e-this._buf.getCurrentLine(),r=0;r<t;r++)this._newline()},t._catchUp=function(e,t){var r=this._flags;if(1&r){var a=null==t?void 0:t[e];null!=a&&this._catchUpTo(a)}else 8&r&&null!=t&&t[e]&&this.catchUp(t[e].line)},t._catchUpTo=function(e){var t=e.line,r=e.column,a=e.index,n=t-this._buf.getCurrentLine();if(!(n>0&&this._noLineTerminator)){for(var s=0;s<n;s++)this._newline();var o=n>0?r:r-this._buf.getCurrentColumn();if(o>0){var i=this._originalCode?this._originalCode.slice(a-o,a).replace(/(?:[\0-\x08\n\r-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g," "):" ".repeat(o);this._append(i,!1),this.setLastChar(32)}}},t.printTerminatorless=function(e){this._noLineTerminator=!0,this.print(e)},t.print=function(e,t,r,a){var n,s;if(void 0===t&&(t=!1),void 0===r&&(r=!1),e){this._innerCommentsState=0;var o=e.type,i=e.loc,d=e.extra,c=this._flags,l=!1;e._compact&&(this._flags|=4,l=!0);var u=BA.get(o);if(void 0===u)throw new ReferenceError("unknown node of type "+JSON.stringify(o)+" with constructor "+JSON.stringify(e.constructor.name));var p,f=y(u,3),g=f[0],m=f[1],h=f[2],b=this._currentNode,v=this._currentTypeId;this._currentNode=e,this._currentTypeId=m,1&c&&(this._printSemicolonBeforeNextToken=this._printSemicolonBeforeNextNode),32&c&&(p=this._insideAux,this._insideAux=null==i,this._maybeAddAuxComment(this._insideAux&&!p));var x=0;r&&((x=this.tokenContext)&HA.forInOrInitHeadAccumulate?this.tokenContext=0:x=0);var R=null!=d&&d.parenthesized,j=R&&1&c||R&&16&c&&71===m||b&&($A(e,b,v)||null!=h&&h(e,b,v,this.tokenContext,1&c?this._boundGetRawIdentifier:void 0));if(!j&&R&&null!=(n=e.leadingComments)&&n.length&&"CommentBlock"===e.leadingComments[0].type)switch(v){case 65:case 243:case 6:case 143:break;case 17:case 130:case 112:if(b.callee!==e)break;default:j=!0}var w,E,S=!1;if(!j&&this._noLineTerminator&&(null!=(s=e.leadingComments)&&s.some(gk)||8&c&&i&&i.start.line>this._buf.getCurrentLine())&&(j=!0,S=!0),!j)if(t||(t=!!b&&this._noLineTerminatorAfterNode===b&&function(e,t){for(var r=VA[e.type],a=r.length-1;a>=0;a--){var n=e[r[a]];if(n===t)return!0;if(Array.isArray(n)){for(var s=n.length-1;s>=0&&null===n[s];)s--;return s>=0&&n[s]===t}if(n)return!1}return!1}(b,e)),t)null!=(E=e.trailingComments)&&E.some(gk)?nk(e)&&(j=!0):(w=this._noLineTerminatorAfterNode,this._noLineTerminatorAfterNode=e);j&&(this.tokenChar(40),S&&this.indent(),this._innerCommentsState=0,r||(x=this.tokenContext),x&HA.forInOrInitHeadAccumulate&&(this.tokenContext=0),w=this._noLineTerminatorAfterNode,this._noLineTerminatorAfterNode=null),this._printLeadingComments(e,b),this.exactSource(139===m||66===m?null:i,g.bind(this,e,b)),j?(this._printTrailingComments(e,b),S&&(this.dedent(),this.newline()),this.tokenChar(41),this._noLineTerminator=t):t&&!this._noLineTerminator?(this._noLineTerminator=!0,this._printTrailingComments(e,b)):this._printTrailingComments(e,b,a),x&&(this.tokenContext=x),this._currentNode=b,this._currentTypeId=v,l&&(this._flags=c),32&c&&(this._insideAux=p),null!=w&&(this._noLineTerminatorAfterNode=w),this._innerCommentsState=0}},t._maybeAddAuxComment=function(e){e&&this._printAuxBeforeComment(),this._insideAux||this._printAuxAfterComment()},t._printAuxBeforeComment=function(){if(!this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!0;var e=this.format.auxiliaryCommentBefore;e&&this._printComment({type:"CommentBlock",value:e},0)}},t._printAuxAfterComment=function(){if(this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!1;var e=this.format.auxiliaryCommentAfter;e&&this._printComment({type:"CommentBlock",value:e},0)}},t.getPossibleRaw=function(e){var t=e.extra;if(null!=(null==t?void 0:t.raw)&&null!=t.rawValue&&e.value===t.rawValue)return t.raw},t.printJoin=function(e,t,r,a,n,s,o){if(null!=e&&e.length){var i=this._flags;if(null==r&&8&i){var d,c=null==(d=e[0].loc)?void 0:d.start.line;null!=c&&c!==this._buf.getCurrentLine()&&(r=!0)}r&&this.indent(i);for(var l=e.length,u=0;u<l;u++){var p=e[u];if(p&&(t&&0===u&&this._buf.hasContent()&&this.newline(1,i),this.print(p,!1,s,o||0),null!=a&&(u<l-1?a.call(this,u,!1):n&&a.call(this,u,!0)),t))if(u+1===l)this.newline(1,i);else{var f=this._lastCommentLine;if(f>0){var g,m=((null==(g=e[u+1].loc)?void 0:g.start.line)||0)-f;if(m>=0){this.newline(m||1,i);continue}}this.newline(1,i)}}r&&this.dedent(i)}},t.printAndIndentOnComments=function(e){var t=e.leadingComments&&e.leadingComments.length>0;t&&this.indent(),this.print(e),t&&this.dedent()},t.printBlock=function(e){"EmptyStatement"!==e.type&&this.space(),this.print(e)},t._printTrailingComments=function(e,t,r){var a=e.innerComments,n=e.trailingComments;null!=a&&a.length&&this._printComments(2,a,e,t,r),null!=n&&n.length?this._printComments(2,n,e,t,r):this._lastCommentLine=0},t._printLeadingComments=function(e,t){var r=e.leadingComments;null!=r&&r.length&&this._printComments(0,r,e,t)},t._maybePrintInnerComments=function(e,t){var r,a=this._innerCommentsState;switch(3&a){case 0:return void(this._innerCommentsState=5);case 1:this.printInnerComments((4&a)>0,null==(r=this.tokenMap)?void 0:r.findMatching(this._currentNode,e,t))}},t.printInnerComments=function(e,t){void 0===e&&(e=!0);var r=this._currentNode,a=r.innerComments;if(null!=a&&a.length){var n=this.endsWith(32);switch(e&&this.indent(),this._printComments(1,a,r,void 0,void 0,t)){case 2:this._innerCommentsState=2;case 1:n&&this.space()}e&&this.dedent()}else this._innerCommentsState=2},t.noIndentInnerCommentsHere=function(){this._innerCommentsState&=-5},t.printSequence=function(e,t,r,a){this.printJoin(e,!0,null!=t&&t,void 0,void 0,r,a)},t.printList=function(e,t,r,a,n,s){this.printJoin(e,r,a,null!=n?n:yk,t,s)},t.shouldPrintTrailingComma=function(e){var t=this;if(!this.tokenMap)return null;var r=this.tokenMap.findLastIndex(this._currentNode,function(r){return t.tokenMap.matchesOriginal(r,"number"==typeof e?String.fromCharCode(e):e)});return r<=0?null:this.tokenMap.matchesOriginal(this._tokens[r-1],",")},t._shouldPrintComment=function(e,t){if(e.ignore)return 0;if(this._printedComments.has(e))return 0;if(this._noLineTerminator&&fk.test(e.value))return 2;if(t&&this.tokenMap){var r=this.tokenMap.find(this._currentNode,function(t){return t.value===e.value});if(r&&r.start>t.start)return 2}return this._printedComments.add(e),this.format.shouldPrintComment(e.value)?1:0},t._printComment=function(e,t){var r,a=this._noLineTerminator,n="CommentBlock"===e.type,s=n&&1!==t&&!a;switch(s&&this._buf.hasContent()&&2!==t&&this.newline(1),this.getLastChar(!0)){case 47:this._space();case 91:case 123:case 40:break;default:this.space()}if(n){if(r="/*"+e.value+"*/",this.format.indent.adjustMultilineComment){var o,i=null==(o=e.loc)?void 0:o.start.column;if(i){var d=new RegExp("\\n\\s{1,"+i+"}","g");r=r.replace(d,"\n")}if(4&this._flags)r=r.replace(/\n(?!$)/g,"\n");else{var c=this.format.retainLines?0:this._buf.getCurrentColumn();(this._shouldIndent()||this.format.retainLines)&&(c+=this._indent),r=r.replace(/\n(?!$)/g,"\n"+" ".repeat(c))}}}else r=a?"/*"+e.value+"*/":"//"+e.value;this.source("start",e.loc),this._append(r,n),n||a||this._newline(),s&&3!==t&&this.newline(1)},t._printComments=function(e,t,r,a,n,s){void 0===n&&(n=0);for(var o=r.loc,i=t.length,d=!!o,c=d?o.start.line:0,l=d?o.end.line:0,u=0,p=0,f=this._noLineTerminator,g=this._flags,m=0;m<i;m++){var y=t[m],h=this._shouldPrintComment(y,s);if(2===h)return 0===m?0:1;if(d&&y.loc&&1===h){var b=y.loc.start.line,v=y.loc.end.line;if(0===e){var x=0;if(0===m?!this._buf.hasContent()||"CommentLine"!==y.type&&b===v||(x=p=1):x=b-u,u=v,x>0&&!f&&this.newline(x,g),this._printComment(y,1),m+1===i){var R=Math.max(c-u,p);R>0&&!f&&this.newline(R,g),u=c}}else if(1===e){var j=b-(0===m?c:u);if(u=v,j>0&&!f&&this.newline(j,g),this._printComment(y,1),m+1===i){var w=Math.min(1,l-u);w>0&&!f&&this.newline(w,g),u=l}}else{var E=b-(0===m?l-n:u);u=v,E>0&&!f&&this.newline(E,g),this._printComment(y,1)}}else{if(d=!1,1!==h)continue;if(1===i){var S=y.loc?y.loc.start.line===y.loc.end.line:!pk.test(y.value),T=S&&!ok(r)&&!ik(a)&&!dk(a)&&!ck(r);0===e?this._printComment(y,T&&"ObjectExpression"!==r.type||S&&sk(a)&&a.body===r?1:0):T&&2===e?this._printComment(y,1):this._printComment(y,0)}else 1!==e||"ObjectExpression"===r.type&&r.properties.length>1||"ClassBody"===r.type||"TSInterfaceBody"===r.type?this._printComment(y,0):this._printComment(y,0===m?2:m===i-1?3:0)}}return 2===e&&d&&u&&(this._lastCommentLine=u),2},o(e)}();function yk(e,t){this.tokenChar(44,e),t||this.space()}function hk(e,t,r){var a;if(t.experimental_preserveFormat){if("string"!=typeof e)throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string");if(!t.retainLines)throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`");if(t.compact&&"auto"!==t.compact)throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option");if(t.minified)throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option");if(t.jsescOption)throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option");if(!Array.isArray(r.tokens))throw new Error("`experimental_preserveFormat` requires the AST to have attached the token of the input code. Make sure to enable the `tokens: true` parser option.")}var n={auxiliaryCommentBefore:t.auxiliaryCommentBefore,auxiliaryCommentAfter:t.auxiliaryCommentAfter,shouldPrintComment:t.shouldPrintComment,preserveFormat:t.experimental_preserveFormat,retainLines:t.retainLines,retainFunctionParens:t.retainFunctionParens,comments:null==t.comments||t.comments,compact:t.compact,minified:t.minified,concise:t.concise,indent:{adjustMultilineComment:!0,style:" "},jsescOption:Object.assign({quotes:"double",wrap:!0,minimal:!1},t.jsescOption),topicToken:t.topicToken};n.decoratorsBeforeExport=t.decoratorsBeforeExport,n.jsescOption.json=t.jsonCompatibleStrings,n.recordAndTupleSyntaxType=null!=(a=t.recordAndTupleSyntaxType)?a:"hash",n.importAttributesKeyword=t.importAttributesKeyword,n.minified?(n.compact=!0,n.shouldPrintComment=n.shouldPrintComment||function(){return n.comments}):n.shouldPrintComment=n.shouldPrintComment||function(e){return n.comments||e.includes("@license")||e.includes("@preserve")},"auto"===n.compact&&(n.compact="string"==typeof e&&e.length>5e5,n.compact&&console.error("[BABEL] Note: The code generator has deoptimised the styling of "+t.filename+" as it exceeds the max of 500KB.")),(n.compact||n.preserveFormat)&&(n.indent.adjustMultilineComment=!1);var s=n.auxiliaryCommentBefore,o=n.auxiliaryCommentAfter,i=n.shouldPrintComment;return s&&!i(s)&&(n.auxiliaryCommentBefore=void 0),o&&!i(o)&&(n.auxiliaryCommentAfter=void 0),n}function bk(e,t,r){void 0===t&&(t={});var a=hk(r,t,e),n=t.sourceMaps?new ST(t,r):null;return new mk(a,n,e.tokens,"string"==typeof r?r:null).generate(e)}e.CodeGenerator=function(){function e(e,t,r){void 0===t&&(t={}),this._ast=void 0,this._format=void 0,this._map=void 0,this._ast=e,this._format=hk(r,t,e),this._map=t.sourceMaps?new ST(t,r):null}return e.prototype.generate=function(){return new mk(this._format,this._map).generate(this._ast)},o(e)}();var vk=Object.freeze({__proto__:null,default:bk,generate:bk}),xk=ja;var Rk=$g,jk=em,wk=$g,Ek=br,Sk=Rr;function Tk(e){return e.every(function(e){return Ek(e)})?Rk?Rk(e):wk(e):e.every(function(e){return Sk(e)})&&jk?jk(e):void 0}var Pk=la,Ak=Xg,kk=hi,Ck=Ui;function _k(e,t,r){var a=e.constantViolations.slice();return a.unshift(e.path),a.filter(function(e){var a=(e=e.resolve())._guessExecutionStatusRelativeTo(t);return r&&"unknown"===a&&r.push(e),"before"===a})}function Ik(e,t){var r,a,n,s=t.node.operator,o=t.get("right").resolve(),i=t.get("left").resolve();if(i.isIdentifier({name:e})?r=o:o.isIdentifier({name:e})&&(r=i),r)return"==="===s?r.getTypeAnnotation():Pk.includes(s)?kk():void 0;if(("==="===s||"=="===s)&&(i.isUnaryExpression({operator:"typeof"})?(a=i,n=o):o.isUnaryExpression({operator:"typeof"})&&(a=o,n=i),a&&a.get("argument").isIdentifier({name:e})&&(n=n.resolve()).isLiteral())){var d=n.node.value;if("string"==typeof d)return Ak(d)}}function Dk(e,t,r){var a=function(e,t,r){for(var a;a=t.parentPath;){if(a.isIfStatement()||a.isConditionalExpression()){if("test"===t.key)return;return a}if(a.isFunction()&&(null==r||a.parentPath.scope.getBinding(r)!==e))return;t=a}}(e,t,r);if(a){for(var n=[a.get("test")],s=[],o=0;o<n.length;o++){var i=n[o];if(i.isLogicalExpression())"&&"===i.node.operator&&(n.push(i.get("left")),n.push(i.get("right")));else if(i.isBinaryExpression()){var d=Ik(r,i);d&&s.push(d)}}return s.length?{typeAnnotation:Tk(s),ifStatement:a}:Dk(e,a,r)}}var Ok=fa,Nk=ha,Bk=ga,Mk=ba,Fk=va,Lk=qo,Uk=Go,qk=Wo,Gk=Sr,Wk=ii,Vk=Ps,Hk=Ho,zk=hi,Kk=Pi,Xk=Ci,Jk=Fi,Yk=Ui,$k=ie;function Qk(e){return e.typeAnnotation}function Zk(e){return e.typeAnnotation}function eC(){return Wk(Vk("Array"))}function tC(){return eC()}function rC(){return Wk(Vk("Function"))}Qk.validParent=!0,Zk.validParent=!0,tC.validParent=!0;var aC=Gk("Array.from"),nC=Gk("Object.keys"),sC=Gk("Object.values"),oC=Gk("Object.entries");function iC(e){if((e=e.resolve()).isFunction()){var t=e.node;if(t.async)return t.generator?Wk(Vk("AsyncIterator")):Wk(Vk("Promise"));if(t.generator)return Wk(Vk("Iterator"));if(e.node.returnType)return e.node.returnType}}var dC=Object.freeze({__proto__:null,ArrayExpression:eC,ArrowFunctionExpression:rC,AssignmentExpression:function(){return this.get("right").getTypeAnnotation()},BinaryExpression:function(e){var t=e.operator;if(Bk.includes(t))return zk();if(Ok.includes(t))return qk();if("+"===t){var r=this.get("right"),a=this.get("left");return a.isBaseType("number")&&r.isBaseType("number")?zk():a.isBaseType("string")||r.isBaseType("string")?Kk():Jk([Kk(),zk()])}},BooleanLiteral:function(){return qk()},CallExpression:function(){var e=this.node.callee;return nC(e)?Uk(Kk()):aC(e)||sC(e)||$k(e,{name:"Array"})?Uk(Lk()):oC(e)?Uk(Xk([Kk(),Lk()])):iC(this.get("callee"))},ClassDeclaration:rC,ClassExpression:rC,ConditionalExpression:function(){return Tk([this.get("consequent").getTypeAnnotation(),this.get("alternate").getTypeAnnotation()])},FunctionDeclaration:rC,FunctionExpression:rC,Identifier:function(e){if(this.isReferenced()){var t=this.scope.getBinding(e.name);return t?t.identifier.typeAnnotation?t.identifier.typeAnnotation:function(e,t,r){var a=[],n=[],s=_k(e,t,n),o=Dk(e,t,r);if(o){var d=_k(e,o.ifStatement);s=s.filter(function(e){return!d.includes(e)}),a.push(o.typeAnnotation)}if(s.length){var c;(c=s).push.apply(c,n);for(var l,u=i(s);!(l=u()).done;){var p=l.value;a.push(p.getTypeAnnotation())}}if(!a.length)return;return Tk(a)}(t,this,e.name):"undefined"===e.name?Ck():"NaN"===e.name||"Infinity"===e.name?kk():void e.name}},LogicalExpression:function(){return Tk([this.get("left").getTypeAnnotation(),this.get("right").getTypeAnnotation()])},NewExpression:function(e){if("Identifier"===e.callee.type)return Wk(e.callee)},NullLiteral:function(){return Hk()},NumericLiteral:function(){return zk()},ObjectExpression:function(){return Wk(Vk("Object"))},ParenthesizedExpression:function(){return this.get("expression").getTypeAnnotation()},RegExpLiteral:function(){return Wk(Vk("RegExp"))},RestElement:tC,SequenceExpression:function(){return this.get("expressions").pop().getTypeAnnotation()},StringLiteral:function(){return Kk()},TSAsExpression:Zk,TSNonNullExpression:function(){return this.get("expression").getTypeAnnotation()},TaggedTemplateExpression:function(){return iC(this.get("tag"))},TemplateLiteral:function(){return Kk()},TypeCastExpression:Qk,UnaryExpression:function(e){var t=e.operator;return"void"===t?Yk():Mk.includes(t)?zk():Fk.includes(t)?Kk():Nk.includes(t)?qk():void 0},UpdateExpression:function(e){var t=e.operator;if("++"===t||"--"===t)return zk()},VariableDeclarator:function(){if(this.get("id").isIdentifier())return this.get("init").getTypeAnnotation()}}),cC=qo,lC=ct,uC=lt,pC=ut,fC=mt,gC=vr,mC=ft,yC=ie,hC=gt,bC=yt,vC=ht,xC=qt,RC=Yt,jC=Ut,wC=bt,EC=vt,SC=Rt,TC=jt,PC=Pi,AC=Ui;var kC=new WeakSet;function CC(){var e=this.node;if(e){if(e.typeAnnotation)return e.typeAnnotation;if(!kC.has(e)){kC.add(e);try{var t,r=dC[e.type];if(r)return r.call(this,e);if(null!=(t=r=dC[this.parentPath.type])&&t.validParent)return this.parentPath.getTypeAnnotation()}finally{kC.delete(e)}}}else if("init"===this.key&&this.parentPath.isVariableDeclarator()){var a=this.parentPath.parentPath,n=a.parentPath;return"left"===a.key&&n.isForInStatement()?PC():"left"===a.key&&n.isForOfStatement()?cC():AC()}}function _C(e,t,r){if("string"===e)return vC(t);if("number"===e)return bC(t);if("boolean"===e)return pC(t);if("any"===e)return lC(t);if("mixed"===e)return hC(t);if("empty"===e)return fC(t);if("void"===e)return TC(t);if(r)return!1;throw new Error("Unknown base type "+e)}var IC=[function(e,t){if("test"===e.key&&(t.isWhile()||t.isSwitchCase())||"declaration"===e.key&&t.isExportDeclaration()||"body"===e.key&&t.isLabeledStatement()||"declarations"===e.listKey&&t.isVariableDeclaration()&&1===t.node.declarations.length||"expression"===e.key&&t.isExpressionStatement())return t.remove(),!0},function(e,t){if(t.isSequenceExpression()&&1===t.node.expressions.length)return t.replaceWith(t.node.expressions[0]),!0},function(e,t){if(t.isBinary())return"left"===e.key?t.replaceWith(t.node.right):t.replaceWith(t.node.left),!0},function(e,t){if(t.isIfStatement()&&"consequent"===e.key||"body"===e.key&&(t.isLoop()||t.isArrowFunctionExpression()))return e.replaceWith({type:"BlockStatement",directives:[],body:[]}),!0}];function DC(){var e=this,t=Iy(this.node,!1,!1,!0);Object.keys(t).forEach(function(t){return e.scope.removeBinding(t)})}function OC(){if(this.parentPath)for(var e,t=i(IC);!(e=t()).done;){if((0,e.value)(this,this.parentPath))return!0}}function NC(){Array.isArray(this.container)?(this.container.splice(this.key,1),f_.call(this,this.key,-1)):z_.call(this,null)}function BC(){var e;(this._traverseFlags|=XD|zD,this.parent)&&(null==(e=Aw(this))||e.delete(this.node));this.node=null}function MC(){if(this.removed)throw this.buildCodeFrameError("NodePath has been removed so is read-only.")}var FC=Xy,LC=sm,UC=rd,qC=Zs,GC=eo,WC={ReferencedIdentifier:function(e,t){if(!e.isJSXIdentifier()||!FC.isCompatTag(e.node.name)||e.parentPath.isJSXMemberExpression()){if("this"===e.node.name){var r=e.scope;do{if(r.path.isFunction()&&!r.path.isArrowFunctionExpression())break}while(r=r.parent);r&&t.breakOnScopePaths.push(r.path)}var a=e.scope.getBinding(e.node.name);if(a){for(var n,s=i(a.constantViolations);!(n=s()).done;){if(n.value.scope!==a.path.scope)return t.mutableBinding=!0,void e.stop()}a===t.scope.getBinding(e.node.name)&&(t.bindings[e.node.name]=a)}}}},VC=function(){function e(e,t){this.breakOnScopePaths=void 0,this.bindings=void 0,this.mutableBinding=void 0,this.scopes=void 0,this.scope=void 0,this.path=void 0,this.attachAfter=void 0,this.breakOnScopePaths=[],this.bindings={},this.mutableBinding=!1,this.scopes=[],this.scope=t,this.path=e,this.attachAfter=!1}var t=e.prototype;return t.isCompatibleScope=function(e){for(var t=0,r=Object.keys(this.bindings);t<r.length;t++){var a=r[t],n=this.bindings[a];if(!e.bindingIdentifierEquals(a,n.identifier))return!1}return!0},t.getCompatibleScopes=function(){var e=this.path.scope;do{if(!this.isCompatibleScope(e))break;if(this.scopes.push(e),this.breakOnScopePaths.includes(e.path))break}while(e=e.parent)},t.getAttachmentPath=function(){var e=this._getAttachmentPath();if(e){var t=e.scope;if(t.path===e&&(t=e.scope.parent),t.path.isProgram()||t.path.isFunction())for(var r=0,a=Object.keys(this.bindings);r<a.length;r++){var n=a[r];if(t.hasOwnBinding(n)){var s=this.bindings[n];if("param"!==s.kind&&"params"!==s.path.parentKey)if(this.getAttachmentParentForPath(s.path).key>=e.key){this.attachAfter=!0,e=s.path;for(var o,d=i(s.constantViolations);!(o=d()).done;){var c=o.value;this.getAttachmentParentForPath(c).key>e.key&&(e=c)}}}}return e}},t._getAttachmentPath=function(){var e=this.scopes.pop();if(e)if(e.path.isFunction()){if(!this.hasOwnParamBindings(e))return this.getNextScopeAttachmentParent();if(this.scope===e)return;for(var t=e.path.get("body").get("body"),r=0;r<t.length;r++)if(!t[r].node._blockHoist)return t[r]}else if(e.path.isProgram())return this.getNextScopeAttachmentParent()},t.getNextScopeAttachmentParent=function(){var e=this.scopes.pop();if(e)return this.getAttachmentParentForPath(e.path)},t.getAttachmentParentForPath=function(e){do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement())return e}while(e=e.parentPath);return e},t.hasOwnParamBindings=function(e){for(var t=0,r=Object.keys(this.bindings);t<r.length;t++){var a=r[t];if(e.hasOwnBinding(a)){var n=this.bindings[a];if("param"===n.kind&&n.constant)return!0}}return!1},t.run=function(){if(this.path.traverse(WC,this),!this.mutableBinding){this.getCompatibleScopes();var e=this.getAttachmentPath();if(e&&e.getFunctionParent()!==this.path.getFunctionParent()){var t=e.scope.generateUidIdentifier("ref"),r=GC(t,this.path.node),a=y(e[this.attachAfter?"insertAfter":"insertBefore"]([e.isVariableDeclarator()?r:qC("var",[r])]),1)[0],n=this.path.parentPath;return n.isJSXElement()&&this.path.container===n.node.children&&(t=UC(t)),this.path.replaceWith(LC(t)),a.isVariableDeclarator()?a.get("init"):a.get("declarations.0.init")}}},o(e)}(),HC=so,zC=Hg,KC=is,XC=ps,JC=gs,YC=sm,$C=Rs,QC=$,ZC=Z,e_=Fe,t_=$t,r_=ie,a_=we,n_=Je,s_=Xs;function o_(e){MC.call(this);var t=g_.call(this,e),r=this.parentPath,a=this.parent;if(r.isExpressionStatement()||r.isLabeledStatement()||e_(a)||r.isExportDefaultDeclaration()&&this.isDeclaration())return r.insertBefore(t);if(this.isNodeType("Expression")&&!this.isJSXElement()||r.isForStatement()&&"init"===this.key)return this.node&&t.push(this.node),this.replaceExpressionWithStatements(t);if(Array.isArray(this.container))return d_.call(this,t);if(this.isStatementOrBlock()){var n=this.node,s=n&&(!this.isExpressionStatement()||null!=n.expression);return y(this.replaceWith(XC(s?[n]:[])),1)[0].unshiftContainer("body",t)}throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?")}function i_(e,t){var r;f_.call(this,e,t.length);var a=[];(r=this.container).splice.apply(r,[e,0].concat(b(t)));for(var n=0;n<t.length;n++){var s,o=e+n,d=this.getSibling(o);a.push(d),null!=(s=this.context)&&s.queue&&SO.call(d,this.context)}for(var c=CO.call(this),l=0,u=a;l<u.length;l++){var p=u[l];hO.call(p),p.debug("Inserted.");for(var f,g=i(c);!(f=g()).done;){f.value.maybeQueue(p,!0)}}return a}function d_(e){return i_.call(this,this.key,e)}function c_(e){return i_.call(this,this.key+1,e)}var l_=function(e){return e[e.length-1]};function u_(e){return a_(e.parent)&&(l_(e.parent.expressions)!==e.node||u_(e.parentPath))}function p_(e){if(MC.call(this),this.isSequenceExpression())return l_(this.get("expressions")).insertAfter(e);var t=g_.call(this,e),r=this.parentPath,a=this.parent;if(r.isExpressionStatement()||r.isLabeledStatement()||e_(a)||r.isExportDefaultDeclaration()&&this.isDeclaration())return r.insertAfter(t.map(function(e){return t_(e)?$C(e):e}));if(this.isNodeType("Expression")&&!this.isJSXElement()&&!r.isJSXElement()||r.isForStatement()&&"init"===this.key){var n=this;if(n.node){var s=n.node,o=this.scope;if(o.path.isPattern())return zC(s),n.replaceWith(JC(HC([],s),[])),n.get("callee.body").insertAfter(t),[n];if(u_(n))t.unshift(s);else if(ZC(s)&&n_(s.callee))t.unshift(s),t.push(s_());else if(function(e,t){if(!QC(e)||!r_(e.left))return!1;var r=t.getBlockParent();return r.hasOwnBinding(e.left.name)&&r.getOwnBinding(e.left.name).constantViolations.length<=1}(s,o))t.unshift(s),t.push(YC(s.left));else if(o.isPure(s,!0))t.push(s);else{r.isMethod({computed:!0,key:s})&&(o=o.parent);var i=o.generateDeclaredUidIdentifier();t.unshift($C(KC("=",YC(i),s))),t.push($C(YC(i)))}}return this.replaceExpressionWithStatements(t)}if(Array.isArray(this.container))return c_.call(this,t);if(this.isStatementOrBlock()){var d=this.node,c=d&&(!this.isExpressionStatement()||null!=d.expression);return y(this.replaceWith(XC(c?[d]:[])),1)[0].pushContainer("body",t)}throw new Error("We don't know what to do with this node type. We were previously a Statement but we can't fit in here?")}function f_(e,t){if(this.parent){var r=Aw(this);if(r)for(var a,n=i(r);!(a=n()).done;){var s=y(a.value,2)[1];"number"==typeof s.key&&s.container===this.container&&s.key>=e&&(s.key+=t)}}}function g_(e){if(!e)return[];Array.isArray(e)||(e=[e]);for(var t=0;t<e.length;t++){var r=e[t],a=void 0;if(r?"object"!=typeof r?a="contains a non-object node":r.type?r instanceof JD&&(a="has a NodePath when it expected a raw object"):a="without a type":a="has falsy node",a){var n=Array.isArray(r)?"array":typeof r;throw new Error("Node list "+a+" with the index of "+t+" and type of "+n)}}return e}function m_(e,t){MC.call(this);var r=g_.call(this,t),a=this.node[e],n=JD.get({parentPath:this,parent:this.node,container:a,listKey:e,key:0}).setContext(this.context);return d_.call(n,r)}function y_(e,t){MC.call(this);var r=g_.call(this,t),a=this.node[e];return JD.get({parentPath:this,parent:this.node,container:a,listKey:e,key:a.length}).setContext(this.context).replaceWithMultiple(r)}e.hoist=function(e){return void 0===e&&(e=this.scope),new VC(this,e).run()};var h_=Object.freeze({__proto__:null,_containerInsert:i_,_containerInsertAfter:c_,_containerInsertBefore:d_,_verifyNodeList:g_,insertAfter:p_,insertBefore:o_,pushContainer:y_,unshiftContainer:m_,updateSiblingKeys:f_}),b_=Im,v_=so,x_=is,R_=ko,j_=ps,w_=tm,E_=gs,S_=sm,T_=ys,P_=Rs,A_=Iy,k_=Ps,C_=fm,__=gm,I_=mm,D_=Q,O_=te,N_=$t,B_=re,M_=de,F_=he,L_=er,U_=Ae,q_=ym,G_=Ws,W_=Vs,V_=es,H_=Ao;function z_(e){var t;if(!this.container)throw new ReferenceError("Container is falsy");this.inList?V_(this.parent,this.key,[e]):V_(this.parent,this.key,e),this.debug("Replace with "+(null==e?void 0:e.type)),null==(t=Aw(this))||t.set(e,this).delete(this.node),this.node=e,this.container[this.key]=e}function K_(e,t){for(var r,a=[],n=!0,s=i(e);!(r=s()).done;){var o=r.value;if(O_(o)||(n=!1),N_(o))a.push(o);else if(B_(o))a.push(o.expression);else if(U_(o)){if("var"!==o.kind)return;for(var d,c=i(o.declarations);!(d=c()).done;){for(var l=d.value,u=A_(l),p=0,f=Object.keys(u);p<f.length;p++){var g=f[p];t.push(S_(u[g]))}l.init&&a.push(x_("=",l.id,l.init))}n=!0}else if(M_(o)){var m=o.consequent?K_([o.consequent],t):w_(),y=o.alternate?K_([o.alternate],t):w_();if(!m||!y)return;a.push(T_(o.test,m,y))}else if(D_(o)){var h=K_(o.body,t);if(!h)return;a.push(h)}else{if(!O_(o))return;0===e.indexOf(o)&&(n=!0)}}return n&&a.push(w_()),1===a.length?a[0]:W_(a)}var X_=["Number","String","Math"],J_=["isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent",null,null],Y_=["random"];function $_(e){return X_.includes(e)}function Q_(e,t){t.confident&&(t.deoptPath=e,t.confident=!1)}var Z_,eI=new Map([["undefined",void 0],["Infinity",1/0],["NaN",NaN]]);function tI(e,t){var r=e.node,a=t.seen;if(a.has(r)){var n=a.get(r);return n.resolved?n.value:void Q_(e,t)}var s={resolved:!1};a.set(r,s);var o=function(e,t){if(!t.confident)return;if(e.isSequenceExpression()){var r=e.get("expressions");return tI(r[r.length-1],t)}if(e.isStringLiteral()||e.isNumericLiteral()||e.isBooleanLiteral())return e.node.value;if(e.isNullLiteral())return null;if(e.isTemplateLiteral())return rI(e,e.node.quasis,t);if(e.isTaggedTemplateExpression()&&e.get("tag").isMemberExpression()){var a=e.get("tag.object"),n=a.node.name,s=e.get("tag.property");if(a.isIdentifier()&&"String"===n&&!e.scope.getBinding(n)&&s.isIdentifier()&&"raw"===s.node.name)return rI(e,e.node.quasi.quasis,t,!0)}if(e.isConditionalExpression()){var o=tI(e.get("test"),t);if(!t.confident)return;return tI(o?e.get("consequent"):e.get("alternate"),t)}if(e.isExpressionWrapper())return tI(e.get("expression"),t);if(e.isMemberExpression()&&!e.parentPath.isCallExpression({callee:e.node})){var d=e.get("property"),c=e.get("object");if(c.isLiteral()){var l=c.node.value,u=typeof l,p=null;if(e.node.computed){if(p=tI(d,t),!t.confident)return}else d.isIdentifier()&&(p=d.node.name);if(!("number"!==u&&"string"!==u||null==p||"number"!=typeof p&&"string"!=typeof p))return l[p]}}if(e.isReferencedIdentifier()){var f=e.scope.getBinding(e.node.name);if(f){if(f.constantViolations.length>0||e.node.start<f.path.node.end)return void Q_(f.path,t);var g=f.path.scope;if("var"===f.kind&&g!==f.scope)for(var m=!g.path.parentPath.isBlockStatement(),y=g.parent;y;y=y.parent){var h;if(y===e.scope){if(m)return void Q_(f.path,t);break}null!=(h=y.path.parentPath)&&h.isBlockStatement()&&(m=!0)}if(f.hasValue)return f.value}var b=e.node.name;if(eI.has(b))return f?void Q_(f.path,t):eI.get(b);if(!f)return void Q_(e,t);var v=f.path;if(!v.isVariableDeclarator())return void Q_(v,t);var x=v.get("init"),R=tI(x,t);return"object"==typeof R&&null!==R&&f.references>1?void Q_(x,t):R}if(e.isUnaryExpression({prefix:!0})){if("void"===e.node.operator)return;var w=e.get("argument");if("typeof"===e.node.operator&&(w.isFunction()||w.isClass()))return"function";var E=tI(w,t);if(!t.confident)return;switch(e.node.operator){case"!":return!E;case"+":return+E;case"-":return-E;case"~":return~E;case"typeof":return typeof E}}if(e.isArrayExpression()){for(var S,T=[],P=i(e.get("elements"));!(S=P()).done;){var A=S.value.evaluate();if(!A.confident)return void Q_(A.deopt,t);T.push(A.value)}return T}if(e.isObjectExpression()){for(var k,C={},_=i(e.get("properties"));!(k=_()).done;){var I=k.value;if(I.isObjectMethod()||I.isSpreadElement())return void Q_(I,t);var D=I.get("key"),O=void 0;if(I.node.computed){if(!(O=D.evaluate()).confident)return void Q_(O.deopt,t);O=O.value}else O=D.isIdentifier()?D.node.name:D.node.value;var N=I.get("value").evaluate();if(!N.confident)return void Q_(N.deopt,t);N=N.value,C[O]=N}return C}if(e.isLogicalExpression()){var B=t.confident,M=tI(e.get("left"),t),F=t.confident;t.confident=B;var L=tI(e.get("right"),t),U=t.confident;switch(e.node.operator){case"||":if(t.confident=F&&(!!M||U),!t.confident)return;return M||L;case"&&":if(t.confident=F&&(!M||U),!t.confident)return;return M&&L;case"??":if(t.confident=F&&(null!=M||U),!t.confident)return;return null!=M?M:L}}if(e.isBinaryExpression()){var q=tI(e.get("left"),t);if(!t.confident)return;var G=tI(e.get("right"),t);if(!t.confident)return;switch(e.node.operator){case"-":return q-G;case"+":return q+G;case"/":return q/G;case"*":return q*G;case"%":return q%G;case"**":return Math.pow(q,G);case"<":return q<G;case">":return q>G;case"<=":return q<=G;case">=":return q>=G;case"==":return q==G;case"!=":return q!=G;case"===":return q===G;case"!==":return q!==G;case"|":return q|G;case"&":return q&G;case"^":return q^G;case"<<":return q<<G;case">>":return q>>G;case">>>":return q>>>G}}if(e.isCallExpression()){var W,V,H=e.get("callee");if(H.isIdentifier()&&!e.scope.getBinding(H.node.name)&&($_(H.node.name)||function(e){return J_.includes(e)}(H.node.name))&&(V=j[H.node.name]),H.isMemberExpression()){var z=H.get("object"),K=H.get("property");if(z.isIdentifier()&&K.isIdentifier()&&$_(z.node.name)&&!function(e){return Y_.includes(e)}(K.node.name)){W=j[z.node.name];var X=K.node.name;hasOwnProperty.call(W,X)&&(V=W[X])}if(z.isLiteral()&&K.isIdentifier()){var J=typeof z.node.value;"string"!==J&&"number"!==J||(V=(W=z.node.value)[K.node.name])}}if(V){var Y=e.get("arguments").map(function(e){return tI(e,t)});if(!t.confident)return;return V.apply(W,Y)}}Q_(e,t)}(e,t);return t.confident&&(s.resolved=!0,s.value=o),o}function rI(e,t,r,a){void 0===a&&(a=!1);for(var n,s="",o=0,d=e.isTemplateLiteral()?e.get("expressions"):e.get("quasi.expressions"),c=i(t);!(n=c()).done;){var l=n.value;if(!r.confident)break;s+=a?l.value.raw:l.value.cooked;var u=d[o++];u&&(s+=String(tI(u,r)))}if(r.confident)return s}var aI=so,nI=is,sI=ds,oI=ps,iI=gs,dI=ys,cI=Rs,lI=Ps,uI=ie,pI=nd,fI=Ns,gI=da,mI=Bs,yI=xo,hI=_s,bI=Ls,vI=Gs,xI=Ws,RI=Vs,jI=wo,wI=Cs,EI=Eo,SI=Xs,TI=by,PI=$s,AI=yy,kI=nr,CI=Ce,_I=Re,II=Ny,DI=sm,OI=Zs,NI=eo,BI=po,MI=fo,FI=Cy;function LI(){var e;if(this.isMemberExpression())e=this.node.property;else{if(!this.isProperty()&&!this.isMethod())throw new ReferenceError("todo");e=this.node.key}return this.node.computed||uI(e)&&(e=wI(e.name)),e}function UI(){var e=this.get("body"),t=e.node;if(Array.isArray(e))throw new Error("Can't convert array path to a block statement");if(!t)throw new Error("Can't convert node without a body");if(e.isBlockStatement())return t;var r,a,n=[],s="body";e.isStatement()?(a="body",r=0,n.push(e.node)):(s+=".body.0",this.isFunction()?(r="argument",n.push(xI(e.node))):(r="expression",n.push(cI(e.node)))),this.node.body=oI(n);var o=this.get(s);return TO.call(e,o,a?o.node[a]:o.node,a,r),this.node}function qI(){if(!this.isArrowFunctionExpression()&&!this.isFunctionExpression()&&!this.isFunctionDeclaration())throw this.buildCodeFrameError("Can only unwrap the environment of a function.");VI(this)}function GI(e){var t,r=void 0===e?{}:e,a=r.allowInsertArrow,n=void 0===a||a,s=r.allowInsertArrowWithRest,o=void 0===s?n:s,i=r.noNewArrows,d=void 0===i?!(null!=(t=arguments[0])&&t.specCompliant):i;if(!this.isArrowFunctionExpression())throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression.");var c,l=this;d||(l=null!=(c=l.ensureFunctionName(!1))?c:l);var u=VI(l,d,n,o),p=u.thisBinding,f=u.fnPath;if(f.ensureBlock(),function(e,t){e.node.type=t}(f,"FunctionExpression"),!d){var g=p?null:f.scope.generateUidIdentifier("arrowCheckId");return g&&f.parentPath.scope.push({id:g,init:bI([])}),f.get("body").unshiftContainer("body",cI(iI(this.hub.addHelper("newArrowCheck"),[SI(),lI(g?g.name:p)]))),f.replaceWith(iI(mI(f.node,lI("bind")),[g?lI(g.name):SI()])),f.get("callee.object")}return f}e.arrowFunctionToShadowed=function(){this.isArrowFunctionExpression()&&this.arrowFunctionToExpression()};var WI=hw({CallExpression:function(e,t){var r=t.allSuperCalls;e.get("callee").isSuper()&&r.push(e)}});function VI(e,t,r,a){var n;void 0===t&&(t=!0),void 0===r&&(r=!0),void 0===a&&(a=!0);var s=e.findParent(function(e){return e.isArrowFunctionExpression()?(null!=n||(n=e),!1):e.isFunction()||e.isProgram()||e.isClassProperty({static:!1})||e.isClassPrivateProperty({static:!1})}),o=s.isClassMethod({kind:"constructor"});if(s.isClassProperty()||s.isClassPrivateProperty())if(n)s=n;else{if(!r)throw e.buildCodeFrameError("Unable to transform arrow inside class property");e.replaceWith(iI(aI([],TI(e.node)),[])),s=e.get("callee"),e=s.get("body")}var i,d=function(e){var t=[],r=[],a=[],n=[],s=[];return e.traverse(XI,{thisPaths:t,argumentsPaths:r,newTargetPaths:a,superProps:n,superCalls:s}),{thisPaths:t,argumentsPaths:r,newTargetPaths:a,superProps:n,superCalls:s}}(e),c=d.thisPaths,l=d.argumentsPaths,u=d.newTargetPaths,p=d.superProps,f=d.superCalls;if(o&&f.length>0){if(!r)throw f[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super()` in an arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");if(!a)throw f[0].buildCodeFrameError("When using '@babel/plugin-transform-parameters', it's not possible to compile `super()` in an arrow function with default or rest parameters without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");var g=[];s.traverse(WI,{allSuperCalls:g});var m=function(e){return KI(e,"supercall",function(){var t=e.scope.generateUidIdentifier("args");return aI([vI(t)],iI(EI(),[jI(lI(t.name))]))})}(s);g.forEach(function(e){var t=lI(m);t.loc=e.node.callee.loc,e.get("callee").replaceWith(t)})}if(l.length>0){var y=KI(s,"arguments",function(){var e=function(){return lI("arguments")};return s.scope.path.isProgram()?dI(sI("===",PI("typeof",e()),wI("undefined")),s.scope.buildUndefinedNode(),e()):e()});l.forEach(function(e){var t=lI(y);t.loc=e.node.loc,e.replaceWith(t)})}if(u.length>0){var h=KI(s,"newtarget",function(){return yI(lI("new"),lI("target"))});u.forEach(function(e){var t=lI(h);t.loc=e.node.loc,e.replaceWith(t)})}if(p.length>0){if(!r)throw p[0].buildCodeFrameError("When using '@babel/plugin-transform-arrow-functions', it's not possible to compile `super.prop` in an arrow function without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");var b=p.reduce(function(e,t){return e.concat(function(e){if(e.parentPath.isAssignmentExpression()&&"="!==e.parentPath.node.operator){var t=e.parentPath,r=t.node.operator.slice(0,-1),a=t.node.right,n=function(e){return gI.includes(e)}(r);if(e.node.computed){var s=e.scope.generateDeclaredUidIdentifier("tmp"),o=e.node,i=o.object,d=o.property;t.get("left").replaceWith(mI(i,nI("=",s,d),!0)),t.get("right").replaceWith(m(n?"=":r,mI(i,lI(s.name),!0),a))}else{var c=e.node.object,l=e.node.property;t.get("left").replaceWith(mI(c,l)),t.get("right").replaceWith(m(n?"=":r,mI(c,lI(l.name)),a))}return n?t.replaceWith(fI(r,t.node.left,t.node.right)):t.node.operator="=",[t.get("left"),t.get("right").get("left")]}if(e.parentPath.isUpdateExpression()){var u=e.parentPath,p=e.scope.generateDeclaredUidIdentifier("tmp"),f=e.node.computed?e.scope.generateDeclaredUidIdentifier("prop"):null,g=[nI("=",p,mI(e.node.object,f?nI("=",f,e.node.property):e.node.property,e.node.computed)),nI("=",mI(e.node.object,f?lI(f.name):e.node.property,e.node.computed),sI(e.parentPath.node.operator[0],lI(p.name),hI(1)))];return e.parentPath.node.prefix||g.push(lI(p.name)),u.replaceWith(RI(g)),[u.get("expressions.0.right"),u.get("expressions.1.left")]}return[e];function m(e,t,r){return"="===e?nI("=",t,r):sI(e,t,r)}}(t))},[]);b.forEach(function(e){var t=e.node.computed?"":e.get("property").node.name,r=e.parentPath,a=r.isAssignmentExpression({left:e.node}),n=r.isCallExpression({callee:e.node}),o=r.isTaggedTemplateExpression({tag:e.node}),i=function(e,t,r){var a=t?"set":"get";return KI(e,"superprop_"+a+":"+(r||""),function(){var a,n=[];if(r)a=mI(EI(),lI(r));else{var s=e.scope.generateUidIdentifier("prop");n.unshift(s),a=mI(EI(),lI(s.name),!0)}if(t){var o=e.scope.generateUidIdentifier("value");n.push(o),a=nI("=",a,lI(o.name))}return aI(n,a)})}(s,a,t),d=[];if(e.node.computed&&d.push(e.get("property").node),a){var l=r.node.right;d.push(l)}var u=iI(lI(i),d);n?(r.unshiftContainer("arguments",SI()),e.replaceWith(mI(u,lI("call"))),c.push(r.get("arguments.0"))):a?r.replaceWith(u):o?(e.replaceWith(iI(mI(u,lI("bind"),!1),[SI()])),c.push(e.get("arguments.0"))):e.replaceWith(u)})}return(c.length>0||!t)&&(i=function(e,t){return KI(e,"this",function(r){if(!t||!HI(e))return SI();e.traverse(zI,{supers:new WeakSet,thisBinding:r})})}(s,o),(t||o&&HI(s))&&(c.forEach(function(e){var t=e.isJSX()?pI(i):lI(i);t.loc=e.node.loc,e.replaceWith(t)}),t||(i=null))),{thisBinding:i,fnPath:e}}function HI(e){return e.isClassMethod()&&!!e.parentPath.parentPath.node.superClass}var zI=hw({CallExpression:function(e,t){var r=t.supers,a=t.thisBinding;e.get("callee").isSuper()&&(r.has(e.node)||(r.add(e.node),e.replaceWithMultiple([e.node,nI("=",lI(a),lI("this"))])))}});function KI(e,t,r){var a="binding:"+t,n=e.getData(a);if(!n){var s=e.scope.generateUidIdentifier(t);n=s.name,e.setData(a,n),e.scope.push({id:s,init:r(n)})}return n}var XI=hw({ThisExpression:function(e,t){t.thisPaths.push(e)},JSXIdentifier:function(e,t){var r=t.thisPaths;"this"===e.node.name&&(e.parentPath.isJSXMemberExpression({object:e.node})||e.parentPath.isJSXOpeningElement({name:e.node}))&&r.push(e)},CallExpression:function(e,t){var r=t.superCalls;e.get("callee").isSuper()&&r.push(e)},MemberExpression:function(e,t){var r=t.superProps;e.get("object").isSuper()&&r.push(e)},Identifier:function(e,t){var r=t.argumentsPaths;if(e.isReferencedIdentifier({name:"arguments"})){var a=e.scope;do{if(a.hasOwnBinding("arguments"))return void a.rename("arguments");if(a.path.isFunction()&&!a.path.isArrowFunctionExpression())break}while(a=a.parent);r.push(e)}},MetaProperty:function(e,t){var r=t.newTargetPaths;e.get("meta").isIdentifier({name:"new"})&&e.get("property").isIdentifier({name:"target"})&&r.push(e)}});function JI(){if(!this.isExportDeclaration()||this.isExportAllDeclaration())throw new Error("Only default and named export declarations can be split.");if(this.isExportNamedDeclaration()&&this.get("specifiers").length>0)throw new Error("It doesn't make sense to split exported specifiers.");var e=this.get("declaration");if(this.isExportDefaultDeclaration()){var t=e.isFunctionDeclaration()||e.isClassDeclaration(),r=e.isFunctionExpression()||e.isClassExpression(),a=e.isScope()?e.scope.parent:e.scope,n=e.node.id,s=!1;n?r&&a.hasBinding(n.name)&&(s=!0,n=a.generateUidIdentifier(n.name)):(s=!0,n=a.generateUidIdentifier("default"),(t||r)&&(e.node.id=DI(n)));var o=t?e.node:OI("var",[NI(DI(n),e.node)]),i=BI(null,[MI(DI(n),lI("default"))]);return this.insertAfter(i),this.replaceWith(o),s&&a.registerDeclaration(this),this}if(this.get("specifiers").length>0)throw new Error("It doesn't make sense to split exported specifiers.");var d=e.getOuterBindingIdentifiers(),c=Object.keys(d).map(function(e){return MI(lI(e),lI(e))}),l=BI(null,c);return this.insertAfter(l),this.replaceWith(e.node),this}var YI={"ReferencedIdentifier|BindingIdentifier":function(e,t){e.node.name===t.name&&(t.needsRename=!0,e.stop())},Scope:function(e,t){e.scope.hasOwnBinding(t.name)&&e.skip()}};function $I(e){if(this.node.id)return this;var t=II(this.node,this.parent);if(null==t)return this;var r=t.name;if(!e&&/[\uD800-\uDFFF]/.test(r))return null;if(r.startsWith("get ")||r.startsWith("set "))return null;r=AI(r.replace(/[/ ]/g,"_"));var a=lI(r);FI(a,t.originalNode);var n={needsRename:!1,name:r},s=this.scope,o=s.getOwnBinding(r);if(o?"param"===o.kind&&(n.needsRename=!0):(s.parent.hasBinding(r)||s.hasGlobal(r))&&this.traverse(YI,n),!n.needsRename)return this.node.id=a,s.getProgramParent().references[a.name]=!0,this;if(s.hasBinding(a.name)&&!s.hasGlobal(a.name))return s.rename(a.name),this.node.id=a,s.getProgramParent().references[a.name]=!0,this;if(!kI(this.node))return null;for(var i=s.generateUidIdentifier(a.name),d=[],c=0,l=function(e){var t=e.params.findIndex(function(e){return CI(e)||_I(e)});return-1===t?e.params.length:t}(this.node);c<l;c++)d.push(s.generateUidIdentifier("x"));var u=pj.expression.ast(Z_||(Z_=h(["\n (function (",") {\n function ","(",") {\n return ",".apply(this, arguments);\n }\n\n ",".toString = function () {\n return ",".toString();\n }\n\n return ",";\n })(",")\n "])),i,a,d,DI(i),DI(a),DI(i),DI(a),TI(this.node));return this.replaceWith(u)[0].get("arguments.0")}var QI=Object.freeze({__proto__:null,arrowFunctionToExpression:GI,ensureBlock:UI,ensureFunctionName:$I,splitExportDeclaration:JI,toComputedKey:LI,unwrapFunctionEnvironment:qI}),ZI=oa,eD=ja,tD=Q,rD=$t,aD=ie,nD=dr,sD=le,oD=Pr,iD=Er;function dD(e,t){return iD(this.node,e,t)}function cD(){return this.scope.isStatic(this.node)}function lD(e){return oD(this.type,e)}function uD(){return("init"===this.key||"left"===this.key)&&this.parentPath.isFor()}function pD(e){return!("body"!==this.key||!this.parentPath.isArrowFunctionExpression())&&(this.isExpression()?tD(e):!!this.isBlockStatement()&&rD(e))}function fD(e){var t=this,r=!0;do{var a=t,n=a.type,s=a.container;if(!r&&(t.isFunction()||"StaticBlock"===n))return!!e;if(r=!1,Array.isArray(s)&&t.key!==s.length-1)return!1}while((t=t.parentPath)&&!t.isProgram()&&!t.isDoExpression());return!0}function gD(){return!this.parentPath.isLabeledStatement()&&!tD(this.container)&&ZI.includes(this.key)}function mD(e,t){if(!this.isReferencedIdentifier()){if(this.isJSXMemberExpression()&&this.node.property.name===t||(this.isMemberExpression()||this.isOptionalMemberExpression())&&(this.node.computed?sD(this.node.property,{value:t}):this.node.property.name===t)){var r=this.get("object");return r.isReferencedIdentifier()&&r.referencesImport(e,"*")}return!1}var a=this.scope.getBinding(this.node.name);if("module"!==(null==a?void 0:a.kind))return!1;var n=a.path,s=n.parentPath;return!!s.isImportDeclaration()&&(s.node.source.value===e&&(!t||(!(!n.isImportDefaultSpecifier()||"default"!==t)||(!(!n.isImportNamespaceSpecifier()||"*"!==t)||!(!n.isImportSpecifier()||!aD(n.node.imported,{name:t}))))))}function yD(){var e=this.node;if(e.end){var t=this.hub.getCode();if(t)return t.slice(e.start,e.end)}return""}function hD(e){return"after"!==this._guessExecutionStatusRelativeTo(e)}function bD(e){return e.isProgram()?e:(e.parentPath.scope.getFunctionParent()||e.parentPath.scope.getProgramParent()).path}function vD(e,t){switch(e){case"LogicalExpression":case"AssignmentPattern":return"right"===t;case"ConditionalExpression":case"IfStatement":return"consequent"===t||"alternate"===t;case"WhileStatement":case"DoWhileStatement":case"ForInStatement":case"ForOfStatement":return"body"===t;case"ForStatement":return"body"===t||"update"===t;case"SwitchStatement":return"cases"===t;case"TryStatement":return"handler"===t;case"OptionalMemberExpression":return"property"===t;case"OptionalCallExpression":return"arguments"===t;default:return!1}}function xD(e,t){for(var r=0;r<t;r++){var a=e[r];if(vD(a.parent.type,a.parentKey))return!0}return!1}e.has=function(e){var t,r=null==(t=this.node)?void 0:t[e];return r&&Array.isArray(r)?!!r.length:!!r},e.is=e.has,e.isnt=function(e){return!this.has(e)},e.equals=function(e,t){return this.node[e]===t};var RD=Symbol();function jD(e){return wD(this,e,new Map)}function wD(e,t,r){var a={this:bD(e),target:bD(t)};if(a.target.node!==a.this.node)return function(e,t,r){var a,n=r.get(e.node);if(n){if(a=n.get(t.node))return a===RD?"unknown":a}else r.set(e.node,n=new Map);n.set(t.node,RD);var s=function(e,t,r){if(!t.isFunctionDeclaration())return"before"===wD(e,t,r)?"before":"unknown";if(t.parentPath.isExportDeclaration())return"unknown";var a=t.scope.getBinding(t.node.id.name);if(!a.references)return"before";for(var n,s,o=i(a.referencePaths);!(s=o()).done;){var d=s.value;if(!!!d.find(function(e){return e.node===t.node})){if("callee"!==d.key||!d.parentPath.isCallExpression())return"unknown";var c=wD(e,d,r);if(n&&n!==c)return"unknown";n=c}}return n}(e,t,r);return n.set(t.node,s),s}(e,a.target,r);var n,s={target:t.getAncestry(),this:e.getAncestry()};if(s.target.includes(e))return"after";if(s.this.includes(t))return"before";for(var o={target:0,this:0};!n&&o.this<s.this.length;){var d=s.this[o.this];o.target=s.target.indexOf(d),o.target>=0?n=d:o.this++}if(!n)throw new Error("Internal Babel error - The two compared nodes don't appear to belong to the same program.");if(xD(s.this,o.this-1)||xD(s.target,o.target-1))return"unknown";var c={this:s.this[o.this-1],target:s.target[o.target-1]};if(c.target.listKey&&c.this.listKey&&c.target.container===c.this.container)return c.target.key>c.this.key?"before":"after";var l=eD[n.type],u=l.indexOf(c.this.parentKey);return l.indexOf(c.target.parentKey)>u?"before":"after"}function ED(e,t){return SD.call(this,e,t)||this}function SD(e,t){var r;if(null==(r=t)||!r.includes(this))if((t=t||[]).push(this),this.isVariableDeclarator()){if(this.get("id").isIdentifier())return this.get("init").resolve(e,t)}else if(this.isReferencedIdentifier()){var a=this.scope.getBinding(this.node.name);if(!a)return;if(!a.constant)return;if("module"===a.kind)return;if(a.path!==this){var n=a.path.resolve(e,t);if(this.find(function(e){return e.node===n.node}))return;return n}}else{if(this.isTypeCastExpression())return this.get("expression").resolve(e,t);if(e&&this.isMemberExpression()){var s=this.toComputedKey();if(!nD(s))return;var o=s.value,i=this.get("object").resolve(e,t);if(i.isObjectExpression())for(var d=0,c=i.get("properties");d<c.length;d++){var l=c[d];if(l.isProperty()){var u=l.get("key"),p=l.isnt("computed")&&u.isIdentifier({name:o});if(p=p||u.isLiteral({value:o}))return l.get("value").resolve(e,t)}}else if(i.isArrayExpression()&&!isNaN(+o)){var f=i.get("elements")[o];if(f)return f.resolve(e,t)}}}}function TD(){if(this.isIdentifier()){var e=this.scope.getBinding(this.node.name);return!!e&&e.constant}if(this.isLiteral())return!this.isRegExpLiteral()&&(!this.isTemplateLiteral()||this.get("expressions").every(function(e){return e.isConstantExpression()}));if(this.isUnaryExpression())return"void"===this.node.operator&&this.get("argument").isConstantExpression();if(this.isBinaryExpression()){var t=this.node.operator;return"in"!==t&&"instanceof"!==t&&this.get("left").isConstantExpression()&&this.get("right").isConstantExpression()}return this.isMemberExpression()?!this.node.computed&&this.get("object").isIdentifier({name:"Symbol"})&&!this.scope.hasBinding("Symbol",{noGlobals:!0}):!!this.isCallExpression()&&(1===this.node.arguments.length&&this.get("callee").matchesPattern("Symbol.for")&&!this.scope.hasBinding("Symbol",{noGlobals:!0})&&this.get("arguments")[0].isStringLiteral())}function PD(){var e=(this.isProgram()?this:this.parentPath).find(function(e){if(e.isProgram({sourceType:"module"}))return!0;if(e.isClass())return!0;if(e.isArrowFunctionExpression()&&!e.get("body").isBlockStatement())return!1;var t;if(e.isFunction())t=e.node.body;else{if(!e.isProgram())return!1;t=e.node}for(var r,a=i(t.directives);!(r=a()).done;){if("use strict"===r.value.value.value)return!0}return!1});return!!e}var AD=Object.freeze({__proto__:null,_guessExecutionStatusRelativeTo:jD,_resolve:SD,canHaveVariableDeclarationOrExpression:uD,canSwapBetweenExpressionAndStatement:pD,getSource:yD,isCompletionRecord:fD,isConstantExpression:TD,isInStrictMode:PD,isNodeType:lD,isStatementOrBlock:gD,isStatic:cD,matchesPattern:dD,referencesImport:mD,resolve:ED,willIMaybeExecuteBefore:hD}),kD=_y,CD=Iy,_D=Dy,ID=_s,DD=$s;function OD(e,t,r){return e&&t.push.apply(t,b(FD(e,r))),t}function ND(e){e.forEach(function(e){e.type=1})}function BD(e,t){e.forEach(function(e){e.path.isBreakStatement({label:null})&&(t?e.path.replaceWith(DD("void",ID(0))):e.path.remove())})}function MD(e,t){var r=[];if(t.canHaveBreak)for(var a=[],n=0;n<e.length;n++){var s=e[n],o=Object.assign({},t,{inCaseClause:!1});s.isBlockStatement()&&(t.inCaseClause||t.shouldPopulateBreak)?o.shouldPopulateBreak=!0:o.shouldPopulateBreak=!1;var i=FD(s,o);if(i.length>0&&i.every(function(e){return 1===e.type})){a.length>0&&i.every(function(e){return e.path.isBreakStatement({label:null})})?(ND(a),r.push.apply(r,b(a)),a.some(function(e){return e.path.isDeclaration()})&&(r.push.apply(r,i),t.shouldPreserveBreak||BD(i,!0)),t.shouldPreserveBreak||BD(i,!1)):(r.push.apply(r,i),t.shouldPopulateBreak||t.shouldPreserveBreak||BD(i,!0));break}if(n===e.length-1)r.push.apply(r,i);else{a=[];for(var d=0;d<i.length;d++){var c=i[d];1===c.type&&r.push(c),0===c.type&&a.push(c)}}}else if(e.length)for(var l=e.length-1;l>=0;l--){var u=FD(e[l],t);if(u.length>1||1===u.length&&!u[0].path.isVariableDeclaration()&&!u[0].path.isEmptyStatement()){r.push.apply(r,u);break}}return r}function FD(e,t){var r=[];if(e.isIfStatement())r=OD(e.get("consequent"),r,t),r=OD(e.get("alternate"),r,t);else{if(e.isDoExpression()||e.isFor()||e.isWhile()||e.isLabeledStatement())return OD(e.get("body"),r,t);if(e.isProgram()||e.isBlockStatement())return MD(e.get("body"),t);if(e.isFunction())return FD(e.get("body"),t);if(e.isTryStatement())r=OD(e.get("block"),r,t),r=OD(e.get("handler"),r,t);else{if(e.isCatchClause())return OD(e.get("body"),r,t);if(e.isSwitchStatement())return function(e,t,r){for(var a=[],n=0;n<e.length;n++){for(var s=[],o=[],i=0,d=FD(e[n],r);i<d.length;i++){var c=d[i];0===c.type&&s.push(c),1===c.type&&o.push(c)}s.length&&(a=s),t.push.apply(t,o)}return t.push.apply(t,b(a)),t}(e.get("cases"),r,t);if(e.isSwitchCase())return MD(e.get("consequent"),{canHaveBreak:!0,shouldPopulateBreak:!1,inCaseClause:!0,shouldPreserveBreak:t.shouldPreserveBreak});e.isBreakStatement()?r.push(function(e){return{type:1,path:e}}(e)):r.push(function(e){return{type:0,path:e}}(e))}}return r}function LD(e,t){var r=this,a=this.node,n=a[e];return Array.isArray(n)?n.map(function(s,o){return JD.get({listKey:e,parentPath:r,parent:a,container:n,key:o}).setContext(t)}):JD.get({parentPath:this,parent:a,container:a,key:e}).setContext(t)}function UD(e,t){for(var r,a=this,n=i(e);!(r=n()).done;){var s=r.value;a="."===s?a.parentPath:Array.isArray(a)?a[s]:a.get(s,t)}return a}var qD=lm,GD=cm;function WD(e,t){if(null==t||!t.length)return e;var r=new Set(t);return e.filter(function(e){return!r.has(e)})}var VD=es,HD=_j("babel"),zD=1,KD=2,XD=4,JD=function(){function e(e,t){this.contexts=[],this.state=null,this._traverseFlags=0,this.skipKeys=null,this.parentPath=null,this.container=null,this.listKey=null,this.key=null,this.node=null,this.type=null,this._store=null,this.parent=t,this.hub=e,this.data=null,this.context=null,this.scope=null}e.get=function(t){var r=t.hub,a=t.parentPath,n=t.parent,s=t.container,o=t.listKey,i=t.key;if(!r&&a&&(r=a.hub),!n)throw new Error("To get a node path the parent needs to exist");var d=s[i],c=kw(n),l=c.get(d);return l||(l=new e(r,n),d&&c.set(d,l)),TO.call(l,a,s,o,i),l};var t=e.prototype;return t.getScope=function(e){return this.isScope()?new kE(this):e},t.setData=function(e,t){return null==this.data&&(this.data=Object.create(null)),this.data[e]=t},t.getData=function(e,t){null==this.data&&(this.data=Object.create(null));var r=this.data[e];return void 0===r&&void 0!==t&&(r=this.data[e]=t),r},t.hasNode=function(){return null!=this.node},t.buildCodeFrameError=function(e,t){return void 0===t&&(t=SyntaxError),this.hub.buildError(this.node,e,t)},t.traverse=function(e,t){OO(this.node,e,this.scope,t,this)},t.set=function(e,t){VD(this.node,e,t),this.node[e]=t},t.getPathLocation=function(){var e=[],t=this;do{var r=t.key;t.inList&&(r=t.listKey+"["+r+"]"),e.unshift(r)}while(t=t.parentPath);return e.join(".")},t.debug=function(e){HD.enabled&&HD(this.getPathLocation()+" "+this.type+": "+e)},t.toString=function(){return bk(this.node).code},o(e,[{key:"removed",get:function(){return(1&this._traverseFlags)>0},set:function(e){e?this._traverseFlags|=1:this._traverseFlags&=-2}},{key:"shouldStop",get:function(){return(2&this._traverseFlags)>0},set:function(e){e?this._traverseFlags|=2:this._traverseFlags&=-3}},{key:"shouldSkip",get:function(){return(4&this._traverseFlags)>0},set:function(e){e?this._traverseFlags|=4:this._traverseFlags&=-5}},{key:"inList",get:function(){return!!this.listKey},set:function(e){e||(this.listKey=null)}},{key:"parentKey",get:function(){return this.listKey||this.key}}])}(),YD={findParent:function(e){for(var t=this;t=t.parentPath;)if(e(t))return t;return null},find:function(e){var t=this;do{if(e(t))return t}while(t=t.parentPath);return null},getFunctionParent:function(){return this.findParent(function(e){return e.isFunction()})},getStatementParent:function(){var e=this;do{if(!e.parentPath||Array.isArray(e.container)&&e.isStatement())break;e=e.parentPath}while(e);if(e&&(e.isProgram()||e.isFile()))throw new Error("File/Program node, we can't possibly find a statement parent to this");return e},getEarliestCommonAncestorFrom:function(e){return this.getDeepestCommonAncestorFrom(e,function(e,t,r){for(var a,n,s=xk[e.type],o=i(r);!(n=o()).done;){var d=n.value[t+1];if(a)if(d.listKey&&a.listKey===d.listKey&&d.key<a.key)a=d;else s.indexOf(a.parentKey)>s.indexOf(d.parentKey)&&(a=d);else a=d}return a})},getDeepestCommonAncestorFrom:function(e,t){var r=this;if(!e.length)return this;if(1===e.length)return e[0];var a,n,s=1/0,o=e.map(function(e){var t=[];do{t.unshift(e)}while((e=e.parentPath)&&e!==r);return t.length<s&&(s=t.length),t}),d=o[0];e:for(var c=0;c<s;c++){for(var l,u=d[c],p=i(o);!(l=p()).done;){if(l.value[c]!==u)break e}a=c,n=u}if(n)return t?t(n,a,o):n;throw new Error("Couldn't find intersection")},getAncestry:function(){var e=this,t=[];do{t.push(e)}while(e=e.parentPath);return t},isAncestor:function(e){return e.isDescendant(this)},isDescendant:function(e){return!!this.findParent(function(t){return t===e})},inType:function(){for(var e=this,t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];for(;e;){if(r.includes(e.node.type))return!0;e=e.parentPath}return!1},getTypeAnnotation:function(){var e=this.getData("typeAnnotation");return null!=e||(e=CC.call(this)||cC(),(EC(e)||RC(e))&&(e=e.typeAnnotation),this.setData("typeAnnotation",e)),e},isBaseType:function(e,t){return _C(e,this.getTypeAnnotation(),t)},couldBeBaseType:function(e){var t=this.getTypeAnnotation();if(lC(t))return!0;if(SC(t)){for(var r,a=i(t.types);!(r=a()).done;){var n=r.value;if(lC(n)||_C(e,n,!0))return!0}return!1}return _C(e,t,!0)},baseTypeStrictlyMatches:function(e){var t=this.getTypeAnnotation(),r=e.getTypeAnnotation();return!(lC(t)||!gC(t))&&r.type===t.type},isGenericType:function(e){var t=this.getTypeAnnotation();return!("Array"!==e||!(xC(t)||uC(t)||wC(t)))||(mC(t)&&yC(t.id,{name:e})||jC(t)&&yC(t.typeName,{name:e}))},replaceWithMultiple:function(e){var t;vO.call(this);var r=g_.call(this,e);C_(r[0],this.node),__(r[r.length-1],this.node),null==(t=Aw(this))||t.delete(this.node),this.node=this.container[this.key]=null;var a=this.insertAfter(e);return this.node?this.requeue():this.remove(),a},replaceWithSourceString:function(e){var t;vO.call(this);try{t=aR(e="("+e+")")}catch(t){var r=t.loc;throw r&&(t.message+=" - make sure this is an expression.\n"+_R(e,{start:{line:r.line,column:r.column+1}}),t.code="BABEL_REPLACE_SOURCE_ERROR"),t}var a=t.program.body[0].expression;return OO.removeProperties(a),this.replaceWith(a)},replaceWith:function(e){if(vO.call(this),this.removed)throw new Error("You can't replace this node, we've already removed it");var t=e instanceof JD?e.node:e;if(!t)throw new Error("You passed `path.replaceWith()` a falsy node, use `path.remove()` instead");if(this.node===t)return[this];if(this.isProgram()&&!F_(t))throw new Error("You can only replace a Program root node with another Program node");if(Array.isArray(t))throw new Error("Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`");if("string"==typeof t)throw new Error("Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`");var r="";if(this.isNodeType("Statement")&&N_(t)&&(this.canHaveVariableDeclarationOrExpression()||this.canSwapBetweenExpressionAndStatement(t)||this.parentPath.isExportDefaultDeclaration()||(t=P_(t),r="expression")),this.isNodeType("Expression")&&L_(t)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(t))return this.replaceExpressionWithStatements([t]);var a=this.node;return a&&(I_(t,a),q_(a)),z_.call(this,t),this.type=t.type,hO.call(this),this.requeue(),[r?this.get(r):this]},replaceExpressionWithStatements:function(e){var t=this;vO.call(this);var r=[],a=K_(e,r);if(a){for(var n,s=i(r);!(n=s()).done;){var o=n.value;this.scope.push({id:o})}return this.replaceWith(a)[0].get("expressions")}var d=this.getFunctionParent(),c=null==d?void 0:d.node.async,l=null==d?void 0:d.node.generator,u=v_([],j_(e));this.replaceWith(E_(u,[]));var p=this.get("callee");p.get("body").scope.hoistVariables(function(e){return t.scope.push({id:e})});for(var f,g=i(p.getCompletionRecords());!(f=g()).done;){var m=f.value;if(m.isExpressionStatement()){var y=m.findParent(function(e){return e.isLoop()});if(y){var h=y.getData("expressionReplacementReturnUid");h?h=k_(h.name):(h=p.scope.generateDeclaredUidIdentifier("ret"),p.get("body").pushContainer("body",G_(S_(h))),y.setData("expressionReplacementReturnUid",h)),m.get("expression").replaceWith(x_("=",S_(h),m.node.expression))}else m.replaceWith(G_(m.node.expression))}}p.arrowFunctionToExpression();var b=p,v=c&&OO.hasType(b.node.body,"AwaitExpression",b_),x=l&&OO.hasType(b.node.body,"YieldExpression",b_);return v&&(b.set("async",!0),x||this.replaceWith(R_(this.node))),x&&(b.set("generator",!0),this.replaceWith(H_(this.node,!0))),b.get("body.body")},replaceInline:function(e){if(vO.call(this),Array.isArray(e)){if(Array.isArray(this.container)){e=g_.call(this,e);var t=c_.call(this,e);return this.remove(),t}return this.replaceWithMultiple(e)}return this.replaceWith(e)},evaluateTruthy:function(){var e=this.evaluate();if(e.confident)return!!e.value},evaluate:function(){var e={confident:!0,deoptPath:null,seen:new Map},t=tI(this,e);return e.confident||(t=void 0),{confident:e.confident,deopt:e.deoptPath,value:t}},toComputedKey:LI,ensureBlock:UI,unwrapFunctionEnvironment:qI,arrowFunctionToExpression:GI,splitExportDeclaration:JI,ensureFunctionName:$I,matchesPattern:dD,isStatic:cD,isNodeType:lD,canHaveVariableDeclarationOrExpression:uD,canSwapBetweenExpressionAndStatement:pD,isCompletionRecord:fD,isStatementOrBlock:gD,referencesImport:mD,getSource:yD,willIMaybeExecuteBefore:hD,_guessExecutionStatusRelativeTo:jD,resolve:ED,isConstantExpression:TD,isInStrictMode:PD,isDenylisted:lO,visit:pO,skip:fO,skipKey:gO,stop:mO,setContext:bO,requeue:AO,requeueComputedKeyAndDecorators:kO,remove:function(){var e;MC.call(this),vO.call(this),OC.call(this)||(null!=(e=this.opts)&&e.noScope||DC.call(this),this.shareCommentsWithSiblings(),NC.call(this)),BC.call(this)},insertBefore:o_,insertAfter:p_,unshiftContainer:m_,pushContainer:y_,getOpposite:function(){return"left"===this.key?this.getSibling("right"):"right"===this.key?this.getSibling("left"):null},getCompletionRecords:function(e){return void 0===e&&(e=!1),FD(this,{canHaveBreak:!1,shouldPopulateBreak:!1,inCaseClause:!1,shouldPreserveBreak:e}).map(function(e){return e.path})},getSibling:function(e){return JD.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:e}).setContext(this.context)},getPrevSibling:function(){return this.getSibling(this.key-1)},getNextSibling:function(){return this.getSibling(this.key+1)},getAllNextSiblings:function(){for(var e=this.key,t=this.getSibling(++e),r=[];t.node;)r.push(t),t=this.getSibling(++e);return r},getAllPrevSiblings:function(){for(var e=this.key,t=this.getSibling(--e),r=[];t.node;)r.push(t),t=this.getSibling(--e);return r},get:function(e,t){void 0===t&&(t=!0),!0===t&&(t=this.context);var r=e.split(".");return 1===r.length?LD.call(this,e,t):UD.call(this,r,t)},getAssignmentIdentifiers:function(){return kD(this.node)},getBindingIdentifiers:function(e){return CD(this.node,e)},getOuterBindingIdentifiers:function(e){return _D(this.node,e)},getBindingIdentifierPaths:function(e,t){void 0===e&&(e=!1),void 0===t&&(t=!1);for(var r=[this],a=Object.create(null);r.length;){var n=r.shift();if(n&&n.node){var s=CD.keys[n.node.type];if(n.isIdentifier())e?(a[n.node.name]=a[n.node.name]||[]).push(n):a[n.node.name]=n;else if(n.isExportDeclaration()){var o=n.get("declaration");o.isDeclaration()&&r.push(o)}else{if(t){if(n.isFunctionDeclaration()){r.push(n.get("id"));continue}if(n.isFunctionExpression())continue}if(s)for(var i=0;i<s.length;i++){var d=s[i],c=n.get(d);Array.isArray(c)?r.push.apply(r,b(c)):c.node&&r.push(c)}}}}return a},getOuterBindingIdentifierPaths:function(e){return void 0===e&&(e=!1),this.getBindingIdentifierPaths(e,!0)},shareCommentsWithSiblings:function(){if("string"!=typeof this.key){var e=this.node;if(e){var t=e.trailingComments,r=e.leadingComments;if(t||r){var a=this.getSibling(this.key-1),n=this.getSibling(this.key+1),s=Boolean(a.node),o=Boolean(n.node);s&&(r&&a.addComments("trailing",WD(r,a.node.trailingComments)),t&&!o&&a.addComments("trailing",t)),o&&(t&&n.addComments("leading",WD(t,n.node.leadingComments)),r&&!s&&n.addComments("leading",r))}}}},addComment:function(e,t,r){qD(this.node,e,t,r)},addComments:function(e,t){GD(this.node,e,t)}};Object.assign(JD.prototype,YD),JD.prototype.arrowFunctionToShadowed=QI[String("arrowFunctionToShadowed")],Object.assign(JD.prototype,{has:AD[String("has")],is:AD[String("is")],isnt:AD[String("isnt")],equals:AD[String("equals")],hoist:h_[String("hoist")],updateSiblingKeys:f_,call:dO,isBlacklisted:t[String("isBlacklisted")],setScope:hO,resync:vO,popContext:EO,pushContext:SO,setup:TO,setKey:PO}),JD.prototype._guessExecutionStatusRelativeToDifferentFunctions=jD,JD.prototype._guessExecutionStatusRelativeToDifferentFunctions=jD,Object.assign(JD.prototype,{_getTypeAnnotation:CC,_replaceWith:z_,_resolve:SD,_call:cO,_resyncParent:xO,_resyncKey:RO,_resyncList:jO,_resyncRemoved:wO,_getQueueContexts:CO,_removeFromScope:DC,_callRemovalHooks:OC,_remove:NC,_markRemoved:BC,_assertUnremoved:MC,_containerInsert:i_,_containerInsertBefore:d_,_containerInsertAfter:c_,_verifyNodeList:g_,_getKey:LD,_getPattern:UD});for(var $D,QD=function(){var e=$D.value,t="is"+e,r=Jy[t];JD.prototype[t]=function(e){return r(this.node,e)},JD.prototype["assert"+e]=function(t){if(!r(this.node,t))throw new TypeError("Expected node path of type "+e)}},ZD=i(Zn);!($D=ZD()).done;)QD();Object.assign(JD.prototype,Zj);for(var eO=0,tO=Object.keys(Pj);eO<tO.length;eO++){var rO=tO[eO];rO.startsWith("_")||(Zn.includes(rO)||Zn.push(rO))}var aO=function(){function e(){}var t=e.prototype;return t.getCode=function(){},t.getScope=function(){},t.addHelper=function(){throw new Error("Helpers are not supported by the default hub.")},t.buildError=function(e,t,r){return void 0===r&&(r=TypeError),new r(t)},o(e)}(),nO=ja,sO=function(){function e(e,t,r,a){this.queue=null,this.priorityQueue=null,this.parentPath=a,this.scope=e,this.state=r,this.opts=t}var t=e.prototype;return t.shouldVisit=function(e){var t=this.opts;if(t.enter||t.exit)return!0;if(t[e.type])return!0;var r=nO[e.type];if(null==r||!r.length)return!1;for(var a,n=i(r);!(a=n()).done;){if(e[a.value])return!0}return!1},t.create=function(e,t,r,a){var n=this.parentPath,s=null==n?"Program"===e.type||"File"===e.type?new aO:void 0:n.hub;return JD.get({parentPath:n,parent:e,container:t,key:r,listKey:a,hub:s})},t.maybeQueue=function(e,t){this.queue&&(t?this.queue.push(e):this.priorityQueue.push(e))},t.visitMultiple=function(e,t,r){if(0===e.length)return!1;for(var a=[],n=0;n<e.length;n++){var s=e[n];s&&this.shouldVisit(s)&&a.push(this.create(t,e,n,r))}return this.visitQueue(a)},t.visitSingle=function(e,t){return!!this.shouldVisit(e[t])&&this.visitQueue([this.create(e,e,t)])},t.visitQueue=function(e){this.queue=e,this.priorityQueue=[];for(var t=new WeakSet,r=!1,a=0;a<e.length;){var n=e[a];if(a++,vO.call(n),0!==n.contexts.length&&n.contexts[n.contexts.length-1]===this||SO.call(n,this),null!==n.key){var s=n.node;if(!t.has(s)){if(s&&t.add(s),n.visit()){r=!0;break}if(this.priorityQueue.length&&(r=this.visitQueue(this.priorityQueue),this.priorityQueue=[],this.queue=e,r))break}}}for(var o=0;o<a;o++)EO.call(e[o]);return this.queue=null,r},t.visit=function(e,t){var r=e[t];return!!r&&(Array.isArray(r)?this.visitMultiple(r,e,t):this.visitSingle(e,t))},o(e)}(),oO=ja;function iO(e,t,r,a,n,s,o){var d=oO[e.type];if(!d)return!1;var c=new sO(r,t,a,n);if(o)return(null==s||!s[n.parentKey])&&c.visitQueue([n]);for(var l,u=i(d);!(l=u()).done;){var p=l.value;if((null==s||!s[p])&&c.visit(e,p))return!0}return!1}function dO(e){var t,r=this.opts;return this.debug(e),!(!this.node||!cO.call(this,r[e]))||!!this.node&&cO.call(this,null==(t=r[this.node.type])?void 0:t[e])}function cO(e){if(!e)return!1;for(var t,r=i(e);!(t=r()).done;){var a=t.value;if(a){var n=this.node;if(!n)return!0;var s=a.call(this.state,this,this.state);if(s&&"object"==typeof s&&"function"==typeof s.then)throw new Error("You appear to be using a plugin with an async traversal visitor, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");if(s)throw new Error("Unexpected return value from visitor method "+a);if(this.node!==n)return!0;if(this._traverseFlags>0)return!0}}return!1}function lO(){var e,t=null!=(e=this.opts.denylist)?e:this.opts.blacklist;return null==t?void 0:t.includes(this.node.type)}function uO(e,t){e.context!==t&&(e.context=t,e.state=t.state,e.opts=t.opts)}function pO(){var e,t;if(!this.node)return!1;if(this.isDenylisted())return!1;if(null!=(e=(t=this.opts).shouldSkip)&&e.call(t,this))return!1;var r=this.context;return this.shouldSkip||dO.call(this,"enter")?(this.debug("Skip..."),this.shouldStop):(uO(this,r),this.debug("Recursing into..."),this.shouldStop=iO(this.node,this.opts,this.scope,this.state,this,this.skipKeys),uO(this,r),dO.call(this,"exit"),this.shouldStop)}function fO(){this.shouldSkip=!0}function gO(e){null==this.skipKeys&&(this.skipKeys={}),this.skipKeys[e]=!0}function mO(){this._traverseFlags|=XD|KD}function yO(){var e,t,r=this.parentPath;for((("key"===this.key||"decorators"===this.listKey)&&r.isMethod()||"discriminant"===this.key&&r.isSwitchStatement())&&(r=r.parentPath);r&&!t;)t=r.scope,r=r.parentPath;this.scope=this.getScope(t),null==(e=this.scope)||e.init()}function hO(){var e,t;if(null==(e=this.opts)||!e.noScope){var r,a=this.parentPath;for((("key"===this.key||"decorators"===this.listKey)&&a.isMethod()||"discriminant"===this.key&&a.isSwitchStatement())&&(a=a.parentPath);a&&!r;){var n;if(null!=(n=a.opts)&&n.noScope)return;r=a.scope,a=a.parentPath}this.scope=this.getScope(r),null==(t=this.scope)||t.init()}}function bO(e){return null!=this.skipKeys&&(this.skipKeys={}),this._traverseFlags=0,e&&(this.context=e,this.state=e.state,this.opts=e.opts),hO.call(this),this}function vO(){this.removed||(xO.call(this),jO.call(this),RO.call(this))}function xO(){this.parentPath&&(this.parent=this.parentPath.node)}function RO(){if(this.container&&this.node!==this.container[this.key]){if(Array.isArray(this.container)){for(var e=0;e<this.container.length;e++)if(this.container[e]===this.node)return void PO.call(this,e)}else for(var t=0,r=Object.keys(this.container);t<r.length;t++){var a=r[t];if(this.container[a]===this.node)return void PO.call(this,a)}this.key=null}}function jO(){if(this.parent&&this.inList){var e=this.parent[this.listKey];this.container!==e&&(this.container=e||null)}}function wO(){null!=this.key&&this.container&&this.container[this.key]===this.node||BC.call(this)}function EO(){this.contexts.pop(),this.contexts.length>0?this.setContext(this.contexts[this.contexts.length-1]):this.setContext(void 0)}function SO(e){this.contexts.push(e),this.setContext(e)}function TO(e,t,r,a){this.listKey=r,this.container=t,this.parentPath=e||this.parentPath,PO.call(this,a)}function PO(e){var t;this.key=e,this.node=this.container[this.key],this.type=null==(t=this.node)?void 0:t.type}function AO(e){if(void 0===e&&(e=this),!e.removed)for(var t,r=i(this.contexts);!(t=r()).done;){t.value.maybeQueue(e)}}function kO(){var e=this.context,t=this.node;if(!yr(t)&&t.computed&&e.maybeQueue(this.get("key")),t.decorators)for(var r,a=i(this.get("decorators"));!(r=a()).done;){var n=r.value;e.maybeQueue(n)}}function CO(){for(var e=this,t=this.contexts;!t.length&&(e=e.parentPath);)t=e.contexts;return t}e.isBlacklisted=lO;var _O=ja,IO=Ey,DO=Ry;function OO(e,t,r,a,n,s){if(void 0===t&&(t={}),e){if(!t.noScope&&!r&&"Program"!==e.type&&"File"!==e.type)throw new Error("You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a "+e.type+" node without passing scope and parentPath.");if(!n&&s)throw new Error("visitSelf can only be used when providing a NodePath.");_O[e.type]&&(iw(t),iO(e,t,r,a,n,void 0,s))}}OO.visitors=bw,OO.verify=dw,OO.explode=iw,OO.cheap=function(e,t){DO(e,t)},OO.node=function(e,t,r,a,n,s){iO(e,t,r,a,n,s)},OO.clearNode=function(e,t){IO(e,t)},OO.removeProperties=function(e,t){return DO(e,OO.clearNode,t),e},OO.hasType=function(e,t,r){return(null==r||!r.includes(e.type))&&(e.type===t||DO(e,function(e){return null!=r&&r.includes(e.type)?DO.skip:e.type===t?DO.stop:void 0}))},OO.cache=Cw;var NO,BO=Object.freeze({__proto__:null,Hub:aO,NodePath:JD,Scope:kE,default:OO,visitors:bw}),MO={exports:{}};function FO(){return NO||(NO=1,function(e,t){var r;t=e.exports=h,r="object"==typeof z&&z.env&&z.env.NODE_DEBUG&&/\bsemver\b/i.test(z.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var a=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,s=a-6,o=t.re=[],i=t.safeRe=[],d=t.src=[],c=t.tokens={},l=0;function u(e){c[e]=l++}var p="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",a],[p,s]];function g(e){for(var t=0;t<f.length;t++){var r=f[t][0],a=f[t][1];e=e.split(r+"*").join(r+"{0,"+a+"}").split(r+"+").join(r+"{1,"+a+"}")}return e}u("NUMERICIDENTIFIER"),d[c.NUMERICIDENTIFIER]="0|[1-9]\\d*",u("NUMERICIDENTIFIERLOOSE"),d[c.NUMERICIDENTIFIERLOOSE]="\\d+",u("NONNUMERICIDENTIFIER"),d[c.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+p+"*",u("MAINVERSION"),d[c.MAINVERSION]="("+d[c.NUMERICIDENTIFIER]+")\\.("+d[c.NUMERICIDENTIFIER]+")\\.("+d[c.NUMERICIDENTIFIER]+")",u("MAINVERSIONLOOSE"),d[c.MAINVERSIONLOOSE]="("+d[c.NUMERICIDENTIFIERLOOSE]+")\\.("+d[c.NUMERICIDENTIFIERLOOSE]+")\\.("+d[c.NUMERICIDENTIFIERLOOSE]+")",u("PRERELEASEIDENTIFIER"),d[c.PRERELEASEIDENTIFIER]="(?:"+d[c.NUMERICIDENTIFIER]+"|"+d[c.NONNUMERICIDENTIFIER]+")",u("PRERELEASEIDENTIFIERLOOSE"),d[c.PRERELEASEIDENTIFIERLOOSE]="(?:"+d[c.NUMERICIDENTIFIERLOOSE]+"|"+d[c.NONNUMERICIDENTIFIER]+")",u("PRERELEASE"),d[c.PRERELEASE]="(?:-("+d[c.PRERELEASEIDENTIFIER]+"(?:\\."+d[c.PRERELEASEIDENTIFIER]+")*))",u("PRERELEASELOOSE"),d[c.PRERELEASELOOSE]="(?:-?("+d[c.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+d[c.PRERELEASEIDENTIFIERLOOSE]+")*))",u("BUILDIDENTIFIER"),d[c.BUILDIDENTIFIER]=p+"+",u("BUILD"),d[c.BUILD]="(?:\\+("+d[c.BUILDIDENTIFIER]+"(?:\\."+d[c.BUILDIDENTIFIER]+")*))",u("FULL"),u("FULLPLAIN"),d[c.FULLPLAIN]="v?"+d[c.MAINVERSION]+d[c.PRERELEASE]+"?"+d[c.BUILD]+"?",d[c.FULL]="^"+d[c.FULLPLAIN]+"$",u("LOOSEPLAIN"),d[c.LOOSEPLAIN]="[v=\\s]*"+d[c.MAINVERSIONLOOSE]+d[c.PRERELEASELOOSE]+"?"+d[c.BUILD]+"?",u("LOOSE"),d[c.LOOSE]="^"+d[c.LOOSEPLAIN]+"$",u("GTLT"),d[c.GTLT]="((?:<|>)?=?)",u("XRANGEIDENTIFIERLOOSE"),d[c.XRANGEIDENTIFIERLOOSE]=d[c.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",u("XRANGEIDENTIFIER"),d[c.XRANGEIDENTIFIER]=d[c.NUMERICIDENTIFIER]+"|x|X|\\*",u("XRANGEPLAIN"),d[c.XRANGEPLAIN]="[v=\\s]*("+d[c.XRANGEIDENTIFIER]+")(?:\\.("+d[c.XRANGEIDENTIFIER]+")(?:\\.("+d[c.XRANGEIDENTIFIER]+")(?:"+d[c.PRERELEASE]+")?"+d[c.BUILD]+"?)?)?",u("XRANGEPLAINLOOSE"),d[c.XRANGEPLAINLOOSE]="[v=\\s]*("+d[c.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+d[c.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+d[c.XRANGEIDENTIFIERLOOSE]+")(?:"+d[c.PRERELEASELOOSE]+")?"+d[c.BUILD]+"?)?)?",u("XRANGE"),d[c.XRANGE]="^"+d[c.GTLT]+"\\s*"+d[c.XRANGEPLAIN]+"$",u("XRANGELOOSE"),d[c.XRANGELOOSE]="^"+d[c.GTLT]+"\\s*"+d[c.XRANGEPLAINLOOSE]+"$",u("COERCE"),d[c.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",u("COERCERTL"),o[c.COERCERTL]=new RegExp(d[c.COERCE],"g"),i[c.COERCERTL]=new RegExp(g(d[c.COERCE]),"g"),u("LONETILDE"),d[c.LONETILDE]="(?:~>?)",u("TILDETRIM"),d[c.TILDETRIM]="(\\s*)"+d[c.LONETILDE]+"\\s+",o[c.TILDETRIM]=new RegExp(d[c.TILDETRIM],"g"),i[c.TILDETRIM]=new RegExp(g(d[c.TILDETRIM]),"g");u("TILDE"),d[c.TILDE]="^"+d[c.LONETILDE]+d[c.XRANGEPLAIN]+"$",u("TILDELOOSE"),d[c.TILDELOOSE]="^"+d[c.LONETILDE]+d[c.XRANGEPLAINLOOSE]+"$",u("LONECARET"),d[c.LONECARET]="(?:\\^)",u("CARETTRIM"),d[c.CARETTRIM]="(\\s*)"+d[c.LONECARET]+"\\s+",o[c.CARETTRIM]=new RegExp(d[c.CARETTRIM],"g"),i[c.CARETTRIM]=new RegExp(g(d[c.CARETTRIM]),"g");u("CARET"),d[c.CARET]="^"+d[c.LONECARET]+d[c.XRANGEPLAIN]+"$",u("CARETLOOSE"),d[c.CARETLOOSE]="^"+d[c.LONECARET]+d[c.XRANGEPLAINLOOSE]+"$",u("COMPARATORLOOSE"),d[c.COMPARATORLOOSE]="^"+d[c.GTLT]+"\\s*("+d[c.LOOSEPLAIN]+")$|^$",u("COMPARATOR"),d[c.COMPARATOR]="^"+d[c.GTLT]+"\\s*("+d[c.FULLPLAIN]+")$|^$",u("COMPARATORTRIM"),d[c.COMPARATORTRIM]="(\\s*)"+d[c.GTLT]+"\\s*("+d[c.LOOSEPLAIN]+"|"+d[c.XRANGEPLAIN]+")",o[c.COMPARATORTRIM]=new RegExp(d[c.COMPARATORTRIM],"g"),i[c.COMPARATORTRIM]=new RegExp(g(d[c.COMPARATORTRIM]),"g");u("HYPHENRANGE"),d[c.HYPHENRANGE]="^\\s*("+d[c.XRANGEPLAIN]+")\\s+-\\s+("+d[c.XRANGEPLAIN]+")\\s*$",u("HYPHENRANGELOOSE"),d[c.HYPHENRANGELOOSE]="^\\s*("+d[c.XRANGEPLAINLOOSE]+")\\s+-\\s+("+d[c.XRANGEPLAINLOOSE]+")\\s*$",u("STAR"),d[c.STAR]="(<|>)?=?\\s*\\*";for(var m=0;m<l;m++)r(m,d[m]),o[m]||(o[m]=new RegExp(d[m]),i[m]=new RegExp(g(d[m])));function y(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof h)return e;if("string"!=typeof e)return null;if(e.length>a)return null;if(!(t.loose?i[c.LOOSE]:i[c.FULL]).test(e))return null;try{return new h(e,t)}catch(e){return null}}function h(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof h){if(e.loose===t.loose)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>a)throw new TypeError("version is longer than "+a+" characters");if(!(this instanceof h))return new h(e,t);r("SemVer",e,t),this.options=t,this.loose=!!t.loose;var s=e.trim().match(t.loose?i[c.LOOSE]:i[c.FULL]);if(!s)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t<n)return t}return e}):this.prerelease=[],this.build=s[5]?s[5].split("."):[],this.format()}t.parse=y,t.valid=function(e,t){var r=y(e,t);return r?r.version:null},t.clean=function(e,t){var r=y(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null},t.SemVer=h,h.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},h.prototype.toString=function(){return this.version},h.prototype.compare=function(e){return r("SemVer.compare",this.version,this.options,e),e instanceof h||(e=new h(e,this.options)),this.compareMain(e)||this.comparePre(e)},h.prototype.compareMain=function(e){return e instanceof h||(e=new h(e,this.options)),v(this.major,e.major)||v(this.minor,e.minor)||v(this.patch,e.patch)},h.prototype.comparePre=function(e){if(e instanceof h||(e=new h(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;var t=0;do{var a=this.prerelease[t],n=e.prerelease[t];if(r("prerelease compare",t,a,n),void 0===a&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(a!==n)return v(a,n)}while(++t)},h.prototype.compareBuild=function(e){e instanceof h||(e=new h(e,this.options));var t=0;do{var a=this.build[t],n=e.build[t];if(r("prerelease compare",t,a,n),void 0===a&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(a!==n)return v(a,n)}while(++t)},h.prototype.inc=function(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var r=this.prerelease.length;--r>=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},t.inc=function(e,t,r,a){"string"==typeof r&&(a=r,r=void 0);try{return new h(e,r).inc(t,a).version}catch(e){return null}},t.diff=function(e,t){if(w(e,t))return null;var r=y(e),a=y(t),n="";if(r.prerelease.length||a.prerelease.length){n="pre";var s="prerelease"}for(var o in r)if(("major"===o||"minor"===o||"patch"===o)&&r[o]!==a[o])return n+o;return s},t.compareIdentifiers=v;var b=/^[0-9]+$/;function v(e,t){var r=b.test(e),a=b.test(t);return r&&a&&(e=+e,t=+t),e===t?0:r&&!a?-1:a&&!r?1:e<t?-1:1}function x(e,t,r){return new h(e,r).compare(new h(t,r))}function R(e,t,r){return x(e,t,r)>0}function j(e,t,r){return x(e,t,r)<0}function w(e,t,r){return 0===x(e,t,r)}function E(e,t,r){return 0!==x(e,t,r)}function S(e,t,r){return x(e,t,r)>=0}function T(e,t,r){return x(e,t,r)<=0}function P(e,t,r,a){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return w(e,r,a);case"!=":return E(e,r,a);case">":return R(e,r,a);case">=":return S(e,r,a);case"<":return j(e,r,a);case"<=":return T(e,r,a);default:throw new TypeError("Invalid operator: "+t)}}function A(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof A){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof A))return new A(e,t);e=e.trim().split(/\s+/).join(" "),r("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===k?this.value="":this.value=this.operator+this.semver.version,r("comp",this)}t.rcompareIdentifiers=function(e,t){return v(t,e)},t.major=function(e,t){return new h(e,t).major},t.minor=function(e,t){return new h(e,t).minor},t.patch=function(e,t){return new h(e,t).patch},t.compare=x,t.compareLoose=function(e,t){return x(e,t,!0)},t.compareBuild=function(e,t,r){var a=new h(e,r),n=new h(t,r);return a.compare(n)||a.compareBuild(n)},t.rcompare=function(e,t,r){return x(t,e,r)},t.sort=function(e,r){return e.sort(function(e,a){return t.compareBuild(e,a,r)})},t.rsort=function(e,r){return e.sort(function(e,a){return t.compareBuild(a,e,r)})},t.gt=R,t.lt=j,t.eq=w,t.neq=E,t.gte=S,t.lte=T,t.cmp=P,t.Comparator=A;var k={};function C(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof C)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new C(e.raw,t);if(e instanceof A)return new C(e.value,t);if(!(this instanceof C))return new C(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}function _(e,t){for(var r=!0,a=e.slice(),n=a.pop();r&&a.length;)r=a.every(function(e){return n.intersects(e,t)}),n=a.pop();return r}function I(e){return!e||"x"===e.toLowerCase()||"*"===e}function D(e,t,r,a,n,s,o,i,d,c,l,u,p){return((t=I(r)?"":I(a)?">="+r+".0.0":I(n)?">="+r+"."+a+".0":">="+t)+" "+(i=I(d)?"":I(c)?"<"+(+d+1)+".0.0":I(l)?"<"+d+"."+(+c+1)+".0":u?"<="+d+"."+c+"."+l+"-"+u:"<="+i)).trim()}function O(e,t,a){for(var n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!a.includePrerelease){for(n=0;n<e.length;n++)if(r(e[n].semver),e[n].semver!==k&&e[n].semver.prerelease.length>0){var s=e[n].semver;if(s.major===t.major&&s.minor===t.minor&&s.patch===t.patch)return!0}return!1}return!0}function N(e,t,r){try{t=new C(t,r)}catch(e){return!1}return t.test(e)}function B(e,t,r,a){var n,s,o,i,d;switch(e=new h(e,a),t=new C(t,a),r){case">":n=R,s=T,o=j,i=">",d=">=";break;case"<":n=j,s=S,o=R,i="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(N(e,t,a))return!1;for(var c=0;c<t.set.length;++c){var l=t.set[c],u=null,p=null;if(l.forEach(function(e){e.semver===k&&(e=new A(">=0.0.0")),u=u||e,p=p||e,n(e.semver,u.semver,a)?u=e:o(e.semver,p.semver,a)&&(p=e)}),u.operator===i||u.operator===d)return!1;if((!p.operator||p.operator===i)&&s(e,p.semver))return!1;if(p.operator===d&&o(e,p.semver))return!1}return!0}A.prototype.parse=function(e){var t=this.options.loose?i[c.COMPARATORLOOSE]:i[c.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new h(r[2],this.options.loose):this.semver=k},A.prototype.toString=function(){return this.value},A.prototype.test=function(e){if(r("Comparator.test",e,this.options.loose),this.semver===k||e===k)return!0;if("string"==typeof e)try{e=new h(e,this.options)}catch(e){return!1}return P(e,this.operator,this.semver,this.options)},A.prototype.intersects=function(e,t){if(!(e instanceof A))throw new TypeError("a Comparator is required");var r;if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new C(e.value,t),N(this.value,r,t));if(""===e.operator)return""===e.value||(r=new C(this.value,t),N(e.semver,r,t));var a=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),s=this.semver.version===e.semver.version,o=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),i=P(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),d=P(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return a||n||s&&o||i||d},t.Range=C,C.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range},C.prototype.toString=function(){return this.range},C.prototype.parseRange=function(e){var t=this.options.loose,a=t?i[c.HYPHENRANGELOOSE]:i[c.HYPHENRANGE];e=e.replace(a,D),r("hyphen replace",e),e=e.replace(i[c.COMPARATORTRIM],"$1$2$3"),r("comparator trim",e,i[c.COMPARATORTRIM]),e=(e=(e=e.replace(i[c.TILDETRIM],"$1~")).replace(i[c.CARETTRIM],"$1^")).split(/\s+/).join(" ");var n=t?i[c.COMPARATORLOOSE]:i[c.COMPARATOR],s=e.split(" ").map(function(e){return function(e,t){return r("comp",e,t),e=function(e,t){return e.trim().split(/\s+/).map(function(e){return function(e,t){r("caret",e,t);var a=t.loose?i[c.CARETLOOSE]:i[c.CARET];return e.replace(a,function(t,a,n,s,o){var i;return r("caret",e,t,a,n,s,o),I(a)?i="":I(n)?i=">="+a+".0.0 <"+(+a+1)+".0.0":I(s)?i="0"===a?">="+a+"."+n+".0 <"+a+"."+(+n+1)+".0":">="+a+"."+n+".0 <"+(+a+1)+".0.0":o?(r("replaceCaret pr",o),i="0"===a?"0"===n?">="+a+"."+n+"."+s+"-"+o+" <"+a+"."+n+"."+(+s+1):">="+a+"."+n+"."+s+"-"+o+" <"+a+"."+(+n+1)+".0":">="+a+"."+n+"."+s+"-"+o+" <"+(+a+1)+".0.0"):(r("no pr"),i="0"===a?"0"===n?">="+a+"."+n+"."+s+" <"+a+"."+n+"."+(+s+1):">="+a+"."+n+"."+s+" <"+a+"."+(+n+1)+".0":">="+a+"."+n+"."+s+" <"+(+a+1)+".0.0"),r("caret return",i),i})}(e,t)}).join(" ")}(e,t),r("caret",e),e=function(e,t){return e.trim().split(/\s+/).map(function(e){return function(e,t){var a=t.loose?i[c.TILDELOOSE]:i[c.TILDE];return e.replace(a,function(t,a,n,s,o){var i;return r("tilde",e,t,a,n,s,o),I(a)?i="":I(n)?i=">="+a+".0.0 <"+(+a+1)+".0.0":I(s)?i=">="+a+"."+n+".0 <"+a+"."+(+n+1)+".0":o?(r("replaceTilde pr",o),i=">="+a+"."+n+"."+s+"-"+o+" <"+a+"."+(+n+1)+".0"):i=">="+a+"."+n+"."+s+" <"+a+"."+(+n+1)+".0",r("tilde return",i),i})}(e,t)}).join(" ")}(e,t),r("tildes",e),e=function(e,t){return r("replaceXRanges",e,t),e.split(/\s+/).map(function(e){return function(e,t){e=e.trim();var a=t.loose?i[c.XRANGELOOSE]:i[c.XRANGE];return e.replace(a,function(a,n,s,o,i,d){r("xRange",e,a,n,s,o,i,d);var c=I(s),l=c||I(o),u=l||I(i),p=u;return"="===n&&p&&(n=""),d=t.includePrerelease?"-0":"",c?a=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(l&&(o=0),i=0,">"===n?(n=">=",l?(s=+s+1,o=0,i=0):(o=+o+1,i=0)):"<="===n&&(n="<",l?s=+s+1:o=+o+1),a=n+s+"."+o+"."+i+d):l?a=">="+s+".0.0"+d+" <"+(+s+1)+".0.0"+d:u&&(a=">="+s+"."+o+".0"+d+" <"+s+"."+(+o+1)+".0"+d),r("xRange return",a),a})}(e,t)}).join(" ")}(e,t),r("xrange",e),e=function(e,t){return r("replaceStars",e,t),e.trim().replace(i[c.STAR],"")}(e,t),r("stars",e),e}(e,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(s=s.filter(function(e){return!!e.match(n)})),s=s.map(function(e){return new A(e,this.options)},this)},C.prototype.intersects=function(e,t){if(!(e instanceof C))throw new TypeError("a Range is required");return this.set.some(function(r){return _(r,t)&&e.set.some(function(e){return _(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t)})})})})},t.toComparators=function(e,t){return new C(e,t).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})},C.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new h(e,this.options)}catch(e){return!1}for(var t=0;t<this.set.length;t++)if(O(this.set[t],e,this.options))return!0;return!1},t.satisfies=N,t.maxSatisfying=function(e,t,r){var a=null,n=null;try{var s=new C(t,r)}catch(e){return null}return e.forEach(function(e){s.test(e)&&(a&&-1!==n.compare(e)||(n=new h(a=e,r)))}),a},t.minSatisfying=function(e,t,r){var a=null,n=null;try{var s=new C(t,r)}catch(e){return null}return e.forEach(function(e){s.test(e)&&(a&&1!==n.compare(e)||(n=new h(a=e,r)))}),a},t.minVersion=function(e,t){e=new C(e,t);var r=new h("0.0.0");if(e.test(r))return r;if(r=new h("0.0.0-0"),e.test(r))return r;r=null;for(var a=0;a<e.set.length;++a){e.set[a].forEach(function(e){var t=new h(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!R(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}if(r&&e.test(r))return r;return null},t.validRange=function(e,t){try{return new C(e,t).range||"*"}catch(e){return null}},t.ltr=function(e,t,r){return B(e,t,"<",r)},t.gtr=function(e,t,r){return B(e,t,">",r)},t.outside=B,t.prerelease=function(e,t){var r=y(e,t);return r&&r.prerelease.length?r.prerelease:null},t.intersects=function(e,t,r){return e=new C(e,r),t=new C(t,r),e.intersects(t)},t.coerce=function(e,t){if(e instanceof h)return e;"number"==typeof e&&(e=String(e));if("string"!=typeof e)return null;var r=null;if((t=t||{}).rtl){for(var a;(a=i[c.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&a.index+a[0].length===r.index+r[0].length||(r=a),i[c.COERCERTL].lastIndex=a.index+a[1].length+a[2].length;i[c.COERCERTL].lastIndex=-1}else r=e.match(i[c.COERCE]);if(null===r)return null;return y(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}}(MO,MO.exports)),MO.exports}var LO,UO=(void z.env.BABEL_8_BREAKING,FO()),qO={};function GO(e,t){var r={seen:[],stylize:VO};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),XO(t)?r.showHidden=t:t&&function(e,t){if(!t||!ZO(t))return e;var r=Object.keys(t),a=r.length;for(;a--;)e[r[a]]=t[r[a]]}(r,t),$O(r.showHidden)&&(r.showHidden=!1),$O(r.depth)&&(r.depth=2),$O(r.colors)&&(r.colors=!1),$O(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=WO),HO(r,e,r.depth)}function WO(e,t){var r=GO.styles[t];return r?"\x1b["+GO.colors[r][0]+"m"+e+"\x1b["+GO.colors[r][1]+"m":e}function VO(e,t){return e}function HO(e,t,r){if(e.customInspect&&t&&rN(t.inspect)&&t.inspect!==GO&&(!t.constructor||t.constructor.prototype!==t)){var a=t.inspect(r,e);return YO(a)||(a=HO(e,a,r)),a}var n=function(e,t){if($O(t))return e.stylize("undefined","undefined");if(YO(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(a=t,"number"==typeof a)return e.stylize(""+t,"number");var a;if(XO(t))return e.stylize(""+t,"boolean");if(JO(t))return e.stylize("null","null")}(e,t);if(n)return n;var s=Object.keys(t),o=function(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}(s);if(e.showHidden&&(s=Object.getOwnPropertyNames(t)),tN(t)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return zO(t);if(0===s.length){if(rN(t)){var i=t.name?": "+t.name:"";return e.stylize("[Function"+i+"]","special")}if(QO(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(eN(t))return e.stylize(Date.prototype.toString.call(t),"date");if(tN(t))return zO(t)}var d,c,l="",u=!1,p=["{","}"];(d=t,Array.isArray(d)&&(u=!0,p=["[","]"]),rN(t))&&(l=" [Function"+(t.name?": "+t.name:"")+"]");return QO(t)&&(l=" "+RegExp.prototype.toString.call(t)),eN(t)&&(l=" "+Date.prototype.toUTCString.call(t)),tN(t)&&(l=" "+zO(t)),0!==s.length||u&&0!=t.length?r<0?QO(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special"):(e.seen.push(t),c=u?function(e,t,r,a,n){for(var s=[],o=0,i=t.length;o<i;++o)sN(t,String(o))?s.push(KO(e,t,r,a,String(o),!0)):s.push("");return n.forEach(function(n){n.match(/^\d+$/)||s.push(KO(e,t,r,a,n,!0))}),s}(e,t,r,o,s):s.map(function(a){return KO(e,t,r,o,a,u)}),e.seen.pop(),function(e,t,r){var a=e.reduce(function(e,t){return t.indexOf("\n"),e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(a>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(c,l,p)):p[0]+l+p[1]}function zO(e){return"["+Error.prototype.toString.call(e)+"]"}function KO(e,t,r,a,n,s){var o,i,d;if((d=Object.getOwnPropertyDescriptor(t,n)||{value:t[n]}).get?i=d.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):d.set&&(i=e.stylize("[Setter]","special")),sN(a,n)||(o="["+n+"]"),i||(e.seen.indexOf(d.value)<0?(i=JO(r)?HO(e,d.value,null):HO(e,d.value,r-1)).indexOf("\n")>-1&&(i=s?i.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+i.split("\n").map(function(e){return" "+e}).join("\n")):i=e.stylize("[Circular]","special")),$O(o)){if(s&&n.match(/^\d+$/))return i;(o=JSON.stringify(""+n)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+i}function XO(e){return"boolean"==typeof e}function JO(e){return null===e}function YO(e){return"string"==typeof e}function $O(e){return void 0===e}function QO(e){return ZO(e)&&"[object RegExp]"===nN(e)}function ZO(e){return"object"==typeof e&&null!==e}function eN(e){return ZO(e)&&"[object Date]"===nN(e)}function tN(e){return ZO(e)&&("[object Error]"===nN(e)||e instanceof Error)}function rN(e){return"function"==typeof e}function aN(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function nN(e){return Object.prototype.toString.call(e)}function sN(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function oN(e,t){if(e===t)return 0;for(var r=e.length,a=t.length,n=0,s=Math.min(r,a);n<s;++n)if(e[n]!==t[n]){r=e[n],a=t[n];break}return r<a?-1:a<r?1:0}LO="function"==typeof Object.create?function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e},GO.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},GO.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};var iN,dN=Object.prototype.hasOwnProperty,cN=Object.keys||function(e){var t=[];for(var r in e)dN.call(e,r)&&t.push(r);return t},lN=Array.prototype.slice;function uN(){return void 0!==iN?iN:iN="foo"===function(){}.name}function pN(e){return Object.prototype.toString.call(e)}function fN(e){return!PS(e)&&("function"==typeof j.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}function gN(e,t){e||xN(e,!0,t,"==",RN)}var mN=/\s*function\s+([^\(\s]*)\s*/;function yN(e){if(rN(e)){if(uN())return e.name;var t=e.toString().match(mN);return t&&t[1]}}function hN(e){this.name="AssertionError",this.actual=e.actual,this.expected=e.expected,this.operator=e.operator,e.message?(this.message=e.message,this.generatedMessage=!1):(this.message=function(e){return bN(vN(e.actual),128)+" "+e.operator+" "+bN(vN(e.expected),128)}(this),this.generatedMessage=!0);var t=e.stackStartFunction||xN;if(Error.captureStackTrace)Error.captureStackTrace(this,t);else{var r=new Error;if(r.stack){var a=r.stack,n=yN(t),s=a.indexOf("\n"+n);if(s>=0){var o=a.indexOf("\n",s+1);a=a.substring(o+1)}this.stack=a}}}function bN(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function vN(e){if(uN()||!rN(e))return GO(e);var t=yN(e);return"[Function"+(t?": "+t:"")+"]"}function xN(e,t,r,a,n){throw new hN({message:r,actual:e,expected:t,operator:a,stackStartFunction:n})}function RN(e,t){e||xN(e,!0,t,"==",RN)}function jN(e,t,r,a){if(e===t)return!0;if(PS(e)&&PS(t))return 0===oN(e,t);if(eN(e)&&eN(t))return e.getTime()===t.getTime();if(QO(e)&&QO(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"==typeof e||null!==t&&"object"==typeof t){if(fN(e)&&fN(t)&&pN(e)===pN(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===oN(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(PS(e)!==PS(t))return!1;var n=(a=a||{actual:[],expected:[]}).actual.indexOf(e);return-1!==n&&n===a.expected.indexOf(t)||(a.actual.push(e),a.expected.push(t),function(e,t,r,a){if(null==e||null==t)return!1;if(aN(e)||aN(t))return e===t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var n=wN(e),s=wN(t);if(n&&!s||!n&&s)return!1;if(n)return jN(e=lN.call(e),t=lN.call(t),r);var o,i,d=cN(e),c=cN(t);if(d.length!==c.length)return!1;for(d.sort(),c.sort(),i=d.length-1;i>=0;i--)if(d[i]!==c[i])return!1;for(i=d.length-1;i>=0;i--)if(!jN(e[o=d[i]],t[o],r,a))return!1;return!0}(e,t,r,a))}return r?e===t:e==t}function wN(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function EN(e,t){if(!e||!t)return!1;if("[object RegExp]"==Object.prototype.toString.call(t))return t.test(e);try{if(e instanceof t)return!0}catch(e){}return!Error.isPrototypeOf(t)&&!0===t.call({},e)}function SN(e,t,r,a){var n;if("function"!=typeof t)throw new TypeError('"block" argument must be a function');"string"==typeof r&&(a=r,r=null),n=function(e){var t;try{e()}catch(e){t=e}return t}(t),a=(r&&r.name?" ("+r.name+").":".")+(a?" "+a:"."),e&&!n&&xN(n,r,"Missing expected exception"+a);var s="string"==typeof a,o=!e&&n&&!r;if((!e&&tN(n)&&s&&EN(n,r)||o)&&xN(n,r,"Got unwanted exception"+a),e&&n&&r&&!EN(n,r)||!e&&n)throw n}gN.AssertionError=hN,LO(hN,Error),gN.fail=xN,gN.ok=RN,gN.equal=function e(t,r,a){t!=r&&xN(t,r,a,"==",e)},gN.notEqual=function e(t,r,a){t==r&&xN(t,r,a,"!=",e)},gN.deepEqual=function e(t,r,a){jN(t,r,!1)||xN(t,r,a,"deepEqual",e)},gN.deepStrictEqual=function e(t,r,a){jN(t,r,!0)||xN(t,r,a,"deepStrictEqual",e)},gN.notDeepEqual=function e(t,r,a){jN(t,r,!1)&&xN(t,r,a,"notDeepEqual",e)},gN.notDeepStrictEqual=function e(t,r,a){jN(t,r,!0)&&xN(t,r,a,"notDeepStrictEqual",e)},gN.strictEqual=function e(t,r,a){t!==r&&xN(t,r,a,"===",e)},gN.notStrictEqual=function e(t,r,a){t===r&&xN(t,r,a,"!==",e)},gN.throws=function(e,t,r){SN(!0,e,t,r)},gN.doesNotThrow=function(e,t,r){SN(!1,e,t,r)},gN.ifError=function(e){if(e)throw e};var TN=gs,PN=sm,AN=Rs,kN=Ps,CN=mo,_N=yo,IN=ho,DN=bo,ON=Bs,NN=Cs,BN=Zs,MN=eo,FN=function(){function e(e,t,r){this._statements=[],this._resultName=null,this._importedSource=void 0,this._scope=t,this._hub=r,this._importedSource=e}var t=e.prototype;return t.done=function(){return{statements:this._statements,resultName:this._resultName}},t.import=function(){return this._statements.push(CN([],NN(this._importedSource))),this},t.require=function(){return this._statements.push(AN(TN(kN("require"),[NN(this._importedSource)]))),this},t.namespace=function(e){void 0===e&&(e="namespace");var t=this._scope.generateUidIdentifier(e),r=this._statements[this._statements.length-1];return gN("ImportDeclaration"===r.type),gN(0===r.specifiers.length),r.specifiers=[IN(t)],this._resultName=PN(t),this},t.default=function(e){var t=this._scope.generateUidIdentifier(e),r=this._statements[this._statements.length-1];return gN("ImportDeclaration"===r.type),gN(0===r.specifiers.length),r.specifiers=[_N(t)],this._resultName=PN(t),this},t.named=function(e,t){if("default"===t)return this.default(e);var r=this._scope.generateUidIdentifier(e),a=this._statements[this._statements.length-1];return gN("ImportDeclaration"===a.type),gN(0===a.specifiers.length),a.specifiers=[DN(r,kN(t))],this._resultName=PN(r),this},t.var=function(e){var t=this._scope.generateUidIdentifier(e),r=this._statements[this._statements.length-1];return"ExpressionStatement"!==r.type&&(gN(this._resultName),r=AN(this._resultName),this._statements.push(r)),this._statements[this._statements.length-1]=BN("var",[MN(t,r.expression)]),this._resultName=PN(t),this},t.defaultInterop=function(){return this._interop(this._hub.addHelper("interopRequireDefault"))},t.wildcardInterop=function(){return this._interop(this._hub.addHelper("interopRequireWildcard"))},t._interop=function(e){var t=this._statements[this._statements.length-1];return"ExpressionStatement"===t.type?t.expression=TN(e,[t.expression]):"VariableDeclaration"===t.type?(gN(1===t.declarations.length),t.declarations[0].init=TN(e,[t.declarations[0].init])):gN.fail("Unexpected type."),this},t.prop=function(e){var t=this._statements[this._statements.length-1];return"ExpressionStatement"===t.type?t.expression=ON(t.expression,kN(e)):"VariableDeclaration"===t.type?(gN(1===t.declarations.length),t.declarations[0].init=ON(t.declarations[0].init,kN(e))):gN.fail("Unexpected type:"+t.type),this},t.read=function(e){this._resultName=ON(this._resultName,kN(e))},o(e)}();function LN(e){return"module"===e.node.sourceType}var UN=Ps,qN=bo,GN=_s,WN=Vs,VN=qe,HN=function(){function e(e,t,r){this._defaultOpts={importedSource:null,importedType:"commonjs",importedInterop:"babel",importingInterop:"babel",ensureLiveReference:!1,ensureNoContext:!1,importPosition:"before"};var a=e.find(function(e){return e.isProgram()});this._programPath=a,this._programScope=a.scope,this._hub=a.hub,this._defaultOpts=this._applyDefaults(t,r,!0)}var t=e.prototype;return t.addDefault=function(e,t){return this.addNamed("default",e,t)},t.addNamed=function(e,t,r){return gN("string"==typeof e),this._generateImport(this._applyDefaults(t,r),e)},t.addNamespace=function(e,t){return this._generateImport(this._applyDefaults(e,t),null)},t.addSideEffect=function(e,t){return this._generateImport(this._applyDefaults(e,t),void 0)},t._applyDefaults=function(e,t,r){var a;return void 0===r&&(r=!1),"string"==typeof e?a=Object.assign({},this._defaultOpts,{importedSource:e},t):(gN(!t,"Unexpected secondary arguments."),a=Object.assign({},this._defaultOpts,e)),!r&&t&&(void 0!==t.nameHint&&(a.nameHint=t.nameHint),void 0!==t.blockHoist&&(a.blockHoist=t.blockHoist)),a},t._generateImport=function(e,t){var r="default"===t,a=!!t&&!r,n=null===t,s=e.importedSource,o=e.importedType,i=e.importedInterop,d=e.importingInterop,c=e.ensureLiveReference,l=e.ensureNoContext,u=e.nameHint,p=e.importPosition,f=e.blockHoist,g=u||t,m=LN(this._programPath),y=m&&"node"===d,h=m&&"babel"===d;if("after"===p&&!m)throw new Error('"importPosition": "after" is only supported in modules');var b=new FN(s,this._programScope,this._hub);if("es6"===o){if(!y&&!h)throw new Error("Cannot import an ES6 module from CommonJS");b.import(),n?b.namespace(u||s):(r||a)&&b.named(g,t)}else{if("commonjs"!==o)throw new Error('Unexpected interopType "'+o+'"');if("babel"===i)if(y){g="default"!==g?g:s;var v=s+"$es6Default";b.import(),n?b.default(v).var(g||s).wildcardInterop():r?c?b.default(v).var(g||s).defaultInterop().read("default"):b.default(v).var(g).defaultInterop().prop(t):a&&b.default(v).read(t)}else h?(b.import(),n?b.namespace(g||s):(r||a)&&b.named(g,t)):(b.require(),n?b.var(g||s).wildcardInterop():(r||a)&&c?r?(g="default"!==g?g:s,b.var(g).read(t),b.defaultInterop()):b.var(s).read(t):r?b.var(g).defaultInterop().prop(t):a&&b.var(g).prop(t));else if("compiled"===i)y?(b.import(),n?b.default(g||s):(r||a)&&b.default(s).read(g)):h?(b.import(),n?b.namespace(g||s):(r||a)&&b.named(g,t)):(b.require(),n?b.var(g||s):(r||a)&&(c?b.var(s).read(g):b.prop(t).var(g)));else{if("uncompiled"!==i)throw new Error('Unknown importedInterop "'+i+'".');if(r&&c)throw new Error("No live reference for commonjs default");y?(b.import(),n?b.default(g||s):r?b.default(g):a&&b.default(s).read(g)):h?(b.import(),n?b.default(g||s):r?b.default(g):a&&b.named(g,t)):(b.require(),n?b.var(g||s):r?b.var(g):a&&(c?b.var(s).read(g):b.var(g).prop(t)))}}var x=b.done(),R=x.statements,j=x.resultName;return this._insertStatements(R,p,f),(r||a)&&l&&"Identifier"!==j.type?WN([GN(0),j]):j},t._insertStatements=function(e,t,r){if(void 0===t&&(t="before"),void 0===r&&(r=3),"after"===t){if(this._insertStatementsAfter(e))return}else if(this._insertStatementsBefore(e,r))return;this._programPath.unshiftContainer("body",e)},t._insertStatementsBefore=function(e,t){if(1===e.length&&VN(e[0])&&zN(e[0])){var r=this._programPath.get("body").find(function(e){return e.isImportDeclaration()&&zN(e.node)});if((null==r?void 0:r.node.source.value)===e[0].source.value&&JN(r.node,e[0]))return!0}e.forEach(function(e){e._blockHoist=t});var a=this._programPath.get("body").find(function(e){var t=e.node._blockHoist;return Number.isFinite(t)&&t<4});return!!a&&(a.insertBefore(e),!0)},t._insertStatementsAfter=function(e){for(var t,r=new Set(e),a=new Map,n=i(e);!(t=n()).done;){var s=t.value;if(VN(s)&&zN(s)){var o=s.source.value;a.has(o)||a.set(o,[]),a.get(o).push(s)}}for(var d,c=null,l=i(this._programPath.get("body"));!(d=l()).done;){var u=d.value;if(u.isImportDeclaration()&&zN(u.node)){c=u;var p=u.node.source.value,f=a.get(p);if(!f)continue;for(var g,m=i(f);!(g=m()).done;){var y=g.value;r.has(y)&&(JN(u.node,y)&&r.delete(y))}}}return 0===r.size||(c&&c.insertAfter(Array.from(r)),!!c)},o(e)}();function zN(e){return"type"!==e.importKind&&"typeof"!==e.importKind}function KN(e){return 1===e.specifiers.length&&"ImportNamespaceSpecifier"===e.specifiers[0].type||2===e.specifiers.length&&"ImportNamespaceSpecifier"===e.specifiers[1].type}function XN(e){return e.specifiers.length>0&&"ImportDefaultSpecifier"===e.specifiers[0].type}function JN(e,t){var r;return e.specifiers.length?!t.specifiers.length||!KN(e)&&!KN(t)&&(XN(t)&&(XN(e)?t.specifiers[0]=qN(t.specifiers[0].local,UN("default")):e.specifiers.unshift(t.specifiers.shift())),(r=e.specifiers).push.apply(r,b(t.specifiers)),!0):(e.specifiers=t.specifiers,!0)}function YN(e,t,r){return new HN(e).addDefault(t,r)}function $N(e,t,r,a){return new HN(e).addNamed(t,r,a)}function QN(e,t,r){return new HN(e).addNamespace(t,r)}var ZN,eB,tB=Object.freeze({__proto__:null,ImportInjector:HN,addDefault:YN,addNamed:$N,addNamespace:QN,addSideEffect:function(e,t,r){return new HN(e).addSideEffect(t,r)},isModule:LN});function rB(e){ZN||(ZN=hw({ThisExpression:function(e){e.replaceWith($s("void",_s(0),!0))}}),ZN.noScope=!0),OO(e.node,ZN)}var aB={Scope:function(e){e.skip()},ClassDeclaration:function(e){var t=this.requeueInParent,r=this.exported,a=this.metadata,n=e.node.id;if(!n)throw new Error("Expected class to have a name");var s=n.name,o=r.get(s)||[];if(o.length>0){var i=Rs(nB(a,o,Ps(s),e.scope));i._blockHoist=e.node._blockHoist,t(e.insertAfter(i)[0])}},VariableDeclaration:function(e){for(var t,r=this.requeueInParent,a=this.exported,n=this.metadata,s="var"===e.node.kind,o=i(e.get("declarations"));!(t=o()).done;){var d=t.value,c=d.node.id,l=d.node.init;if(!ie(c)||!a.has(c.name)||Ie(l)||oe(l)&&!l.id||Oe(l)&&!l.id)for(var u=0,p=Object.keys(d.getOuterBindingIdentifiers());u<p.length;u++){var f=p[u];if(a.has(f)){var g=Rs(nB(n,a.get(f),Ps(f),e.scope));g._blockHoist=e.node._blockHoist,r(e.insertAfter(g)[0])}}else{if(!l){if(s)continue;l=e.scope.buildUndefinedNode()}d.node.init=nB(n,a.get(c.name),l,e.scope),r(d.get("init"))}}}},nB=function(e,t,r,a){for(var n=e.exportName,s=a;null!=s;s=s.parent)s.hasOwnBinding(n)&&s.rename(n);return(t||[]).reduce(function(t,r){var a=e.stringSpecifiers.has(r);return is("=",Bs(Ps(n),a?Cs(r):Ps(r),a),t)},r)},sB=function(e){return pj.expression.ast(eB||(eB=h(["\n (function() {\n throw new Error('\"' + '","' + '\" is read-only.');\n })()\n "])),e)},oB={ReferencedIdentifier:function(e){var t=this.seen,r=this.buildImportReference,a=this.scope,n=this.imported,s=this.requeueInParent;if(!t.has(e.node)){t.add(e.node);var o=e.node.name,i=n.get(o);if(i){if(function(e){do{switch(e.parent.type){case"TSTypeAnnotation":case"TSTypeAliasDeclaration":case"TSTypeReference":case"TypeAnnotation":case"TypeAlias":return!0;case"ExportSpecifier":return"type"===e.parentPath.parent.exportKind;default:if(e.parentPath.isStatement()||e.parentPath.isExpression())return!1}}while(e=e.parentPath)}(e))throw e.buildCodeFrameError('Cannot transform the imported binding "'+o+"\" since it's also used in a type annotation. Please strip type annotations using @babel/preset-typescript or @babel/preset-flow.");var d=e.scope.getBinding(o);if(a.getBinding(o)!==d)return;var c=r(i,e.node);if(c.loc=e.node.loc,(e.parentPath.isCallExpression({callee:e.node})||e.parentPath.isOptionalCallExpression({callee:e.node})||e.parentPath.isTaggedTemplateExpression({tag:e.node}))&&me(c))e.replaceWith(Vs([_s(0),c]));else if(e.isJSXIdentifier()&&me(c)){var l=c.object,u=c.property;e.replaceWith(sd(nd(l.name),nd(u.name)))}else e.replaceWith(c);s(e),e.skip()}}},UpdateExpression:function(e){var t=this.scope,r=this.seen,a=this.imported,n=this.exported,s=this.requeueInParent,o=this.buildImportReference;if(!r.has(e.node)){r.add(e.node);var i=e.get("argument");if(!i.isMemberExpression()){var d=e.node;if(i.isIdentifier()){var c=i.node.name;if(t.getBinding(c)!==e.scope.getBinding(c))return;var l=n.get(c),u=a.get(c);if((null==l?void 0:l.length)>0||u)if(u)e.replaceWith(is(d.operator[0]+"=",o(u,i.node),sB(c)));else if(d.prefix)e.replaceWith(nB(this.metadata,l,sm(d),e.scope));else{var p=t.generateDeclaredUidIdentifier(c);e.replaceWith(Vs([is("=",sm(p),sm(d)),nB(this.metadata,l,Ps(c),e.scope),sm(p)]))}}s(e),e.skip()}}},AssignmentExpression:{exit:function(e){var t=this,r=this.scope,a=this.seen,n=this.imported,s=this.exported,o=this.requeueInParent,i=this.buildImportReference;if(!a.has(e.node)){a.add(e.node);var d=e.get("left");if(!d.isMemberExpression())if(d.isIdentifier()){var c=d.node.name;if(r.getBinding(c)!==e.scope.getBinding(c))return;var l=s.get(c),u=n.get(c);if((null==l?void 0:l.length)>0||u){var p=e.node;u&&(p.left=i(u,d.node),p.right=Vs([p.right,sB(c)]));var f,g=p.operator;f="="===g?p:is("=",p.left,"&&="===g||"||="===g||"??="===g?Ns(g.slice(0,-1),sm(p.left),p.right):ds(g.slice(0,-1),sm(p.left),p.right)),e.replaceWith(nB(this.metadata,l,f,e.scope)),o(e),e.skip()}}else{var m=d.getOuterBindingIdentifiers(),y=Object.keys(m).filter(function(t){return r.getBinding(t)===e.scope.getBinding(t)}),h=y.find(function(e){return n.has(e)});h&&(e.node.right=Vs([e.node.right,sB(h)]));var b=[];if(y.forEach(function(r){var a=s.get(r)||[];a.length>0&&b.push(nB(t.metadata,a,Ps(r),e.scope))}),b.length>0){var v=Vs(b);e.parentPath.isExpressionStatement()&&((v=Rs(v))._blockHoist=e.parentPath.node._blockHoist),o(e.insertAfter(v)[0])}}}}},ForXStatement:function(e){var t=e.scope,r=e.node.left,a=this.exported,n=this.imported,s=this.scope;if(!Ae(r)){for(var o,i=!1,d=e.get("body").scope,c=0,l=Object.keys(Dy(r));c<l.length;c++){var u=l[c];s.getBinding(u)===t.getBinding(u)&&(a.has(u)&&(i=!0,d.hasOwnBinding(u)&&d.rename(u)),n.has(u)&&!o&&(o=u))}if(!i&&!o)return;e.ensureBlock();var p=e.get("body"),f=t.generateUidIdentifierBasedOnNode(r);e.get("left").replaceWith(Zs("let",[eo(sm(f))])),t.registerDeclaration(e.get("left")),i&&p.unshiftContainer("body",Rs(is("=",r,f))),o&&p.unshiftContainer("body",Rs(sB(o)))}}};function iB(e,t){for(var r=0,a=e.length-1;a>=0;a--){var n=e[a];"."===n?e.splice(a,1):".."===n?(e.splice(a,1),r++):r&&(e.splice(a,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}var dB=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,cB=function(e){return dB.exec(e).slice(1)};function lB(){for(var e="",t=!1,r=arguments.length-1;r>=-1&&!t;r--){var a=r>=0?arguments[r]:"/";if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(e=a+"/"+e,t="/"===a.charAt(0))}return(t?"/":"")+(e=iB(vB(e.split("/"),function(e){return!!e}),!t).join("/"))||"."}function uB(e){var t=pB(e),r="/"===EB(e,-1);return(e=iB(vB(e.split("/"),function(e){return!!e}),!t).join("/"))||t||(e="."),e&&r&&(e+="/"),(t?"/":"")+e}function pB(e){return"/"===e.charAt(0)}function fB(){return uB(vB(Array.prototype.slice.call(arguments,0),function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))}function gB(e,t){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=lB(e).substr(1),t=lB(t).substr(1);for(var a=r(e.split("/")),n=r(t.split("/")),s=Math.min(a.length,n.length),o=s,i=0;i<s;i++)if(a[i]!==n[i]){o=i;break}var d=[];for(i=o;i<a.length;i++)d.push("..");return(d=d.concat(n.slice(o))).join("/")}function mB(e){var t=cB(e),r=t[0],a=t[1];return r||a?(a&&(a=a.substr(0,a.length-1)),r+a):"."}function yB(e,t){var r=cB(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r}function hB(e){return cB(e)[3]}var bB={extname:hB,basename:yB,dirname:mB,sep:"/",delimiter:":",relative:gB,join:fB,isAbsolute:pB,normalize:uB,resolve:lB};function vB(e,t){if(e.filter)return e.filter(t);for(var r=[],a=0;a<e.length;a++)t(e[a],a,e)&&r.push(e[a]);return r}var xB,RB,jB,wB,EB="b"==="ab".substr(-1)?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)},SB=Object.freeze({__proto__:null,basename:yB,default:bB,delimiter:":",dirname:mB,extname:hB,isAbsolute:pB,join:fB,normalize:uB,relative:gB,resolve:lB,sep:"/"});function TB(e){return e.hasExports}function PB(e){return 0===e.imports.size&&0===e.importsNamespace.size&&0===e.reexports.size&&0===e.reexportNamespace.size&&!e.reexportAll}function AB(e){if("function"!=typeof e&&"none"!==e&&"babel"!==e&&"node"!==e)throw new Error('.importInterop must be one of "none", "babel", "node", or a function returning one of those values (received '+e+").");return e}function kB(e,t,r){return"function"==typeof e?AB(e(t,r)):e}function CB(e,t,r){var a=r.importInterop,n=r.initializeReexports,s=void 0!==n&&n,o=r.getWrapperPayload,d=r.esNamespaceOnly,c=void 0!==d&&d,l=r.filename;t||(t=e.scope.generateUidIdentifier("exports").name);var u=new Set;!function(e){e.get("body").forEach(function(e){e.isExportDefaultDeclaration()&&e.splitExportDeclaration()})}(e);var p=function(e,t,r){var a=t.getWrapperPayload,n=t.initializeReexports,s=function(e,t,r){var a=new Map,n=e.scope,s=e.get("body");s.forEach(function(e){var r;if(e.isImportDeclaration())r="import";else{if(e.isExportDefaultDeclaration()&&(e=e.get("declaration")),e.isExportNamedDeclaration())if(e.node.declaration)e=e.get("declaration");else if(t&&e.node.source&&e.get("source").isStringLiteral())return void e.get("specifiers").forEach(function(e){IB(e),a.set(e.get("local").node.name,"block")});if(e.isFunctionDeclaration())r="hoisted";else if(e.isClassDeclaration())r="block";else if(e.isVariableDeclaration({kind:"var"}))r="var";else{if(!e.isVariableDeclaration())return;r="block"}}Object.keys(e.getOuterBindingIdentifiers()).forEach(function(e){a.set(e,r)})});var o=new Map,i=function(e){var t=e.node.name,r=o.get(t);if(!r){var s,i,d=null!=(s=a.get(t))?s:null==(i=n.getBinding(t))?void 0:i.kind;if(void 0===d)throw e.buildCodeFrameError('Exporting local "'+t+'", which is not declared.');r={names:[],kind:d},o.set(t,r)}return r};return s.forEach(function(e){if(!e.isExportNamedDeclaration()||!t&&e.node.source){if(e.isExportDefaultDeclaration()){var a=e.get("declaration");if(!a.isFunctionDeclaration()&&!a.isClassDeclaration())throw a.buildCodeFrameError("Unexpected default expression export.");i(a.get("id")).names.push("default")}}else if(e.node.declaration){var n=e.get("declaration"),s=n.getOuterBindingIdentifierPaths();Object.keys(s).forEach(function(e){if("__esModule"===e)throw n.buildCodeFrameError('Illegal export "__esModule".');i(s[e]).names.push(e)})}else e.get("specifiers").forEach(function(e){var t=e.get("local"),a=e.get("exported"),n=i(t),s=_B(a,r);if("__esModule"===s)throw a.buildCodeFrameError('Illegal export "__esModule".');n.names.push(s)})}),o}(e,n,r),o=new Map,d=new Map,c=function(t,r){var a=t.value,n=d.get(a);return n?o.get(a).push(r):(n={name:e.scope.generateUidIdentifier(yB(a,hB(a))).name,interop:"none",loc:null,imports:new Map,importsNamespace:new Set,reexports:new Map,reexportNamespace:new Set,reexportAll:null,wrap:null,get lazy(){return"lazy"===this.wrap},referenced:!1},d.set(a,n),o.set(a,[r])),n},l=!1;e.get("body").forEach(function(e){if(e.isImportDeclaration()){var t=c(e.node.source,e.node);t.loc||(t.loc=e.node.loc),e.get("specifiers").forEach(function(e){if(e.isImportDefaultSpecifier()){var a=e.get("local").node.name;t.imports.set(a,"default");var n=s.get(a);n&&(s.delete(a),n.names.forEach(function(e){t.reexports.set(e,"default")}),t.referenced=!0)}else if(e.isImportNamespaceSpecifier()){var o=e.get("local").node.name;t.importsNamespace.add(o);var i=s.get(o);i&&(s.delete(o),i.names.forEach(function(e){t.reexportNamespace.add(e)}),t.referenced=!0)}else if(e.isImportSpecifier()){var d=_B(e.get("imported"),r),c=e.get("local").node.name;t.imports.set(c,d);var l=s.get(c);l&&(s.delete(c),l.names.forEach(function(e){t.reexports.set(e,d)}),t.referenced=!0)}})}else if(e.isExportAllDeclaration()){l=!0;var a=c(e.node.source,e.node);a.loc||(a.loc=e.node.loc),a.reexportAll={loc:e.node.loc},a.referenced=!0}else if(e.isExportNamedDeclaration()&&e.node.source){l=!0;var n=c(e.node.source,e.node);n.loc||(n.loc=e.node.loc),e.get("specifiers").forEach(function(e){IB(e);var t=_B(e.get("local"),r),a=_B(e.get("exported"),r);if(n.reexports.set(a,t),n.referenced=!0,"__esModule"===a)throw e.get("exported").buildCodeFrameError('Illegal export "__esModule".')})}else(e.isExportNamedDeclaration()||e.isExportDefaultDeclaration())&&(l=!0)});for(var u,p=i(d.values());!(u=p()).done;){var f=u.value,g=!1,m=!1;f.importsNamespace.size>0&&(g=!0,m=!0),f.reexportAll&&(m=!0);for(var h,b=i(f.imports.values());!(h=b()).done;){"default"===h.value?g=!0:m=!0}for(var v,x=i(f.reexports.values());!(v=x()).done;){"default"===v.value?g=!0:m=!0}g&&m?f.interop="namespace":g&&(f.interop="default")}if(a)for(var R,j=i(d);!(R=j()).done;){var w=y(R.value,2),E=w[0],S=w[1];S.wrap=a(E,S,o.get(E))}return{hasExports:l,local:s,sources:d}}(e,{initializeReexports:s,getWrapperPayload:o},u),f=p.local,g=p.sources,m=p.hasExports;!function(e){e.get("body").forEach(function(e){if(e.isImportDeclaration())e.remove();else if(e.isExportNamedDeclaration())e.node.declaration?(e.node.declaration._blockHoist=e.node._blockHoist,e.replaceWith(e.node.declaration)):e.remove();else if(e.isExportDefaultDeclaration()){var t=e.get("declaration");if(!t.isFunctionDeclaration()&&!t.isClassDeclaration())throw t.buildCodeFrameError("Unexpected default expression export.");t._blockHoist=e.node._blockHoist,e.replaceWith(t)}else e.isExportAllDeclaration()&&e.remove()})}(e);for(var h,b=i(g);!(h=b()).done;){var v=y(h.value,2),x=v[0],R=v[1],j=R.importsNamespace,w=R.imports;if(j.size>0&&0===w.size){var E=y(j,1)[0];R.name=E}var S=kB(a,x,l);"none"===S?R.interop="none":"node"===S&&"namespace"===R.interop?R.interop="node-namespace":"node"===S&&"default"===R.interop?R.interop="node-default":c&&"namespace"===R.interop&&(R.interop="default")}return{exportName:t,exportNameListName:null,hasExports:m,local:f,source:g,stringSpecifiers:u}}function _B(e,t){if(e.isIdentifier())return e.node.name;if(e.isStringLiteral()){var r=e.node.value;return Lr(r)||t.add(r),r}throw new Error("Expected export specifier to be either Identifier or StringLiteral, got "+e.node.type)}function IB(e){if(!e.isExportSpecifier())throw e.isExportNamespaceSpecifier()?e.buildCodeFrameError("Export namespace should be first transformed by `@babel/plugin-transform-export-namespace-from`."):e.buildCodeFrameError("Unexpected export specifier type")}function DB(e,t){return"lazy"===t?gs(e,[]):null}function OB(e,t,r,a){var n=Z(e)?e.arguments[0]:e.source;if(le(n)||$e(n)&&0===n.quasis.length)return t?pj.expression.ast(xB||(xB=h(["\n Promise.resolve().then(() => ",")\n "])),a(n)):a(n);var s=$e(n)?Ps("specifier"):Po([To({raw:""}),To({raw:""})],[Ps("specifier")]);return t?pj.expression.ast(RB||(RB=h(["\n (specifier =>\n new Promise(r => r(","))\n .then(s => ",")\n )(",")\n "])),s,a(Ps("s")),n):r?pj.expression.ast(jB||(jB=h(["\n (specifier =>\n new Promise(r => r(","))\n )(",")\n "])),a(s),n):pj.expression.ast(wB||(wB=h(["\n (specifier => ",")(",")\n "])),a(s),n)}var NB,BB,MB,FB,LB,UB,qB,GB,WB,VB,HB,zB,KB,XB,JB=YB;function YB(e,t){var r=e.filename,a=e.filenameRelative,n=void 0===a?r:a,s=e.sourceRoot,o=void 0===s?t.moduleRoot:s,i=t.moduleId,d=t.moduleIds,c=void 0===d?!!i:d,l=t.getModuleId,u=t.moduleRoot,p=void 0===u?o:u;if(!c)return null;if(null!=i&&!l)return i;var f=null!=p?p+"/":"";if(n){var g=null!=o?new RegExp("^"+o+"/?"):"";f+=n.replace(g,"").replace(/\.\w*$/,"")}return f=f.replace(/\\/g,"/"),l&&l(f)||f}function $B(e,t){var r=t.exportName,a=t.strict,n=t.allowTopLevelThis,s=t.strictMode,o=t.noInterop,d=t.importInterop,c=void 0===d?o?"none":"babel":d,l=t.lazy,u=t.getWrapperPayload,p=void 0===u?function(e){return function(t,r){if(!1===e)return null;if(PB(r)||r.reexportAll)return null;if(!0===e)return t.includes(".")?null:"lazy";if(Array.isArray(e))return e.includes(t)?"lazy":null;if("function"==typeof e)return e(t)?"lazy":null;throw new Error(".lazy must be a boolean, string array, or function")}}(null!=l&&l):u,f=t.wrapReference,g=void 0===f?DB:f,m=t.esNamespaceOnly,v=t.filename,x=t.constantReexports,R=void 0===x?arguments[1].loose:x,j=t.enumerableModuleMeta,w=void 0===j?arguments[1].loose:j,E=t.noIncompleteNsImportDetection;AB(c),gN(LN(e),"Cannot process module statements in a script"),e.node.sourceType="script";var S=CB(e,r,{importInterop:c,initializeReexports:R,getWrapperPayload:p,esNamespaceOnly:m,filename:v});if(n||rB(e),function(e,t,r){for(var a,n=new Map,s=new Map,o=function(t){e.requeue(t)},d=i(t.source);!(a=d()).done;){for(var c,l=y(a.value,2),u=l[0],p=l[1],f=i(p.imports);!(c=f()).done;){var g=y(c.value,2),m=g[0],h=g[1];n.set(m,[u,h,null])}for(var v,x=i(p.importsNamespace);!(v=x()).done;){var R=v.value;n.set(R,[u,null,R])}}for(var j,w=i(t.local);!(j=w()).done;){var E,S=y(j.value,2),T=S[0],P=S[1],A=s.get(T);A||(A=[],s.set(T,A)),(E=A).push.apply(E,b(P.names))}var k={metadata:t,requeueInParent:o,scope:e.scope,exported:s};e.traverse(aB,k);var C={seen:new WeakSet,metadata:t,requeueInParent:o,scope:e.scope,imported:n,exported:s,buildImportReference:function(e,a){var n,s=y(e,3),o=s[0],i=s[1],d=s[2],c=t.source.get(o);if(c.referenced=!0,d)return c.wrap&&(a=null!=(n=r(a,c.wrap))?n:a),a;var l,u=Ps(c.name);if(c.wrap&&(u=null!=(l=r(u,c.wrap))?l:u),"default"===i&&"node-default"===c.interop)return u;var p=t.stringSpecifiers.has(i);return Bs(u,p?Cs(i):Ps(i),p)}};e.traverse(oB,C)}(e,S,g),!1!==s){var T=e.node.directives.some(function(e){return"use strict"===e.value.value});T||e.unshiftContainer("directives",ls(us("use strict")))}var P=[];TB(S)&&!a&&P.push(function(e,t){void 0===t&&(t=!1);return(t?pj.statement(qB||(qB=h(["\n EXPORTS.__esModule = true;\n "]))):pj.statement(GB||(GB=h(['\n Object.defineProperty(EXPORTS, "__esModule", {\n value: true,\n });\n ']))))({EXPORTS:e.exportName})}(S,w));var A=function(e,t){for(var r,a=Object.create(null),n=i(t.local.values());!(r=n()).done;)for(var s,o=i(r.value.names);!(s=o()).done;){a[s.value]=!0}for(var d,c=!1,l=i(t.source.values());!(d=l()).done;){for(var u,p=d.value,f=i(p.reexports.keys());!(u=f()).done;){a[u.value]=!0}for(var g,m=i(p.reexportNamespace);!(g=m()).done;){a[g.value]=!0}c=c||!!p.reexportAll}if(!c||0===Object.keys(a).length)return null;var y=e.scope.generateUidIdentifier("exportNames");return delete a.default,{name:y.name,statement:Zs("var",[eo(y,ky(a))])}}(e,S);return A&&(S.exportNameListName=A.name,P.push(A.statement)),P.push.apply(P,b(function(e,t,r,a,n){void 0===a&&(a=!1);void 0===n&&(n=!1);for(var s,o=[],d=i(t.local);!(s=d()).done;){var c=y(s.value,2),l=c[0],u=c[1];if("import"===u.kind);else if("hoisted"===u.kind)o.push([u.names[0],nM(t,u.names,Ps(l))]);else if(!n)for(var p,f=i(u.names);!(p=f()).done;){var g=p.value;o.push([g,null])}}for(var m,h=i(t.source.values());!(m=h()).done;){var v=m.value;if(!a)for(var x=rM(t,v,!1,r),R=b(v.reexports.keys()),j=0;j<x.length;j++)o.push([R[j],x[j]]);if(!n)for(var w,E=i(v.reexportNamespace);!(w=E()).done;){var S=w.value;o.push([S,null])}}o.sort(function(e,t){var r=y(e,1)[0],a=y(t,1)[0];return r<a?-1:a<r?1:0});var T=[];if(n)for(var P,A=i(o);!(P=A()).done;){var k=y(P.value,2)[1];T.push(k)}else for(var C=100,_=0;_<o.length;_+=C){for(var I=[],D=0;D<C&&_+D<o.length;D++){var O=y(o[_+D],2),N=O[0],B=O[1];null!==B?(I.length>0&&(T.push(nM(t,I,e.scope.buildUndefinedNode())),I=[]),T.push(B)):I.push(N)}I.length>0&&T.push(nM(t,I,e.scope.buildUndefinedNode()))}return T}(e,S,g,R,E))),{meta:S,headers:P}}function QB(e){e.forEach(function(e){e._blockHoist=3})}function ZB(e,t,r){if("none"===r)return null;if("node-namespace"===r)return gs(e.hub.addHelper("interopRequireWildcard"),[t,Ds(!0)]);if("node-default"===r)return null;var a;if("default"===r)a="interopRequireDefault";else{if("namespace"!==r)throw new Error("Unknown interop: "+r);a="interopRequireWildcard"}return gs(e.hub.addHelper(a),[t])}function eM(e,t,r,a){var n;void 0===r&&(r=!1),void 0===a&&(a=DB);for(var s,o=[],d=Ps(t.name),c=i(t.importsNamespace);!(s=c()).done;){var l=s.value;l!==t.name&&o.push(pj.statement(NB||(NB=h(["var NAME = SOURCE;"])))({NAME:l,SOURCE:sm(d)}))}var u=null!=(n=a(d,t.wrap))?n:d;r&&o.push.apply(o,b(rM(e,t,!0,a)));for(var p,f=i(t.reexportNamespace);!(p=f()).done;){var g=p.value;o.push((ie(u)?pj.statement(MB||(MB=h(["EXPORTS.NAME = NAMESPACE;"]))):pj.statement(BB||(BB=h(['\n Object.defineProperty(EXPORTS, "NAME", {\n enumerable: true,\n get: function() {\n return NAMESPACE;\n }\n });\n ']))))({EXPORTS:e.exportName,NAME:g,NAMESPACE:sm(u)}))}if(t.reexportAll){var m=function(e,t,r){return(r?pj.statement(WB||(WB=h(['\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === "default" || key === "__esModule") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n EXPORTS[key] = NAMESPACE[key];\n });\n ']))):pj.statement(VB||(VB=h(['\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === "default" || key === "__esModule") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n Object.defineProperty(EXPORTS, key, {\n enumerable: true,\n get: function() {\n return NAMESPACE[key];\n },\n });\n });\n ']))))({NAMESPACE:t,EXPORTS:e.exportName,VERIFY_NAME_LIST:e.exportNameListName?pj(HB||(HB=h(["\n if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return;\n "])))({EXPORTS_LIST:e.exportNameListName}):null})}(e,sm(u),r);m.loc=t.reexportAll.loc,o.push(m)}return o}YB=function(e,t){var r,a,n,s;return JB(e,{moduleId:null!=(r=t.moduleId)?r:e.moduleId,moduleIds:null!=(a=t.moduleIds)?a:e.moduleIds,getModuleId:null!=(n=t.getModuleId)?n:e.getModuleId,moduleRoot:null!=(s=t.moduleRoot)?s:e.moduleRoot})};var tM={constant:function(e){var t=e.exports,r=e.exportName,a=e.namespaceImport;return pj.statement.ast(FB||(FB=h(["\n ","."," = ",";\n "])),t,r,a)},constantComputed:function(e){var t=e.exports,r=e.exportName,a=e.namespaceImport;return pj.statement.ast(LB||(LB=h(["\n ",'["','"] = ',";\n "])),t,r,a)},spec:function(e){var t=e.exports,r=e.exportName,a=e.namespaceImport;return pj.statement.ast(UB||(UB=h(["\n Object.defineProperty(",', "','", {\n enumerable: true,\n get: function() {\n return ',";\n },\n });\n "])),t,r,a)}};function rM(e,t,r,a){var n,s=Ps(t.name);s=null!=(n=a(s,t.wrap))?n:s;var o=e.stringSpecifiers;return Array.from(t.reexports,function(a){var n=y(a,2),i=n[0],d=n[1],c=sm(s);"default"===d&&"node-default"===t.interop||(c=o.has(d)?Bs(c,Cs(d),!0):Bs(c,Ps(d)));var l={exports:e.exportName,exportName:i,namespaceImport:c};return r||ie(c)?o.has(i)?tM.constantComputed(l):tM.constant(l):tM.spec(l)})}var aM={computed:function(e){var t=e.exports,r=e.name,a=e.value;return pj.expression.ast(zB||(zB=h(["",'["','"] = ',""])),t,r,a)},default:function(e){var t=e.exports,r=e.name,a=e.value;return pj.expression.ast(KB||(KB=h(["","."," = ",""])),t,r,a)},define:function(e){var t=e.exports,r=e.name,a=e.value;return pj.expression.ast(XB||(XB=h(["\n Object.defineProperty(",', "','", {\n enumerable: true,\n value: void 0,\n writable: true\n })["','"] = ',""])),t,r,r,a)}};function nM(e,t,r){var a=e.stringSpecifiers,n=e.exportName;return Rs(t.reduce(function(e,t){var r={exports:n,name:t,value:e};return"__proto__"===t?aM.define(r):a.has(t)?aM.computed(r):aM.default(r)},r))}var sM=cR(Object.freeze({__proto__:null,buildDynamicImport:OB,buildNamespaceInitStatements:eM,ensureStatementsHoisted:QB,getModuleName:YB,hasExports:TB,isModule:LN,isSideEffectImport:PB,rewriteModuleStatementsAndPrepareHeader:$B,rewriteThis:rB,wrapInterop:ZB}));qO.getModuleName=function(){return sM.getModuleName};var oM,iM=sm,dM=cs,cM=Ry,lM=function(){function e(e,t){var r=this,a=t.code,n=t.ast,s=t.inputMap;this._map=new Map,this.opts=void 0,this.declarations={},this.path=void 0,this.ast=void 0,this.scope=void 0,this.metadata={},this.code="",this.inputMap=void 0,this.hub={file:this,getCode:function(){return r.code},getScope:function(){return r.scope},addHelper:this.addHelper.bind(this),buildError:this.buildCodeFrameError.bind(this)},this.opts=e,this.code=a,this.ast=n,this.inputMap=s,this.path=JD.get({hub:this.hub,parentPath:null,parent:this.ast,container:this.ast,key:"program"}).setContext(),this.scope=this.path.scope}var t=e.prototype;return t.set=function(e,t){if("helpersNamespace"===e)throw new Error("Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility.If you are using @babel/plugin-external-helpers you will need to use a newer version than the one you currently have installed. If you have your own implementation, you'll want to explore using 'helperGenerator' alongside 'file.availableHelper()'.");this._map.set(e,t)},t.get=function(e){return this._map.get(e)},t.has=function(e){return this._map.has(e)},t.availableHelper=function(e,t){if(wj(e))return!1;var r;try{r=jj(e)}catch(e){if("BABEL_HELPER_UNKNOWN"!==e.code)throw e;return!1}return"string"!=typeof t||(UO.valid(t)&&(t="^"+t),!UO.intersects("<"+r,t)&&!UO.intersects(">=8.0.0",t))},t.addHelper=function(e){if(wj(e))throw new Error("Cannot use internal helper "+e);return this._addHelper(e)},t._addHelper=function(e){var t=this,r=this.declarations[e];if(r)return iM(r);var a=this.get("helperGenerator");if(a){var n=a(e);if(n)return n}jj(e);for(var s,o=this.declarations[e]=this.scope.generateUidIdentifier(e),d={},c=i(function(e){return xj(e).getDependencies()}(e));!(s=c()).done;){var l=s.value;d[l]=this._addHelper(l)}var u=Rj(e,function(e){return d[e]},o.name,Object.keys(this.scope.getAllBindings())),p=u.nodes;u.globals.forEach(function(e){t.path.scope.hasBinding(e,!0)&&t.path.scope.rename(e)}),p.forEach(function(e){e._compact=!0});for(var f,g=i(this.path.unshiftContainer("body",p));!(f=g()).done;){var m=f.value;m.isVariableDeclaration()&&this.scope.registerDeclaration(m)}return o},t.buildCodeFrameError=function(e,t,r){void 0===r&&(r=SyntaxError);var a=null==e?void 0:e.loc;if(!a&&e){cM(e,function(e){if(e.loc)return a=e.loc,cM.stop});var n="This is an error on an internal node. Probably an internal error.";a&&(n+=" Location has been estimated."),t+=" ("+n+")"}if(a){var s=this.opts.highlightCode,o=void 0===s||s;t+="\n"+_R(this.code,{start:{line:a.start.line,column:a.start.column+1},end:a.end&&a.start.line===a.end.line?{line:a.end.line,column:a.end.column+1}:void 0},{highlightCode:o})}return new r(t)},o(e,[{key:"shebang",get:function(){var e=this.path.node.interpreter;return e?e.value:""},set:function(e){e?this.path.get("interpreter").replaceWith(dM(e)):this.path.get("interpreter").remove()}}])}();lM.prototype.addImport=function(){throw new Error("This API has been removed. If you're looking for this functionality in Babel 7, you should import the '@babel/helper-module-imports' module and use the functions exposed from that module, such as 'addNamed' or 'addDefault'.")},lM.prototype.addTemplateObject=function(){throw new Error("This function has been moved into the template literal transform itself.")},lM.prototype.getModuleName=function(){return qO.getModuleName()(this.opts,this.opts)};var uM=os,pM=is,fM=ds,gM=ps,mM=gs,yM=sm,hM=ys,bM=po,vM=fo,xM=Rs,RM=Ts,jM=Ps,wM=Bs,EM=Ls,SM=Fs,TM=Cs,PM=$s,AM=Zs,kM=eo,CM=function(e){return pj.statement(oM||(oM=h(['\n (function (root, factory) {\n if (typeof define === "function" && define.amd) {\n define(AMD_ARGUMENTS, factory);\n } else if (typeof exports === "object") {\n factory(COMMON_ARGUMENTS);\n } else {\n factory(BROWSER_ARGUMENTS);\n }\n })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n FACTORY_BODY\n });\n '])))(e)};function _M(e){var t=jM("babelHelpers"),r=[],a=RM(null,[jM("global")],gM(r)),n=SM([xM(mM(a,[hM(fM("===",PM("typeof",jM("global")),TM("undefined")),jM("self"),jM("global"))]))]);return r.push(AM("var",[kM(t,pM("=",wM(jM("global"),t),EM([])))])),NM(r,t,e),n}function IM(e){var t=[],r=NM(t,null,e);return t.unshift(bM(null,Object.keys(r).map(function(e){return vM(yM(r[e]),jM(e))}))),SM(t,[],"module")}function DM(e){var t=jM("babelHelpers"),r=[];return r.push(AM("var",[kM(t,jM("global"))])),NM(r,t,e),SM([CM({FACTORY_PARAMETERS:jM("global"),BROWSER_ARGUMENTS:pM("=",wM(jM("root"),t),EM([])),COMMON_ARGUMENTS:jM("exports"),AMD_ARGUMENTS:uM([TM("exports")]),FACTORY_BODY:r,UMD_ROOT:jM("this")})])}function OM(e){var t=jM("babelHelpers"),r=[];r.push(AM("var",[kM(t,EM([]))]));var a=SM(r);return NM(r,t,e),r.push(xM(t)),a}function NM(e,t,r){var a=function(e){return t?wM(t,jM(e)):jM("_"+e)},n={};return Tj.forEach(function(s){if(!r||r.includes(s)){var o=n[s]=a(s),i=Rj(s,a,t?null:"_"+s,[],t?function(e,t,r){r(function(e){return pM("=",o,e)}),e.body.push(xM(pM("=",o,jM(t))))}:null),d=i.nodes;e.push.apply(e,b(d))}}),n}function BM(e,t){void 0===t&&(t="global");var r={global:_M,module:IM,umd:DM,var:OM}[t];if(!r)throw new Error("Unsupported output type "+t);return bk(r(e)).code}var MM=p().m(GM),FM=p().m(WM),LM=p().m(VM),UM=p().m(HM),qM=p().m(zM);function GM(e){return p().w(function(t){for(;;)if(0===t.n)return t.a(2,{filepath:e,directories:[],pkg:null,isPackage:!1})},MM)}function WM(e,t,r){return p().w(function(e){for(;;)if(0===e.n)return e.a(2,{config:null,ignore:null})},FM)}function VM(e,t,r){return p().w(function(e){for(;;)if(0===e.n)return e.a(2,null)},LM)}function HM(e,t,r,a){return p().w(function(r){for(;;)switch(r.n){case 0:throw new Error("Cannot load "+e+" relative to "+t+" in a browser");case 1:return r.a(2)}},UM)}function zM(e){return p().w(function(e){for(;;)if(0===e.n)return e.a(2,null)},qM)}var KM=[];function XM(e,t){throw new Error("Cannot load plugin "+e+" relative to "+t+" in a browser")}function JM(e,t){throw new Error("Cannot load preset "+e+" relative to "+t+" in a browser")}function YM(e){return void 0===e&&(e="development"),z.env.BABEL_ENV||"production"}var $M=Symbol.for("gensync:v1:start"),QM=Symbol.for("gensync:v1:suspend"),ZM="GENSYNC_EXPECTED_SUSPEND",eF="GENSYNC_OPTIONS_ERROR",tF="GENSYNC_RACE_NONEMPTY",rF="GENSYNC_ERRBACK_NO_CALLBACK",aF=Object.assign(function(e){var t=e;return t="function"!=typeof e?function(e){var t=e.name,r=e.arity,a=e.sync,n=e.async,s=e.errback;if(nF("string","name",t,!0),nF("number","arity",r,!0),nF("function","sync",a),nF("function","async",n,!0),nF("function","errback",s,!0),n&&s)throw sF("Expected one of either opts.async or opts.errback, but got _both_.",eF);if("string"!=typeof t){var o;s&&s.name&&"errback"!==s.name&&(o=s.name),n&&n.name&&"async"!==n.name&&(o=n.name.replace(/Async$/,"")),a&&a.name&&"sync"!==a.name&&(o=a.name.replace(/Sync$/,"")),"string"==typeof o&&(t=o)}"number"!=typeof r&&(r=a.length);return oF({name:t,arity:r,sync:function(e){return a.apply(this,e)},async:function(e,t,r){n?n.apply(this,e).then(t,r):s?s.call.apply(s,[this].concat(b(e),[function(e,a){null==e?t(a):r(e)}])):t(a.apply(this,e))}})}(e):function(e){return uF(e.name,e.length,function(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return e.apply(this,r)})}(e),Object.assign(t,function(e){var t={sync:function(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return iF(e.apply(this,r))},async:function(){for(var t=this,r=arguments.length,a=new Array(r),n=0;n<r;n++)a[n]=arguments[n];return new Promise(function(r,n){dF(e.apply(t,a),r,n)})},errback:function(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];var n,s=r.pop();if("function"!=typeof s)throw sF("Asynchronous function called without callback",rF);try{n=e.apply(this,r)}catch(e){return void s(e)}dF(n,function(e){return s(void 0,e)},function(e){return s(e)})}};return t}(t))},{all:oF({name:"all",arity:1,sync:function(e){return Array.from(e[0]).map(function(e){return iF(e)})},async:function(e,t,r){var a=Array.from(e[0]);if(0!==a.length){var n=0,s=a.map(function(){});a.forEach(function(e,a){dF(e,function(e){s[a]=e,(n+=1)===s.length&&t(s)},r)})}else Promise.resolve().then(function(){return t([])})}}),race:oF({name:"race",arity:1,sync:function(e){var t=Array.from(e[0]);if(0===t.length)throw sF("Must race at least 1 item",tF);return iF(t[0])},async:function(e,t,r){var a=Array.from(e[0]);if(0===a.length)throw sF("Must race at least 1 item",tF);for(var n=0,s=a;n<s.length;n++){dF(s[n],t,r)}}})});function nF(e,t,r,a){if(!(typeof r===e||a&&void 0===r))throw sF(a?"Expected opts."+t+" to be either a "+e+", or undefined.":"Expected opts."+t+" to be a "+e+".",eF)}function sF(e,t){return Object.assign(new Error(e),{code:t})}function oF(e){var t=e.name,r=e.arity,a=e.sync,n=e.async;return uF(t,r,p().m(function e(){var t,r,s,o,i,d,c=arguments;return p().w(function(e){for(;;)switch(e.n){case 0:return e.n=1,$M;case 1:for(t=e.v,r=c.length,s=new Array(r),o=0;o<r;o++)s[o]=c[o];if(t){e.n=2;break}return i=a.call(this,s),e.a(2,i);case 2:try{n.call(this,s,function(e){d||(d={value:e},t())},function(e){d||(d={err:e},t())})}catch(e){d={err:e},t()}return e.n=3,QM;case 3:if(!d.hasOwnProperty("err")){e.n=4;break}throw d.err;case 4:return e.a(2,d.value)}},e,this)}))}function iF(e){for(var t;!(r=e.next(),t=r.value,r).done;){var r;cF(t,e)}return t}function dF(e,t,r){!function a(){try{for(var n,s,o=function(){cF(n,e);var t=!0,r=!1,s=e.next(function(){t?r=!0:a()});if(t=!1,function(e,t){var r=e.value,a=e.done;if(!a&&r===QM)return;lF(t,sF(a?"Unexpected generator completion. If you get this, it is probably a gensync bug.":"Expected GENSYNC_SUSPEND, got "+JSON.stringify(r)+". If you get this, it is probably a gensync bug.",ZM))}(s,e),!r)return{v:void 0}};!(i=e.next(),n=i.value,i).done;){var i;if(s=o())return s.v}return t(n)}catch(e){return r(e)}}()}function cF(e,t){e!==$M&&lF(t,sF("Got unexpected yielded value in gensync generator: "+JSON.stringify(e)+". Did you perhaps mean to use 'yield*' instead of 'yield'?","GENSYNC_EXPECTED_START"))}function lF(e,t){throw e.throw&&e.throw(t),t}function uF(e,t,r){if("string"==typeof e){var a=Object.getOwnPropertyDescriptor(r,"name");a&&!a.configurable||Object.defineProperty(r,"name",Object.assign(a||{},{configurable:!0,value:e}))}if("number"==typeof t){var n=Object.getOwnPropertyDescriptor(r,"length");n&&!n.configurable||Object.defineProperty(r,"length",Object.assign(n||{},{configurable:!0,value:t}))}return r}var pF=aF(p().m(function e(t){return p().w(function(e){for(;;)switch(e.n){case 0:return e.d(g(t),1);case 1:return e.a(2,e.v)}},e)})),fF=aF({sync:function(){return!1},errback:function(e){return e(null,!0)}});function gF(e,t){return aF({sync:function(){for(var r=arguments.length,a=new Array(r),n=0;n<r;n++)a[n]=arguments[n];var s=e.apply(this,a);if(RF(s))throw new Error(t);return s},async:function(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return Promise.resolve(e.apply(this,r))}})}var mF,yF=aF({sync:function(e){return e("sync")},async:(mF=s(p().m(function e(t){return p().w(function(e){for(;;)if(0===e.n)return e.a(2,t("async"))},e)})),function(e){return mF.apply(this,arguments)})});function hF(e,t){var r=aF(e);return yF(function(e){var a=r[e];return t(a)})}var bF,vF=aF({name:"onFirstPause",arity:2,sync:function(e){return pF.sync(e)},errback:function(e,t,r){var a=!1;pF.errback(e,function(e,t){a=!0,r(e,t)}),a||t()}}),xF=aF({sync:function(e){return e},async:(bF=s(p().m(function e(t){return p().w(function(e){for(;;)if(0===e.n)return e.a(2,t)},e)})),function(e){return bF.apply(this,arguments)})});function RF(e){return!(!e||"object"!=typeof e&&"function"!=typeof e||!e.then||"function"!=typeof e.then)}function jF(e,t){for(var r=0,a=Object.keys(t);r<a.length;r++){var n=a[r];if("parserOpts"!==n&&"generatorOpts"!==n&&"assumptions"!==n||!t[n]){var s=t[n];void 0!==s&&(e[n]=s)}else{var o=t[n];wF(e[n]||(e[n]={}),o)}}}function wF(e,t){for(var r=0,a=Object.keys(t);r<a.length;r++){var n=a[r],s=t[n];void 0!==s&&(e[n]=s)}}function EF(e){return!!e&&"function"==typeof e.next&&"function"==typeof e[Symbol.iterator]}function SF(e){return Object.freeze(e)}function TF(e){for(var t=new Set,r=[e];r.length>0;)for(var a,n=i(r.pop());!(a=n()).done;){var s=a.value;Array.isArray(s)?r.push(s):t.add(s)}return t}var PF=o(function(e,t,r,a){void 0===a&&(a=SF([])),this.key=void 0,this.manipulateOptions=void 0,this.post=void 0,this.pre=void 0,this.visitor=void 0,this.parserOverride=void 0,this.generatorOverride=void 0,this.options=void 0,this.externalDependencies=void 0,this.key=e.name||r,this.manipulateOptions=e.manipulateOptions,this.post=e.post,this.pre=e.pre,this.visitor=e.visitor||{},this.parserOverride=e.parserOverride,this.generatorOverride=e.generatorOverride,this.options=t,this.externalDependencies=a});function AF(e){var t,r,a=!1;return p().m(function n(){var s,o,i,d,c,l;return p().w(function(n){for(;;)switch(n.p=n.n){case 0:if(t){n.n=12;break}if(!r){n.n=2;break}return a=!0,n.d(g(xF(r)),1);case 1:return n.a(2,n.v);case 2:return n.d(g(fF()),3);case 3:if(n.v){n.n=8;break}return n.p=4,n.d(g(e()),5);case 5:i=n.v,t={ok:!0,value:i},n.n=7;break;case 6:n.p=6,d=n.v,t={ok:!1,value:d};case 7:n.n=12;break;case 8:return r=new Promise(function(e,t){s=e,o=t}),n.p=9,n.d(g(e()),10);case 10:c=n.v,t={ok:!0,value:c},r=null,a&&s(t.value),n.n=12;break;case 11:n.p=11,l=n.v,t={ok:!1,value:l},r=null,a&&o(l);case 12:if(!t.ok){n.n=13;break}return n.a(2,t.value);case 13:throw t.value;case 14:return n.a(2)}},n,null,[[9,11],[4,6]])})}var kF=p().m(DF),CF=p().m(LF),_F=p().m(UF),IF=function(e){return aF(e).sync};function DF(){return p().w(function(e){for(;;)if(0===e.n)return e.a(2,!0)},kF)}function OF(e){return FF(WeakMap,e)}function NF(e){return IF(OF(e))}function BF(e){return FF(Map,e)}function MF(e){return IF(BF(e))}function FF(e,t){var r=new e,a=new e,n=new e;return p().m(function e(s,o){var i,d,c,l,u,f,m;return p().w(function(e){for(;;)switch(e.n){case 0:return e.d(g(fF()),1);case 1:return i=e.v,d=i?a:r,e.d(g(UF(i,d,n,s,o)),2);case 2:if(!(c=e.v).valid){e.n=3;break}return e.a(2,c.value);case 3:if(l=new WF(o),!EF(u=t(s,l))){e.n=5;break}return e.d(g(vF(u,function(){f=qF(l,n,s)})),4);case 4:m=e.v,e.n=6;break;case 5:m=u;case 6:return GF(d,l,s,m),f&&(n.delete(s),f.release(m)),e.a(2,m)}},e)})}function LF(e,t,r){var a,n,s,o,d,c;return p().w(function(l){for(;;)switch(l.n){case 0:if(!(a=e.get(t))){l.n=4;break}n=i(a);case 1:if((s=n()).done){l.n=4;break}return o=s.value,d=o.value,c=o.valid,l.d(g(c(r)),2);case 2:if(!l.v){l.n=3;break}return l.a(2,{valid:!0,value:d});case 3:l.n=1;break;case 4:return l.a(2,{valid:!1,value:null})}},CF)}function UF(e,t,r,a,n){var s,o,i;return p().w(function(d){for(;;)switch(d.n){case 0:return d.d(g(LF(t,a,n)),1);case 1:if(!(s=d.v).valid){d.n=2;break}return d.a(2,s);case 2:if(!e){d.n=5;break}return d.d(g(LF(r,a,n)),3);case 3:if(!(o=d.v).valid){d.n=5;break}return d.d(g(xF(o.value.promise)),4);case 4:return i=d.v,d.a(2,{valid:!0,value:i});case 5:return d.a(2,{valid:!1,value:null})}},_F)}function qF(e,t,r){var a=new HF;return GF(t,e,r,a),a}function GF(e,t,r,a){t.configured()||t.forever();var n=e.get(r);switch(t.deactivate(),t.mode()){case"forever":n=[{value:a,valid:DF}],e.set(r,n);break;case"invalidate":n=[{value:a,valid:t.validator()}],e.set(r,n);break;case"valid":n?n.push({value:a,valid:t.validator()}):(n=[{value:a,valid:t.validator()}],e.set(r,n))}}var WF=function(){function e(e){this._active=!0,this._never=!1,this._forever=!1,this._invalidate=!1,this._configured=!1,this._pairs=[],this._data=void 0,this._data=e}var t=e.prototype;return t.simple=function(){return function(e){function t(t){if("boolean"!=typeof t)return e.using(function(){return VF(t())});t?e.forever():e.never()}return t.forever=function(){return e.forever()},t.never=function(){return e.never()},t.using=function(t){return e.using(function(){return VF(t())})},t.invalidate=function(t){return e.invalidate(function(){return VF(t())})},t}(this)},t.mode=function(){return this._never?"never":this._forever?"forever":this._invalidate?"invalidate":"valid"},t.forever=function(){if(!this._active)throw new Error("Cannot change caching after evaluation has completed.");if(this._never)throw new Error("Caching has already been configured with .never()");this._forever=!0,this._configured=!0},t.never=function(){if(!this._active)throw new Error("Cannot change caching after evaluation has completed.");if(this._forever)throw new Error("Caching has already been configured with .forever()");this._never=!0,this._configured=!0},t.using=function(e){var t=this;if(!this._active)throw new Error("Cannot change caching after evaluation has completed.");if(this._never||this._forever)throw new Error("Caching has already been configured with .never or .forever()");this._configured=!0;var r=e(this._data),a=gF(e,"You appear to be using an async cache handler, but Babel has been called synchronously");return RF(r)?r.then(function(e){return t._pairs.push([e,a]),e}):(this._pairs.push([r,a]),r)},t.invalidate=function(e){return this._invalidate=!0,this.using(e)},t.validator=function(){var e=this._pairs;return p().m(function t(r){var a,n,s,o,d,c,l;return p().w(function(t){for(;;)switch(t.n){case 0:a=i(e);case 1:if((n=a()).done){t.n=4;break}return s=y(n.value,2),o=s[0],d=s[1],c=o,t.d(g(d(r)),2);case 2:if(l=t.v,c===l){t.n=3;break}return t.a(2,!1);case 3:t.n=1;break;case 4:return t.a(2,!0)}},t)})},t.deactivate=function(){this._active=!1},t.configured=function(){return this._configured},o(e)}();function VF(e){if(RF(e))throw new Error("You appear to be using an async cache handler, which your current version of Babel does not support. We may add support for this in the future, but if you're on the most recent version of @babel/core and still seeing this error, then you'll need to synchronously handle your caching logic.");if(null!=e&&"string"!=typeof e&&"boolean"!=typeof e&&"number"!=typeof e)throw new Error("Cache keys must be either string, boolean, number, null, or undefined.");return e}var HF=function(){function e(){var e=this;this.released=!1,this.promise=void 0,this._resolve=void 0,this.promise=new Promise(function(t){e._resolve=t})}return e.prototype.release=function(e){this.released=!0,this._resolve(e)},o(e)}(),zF={},KF={};KF.browsers={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"};var XF={};XF.browserVersions={0:"117",1:"118",2:"119",3:"120",4:"121",5:"122",6:"123",7:"124",8:"125",9:"20",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"80",I:"144",J:"4",K:"6",L:"13",M:"14",N:"16",O:"17",P:"18",Q:"79",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"107",r:"108",s:"109",t:"110",u:"111",v:"112",w:"113",x:"114",y:"115",z:"116",AB:"21",BB:"22",CB:"23",DB:"24",EB:"25",FB:"26",GB:"27",HB:"28",IB:"29",JB:"126",KB:"127",LB:"128",MB:"129",NB:"130",OB:"131",PB:"132",QB:"133",RB:"134",SB:"135",TB:"136",UB:"137",VB:"138",WB:"139",XB:"140",YB:"141",ZB:"142",aB:"143",bB:"5",cB:"19",dB:"30",eB:"31",fB:"32",gB:"33",hB:"34",iB:"35",jB:"36",kB:"37",lB:"38",mB:"39",nB:"40",oB:"41",pB:"42",qB:"43",rB:"44",sB:"45",tB:"46",uB:"47",vB:"48",wB:"49",xB:"50",yB:"51",zB:"52","0B":"53","1B":"54","2B":"55","3B":"56","4B":"57","5B":"58","6B":"60","7B":"62","8B":"63","9B":"64",AC:"65",BC:"66",CC:"67",DC:"68",EC:"69",FC:"70",GC:"71",HC:"72",IC:"73",JC:"74",KC:"75",LC:"76",MC:"77",NC:"78",OC:"147",PC:"11.1",QC:"12.1",RC:"15.5",SC:"16.0",TC:"17.0",UC:"18.0",VC:"3",WC:"59",XC:"61",YC:"82",ZC:"145",aC:"146",bC:"3.2",cC:"10.1",dC:"15.2-15.3",eC:"15.4",fC:"16.1",gC:"16.2",hC:"16.3",iC:"16.4",jC:"16.5",kC:"17.1",lC:"17.2",mC:"17.3",nC:"17.4",oC:"17.5",pC:"18.1",qC:"18.2",rC:"18.3",sC:"18.4",tC:"26.0",uC:"26.1",vC:"26.2",wC:"26.3",xC:"11.5",yC:"4.2-4.3",zC:"5.5","0C":"2","1C":"148","2C":"149","3C":"150","4C":"3.5","5C":"3.6","6C":"3.1","7C":"5.1","8C":"6.1","9C":"7.1",AD:"9.1",BD:"13.1",CD:"14.1",DD:"15.1",ED:"15.6",FD:"16.6",GD:"17.6",HD:"18.5-18.6",ID:"TP",JD:"9.5-9.6",KD:"10.0-10.1",LD:"10.5",MD:"10.6",ND:"11.6",OD:"4.0-4.1",PD:"5.0-5.1",QD:"6.0-6.1",RD:"7.0-7.1",SD:"8.1-8.4",TD:"9.0-9.2",UD:"9.3",VD:"10.0-10.2",WD:"10.3",XD:"11.0-11.2",YD:"11.3-11.4",ZD:"12.0-12.1",aD:"12.2-12.5",bD:"13.0-13.1",cD:"13.2",dD:"13.3",eD:"13.4-13.7",fD:"14.0-14.4",gD:"14.5-14.8",hD:"15.0-15.1",iD:"15.6-15.8",jD:"16.6-16.7",kD:"17.6-17.7",lD:"18.5-18.7",mD:"all",nD:"2.1",oD:"2.2",pD:"2.3",qD:"4.1",rD:"4.4",sD:"4.4.3-4.4.4",tD:"5.0-5.4",uD:"6.2-6.4",vD:"7.2-7.4",wD:"8.2",xD:"9.2",yD:"11.1-11.2",zD:"12.0","0D":"13.0","1D":"14.0","2D":"15.0","3D":"19.0","4D":"14.9","5D":"13.52","6D":"2.5","7D":"3.0-3.1"};var JF=KF.browsers,YF=XF.browserVersions,$F={A:{A:{K:0,D:0,E:.0197585,F:.0592756,A:0,B:.355654,zC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","zC","K","D","E","F","A","B","","",""],E:"IE",F:{zC:962323200,K:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968e3}},B:{A:{0:0,1:0,2:0,3:.02264,4:0,5:.009056,6:0,7:0,8:0,C:0,L:0,M:0,G:0,N:0,O:0,P:0,Q:0,H:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:.009056,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0,s:.031696,t:0,u:0,v:0,w:0,x:.004528,y:0,z:0,JB:.004528,KB:.004528,LB:0,MB:0,NB:.004528,OB:.018112,PB:.004528,QB:.009056,RB:.009056,SB:.013584,TB:.009056,UB:.013584,VB:.02264,WB:.018112,XB:.036224,YB:.06792,ZB:1.10936,aB:2.83453,I:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","L","M","G","N","O","P","Q","H","R","S","T","U","V","W","X","Y","Z","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","0","1","2","3","4","5","6","7","8","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","I","","",""],E:"Edge",F:{0:1694649600,1:1697155200,2:1698969600,3:1701993600,4:1706227200,5:1708732800,6:1711152e3,7:1713398400,8:1715990400,C:1438128e3,L:1447286400,M:1470096e3,G:1491868800,N:1508198400,O:1525046400,P:1542067200,Q:1579046400,H:1581033600,R:1586736e3,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:161136e4,Y:1614816e3,Z:1618358400,a:1622073600,b:1626912e3,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,q:1666915200,r:1670198400,s:1673481600,t:1675900800,u:1678665600,v:1680825600,w:1683158400,x:1685664e3,y:1689897600,z:1692576e3,JB:1718841600,KB:1721865600,LB:1724371200,MB:1726704e3,NB:1729123200,OB:1731542400,PB:1737417600,QB:1740614400,RB:1741219200,SB:1743984e3,TB:1746316800,UB:1748476800,VB:1750896e3,WB:1754611200,XB:1756944e3,YB:1759363200,ZB:1761868800,aB:1764806400,I:1768780800},D:{C:"ms",L:"ms",M:"ms",G:"ms",N:"ms",O:"ms",P:"ms"}},C:{A:{0:0,1:.117728,2:0,3:0,4:0,5:0,6:0,7:0,8:0,9:0,"0C":0,VC:0,J:0,bB:.027168,K:0,D:0,E:0,F:0,A:0,B:.049808,C:0,L:0,M:0,G:0,N:0,O:0,P:0,cB:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:.013584,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:.009056,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,WC:0,"6B":0,XC:0,"7B":0,"8B":0,"9B":0,AC:0,BC:0,CC:0,DC:0,EC:0,FC:0,GC:0,HC:0,IC:0,JC:0,KC:0,LC:0,MC:0,NC:.004528,Q:0,H:0,R:0,YC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:0,y:.144896,z:0,JB:0,KB:0,LB:.009056,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:.004528,TB:.009056,UB:.004528,VB:.004528,WB:.004528,XB:.095088,YB:.004528,ZB:.009056,aB:.013584,I:.027168,ZC:.529776,aC:.774288,OC:0,"1C":0,"2C":0,"3C":0,"4C":0,"5C":0},B:"moz",C:["0C","VC","4C","5C","J","bB","K","D","E","F","A","B","C","L","M","G","N","O","P","cB","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","WC","6B","XC","7B","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","NC","Q","H","R","YC","S","T","U","V","W","X","Y","Z","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","0","1","2","3","4","5","6","7","8","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","I","ZC","aC","OC","1C","2C","3C"],E:"Firefox",F:{0:1693267200,1:1695686400,2:1698105600,3:1700524800,4:1702944e3,5:1705968e3,6:1708387200,7:1710806400,8:1713225600,9:1361232e3,"0C":1161648e3,VC:1213660800,"4C":124632e4,"5C":1264032e3,J:1300752e3,bB:1308614400,K:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968e3,C:1331596800,L:1335225600,M:1338854400,G:1342483200,N:1346112e3,O:1349740800,P:1353628800,cB:1357603200,AB:1364860800,BB:1368489600,CB:1372118400,DB:1375747200,EB:1379376e3,FB:1386633600,GB:1391472e3,HB:1395100800,IB:1398729600,dB:1402358400,eB:1405987200,fB:1409616e3,gB:1413244800,hB:1417392e3,iB:1421107200,jB:1424736e3,kB:1428278400,lB:1431475200,mB:1435881600,nB:1439251200,oB:144288e4,pB:1446508800,qB:1450137600,rB:1453852800,sB:1457395200,tB:1461628800,uB:1465257600,vB:1470096e3,wB:1474329600,xB:1479168e3,yB:1485216e3,zB:1488844800,"0B":149256e4,"1B":1497312e3,"2B":1502150400,"3B":1506556800,"4B":1510617600,"5B":1516665600,WC:1520985600,"6B":1525824e3,XC:1529971200,"7B":1536105600,"8B":1540252800,"9B":1544486400,AC:154872e4,BC:1552953600,CC:1558396800,DC:1562630400,EC:1567468800,FC:1571788800,GC:1575331200,HC:1578355200,IC:1581379200,JC:1583798400,KC:1586304e3,LC:1588636800,MC:1591056e3,NC:1593475200,Q:1595894400,H:1598313600,R:1600732800,YC:1603152e3,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392e3,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536e3,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632e3,p:1666051200,q:1668470400,r:1670889600,s:1673913600,t:1676332800,u:1678752e3,v:1681171200,w:1683590400,x:1686009600,y:1688428800,z:1690848e3,JB:1715644800,KB:1718064e3,LB:1720483200,MB:1722902400,NB:1725321600,OB:1727740800,PB:173016e4,QB:1732579200,RB:1736208e3,SB:1738627200,TB:1741046400,UB:1743465600,VB:1745884800,WB:1748304e3,XB:1750723200,YB:1753142400,ZB:1755561600,aB:1757980800,I:17604e5,ZC:1762819200,aC:1765238400,OC:1768262400,"1C":null,"2C":null,"3C":null}},D:{A:{0:.149424,1:.063392,2:.02264,3:.27168,4:.054336,5:.163008,6:.095088,7:.131312,8:.58864,9:0,J:0,bB:0,K:0,D:0,E:0,F:0,A:0,B:0,C:0,L:0,M:0,G:0,N:0,O:0,P:0,cB:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:.009056,nB:.009056,oB:.009056,pB:.009056,qB:.009056,rB:.009056,sB:.009056,tB:.009056,uB:.009056,vB:.013584,wB:.013584,xB:.009056,yB:.009056,zB:.013584,"0B":.009056,"1B":.009056,"2B":.009056,"3B":.009056,"4B":.009056,"5B":.009056,WC:.009056,"6B":.009056,XC:0,"7B":0,"8B":0,"9B":0,AC:0,BC:.018112,CC:0,DC:0,EC:.036224,FC:0,GC:0,HC:0,IC:0,JC:0,KC:0,LC:0,MC:0,NC:.004528,Q:.06792,H:.009056,R:.009056,S:.040752,T:0,U:.009056,V:.009056,W:.027168,X:.004528,Y:0,Z:0,a:.013584,b:.009056,c:.009056,d:0,e:0,f:0,g:.009056,h:.04528,i:.018112,j:0,k:.013584,l:.009056,m:.108672,n:.054336,o:.24904,p:.122256,q:.190176,r:.099616,s:.719952,t:.099616,u:.144896,v:1.63008,w:.009056,x:.1132,y:.031696,z:.149424,JB:.733536,KB:.126784,LB:.076976,MB:.06792,NB:.172064,OB:.366768,PB:.086032,QB:.20376,RB:.144896,SB:.06792,TB:.058864,UB:.081504,VB:.27168,WB:3.59976,XB:.27168,YB:.602224,ZB:6.09922,aB:8.50358,I:.036224,ZC:.009056,aC:0,OC:0},B:"webkit",C:["","","","","","","","","J","bB","K","D","E","F","A","B","C","L","M","G","N","O","P","cB","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","WC","6B","XC","7B","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","NC","Q","H","R","S","T","U","V","W","X","Y","Z","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","0","1","2","3","4","5","6","7","8","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","I","ZC","aC","OC"],E:"Chrome",F:{0:1694476800,1:1696896e3,2:1698710400,3:1701993600,4:1705968e3,5:1708387200,6:1710806400,7:1713225600,8:1715644800,9:133704e4,J:1264377600,bB:1274745600,K:1283385600,D:1287619200,E:1291248e3,F:1296777600,A:1299542400,B:1303862400,C:1307404800,L:1312243200,M:1316131200,G:1316131200,N:1319500800,O:1323734400,P:1328659200,cB:1332892800,AB:1340668800,BB:1343692800,CB:1348531200,DB:1352246400,EB:1357862400,FB:1361404800,GB:1364428800,HB:1369094400,IB:1374105600,dB:1376956800,eB:1384214400,fB:1389657600,gB:1392940800,hB:1397001600,iB:1400544e3,jB:1405468800,kB:1409011200,lB:141264e4,mB:1416268800,nB:1421798400,oB:1425513600,pB:1429401600,qB:143208e4,rB:1437523200,sB:1441152e3,tB:1444780800,uB:1449014400,vB:1453248e3,wB:1456963200,xB:1460592e3,yB:1464134400,zB:1469059200,"0B":1472601600,"1B":1476230400,"2B":1480550400,"3B":1485302400,"4B":1489017600,"5B":149256e4,WC:1496707200,"6B":1500940800,XC:1504569600,"7B":1508198400,"8B":1512518400,"9B":1516752e3,AC:1520294400,BC:1523923200,CC:1527552e3,DC:1532390400,EC:1536019200,FC:1539648e3,GC:1543968e3,HC:154872e4,IC:1552348800,JC:1555977600,KC:1559606400,LC:1564444800,MC:1568073600,NC:1571702400,Q:1575936e3,H:1580860800,R:1586304e3,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272e3,a:1621987200,b:1626739200,c:1630368e3,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512e3,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,q:1666656e3,r:166968e4,s:1673308800,t:1675728e3,u:1678147200,v:1680566400,w:1682985600,x:1685404800,y:1689724800,z:1692057600,JB:1718064e3,KB:1721174400,LB:1724112e3,MB:1726531200,NB:1728950400,OB:1731369600,PB:1736812800,QB:1738627200,RB:1741046400,SB:1743465600,TB:1745884800,UB:1748304e3,VB:1750723200,WB:1754352e3,XB:1756771200,YB:1759190400,ZB:1761609600,aB:1764633600,I:1768262400,ZC:null,aC:null,OC:null}},E:{A:{J:0,bB:0,K:0,D:0,E:0,F:0,A:0,B:0,C:0,L:0,M:.009056,G:0,"6C":0,bC:0,"7C":0,"8C":0,"9C":0,AD:0,cC:0,PC:.004528,QC:0,BD:.018112,CD:.02264,DD:0,dC:0,eC:.004528,RC:.009056,ED:.081504,SC:.004528,fC:.009056,gC:.009056,hC:.018112,iC:.009056,jC:.013584,FD:.13584,TC:.004528,kC:.09056,lC:.009056,mC:.013584,nC:.02264,oC:.040752,GD:.149424,UC:.009056,pC:.02264,qC:.013584,rC:.049808,sC:.027168,HD:.104144,tC:.063392,uC:.36224,vC:.09056,wC:0,ID:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","6C","bC","J","bB","7C","K","8C","D","9C","E","F","AD","A","cC","B","PC","C","QC","L","BD","M","CD","G","DD","dC","eC","RC","ED","SC","fC","gC","hC","iC","jC","FD","TC","kC","lC","mC","nC","oC","GD","UC","pC","qC","rC","sC","HD","tC","uC","vC","wC","ID",""],E:"Safari",F:{"6C":1205798400,bC:1226534400,J:1244419200,bB:1275868800,"7C":131112e4,K:1343174400,"8C":13824e5,D:13824e5,"9C":1410998400,E:1413417600,F:1443657600,AD:1458518400,A:1474329600,cC:1490572800,B:1505779200,PC:1522281600,C:1537142400,QC:1553472e3,L:1568851200,BD:1585008e3,M:1600214400,CD:1619395200,G:1632096e3,DD:1635292800,dC:1639353600,eC:1647216e3,RC:1652745600,ED:1658275200,SC:1662940800,fC:1666569600,gC:1670889600,hC:1674432e3,iC:1679875200,jC:1684368e3,FD:1690156800,TC:1695686400,kC:1698192e3,lC:1702252800,mC:1705881600,nC:1709596800,oC:1715558400,GD:1722211200,UC:1726444800,pC:1730073600,qC:1733875200,rC:1737936e3,sC:1743379200,HD:1747008e3,tC:1757894400,uC:1762128e3,vC:1762041600,wC:null,ID:null}},F:{A:{0:0,1:0,2:0,3:0,4:0,5:.004528,6:.009056,7:.561472,8:.217344,9:0,F:0,B:0,C:0,G:0,N:0,O:0,P:0,cB:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,wB:0,xB:0,yB:0,zB:0,"0B":0,"1B":0,"2B":0,"3B":0,"4B":0,"5B":0,"6B":0,"7B":0,"8B":0,"9B":0,AC:0,BC:0,CC:0,DC:0,EC:0,FC:0,GC:0,HC:0,IC:0,JC:0,KC:0,LC:0,MC:0,NC:0,Q:0,H:0,R:0,YC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:.009056,c:.081504,d:0,e:.027168,f:0,g:0,h:0,i:0,j:0,k:0,l:0,m:0,n:0,o:0,p:0,q:0,r:0,s:0,t:0,u:0,v:0,w:0,x:0,y:0,z:0,JD:0,KD:0,LD:0,MD:0,PC:0,xC:0,ND:0,QC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","F","JD","KD","LD","MD","B","PC","xC","ND","C","QC","G","N","O","P","cB","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","wB","xB","yB","zB","0B","1B","2B","3B","4B","5B","6B","7B","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","NC","Q","H","R","YC","S","T","U","V","W","X","Y","Z","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","0","1","2","3","4","5","6","7","8","","",""],E:"Opera",F:{0:1739404800,1:1744675200,2:1747094400,3:1751414400,4:1756339200,5:1757548800,6:1761609600,7:1762992e3,8:1764806400,9:1393891200,F:1150761600,JD:1223424e3,KD:1251763200,LD:1267488e3,MD:1277942400,B:1292457600,PC:1302566400,xC:1309219200,ND:1323129600,C:1323129600,QC:1352073600,G:1372723200,N:1377561600,O:1381104e3,P:1386288e3,cB:1390867200,AB:1399334400,BB:1401753600,CB:1405987200,DB:1409616e3,EB:1413331200,FB:1417132800,GB:1422316800,HB:1425945600,IB:1430179200,dB:1433808e3,eB:1438646400,fB:1442448e3,gB:1445904e3,hB:1449100800,iB:1454371200,jB:1457308800,kB:146232e4,lB:1465344e3,mB:1470096e3,nB:1474329600,oB:1477267200,pB:1481587200,qB:1486425600,rB:1490054400,sB:1494374400,tB:1498003200,uB:1502236800,vB:1506470400,wB:1510099200,xB:1515024e3,yB:1517961600,zB:1521676800,"0B":1525910400,"1B":1530144e3,"2B":1534982400,"3B":1537833600,"4B":1543363200,"5B":1548201600,"6B":1554768e3,"7B":1561593600,"8B":1566259200,"9B":1570406400,AC:1573689600,BC:1578441600,CC:1583971200,DC:1587513600,EC:1592956800,FC:1595894400,GC:1600128e3,HC:1603238400,IC:161352e4,JC:1612224e3,KC:1616544e3,LC:1619568e3,MC:1623715200,NC:1627948800,Q:1631577600,H:1633392e3,R:1635984e3,YC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152e3,Z:1660780800,a:1663113600,b:1668816e3,c:1668643200,d:1671062400,e:1675209600,f:1677024e3,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:169992e4,o:169992e4,p:1702944e3,q:1707264e3,r:1710115200,s:1711497600,t:1716336e3,u:1719273600,v:1721088e3,w:1724284800,x:1727222400,y:1732665600,z:1736294400},D:{F:"o",B:"o",C:"o",JD:"o",KD:"o",LD:"o",MD:"o",PC:"o",xC:"o",ND:"o",QC:"o"}},G:{A:{E:0,bC:0,OD:0,yC:.00244598,PD:0,QD:.00489197,RD:.00366898,SD:0,TD:0,UD:.00978394,VD:.00122299,WD:.0171219,XD:.210355,YD:.00611496,ZD:.00489197,aD:.0550346,bD:.00122299,cD:.00856094,dD:.00244598,eD:.00856094,fD:.0171219,gD:.0183449,hD:.0195679,dC:.0146759,eC:.0158989,RC:.0171219,iD:.265389,SC:.0305748,fC:.0587036,gC:.0305748,hC:.0550346,iC:.0134529,jC:.0232368,jD:.344884,TC:.0195679,kC:.0317978,lC:.0232368,mC:.0354668,nC:.0599266,oC:.117407,kD:.271504,UC:.0611496,pC:.127191,qC:.0672646,rC:.218916,sC:.112515,lD:8.07909,tC:.157766,uC:1.31227,vC:.24949,wC:.0110069},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","bC","OD","yC","PD","QD","RD","E","SD","TD","UD","VD","WD","XD","YD","ZD","aD","bD","cD","dD","eD","fD","gD","hD","dC","eC","RC","iD","SC","fC","gC","hC","iC","jC","jD","TC","kC","lC","mC","nC","oC","kD","UC","pC","qC","rC","sC","lD","tC","uC","vC","wC","",""],E:"Safari on iOS",F:{bC:1270252800,OD:1283904e3,yC:1299628800,PD:1331078400,QD:1359331200,RD:1394409600,E:1410912e3,SD:1413763200,TD:1442361600,UD:1458518400,VD:1473724800,WD:1490572800,XD:1505779200,YD:1522281600,ZD:1537142400,aD:1553472e3,bD:1568851200,cD:1572220800,dD:1580169600,eD:1585008e3,fD:1600214400,gD:1619395200,hD:1632096e3,dC:1639353600,eC:1647216e3,RC:1652659200,iD:1658275200,SC:1662940800,fC:1666569600,gC:1670889600,hC:1674432e3,iC:1679875200,jC:1684368e3,jD:1690156800,TC:1694995200,kC:1698192e3,lC:1702252800,mC:1705881600,nC:1709596800,oC:1715558400,kD:1722211200,UC:1726444800,pC:1730073600,qC:1733875200,rC:1737936e3,sC:1743379200,lD:1747008e3,tC:1757894400,uC:1762128e3,vC:1765497600,wC:null}},H:{A:{mD:.04},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mD","","",""],E:"Opera Mini",F:{mD:1426464e3}},I:{A:{VC:0,J:0,I:.551788,nD:0,oD:0,pD:0,qD:0,yC:110534e-9,rD:0,sD:442138e-9},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","nD","oD","pD","VC","J","qD","yC","rD","sD","I","","",""],E:"Android Browser",F:{nD:1256515200,oD:1274313600,pD:1291593600,VC:1298332800,J:1318896e3,qD:1341792e3,yC:1374624e3,rD:1386547200,sD:1401667200,I:1768348800}},J:{A:{D:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","A","","",""],E:"Blackberry Browser",F:{D:1325376e3,A:1359504e3}},K:{A:{A:0,B:0,C:0,H:.830048,PC:0,xC:0,QC:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","PC","xC","C","QC","H","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752e3,PC:1314835200,xC:1318291200,C:1330300800,QC:1349740800,H:1709769600},D:{H:"webkit"}},L:{A:{I:44.1214},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","","",""],E:"Chrome for Android",F:{I:1768348800}},M:{A:{OC:.306432},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","OC","","",""],E:"Firefox for Android",F:{OC:1768262400}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456e3}},O:{A:{RC:.497952},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","RC","","",""],E:"UC Browser for Android",F:{RC:1710115200},D:{RC:"webkit"}},P:{A:{9:0,J:0,AB:.0107912,BB:.0107912,CB:.0215823,DB:.0215823,EB:.0215823,FB:.0431646,GB:.0431646,HB:.129494,IB:1.62946,tD:0,uD:0,vD:0,wD:0,xD:0,cC:0,yD:0,zD:0,"0D":0,"1D":0,"2D":0,SC:0,TC:0,UC:0,"3D":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","J","tD","uD","vD","wD","xD","cC","yD","zD","0D","1D","2D","SC","TC","UC","3D","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","","",""],E:"Samsung Internet",F:{9:1677369600,J:1461024e3,tD:1481846400,uD:1509408e3,vD:1528329600,wD:1546128e3,xD:1554163200,cC:1567900800,yD:1582588800,zD:1593475200,"0D":1605657600,"1D":1618531200,"2D":1629072e3,SC:1640736e3,TC:1651708800,UC:1659657600,"3D":1667260800,AB:1684454400,BB:1689292800,CB:1697587200,DB:1711497600,EB:1715126400,FB:1717718400,GB:1725667200,HB:1746057600,IB:1761264e3}},Q:{A:{"4D":.153216},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","4D","","",""],E:"QQ Browser",F:{"4D":1710288e3}},R:{A:{"5D":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","5D","","",""],E:"Baidu Browser",F:{"5D":1710201600}},S:{A:{"6D":.016416,"7D":0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","6D","7D","","",""],E:"KaiOS Browser",F:{"6D":1527811200,"7D":1631664e3}}};function QF(e){return Object.keys(e).reduce(function(t,r){return t[YF[r]]=e[r],t},{})}zF.agents=Object.keys($F).reduce(function(e,t){var r=$F[t];return e[JF[t]]=Object.keys(r).reduce(function(e,t){return"A"===t?e.usage_global=QF(r[t]):"C"===t?e.versions=r[t].reduce(function(e,t){return""===t?e.push(null):e.push(YF[t]),e},[]):"D"===t?e.prefix_exceptions=QF(r[t]):"E"===t?e.browser=r[t]:"F"===t?e.release_date=Object.keys(r[t]).reduce(function(e,a){return e[YF[a]]=r[t][a],e},{}):e.prefix=r[t],e},{}),e},{});var ZF={"v0.8":{start:"2012-06-25",end:"2014-07-31"},"v0.10":{start:"2013-03-11",end:"2016-10-31"},"v0.12":{start:"2015-02-06",end:"2016-12-31"},v4:{start:"2015-09-08",lts:"2015-10-12",maintenance:"2017-04-01",end:"2018-04-30",codename:"Argon"},v5:{start:"2015-10-29",maintenance:"2016-04-30",end:"2016-06-30"},v6:{start:"2016-04-26",lts:"2016-10-18",maintenance:"2018-04-30",end:"2019-04-30",codename:"Boron"},v7:{start:"2016-10-25",maintenance:"2017-04-30",end:"2017-06-30"},v8:{start:"2017-05-30",lts:"2017-10-31",maintenance:"2019-01-01",end:"2019-12-31",codename:"Carbon"},v9:{start:"2017-10-01",maintenance:"2018-04-01",end:"2018-06-30"},v10:{start:"2018-04-24",lts:"2018-10-30",maintenance:"2020-05-19",end:"2021-04-30",codename:"Dubnium"},v11:{start:"2018-10-23",maintenance:"2019-04-22",end:"2019-06-01"},v12:{start:"2019-04-23",lts:"2019-10-21",maintenance:"2020-11-30",end:"2022-04-30",codename:"Erbium"},v13:{start:"2019-10-22",maintenance:"2020-04-01",end:"2020-06-01"},v14:{start:"2020-04-21",lts:"2020-10-27",maintenance:"2021-10-19",end:"2023-04-30",codename:"Fermium"},v15:{start:"2020-10-20",maintenance:"2021-04-01",end:"2021-06-01"},v16:{start:"2021-04-20",lts:"2021-10-26",maintenance:"2022-10-18",end:"2023-09-11",codename:"Gallium"},v17:{start:"2021-10-19",maintenance:"2022-04-01",end:"2022-06-01"},v18:{start:"2022-04-19",lts:"2022-10-25",maintenance:"2023-10-18",end:"2025-04-30",codename:"Hydrogen"},v19:{start:"2022-10-18",maintenance:"2023-04-01",end:"2023-06-01"},v20:{start:"2023-04-18",lts:"2023-10-24",maintenance:"2024-10-22",end:"2026-04-30",codename:"Iron"},v21:{start:"2023-10-17",maintenance:"2024-04-01",end:"2024-06-01"},v22:{start:"2024-04-24",lts:"2024-10-29",maintenance:"2025-10-21",end:"2027-04-30",codename:"Jod"},v23:{start:"2024-10-16",maintenance:"2025-04-01",end:"2025-06-01"},v24:{start:"2025-04-22",lts:"2025-10-28",maintenance:"2026-10-20",end:"2028-04-30",codename:""}},eL=cR(SB);function tL(e){this.name="BrowserslistError",this.message=e,this.browserslist=!0,Error.captureStackTrace&&Error.captureStackTrace(this,tL)}tL.prototype=Error.prototype;var rL=tL,aL=rL;function nL(){}var sL={loadQueries:function(){throw new aL("Sharable configs are not supported in client-side build of Browserslist")},getStat:function(e){return e.stats},loadConfig:function(e){if(e.config)throw new aL("Browserslist config are not supported in client-side build")},loadCountry:function(){throw new aL("Country statistics are not supported in client-side build of Browserslist")},loadFeature:function(){throw new aL("Supports queries are not available in client-side build of Browserslist")},currentNode:function(e,t){return e(["maintained node versions"],t)[0]},parseConfig:nL,readConfig:nL,findConfig:nL,findConfigFile:nL,clearCaches:nL,oldDataWarning:nL,env:{}},oL=/^\s+and\s+(.*)/i,iL=/^(?:,\s*|\s+or\s+)(.*)/i;function dL(e){return Array.isArray(e)?e.reduce(function(e,t){return e.concat(dL(t))},[]):[e]}function cL(e,t){var r={query:t};for(var a in 0===t.indexOf("not ")&&(r.not=!0,t=t.slice(4)),e){var n=e[a],s=t.match(n.regexp);if(s){r.type=a;for(var o=0;o<n.matches.length;o++)r[n.matches[o]]=s[o+1];return r}}return r.type="unknown",r}function lL(e,t,r){var a;return function(e,t){for(var r=e.length,a=1;a<=r;a++)if(t(e.substr(-a,a),a,r))return e.slice(0,-a);return""}(t,function(t,n,s){return oL.test(t)?((a=cL(e,t.match(oL)[1])).compose="and",r.unshift(a),!0):iL.test(t)?((a=cL(e,t.match(iL)[1])).compose="or",r.unshift(a),!0):n===s&&((a=cL(e,t.trim())).compose="or",r.unshift(a),!0)})}var uL=[{name:"nodejs",version:"0.2.0",date:"2011-08-26",lts:!1,security:!1,v8:"2.3.8.0"},{name:"nodejs",version:"0.3.0",date:"2011-08-26",lts:!1,security:!1,v8:"2.5.1.0"},{name:"nodejs",version:"0.4.0",date:"2011-08-26",lts:!1,security:!1,v8:"3.1.2.0"},{name:"nodejs",version:"0.5.0",date:"2011-08-26",lts:!1,security:!1,v8:"3.1.8.25"},{name:"nodejs",version:"0.6.0",date:"2011-11-04",lts:!1,security:!1,v8:"3.6.6.6"},{name:"nodejs",version:"0.7.0",date:"2012-01-17",lts:!1,security:!1,v8:"3.8.6.0"},{name:"nodejs",version:"0.8.0",date:"2012-06-22",lts:!1,security:!1,v8:"3.11.10.10"},{name:"nodejs",version:"0.9.0",date:"2012-07-20",lts:!1,security:!1,v8:"3.11.10.15"},{name:"nodejs",version:"0.10.0",date:"2013-03-11",lts:!1,security:!1,v8:"3.14.5.8"},{name:"nodejs",version:"0.11.0",date:"2013-03-28",lts:!1,security:!1,v8:"3.17.13.0"},{name:"nodejs",version:"0.12.0",date:"2015-02-06",lts:!1,security:!1,v8:"3.28.73.0"},{name:"nodejs",version:"4.0.0",date:"2015-09-08",lts:!1,security:!1,v8:"4.5.103.30"},{name:"nodejs",version:"4.1.0",date:"2015-09-17",lts:!1,security:!1,v8:"4.5.103.33"},{name:"nodejs",version:"4.2.0",date:"2015-10-12",lts:"Argon",security:!1,v8:"4.5.103.35"},{name:"nodejs",version:"4.3.0",date:"2016-02-09",lts:"Argon",security:!1,v8:"4.5.103.35"},{name:"nodejs",version:"4.4.0",date:"2016-03-08",lts:"Argon",security:!1,v8:"4.5.103.35"},{name:"nodejs",version:"4.5.0",date:"2016-08-16",lts:"Argon",security:!1,v8:"4.5.103.37"},{name:"nodejs",version:"4.6.0",date:"2016-09-27",lts:"Argon",security:!0,v8:"4.5.103.37"},{name:"nodejs",version:"4.7.0",date:"2016-12-06",lts:"Argon",security:!1,v8:"4.5.103.43"},{name:"nodejs",version:"4.8.0",date:"2017-02-21",lts:"Argon",security:!1,v8:"4.5.103.45"},{name:"nodejs",version:"4.9.0",date:"2018-03-28",lts:"Argon",security:!0,v8:"4.5.103.53"},{name:"nodejs",version:"5.0.0",date:"2015-10-29",lts:!1,security:!1,v8:"4.6.85.28"},{name:"nodejs",version:"5.1.0",date:"2015-11-17",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.2.0",date:"2015-12-09",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.3.0",date:"2015-12-15",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.4.0",date:"2016-01-06",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.5.0",date:"2016-01-21",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.6.0",date:"2016-02-09",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.7.0",date:"2016-02-23",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.8.0",date:"2016-03-09",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.9.0",date:"2016-03-16",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.10.0",date:"2016-04-01",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.11.0",date:"2016-04-21",lts:!1,security:!1,v8:"4.6.85.31"},{name:"nodejs",version:"5.12.0",date:"2016-06-23",lts:!1,security:!1,v8:"4.6.85.32"},{name:"nodejs",version:"6.0.0",date:"2016-04-26",lts:!1,security:!1,v8:"5.0.71.35"},{name:"nodejs",version:"6.1.0",date:"2016-05-05",lts:!1,security:!1,v8:"5.0.71.35"},{name:"nodejs",version:"6.2.0",date:"2016-05-17",lts:!1,security:!1,v8:"5.0.71.47"},{name:"nodejs",version:"6.3.0",date:"2016-07-06",lts:!1,security:!1,v8:"5.0.71.52"},{name:"nodejs",version:"6.4.0",date:"2016-08-12",lts:!1,security:!1,v8:"5.0.71.60"},{name:"nodejs",version:"6.5.0",date:"2016-08-26",lts:!1,security:!1,v8:"5.1.281.81"},{name:"nodejs",version:"6.6.0",date:"2016-09-14",lts:!1,security:!1,v8:"5.1.281.83"},{name:"nodejs",version:"6.7.0",date:"2016-09-27",lts:!1,security:!0,v8:"5.1.281.83"},{name:"nodejs",version:"6.8.0",date:"2016-10-12",lts:!1,security:!1,v8:"5.1.281.84"},{name:"nodejs",version:"6.9.0",date:"2016-10-18",lts:"Boron",security:!1,v8:"5.1.281.84"},{name:"nodejs",version:"6.10.0",date:"2017-02-21",lts:"Boron",security:!1,v8:"5.1.281.93"},{name:"nodejs",version:"6.11.0",date:"2017-06-06",lts:"Boron",security:!1,v8:"5.1.281.102"},{name:"nodejs",version:"6.12.0",date:"2017-11-06",lts:"Boron",security:!1,v8:"5.1.281.108"},{name:"nodejs",version:"6.13.0",date:"2018-02-10",lts:"Boron",security:!1,v8:"5.1.281.111"},{name:"nodejs",version:"6.14.0",date:"2018-03-28",lts:"Boron",security:!0,v8:"5.1.281.111"},{name:"nodejs",version:"6.15.0",date:"2018-11-27",lts:"Boron",security:!0,v8:"5.1.281.111"},{name:"nodejs",version:"6.16.0",date:"2018-12-26",lts:"Boron",security:!1,v8:"5.1.281.111"},{name:"nodejs",version:"6.17.0",date:"2019-02-28",lts:"Boron",security:!0,v8:"5.1.281.111"},{name:"nodejs",version:"7.0.0",date:"2016-10-25",lts:!1,security:!1,v8:"5.4.500.36"},{name:"nodejs",version:"7.1.0",date:"2016-11-08",lts:!1,security:!1,v8:"5.4.500.36"},{name:"nodejs",version:"7.2.0",date:"2016-11-22",lts:!1,security:!1,v8:"5.4.500.43"},{name:"nodejs",version:"7.3.0",date:"2016-12-20",lts:!1,security:!1,v8:"5.4.500.45"},{name:"nodejs",version:"7.4.0",date:"2017-01-04",lts:!1,security:!1,v8:"5.4.500.45"},{name:"nodejs",version:"7.5.0",date:"2017-01-31",lts:!1,security:!1,v8:"5.4.500.48"},{name:"nodejs",version:"7.6.0",date:"2017-02-21",lts:!1,security:!1,v8:"5.5.372.40"},{name:"nodejs",version:"7.7.0",date:"2017-02-28",lts:!1,security:!1,v8:"5.5.372.41"},{name:"nodejs",version:"7.8.0",date:"2017-03-29",lts:!1,security:!1,v8:"5.5.372.43"},{name:"nodejs",version:"7.9.0",date:"2017-04-11",lts:!1,security:!1,v8:"5.5.372.43"},{name:"nodejs",version:"7.10.0",date:"2017-05-02",lts:!1,security:!1,v8:"5.5.372.43"},{name:"nodejs",version:"8.0.0",date:"2017-05-30",lts:!1,security:!1,v8:"5.8.283.41"},{name:"nodejs",version:"8.1.0",date:"2017-06-08",lts:!1,security:!1,v8:"5.8.283.41"},{name:"nodejs",version:"8.2.0",date:"2017-07-19",lts:!1,security:!1,v8:"5.8.283.41"},{name:"nodejs",version:"8.3.0",date:"2017-08-08",lts:!1,security:!1,v8:"6.0.286.52"},{name:"nodejs",version:"8.4.0",date:"2017-08-15",lts:!1,security:!1,v8:"6.0.286.52"},{name:"nodejs",version:"8.5.0",date:"2017-09-12",lts:!1,security:!1,v8:"6.0.287.53"},{name:"nodejs",version:"8.6.0",date:"2017-09-26",lts:!1,security:!1,v8:"6.0.287.53"},{name:"nodejs",version:"8.7.0",date:"2017-10-11",lts:!1,security:!1,v8:"6.1.534.42"},{name:"nodejs",version:"8.8.0",date:"2017-10-24",lts:!1,security:!1,v8:"6.1.534.42"},{name:"nodejs",version:"8.9.0",date:"2017-10-31",lts:"Carbon",security:!1,v8:"6.1.534.46"},{name:"nodejs",version:"8.10.0",date:"2018-03-06",lts:"Carbon",security:!1,v8:"6.2.414.50"},{name:"nodejs",version:"8.11.0",date:"2018-03-28",lts:"Carbon",security:!0,v8:"6.2.414.50"},{name:"nodejs",version:"8.12.0",date:"2018-09-10",lts:"Carbon",security:!1,v8:"6.2.414.66"},{name:"nodejs",version:"8.13.0",date:"2018-11-20",lts:"Carbon",security:!1,v8:"6.2.414.72"},{name:"nodejs",version:"8.14.0",date:"2018-11-27",lts:"Carbon",security:!0,v8:"6.2.414.72"},{name:"nodejs",version:"8.15.0",date:"2018-12-26",lts:"Carbon",security:!1,v8:"6.2.414.75"},{name:"nodejs",version:"8.16.0",date:"2019-04-16",lts:"Carbon",security:!1,v8:"6.2.414.77"},{name:"nodejs",version:"8.17.0",date:"2019-12-17",lts:"Carbon",security:!0,v8:"6.2.414.78"},{name:"nodejs",version:"9.0.0",date:"2017-10-31",lts:!1,security:!1,v8:"6.2.414.32"},{name:"nodejs",version:"9.1.0",date:"2017-11-07",lts:!1,security:!1,v8:"6.2.414.32"},{name:"nodejs",version:"9.2.0",date:"2017-11-14",lts:!1,security:!1,v8:"6.2.414.44"},{name:"nodejs",version:"9.3.0",date:"2017-12-12",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.4.0",date:"2018-01-10",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.5.0",date:"2018-01-31",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.6.0",date:"2018-02-21",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.7.0",date:"2018-03-01",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.8.0",date:"2018-03-07",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.9.0",date:"2018-03-21",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"9.10.0",date:"2018-03-28",lts:!1,security:!0,v8:"6.2.414.46"},{name:"nodejs",version:"9.11.0",date:"2018-04-04",lts:!1,security:!1,v8:"6.2.414.46"},{name:"nodejs",version:"10.0.0",date:"2018-04-24",lts:!1,security:!1,v8:"6.6.346.24"},{name:"nodejs",version:"10.1.0",date:"2018-05-08",lts:!1,security:!1,v8:"6.6.346.27"},{name:"nodejs",version:"10.2.0",date:"2018-05-23",lts:!1,security:!1,v8:"6.6.346.32"},{name:"nodejs",version:"10.3.0",date:"2018-05-29",lts:!1,security:!1,v8:"6.6.346.32"},{name:"nodejs",version:"10.4.0",date:"2018-06-06",lts:!1,security:!1,v8:"6.7.288.43"},{name:"nodejs",version:"10.5.0",date:"2018-06-20",lts:!1,security:!1,v8:"6.7.288.46"},{name:"nodejs",version:"10.6.0",date:"2018-07-04",lts:!1,security:!1,v8:"6.7.288.46"},{name:"nodejs",version:"10.7.0",date:"2018-07-18",lts:!1,security:!1,v8:"6.7.288.49"},{name:"nodejs",version:"10.8.0",date:"2018-08-01",lts:!1,security:!1,v8:"6.7.288.49"},{name:"nodejs",version:"10.9.0",date:"2018-08-15",lts:!1,security:!1,v8:"6.8.275.24"},{name:"nodejs",version:"10.10.0",date:"2018-09-06",lts:!1,security:!1,v8:"6.8.275.30"},{name:"nodejs",version:"10.11.0",date:"2018-09-19",lts:!1,security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.12.0",date:"2018-10-10",lts:!1,security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.13.0",date:"2018-10-30",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.14.0",date:"2018-11-27",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"10.15.0",date:"2018-12-26",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.16.0",date:"2019-05-28",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.17.0",date:"2019-10-22",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.18.0",date:"2019-12-17",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"10.19.0",date:"2020-02-05",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"10.20.0",date:"2020-03-26",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.21.0",date:"2020-06-02",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"10.22.0",date:"2020-07-21",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.23.0",date:"2020-10-27",lts:"Dubnium",security:!1,v8:"6.8.275.32"},{name:"nodejs",version:"10.24.0",date:"2021-02-23",lts:"Dubnium",security:!0,v8:"6.8.275.32"},{name:"nodejs",version:"11.0.0",date:"2018-10-23",lts:!1,security:!1,v8:"7.0.276.28"},{name:"nodejs",version:"11.1.0",date:"2018-10-30",lts:!1,security:!1,v8:"7.0.276.32"},{name:"nodejs",version:"11.2.0",date:"2018-11-15",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.3.0",date:"2018-11-27",lts:!1,security:!0,v8:"7.0.276.38"},{name:"nodejs",version:"11.4.0",date:"2018-12-07",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.5.0",date:"2018-12-18",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.6.0",date:"2018-12-26",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.7.0",date:"2019-01-17",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.8.0",date:"2019-01-24",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.9.0",date:"2019-01-30",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.10.0",date:"2019-02-14",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.11.0",date:"2019-03-05",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.12.0",date:"2019-03-14",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.13.0",date:"2019-03-28",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.14.0",date:"2019-04-10",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"11.15.0",date:"2019-04-30",lts:!1,security:!1,v8:"7.0.276.38"},{name:"nodejs",version:"12.0.0",date:"2019-04-23",lts:!1,security:!1,v8:"7.4.288.21"},{name:"nodejs",version:"12.1.0",date:"2019-04-29",lts:!1,security:!1,v8:"7.4.288.21"},{name:"nodejs",version:"12.2.0",date:"2019-05-07",lts:!1,security:!1,v8:"7.4.288.21"},{name:"nodejs",version:"12.3.0",date:"2019-05-21",lts:!1,security:!1,v8:"7.4.288.27"},{name:"nodejs",version:"12.4.0",date:"2019-06-04",lts:!1,security:!1,v8:"7.4.288.27"},{name:"nodejs",version:"12.5.0",date:"2019-06-26",lts:!1,security:!1,v8:"7.5.288.22"},{name:"nodejs",version:"12.6.0",date:"2019-07-03",lts:!1,security:!1,v8:"7.5.288.22"},{name:"nodejs",version:"12.7.0",date:"2019-07-23",lts:!1,security:!1,v8:"7.5.288.22"},{name:"nodejs",version:"12.8.0",date:"2019-08-06",lts:!1,security:!1,v8:"7.5.288.22"},{name:"nodejs",version:"12.9.0",date:"2019-08-20",lts:!1,security:!1,v8:"7.6.303.29"},{name:"nodejs",version:"12.10.0",date:"2019-09-04",lts:!1,security:!1,v8:"7.6.303.29"},{name:"nodejs",version:"12.11.0",date:"2019-09-25",lts:!1,security:!1,v8:"7.7.299.11"},{name:"nodejs",version:"12.12.0",date:"2019-10-11",lts:!1,security:!1,v8:"7.7.299.13"},{name:"nodejs",version:"12.13.0",date:"2019-10-21",lts:"Erbium",security:!1,v8:"7.7.299.13"},{name:"nodejs",version:"12.14.0",date:"2019-12-17",lts:"Erbium",security:!0,v8:"7.7.299.13"},{name:"nodejs",version:"12.15.0",date:"2020-02-05",lts:"Erbium",security:!0,v8:"7.7.299.13"},{name:"nodejs",version:"12.16.0",date:"2020-02-11",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"12.17.0",date:"2020-05-26",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"12.18.0",date:"2020-06-02",lts:"Erbium",security:!0,v8:"7.8.279.23"},{name:"nodejs",version:"12.19.0",date:"2020-10-06",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"12.20.0",date:"2020-11-24",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"12.21.0",date:"2021-02-23",lts:"Erbium",security:!0,v8:"7.8.279.23"},{name:"nodejs",version:"12.22.0",date:"2021-03-30",lts:"Erbium",security:!1,v8:"7.8.279.23"},{name:"nodejs",version:"13.0.0",date:"2019-10-22",lts:!1,security:!1,v8:"7.8.279.17"},{name:"nodejs",version:"13.1.0",date:"2019-11-05",lts:!1,security:!1,v8:"7.8.279.17"},{name:"nodejs",version:"13.2.0",date:"2019-11-21",lts:!1,security:!1,v8:"7.9.317.23"},{name:"nodejs",version:"13.3.0",date:"2019-12-03",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.4.0",date:"2019-12-17",lts:!1,security:!0,v8:"7.9.317.25"},{name:"nodejs",version:"13.5.0",date:"2019-12-18",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.6.0",date:"2020-01-07",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.7.0",date:"2020-01-21",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.8.0",date:"2020-02-05",lts:!1,security:!0,v8:"7.9.317.25"},{name:"nodejs",version:"13.9.0",date:"2020-02-18",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.10.0",date:"2020-03-04",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.11.0",date:"2020-03-12",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.12.0",date:"2020-03-26",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.13.0",date:"2020-04-14",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"13.14.0",date:"2020-04-29",lts:!1,security:!1,v8:"7.9.317.25"},{name:"nodejs",version:"14.0.0",date:"2020-04-21",lts:!1,security:!1,v8:"8.1.307.30"},{name:"nodejs",version:"14.1.0",date:"2020-04-29",lts:!1,security:!1,v8:"8.1.307.31"},{name:"nodejs",version:"14.2.0",date:"2020-05-05",lts:!1,security:!1,v8:"8.1.307.31"},{name:"nodejs",version:"14.3.0",date:"2020-05-19",lts:!1,security:!1,v8:"8.1.307.31"},{name:"nodejs",version:"14.4.0",date:"2020-06-02",lts:!1,security:!0,v8:"8.1.307.31"},{name:"nodejs",version:"14.5.0",date:"2020-06-30",lts:!1,security:!1,v8:"8.3.110.9"},{name:"nodejs",version:"14.6.0",date:"2020-07-20",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.7.0",date:"2020-07-29",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.8.0",date:"2020-08-11",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.9.0",date:"2020-08-27",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.10.0",date:"2020-09-08",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.11.0",date:"2020-09-15",lts:!1,security:!0,v8:"8.4.371.19"},{name:"nodejs",version:"14.12.0",date:"2020-09-22",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.13.0",date:"2020-09-29",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.14.0",date:"2020-10-15",lts:!1,security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.15.0",date:"2020-10-27",lts:"Fermium",security:!1,v8:"8.4.371.19"},{name:"nodejs",version:"14.16.0",date:"2021-02-23",lts:"Fermium",security:!0,v8:"8.4.371.19"},{name:"nodejs",version:"14.17.0",date:"2021-05-11",lts:"Fermium",security:!1,v8:"8.4.371.23"},{name:"nodejs",version:"14.18.0",date:"2021-09-28",lts:"Fermium",security:!1,v8:"8.4.371.23"},{name:"nodejs",version:"14.19.0",date:"2022-02-01",lts:"Fermium",security:!1,v8:"8.4.371.23"},{name:"nodejs",version:"14.20.0",date:"2022-07-07",lts:"Fermium",security:!0,v8:"8.4.371.23"},{name:"nodejs",version:"14.21.0",date:"2022-11-01",lts:"Fermium",security:!1,v8:"8.4.371.23"},{name:"nodejs",version:"15.0.0",date:"2020-10-20",lts:!1,security:!1,v8:"8.6.395.16"},{name:"nodejs",version:"15.1.0",date:"2020-11-04",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.2.0",date:"2020-11-10",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.3.0",date:"2020-11-24",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.4.0",date:"2020-12-09",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.5.0",date:"2020-12-22",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.6.0",date:"2021-01-14",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.7.0",date:"2021-01-25",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.8.0",date:"2021-02-02",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.9.0",date:"2021-02-18",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.10.0",date:"2021-02-23",lts:!1,security:!0,v8:"8.6.395.17"},{name:"nodejs",version:"15.11.0",date:"2021-03-03",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.12.0",date:"2021-03-17",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.13.0",date:"2021-03-31",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"15.14.0",date:"2021-04-06",lts:!1,security:!1,v8:"8.6.395.17"},{name:"nodejs",version:"16.0.0",date:"2021-04-20",lts:!1,security:!1,v8:"9.0.257.17"},{name:"nodejs",version:"16.1.0",date:"2021-05-04",lts:!1,security:!1,v8:"9.0.257.24"},{name:"nodejs",version:"16.2.0",date:"2021-05-19",lts:!1,security:!1,v8:"9.0.257.25"},{name:"nodejs",version:"16.3.0",date:"2021-06-03",lts:!1,security:!1,v8:"9.0.257.25"},{name:"nodejs",version:"16.4.0",date:"2021-06-23",lts:!1,security:!1,v8:"9.1.269.36"},{name:"nodejs",version:"16.5.0",date:"2021-07-14",lts:!1,security:!1,v8:"9.1.269.38"},{name:"nodejs",version:"16.6.0",date:"2021-07-29",lts:!1,security:!0,v8:"9.2.230.21"},{name:"nodejs",version:"16.7.0",date:"2021-08-18",lts:!1,security:!1,v8:"9.2.230.21"},{name:"nodejs",version:"16.8.0",date:"2021-08-25",lts:!1,security:!1,v8:"9.2.230.21"},{name:"nodejs",version:"16.9.0",date:"2021-09-07",lts:!1,security:!1,v8:"9.3.345.16"},{name:"nodejs",version:"16.10.0",date:"2021-09-22",lts:!1,security:!1,v8:"9.3.345.19"},{name:"nodejs",version:"16.11.0",date:"2021-10-08",lts:!1,security:!1,v8:"9.4.146.19"},{name:"nodejs",version:"16.12.0",date:"2021-10-20",lts:!1,security:!1,v8:"9.4.146.19"},{name:"nodejs",version:"16.13.0",date:"2021-10-26",lts:"Gallium",security:!1,v8:"9.4.146.19"},{name:"nodejs",version:"16.14.0",date:"2022-02-08",lts:"Gallium",security:!1,v8:"9.4.146.24"},{name:"nodejs",version:"16.15.0",date:"2022-04-26",lts:"Gallium",security:!1,v8:"9.4.146.24"},{name:"nodejs",version:"16.16.0",date:"2022-07-07",lts:"Gallium",security:!0,v8:"9.4.146.24"},{name:"nodejs",version:"16.17.0",date:"2022-08-16",lts:"Gallium",security:!1,v8:"9.4.146.26"},{name:"nodejs",version:"16.18.0",date:"2022-10-12",lts:"Gallium",security:!1,v8:"9.4.146.26"},{name:"nodejs",version:"16.19.0",date:"2022-12-13",lts:"Gallium",security:!1,v8:"9.4.146.26"},{name:"nodejs",version:"16.20.0",date:"2023-03-28",lts:"Gallium",security:!1,v8:"9.4.146.26"},{name:"nodejs",version:"17.0.0",date:"2021-10-19",lts:!1,security:!1,v8:"9.5.172.21"},{name:"nodejs",version:"17.1.0",date:"2021-11-09",lts:!1,security:!1,v8:"9.5.172.25"},{name:"nodejs",version:"17.2.0",date:"2021-11-30",lts:!1,security:!1,v8:"9.6.180.14"},{name:"nodejs",version:"17.3.0",date:"2021-12-17",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.4.0",date:"2022-01-18",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.5.0",date:"2022-02-10",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.6.0",date:"2022-02-22",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.7.0",date:"2022-03-09",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.8.0",date:"2022-03-22",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"17.9.0",date:"2022-04-07",lts:!1,security:!1,v8:"9.6.180.15"},{name:"nodejs",version:"18.0.0",date:"2022-04-18",lts:!1,security:!1,v8:"10.1.124.8"},{name:"nodejs",version:"18.1.0",date:"2022-05-03",lts:!1,security:!1,v8:"10.1.124.8"},{name:"nodejs",version:"18.2.0",date:"2022-05-17",lts:!1,security:!1,v8:"10.1.124.8"},{name:"nodejs",version:"18.3.0",date:"2022-06-02",lts:!1,security:!1,v8:"10.2.154.4"},{name:"nodejs",version:"18.4.0",date:"2022-06-16",lts:!1,security:!1,v8:"10.2.154.4"},{name:"nodejs",version:"18.5.0",date:"2022-07-06",lts:!1,security:!0,v8:"10.2.154.4"},{name:"nodejs",version:"18.6.0",date:"2022-07-13",lts:!1,security:!1,v8:"10.2.154.13"},{name:"nodejs",version:"18.7.0",date:"2022-07-26",lts:!1,security:!1,v8:"10.2.154.13"},{name:"nodejs",version:"18.8.0",date:"2022-08-24",lts:!1,security:!1,v8:"10.2.154.13"},{name:"nodejs",version:"18.9.0",date:"2022-09-07",lts:!1,security:!1,v8:"10.2.154.15"},{name:"nodejs",version:"18.10.0",date:"2022-09-28",lts:!1,security:!1,v8:"10.2.154.15"},{name:"nodejs",version:"18.11.0",date:"2022-10-13",lts:!1,security:!1,v8:"10.2.154.15"},{name:"nodejs",version:"18.12.0",date:"2022-10-25",lts:"Hydrogen",security:!1,v8:"10.2.154.15"},{name:"nodejs",version:"18.13.0",date:"2023-01-05",lts:"Hydrogen",security:!1,v8:"10.2.154.23"},{name:"nodejs",version:"18.14.0",date:"2023-02-01",lts:"Hydrogen",security:!1,v8:"10.2.154.23"},{name:"nodejs",version:"18.15.0",date:"2023-03-05",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"18.16.0",date:"2023-04-12",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"18.17.0",date:"2023-07-18",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"18.18.0",date:"2023-09-18",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"18.19.0",date:"2023-11-29",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"18.20.0",date:"2024-03-26",lts:"Hydrogen",security:!1,v8:"10.2.154.26"},{name:"nodejs",version:"19.0.0",date:"2022-10-17",lts:!1,security:!1,v8:"10.7.193.13"},{name:"nodejs",version:"19.1.0",date:"2022-11-14",lts:!1,security:!1,v8:"10.7.193.20"},{name:"nodejs",version:"19.2.0",date:"2022-11-29",lts:!1,security:!1,v8:"10.8.168.20"},{name:"nodejs",version:"19.3.0",date:"2022-12-14",lts:!1,security:!1,v8:"10.8.168.21"},{name:"nodejs",version:"19.4.0",date:"2023-01-05",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.5.0",date:"2023-01-24",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.6.0",date:"2023-02-01",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.7.0",date:"2023-02-21",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.8.0",date:"2023-03-14",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"19.9.0",date:"2023-04-10",lts:!1,security:!1,v8:"10.8.168.25"},{name:"nodejs",version:"20.0.0",date:"2023-04-17",lts:!1,security:!1,v8:"11.3.244.4"},{name:"nodejs",version:"20.1.0",date:"2023-05-03",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.2.0",date:"2023-05-16",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.3.0",date:"2023-06-08",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.4.0",date:"2023-07-04",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.5.0",date:"2023-07-19",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.6.0",date:"2023-08-23",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.7.0",date:"2023-09-18",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.8.0",date:"2023-09-28",lts:!1,security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.9.0",date:"2023-10-24",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.10.0",date:"2023-11-22",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.11.0",date:"2024-01-09",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.12.0",date:"2024-03-26",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.13.0",date:"2024-05-07",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.14.0",date:"2024-05-28",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.15.0",date:"2024-06-20",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.16.0",date:"2024-07-24",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.17.0",date:"2024-08-21",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"20.18.0",date:"2024-10-03",lts:"Iron",security:!1,v8:"11.3.244.8"},{name:"nodejs",version:"21.0.0",date:"2023-10-17",lts:!1,security:!1,v8:"11.8.172.13"},{name:"nodejs",version:"21.1.0",date:"2023-10-24",lts:!1,security:!1,v8:"11.8.172.15"},{name:"nodejs",version:"21.2.0",date:"2023-11-14",lts:!1,security:!1,v8:"11.8.172.17"},{name:"nodejs",version:"21.3.0",date:"2023-11-30",lts:!1,security:!1,v8:"11.8.172.17"},{name:"nodejs",version:"21.4.0",date:"2023-12-05",lts:!1,security:!1,v8:"11.8.172.17"},{name:"nodejs",version:"21.5.0",date:"2023-12-19",lts:!1,security:!1,v8:"11.8.172.17"},{name:"nodejs",version:"21.6.0",date:"2024-01-14",lts:!1,security:!1,v8:"11.8.172.17"},{name:"nodejs",version:"21.7.0",date:"2024-03-06",lts:!1,security:!1,v8:"11.8.172.17"},{name:"nodejs",version:"22.0.0",date:"2024-04-24",lts:!1,security:!1,v8:"12.4.254.14"},{name:"nodejs",version:"22.1.0",date:"2024-05-02",lts:!1,security:!1,v8:"12.4.254.14"},{name:"nodejs",version:"22.2.0",date:"2024-05-15",lts:!1,security:!1,v8:"12.4.254.14"},{name:"nodejs",version:"22.3.0",date:"2024-06-11",lts:!1,security:!1,v8:"12.4.254.20"},{name:"nodejs",version:"22.4.0",date:"2024-07-02",lts:!1,security:!1,v8:"12.4.254.21"},{name:"nodejs",version:"22.5.0",date:"2024-07-17",lts:!1,security:!1,v8:"12.4.254.21"},{name:"nodejs",version:"22.6.0",date:"2024-08-06",lts:!1,security:!1,v8:"12.4.254.21"},{name:"nodejs",version:"22.7.0",date:"2024-08-21",lts:!1,security:!1,v8:"12.4.254.21"},{name:"nodejs",version:"22.8.0",date:"2024-09-03",lts:!1,security:!1,v8:"12.4.254.21"},{name:"nodejs",version:"22.9.0",date:"2024-09-17",lts:!1,security:!1,v8:"12.4.254.21"},{name:"nodejs",version:"22.10.0",date:"2024-10-16",lts:!1,security:!1,v8:"12.4.254.21"},{name:"nodejs",version:"22.11.0",date:"2024-10-29",lts:"Jod",security:!1,v8:"12.4.254.21"},{name:"nodejs",version:"22.12.0",date:"2024-12-02",lts:"Jod",security:!1,v8:"12.4.254.21"},{name:"nodejs",version:"23.0.0",date:"2024-10-16",lts:!1,security:!1,v8:"12.9.202.26"},{name:"nodejs",version:"23.1.0",date:"2024-10-24",lts:!1,security:!1,v8:"12.9.202.28"},{name:"nodejs",version:"23.2.0",date:"2024-11-11",lts:!1,security:!1,v8:"12.9.202.28"},{name:"nodejs",version:"23.3.0",date:"2024-11-20",lts:!1,security:!1,v8:"12.9.202.28"}],pL=zF.agents,fL={"0.20":"39",.21:"41",.22:"41",.23:"41",.24:"41",.25:"42",.26:"42",.27:"43",.28:"43",.29:"43","0.30":"44",.31:"45",.32:"45",.33:"45",.34:"45",.35:"45",.36:"47",.37:"49","1.0":"49",1.1:"50",1.2:"51",1.3:"52",1.4:"53",1.5:"54",1.6:"56",1.7:"58",1.8:"59","2.0":"61",2.1:"61","3.0":"66",3.1:"66","4.0":"69",4.1:"69",4.2:"69","5.0":"73","6.0":"76",6.1:"76","7.0":"78",7.1:"78",7.2:"78",7.3:"78","8.0":"80",8.1:"80",8.2:"80",8.3:"80",8.4:"80",8.5:"80","9.0":"83",9.1:"83",9.2:"83",9.3:"83",9.4:"83","10.0":"85",10.1:"85",10.2:"85",10.3:"85",10.4:"85","11.0":"87",11.1:"87",11.2:"87",11.3:"87",11.4:"87",11.5:"87","12.0":"89",12.1:"89",12.2:"89","13.0":"91",13.1:"91",13.2:"91",13.3:"91",13.4:"91",13.5:"91",13.6:"91","14.0":"93",14.1:"93",14.2:"93","15.0":"94",15.1:"94",15.2:"94",15.3:"94",15.4:"94",15.5:"94","16.0":"96",16.1:"96",16.2:"96","17.0":"98",17.1:"98",17.2:"98",17.3:"98",17.4:"98","18.0":"100",18.1:"100",18.2:"100",18.3:"100","19.0":"102",19.1:"102","20.0":"104",20.1:"104",20.2:"104",20.3:"104","21.0":"106",21.1:"106",21.2:"106",21.3:"106",21.4:"106","22.0":"108",22.1:"108",22.2:"108",22.3:"108","23.0":"110",23.1:"110",23.2:"110",23.3:"110","24.0":"112",24.1:"112",24.2:"112",24.3:"112",24.4:"112",24.5:"112",24.6:"112",24.7:"112",24.8:"112","25.0":"114",25.1:"114",25.2:"114",25.3:"114",25.4:"114",25.5:"114",25.6:"114",25.7:"114",25.8:"114",25.9:"114","26.0":"116",26.1:"116",26.2:"116",26.3:"116",26.4:"116",26.5:"116",26.6:"116","27.0":"118",27.1:"118",27.2:"118",27.3:"118","28.0":"120",28.1:"120",28.2:"120",28.3:"120","29.0":"122",29.1:"122",29.2:"122",29.3:"122",29.4:"122","30.0":"124",30.1:"124",30.2:"124",30.3:"124",30.4:"124",30.5:"124","31.0":"126",31.1:"126",31.2:"126",31.3:"126",31.4:"126",31.5:"126",31.6:"126",31.7:"126","32.0":"128",32.1:"128",32.2:"128",32.3:"128","33.0":"130",33.1:"130",33.2:"130",33.3:"130",33.4:"130","34.0":"132",34.1:"132",34.2:"132",34.3:"132",34.4:"132",34.5:"132","35.0":"134",35.1:"134",35.2:"134",35.3:"134",35.4:"134",35.5:"134",35.6:"134",35.7:"134","36.0":"136",36.1:"136",36.2:"136",36.3:"136",36.4:"136",36.5:"136",36.6:"136",36.7:"136",36.8:"136",36.9:"136","37.0":"138",37.1:"138",37.2:"138",37.3:"138",37.4:"138",37.5:"138",37.6:"138",37.7:"138",37.8:"138",37.9:"138","37.10":"138","38.0":"140",38.1:"140",38.2:"140",38.3:"140",38.4:"140",38.5:"140",38.6:"140",38.7:"140","39.0":"142",39.1:"142",39.2:"142",39.3:"142","40.0":"144","41.0":"146"},gL=ZF,mL=eL,yL=rL,hL=sL,bL=function(e,t){return Array.isArray(t)||(t=[t]),dL(t.map(function(t){var r=[];do{t=lL(e,t,r)}while(t);return r}))};function vL(e,t){return 0===(e+".").indexOf(t+".")}function xL(e){return e.filter(function(e){return"string"==typeof e})}function RL(e){var t=e;return 3===e.split(".").length&&(t=e.split(".").slice(0,-1).join(".")),t}function jL(e){return function(t){return e+" "+t}}function wL(e){return parseInt(e.split(".")[0])}function EL(e,t){if(0===e.length)return[];var r=SL(e.map(wL)),a=r[r.length-t];if(!a)return e;for(var n=[],s=e.length-1;s>=0&&!(a>wL(e[s]));s--)n.unshift(e[s]);return n}function SL(e){for(var t=[],r=0;r<e.length;r++)-1===t.indexOf(e[r])&&t.push(e[r]);return t}function TL(e,t,r){for(var a in r)e[t+" "+a]=r[a]}function PL(e,t){return t=parseFloat(t),">"===e?function(e){return r(e)>t}:">="===e?function(e){return r(e)>=t}:"<"===e?function(e){return parseFloat(e)<t}:function(e){return parseFloat(e)<=t};function r(e){return parseFloat(e.split("-")[1]||e)}}function AL(e){return parseInt(e)}function kL(e,t){return e<t?-1:e>t?1:0}function CL(e,t){return kL(parseInt(e[0]),parseInt(t[0]))||kL(parseInt(e[1]||"0"),parseInt(t[1]||"0"))||kL(parseInt(e[2]||"0"),parseInt(t[2]||"0"))}function _L(e,t){return void 0===(t=t.split(".").map(AL))[1]&&(t[1]="x"),"<="===e?function(e){return IL(e=e.split(".").map(AL),t)<=0}:function(e){return IL(e=e.split(".").map(AL),t)>=0}}function IL(e,t){return e[0]!==t[0]?e[0]<t[0]?-1:1:"x"===t[1]?0:e[1]!==t[1]?e[1]<t[1]?-1:1:0}function DL(e,t){var r=function(e,t){return-1!==e.versions.indexOf(t)?t:!!KL.versionAliases[e.name][t]&&KL.versionAliases[e.name][t]}(e,t);return r||1===e.versions.length&&e.versions[0]}function OL(e,t){return e/=1e3,Object.keys(pL).reduce(function(r,a){var n=BL(a,t);if(!n)return r;var s=Object.keys(n.releaseDate).filter(function(t){var r=n.releaseDate[t];return null!==r&&r>=e});return r.concat(s.map(jL(n.name)))},[])}function NL(e){return{name:e.name,versions:e.versions,released:e.released,releaseDate:e.releaseDate}}function BL(e,t){if(e=e.toLowerCase(),e=KL.aliases[e]||e,t.mobileToDesktop&&KL.desktopNames[e]){var r=KL.data[KL.desktopNames[e]];if("android"===e)return n=NL(KL.data[e]),s=r,n.released=ML(n.released,s.released),n.versions=ML(n.versions,s.versions),n.releaseDate=function(e){var t={};for(var r in e)t[r]=e[r];return t}(n.releaseDate),n.released.forEach(function(e){void 0===n.releaseDate[e]&&(n.releaseDate[e]=s.releaseDate[e])}),n;var a=NL(r);return a.name=e,a}var n,s;return KL.data[e]}function ML(e,t){var r=t.indexOf("37");return e.filter(function(e){return/^(?:[2-4]\.|[34]$)/.test(e)}).concat(t.slice(r))}function FL(e,t){var r=BL(e,t);if(!r)throw new yL("Unknown browser "+e);return r}function LL(e,t,r,a){var n=1;switch(t){case"android":if(a.mobileToDesktop)return e;var s=KL.data.chrome.released;n=s.length-s.indexOf("37");break;case"op_mob":n=wL(KL.data.op_mob.released.slice(-1)[0])-14+1;break;default:return e}return r<=n?e.slice(-1):e.slice(n-1-r)}function UL(e,t){return"string"==typeof e&&(e.indexOf("y")>=0||t&&e.indexOf("a")>=0)}function qL(e,t){return XL(e).reduce(function(e,r,a){if(r.not&&0===a)throw new yL("Write any browsers query (for instance, `defaults`) before `"+r.query+"`");var n=ZL[r.type].select.call(KL,t,r).map(function(e){var r=e.split(" ");return"0"===r[1]?r[0]+" "+BL(r[0],t).versions[0]:e});if("and"===r.compose)return r.not?e.filter(function(e){return-1===n.indexOf(e)}):e.filter(function(e){return-1!==n.indexOf(e)});if(r.not){var s={};return n.forEach(function(e){s[e]=!0}),e.filter(function(e){return!s[e]})}return e.concat(n)},[])}function GL(e){return void 0===e&&(e={}),void 0===e.path&&(e.path=mL.resolve?mL.resolve("."):"."),e}function WL(e,t){if(null==e){var r=KL.loadConfig(t);e=r||KL.defaults}return e}function VL(e){if("string"!=typeof e&&!Array.isArray(e))throw new yL("Browser queries must be an array or string. Got "+typeof e+".")}var HL={},zL={};function KL(e,t){VL(e=WL(e,t=GL(t)));var r=XL(e).some(function(e){return ZL[e.type].needsPath}),a={ignoreUnknownVersions:t.ignoreUnknownVersions,dangerousExtend:t.dangerousExtend,mobileToDesktop:t.mobileToDesktop,env:t.env};r&&(a.path=t.path),hL.oldDataWarning(KL.data);var n=hL.getStat(t,KL.data);if(n)for(var s in a.customUsage={},n)TL(a.customUsage,s,n[s]);var o=JSON.stringify([e,a]);if(HL[o])return HL[o];var i=SL(qL(e,a)).sort(function(e,t){if(e=e.split(" "),t=t.split(" "),e[0]===t[0]){var r=e[1].split("-")[0];return CL(t[1].split("-")[0].split("."),r.split("."))}return kL(e[0],t[0])});return hL.env.BROWSERSLIST_DISABLE_CACHE||(HL[o]=i),i}function XL(e){var t=JSON.stringify(e);if(t in zL)return zL[t];var r=bL(ZL,e);return hL.env.BROWSERSLIST_DISABLE_CACHE||(zL[t]=r),r}function JL(e,t){var r=hL.loadStat(e,t,KL.data);if(r)for(var a in e.customUsage={},r)TL(e.customUsage,a,r[a]);if(!e.customUsage)throw new yL("Custom usage statistics was not provided");return e.customUsage}function YL(e,t){var r=KL.nodeVersions.filter(function(e){return vL(e,t.version)});if(0===r.length){if(e.ignoreUnknownVersions)return[];throw new yL("Unknown version "+t.version+" of Node.js")}return["node "+r[r.length-1]]}function $L(e,t){var r=parseInt(t.year),a=parseInt(t.month||"01")-1,n=parseInt(t.day||"01");return OL(Date.UTC(r,a,n,0,0,0),e)}function QL(e,t){var r=parseFloat(t.coverage),a=KL.usage.global;if(t.place)if(t.place.match(/^my\s+stats$/i)){if(!e.customUsage)throw new yL("Custom usage statistics was not provided");a=e.customUsage}else{var n;n=2===t.place.length?t.place.toUpperCase():t.place.toLowerCase(),hL.loadCountry(KL.usage,n,KL.data),a=KL.usage[n]}else t.config&&(a=JL(e,t.config));for(var s,o=Object.keys(a).sort(function(e,t){return a[t]-a[e]}),i=0,d=[],c=0;c<o.length&&(s=o[c],0!==a[s])&&(i+=a[s],d.push(s),!(i>=r));c++);return d}KL.parse=function(e,t){return VL(e=WL(e,t=GL(t))),XL(e)},KL.cache={},KL.data={},KL.usage={global:{},custom:null},KL.defaults=["> 0.5%","last 2 versions","Firefox ESR","not dead"],KL.aliases={fx:"firefox",ff:"firefox",ios:"ios_saf",explorer:"ie",blackberry:"bb",explorermobile:"ie_mob",operamini:"op_mini",operamobile:"op_mob",chromeandroid:"and_chr",firefoxandroid:"and_ff",ucandroid:"and_uc",qqandroid:"and_qq"},KL.desktopNames={and_chr:"chrome",and_ff:"firefox",ie_mob:"ie",android:"chrome"},KL.versionAliases={},KL.clearCaches=hL.clearCaches,KL.parseConfig=hL.parseConfig,KL.readConfig=hL.readConfig,KL.findConfigFile=hL.findConfigFile,KL.findConfig=hL.findConfig,KL.loadConfig=hL.loadConfig,KL.coverage=function(e,t){var r;if(void 0===t)r=KL.usage.global;else if("my stats"===t){var a={};a.path=mL.resolve?mL.resolve("."):".";var n=hL.getStat(a);if(!n)throw new yL("Custom usage statistics was not provided");for(var s in r={},n)TL(r,s,n[s])}else if("string"==typeof t)t=t.length>2?t.toLowerCase():t.toUpperCase(),hL.loadCountry(KL.usage,t,KL.data),r=KL.usage[t];else for(var o in"dataByBrowser"in t&&(t=t.dataByBrowser),r={},t)for(var i in t[o])r[o+" "+i]=t[o][i];return e.reduce(function(e,t){var a=r[t];return void 0===a&&(a=r[t.replace(/ \S+$/," 0")]),e+(a||0)},0)};var ZL={last_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+major\s+versions?$/i,select:function(e,t){return Object.keys(pL).reduce(function(r,a){var n=BL(a,e);if(!n)return r;var s=EL(n.released,t.versions);return s=LL(s=s.map(jL(n.name)),n.name,t.versions,e),r.concat(s)},[])}},last_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+versions?$/i,select:function(e,t){return Object.keys(pL).reduce(function(r,a){var n=BL(a,e);if(!n)return r;var s=n.released.slice(-t.versions);return s=LL(s=s.map(jL(n.name)),n.name,t.versions,e),r.concat(s)},[])}},last_electron_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+major\s+versions?$/i,select:function(e,t){return EL(Object.keys(fL),t.versions).map(function(e){return"chrome "+fL[e]})}},last_node_major_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+major\s+versions?$/i,select:function(e,t){return EL(KL.nodeVersions,t.versions).map(function(e){return"node "+e})}},last_browser_major_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i,select:function(e,t){var r=FL(t.browser,e),a=EL(r.released,t.versions).map(jL(r.name));return a=LL(a,r.name,t.versions,e)}},last_electron_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+electron\s+versions?$/i,select:function(e,t){return Object.keys(fL).slice(-t.versions).map(function(e){return"chrome "+fL[e]})}},last_node_versions:{matches:["versions"],regexp:/^last\s+(\d+)\s+node\s+versions?$/i,select:function(e,t){return KL.nodeVersions.slice(-t.versions).map(function(e){return"node "+e})}},last_browser_versions:{matches:["versions","browser"],regexp:/^last\s+(\d+)\s+(\w+)\s+versions?$/i,select:function(e,t){var r=FL(t.browser,e),a=r.released.slice(-t.versions).map(jL(r.name));return a=LL(a,r.name,t.versions,e)}},unreleased_versions:{matches:[],regexp:/^unreleased\s+versions$/i,select:function(e){return Object.keys(pL).reduce(function(t,r){var a=BL(r,e);if(!a)return t;var n=a.versions.filter(function(e){return-1===a.released.indexOf(e)});return n=n.map(jL(a.name)),t.concat(n)},[])}},unreleased_electron_versions:{matches:[],regexp:/^unreleased\s+electron\s+versions?$/i,select:function(){return[]}},unreleased_browser_versions:{matches:["browser"],regexp:/^unreleased\s+(\w+)\s+versions?$/i,select:function(e,t){var r=FL(t.browser,e);return r.versions.filter(function(e){return-1===r.released.indexOf(e)}).map(jL(r.name))}},last_years:{matches:["years"],regexp:/^last\s+(\d*.?\d+)\s+years?$/i,select:function(e,t){return OL(Date.now()-31558432982.4*t.years,e)}},since_y:{matches:["year"],regexp:/^since (\d+)$/i,select:$L},since_y_m:{matches:["year","month"],regexp:/^since (\d+)-(\d+)$/i,select:$L},since_y_m_d:{matches:["year","month","day"],regexp:/^since (\d+)-(\d+)-(\d+)$/i,select:$L},popularity:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/,select:function(e,t){var r=parseFloat(t.popularity),a=KL.usage.global;return Object.keys(a).reduce(function(e,n){return">"===t.sign?a[n]>r&&e.push(n):"<"===t.sign?a[n]<r&&e.push(n):"<="===t.sign?a[n]<=r&&e.push(n):a[n]>=r&&e.push(n),e},[])}},popularity_in_my_stats:{matches:["sign","popularity"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/,select:function(e,t){var r=parseFloat(t.popularity);if(!e.customUsage)throw new yL("Custom usage statistics was not provided");var a=e.customUsage;return Object.keys(a).reduce(function(e,n){var s=a[n];return null==s||(">"===t.sign?s>r&&e.push(n):"<"===t.sign?s<r&&e.push(n):"<="===t.sign?s<=r&&e.push(n):s>=r&&e.push(n)),e},[])}},popularity_in_config_stats:{matches:["sign","popularity","config"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/,select:function(e,t){var r=parseFloat(t.popularity),a=JL(e,t.config);return Object.keys(a).reduce(function(e,n){var s=a[n];return null==s||(">"===t.sign?s>r&&e.push(n):"<"===t.sign?s<r&&e.push(n):"<="===t.sign?s<=r&&e.push(n):s>=r&&e.push(n)),e},[])}},popularity_in_place:{matches:["sign","popularity","place"],regexp:/^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/,select:function(e,t){var r=parseFloat(t.popularity),a=t.place;a=2===a.length?a.toUpperCase():a.toLowerCase(),hL.loadCountry(KL.usage,a,KL.data);var n=KL.usage[a];return Object.keys(n).reduce(function(e,a){var s=n[a];return null==s||(">"===t.sign?s>r&&e.push(a):"<"===t.sign?s<r&&e.push(a):"<="===t.sign?s<=r&&e.push(a):s>=r&&e.push(a)),e},[])}},cover:{matches:["coverage"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i,select:QL},cover_in:{matches:["coverage","place"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i,select:QL},cover_config:{matches:["coverage","config"],regexp:/^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/i,select:QL},supports:{matches:["supportType","feature"],regexp:/^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/,select:function(e,t){hL.loadFeature(KL.cache,t.feature);var r="fully"!==t.supportType,a=KL.cache[t.feature],n=[];for(var s in a){for(var o=BL(s,e),i=o.released.length-1;i>=0&&!(o.released[i]in a[s]);)i--;var d=e.mobileToDesktop&&s in KL.desktopNames&&UL(a[s][o.released[i]],r);o.versions.forEach(function(e){var t=a[s][e];void 0===t&&d&&(t=a[KL.desktopNames[s]][e]),UL(t,r)&&n.push(s+" "+e)})}return n}},electron_range:{matches:["from","to"],regexp:/^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,t){var r=RL(t.from),a=RL(t.to),n=parseFloat(t.from),s=parseFloat(t.to);if(!fL[r])throw new yL("Unknown version "+n+" of electron");if(!fL[a])throw new yL("Unknown version "+s+" of electron");return Object.keys(fL).filter(function(e){var t=parseFloat(e);return t>=n&&t<=s}).map(function(e){return"chrome "+fL[e]})}},node_range:{matches:["from","to"],regexp:/^node\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,t){return KL.nodeVersions.filter(_L(">=",t.from)).filter(_L("<=",t.to)).map(function(e){return"node "+e})}},browser_range:{matches:["browser","from","to"],regexp:/^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i,select:function(e,t){var r=FL(t.browser,e),a=parseFloat(DL(r,t.from)||t.from),n=parseFloat(DL(r,t.to)||t.to);return r.released.filter(function(e){var t=parseFloat(e);return t>=a&&t<=n}).map(jL(r.name))}},electron_ray:{matches:["sign","version"],regexp:/^electron\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,t){var r=RL(t.version);return Object.keys(fL).filter(PL(t.sign,r)).map(function(e){return"chrome "+fL[e]})}},node_ray:{matches:["sign","version"],regexp:/^node\s*(>=?|<=?)\s*([\d.]+)$/i,select:function(e,t){return KL.nodeVersions.filter(function(e,t){return(t=t.split(".").map(AL))[1]=t[1]||0,t[2]=t[2]||0,">"===e?function(e){return CL(e=e.split(".").map(AL),t)>0}:">="===e?function(e){return CL(e=e.split(".").map(AL),t)>=0}:"<"===e?function(e){return e=e.split(".").map(AL),CL(t,e)>0}:function(e){return e=e.split(".").map(AL),CL(t,e)>=0}}(t.sign,t.version)).map(function(e){return"node "+e})}},browser_ray:{matches:["browser","sign","version"],regexp:/^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/,select:function(e,t){var r=t.version,a=FL(t.browser,e),n=KL.versionAliases[a.name][r];return n&&(r=n),a.released.filter(PL(t.sign,r)).map(function(e){return a.name+" "+e})}},firefox_esr:{matches:[],regexp:/^(firefox|ff|fx)\s+esr$/i,select:function(){return["firefox 128","firefox 140"]}},opera_mini_all:{matches:[],regexp:/(operamini|op_mini)\s+all/i,select:function(){return["op_mini all"]}},electron_version:{matches:["version"],regexp:/^electron\s+([\d.]+)$/i,select:function(e,t){var r=RL(t.version),a=fL[r];if(!a)throw new yL("Unknown version "+t.version+" of electron");return["chrome "+a]}},node_major_version:{matches:["version"],regexp:/^node\s+(\d+)$/i,select:YL},node_minor_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+)$/i,select:YL},node_patch_version:{matches:["version"],regexp:/^node\s+(\d+\.\d+\.\d+)$/i,select:YL},current_node:{matches:[],regexp:/^current\s+node$/i,select:function(e){return[hL.currentNode(qL,e)]}},maintained_node:{matches:[],regexp:/^maintained\s+node\s+versions$/i,select:function(e){var t=Date.now(),r=Object.keys(gL).filter(function(e){return t<Date.parse(gL[e].end)&&t>Date.parse(gL[e].start)&&function(e){var t=e.slice(1);return KL.nodeVersions.some(function(e){return vL(e,t)})}(e)}).map(function(e){return"node "+e.slice(1)});return qL(r,e)}},phantomjs_1_9:{matches:[],regexp:/^phantomjs\s+1.9$/i,select:function(){return["safari 5"]}},phantomjs_2_1:{matches:[],regexp:/^phantomjs\s+2.1$/i,select:function(){return["safari 6"]}},browser_version:{matches:["browser","version"],regexp:/^(\w+)\s+(tp|[\d.]+)$/i,select:function(e,t){var r=t.version;/^tp$/i.test(r)&&(r="TP");var a=FL(t.browser,e),n=DL(a,r);if(n)r=n;else{if(!(n=DL(a,n=-1===r.indexOf(".")?r+".0":r.replace(/\.0$/,"")))){if(e.ignoreUnknownVersions)return[];throw new yL("Unknown version "+r+" of "+t.browser)}r=n}return[a.name+" "+r]}},browserslist_config:{matches:[],regexp:/^browserslist config$/i,needsPath:!0,select:function(e){return KL(void 0,e)}},extends:{matches:["config"],regexp:/^extends (.+)$/i,needsPath:!0,select:function(e,t){return qL(hL.loadQueries(e,t.config),e)}},defaults:{matches:[],regexp:/^defaults$/i,select:function(e){return qL(KL.defaults,e)}},dead:{matches:[],regexp:/^dead$/i,select:function(e){return qL(["Baidu >= 0","ie <= 11","ie_mob <= 11","bb <= 10","op_mob <= 12.1","samsung 4"],e)}},unknown:{matches:[],regexp:/^(\w+)$/i,select:function(e,t){throw BL(t.query,e)?new yL("Specify versions in Browserslist query for browser "+t.query):(r=t.query,new yL("Unknown browser query `"+r+"`. Maybe you are using old Browserslist or made typo in query."));var r}}};!function(){for(var e in pL){var t=pL[e];KL.data[e]={name:e,versions:xL(pL[e].versions),released:xL(pL[e].versions.slice(0,-3)),releaseDate:pL[e].release_date},TL(KL.usage.global,e,t.usage_global),KL.versionAliases[e]={};for(var r=0;r<t.versions.length;r++){var a=t.versions[r];if(a&&-1!==a.indexOf("-"))for(var n=a.split("-"),s=0;s<n.length;s++)KL.versionAliases[e][n[s]]=a}}KL.nodeVersions=uL.map(function(e){return e.version})}();var eU=KL,tU=Math.min;function rU(e,t){var r=t.map(function(t){return function(e,t){var r,a,n=[],s=[],o=e.length,i=t.length;if(!o)return i;if(!i)return o;for(a=0;a<=i;a++)n[a]=a;for(r=1;r<=o;r++){for(s=[r],a=1;a<=i;a++)s[a]=e[r-1]===t[a-1]?n[a-1]:tU(n[a-1],n[a],s[a-1])+1;n=s}return s[i]}(t,e)});return t[r.indexOf(tU.apply(void 0,b(r)))]}var aU,nU,sU,oU,iU,dU,cU=function(){function e(e){this.descriptor=e}var t=e.prototype;return t.validateTopLevelOptions=function(e,t){for(var r=Object.keys(t),a=0,n=Object.keys(e);a<n.length;a++){var s=n[a];if(!r.includes(s))throw new Error(this.formatMessage("'"+s+"' is not a valid top-level option.\n- Did you mean '"+rU(s,r)+"'?"))}},t.validateBooleanOption=function(e,t,r){return void 0===t?r:(this.invariant("boolean"==typeof t,"'"+e+"' option must be a boolean."),t)},t.validateStringOption=function(e,t,r){return void 0===t?r:(this.invariant("string"==typeof t,"'"+e+"' option must be a string."),t)},t.invariant=function(e,t){if(!e)throw new Error(this.formatMessage(t))},t.formatMessage=function(e){return this.descriptor+": "+e},o(e)}(),lU=Object.freeze({__proto__:null,OptionValidator:cU,findSuggestion:rU});function uU(){if(oU)return sU;function e(t){var r=this;if(r instanceof e||(r=new e),r.tail=null,r.head=null,r.length=0,t&&"function"==typeof t.forEach)t.forEach(function(e){r.push(e)});else if(arguments.length>0)for(var a=0,n=arguments.length;a<n;a++)r.push(arguments[a]);return r}function t(e,t,r){var a=t===e.head?new n(r,null,t,e):new n(r,t,t.next,e);return null===a.next&&(e.tail=a),null===a.prev&&(e.head=a),e.length++,a}function r(e,t){e.tail=new n(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function a(e,t){e.head=new n(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function n(e,t,r,a){if(!(this instanceof n))return new n(e,t,r,a);this.list=a,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}oU=1,sU=e,e.Node=n,e.create=e,e.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t},e.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}},e.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}},e.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)r(this,arguments[e]);return this.length},e.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)a(this,arguments[e]);return this.length},e.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}},e.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}},e.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,a=0;null!==r;a++)e.call(t,r.value,a,this),r=r.next},e.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,a=this.length-1;null!==r;a--)e.call(t,r.value,a,this),r=r.prev},e.prototype.get=function(e){for(var t=0,r=this.head;null!==r&&t<e;t++)r=r.next;if(t===e&&null!==r)return r.value},e.prototype.getReverse=function(e){for(var t=0,r=this.tail;null!==r&&t<e;t++)r=r.prev;if(t===e&&null!==r)return r.value},e.prototype.map=function(t,r){r=r||this;for(var a=new e,n=this.head;null!==n;)a.push(t.call(r,n.value,this)),n=n.next;return a},e.prototype.mapReverse=function(t,r){r=r||this;for(var a=new e,n=this.tail;null!==n;)a.push(t.call(r,n.value,this)),n=n.prev;return a},e.prototype.reduce=function(e,t){var r,a=this.head;if(arguments.length>1)r=t;else{if(!this.head)throw new TypeError("Reduce of empty list with no initial value");a=this.head.next,r=this.head.value}for(var n=0;null!==a;n++)r=e(r,a.value,n),a=a.next;return r},e.prototype.reduceReverse=function(e,t){var r,a=this.tail;if(arguments.length>1)r=t;else{if(!this.tail)throw new TypeError("Reduce of empty list with no initial value");a=this.tail.prev,r=this.tail.value}for(var n=this.length-1;null!==a;n--)r=e(r,a.value,n),a=a.prev;return r},e.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;null!==r;t++)e[t]=r.value,r=r.next;return e},e.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;null!==r;t++)e[t]=r.value,r=r.prev;return e},e.prototype.slice=function(t,r){(r=r||this.length)<0&&(r+=this.length),(t=t||0)<0&&(t+=this.length);var a=new e;if(r<t||r<0)return a;t<0&&(t=0),r>this.length&&(r=this.length);for(var n=0,s=this.head;null!==s&&n<t;n++)s=s.next;for(;null!==s&&n<r;n++,s=s.next)a.push(s.value);return a},e.prototype.sliceReverse=function(t,r){(r=r||this.length)<0&&(r+=this.length),(t=t||0)<0&&(t+=this.length);var a=new e;if(r<t||r<0)return a;t<0&&(t=0),r>this.length&&(r=this.length);for(var n=this.length,s=this.tail;null!==s&&n>r;n--)s=s.prev;for(;null!==s&&n>t;n--,s=s.prev)a.push(s.value);return a},e.prototype.splice=function(e,r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var a=0,n=this.head;null!==n&&a<e;a++)n=n.next;var s=[];for(a=0;n&&a<r;a++)s.push(n.value),n=this.removeNode(n);null===n&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(a=2;a<arguments.length;a++)n=t(this,n,arguments[a]);return s},e.prototype.reverse=function(){for(var e=this.head,t=this.tail,r=e;null!==r;r=r.prev){var a=r.prev;r.prev=r.next,r.next=a}return this.head=t,this.tail=e,this};try{(nU?aU:(nU=1,aU=function(e){e.prototype[Symbol.iterator]=p().m(function e(){var t;return p().w(function(e){for(;;)switch(e.n){case 0:t=this.head;case 1:if(!t){e.n=3;break}return e.n=2,t.value;case 2:t=t.next,e.n=1;break;case 3:return e.a(2)}},e,this)})}))(e)}catch(e){}return sU}function pU(){if(dU)return iU;dU=1;var e=uU(),t=Symbol("max"),r=Symbol("length"),a=Symbol("lengthCalculator"),n=Symbol("allowStale"),s=Symbol("maxAge"),i=Symbol("dispose"),d=Symbol("noDisposeOnSet"),c=Symbol("lruList"),l=Symbol("cache"),u=Symbol("updateAgeOnGet"),p=function(){return 1},f=function(){function f(e){if("number"==typeof e&&(e={max:e}),e||(e={}),e.max&&("number"!=typeof e.max||e.max<0))throw new TypeError("max must be a non-negative number");this[t]=e.max||1/0;var r=e.length||p;if(this[a]="function"!=typeof r?p:r,this[n]=e.stale||!1,e.maxAge&&"number"!=typeof e.maxAge)throw new TypeError("maxAge must be a number");this[s]=e.maxAge||0,this[i]=e.dispose,this[d]=e.noDisposeOnSet||!1,this[u]=e.updateAgeOnGet||!1,this.reset()}var x=f.prototype;return x.rforEach=function(e,t){t=t||this;for(var r=this[c].tail;null!==r;){var a=r.prev;v(this,e,r,t),r=a}},x.forEach=function(e,t){t=t||this;for(var r=this[c].head;null!==r;){var a=r.next;v(this,e,r,t),r=a}},x.keys=function(){return this[c].toArray().map(function(e){return e.key})},x.values=function(){return this[c].toArray().map(function(e){return e.value})},x.reset=function(){var t=this;this[i]&&this[c]&&this[c].length&&this[c].forEach(function(e){return t[i](e.key,e.value)}),this[l]=new Map,this[c]=new e,this[r]=0},x.dump=function(){var e=this;return this[c].map(function(t){return!m(e,t)&&{k:t.key,v:t.value,e:t.now+(t.maxAge||0)}}).toArray().filter(function(e){return e})},x.dumpLru=function(){return this[c]},x.set=function(e,n,o){if((o=o||this[s])&&"number"!=typeof o)throw new TypeError("maxAge must be a number");var u=o?Date.now():0,p=this[a](n,e);if(this[l].has(e)){if(p>this[t])return h(this,this[l].get(e)),!1;var f=this[l].get(e).value;return this[i]&&(this[d]||this[i](e,f.value)),f.now=u,f.maxAge=o,f.value=n,this[r]+=p-f.length,f.length=p,this.get(e),y(this),!0}var g=new b(e,n,p,u,o);return g.length>this[t]?(this[i]&&this[i](e,n),!1):(this[r]+=g.length,this[c].unshift(g),this[l].set(e,this[c].head),y(this),!0)},x.has=function(e){if(!this[l].has(e))return!1;var t=this[l].get(e).value;return!m(this,t)},x.get=function(e){return g(this,e,!0)},x.peek=function(e){return g(this,e,!1)},x.pop=function(){var e=this[c].tail;return e?(h(this,e),e.value):null},x.del=function(e){h(this,this[l].get(e))},x.load=function(e){this.reset();for(var t=Date.now(),r=e.length-1;r>=0;r--){var a=e[r],n=a.e||0;if(0===n)this.set(a.k,a.v);else{var s=n-t;s>0&&this.set(a.k,a.v,s)}}},x.prune=function(){var e=this;this[l].forEach(function(t,r){return g(e,r,!1)})},o(f,[{key:"max",get:function(){return this[t]},set:function(e){if("number"!=typeof e||e<0)throw new TypeError("max must be a non-negative number");this[t]=e||1/0,y(this)}},{key:"allowStale",get:function(){return this[n]},set:function(e){this[n]=!!e}},{key:"maxAge",get:function(){return this[s]},set:function(e){if("number"!=typeof e)throw new TypeError("maxAge must be a non-negative number");this[s]=e,y(this)}},{key:"lengthCalculator",get:function(){return this[a]},set:function(e){var t=this;"function"!=typeof e&&(e=p),e!==this[a]&&(this[a]=e,this[r]=0,this[c].forEach(function(e){e.length=t[a](e.value,e.key),t[r]+=e.length})),y(this)}},{key:"length",get:function(){return this[r]}},{key:"itemCount",get:function(){return this[c].length}}])}(),g=function(e,t,r){var a=e[l].get(t);if(a){var s=a.value;if(m(e,s)){if(h(e,a),!e[n])return}else r&&(e[u]&&(a.value.now=Date.now()),e[c].unshiftNode(a));return s.value}},m=function(e,t){if(!t||!t.maxAge&&!e[s])return!1;var r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[s]&&r>e[s]},y=function(e){if(e[r]>e[t])for(var a=e[c].tail;e[r]>e[t]&&null!==a;){var n=a.prev;h(e,a),a=n}},h=function(e,t){if(t){var a=t.value;e[i]&&e[i](a.key,a.value),e[r]-=a.length,e[l].delete(a.key),e[c].removeNode(t)}},b=o(function(e,t,r,a,n){this.key=e,this.value=t,this.length=r,this.now=a,this.maxAge=n||0}),v=function(e,t,r,a){var s=r.value;m(e,s)&&(h(e,r),e[n]||(s=void 0)),s&&t.call(a,s.value,s.key,e)};return iU=f}var fU=(void z.env.BABEL_8_BREAKING,pU());var gU=(void z.env.BABEL_8_BREAKING,FO()),mU={safari:"tp"},yU={and_chr:"chrome",and_ff:"firefox",android:"android",chrome:"chrome",edge:"edge",firefox:"firefox",ie:"ie",ie_mob:"ie",ios_saf:"ios",node:"node",deno:"deno",op_mob:"opera_mobile",opera:"opera",safari:"safari",samsung:"samsung"},hU=/^(?:\d+|\d(?:\d?[^\d\n\r\u2028\u2029]\d+|\d{2,}(?:[^\d\n\r\u2028\u2029]\d+)?))$/,bU=new cU("@babel/helper-compilation-targets");function vU(e,t){return e&&gU.lt(e,t)?e:t}function xU(e){if("string"==typeof e&&gU.valid(e))return e;bU.invariant("number"==typeof e||"string"==typeof e&&hU.test(e),"'"+e+"' is not a valid version"),e=e.toString();for(var t=0,r=0;(t=e.indexOf(".",t+1))>0;)r++;return e+".0".repeat(2-r)}function RU(e,t){var r=mU[t];return!!r&&r===e.toString().toLowerCase()}function jU(e,t,r){var a=mU[r];return e===a?t:t===a?e:vU(e,t)}function wU(e,t,r){return jU(e,t,r)===e?t:e}function EU(e,t){var r=e[t];return r||"android"!==t?r:e.chrome}var SU={node:"node",deno:"deno",chrome:"chrome",opera:"opera",edge:"edge",firefox:"firefox",safari:"safari",ie:"ie",ios:"ios",android:"android",electron:"electron",samsung:"samsung",rhino:"rhino",opera_mobile:"opera_mobile"};function TU(e){if("string"!=typeof e)return e;var t=gU.parse(e),r=t.major,a=t.minor,n=t.patch,s=[r];return(a||n)&&s.push(a),n&&s.push(n),s.join(".")}function PU(e){return Object.keys(e).reduce(function(t,r){var a=e[r];return"string"==typeof a&&mU[r]!==a&&(a=TU(a)),t[r]=a,t},{})}function AU(e,t,r){var a=r[e]||{};return Object.keys(t).reduce(function(e,r){var n=EU(a,r),s=t[r];if(n){var o=RU(n,r);RU(s,r)||!o&&!gU.lt(s.toString(),xU(n))||(e[r]=TU(s))}else e[r]=TU(s);return e},{})}var kU={"transform-explicit-resource-management":{chrome:"134",edge:"134",firefox:"141",node:"24",electron:"35.0"},"transform-duplicate-named-capturing-groups-regex":{chrome:"126",opera:"112",edge:"126",firefox:"129",safari:"17.4",node:"23",ios:"17.4",electron:"31.0"},"transform-regexp-modifiers":{chrome:"125",opera:"111",edge:"125",firefox:"132",node:"23",samsung:"27",electron:"31.0"},"transform-unicode-sets-regex":{chrome:"112",opera:"98",edge:"112",firefox:"116",safari:"17",node:"20",deno:"1.32",ios:"17",samsung:"23",opera_mobile:"75",electron:"24.0"},"bugfix/transform-v8-static-class-fields-redefine-readonly":{chrome:"98",opera:"84",edge:"98",firefox:"75",safari:"15",node:"12",deno:"1.18",ios:"15",samsung:"11",opera_mobile:"52",electron:"17.0"},"bugfix/transform-firefox-class-in-computed-class-key":{chrome:"74",opera:"62",edge:"79",firefox:"126",safari:"16",node:"12",deno:"1",ios:"16",samsung:"11",opera_mobile:"53",electron:"6.0"},"bugfix/transform-safari-class-field-initializer-scope":{chrome:"74",opera:"62",edge:"79",firefox:"69",safari:"16",node:"12",deno:"1",ios:"16",samsung:"11",opera_mobile:"53",electron:"6.0"},"transform-class-static-block":{chrome:"94",opera:"80",edge:"94",firefox:"93",safari:"16.4",node:"16.11",deno:"1.14",ios:"16.4",samsung:"17",opera_mobile:"66",electron:"15.0"},"proposal-class-static-block":{chrome:"94",opera:"80",edge:"94",firefox:"93",safari:"16.4",node:"16.11",deno:"1.14",ios:"16.4",samsung:"17",opera_mobile:"66",electron:"15.0"},"transform-private-property-in-object":{chrome:"91",opera:"77",edge:"91",firefox:"90",safari:"15",node:"16.9",deno:"1.9",ios:"15",samsung:"16",opera_mobile:"64",electron:"13.0"},"proposal-private-property-in-object":{chrome:"91",opera:"77",edge:"91",firefox:"90",safari:"15",node:"16.9",deno:"1.9",ios:"15",samsung:"16",opera_mobile:"64",electron:"13.0"},"transform-class-properties":{chrome:"74",opera:"62",edge:"79",firefox:"90",safari:"14.1",node:"12",deno:"1",ios:"14.5",samsung:"11",opera_mobile:"53",electron:"6.0"},"proposal-class-properties":{chrome:"74",opera:"62",edge:"79",firefox:"90",safari:"14.1",node:"12",deno:"1",ios:"14.5",samsung:"11",opera_mobile:"53",electron:"6.0"},"transform-private-methods":{chrome:"84",opera:"70",edge:"84",firefox:"90",safari:"15",node:"14.6",deno:"1",ios:"15",samsung:"14",opera_mobile:"60",electron:"10.0"},"proposal-private-methods":{chrome:"84",opera:"70",edge:"84",firefox:"90",safari:"15",node:"14.6",deno:"1",ios:"15",samsung:"14",opera_mobile:"60",electron:"10.0"},"transform-numeric-separator":{chrome:"75",opera:"62",edge:"79",firefox:"70",safari:"13",node:"12.5",deno:"1",ios:"13",samsung:"11",rhino:"1.7.14",opera_mobile:"54",electron:"6.0"},"proposal-numeric-separator":{chrome:"75",opera:"62",edge:"79",firefox:"70",safari:"13",node:"12.5",deno:"1",ios:"13",samsung:"11",rhino:"1.7.14",opera_mobile:"54",electron:"6.0"},"transform-logical-assignment-operators":{chrome:"85",opera:"71",edge:"85",firefox:"79",safari:"14",node:"15",deno:"1.2",ios:"14",samsung:"14",opera_mobile:"60",electron:"10.0"},"proposal-logical-assignment-operators":{chrome:"85",opera:"71",edge:"85",firefox:"79",safari:"14",node:"15",deno:"1.2",ios:"14",samsung:"14",opera_mobile:"60",electron:"10.0"},"transform-nullish-coalescing-operator":{chrome:"80",opera:"67",edge:"80",firefox:"72",safari:"13.1",node:"14",deno:"1",ios:"13.4",samsung:"13",rhino:"1.8",opera_mobile:"57",electron:"8.0"},"proposal-nullish-coalescing-operator":{chrome:"80",opera:"67",edge:"80",firefox:"72",safari:"13.1",node:"14",deno:"1",ios:"13.4",samsung:"13",rhino:"1.8",opera_mobile:"57",electron:"8.0"},"transform-optional-chaining":{chrome:"91",opera:"77",edge:"91",firefox:"74",safari:"13.1",node:"16.9",deno:"1.9",ios:"13.4",samsung:"16",opera_mobile:"64",electron:"13.0"},"proposal-optional-chaining":{chrome:"91",opera:"77",edge:"91",firefox:"74",safari:"13.1",node:"16.9",deno:"1.9",ios:"13.4",samsung:"16",opera_mobile:"64",electron:"13.0"},"transform-json-strings":{chrome:"66",opera:"53",edge:"79",firefox:"62",safari:"12",node:"10",deno:"1",ios:"12",samsung:"9",rhino:"1.7.14",opera_mobile:"47",electron:"3.0"},"proposal-json-strings":{chrome:"66",opera:"53",edge:"79",firefox:"62",safari:"12",node:"10",deno:"1",ios:"12",samsung:"9",rhino:"1.7.14",opera_mobile:"47",electron:"3.0"},"transform-optional-catch-binding":{chrome:"66",opera:"53",edge:"79",firefox:"58",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"proposal-optional-catch-binding":{chrome:"66",opera:"53",edge:"79",firefox:"58",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"transform-parameters":{chrome:"49",opera:"36",edge:"18",firefox:"52",safari:"16.3",node:"6",deno:"1",ios:"16.3",samsung:"5",opera_mobile:"36",electron:"0.37"},"transform-async-generator-functions":{chrome:"63",opera:"50",edge:"79",firefox:"57",safari:"12",node:"10",deno:"1",ios:"12",samsung:"8",opera_mobile:"46",electron:"3.0"},"proposal-async-generator-functions":{chrome:"63",opera:"50",edge:"79",firefox:"57",safari:"12",node:"10",deno:"1",ios:"12",samsung:"8",opera_mobile:"46",electron:"3.0"},"transform-object-rest-spread":{chrome:"60",opera:"47",edge:"79",firefox:"55",safari:"11.1",node:"8.3",deno:"1",ios:"11.3",samsung:"8",opera_mobile:"44",electron:"2.0"},"proposal-object-rest-spread":{chrome:"60",opera:"47",edge:"79",firefox:"55",safari:"11.1",node:"8.3",deno:"1",ios:"11.3",samsung:"8",opera_mobile:"44",electron:"2.0"},"transform-dotall-regex":{chrome:"62",opera:"49",edge:"79",firefox:"78",safari:"11.1",node:"8.10",deno:"1",ios:"11.3",samsung:"8",rhino:"1.7.15",opera_mobile:"46",electron:"3.0"},"transform-unicode-property-regex":{chrome:"64",opera:"51",edge:"79",firefox:"78",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"proposal-unicode-property-regex":{chrome:"64",opera:"51",edge:"79",firefox:"78",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"transform-named-capturing-groups-regex":{chrome:"64",opera:"51",edge:"79",firefox:"78",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"9",opera_mobile:"47",electron:"3.0"},"transform-async-to-generator":{chrome:"55",opera:"42",edge:"15",firefox:"52",safari:"11",node:"7.6",deno:"1",ios:"11",samsung:"6",opera_mobile:"42",electron:"1.6"},"transform-exponentiation-operator":{chrome:"52",opera:"39",edge:"14",firefox:"52",safari:"10.1",node:"7",deno:"1",ios:"10.3",samsung:"6",rhino:"1.7.14",opera_mobile:"41",electron:"1.3"},"transform-template-literals":{chrome:"41",opera:"28",edge:"13",firefox:"34",safari:"13",node:"4",deno:"1",ios:"13",samsung:"3.4",opera_mobile:"28",electron:"0.21"},"transform-literals":{chrome:"44",opera:"31",edge:"12",firefox:"53",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.15",opera_mobile:"32",electron:"0.30"},"transform-function-name":{chrome:"51",opera:"38",edge:"79",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"transform-arrow-functions":{chrome:"47",opera:"34",edge:"13",firefox:"43",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.13",opera_mobile:"34",electron:"0.36"},"transform-block-scoped-functions":{chrome:"41",opera:"28",edge:"12",firefox:"46",safari:"10",node:"4",deno:"1",ie:"11",ios:"10",samsung:"3.4",opera_mobile:"28",electron:"0.21"},"transform-classes":{chrome:"46",opera:"33",edge:"13",firefox:"45",safari:"10",node:"5",deno:"1",ios:"10",samsung:"5",opera_mobile:"33",electron:"0.36"},"transform-object-super":{chrome:"46",opera:"33",edge:"13",firefox:"45",safari:"10",node:"5",deno:"1",ios:"10",samsung:"5",opera_mobile:"33",electron:"0.36"},"transform-shorthand-properties":{chrome:"43",opera:"30",edge:"12",firefox:"33",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.14",opera_mobile:"30",electron:"0.27"},"transform-duplicate-keys":{chrome:"42",opera:"29",edge:"12",firefox:"34",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",opera_mobile:"29",electron:"0.25"},"transform-computed-properties":{chrome:"44",opera:"31",edge:"12",firefox:"34",safari:"7.1",node:"4",deno:"1",ios:"8",samsung:"4",rhino:"1.8",opera_mobile:"32",electron:"0.30"},"transform-for-of":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"transform-sticky-regex":{chrome:"49",opera:"36",edge:"13",firefox:"3",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"36",electron:"0.37"},"transform-unicode-escapes":{chrome:"44",opera:"31",edge:"12",firefox:"53",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.15",opera_mobile:"32",electron:"0.30"},"transform-unicode-regex":{chrome:"50",opera:"37",edge:"13",firefox:"46",safari:"12",node:"6",deno:"1",ios:"12",samsung:"5",opera_mobile:"37",electron:"1.1"},"transform-spread":{chrome:"46",opera:"33",edge:"13",firefox:"45",safari:"10",node:"5",deno:"1",ios:"10",samsung:"5",opera_mobile:"33",electron:"0.36"},"transform-destructuring":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"transform-block-scoping":{chrome:"50",opera:"37",edge:"14",firefox:"53",safari:"11",node:"6",deno:"1",ios:"11",samsung:"5",opera_mobile:"37",electron:"1.1"},"transform-typeof-symbol":{chrome:"48",opera:"35",edge:"12",firefox:"36",safari:"9",node:"6",deno:"1",ios:"9",samsung:"5",rhino:"1.8",opera_mobile:"35",electron:"0.37"},"transform-new-target":{chrome:"46",opera:"33",edge:"14",firefox:"41",safari:"10",node:"5",deno:"1",ios:"10",samsung:"5",opera_mobile:"33",electron:"0.36"},"transform-regenerator":{chrome:"50",opera:"37",edge:"13",firefox:"53",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"},"transform-member-expression-literals":{chrome:"7",opera:"12",edge:"12",firefox:"2",safari:"5.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"transform-property-literals":{chrome:"7",opera:"12",edge:"12",firefox:"2",safari:"5.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"transform-reserved-words":{chrome:"13",opera:"10.50",edge:"12",firefox:"2",safari:"3.1",node:"0.6",deno:"1",ie:"9",android:"4.4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"transform-export-namespace-from":{chrome:"72",deno:"1.0",edge:"79",firefox:"80",node:"13.2.0",opera:"60",opera_mobile:"51",safari:"14.1",ios:"14.5",samsung:"11.0",android:"72",electron:"5.0"},"proposal-export-namespace-from":{chrome:"72",deno:"1.0",edge:"79",firefox:"80",node:"13.2.0",opera:"60",opera_mobile:"51",safari:"14.1",ios:"14.5",samsung:"11.0",android:"72",electron:"5.0"}};function CU(e,t,r){var a,n,s,o=void 0===r?{}:r,i=o.compatData,d=void 0===i?kU:i,c=o.includes,l=o.excludes;return(null==l||!l.has(e))&&(!(null==c||!c.has(e))||(a=t,n=d[e],!(0!==(s=Object.keys(a)).length&&0===s.filter(function(e){var t=EU(n,e);if(!t)return!0;var r=a[e];if(RU(r,e))return!1;if(RU(t,e))return!0;if(!gU.valid(r.toString()))throw new Error('Invalid version passed for target "'+e+'": "'+r+'". Versions must be in semver format (major.minor.patch)');return gU.gt(xU(t),r.toString())}).length)))}function _U(e,t,r,a,n,s,o){var i=new Set,d={compatData:e,includes:t,excludes:r};for(var c in e)if(CU(c,a,d))i.add(c);else if(o){var l=o.get(c);l&&i.add(l)}return null==n||n.forEach(function(e){return!r.has(e)&&i.add(e)}),null==s||s.forEach(function(e){return!t.has(e)&&i.delete(e)}),i}var IU={chrome:"61",and_chr:"61",edge:"16",firefox:"60",and_ff:"60",node:"13.2.0",opera:"48",op_mob:"45",safari:"10.1",ios:"10.3",samsung:"8.2",android:"61",electron:"2.0",ios_saf:"10.3"},DU=new cU("@babel/helper-compilation-targets");function OU(e){return"string"==typeof e||Array.isArray(e)&&e.every(function(e){return"string"==typeof e})}function NU(e,t){try{return xU(t)}catch(r){throw new Error(DU.formatMessage("'"+t+"' is not a valid value for 'targets."+e+"'."))}}function BU(e){return["node",!0===e||"current"===e?z.versions.node.split("-")[0]:NU("node",e)]}function MU(e,t){return[e,RU(t,e)?t.toLowerCase():NU(e,t)]}function FU(e,t){return function(e){return e.reduce(function(e,t){var r=y(t.split(" "),2),a=r[0],n=r[1],s=yU[a];if(!s)return e;try{var o=n.split("-")[0].toLowerCase(),i=RU(o,s);if(!e[s])return e[s]=i?o:xU(o),e;var d=e[s],c=RU(d,s);if(c&&i)e[s]=jU(d,o,s);else if(c)e[s]=xU(o);else if(!c&&!i){var l=xU(o);e[s]=vU(d,l)}}catch(e){}return e},{})}(eU(e,{mobileToDesktop:!0,env:t}))}var LU=new fU({max:64});function UU(e,t){var r,a;void 0===e&&(e={}),void 0===t&&(t={});var n=e,s=n.browsers,o=n.esmodules,i=t,d=i.configPath,c=void 0===d?".":d,l=i.onBrowserslistConfigFound;!function(e){DU.invariant(void 0===e||OU(e),"'"+String(e)+"' is not a valid browserslist query")}(s);var u=function(e){var t=Object.assign({},e);return delete t.esmodules,delete t.browsers,t}(e),p=function(e){for(var t=Object.keys(SU),r=0,a=Object.keys(e);r<a.length;r++){var n=a[r];if(!(n in SU))throw new Error(DU.formatMessage("'"+n+"' is not a valid target\n- Did you mean '"+rU(n,t)+"'?"))}return e}(u),f=!!s||Object.keys(p).length>0,g=!t.ignoreBrowserslistConfig&&!f;if(!s&&g){if(!(s=z.env.BROWSERSLIST)){var m=t.configFile||z.env.BROWSERSLIST_CONFIG||eU.findConfigFile(c);null!=m&&(null==l||l(m),s=eU.loadConfig({config:m,env:t.browserslistEnv}))}null==s&&(s=[])}if(!o||"intersect"===o&&null!=(r=s)&&r.length||(s=Object.keys(IU).map(function(e){return e+" >= "+IU[e]}).join(", "),o=!1),null!=(a=s)&&a.length){var h=function(e,t){var r="string"==typeof e?e:e.join()+t,a=LU.get(r);return a||(a=FU(e,t),LU.set(r,a)),Object.assign({},a)}(s,t.browserslistEnv);if("intersect"===o)for(var b=0,v=Object.keys(h);b<v.length;b++){var x=v[b];if("deno"!==x&&"ie"!==x){var R=IU["opera_mobile"===x?"op_mob":x];if(R){var j=h[x];h[x]=wU(j,xU(R),x)}else delete h[x]}else delete h[x]}p=Object.assign(h,p)}for(var w,E={},S=[],T=0,P=Object.keys(p).sort();T<P.length;T++){var A=P[T],k=p[A];"number"==typeof k&&k%1!=0&&S.push({target:A,value:k});var C=y("node"===A?BU(k):MU(A,k),2),_=C[0],I=C[1];I&&(E[_]=I)}return(w=S).length&&(console.warn("Warning, the following targets are using a decimal version:\n"),w.forEach(function(e){var t=e.target,r=e.value;return console.warn(" "+t+": "+r)}),console.warn("\nWe recommend using a string for minor/patch versions to avoid numbers like 6.10\ngetting parsed as 6.1, which can lead to unexpected behavior.\n")),E}var qU=Object.freeze({__proto__:null,TargetNames:SU,default:UU,filterItems:_U,getInclusionReasons:AU,isBrowsersQueryValid:OU,isRequired:CU,prettifyTargets:PU,unreleasedLabels:mU});function GU(e,t){var r,a=e.targets;return"string"==typeof a||Array.isArray(a)?r={browsers:a}:a&&(r="esmodules"in a?Object.assign({},a,{esmodules:"intersect"}):a),UU(r,{ignoreBrowserslistConfig:!0,browserslistEnv:e.browserslistEnv})}var WU=p().m(KU),VU=p().m(aq),HU=p().m(nq),zU=p().m(sq);function KU(e){return p().w(function(t){for(;;)if(0===t.n)return t.a(2,e)},WU)}function XU(e,t){return"string"==typeof e.browserslistConfigFile&&(e.browserslistConfigFile=void e.browserslistConfigFile),e}function JU(e,t,r){var a=t.plugins,n=t.presets,s=t.passPerPreset;return{options:XU(t),plugins:a?function(){return eq(a,e)(r)}:function(){return KU([])},presets:n?function(){return QU(n,e)(r)(!!s)}:function(){return KU([])}}}function YU(e,t,r){return{options:XU(t),plugins:AF(function(){return nq(t.plugins||[],e,r)}),presets:AF(function(){return aq(t.presets||[],e,r,!!t.passPerPreset)})}}var $U=new WeakMap,QU=NF(function(e,t){var r=t.using(function(e){return e});return MF(function(t){return BF(p().m(function a(n){var s;return p().w(function(a){for(;;)switch(a.n){case 0:return a.d(g(aq(e,r,t,n)),1);case 1:return s=a.v,a.a(2,s.map(function(e){return rq($U,e)}))}},a)}))})}),ZU=new WeakMap,eq=NF(function(e,t){var r=t.using(function(e){return e});return BF(p().m(function t(a){var n;return p().w(function(t){for(;;)switch(t.n){case 0:return t.d(g(nq(e,r,a)),1);case 1:return n=t.v,t.a(2,n.map(function(e){return rq(ZU,e)}))}},t)}))}),tq={};function rq(e,t){var r=t.value,a=t.options,n=void 0===a?tq:a;if(!1===n)return t;var s=e.get(r);s||(s=new WeakMap,e.set(r,s));var o=s.get(n);if(o||(o=[],s.set(n,o)),!o.includes(t)){var i=o.filter(function(e){return function(e,t){var r,a,n,s;return e.name===t.name&&e.value===t.value&&e.options===t.options&&e.dirname===t.dirname&&e.alias===t.alias&&e.ownPass===t.ownPass&&(null==(r=e.file)?void 0:r.request)===(null==(a=t.file)?void 0:a.request)&&(null==(n=e.file)?void 0:n.resolved)===(null==(s=t.file)?void 0:s.resolved)}(e,t)});if(i.length>0)return i[0];o.push(t)}return t}function aq(e,t,r,a){return p().w(function(n){for(;;)switch(n.n){case 0:return n.d(g(sq("preset",e,t,r,a)),1);case 1:return n.a(2,n.v)}},VU)}function nq(e,t,r){return p().w(function(a){for(;;)switch(a.n){case 0:return a.d(g(sq("plugin",e,t,r)),1);case 1:return a.a(2,a.v)}},HU)}function sq(e,t,r,a,n){var s;return p().w(function(o){for(;;)switch(o.n){case 0:return o.d(g(aF.all(t.map(function(t,s){return oq(t,r,{type:e,alias:a+"$"+s,ownPass:!!n})}))),1);case 1:return iq(s=o.v),o.a(2,s)}},zU)}function oq(e,t,r){var a=r.type,n=r.alias,s=r.ownPass;return p().m(function r(){var o,i,d,c,l,u,f,m,h,b,v;return p().w(function(r){for(;;)switch(r.n){case 0:if(!(o=lq(e))){r.n=1;break}return r.a(2,o);case 1:if(c=e,Array.isArray(c)&&(3===c.length?(l=y(c,3),c=l[0],d=l[1],i=l[2]):(u=y(c,2),c=u[0],d=u[1])),f=void 0,m=null,"string"!=typeof c){r.n=4;break}if("string"==typeof a){r.n=2;break}throw new Error("To resolve a string-based item, the type of item must be given");case 2:return h="plugin"===a?XM:JM,b=c,r.d(g(h(c,t)),3);case 3:v=r.v,m=v.filepath,c=v.value,f={request:b,resolved:m};case 4:if(c){r.n=5;break}throw new Error("Unexpected falsy value: "+String(c));case 5:if("object"!=typeof c||!c.__esModule){r.n=7;break}if(!c.default){r.n=6;break}c=c.default,r.n=7;break;case 6:throw new Error("Must export a default export when using ES6 modules.");case 7:if("object"==typeof c||"function"==typeof c){r.n=8;break}throw new Error("Unsupported format: "+typeof c+". Expected an object or a function.");case 8:if(null===m||"object"!=typeof c||!c){r.n=9;break}throw new Error("Plugin/Preset files are not allowed to export objects, only functions. In "+m);case 9:return r.a(2,{name:i,alias:m||n,value:c,options:d,dirname:t,ownPass:s,file:f})}},r)})()}function iq(e){for(var t,r=new Map,a=function(){var a=t.value;if("function"!=typeof a.value)return 1;var n=r.get(a.value);if(n||(n=new Set,r.set(a.value,n)),n.has(a.name)){var s=e.filter(function(e){return e.value===a.value});throw new Error(["Duplicate plugin/preset detected.","If you'd like to use two separate instances of a plugin,","they need separate names, e.g.",""," plugins: ["," ['some-plugin', {}],"," ['some-plugin', {}, 'some unique name'],"," ]","","Duplicates detected are:",""+JSON.stringify(s,null,2)].join("\n"))}n.add(a.name)},n=i(e);!(t=n()).done;)a()}function dq(e){return new uq(e)}var cq=Symbol.for("@babel/core@7 - ConfigItem");function lq(e){if(null!=e&&e[cq])return e._descriptor}var uq=o(function(e){this._descriptor=void 0,this[cq]=!0,this.value=void 0,this.options=void 0,this.dirname=void 0,this.name=void 0,this.file=void 0,this._descriptor=e,Object.defineProperty(this,"_descriptor",{enumerable:!1}),Object.defineProperty(this,cq,{enumerable:!1}),this.value=this._descriptor.value,this.options=this._descriptor.options,this.dirname=this._descriptor.dirname,this.name=this._descriptor.name,this.file=this._descriptor.file?{request:this._descriptor.file.request,resolved:this._descriptor.file.resolved}:void 0,Object.freeze(this)});Object.freeze(uq.prototype);var pq,fq={auxiliaryComment:{message:"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`"},blacklist:{message:"Put the specific transforms you want in the `plugins` option"},breakConfig:{message:"This is not a necessary option in Babel 6"},experimental:{message:"Put the specific transforms you want in the `plugins` option"},externalHelpers:{message:"Use the `external-helpers` plugin instead. Check out http://babeljs.io/docs/plugins/external-helpers/"},extra:{message:""},jsxPragma:{message:"use the `pragma` option in the `react-jsx` plugin. Check out http://babeljs.io/docs/plugins/transform-react-jsx/"},loose:{message:"Specify the `loose` option for the relevant plugin you are using or use a preset that sets the option."},metadataUsedHelpers:{message:"Not required anymore as this is enabled by default"},modules:{message:"Use the corresponding module transform plugin in the `plugins` option. Check out http://babeljs.io/docs/plugins/#modules"},nonStandard:{message:"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. Also check out the react preset http://babeljs.io/docs/plugins/preset-react/"},optional:{message:"Put the specific transforms you want in the `plugins` option"},sourceMapName:{message:"The `sourceMapName` option has been removed because it makes more sense for the tooling that calls Babel to assign `map.file` themselves."},stage:{message:"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets"},whitelist:{message:"Put the specific transforms you want in the `plugins` option"},resolveModuleSource:{version:6,message:"Use `babel-plugin-module-resolver@3`'s 'resolvePath' options"},metadata:{version:6,message:"Generated plugin metadata is always included in the output result"},sourceMapTarget:{version:6,message:"The `sourceMapTarget` option has been removed because it makes more sense for the tooling that calls Babel to assign `map.file` themselves."}};function gq(e){switch(e.type){case"root":return"";case"env":return gq(e.parent)+'.env["'+e.name+'"]';case"overrides":return gq(e.parent)+".overrides["+e.index+"]";case"option":return gq(e.parent)+"."+e.name;case"access":return gq(e.parent)+"["+JSON.stringify(e.name)+"]";default:throw new Error("Assertion failure: Unknown type "+e.type)}}function mq(e,t){return{type:"access",name:t,parent:e}}function yq(e,t){if(void 0!==t&&"boolean"!=typeof t&&"inline"!==t&&"both"!==t)throw new Error(gq(e)+' must be a boolean, "inline", "both", or undefined');return t}function hq(e,t){if(void 0!==t&&"string"!=typeof t)throw new Error(gq(e)+" must be a string, or undefined");return t}function bq(e,t){if(void 0!==t&&"function"!=typeof t)throw new Error(gq(e)+" must be a function, or undefined");return t}function vq(e,t){if(void 0!==t&&"boolean"!=typeof t)throw new Error(gq(e)+" must be a boolean, or undefined");return t}function xq(e,t){if(void 0!==t&&("object"!=typeof t||Array.isArray(t)||!t))throw new Error(gq(e)+" must be an object, or undefined");return t}function Rq(e,t){if(null!=t&&!Array.isArray(t))throw new Error(gq(e)+" must be an array, or undefined");return t}function jq(e,t){var r=Rq(e,t);return null==r||r.forEach(function(t,r){return function(e,t){if("string"!=typeof t&&"function"!=typeof t&&!(t instanceof RegExp))throw new Error(gq(e)+" must be an array of string/Function/RegExp values, or undefined");return t}(mq(e,r),t)}),r}function wq(e,t){if(void 0===t)return t;if(Array.isArray(t))t.forEach(function(t,r){if(!Eq(t))throw new Error(gq(mq(e,r))+" must be a string/Function/RegExp.")});else if(!Eq(t))throw new Error(gq(e)+" must be a string/Function/RegExp, or an array of those");return t}function Eq(e){return"string"==typeof e||"function"==typeof e||e instanceof RegExp}function Sq(e,t){if(void 0!==t&&"boolean"!=typeof t&&"string"!=typeof t)throw new Error(gq(e)+" must be a undefined, a boolean, a string, got "+JSON.stringify(t));return t}function Tq(e,t){var r=Rq(e,t);return r&&r.forEach(function(t,r){return function(e,t){if(Array.isArray(t)){if(0===t.length)throw new Error(gq(e)+" must include an object");if(t.length>3)throw new Error(gq(e)+" may only be a two-tuple or three-tuple");if(Pq(mq(e,0),t[0]),t.length>1){var r=t[1];if(void 0!==r&&!1!==r&&("object"!=typeof r||Array.isArray(r)||null===r))throw new Error(gq(mq(e,1))+" must be an object, false, or undefined")}if(3===t.length){var a=t[2];if(void 0!==a&&"string"!=typeof a)throw new Error(gq(mq(e,2))+" must be a string, or undefined")}}else Pq(e,t);return t}(mq(e,r),t)}),r}function Pq(e,t){if(("object"!=typeof t||!t)&&"string"!=typeof t&&"function"!=typeof t)throw new Error(gq(e)+" must be a string, object, function");return t}function Aq(e,t){if(void 0!==t&&!OU(t))throw new Error(gq(e)+" must be undefined, a string or an array of strings")}function kq(e,t){if(("number"!=typeof t||Math.round(t)!==t)&&"string"!=typeof t)throw new Error(gq(e)+" must be a string or an integer number")}var Cq=Function.call.bind(Error.prototype.toString),_q=!!Error.captureStackTrace&&!0===(null==(pq=Object.getOwnPropertyDescriptor(Error,"stackTraceLimit"))?void 0:pq.writable),Iq="startHiding - secret - don't use this - v1",Dq="stopHiding - secret - don't use this - v1",Oq=new WeakSet,Nq=new WeakMap;function Bq(e,t){if(_q){var r=Nq.get(e);return r||Nq.set(e,r=[]),r.push(function(e){return Object.create({isNative:function(){return!1},isConstructor:function(){return!1},isToplevel:function(){return!0},getFileName:function(){return e},getLineNumber:function(){},getColumnNumber:function(){},getFunctionName:function(){},getMethodName:function(){},getTypeName:function(){},toString:function(){return e}})}(t)),e}}function Mq(e){return _q?Object.defineProperty(function(){return Fq(),e.apply(void 0,arguments)},"name",{value:Dq}):e}function Fq(){Fq=function(){};var e=Error.prepareStackTrace,t=void 0===e?Lq:e;Error.stackTraceLimit&&(Error.stackTraceLimit=Math.max(Error.stackTraceLimit,50)),Error.prepareStackTrace=function(e,r){for(var a=[],n=Oq.has(e)?"hiding":"unknown",s=0;s<r.length;s++){var o=r[s].getFunctionName();if(o===Iq)n="hiding";else if(o===Dq){var i;if("hiding"===n){if(n="showing",Nq.has(e))(i=a).unshift.apply(i,b(Nq.get(e)))}else if("unknown"===n){a=r;break}}else"hiding"!==n&&a.push(r[s])}return t(e,a)}}function Lq(e,t){return 0===t.length?Cq(e):Cq(e)+"\n at "+t.join("\n at ")}var Uq=function(e){function t(t,r){var a;return function(e){if(_q)Oq.add(e)}(a=e.call(this,t)||this),r&&Bq(a,r),a}return c(t,e),o(t)}(R(Error)),qq={cwd:hq,root:hq,rootMode:function(e,t){if(void 0!==t&&"root"!==t&&"upward"!==t&&"upward-optional"!==t)throw new Error(gq(e)+' must be a "root", "upward", "upward-optional" or undefined');return t},configFile:Sq,caller:function(e,t){var r=xq(e,t);if(r){if("string"!=typeof r.name)throw new Error(gq(e)+' set but does not contain "name" property string');for(var a=0,n=Object.keys(r);a<n.length;a++){var s=n[a],o=mq(e,s),i=r[s];if(null!=i&&"boolean"!=typeof i&&"string"!=typeof i&&"number"!=typeof i)throw new Error(gq(o)+" must be null, undefined, a boolean, a string, or a number.")}}return t},filename:hq,filenameRelative:hq,code:vq,ast:vq,cloneInputAst:vq,envName:hq},Gq={babelrc:vq,babelrcRoots:function(e,t){if(void 0===t||"boolean"==typeof t)return t;if(Array.isArray(t))t.forEach(function(t,r){if(!Eq(t))throw new Error(gq(mq(e,r))+" must be a string/Function/RegExp.")});else if(!Eq(t))throw new Error(gq(e)+" must be a undefined, a boolean, a string/Function/RegExp or an array of those, got "+JSON.stringify(t));return t}},Wq={extends:hq,ignore:jq,only:jq,targets:function(e,t){if(OU(t))return t;if("object"!=typeof t||!t||Array.isArray(t))throw new Error(gq(e)+" must be a string, an array of strings or an object");var r=mq(e,"browsers"),a=mq(e,"esmodules");Aq(r,t.browsers),vq(a,t.esmodules);for(var n=0,s=Object.keys(t);n<s.length;n++){var o=s[n],i=t[o],d=mq(e,o);if("esmodules"===o)vq(d,i);else if("browsers"===o)Aq(d,i);else{if(!hasOwnProperty.call(SU,o)){var c=Object.keys(SU).join(", ");throw new Error(gq(d)+" is not a valid target. Supported targets are "+c)}kq(d,i)}}return t},browserslistConfigFile:Sq,browserslistEnv:hq},Vq={inputSourceMap:function(e,t){if(void 0!==t&&"boolean"!=typeof t&&("object"!=typeof t||!t))throw new Error(gq(e)+" must be a boolean, object, or undefined");return t},presets:Tq,plugins:Tq,passPerPreset:vq,assumptions:function(e,t){if(void 0!==t){if("object"!=typeof t||null===t)throw new Error(gq(e)+" must be an object or undefined.");var r=e;do{r=r.parent}while("root"!==r.type);for(var a="preset"===r.source,n=0,s=Object.keys(t);n<s.length;n++){var o=s[n],i=mq(e,o);if(!Hq.has(o))throw new Error(gq(i)+" is not a supported assumption.");if("boolean"!=typeof t[o])throw new Error(gq(i)+" must be a boolean.");if(a&&!1===t[o])throw new Error(gq(i)+" cannot be set to 'false' inside presets.")}return t}},env:function(e,t){if("env"===e.parent.type)throw new Error(gq(e)+" is not allowed inside of another .env block");var r=e.parent,a=xq(e,t);if(a)for(var n=0,s=Object.keys(a);n<s.length;n++){var o=s[n],i=xq(mq(e,o),a[o]);if(i)Xq({type:"env",name:o,parent:r},i)}return a},overrides:function(e,t){if("env"===e.parent.type)throw new Error(gq(e)+" is not allowed inside an .env block");if("overrides"===e.parent.type)throw new Error(gq(e)+" is not allowed inside an .overrides block");var r=e.parent,a=Rq(e,t);if(a)for(var n,s=i(a.entries());!(n=s()).done;){var o=y(n.value,2),d=o[0],c=o[1],l=mq(e,d),u=xq(l,c);if(!u)throw new Error(gq(l)+" must be an object");Xq({type:"overrides",index:d,parent:r},u)}return a},test:wq,include:wq,exclude:wq,retainLines:vq,comments:vq,shouldPrintComment:bq,compact:function(e,t){if(void 0!==t&&"boolean"!=typeof t&&"auto"!==t)throw new Error(gq(e)+' must be a boolean, "auto", or undefined');return t},minified:vq,auxiliaryCommentBefore:hq,auxiliaryCommentAfter:hq,sourceType:function(e,t){if(void 0!==t&&"module"!==t&&"commonjs"!==t&&"script"!==t&&"unambiguous"!==t)throw new Error(gq(e)+' must be "module", "commonjs", "script", "unambiguous", or undefined');return t},wrapPluginVisitorMethod:bq,highlightCode:vq,sourceMaps:yq,sourceMap:yq,sourceFileName:hq,sourceRoot:hq,parserOpts:xq,generatorOpts:xq};Object.assign(Vq,{getModuleId:bq,moduleRoot:hq,moduleIds:vq,moduleId:hq});var Hq=new Set(["arrayLikeIsIterable","constantReexports","constantSuper","enumerableModuleMeta","ignoreFunctionLength","ignoreToPrimitiveHint","iterableIsArray","mutableTemplateObject","noClassCalls","noDocumentAll","noIncompleteNsImportDetection","noNewArrows","noUninitializedPrivateFieldAccess","objectRestNoSymbols","privateFieldsAsSymbols","privateFieldsAsProperties","pureGetters","setClassMethods","setComputedProperties","setPublicClassFields","setSpreadProperties","skipForOfIteratorClosing","superIsCallableConstructor"]);function zq(e){return"root"===e.type?e.source:zq(e.parent)}function Kq(e,t,r){try{return Xq({type:"root",source:e},t)}catch(e){var a=new Uq(e.message,r);throw e.code&&(a.code=e.code),a}}function Xq(e,t){var r=zq(e);return function(e){if(hasOwnProperty.call(e,"sourceMap")&&hasOwnProperty.call(e,"sourceMaps"))throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both")}(t),Object.keys(t).forEach(function(a){var n={type:"option",name:a,parent:e};if("preset"===r&&Wq[a])throw new Error(gq(n)+" is not allowed in preset options");if("arguments"!==r&&qq[a])throw new Error(gq(n)+" is only allowed in root programmatic options");if("arguments"!==r&&"configfile"!==r&&Gq[a]){if("babelrcfile"===r||"extendsfile"===r)throw new Error(gq(n)+' is not allowed in .babelrc or "extends"ed files, only in root programmatic options, or babel.config.js/config file options');throw new Error(gq(n)+" is only allowed in root programmatic options, or babel.config.js/config file options")}(Vq[a]||Wq[a]||Gq[a]||qq[a]||Jq)(n,t[a])}),t}function Jq(e){var t=e.name;if(fq[t]){var r=fq[t],a=r.message,n=r.version;throw new Error("Using removed Babel "+(void 0===n?5:n)+" option: "+gq(e)+" - "+a)}var s=new Error("Unknown option: "+gq(e)+". Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.");throw s.code="BABEL_UNKNOWN_OPTION",s}function Yq(e,t,r,a){if(0!==t){var n=e[t-1],s=e[t];n.file&&void 0===n.options&&"object"==typeof s.value&&(a.message+='\n- Maybe you meant to use\n"'+r+'s": [\n ["'+n.file.request+'", '+JSON.stringify(s.value,void 0,2)+"]\n]\nTo be a valid "+r+", its name and options should be wrapped in a pair of brackets")}}var $q="\\"+bB.sep,Qq="(?:"+$q+"|$)",Zq="[^"+$q+"]+",eG="(?:"+Zq+$q+")",tG="(?:"+Zq+Qq+")",rG=eG+"*?",aG=eG+"*?"+tG+"?";function nG(e){return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")}function sG(e,t){var r=bB.resolve(t,e).split(bB.sep);return new RegExp(["^"].concat(b(r.map(function(e,t){var a=t===r.length-1;return"**"===e?a?aG:rG:"*"===e?a?tG:eG:e.startsWith("*.")?Zq+nG(e.slice(1))+(a?Qq:$q):nG(e)+(a?Qq:$q)}))).join(""))}var oG=0,iG=1,dG={title:function(e,t,r){var a="";return e===oG?(a="programmatic options",t&&(a+=" from "+t)):a="config "+r,a},loc:function(e,t){var r="";return null!=e&&(r+=".overrides["+e+"]"),null!=t&&(r+='.env["'+t+'"]'),r},optionsAndDescriptors:p().m(function e(t){var r,a,n,s,o;return p().w(function(e){for(;;)switch(e.n){case 0:return delete(r=Object.assign({},t.options)).overrides,delete r.env,s=b,e.d(g(t.plugins()),1);case 1:return(a=s(e.v)).length&&(r.plugins=a.map(function(e){return cG(e)})),o=b,e.d(g(t.presets()),2);case 2:return(n=o(e.v)).length&&(r.presets=b(n).map(function(e){return cG(e)})),e.a(2,JSON.stringify(r,void 0,2))}},e)})};function cG(e){var t,r=null==(t=e.file)?void 0:t.request;return null==r&&("object"==typeof e.value?r=e.value:"function"==typeof e.value&&(r="[Function: "+e.value.toString().slice(0,50)+" ... ]")),null==r&&(r="[Unknown]"),void 0===e.options?r:null==e.name?[r,e.options]:[r,e.options,e.name]}var lG=function(){function e(){this._stack=[]}var t=e.prototype;return t.configure=function(e,t,r){var a=this,n=r.callerName,s=r.filepath;return e?function(e,r,o){a._stack.push({type:t,callerName:n,filepath:s,content:e,index:r,envName:o})}:function(){}},e.format=p().m(function e(t){var r,a,n;return p().w(function(e){for(;;)switch(e.n){case 0:return r=dG.title(t.type,t.callerName,t.filepath),(a=dG.loc(t.index,t.envName))&&(r+=" "+a),e.d(g(dG.optionsAndDescriptors(t.content)),1);case 1:return n=e.v,e.a(2,r+"\n"+n)}},e)}),t.output=p().m(function t(){var r;return p().w(function(t){for(;;)switch(t.n){case 0:if(0!==this._stack.length){t.n=1;break}return t.a(2,"");case 1:return t.d(g(aF.all(this._stack.map(function(t){return e.format(t)}))),2);case 2:return r=t.v,t.a(2,r.join("\n\n"))}},t,this)}),o(e)}(),uG=p().m(yG),pG=p().m(jG),fG=p().m(kG),gG=p().m(LG),mG=_j("babel:config:config-chain");function yG(e,t){var r;return p().w(function(a){for(;;)switch(a.n){case 0:return a.d(g(hG(e,t)),1);case 1:if(r=a.v){a.n=2;break}return a.a(2,null);case 2:return a.a(2,{plugins:VG(r.plugins),presets:VG(r.presets),options:r.options.map(function(e){return WG(e)}),files:new Set})}},uG)}var hG=FG({root:function(e){return bG(e)},env:function(e,t){return vG(e)(t)},overrides:function(e,t){return xG(e)(t)},overridesEnv:function(e,t,r){return RG(e)(t)(r)},createLogger:function(){return function(){}}}),bG=NF(function(e){return OG(e,e.alias,YU)}),vG=NF(function(e){return MF(function(t){return NG(e,e.alias,YU,t)})}),xG=NF(function(e){return MF(function(t){return BG(e,e.alias,YU,t)})}),RG=NF(function(e){return MF(function(t){return MF(function(r){return MG(e,e.alias,YU,t,r)})})});function jG(e,t){var r,a,n,s,o,i,d,c,l,u,f,m,y,h,b,v,x,R,j,w,E,S,T;return p().w(function(p){for(;;)switch(p.n){case 0:return n=new lG,p.d(g(PG({options:e,dirname:t.cwd},t,void 0,n)),1);case 1:if(s=p.v){p.n=2;break}return p.a(2,null);case 2:return p.d(g(n.output()),3);case 3:if(o=p.v,"string"!=typeof e.configFile){p.n=5;break}return p.d(g(HM(e.configFile,t.cwd,t.envName,t.caller)),4);case 4:i=p.v,p.n=7;break;case 5:if(!1===e.configFile){p.n=7;break}return p.d(g(VM(t.root,t.envName,t.caller)),6);case 6:i=p.v;case 7:if(d=e.babelrc,c=e.babelrcRoots,l=t.cwd,u=GG(),f=new lG,!i){p.n=11;break}return m=EG(i),p.d(g(kG(m,t,void 0,f)),8);case 8:if(y=p.v){p.n=9;break}return p.a(2,null);case 9:return p.d(g(f.output()),10);case 10:r=p.v,void 0===d&&(d=m.options.babelrc),void 0===c&&(l=m.dirname,c=m.options.babelrcRoots),UG(u,y);case 11:if(v=!1,x=GG(),!0!==d&&void 0!==d||"string"!=typeof t.filename){p.n=18;break}return p.d(g(GM(t.filename)),12);case 12:if(!(R=p.v)||!wG(t,R,c,l)){p.n=18;break}return p.d(g(WM(0,t.envName,t.caller)),13);case 13:if(j=p.v,h=j.ignore,b=j.config,h&&x.files.add(h.filepath),h&&XG(t,h.ignore,null,h.dirname)&&(v=!0),!b||v){p.n=17;break}return w=SG(b),E=new lG,p.d(g(kG(w,t,void 0,E)),14);case 14:if(S=p.v){p.n=15;break}v=!0,p.n=17;break;case 15:return p.d(g(E.output()),16);case 16:a=p.v,UG(x,S);case 17:b&&v&&x.files.add(b.filepath);case 18:return t.showConfig&&console.log('Babel configs on "'+t.filename+'" (ascending priority):\n'+[r,a,o].filter(function(e){return!!e}).join("\n\n")+"\n-----End Babel configs-----"),T=UG(UG(UG(GG(),u),x),s),p.a(2,{plugins:v?[]:VG(T.plugins),presets:v?[]:VG(T.presets),options:v?[]:T.options.map(function(e){return WG(e)}),fileHandling:v?"ignored":"transpile",ignore:h||void 0,babelrc:b||void 0,config:i||void 0,files:T.files})}},pG)}function wG(e,t,r,a){if("boolean"==typeof r)return r;var n=e.root;if(void 0===r)return t.directories.includes(n);var s=r;return Array.isArray(s)||(s=[s]),1===(s=s.map(function(e){return"string"==typeof e?bB.resolve(a,e):e})).length&&s[0]===n?t.directories.includes(n):s.some(function(r){return"string"==typeof r&&(r=sG(r,a)),t.directories.some(function(t){return YG(r,a,t,e)})})}var EG=NF(function(e){return{filepath:e.filepath,dirname:e.dirname,options:Kq("configfile",e.options,e.filepath)}}),SG=NF(function(e){return{filepath:e.filepath,dirname:e.dirname,options:Kq("babelrcfile",e.options,e.filepath)}}),TG=NF(function(e){return{filepath:e.filepath,dirname:e.dirname,options:Kq("extendsfile",e.options,e.filepath)}}),PG=FG({root:function(e){return OG(e,"base",JU)},env:function(e,t){return NG(e,"base",JU,t)},overrides:function(e,t){return BG(e,"base",JU,t)},overridesEnv:function(e,t,r){return MG(e,"base",JU,t,r)},createLogger:function(e,t,r){return function(e,t,r){var a;if(!r)return function(){};return r.configure(t.showConfig,oG,{callerName:null==(a=t.caller)?void 0:a.name})}(0,t,r)}}),AG=FG({root:function(e){return CG(e)},env:function(e,t){return _G(e)(t)},overrides:function(e,t){return IG(e)(t)},overridesEnv:function(e,t,r){return DG(e)(t)(r)},createLogger:function(e,t,r){return function(e,t,r){if(!r)return function(){};return r.configure(t.showConfig,iG,{filepath:e})}(e.filepath,t,r)}});function kG(e,t,r,a){var n;return p().w(function(s){for(;;)switch(s.n){case 0:return s.d(g(AG(e,t,r,a)),1);case 1:return null==(n=s.v)||n.files.add(e.filepath),s.a(2,n)}},fG)}var CG=NF(function(e){return OG(e,e.filepath,YU)}),_G=NF(function(e){return MF(function(t){return NG(e,e.filepath,YU,t)})}),IG=NF(function(e){return MF(function(t){return BG(e,e.filepath,YU,t)})}),DG=NF(function(e){return MF(function(t){return MF(function(r){return MG(e,e.filepath,YU,t,r)})})});function OG(e,t,r){return r(e.dirname,e.options,t)}function NG(e,t,r,a){var n,s=e.dirname,o=null==(n=e.options.env)?void 0:n[a];return o?r(s,o,t+'.env["'+a+'"]'):null}function BG(e,t,r,a){var n,s=e.dirname,o=null==(n=e.options.overrides)?void 0:n[a];if(!o)throw new Error("Assertion failure - missing override");return r(s,o,t+".overrides["+a+"]")}function MG(e,t,r,a,n){var s,o,i=e.dirname,d=null==(s=e.options.overrides)?void 0:s[a];if(!d)throw new Error("Assertion failure - missing override");var c=null==(o=d.env)?void 0:o[n];return c?r(i,c,t+".overrides["+a+'].env["'+n+'"]'):null}function FG(e){var t=e.root,r=e.env,a=e.overrides,n=e.overridesEnv,s=e.createLogger;return function(e,o,i,d){return void 0===i&&(i=new Set),p().m(function c(){var l,u,f,m,y,h,b,v,x,R,j,w;return p().w(function(c){for(;;)switch(c.n){case 0:if(l=e.dirname,u=[],HG(f=t(e),l,o,e.filepath)&&(u.push({config:f,envName:void 0,index:void 0}),(m=r(e,o.envName))&&HG(m,l,o,e.filepath)&&u.push({config:m,envName:o.envName,index:void 0}),(f.options.overrides||[]).forEach(function(t,r){var s=a(e,r);if(HG(s,l,o,e.filepath)){u.push({config:s,index:r,envName:void 0});var i=n(e,r,o.envName);i&&HG(i,l,o,e.filepath)&&u.push({config:i,index:r,envName:o.envName})}})),!u.some(function(e){var t=e.config.options,r=t.ignore,a=t.only;return XG(o,r,a,l)})){c.n=1;break}return c.a(2,null);case 1:y=GG(),h=s(e,o,d),b=0,v=u;case 2:if(!(b<v.length)){c.n=6;break}return x=v[b],R=x.config,j=x.index,w=x.envName,c.d(g(LG(y,R.options,l,o,i,d)),3);case 3:if(c.v){c.n=4;break}return c.a(2,null);case 4:return h(R,j,w),c.d(g(qG(y,R)),5);case 5:b++,c.n=2;break;case 6:return c.a(2,y)}},c)})()}}function LG(e,t,r,a,n,s){var o,i;return p().w(function(d){for(;;)switch(d.n){case 0:if(void 0!==t.extends){d.n=1;break}return d.a(2,!0);case 1:return d.d(g(HM(t.extends,r,a.envName,a.caller)),2);case 2:if(o=d.v,!n.has(o)){d.n=3;break}throw new Error("Configuration cycle detected loading "+o.filepath+".\nFile already loaded following the config chain:\n"+Array.from(n,function(e){return" - "+e.filepath}).join("\n"));case 3:return n.add(o),d.d(g(kG(TG(o),a,n,s)),4);case 4:if(i=d.v,n.delete(o),i){d.n=5;break}return d.a(2,!1);case 5:return UG(e,i),d.a(2,!0)}},gG)}function UG(e,t){var r,a,n;(r=e.options).push.apply(r,b(t.options)),(a=e.plugins).push.apply(a,b(t.plugins)),(n=e.presets).push.apply(n,b(t.presets));for(var s,o=i(t.files);!(s=o()).done;){var d=s.value;e.files.add(d)}return e}function qG(e,t){var r=t.options,a=t.plugins,n=t.presets;return p().m(function t(s,o){var i,d,c,l,u,f;return p().w(function(t){for(;;)switch(t.n){case 0:return e.options.push(r),i=(s=e.plugins).push,d=s,c=b,t.d(g(a()),1);case 1:return i.apply.call(i,d,c(t.v)),l=(o=e.presets).push,u=o,f=b,t.d(g(n()),2);case 2:return l.apply.call(l,u,f(t.v)),t.a(2,e)}},t)})()}function GG(){return{options:[],presets:[],plugins:[],files:new Set}}function WG(e){var t=Object.assign({},e);return delete t.extends,delete t.env,delete t.overrides,delete t.plugins,delete t.presets,delete t.passPerPreset,delete t.ignore,delete t.only,delete t.test,delete t.include,delete t.exclude,hasOwnProperty.call(t,"sourceMap")&&(t.sourceMaps=t.sourceMap,delete t.sourceMap),t}function VG(e){for(var t,r=new Map,a=[],n=i(e);!(t=n()).done;){var s=t.value;if("function"==typeof s.value){var o=s.value,d=r.get(o);d||(d=new Map,r.set(o,d));var c=d.get(s.name);c?c.value=s:(c={value:s},a.push(c),s.ownPass||d.set(s.name,c))}else a.push({value:s})}return a.reduce(function(e,t){return e.push(t.value),e},[])}function HG(e,t,r,a){var n=e.options;return(void 0===n.test||zG(r,n.test,t,a))&&(void 0===n.include||zG(r,n.include,t,a))&&(void 0===n.exclude||!zG(r,n.exclude,t,a))}function zG(e,t,r,a){return JG(e,Array.isArray(t)?t:[t],r,a)}function KG(e,t){return t instanceof RegExp?String(t):t}function XG(e,t,r,a){if(t&&JG(e,t,a)){var n,s='No config is applied to "'+(null!=(n=e.filename)?n:"(unknown)")+'" because it matches one of `ignore: '+JSON.stringify(t,KG)+'` from "'+a+'"';return mG(s),e.showConfig&&console.log(s),!0}if(r&&!JG(e,r,a)){var o,i='No config is applied to "'+(null!=(o=e.filename)?o:"(unknown)")+'" because it fails to match one of `only: '+JSON.stringify(r,KG)+'` from "'+a+'"';return mG(i),e.showConfig&&console.log(i),!0}return!1}function JG(e,t,r,a){return t.some(function(t){return YG(t,r,e.filename,e,a)})}function YG(e,t,r,a,n){if("function"==typeof e)return!!(s=e,_q?Object.defineProperty(function(){return s.apply(void 0,arguments)},"name",{value:Iq}):s)(r,{dirname:t,envName:a.envName,caller:a.caller});var s;if("string"!=typeof r)throw new Uq("Configuration contains string/RegExp pattern, but no filename was passed to Babel",n);return"string"==typeof e&&(e=sG(e,t)),e.test(r)}var $G={name:hq,manipulateOptions:bq,pre:bq,post:bq,inherits:bq,visitor:function(e,t){var r=xq(e,t);if(r&&(Object.keys(r).forEach(function(e){"_exploded"!==e&&"_verified"!==e&&function(e,t){if(t&&"object"==typeof t)Object.keys(t).forEach(function(t){if("enter"!==t&&"exit"!==t)throw new Error('.visitor["'+e+'"] may only have .enter and/or .exit handlers.')});else if("function"!=typeof t)throw new Error('.visitor["'+e+'"] must be a function')}(e,r[e])}),r.enter||r.exit))throw new Error(gq(e)+' cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.');return r},parserOverride:bq,generatorOverride:bq};function QG(e){var t={type:"root",source:"plugin"};return Object.keys(e).forEach(function(r){var a=$G[r];if(!a){var n=new Error("."+r+" is not a valid Plugin property");throw n.code="BABEL_UNKNOWN_PLUGIN_PROPERTY",n}a({type:"option",name:r,parent:t},e[r])}),e}function ZG(e,t){return Object.assign({},function(e){return{version:FV,cache:e.simple(),env:function(t){return e.using(function(e){return void 0===t?e.envName:"function"==typeof t?VF(t(e.envName)):(Array.isArray(t)?t:[t]).some(function(t){if("string"!=typeof t)throw new Error("Unexpected non-string value");return t===e.envName})})},async:function(){return!1},caller:function(t){return e.using(function(e){return VF(t(e.caller))})},assertVersion:eW}}(e),{targets:function(){return JSON.parse(e.using(function(e){return JSON.stringify(e.targets)}))},addExternalDependency:function(e){t.push(e)}})}function eW(e){if("number"==typeof e){if(!Number.isInteger(e))throw new Error("Expected string or integer value.");e="^"+e+".0.0-0"}if("string"!=typeof e)throw new Error("Expected string or integer value.");if("*"!==e&&!UO.satisfies(FV,e)){var t='Requires Babel "'+e+'", but was loaded with "'+FV+'". If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn\'t mention "@babel/core" or "babel-core" to see what is calling Babel.',r=Error.stackTraceLimit;"number"==typeof r&&r<25&&(Error.stackTraceLimit=25);var a=new Error(t);throw"number"==typeof r&&(Error.stackTraceLimit=r),Object.assign(a,{code:"BABEL_VERSION_UNSUPPORTED",version:FV,range:e})}}var tW=["showIgnoredFiles"],rW=p().m(sW),aW=p().m(oW);function nW(e,t){switch(t){case"root":return e;case"upward-optional":return e;case"upward":throw Object.assign(new Error('Babel was run with rootMode:"upward" but a root could not be found when searching upward from "'+e+'".\nOne of the following config files must be in the directory tree: "'+KM.join(", ")+'".'),{code:"BABEL_ROOT_NOT_FOUND",dirname:e});default:throw new Error("Assertion failure - unknown rootMode value.")}}function sW(e){var t,r,a,n,s,o,i,d,c,l,u,f,m,y,h,b,v,x,R,j;return p().w(function(p){for(;;)switch(p.n){case 0:if(null==e||"object"==typeof e&&!Array.isArray(e)){p.n=1;break}throw new Error("Babel options must be an object, null, or undefined");case 1:return t=e?Kq("arguments",e):{},r=t.envName,a=void 0===r?YM():r,n=t.cwd,s=void 0===n?".":n,o=t.root,i=void 0===o?".":o,d=t.rootMode,c=void 0===d?"root":d,l=t.caller,u=t.cloneInputAst,f=void 0===u||u,m=bB.resolve(s),y=nW(bB.resolve(m,i),c),h="string"==typeof t.filename?bB.resolve(s,t.filename):void 0,p.d(g(zM()),2);case 2:return b=p.v,v={filename:h,cwd:m,root:y,envName:a,caller:l,showConfig:b===h},p.d(g(jG(t,v)),3);case 3:if(x=p.v){p.n=4;break}return p.a(2,null);case 4:return R={assumptions:{}},x.options.forEach(function(e){jF(R,e)}),j=Object.assign({},R,{targets:GU(R),cloneInputAst:f,babelrc:!1,configFile:!1,browserslistConfigFile:!1,passPerPreset:!1,envName:v.envName,cwd:v.cwd,root:v.root,rootMode:"root",filename:"string"==typeof v.filename?v.filename:void 0,plugins:x.plugins.map(function(e){return dq(e)}),presets:x.presets.map(function(e){return dq(e)})}),p.a(2,{options:j,context:v,fileHandling:x.fileHandling,ignore:x.ignore,babelrc:x.babelrc,config:x.config,files:x.files})}},rW)}function oW(e){var t,r,a,n,s,o,i,d,c;return p().w(function(l){for(;;)switch(l.n){case 0:return t=!1,"object"!=typeof e||null===e||Array.isArray(e)||(t=(r=e).showIgnoredFiles,e=u(r,tW)),l.d(g(sW(e)),1);case 1:if(a=l.v){l.n=2;break}return l.a(2,null);case 2:if(n=a.options,s=a.babelrc,o=a.ignore,i=a.config,d=a.fileHandling,c=a.files,"ignored"!==d||t){l.n=3;break}return l.a(2,null);case 3:return(n.plugins||[]).forEach(function(e){if(e.value instanceof PF)throw new Error("Passing cached plugin instances is not supported in babel.loadPartialConfig()")}),l.a(2,new iW(n,s?s.filepath:void 0,o?o.filepath:void 0,i?i.filepath:void 0,d,c))}},aW)}var iW=function(){function e(e,t,r,a,n,s){this.options=void 0,this.babelrc=void 0,this.babelignore=void 0,this.config=void 0,this.fileHandling=void 0,this.files=void 0,this.options=e,this.babelignore=r,this.babelrc=t,this.config=a,this.fileHandling=n,this.files=s,Object.freeze(this)}return e.prototype.hasFilesystemConfig=function(){return void 0!==this.babelrc||void 0!==this.config},o(e)}();Object.freeze(iW.prototype);var dW=p().m(yW),cW=p().m(RW),lW=aF(p().m(function e(t){var r,a,n,s,o,d,c,l,u,f,m,y,h,v,x,R;return p().w(function(e){for(;;)switch(e.n){case 0:return e.d(g(sW(t)),1);case 1:if(a=e.v){e.n=2;break}return e.a(2,null);case 2:if(n=a.options,s=a.context,"ignored"!==a.fileHandling){e.n=3;break}return e.a(2,null);case 3:if(o={},d=n.plugins,c=n.presets,d&&c){e.n=4;break}throw new Error("Assertion failure - plugins and presets exist");case 4:return l=Object.assign({},s,{targets:n.targets}),u=function(e){var t=lq(e);if(!t)throw new Error("Assertion failure - must be config item");return t},f=c.map(u),m=d.map(u),y=[[]],h=[],v=[],e.d(g(uW(s,p().m(function e(t,r){var a,n,s,d,c,u,f,m,h,x;return p().w(function(p){for(;;)switch(p.p=p.n){case 0:a=[],n=0;case 1:if(!(n<t.length)){p.n=7;break}if(!1===(s=t[n]).options){p.n=6;break}return p.p=2,p.d(g(RW(s,l)),3);case 3:d=p.v,p.n=5;break;case 4:throw p.p=4,"BABEL_UNKNOWN_OPTION"===(x=p.v).code&&Yq(t,n,"preset",x),x;case 5:v.push(d.externalDependencies),s.ownPass?a.push({preset:d.chain,pass:[]}):a.unshift({preset:d.chain,pass:r});case 6:n++,p.n=1;break;case 7:if(!(a.length>0)){p.n=13;break}y.splice.apply(y,[1,0].concat(b(a.map(function(e){return e.pass}).filter(function(e){return e!==r})))),c=i(a);case 8:if((u=c()).done){p.n=13;break}if(f=u.value,m=f.preset,h=f.pass,m){p.n=9;break}return p.a(2,!0);case 9:return h.push.apply(h,b(m.plugins)),p.d(g(e(m.presets,h)),10);case 10:if(!p.v){p.n=11;break}return p.a(2,!0);case 11:m.options.forEach(function(e){jF(o,e)});case 12:p.n=8;break;case 13:return p.a(2)}},e,null,[[2,4]])}))(f,y[0])),5);case 5:if(!e.v){e.n=6;break}return e.a(2,null);case 6:return jF(x=o,n),R=Object.assign({},l,{assumptions:null!=(r=x.assumptions)?r:{}}),e.d(g(uW(s,p().m(function e(){var t,r,a,n,s,o,i,d,c;return p().w(function(e){for(;;)switch(e.p=e.n){case 0:(t=y[0]).unshift.apply(t,b(m)),r=0,a=y;case 1:if(!(r<a.length)){e.n=9;break}n=a[r],s=[],h.push(s),o=0;case 2:if(!(o<n.length)){e.n=8;break}if(!1===(i=n[o]).options){e.n=7;break}return e.p=3,e.d(g(yW(i,R)),4);case 4:d=e.v,e.n=6;break;case 5:throw e.p=5,"BABEL_UNKNOWN_PLUGIN_PROPERTY"===(c=e.v).code&&Yq(n,o,"plugin",c),c;case 6:s.push(d),v.push(d.externalDependencies);case 7:o++,e.n=2;break;case 8:r++,e.n=1;break;case 9:return e.a(2)}},e,null,[[3,5]])}))()),7);case 7:return x.plugins=h[0],x.presets=h.slice(1).filter(function(e){return e.length>0}).map(function(e){return{plugins:e}}),x.passPerPreset=x.presets.length>0,e.a(2,{options:x,passes:h,externalDependencies:SF(v)})}},e)}));function uW(e,t){return p().m(function r(a,n){var s,o;return p().w(function(r){for(;;)switch(r.p=r.n){case 0:return r.p=0,r.d(g(t(a,n)),1);case 1:return r.a(2,r.v);case 2:throw r.p=2,(o=r.v).message.startsWith("[BABEL]")||(o.message="[BABEL] "+(null!=(s=e.filename)?s:"unknown file")+": "+o.message),o;case 3:return r.a(2)}},r,null,[[0,2]])})}var pW=function(e){return OF(function(t,a){var n=t.value,s=t.options,o=t.dirname,i=t.alias;return p().m(function t(){var d,c,l,u,f,m;return p().w(function(t){for(;;)switch(t.p=t.n){case 0:if(!1!==s){t.n=1;break}throw new Error("Assertion failure");case 1:if(s=s||{},d=[],c=n,"function"!=typeof n){t.n=5;break}return l=gF(n,"You appear to be using an async plugin/preset, but Babel has been called synchronously"),u=Object.assign({},r,e(a,d)),t.p=2,t.d(g(l(u,s,o)),3);case 3:c=t.v,t.n=5;break;case 4:throw t.p=4,m=t.v,i&&(m.message+=" (While processing: "+JSON.stringify(i)+")"),m;case 5:if(c&&"object"==typeof c){t.n=6;break}throw new Error("Plugin/Preset did not return an object.");case 6:if(!RF(c)){t.n=8;break}return t.d(g([]),7);case 7:throw new Error('You appear to be using a promise as a plugin, which your current version of Babel does not support. If you\'re using a published plugin, you may need to upgrade your @babel/core version. As an alternative, you can prefix the promise with "await". (While processing: '+JSON.stringify(i)+")");case 8:if(!(d.length>0)||a.configured()&&"forever"!==a.mode()){t.n=9;break}throw f="A plugin/preset has external untracked dependencies ("+d[0]+"), but the cache ",a.configured()?f+=" has been configured to never be invalidated. ":f+="has not been configured to be invalidated when the external dependencies change. ",f+="Plugins/presets should configure their cache to be invalidated when the external dependencies change, for example using `api.cache.invalidate(() => statSync(filepath).mtimeMs)` or `api.cache.never()`\n(While processing: "+JSON.stringify(i)+")",new Error(f);case 9:return t.a(2,{value:c,options:s,dirname:o,alias:i,externalDependencies:SF(d)})}},t,null,[[2,4]])})()})},fW=pW(function(e,t){return Object.assign({},ZG(e,t),{assumption:function(t){return e.using(function(e){return e.assumptions[t]})}})}),gW=pW(ZG),mW=OF(function(e,t){var r=e.value,a=e.options,n=e.dirname,s=e.alias,o=e.externalDependencies;return p().m(function e(){var i,d,c,l;return p().w(function(e){for(;;)switch(e.n){case 0:if(i=QG(r),(d=Object.assign({},i)).visitor&&(d.visitor=OO.explode(Object.assign({},d.visitor))),!d.inherits){e.n=2;break}return c={name:void 0,alias:s+"$inherits",value:d.inherits,options:a,dirname:n},e.d(g(hF(yW,function(e){return t.invalidate(function(t){return e(c,t)})})),1);case 1:l=e.v,d.pre=jW(l.pre,d.pre),d.post=jW(l.post,d.post),d.manipulateOptions=jW(l.manipulateOptions,d.manipulateOptions),d.visitor=OO.visitors.merge([l.visitor||{},d.visitor||{}]),l.externalDependencies.length>0&&(o=0===o.length?l.externalDependencies:SF([o,l.externalDependencies]));case 2:return e.a(2,new PF(d,a,s,o))}},e)})()});function yW(e,t){var r;return p().w(function(a){for(;;)switch(a.n){case 0:if(!(e.value instanceof PF)){a.n=2;break}if(!e.options){a.n=1;break}throw new Error("Passed options to an existing Plugin instance will not work.");case 1:return a.a(2,e.value);case 2:return r=mW,a.d(g(fW(e,t)),3);case 3:return a.d(g(r(a.v,t)),4);case 4:return a.a(2,a.v)}},dW)}var hW=function(e){return e&&"function"!=typeof e},bW=function(e,t){if(hW(e.test)||hW(e.include)||hW(e.exclude)){var r=t.name?'"'+t.name+'"':"/* your preset */";throw new Uq(["Preset "+r+" requires a filename to be set when babel is called directly,","```","babel.transformSync(code, { filename: 'file.ts', presets: ["+r+"] });","```","See https://babeljs.io/docs/en/options#filename for more information."].join("\n"))}},vW=function(e,t,r){if(!t.filename){var a,n=e.options;bW(n,r),null==(a=n.overrides)||a.forEach(function(e){return bW(e,r)})}},xW=NF(function(e){var t=e.value,r=e.dirname,a=e.alias,n=e.externalDependencies;return{options:Kq("preset",t),alias:a,dirname:r,externalDependencies:n}});function RW(e,t){var r,a,n,s;return p().w(function(o){for(;;)switch(o.n){case 0:return a=xW,o.d(g(gW(e,t)),1);case 1:return r=a(o.v),vW(r,t,e),o.d(g(yG(r,t)),2);case 2:return n=o.v,s=r.externalDependencies,o.a(2,{chain:n,externalDependencies:s})}},cW)}function jW(e,t){return e?t?function(){for(var r=this,a=arguments.length,n=new Array(a),s=0;s<a;s++)n[s]=arguments[s];var o=e.apply(this,n);return o&&"function"==typeof o.then?o.then(function(){return t.apply(r,n)}):t.apply(this,n)}:e:t}var wW=p().m(AW),EW=aF(oW);function SW(){return Mq(EW.async).apply(void 0,arguments)}function TW(){return Mq(EW.sync).apply(void 0,arguments)}function PW(e,t){if(void 0!==t)Mq(EW.errback)(e,t);else{if("function"!=typeof e)return TW(e);Mq(EW.errback)(void 0,e)}}function AW(e){var t,r;return p().w(function(a){for(;;)switch(a.n){case 0:return a.d(g(lW(e)),1);case 1:return r=a.v,a.a(2,null!=(t=null==r?void 0:r.options)?t:null)}},wW)}var kW=aF(AW);function CW(){return Mq(kW.async).apply(void 0,arguments)}function _W(){return Mq(kW.sync).apply(void 0,arguments)}function IW(e,t){if(void 0!==t)Mq(kW.errback)(e,t);else{if("function"!=typeof e)return _W(e);Mq(kW.errback)(void 0,e)}}var DW=aF(function(e,t){var r=void 0===t?{}:t,a=r.dirname,n=void 0===a?".":a,s=r.type;return p().m(function t(){var r;return p().w(function(t){for(;;)switch(t.n){case 0:return t.d(g(oq(e,bB.resolve(n),{type:s,alias:"programmatic item"})),1);case 1:return r=t.v,t.a(2,dq(r))}},t)})()});function OW(){return Mq(DW.async).apply(void 0,arguments)}function NW(){return Mq(DW.sync).apply(void 0,arguments)}function BW(e,t,r){if(void 0!==r)Mq(DW.errback)(e,t,r);else{if("function"!=typeof t)return NW(e,t);Mq(DW.errback)(e,void 0,r)}}var MW,FW=function(){function e(e,t,r,a){this._map=new Map,this.key=void 0,this.file=void 0,this.opts=void 0,this.cwd=void 0,this.filename=void 0,this.isAsync=void 0,this.key=t,this.file=e,this.opts=r||{},this.cwd=e.opts.cwd,this.filename=e.opts.filename,this.isAsync=a}var t=e.prototype;return t.set=function(e,t){this._map.set(e,t)},t.get=function(e){return this._map.get(e)},t.availableHelper=function(e,t){return this.file.availableHelper(e,t)},t.addHelper=function(e){return this.file.addHelper(e)},t.buildCodeFrameError=function(e,t,r){return this.file.buildCodeFrameError(e,t,r)},o(e)}();FW.prototype.getModuleName=function(){return this.file.getModuleName()},FW.prototype.addImport=function(){this.file.addImport()};var LW={name:"internal.blockHoist",visitor:{Block:{exit:function(e){var t=e.node;t.body=UW(t.body)}},SwitchCase:{exit:function(e){var t=e.node;t.consequent=UW(t.consequent)}}}};function UW(e){for(var t=Math.pow(2,30)-1,r=!1,a=0;a<e.length;a++){var n=GW(e[a]);if(n>t){r=!0;break}t=n}return r?function(e){for(var t=Object.create(null),r=0;r<e.length;r++){var a=e[r],n=GW(a);(t[n]||(t[n]=[])).push(a)}for(var s,o=Object.keys(t).map(function(e){return+e}).sort(function(e,t){return t-e}),d=0,c=i(o);!(s=c()).done;)for(var l,u=i(t[s.value]);!(l=u()).done;){var p=l.value;e[d++]=p}return e}(e.slice()):e}function qW(){return MW||(MW=new PF(Object.assign({},LW,{visitor:OO.explode(LW.visitor)}),{})),MW}function GW(e){var t=null==e?void 0:e._blockHoist;return null==t?1:!0===t?2:t}function WW(e){for(var t,r=e.options,a=r.filename,n=r.cwd,s=r.filenameRelative,o=void 0===s?"string"==typeof a?bB.relative(n,a):"unknown":s,d=r.sourceType,c=void 0===d?"module":d,l=r.inputSourceMap,u=r.sourceMaps,p=void 0===u?!!l:u,f=r.sourceRoot,g=void 0===f?e.options.moduleRoot:f,m=r.sourceFileName,y=void 0===m?bB.basename(o):m,h=r.comments,b=void 0===h||h,v=r.compact,x=void 0===v?"auto":v,R=e.options,j=Object.assign({},R,{parserOpts:Object.assign({sourceType:".mjs"===bB.extname(o)?"module":c,sourceFileName:a,plugins:[]},R.parserOpts),generatorOpts:Object.assign({filename:a,auxiliaryCommentBefore:R.auxiliaryCommentBefore,auxiliaryCommentAfter:R.auxiliaryCommentAfter,retainLines:R.retainLines,comments:b,shouldPrintComment:R.shouldPrintComment,compact:x,minified:R.minified,sourceMaps:!!p,sourceRoot:g,sourceFileName:y},R.generatorOpts)}),w=i(e.passes);!(t=w()).done;)for(var E,S=i(t.value);!(E=S()).done;){var T=E.value;T.manipulateOptions&&T.manipulateOptions(j,j.parserOpts)}return j}var VW={},HW={};!function(e){var t;function r(e,r){(r=r||{}).hasComment&&(e=function(e){return e.split(",").pop()}(e)),"base64"===r.encoding?e=t(e):"uri"===r.encoding&&(e=decodeURIComponent(e)),(r.isJSON||r.encoding)&&(e=JSON.parse(e)),this.sourcemap=e}function a(e){return new r(e,{isJSON:!0})}Object.defineProperty(e,"commentRegex",{get:function(){return/^\s*?\/[\/\*][@#]\s+?sourceMappingURL=data:(((?:application|text)\/json)(?:;charset=([^;,]+?)?)?)?(?:;(base64))?,(.*?)$/gm}}),Object.defineProperty(e,"mapFileCommentRegex",{get:function(){return/(?:\/\/[@#][ \t]+?sourceMappingURL=([^\s'"`]+?)[ \t]*?$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*?(?:\*\/){1}[ \t]*?$)/gm}}),t=void 0!==VE?"function"==typeof VE.from?function(e){return VE.from(e,"base64").toString()}:function(e){if("number"==typeof value)throw new TypeError("The value to decode must not be of type number.");return new VE(e,"base64").toString()}:function(e){return decodeURIComponent(escape(atob(e)))},r.prototype.toJSON=function(e){return JSON.stringify(this.sourcemap,null,e)},void 0!==VE?"function"==typeof VE.from?r.prototype.toBase64=function(){var e=this.toJSON();return VE.from(e,"utf8").toString("base64")}:r.prototype.toBase64=function(){var e=this.toJSON();if("number"==typeof e)throw new TypeError("The json to encode must not be of type number.");return new VE(e,"utf8").toString("base64")}:r.prototype.toBase64=function(){var e=this.toJSON();return btoa(unescape(encodeURIComponent(e)))},r.prototype.toURI=function(){var e=this.toJSON();return encodeURIComponent(e)},r.prototype.toComment=function(e){var t,r,a;return null!=e&&"uri"===e.encoding?(t="",r=this.toURI()):(t=";base64",r=this.toBase64()),a="sourceMappingURL=data:application/json;charset=utf-8"+t+","+r,null!=e&&e.multiline?"/*# "+a+" */":"//# "+a},r.prototype.toObject=function(){return JSON.parse(this.toJSON())},r.prototype.addProperty=function(e,t){if(this.sourcemap.hasOwnProperty(e))throw new Error('property "'+e+'" already exists on the sourcemap, use set property instead');return this.setProperty(e,t)},r.prototype.setProperty=function(e,t){return this.sourcemap[e]=t,this},r.prototype.getProperty=function(e){return this.sourcemap[e]},e.fromObject=function(e){return new r(e)},e.fromJSON=function(e){return new r(e,{isJSON:!0})},e.fromURI=function(e){return new r(e,{encoding:"uri"})},e.fromBase64=function(e){return new r(e,{encoding:"base64"})},e.fromComment=function(t){var a;return new r(t=t.replace(/^\/\*/g,"//").replace(/\*\/$/g,""),{encoding:(a=e.commentRegex.exec(t))&&a[4]||"uri",hasComment:!0})},e.fromMapFileComment=function(t,r){if("string"==typeof r)throw new Error("String directory paths are no longer supported with `fromMapFileComment`\nPlease review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading");var n=function(t,r){var a=e.mapFileCommentRegex.exec(t),n=a[1]||a[2];try{return null!=(t=r(n))&&"function"==typeof t.catch?t.catch(s):t}catch(e){s(e)}function s(e){throw new Error("An error occurred while trying to read the map file at "+n+"\n"+e.stack)}}(t,r);return null!=n&&"function"==typeof n.then?n.then(a):a(n)},e.fromSource=function(t){var r=t.match(e.commentRegex);return r?e.fromComment(r.pop()):null},e.fromMapFileSource=function(t,r){if("string"==typeof r)throw new Error("String directory paths are no longer supported with `fromMapFileSource`\nPlease review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading");var a=t.match(e.mapFileCommentRegex);return a?e.fromMapFileComment(a.pop(),r):null},e.removeComments=function(t){return t.replace(e.commentRegex,"")},e.removeMapFileComments=function(t){return t.replace(e.mapFileCommentRegex,"")},e.generateMapFileComment=function(e,t){var r="sourceMappingURL="+e;return t&&t.multiline?"/*# "+r+" */":"//# "+r}}(HW);var zW={asyncDoExpressions:{syntax:{name:"@babel/plugin-syntax-async-do-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions"}},decimal:{syntax:{name:"@babel/plugin-syntax-decimal",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal"}},decorators:{syntax:{name:"@babel/plugin-syntax-decorators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators"},transform:{name:"@babel/plugin-proposal-decorators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators"}},doExpressions:{syntax:{name:"@babel/plugin-syntax-do-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions"},transform:{name:"@babel/plugin-proposal-do-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions"}},exportDefaultFrom:{syntax:{name:"@babel/plugin-syntax-export-default-from",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from"},transform:{name:"@babel/plugin-proposal-export-default-from",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from"}},flow:{syntax:{name:"@babel/plugin-syntax-flow",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow"},transform:{name:"@babel/preset-flow",url:"https://github.com/babel/babel/tree/main/packages/babel-preset-flow"}},functionBind:{syntax:{name:"@babel/plugin-syntax-function-bind",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind"},transform:{name:"@babel/plugin-proposal-function-bind",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind"}},functionSent:{syntax:{name:"@babel/plugin-syntax-function-sent",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent"},transform:{name:"@babel/plugin-proposal-function-sent",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent"}},jsx:{syntax:{name:"@babel/plugin-syntax-jsx",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx"},transform:{name:"@babel/preset-react",url:"https://github.com/babel/babel/tree/main/packages/babel-preset-react"}},pipelineOperator:{syntax:{name:"@babel/plugin-syntax-pipeline-operator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator"},transform:{name:"@babel/plugin-proposal-pipeline-operator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator"}},recordAndTuple:{syntax:{name:"@babel/plugin-syntax-record-and-tuple",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple"}},throwExpressions:{syntax:{name:"@babel/plugin-syntax-throw-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions"},transform:{name:"@babel/plugin-proposal-throw-expressions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions"}},typescript:{syntax:{name:"@babel/plugin-syntax-typescript",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript"},transform:{name:"@babel/preset-typescript",url:"https://github.com/babel/babel/tree/main/packages/babel-preset-typescript"}}};Object.assign(zW,{asyncGenerators:{syntax:{name:"@babel/plugin-syntax-async-generators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators"},transform:{name:"@babel/plugin-transform-async-generator-functions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-async-generator-functions"}},classProperties:{syntax:{name:"@babel/plugin-syntax-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties"},transform:{name:"@babel/plugin-transform-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties"}},classPrivateProperties:{syntax:{name:"@babel/plugin-syntax-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties"},transform:{name:"@babel/plugin-transform-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties"}},classPrivateMethods:{syntax:{name:"@babel/plugin-syntax-class-properties",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties"},transform:{name:"@babel/plugin-transform-private-methods",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-methods"}},classStaticBlock:{syntax:{name:"@babel/plugin-syntax-class-static-block",url:"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block"},transform:{name:"@babel/plugin-transform-class-static-block",url:"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-static-block"}},dynamicImport:{syntax:{name:"@babel/plugin-syntax-dynamic-import",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import"}},exportNamespaceFrom:{syntax:{name:"@babel/plugin-syntax-export-namespace-from",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from"},transform:{name:"@babel/plugin-transform-export-namespace-from",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from"}},importAssertions:{syntax:{name:"@babel/plugin-syntax-import-assertions",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions"}},importAttributes:{syntax:{name:"@babel/plugin-syntax-import-attributes",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes"}},importMeta:{syntax:{name:"@babel/plugin-syntax-import-meta",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta"}},logicalAssignment:{syntax:{name:"@babel/plugin-syntax-logical-assignment-operators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators"},transform:{name:"@babel/plugin-transform-logical-assignment-operators",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-logical-assignment-operators"}},moduleStringNames:{syntax:{name:"@babel/plugin-syntax-module-string-names",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names"}},numericSeparator:{syntax:{name:"@babel/plugin-syntax-numeric-separator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator"},transform:{name:"@babel/plugin-transform-numeric-separator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-numeric-separator"}},nullishCoalescingOperator:{syntax:{name:"@babel/plugin-syntax-nullish-coalescing-operator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator"},transform:{name:"@babel/plugin-transform-nullish-coalescing-operator",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator"}},objectRestSpread:{syntax:{name:"@babel/plugin-syntax-object-rest-spread",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread"},transform:{name:"@babel/plugin-transform-object-rest-spread",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-object-rest-spread"}},optionalCatchBinding:{syntax:{name:"@babel/plugin-syntax-optional-catch-binding",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding"},transform:{name:"@babel/plugin-transform-optional-catch-binding",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding"}},optionalChaining:{syntax:{name:"@babel/plugin-syntax-optional-chaining",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining"},transform:{name:"@babel/plugin-transform-optional-chaining",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-chaining"}},privateIn:{syntax:{name:"@babel/plugin-syntax-private-property-in-object",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object"},transform:{name:"@babel/plugin-transform-private-property-in-object",url:"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object"}},regexpUnicodeSets:{syntax:{name:"@babel/plugin-syntax-unicode-sets-regex",url:"https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md"},transform:{name:"@babel/plugin-transform-unicode-sets-regex",url:"https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md"}}});var KW=function(e){return e.name+" ("+e.url+")"};function XW(e,t,r,a){var n="Support for the experimental syntax '"+e+"' isn't currently enabled ("+t.line+":"+(t.column+1)+"):\n\n"+r,s=zW[e];if(s){var o=s.syntax,i=s.transform;if(o){var d=KW(o);if(i)n+="\n\nAdd "+KW(i)+" to the '"+(i.name.startsWith("@babel/plugin")?"plugins":"presets")+"' section of your Babel config to enable transformation.\nIf you want to leave it as-is, add "+d+" to the 'plugins' section to enable parsing.";else n+="\n\nAdd "+d+" to the 'plugins' section of your Babel config to enable parsing."}}return n+="\n\nIf you already added the plugin for this syntax to your config, it's possible that your config isn't being loaded.\nYou can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded configuration:\n\tnpx cross-env BABEL_SHOW_CONFIG_FOR="+("unknown"===a?"<name of the input file>":a)+" <your build command>\nSee https://babeljs.io/docs/configuration#print-effective-configs for more info.\n"}function JW(e,t,r){var a=t.parserOpts,n=t.highlightCode,s=void 0===n||n,o=t.filename,d=void 0===o?"unknown":o;return p().m(function t(){var n,o,c,l,u,f,m,y,h,b,v,x,R,j,w;return p().w(function(t){for(;;)switch(t.p=t.n){case 0:for(t.p=0,n=[],o=i(e);!(c=o()).done;)for(l=c.value,u=i(l);!(f=u()).done;)m=f.value,(y=m.parserOverride)&&void 0!==(h=y(r,a,aR))&&n.push(h);if(0!==n.length){t.n=1;break}return t.a(2,aR(r,a));case 1:if(1!==n.length){t.n=4;break}return t.d(g([]),2);case 2:if("function"!=typeof n[0].then){t.n=3;break}throw new Error("You appear to be using an async parser plugin, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.");case 3:return t.a(2,n[0]);case 4:throw new Error("More than one plugin attempted to override parsing.");case 5:throw t.p=5,"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED"===(w=t.v).code&&(w.message+="\nConsider renaming the file to '.mjs', or setting sourceType:module or sourceType:unambiguous in your Babel config for this file."),b=null==a?void 0:a.startLine,null!=(v=null==a?void 0:a.startColumn)&&(r=" ".repeat(v)+r),x=w.loc,R=w.missingPlugin,x&&(j=_R(r,{start:{line:x.line,column:x.column+1}},{highlightCode:s,startLine:b}),w.message=R?d+": "+XW(R[0],x,j,d):d+": "+w.message+"\n\n"+j,w.code="BABEL_PARSE_ERROR"),w;case 6:return t.a(2)}},t,null,[[0,5]])})()}function YW(e,t,r){if(null!==e){if(t.has(e))return t.get(e);var a;if(Array.isArray(e)){a=new Array(e.length),t.set(e,a);for(var n=0;n<e.length;n++)a[n]="object"!=typeof e[n]?e[n]:YW(e[n],t)}else{a={},t.set(e,a);for(var s=Object.keys(e),o=0;o<s.length;o++){var i=s[o];a[i]="object"!=typeof e[i]?e[i]:YW(e[i],t)}}return a}return e}function $W(e){if("object"!=typeof e)return e;try{return YW(e,new Map)}catch(t){return structuredClone(e)}}var QW=p().m(nV),ZW=js,eV=Ry,tV=_j("babel:transform:file"),rV=/^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,.*$/,aV=/^[@#][ \t]+sourceMappingURL=([^\s'"`]+)[ \t]*$/;function nV(e,t,r,a){var n,s,o,i,d;return p().w(function(c){for(;;)switch(c.n){case 0:if(r=""+(r||""),!a){c.n=3;break}if("Program"!==a.type){c.n=1;break}a=ZW(a,[],[]),c.n=2;break;case 1:if("File"===a.type){c.n=2;break}throw new Error("AST root must be a Program or File node");case 2:t.cloneInputAst&&(a=$W(a)),c.n=5;break;case 3:return c.d(g(JW(e,t,r)),4);case 4:a=c.v;case 5:if(n=null,!1!==t.inputSourceMap){if("object"==typeof t.inputSourceMap&&(n=HW.fromObject(t.inputSourceMap)),!n&&(s=oV(rV,a)))try{n=HW.fromComment("//"+s)}catch(e){tV("discarding unknown inline input sourcemap")}if(!n)if(o=oV(aV,a),"string"==typeof t.filename&&o)try{i=aV.exec(o),d=VW.readFileSync(bB.resolve(bB.dirname(t.filename),i[1]),"utf8"),n=HW.fromJSON(d)}catch(e){tV("discarding unknown file input sourcemap",e)}else o&&tV("discarding un-loadable file input sourcemap")}return c.a(2,new lM(t,{code:r,ast:a,inputMap:n}))}},QW)}function sV(e,t,r){return t&&(t=t.filter(function(t){var a=t.value;return!e.test(a)||(r=a,!1)})),[t,r]}function oV(e,t){var r=null;return eV(t,function(t){var a=y(sV(e,t.leadingComments,r),2);t.leadingComments=a[0],r=a[1];var n=y(sV(e,t.innerComments,r),2);t.innerComments=n[0],r=n[1];var s=y(sV(e,t.trailingComments,r),2);t.trailingComments=s[0],r=s[1]}),r}var iV=cV("",-1,-1,"",null,!1),dV=[];function cV(e,t,r,a,n,s){return{source:e,line:t,column:r,name:a,content:n,ignore:s}}function lV(e,t,r,a,n){return{map:e,sources:t,source:r,content:a,ignore:n}}function uV(e,t){return lV(e,t,"",null,!1)}function pV(e,t,r,a){if(!e.map)return cV(e.source,t,r,a,e.content,e.ignore);var n=function(e,t,r){var a=lT(e);if(t>=a.length)return null;var n=a[t],s=fT(n,e._decodedMemo,t,r,1);return-1===s?null:n[s]}(e.map,t,r);return null==n?null:1===n.length?iV:pV(e.sources[n[1]],n[2],n[3],5===n.length?e.map.names[n[4]]:a)}function fV(e,t){for(var r=function(e){return Array.isArray(e)?e:[e]}(e).map(function(e){return new cT(e,"")}),a=r.pop(),n=0;n<r.length;n++)if(r[n].sources.length>1)throw new Error("Transformation map "+n+" must have exactly one source file.\nDid you specify these with the most recent transformation maps first?");for(var s=gV(a,t,"",0),o=r.length-1;o>=0;o--)s=uV(r[o],[s]);return s}function gV(e,t,r,a){var n=e.resolvedSources,s=e.sourcesContent,o=e.ignoreList,i=a+1,d=n.map(function(e,a){var n={importer:r,depth:i,source:e||"",content:void 0,ignore:void 0},d=t(n.source,n),c=n.source,l=n.content,u=n.ignore;return d?gV(new cT(d,c),t,c,i):function(e,t,r){return lV(null,dV,e,t,r)}(c,void 0!==l?l:s?s[a]:null,void 0!==u?u:!!o&&o.includes(a))});return uV(e,d)}var mV=function(){function e(e,t){var r=t.decodedMappings?RT(e):jT(e);this.version=r.version,this.file=r.file,this.mappings=r.mappings,this.names=r.names,this.ignoreList=r.ignoreList,this.sourceRoot=r.sourceRoot,this.sources=r.sources,t.excludeContent||(this.sourcesContent=r.sourcesContent)}return e.prototype.toString=function(){return JSON.stringify(this)},o(e)}();function yV(e,t,r){var a={excludeContent:!!r,decodedMappings:!1},n=fV(e,t);return new mV(function(e){for(var t=new yT({file:e.map.file}),r=e.sources,a=e.map,n=a.names,s=lT(a),o=0;o<s.length;o++)for(var i=s[o],d=0;d<i.length;d++){var c=i[d],l=c[0],u=iV;if(1===c.length||null!=(u=pV(r[c[1]],c[2],c[3],5===c.length?n[c[4]]:""))){var p=u,f=p.column,g=p.line,m=p.name,y=p.content,h=p.source,b=p.ignore;hT(t,o,l,h,g,f,m),h&&null!=y&&vT(t,h,y),b&&xT(t,h)}}return t}(n),a)}function hV(e){return Object.assign({},e,{sourceRoot:null})}function bV(e,t){var r=t.opts,a=t.ast,n=t.code,s=t.inputMap,o=r.generatorOpts;o.inputSourceMap=null==s?void 0:s.toObject();for(var d,c,l=[],u=i(e);!(d=u()).done;)for(var p,f=i(d.value);!(p=f()).done;){var g=p.value.generatorOverride;if(g){var m=g(a,o,n,bk);void 0!==m&&l.push(m)}}if(0===l.length)c=bk(a,o,n);else{if(1!==l.length)throw new Error("More than one plugin attempted to override codegen.");if("function"==typeof(c=l[0]).then)throw new Error("You appear to be using an async codegen plugin, which your current version of Babel does not support. If you're using a published plugin, you may need to upgrade your @babel/core version.")}var y=c,h=y.code,b=y.decodedMap,v=void 0===b?c.map:b;return c.__mergedMap?v=Object.assign({},c.map):v&&(v=s?function(e,t,r){var a=r.replace(/\\/g,"/"),n=!1,s=yV(hV(t),function(t,r){return t!==a||n?null:(n=!0,r.source="",hV(e))});return"string"==typeof e.sourceRoot&&(s.sourceRoot=e.sourceRoot),Object.assign({},s)}(s.toObject(),v,o.sourceFileName):c.map),"inline"!==r.sourceMaps&&"both"!==r.sourceMaps||(h+="\n"+HW.fromObject(v).toComment()),"inline"===r.sourceMaps&&(v=null),{outputCode:h,outputMap:v}}var vV=p().m(RV),xV=p().m(jV);function RV(e,t,r){var a,n,s,o,i,d,c,l,u;return p().w(function(p){for(;;)switch(p.p=p.n){case 0:return p.d(g(nV(e.passes,WW(e),t,r)),1);case 1:return a=p.v,n=a.opts,p.p=2,p.d(g(jV(a,e.passes)),3);case 3:p.n=5;break;case 4:throw p.p=4,(l=p.v).message=(null!=(s=n.filename)?s:"unknown file")+": "+l.message,l.code||(l.code="BABEL_TRANSFORM_ERROR"),l;case 5:p.p=5,!1!==n.code&&(d=bV(e.passes,a),o=d.outputCode,i=d.outputMap),p.n=7;break;case 6:throw p.p=6,(u=p.v).message=(null!=(c=n.filename)?c:"unknown file")+": "+u.message,u.code||(u.code="BABEL_GENERATE_ERROR"),u;case 7:return p.a(2,{metadata:a.metadata,options:n,ast:!0===n.ast?a.ast:null,code:void 0===o?null:o,map:void 0===i?null:i,sourceType:a.ast.program.sourceType,externalDependencies:TF(e.externalDependencies)})}},vV,null,[[5,6],[2,4]])}function jV(e,t){var r,a,n,s,o,d,c,l,u,f,m,h,b,v,x,R,j,w,E,S,T,P,A,k;return p().w(function(p){for(;;)switch(p.n){case 0:return p.d(g(fF()),1);case 1:r=p.v,a=i(t);case 2:if((n=a()).done){p.n=9;break}for(s=n.value,o=[],d=[],c=[],l=i(s.concat([qW()]));!(u=l()).done;)f=u.value,m=new FW(e,f.key,f.options,r),o.push([f,m]),d.push(m),c.push(f.visitor);h=0,b=o;case 3:if(!(h<b.length)){p.n=5;break}if(v=y(b[h],2),x=v[0],R=v[1],!x.pre){p.n=4;break}return j=gF(x.pre,"You appear to be using an async plugin/preset, but Babel has been called synchronously"),p.d(g(j.call(R,e)),4);case 4:h++,p.n=3;break;case 5:w=OO.visitors.merge(c,d,e.opts.wrapPluginVisitorMethod),OO(e.ast,w,e.scope),E=0,S=o;case 6:if(!(E<S.length)){p.n=8;break}if(T=y(S[E],2),P=T[0],A=T[1],!P.post){p.n=7;break}return k=gF(P.post,"You appear to be using an async plugin/preset, but Babel has been called synchronously"),p.d(g(k.call(A,e)),7);case 7:E++,p.n=6;break;case 8:p.n=2;break;case 9:return p.a(2)}},xV)}var wV=aF(p().m(function e(t,r){var a;return p().w(function(e){for(;;)switch(e.n){case 0:return e.d(g(lW(r)),1);case 1:if(null!==(a=e.v)){e.n=2;break}return e.a(2,null);case 2:return e.d(g(RV(a,t)),3);case 3:return e.a(2,e.v)}},e)})),EV=function(e,t,r){var a,n;if("function"==typeof t?(n=t,a=void 0):(a=t,n=r),void 0===n)return Mq(wV.sync)(e,a);Mq(wV.errback)(e,a,n)};function SV(){return Mq(wV.sync).apply(void 0,arguments)}function TV(){return Mq(wV.async).apply(void 0,arguments)}var PV=function(e,t,r){"function"==typeof t&&(r=t),r(new Error("Transforming files is not supported in browsers"),null)};function AV(){throw new Error("Transforming files is not supported in browsers")}function kV(){return Promise.reject(new Error("Transforming files is not supported in browsers"))}var CV=aF(p().m(function e(t,r,a){var n;return p().w(function(e){for(;;)switch(e.n){case 0:return e.d(g(lW(a)),1);case 1:if(null!==(n=e.v)){e.n=2;break}return e.a(2,null);case 2:if(t){e.n=3;break}throw new Error("No AST given");case 3:return e.d(g(RV(n,r,t)),4);case 4:return e.a(2,e.v)}},e)})),_V=function(e,t,r,a){var n,s;if("function"==typeof r?(s=r,n=void 0):(n=r,s=a),void 0===s)return Mq(CV.sync)(e,t,n);Mq(CV.errback)(e,t,n,s)};function IV(){return Mq(CV.sync).apply(void 0,arguments)}function DV(){return Mq(CV.async).apply(void 0,arguments)}var OV=aF(p().m(function e(t,r){var a;return p().w(function(e){for(;;)switch(e.n){case 0:return e.d(g(lW(r)),1);case 1:if(null!==(a=e.v)){e.n=2;break}return e.a(2,null);case 2:return e.d(g(JW(a.passes,WW(a),t)),3);case 3:return e.a(2,e.v)}},e)})),NV=function(e,t,r){if("function"==typeof t&&(r=t,t=void 0),void 0===r)return Mq(OV.sync)(e,t);Mq(OV.errback)(e,t,r)};function BV(){return Mq(OV.sync).apply(void 0,arguments)}function MV(){return Mq(OV.async).apply(void 0,arguments)}var FV="7.29.0",LV=function(e,t){return null.filepath},UV=function(e,t){return null.filepath},qV=Object.freeze([".js",".jsx",".es6",".es",".mjs",".cjs"]);function GV(){var e;return(e=function(){return{}}).default=e}function WV(e){return e}e.OptionManager=function(){function e(){}return e.prototype.init=function(e){return _W(e)},o(e)}(),e.Plugin=function(e){throw new Error("The ("+e+") Babel 5 plugin is being run with an unsupported Babel version.")};var VV=function(e,t){e.assertVersion("*");var r=t.helperVersion,a=void 0===r?"7.0.0-beta.0":r,n=t.whitelist,s=void 0!==n&&n;if(!1!==s&&(!Array.isArray(s)||s.some(function(e){return"string"!=typeof e})))throw new Error(".whitelist must be undefined, false, or an array of strings");var o=s?new Set(s):null;return{name:"external-helpers",pre:function(e){e.set("helperGenerator",function(t){if((!e.availableHelper||e.availableHelper(t,a))&&(!o||o.has(t)))return Bs(Ps("babelHelpers"),Ps(t))})}}},HV={},zV=cR(Object.freeze({__proto__:null,declare:WV,declarePreset:WV}));Object.defineProperty(HV,"__esModule",{value:!0}),HV.default=void 0;var KV=zV;HV.default=(0,KV.declare)(function(e){return e.assertVersion(7),{name:"syntax-decimal",manipulateOptions:function(e,t){t.plugins.push("decimal")}}});var XV=function(e,t){e.assertVersion("*");var r=t.version,a=t.legacy;if(void 0!==a){if("boolean"!=typeof a)throw new Error(".legacy must be a boolean.");if(void 0!==r)throw new Error("You can either use the .legacy or the .version option, not both.")}if(void 0===r)r=a?"legacy":"2018-09";else if("2023-11"!==r&&"2023-05"!==r&&"2023-01"!==r&&"2022-03"!==r&&"2021-12"!==r&&"2018-09"!==r&&"legacy"!==r)throw new Error("Unsupported decorators version: "+r);var n=t.decoratorsBeforeExport;if(void 0===n){if("2021-12"===r||"2022-03"===r)n=!1;else if("2018-09"===r)throw new Error("The decorators plugin, when .version is '2018-09' or not specified, requires a 'decoratorsBeforeExport' option, whose value must be a boolean.")}else{if("legacy"===r||"2022-03"===r||"2023-01"===r)throw new Error("'decoratorsBeforeExport' can't be used with "+r+" decorators.");if("boolean"!=typeof n)throw new Error("'decoratorsBeforeExport' must be a boolean.")}return{name:"syntax-decorators",manipulateOptions:function(e,t){var a=e.generatorOpts;"legacy"===r?t.plugins.push("decorators-legacy"):"2023-01"===r||"2023-05"===r||"2023-11"===r?t.plugins.push(["decorators",{allowCallParenthesized:!1}],"decoratorAutoAccessors"):"2022-03"===r?t.plugins.push(["decorators",{decoratorsBeforeExport:!1,allowCallParenthesized:!1}],"decoratorAutoAccessors"):"2021-12"===r?(t.plugins.push(["decorators",{decoratorsBeforeExport:n}],"decoratorAutoAccessors"),a.decoratorsBeforeExport=n):"2018-09"===r&&(t.plugins.push(["decorators",{decoratorsBeforeExport:n}]),a.decoratorsBeforeExport=n)}}},JV=function(e){return e.assertVersion("*"),{name:"syntax-destructuring-private",manipulateOptions:function(e,t){t.plugins.push("destructuringPrivate")}}},YV=function(e){return e.assertVersion("*"),{name:"syntax-do-expressions",manipulateOptions:function(e,t){t.plugins.push("doExpressions")}}},$V=function(e){return e.assertVersion("*"),{name:"syntax-explicit-resource-management",manipulateOptions:function(e,t){t.plugins.push("explicitResourceManagement")}}},QV=function(e){return e.assertVersion("*"),{name:"syntax-export-default-from",manipulateOptions:function(e,t){t.plugins.push("exportDefaultFrom")}}},ZV=function(e,t){e.assertVersion("*");var r=t.all,a=t.enums;if("boolean"!=typeof r&&void 0!==r)throw new Error(".all must be a boolean, or undefined");return!1===a&&console.warn("The .enums option has been removed and it's now always enabled."),{name:"syntax-flow",manipulateOptions:function(e,t){t.plugins.some(function(e){return"typescript"===(Array.isArray(e)?e[0]:e)})||t.plugins.push(["flow",{all:r,enums:a}])}}},eH=function(e){return e.assertVersion("*"),{name:"syntax-function-bind",manipulateOptions:function(e,t){t.plugins.push("functionBind")}}},tH=function(e){return e.assertVersion("*"),{name:"syntax-function-sent",manipulateOptions:function(e,t){t.plugins.push("functionSent")}}},rH=function(e){e.assertVersion("*");var t=function(e,t){return"plugin"===t||Array.isArray(e)&&"plugin"===e[0]},r=function(e){return Array.isArray(e)&&e.length>1?e[1]:{}};return{name:"syntax-import-assertions",manipulateOptions:function(e,a){for(var n=a.plugins,s=0;s<n.length;s++){var o=n[s];if(t(o,"deprecatedImportAssert"))return;if(t(o,"importAttributes"))return void n.splice(s,1,"deprecatedImportAssert",["importAttributes",Object.assign({},r(o),{deprecatedAssertSyntax:!0})])}n.push("importAssertions")}}},aH=function(e,t){var r=t.deprecatedAssertSyntax;if(e.assertVersion("*"),null!=r&&"boolean"!=typeof r)throw new Error("'deprecatedAssertSyntax' must be a boolean, if specified.");return{name:"syntax-import-attributes",manipulateOptions:function(e){var t=e.parserOpts,a=e.generatorOpts;null!=a.importAttributesKeyword||(a.importAttributesKeyword="with");var n=t.plugins.indexOf("importAssertions");-1!==n&&(t.plugins.splice(n,1),r=!0),r?t.plugins.push("deprecatedImportAssert",["importAttributes",{deprecatedAssertSyntax:!0}]):t.plugins.push("importAttributes")}}},nH={};Object.defineProperty(nH,"__esModule",{value:!0}),nH.default=void 0;var sH=zV;nH.default=(0,sH.declare)(function(e){return e.assertVersion(7),{name:"syntax-import-reflection",manipulateOptions:function(e,t){t.plugins.push("importReflection")}}});var oH=function(e){return e.assertVersion("*"),{name:"syntax-jsx",manipulateOptions:function(e,t){t.plugins.some(function(e){return"typescript"===(Array.isArray(e)?e[0]:e)})||t.plugins.push("jsx")}}},iH=function(e){return e.assertVersion("*"),{name:"syntax-module-blocks",manipulateOptions:function(e,t){t.plugins.push("moduleBlocks")}}},dH=new cU("@babel/plugin-syntax-optional-chaining-assign"),cH=function(e,t){e.assertVersion("*"),dH.validateTopLevelOptions(t,{version:"version"});var r=t.version;return dH.invariant("2023-07"===r,"'.version' option required, representing the last proposal update. Currently, the only supported value is '2023-07'."),{name:"syntax-optional-chaining-assign",manipulateOptions:function(e,t){t.plugins.push(["optionalChainingAssign",{version:r}])}}},lH=["minimal","fsharp","hack","smart"],uH=["^^","@@","^","%","#"],pH="https://babeljs.io/docs/en/babel-plugin-proposal-pipeline-operator",fH=function(e,t){var r=t.proposal,a=t.topicToken;if(e.assertVersion("*"),"string"!=typeof r||!lH.includes(r)){var n=lH.map(function(e){return'"'+e+'"'}).join(", ");throw new Error('The pipeline plugin requires a "proposal" option. "proposal" must be one of: '+n+". See <"+pH+">.")}if("hack"===r&&!uH.includes(a)){var s=uH.map(function(e){return'"'+e+'"'}).join(", ");throw new Error('The pipeline plugin in "proposal": "hack" mode also requires a "topicToken" option. "topicToken" must be one of: '+s+". See <"+pH+">.")}return{name:"syntax-pipeline-operator",manipulateOptions:function(e,t){t.plugins.push(["pipelineOperator",{proposal:r,topicToken:a}]),e.generatorOpts.topicToken=a}}},gH=function(e,t){var r=[];e.forEach(function(e,a){(Array.isArray(e)?e[0]:e)===t&&r.unshift(a)});for(var a=0,n=r;a<n.length;a++){var s=n[a];e.splice(s,1)}},mH=function(e,t){e.assertVersion("*");var r=t.disallowAmbiguousJSXLike,a=t.dts,n=t.isTSX;return{name:"syntax-typescript",manipulateOptions:function(e,t){var s=t.plugins;gH(s,"flow"),gH(s,"jsx"),s.push("objectRestSpread","classProperties"),n&&s.push("jsx"),t.plugins.push(["typescript",{disallowAmbiguousJSXLike:r,dts:a}])}}},yH=ps,hH=gs,bH=Ts,vH=Ce,xH=se,RH=Re,jH=Ws,wH=Z,EH=Bs,SH=Ps,TH=Xs,PH=ur,AH=pj.expression("\n (function () {\n var REF = FUNCTION;\n return function NAME(PARAMS) {\n return REF.apply(this, arguments);\n };\n })()\n"),kH=pj.expression("\n (function () {\n var REF = FUNCTION;\n function NAME(PARAMS) {\n return REF.apply(this, arguments);\n }\n return NAME;\n })()\n"),CH=pj.statements("\n function NAME(PARAMS) { return REF.apply(this, arguments); }\n function REF() {\n REF = FUNCTION;\n return REF.apply(this, arguments);\n }\n");function _H(e,t,r,a){if(void 0===r&&(r=!0),void 0===a&&(a=!1),e.isMethod())!function(e,t,r){var a=e.node,n=a.body,s=[],o=a.params.some(function(e){return PH(e)});if(o&&(s=a.params,a.params=[],!r))for(var d,c=i(s);!(d=c()).done;){var l=d.value;if(vH(l)||RH(l))break;a.params.push(e.scope.generateUidIdentifier("x"))}var u=bH(null,s,yH(n.body),!0);o?(n.body=[jH(hH(EH(hH(t,[u]),SH("apply")),[TH(),SH("arguments")]))],e.get("body.body.0.argument.callee.object.arguments.0").unwrapFunctionEnvironment()):(n.body=[jH(hH(hH(t,[u]),[]))],e.get("body.body.0.argument.callee.arguments.0").unwrapFunctionEnvironment()),a.async=!1,a.generator=!1}(e,t,a);else{var n="id"in e.node&&!!e.node.id;(function(e,t,r,a,n){var s,o,d=e,c=null,l=e.node.params;s=d.isArrowFunctionExpression()?(d=null!=(o=d.arrowFunctionToExpression({noNewArrows:r}))?o:d).node:d.node;var u=xH(s),p=s;wH(s)||(c=s.id,s.id=null,s.type="FunctionExpression",p=hH(t,[s]));for(var f,g=[],m=i(l);!(f=m()).done;){var y=f.value;if(vH(y)||RH(y))break;g.push(d.scope.generateUidIdentifier("x"))}var h={NAME:c||null,REF:d.scope.generateUidIdentifier(n?c.name:"ref"),FUNCTION:p,PARAMS:g};if(u){var b=CH(h);d.replaceWith(b[0]),d.insertAfter(b[1])}else{var v;v=n?kH(h):AH(h),c||!a&&g.length?d.replaceWith(v):d.replaceWith(p)}})(e=e.ensureFunctionName(!1),t,r,a,n)}}var IH=lm;function DH(e){var t=e.node||e;(function(e){var t=e.leadingComments;return!!t&&t.some(function(e){return/[@#]__PURE__/.test(e.value)})})(t)||IH(t,"leading","#__PURE__")}var OH=gs,NH=sm,BH=ie,MH=Se,FH=Ao,LH=hw({ArrowFunctionExpression:function(e){e.skip()},AwaitExpression:function(e,t){var r=t.wrapAwait,a=e.get("argument");e.replaceWith(FH(r?OH(NH(r),[a.node]):a.node))}});function UH(e,t,r,a){e.traverse(LH,{wrapAwait:t.wrapAwait});var n=function(e){if(e.parentPath.isCallExpression({callee:e.node}))return!0;var t=e.parentPath;if(t.isMemberExpression()){if(BH(t.node.property,{name:"bind"})){var r=t.parentPath;return r.isCallExpression()&&1===r.node.arguments.length&&MH(r.node.arguments[0])&&r.parentPath.isCallExpression({callee:r.node})}return!0}return!1}(e);e.node.async=!1,e.node.generator=!0,_H(e,NH(t.wrapAsync),r,a),e.isObjectMethod()||e.isClassMethod()||e.parentPath.isObjectProperty()||e.parentPath.isClassProperty()||n||!e.isExpression()||DH(e)}var qH=pj("\n async function wrapper() {\n var ITERATOR_ABRUPT_COMPLETION = false;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY;\n try {\n for (\n var ITERATOR_KEY = GET_ITERATOR(OBJECT), STEP_KEY;\n ITERATOR_ABRUPT_COMPLETION = !(STEP_KEY = await ITERATOR_KEY.next()).done;\n ITERATOR_ABRUPT_COMPLETION = false\n ) {\n }\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (ITERATOR_ABRUPT_COMPLETION && ITERATOR_KEY.return != null) {\n await ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n }\n");var GH=function(e){e.assertVersion("*");var t=hw({ArrowFunctionExpression:function(e){e.skip()},YieldExpression:function(e,t){var r=e.node;if(r.delegate){var a=gs(t.addHelper("asyncIterator"),[r.argument]);r.argument=gs(t.addHelper("asyncGeneratorDelegate"),[a,t.addHelper("awaitAsyncGenerator")])}}}),r=hw({ArrowFunctionExpression:function(e){e.skip()},ForOfStatement:function(e,t){var r=t.file,a=e.node;if(a.await){var n,s=function(e,t){var r,a=t.getAsyncIterator,n=e.node,s=e.scope,o=e.parent,i=s.generateUidIdentifier("step"),d=Bs(i,Ps("value")),c=n.left;ie(c)||ur(c)||me(c)?r=Rs(is("=",c,d)):Ae(c)&&(r=Zs(c.kind,[eo(c.declarations[0].id,d)]));var l=qH({ITERATOR_HAD_ERROR_KEY:s.generateUidIdentifier("didIteratorError"),ITERATOR_ABRUPT_COMPLETION:s.generateUidIdentifier("iteratorAbruptCompletion"),ITERATOR_ERROR_KEY:s.generateUidIdentifier("iteratorError"),ITERATOR_KEY:s.generateUidIdentifier("iterator"),GET_ITERATOR:a,OBJECT:n.right,STEP_KEY:sm(i)});l=l.body.body;var u=ce(o),p=l[3].block.body,f=p[0];return u&&(p[0]=ks(o.label,f)),{replaceParent:u,node:l,declar:r,loop:f}}(e,{getAsyncIterator:r.addHelper("asyncIterator")}),o=s.declar,i=s.loop,d=i.body;if(e.ensureBlock(),o)d.body.push(o),e.node.body.body.length&&d.body.push(ps(e.node.body.body));else(n=d.body).push.apply(n,b(e.node.body.body));Cy(i,a),Cy(i.body,a.body);var c=s.replaceParent?e.parentPath:e;c.replaceWithMultiple(s.node),c.scope.parent.crawl()}}}),a={Function:function(e,a){e.node.async&&(e.traverse(r,a),e.node.generator&&(e.traverse(t,a),e.setData("@babel/plugin-transform-async-generator-functions/async_generator_function",!0),UH(e,{wrapAsync:a.addHelper("wrapAsyncGenerator"),wrapAwait:a.addHelper("awaitAsyncGenerator")})))}};return{name:"transform-async-generator-functions",manipulateOptions:function(e,t){return t.plugins.push("asyncGenerators")},visitor:{Program:function(e,t){e.traverse(a,t)}}}};var WH=(void z.env.BABEL_8_BREAKING,FO());function VH(e){var t=e,r=t.node,a=t.parentPath;if(a.isLogicalExpression()){var n=a.node,s=n.operator,o=n.right;if("&&"===s||"||"===s||"??"===s&&r===o)return VH(a)}if(a.isSequenceExpression()){var i=a.node.expressions;return i[i.length-1]!==r||VH(a)}return a.isConditional({test:r})||a.isUnaryExpression({operator:"!"})||a.isForStatement({test:r})||a.isWhile({test:r})}var HH=da,zH=so,KH=is,XH=ds,JH=Ds,YH=gs,$H=sm,QH=ys,ZH=Ps,ez=me,tz=nt,rz=at,az=Pe,nz=Ns,sz=Bs,oz=Is,iz=Do,dz=Io,cz=Vs,lz=Qs,uz=function(){function e(){this._map=void 0,this._map=new WeakMap}var t=e.prototype;return t.has=function(e){return this._map.has(e)},t.get=function(e){if(this.has(e)){var t=this._map.get(e),r=t.value;return t.count--,0===t.count?KH("=",r,e):r}},t.set=function(e,t,r){return this._map.set(e,{count:r,value:t})},o(e)}();function pz(e,t){var r=e.node;if(rz(r))return sz(t,r.property,r.computed);if(e.isOptionalCallExpression()){var a=e.get("callee");if(e.node.optional&&a.isOptionalMemberExpression()){var n=a.node.object,s=e.scope.maybeGenerateMemoised(n);return a.get("object").replaceWith(KH("=",s,n)),YH(sz(t,ZH("call")),[s].concat(b(e.node.arguments)))}return YH(t,e.node.arguments)}return e.node}var fz={memoise:function(){},handle:function(e,t){var r=e.node,a=e.parent,n=e.parentPath,s=e.scope;if(e.isOptionalMemberExpression()){if(function(e){for(;e&&!e.isProgram();){var t=e,r=t.parentPath,a=t.container,n=t.listKey,s=r.node;if(n){if(a!==s[n])return!0}else if(a!==s)return!0;e=r}return!1}(e))return;var o=e.find(function(t){var r=t.node,a=t.parent;return rz(a)?a.optional||a.object!==r:!tz(a)||(r!==e.node&&a.optional||a.callee!==r)});if(s.path.isPattern())return void o.replaceWith(YH(zH([],o.node),[]));var i=VH(o),d=o.parentPath;if(d.isUpdateExpression({argument:r}))throw e.buildCodeFrameError("can't handle update expression");var c=d.isAssignmentExpression({left:o.node}),l=d.isUnaryExpression({operator:"delete"});if(l&&o.isOptionalMemberExpression()&&o.get("property").isPrivateName())throw e.buildCodeFrameError("can't delete a private class element");for(var u=e;;)if(u.isOptionalMemberExpression()){if(u.node.optional)break;u=u.get("object")}else{if(!u.isOptionalCallExpression())throw new Error("Internal error: unexpected "+u.node.type);if(u.node.optional)break;u=u.get("callee")}var p=u.isOptionalMemberExpression()?u.node.object:u.node.callee,f=s.maybeGenerateMemoised(p),g=null!=f?f:p,m=n.isOptionalCallExpression({callee:r}),y=function(e){return m},h=n.isCallExpression({callee:r});u.replaceWith(pz(u,g)),y()?a.optional?n.replaceWith(this.optionalCall(e,a.arguments)):n.replaceWith(this.call(e,a.arguments)):h?e.replaceWith(this.boundGet(e)):this.delete&&n.isUnaryExpression({operator:"delete"})?n.replaceWith(this.delete(e)):n.isAssignmentExpression()?gz(this,e,n):e.replaceWith(this.get(e));for(var v,x=e.node,R=e;R!==o;){var j=R.parentPath;if(j===o&&y()&&a.optional){x=j.node;break}x=pz(j,x),R=j}var w=o.parentPath;if(ez(x)&&w.isOptionalCallExpression({callee:o.node,optional:!0})){var E=x.object;(v=e.scope.maybeGenerateMemoised(E))&&(x.object=KH("=",v,E))}var S=o;(l||c)&&(S=w,x=w.node);var T,P,A=f?KH("=",$H(g),$H(p)):$H(g);if(i?(T=t?XH("!=",A,oz()):nz("&&",XH("!==",A,oz()),XH("!==",$H(g),s.buildUndefinedNode())),S.replaceWith(nz("&&",T,x))):(P=t?XH("==",A,oz()):nz("||",XH("===",A,oz()),XH("===",$H(g),s.buildUndefinedNode())),S.replaceWith(QH(P,l?JH(!0):s.buildUndefinedNode(),x))),v){var k=w.node;w.replaceWith(iz(dz(k.callee,ZH("call"),!1,!0),[$H(v)].concat(b(k.arguments)),!1))}}else if(az(a,{argument:r})){if(this.simpleSet)return void e.replaceWith(this.simpleSet(e));var C=a.operator,_=a.prefix;this.memoise(e,2);var I=s.generateUidIdentifierBasedOnNode(r);s.push({id:I});var D=[KH("=",$H(I),this.get(e))];if(_){D.push(lz(C,$H(I),_));var O=cz(D);return void n.replaceWith(this.set(e,O))}var N=s.generateUidIdentifierBasedOnNode(r);s.push({id:N}),D.push(KH("=",$H(N),lz(C,$H(I),_)),$H(I));var B=cz(D);n.replaceWith(cz([this.set(e,B),$H(N)]))}else if(n.isAssignmentExpression({left:r}))gz(this,e,n);else{if(!n.isCallExpression({callee:r}))return n.isOptionalCallExpression({callee:r})?s.path.isPattern()?void n.replaceWith(YH(zH([],n.node),[])):void n.replaceWith(this.optionalCall(e,n.node.arguments)):void(this.delete&&n.isUnaryExpression({operator:"delete"})?n.replaceWith(this.delete(e)):n.isForXStatement({left:r})||n.isObjectProperty({value:r})&&n.parentPath.isObjectPattern()||n.isAssignmentPattern({left:r})&&n.parentPath.isObjectProperty({value:a})&&n.parentPath.parentPath.isObjectPattern()||n.isArrayPattern()||n.isAssignmentPattern({left:r})&&n.parentPath.isArrayPattern()||n.isRestElement()?e.replaceWith(this.destructureSet(e)):n.isTaggedTemplateExpression()?e.replaceWith(this.boundGet(e)):e.replaceWith(this.get(e)));n.replaceWith(this.call(e,n.node.arguments))}}};function gz(e,t,r){if(e.simpleSet)t.replaceWith(e.simpleSet(t));else{var a=r.node,n=a.operator,s=a.right;if("="===n)r.replaceWith(e.set(t,s));else{var o=n.slice(0,-1);HH.includes(o)?(e.memoise(t,1),r.replaceWith(nz(o,e.get(t),e.set(t,s)))):(e.memoise(t,2),r.replaceWith(e.set(t,XH(o,e.get(t),s))))}}}function mz(e,t,r){e.traverse(t,Object.assign({},fz,r,{memoiser:new uz}))}var yz,hz,bz,vz,xz=gs,Rz=Ps,jz=ie,wz=Xe,Ez=Bs,Sz=Do,Tz=Io;function Pz(e,t,r,a){return 1===r.length&&wz(r[0])&&jz(r[0].argument,{name:"arguments"})?a?Sz(Tz(e,Rz("apply"),!1,!0),[t,r[0].argument],!1):xz(Ez(e,Rz("apply")),[t,r[0].argument]):a?Sz(Tz(e,Rz("call"),!1,!0),[t].concat(b(r)),!1):xz(Ez(e,Rz("call")),[t].concat(b(r)))}var Az,kz,Cz,_z,Iz,Dz,Oz,Nz,Bz,Mz,Fz,Lz,Uz,qz,Gz,Wz,Vz,Hz,zz,Kz,Xz,Jz,Yz=is,$z=gs,Qz=sm,Zz=Ps,eK=Bs,tK=Vs,rK=Cs,aK=Xs,nK=hw({Super:function(e,t){var r=e.node,a=e.parentPath;a.isMemberExpression({object:r})&&t.handle(a)}}),sK=hw({Scopable:function(e,t){var r=t.refName,a=e.scope.getOwnBinding(r);(null==a?void 0:a.identifier.name)===r&&e.scope.rename(r)}}),oK={memoise:function(e,t){var r=e.scope,a=e.node,n=a.computed,s=a.property;if(n){var o=r.maybeGenerateMemoised(s);o&&this.memoiser.set(s,o,t)}},prop:function(e){var t=e.node,r=t.computed,a=t.property;return this.memoiser.has(a)?Qz(this.memoiser.get(a)):r?Qz(a):rK(a.name)},_getPrototypeOfExpression:function(){var e=Qz(this.getObjectRef()),t=this.isStatic||this.isPrivateMethod?e:eK(e,Zz("prototype"));return $z(this.file.addHelper("getPrototypeOf"),[t])},get:function(e){var t=Qz(this.getObjectRef());return $z(this.file.addHelper("superPropGet"),[this.isDerivedConstructor?tK([aK(),t]):t,this.prop(e),aK()].concat(b(this.isStatic||this.isPrivateMethod?[]:[_s(1)])))},_call:function(e,t,r){var a,n=Qz(this.getObjectRef());a=1===t.length&&Xe(t[0])&&(ie(t[0].argument)||Y(t[0].argument))?t[0].argument:os(t);var s=gs(this.file.addHelper("superPropGet"),[this.isDerivedConstructor?tK([aK(),n]):n,this.prop(e),aK(),_s(2|(this.isStatic||this.isPrivateMethod?0:1))]);return r?Do(s,[a],!0):$z(s,[a])},set:function(e,t){var r=Qz(this.getObjectRef());return $z(this.file.addHelper("superPropSet"),[this.isDerivedConstructor?tK([aK(),r]):r,this.prop(e),t,aK(),_s(e.isInStrictMode()?1:0)].concat(b(this.isStatic||this.isPrivateMethod?[]:[_s(1)])))},destructureSet:function(e){throw e.buildCodeFrameError("Destructuring to a super field is not supported yet.")},call:function(e,t){return this._call(e,t,!1)},optionalCall:function(e,t){return this._call(e,t,!0)},delete:function(e){return e.node.computed?tK([$z(this.file.addHelper("toPropertyKey"),[Qz(e.node.property)]),pj.expression.ast(yz||(yz=h(["\n function () { throw new ReferenceError(\"'delete super[expr]' is invalid\"); }()\n "])))]):pj.expression.ast(hz||(hz=h(["\n function () { throw new ReferenceError(\"'delete super.prop' is invalid\"); }()\n "])))}},iK={memoise:function(e,t){var r=e.scope,a=e.node,n=a.computed,s=a.property;if(n){var o=r.maybeGenerateMemoised(s);o&&this.memoiser.set(s,o,t)}},prop:function(e){var t=e.node,r=t.computed,a=t.property;return this.memoiser.has(a)?Qz(this.memoiser.get(a)):r?Qz(a):rK(a.name)},_getPrototypeOfExpression:function(){var e=Qz(this.getObjectRef()),t=this.isStatic||this.isPrivateMethod?e:eK(e,Zz("prototype"));return $z(this.file.addHelper("getPrototypeOf"),[t])},get:function(e){return this._get(e)},_get:function(e){var t=this._getPrototypeOfExpression();return $z(this.file.addHelper("get"),[this.isDerivedConstructor?tK([aK(),t]):t,this.prop(e),aK()])},set:function(e,t){var r=this._getPrototypeOfExpression();return $z(this.file.addHelper("set"),[this.isDerivedConstructor?tK([aK(),r]):r,this.prop(e),t,aK(),Ds(e.isInStrictMode())])},destructureSet:function(e){throw e.buildCodeFrameError("Destructuring to a super field is not supported yet.")},call:function(e,t){return Pz(this._get(e),aK(),t,!1)},optionalCall:function(e,t){return Pz(this._get(e),Qz(aK()),t,!0)},delete:function(e){return e.node.computed?tK([$z(this.file.addHelper("toPropertyKey"),[Qz(e.node.property)]),pj.expression.ast(bz||(bz=h(["\n function () { throw new ReferenceError(\"'delete super[expr]' is invalid\"); }()\n "])))]):pj.expression.ast(vz||(vz=h(["\n function () { throw new ReferenceError(\"'delete super.prop' is invalid\"); }()\n "])))}},dK=Object.assign({},oK,{prop:function(e){var t=e.node.property;return this.memoiser.has(t)?Qz(this.memoiser.get(t)):Qz(t)},get:function(e){var t,r,a,n=this.isStatic,s=this.getSuperRef,o=e.node.computed,i=this.prop(e);n?t=null!=(r=s())?r:eK(Zz("Function"),Zz("prototype")):t=eK(null!=(a=s())?a:Zz("Object"),Zz("prototype"));return eK(t,i,o)},set:function(e,t){var r=e.node.computed,a=this.prop(e);return Yz("=",eK(aK(),a,r),t)},destructureSet:function(e){var t=e.node.computed,r=this.prop(e);return eK(aK(),r,t)},call:function(e,t){return Pz(this.get(e),aK(),t,!1)},optionalCall:function(e,t){return Pz(this.get(e),aK(),t,!0)}}),cK=function(){function e(e){var t,r=e.methodPath;this.methodPath=r,this.isDerivedConstructor=r.isClassMethod({kind:"constructor"})&&!!e.superRef,this.isStatic=r.isObjectMethod()||r.node.static||(null==r.isStaticBlock?void 0:r.isStaticBlock()),this.isPrivateMethod=r.isPrivate()&&r.isMethod(),this.file=e.file,this.constantSuper=null!=(t=e.constantSuper)?t:e.isLoose,this.opts=e}var t=e.prototype;return t.getObjectRef=function(){return Qz(this.opts.objectRef||this.opts.getObjectRef())},t.getSuperRef=function(){return this.opts.superRef?Qz(this.opts.superRef):this.opts.getSuperRef?Qz(this.opts.getSuperRef()):void 0},t.replace=function(){var e=this.methodPath;this.opts.refToPreserve&&e.traverse(sK,{refName:this.opts.refToPreserve.name});var t=this.constantSuper?dK:this.file.availableHelper("superPropSet")?oK:iK;nK.shouldSkip=function(t){if(t.parentPath===e&&("decorators"===t.parentKey||"key"===t.parentKey))return!0},mz(e,nK,Object.assign({file:this.file,scope:this.methodPath.scope,isDerivedConstructor:this.isDerivedConstructor,isStatic:this.isStatic,isPrivateMethod:this.isPrivateMethod,getObjectRef:this.getObjectRef.bind(this),getSuperRef:this.getSuperRef.bind(this),boundGet:t.get},t))},o(e)}(),lK=Ee,uK=Vt,pK=Jt,fK=Ht,gK=zt,mK=xt;function yK(e){return uK(e)||fK(e)||gK(e)||pK(e)||mK(e)||lK(e)}function hK(e){for(;yK(e.node);)e=e.get("expression");return e}function bK(e){for(;yK(e);)e=e.expression;return e}function vK(e){if(e.node.declare)throw e.buildCodeFrameError("TypeScript 'declare' fields must first be transformed by @babel/plugin-transform-typescript.\nIf you have already enabled that plugin (or '@babel/preset-typescript'), make sure that it runs before any plugin related to additional class features:\n - @babel/plugin-transform-class-properties\n - @babel/plugin-transform-private-methods\n - @babel/plugin-proposal-decorators")}var xK=function(e){return e.availableHelper("classPrivateFieldGet2")};function RK(e){var t=hw(Object.assign({},e)),r=Object.assign({},e,{Class:function(e){for(var a,n=this.privateNamesMap,s=e.get("body.body"),o=new Map(n),d=[],c=i(s);!(a=c()).done;){var l=a.value;if(l.isPrivate()){var u=l.node.key.id.name;o.delete(u),d.push(u)}}d.length&&(e.get("body").traverse(t,Object.assign({},this,{redeclared:d})),e.traverse(r,Object.assign({},this,{privateNamesMap:o})),e.skipKey("body"))}});return r}var jK=RK({PrivateName:function(e,t){var r=t.noDocumentAll,a=this.privateNamesMap,n=this.redeclared,s=e.node,o=e.parentPath;if(o.isMemberExpression({property:s})||o.isOptionalMemberExpression({property:s})){var i=s.id.name;a.has(i)&&(null!=n&&n.includes(i)||this.handle(o,r))}}});function wK(e,t,r){for(;null!=(a=t)&&a.hasBinding(e)&&!t.bindingIdentifierEquals(e,r);){var a;t.rename(e),t=t.parent}}function EK(e,t,r){return null!=t.availableHelper&&t.availableHelper("checkInRHS")?gs(t.addHelper("checkInRHS"),[e]):e}var SK=RK({BinaryExpression:function(e,t){var r=t.file,a=e.node,n=a.operator,s=a.left,o=a.right;if("in"===n&&it(s)){var i=this.privateFieldsAsProperties,d=this.privateNamesMap,c=this.redeclared,l=s.id.name;if(d.has(l)&&(null==c||!c.includes(l)))if(wK(this.classRef.name,e.scope,this.innerBinding),i){var u=d.get(l).id;e.replaceWith(pj.expression.ast(kz||(kz=h(["\n Object.prototype.hasOwnProperty.call(",", ",")\n "])),EK(o,r),sm(u)))}else{var p=d.get(l),f=p.id;p.static?e.replaceWith(pj.expression.ast(Cz||(Cz=h([""," === ",""])),EK(o,r),sm(this.classRef))):e.replaceWith(pj.expression.ast(_z||(_z=h(["",".has(",")"])),sm(f),EK(o,r)))}}}});function TK(e,t){return gs(e.addHelper("readOnlyError"),[Cs("#"+t)])}function PK(e,t){return e.availableHelper("writeOnlyError")?gs(e.addHelper("writeOnlyError"),[Cs("#"+t)]):(console.warn("@babel/helpers is outdated, update it to silence this warning."),tm())}function AK(e,t){return t?e:Bs(e,Ps("_"))}function kK(e){return function(t){return Cy(e.apply(this,arguments),t.node)}}var CK={memoise:function(e,t){var r=e.scope,a=e.node.object,n=r.maybeGenerateMemoised(a);n&&this.memoiser.set(a,n,t)},receiver:function(e){var t=e.node.object;return this.memoiser.has(t)?sm(this.memoiser.get(t)):sm(t)},get:kK(function(e){var t=this.classRef,r=this.privateNamesMap,a=this.file,n=this.innerBinding,s=this.noUninitializedPrivateFieldAccess,o=e.node.property,i=o.id.name,d=r.get(i),c=d.id,l=d.static,u=d.method,p=d.methodId,f=d.getId,g=d.setId,m=f||g,y=function(e){return Cy(sm(e),o)};if(l){if(wK(t.name,e.scope,n),!xK(a)){var h=u&&!m?"classStaticPrivateMethodGet":"classStaticPrivateFieldSpecGet";return gs(a.addHelper(h),[this.receiver(e),sm(t),y(c)])}var b=this.receiver(e),v=ie(b)&&b.name===t.name;if(!u)return AK(v?y(c):gs(a.addHelper("assertClassBrand"),[sm(t),b,y(c)]),s);if(f)return v?gs(y(f),[b]):gs(a.addHelper("classPrivateGetter"),[sm(t),b,y(f)]);if(g){var x=tm();return v?x:Vs([gs(a.addHelper("assertClassBrand"),[sm(t),b]),x])}return v?y(c):gs(a.addHelper("assertClassBrand"),[sm(t),b,y(c)])}return u?m?f?xK(a)?gs(a.addHelper("classPrivateGetter"),[sm(c),this.receiver(e),y(f)]):gs(a.addHelper("classPrivateFieldGet"),[this.receiver(e),y(c)]):Vs([this.receiver(e),PK(a,i)]):xK(a)?gs(a.addHelper("assertClassBrand"),[sm(c),this.receiver(e),y(p)]):gs(a.addHelper("classPrivateMethodGet"),[this.receiver(e),sm(c),y(p)]):xK(a)?gs(a.addHelper("classPrivateFieldGet2"),[y(c),this.receiver(e)]):gs(a.addHelper("classPrivateFieldGet"),[this.receiver(e),y(c)])}),boundGet:function(e){return this.memoise(e,1),gs(Bs(this.get(e),Ps("bind")),[this.receiver(e)])},set:kK(function(e,t){var r=this.classRef,a=this.privateNamesMap,n=this.file,s=this.noUninitializedPrivateFieldAccess,o=e.node.property,i=o.id.name,d=a.get(i),c=d.id,l=d.static,u=d.method,p=d.setId,f=d.getId||p,g=function(e){return Cy(sm(e),o)};if(l){if(!xK(n)){var m=u&&!f?"classStaticPrivateMethodSet":"classStaticPrivateFieldSpecSet";return gs(n.addHelper(m),[this.receiver(e),sm(r),g(c),t])}var y=this.receiver(e),h=ie(y)&&y.name===r.name;if(u&&!p){var b=TK(n,i);return Vs(h?[t,b]:[t,gs(n.addHelper("assertClassBrand"),[sm(r),y]),TK(n,i)])}return p?h?gs(sm(p),[y,t]):gs(n.addHelper("classPrivateSetter"),[sm(r),g(p),y,t]):is("=",AK(g(c),s),h?t:gs(n.addHelper("assertClassBrand"),[sm(r),y,t]))}return u?p?xK(n)?gs(n.addHelper("classPrivateSetter"),[sm(c),g(p),this.receiver(e),t]):gs(n.addHelper("classPrivateFieldSet"),[this.receiver(e),g(c),t]):Vs([this.receiver(e),t,TK(n,i)]):xK(n)?gs(n.addHelper("classPrivateFieldSet2"),[g(c),this.receiver(e),t]):gs(n.addHelper("classPrivateFieldSet"),[this.receiver(e),g(c),t])}),destructureSet:function(e){var t=this.classRef,r=this.privateNamesMap,a=this.file,n=this.noUninitializedPrivateFieldAccess,s=e.node.property,o=s.id.name,i=r.get(o),d=i.id,c=i.static,l=i.method,u=i.setId,p=function(e){return Cy(sm(e),s)};if(!xK(a)){if(c){try{var f=a.addHelper("classStaticPrivateFieldDestructureSet")}catch(e){throw new Error("Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \nplease update @babel/helpers to the latest version.")}return Bs(gs(f,[this.receiver(e),sm(t),p(d)]),Ps("value"))}return Bs(gs(a.addHelper("classPrivateFieldDestructureSet"),[this.receiver(e),p(d)]),Ps("value"))}if(l&&!u)return Bs(Vs([e.node.object,TK(a,o)]),Ps("_"));if(c&&!l){var g=this.get(e);if(!n||!Z(g))return g;var m=g.arguments.pop();return g.arguments.push(pj.expression.ast(Iz||(Iz=h(["(_) => "," = _"])),m)),Bs(gs(a.addHelper("toSetter"),[g]),Ps("_"))}var y,b=this.set(e,Ps("_"));if(!Z(b)||!ie(b.arguments[b.arguments.length-1],{name:"_"}))throw e.buildCodeFrameError("Internal Babel error while compiling this code. This is a Babel bug. Please report it at https://github.com/babel/babel/issues.");return y=me(b.callee,{computed:!1})&&ie(b.callee.property)&&"call"===b.callee.property.name?[b.callee.object,os(b.arguments.slice(1,-1)),b.arguments[0]]:[b.callee,os(b.arguments.slice(0,-1))],Bs(gs(a.addHelper("toSetter"),y),Ps("_"))},call:function(e,t){return this.memoise(e,1),Pz(this.get(e),this.receiver(e),t,!1)},optionalCall:function(e,t){return this.memoise(e,1),Pz(this.get(e),this.receiver(e),t,!0)},delete:function(){throw new Error("Internal Babel error: deleting private elements is a parsing error.")}},_K={get:function(e){var t=this.privateNamesMap,r=this.file,a=e.node.object,n=e.node.property.id.name;return pj.expression(Dz||(Dz=h(["BASE(REF, PROP)[PROP]"])))({BASE:r.addHelper("classPrivateFieldLooseBase"),REF:sm(a),PROP:sm(t.get(n).id)})},set:function(){throw new Error("private name handler with loose = true don't need set()")},boundGet:function(e){return gs(Bs(this.get(e),Ps("bind")),[sm(e.node.object)])},simpleSet:function(e){return this.get(e)},destructureSet:function(e){return this.get(e)},call:function(e,t){return gs(this.get(e),t)},optionalCall:function(e,t){return Do(this.get(e),t,!0)},delete:function(){throw new Error("Internal Babel error: deleting private elements is a parsing error.")}};function IK(e,t,r){var a=r.get(t.node.key.id.name).id,n=t.node.value||t.scope.buildUndefinedNode();return qK(pj.statement.ast(Oz||(Oz=h(["\n Object.defineProperty(",", ",", {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ","\n });\n "])),e,sm(a),n),t)}var DK=function(e,t){var r=t.get(e.node.key.id.name),a=r.id,n=r.getId,s=r.setId,o=r.initAdded,i=n||s;if(e.isProperty()||!o&&i){if(i)return t.set(e.node.key.id.name,Object.assign({},r,{initAdded:!0})),qK(pj.statement.ast(Xz||(Xz=h(["\n var "," = {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ",",\n set: ","\n }\n "])),sm(a),n?n.name:e.scope.buildUndefinedNode(),s?s.name:e.scope.buildUndefinedNode()),e);var d=e.node.value||e.scope.buildUndefinedNode();return qK(pj.statement.ast(Jz||(Jz=h(["\n var "," = {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ","\n };\n "])),sm(a),d),e)}};function OK(e,t,r,a){var n=r.get(t.node.key.id.name);if(!n.initAdded){if(!xK(a))if(n.getId||n.setId)return function(e,t,r,a){var n=r.get(t.node.key.id.name),s=n.id,o=n.getId,i=n.setId;if(r.set(t.node.key.id.name,Object.assign({},n,{initAdded:!0})),!a.availableHelper("classPrivateFieldInitSpec"))return qK(pj.statement.ast(qz||(qz=h(["\n ",".set(",", {\n get: ",",\n set: ","\n });\n "])),s,e,o?o.name:t.scope.buildUndefinedNode(),i?i.name:t.scope.buildUndefinedNode()),t);var d=a.addHelper("classPrivateFieldInitSpec");return GK(qK(pj.statement.ast(Uz||(Uz=h(["","(\n ",",\n ",",\n {\n get: ",",\n set: ","\n },\n )"])),d,{type:"ThisExpression"},sm(s),o?o.name:t.scope.buildUndefinedNode(),i?i.name:t.scope.buildUndefinedNode()),t),t.node)}(e,t,r,a);return function(e,t,r,a){var n=r.get(t.node.key.id.name),s=n.id;if(!a.availableHelper("classPrivateMethodInitSpec"))return qK(pj.statement.ast(Wz||(Wz=h(["",".add(",")"])),s,e),t);var o=a.addHelper("classPrivateMethodInitSpec");return qK(pj.statement.ast(Gz||(Gz=h(["","(\n ",",\n ","\n )"])),o,{type:"ThisExpression"},sm(s)),t)}(e,t,r,a)}}function NK(e,t){var r=t.node,a=r.key,n=r.computed,s=t.node.value||t.scope.buildUndefinedNode();return qK(Rs(is("=",Bs(e,a,n||dr(a)),s)),t)}function BK(e,t,r){var a=t.node,n=a.key,s=a.computed,o=t.node.value||t.scope.buildUndefinedNode();return qK(Rs(gs(r.addHelper("defineProperty"),[e,s||dr(n)?n:Cs(n.name),o])),t)}function MK(e,t,r,a){void 0===a&&(a=!1);var n=r.get(t.node.key.id.name),s=n.id,o=n.methodId,d=n.getId,c=n.setId,l=n.getterDeclared,u=n.setterDeclared,p=n.static,f=t.node,g=f.params,m=f.body,y=f.generator,b=f.async,v=d&&0===g.length,x=c&&g.length>0;if(v&&l||x&&u)return r.set(t.node.key.id.name,Object.assign({},n,{initAdded:!0})),null;if(xK(e)&&(v||x)&&!a){var R=t.get("body").scope,j=R.generateUidIdentifier("this"),w={thisRef:j,argumentsPath:[]};if(t.traverse(LK,w),w.argumentsPath.length){var E=R.generateUidIdentifier("arguments");R.push({id:E,init:pj.expression.ast(zz||(zz=h(["[].slice.call(arguments, 1)"])))});for(var S,T=i(w.argumentsPath);!(S=T()).done;){S.value.replaceWith(sm(E))}}g.unshift(sm(j))}var P=o;return v?(r.set(t.node.key.id.name,Object.assign({},n,{getterDeclared:!0,initAdded:!0})),P=d):x?(r.set(t.node.key.id.name,Object.assign({},n,{setterDeclared:!0,initAdded:!0})),P=c):p&&!a&&(P=s),qK(Ss(sm(P),g,m,y,b),t)}var FK,LK=hw({Identifier:function(e,t){t.argumentsPath&&"arguments"===e.node.name&&t.argumentsPath.push(e)},UnaryExpression:function(e){var t=e.node;"delete"===t.operator&&(Se(bK(t.argument))&&e.replaceWith(Ds(!0)))},ThisExpression:function(e,t){t.needsClassRef=!0,e.replaceWith(sm(t.thisRef))},MetaProperty:function(e){var t=e.node,r=e.scope;"new"===t.meta.name&&"target"===t.property.name&&e.replaceWith(r.buildUndefinedNode())}}),UK={ReferencedIdentifier:function(e,t){e.scope.bindingIdentifierEquals(e.node.name,t.innerBinding)&&(t.needsClassRef=!0,e.node.name=t.thisRef.name)}};function qK(e,t){return fm(e,t.node),pm(e,t.node),e}function GK(e,t){return e.start=t.start,e.end=t.end,e.loc=t.loc,e}function WK(e,t,r,a,n,s,o,d,c,l){var u,p=0,f=[],g=[],m=!1,y=[],b=null,v=ie(t)?function(){return t}:function(){return null!=u||(u=r[0].scope.generateUidIdentifierBasedOnNode(t)),u},x=null!=e?e:r[0].scope.generateUidIdentifier((null==l?void 0:l.name)||"Class");null!=e||(e=sm(l));for(var R,j=function(){var t=R.value;t.isClassProperty()&&vK(t);var r=!(null!=dt&&dt(t.node))&&t.node.static,i=!r,u=t.isPrivate(),b=!u,j=t.isProperty(),w=!j,E=null==t.isStaticBlock?void 0:t.isStaticBlock();if(r&&(p|=1),r||w&&u||E){new cK({methodPath:t,constantSuper:c,file:n,refToPreserve:l,getSuperRef:v,getObjectRef:function(){return p|=2,r||E?x:Bs(x,Ps("prototype"))}}).replace();var S=function(e,t,r){var a,n={thisRef:t,needsClassRef:!1,innerBinding:r};return e.isMethod()||e.traverse(LK,n),null!=r&&null!=(a=n.thisRef)&&a.name&&n.thisRef.name!==r.name&&e.traverse(UK,n),n.needsClassRef}(t,x,l);S&&(p|=2)}switch(m=!1,!0){case E:var T=t.node.body;1===T.length&&re(T[0])?f.push(qK(T[0],t)):f.push(mm(pj.statement.ast(Kz||(Kz=h(["(() => { "," })()"])),T),t.node));break;case r&&u&&j&&o:f.push(IK(sm(e),t,a));break;case r&&u&&j&&!o:xK(n)?f.push(function(e,t,r){var a=t.get(e.node.key.id.name),n=r?e.node.value:pj.expression.ast(Mz||(Mz=h(["{\n _: ","\n }"])),e.node.value||tm());return qK(Zs("var",[eo(sm(a.id),n)]),e)}(t,a,d)):f.push(DK(t,a));break;case r&&b&&j&&s:if(!function(e){var t=e.key,r=e.computed;return"Identifier"===t.type?!r&&("name"===t.name||"length"===t.name):"StringLiteral"===t.type&&("name"===t.value||"length"===t.value)}(t.node)){f.push(NK(sm(e),t));break}case r&&b&&j&&!s:f.push(BK(sm(e),t,n));break;case i&&u&&j&&o:g.push(IK({type:"ThisExpression"},t,a));break;case i&&u&&j&&!o:g.push(function(e,t,r,a){var n=r.get(t.node.key.id.name).id,s=t.node.value||t.scope.buildUndefinedNode();return a.availableHelper("classPrivateFieldInitSpec")?GK(qK(Rs(gs(a.addHelper("classPrivateFieldInitSpec"),[{type:"ThisExpression"},GK(sm(n),t.node.key),xK(a)?s:pj.expression.ast(Nz||(Nz=h(["{ writable: true, value: "," }"])),s)])),t),t.node):qK(pj.statement.ast(Bz||(Bz=h(["",".set(",", {\n // configurable is always false for private elements\n // enumerable is always false for private elements\n writable: true,\n value: ",",\n })"])),sm(n),e,s),t)}({type:"ThisExpression"},t,a,n));break;case i&&u&&w&&o:g.unshift(function(e,t,r){var a=r.get(t.node.key.id.name),n=a.methodId,s=a.id,o=a.getId,i=a.setId;if(!a.initAdded)return n?qK(pj.statement.ast(Fz||(Fz=h(["\n Object.defineProperty(",", ",", {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ","\n });\n "])),e,s,n.name),t):o||i?(r.set(t.node.key.id.name,Object.assign({},a,{initAdded:!0})),qK(pj.statement.ast(Lz||(Lz=h(["\n Object.defineProperty(",", ",", {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ",",\n set: ","\n });\n "])),e,s,o?o.name:t.scope.buildUndefinedNode(),i?i.name:t.scope.buildUndefinedNode()),t)):void 0}({type:"ThisExpression"},t,a)),y.push(MK(n,t,a,o));break;case i&&u&&w&&!o:g.unshift(OK({type:"ThisExpression"},t,a,n)),y.push(MK(n,t,a,o));break;case r&&u&&w&&!o:xK(n)||f.unshift(DK(t,a)),y.push(MK(n,t,a,o));break;case r&&u&&w&&o:f.unshift(function(e,t,r,a){var n=a.get(t.node.key.id.name),s=n.id,o=n.methodId,i=n.getId,d=n.setId;if(!n.initAdded)return i||d?(a.set(t.node.key.id.name,Object.assign({},n,{initAdded:!0})),qK(pj.statement.ast(Vz||(Vz=h(["\n Object.defineProperty(",", ",", {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ",",\n set: ","\n })\n "])),e,s,i?i.name:t.scope.buildUndefinedNode(),d?d.name:t.scope.buildUndefinedNode()),t)):qK(pj.statement.ast(Hz||(Hz=h(["\n Object.defineProperty(",", ",", {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ","\n });\n "])),e,s,o.name),t)}(sm(e),t,0,a)),y.push(MK(n,t,a,o));break;case i&&b&&j&&s:g.push(NK({type:"ThisExpression"},t));break;case i&&b&&j&&!s:m=!0,g.push(BK({type:"ThisExpression"},t,n));break;default:throw new Error("Unreachable.")}},w=i(r);!(R=w()).done;)j();return 2&p&&null!=l&&(b=Rs(is("=",sm(x),sm(l)))),{staticNodes:f.filter(Boolean),instanceNodes:g.filter(Boolean),lastInstanceNodeReturnsThis:m,pureStaticNodes:y.filter(Boolean),classBindingNode:b,wrapClass:function(t){for(var a,n=i(r);!(a=n()).done;){var s=a.value;s.node.leadingComments=null,s.remove()}return u&&(t.scope.push({id:sm(u)}),t.set("superClass",is("=",u,t.node.superClass))),0!==p&&(t.isClassExpression()?(t.scope.push({id:e}),t.replaceWith(is("=",sm(e),t.node))):(null==l&&(t.node.id=e),null!=b&&t.scope.push({id:x}))),t}}}var VK=hw({Super:function(e){var t=e.node,r=e.parentPath;r.isCallExpression({callee:t})&&this.push(r)}}),HK={"TSTypeAnnotation|TypeAnnotation":function(e){e.skip()},ReferencedIdentifier:function(e,t){var r=t.scope;r.hasOwnBinding(e.node.name)&&(r.rename(e.node.name),e.skip())}};function zK(e,t){if(t.classBinding&&t.classBinding===e.scope.getBinding(e.node.name)){var r=gs(t.file.addHelper("classNameTDZError"),[Cs(e.node.name)]);e.replaceWith(Vs([r,e.node])),e.skip()}}var KK,XK,JK,YK,$K,QK={ReferencedIdentifier:zK,"TSTypeAnnotation|TypeAnnotation":function(e){e.skip()}};function ZK(e,t,r,a,n){if(r.length){var s=!!e.node.superClass;if(!t){var o=Ro("constructor",Ps("constructor"),[],ps([]));s&&(o.params=[Gs(Ps("args"))],o.body.body.push(pj.statement.ast(FK||(FK=h(["super(...args)"]))))),t=y(e.get("body").unshiftContainer("body",o),1)[0]}if(a&&a(HK,{scope:t.scope}),s){var i=[];t.traverse(VK,i);for(var d=!0,c=0,l=i;c<l.length;c++){var u=l[c];if(d?d=!1:r=r.map(function(e){return sm(e)}),u.parentPath.isExpressionStatement())u.insertAfter(r);else{var p=[u.node].concat(b(r.map(function(e){return by(e)})));n||p.push(Xs()),u.replaceWith(Vs(p))}}}else t.get("body").unshiftContainer("body",r)}}function eX(e,t,r){if(!(ie(e)&&t.hasUid(e.name))){if($(e,{operator:"="})&&ie(e.left)&&t.hasUid(e.left.name))return sm(e);var a=Ps(r);return t.push({id:a,kind:"let"}),is("=",sm(a),e)}}function tX(e){var t;return!(null==(t=e.decorators)||!t.length)}function rX(e){return tX(e)||e.body.body.some(tX)}function aX(e,t){if(void 0===t&&(t=e.length-1),-1!==t){var r=e[t];90===r?e[t]=97:122===r?(e[t]=65,aX(e,t-1)):e[t]=r+1}else e.unshift(65)}function nX(e){var t;return function(){return t||(t=function(e){var t=[],r=new Set;return Ry(e.node,function(e){it(e)&&r.add(e.id.name)}),function(){var e;do{aX(t),e=String.fromCharCode.apply(String,t)}while(r.has(e));return Fo(Ps(e))}}(e)),t()}}function sX(e,t,r){return"PrivateName"===e.type?Bo(e,t,void 0,r):Oo(e,t,void 0,void 0,r)}function oX(e,t){e.node.id||(e.node.id="string"==typeof t?Ps(t):e.scope.generateUidIdentifier("Class"))}function iX(e,t,r,a,n,s,o,i){var d,c,l="2023-11"!==i&&"2023-05"!==i||!o?{type:"ThisExpression"}:e,u=ps([Ws(Bs(sm(l),sm(n)))]),p=ps([Rs(is("=",Bs(sm(l),sm(n)),Ps("v")))]);"PrivateName"===r.type?(d=Mo("get",r,[],u,o),c=Mo("set",a,[Ps("v")],p,o)):(d=Ro("get",r,[],u,s,o),c=Ro("set",a,[Ps("v")],p,s,o)),t.insertAfter(c),t.insertAfter(d)}function dX(e,t){return"2023-11"!==t&&"2023-05"!==t&&"2023-01"!==t?[pj.expression.ast(KK||(KK=h(["\n function () {\n return this.",";\n }\n "])),sm(e)),pj.expression.ast(XK||(XK=h(["\n function (value) {\n this."," = value;\n }\n "])),sm(e))]:[pj.expression.ast(JK||(JK=h(["\n o => o.","\n "])),sm(e)),pj.expression.ast(YK||(YK=h(["\n (o, v) => o."," = v\n "])),sm(e))]}function cX(e){if((e=hK(e)).isSequenceExpression()){var t=e.get("expressions");return cX(t[t.length-1])}return e}function lX(e){var t=cX(e);if(t.isConstantExpression())return sm(e.node);if(t.isIdentifier()&&e.scope.hasUid(t.node.name))return sm(e.node);if(t.isAssignmentExpression()&&t.get("left").isIdentifier())return sm(t.node.left);throw new Error("Internal Error: the computed key "+e.toString()+" has not yet been memoised.")}function uX(e,t){var r=t.get("key");r.isSequenceExpression()?e.push.apply(e,b(r.node.expressions)):e.push(r.node),r.replaceWith(PX(e))}function pX(e,t){var r=t.get("value");r.node?e.push(r.node):e.length>0&&(e[e.length-1]=$s("void",e[e.length-1])),r.replaceWith(PX(e))}function fX(e,t){t.unshiftContainer("body",Rs(PX(e)))}function gX(e,t){return Z(e)&&ie(e.callee,{name:t.name})}function mX(e,t,r){t.traverse({CallExpression:{exit:function(t){if(t.get("callee").isSuper()){var a=[t.node].concat(b(e.map(function(e){return sm(e)})));t.isCompletionRecord()&&a.push({type:"ThisExpression"}),t.replaceWith(function(e,t){if(t){if(e.length>=2&&gX(e[1],t)){var r=gs(sm(t),[e[0]]);e.splice(0,2,r)}e.length>=2&&Se(e[e.length-1])&&gX(e[e.length-2],t)&&e.splice(e.length-1,1)}return PX(e)}(a,r)),t.skip()}}},ClassMethod:function(e){"constructor"===e.node.kind&&e.skip()}})}function yX(e,t){var r=[Rs(PX(e))];return t&&r.unshift(Rs(gs({type:"Super"},[wo(Ps("args"))]))),Ro("constructor",Ps("constructor"),t?[Gs(Ps("args"))]:[],ps(r))}function hX(e){return Lo([Rs(PX(e))])}var bX,vX,xX,RX;function jX(e){switch(e.node.type){case"ClassProperty":case"ClassPrivateProperty":return 0;case"ClassAccessorProperty":return 1;case"ClassMethod":case"ClassPrivateMethod":return"get"===e.node.kind?3:"set"===e.node.kind?4:2}}function wX(e,t,r){for(var a=e.length,n=t.some(Boolean),s=[],o=0;o<a;o++)"2023-11"!==r&&"2023-05"!==r||!n||s.push(t[o]||$s("void",_s(0))),s.push(e[o].expression);return{haveThis:n,decs:s}}function EX(e,t,r,a,n,s){t.insertAfter(Mo("get",sm(r),[],ps([Ws(gs(sm(a),"2023-11"===e&&s?[]:[{type:"ThisExpression"}]))]),s)),t.insertAfter(Mo("set",sm(r),[Ps("v")],ps([Rs(gs(sm(n),"2023-11"===e&&s?[Ps("v")]:[{type:"ThisExpression"},Ps("v")]))]),s))}function SX(e,t,r,a){var n,s;"set"===e.node.kind?(n=[Ps("v")],s=[Rs(gs(r,[{type:"ThisExpression"},Ps("v")]))]):(n=[],s=[Ws(gs(r,[{type:"ThisExpression"}]))]),e.replaceWith(Mo(e.node.kind,sm(t),n,ps(s),a))}function TX(e){var t=e.type;return"TSDeclareMethod"!==t&&"TSIndexSignature"!==t&&"StaticBlock"!==t}function PX(e){return 0===e.length?$s("void",_s(0)):1===e.length?e[0]:Vs(e)}function AX(e){return Ts(void 0,e.params,e.body,e.generator,e.async)}function kX(e,t){return gs(e.addHelper("setFunctionName"),[{type:"ThisExpression"},t])}function CX(e,t){return gs(e.addHelper("toPropertyKey"),[t])}function _X(e){return so([Ps("_")],ds("in",sm(e),Ps("_")))}function IX(e){try{return Ry(e,function(e){if(it(e))throw null}),!1}catch(e){return!0}}function DX(e,t){var r=!1;if(t.length>0){for(var a,n=RK({PrivateName:function(e,t){t.privateNamesMap.has(e.node.id.name)&&(r=!0,e.stop())}}),s=new Map,o=i(t);!(a=o()).done;){var d=a.value;s.set(d,null)}e.traverse(n,{privateNamesMap:s})}return r}function OX(e,t,r,a,n,s,o){for(var d,c,l,u,p=e.get("body.body"),f=e.node.decorators,g=!1,m=!1,v=!1,x=nX(e),R=[],j=e.scope.parent,w=function(e,t,r){var a=UX(j,t);return r.push(is("=",a,e)),sm(a)},E=null==(d=e.node.id)?void 0:d.name,S="object"==typeof n?n:void 0,T=function(e){try{return Ry(e,function(e){if(Se(e)||Je(e)||Qe(e)||Ze(e)||ie(e,{name:"arguments"})||E&&ie(e,{name:E})||He(e)&&"import"!==e.meta.name)throw null}),!1}catch(e){return!0}},P=[],A=i(p);!(u=A()).done;){var k=u.value;if(TX(k)){var C=k.node;if(!C.static&&it(C.key)&&P.push(C.key.id.name),BX(C)){switch(C.type){case"ClassProperty":s.ClassProperty(k,t);break;case"ClassPrivateProperty":s.ClassPrivateProperty(k,t);break;case"ClassAccessorProperty":if(s.ClassAccessorProperty(k,t),"2023-11"===o)break;default:C.static?null!=l||(l=UX(j,"initStatic")):null!=c||(c=UX(j,"initProto"))}g=!0,v||(v=C.decorators.some(T))}else if("ClassAccessorProperty"===C.type){s.ClassAccessorProperty(k,t);var _=C.key,I=C.value,D=C.static,O=C.computed,N=x(),B=sX(N,I,D),M=k.get("key"),F=y(k.replaceWith(B),1)[0],L=void 0,U=void 0;O&&!M.isConstantExpression()?U=sm((L=eX(CX(t,_),j,j.generateUid("computedKey"))).left):(L=sm(_),U=sm(_)),oX(e,n),iX(e.node.id,F,L,U,N,O,D,o)}"computed"in k.node&&k.node.computed&&(m||(m=!j.isStatic(k.node.key)))}}if(!f&&!g)return e.node.id||"string"!=typeof n||(e.node.id=Ps(n)),void(S&&e.node.body.body.unshift(hX([kX(t,S)])));var q,G,W,V=[],H=new Set,z=null;function K(e){for(var t,r=!1,a=!1,n=[],s=i(e);!(t=s()).done;){var d=t.value,c=d.expression,l=void 0;"2023-11"!==o&&"2023-05"!==o||!me(c)||(Je(c.object)?l=Xs():j.isStatic(c.object)?l=sm(c.object):(null!=z||(z=UX(j,"obj")),l=is("=",sm(z),c.object),c.object=sm(z))),n.push(l),r||(r=!j.isStatic(c)),a||(a=T(d))}return{hasSideEffects:r,usesFnContext:a,decoratorsThis:n}}var X,J,Y=m||v||"2023-11"!==o,Q=!1,Z=0,ee=[],te=[];if(f){G=UX(j,"initClass"),Q=e.isClassDeclaration();var re=function(e,t){var r,a=e.node.id,n=e.scope;if("ClassDeclaration"===e.type){var s=a.name,o=n.generateUidIdentifierBasedOnNode(a),i=Ps(s);return n.rename(s,o.name),e.get("id").replaceWith(i),{id:sm(o),path:e}}a?(t=a.name,r=UX(n.parent,t),n.rename(t,r.name)):r=UX(n.parent,"string"==typeof t?t:"decorated_class");var d=io("string"==typeof t?Ps(t):null,e.node.superClass,e.node.body),c=y(e.replaceWith(Vs([d,r])),1)[0];return{id:sm(r),path:c.get("expressions.0")}}(e,n);W=re.id,(e=re.path).node.decorators=null;var ae=f.some(IX),ne=K(f),se=ne.hasSideEffects,oe=ne.usesFnContext,de=wX(f,ne.decoratorsThis,o);if(Z=de.haveThis?1:0,ee=de.decs,(oe||se&&Y||ae)&&(X=w(os(ee),"classDecs",R)),!g)for(var ce,le=i(e.get("body.body"));!(ce=le()).done;){var ue=ce.value,pe=ue.node;if("computed"in pe&&pe.computed)if(ue.isClassProperty({static:!0})){if(!ue.get("key").isConstantExpression()){var fe=eX(pe.key,j,j.generateUid("computedKey"));null!=fe&&(pe.key=sm(fe.left),te.push(fe))}}else te.length>0&&(uX(te,ue),te=[])}}else oX(e,n),W=sm(e.node.id);var ge=!1,ye=[],he=[];if(g){if(c){var be=gs(sm(c),[{type:"ThisExpression"}]);ye.push(be)}for(var ve,xe=i(p);!(ve=xe()).done;){var je=ve.value;if(TX(je)){var we=je.node,Ee=we.decorators,Te=!(null==Ee||!Ee.length),Pe="computed"in we&&we.computed,Ae="computedKey";"PrivateName"===we.key.type?Ae=we.key.id.name:Pe||"Identifier"!==we.key.type||(Ae=we.key.name);var ke=void 0,Ce=void 0;if(Te){var _e=K(Ee),Ie=_e.hasSideEffects,De=_e.usesFnContext,Oe=wX(Ee,_e.decoratorsThis,o),Ne=Oe.decs;Ce=Oe.haveThis,ke=1===Ne.length?Ne[0]:os(Ne),(De||Ie&&Y)&&(ke=w(ke,Ae+"Decs",te))}if(Pe&&!je.get("key").isConstantExpression()){var Be=we.key,Me=eX(Te?CX(t,Be):Be,j,j.generateUid("computedKey"));null!=Me&&(f&&je.isClassProperty({static:!0})?(we.key=sm(Me.left),te.push(Me)):we.key=Me)}var Fe=we.key,Le=we.static,Ue="PrivateName"===Fe.type,qe=jX(je);Ue&&!Le&&(Te&&(ge=!0),!ot(we)&&J||(J=Fe)),je.isClassMethod({kind:"constructor"})&&(q=je);var Ge=void 0;if(Te){var We=void 0,Ve=void 0;if(Ve=Pe?lX(je.get("key")):"PrivateName"===Fe.type?Cs(Fe.id.name):"Identifier"===Fe.type?Cs(Fe.name):sm(Fe),1===qe){var ze=je.node.value,Ke="2023-11"===o&&Le?[]:[Xs()];ze&&Ke.push(sm(ze));var Xe=x(),Ye=UX(j,"init_"+Ae),$e=sX(Xe,gs(sm(Ye),Ke),Le),et=y(je.replaceWith($e),1)[0];if(Ue){We=dX(Xe,o);var tt=UX(j,"get_"+Ae),rt=UX(j,"set_"+Ae);EX(o,et,Fe,tt,rt,Le),Ge=[Ye,tt,rt]}else oX(e,n),iX(e.node.id,et,sm(Fe),$(Fe)?sm(Fe.left):sm(Fe),Xe,Pe,Le,o),Ge=[Ye]}else if(0===qe){var at=UX(j,"init_"+Ae),nt=je.get("value"),dt="2023-11"===o&&Le?[]:[Xs()];nt.node&&dt.push(nt.node),nt.replaceWith(gs(sm(at),dt)),Ge=[at],Ue&&(We=dX(Fe,o))}else if(Ue){var ct=UX(j,"call_"+Ae);if(Ge=[ct],new cK({constantSuper:r,methodPath:je,objectRef:W,superRef:e.node.superClass,file:t.file,refToPreserve:W}).replace(),We=[AX(je.node)],3===qe||4===qe)SX(je,sm(Fe),sm(ct),Le);else{var lt=je.node;e.node.body.body.unshift(Bo(Fe,sm(ct),[],lt.static)),H.add(Fe.id.name),je.remove()}}V.push({kind:qe,decoratorsArray:ke,decoratorsHaveThis:Ce,name:Ve,isStatic:Le,privateMethods:We,locals:Ge}),je.node&&(je.node.decorators=null)}if(Pe&&te.length>0&&(f&&je.isClassProperty({static:!0})||(uX(te,1===qe?je.getNextSibling():je),te=[])),ye.length>0&&!Le&&(0===qe||1===qe)&&(pX(ye,je),ye=[]),he.length>0&&Le&&(0===qe||1===qe)&&(pX(he,je),he=[]),Te&&"2023-11"===o&&(0===qe||1===qe)){var ut=UX(j,"init_extra_"+Ae);Ge.push(ut);var pt=gs(sm(ut),Le?[]:[Xs()]);Le?he.push(pt):ye.push(pt)}}else he.length>0&&je.isStaticBlock()&&(fX(he,je),he=[])}}if(te.length>0){for(var ft,gt=e.get("body.body"),mt=gt.length-1;mt>=0;mt--){var yt=gt[mt],ht=yt.node;if(ht.computed){if(f&&st(ht,{static:!0}))continue;ft=yt;break}}null!=ft&&(!function(e,t){var r=t.get("key"),a=cX(r);if(a.isConstantExpression())uX(e,t);else{var n=r.scope.parent,s=eX(a.node,n,n.generateUid("computedKey"));if(s){var o=[].concat(b(e),[sm(s.left)]),i=a.parentPath;i.isSequenceExpression()?i.pushContainer("expressions",o):a.replaceWith(PX([sm(s)].concat(b(o))))}else uX(e,t)}}(te,ft),te=[])}if(ye.length>0){var bt=!!e.node.superClass;q?bt?mX(ye,q,c):function(e,t){t.node.body.body.unshift(Rs(PX(e)))}(ye,q):e.node.body.body.unshift(yX(ye,bt)),ye=[]}he.length>0&&(e.node.body.body.push(hX(he)),he=[]);var vt,xt=[].concat(b((vt=V).filter(function(e){return e.isStatic&&e.kind>=1&&e.kind<=4})),b(vt.filter(function(e){return!e.isStatic&&e.kind>=1&&e.kind<=4})),b(vt.filter(function(e){return e.isStatic&&0===e.kind})),b(vt.filter(function(e){return!e.isStatic&&0===e.kind}))),Rt=function(e,t){return os(e.map(function(e){var r=e.kind;return e.isStatic&&(r+="2023-11"===t||"2023-05"===t?8:5),e.decoratorsHaveThis&&(r+=16),os([e.decoratorsArray,_s(r),e.name].concat(b(e.privateMethods||[])))}))}("2023-11"===o?V:xt,o),jt=function(e){for(var t,r=[],a=i(e);!(t=a()).done;){var n=t.value.locals;Array.isArray(n)?r.push.apply(r,b(n)):void 0!==n&&r.push(n)}return r}(xt);c&&jt.push(c),l&&jt.push(l);var wt=[],Et=!1,St=G&&gs(sm(G),[]),Tt=e,Pt=e.node,At=[];if(f){wt.push(W,G);var kt=[];if(e.get("body.body").forEach(function(n){if(n.isStaticBlock()){if(DX(n,P)){var s=w(Ts(null,[],ps(n.node.body)),"staticBlock",At);he.push(gs(Bs(s,Ps("call")),[{type:"ThisExpression"}]))}else he.push(function(e){return gs(so([],ps(e.body)),[])}(n.node));n.remove()}else{if((n.isClassProperty()||n.isClassPrivateProperty())&&n.node.static){var o=n.get("value");if(DX(o,P)){var i=w(function(e){return Ts(null,[],ps([Ws(e)]))}(o.node),"fieldValue",At);o.replaceWith(gs(Bs(i,Ps("call")),[{type:"ThisExpression"}]))}he.length>0&&(pX(he,n),he=[]),n.node.static=!1,kt.push(n.node),n.remove()}else if(n.isClassPrivateMethod({static:!0})){if(DX(n,P)){new cK({constantSuper:r,methodPath:n,objectRef:W,superRef:e.node.superClass,file:t.file,refToPreserve:W}).replace();var d=w(AX(n.node),n.get("key.id").node.name,At);a?(n.node.params=[Gs(Ps("arg"))],n.node.body=ps([Ws(gs(Bs(d,Ps("apply")),[{type:"ThisExpression"},Ps("arg")]))])):(n.node.params=n.node.params.map(function(e,t){return Re(e)?Gs(Ps("arg")):Ps("_"+t)}),n.node.body=ps([Ws(gs(Bs(d,Ps("apply")),[{type:"ThisExpression"},Ps("arguments")]))]))}n.node.static=!1,kt.push(n.node),n.remove()}}}),kt.length>0||he.length>0){var Ct=pj.expression.ast($K||($K=h(["\n class extends "," {}\n "])),t.addHelper("identity"));Ct.body.body=[Oo(by(Pt),void 0,void 0,void 0,!0,!0)].concat(kt);var _t=[],It=Ms(Ct,[]);he.length>0&&_t.push.apply(_t,b(he)),St&&(Et=!0,_t.push(St)),_t.length>0?(_t.unshift(gs({type:"Super"},[sm(W)])),Ct.body.body.push(yX(_t,!1))):It.arguments.push(sm(W)),Tt=y(e.replaceWith(It),1)[0].get("callee").get("body").get("body.0.key")}}!Et&&St&&e.node.body.body.push(Lo([Rs(St)]));var Dt=Pt.superClass;if(Dt&&("2023-11"===o||"2023-05"===o)){var Ot=e.scope.maybeGenerateMemoised(Dt);Ot&&(Pt.superClass=is("=",Ot,Dt),Dt=Ot)}var Nt=Lo([]);Pt.body.body.unshift(Nt);var Bt=Nt.body;if(te.length>0){for(var Mt,Ft,Lt=i(Tt.get("body.body"));!(Ft=Lt()).done;){var Ut=Ft.value;if((Ut.isClassProperty()||Ut.isClassMethod())&&"constructor"!==Ut.node.kind){Mt=Ut;break}}null!=Mt?(!function(e){var t=e.node;t.computed=!0,ie(t.key)&&(t.key=Cs(t.key.name))}(Mt),uX(te,Mt)):(Pt.body.body.unshift(Oo(Vs([].concat(b(te),[Cs("_")])),void 0,void 0,void 0,!0,!0)),Bt.push(Rs($s("delete",Bs({type:"ThisExpression"},Ps("_")))))),te=[]}if(Bt.push(Rs(function(e,t,r,a,n,s,o,i,d,c){var l,u,p=[o?kX(d,o):{type:"ThisExpression"},a,r];"2023-11"!==c&&p.splice(1,2,r,a);if("2021-12"===c||"2022-03"===c&&!d.availableHelper("applyDecs2203R"))return is("=",l=no([].concat(b(e),b(t))),u=gs(d.addHelper("2021-12"===c?"applyDecs":"applyDecs2203"),p));"2022-03"===c?u=gs(d.addHelper("applyDecs2203R"),p):"2023-01"===c?(s&&p.push(_X(s)),u=gs(d.addHelper("applyDecs2301"),p)):"2023-05"===c&&((s||i||0!==n.value)&&p.push(n),s?p.push(_X(s)):i&&p.push($s("void",_s(0))),i&&p.push(i),u=gs(d.addHelper("applyDecs2305"),p));"2023-11"===c&&((s||i||0!==n.value)&&p.push(n),s?p.push(_X(s)):i&&p.push($s("void",_s(0))),i&&p.push(i),u=gs(d.addHelper("applyDecs2311"),p));e.length>0?t.length>0?l=jo([qs(Ps("e"),no(e)),qs(Ps("c"),no(t))]):(l=no(e),u=Bs(u,Ps("e"),!1,!1)):(l=no(t),u=Bs(u,Ps("c"),!1,!1));return is("=",l,u)}(jt,wt,Rt,null!=X?X:os(ee),_s(Z),ge?J:null,S,sm(Dt),t,o))),l&&Bt.push(Rs(gs(sm(l),[{type:"ThisExpression"}]))),At.length>0&&Bt.push.apply(Bt,b(At.map(function(e){return Rs(e)}))),e.insertBefore(R.map(function(e){return Rs(e)})),Q)if(j.getBinding(W.name).constantViolations.length){var qt=j.generateUidIdentifier("t"+W.name),Gt=W;e.replaceWithMultiple([Zs("let",[eo(sm(Gt)),eo(qt)]),ps([Zs("let",[eo(sm(W))]),e.node,Rs(is("=",sm(qt),sm(W)))]),Rs(is("=",sm(Gt),sm(qt)))])}else e.insertBefore(Zs("let",[eo(sm(W))]));return H.size>0&&function(e,t){for(var r,a=RK({PrivateName:function(e,t){if(t.privateNamesMap.has(e.node.id.name)){var r=e.parentPath,a=r.parentPath;if("AssignmentExpression"===a.node.type&&a.node.left===r.node||"UpdateExpression"===a.node.type||"RestElement"===a.node.type||"ArrayPattern"===a.node.type||"ObjectProperty"===a.node.type&&a.node.value===r.node&&"ObjectPattern"===a.parentPath.type||"ForOfStatement"===a.node.type&&a.node.left===r.node)throw e.buildCodeFrameError('Decorated private methods are read-only, but "#'+e.node.id.name+'" is updated via this expression.')}}}),n=new Map,s=i(t);!(r=s()).done;){var o=r.value;n.set(o,null)}e.traverse(a,{privateNamesMap:n})}(e,H),e.scope.crawl(),e}function NX(e){return"Identifier"===e.type?"__proto__"===e.name:"__proto__"===e.value}function BX(e){return e.decorators&&e.decorators.length>0}function MX(e){switch(e.type){case"ClassAccessorProperty":return!0;case"ClassMethod":case"ClassProperty":case"ClassPrivateMethod":case"ClassPrivateProperty":return BX(e);default:return!1}}function FX(e,t){function r(e,t,r){switch(t.type){case"StringLiteral":return Cs(t.value);case"NumericLiteral":case"BigIntLiteral":var a=t.value+"";return e.get("key").replaceWith(Cs(a)),Cs(a);default:var n=e.scope.maybeGenerateMemoised(t);return e.get("key").replaceWith(is("=",n,CX(r,t))),sm(n)}}return{VariableDeclarator:function(r,a){var n=r.node.id;if("Identifier"===n.type){var s=hK(r.get("init"));if(e(s)){var o=n.name;t(s,a,o)}}},AssignmentExpression:function(r,a){var n=r.node.left;if("Identifier"===n.type){var s=hK(r.get("right"));if(e(s))switch(r.node.operator){case"=":case"&&=":case"||=":case"??=":t(s,a,n.name)}}},AssignmentPattern:function(r,a){var n=r.node.left;if("Identifier"===n.type){var s=hK(r.get("right"));if(e(s)){var o=n.name;t(s,a,o)}}},ObjectExpression:function(a,n){for(var s,o=i(a.get("properties"));!(s=o()).done;){var d=s.value;if(d.isObjectProperty()){var c=d.node,l=c.key,u=hK(d.get("value"));if(e(u))if(c.computed){var p=r(d,l,n);t(u,n,p)}else if(!NX(l))if("Identifier"===l.type)t(u,n,l.name);else{var f=Cs(l.value+"");t(u,n,f)}}}},ClassPrivateProperty:function(r,a){var n=r.node,s=hK(r.get("value"));if(e(s)){var o=Cs("#"+n.key.id.name);t(s,a,o)}},ClassAccessorProperty:function(a,n){var s=a.node,o=s.key,i=hK(a.get("value"));if(e(i))if(s.computed){var d=r(a,o,n);t(i,n,d)}else if("Identifier"===o.type)t(i,n,o.name);else if("PrivateName"===o.type){var c=Cs("#"+o.id.name);t(i,n,c)}else{var l=Cs(o.value+"");t(i,n,l)}},ClassProperty:function(a,n){var s=a.node,o=s.key,i=hK(a.get("value"));if(e(i))if(s.computed){var d=r(a,o,n);t(i,n,d)}else if("Identifier"===o.type)t(i,n,o.name);else{var c=Cs(o.value+"");t(i,n,c)}}}}function LX(e){return e.isClassExpression({id:null})&&function(e){return BX(e)||e.body.body.some(MX)}(e.node)}function UX(e,t){var r=e.generateUidIdentifier(t);return e.push({id:r,kind:"let"}),sm(r)}function qX(e,t){return t?qs(Ps(e),t):null}function GX(e){var t;return e.decorators&&e.decorators.length>0&&(t=os(e.decorators.map(function(e){return e.expression}))),e.decorators=void 0,t}function WX(e){return e.computed?e.key:ie(e.key)?Cs(e.key.name):Cs(String(e.key.value))}function VX(e,t,r,a){var n=a.isClassMethod();if(a.isPrivate())throw a.buildCodeFrameError("Private "+(n?"methods":"fields")+" in decorated classes are not supported yet.");if("ClassAccessorProperty"===a.node.type)throw a.buildCodeFrameError('Accessor properties are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.');if("StaticBlock"===a.node.type)throw a.buildCodeFrameError('Static blocks are not supported in 2018-09 decorator transform, please specify { "version": "2021-12" } instead.');var s=a,o=s.node,i=s.scope;a.isTSDeclareMethod()||new cK({methodPath:a,objectRef:t,superRef:r,file:e,refToPreserve:t}).replace();var d=[qX("kind",Cs(ze(o)?o.kind:"field")),qX("decorators",GX(o)),qX("static",o.static&&Ds(!0)),qX("key",WX(o))].filter(Boolean);return n?(a.ensureFunctionName(!1),d.push(qX("value",by(a.node)))):st(o)&&o.value?d.push(function(e,t){return Us("method",Ps(e),[],ps(t))}("value",pj.statements.ast(bX||(bX=h(["return ",""])),o.value))):d.push(qX("value",i.buildUndefinedNode())),a.remove(),Ls(d)}var HX=Object.freeze({fields:2,privateMethods:4,decorators:8,privateIn:16,staticBlocks:32}),zX=new Map([[HX.fields,"@babel/plugin-transform-class-properties"],[HX.privateMethods,"@babel/plugin-transform-private-methods"],[HX.privateIn,"@babel/plugin-transform-private-property-in-object"]]),KX="@babel/plugin-class-features/featuresKey",XX="@babel/plugin-class-features/looseKey",JX="@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing",YX=function(e,t){return!!(e.get(JX)&t)};function $X(e,t,r){var a;ZX(e,t)&&!YX(e,t)||(e.set(KX,e.get(KX)|t),"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error"===r?(tJ(e,t,!0),e.set(JX,e.get(JX)|t)):"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error"===r?(tJ(e,t,!1),e.set(JX,e.get(JX)|t)):tJ(e,t,r));for(var n,s=i(zX);!(n=s()).done;){var o=y(n.value,2),d=o[0],c=o[1];if(ZX(e,d)&&!YX(e,d)){var l=eJ(e,d);if(a===!l)throw new Error("'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods and @babel/plugin-transform-private-property-in-object (when they are enabled).\n\n"+QX(e));a=l;var u=c}}if(void 0!==a)for(var p,f=i(zX);!(p=f()).done;){var g=y(p.value,2),m=g[0],h=g[1];ZX(e,m)&&eJ(e,m)!==a&&(tJ(e,m,a),console.warn('Though the "loose" option was set to "'+!a+'" in your @babel/preset-env config, it will not be used for '+h+' since the "loose" mode option was set to "'+a+'" for '+u+'.\nThe "loose" option must be the same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods and @babel/plugin-transform-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding\n\t["'+h+'", { "loose": '+a+' }]\nto the "plugins" section of your Babel config.\n\n'+QX(e)))}}function QX(e){var t=e.opts.filename;return t&&"unknown"!==t||(t="[name of the input file]"),"If you already set the same 'loose' mode for these plugins in your config, it's possible that they are enabled multiple times with different options.\nYou can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded configuration:\n\tnpx cross-env BABEL_SHOW_CONFIG_FOR="+t+" <your build command>\nSee https://babeljs.io/docs/configuration#print-effective-configs for more info."}function ZX(e,t){return!!(e.get(KX)&t)}function eJ(e,t){return!!(e.get(XX)&t)}function tJ(e,t,r){r?e.set(XX,e.get(XX)|t):e.set(XX,e.get(XX)&~t),e.set(JX,e.get(JX)&~t)}var rJ="@babel/plugin-class-features/version";function aJ(e){var t,r=e.name,a=e.feature,n=e.loose,s=e.manipulateOptions,o=e.api,d=e.inherits,c=e.decoratorVersion;if(a&HX.decorators&&("2023-11"===c||"2023-05"===c||"2023-01"===c||"2022-03"===c||"2021-12"===c))return function(e,t,r,a){var n,s,o=e.assertVersion,i=e.assumption,d=t.loose;o("*");var c=new WeakSet,l=null!=(n=i("constantSuper"))?n:d,u=null!=(s=i("ignoreFunctionLength"))?s:d,p=FX(LX,f);function f(e,t,a){var n;if(!c.has(e)){var s=e.node;null!=a||(a=null==(n=s.id)?void 0:n.name);var o=OX(e,t,l,u,a,p,r);o?c.add(o):c.add(e)}}return{name:"proposal-decorators",inherits:a,visitor:Object.assign({ExportDefaultDeclaration:function(e,t){var r=e.node.declaration;if("ClassDeclaration"===(null==r?void 0:r.type)&&BX(r)){var a=!r.id,n=e.splitExportDeclaration();a&&f(n,t,Cs("default"))}},ExportNamedDeclaration:function(e){var t=e.node.declaration;"ClassDeclaration"===(null==t?void 0:t.type)&&BX(t)&&e.splitExportDeclaration()},Class:function(e,t){f(e,t,void 0)}},p)}}(o,{loose:n},c,d);null!=o||(o={assumption:function(){}});var l=o.assumption("setPublicClassFields"),u=o.assumption("privateFieldsAsSymbols"),p=o.assumption("privateFieldsAsProperties"),f=null!=(t=o.assumption("noUninitializedPrivateFieldAccess"))&&t,g=o.assumption("constantSuper"),m=o.assumption("noDocumentAll");if(p&&u)throw new Error('Cannot enable both the "privateFieldsAsProperties" and "privateFieldsAsSymbols" assumptions as the same time.');var v=p||u;if(!0===n){var x=[];void 0!==l&&x.push('"setPublicClassFields"'),void 0!==p&&x.push('"privateFieldsAsProperties"'),void 0!==u&&x.push('"privateFieldsAsSymbols"'),0!==x.length&&console.warn("["+r+']: You are using the "loose: true" option and you are explicitly setting a value for the '+x.join(" and ")+" assumption"+(x.length>1?"s":"")+'. The "loose" option can cause incompatibilities with the other class features plugins, so it\'s recommended that you replace it with the following top-level option:\n\t"assumptions": {\n\t\t"setPublicClassFields": true,\n\t\t"privateFieldsAsSymbols": true\n\t}')}return{name:r,manipulateOptions:s,inherits:d,pre:function(e){$X(e,a,n),"number"!=typeof e.get(rJ)&&e.get(rJ)&&!WH.lt(e.get(rJ),"7.28.6")||e.set(rJ,"7.28.6")},visitor:{Class:function(e,t){var r=t.file;if("7.28.6"===r.get(rJ)&&function(e,t){var r=null,a=null,n=null,s=null,o=null;tX(e.node)&&(r=e.get("decorators.0"));for(var d,c=i(e.get("body.body"));!(d=c()).done;){var l=d.value;!r&&tX(l.node)&&(r=l.get("decorators.0")),!a&&l.isClassProperty()&&(a=l),!n&&l.isClassPrivateProperty()&&(n=l),!s&&null!=l.isClassPrivateMethod&&l.isClassPrivateMethod()&&(s=l),!o&&null!=l.isStaticBlock&&l.isStaticBlock()&&(o=l)}if(r&&n)throw n.buildCodeFrameError("Private fields in decorated classes are not supported yet.");if(r&&s)throw s.buildCodeFrameError("Private methods in decorated classes are not supported yet.");if(r&&!ZX(t,HX.decorators))throw e.buildCodeFrameError('Decorators are not enabled.\nIf you are using ["@babel/plugin-proposal-decorators", { "version": "legacy" }], make sure it comes *before* "@babel/plugin-transform-class-properties" and enable loose mode, like so:\n\t["@babel/plugin-proposal-decorators", { "version": "legacy" }]\n\t["@babel/plugin-transform-class-properties", { "loose": true }]');if(s&&!ZX(t,HX.privateMethods))throw s.buildCodeFrameError("Class private methods are not enabled. Please add `@babel/plugin-transform-private-methods` to your configuration.");if((a||n)&&!ZX(t,HX.fields)&&!ZX(t,HX.privateMethods))throw e.buildCodeFrameError("Class fields are not enabled. Please add `@babel/plugin-transform-class-properties` to your configuration.");if(o&&!ZX(t,HX.staticBlocks))throw e.buildCodeFrameError("Static class blocks are not enabled. Please add `@babel/plugin-transform-class-static-block` to your configuration.");return!!(r||s||o)||!(!a&&!n||!ZX(t,HX.fields))}(e,r)){var n=e.isClassDeclaration();n&&vK(e);for(var s,o,d=eJ(r,a),c=rX(e.node),x=[],R=[],j=[],w=new Set,E=i(e.get("body").get("body"));!(o=E()).done;){var S=o.value;if((S.isClassProperty()||S.isClassMethod())&&S.node.computed&&j.push(S),S.isPrivate()){var T=S.node.key.id.name,P="get "+T,A="set "+T;if(S.isClassPrivateMethod()){if("get"===S.node.kind){if(w.has(P)||w.has(T)&&!w.has(A))throw S.buildCodeFrameError("Duplicate private field");w.add(P).add(T)}else if("set"===S.node.kind){if(w.has(A)||w.has(T)&&!w.has(P))throw S.buildCodeFrameError("Duplicate private field");w.add(A).add(T)}}else{if(w.has(T)&&!w.has(P)&&!w.has(A)||w.has(T)&&(w.has(P)||w.has(A)))throw S.buildCodeFrameError("Duplicate private field");w.add(T)}}S.isClassMethod({kind:"constructor"})?s=S:(R.push(S),(S.isProperty()||S.isPrivate()||null!=S.isStaticBlock&&S.isStaticBlock())&&x.push(S))}if(x.length||c){var k,C=e.node.id;C&&n||(e.ensureFunctionName(!1),k=e.scope.generateUidIdentifier((null==C?void 0:C.name)||"Class"));var _,I,D,O,N,B,M,F=null!=k?k:sm(C),L=function(e,t,r,a){for(var n,s,o=new Map,d=i(r);!(s=d()).done;){var c=s.value;if(c.isPrivate()){var l=c.node.key.id.name,u=o.get(l);if(!u){var p=!c.isProperty(),f=c.node.static,g=!1,m=void 0;!t&&xK(a)&&p&&!f?(g=!!n,null!=n||(n=c.scope.generateUidIdentifier(e+"_brand")),m=n):m=c.scope.generateUidIdentifier(l),u={id:m,static:f,method:p,initAdded:g},o.set(l,u)}if(c.isClassPrivateMethod())if("get"===c.node.kind){var y=c.node.body.body,h=void 0;1===y.length&&je(h=y[0])&&Z(h=h.argument)&&1===h.arguments.length&&Se(h.arguments[0])&&ie(h=h.callee)?(u.getId=sm(h),u.getterDeclared=!0):u.getId=c.scope.generateUidIdentifier("get_"+l)}else if("set"===c.node.kind){var b=c.node.params,v=c.node.body.body,x=void 0;1===v.length&&re(x=v[0])&&Z(x=x.expression)&&2===x.arguments.length&&Se(x.arguments[0])&&ie(x.arguments[1],{name:b[0].name})&&ie(x=x.callee)?(u.setId=sm(x),u.setterDeclared=!0):u.setId=c.scope.generateUidIdentifier("set_"+l)}else"method"===c.node.kind&&(u.methodId=c.scope.generateUidIdentifier(l));o.set(l,u)}}return o}(F.name,null!=v?v:d,x,r),U=function(e,t,r,a){for(var n,s=[],o=new Set,d=i(e);!(n=d()).done;){var c=y(n.value,2),l=c[0],u=c[1],p=u.static,f=u.method,g=u.getId,m=u.setId,b=g||m,v=sm(u.id),x=void 0;if(t)x=gs(a.addHelper("classPrivateFieldLooseKey"),[Cs(l)]);else if(r)x=gs(Ps("Symbol"),[Cs(l)]);else if(!p){if(o.has(v.name))continue;o.add(v.name),x=Ms(Ps(!f||b&&!xK(a)?"WeakMap":"WeakSet"),[])}x&&(r||DH(x),s.push(pj.statement.ast(Az||(Az=h(["var "," = ",""])),v,x)))}return s}(L,null!=p?p:d,null!=u&&u,r);if(function(e,t,r,a,n){var s=a.privateFieldsAsProperties,o=a.noUninitializedPrivateFieldAccess,i=a.noDocumentAll,d=a.innerBinding;if(r.size){var c=t.get("body"),l=s?_K:CK;mz(c,jK,Object.assign({privateNamesMap:r,classRef:e,file:n},l,{noDocumentAll:i,noUninitializedPrivateFieldAccess:o,innerBinding:d})),c.traverse(SK,{privateNamesMap:r,classRef:e,file:n,privateFieldsAsProperties:s,innerBinding:d})}}(F,e,L,{privateFieldsAsProperties:null!=v?v:d,noUninitializedPrivateFieldAccess:f,noDocumentAll:m,innerBinding:C},r),c){I=N=_=[];var q=function(e,t,r,a){var n,s=t.node,o=t.scope,i=o.generateUidIdentifier("initialize"),d=s.id&&t.isDeclaration(),c=t.isInStrictMode(),l=s.superClass;s.type="ClassDeclaration",s.id||(s.id=sm(e)),l&&(n=o.generateUidIdentifierBasedOnNode(s.superClass,"super"),s.superClass=n);var u=GX(s),p=os(r.filter(function(e){return!e.node.abstract&&"TSIndexSignature"!==e.node.type}).map(function(e){return VX(a,s.id,n,e)})),f=pj.expression.ast(vX||(vX=h(["\n ","(\n ",",\n function (",", ",") {\n ","\n return { F: ",", d: "," };\n },\n ","\n )\n "])),function(e){return e.addHelper("decorate")}(a),u||{type:"NullLiteral"},i,l?sm(n):null,s,sm(s.id),p,l);c||f.arguments[1].body.directives.push(ls(us("use strict")));var g=f,m="arguments.1.body.body.0";return d&&(g=pj.statement.ast(xX||(xX=h(["let "," = ",""])),e,f),m="declarations.0.init."+m),{instanceNodes:[pj.statement.ast(RX||(RX=h(["\n ","(this)\n "])),sm(i))],wrapClass:function(e){return e.replaceWith(g),e.get(m)}}}(F,e,R,r);D=q.instanceNodes,M=q.wrapClass}else{_=function(e,t,r){for(var a,n=e.scope,s=[],o={classBinding:e.node.id&&n.getBinding(e.node.id.name),file:r},d=i(t);!(a=d()).done;){var c=a.value,l=c.get("key");l.isReferencedIdentifier()?zK(l,o):l.traverse(QK,o);var u=c.node;if(!l.isConstantExpression()){var p=eX(l.node,n,n.generateUidBasedOnNode(l.node));p&&(s.push(Rs(p)),u.key=sm(p.left))}}return s}(e,j,r);var G=WK(k,e.node.superClass,x,L,r,null!=l?l:d,null!=v?v:d,f,null!=g?g:d,C);I=G.staticNodes,N=G.pureStaticNodes,D=G.instanceNodes,O=G.lastInstanceNodeReturnsThis,B=G.classBindingNode,M=G.wrapClass}D.length>0&&ZK(e,s,D,function(e,t){if(!c)for(var r,a=i(x);!(r=a()).done;){var n=r.value;null!=dt&&dt(n.node)||n.node.static||n.traverse(e,t)}},O);var W=M(e);W.insertBefore([].concat(b(U),b(_))),I.length>0&&W.insertAfter(I),N.length>0&&W.find(function(e){return e.isStatement()||e.isDeclaration()}).insertAfter(N),null!=B&&n&&W.insertAfter(B)}}},ExportDefaultDeclaration:function(e,t){if("7.28.6"===t.file.get(rJ)){var r=e.get("declaration");r.isClassDeclaration()&&rX(r.node)&&(r.node.id?e.splitExportDeclaration():r.node.type="ClassExpression")}}}}}var nJ,sJ,oJ,iJ=function(e,t){return e.assertVersion("*"),aJ({name:"transform-class-properties",api:e,feature:HX.fields,loose:t.loose,manipulateOptions:function(e,t){t.plugins.push("classProperties","classPrivateProperties")}})};var dJ=function(e){var t=e.types,r=e.template,a=e.traverse;(0,e.assertVersion)("*");var n=FX(function(e){if(!e.isClassExpression())return!1;for(var r=e.node.body.body.length-1;r>=0;r--){var a=e.node.body.body[r];if(t.isStaticBlock(a))return!0;if((t.isClassProperty(a)||t.isClassPrivateProperty(a))&&a.static)break}return!1},function(e,a,n){var s="string"==typeof n?t.stringLiteral(n):n;e.get("body").unshiftContainer("body",t.staticBlock([r.statement.ast(nJ||(nJ=h(["\n ","(this, ",");\n "])),a.addHelper("setFunctionName"),s)]))});t.classAccessorProperty||delete n.ClassAccessorProperty;var s=a.visitors.explode(n),o=function(e){return 1===e.length?e[0]:t.sequenceExpression(e)},d=function(e){return e.map(function(e){var a=e.body;return 1===a.length&&t.isExpressionStatement(a[0])?t.inheritsComments(t.inheritsComments(a[0].expression,a[0]),e):t.inheritsComments(r.expression.ast(sJ||(sJ=h(["(() => { "," })()"])),a),e)})},c=function(e,r){var a,n;e.value=e.value?t.sequenceExpression([].concat(b(r),[e.value])):o((n=function(e){return t.unaryExpression("void",e)},0===(a=r).length?a:[].concat(b(a.slice(0,-1)),[n(a[a.length-1])])))};return{name:"transform-class-static-block",manipulateOptions:function(e,t){return t.plugins.push("classStaticBlock")},pre:function(){$X(this.file,HX.staticBlocks,!1)},visitor:{ClassBody:function(e){var a=this,n=e.scope,l=e.parentPath;if(l.isClassExpression()&&!l.node.id){do{l=l.parentPath}while(l&&!s[l.type]&&!l.isStatement());var u;if(l)null==(u=s[l.type])||u.enter.forEach(function(e){return e.call(a,l,a)})}for(var p,f=[],g=null,m=i(e.get("body"));!(p=m()).done;){var y=p.value;y.isStaticBlock()?(f.push(y.node),y.remove()):(y.isClassProperty({static:!0})||y.isClassPrivateProperty({static:!0}))&&(g=y,f.length>0&&(c(y.node,d(f)),f.length=0))}if(f.length>0){var b,v=n.generateDeclaredUidIdentifier("staticBlock"),x=e.parentPath.isExpression();if(f.length>1||1===f[0].body.length&&t.isExpressionStatement(f[0].body[0])){var R=d(f);x&&R.push(t.thisExpression()),b=o(R)}else b=t.blockStatement(f[0].body),x&&b.body.push(t.returnStatement(t.thisExpression()));var j=r.expression.ast(oJ||(oJ=h([""," = () => ",""])),v,b);if(g)c(g.node,[j]);else{for(var w,E=new Set,S=i(e.get("body"));!(w=S()).done;){var T=w.value;T.isPrivate()&&E.add(T.get("key.id").node.name)}var P=function(e,t){var r,a=1;do{r="_",a>1&&(r+=a),a++}while(t.has(r));return r}(0,E),A=t.privateName(t.identifier(P));e.pushContainer("body",[t.classPrivateProperty(A,j,[],!0)])}var k=t.callExpression(t.cloneNode(v),[]);e.parentPath.isClassExpression()?e.parentPath.replaceWith(t.sequenceExpression([e.parent,k])):e.parentPath.insertAfter(t.expressionStatement(k))}}}}},cJ=pj.statement("\n DECORATOR(CLASS_REF = INNER) || CLASS_REF;\n"),lJ=pj("\n CLASS_REF.prototype;\n"),uJ=pj("\n Object.getOwnPropertyDescriptor(TARGET, PROPERTY);\n"),pJ=pj("\n (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {\n enumerable: true,\n configurable: true,\n writable: true,\n initializer: function(){\n return TEMP;\n }\n })\n"),fJ=new WeakSet;function gJ(e){var t=(e.isClass()?[e].concat(b(e.get("body.body"))):e.get("properties")).reduce(function(e,t){return e.concat(t.node.decorators||[])},[]),r=t.filter(function(e){return!ie(e.expression)});if(0!==r.length)return Vs(r.map(function(t){var r=t.expression;return is("=",t.expression=e.scope.generateDeclaredUidIdentifier("dec"),r)}).concat([e.node]))}function mJ(e){var t;return!(null==(t=e.decorators)||!t.length)}function yJ(e){return e.some(function(e){var t;return null==(t=e.decorators)?void 0:t.length})}function hJ(e,t,r){var a=e.scope.generateDeclaredUidIdentifier(e.isClass()?"class":"obj"),n=r.reduce(function(r,n){var s=[];if(null!=n.decorators&&(s=n.decorators,n.decorators=null),0===s.length)return r;if(n.computed)throw e.buildCodeFrameError("Computed method/property decorators are not yet supported.");var o=dr(n.key)?n.key:Cs(n.key.name),i=e.isClass()&&!n.static?lJ({CLASS_REF:a}).expression:a;if(st(n,{static:!1})){var d=e.scope.generateDeclaredUidIdentifier("descriptor"),c=n.value?Ts(null,[],ps([Ws(n.value)])):{type:"NullLiteral"};n.value=gs(t.addHelper("initializerWarningHelper"),[d,{type:"ThisExpression"}]),fJ.add(n.value),r.push(is("=",sm(d),gs(t.addHelper("applyDecoratedDescriptor"),[sm(i),sm(o),os(s.map(function(e){return sm(e.expression)})),Ls([qs(Ps("configurable"),Ds(!0)),qs(Ps("enumerable"),Ds(!0)),qs(Ps("writable"),Ds(!0)),qs(Ps("initializer"),c)])])))}else r.push(gs(t.addHelper("applyDecoratedDescriptor"),[sm(i),sm(o),os(s.map(function(e){return sm(e.expression)})),xe(n)||st(n,{static:!0})?pJ({TEMP:e.scope.generateDeclaredUidIdentifier("init"),TARGET:sm(i),PROPERTY:sm(o)}).expression:uJ({TARGET:sm(i),PROPERTY:sm(o)}).expression,sm(i)]));return r},[]);return Vs([is("=",sm(a),e.node),Vs(n),sm(a)])}function bJ(e){var t=e.node,r=e.scope;if(mJ(t)||yJ(t.body.body))return Zs("let",[eo(t.id?sm(t.id):r.generateUidIdentifier("class"),by(t))])}var vJ,xJ={ExportDefaultDeclaration:function(e){var t=e.get("declaration");if(t.isClassDeclaration()){var r=bJ(t);if(r){var a=y(e.replaceWithMultiple([r,po(null,[fo(sm(r.declarations[0].id),Ps("default"))])]),1)[0];t.node.id||e.scope.registerDeclaration(a)}}},ClassDeclaration:function(e){var t=bJ(e);if(t){var r=y(e.replaceWith(t),1)[0].get("declarations.0"),a=r.node.id,n=e.scope.getOwnBinding(a.name);n.identifier=a,n.path=r}},ClassExpression:function(e,t){var r=gJ(e)||function(e){if(mJ(e.node)){var t=e.node.decorators||[];e.node.decorators=null;var r=e.scope.generateDeclaredUidIdentifier("class");return t.map(function(e){return e.expression}).reverse().reduce(function(e,t){return cJ({CLASS_REF:sm(r),DECORATOR:sm(t),INNER:e}).expression},e.node)}}(e)||function(e,t){if(yJ(e.node.body.body))return hJ(e,t,e.node.body.body)}(e,t);r&&e.replaceWith(r)},ObjectExpression:function(e,t){var r=gJ(e)||function(e,t){if(yJ(e.node.properties))return hJ(e,t,e.node.properties.filter(function(e){return"SpreadElement"!==e.type}))}(e,t);r&&e.replaceWith(r)},AssignmentExpression:function(e,t){fJ.has(e.node.right)&&e.replaceWith(gs(t.addHelper("initializerDefineProperty"),[sm(e.get("left.object").node),Cs(e.get("left.property").node.name||e.get("left.property").node.value),sm(e.get("right.arguments")[0].node),sm(e.get("right.arguments")[1].node)]))},CallExpression:function(e,t){3===e.node.arguments.length&&fJ.has(e.node.arguments[2])&&e.node.callee.name===t.addHelper("defineProperty").name&&e.replaceWith(gs(t.addHelper("initializerDefineProperty"),[sm(e.get("arguments")[0].node),sm(e.get("arguments")[1].node),sm(e.get("arguments.2.arguments")[0].node),sm(e.get("arguments.2.arguments")[1].node)]))}},RJ=function(e,t){e.assertVersion("*");var r=t.legacy,a=t.version;if(r||"legacy"===a)return{name:"proposal-decorators",inherits:XV,visitor:xJ};if(a&&"2018-09"!==a&&"2021-12"!==a&&"2022-03"!==a&&"2023-01"!==a&&"2023-05"!==a&&"2023-11"!==a)throw new Error("The '.version' option must be one of 'legacy', '2023-11', '2023-05', '2023-01', '2022-03', or '2021-12'.");return e.assertVersion("*"),aJ({name:"proposal-decorators",api:e,feature:HX.decorators,inherits:XV,decoratorVersion:a})};function jJ(e){return Te(e)&&"void"===e.operator&&or(e.argument)}function wJ(e,t){e.ensureBlock();var r,a=e.scope,n=e.node,s=e.get("body").scope.bindings,o=Object.keys(s).some(function(e){return a.hasBinding(e)});o?n.body=ps([].concat(b(t),[n.body])):(r=n.body.body).unshift.apply(r,b(t))}function EJ(e){return e.elements.some(function(e){return Re(e)})}var SJ={},TJ=function(e,t,r){if(t.length&&ie(e)&&Gy(e,t[t.length-1].node)&&r.bindings[e.name])throw r.deopt=!0,SJ},PJ=function(){function e(e){this.blockHoist=void 0,this.operator=void 0,this.arrayRefSet=void 0,this.nodes=void 0,this.scope=void 0,this.kind=void 0,this.iterableIsArray=void 0,this.arrayLikeIsIterable=void 0,this.objectRestNoSymbols=void 0,this.useBuiltIns=void 0,this.addHelper=void 0,this.blockHoist=e.blockHoist,this.operator=e.operator,this.arrayRefSet=new Set,this.nodes=e.nodes||[],this.scope=e.scope,this.kind=e.kind,this.iterableIsArray=e.iterableIsArray,this.arrayLikeIsIterable=e.arrayLikeIsIterable,this.objectRestNoSymbols=e.objectRestNoSymbols,this.useBuiltIns=e.useBuiltIns,this.addHelper=e.addHelper}var t=e.prototype;return t.getExtendsHelper=function(){return this.useBuiltIns?Bs(Ps("Object"),Ps("assign")):this.addHelper("extends")},t.buildVariableAssignment=function(e,t){var r,a,n=this.operator;((me(e)||at(e))&&(n="="),n)?r=Rs(is(n,e,sm(t)||this.scope.buildUndefinedNode())):(a="const"===this.kind&&null===t?this.scope.buildUndefinedNode():sm(t),r=Zs(this.kind,[eo(e,a)]));return r._blockHoist=this.blockHoist,r},t.buildVariableDeclaration=function(e,t){var r=Zs("var",[eo(sm(e),sm(t))]);return r._blockHoist=this.blockHoist,r},t.push=function(e,t){var r=sm(t);Ke(e)?this.pushObjectPattern(e,r):_e(e)?this.pushArrayPattern(e,r):Ce(e)?this.pushAssignmentPattern(e,r):this.nodes.push(this.buildVariableAssignment(e,r))},t.toArray=function(e,t){if(this.iterableIsArray||ie(e)&&this.arrayRefSet.has(e.name))return e;var r,a=this.scope,n=this.arrayLikeIsIterable;if(ie(e)){var s=a.getBinding(e.name);if(null!=s&&s.constant&&s.path.isGenericType("Array"))return e}if(Y(e))return e;if(ie(e,{name:"arguments"}))return pj.expression.ast(vJ||(vJ=h(["\n Array.prototype.slice.call(",")\n "])),e);var o=[e];return"number"==typeof t?(o.push(_s(t)),r="slicedToArray"):r="toArray",n&&(o.unshift(a.path.hub.addHelper(r)),r="maybeArrayLike"),gs(a.path.hub.addHelper(r),o)},t.pushAssignmentPattern=function(e,t){var r=e.left,a=e.right;if(jJ(t))this.push(r,a);else{var n=this.scope.generateUidIdentifierBasedOnNode(t);this.nodes.push(this.buildVariableDeclaration(n,t));var s,o,i=ys(ds("===",sm(n),this.scope.buildUndefinedNode()),a,sm(n));if(ur(r))"const"===this.kind||"let"===this.kind?(s=this.scope.generateUidIdentifier(n.name),o=this.buildVariableDeclaration(s,i)):(s=n,o=Rs(is("=",sm(n),i))),this.nodes.push(o),this.push(r,s);else this.nodes.push(this.buildVariableAssignment(r,i))}},t.pushObjectRest=function(e,t,r,a){var n=this,s=AJ(e.properties.slice(0,a),t,this.scope,function(e){return n.addHelper(e)},this.objectRestNoSymbols,this.useBuiltIns);this.nodes.push(this.buildVariableAssignment(r.argument,s))},t.pushObjectProperty=function(e,t){dr(e.key)&&(e.computed=!0);var r=e.value,a=Bs(sm(t),e.key,e.computed);ur(r)?this.push(r,a):this.nodes.push(this.buildVariableAssignment(r,a))},t.pushObjectPattern=function(e,t){if(e.properties.length){if(e.properties.length>1&&!this.scope.isStatic(t)){var r=this.scope.generateUidIdentifierBasedOnNode(t);this.nodes.push(this.buildVariableDeclaration(r,t)),t=r}if(function(e){return e.properties.some(function(e){return Re(e)})}(e))for(var a,n=0;n<e.properties.length;n++){var s=e.properties[n];if(Re(s))break;var o=s.key;if(s.computed&&!this.scope.isPure(o)){var i=this.scope.generateUidIdentifierBasedOnNode(o);this.nodes.push(this.buildVariableDeclaration(i,o)),a||(a=e=Object.assign({},e,{properties:e.properties.slice()})),a.properties[n]=Object.assign({},s,{key:i})}}for(var d=0;d<e.properties.length;d++){var c=e.properties[d];Re(c)?this.pushObjectRest(e,t,c,d):this.pushObjectProperty(c,t)}}else this.nodes.push(Rs(gs(this.addHelper("objectDestructuringEmpty"),jJ(t)?[]:[t])))},t.canUnpackArrayPattern=function(e,t){if(!Y(t))return!1;if(!(e.elements.length>t.elements.length)){if(e.elements.length<t.elements.length&&!EJ(e))return!1;for(var r,a=i(e.elements);!(r=a()).done;){var n=r.value;if(!n)return!1;if(me(n))return!1}for(var s,o=i(t.elements);!(s=o()).done;){var d=s.value;if(Xe(d))return!1;if(Z(d))return!1;if(me(d))return!1}var c={deopt:!1,bindings:Iy(e)};try{By(t,TJ,c)}catch(e){if(e!==SJ)throw e}return!c.deopt}},t.pushUnpackedArrayPattern=function(e,t){for(var r=this,a=function(e){return null!=e?e:r.scope.buildUndefinedNode()},n=0;n<e.elements.length;n++){var s=e.elements[n];Re(s)?this.push(s.argument,os(t.elements.slice(n).map(a))):this.push(s,a(t.elements[n]))}},t.pushArrayPattern=function(e,t){if(null!==t){if(e.elements)if(this.canUnpackArrayPattern(e,t))this.pushUnpackedArrayPattern(e,t);else{var r=!EJ(e)&&e.elements.length,a=this.toArray(t,r);ie(a)?t=a:(t=this.scope.generateUidIdentifierBasedOnNode(t),this.arrayRefSet.add(t.name),this.nodes.push(this.buildVariableDeclaration(t,a)));for(var n=0;n<e.elements.length;n++){var s=e.elements[n];s&&(Re(s)?this.push(s.argument,gs(Bs(gs(this.scope.path.hub.addHelper("arrayLikeToArray"),[t]),Ps("slice")),[_s(n)])):this.push(s,Bs(t,_s(n),!0)))}}}else this.nodes.push(Rs(gs(this.addHelper("objectDestructuringEmpty"),[])))},t.init=function(e,t){if(!Y(t)&&!me(t)){var r=this.scope.maybeGenerateMemoised(t,!0);r&&(this.nodes.push(this.buildVariableDeclaration(r,sm(t))),t=r)}return this.push(e,t),this.nodes},o(e)}();function AJ(e,t,r,a,n,s){for(var o,i=[],d=!0,c=!1,l=0;l<e.length;l++){var u=e[l],p=u.key;ie(p)&&!u.computed?i.push(Cs(p.name)):$e(p)?(i.push(sm(p)),c=!0):dr(p)?i.push(Cs(String(p.value))):it(p)||(i.push(sm(p)),d=!1)}if(0===i.length){o=gs(s?Bs(Ps("Object"),Ps("assign")):a("extends"),[Ls([]),Vs([gs(a("objectDestructuringEmpty"),[sm(t)]),sm(t)])])}else{var f=os(i);if(d){if(!c&&!he(r.block)){var g=r.getProgramParent(),m=g.generateUidIdentifier("excluded");g.push({id:m,init:f,kind:"const"}),f=sm(m)}}else f=gs(Bs(f,Ps("map")),[a("toPropertyKey")]);o=gs(a("objectWithoutProperties"+(n?"Loose":"")),[sm(t),f])}return o}function kJ(e){for(var t,r=i(e.declarations);!(t=r()).done;){var a=t.value;if(ur(a.id)&&"VoidPattern"!==a.id.type)return!0}return!1}var CJ=function(e,t){var r,a,n,s,o,i;e.assertVersion("*");var d=t.useBuiltIns,c=void 0!==d&&d,l=null!=(r=null!=(a=e.assumption("iterableIsArray"))?a:t.loose)&&r,u=null!=(n=null!=(s=t.allowArrayLike)?s:e.assumption("arrayLikeIsIterable"))&&n,p=null!=(o=null!=(i=e.assumption("objectRestNoSymbols"))?i:t.loose)&&o;return{name:"transform-destructuring",visitor:{ExportNamedDeclaration:function(e){var t=e.get("declaration");t.isVariableDeclaration()&&kJ(t.node)&&e.splitExportDeclaration()},ForXStatement:function(e){var t=this,r=e.node,a=e.scope,n=r.left;if(ur(n)){var s=a.generateUidIdentifier("ref");r.left=Zs("var",[eo(s)]),e.ensureBlock();var o=[];return 0===e.node.body.body.length&&e.isCompletionRecord()&&o.unshift(Rs(a.buildUndefinedNode())),o.unshift(Rs(is("=",n,sm(s)))),wJ(e,o),void a.crawl()}if(Ae(n)){var i=n.declarations[0].id;if(ur(i)&&"VoidPattern"!==i.type){var d=a.generateUidIdentifier("ref");r.left=Zs(n.kind,[eo(d,null)]);var f=[],g=new PJ({kind:n.kind,scope:a,nodes:f,arrayLikeIsIterable:u,iterableIsArray:l,objectRestNoSymbols:p,useBuiltIns:c,addHelper:function(e){return t.addHelper(e)}});g.init(i,d),wJ(e,f),a.crawl()}}},CatchClause:function(e){var t=this,r=e.node,a=e.scope,n=r.param;if(ur(n)){var s=a.generateUidIdentifier("ref");r.param=s;var o=[],i=new PJ({kind:"let",scope:a,nodes:o,arrayLikeIsIterable:u,iterableIsArray:l,objectRestNoSymbols:p,useBuiltIns:c,addHelper:function(e){return t.addHelper(e)}});i.init(n,s),r.body.body=[].concat(o,b(r.body.body)),a.crawl()}},AssignmentExpression:function(e,t){ur(e.node.left)&&function(e,t,r,a,n,s){var o,i=e.node,d=e.scope,c=e.parentPath,l=[],u=new PJ({operator:i.operator,scope:d,nodes:l,arrayLikeIsIterable:r,iterableIsArray:a,objectRestNoSymbols:n,useBuiltIns:s,addHelper:t});(!c.isExpressionStatement()&&!c.isSequenceExpression()||e.isCompletionRecord())&&(o=d.generateUidIdentifierBasedOnNode(i.right,"ref"),l.push(Zs("var",[eo(o,i.right)])),Y(i.right)&&u.arrayRefSet.add(o.name)),u.init(i.left,o||i.right),o&&(c.isArrowFunctionExpression()?(e.replaceWith(ps([])),l.push(Ws(sm(o)))):l.push(Rs(sm(o)))),e.replaceWithMultiple(l),d.crawl()}(e,function(e){return t.addHelper(e)},u,l,p,c)},VariableDeclaration:function(e,t){var r=e.node,a=e.parent;ar(a)||a&&e.container&&kJ(r)&&function(e,t,r,a,n,s){for(var o=e.node,i=e.scope,d=o.kind,c=o.loc,l=[],u=0;u<o.declarations.length;u++){var p=o.declarations[u],f=p.init,g=p.id,m=new PJ({blockHoist:o._blockHoist,nodes:l,scope:i,kind:o.kind,iterableIsArray:a,arrayLikeIsIterable:r,useBuiltIns:s,objectRestNoSymbols:n,addHelper:t});ur(g)?(m.init(g,f),+u!==o.declarations.length-1&&Cy(l[l.length-1],p)):l.push(Cy(m.buildVariableAssignment(g,f),p))}for(var y=null,h=[],v=0,x=l;v<x.length;v++){var R=x[v];if(Ae(R)){if(null!==y){var j;(j=y.declarations).push.apply(j,b(R.declarations));continue}R.kind=d,y=R}else y=null;R.loc||(R.loc=c),h.push(R)}if(2===h.length&&Ae(h[0])&&re(h[1])&&Z(h[1].expression)&&1===h[0].declarations.length){var w=h[1].expression;w.arguments=[h[0].declarations[0].init],h=[w]}else if(ne(e.parent,{init:o})&&!h.some(function(e){return Ae(e)}))for(var E=0;E<h.length;E++){var S=h[E];re(S)&&(h[E]=S.expression)}1===h.length?e.replaceWith(h[0]):e.replaceWithMultiple(h),i.crawl()}(e,function(e){return t.addHelper(e)},u,l,p,c)}}}},_J=p().m(QJ),IJ=p().m(eY),DJ=p().m(rY),OJ=is,NJ=ds,BJ=ys,MJ=sm,FJ=xe,LJ=it,UJ=Bs,qJ=_s,GJ=jo,WJ=Gs,VJ=eo,HJ=Zs,zJ=$s;function KJ(e,t){return BJ(NJ("===",MJ(t),zJ("void",qJ(0))),e,MJ(t))}function XJ(e){if("ObjectPattern"===e.type){var t=e.properties;if("RestElement"===t[t.length-1].type)return[]}return null}function JJ(e,t,r){if(null!==e)for(var a,n=function(){var t=a.value,n=t.key;if(t.computed&&!r.isStatic(n)){var s=r.generateDeclaredUidIdentifier("m");t.key=OJ("=",s,n),e.push({key:s,computed:!0})}else if("PrivateName"!==n.type){var o=e.some(function(e){if(e.computed||t.computed)return!1;var r=function(e){switch(e.type){case"Identifier":return e.name;case"StringLiteral":return e.value;case"NumericLiteral":case"BigIntLiteral":return String(e.value);default:return null}},a=r(e.key),s=r(n);return null!==a&&null!==s&&a===s});o||e.push(t)}},s=i(t);!(a=s()).done;)n()}function YJ(e,t){var r=$J(e,t,!1),a=r.elements,n=r.transformed;return{params:a,variableDeclaration:HJ("var",n.map(function(e){var t=e.left,r=e.right;return VJ(t,r)}))}}function $J(e,t,r){for(var a,n=[],s=[],o=i(e);!(a=o()).done;){var d=a.value;if(null!==d&&"VoidPattern"!==d.type){var c=t.generateUidIdentifier("p");r&&t.push({id:MJ(c)}),"RestElement"===d.type?(n.push(WJ(c)),d=d.argument):n.push(c),"AssignmentPattern"===d.type?s.push({left:d.left,right:KJ(d.right,c)}):s.push({left:d,right:MJ(c)})}else n.push(null),s.push(null)}return{elements:n,transformed:s}}function QJ(e,t){var r,a,n,s,o,i,d,c,l,u,f;return p().w(function(p){for(;;)switch(p.n){case 0:(r=[]).push({node:e,index:0,depth:0});case 1:if(void 0===(a=r.pop())){p.n=12;break}if(s=(n=a).node,o=n.index,null!==s){p.n=2;break}return p.a(3,1);case 2:return p.d(g(t(s,o,a.depth)),3);case 3:i=a.depth+1,f=s.type,p.n="AssignmentPattern"===f?4:"ObjectProperty"===f?5:"RestElement"===f?6:"ObjectPattern"===f?7:"ArrayPattern"===f?8:"TSParameterProperty"===f||"TSAsExpression"===f||"TSTypeAssertion"===f||"TSNonNullExpression"===f?9:10;break;case 4:return r.push({node:s.left,index:0,depth:i}),p.a(3,11);case 5:return r.push({node:s.value,index:o,depth:a.depth}),p.a(3,11);case 6:return r.push({node:s.argument,index:0,depth:i}),p.a(3,11);case 7:for(d=s.properties,c=d.length-1;c>=0;c--)r.push({node:d[c],index:c,depth:i});return p.a(3,11);case 8:for(l=s.elements,u=l.length-1;u>=0;u--)r.push({node:l[u],index:u,depth:i});return p.a(3,11);case 9:throw new Error("TypeScript features must first be transformed by @babel/plugin-transform-typescript.\nIf you have already enabled that plugin (or '@babel/preset-typescript'), make sure that it runs before @babel/plugin-proposal-destructuring-private.");case 10:return p.a(3,11);case 11:p.n=1;break;case 12:return p.a(2)}},_J)}function ZJ(e){var t=!1;return QJ(e,p().m(function e(r){return p().w(function(e){for(;;)switch(e.n){case 0:if(!FJ(r)||!LJ(r.key)){e.n=1;break}return t=!0,void(e.n=1);case 1:return e.a(2)}},e)})).next(),t}function eY(e){var t;return p().w(function(r){for(;;)switch(r.n){case 0:return t=[],r.d(g(QJ(e,p().m(function e(r,a,n){return p().w(function(e){for(;;)switch(e.n){case 0:if(t[n]=a,!FJ(r)||!LJ(r.key)){e.n=1;break}return e.n=1,t.slice(1,n+1);case 1:return e.a(2)}},e)}))),1);case 1:return r.a(2)}},IJ)}function tY(e){switch(e.type){case"Identifier":case"ArrayPattern":return!0;case"ObjectPattern":return 1===e.properties.length;default:return!1}}function rY(e,t,r,a,n,s,o,i){var d,c,l,u,f,g,m,y,h,v,x,R,j,w,E,S,T,P,A,k,C,_,I,D,O,N,B,M,F,L,U,q;return p().w(function(p){for(;;)switch(p.n){case 0:c=t,(d=[]).push({left:e,right:t,restExcludingKeys:XJ(e)});case 1:if(void 0===(l=d.pop())){p.n=21;break}if(u=l.restExcludingKeys,g=(f=l).left,m=f.right,!(y=eY(g).next()).done){p.n=8;break}if(!((null==u?void 0:u.length)>0)){p.n=6;break}if(h=g.properties,"RestElement"!==(null==(v=h[h.length-1])?void 0:v.type)){p.n=4;break}if(x=h.slice(0,-1),R=v,u&&JJ(u,x,r),!(x.length>0)){p.n=2;break}return p.n=2,{left:GJ(x),right:MJ(m)};case 2:return p.n=3,{left:R.argument,right:AJ(u,m,r,s,o,i)};case 3:return p.a(3,1);case 4:return 1===(j=g.properties).length&&(g=j[0].argument),p.n=5,{left:g,right:AJ(u,m,r,s,o,i)};case 5:p.n=7;break;case 6:return p.n=7,{left:g,right:m};case 7:p.n=20;break;case 8:w=y.value,E=0;case 9:if(!(E<w.length&&void 0!==(S=w[E])||"AssignmentPattern"===g.type)){p.n=19;break}if(!(n&&m===c)&&(tY(g)||r.isStatic(m))){p.n=11;break}return T=r.generateUidIdentifier("m"),a&&r.push({id:MJ(T)}),p.n=10,{left:T,right:m};case 10:m=MJ(T);case 11:q=g.type,p.n="ObjectPattern"===q?12:"AssignmentPattern"===q?14:"ArrayPattern"===q?15:17;break;case 12:if(P=g.properties,!(S>0)){p.n=13;break}return A=P.slice(0,S),p.n=13,{left:GJ(A),right:MJ(m)};case 13:return S<P.length-1&&(JJ(k=0===E?u:XJ(g),P.slice(0,S+1),r),d.push({left:GJ(P.slice(S+1)),right:MJ(m),restExcludingKeys:k})),"VoidPattern"===(C=P[S]).value.type&&(_=r.generateUidIdentifier("_"),a&&r.push({id:MJ(_)}),C.value=_),g=C.value,I=C.key,D=C.computed||"Identifier"!==I.type&&"PrivateName"!==I.type,m=UJ(m,I,D),p.a(3,18);case 14:return m=KJ(g.right,m),g=g.left,p.a(3,18);case 15:return O=g.elements,N=O.splice(S),B=$J(N,r,a),M=B.elements,F=B.transformed,O.push.apply(O,b(M)),p.n=16,{left:g,right:MJ(m)};case 16:for(L=F.length-1;L>0;L--)null!==F[L]&&d.push(F[L]);return U=F[0],g=U.left,m=U.right,p.a(3,18);case 17:return p.a(3,18);case 18:E++,p.n=9;break;case 19:d.push({left:g,right:m,restExcludingKeys:XJ(g)});case 20:p.n=1;break;case 21:return p.a(2)}},DJ)}var aY,nY={"ReferencedIdentifier|BindingIdentifier":function(e,t){var r=e.scope,a=e.node.name;("eval"===a||r.getBinding(a)===t.scope.parent.getBinding(a)&&t.scope.hasOwnBinding(a))&&(t.needsOuterBinding=!0,e.stop())},"TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration":function(e){return e.skip()}};function sY(e,t,r){for(var a=0,n=Object.keys(e.getBindingIdentifiers());a<n.length;a++){var s,o=n[a],d=null==(s=t.bindings[o])?void 0:s.constantViolations;if(d)for(var c,l=i(d);!(c=l()).done;){var u=c.value,p=u.node;switch(p.type){case"VariableDeclarator":if(null===p.init){var f=u.parentPath;if(!f.parentPath.isFor()||f.parentPath.get("body")===f){u.remove();break}}r.add(o);break;case"FunctionDeclaration":r.add(o)}}}}function oY(e,t){for(var r,a=[],n=[],s=i(e);!(r=s()).done;){var o=r.value;a.push(Ps(o)),n.push(Ps(o))}return Ws(gs(so(n,t),a))}var iY=pj.statement("\n let VARIABLE_NAME =\n arguments.length > ARGUMENT_KEY && arguments[ARGUMENT_KEY] !== undefined ?\n arguments[ARGUMENT_KEY]\n :\n DEFAULT_VALUE;\n"),dY=pj.statement("\n if (ASSIGNMENT_IDENTIFIER === UNDEFINED) {\n ASSIGNMENT_IDENTIFIER = DEFAULT_VALUE;\n }\n"),cY=pj.statement("\n let ASSIGNMENT_IDENTIFIER = PARAMETER_NAME === UNDEFINED ? DEFAULT_VALUE : PARAMETER_NAME ;\n"),lY=pj.statement("\n let $0 = arguments.length > $1 ? arguments[$1] : undefined;\n");function uY(e,t,r,a){var n=e.get("params"),s=n.every(function(e){return e.isIdentifier()});if(s)return!1;for(var o,d=e.node,c=e.scope,l=[],u=new Set,p=i(n);!(o=p()).done;){sY(o.value,c,u)}var f={needsOuterBinding:!1,scope:c};if(0===u.size)for(var g,m=i(n);!(g=m()).done;){var y=g.value;if(y.isIdentifier()||y.traverse(nY,f),f.needsOuterBinding)break}for(var b=null,v=0;v<n.length;v++){var x=n[v];if(!r||r(v)){var R=[];a&&a(e,x,R);var j=x.isAssignmentPattern();if(j&&(t||cr(d,{kind:"set"}))){var w=x.get("left"),E=x.get("right"),S=c.buildUndefinedNode();if(w.isIdentifier())l.push(dY({ASSIGNMENT_IDENTIFIER:sm(w.node),DEFAULT_VALUE:E.node,UNDEFINED:S})),x.replaceWith(w.node);else if(w.isObjectPattern()||w.isArrayPattern()){var T=c.generateUidIdentifier();l.push(cY({ASSIGNMENT_IDENTIFIER:w.node,DEFAULT_VALUE:E.node,PARAMETER_NAME:sm(T),UNDEFINED:S})),x.replaceWith(T)}}else if(j){null===b&&(b=v);var P=x.get("left"),A=x.get("right"),k=iY({VARIABLE_NAME:P.node,DEFAULT_VALUE:A.node,ARGUMENT_KEY:_s(v)});l.push(k)}else if(null!==b){var C=lY([x.node,_s(v)]);l.push(C)}else if(x.isObjectPattern()||x.isArrayPattern()){var _=e.scope.generateUidIdentifier("ref");_.typeAnnotation=x.node.typeAnnotation;var I=Zs("let",[eo(x.node,_)]);l.push(I),x.replaceWith(sm(_))}if(R)for(var D,O=i(R);!(D=O()).done;){var N=D.value;l.push(N)}}}null!==b&&(d.params=d.params.slice(0,b)),e.ensureBlock();var B=e,M=d.async,F=d.generator;if(F||f.needsOuterBinding||u.size>0){l.push(oY(u,B.node.body)),e.set("body",ps(l));var L=B.get("body.body"),U=L[L.length-1].get("argument.callee");U.arrowFunctionToExpression(),U.node.generator=F,U.node.async=M,d.generator=!1,d.async=!1,M&&!F&&(B.node.body=pj.statement.ast(aY||(aY=h(["{\n try {\n ","\n } catch (e) {\n return Promise.reject(e);\n }\n }"])),B.node.body.body))}else B.get("body").unshiftContainer("body",l);return!0}var pY=pj.statement("\n for (var LEN = ARGUMENTS.length,\n ARRAY = new Array(ARRAY_LEN),\n KEY = START;\n KEY < LEN;\n KEY++) {\n ARRAY[ARRAY_KEY] = ARGUMENTS[KEY];\n }\n"),fY=pj.expression("\n (INDEX < OFFSET || ARGUMENTS.length <= INDEX) ? undefined : ARGUMENTS[INDEX]\n"),gY=pj.expression("\n REF = INDEX, (REF < OFFSET || ARGUMENTS.length <= REF) ? undefined : ARGUMENTS[REF]\n"),mY=pj.expression("\n ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET\n");function yY(e,t){return e.node.name===t.name&&e.scope.bindingIdentifierEquals(t.name,t.outerBinding)}var hY={Scope:function(e,t){e.scope.bindingIdentifierEquals(t.name,t.outerBinding)||e.skip()},Flow:function(e){e.isTypeCastExpression()||e.skip()},Function:function(e,t){var r=t.noOptimise;t.noOptimise=!0,e.traverse(hY,t),t.noOptimise=r,e.skip()},ReferencedIdentifier:function(e,t){var r=e.node;if("arguments"===r.name&&(t.deopted=!0),yY(e,t))if(t.noOptimise)t.deopted=!0;else{var a=e.parentPath;if("params"===a.listKey&&a.key<t.offset)return;if(a.isMemberExpression({object:r})){var n=a.parentPath;if(!t.deopted&&!(n.isAssignmentExpression()&&a.node===n.node.left||n.isLVal()||n.isForXStatement()||n.isUpdateExpression()||n.isUnaryExpression({operator:"delete"})||(n.isCallExpression()||n.isNewExpression())&&a.node===n.node.callee))if(a.node.computed){if(a.get("property").isBaseType("number"))return void t.candidates.push({cause:"indexGetter",path:e})}else if("length"===a.node.property.name)return void t.candidates.push({cause:"lengthGetter",path:e})}if(0===t.offset&&a.isSpreadElement()){var s=a.parentPath;if(s.isCallExpression()&&1===s.node.arguments.length)return void t.candidates.push({cause:"argSpread",path:e})}t.references.push(e)}},BindingIdentifier:function(e,t){yY(e,t)&&(t.deopted=!0)}};function bY(e,t,r){var a,n=_s(r),s=e.parent;a=ue(s.property)?_s(s.property.value+r):0===r?s.property:ds("+",s.property,sm(n));var o=e.scope,i=e.parentPath;if(o.isPure(a)){i.replaceWith(fY({ARGUMENTS:t,OFFSET:n,INDEX:a}));var d=i,c=d.get("test"),l=c.get("left").evaluate();l.confident&&(!0===l.value?d.replaceWith(o.buildUndefinedNode()):c.replaceWith(c.get("right")))}else{var u=o.generateUidIdentifierBasedOnNode(a);o.push({id:u,kind:"var"}),i.replaceWith(gY({ARGUMENTS:t,OFFSET:n,INDEX:a,REF:sm(u)}))}}function vY(e,t,r){r?e.parentPath.replaceWith(mY({ARGUMENTS:t,OFFSET:_s(r)})):e.replaceWith(t)}function xY(e){var t,r=e.node,a=e.scope;if(!function(e){var t=e.params.length;return t>0&&Re(e.params[t-1])}(r))return!1;var n=e.get("params."+(r.params.length-1)+".argument");if(!n.isIdentifier()){var s=new Set;sY(n,e.scope,s);var o=s.size>0;if(!o){var d={needsOuterBinding:!1,scope:a};n.traverse(nY,d),o=d.needsOuterBinding}o&&(e.ensureBlock(),e.set("body",ps([oY(s,e.node.body)])))}var c=n.node;if(r.params.pop(),ur(c)){var l=Zs("let",[eo(c,c=a.generateUidIdentifier("ref"))]);e.ensureBlock(),r.body.body.unshift(l)}else"arguments"===c.name&&a.rename(c.name);var u=Ps("arguments"),p=function(e){var t=e.params.length;return t>0&&ie(e.params[0],{name:"this"})&&(t-=1),t}(r),f={references:[],offset:p,argumentsNode:u,outerBinding:a.getBindingIdentifier(c.name),candidates:[],name:c.name,deopted:!1};if(e.traverse(hY,f),!f.deopted&&!f.references.length){for(var g,m=i(f.candidates);!(g=m()).done;){var y=g.value,h=y.path,v=y.cause,x=sm(u);switch(v){case"indexGetter":bY(h,x,f.offset);break;case"lengthGetter":vY(h,x,f.offset);break;default:h.replaceWith(x)}}return!0}(t=f.references).push.apply(t,b(f.candidates.map(function(e){return e.path})));var R,j,w=_s(p),E=a.generateUidIdentifier("key"),S=a.generateUidIdentifier("len");p?(R=ds("-",sm(E),sm(w)),j=ys(ds(">",sm(S),sm(w)),ds("-",sm(S),sm(w)),_s(0))):(R=Ps(E.name),j=Ps(S.name));var T=pY({ARGUMENTS:u,ARRAY_KEY:R,ARRAY_LEN:j,START:w,ARRAY:c,KEY:E,LEN:S});if(f.deopted)r.body.body.unshift(T);else{var P=e.getEarliestCommonAncestorFrom(f.references).getStatementParent();P.findParent(function(e){if(!e.isLoop())return e.isFunction();P=e}),P.insertBefore(T)}return!0}var RY=function(e,t){var r,a;e.assertVersion("*");var n=null!=(r=e.assumption("ignoreFunctionLength"))?r:t.loose,s=null==(a=e.assumption("noNewArrows"))||a;return{name:"transform-parameters",visitor:{Function:function(e){if(!e.isArrowFunctionExpression()||!e.get("params").some(function(e){return e.isRestElement()||e.isAssignmentPattern()})||(e.arrowFunctionToExpression({allowInsertArrowWithRest:!1,noNewArrows:s}),e.isFunctionExpression())){var t=xY(e),r=uY(e,n);(t||r)&&e.scope.crawl()}}}}},jY=function(e){var t=e.assertVersion,r=e.assumption,a=e.types;t("*");var n=a.assignmentExpression,s=a.assignmentPattern,o=a.cloneNode,d=a.expressionStatement,c=a.isExpressionStatement,l=a.isIdentifier,u=a.isSequenceExpression,p=a.sequenceExpression,f=a.variableDeclaration,g=a.variableDeclarator,m=r("ignoreFunctionLength"),y=r("objectRestNoSymbols"),h={Function:function(e){var t=e.node.params.findIndex(function(e){return ZJ(e)});if(-1!==t){uY(e,m,function(){return!1});var r=e.node,a=e.scope,n=r.params,o=m?-1:n.findIndex(function(e){return"AssignmentPattern"===e.type}),i=YJ(n.splice(t),a),d=i.params,c=i.variableDeclaration;e.get("body").unshiftContainer("body",c),n.push.apply(n,b(d)),o>=t&&(n[o]=s(n[o],a.buildUndefinedNode())),a.crawl()}},CatchClause:function(e){var t=e.node,r=e.scope;if(ZJ(t.param)){var a=r.generateUidIdentifier("e");e.get("body").unshiftContainer("body",f("let",[g(t.param,a)])),t.param=o(a),r.crawl()}},ForXStatement:function(e){var t=e.node,r=e.scope,a=e.get("left");if(a.isVariableDeclaration()){var s=a.node;if(!ZJ(s.declarations[0].id))return;var i=r.generateUidIdentifier("ref");t.left=f(s.kind,[g(i,null)]),s.declarations[0].init=o(i),wJ(e,[s]),r.crawl()}else if(a.isPattern()){if(!ZJ(a.node))return;var c=r.generateUidIdentifier("ref");t.left=f("const",[g(c,null)]),wJ(e,[d(n("=",a.node,o(c)))]),r.crawl()}},VariableDeclaration:function(e,t){var r=e.scope,a=e.node,n=a.declarations;if(n.some(function(e){return ZJ(e.id)})){for(var s,o=[],d=i(n);!(s=d()).done;)for(var c,l=s.value,u=i(rY(l.id,l.init,r,!1,!1,function(e){return t.addHelper(e)},y,!0));!(c=u()).done;){var p=c.value,f=p.left,m=p.right;o.push(g(f,m))}a.declarations=o,r.crawl()}},AssignmentExpression:function(e,t){var r=e.node,a=e.scope,s=e.parent;if(ZJ(r.left)){for(var d,f=[],g=!c(s)&&!u(s)||e.isCompletionRecord(),m=i(rY(r.left,r.right,a,!0,g,function(e){return t.addHelper(e)},y,!0));!(d=m()).done;){var h=d.value,b=h.left,v=h.right;f.push(n("=",b,v))}if(g){var x=f[0],R=x.left,j=x.right;if(l(R)&&j===r.right)l(f[f.length-1].right,{name:R.name})||f.push(o(R));else{var w=a.generateDeclaredUidIdentifier("m");f.unshift(n("=",w,o(r.right))),f.push(o(w))}}e.replaceWith(p(f)),a.crawl()}}},v={Class:function(e,t){(function(e){return e.body.some(function(e){return LJ(e.key)})})(e.node.body)&&e.traverse(h,t)}};return{name:"proposal-destructuring-private",manipulateOptions:function(e,t){return t.plugins.push("destructuringPrivate")},visitor:v}},wY=OO.visitors.merge;function EY(e){throw e.buildCodeFrameError("This control flow escape from do expression is not supported.")}var SY={FunctionParent:function(e){e.skip()},"SwitchStatement|Loop":function(e,t){t.break.add(null),t.continue.add(null)},LabeledStatement:function(e,t){var r=e.node.label.name;t.break.add(r)},BreakStatement:function(e,t){var r,a;t.break.has(null!=(r=null==(a=e.node.label)?void 0:a.name)?r:null)||EY(e)},ContinueStatement:function(e,t){var r,a;t.continue.has(null!=(r=null==(a=e.node.label)?void 0:a.name)?r:null)||EY(e)},ReturnStatement:function(e,t){t.returnPath=e}};var TY=function(e){var t;e.assertVersion("*");var r=e.types,a=null!=(t=e.assumption("noDocumentAll"))&&t;return{name:"proposal-do-expressions",manipulateOptions:function(e,t){return t.plugins.push("doExpressions")},visitor:{DoExpression:{exit:function(e){if(!e.node.async){var t=function(e){var t={break:new Set,continue:new Set,returnPath:null};return e.traverse(SY,t),t}(e);if(t.returnPath||t.break.size||t.continue.size)!function(e){var t=new WeakSet,a=e;for(;a;){if(!a.node)return;if(t.add(a.node),a.isFunction()){var s=a.get("body");if(a.isArrowFunctionExpression()&&s.isExpression()&&t.has(s.node)){var o=s.replaceWith(r.blockStatement([r.returnStatement(s.node)]));x((s=y(o,1)[0]).get("body")[0])}for(var d,c=!1,l=[],u=[],p=i(a.get("params"));!(d=p()).done;){var f=d.value,g=f.isRestElement()?f.get("argument"):f.isTSParameterProperty()?f.get("parameter"):f;if(c||(c=t.has(g.node)),c&&!PY(g)){var m=g.node,h=s.scope.generateUidIdentifier("do");g.replaceWith(r.cloneNode(h)),l.push(m),u.push(h)}}if(l.length){var v=void 0;if(s.isBlockStatement())v=s;else v=y(s.replaceWith(r.blockStatement([r.returnStatement(s.node)])),1)[0];v.unshiftContainer("body",r.variableDeclaration("var",[r.variableDeclarator(r.arrayPattern(l),r.arrayExpression(u))])),x(v.get("body")[0])}return}if(a.isStatement())return void x(a);a=a.parentPath}throw new Error("Internal error: DoExpression must be in a statement. This is a Babel bug, please report it.");function x(e){switch(e.type){case"VariableDeclaration":for(var a,n=[],s=i(e.get("declarations"));!(a=s()).done;){var o=a.value,d=o.get("init"),c=o.get("id");t.has(d.node)&&n.push.apply(n,b(R(d))),t.has(c.node)?n.push.apply(n,b(w(c,d.node,e.node.kind))):n.push(r.variableDeclaration(e.node.kind,[o.node]))}e.replaceWithMultiple(n);break;case"ForStatement":var l=[],u=e.get("test");t.has(u.node)&&(l.push.apply(l,b(R(u)).concat([r.ifStatement(r.unaryExpression("!",u.node),r.breakStatement())])),u.remove()),l.push(e.node.body);var p=e.get("update");t.has(p.node)&&(l.push.apply(l,b(R(p,{discardResult:!0}))),p.remove()),e.set("body",r.blockStatement(l));var f=e.get("init");if(t.has(f.node)){var g=f.isExpression()?r.expressionStatement(f.node):f.node;f.remove(),x(y(e.replaceWith(r.blockStatement([g,e.node])),1)[0].get("body")[0])}break;case"ForInStatement":case"ForOfStatement":var m=e.get("left");if(t.has(m.node)){var h=e.get("body"),v=h.scope.generateDeclaredUidIdentifier("do");if(m.isVariableDeclaration()){var j=m.get("declarations")[0].get("init");if(j.node)throw j.buildCodeFrameError("Complex variable declaration in for-in with do expression is not currently supported");j.replaceWith(r.cloneNode(v)),x(y(h.replaceWith(r.blockStatement([m.node,h.node])),1)[0].get("body")[0])}else h.replaceWith(r.blockStatement([].concat(b(w(m,r.cloneNode(v),null)),[h.node])));m.replaceWith(v)}var S=e.get("right");t.has(S.node)&&e.replaceWithMultiple([].concat(b(R(S)),[e.node]));break;case"WhileStatement":var T=e.get("test");e.set("body",r.blockStatement([].concat(b(R(T)),[r.ifStatement(r.unaryExpression("!",T.node),r.breakStatement()),e.node.body]))),T.replaceWith(r.booleanLiteral(!0));break;case"DoWhileStatement":var P=e.get("test");e.set("body",r.blockStatement([e.node.body].concat(b(R(P)),[r.ifStatement(r.unaryExpression("!",P.node),r.breakStatement())]))),P.replaceWith(r.booleanLiteral(!0));break;case"ExpressionStatement":e.replaceWithMultiple(R(e.get("expression"),{discardResult:!0}));break;default:e.insertBefore(E(e))}}function R(e,a){if(void 0===a&&(a={}),function(e){return e.isPureish()||e.isBinaryExpression()||e.isParenthesizedExpression()||e.isSequenceExpression()||e.isUnaryExpression()&&"throw"!==e.node.operator&&"delete"!==e.node.operator}(e))return E(e,a.flattenTrailing);var s=t.has(e.node);if(s){if(e.isDoExpression()){var o=e.get("body");if(!a.discardResult){var d=o.getCompletionRecords(!0).filter(function(e){return e.isExpressionStatement()});if(d.length){for(var c,l=o.scope.generateDeclaredUidIdentifier("do"),u=i(d);!(c=u()).done;){var p=c.value;p.replaceWith(r.assignmentExpression("=",r.cloneNode(l),p.node.expression))}e.replaceWith(l)}else e.replaceWith(e.scope.buildUndefinedNode())}return[o.node]}if(e.isAssignmentExpression()){var f=e.get("left"),g=e.get("right");if(t.has(f.node)){if("="!==e.node.operator)throw e.buildCodeFrameError("Do expression inside complex assignment expression is not currently supported.");var m=e.scope.generateDeclaredUidIdentifier("do");return e.replaceWith(m),[].concat(b(R(g)),b(w(f,g.node,null)))}}else{if(e.isLogicalExpression()){var h=e.node.operator,v=e.get("left"),x=e.get("right"),T=[].concat(b(R(v)),[r.ifStatement("&&"===h?r.cloneNode(v.node):"||"===h?r.unaryExpression("!",r.cloneNode(v.node)):r.binaryExpression("==",r.cloneNode(v.node),r.nullLiteral()),r.blockStatement(R(x)))]);return e.replaceWith(r.logicalExpression(e.node.operator,v.node,x.node)),T}if(e.isConditionalExpression()){var P=e.get("test"),A=e.get("alternate"),k=e.get("consequent"),C=[].concat(b(R(P)),[r.ifStatement(r.cloneNode(P.node),r.blockStatement(R(k)),r.blockStatement(R(A)))]);return e.replaceWith(r.conditionalExpression(P.node,k.node,A.node)),C}if(e.isOptionalMemberExpression()&&e.node.computed){var _=e.get("object"),I=e.get("property"),D=e.scope.generateDeclaredUidIdentifier("do");return e.replaceWith(D),[].concat(b(R(_)),[r.ifStatement(n(_.node),r.blockStatement([].concat(b(R(I)),[r.expressionStatement(r.assignmentExpression("=",r.cloneNode(D),r.memberExpression(_.node,I.node,!0)))])))])}if(e.isOptionalCallExpression()){var O=e.get("callee"),N=R(O),B=j(y(e.replaceWith(r.callExpression(r.cloneNode(O.node),e.node.arguments)),1)[0],a.discardResult);return[].concat(b(N),[r.ifStatement(n(O.node),r.blockStatement(B))])}if(e.isCallExpression())return j(e,a.discardResult)}}return s?[].concat(b(E(e,a.flattenTrailing)),[S(e,a.discardResult)]):[S(e,a.discardResult)]}function j(e,t){var a,n=e.get("callee"),s=[];n.isMemberExpression()&&((a=n.get("object")).isSuper()||s.push.apply(s,b(R(a)))),s.push.apply(s,b(R(n)));for(var o,d=i(e.get("arguments"));!(o=d()).done;){var c=o.value;if(c.isSpreadElement()){var l=e.scope.generateDeclaredUidIdentifier("do");s.push.apply(s,b(R(c.get("argument"))).concat([r.expressionStatement(r.assignmentExpression("=",r.cloneNode(l),r.arrayExpression([c.node])))])),c.replaceWith(r.spreadElement(l))}else s.push.apply(s,b(R(c)))}return a?(e.replaceWith(r.callExpression(r.memberExpression(e.node.callee,r.identifier("call")),[a.isSuper()?r.thisExpression():r.cloneNode(a.node)].concat(b(e.node.arguments)))),[].concat(s,[S(e,t)])):(e.replaceWith(r.callExpression(n.node,e.node.arguments)),[].concat(s,[S(e,t)]))}function w(e,t,a){switch(e.type){case"ObjectPattern":!function(e){var t={break:new Set,continue:new Set,returnPath:null};e.traverse(wY([{DoExpression:function(e){var t=e.node.body.body;t.length?e.replaceExpressionWithStatements(t):e.replaceWith(e.scope.buildUndefinedNode())}},SY]),t),t.returnPath&&EY(t.returnPath)}(e);case"Identifier":return a?[r.variableDeclaration(a,[r.variableDeclarator(e.node,t)])]:[r.expressionStatement(r.assignmentExpression("=",e.node,t))];case"MemberExpression":return[].concat(b(E(e)),[r.expressionStatement(r.assignmentExpression("=",e.node,t))]);case"AssignmentPattern":var n=e.get("left"),s=e.get("right");if(t){var o=e.scope.generateDeclaredUidIdentifier("do");return[r.expressionStatement(r.assignmentExpression("=",r.cloneNode(o),t)),r.ifStatement(r.binaryExpression("===",r.cloneNode(o),r.buildUndefinedNode()),r.blockStatement([].concat(b(R(s)),[r.expressionStatement(r.assignmentExpression("=",r.cloneNode(o),s.node))])))].concat(b(w(n,o,a)))}return w(e.get("left"),s.node,a);case"ArrayPattern":for(var d,c=[],l=[],u=i(e.get("elements"));!(d=u()).done;){var p=d.value;if(p.type&&!PY(p)){var f=e.scope.generateDeclaredUidIdentifier("do");p.isRestElement()?(c.push(r.restElement(r.cloneNode(f))),l.push.apply(l,b(w(p.get("argument"),f,a)))):(c.push(r.cloneNode(f)),l.push.apply(l,b(w(p,f,a))))}else c.push(p.node)}return[r.expressionStatement(r.assignmentExpression("=",r.arrayPattern(c),t))].concat(l);default:throw e.buildCodeFrameError("Do expression inside "+e.type+" is not currently supported")}}function E(e,r){var a,n=[];if(e.traverse({Statement:function(e){e.skip()},Expression:function(e){n.push(e),e.skip()}}),!r)for(;n.length;){var s=n.pop();if(t.has(s.node)){a=s;break}}for(var o=[],i=0,d=n;i<d.length;i++){var c=d[i];o.push.apply(o,b(R(c,{flattenTrailing:!0})))}return a&&o.push.apply(o,b(R(a))),o}function S(e,t){if(t)return r.expressionStatement(e.node);var a=e.scope.generateDeclaredUidIdentifier("do"),n=r.expressionStatement(r.assignmentExpression("=",r.cloneNode(a),e.node));return e.replaceWith(a),n}}(e);else{var a=e.node.body.body;a.length?e.replaceExpressionWithStatements(a):e.replaceWith(e.scope.buildUndefinedNode())}}}}}};function n(e){return a?r.binaryExpression("!=",r.cloneNode(e),r.nullLiteral()):r.logicalExpression("&&",r.binaryExpression("!==",r.cloneNode(e),r.nullLiteral()),r.binaryExpression("!==",r.cloneNode(e),r.buildUndefinedNode()))}};function PY(e){return e.isIdentifier()||e.isAssignmentPattern()&&PY(e.get("left"))&&e.get("right").isPureish()||e.isRestElement()&&PY(e.get("argument"))}var AY={},kY={exports:{}};!function(e,t){!function(r){var a=t,n=e&&e.exports==a&&e,s="object"==typeof dR&&dR;s.global!==s&&s.window!==s||(r=s);var o="A range\u2019s `stop` value must be greater than or equal to the `start` value.",i="Invalid code point value. Code points range from U+000000 to U+10FFFF.",d=55296,c=56319,l=56320,u=57343,p=/\\x00([^0123456789]|$)/g,f={},g=f.hasOwnProperty,m=function(e,t){for(var r=-1,a=e.length;++r<a;)t(e[r],r)},y=f.toString,h=function(e){return"[object Array]"==y.call(e)},b=function(e){return"number"==typeof e||"[object Number]"==y.call(e)},v=function(e,t){var r=String(e);return r.length<t?("0000"+r).slice(-t):r},x=function(e){return Number(e).toString(16).toUpperCase()},R=[].slice,j=function(e,t){for(var r,a,n=0,s=e.length;n<s;){if(r=e[n],a=e[n+1],t>=r&&t<a)return t==r?a==r+1?(e.splice(n,2),e):(e[n]=t+1,e):t==a-1?(e[n+1]=t,e):(e.splice(n,2,r,t,t+1,a),e);n+=2}return e},w=function(e,t,r){if(r<t)throw Error(o);for(var a,n,s=0;s<e.length;){if(a=e[s],n=e[s+1]-1,a>r)return e;if(t<=a&&r>=n)e.splice(s,2);else{if(t>=a&&r<n)return t==a?(e[s]=r+1,e[s+1]=n+1,e):(e.splice(s,2,a,t,r+1,n+1),e);if(t>=a&&t<=n)e[s+1]=t;else if(r>=a&&r<=n)return e[s]=r+1,e;s+=2}}return e},E=function(e,t){var r,a,n=0,s=null,o=e.length;if(t<0||t>1114111)throw RangeError(i);for(;n<o;){if(r=e[n],a=e[n+1],t>=r&&t<a)return e;if(t==r-1)return e[n]=t,e;if(r>t)return e.splice(null!=s?s+2:0,0,t,t+1),e;if(t==a)return t+1==e[n+2]?(e.splice(n,4,r,e[n+3]),e):(e[n+1]=t+1,e);s=n,n+=2}return e.push(t,t+1),e},S=function(e,t){for(var r,a,n=0,s=e.slice(),o=t.length;n<o;)s=(r=t[n])==(a=t[n+1]-1)?E(s,r):T(s,r,a),n+=2;return s},T=function(e,t,r){if(r<t)throw Error(o);if(t<0||t>1114111||r<0||r>1114111)throw RangeError(i);for(var a,n,s=0,d=!1,c=e.length;s<c;){if(a=e[s],n=e[s+1],d){if(a==r+1)return e.splice(s-1,2),e;if(a>r)return e;a>=t&&a<=r&&(n>t&&n-1<=r?(e.splice(s,2),s-=2):(e.splice(s-1,2),s-=2))}else{if(a==r+1||a==r)return e[s]=t,e;if(a>r)return e.splice(s,0,t,r+1),e;if(t>=a&&t<n&&r+1<=n)return e;t>=a&&t<n||n==t?(e[s+1]=r+1,d=!0):t<=a&&r+1>=n&&(e[s]=t,e[s+1]=r+1,d=!0)}s+=2}return d||e.push(t,r+1),e},P=function(e,t){var r=0,a=e.length,n=e[r],s=e[a-1];if(a>=2&&(t<n||t>s))return!1;for(;r<a;){if(n=e[r],s=e[r+1],t>=n&&t<s)return!0;r+=2}return!1},A=function(e){return!e.length},k=function(e){return 2==e.length&&e[0]+1==e[1]},C=function(e){for(var t,r,a=0,n=[],s=e.length;a<s;){for(t=e[a],r=e[a+1];t<r;)n.push(t),++t;a+=2}return n},_=Math.floor,I=function(e){return parseInt(_((e-65536)/1024)+d,10)},D=function(e){return parseInt((e-65536)%1024+l,10)},O=String.fromCharCode,N=function(e){return 9==e?"\\t":10==e?"\\n":12==e?"\\f":13==e?"\\r":45==e?"\\x2D":92==e?"\\\\":36==e||e>=40&&e<=43||46==e||47==e||63==e||e>=91&&e<=94||e>=123&&e<=125?"\\"+O(e):e>=32&&e<=126?O(e):e<=255?"\\x"+v(x(e),2):"\\u"+v(x(e),4)},B=function(e){return e<=65535?N(e):"\\u{"+e.toString(16).toUpperCase()+"}"},M=function(e){var t,r=e.length,a=e.charCodeAt(0);return a>=d&&a<=c&&r>1?(t=e.charCodeAt(1),1024*(a-d)+t-l+65536):a},F=function(e){var t,r,a="",n=0,s=e.length;if(k(e))return N(e[0]);for(;n<s;)a+=(t=e[n])==(r=e[n+1]-1)?N(t):t+1==r?N(t)+N(r):N(t)+"-"+N(r),n+=2;return"["+a+"]"},L=function(e){if(1==e.length)return e;for(var t=-1,r=-1;++t<e.length;){var a=e[t],n=a[1],s=n[0],o=n[1];for(r=t;++r<e.length;){var i=e[r],d=i[1],c=d[0],l=d[1];s==c&&o==l&&2===d.length&&(k(i[0])?a[0]=E(a[0],i[0][0]):a[0]=T(a[0],i[0][0],i[0][1]-1),e.splice(r,1),--r)}}return e},U=function(e){if(!e.length)return[];for(var t,r,a,n,s,o,i=0,d=[],c=e.length;i<c;){t=e[i],r=e[i+1]-1,a=I(t),n=D(t),s=I(r);var p=(o=D(r))==u,f=!1;a==s||n==l&&p?(d.push([[a,s+1],[n,o+1]]),f=!0):d.push([[a,a+1],[n,57344]]),!f&&a+1<s&&(p?(d.push([[a+1,s+1],[l,o+1]]),f=!0):d.push([[a+1,s],[l,57344]])),f||d.push([[s,s+1],[l,o+1]]),i+=2}return function(e){for(var t,r,a,n,s,o,i=[],d=[],c=!1,l=-1,u=e.length;++l<u;)if(t=e[l],r=e[l+1]){for(a=t[0],n=t[1],s=r[0],o=r[1],d=n;s&&a[0]==s[0]&&a[1]==s[1];)d=k(o)?E(d,o[0]):T(d,o[0],o[1]-1),a=(t=e[++l])[0],n=t[1],s=(r=e[l+1])&&r[0],o=r&&r[1],c=!0;i.push([a,c?d:n]),c=!1}else i.push(t);return L(i)}(d)},q=function(e,t,r){if(r)return function(e){var t,r,a="",n=0,s=e.length;if(k(e))return B(e[0]);for(;n<s;)a+=(t=e[n])==(r=e[n+1]-1)?B(t):t+1==r?B(t)+B(r):B(t)+"-"+B(r),n+=2;return"["+a+"]"}(e);var a=[],n=function(e){for(var t,r,a=[],n=[],s=[],o=[],i=0,p=e.length;i<p;)t=e[i],r=e[i+1]-1,t<d?(r<d&&s.push(t,r+1),r>=d&&r<=c&&(s.push(t,d),a.push(d,r+1)),r>=l&&r<=u&&(s.push(t,d),a.push(d,56320),n.push(l,r+1)),r>u&&(s.push(t,d),a.push(d,56320),n.push(l,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),o.push(65536,r+1)))):t>=d&&t<=c?(r>=d&&r<=c&&a.push(t,r+1),r>=l&&r<=u&&(a.push(t,56320),n.push(l,r+1)),r>u&&(a.push(t,56320),n.push(l,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),o.push(65536,r+1)))):t>=l&&t<=u?(r>=l&&r<=u&&n.push(t,r+1),r>u&&(n.push(t,57344),r<=65535?s.push(57344,r+1):(s.push(57344,65536),o.push(65536,r+1)))):t>u&&t<=65535?r<=65535?s.push(t,r+1):(s.push(t,65536),o.push(65536,r+1)):o.push(t,r+1),i+=2;return{loneHighSurrogates:a,loneLowSurrogates:n,bmp:s,astral:o}}(e),s=n.loneHighSurrogates,o=n.loneLowSurrogates,i=n.bmp,p=n.astral,f=!A(s),g=!A(o),y=U(p);return t&&(i=S(i,s),f=!1,i=S(i,o),g=!1),A(i)||a.push(F(i)),y.length&&a.push(function(e){var t=[];return m(e,function(e){var r=e[0],a=e[1];t.push(F(r)+F(a))}),t.join("|")}(y)),f&&a.push(F(s)+"(?![\\uDC00-\\uDFFF])"),g&&a.push("(?:[^\\uD800-\\uDBFF]|^)"+F(o)),a.join("|")},G=function(e){return arguments.length>1&&(e=R.call(arguments)),this instanceof G?(this.data=[],e?this.add(e):this):(new G).add(e)};G.version="1.4.2";var W=G.prototype;!function(e,t){var r;for(r in t)g.call(t,r)&&(e[r]=t[r])}(W,{add:function(e){var t=this;return null==e?t:e instanceof G?(t.data=S(t.data,e.data),t):(arguments.length>1&&(e=R.call(arguments)),h(e)?(m(e,function(e){t.add(e)}),t):(t.data=E(t.data,b(e)?e:M(e)),t))},remove:function(e){var t=this;return null==e?t:e instanceof G?(t.data=function(e,t){for(var r,a,n=0,s=e.slice(),o=t.length;n<o;)s=(r=t[n])==(a=t[n+1]-1)?j(s,r):w(s,r,a),n+=2;return s}(t.data,e.data),t):(arguments.length>1&&(e=R.call(arguments)),h(e)?(m(e,function(e){t.remove(e)}),t):(t.data=j(t.data,b(e)?e:M(e)),t))},addRange:function(e,t){var r=this;return r.data=T(r.data,b(e)?e:M(e),b(t)?t:M(t)),r},removeRange:function(e,t){var r=this,a=b(e)?e:M(e),n=b(t)?t:M(t);return r.data=w(r.data,a,n),r},intersection:function(e){var t=this,r=e instanceof G?C(e.data):e;return t.data=function(e,t){for(var r,a=0,n=t.length,s=[];a<n;)r=t[a],P(e,r)&&s.push(r),++a;return function(e){for(var t,r=-1,a=e.length,n=a-1,s=[],o=!0,i=0;++r<a;)if(t=e[r],o)s.push(t),i=t,o=!1;else if(t==i+1){if(r!=n){i=t;continue}o=!0,s.push(t+1)}else s.push(i+1,t),i=t;return o||s.push(t+1),s}(s)}(t.data,r),t},contains:function(e){return P(this.data,b(e)?e:M(e))},clone:function(){var e=new G;return e.data=this.data.slice(0),e},toString:function(e){var t=q(this.data,!!e&&e.bmpOnly,!!e&&e.hasUnicodeFlag);return t?t.replace(p,"\\0$1"):"[]"},toRegExp:function(e){var t=this.toString(e&&-1!=e.indexOf("u")?{hasUnicodeFlag:!0}:null);return RegExp(t,e||"")},valueOf:function(){return C(this.data)}}),W.toArray=W.valueOf,a&&!a.nodeType?n?n.exports=G:a.regenerate=G:r.regenerate=G}(dR)}(kY,kY.exports);var CY,_Y=kY.exports;function IY(){if(CY)return AY;CY=1;var e=_Y(170,181,186,748,750,837,895,902,908,1369,1471,1479,1791,2042,2199,2482,2510,2519,2556,2641,2654,2768,2929,2972,3024,3031,3406,3517,3542,3661,3716,3749,3782,3789,3840,4152,4295,4301,4696,4800,6103,6108,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,43205,43259,43471,43712,43714,64318,67592,67644,68969,69415,69826,70006,70106,70108,70199,70280,70480,70487,70539,70542,70594,70597,70609,70611,70855,71232,71236,71352,71945,72161,72349,72768,73018,73027,73112,73648,94179,110898,110933,113822,119970,119995,120134,123023,123214,124400,125255,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(867,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1456,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1623).addRange(1625,1631).addRange(1646,1747).addRange(1749,1756).addRange(1761,1768).addRange(1773,1775).addRange(1786,1788).addRange(1808,1855).addRange(1869,1969).addRange(1994,2026).addRange(2036,2037).addRange(2048,2071).addRange(2074,2092).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2191).addRange(2208,2249).addRange(2260,2271).addRange(2275,2281).addRange(2288,2363).addRange(2365,2380).addRange(2382,2384).addRange(2389,2403).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472),e.addRange(2474,2480).addRange(2486,2489).addRange(2493,2500).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2531).addRange(2544,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2636).addRange(2649,2652).addRange(2672,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2757).addRange(2759,2761).addRange(2763,2764).addRange(2784,2787).addRange(2809,2812).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2877,2884).addRange(2887,2888).addRange(2891,2892).addRange(2902,2903).addRange(2908,2909).addRange(2911,2915).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970),e.addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3020).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3133,3140).addRange(3142,3144).addRange(3146,3148).addRange(3157,3158).addRange(3160,3162).addRange(3164,3165).addRange(3168,3171).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3268).addRange(3270,3272).addRange(3274,3276).addRange(3285,3286).addRange(3292,3294).addRange(3296,3299).addRange(3313,3315).addRange(3328,3340).addRange(3342,3344).addRange(3346,3386).addRange(3389,3396).addRange(3398,3400).addRange(3402,3404).addRange(3412,3415).addRange(3423,3427).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3585,3642).addRange(3648,3654).addRange(3713,3714),e.addRange(3718,3722).addRange(3724,3747).addRange(3751,3769).addRange(3771,3773).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3953,3971).addRange(3976,3991).addRange(3993,4028).addRange(4096,4150).addRange(4155,4159).addRange(4176,4239).addRange(4250,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5907).addRange(5919,5939).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6067).addRange(6070,6088).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430),e.addRange(6432,6443).addRange(6448,6456).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6683).addRange(6688,6750).addRange(6753,6772).addRange(6847,6848).addRange(6860,6862).addRange(6912,6963).addRange(6965,6979).addRange(6981,6988).addRange(7040,7081).addRange(7084,7087).addRange(7098,7141).addRange(7143,7153).addRange(7168,7222).addRange(7245,7247).addRange(7258,7293).addRange(7296,7306).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7635,7668).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521),e.addRange(8544,8584).addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42612,42619).addRange(42623,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42972).addRange(42993,43013).addRange(43015,43047).addRange(43072,43123).addRange(43136,43203).addRange(43250,43255).addRange(43261,43263).addRange(43274,43306).addRange(43312,43346).addRange(43360,43388).addRange(43392,43442),e.addRange(43444,43455).addRange(43488,43503).addRange(43514,43518).addRange(43520,43574).addRange(43584,43597).addRange(43616,43638).addRange(43642,43710).addRange(43739,43741).addRange(43744,43759).addRange(43762,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786),e.addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67008,67059).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67904,67929).addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295),e.addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68938,68965).addRange(68975,68997).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69314,69319).addRange(69370,69372).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69632,69701).addRange(69745,69749).addRange(69760,69816).addRange(69840,69864).addRange(69888,69938).addRange(69956,69959).addRange(69968,70002).addRange(70016,70079).addRange(70081,70084).addRange(70094,70095).addRange(70144,70161).addRange(70163,70196).addRange(70206,70209).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70376).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70461,70468).addRange(70471,70472).addRange(70475,70476).addRange(70493,70499).addRange(70528,70537),e.addRange(70544,70581).addRange(70583,70592).addRange(70599,70602).addRange(70604,70605).addRange(70656,70721).addRange(70723,70725).addRange(70727,70730).addRange(70751,70753).addRange(70784,70849).addRange(70852,70853).addRange(71040,71093).addRange(71096,71102).addRange(71128,71133).addRange(71168,71230).addRange(71296,71349).addRange(71424,71450).addRange(71453,71466).addRange(71488,71494).addRange(71680,71736).addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,71996).addRange(71999,72002).addRange(72096,72103).addRange(72106,72151).addRange(72154,72159).addRange(72163,72164).addRange(72192,72242).addRange(72245,72254).addRange(72272,72343).addRange(72368,72440).addRange(72544,72551).addRange(72640,72672).addRange(72704,72712).addRange(72714,72758).addRange(72760,72766).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73025).addRange(73030,73031).addRange(73056,73061).addRange(73063,73064),e.addRange(73066,73102).addRange(73104,73105).addRange(73107,73110).addRange(73136,73179).addRange(73440,73462).addRange(73472,73488).addRange(73490,73530).addRange(73534,73536).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78913,78918).addRange(78944,82938).addRange(82944,83526).addRange(90368,90414).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93504,93548).addRange(93760,93823).addRange(93856,93880).addRange(93883,93907).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94192,94198).addRange(94208,101589).addRange(101631,101662).addRange(101760,101874).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967),e.addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122661,122666).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124112,124139).addRange(124368,124397).addRange(124608,124638).addRange(124640,124661).addRange(124670,124671).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514),e.addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041),AY.characters=e,AY}var DY,OY={};function NY(){if(DY)return OY;DY=1;var e=_Y();return e.addRange(0,1114111),OY.characters=e,OY}var BY,MY={};function FY(){if(BY)return MY;BY=1;var e=_Y();return e.addRange(48,57).addRange(65,70).addRange(97,102),MY.characters=e,MY}var LY,UY={};function qY(){if(LY)return UY;LY=1;var e=_Y();return e.addRange(0,127),UY.characters=e,UY}var GY,WY={};function VY(){if(GY)return WY;GY=1;var e=_Y(908,2142,2482,2519,2620,2641,2654,2768,2972,3024,3031,3517,3530,3542,3716,3749,3782,4295,4301,4696,4800,6464,8025,8027,8029,11559,11565,64318,65279,65952,67592,67644,69837,70280,70480,70487,70539,70542,70594,70597,71945,73018,73648,110898,110933,119970,119995,120134,123023,123647,124415,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008,129736,917505);return e.addRange(0,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(1536,1805).addRange(1807,1866).addRange(1869,1969).addRange(1984,2042).addRange(2045,2093).addRange(2096,2110).addRange(2112,2139).addRange(2144,2154).addRange(2160,2193).addRange(2199,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739),e.addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3164,3165).addRange(3168,3171).addRange(3174,3183).addRange(3191,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257),e.addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3292,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(3585,3642).addRange(3647,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807).addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4058).addRange(4096,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805),e.addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5909).addRange(5919,5942).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6683).addRange(6686,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829).addRange(6832,6877).addRange(6880,6891).addRange(6912,6988).addRange(6990,7155).addRange(7164,7223).addRange(7227,7241).addRange(7245,7306).addRange(7312,7354).addRange(7357,7367).addRange(7376,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013),e.addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(8192,8292).addRange(8294,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8385).addRange(8400,8432).addRange(8448,8587).addRange(8592,9257).addRange(9280,9290).addRange(9312,11123).addRange(11126,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12351).addRange(12353,12438).addRange(12441,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12773).addRange(12783,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42743).addRange(42752,42972).addRange(42993,43052).addRange(43056,43065).addRange(43072,43127),e.addRange(43136,43205).addRange(43214,43225).addRange(43232,43347).addRange(43359,43388).addRange(43392,43469).addRange(43471,43481).addRange(43486,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43714).addRange(43739,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(55296,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64975).addRange(65008,65049).addRange(65056,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65140).addRange(65142,65276).addRange(65281,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65529,65533).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613),e.addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66045).addRange(66176,66204).addRange(66208,66256).addRange(66272,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67008,67059).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867).addRange(67871,67897).addRange(67903,67929).addRange(67968,68023).addRange(68028,68047).addRange(68050,68099),e.addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68326).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68903).addRange(68912,68921).addRange(68928,68965).addRange(68969,68997).addRange(69006,69007).addRange(69216,69246).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297).addRange(69314,69319).addRange(69328,69336).addRange(69370,69415).addRange(69424,69465).addRange(69488,69513).addRange(69552,69579).addRange(69600,69622).addRange(69632,69709).addRange(69714,69749).addRange(69759,69826).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69959).addRange(69968,70006).addRange(70016,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70209).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),e.addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70528,70537).addRange(70544,70581).addRange(70583,70592).addRange(70599,70602).addRange(70604,70613).addRange(70615,70616).addRange(70625,70626).addRange(70656,70747).addRange(70749,70753).addRange(70784,70855).addRange(70864,70873).addRange(71040,71093).addRange(71096,71133).addRange(71168,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71353).addRange(71360,71369).addRange(71376,71395).addRange(71424,71450).addRange(71453,71467).addRange(71472,71494).addRange(71680,71739).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164).addRange(72192,72263).addRange(72272,72354),e.addRange(72368,72440).addRange(72448,72457).addRange(72544,72551).addRange(72640,72673).addRange(72688,72697).addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812).addRange(72816,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73136,73179).addRange(73184,73193).addRange(73440,73464).addRange(73472,73488).addRange(73490,73530).addRange(73534,73562).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78933).addRange(78944,82938).addRange(82944,83526).addRange(90368,90425).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92917).addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047),e.addRange(93053,93071).addRange(93504,93561).addRange(93760,93850).addRange(93856,93880).addRange(93883,93907).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94180).addRange(94192,94198).addRange(94208,101589).addRange(101631,101662).addRange(101760,101874).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113827).addRange(117760,118012).addRange(118016,118451).addRange(118458,118480).addRange(118496,118512).addRange(118528,118573).addRange(118576,118598).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119274).addRange(119296,119365).addRange(119488,119507).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092),e.addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121483).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122661,122666).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123566).addRange(123584,123641).addRange(124112,124153).addRange(124368,124410).addRange(124608,124638).addRange(124640,124661).addRange(124670,124671).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125142).addRange(125184,125259).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588),e.addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128728).addRange(128732,128748).addRange(128752,128764).addRange(128768,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129211).addRange(129216,129217).addRange(129232,129240).addRange(129280,129623).addRange(129632,129645).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784).addRange(129792,129938).addRange(129940,130042).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041).addRange(917536,917631).addRange(917760,917999),e.addRange(983040,1048573).addRange(1048576,1114109),WY.characters=e,WY}var HY,zY={};function KY(){if(HY)return zY;HY=1;var e=_Y(1564);return e.addRange(8206,8207).addRange(8234,8238).addRange(8294,8297),zY.characters=e,zY}var XY,JY={};function YY(){if(XY)return JY;XY=1;var e=_Y(60,62,91,93,123,125,171,187,8512,8721,8740,8742,8761,8802,8856,10176,10680,10697,10721,10788,10790,10793,10972,10974,10995,11005,11262,65308,65310,65339,65341,65371,65373,120539,120597,120655,120713,120771);return e.addRange(40,41).addRange(3898,3901).addRange(5787,5788).addRange(8249,8250).addRange(8261,8262).addRange(8317,8318).addRange(8333,8334).addRange(8705,8708).addRange(8712,8717).addRange(8725,8726).addRange(8730,8733).addRange(8735,8738).addRange(8747,8755).addRange(8763,8780).addRange(8786,8789).addRange(8799,8800).addRange(8804,8811).addRange(8813,8844).addRange(8847,8850).addRange(8866,8867).addRange(8870,8888).addRange(8894,8895).addRange(8905,8909).addRange(8912,8913).addRange(8918,8941).addRange(8944,8959).addRange(8968,8971).addRange(8992,8993).addRange(9001,9002).addRange(10088,10101).addRange(10179,10182).addRange(10184,10185).addRange(10187,10189).addRange(10195,10198).addRange(10204,10206).addRange(10210,10223).addRange(10627,10648).addRange(10651,10656).addRange(10658,10671).addRange(10688,10693).addRange(10702,10706).addRange(10708,10709).addRange(10712,10716).addRange(10723,10725).addRange(10728,10729).addRange(10740,10745).addRange(10748,10749).addRange(10762,10780).addRange(10782,10785).addRange(10795,10798).addRange(10804,10805),e.addRange(10812,10814).addRange(10839,10840).addRange(10852,10853).addRange(10858,10861).addRange(10863,10864).addRange(10867,10868).addRange(10873,10915).addRange(10918,10925).addRange(10927,10966).addRange(10978,10982).addRange(10988,10990).addRange(10999,11003).addRange(11778,11781).addRange(11785,11786).addRange(11788,11789).addRange(11804,11805).addRange(11808,11817).addRange(11861,11868).addRange(12296,12305).addRange(12308,12315).addRange(65113,65118).addRange(65124,65125).addRange(65288,65289).addRange(65375,65376).addRange(65378,65379),JY.characters=e,JY}var $Y,QY={};function ZY(){if($Y)return QY;$Y=1;var e=_Y(39,46,58,94,96,168,173,175,180,890,903,1369,1375,1471,1479,1524,1564,1600,1648,1807,1809,2042,2045,2184,2362,2364,2381,2417,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3782,3893,3895,3897,4038,4226,4237,4253,4348,6086,6103,6109,6211,6313,6450,6683,6742,6752,6754,6783,6823,6964,6972,6978,7142,7149,7405,7412,7544,8125,8228,8231,8305,8319,11631,11647,11823,12293,12347,40981,42508,42623,42864,43010,43014,43019,43052,43263,43443,43471,43587,43596,43632,43644,43696,43713,43741,43766,44005,44008,44013,64286,65043,65106,65109,65279,65287,65294,65306,65342,65344,65392,65507,66045,66272,68159,68942,68975,69317,69633,69744,69821,69826,69837,70003,70095,70196,70206,70209,70367,70464,70606,70608,70610,70726,70750,70842,71229,71339,71341,71351,71453,71455,71998,72003,72160,72263,72544,72550,72767,73018,73031,73109,73111,73177,73536,73538,73562,94031,121461,121476,123023,123566,124643,124646,124661,124671,917505);return e.addRange(183,184).addRange(688,879).addRange(884,885).addRange(900,901).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1536,1541).addRange(1552,1562).addRange(1611,1631).addRange(1750,1757).addRange(1759,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2070,2093).addRange(2137,2139).addRange(2192,2193).addRange(2199,2207).addRange(2249,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),e.addRange(3538,3540).addRange(3636,3642).addRange(3654,3662).addRange(3764,3772).addRange(3784,3790).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6159).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6877).addRange(6880,6891).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7288,7293).addRange(7376,7378),e.addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7468,7530).addRange(7579,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8203,8207).addRange(8216,8217).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(8336,8348).addRange(8400,8432).addRange(11388,11389).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12337,12341).addRange(12441,12446).addRange(12540,12542).addRange(42232,42237).addRange(42607,42610).addRange(42612,42621).addRange(42652,42655).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(42993,42996).addRange(43e3,43001).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43493,43494).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(43763,43764).addRange(43867,43871),e.addRange(43881,43883).addRange(64434,64450).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(65529,65531).addRange(66422,66426).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(68969,68973).addRange(69291,69292).addRange(69370,69375).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70587,70592).addRange(70625,70626).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226),e.addRange(71231,71232).addRange(71344,71349).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72546,72548).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(73472,73473).addRange(73526,73530).addRange(78896,78912).addRange(78919,78933).addRange(90398,90409).addRange(90413,90415).addRange(92912,92916).addRange(92976,92982).addRange(92992,92995).addRange(93504,93506).addRange(93547,93548).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94194,94195).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(113821,113822).addRange(113824,113827).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145),e.addRange(119155,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123184,123197).addRange(123628,123631).addRange(124139,124143).addRange(124398,124399).addRange(124654,124655).addRange(125136,125142).addRange(125252,125259).addRange(127995,127999).addRange(917536,917631).addRange(917760,917999),QY.characters=e,QY}var e$,t$={};function r$(){if(e$)return t$;e$=1;var e=_Y(170,181,186,837,895,902,908,4295,4301,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,67456,119970,119995,120134);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(662,696).addRange(704,705).addRange(736,740).addRange(880,883).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4348,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7306).addRange(7312,7354).addRange(7357,7359).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521),e.addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42653).addRange(42786,42887).addRange(42891,42894).addRange(42896,42972).addRange(42993,42998).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43881).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(68800,68850).addRange(68944,68965).addRange(68976,68997).addRange(71840,71903).addRange(93760,93823).addRange(93856,93880).addRange(93883,93907).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069),e.addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(122661,122666).addRange(122928,122989).addRange(125184,125251).addRange(127280,127305).addRange(127312,127337).addRange(127344,127369),t$.characters=e,t$}var a$,n$={};function s$(){if(a$)return n$;a$=1;var e=_Y(181,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,837,880,882,886,895,902,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,4295,4301,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42958,42960,42962,42964,42966,42968,42970,42972,42997);return e.addRange(65,90).addRange(192,214).addRange(216,223).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,977).addRange(981,982).addRange(1008,1009).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5112,5117).addRange(7296,7305).addRange(7312,7354).addRange(7357,7359).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116),e.addRange(8119,8124).addRange(8130,8132).addRange(8135,8140).addRange(8152,8155).addRange(8168,8172).addRange(8178,8180).addRange(8183,8188).addRange(8490,8491).addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(42955,42956).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(68944,68965).addRange(71840,71871).addRange(93760,93791).addRange(93856,93880).addRange(125184,125217),n$.characters=e,n$}var o$,i$={};function d$(){if(o$)return i$;o$=1;var e=_Y(181,447,601,623,629,637,640,658,837,895,902,908,4295,4301,7545,7549,7566,7838,8025,8027,8029,8126,8486,8498,8526,11559,11565,43859);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,311).addRange(313,396).addRange(398,425).addRange(428,441).addRange(444,445).addRange(452,544).addRange(546,563).addRange(570,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(611,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,977).addRange(981,1013).addRange(1015,1019).addRange(1021,1153).addRange(1162,1327).addRange(1329,1366).addRange(1377,1415).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7306).addRange(7312,7354).addRange(7357,7359).addRange(7680,7835).addRange(7840,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132),e.addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8490,8491).addRange(8544,8575).addRange(8579,8580).addRange(9398,9449).addRange(11264,11376).addRange(11378,11379).addRange(11381,11382).addRange(11390,11491).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42799).addRange(42802,42863).addRange(42873,42887).addRange(42891,42893).addRange(42896,42900).addRange(42902,42926).addRange(42928,42972).addRange(42997,42998).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(68944,68965).addRange(68976,68997).addRange(71840,71903).addRange(93760,93823).addRange(93856,93880).addRange(93883,93907),e.addRange(125184,125251),i$.characters=e,i$}var c$,l$={};function u$(){if(c$)return l$;c$=1;var e=_Y(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7305,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8486,8498,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42958,42960,42962,42964,42966,42968,42970,42972,42997);return e.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,453).addRange(455,456).addRange(458,459).addRange(497,498).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8072,8079).addRange(8088,8095).addRange(8104,8111).addRange(8120,8124).addRange(8136,8140).addRange(8152,8155).addRange(8168,8172).addRange(8184,8188).addRange(8490,8491),e.addRange(8544,8559).addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(42955,42956).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(68944,68965).addRange(71840,71871).addRange(93760,93791).addRange(93856,93880).addRange(125184,125217),l$.characters=e,l$}var p$,f$={};function g$(){if(p$)return f$;p$=1;var e=_Y(160,168,170,173,175,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,310,313,315,317,323,325,327,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,383,388,418,420,425,428,437,444,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,847,880,882,884,886,890,908,962,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1415,1564,2527,2611,2614,2654,3635,3763,3852,3907,3917,3922,3927,3932,3945,3955,3969,3987,3997,4002,4007,4012,4025,4295,4301,4348,7544,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8049,8051,8053,8055,8057,8059,8061,8147,8163,8209,8215,8252,8254,8279,8360,8484,8486,8488,8579,8585,10764,10972,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,11631,11935,12019,12288,12342,12447,12543,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42864,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42958,42960,42962,42964,42966,42968,42970,42972,43881,64016,64018,64032,64034,64285,64318,65140,65279,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,127376);return e.addRange(65,90).addRange(178,181).addRange(184,186).addRange(188,190).addRange(192,214).addRange(216,223).addRange(306,308).addRange(319,321).addRange(329,330).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(452,461).addRange(497,500).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(688,696).addRange(728,733).addRange(736,740).addRange(832,833).addRange(835,837).addRange(894,895).addRange(900,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(975,982).addRange(1008,1010).addRange(1012,1013).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(1653,1656).addRange(2392,2399).addRange(2524,2525).addRange(2649,2651).addRange(2908,2909).addRange(3804,3805),e.addRange(3957,3961).addRange(4256,4293).addRange(4447,4448).addRange(5112,5117).addRange(6068,6069).addRange(6155,6159).addRange(7296,7305).addRange(7312,7354).addRange(7357,7359).addRange(7468,7470).addRange(7472,7482).addRange(7484,7501).addRange(7503,7530).addRange(7579,7615).addRange(7834,7835).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8064,8111).addRange(8114,8116).addRange(8119,8132).addRange(8135,8143).addRange(8152,8155).addRange(8157,8159).addRange(8168,8175).addRange(8178,8180).addRange(8183,8190).addRange(8192,8207).addRange(8228,8230).addRange(8234,8239).addRange(8243,8244).addRange(8246,8247).addRange(8263,8265).addRange(8287,8305).addRange(8308,8334).addRange(8336,8348).addRange(8448,8451).addRange(8453,8455).addRange(8457,8467).addRange(8469,8470).addRange(8473,8477).addRange(8480,8482).addRange(8490,8493).addRange(8495,8505).addRange(8507,8512).addRange(8517,8521).addRange(8528,8575).addRange(8748,8749),e.addRange(8751,8752).addRange(9001,9002).addRange(9312,9450).addRange(10868,10870).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11388,11392).addRange(12032,12245).addRange(12344,12346).addRange(12443,12444).addRange(12593,12686).addRange(12690,12703).addRange(12800,12830).addRange(12832,12871).addRange(12880,12926).addRange(12928,13311).addRange(42652,42653).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(42955,42956).addRange(42993,42997).addRange(43e3,43001).addRange(43868,43871).addRange(43888,43967).addRange(63744,64013).addRange(64021,64030).addRange(64037,64038).addRange(64042,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65020).addRange(65024,65049).addRange(65072,65092).addRange(65095,65106).addRange(65108,65126).addRange(65128,65131).addRange(65136,65138).addRange(65142,65276).addRange(65281,65470),e.addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65520,65528).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(67457,67461).addRange(67463,67504).addRange(67506,67514).addRange(68736,68786).addRange(68944,68965).addRange(71840,71871).addRange(93760,93791).addRange(93856,93880).addRange(113824,113827).addRange(117974,118009).addRange(119134,119140).addRange(119155,119162).addRange(119227,119232).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(122928,122989).addRange(125184,125217).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519),e.addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(127232,127242).addRange(127248,127278).addRange(127280,127311).addRange(127338,127340).addRange(127488,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(130032,130041).addRange(194560,195101).addRange(917504,921599),f$.characters=e,f$}var m$,y$={};function h$(){if(m$)return y$;m$=1;var e=_Y(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,452,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7306,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42957,42959,42961,42963,42965,42967,42969,42971,42998,43859);return e.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,411).addRange(454,455).addRange(457,458).addRange(476,477).addRange(495,497).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(611,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167).addRange(8178,8180),e.addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(68976,68997).addRange(71872,71903).addRange(93792,93823).addRange(93883,93907).addRange(125218,125251),y$.characters=e,y$}var b$,v$={};function x$(){if(b$)return v$;b$=1;var e=_Y(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,396,402,405,414,417,419,421,424,429,432,436,438,441,445,447,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,547,549,551,553,555,557,559,561,563,572,578,583,585,587,589,601,623,629,637,640,658,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1019,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7306,7545,7549,7566,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8124,8126,8140,8188,8526,8580,11361,11368,11370,11372,11379,11382,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11491,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42799,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42957,42959,42961,42963,42965,42967,42969,42971,42998,43859);return e.addRange(97,122).addRange(223,246).addRange(248,255).addRange(328,329).addRange(382,384).addRange(409,411).addRange(453,454).addRange(456,457).addRange(459,460).addRange(476,477).addRange(495,496).addRange(498,499).addRange(575,576).addRange(591,596).addRange(598,599).addRange(603,604).addRange(608,609).addRange(611,614).addRange(616,620).addRange(625,626).addRange(642,643).addRange(647,652).addRange(669,670).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1072,1119).addRange(1230,1231).addRange(1377,1415).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7829,7835).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151).addRange(8160,8167),e.addRange(8178,8180).addRange(8182,8183).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11520,11557).addRange(42899,42900).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(68976,68997).addRange(71872,71903).addRange(93792,93823).addRange(93883,93907).addRange(125218,125251),v$.characters=e,v$}var R$,j$={};function w$(){if(R$)return j$;R$=1;var e=_Y(45,1418,1470,5120,6150,8275,8315,8331,8722,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,68974,69293);return e.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),j$.characters=e,j$}var E$,S$={};function T$(){if(E$)return S$;E$=1;var e=_Y(173,847,1564,12644,65279,65440);return e.addRange(4447,4448).addRange(6068,6069).addRange(6155,6159).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(65024,65039).addRange(65520,65528).addRange(113824,113827).addRange(119155,119162).addRange(917504,921599),S$.characters=e,S$}var P$,A$={};function k$(){if(P$)return A$;P$=1;var e=_Y(329,1651,3959,3961,917505);return e.addRange(6051,6052).addRange(8298,8303).addRange(9001,9002),A$.characters=e,A$}var C$,_$={};function I$(){if(C$)return _$;C$=1;var e=_Y(94,96,168,175,180,890,1369,1471,1479,2364,2381,2417,2492,2509,2620,2637,2748,2765,2876,2893,2901,3021,3132,3149,3260,3277,3405,3530,3642,3662,3770,3893,3895,3897,4038,4151,4239,5940,6109,6752,6783,6964,6980,7142,7405,7412,8125,11823,12540,42607,42623,42993,43014,43052,43204,43347,43443,43456,43493,43766,64286,65342,65344,65392,65507,66272,68159,68942,69370,69702,69744,70003,70080,70477,70722,70726,71231,71467,72003,72160,72244,72263,72345,72767,73026,73111,73177,73562,90415,123566);return e.addRange(183,184).addRange(688,846).addRange(848,855).addRange(861,866).addRange(884,885).addRange(900,901).addRange(1155,1159).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1611,1618).addRange(1623,1624).addRange(1759,1760).addRange(1765,1766).addRange(1770,1772).addRange(1840,1866).addRange(1958,1968).addRange(2027,2037).addRange(2072,2073).addRange(2200,2207).addRange(2249,2258).addRange(2275,2302).addRange(2385,2388).addRange(2813,2815).addRange(3387,3388).addRange(3655,3660).addRange(3784,3788).addRange(3864,3865).addRange(3902,3903).addRange(3970,3972).addRange(3974,3975).addRange(4153,4154).addRange(4195,4196).addRange(4201,4205).addRange(4231,4237).addRange(4250,4251).addRange(4957,4959).addRange(5908,5909).addRange(6089,6099).addRange(6457,6459).addRange(6773,6780).addRange(6832,6846).addRange(6849,6859).addRange(6863,6877).addRange(6880,6891).addRange(7019,7027).addRange(7082,7083).addRange(7154,7155).addRange(7222,7223).addRange(7288,7293).addRange(7376,7400),e.addRange(7415,7417).addRange(7468,7530).addRange(7579,7614).addRange(7620,7631).addRange(7669,7679).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(11503,11505).addRange(12330,12335).addRange(12441,12444).addRange(42620,42621).addRange(42652,42653).addRange(42736,42737).addRange(42752,42785).addRange(42888,42890).addRange(43e3,43001).addRange(43232,43249).addRange(43307,43310).addRange(43643,43645).addRange(43711,43714).addRange(43867,43871).addRange(43881,43883).addRange(44012,44013).addRange(65056,65071).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(68152,68154).addRange(68325,68326).addRange(68898,68903).addRange(68969,68973).addRange(69373,69375).addRange(69446,69456).addRange(69506,69509).addRange(69817,69818).addRange(69939,69940).addRange(70090,70092).addRange(70197,70198).addRange(70377,70378).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70606,70608).addRange(70610,70611).addRange(70625,70626).addRange(70850,70851).addRange(71103,71104),e.addRange(71350,71351).addRange(71737,71738).addRange(71997,71998).addRange(73028,73029).addRange(73537,73538).addRange(78919,78933).addRange(92912,92916).addRange(92976,92982).addRange(93547,93548).addRange(94095,94111).addRange(94192,94193).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(122928,122989).addRange(123184,123190).addRange(123628,123631).addRange(124398,124399).addRange(125136,125142).addRange(125252,125254).addRange(125256,125258),_$.characters=e,_$}var D$,O$={};function N$(){if(D$)return O$;D$=1;var e=_Y(35,42,8205,8419,65039);return e.addRange(48,57).addRange(127462,127487).addRange(127995,127999).addRange(129456,129459).addRange(917536,917631),O$.characters=e,O$}var B$,M$={};function F$(){if(B$)return M$;B$=1;var e=_Y(9757,9977,127877,127943,128124,128143,128145,128170,128378,128400,128675,128704,128716,129292,129295,129318,129399,129467);return e.addRange(9994,9997).addRange(127938,127940).addRange(127946,127948).addRange(128066,128067).addRange(128070,128080).addRange(128102,128120).addRange(128129,128131).addRange(128133,128135).addRange(128372,128373).addRange(128405,128406).addRange(128581,128583).addRange(128587,128591).addRange(128692,128694).addRange(129304,129311).addRange(129328,129337).addRange(129340,129342).addRange(129461,129462).addRange(129464,129465).addRange(129485,129487).addRange(129489,129501).addRange(129731,129733).addRange(129776,129784),M$.characters=e,M$}var L$,U$={};function q$(){if(L$)return U$;L$=1;var e=_Y();return e.addRange(127995,127999),U$.characters=e,U$}var G$,W$={};function V$(){if(G$)return W$;G$=1;var e=_Y(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008,129736);return e.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127462,127487).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128728).addRange(128732,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784),W$.characters=e,W$}var H$,z$={};function K$(){if(H$)return z$;H$=1;var e=_Y(35,42,169,174,8252,8265,8482,8505,9e3,9167,9410,9654,9664,9742,9745,9752,9757,9760,9766,9770,9792,9794,9827,9832,9851,9881,9895,9928,9937,9981,9986,9989,9999,10002,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,126980,127183,127374,127514,127535,128391,128400,128424,128444,128481,128483,128488,128495,128499,128745,128752,129008,129736);return e.addRange(48,57).addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9732).addRange(9748,9749).addRange(9762,9763).addRange(9774,9775).addRange(9784,9786).addRange(9800,9811).addRange(9823,9824).addRange(9829,9830).addRange(9854,9855).addRange(9874,9879).addRange(9883,9884).addRange(9888,9889).addRange(9898,9899).addRange(9904,9905).addRange(9917,9918).addRange(9924,9925).addRange(9934,9935).addRange(9939,9940).addRange(9961,9962).addRange(9968,9973).addRange(9975,9978).addRange(9992,9997).addRange(10035,10036).addRange(10067,10069).addRange(10083,10084).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(127344,127345).addRange(127358,127359).addRange(127377,127386).addRange(127462,127487).addRange(127489,127490).addRange(127538,127546).addRange(127568,127569).addRange(127744,127777).addRange(127780,127891).addRange(127894,127895).addRange(127897,127899).addRange(127902,127984).addRange(127987,127989).addRange(127991,128253),e.addRange(128255,128317).addRange(128329,128334).addRange(128336,128359).addRange(128367,128368).addRange(128371,128378).addRange(128394,128397).addRange(128405,128406).addRange(128420,128421).addRange(128433,128434).addRange(128450,128452).addRange(128465,128467).addRange(128476,128478).addRange(128506,128591).addRange(128640,128709).addRange(128715,128722).addRange(128725,128728).addRange(128732,128741).addRange(128747,128748).addRange(128755,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784),z$.characters=e,z$}var X$,J$={};function Y$(){if(X$)return J$;X$=1;var e=_Y(169,174,8252,8265,8482,8505,9e3,9167,9410,9654,9664,9742,9745,9752,9757,9760,9766,9770,9792,9794,9827,9832,9851,9881,9895,9928,9937,9981,9986,9989,9999,10002,10004,10006,10013,10017,10024,10052,10055,10060,10062,10071,10145,10160,10175,11088,11093,12336,12349,12951,12953,126980,127168,127374,127514,127535,128391,128400,128424,128444,128481,128483,128488,128495,128499,128745);return e.addRange(8596,8601).addRange(8617,8618).addRange(8986,8987).addRange(9193,9203).addRange(9208,9210).addRange(9642,9643).addRange(9723,9726).addRange(9728,9732).addRange(9748,9749).addRange(9762,9763).addRange(9774,9775).addRange(9784,9786).addRange(9800,9811).addRange(9823,9824).addRange(9829,9830).addRange(9854,9855).addRange(9874,9879).addRange(9883,9884).addRange(9888,9889).addRange(9898,9899).addRange(9904,9905).addRange(9917,9918).addRange(9924,9925).addRange(9934,9935).addRange(9939,9940).addRange(9961,9962).addRange(9968,9973).addRange(9975,9978).addRange(9992,9997).addRange(10035,10036).addRange(10067,10069).addRange(10083,10084).addRange(10133,10135).addRange(10548,10549).addRange(11013,11015).addRange(11035,11036).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127183,127184).addRange(127222,127231).addRange(127344,127345).addRange(127358,127359).addRange(127377,127386).addRange(127406,127461).addRange(127489,127503).addRange(127538,127546).addRange(127548,127551).addRange(127561,127583).addRange(127590,127777).addRange(127780,127891),e.addRange(127894,127895).addRange(127897,127899).addRange(127902,127984).addRange(127987,127989).addRange(127991,127994).addRange(128e3,128253).addRange(128255,128317).addRange(128329,128334).addRange(128336,128359).addRange(128367,128368).addRange(128371,128378).addRange(128394,128397).addRange(128405,128406).addRange(128420,128421).addRange(128433,128434).addRange(128450,128452).addRange(128465,128467).addRange(128476,128478).addRange(128506,128591).addRange(128640,128709).addRange(128715,128722).addRange(128725,128741).addRange(128747,128752).addRange(128755,128767).addRange(128986,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129212,129215).addRange(129218,129231).addRange(129241,129279).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129624,129631).addRange(129646,129791).addRange(130048,131069),J$.characters=e,J$}var $$,Q$={};function Z$(){if($$)return Q$;$$=1;var e=_Y(183,1600,2042,2673,2811,2901,3654,3782,6154,6211,6823,7222,7291,12293,40981,42508,43471,43494,43632,43741,65392,68942,68970,68975,70199,70493,72344,73177,94179,124399);return e.addRange(720,721).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(43763,43764).addRange(67457,67458).addRange(70610,70611).addRange(71110,71112).addRange(92994,92995).addRange(94176,94177).addRange(94194,94195).addRange(123196,123197).addRange(125252,125254),Q$.characters=e,Q$}var eQ,tQ={};function rQ(){if(eQ)return tQ;eQ=1;var e=_Y(908,1470,1472,1475,1478,1563,1758,1769,1808,1969,2074,2084,2088,2142,2363,2482,2493,2510,2563,2654,2678,2691,2761,2768,2809,2877,2880,2947,2972,3007,3024,3133,3265,3389,3517,3716,3749,3773,3782,3894,3896,3967,3973,4145,4152,4295,4301,4696,4800,6070,6314,6464,6743,6753,7143,7150,7379,7393,7418,8025,8027,8029,11559,11565,42611,43346,43597,43697,43712,43714,64285,64318,65952,67592,67644,69293,69632,69749,69932,70079,70280,70461,70463,70480,70539,70542,70583,70602,70609,70725,70749,70841,70846,70849,71102,71230,71340,71454,71462,71736,71739,71945,72192,72272,72343,72545,72549,72551,72766,72873,72881,72884,73030,73110,73112,73648,92917,110898,110933,113820,113823,119365,119970,119995,120134,123647,124415,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590,129008,129736);return e.addRange(32,126).addRange(160,172).addRange(174,767).addRange(880,887).addRange(890,895).addRange(900,906).addRange(910,929).addRange(931,1154).addRange(1162,1327).addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(1488,1514).addRange(1519,1524).addRange(1542,1551).addRange(1565,1610).addRange(1632,1647).addRange(1649,1749).addRange(1765,1766).addRange(1774,1805).addRange(1810,1839).addRange(1869,1957).addRange(1984,2026).addRange(2036,2042).addRange(2046,2069).addRange(2096,2110).addRange(2112,2136).addRange(2144,2154).addRange(2160,2191).addRange(2208,2249).addRange(2307,2361).addRange(2365,2368).addRange(2377,2380).addRange(2382,2384).addRange(2392,2401).addRange(2404,2432).addRange(2434,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2495,2496).addRange(2503,2504).addRange(2507,2508).addRange(2524,2525).addRange(2527,2529).addRange(2534,2557).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600),e.addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2624).addRange(2649,2652).addRange(2662,2671).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2749,2752).addRange(2763,2764).addRange(2784,2785).addRange(2790,2801).addRange(2818,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2887,2888).addRange(2891,2892).addRange(2908,2909).addRange(2911,2913).addRange(2918,2935).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3046,3066).addRange(3073,3075).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3137,3140).addRange(3160,3162).addRange(3164,3165).addRange(3168,3169),e.addRange(3174,3183).addRange(3191,3200).addRange(3202,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3261,3262).addRange(3267,3268).addRange(3292,3294).addRange(3296,3297).addRange(3302,3311).addRange(3313,3315).addRange(3330,3340).addRange(3342,3344).addRange(3346,3386).addRange(3391,3392).addRange(3398,3400).addRange(3402,3404).addRange(3406,3407).addRange(3412,3414).addRange(3416,3425).addRange(3430,3455).addRange(3458,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3536,3537).addRange(3544,3550).addRange(3558,3567).addRange(3570,3572).addRange(3585,3632).addRange(3634,3635).addRange(3647,3654).addRange(3663,3675).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3792,3801).addRange(3804,3807).addRange(3840,3863).addRange(3866,3892).addRange(3898,3911).addRange(3913,3948).addRange(3976,3980).addRange(4030,4037).addRange(4039,4044),e.addRange(4046,4058).addRange(4096,4140).addRange(4155,4156).addRange(4159,4183).addRange(4186,4189).addRange(4193,4208).addRange(4213,4225).addRange(4227,4228).addRange(4231,4236).addRange(4238,4252).addRange(4254,4293).addRange(4304,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4960,4988).addRange(4992,5017).addRange(5024,5109).addRange(5112,5117).addRange(5120,5788).addRange(5792,5880).addRange(5888,5905).addRange(5919,5937).addRange(5941,5942).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6078,6085).addRange(6087,6088).addRange(6100,6108).addRange(6112,6121).addRange(6128,6137).addRange(6144,6154).addRange(6160,6169).addRange(6176,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6435,6438),e.addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6468,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6678).addRange(6681,6682).addRange(6686,6741).addRange(6755,6756).addRange(6765,6770).addRange(6784,6793).addRange(6800,6809).addRange(6816,6829).addRange(6916,6963).addRange(6974,6977).addRange(6981,6988).addRange(6990,7018).addRange(7028,7039).addRange(7042,7073).addRange(7078,7079).addRange(7086,7141).addRange(7146,7148).addRange(7164,7211).addRange(7220,7221).addRange(7227,7241).addRange(7245,7306).addRange(7312,7354).addRange(7357,7367).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(8192,8202).addRange(8208,8231).addRange(8239,8287),e.addRange(8304,8305).addRange(8308,8334).addRange(8336,8348).addRange(8352,8385).addRange(8448,8587).addRange(8592,9257).addRange(9280,9290).addRange(9312,11123).addRange(11126,11502).addRange(11506,11507).addRange(11513,11557).addRange(11568,11623).addRange(11631,11632).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11776,11869).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12329).addRange(12336,12351).addRange(12353,12438).addRange(12443,12543).addRange(12549,12591).addRange(12593,12686).addRange(12688,12773).addRange(12783,12830).addRange(12832,42124).addRange(42128,42182).addRange(42192,42539).addRange(42560,42606).addRange(42622,42653).addRange(42656,42735).addRange(42738,42743).addRange(42752,42972).addRange(42993,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43044).addRange(43047,43051).addRange(43056,43065).addRange(43072,43127).addRange(43136,43203).addRange(43214,43225),e.addRange(43250,43262).addRange(43264,43301).addRange(43310,43334).addRange(43359,43388).addRange(43395,43442).addRange(43444,43445).addRange(43450,43451).addRange(43454,43455).addRange(43457,43469).addRange(43471,43481).addRange(43486,43492).addRange(43494,43518).addRange(43520,43560).addRange(43567,43568).addRange(43571,43572).addRange(43584,43586).addRange(43588,43595).addRange(43600,43609).addRange(43612,43643).addRange(43645,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43755).addRange(43758,43765).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43883).addRange(43888,44004).addRange(44006,44007).addRange(44009,44012).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64975).addRange(65008,65023).addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131),e.addRange(65136,65140).addRange(65142,65276).addRange(65281,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65934).addRange(65936,65948).addRange(66e3,66044).addRange(66176,66204).addRange(66208,66256).addRange(66273,66299).addRange(66304,66339).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66463,66499).addRange(66504,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66927,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67008,67059).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461),e.addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67671,67742).addRange(67751,67759).addRange(67808,67826).addRange(67828,67829).addRange(67835,67867).addRange(67871,67897).addRange(67903,67929).addRange(67968,68023).addRange(68028,68047).addRange(68050,68096).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68160,68168).addRange(68176,68184).addRange(68192,68255).addRange(68288,68324).addRange(68331,68342).addRange(68352,68405).addRange(68409,68437).addRange(68440,68466).addRange(68472,68497).addRange(68505,68508).addRange(68521,68527).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68858,68899).addRange(68912,68921).addRange(68928,68965).addRange(68974,68997).addRange(69006,69007).addRange(69216,69246).addRange(69248,69289).addRange(69296,69297).addRange(69314,69319).addRange(69328,69336).addRange(69376,69415).addRange(69424,69445).addRange(69457,69465).addRange(69488,69505).addRange(69510,69513).addRange(69552,69579).addRange(69600,69622).addRange(69634,69687),e.addRange(69703,69709).addRange(69714,69743).addRange(69745,69746).addRange(69762,69810).addRange(69815,69816).addRange(69819,69820).addRange(69822,69825).addRange(69840,69864).addRange(69872,69881).addRange(69891,69926).addRange(69942,69959).addRange(69968,70002).addRange(70004,70006).addRange(70018,70069).addRange(70081,70088).addRange(70093,70094).addRange(70096,70111).addRange(70113,70132).addRange(70144,70161).addRange(70163,70190).addRange(70194,70195).addRange(70200,70205).addRange(70207,70208).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313).addRange(70320,70366).addRange(70368,70370).addRange(70384,70393).addRange(70402,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70465,70468).addRange(70471,70472).addRange(70475,70476).addRange(70493,70499).addRange(70528,70537).addRange(70544,70581).addRange(70585,70586).addRange(70604,70605).addRange(70611,70613).addRange(70615,70616).addRange(70656,70711).addRange(70720,70721).addRange(70727,70747).addRange(70751,70753),e.addRange(70784,70831).addRange(70833,70834).addRange(70843,70844).addRange(70852,70855).addRange(70864,70873).addRange(71040,71086).addRange(71088,71089).addRange(71096,71099).addRange(71105,71131).addRange(71168,71218).addRange(71227,71228).addRange(71233,71236).addRange(71248,71257).addRange(71264,71276).addRange(71296,71338).addRange(71342,71343).addRange(71352,71353).addRange(71360,71369).addRange(71376,71395).addRange(71424,71450).addRange(71456,71457).addRange(71472,71494).addRange(71680,71726).addRange(71840,71922).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(71985,71989).addRange(71991,71992).addRange(71999,72002).addRange(72004,72006).addRange(72016,72025).addRange(72096,72103).addRange(72106,72147).addRange(72156,72159).addRange(72161,72164).addRange(72203,72242).addRange(72249,72250).addRange(72255,72262).addRange(72279,72280).addRange(72284,72329).addRange(72346,72354).addRange(72368,72440).addRange(72448,72457).addRange(72640,72673).addRange(72688,72697).addRange(72704,72712).addRange(72714,72751).addRange(72768,72773).addRange(72784,72812),e.addRange(72816,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73107,73108).addRange(73120,73129).addRange(73136,73179).addRange(73184,73193).addRange(73440,73458).addRange(73461,73464).addRange(73474,73488).addRange(73490,73525).addRange(73534,73535).addRange(73539,73561).addRange(73664,73713).addRange(73727,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075).addRange(77712,77810).addRange(77824,78895).addRange(78913,78918).addRange(78944,82938).addRange(82944,83526).addRange(90368,90397).addRange(90410,90412).addRange(90416,90425).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92782,92862).addRange(92864,92873).addRange(92880,92909).addRange(92928,92975).addRange(92983,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071).addRange(93504,93561).addRange(93760,93850).addRange(93856,93880).addRange(93883,93907).addRange(93952,94026).addRange(94032,94087).addRange(94099,94111).addRange(94176,94179),e.addRange(94194,94198).addRange(94208,101589).addRange(101631,101662).addRange(101760,101874).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(117760,118012).addRange(118016,118451).addRange(118458,118480).addRange(118496,118512).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119488,119507).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,121343).addRange(121399,121402),e.addRange(121453,121460).addRange(121462,121475).addRange(121477,121483).addRange(122624,122654).addRange(122661,122666).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123200,123209).addRange(123214,123215).addRange(123536,123565).addRange(123584,123627).addRange(123632,123641).addRange(124112,124139).addRange(124144,124153).addRange(124368,124397).addRange(124400,124410).addRange(124608,124638).addRange(124640,124642).addRange(124644,124645).addRange(124647,124653).addRange(124656,124660).addRange(124670,124671).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125127,125135).addRange(125184,125251).addRange(125264,125273).addRange(125278,125279).addRange(126065,126132).addRange(126209,126269).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651),e.addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128728).addRange(128732,128748).addRange(128752,128764).addRange(128768,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129211).addRange(129216,129217).addRange(129232,129240).addRange(129280,129623).addRange(129632,129645).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784).addRange(129792,129938).addRange(129940,130042).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041),tQ.characters=e,tQ}var aQ,nQ={};function sQ(){if(aQ)return nQ;aQ=1;var e=_Y(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2494,2509,2519,2558,2620,2641,2677,2748,2765,2817,2876,2893,2946,3006,3008,3021,3031,3072,3076,3132,3201,3260,3266,3390,3405,3415,3457,3530,3535,3542,3551,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,7142,7149,7405,7412,8204,11647,43010,43014,43019,43052,43263,43347,43443,43456,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70080,70095,70206,70209,70367,70462,70464,70477,70487,70584,70594,70597,70610,70726,70750,70832,70842,70845,71087,71229,71339,71341,71453,71455,71984,72003,72160,72263,72544,72550,72767,73018,73031,73109,73111,73562,78912,94031,94180,121461,121476,123023,123566,124643,124646,124661);return e.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2199,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2878,2879).addRange(2881,2884).addRange(2901,2903).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3263,3264).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3298,3299),e.addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427).addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3790).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5909).addRange(5938,5940).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6877).addRange(6880,6891).addRange(6912,6915).addRange(6964,6973).addRange(6978,6980).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7085).addRange(7144,7145).addRange(7151,7155),e.addRange(7212,7219).addRange(7222,7223).addRange(7376,7378).addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(65438,65439).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(68969,68973).addRange(69291,69292).addRange(69370,69375).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818),e.addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017).addRange(70070,70078).addRange(70089,70092).addRange(70191,70193).addRange(70196,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70587,70592).addRange(70599,70601).addRange(70606,70608).addRange(70625,70626).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71351).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71998).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72546,72548).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014),e.addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(73472,73473).addRange(73526,73530).addRange(73536,73538).addRange(78919,78933).addRange(90398,90409).addRange(90413,90415).addRange(92912,92916).addRange(92976,92982).addRange(94095,94098).addRange(94192,94193).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(124140,124143).addRange(124398,124399).addRange(124654,124655).addRange(125136,125142).addRange(125252,125258).addRange(917536,917631).addRange(917760,917999),nQ.characters=e,nQ}var oQ,iQ={};function dQ(){if(oQ)return iQ;oQ=1;var e=_Y();return e.addRange(48,57).addRange(65,70).addRange(97,102).addRange(65296,65305).addRange(65313,65318).addRange(65345,65350),iQ.characters=e,iQ}var cQ,lQ={};function uQ(){if(cQ)return lQ;cQ=1;var e=_Y(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,43052,43259,64318,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70280,70480,70487,70539,70542,70594,70597,70855,71236,71945,72263,72349,73018,73648,110898,110933,119970,119995,120134,121461,121476,123023,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(890,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2191).addRange(2199,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),e.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),e.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3164,3165).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3292,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673),e.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109),e.addRange(6112,6121).addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6877).addRange(6880,6891).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7306).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8204,8205).addRange(8255,8256),e.addRange(8336,8348).addRange(8400,8412).addRange(8421,8432).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12447).addRange(12449,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42972).addRange(42993,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255).addRange(43261,43309),e.addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65136,65140).addRange(65142,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65381,65470).addRange(65474,65479),e.addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67008,67059).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897),e.addRange(67904,67929).addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(68928,68965).addRange(68969,68973).addRange(68975,68997).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69314,69319).addRange(69370,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70206,70209).addRange(70272,70278).addRange(70282,70285),e.addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70528,70537).addRange(70544,70581).addRange(70583,70592).addRange(70599,70602).addRange(70604,70611).addRange(70625,70626).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71376,71395).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103).addRange(72106,72151),e.addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72544,72551).addRange(72640,72672).addRange(72688,72697).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73136,73179).addRange(73184,73193).addRange(73440,73462).addRange(73472,73488).addRange(73490,73530).addRange(73534,73538).addRange(73552,73562).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78912,78933).addRange(78944,82938).addRange(82944,83526).addRange(90368,90425).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916).addRange(92928,92982),e.addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93504,93548).addRange(93552,93561).addRange(93760,93823).addRange(93856,93880).addRange(93883,93907).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94198).addRange(94208,101589).addRange(101631,101662).addRange(101760,101874).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113821,113822).addRange(118e3,118009).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121),e.addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122661,122666).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566).addRange(123584,123641).addRange(124112,124153).addRange(124368,124410).addRange(124608,124638).addRange(124640,124661).addRange(124670,124671).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519),e.addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041).addRange(917760,917999),lQ.characters=e,lQ}var pQ,fQ={};function gQ(){if(pQ)return fQ;pQ=1;var e=_Y(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70539,70542,70583,70609,70611,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73474,73648,94032,94179,110898,110933,119970,119995,120134,123214,124400,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2191).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),e.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3164,3165).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3292,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515),e.addRange(3520,3526).addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264),e.addRange(6272,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7306).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623),e.addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12443,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42972).addRange(42993,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595),e.addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256),e.addRange(66304,66335).addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67008,67059).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67904,67929).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497),e.addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(68938,68965).addRange(68975,68997).addRange(69248,69289).addRange(69296,69297).addRange(69314,69319).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70207,70208).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70528,70537).addRange(70544,70581).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723),e.addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72640,72672).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73136,73179).addRange(73440,73458).addRange(73476,73488).addRange(73490,73523).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78913,78918).addRange(78944,82938).addRange(82944,83526).addRange(90368,90397).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93504,93548).addRange(93760,93823).addRange(93856,93880).addRange(93883,93907).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94194,94198).addRange(94208,101589).addRange(101631,101662),e.addRange(101760,101874).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122661,122666).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124112,124139).addRange(124368,124397).addRange(124608,124638).addRange(124640,124642).addRange(124644,124645),e.addRange(124647,124653).addRange(124656,124660).addRange(124670,124671).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041),fQ.characters=e,fQ}var mQ,yQ={};function hQ(){if(mQ)return yQ;mQ=1;var e=_Y(94180);return e.addRange(12294,12295).addRange(12321,12329).addRange(12344,12346).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94194,94198).addRange(94208,101589).addRange(101631,101662).addRange(101760,101874).addRange(110960,111355).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041),yQ.characters=e,yQ}var bQ,vQ={};function xQ(){if(bQ)return vQ;bQ=1;var e=_Y(12783);return e.addRange(12272,12273).addRange(12276,12285),vQ.characters=e,vQ}var RQ,jQ={};function wQ(){if(RQ)return jQ;RQ=1;var e=_Y();return e.addRange(12274,12275),jQ.characters=e,jQ}var EQ,SQ={};function TQ(){if(EQ)return SQ;EQ=1;var e=_Y();return e.addRange(8204,8205),SQ.characters=e,SQ}var PQ,AQ={};function kQ(){if(PQ)return AQ;PQ=1;var e=_Y(6586,43705);return e.addRange(3648,3652).addRange(3776,3780).addRange(6581,6583).addRange(43701,43702).addRange(43707,43708),AQ.characters=e,AQ}var CQ,_Q={};function IQ(){if(CQ)return _Q;CQ=1;var e=_Y(170,181,186,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,837,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7306,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8305,8319,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42957,42959,42961,42963,42965,42967,42969,42971,42998,67456,119995,120779);return e.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(662,696).addRange(704,705).addRange(736,740).addRange(890,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4348,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7615).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),e.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8336,8348).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(8560,8575).addRange(9424,9449).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11389).addRange(11491,11492).addRange(11520,11557).addRange(42651,42653).addRange(42799,42801).addRange(42863,42872).addRange(42899,42901).addRange(42993,42996).addRange(43e3,43002).addRange(43824,43866).addRange(43868,43881).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67459,67461).addRange(67463,67504).addRange(67506,67514).addRange(68800,68850).addRange(68976,68997).addRange(71872,71903).addRange(93792,93823).addRange(93883,93907).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171),e.addRange(120198,120223).addRange(120250,120275).addRange(120302,120327).addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596).addRange(120598,120603).addRange(120630,120654).addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(122661,122666).addRange(122928,122989).addRange(125218,125251),_Q.characters=e,_Q}var DQ,OQ={};function NQ(){if(DQ)return OQ;DQ=1;var e=_Y(43,94,124,126,172,177,215,247,981,8214,8256,8260,8274,8417,8450,8455,8469,8484,8523,8669,9084,9143,9168,9698,9700,9792,9794,64297,65128,65291,65340,65342,65372,65374,65506,118512,119970,119995,120134,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(60,62).addRange(976,978).addRange(1008,1009).addRange(1012,1014).addRange(1542,1544).addRange(8242,8244).addRange(8289,8292).addRange(8314,8318).addRange(8330,8334).addRange(8400,8412).addRange(8421,8422).addRange(8427,8431).addRange(8458,8467).addRange(8472,8477).addRange(8488,8489).addRange(8492,8493).addRange(8495,8497).addRange(8499,8504).addRange(8508,8521).addRange(8592,8615).addRange(8617,8622).addRange(8624,8625).addRange(8630,8631).addRange(8636,8667).addRange(8676,8677).addRange(8692,8959).addRange(8968,8971).addRange(8992,8993).addRange(9115,9141).addRange(9180,9186).addRange(9632,9633).addRange(9646,9655).addRange(9660,9665).addRange(9670,9671).addRange(9674,9675).addRange(9679,9683).addRange(9703,9708).addRange(9720,9727).addRange(9733,9734).addRange(9824,9827).addRange(9837,9839).addRange(10176,10239).addRange(10496,11007).addRange(11056,11076).addRange(11079,11084).addRange(65121,65126).addRange(65308,65310).addRange(65513,65516).addRange(69006,69007).addRange(119808,119892).addRange(119894,119964),e.addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705).addRange(129232,129240),OQ.characters=e,OQ}var BQ,MQ={};function FQ(){if(BQ)return MQ;BQ=1;var e=_Y();return e.addRange(64976,65007).addRange(65534,65535).addRange(131070,131071).addRange(196606,196607).addRange(262142,262143).addRange(327678,327679).addRange(393214,393215).addRange(458750,458751).addRange(524286,524287).addRange(589822,589823).addRange(655358,655359).addRange(720894,720895).addRange(786430,786431).addRange(851966,851967).addRange(917502,917503).addRange(983038,983039).addRange(1048574,1048575).addRange(1114110,1114111),MQ.characters=e,MQ}var LQ,UQ={};function qQ(){if(LQ)return UQ;LQ=1;var e=_Y(96,169,174,182,187,191,215,247,12336);return e.addRange(33,47).addRange(58,64).addRange(91,94).addRange(123,126).addRange(161,167).addRange(171,172).addRange(176,177).addRange(8208,8231).addRange(8240,8254).addRange(8257,8275).addRange(8277,8286).addRange(8592,9311).addRange(9472,10101).addRange(10132,11263).addRange(11776,11903).addRange(12289,12291).addRange(12296,12320).addRange(64830,64831).addRange(65093,65094),UQ.characters=e,UQ}var GQ,WQ={};function VQ(){if(GQ)return WQ;GQ=1;var e=_Y(32,133);return e.addRange(9,13).addRange(8206,8207).addRange(8232,8233),WQ.characters=e,WQ}var HQ,zQ={};function KQ(){if(HQ)return zQ;HQ=1;var e=_Y(34,39,171,187,11842,65282,65287);return e.addRange(8216,8223).addRange(8249,8250).addRange(12300,12303).addRange(12317,12319).addRange(65089,65092).addRange(65378,65379),zQ.characters=e,zQ}var XQ,JQ={};function YQ(){if(XQ)return JQ;XQ=1;var e=_Y();return e.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245),JQ.characters=e,JQ}var $Q,QQ={};function ZQ(){if($Q)return QQ;$Q=1;var e=_Y();return e.addRange(127462,127487),QQ.characters=e,QQ}var eZ,tZ={};function rZ(){if(eZ)return tZ;eZ=1;var e=_Y(33,46,63,1417,1748,2041,2103,2105,4962,5742,6147,6153,8228,11822,11836,12290,42239,42739,42743,43311,44011,65042,65106,65281,65294,65311,65377,70093,70313,72004,72006,92917,92996,93848,113823,121480);return e.addRange(1565,1567).addRange(1792,1794).addRange(2109,2110).addRange(2404,2405).addRange(4170,4171).addRange(4967,4968).addRange(5941,5942).addRange(6100,6101).addRange(6468,6469).addRange(6824,6827).addRange(6990,6991).addRange(7002,7003).addRange(7006,7007).addRange(7037,7039).addRange(7227,7228).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11513,11515).addRange(11859,11860).addRange(42510,42511).addRange(43126,43127).addRange(43214,43215).addRange(43464,43465).addRange(43613,43615).addRange(43760,43761).addRange(65045,65046).addRange(65110,65111).addRange(68182,68183).addRange(69461,69465).addRange(69510,69513).addRange(69703,69704).addRange(69822,69825).addRange(69953,69955).addRange(70085,70086).addRange(70110,70111).addRange(70200,70201).addRange(70203,70204).addRange(70612,70613).addRange(70731,70732).addRange(71106,71107).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72769,72770).addRange(73463,73464).addRange(73539,73540).addRange(92782,92783).addRange(92983,92984),e.addRange(93550,93551),tZ.characters=e,tZ}var aZ,nZ={};function sZ(){if(aZ)return nZ;aZ=1;var e=_Y(303,585,616,669,690,1011,1110,1112,7522,7574,7588,7592,7725,7883,8305,11388,122650,122984);return e.addRange(105,106).addRange(8520,8521).addRange(119842,119843).addRange(119894,119895).addRange(119946,119947).addRange(119998,119999).addRange(120050,120051).addRange(120102,120103).addRange(120154,120155).addRange(120206,120207).addRange(120258,120259).addRange(120310,120311).addRange(120362,120363).addRange(120414,120415).addRange(120466,120467).addRange(122956,122957),nZ.characters=e,nZ}var oZ,iZ={};function dZ(){if(oZ)return iZ;oZ=1;var e=_Y(33,44,46,63,894,903,1417,1475,1548,1563,1748,1804,2142,3848,5742,6106,8228,11822,11836,11841,11852,43311,43743,44011,65042,65281,65292,65294,65311,65377,65380,66463,66512,67671,67871,70093,70313,72004,72006,72817,92917,92996,113823);return e.addRange(58,59).addRange(1565,1567).addRange(1792,1802).addRange(2040,2041).addRange(2096,2101).addRange(2103,2110).addRange(2404,2405).addRange(3674,3675).addRange(3853,3858).addRange(4170,4171).addRange(4961,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6146,6149).addRange(6152,6153).addRange(6468,6469).addRange(6824,6827).addRange(6990,6991).addRange(7002,7003).addRange(7005,7007).addRange(7037,7039).addRange(7227,7231).addRange(7294,7295).addRange(8252,8253).addRange(8263,8265).addRange(11513,11515).addRange(11854,11855).addRange(11859,11860).addRange(12289,12290).addRange(42238,42239).addRange(42509,42511).addRange(42739,42743).addRange(43126,43127).addRange(43214,43215).addRange(43463,43465).addRange(43613,43615).addRange(43760,43761).addRange(65045,65046).addRange(65104,65106).addRange(65108,65111).addRange(65306,65307).addRange(68182,68183).addRange(68336,68341).addRange(68410,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69822,69825).addRange(69953,69955),e.addRange(70085,70086).addRange(70110,70111).addRange(70200,70204).addRange(70612,70613).addRange(70731,70733).addRange(70746,70747).addRange(71106,71109).addRange(71113,71127).addRange(71233,71234).addRange(71484,71486).addRange(72258,72259).addRange(72347,72348).addRange(72353,72354).addRange(72769,72771).addRange(73463,73464).addRange(73539,73540).addRange(74864,74868).addRange(92782,92783).addRange(92983,92985).addRange(93550,93551).addRange(93847,93848).addRange(121479,121482),iZ.characters=e,iZ}var cZ,lZ={};function uZ(){if(cZ)return lZ;cZ=1;var e=_Y(64017,64031,64033);return e.addRange(13312,19903).addRange(19968,40959).addRange(64014,64015).addRange(64019,64020).addRange(64035,64036).addRange(64039,64041).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(196608,201546).addRange(201552,210041),lZ.characters=e,lZ}var pZ,fZ={};function gZ(){if(pZ)return fZ;pZ=1;var e=_Y(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7305,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42958,42960,42962,42964,42966,42968,42970,42972,42997,119964,119970,120134,120778);return e.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(8544,8559),e.addRange(9398,9423).addRange(11264,11311).addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(42955,42956).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(68944,68965).addRange(71840,71871).addRange(93760,93791).addRange(93856,93880).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217).addRange(127280,127305),e.addRange(127312,127337).addRange(127344,127369),fZ.characters=e,fZ}var mZ,yZ={};function hZ(){if(mZ)return yZ;mZ=1;var e=_Y(6159);return e.addRange(6155,6157).addRange(65024,65039).addRange(917760,917999),yZ.characters=e,yZ}var bZ,vZ={};function xZ(){if(bZ)return vZ;bZ=1;var e=_Y(32,133,160,5760,8239,8287,12288);return e.addRange(9,13).addRange(8192,8202).addRange(8232,8233),vZ.characters=e,vZ}var RZ,jZ={};function wZ(){if(RZ)return jZ;RZ=1;var e=_Y(95,170,181,183,186,748,750,895,908,1369,1471,1479,1791,2042,2045,2482,2519,2556,2558,2620,2641,2654,2768,2929,2972,3024,3031,3517,3530,3542,3716,3749,3782,3840,3893,3895,3897,4038,4295,4301,4696,4800,6103,6823,8025,8027,8029,8126,8276,8305,8319,8417,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,43052,43259,64318,65137,65139,65143,65145,65147,65149,65343,66045,66272,67592,67644,68159,69415,69826,70006,70108,70280,70480,70487,70539,70542,70594,70597,70855,71236,71945,72263,72349,73018,73648,110898,110933,119970,119995,120134,121461,121476,123023,123214,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(48,57).addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(768,884).addRange(886,887).addRange(891,893).addRange(902,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1155,1159).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1488,1514).addRange(1519,1522).addRange(1552,1562).addRange(1568,1641).addRange(1646,1747).addRange(1749,1756).addRange(1759,1768).addRange(1770,1788).addRange(1808,1866).addRange(1869,1969).addRange(1984,2037).addRange(2048,2093).addRange(2112,2139).addRange(2144,2154).addRange(2160,2183).addRange(2185,2191).addRange(2199,2273).addRange(2275,2403).addRange(2406,2415).addRange(2417,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525),e.addRange(2527,2531).addRange(2534,2545).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2677).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2799).addRange(2809,2815).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2927).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001),e.addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3055).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3164,3165).addRange(3168,3171).addRange(3174,3183).addRange(3200,3203).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3292,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3406).addRange(3412,3415).addRange(3423,3427).addRange(3430,3439).addRange(3450,3455).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3571).addRange(3585,3642).addRange(3648,3662).addRange(3664,3673),e.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807).addRange(3864,3865).addRange(3872,3881).addRange(3902,3911).addRange(3913,3948).addRange(3953,3972).addRange(3974,3991).addRange(3993,4028).addRange(4096,4169).addRange(4176,4253).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4959).addRange(4969,4977).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5909).addRange(5919,5940).addRange(5952,5971).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003).addRange(6016,6099).addRange(6108,6109),e.addRange(6112,6121).addRange(6155,6157).addRange(6159,6169).addRange(6176,6264).addRange(6272,6314).addRange(6320,6389).addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6470,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6656,6683).addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6832,6845).addRange(6847,6877).addRange(6880,6891).addRange(6912,6988).addRange(6992,7001).addRange(7019,7027).addRange(7040,7155).addRange(7168,7223).addRange(7232,7241).addRange(7245,7293).addRange(7296,7306).addRange(7312,7354).addRange(7357,7359).addRange(7376,7378).addRange(7380,7418).addRange(7424,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8204,8205).addRange(8255,8256),e.addRange(8336,8348).addRange(8400,8412).addRange(8421,8432).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11507).addRange(11520,11557).addRange(11568,11623).addRange(11647,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(11744,11775).addRange(12293,12295).addRange(12321,12335).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12441,12442).addRange(12445,12447).addRange(12449,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42539).addRange(42560,42607).addRange(42612,42621).addRange(42623,42737).addRange(42775,42783).addRange(42786,42888).addRange(42891,42972).addRange(42993,43047).addRange(43072,43123).addRange(43136,43205).addRange(43216,43225).addRange(43232,43255),e.addRange(43261,43309).addRange(43312,43347).addRange(43360,43388).addRange(43392,43456).addRange(43471,43481).addRange(43488,43518).addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43616,43638).addRange(43642,43714).addRange(43739,43741).addRange(43744,43759).addRange(43762,43766).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44010).addRange(44012,44013).addRange(44016,44025).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64285,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65024,65039).addRange(65056,65071).addRange(65075,65076).addRange(65101,65103).addRange(65151,65276).addRange(65296,65305).addRange(65313,65338).addRange(65345,65370).addRange(65381,65470),e.addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66378).addRange(66384,66426).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66720,66729).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67008,67059).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861),e.addRange(67872,67897).addRange(67904,67929).addRange(67968,68023).addRange(68030,68031).addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68326).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68903).addRange(68912,68921).addRange(68928,68965).addRange(68969,68973).addRange(68975,68997).addRange(69248,69289).addRange(69291,69292).addRange(69296,69297).addRange(69314,69319).addRange(69370,69404).addRange(69424,69456).addRange(69488,69509).addRange(69552,69572).addRange(69600,69622).addRange(69632,69702).addRange(69734,69749).addRange(69759,69818).addRange(69840,69864).addRange(69872,69881).addRange(69888,69940).addRange(69942,69951).addRange(69956,69959).addRange(69968,70003).addRange(70016,70084).addRange(70089,70092).addRange(70094,70106).addRange(70144,70161).addRange(70163,70199).addRange(70206,70209).addRange(70272,70278),e.addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70378).addRange(70384,70393).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(70528,70537).addRange(70544,70581).addRange(70583,70592).addRange(70599,70602).addRange(70604,70611).addRange(70625,70626).addRange(70656,70730).addRange(70736,70745).addRange(70750,70753).addRange(70784,70853).addRange(70864,70873).addRange(71040,71093).addRange(71096,71104).addRange(71128,71133).addRange(71168,71232).addRange(71248,71257).addRange(71296,71352).addRange(71360,71369).addRange(71376,71395).addRange(71424,71450).addRange(71453,71467).addRange(71472,71481).addRange(71488,71494).addRange(71680,71738).addRange(71840,71913).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72003).addRange(72016,72025).addRange(72096,72103),e.addRange(72106,72151).addRange(72154,72161).addRange(72163,72164).addRange(72192,72254).addRange(72272,72345).addRange(72368,72440).addRange(72544,72551).addRange(72640,72672).addRange(72688,72697).addRange(72704,72712).addRange(72714,72758).addRange(72760,72768).addRange(72784,72793).addRange(72818,72847).addRange(72850,72871).addRange(72873,72886).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129).addRange(73136,73179).addRange(73184,73193).addRange(73440,73462).addRange(73472,73488).addRange(73490,73530).addRange(73534,73538).addRange(73552,73562).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78912,78933).addRange(78944,82938).addRange(82944,83526).addRange(90368,90425).addRange(92160,92728).addRange(92736,92766).addRange(92768,92777).addRange(92784,92862).addRange(92864,92873).addRange(92880,92909).addRange(92912,92916),e.addRange(92928,92982).addRange(92992,92995).addRange(93008,93017).addRange(93027,93047).addRange(93053,93071).addRange(93504,93548).addRange(93552,93561).addRange(93760,93823).addRange(93856,93880).addRange(93883,93907).addRange(93952,94026).addRange(94031,94087).addRange(94095,94111).addRange(94176,94177).addRange(94179,94180).addRange(94192,94198).addRange(94208,101589).addRange(101631,101662).addRange(101760,101874).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113821,113822).addRange(118e3,118009).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092),e.addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(120782,120831).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122624,122654).addRange(122661,122666).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(122928,122989).addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123536,123566).addRange(123584,123641).addRange(124112,124153).addRange(124368,124410).addRange(124608,124638).addRange(124640,124661).addRange(124670,124671).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125136,125142).addRange(125184,125259).addRange(125264,125273).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514),e.addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(130032,130041).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041).addRange(917760,917999),jZ.characters=e,jZ}var EZ,SZ={};function TZ(){if(EZ)return SZ;EZ=1;var e=_Y(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3200,3261,3389,3406,3517,3634,3716,3749,3762,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,43259,43471,43642,43697,43712,43714,64285,64318,65137,65139,65143,65145,65147,65149,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70539,70542,70583,70609,70611,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73474,73648,94032,94179,110898,110933,119970,119995,120134,123214,124400,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2191).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),e.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3164,3165).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3292,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515),e.addRange(3520,3526).addRange(3585,3632).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5870,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264).addRange(6272,6312).addRange(6320,6389),e.addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7306).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8472,8477).addRange(8490,8505).addRange(8508,8511).addRange(8517,8521).addRange(8544,8584).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686),e.addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12295).addRange(12321,12329).addRange(12337,12341).addRange(12344,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42735).addRange(42775,42783).addRange(42786,42888).addRange(42891,42972).addRange(42993,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43638).addRange(43646,43695),e.addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64605).addRange(64612,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65017).addRange(65151,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65856,65908).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335),e.addRange(66349,66378).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66513,66517).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67008,67059).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67904,67929).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680),e.addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(68938,68965).addRange(68975,68997).addRange(69248,69289).addRange(69296,69297).addRange(69314,69319).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70207,70208).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70528,70537).addRange(70544,70581).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71840,71903),e.addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72640,72672).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73136,73179).addRange(73440,73458).addRange(73476,73488).addRange(73490,73523).addRange(73728,74649).addRange(74752,74862).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78913,78918).addRange(78944,82938).addRange(82944,83526).addRange(90368,90397).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93504,93548).addRange(93760,93823).addRange(93856,93880).addRange(93883,93907).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94194,94198).addRange(94208,101589).addRange(101631,101662).addRange(101760,101874),e.addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122661,122666).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124112,124139).addRange(124368,124397).addRange(124608,124638).addRange(124640,124642).addRange(124644,124645).addRange(124647,124653),e.addRange(124656,124660).addRange(124670,124671).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041),SZ.characters=e,SZ}var PZ,AZ={};function kZ(){if(PZ)return AZ;PZ=1;var e=_Y(181,895,902,908,4295,4301,8025,8027,8029,8126,8450,8455,8469,8484,8486,8488,8505,8526,11559,11565,43002,119970,119995,120134);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,442).addRange(444,447).addRange(452,659).addRange(662,687).addRange(880,883).addRange(886,887).addRange(891,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(4256,4293).addRange(4304,4346).addRange(4349,4351).addRange(5024,5109).addRange(5112,5117).addRange(7296,7306).addRange(7312,7354).addRange(7357,7359).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8500).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580),e.addRange(11264,11387).addRange(11390,11492).addRange(11499,11502).addRange(11506,11507).addRange(11520,11557).addRange(42560,42605).addRange(42624,42651).addRange(42786,42863).addRange(42865,42887).addRange(42891,42894).addRange(42896,42972).addRange(42997,42998).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65313,65338).addRange(65345,65370).addRange(66560,66639).addRange(66736,66771).addRange(66776,66811).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68736,68786).addRange(68800,68850).addRange(68944,68965).addRange(68976,68997).addRange(71840,71903).addRange(93760,93823).addRange(93856,93880).addRange(93883,93907).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126),e.addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122633).addRange(122635,122654).addRange(122661,122666).addRange(125184,125251),AZ.characters=e,AZ}var CZ,_Z={};function IZ(){if(CZ)return _Z;CZ=1;var e=_Y(41,93,125,3899,3901,5788,8262,8318,8334,8969,8971,9002,10089,10091,10093,10095,10097,10099,10101,10182,10215,10217,10219,10221,10223,10628,10630,10632,10634,10636,10638,10640,10642,10644,10646,10648,10713,10715,10749,11811,11813,11815,11817,11862,11864,11866,11868,12297,12299,12301,12303,12305,12309,12311,12313,12315,64830,65048,65078,65080,65082,65084,65086,65088,65090,65092,65096,65114,65116,65118,65289,65341,65373,65376,65379);return e.addRange(12318,12319),_Z.characters=e,_Z}var DZ,OZ={};function NZ(){if(DZ)return OZ;DZ=1;var e=_Y(95,8276,65343);return e.addRange(8255,8256).addRange(65075,65076).addRange(65101,65103),OZ.characters=e,OZ}var BZ,MZ={};function FZ(){if(BZ)return MZ;BZ=1;var e=_Y();return e.addRange(0,31).addRange(127,159),MZ.characters=e,MZ}var LZ,UZ={};function qZ(){if(LZ)return UZ;LZ=1;var e=_Y(36,1423,1547,2555,2801,3065,3647,6107,43064,65020,65129,65284,123647,126128);return e.addRange(162,165).addRange(2046,2047).addRange(2546,2547).addRange(8352,8385).addRange(65504,65505).addRange(65509,65510).addRange(73693,73696),UZ.characters=e,UZ}var GZ,WZ={};function VZ(){if(GZ)return WZ;GZ=1;var e=_Y(45,1418,1470,5120,6150,11799,11802,11840,11869,12316,12336,12448,65112,65123,65293,68974,69293);return e.addRange(8208,8213).addRange(11834,11835).addRange(65073,65074),WZ.characters=e,WZ}var HZ,zZ={};function KZ(){if(HZ)return zZ;HZ=1;var e=_Y();return e.addRange(48,57).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(3046,3055).addRange(3174,3183).addRange(3302,3311).addRange(3430,3439).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3881).addRange(4160,4169).addRange(4240,4249).addRange(6112,6121).addRange(6160,6169).addRange(6470,6479).addRange(6608,6617).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(42528,42537).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(66720,66729).addRange(68912,68921).addRange(68928,68937).addRange(69734,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369).addRange(71376,71395).addRange(71472,71481),e.addRange(71904,71913).addRange(72016,72025).addRange(72688,72697).addRange(72784,72793).addRange(73040,73049).addRange(73120,73129).addRange(73184,73193).addRange(73552,73561).addRange(90416,90425).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(93552,93561).addRange(118e3,118009).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(124144,124153).addRange(124401,124410).addRange(125264,125273).addRange(130032,130041),zZ.characters=e,zZ}var XZ,JZ={};function YZ(){if(XZ)return JZ;XZ=1;var e=_Y(6846);return e.addRange(1160,1161).addRange(8413,8416).addRange(8418,8420).addRange(42608,42610),JZ.characters=e,JZ}var $Z,QZ={};function ZZ(){if($Z)return QZ;$Z=1;var e=_Y(187,8217,8221,8250,11779,11781,11786,11789,11805,11809);return QZ.characters=e,QZ}var e1,t1={};function r1(){if(e1)return t1;e1=1;var e=_Y(173,1564,1757,1807,2274,6158,65279,69821,69837,917505);return e.addRange(1536,1541).addRange(2192,2193).addRange(8203,8207).addRange(8234,8238).addRange(8288,8292).addRange(8294,8303).addRange(65529,65531).addRange(78896,78911).addRange(113824,113827).addRange(119155,119162).addRange(917536,917631),t1.characters=e,t1}var a1,n1={};function s1(){if(a1)return n1;a1=1;var e=_Y(171,8216,8223,8249,11778,11780,11785,11788,11804,11808);return e.addRange(8219,8220),n1.characters=e,n1}var o1,i1={};function d1(){if(o1)return i1;o1=1;var e=_Y(12295,66369,66378);return e.addRange(5870,5872).addRange(8544,8578).addRange(8581,8584).addRange(12321,12329).addRange(12344,12346).addRange(42726,42735).addRange(65856,65908).addRange(66513,66517).addRange(74752,74862).addRange(94196,94198),i1.characters=e,i1}var c1,l1={};function u1(){if(c1)return l1;c1=1;var e=_Y(170,181,186,748,750,895,902,908,1369,1749,1791,1808,1969,2042,2074,2084,2088,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3200,3261,3389,3406,3517,3716,3749,3773,3782,3840,4159,4193,4238,4295,4301,4696,4800,6103,6108,6314,6823,7418,8025,8027,8029,8126,8305,8319,8450,8455,8469,8484,8486,8488,8526,11559,11565,11631,11823,43259,43471,43642,43697,43712,43714,64285,64318,67592,67644,68096,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70539,70542,70583,70609,70611,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73474,73648,94032,94179,110898,110933,119970,119995,120134,123214,124400,125259,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,705).addRange(710,721).addRange(736,740).addRange(880,884).addRange(886,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,1013).addRange(1015,1153).addRange(1162,1327).addRange(1329,1366).addRange(1376,1416).addRange(1488,1514).addRange(1519,1522).addRange(1568,1610).addRange(1646,1647).addRange(1649,1747).addRange(1765,1766).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2036,2037).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2191).addRange(2208,2249).addRange(2308,2361).addRange(2392,2401).addRange(2417,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611),e.addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3164,3165).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3292,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515),e.addRange(3520,3526).addRange(3585,3632).addRange(3634,3635).addRange(3648,3654).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181).addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4256,4293).addRange(4304,4346).addRange(4348,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5024,5109).addRange(5112,5117).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6264),e.addRange(6272,6276).addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7293).addRange(7296,7306).addRange(7312,7354).addRange(7357,7359).addRange(7401,7404).addRange(7406,7411).addRange(7413,7414).addRange(7424,7615).addRange(7680,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8124).addRange(8130,8132).addRange(8134,8140).addRange(8144,8147).addRange(8150,8155).addRange(8160,8172).addRange(8178,8180).addRange(8182,8188).addRange(8336,8348).addRange(8458,8467).addRange(8473,8477).addRange(8490,8493).addRange(8495,8505).addRange(8508,8511).addRange(8517,8521).addRange(8579,8580).addRange(11264,11492).addRange(11499,11502).addRange(11506,11507),e.addRange(11520,11557).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12293,12294).addRange(12337,12341).addRange(12347,12348).addRange(12353,12438).addRange(12445,12447).addRange(12449,12538).addRange(12540,12543).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,42124).addRange(42192,42237).addRange(42240,42508).addRange(42512,42527).addRange(42538,42539).addRange(42560,42606).addRange(42623,42653).addRange(42656,42725).addRange(42775,42783).addRange(42786,42888).addRange(42891,42972).addRange(42993,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43494,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586),e.addRange(43588,43595).addRange(43616,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43741).addRange(43744,43754).addRange(43762,43764).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43824,43866).addRange(43868,43881).addRange(43888,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64256,64262).addRange(64275,64279).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65313,65338).addRange(65345,65370).addRange(65382,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204).addRange(66208,66256),e.addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66560,66717).addRange(66736,66771).addRange(66776,66811).addRange(66816,66855).addRange(66864,66915).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(67008,67059).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67904,67929).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497),e.addRange(68608,68680).addRange(68736,68786).addRange(68800,68850).addRange(68864,68899).addRange(68938,68965).addRange(68975,68997).addRange(69248,69289).addRange(69296,69297).addRange(69314,69319).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70207,70208).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70528,70537).addRange(70544,70581).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723),e.addRange(71840,71903).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72640,72672).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73136,73179).addRange(73440,73458).addRange(73476,73488).addRange(73490,73523).addRange(73728,74649).addRange(74880,75075).addRange(77712,77808).addRange(77824,78895).addRange(78913,78918).addRange(78944,82938).addRange(82944,83526).addRange(90368,90397).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(92992,92995).addRange(93027,93047).addRange(93053,93071).addRange(93504,93548).addRange(93760,93823).addRange(93856,93880).addRange(93883,93907).addRange(93952,94026).addRange(94099,94111).addRange(94176,94177).addRange(94194,94195).addRange(94208,101589).addRange(101631,101662).addRange(101760,101874),e.addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120512).addRange(120514,120538).addRange(120540,120570).addRange(120572,120596).addRange(120598,120628).addRange(120630,120654).addRange(120656,120686).addRange(120688,120712).addRange(120714,120744).addRange(120746,120770).addRange(120772,120779).addRange(122624,122654).addRange(122661,122666).addRange(122928,122989).addRange(123136,123180).addRange(123191,123197).addRange(123536,123565).addRange(123584,123627).addRange(124112,124139).addRange(124368,124397).addRange(124608,124638).addRange(124640,124642).addRange(124644,124645).addRange(124647,124653),e.addRange(124656,124660).addRange(124670,124671).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(125184,125251).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041),l1.characters=e,l1}var p1,f1={};function g1(){if(p1)return f1;p1=1;var e=_Y(8232);return f1.characters=e,f1}var m1,y1={};function h1(){if(m1)return y1;m1=1;var e=_Y(181,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,303,305,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,881,883,887,912,985,987,989,991,993,995,997,999,1001,1003,1005,1013,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1153,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,7306,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8126,8458,8467,8495,8500,8505,8526,8580,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,11502,11507,11559,11565,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42605,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42651,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42863,42874,42876,42879,42881,42883,42885,42887,42892,42894,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42957,42959,42961,42963,42965,42967,42969,42971,42998,43002,119995,120779);return e.addRange(97,122).addRange(223,246).addRange(248,255).addRange(311,312).addRange(328,329).addRange(382,384).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,442).addRange(445,447).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,659).addRange(662,687).addRange(891,893).addRange(940,974).addRange(976,977).addRange(981,983).addRange(1007,1011).addRange(1019,1020).addRange(1072,1119).addRange(1230,1231).addRange(1376,1416).addRange(4304,4346).addRange(4349,4351).addRange(5112,5117).addRange(7296,7304).addRange(7424,7467).addRange(7531,7543).addRange(7545,7578).addRange(7829,7837).addRange(7935,7943).addRange(7952,7957).addRange(7968,7975).addRange(7984,7991).addRange(8e3,8005).addRange(8016,8023).addRange(8032,8039).addRange(8048,8061).addRange(8064,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8116).addRange(8118,8119).addRange(8130,8132).addRange(8134,8135).addRange(8144,8147).addRange(8150,8151),e.addRange(8160,8167).addRange(8178,8180).addRange(8182,8183).addRange(8462,8463).addRange(8508,8509).addRange(8518,8521).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11387).addRange(11491,11492).addRange(11520,11557).addRange(42799,42801).addRange(42865,42872).addRange(42899,42901).addRange(43824,43866).addRange(43872,43880).addRange(43888,43967).addRange(64256,64262).addRange(64275,64279).addRange(65345,65370).addRange(66600,66639).addRange(66776,66811).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004).addRange(68800,68850).addRange(68976,68997).addRange(71872,71903).addRange(93792,93823).addRange(93883,93907).addRange(119834,119859).addRange(119886,119892).addRange(119894,119911).addRange(119938,119963).addRange(119990,119993).addRange(119997,120003).addRange(120005,120015).addRange(120042,120067).addRange(120094,120119).addRange(120146,120171).addRange(120198,120223).addRange(120250,120275).addRange(120302,120327).addRange(120354,120379).addRange(120406,120431).addRange(120458,120485).addRange(120514,120538).addRange(120540,120545).addRange(120572,120596),e.addRange(120598,120603).addRange(120630,120654).addRange(120656,120661).addRange(120688,120712).addRange(120714,120719).addRange(120746,120770).addRange(120772,120777).addRange(122624,122633).addRange(122635,122654).addRange(122661,122666).addRange(125218,125251),y1.characters=e,y1}var b1,v1={};function x1(){if(b1)return v1;b1=1;var e=_Y(1471,1479,1648,1809,2045,2492,2519,2558,2620,2641,2677,2748,2876,2946,3031,3132,3260,3315,3415,3530,3542,3633,3761,3893,3895,3897,4038,4239,6109,6159,6313,6783,7405,7412,11647,43010,43014,43019,43052,43263,43493,43587,43696,43713,64286,66045,66272,68159,69744,69826,70003,70206,70209,70487,70594,70597,70610,70750,72e3,72164,72263,73018,73031,73475,73562,78912,94031,94180,121461,121476,123023,123566,124643,124646,124661);return e.addRange(768,879).addRange(1155,1161).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2199,2207).addRange(2250,2273).addRange(2275,2307).addRange(2362,2364).addRange(2366,2383).addRange(2385,2391).addRange(2402,2403).addRange(2433,2435).addRange(2494,2500).addRange(2503,2504).addRange(2507,2509).addRange(2530,2531).addRange(2561,2563).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2691).addRange(2750,2757).addRange(2759,2761).addRange(2763,2765).addRange(2786,2787).addRange(2810,2815).addRange(2817,2819).addRange(2878,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2914,2915).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021),e.addRange(3072,3076).addRange(3134,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3201,3203).addRange(3262,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3298,3299).addRange(3328,3331).addRange(3387,3388).addRange(3390,3396).addRange(3398,3400).addRange(3402,3405).addRange(3426,3427).addRange(3457,3459).addRange(3535,3540).addRange(3544,3551).addRange(3570,3571).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3790).addRange(3864,3865).addRange(3902,3903).addRange(3953,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4139,4158).addRange(4182,4185).addRange(4190,4192).addRange(4194,4196).addRange(4199,4205).addRange(4209,4212).addRange(4226,4237).addRange(4250,4253).addRange(4957,4959).addRange(5906,5909).addRange(5938,5940).addRange(5970,5971).addRange(6002,6003).addRange(6068,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6443).addRange(6448,6459).addRange(6679,6683),e.addRange(6741,6750).addRange(6752,6780).addRange(6832,6877).addRange(6880,6891).addRange(6912,6916).addRange(6964,6980).addRange(7019,7027).addRange(7040,7042).addRange(7073,7085).addRange(7142,7155).addRange(7204,7223).addRange(7376,7378).addRange(7380,7400).addRange(7415,7417).addRange(7616,7679).addRange(8400,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12335).addRange(12441,12442).addRange(42607,42610).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43043,43047).addRange(43136,43137).addRange(43188,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43347).addRange(43392,43395).addRange(43443,43456).addRange(43561,43574).addRange(43596,43597).addRange(43643,43645).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43755,43759).addRange(43765,43766).addRange(44003,44010).addRange(44012,44013).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903),e.addRange(68969,68973).addRange(69291,69292).addRange(69370,69375).addRange(69446,69456).addRange(69506,69509).addRange(69632,69634).addRange(69688,69702).addRange(69747,69748).addRange(69759,69762).addRange(69808,69818).addRange(69888,69890).addRange(69927,69940).addRange(69957,69958).addRange(70016,70018).addRange(70067,70080).addRange(70089,70092).addRange(70094,70095).addRange(70188,70199).addRange(70367,70378).addRange(70400,70403).addRange(70459,70460).addRange(70462,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70502,70508).addRange(70512,70516).addRange(70584,70592).addRange(70599,70602).addRange(70604,70608).addRange(70625,70626).addRange(70709,70726).addRange(70832,70851).addRange(71087,71093).addRange(71096,71104).addRange(71132,71133).addRange(71216,71232).addRange(71339,71351).addRange(71453,71467).addRange(71724,71738).addRange(71984,71989).addRange(71991,71992).addRange(71995,71998).addRange(72002,72003).addRange(72145,72151).addRange(72154,72160).addRange(72193,72202).addRange(72243,72249).addRange(72251,72254).addRange(72273,72283).addRange(72330,72345),e.addRange(72544,72551).addRange(72751,72758).addRange(72760,72767).addRange(72850,72871).addRange(72873,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73098,73102).addRange(73104,73105).addRange(73107,73111).addRange(73459,73462).addRange(73472,73473).addRange(73524,73530).addRange(73534,73538).addRange(78919,78933).addRange(90398,90415).addRange(92912,92916).addRange(92976,92982).addRange(94033,94087).addRange(94095,94098).addRange(94192,94193).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119141,119145).addRange(119149,119154).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(124140,124143).addRange(124398,124399).addRange(124654,124655).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),v1.characters=e,v1}var R1,j1={};function w1(){if(R1)return j1;R1=1;var e=_Y(43,124,126,172,177,215,247,1014,8260,8274,8472,8523,8608,8611,8614,8622,8658,8660,9084,9655,9665,9839,64297,65122,65291,65372,65374,65506,118512,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771);return e.addRange(60,62).addRange(1542,1544).addRange(8314,8316).addRange(8330,8332).addRange(8512,8516).addRange(8592,8596).addRange(8602,8603).addRange(8654,8655).addRange(8692,8959).addRange(8992,8993).addRange(9115,9139).addRange(9180,9185).addRange(9720,9727).addRange(10176,10180).addRange(10183,10213).addRange(10224,10239).addRange(10496,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11007).addRange(11056,11076).addRange(11079,11084).addRange(65124,65126).addRange(65308,65310).addRange(65513,65516).addRange(69006,69007).addRange(126704,126705).addRange(129232,129240),j1.characters=e,j1}var E1,S1={};function T1(){if(E1)return S1;E1=1;var e=_Y(748,750,884,890,1369,1600,2042,2074,2084,2088,2249,2417,3654,3782,4348,6103,6211,6823,7544,8305,8319,11631,11823,12293,12347,40981,42508,42623,42864,42888,43471,43494,43632,43741,43881,65392,68942,68975,69317,73177,94179,124139,124671,125259);return e.addRange(688,705).addRange(710,721).addRange(736,740).addRange(1765,1766).addRange(2036,2037).addRange(7288,7293).addRange(7468,7530).addRange(7579,7615).addRange(8336,8348).addRange(11388,11389).addRange(12337,12341).addRange(12445,12446).addRange(12540,12542).addRange(42232,42237).addRange(42652,42653).addRange(42775,42783).addRange(42993,42996).addRange(43e3,43001).addRange(43763,43764).addRange(43868,43871).addRange(65438,65439).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(92992,92995).addRange(93504,93506).addRange(93547,93548).addRange(94099,94111).addRange(94176,94177).addRange(94194,94195).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(122928,122989).addRange(123191,123197),S1.characters=e,S1}var P1,A1={};function k1(){if(P1)return A1;P1=1;var e=_Y(94,96,168,175,180,184,749,885,2184,8125,43867,65342,65344,65507);return e.addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(12443,12444).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43882,43883).addRange(64434,64450).addRange(127995,127999),A1.characters=e,A1}var C1,_1={};function I1(){if(C1)return _1;C1=1;var e=_Y(1471,1479,1648,1809,2045,2362,2364,2381,2433,2492,2509,2558,2620,2641,2677,2748,2765,2817,2876,2879,2893,2946,3008,3021,3072,3076,3132,3201,3260,3263,3270,3405,3457,3530,3542,3633,3761,3893,3895,3897,4038,4226,4237,4253,6086,6109,6159,6313,6450,6683,6742,6752,6754,6783,6964,6972,6978,7142,7149,7405,7412,8417,11647,42607,43010,43014,43019,43052,43263,43443,43493,43587,43596,43644,43696,43713,43766,44005,44008,44013,64286,66045,66272,68159,69633,69744,69826,70003,70095,70196,70206,70209,70367,70464,70606,70608,70610,70726,70750,70842,71229,71339,71341,71351,71453,71455,71998,72003,72160,72263,72544,72550,72767,73018,73031,73109,73111,73536,73538,73562,78912,94031,94180,121461,121476,123023,123566,124643,124646,124661);return e.addRange(768,879).addRange(1155,1159).addRange(1425,1469).addRange(1473,1474).addRange(1476,1477).addRange(1552,1562).addRange(1611,1631).addRange(1750,1756).addRange(1759,1764).addRange(1767,1768).addRange(1770,1773).addRange(1840,1866).addRange(1958,1968).addRange(2027,2035).addRange(2070,2073).addRange(2075,2083).addRange(2085,2087).addRange(2089,2093).addRange(2137,2139).addRange(2199,2207).addRange(2250,2273).addRange(2275,2306).addRange(2369,2376).addRange(2385,2391).addRange(2402,2403).addRange(2497,2500).addRange(2530,2531).addRange(2561,2562).addRange(2625,2626).addRange(2631,2632).addRange(2635,2637).addRange(2672,2673).addRange(2689,2690).addRange(2753,2757).addRange(2759,2760).addRange(2786,2787).addRange(2810,2815).addRange(2881,2884).addRange(2901,2902).addRange(2914,2915).addRange(3134,3136).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3170,3171).addRange(3276,3277).addRange(3298,3299).addRange(3328,3329).addRange(3387,3388).addRange(3393,3396).addRange(3426,3427),e.addRange(3538,3540).addRange(3636,3642).addRange(3655,3662).addRange(3764,3772).addRange(3784,3790).addRange(3864,3865).addRange(3953,3966).addRange(3968,3972).addRange(3974,3975).addRange(3981,3991).addRange(3993,4028).addRange(4141,4144).addRange(4146,4151).addRange(4153,4154).addRange(4157,4158).addRange(4184,4185).addRange(4190,4192).addRange(4209,4212).addRange(4229,4230).addRange(4957,4959).addRange(5906,5908).addRange(5938,5939).addRange(5970,5971).addRange(6002,6003).addRange(6068,6069).addRange(6071,6077).addRange(6089,6099).addRange(6155,6157).addRange(6277,6278).addRange(6432,6434).addRange(6439,6440).addRange(6457,6459).addRange(6679,6680).addRange(6744,6750).addRange(6757,6764).addRange(6771,6780).addRange(6832,6845).addRange(6847,6877).addRange(6880,6891).addRange(6912,6915).addRange(6966,6970).addRange(7019,7027).addRange(7040,7041).addRange(7074,7077).addRange(7080,7081).addRange(7083,7085).addRange(7144,7145).addRange(7151,7153).addRange(7212,7219).addRange(7222,7223).addRange(7376,7378),e.addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8400,8412).addRange(8421,8432).addRange(11503,11505).addRange(11744,11775).addRange(12330,12333).addRange(12441,12442).addRange(42612,42621).addRange(42654,42655).addRange(42736,42737).addRange(43045,43046).addRange(43204,43205).addRange(43232,43249).addRange(43302,43309).addRange(43335,43345).addRange(43392,43394).addRange(43446,43449).addRange(43452,43453).addRange(43561,43566).addRange(43569,43570).addRange(43573,43574).addRange(43698,43700).addRange(43703,43704).addRange(43710,43711).addRange(43756,43757).addRange(65024,65039).addRange(65056,65071).addRange(66422,66426).addRange(68097,68099).addRange(68101,68102).addRange(68108,68111).addRange(68152,68154).addRange(68325,68326).addRange(68900,68903).addRange(68969,68973).addRange(69291,69292).addRange(69370,69375).addRange(69446,69456).addRange(69506,69509).addRange(69688,69702).addRange(69747,69748).addRange(69759,69761).addRange(69811,69814).addRange(69817,69818).addRange(69888,69890).addRange(69927,69931).addRange(69933,69940).addRange(70016,70017),e.addRange(70070,70078).addRange(70089,70092).addRange(70191,70193).addRange(70198,70199).addRange(70371,70378).addRange(70400,70401).addRange(70459,70460).addRange(70502,70508).addRange(70512,70516).addRange(70587,70592).addRange(70625,70626).addRange(70712,70719).addRange(70722,70724).addRange(70835,70840).addRange(70847,70848).addRange(70850,70851).addRange(71090,71093).addRange(71100,71101).addRange(71103,71104).addRange(71132,71133).addRange(71219,71226).addRange(71231,71232).addRange(71344,71349).addRange(71458,71461).addRange(71463,71467).addRange(71727,71735).addRange(71737,71738).addRange(71995,71996).addRange(72148,72151).addRange(72154,72155).addRange(72193,72202).addRange(72243,72248).addRange(72251,72254).addRange(72273,72278).addRange(72281,72283).addRange(72330,72342).addRange(72344,72345).addRange(72546,72548).addRange(72752,72758).addRange(72760,72765).addRange(72850,72871).addRange(72874,72880).addRange(72882,72883).addRange(72885,72886).addRange(73009,73014).addRange(73020,73021).addRange(73023,73029).addRange(73104,73105).addRange(73459,73460).addRange(73472,73473).addRange(73526,73530),e.addRange(78919,78933).addRange(90398,90409).addRange(90413,90415).addRange(92912,92916).addRange(92976,92982).addRange(94095,94098).addRange(113821,113822).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(119362,119364).addRange(121344,121398).addRange(121403,121452).addRange(121499,121503).addRange(121505,121519).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922).addRange(123184,123190).addRange(123628,123631).addRange(124140,124143).addRange(124398,124399).addRange(124654,124655).addRange(125136,125142).addRange(125252,125258).addRange(917760,917999),_1.characters=e,_1}var D1,O1={};function N1(){if(D1)return O1;D1=1;var e=_Y(185,8304,11517,12295,66369,66378);return e.addRange(48,57).addRange(178,179).addRange(188,190).addRange(1632,1641).addRange(1776,1785).addRange(1984,1993).addRange(2406,2415).addRange(2534,2543).addRange(2548,2553).addRange(2662,2671).addRange(2790,2799).addRange(2918,2927).addRange(2930,2935).addRange(3046,3058).addRange(3174,3183).addRange(3192,3198).addRange(3302,3311).addRange(3416,3422).addRange(3430,3448).addRange(3558,3567).addRange(3664,3673).addRange(3792,3801).addRange(3872,3891).addRange(4160,4169).addRange(4240,4249).addRange(4969,4988).addRange(5870,5872).addRange(6112,6121).addRange(6128,6137).addRange(6160,6169).addRange(6470,6479).addRange(6608,6618).addRange(6784,6793).addRange(6800,6809).addRange(6992,7001).addRange(7088,7097).addRange(7232,7241).addRange(7248,7257).addRange(8308,8313).addRange(8320,8329).addRange(8528,8578).addRange(8581,8585).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12321,12329).addRange(12344,12346).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895),e.addRange(12928,12937).addRange(12977,12991).addRange(42528,42537).addRange(42726,42735).addRange(43056,43061).addRange(43216,43225).addRange(43264,43273).addRange(43472,43481).addRange(43504,43513).addRange(43600,43609).addRange(44016,44025).addRange(65296,65305).addRange(65799,65843).addRange(65856,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(66513,66517).addRange(66720,66729).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(68912,68921).addRange(68928,68937).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69743).addRange(69872,69881).addRange(69942,69951).addRange(70096,70105).addRange(70113,70132).addRange(70384,70393).addRange(70736,70745).addRange(70864,70873).addRange(71248,71257).addRange(71360,71369),e.addRange(71376,71395).addRange(71472,71483).addRange(71904,71922).addRange(72016,72025).addRange(72688,72697).addRange(72784,72812).addRange(73040,73049).addRange(73120,73129).addRange(73184,73193).addRange(73552,73561).addRange(73664,73684).addRange(74752,74862).addRange(90416,90425).addRange(92768,92777).addRange(92864,92873).addRange(93008,93017).addRange(93019,93025).addRange(93552,93561).addRange(93824,93846).addRange(94196,94198).addRange(118e3,118009).addRange(119488,119507).addRange(119520,119539).addRange(119648,119672).addRange(120782,120831).addRange(123200,123209).addRange(123632,123641).addRange(124144,124153).addRange(124401,124410).addRange(125127,125135).addRange(125264,125273).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244).addRange(130032,130041),O1.characters=e,O1}var B1,M1={};function F1(){if(B1)return M1;B1=1;var e=_Y(40,91,123,3898,3900,5787,8218,8222,8261,8317,8333,8968,8970,9001,10088,10090,10092,10094,10096,10098,10100,10181,10214,10216,10218,10220,10222,10627,10629,10631,10633,10635,10637,10639,10641,10643,10645,10647,10712,10714,10748,11810,11812,11814,11816,11842,11861,11863,11865,11867,12296,12298,12300,12302,12304,12308,12310,12312,12314,12317,64831,65047,65077,65079,65081,65083,65085,65087,65089,65091,65095,65113,65115,65117,65288,65339,65371,65375,65378);return M1.characters=e,M1}var L1,U1={};function q1(){if(L1)return U1;L1=1;var e=_Y(170,186,443,1749,1791,1808,1969,2365,2384,2482,2493,2510,2556,2654,2749,2768,2809,2877,2929,2947,2972,3024,3133,3200,3261,3389,3406,3517,3716,3749,3773,3840,4159,4193,4238,4696,4800,6108,6314,7418,12294,12348,12447,12543,42606,42895,42999,43259,43642,43697,43712,43714,43762,64285,64318,67592,67644,68096,68943,69415,69749,69956,69959,70006,70106,70108,70280,70461,70480,70539,70542,70583,70609,70611,70855,71236,71352,71945,71999,72001,72161,72163,72192,72250,72272,72349,72768,73030,73112,73474,73648,94032,110898,110933,122634,123214,124400,124670,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(448,451).addRange(660,661).addRange(1488,1514).addRange(1519,1522).addRange(1568,1599).addRange(1601,1610).addRange(1646,1647).addRange(1649,1747).addRange(1774,1775).addRange(1786,1788).addRange(1810,1839).addRange(1869,1957).addRange(1994,2026).addRange(2048,2069).addRange(2112,2136).addRange(2144,2154).addRange(2160,2183).addRange(2185,2191).addRange(2208,2248).addRange(2308,2361).addRange(2392,2401).addRange(2418,2432).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2524,2525).addRange(2527,2529).addRange(2544,2545).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2649,2652).addRange(2674,2676).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2784,2785).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867),e.addRange(2869,2873).addRange(2908,2909).addRange(2911,2913).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3077,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3160,3162).addRange(3164,3165).addRange(3168,3169).addRange(3205,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3292,3294).addRange(3296,3297).addRange(3313,3314).addRange(3332,3340).addRange(3342,3344).addRange(3346,3386).addRange(3412,3414).addRange(3423,3425).addRange(3450,3455).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3585,3632).addRange(3634,3635).addRange(3648,3653).addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3760).addRange(3762,3763).addRange(3776,3780).addRange(3804,3807).addRange(3904,3911).addRange(3913,3948).addRange(3976,3980).addRange(4096,4138).addRange(4176,4181),e.addRange(4186,4189).addRange(4197,4198).addRange(4206,4208).addRange(4213,4225).addRange(4352,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4992,5007).addRange(5121,5740).addRange(5743,5759).addRange(5761,5786).addRange(5792,5866).addRange(5873,5880).addRange(5888,5905).addRange(5919,5937).addRange(5952,5969).addRange(5984,5996).addRange(5998,6e3).addRange(6016,6067).addRange(6176,6210).addRange(6212,6264).addRange(6272,6276).addRange(6279,6312).addRange(6320,6389).addRange(6400,6430).addRange(6480,6509).addRange(6512,6516).addRange(6528,6571).addRange(6576,6601).addRange(6656,6678).addRange(6688,6740).addRange(6917,6963).addRange(6981,6988).addRange(7043,7072).addRange(7086,7087).addRange(7098,7141).addRange(7168,7203).addRange(7245,7247).addRange(7258,7287).addRange(7401,7404),e.addRange(7406,7411).addRange(7413,7414).addRange(8501,8504).addRange(11568,11623).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(12353,12438).addRange(12449,12538).addRange(12549,12591).addRange(12593,12686).addRange(12704,12735).addRange(12784,12799).addRange(13312,19903).addRange(19968,40980).addRange(40982,42124).addRange(42192,42231).addRange(42240,42507).addRange(42512,42527).addRange(42538,42539).addRange(42656,42725).addRange(43003,43009).addRange(43011,43013).addRange(43015,43018).addRange(43020,43042).addRange(43072,43123).addRange(43138,43187).addRange(43250,43255).addRange(43261,43262).addRange(43274,43301).addRange(43312,43334).addRange(43360,43388).addRange(43396,43442).addRange(43488,43492).addRange(43495,43503).addRange(43514,43518).addRange(43520,43560).addRange(43584,43586).addRange(43588,43595).addRange(43616,43631).addRange(43633,43638).addRange(43646,43695).addRange(43701,43702).addRange(43705,43709).addRange(43739,43740),e.addRange(43744,43754).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(43968,44002).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(63744,64109).addRange(64112,64217).addRange(64287,64296).addRange(64298,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64433).addRange(64467,64829).addRange(64848,64911).addRange(64914,64967).addRange(65008,65019).addRange(65136,65140).addRange(65142,65276).addRange(65382,65391).addRange(65393,65437).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500).addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(66176,66204).addRange(66208,66256).addRange(66304,66335).addRange(66349,66368).addRange(66370,66377).addRange(66384,66421).addRange(66432,66461).addRange(66464,66499).addRange(66504,66511).addRange(66640,66717).addRange(66816,66855).addRange(66864,66915).addRange(67008,67059),e.addRange(67072,67382).addRange(67392,67413).addRange(67424,67431).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640).addRange(67647,67669).addRange(67680,67702).addRange(67712,67742).addRange(67808,67826).addRange(67828,67829).addRange(67840,67861).addRange(67872,67897).addRange(67904,67929).addRange(67968,68023).addRange(68030,68031).addRange(68112,68115).addRange(68117,68119).addRange(68121,68149).addRange(68192,68220).addRange(68224,68252).addRange(68288,68295).addRange(68297,68324).addRange(68352,68405).addRange(68416,68437).addRange(68448,68466).addRange(68480,68497).addRange(68608,68680).addRange(68864,68899).addRange(68938,68941).addRange(69248,69289).addRange(69296,69297).addRange(69314,69316).addRange(69318,69319).addRange(69376,69404).addRange(69424,69445).addRange(69488,69505).addRange(69552,69572).addRange(69600,69622).addRange(69635,69687).addRange(69745,69746).addRange(69763,69807).addRange(69840,69864).addRange(69891,69926).addRange(69968,70002).addRange(70019,70066).addRange(70081,70084).addRange(70144,70161).addRange(70163,70187).addRange(70207,70208).addRange(70272,70278),e.addRange(70282,70285).addRange(70287,70301).addRange(70303,70312).addRange(70320,70366).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70493,70497).addRange(70528,70537).addRange(70544,70581).addRange(70656,70708).addRange(70727,70730).addRange(70751,70753).addRange(70784,70831).addRange(70852,70853).addRange(71040,71086).addRange(71128,71131).addRange(71168,71215).addRange(71296,71338).addRange(71424,71450).addRange(71488,71494).addRange(71680,71723).addRange(71935,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71983).addRange(72096,72103).addRange(72106,72144).addRange(72203,72242).addRange(72284,72329).addRange(72368,72440).addRange(72640,72672).addRange(72704,72712).addRange(72714,72750).addRange(72818,72847).addRange(72960,72966).addRange(72968,72969).addRange(72971,73008).addRange(73056,73061).addRange(73063,73064).addRange(73066,73097).addRange(73136,73176).addRange(73178,73179).addRange(73440,73458).addRange(73476,73488).addRange(73490,73523).addRange(73728,74649).addRange(74880,75075),e.addRange(77712,77808).addRange(77824,78895).addRange(78913,78918).addRange(78944,82938).addRange(82944,83526).addRange(90368,90397).addRange(92160,92728).addRange(92736,92766).addRange(92784,92862).addRange(92880,92909).addRange(92928,92975).addRange(93027,93047).addRange(93053,93071).addRange(93507,93546).addRange(93952,94026).addRange(94208,101589).addRange(101631,101662).addRange(101760,101874).addRange(110592,110882).addRange(110928,110930).addRange(110948,110951).addRange(110960,111355).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(123136,123180).addRange(123536,123565).addRange(123584,123627).addRange(124112,124138).addRange(124368,124397).addRange(124608,124638).addRange(124640,124642).addRange(124644,124645).addRange(124647,124653).addRange(124656,124660).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926).addRange(124928,125124).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578),e.addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041),U1.characters=e,U1}var G1,W1={};function V1(){if(G1)return W1;G1=1;var e=_Y(185,6618,8304,8585,11517);return e.addRange(178,179).addRange(188,190).addRange(2548,2553).addRange(2930,2935).addRange(3056,3058).addRange(3192,3198).addRange(3416,3422).addRange(3440,3448).addRange(3882,3891).addRange(4969,4988).addRange(6128,6137).addRange(8308,8313).addRange(8320,8329).addRange(8528,8543).addRange(9312,9371).addRange(9450,9471).addRange(10102,10131).addRange(12690,12693).addRange(12832,12841).addRange(12872,12879).addRange(12881,12895).addRange(12928,12937).addRange(12977,12991).addRange(43056,43061).addRange(65799,65843).addRange(65909,65912).addRange(65930,65931).addRange(66273,66299).addRange(66336,66339).addRange(67672,67679).addRange(67705,67711).addRange(67751,67759).addRange(67835,67839).addRange(67862,67867).addRange(68028,68029).addRange(68032,68047).addRange(68050,68095).addRange(68160,68168).addRange(68221,68222).addRange(68253,68255).addRange(68331,68335).addRange(68440,68447).addRange(68472,68479).addRange(68521,68527).addRange(68858,68863).addRange(69216,69246).addRange(69405,69414).addRange(69457,69460).addRange(69573,69579).addRange(69714,69733).addRange(70113,70132),e.addRange(71482,71483).addRange(71914,71922).addRange(72794,72812).addRange(73664,73684).addRange(93019,93025).addRange(93824,93846).addRange(119488,119507).addRange(119520,119539).addRange(119648,119672).addRange(125127,125135).addRange(126065,126123).addRange(126125,126127).addRange(126129,126132).addRange(126209,126253).addRange(126255,126269).addRange(127232,127244),W1.characters=e,W1}var H1,z1={};function K1(){if(H1)return z1;H1=1;var e=_Y(42,44,92,161,167,191,894,903,1417,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5742,7379,8275,11632,11787,11803,11841,12349,12539,42611,42622,43260,43359,44011,65049,65072,65128,65290,65292,65340,65377,66463,66512,66927,67671,67871,67903,68223,69328,70093,70107,70313,70749,70854,71353,71739,72162,72673,73727,92917,92996,94178,113823,124415);return e.addRange(33,35).addRange(37,39).addRange(46,47).addRange(58,59).addRange(63,64).addRange(182,183).addRange(1370,1375).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6149).addRange(6151,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(6990,6991).addRange(7002,7008).addRange(7037,7039).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8214,8215).addRange(8224,8231).addRange(8240,8248).addRange(8251,8254).addRange(8257,8259).addRange(8263,8273).addRange(8277,8286).addRange(11513,11516).addRange(11518,11519).addRange(11776,11777).addRange(11782,11784).addRange(11790,11798),e.addRange(11800,11801).addRange(11806,11807).addRange(11818,11822).addRange(11824,11833).addRange(11836,11839).addRange(11843,11855).addRange(11858,11860).addRange(12289,12291).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(65040,65046).addRange(65093,65094).addRange(65097,65100).addRange(65104,65106).addRange(65108,65111).addRange(65119,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65287).addRange(65294,65295).addRange(65306,65307).addRange(65311,65312).addRange(65380,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111).addRange(70200,70205).addRange(70612,70613).addRange(70615,70616).addRange(70731,70735),e.addRange(70746,70747).addRange(71105,71127).addRange(71233,71235).addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72448,72457).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(73539,73551).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93549,93551).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),z1.characters=e,z1}var X1,J1={};function Y1(){if(X1)return J1;X1=1;var e=_Y(166,169,174,176,1154,1758,1769,2038,2554,2928,3066,3199,3407,3449,3859,3892,3894,3896,5741,6464,8468,8485,8487,8489,8494,8522,8527,8659,12292,12320,12783,12880,43065,65508,65512,65952,68296,71487,92997,113820,119365,123215,126124,126254,129008,129736,130042);return e.addRange(1421,1422).addRange(1550,1551).addRange(1789,1790).addRange(3059,3064).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8471).addRange(8478,8483).addRange(8506,8507).addRange(8524,8525).addRange(8586,8587).addRange(8597,8601).addRange(8604,8607).addRange(8609,8610).addRange(8612,8613).addRange(8615,8621).addRange(8623,8653).addRange(8656,8657).addRange(8661,8691).addRange(8960,8967).addRange(8972,8991).addRange(8994,9e3).addRange(9003,9083).addRange(9085,9114).addRange(9140,9179).addRange(9186,9257).addRange(9280,9290).addRange(9372,9449).addRange(9472,9654).addRange(9656,9664).addRange(9666,9719).addRange(9728,9838).addRange(9840,10087).addRange(10132,10175).addRange(10240,10495).addRange(11008,11055).addRange(11077,11078).addRange(11085,11123),e.addRange(11126,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12287).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12688,12689).addRange(12694,12703).addRange(12736,12773).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(43048,43051).addRange(43062,43063).addRange(43639,43641).addRange(64451,64466).addRange(64832,64847).addRange(64912,64913).addRange(64968,64975).addRange(65021,65023).addRange(65517,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704).addRange(69329,69336).addRange(73685,73692).addRange(73697,73713).addRange(92988,92991).addRange(117760,117999).addRange(118010,118012).addRange(118016,118451).addRange(118458,118480).addRange(118496,118511).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172),e.addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121478).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,127994).addRange(128e3,128728).addRange(128732,128748).addRange(128752,128764).addRange(128768,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129211).addRange(129216,129217).addRange(129280,129623).addRange(129632,129645).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784).addRange(129792,129938).addRange(129940,130031),J1.characters=e,J1}var $1,Q1={};function Z1(){if($1)return Q1;$1=1;var e=_Y(173,907,909,930,1328,1424,1564,1757,2111,2143,2274,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3163,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3791,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6158,6431,6751,6989,8024,8026,8028,8030,8117,8133,8156,8181,8191,8335,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69821,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70538,70543,70582,70593,70598,70603,70614,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,73489,74863,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124639,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129735,129939);return e.addRange(0,31).addRange(127,159).addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1541).addRange(1806,1807).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2192,2198).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957),e.addRange(2966,2968).addRange(2976,2978).addRange(2981,2983).addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3291).addRange(3300,3301).addRange(3316,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119).addRange(5789,5791).addRange(5881,5887),e.addRange(5910,5918).addRange(5943,5951).addRange(5972,5983).addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6878,6879).addRange(6892,6911).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7307,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8203,8207).addRange(8234,8238).addRange(8288,8303).addRange(8306,8307).addRange(8349,8351).addRange(8386,8399).addRange(8433,8447).addRange(8588,8591).addRange(9258,9279).addRange(9291,9311).addRange(11124,11125),e.addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630).addRange(11633,11646).addRange(11671,11679).addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12439,12440).addRange(12544,12548).addRange(12774,12782).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42973,42992).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,63743).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64976,65007).addRange(65050,65055).addRange(65132,65135).addRange(65277,65280).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489).addRange(65496,65497),e.addRange(65501,65503).addRange(65519,65531).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791).addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67007).addRange(67060,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67930,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158).addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408),e.addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735).addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,68927).addRange(68966,68968).addRange(68998,69005).addRange(69008,69215).addRange(69294,69295).addRange(69298,69313).addRange(69320,69327).addRange(69337,69369).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70210,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70527).addRange(70540,70541).addRange(70595,70596).addRange(70617,70624).addRange(70627,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039),e.addRange(71094,71095).addRange(71134,71167).addRange(71237,71247).addRange(71258,71263).addRange(71277,71295).addRange(71354,71359).addRange(71370,71375).addRange(71396,71423).addRange(71451,71452).addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72447).addRange(72458,72543).addRange(72552,72639).addRange(72674,72687).addRange(72698,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73135).addRange(73180,73183).addRange(73194,73439).addRange(73465,73471).addRange(73531,73533).addRange(73563,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78896,78911).addRange(78934,78943).addRange(82939,82943),e.addRange(83527,90367).addRange(90426,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911).addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93503).addRange(93562,93759).addRange(93851,93855).addRange(93881,93882).addRange(93908,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191).addRange(94199,94207).addRange(101590,101630).addRange(101663,101759).addRange(101875,110575).addRange(110883,110897).addRange(110899,110927).addRange(110931,110932).addRange(110934,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113824,117759).addRange(118013,118015).addRange(118452,118457).addRange(118481,118495).addRange(118513,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119155,119162).addRange(119275,119295).addRange(119366,119487).addRange(119508,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972),e.addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623).addRange(122655,122660).addRange(122667,122879).addRange(122905,122906).addRange(122923,122927).addRange(122990,123022).addRange(123024,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124111).addRange(124154,124367).addRange(124411,124414).addRange(124416,124607).addRange(124662,124669).addRange(124672,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502).addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703).addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128729,128731),e.addRange(128749,128751).addRange(128765,128767).addRange(128986,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103).addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129212,129215).addRange(129218,129231).addRange(129241,129279).addRange(129624,129631).addRange(129646,129647).addRange(129661,129663).addRange(129675,129677).addRange(129737,129740).addRange(129757,129758).addRange(129771,129774).addRange(129785,129791).addRange(130043,131071).addRange(173792,173823).addRange(178206,178207).addRange(183982,183983).addRange(191457,191471).addRange(192094,194559).addRange(195102,196607).addRange(201547,201551).addRange(210042,917759).addRange(918e3,1114111),Q1.characters=e,Q1}var e0,t0={};function r0(){if(e0)return t0;e0=1;var e=_Y(8233);return t0.characters=e,t0}var a0,n0={};function s0(){if(a0)return n0;a0=1;var e=_Y();return e.addRange(57344,63743).addRange(983040,1048573).addRange(1048576,1114109),n0.characters=e,n0}var o0,i0={};function d0(){if(o0)return i0;o0=1;var e=_Y(95,123,125,161,167,171,187,191,894,903,1470,1472,1475,1478,1563,1748,2142,2416,2557,2678,2800,3191,3204,3572,3663,3860,3973,4347,5120,5742,7379,11632,12336,12349,12448,12539,42611,42622,43260,43359,44011,65123,65128,65343,65371,65373,66463,66512,66927,67671,67871,67903,68223,68974,69293,69328,70093,70107,70313,70749,70854,71353,71739,72162,72673,73727,92917,92996,94178,113823,124415);return e.addRange(33,35).addRange(37,42).addRange(44,47).addRange(58,59).addRange(63,64).addRange(91,93).addRange(182,183).addRange(1370,1375).addRange(1417,1418).addRange(1523,1524).addRange(1545,1546).addRange(1548,1549).addRange(1565,1567).addRange(1642,1645).addRange(1792,1805).addRange(2039,2041).addRange(2096,2110).addRange(2404,2405).addRange(3674,3675).addRange(3844,3858).addRange(3898,3901).addRange(4048,4052).addRange(4057,4058).addRange(4170,4175).addRange(4960,4968).addRange(5787,5788).addRange(5867,5869).addRange(5941,5942).addRange(6100,6102).addRange(6104,6106).addRange(6144,6154).addRange(6468,6469).addRange(6686,6687).addRange(6816,6822).addRange(6824,6829).addRange(6990,6991).addRange(7002,7008).addRange(7037,7039).addRange(7164,7167).addRange(7227,7231).addRange(7294,7295).addRange(7360,7367).addRange(8208,8231).addRange(8240,8259).addRange(8261,8273).addRange(8275,8286).addRange(8317,8318).addRange(8333,8334).addRange(8968,8971).addRange(9001,9002).addRange(10088,10101),e.addRange(10181,10182).addRange(10214,10223).addRange(10627,10648).addRange(10712,10715).addRange(10748,10749).addRange(11513,11516).addRange(11518,11519).addRange(11776,11822).addRange(11824,11855).addRange(11858,11869).addRange(12289,12291).addRange(12296,12305).addRange(12308,12319).addRange(42238,42239).addRange(42509,42511).addRange(42738,42743).addRange(43124,43127).addRange(43214,43215).addRange(43256,43258).addRange(43310,43311).addRange(43457,43469).addRange(43486,43487).addRange(43612,43615).addRange(43742,43743).addRange(43760,43761).addRange(64830,64831).addRange(65040,65049).addRange(65072,65106).addRange(65108,65121).addRange(65130,65131).addRange(65281,65283).addRange(65285,65290).addRange(65292,65295).addRange(65306,65307).addRange(65311,65312).addRange(65339,65341).addRange(65375,65381).addRange(65792,65794).addRange(68176,68184).addRange(68336,68342).addRange(68409,68415).addRange(68505,68508).addRange(69461,69465).addRange(69510,69513).addRange(69703,69709).addRange(69819,69820).addRange(69822,69825).addRange(69952,69955).addRange(70004,70005).addRange(70085,70088).addRange(70109,70111),e.addRange(70200,70205).addRange(70612,70613).addRange(70615,70616).addRange(70731,70735).addRange(70746,70747).addRange(71105,71127).addRange(71233,71235).addRange(71264,71276).addRange(71484,71486).addRange(72004,72006).addRange(72255,72262).addRange(72346,72348).addRange(72350,72354).addRange(72448,72457).addRange(72769,72773).addRange(72816,72817).addRange(73463,73464).addRange(73539,73551).addRange(74864,74868).addRange(77809,77810).addRange(92782,92783).addRange(92983,92987).addRange(93549,93551).addRange(93847,93850).addRange(121479,121483).addRange(125278,125279),i0.characters=e,i0}var c0,l0={};function u0(){if(c0)return l0;c0=1;var e=_Y(32,160,5760,8239,8287,12288);return e.addRange(8192,8202).addRange(8232,8233),l0.characters=e,l0}var p0,f0={};function g0(){if(p0)return f0;p0=1;var e=_Y(32,160,5760,8239,8287,12288);return e.addRange(8192,8202),f0.characters=e,f0}var m0,y0={};function h0(){if(m0)return y0;m0=1;var e=_Y(2307,2363,2519,2563,2691,2761,2878,2880,2903,3031,3262,3315,3415,3967,4145,4152,4239,5909,5940,6070,6741,6743,6753,6916,6965,6971,7042,7073,7082,7143,7150,7393,7415,43047,43395,43597,43643,43645,43755,43765,44012,69632,69634,69762,69932,70018,70094,70197,70487,70594,70597,70607,70725,70841,70849,71102,71230,71340,71350,71454,71462,71736,71997,72e3,72002,72164,72249,72343,72545,72549,72551,72751,72766,72873,72881,72884,73110,73475,73537);return e.addRange(2366,2368).addRange(2377,2380).addRange(2382,2383).addRange(2434,2435).addRange(2494,2496).addRange(2503,2504).addRange(2507,2508).addRange(2622,2624).addRange(2750,2752).addRange(2763,2764).addRange(2818,2819).addRange(2887,2888).addRange(2891,2892).addRange(3006,3007).addRange(3009,3010).addRange(3014,3016).addRange(3018,3020).addRange(3073,3075).addRange(3137,3140).addRange(3202,3203).addRange(3264,3268).addRange(3271,3272).addRange(3274,3275).addRange(3285,3286).addRange(3330,3331).addRange(3390,3392).addRange(3398,3400).addRange(3402,3404).addRange(3458,3459).addRange(3535,3537).addRange(3544,3551).addRange(3570,3571).addRange(3902,3903).addRange(4139,4140).addRange(4155,4156).addRange(4182,4183).addRange(4194,4196).addRange(4199,4205).addRange(4227,4228).addRange(4231,4236).addRange(4250,4252).addRange(6078,6085).addRange(6087,6088).addRange(6435,6438).addRange(6441,6443).addRange(6448,6449).addRange(6451,6456).addRange(6681,6682).addRange(6755,6756).addRange(6765,6770).addRange(6973,6977),e.addRange(6979,6980).addRange(7078,7079).addRange(7146,7148).addRange(7154,7155).addRange(7204,7211).addRange(7220,7221).addRange(12334,12335).addRange(43043,43044).addRange(43136,43137).addRange(43188,43203).addRange(43346,43347).addRange(43444,43445).addRange(43450,43451).addRange(43454,43456).addRange(43567,43568).addRange(43571,43572).addRange(43758,43759).addRange(44003,44004).addRange(44006,44007).addRange(44009,44010).addRange(69808,69810).addRange(69815,69816).addRange(69957,69958).addRange(70067,70069).addRange(70079,70080).addRange(70188,70190).addRange(70194,70195).addRange(70368,70370).addRange(70402,70403).addRange(70462,70463).addRange(70465,70468).addRange(70471,70472).addRange(70475,70477).addRange(70498,70499).addRange(70584,70586).addRange(70599,70602).addRange(70604,70605).addRange(70709,70711).addRange(70720,70721).addRange(70832,70834).addRange(70843,70846).addRange(71087,71089).addRange(71096,71099).addRange(71216,71218).addRange(71227,71228).addRange(71342,71343).addRange(71456,71457).addRange(71724,71726).addRange(71984,71989).addRange(71991,71992).addRange(72145,72147),e.addRange(72156,72159).addRange(72279,72280).addRange(73098,73102).addRange(73107,73108).addRange(73461,73462).addRange(73524,73525).addRange(73534,73535).addRange(90410,90412).addRange(94033,94087).addRange(94192,94193).addRange(119141,119142).addRange(119149,119154),y0.characters=e,y0}var b0,v0={};function x0(){if(b0)return v0;b0=1;var e=_Y();return e.addRange(55296,57343),v0.characters=e,v0}var R0,j0={};function w0(){if(R0)return j0;R0=1;var e=_Y(36,43,94,96,124,126,172,180,184,215,247,749,885,1014,1154,1547,1758,1769,2038,2184,2801,2928,3199,3407,3449,3647,3859,3892,3894,3896,5741,6107,6464,8125,8260,8274,8468,8485,8487,8489,8494,8527,12292,12320,12783,12880,43867,64297,65122,65129,65284,65291,65342,65344,65372,65374,65952,68296,71487,92997,113820,119365,120513,120539,120571,120597,120629,120655,120687,120713,120745,120771,123215,123647,126124,126128,126254,129008,129736,130042);return e.addRange(60,62).addRange(162,166).addRange(168,169).addRange(174,177).addRange(706,709).addRange(722,735).addRange(741,747).addRange(751,767).addRange(900,901).addRange(1421,1423).addRange(1542,1544).addRange(1550,1551).addRange(1789,1790).addRange(2046,2047).addRange(2546,2547).addRange(2554,2555).addRange(3059,3066).addRange(3841,3843).addRange(3861,3863).addRange(3866,3871).addRange(4030,4037).addRange(4039,4044).addRange(4046,4047).addRange(4053,4056).addRange(4254,4255).addRange(5008,5017).addRange(6622,6655).addRange(7009,7018).addRange(7028,7036).addRange(8127,8129).addRange(8141,8143).addRange(8157,8159).addRange(8173,8175).addRange(8189,8190).addRange(8314,8316).addRange(8330,8332).addRange(8352,8385).addRange(8448,8449).addRange(8451,8454).addRange(8456,8457).addRange(8470,8472).addRange(8478,8483).addRange(8506,8507).addRange(8512,8516).addRange(8522,8525).addRange(8586,8587).addRange(8592,8967).addRange(8972,9e3).addRange(9003,9257).addRange(9280,9290).addRange(9372,9449),e.addRange(9472,10087).addRange(10132,10180).addRange(10183,10213).addRange(10224,10626).addRange(10649,10711).addRange(10716,10747).addRange(10750,11123).addRange(11126,11263).addRange(11493,11498).addRange(11856,11857).addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12287).addRange(12306,12307).addRange(12342,12343).addRange(12350,12351).addRange(12443,12444).addRange(12688,12689).addRange(12694,12703).addRange(12736,12773).addRange(12800,12830).addRange(12842,12871).addRange(12896,12927).addRange(12938,12976).addRange(12992,13311).addRange(19904,19967).addRange(42128,42182).addRange(42752,42774).addRange(42784,42785).addRange(42889,42890).addRange(43048,43051).addRange(43062,43065).addRange(43639,43641).addRange(43882,43883).addRange(64434,64466).addRange(64832,64847).addRange(64912,64913).addRange(64968,64975).addRange(65020,65023).addRange(65124,65126).addRange(65308,65310).addRange(65504,65510).addRange(65512,65518).addRange(65532,65533).addRange(65847,65855).addRange(65913,65929).addRange(65932,65934).addRange(65936,65948).addRange(66e3,66044).addRange(67703,67704),e.addRange(69006,69007).addRange(69329,69336).addRange(73685,73713).addRange(92988,92991).addRange(117760,117999).addRange(118010,118012).addRange(118016,118451).addRange(118458,118480).addRange(118496,118512).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119140).addRange(119146,119148).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119296,119361).addRange(119552,119638).addRange(120832,121343).addRange(121399,121402).addRange(121453,121460).addRange(121462,121475).addRange(121477,121478).addRange(126704,126705).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127245,127405).addRange(127462,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128728).addRange(128732,128748).addRange(128752,128764).addRange(128768,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129211).addRange(129216,129217).addRange(129232,129240).addRange(129280,129623),e.addRange(129632,129645).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784).addRange(129792,129938).addRange(129940,130031),j0.characters=e,j0}var E0,S0={};function T0(){if(E0)return S0;E0=1;var e=_Y(453,456,459,498,8124,8140,8188);return e.addRange(8072,8079).addRange(8088,8095).addRange(8104,8111),S0.characters=e,S0}var P0,A0={};function k0(){if(P0)return A0;P0=1;var e=_Y(907,909,930,1328,1424,1806,2111,2143,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3163,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3791,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6431,6751,6989,8024,8026,8028,8030,8117,8133,8156,8181,8191,8293,8335,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65280,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70538,70543,70582,70593,70598,70603,70614,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,73489,74863,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124639,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129735,129939);return e.addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1535).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2194,2198).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957).addRange(2966,2968).addRange(2976,2978).addRange(2981,2983),e.addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3291).addRange(3300,3301).addRange(3316,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119).addRange(5789,5791).addRange(5881,5887).addRange(5910,5918).addRange(5943,5951).addRange(5972,5983),e.addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6878,6879).addRange(6892,6911).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7307,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8306,8307).addRange(8349,8351).addRange(8386,8399).addRange(8433,8447).addRange(8588,8591).addRange(9258,9279).addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630).addRange(11633,11646).addRange(11671,11679),e.addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12439,12440).addRange(12544,12548).addRange(12774,12782).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42973,42992).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,55295).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64976,65007).addRange(65050,65055).addRange(65132,65135).addRange(65277,65278).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489).addRange(65496,65497).addRange(65501,65503).addRange(65519,65528).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791),e.addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67007).addRange(67060,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67930,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158).addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408).addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735),e.addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,68927).addRange(68966,68968).addRange(68998,69005).addRange(69008,69215).addRange(69294,69295).addRange(69298,69313).addRange(69320,69327).addRange(69337,69369).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69836).addRange(69838,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70210,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70527).addRange(70540,70541).addRange(70595,70596).addRange(70617,70624).addRange(70627,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247).addRange(71258,71263).addRange(71277,71295),e.addRange(71354,71359).addRange(71370,71375).addRange(71396,71423).addRange(71451,71452).addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72447).addRange(72458,72543).addRange(72552,72639).addRange(72674,72687).addRange(72698,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73135).addRange(73180,73183).addRange(73194,73439).addRange(73465,73471).addRange(73531,73533).addRange(73563,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78934,78943).addRange(82939,82943).addRange(83527,90367).addRange(90426,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911),e.addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93503).addRange(93562,93759).addRange(93851,93855).addRange(93881,93882).addRange(93908,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191).addRange(94199,94207).addRange(101590,101630).addRange(101663,101759).addRange(101875,110575).addRange(110883,110897).addRange(110899,110927).addRange(110931,110932).addRange(110934,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113828,117759).addRange(118013,118015).addRange(118452,118457).addRange(118481,118495).addRange(118513,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119275,119295).addRange(119366,119487).addRange(119508,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623),e.addRange(122655,122660).addRange(122667,122879).addRange(122905,122906).addRange(122923,122927).addRange(122990,123022).addRange(123024,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124111).addRange(124154,124367).addRange(124411,124414).addRange(124416,124607).addRange(124662,124669).addRange(124672,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502).addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703).addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128729,128731).addRange(128749,128751).addRange(128765,128767).addRange(128986,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103),e.addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129212,129215).addRange(129218,129231).addRange(129241,129279).addRange(129624,129631).addRange(129646,129647).addRange(129661,129663).addRange(129675,129677).addRange(129737,129740).addRange(129757,129758).addRange(129771,129774).addRange(129785,129791).addRange(130043,131071).addRange(173792,173823).addRange(178206,178207).addRange(183982,183983).addRange(191457,191471).addRange(192094,194559).addRange(195102,196607).addRange(201547,201551).addRange(210042,917504).addRange(917506,917535).addRange(917632,917759).addRange(918e3,983039).addRange(1048574,1048575).addRange(1114110,1114111),A0.characters=e,A0}var C0,_0,I0,D0={};function O0(){if(C0)return D0;C0=1;var e=_Y(256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,313,315,317,319,321,323,325,327,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,379,381,388,418,420,425,428,437,444,452,455,458,461,463,465,467,469,471,473,475,478,480,482,484,486,488,490,492,494,497,500,506,508,510,512,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,550,552,554,556,558,560,562,577,584,586,588,590,880,882,886,895,902,908,975,984,986,988,990,992,994,996,998,1e3,1002,1004,1006,1012,1015,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1219,1221,1223,1225,1227,1229,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,4295,4301,7305,7680,7682,7684,7686,7688,7690,7692,7694,7696,7698,7700,7702,7704,7706,7708,7710,7712,7714,7716,7718,7720,7722,7724,7726,7728,7730,7732,7734,7736,7738,7740,7742,7744,7746,7748,7750,7752,7754,7756,7758,7760,7762,7764,7766,7768,7770,7772,7774,7776,7778,7780,7782,7784,7786,7788,7790,7792,7794,7796,7798,7800,7802,7804,7806,7808,7810,7812,7814,7816,7818,7820,7822,7824,7826,7828,7838,7840,7842,7844,7846,7848,7850,7852,7854,7856,7858,7860,7862,7864,7866,7868,7870,7872,7874,7876,7878,7880,7882,7884,7886,7888,7890,7892,7894,7896,7898,7900,7902,7904,7906,7908,7910,7912,7914,7916,7918,7920,7922,7924,7926,7928,7930,7932,7934,8025,8027,8029,8031,8450,8455,8469,8484,8486,8488,8517,8579,11360,11367,11369,11371,11378,11381,11394,11396,11398,11400,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420,11422,11424,11426,11428,11430,11432,11434,11436,11438,11440,11442,11444,11446,11448,11450,11452,11454,11456,11458,11460,11462,11464,11466,11468,11470,11472,11474,11476,11478,11480,11482,11484,11486,11488,11490,11499,11501,11506,42560,42562,42564,42566,42568,42570,42572,42574,42576,42578,42580,42582,42584,42586,42588,42590,42592,42594,42596,42598,42600,42602,42604,42624,42626,42628,42630,42632,42634,42636,42638,42640,42642,42644,42646,42648,42650,42786,42788,42790,42792,42794,42796,42798,42802,42804,42806,42808,42810,42812,42814,42816,42818,42820,42822,42824,42826,42828,42830,42832,42834,42836,42838,42840,42842,42844,42846,42848,42850,42852,42854,42856,42858,42860,42862,42873,42875,42880,42882,42884,42886,42891,42893,42896,42898,42902,42904,42906,42908,42910,42912,42914,42916,42918,42920,42934,42936,42938,42940,42942,42944,42946,42953,42958,42960,42962,42964,42966,42968,42970,42972,42997,119964,119970,120134,120778);return e.addRange(65,90).addRange(192,214).addRange(216,222).addRange(376,377).addRange(385,386).addRange(390,391).addRange(393,395).addRange(398,401).addRange(403,404).addRange(406,408).addRange(412,413).addRange(415,416).addRange(422,423).addRange(430,431).addRange(433,435).addRange(439,440).addRange(502,504).addRange(570,571).addRange(573,574).addRange(579,582).addRange(904,906).addRange(910,911).addRange(913,929).addRange(931,939).addRange(978,980).addRange(1017,1018).addRange(1021,1071).addRange(1216,1217).addRange(1329,1366).addRange(4256,4293).addRange(5024,5109).addRange(7312,7354).addRange(7357,7359).addRange(7944,7951).addRange(7960,7965).addRange(7976,7983).addRange(7992,7999).addRange(8008,8013).addRange(8040,8047).addRange(8120,8123).addRange(8136,8139).addRange(8152,8155).addRange(8168,8172).addRange(8184,8187).addRange(8459,8461).addRange(8464,8466).addRange(8473,8477).addRange(8490,8493).addRange(8496,8499).addRange(8510,8511).addRange(11264,11311),e.addRange(11362,11364).addRange(11373,11376).addRange(11390,11392).addRange(42877,42878).addRange(42922,42926).addRange(42928,42932).addRange(42948,42951).addRange(42955,42956).addRange(65313,65338).addRange(66560,66599).addRange(66736,66771).addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(68736,68786).addRange(68944,68965).addRange(71840,71871).addRange(93760,93791).addRange(93856,93880).addRange(119808,119833).addRange(119860,119885).addRange(119912,119937).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119989).addRange(120016,120041).addRange(120068,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120120,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120172,120197).addRange(120224,120249).addRange(120276,120301).addRange(120328,120353).addRange(120380,120405).addRange(120432,120457).addRange(120488,120512).addRange(120546,120570).addRange(120604,120628).addRange(120662,120686).addRange(120720,120744).addRange(125184,125217),D0.characters=e,D0}function N0(){return I0?_0:(I0=1,_0=new Map([["General_Category",["Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Number","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Symbol","Titlecase_Letter","Unassigned","Uppercase_Letter"]],["Script",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Beria_Erfe","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Garay","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Gurung_Khema","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kawi","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Kirat_Rai","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nag_Mundari","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Ol_Onal","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","Sidetic","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Sunuwar","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Tai_Yo","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Todhri","Tolong_Siki","Toto","Tulu_Tigalari","Ugaritic","Unknown","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Script_Extensions",["Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Beria_Erfe","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Chorasmian","Common","Coptic","Cuneiform","Cypriot","Cypro_Minoan","Cyrillic","Deseret","Devanagari","Dives_Akuru","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Elymaic","Ethiopic","Garay","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Gurung_Khema","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kawi","Kayah_Li","Kharoshthi","Khitan_Small_Script","Khmer","Khojki","Khudawadi","Kirat_Rai","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Masaram_Gondi","Medefaidrin","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","Nag_Mundari","Nandinagari","New_Tai_Lue","Newa","Nko","Nushu","Nyiakeng_Puachue_Hmong","Ogham","Ol_Chiki","Ol_Onal","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Old_Uyghur","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","Sidetic","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Sunuwar","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Tai_Yo","Takri","Tamil","Tangsa","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Todhri","Tolong_Siki","Toto","Tulu_Tigalari","Ugaritic","Unknown","Vai","Vithkuqi","Wancho","Warang_Citi","Yezidi","Yi","Zanabazar_Square"]],["Binary_Property",["ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]],["Property_of_Strings",["Basic_Emoji","Emoji_Keycap_Sequence","RGI_Emoji","RGI_Emoji_Flag_Sequence","RGI_Emoji_Modifier_Sequence","RGI_Emoji_Tag_Sequence","RGI_Emoji_ZWJ_Sequence"]]]))}var B0,M0={};function F0(){if(B0)return M0;B0=1;var e=_Y(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008,129736);return e.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128728).addRange(128732,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784),M0.characters=e,M0.strings=["\xa9\ufe0f","\xae\ufe0f","\u203c\ufe0f","\u2049\ufe0f","\u2122\ufe0f","\u2139\ufe0f","\u2194\ufe0f","\u2195\ufe0f","\u2196\ufe0f","\u2197\ufe0f","\u2198\ufe0f","\u2199\ufe0f","\u21a9\ufe0f","\u21aa\ufe0f","\u2328\ufe0f","\u23cf\ufe0f","\u23ed\ufe0f","\u23ee\ufe0f","\u23ef\ufe0f","\u23f1\ufe0f","\u23f2\ufe0f","\u23f8\ufe0f","\u23f9\ufe0f","\u23fa\ufe0f","\u24c2\ufe0f","\u25aa\ufe0f","\u25ab\ufe0f","\u25b6\ufe0f","\u25c0\ufe0f","\u25fb\ufe0f","\u25fc\ufe0f","\u2600\ufe0f","\u2601\ufe0f","\u2602\ufe0f","\u2603\ufe0f","\u2604\ufe0f","\u260e\ufe0f","\u2611\ufe0f","\u2618\ufe0f","\u261d\ufe0f","\u2620\ufe0f","\u2622\ufe0f","\u2623\ufe0f","\u2626\ufe0f","\u262a\ufe0f","\u262e\ufe0f","\u262f\ufe0f","\u2638\ufe0f","\u2639\ufe0f","\u263a\ufe0f","\u2640\ufe0f","\u2642\ufe0f","\u265f\ufe0f","\u2660\ufe0f","\u2663\ufe0f","\u2665\ufe0f","\u2666\ufe0f","\u2668\ufe0f","\u267b\ufe0f","\u267e\ufe0f","\u2692\ufe0f","\u2694\ufe0f","\u2695\ufe0f","\u2696\ufe0f","\u2697\ufe0f","\u2699\ufe0f","\u269b\ufe0f","\u269c\ufe0f","\u26a0\ufe0f","\u26a7\ufe0f","\u26b0\ufe0f","\u26b1\ufe0f","\u26c8\ufe0f","\u26cf\ufe0f","\u26d1\ufe0f","\u26d3\ufe0f","\u26e9\ufe0f","\u26f0\ufe0f","\u26f1\ufe0f","\u26f4\ufe0f","\u26f7\ufe0f","\u26f8\ufe0f","\u26f9\ufe0f","\u2702\ufe0f","\u2708\ufe0f","\u2709\ufe0f","\u270c\ufe0f","\u270d\ufe0f","\u270f\ufe0f","\u2712\ufe0f","\u2714\ufe0f","\u2716\ufe0f","\u271d\ufe0f","\u2721\ufe0f","\u2733\ufe0f","\u2734\ufe0f","\u2744\ufe0f","\u2747\ufe0f","\u2763\ufe0f","\u2764\ufe0f","\u27a1\ufe0f","\u2934\ufe0f","\u2935\ufe0f","\u2b05\ufe0f","\u2b06\ufe0f","\u2b07\ufe0f","\u3030\ufe0f","\u303d\ufe0f","\u3297\ufe0f","\u3299\ufe0f","\ud83c\udd70\ufe0f","\ud83c\udd71\ufe0f","\ud83c\udd7e\ufe0f","\ud83c\udd7f\ufe0f","\ud83c\ude02\ufe0f","\ud83c\ude37\ufe0f","\ud83c\udf21\ufe0f","\ud83c\udf24\ufe0f","\ud83c\udf25\ufe0f","\ud83c\udf26\ufe0f","\ud83c\udf27\ufe0f","\ud83c\udf28\ufe0f","\ud83c\udf29\ufe0f","\ud83c\udf2a\ufe0f","\ud83c\udf2b\ufe0f","\ud83c\udf2c\ufe0f","\ud83c\udf36\ufe0f","\ud83c\udf7d\ufe0f","\ud83c\udf96\ufe0f","\ud83c\udf97\ufe0f","\ud83c\udf99\ufe0f","\ud83c\udf9a\ufe0f","\ud83c\udf9b\ufe0f","\ud83c\udf9e\ufe0f","\ud83c\udf9f\ufe0f","\ud83c\udfcb\ufe0f","\ud83c\udfcc\ufe0f","\ud83c\udfcd\ufe0f","\ud83c\udfce\ufe0f","\ud83c\udfd4\ufe0f","\ud83c\udfd5\ufe0f","\ud83c\udfd6\ufe0f","\ud83c\udfd7\ufe0f","\ud83c\udfd8\ufe0f","\ud83c\udfd9\ufe0f","\ud83c\udfda\ufe0f","\ud83c\udfdb\ufe0f","\ud83c\udfdc\ufe0f","\ud83c\udfdd\ufe0f","\ud83c\udfde\ufe0f","\ud83c\udfdf\ufe0f","\ud83c\udff3\ufe0f","\ud83c\udff5\ufe0f","\ud83c\udff7\ufe0f","\ud83d\udc3f\ufe0f","\ud83d\udc41\ufe0f","\ud83d\udcfd\ufe0f","\ud83d\udd49\ufe0f","\ud83d\udd4a\ufe0f","\ud83d\udd6f\ufe0f","\ud83d\udd70\ufe0f","\ud83d\udd73\ufe0f","\ud83d\udd74\ufe0f","\ud83d\udd75\ufe0f","\ud83d\udd76\ufe0f","\ud83d\udd77\ufe0f","\ud83d\udd78\ufe0f","\ud83d\udd79\ufe0f","\ud83d\udd87\ufe0f","\ud83d\udd8a\ufe0f","\ud83d\udd8b\ufe0f","\ud83d\udd8c\ufe0f","\ud83d\udd8d\ufe0f","\ud83d\udd90\ufe0f","\ud83d\udda5\ufe0f","\ud83d\udda8\ufe0f","\ud83d\uddb1\ufe0f","\ud83d\uddb2\ufe0f","\ud83d\uddbc\ufe0f","\ud83d\uddc2\ufe0f","\ud83d\uddc3\ufe0f","\ud83d\uddc4\ufe0f","\ud83d\uddd1\ufe0f","\ud83d\uddd2\ufe0f","\ud83d\uddd3\ufe0f","\ud83d\udddc\ufe0f","\ud83d\udddd\ufe0f","\ud83d\uddde\ufe0f","\ud83d\udde1\ufe0f","\ud83d\udde3\ufe0f","\ud83d\udde8\ufe0f","\ud83d\uddef\ufe0f","\ud83d\uddf3\ufe0f","\ud83d\uddfa\ufe0f","\ud83d\udecb\ufe0f","\ud83d\udecd\ufe0f","\ud83d\udece\ufe0f","\ud83d\udecf\ufe0f","\ud83d\udee0\ufe0f","\ud83d\udee1\ufe0f","\ud83d\udee2\ufe0f","\ud83d\udee3\ufe0f","\ud83d\udee4\ufe0f","\ud83d\udee5\ufe0f","\ud83d\udee9\ufe0f","\ud83d\udef0\ufe0f","\ud83d\udef3\ufe0f"],M0}var L0,U0={};function q0(){if(L0)return U0;L0=1;var e=_Y();return U0.characters=e,U0.strings=["#\ufe0f\u20e3","*\ufe0f\u20e3","0\ufe0f\u20e3","1\ufe0f\u20e3","2\ufe0f\u20e3","3\ufe0f\u20e3","4\ufe0f\u20e3","5\ufe0f\u20e3","6\ufe0f\u20e3","7\ufe0f\u20e3","8\ufe0f\u20e3","9\ufe0f\u20e3"],U0}var G0,W0={};function V0(){if(G0)return W0;G0=1;var e=_Y();return W0.characters=e,W0.strings=["\ud83c\udde6\ud83c\udde8","\ud83c\udde6\ud83c\udde9","\ud83c\udde6\ud83c\uddea","\ud83c\udde6\ud83c\uddeb","\ud83c\udde6\ud83c\uddec","\ud83c\udde6\ud83c\uddee","\ud83c\udde6\ud83c\uddf1","\ud83c\udde6\ud83c\uddf2","\ud83c\udde6\ud83c\uddf4","\ud83c\udde6\ud83c\uddf6","\ud83c\udde6\ud83c\uddf7","\ud83c\udde6\ud83c\uddf8","\ud83c\udde6\ud83c\uddf9","\ud83c\udde6\ud83c\uddfa","\ud83c\udde6\ud83c\uddfc","\ud83c\udde6\ud83c\uddfd","\ud83c\udde6\ud83c\uddff","\ud83c\udde7\ud83c\udde6","\ud83c\udde7\ud83c\udde7","\ud83c\udde7\ud83c\udde9","\ud83c\udde7\ud83c\uddea","\ud83c\udde7\ud83c\uddeb","\ud83c\udde7\ud83c\uddec","\ud83c\udde7\ud83c\udded","\ud83c\udde7\ud83c\uddee","\ud83c\udde7\ud83c\uddef","\ud83c\udde7\ud83c\uddf1","\ud83c\udde7\ud83c\uddf2","\ud83c\udde7\ud83c\uddf3","\ud83c\udde7\ud83c\uddf4","\ud83c\udde7\ud83c\uddf6","\ud83c\udde7\ud83c\uddf7","\ud83c\udde7\ud83c\uddf8","\ud83c\udde7\ud83c\uddf9","\ud83c\udde7\ud83c\uddfb","\ud83c\udde7\ud83c\uddfc","\ud83c\udde7\ud83c\uddfe","\ud83c\udde7\ud83c\uddff","\ud83c\udde8\ud83c\udde6","\ud83c\udde8\ud83c\udde8","\ud83c\udde8\ud83c\udde9","\ud83c\udde8\ud83c\uddeb","\ud83c\udde8\ud83c\uddec","\ud83c\udde8\ud83c\udded","\ud83c\udde8\ud83c\uddee","\ud83c\udde8\ud83c\uddf0","\ud83c\udde8\ud83c\uddf1","\ud83c\udde8\ud83c\uddf2","\ud83c\udde8\ud83c\uddf3","\ud83c\udde8\ud83c\uddf4","\ud83c\udde8\ud83c\uddf5","\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\ud83c\uddf7","\ud83c\udde8\ud83c\uddfa","\ud83c\udde8\ud83c\uddfb","\ud83c\udde8\ud83c\uddfc","\ud83c\udde8\ud83c\uddfd","\ud83c\udde8\ud83c\uddfe","\ud83c\udde8\ud83c\uddff","\ud83c\udde9\ud83c\uddea","\ud83c\udde9\ud83c\uddec","\ud83c\udde9\ud83c\uddef","\ud83c\udde9\ud83c\uddf0","\ud83c\udde9\ud83c\uddf2","\ud83c\udde9\ud83c\uddf4","\ud83c\udde9\ud83c\uddff","\ud83c\uddea\ud83c\udde6","\ud83c\uddea\ud83c\udde8","\ud83c\uddea\ud83c\uddea","\ud83c\uddea\ud83c\uddec","\ud83c\uddea\ud83c\udded","\ud83c\uddea\ud83c\uddf7","\ud83c\uddea\ud83c\uddf8","\ud83c\uddea\ud83c\uddf9","\ud83c\uddea\ud83c\uddfa","\ud83c\uddeb\ud83c\uddee","\ud83c\uddeb\ud83c\uddef","\ud83c\uddeb\ud83c\uddf0","\ud83c\uddeb\ud83c\uddf2","\ud83c\uddeb\ud83c\uddf4","\ud83c\uddeb\ud83c\uddf7","\ud83c\uddec\ud83c\udde6","\ud83c\uddec\ud83c\udde7","\ud83c\uddec\ud83c\udde9","\ud83c\uddec\ud83c\uddea","\ud83c\uddec\ud83c\uddeb","\ud83c\uddec\ud83c\uddec","\ud83c\uddec\ud83c\udded","\ud83c\uddec\ud83c\uddee","\ud83c\uddec\ud83c\uddf1","\ud83c\uddec\ud83c\uddf2","\ud83c\uddec\ud83c\uddf3","\ud83c\uddec\ud83c\uddf5","\ud83c\uddec\ud83c\uddf6","\ud83c\uddec\ud83c\uddf7","\ud83c\uddec\ud83c\uddf8","\ud83c\uddec\ud83c\uddf9","\ud83c\uddec\ud83c\uddfa","\ud83c\uddec\ud83c\uddfc","\ud83c\uddec\ud83c\uddfe","\ud83c\udded\ud83c\uddf0","\ud83c\udded\ud83c\uddf2","\ud83c\udded\ud83c\uddf3","\ud83c\udded\ud83c\uddf7","\ud83c\udded\ud83c\uddf9","\ud83c\udded\ud83c\uddfa","\ud83c\uddee\ud83c\udde8","\ud83c\uddee\ud83c\udde9","\ud83c\uddee\ud83c\uddea","\ud83c\uddee\ud83c\uddf1","\ud83c\uddee\ud83c\uddf2","\ud83c\uddee\ud83c\uddf3","\ud83c\uddee\ud83c\uddf4","\ud83c\uddee\ud83c\uddf6","\ud83c\uddee\ud83c\uddf7","\ud83c\uddee\ud83c\uddf8","\ud83c\uddee\ud83c\uddf9","\ud83c\uddef\ud83c\uddea","\ud83c\uddef\ud83c\uddf2","\ud83c\uddef\ud83c\uddf4","\ud83c\uddef\ud83c\uddf5","\ud83c\uddf0\ud83c\uddea","\ud83c\uddf0\ud83c\uddec","\ud83c\uddf0\ud83c\udded","\ud83c\uddf0\ud83c\uddee","\ud83c\uddf0\ud83c\uddf2","\ud83c\uddf0\ud83c\uddf3","\ud83c\uddf0\ud83c\uddf5","\ud83c\uddf0\ud83c\uddf7","\ud83c\uddf0\ud83c\uddfc","\ud83c\uddf0\ud83c\uddfe","\ud83c\uddf0\ud83c\uddff","\ud83c\uddf1\ud83c\udde6","\ud83c\uddf1\ud83c\udde7","\ud83c\uddf1\ud83c\udde8","\ud83c\uddf1\ud83c\uddee","\ud83c\uddf1\ud83c\uddf0","\ud83c\uddf1\ud83c\uddf7","\ud83c\uddf1\ud83c\uddf8","\ud83c\uddf1\ud83c\uddf9","\ud83c\uddf1\ud83c\uddfa","\ud83c\uddf1\ud83c\uddfb","\ud83c\uddf1\ud83c\uddfe","\ud83c\uddf2\ud83c\udde6","\ud83c\uddf2\ud83c\udde8","\ud83c\uddf2\ud83c\udde9","\ud83c\uddf2\ud83c\uddea","\ud83c\uddf2\ud83c\uddeb","\ud83c\uddf2\ud83c\uddec","\ud83c\uddf2\ud83c\udded","\ud83c\uddf2\ud83c\uddf0","\ud83c\uddf2\ud83c\uddf1","\ud83c\uddf2\ud83c\uddf2","\ud83c\uddf2\ud83c\uddf3","\ud83c\uddf2\ud83c\uddf4","\ud83c\uddf2\ud83c\uddf5","\ud83c\uddf2\ud83c\uddf6","\ud83c\uddf2\ud83c\uddf7","\ud83c\uddf2\ud83c\uddf8","\ud83c\uddf2\ud83c\uddf9","\ud83c\uddf2\ud83c\uddfa","\ud83c\uddf2\ud83c\uddfb","\ud83c\uddf2\ud83c\uddfc","\ud83c\uddf2\ud83c\uddfd","\ud83c\uddf2\ud83c\uddfe","\ud83c\uddf2\ud83c\uddff","\ud83c\uddf3\ud83c\udde6","\ud83c\uddf3\ud83c\udde8","\ud83c\uddf3\ud83c\uddea","\ud83c\uddf3\ud83c\uddeb","\ud83c\uddf3\ud83c\uddec","\ud83c\uddf3\ud83c\uddee","\ud83c\uddf3\ud83c\uddf1","\ud83c\uddf3\ud83c\uddf4","\ud83c\uddf3\ud83c\uddf5","\ud83c\uddf3\ud83c\uddf7","\ud83c\uddf3\ud83c\uddfa","\ud83c\uddf3\ud83c\uddff","\ud83c\uddf4\ud83c\uddf2","\ud83c\uddf5\ud83c\udde6","\ud83c\uddf5\ud83c\uddea","\ud83c\uddf5\ud83c\uddeb","\ud83c\uddf5\ud83c\uddec","\ud83c\uddf5\ud83c\udded","\ud83c\uddf5\ud83c\uddf0","\ud83c\uddf5\ud83c\uddf1","\ud83c\uddf5\ud83c\uddf2","\ud83c\uddf5\ud83c\uddf3","\ud83c\uddf5\ud83c\uddf7","\ud83c\uddf5\ud83c\uddf8","\ud83c\uddf5\ud83c\uddf9","\ud83c\uddf5\ud83c\uddfc","\ud83c\uddf5\ud83c\uddfe","\ud83c\uddf6\ud83c\udde6","\ud83c\uddf7\ud83c\uddea","\ud83c\uddf7\ud83c\uddf4","\ud83c\uddf7\ud83c\uddf8","\ud83c\uddf7\ud83c\uddfa","\ud83c\uddf7\ud83c\uddfc","\ud83c\uddf8\ud83c\udde6","\ud83c\uddf8\ud83c\udde7","\ud83c\uddf8\ud83c\udde8","\ud83c\uddf8\ud83c\udde9","\ud83c\uddf8\ud83c\uddea","\ud83c\uddf8\ud83c\uddec","\ud83c\uddf8\ud83c\udded","\ud83c\uddf8\ud83c\uddee","\ud83c\uddf8\ud83c\uddef","\ud83c\uddf8\ud83c\uddf0","\ud83c\uddf8\ud83c\uddf1","\ud83c\uddf8\ud83c\uddf2","\ud83c\uddf8\ud83c\uddf3","\ud83c\uddf8\ud83c\uddf4","\ud83c\uddf8\ud83c\uddf7","\ud83c\uddf8\ud83c\uddf8","\ud83c\uddf8\ud83c\uddf9","\ud83c\uddf8\ud83c\uddfb","\ud83c\uddf8\ud83c\uddfd","\ud83c\uddf8\ud83c\uddfe","\ud83c\uddf8\ud83c\uddff","\ud83c\uddf9\ud83c\udde6","\ud83c\uddf9\ud83c\udde8","\ud83c\uddf9\ud83c\udde9","\ud83c\uddf9\ud83c\uddeb","\ud83c\uddf9\ud83c\uddec","\ud83c\uddf9\ud83c\udded","\ud83c\uddf9\ud83c\uddef","\ud83c\uddf9\ud83c\uddf0","\ud83c\uddf9\ud83c\uddf1","\ud83c\uddf9\ud83c\uddf2","\ud83c\uddf9\ud83c\uddf3","\ud83c\uddf9\ud83c\uddf4","\ud83c\uddf9\ud83c\uddf7","\ud83c\uddf9\ud83c\uddf9","\ud83c\uddf9\ud83c\uddfb","\ud83c\uddf9\ud83c\uddfc","\ud83c\uddf9\ud83c\uddff","\ud83c\uddfa\ud83c\udde6","\ud83c\uddfa\ud83c\uddec","\ud83c\uddfa\ud83c\uddf2","\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\ud83c\uddf8","\ud83c\uddfa\ud83c\uddfe","\ud83c\uddfa\ud83c\uddff","\ud83c\uddfb\ud83c\udde6","\ud83c\uddfb\ud83c\udde8","\ud83c\uddfb\ud83c\uddea","\ud83c\uddfb\ud83c\uddec","\ud83c\uddfb\ud83c\uddee","\ud83c\uddfb\ud83c\uddf3","\ud83c\uddfb\ud83c\uddfa","\ud83c\uddfc\ud83c\uddeb","\ud83c\uddfc\ud83c\uddf8","\ud83c\uddfd\ud83c\uddf0","\ud83c\uddfe\ud83c\uddea","\ud83c\uddfe\ud83c\uddf9","\ud83c\uddff\ud83c\udde6","\ud83c\uddff\ud83c\uddf2","\ud83c\uddff\ud83c\uddfc"],W0}var H0,z0={};function K0(){if(H0)return z0;H0=1;var e=_Y();return z0.characters=e,z0.strings=["\u261d\ud83c\udffb","\u261d\ud83c\udffc","\u261d\ud83c\udffd","\u261d\ud83c\udffe","\u261d\ud83c\udfff","\u26f9\ud83c\udffb","\u26f9\ud83c\udffc","\u26f9\ud83c\udffd","\u26f9\ud83c\udffe","\u26f9\ud83c\udfff","\u270a\ud83c\udffb","\u270a\ud83c\udffc","\u270a\ud83c\udffd","\u270a\ud83c\udffe","\u270a\ud83c\udfff","\u270b\ud83c\udffb","\u270b\ud83c\udffc","\u270b\ud83c\udffd","\u270b\ud83c\udffe","\u270b\ud83c\udfff","\u270c\ud83c\udffb","\u270c\ud83c\udffc","\u270c\ud83c\udffd","\u270c\ud83c\udffe","\u270c\ud83c\udfff","\u270d\ud83c\udffb","\u270d\ud83c\udffc","\u270d\ud83c\udffd","\u270d\ud83c\udffe","\u270d\ud83c\udfff","\ud83c\udf85\ud83c\udffb","\ud83c\udf85\ud83c\udffc","\ud83c\udf85\ud83c\udffd","\ud83c\udf85\ud83c\udffe","\ud83c\udf85\ud83c\udfff","\ud83c\udfc2\ud83c\udffb","\ud83c\udfc2\ud83c\udffc","\ud83c\udfc2\ud83c\udffd","\ud83c\udfc2\ud83c\udffe","\ud83c\udfc2\ud83c\udfff","\ud83c\udfc3\ud83c\udffb","\ud83c\udfc3\ud83c\udffc","\ud83c\udfc3\ud83c\udffd","\ud83c\udfc3\ud83c\udffe","\ud83c\udfc3\ud83c\udfff","\ud83c\udfc4\ud83c\udffb","\ud83c\udfc4\ud83c\udffc","\ud83c\udfc4\ud83c\udffd","\ud83c\udfc4\ud83c\udffe","\ud83c\udfc4\ud83c\udfff","\ud83c\udfc7\ud83c\udffb","\ud83c\udfc7\ud83c\udffc","\ud83c\udfc7\ud83c\udffd","\ud83c\udfc7\ud83c\udffe","\ud83c\udfc7\ud83c\udfff","\ud83c\udfca\ud83c\udffb","\ud83c\udfca\ud83c\udffc","\ud83c\udfca\ud83c\udffd","\ud83c\udfca\ud83c\udffe","\ud83c\udfca\ud83c\udfff","\ud83c\udfcb\ud83c\udffb","\ud83c\udfcb\ud83c\udffc","\ud83c\udfcb\ud83c\udffd","\ud83c\udfcb\ud83c\udffe","\ud83c\udfcb\ud83c\udfff","\ud83c\udfcc\ud83c\udffb","\ud83c\udfcc\ud83c\udffc","\ud83c\udfcc\ud83c\udffd","\ud83c\udfcc\ud83c\udffe","\ud83c\udfcc\ud83c\udfff","\ud83d\udc42\ud83c\udffb","\ud83d\udc42\ud83c\udffc","\ud83d\udc42\ud83c\udffd","\ud83d\udc42\ud83c\udffe","\ud83d\udc42\ud83c\udfff","\ud83d\udc43\ud83c\udffb","\ud83d\udc43\ud83c\udffc","\ud83d\udc43\ud83c\udffd","\ud83d\udc43\ud83c\udffe","\ud83d\udc43\ud83c\udfff","\ud83d\udc46\ud83c\udffb","\ud83d\udc46\ud83c\udffc","\ud83d\udc46\ud83c\udffd","\ud83d\udc46\ud83c\udffe","\ud83d\udc46\ud83c\udfff","\ud83d\udc47\ud83c\udffb","\ud83d\udc47\ud83c\udffc","\ud83d\udc47\ud83c\udffd","\ud83d\udc47\ud83c\udffe","\ud83d\udc47\ud83c\udfff","\ud83d\udc48\ud83c\udffb","\ud83d\udc48\ud83c\udffc","\ud83d\udc48\ud83c\udffd","\ud83d\udc48\ud83c\udffe","\ud83d\udc48\ud83c\udfff","\ud83d\udc49\ud83c\udffb","\ud83d\udc49\ud83c\udffc","\ud83d\udc49\ud83c\udffd","\ud83d\udc49\ud83c\udffe","\ud83d\udc49\ud83c\udfff","\ud83d\udc4a\ud83c\udffb","\ud83d\udc4a\ud83c\udffc","\ud83d\udc4a\ud83c\udffd","\ud83d\udc4a\ud83c\udffe","\ud83d\udc4a\ud83c\udfff","\ud83d\udc4b\ud83c\udffb","\ud83d\udc4b\ud83c\udffc","\ud83d\udc4b\ud83c\udffd","\ud83d\udc4b\ud83c\udffe","\ud83d\udc4b\ud83c\udfff","\ud83d\udc4c\ud83c\udffb","\ud83d\udc4c\ud83c\udffc","\ud83d\udc4c\ud83c\udffd","\ud83d\udc4c\ud83c\udffe","\ud83d\udc4c\ud83c\udfff","\ud83d\udc4d\ud83c\udffb","\ud83d\udc4d\ud83c\udffc","\ud83d\udc4d\ud83c\udffd","\ud83d\udc4d\ud83c\udffe","\ud83d\udc4d\ud83c\udfff","\ud83d\udc4e\ud83c\udffb","\ud83d\udc4e\ud83c\udffc","\ud83d\udc4e\ud83c\udffd","\ud83d\udc4e\ud83c\udffe","\ud83d\udc4e\ud83c\udfff","\ud83d\udc4f\ud83c\udffb","\ud83d\udc4f\ud83c\udffc","\ud83d\udc4f\ud83c\udffd","\ud83d\udc4f\ud83c\udffe","\ud83d\udc4f\ud83c\udfff","\ud83d\udc50\ud83c\udffb","\ud83d\udc50\ud83c\udffc","\ud83d\udc50\ud83c\udffd","\ud83d\udc50\ud83c\udffe","\ud83d\udc50\ud83c\udfff","\ud83d\udc66\ud83c\udffb","\ud83d\udc66\ud83c\udffc","\ud83d\udc66\ud83c\udffd","\ud83d\udc66\ud83c\udffe","\ud83d\udc66\ud83c\udfff","\ud83d\udc67\ud83c\udffb","\ud83d\udc67\ud83c\udffc","\ud83d\udc67\ud83c\udffd","\ud83d\udc67\ud83c\udffe","\ud83d\udc67\ud83c\udfff","\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udfff","\ud83d\udc6b\ud83c\udffb","\ud83d\udc6b\ud83c\udffc","\ud83d\udc6b\ud83c\udffd","\ud83d\udc6b\ud83c\udffe","\ud83d\udc6b\ud83c\udfff","\ud83d\udc6c\ud83c\udffb","\ud83d\udc6c\ud83c\udffc","\ud83d\udc6c\ud83c\udffd","\ud83d\udc6c\ud83c\udffe","\ud83d\udc6c\ud83c\udfff","\ud83d\udc6d\ud83c\udffb","\ud83d\udc6d\ud83c\udffc","\ud83d\udc6d\ud83c\udffd","\ud83d\udc6d\ud83c\udffe","\ud83d\udc6d\ud83c\udfff","\ud83d\udc6e\ud83c\udffb","\ud83d\udc6e\ud83c\udffc","\ud83d\udc6e\ud83c\udffd","\ud83d\udc6e\ud83c\udffe","\ud83d\udc6e\ud83c\udfff","\ud83d\udc6f\ud83c\udffb","\ud83d\udc6f\ud83c\udffc","\ud83d\udc6f\ud83c\udffd","\ud83d\udc6f\ud83c\udffe","\ud83d\udc6f\ud83c\udfff","\ud83d\udc70\ud83c\udffb","\ud83d\udc70\ud83c\udffc","\ud83d\udc70\ud83c\udffd","\ud83d\udc70\ud83c\udffe","\ud83d\udc70\ud83c\udfff","\ud83d\udc71\ud83c\udffb","\ud83d\udc71\ud83c\udffc","\ud83d\udc71\ud83c\udffd","\ud83d\udc71\ud83c\udffe","\ud83d\udc71\ud83c\udfff","\ud83d\udc72\ud83c\udffb","\ud83d\udc72\ud83c\udffc","\ud83d\udc72\ud83c\udffd","\ud83d\udc72\ud83c\udffe","\ud83d\udc72\ud83c\udfff","\ud83d\udc73\ud83c\udffb","\ud83d\udc73\ud83c\udffc","\ud83d\udc73\ud83c\udffd","\ud83d\udc73\ud83c\udffe","\ud83d\udc73\ud83c\udfff","\ud83d\udc74\ud83c\udffb","\ud83d\udc74\ud83c\udffc","\ud83d\udc74\ud83c\udffd","\ud83d\udc74\ud83c\udffe","\ud83d\udc74\ud83c\udfff","\ud83d\udc75\ud83c\udffb","\ud83d\udc75\ud83c\udffc","\ud83d\udc75\ud83c\udffd","\ud83d\udc75\ud83c\udffe","\ud83d\udc75\ud83c\udfff","\ud83d\udc76\ud83c\udffb","\ud83d\udc76\ud83c\udffc","\ud83d\udc76\ud83c\udffd","\ud83d\udc76\ud83c\udffe","\ud83d\udc76\ud83c\udfff","\ud83d\udc77\ud83c\udffb","\ud83d\udc77\ud83c\udffc","\ud83d\udc77\ud83c\udffd","\ud83d\udc77\ud83c\udffe","\ud83d\udc77\ud83c\udfff","\ud83d\udc78\ud83c\udffb","\ud83d\udc78\ud83c\udffc","\ud83d\udc78\ud83c\udffd","\ud83d\udc78\ud83c\udffe","\ud83d\udc78\ud83c\udfff","\ud83d\udc7c\ud83c\udffb","\ud83d\udc7c\ud83c\udffc","\ud83d\udc7c\ud83c\udffd","\ud83d\udc7c\ud83c\udffe","\ud83d\udc7c\ud83c\udfff","\ud83d\udc81\ud83c\udffb","\ud83d\udc81\ud83c\udffc","\ud83d\udc81\ud83c\udffd","\ud83d\udc81\ud83c\udffe","\ud83d\udc81\ud83c\udfff","\ud83d\udc82\ud83c\udffb","\ud83d\udc82\ud83c\udffc","\ud83d\udc82\ud83c\udffd","\ud83d\udc82\ud83c\udffe","\ud83d\udc82\ud83c\udfff","\ud83d\udc83\ud83c\udffb","\ud83d\udc83\ud83c\udffc","\ud83d\udc83\ud83c\udffd","\ud83d\udc83\ud83c\udffe","\ud83d\udc83\ud83c\udfff","\ud83d\udc85\ud83c\udffb","\ud83d\udc85\ud83c\udffc","\ud83d\udc85\ud83c\udffd","\ud83d\udc85\ud83c\udffe","\ud83d\udc85\ud83c\udfff","\ud83d\udc86\ud83c\udffb","\ud83d\udc86\ud83c\udffc","\ud83d\udc86\ud83c\udffd","\ud83d\udc86\ud83c\udffe","\ud83d\udc86\ud83c\udfff","\ud83d\udc87\ud83c\udffb","\ud83d\udc87\ud83c\udffc","\ud83d\udc87\ud83c\udffd","\ud83d\udc87\ud83c\udffe","\ud83d\udc87\ud83c\udfff","\ud83d\udc8f\ud83c\udffb","\ud83d\udc8f\ud83c\udffc","\ud83d\udc8f\ud83c\udffd","\ud83d\udc8f\ud83c\udffe","\ud83d\udc8f\ud83c\udfff","\ud83d\udc91\ud83c\udffb","\ud83d\udc91\ud83c\udffc","\ud83d\udc91\ud83c\udffd","\ud83d\udc91\ud83c\udffe","\ud83d\udc91\ud83c\udfff","\ud83d\udcaa\ud83c\udffb","\ud83d\udcaa\ud83c\udffc","\ud83d\udcaa\ud83c\udffd","\ud83d\udcaa\ud83c\udffe","\ud83d\udcaa\ud83c\udfff","\ud83d\udd74\ud83c\udffb","\ud83d\udd74\ud83c\udffc","\ud83d\udd74\ud83c\udffd","\ud83d\udd74\ud83c\udffe","\ud83d\udd74\ud83c\udfff","\ud83d\udd75\ud83c\udffb","\ud83d\udd75\ud83c\udffc","\ud83d\udd75\ud83c\udffd","\ud83d\udd75\ud83c\udffe","\ud83d\udd75\ud83c\udfff","\ud83d\udd7a\ud83c\udffb","\ud83d\udd7a\ud83c\udffc","\ud83d\udd7a\ud83c\udffd","\ud83d\udd7a\ud83c\udffe","\ud83d\udd7a\ud83c\udfff","\ud83d\udd90\ud83c\udffb","\ud83d\udd90\ud83c\udffc","\ud83d\udd90\ud83c\udffd","\ud83d\udd90\ud83c\udffe","\ud83d\udd90\ud83c\udfff","\ud83d\udd95\ud83c\udffb","\ud83d\udd95\ud83c\udffc","\ud83d\udd95\ud83c\udffd","\ud83d\udd95\ud83c\udffe","\ud83d\udd95\ud83c\udfff","\ud83d\udd96\ud83c\udffb","\ud83d\udd96\ud83c\udffc","\ud83d\udd96\ud83c\udffd","\ud83d\udd96\ud83c\udffe","\ud83d\udd96\ud83c\udfff","\ud83d\ude45\ud83c\udffb","\ud83d\ude45\ud83c\udffc","\ud83d\ude45\ud83c\udffd","\ud83d\ude45\ud83c\udffe","\ud83d\ude45\ud83c\udfff","\ud83d\ude46\ud83c\udffb","\ud83d\ude46\ud83c\udffc","\ud83d\ude46\ud83c\udffd","\ud83d\ude46\ud83c\udffe","\ud83d\ude46\ud83c\udfff","\ud83d\ude47\ud83c\udffb","\ud83d\ude47\ud83c\udffc","\ud83d\ude47\ud83c\udffd","\ud83d\ude47\ud83c\udffe","\ud83d\ude47\ud83c\udfff","\ud83d\ude4b\ud83c\udffb","\ud83d\ude4b\ud83c\udffc","\ud83d\ude4b\ud83c\udffd","\ud83d\ude4b\ud83c\udffe","\ud83d\ude4b\ud83c\udfff","\ud83d\ude4c\ud83c\udffb","\ud83d\ude4c\ud83c\udffc","\ud83d\ude4c\ud83c\udffd","\ud83d\ude4c\ud83c\udffe","\ud83d\ude4c\ud83c\udfff","\ud83d\ude4d\ud83c\udffb","\ud83d\ude4d\ud83c\udffc","\ud83d\ude4d\ud83c\udffd","\ud83d\ude4d\ud83c\udffe","\ud83d\ude4d\ud83c\udfff","\ud83d\ude4e\ud83c\udffb","\ud83d\ude4e\ud83c\udffc","\ud83d\ude4e\ud83c\udffd","\ud83d\ude4e\ud83c\udffe","\ud83d\ude4e\ud83c\udfff","\ud83d\ude4f\ud83c\udffb","\ud83d\ude4f\ud83c\udffc","\ud83d\ude4f\ud83c\udffd","\ud83d\ude4f\ud83c\udffe","\ud83d\ude4f\ud83c\udfff","\ud83d\udea3\ud83c\udffb","\ud83d\udea3\ud83c\udffc","\ud83d\udea3\ud83c\udffd","\ud83d\udea3\ud83c\udffe","\ud83d\udea3\ud83c\udfff","\ud83d\udeb4\ud83c\udffb","\ud83d\udeb4\ud83c\udffc","\ud83d\udeb4\ud83c\udffd","\ud83d\udeb4\ud83c\udffe","\ud83d\udeb4\ud83c\udfff","\ud83d\udeb5\ud83c\udffb","\ud83d\udeb5\ud83c\udffc","\ud83d\udeb5\ud83c\udffd","\ud83d\udeb5\ud83c\udffe","\ud83d\udeb5\ud83c\udfff","\ud83d\udeb6\ud83c\udffb","\ud83d\udeb6\ud83c\udffc","\ud83d\udeb6\ud83c\udffd","\ud83d\udeb6\ud83c\udffe","\ud83d\udeb6\ud83c\udfff","\ud83d\udec0\ud83c\udffb","\ud83d\udec0\ud83c\udffc","\ud83d\udec0\ud83c\udffd","\ud83d\udec0\ud83c\udffe","\ud83d\udec0\ud83c\udfff","\ud83d\udecc\ud83c\udffb","\ud83d\udecc\ud83c\udffc","\ud83d\udecc\ud83c\udffd","\ud83d\udecc\ud83c\udffe","\ud83d\udecc\ud83c\udfff","\ud83e\udd0c\ud83c\udffb","\ud83e\udd0c\ud83c\udffc","\ud83e\udd0c\ud83c\udffd","\ud83e\udd0c\ud83c\udffe","\ud83e\udd0c\ud83c\udfff","\ud83e\udd0f\ud83c\udffb","\ud83e\udd0f\ud83c\udffc","\ud83e\udd0f\ud83c\udffd","\ud83e\udd0f\ud83c\udffe","\ud83e\udd0f\ud83c\udfff","\ud83e\udd18\ud83c\udffb","\ud83e\udd18\ud83c\udffc","\ud83e\udd18\ud83c\udffd","\ud83e\udd18\ud83c\udffe","\ud83e\udd18\ud83c\udfff","\ud83e\udd19\ud83c\udffb","\ud83e\udd19\ud83c\udffc","\ud83e\udd19\ud83c\udffd","\ud83e\udd19\ud83c\udffe","\ud83e\udd19\ud83c\udfff","\ud83e\udd1a\ud83c\udffb","\ud83e\udd1a\ud83c\udffc","\ud83e\udd1a\ud83c\udffd","\ud83e\udd1a\ud83c\udffe","\ud83e\udd1a\ud83c\udfff","\ud83e\udd1b\ud83c\udffb","\ud83e\udd1b\ud83c\udffc","\ud83e\udd1b\ud83c\udffd","\ud83e\udd1b\ud83c\udffe","\ud83e\udd1b\ud83c\udfff","\ud83e\udd1c\ud83c\udffb","\ud83e\udd1c\ud83c\udffc","\ud83e\udd1c\ud83c\udffd","\ud83e\udd1c\ud83c\udffe","\ud83e\udd1c\ud83c\udfff","\ud83e\udd1d\ud83c\udffb","\ud83e\udd1d\ud83c\udffc","\ud83e\udd1d\ud83c\udffd","\ud83e\udd1d\ud83c\udffe","\ud83e\udd1d\ud83c\udfff","\ud83e\udd1e\ud83c\udffb","\ud83e\udd1e\ud83c\udffc","\ud83e\udd1e\ud83c\udffd","\ud83e\udd1e\ud83c\udffe","\ud83e\udd1e\ud83c\udfff","\ud83e\udd1f\ud83c\udffb","\ud83e\udd1f\ud83c\udffc","\ud83e\udd1f\ud83c\udffd","\ud83e\udd1f\ud83c\udffe","\ud83e\udd1f\ud83c\udfff","\ud83e\udd26\ud83c\udffb","\ud83e\udd26\ud83c\udffc","\ud83e\udd26\ud83c\udffd","\ud83e\udd26\ud83c\udffe","\ud83e\udd26\ud83c\udfff","\ud83e\udd30\ud83c\udffb","\ud83e\udd30\ud83c\udffc","\ud83e\udd30\ud83c\udffd","\ud83e\udd30\ud83c\udffe","\ud83e\udd30\ud83c\udfff","\ud83e\udd31\ud83c\udffb","\ud83e\udd31\ud83c\udffc","\ud83e\udd31\ud83c\udffd","\ud83e\udd31\ud83c\udffe","\ud83e\udd31\ud83c\udfff","\ud83e\udd32\ud83c\udffb","\ud83e\udd32\ud83c\udffc","\ud83e\udd32\ud83c\udffd","\ud83e\udd32\ud83c\udffe","\ud83e\udd32\ud83c\udfff","\ud83e\udd33\ud83c\udffb","\ud83e\udd33\ud83c\udffc","\ud83e\udd33\ud83c\udffd","\ud83e\udd33\ud83c\udffe","\ud83e\udd33\ud83c\udfff","\ud83e\udd34\ud83c\udffb","\ud83e\udd34\ud83c\udffc","\ud83e\udd34\ud83c\udffd","\ud83e\udd34\ud83c\udffe","\ud83e\udd34\ud83c\udfff","\ud83e\udd35\ud83c\udffb","\ud83e\udd35\ud83c\udffc","\ud83e\udd35\ud83c\udffd","\ud83e\udd35\ud83c\udffe","\ud83e\udd35\ud83c\udfff","\ud83e\udd36\ud83c\udffb","\ud83e\udd36\ud83c\udffc","\ud83e\udd36\ud83c\udffd","\ud83e\udd36\ud83c\udffe","\ud83e\udd36\ud83c\udfff","\ud83e\udd37\ud83c\udffb","\ud83e\udd37\ud83c\udffc","\ud83e\udd37\ud83c\udffd","\ud83e\udd37\ud83c\udffe","\ud83e\udd37\ud83c\udfff","\ud83e\udd38\ud83c\udffb","\ud83e\udd38\ud83c\udffc","\ud83e\udd38\ud83c\udffd","\ud83e\udd38\ud83c\udffe","\ud83e\udd38\ud83c\udfff","\ud83e\udd39\ud83c\udffb","\ud83e\udd39\ud83c\udffc","\ud83e\udd39\ud83c\udffd","\ud83e\udd39\ud83c\udffe","\ud83e\udd39\ud83c\udfff","\ud83e\udd3c\ud83c\udffb","\ud83e\udd3c\ud83c\udffc","\ud83e\udd3c\ud83c\udffd","\ud83e\udd3c\ud83c\udffe","\ud83e\udd3c\ud83c\udfff","\ud83e\udd3d\ud83c\udffb","\ud83e\udd3d\ud83c\udffc","\ud83e\udd3d\ud83c\udffd","\ud83e\udd3d\ud83c\udffe","\ud83e\udd3d\ud83c\udfff","\ud83e\udd3e\ud83c\udffb","\ud83e\udd3e\ud83c\udffc","\ud83e\udd3e\ud83c\udffd","\ud83e\udd3e\ud83c\udffe","\ud83e\udd3e\ud83c\udfff","\ud83e\udd77\ud83c\udffb","\ud83e\udd77\ud83c\udffc","\ud83e\udd77\ud83c\udffd","\ud83e\udd77\ud83c\udffe","\ud83e\udd77\ud83c\udfff","\ud83e\uddb5\ud83c\udffb","\ud83e\uddb5\ud83c\udffc","\ud83e\uddb5\ud83c\udffd","\ud83e\uddb5\ud83c\udffe","\ud83e\uddb5\ud83c\udfff","\ud83e\uddb6\ud83c\udffb","\ud83e\uddb6\ud83c\udffc","\ud83e\uddb6\ud83c\udffd","\ud83e\uddb6\ud83c\udffe","\ud83e\uddb6\ud83c\udfff","\ud83e\uddb8\ud83c\udffb","\ud83e\uddb8\ud83c\udffc","\ud83e\uddb8\ud83c\udffd","\ud83e\uddb8\ud83c\udffe","\ud83e\uddb8\ud83c\udfff","\ud83e\uddb9\ud83c\udffb","\ud83e\uddb9\ud83c\udffc","\ud83e\uddb9\ud83c\udffd","\ud83e\uddb9\ud83c\udffe","\ud83e\uddb9\ud83c\udfff","\ud83e\uddbb\ud83c\udffb","\ud83e\uddbb\ud83c\udffc","\ud83e\uddbb\ud83c\udffd","\ud83e\uddbb\ud83c\udffe","\ud83e\uddbb\ud83c\udfff","\ud83e\uddcd\ud83c\udffb","\ud83e\uddcd\ud83c\udffc","\ud83e\uddcd\ud83c\udffd","\ud83e\uddcd\ud83c\udffe","\ud83e\uddcd\ud83c\udfff","\ud83e\uddce\ud83c\udffb","\ud83e\uddce\ud83c\udffc","\ud83e\uddce\ud83c\udffd","\ud83e\uddce\ud83c\udffe","\ud83e\uddce\ud83c\udfff","\ud83e\uddcf\ud83c\udffb","\ud83e\uddcf\ud83c\udffc","\ud83e\uddcf\ud83c\udffd","\ud83e\uddcf\ud83c\udffe","\ud83e\uddcf\ud83c\udfff","\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udfff","\ud83e\uddd2\ud83c\udffb","\ud83e\uddd2\ud83c\udffc","\ud83e\uddd2\ud83c\udffd","\ud83e\uddd2\ud83c\udffe","\ud83e\uddd2\ud83c\udfff","\ud83e\uddd3\ud83c\udffb","\ud83e\uddd3\ud83c\udffc","\ud83e\uddd3\ud83c\udffd","\ud83e\uddd3\ud83c\udffe","\ud83e\uddd3\ud83c\udfff","\ud83e\uddd4\ud83c\udffb","\ud83e\uddd4\ud83c\udffc","\ud83e\uddd4\ud83c\udffd","\ud83e\uddd4\ud83c\udffe","\ud83e\uddd4\ud83c\udfff","\ud83e\uddd5\ud83c\udffb","\ud83e\uddd5\ud83c\udffc","\ud83e\uddd5\ud83c\udffd","\ud83e\uddd5\ud83c\udffe","\ud83e\uddd5\ud83c\udfff","\ud83e\uddd6\ud83c\udffb","\ud83e\uddd6\ud83c\udffc","\ud83e\uddd6\ud83c\udffd","\ud83e\uddd6\ud83c\udffe","\ud83e\uddd6\ud83c\udfff","\ud83e\uddd7\ud83c\udffb","\ud83e\uddd7\ud83c\udffc","\ud83e\uddd7\ud83c\udffd","\ud83e\uddd7\ud83c\udffe","\ud83e\uddd7\ud83c\udfff","\ud83e\uddd8\ud83c\udffb","\ud83e\uddd8\ud83c\udffc","\ud83e\uddd8\ud83c\udffd","\ud83e\uddd8\ud83c\udffe","\ud83e\uddd8\ud83c\udfff","\ud83e\uddd9\ud83c\udffb","\ud83e\uddd9\ud83c\udffc","\ud83e\uddd9\ud83c\udffd","\ud83e\uddd9\ud83c\udffe","\ud83e\uddd9\ud83c\udfff","\ud83e\uddda\ud83c\udffb","\ud83e\uddda\ud83c\udffc","\ud83e\uddda\ud83c\udffd","\ud83e\uddda\ud83c\udffe","\ud83e\uddda\ud83c\udfff","\ud83e\udddb\ud83c\udffb","\ud83e\udddb\ud83c\udffc","\ud83e\udddb\ud83c\udffd","\ud83e\udddb\ud83c\udffe","\ud83e\udddb\ud83c\udfff","\ud83e\udddc\ud83c\udffb","\ud83e\udddc\ud83c\udffc","\ud83e\udddc\ud83c\udffd","\ud83e\udddc\ud83c\udffe","\ud83e\udddc\ud83c\udfff","\ud83e\udddd\ud83c\udffb","\ud83e\udddd\ud83c\udffc","\ud83e\udddd\ud83c\udffd","\ud83e\udddd\ud83c\udffe","\ud83e\udddd\ud83c\udfff","\ud83e\udec3\ud83c\udffb","\ud83e\udec3\ud83c\udffc","\ud83e\udec3\ud83c\udffd","\ud83e\udec3\ud83c\udffe","\ud83e\udec3\ud83c\udfff","\ud83e\udec4\ud83c\udffb","\ud83e\udec4\ud83c\udffc","\ud83e\udec4\ud83c\udffd","\ud83e\udec4\ud83c\udffe","\ud83e\udec4\ud83c\udfff","\ud83e\udec5\ud83c\udffb","\ud83e\udec5\ud83c\udffc","\ud83e\udec5\ud83c\udffd","\ud83e\udec5\ud83c\udffe","\ud83e\udec5\ud83c\udfff","\ud83e\udef0\ud83c\udffb","\ud83e\udef0\ud83c\udffc","\ud83e\udef0\ud83c\udffd","\ud83e\udef0\ud83c\udffe","\ud83e\udef0\ud83c\udfff","\ud83e\udef1\ud83c\udffb","\ud83e\udef1\ud83c\udffc","\ud83e\udef1\ud83c\udffd","\ud83e\udef1\ud83c\udffe","\ud83e\udef1\ud83c\udfff","\ud83e\udef2\ud83c\udffb","\ud83e\udef2\ud83c\udffc","\ud83e\udef2\ud83c\udffd","\ud83e\udef2\ud83c\udffe","\ud83e\udef2\ud83c\udfff","\ud83e\udef3\ud83c\udffb","\ud83e\udef3\ud83c\udffc","\ud83e\udef3\ud83c\udffd","\ud83e\udef3\ud83c\udffe","\ud83e\udef3\ud83c\udfff","\ud83e\udef4\ud83c\udffb","\ud83e\udef4\ud83c\udffc","\ud83e\udef4\ud83c\udffd","\ud83e\udef4\ud83c\udffe","\ud83e\udef4\ud83c\udfff","\ud83e\udef5\ud83c\udffb","\ud83e\udef5\ud83c\udffc","\ud83e\udef5\ud83c\udffd","\ud83e\udef5\ud83c\udffe","\ud83e\udef5\ud83c\udfff","\ud83e\udef6\ud83c\udffb","\ud83e\udef6\ud83c\udffc","\ud83e\udef6\ud83c\udffd","\ud83e\udef6\ud83c\udffe","\ud83e\udef6\ud83c\udfff","\ud83e\udef7\ud83c\udffb","\ud83e\udef7\ud83c\udffc","\ud83e\udef7\ud83c\udffd","\ud83e\udef7\ud83c\udffe","\ud83e\udef7\ud83c\udfff","\ud83e\udef8\ud83c\udffb","\ud83e\udef8\ud83c\udffc","\ud83e\udef8\ud83c\udffd","\ud83e\udef8\ud83c\udffe","\ud83e\udef8\ud83c\udfff"],z0}var X0,J0={};function Y0(){if(X0)return J0;X0=1;var e=_Y();return J0.characters=e,J0.strings=["\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f","\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f"],J0}var $0,Q0={};function Z0(){if($0)return Q0;$0=1;var e=_Y();return Q0.characters=e,Q0.strings=["\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68","\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68","\ud83d\udc68\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc68","\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc69","\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68","\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69","\ud83d\udc69\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc67","\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffe","\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1","\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2","\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2","\ud83e\uddd1\u200d\ud83e\uddd2","\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udffc","\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udffd","\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udffe","\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udffb","\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udffd","\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udffe","\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udffb","\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udffc","\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udffe","\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udffb","\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udffc","\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udffd","\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffb","\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffc","\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffd","\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffe","\ud83c\udfc3\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffb\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffc\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffd\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffe\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udfff\u200d\u27a1\ufe0f","\ud83d\udc68\u200d\u2695\ufe0f","\ud83d\udc68\u200d\u2696\ufe0f","\ud83d\udc68\u200d\u2708\ufe0f","\ud83d\udc68\u200d\ud83c\udf3e","\ud83d\udc68\u200d\ud83c\udf73","\ud83d\udc68\u200d\ud83c\udf7c","\ud83d\udc68\u200d\ud83c\udf93","\ud83d\udc68\u200d\ud83c\udfa4","\ud83d\udc68\u200d\ud83c\udfa8","\ud83d\udc68\u200d\ud83c\udfeb","\ud83d\udc68\u200d\ud83c\udfed","\ud83d\udc68\u200d\ud83d\udcbb","\ud83d\udc68\u200d\ud83d\udcbc","\ud83d\udc68\u200d\ud83d\udd27","\ud83d\udc68\u200d\ud83d\udd2c","\ud83d\udc68\u200d\ud83d\ude80","\ud83d\udc68\u200d\ud83d\ude92","\ud83d\udc68\u200d\ud83e\uddaf","\ud83d\udc68\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\u200d\ud83e\uddbc","\ud83d\udc68\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\u200d\ud83e\uddbd","\ud83d\udc68\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udffb\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udffb\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udffc\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udffc\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udffd\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udffd\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udffe\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udffe\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udfff\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udfff\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\u200d\u2695\ufe0f","\ud83d\udc69\u200d\u2696\ufe0f","\ud83d\udc69\u200d\u2708\ufe0f","\ud83d\udc69\u200d\ud83c\udf3e","\ud83d\udc69\u200d\ud83c\udf73","\ud83d\udc69\u200d\ud83c\udf7c","\ud83d\udc69\u200d\ud83c\udf93","\ud83d\udc69\u200d\ud83c\udfa4","\ud83d\udc69\u200d\ud83c\udfa8","\ud83d\udc69\u200d\ud83c\udfeb","\ud83d\udc69\u200d\ud83c\udfed","\ud83d\udc69\u200d\ud83d\udcbb","\ud83d\udc69\u200d\ud83d\udcbc","\ud83d\udc69\u200d\ud83d\udd27","\ud83d\udc69\u200d\ud83d\udd2c","\ud83d\udc69\u200d\ud83d\ude80","\ud83d\udc69\u200d\ud83d\ude92","\ud83d\udc69\u200d\ud83e\uddaf","\ud83d\udc69\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\u200d\ud83e\uddbc","\ud83d\udc69\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\u200d\ud83e\uddbd","\ud83d\udc69\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udffb\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udffb\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udffc\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udffc\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udffd\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udffd\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udffe\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udffe\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udfff\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udfff\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udeb6\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffb\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffc\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffd\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffe\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udfff\u200d\u27a1\ufe0f","\ud83e\uddce\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffb\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffc\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffd\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffe\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udfff\u200d\u27a1\ufe0f","\ud83e\uddd1\u200d\u2695\ufe0f","\ud83e\uddd1\u200d\u2696\ufe0f","\ud83e\uddd1\u200d\u2708\ufe0f","\ud83e\uddd1\u200d\ud83c\udf3e","\ud83e\uddd1\u200d\ud83c\udf73","\ud83e\uddd1\u200d\ud83c\udf7c","\ud83e\uddd1\u200d\ud83c\udf84","\ud83e\uddd1\u200d\ud83c\udf93","\ud83e\uddd1\u200d\ud83c\udfa4","\ud83e\uddd1\u200d\ud83c\udfa8","\ud83e\uddd1\u200d\ud83c\udfeb","\ud83e\uddd1\u200d\ud83c\udfed","\ud83e\uddd1\u200d\ud83d\udcbb","\ud83e\uddd1\u200d\ud83d\udcbc","\ud83e\uddd1\u200d\ud83d\udd27","\ud83e\uddd1\u200d\ud83d\udd2c","\ud83e\uddd1\u200d\ud83d\ude80","\ud83e\uddd1\u200d\ud83d\ude92","\ud83e\uddd1\u200d\ud83e\uddaf","\ud83e\uddd1\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\u200d\ud83e\uddbc","\ud83e\uddd1\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\u200d\ud83e\uddbd","\ud83e\uddd1\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\u26f9\ud83c\udffb\u200d\u2640\ufe0f","\u26f9\ud83c\udffb\u200d\u2642\ufe0f","\u26f9\ud83c\udffc\u200d\u2640\ufe0f","\u26f9\ud83c\udffc\u200d\u2642\ufe0f","\u26f9\ud83c\udffd\u200d\u2640\ufe0f","\u26f9\ud83c\udffd\u200d\u2642\ufe0f","\u26f9\ud83c\udffe\u200d\u2640\ufe0f","\u26f9\ud83c\udffe\u200d\u2642\ufe0f","\u26f9\ud83c\udfff\u200d\u2640\ufe0f","\u26f9\ud83c\udfff\u200d\u2642\ufe0f","\u26f9\ufe0f\u200d\u2640\ufe0f","\u26f9\ufe0f\u200d\u2642\ufe0f","\ud83c\udfc3\u200d\u2640\ufe0f","\ud83c\udfc3\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\u200d\u2642\ufe0f","\ud83c\udfc3\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udffb\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udffb\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udffc\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udffc\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udffd\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udffd\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udffe\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udffe\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udfff\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udfff\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc4\u200d\u2640\ufe0f","\ud83c\udfc4\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfca\u200d\u2640\ufe0f","\ud83c\udfca\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfcb\ufe0f\u200d\u2640\ufe0f","\ud83c\udfcb\ufe0f\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfcc\ufe0f\u200d\u2640\ufe0f","\ud83c\udfcc\ufe0f\u200d\u2642\ufe0f","\ud83d\udc6e\u200d\u2640\ufe0f","\ud83d\udc6e\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc6f\u200d\u2640\ufe0f","\ud83d\udc6f\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc70\u200d\u2640\ufe0f","\ud83d\udc70\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc71\u200d\u2640\ufe0f","\ud83d\udc71\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc73\u200d\u2640\ufe0f","\ud83d\udc73\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc77\u200d\u2640\ufe0f","\ud83d\udc77\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc81\u200d\u2640\ufe0f","\ud83d\udc81\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc82\u200d\u2640\ufe0f","\ud83d\udc82\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc86\u200d\u2640\ufe0f","\ud83d\udc86\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc87\u200d\u2640\ufe0f","\ud83d\udc87\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udd75\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udd75\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udd75\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udd75\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udd75\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udd75\ufe0f\u200d\u2640\ufe0f","\ud83d\udd75\ufe0f\u200d\u2642\ufe0f","\ud83d\ude45\u200d\u2640\ufe0f","\ud83d\ude45\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude46\u200d\u2640\ufe0f","\ud83d\ude46\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude47\u200d\u2640\ufe0f","\ud83d\ude47\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude4b\u200d\u2640\ufe0f","\ud83d\ude4b\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude4d\u200d\u2640\ufe0f","\ud83d\ude4d\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude4e\u200d\u2640\ufe0f","\ud83d\ude4e\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udea3\u200d\u2640\ufe0f","\ud83d\udea3\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udeb4\u200d\u2640\ufe0f","\ud83d\udeb4\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udeb5\u200d\u2640\ufe0f","\ud83d\udeb5\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udeb6\u200d\u2640\ufe0f","\ud83d\udeb6\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\u200d\u2642\ufe0f","\ud83d\udeb6\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udffb\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udffb\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udffc\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udffc\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udffd\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udffd\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udffe\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udffe\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udfff\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udfff\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\udd26\u200d\u2640\ufe0f","\ud83e\udd26\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd35\u200d\u2640\ufe0f","\ud83e\udd35\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd37\u200d\u2640\ufe0f","\ud83e\udd37\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd38\u200d\u2640\ufe0f","\ud83e\udd38\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd39\u200d\u2640\ufe0f","\ud83e\udd39\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd3c\u200d\u2640\ufe0f","\ud83e\udd3c\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd3d\u200d\u2640\ufe0f","\ud83e\udd3d\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd3e\u200d\u2640\ufe0f","\ud83e\udd3e\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddb8\u200d\u2640\ufe0f","\ud83e\uddb8\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddb9\u200d\u2640\ufe0f","\ud83e\uddb9\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddcd\u200d\u2640\ufe0f","\ud83e\uddcd\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddce\u200d\u2640\ufe0f","\ud83e\uddce\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\u200d\u2642\ufe0f","\ud83e\uddce\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udffb\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udffb\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udffc\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udffc\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udffd\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udffd\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udffe\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udffe\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udfff\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udfff\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddcf\u200d\u2640\ufe0f","\ud83e\uddcf\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd4\u200d\u2640\ufe0f","\ud83e\uddd4\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd6\u200d\u2640\ufe0f","\ud83e\uddd6\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd7\u200d\u2640\ufe0f","\ud83e\uddd7\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd8\u200d\u2640\ufe0f","\ud83e\uddd8\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd9\u200d\u2640\ufe0f","\ud83e\uddd9\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddda\u200d\u2640\ufe0f","\ud83e\uddda\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udddb\u200d\u2640\ufe0f","\ud83e\udddb\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udddc\u200d\u2640\ufe0f","\ud83e\udddc\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udddd\u200d\u2640\ufe0f","\ud83e\udddd\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddde\u200d\u2640\ufe0f","\ud83e\uddde\u200d\u2642\ufe0f","\ud83e\udddf\u200d\u2640\ufe0f","\ud83e\udddf\u200d\u2642\ufe0f","\ud83d\udc68\u200d\ud83e\uddb0","\ud83d\udc68\u200d\ud83e\uddb1","\ud83d\udc68\u200d\ud83e\uddb2","\ud83d\udc68\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb3","\ud83d\udc69\u200d\ud83e\uddb0","\ud83d\udc69\u200d\ud83e\uddb1","\ud83d\udc69\u200d\ud83e\uddb2","\ud83d\udc69\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb3","\ud83e\uddd1\u200d\ud83e\uddb0","\ud83e\uddd1\u200d\ud83e\uddb1","\ud83e\uddd1\u200d\ud83e\uddb2","\ud83e\uddd1\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb3","\u26d3\ufe0f\u200d\ud83d\udca5","\u2764\ufe0f\u200d\ud83d\udd25","\u2764\ufe0f\u200d\ud83e\ude79","\ud83c\udf44\u200d\ud83d\udfeb","\ud83c\udf4b\u200d\ud83d\udfe9","\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200d\ud83c\udf08","\ud83c\udff4\u200d\u2620\ufe0f","\ud83d\udc08\u200d\u2b1b","\ud83d\udc15\u200d\ud83e\uddba","\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200d\ud83d\udd25","\ud83d\udc3b\u200d\u2744\ufe0f","\ud83d\udc41\ufe0f\u200d\ud83d\udde8\ufe0f","\ud83d\ude2e\u200d\ud83d\udca8","\ud83d\ude35\u200d\ud83d\udcab","\ud83d\ude36\u200d\ud83c\udf2b\ufe0f","\ud83d\ude42\u200d\u2194\ufe0f","\ud83d\ude42\u200d\u2195\ufe0f","\ud83e\uddd1\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffe"],Q0}var e2,t2={};function r2(){if(e2)return t2;e2=1;var e=_Y(9200,9203,9855,9875,9889,9934,9940,9962,9973,9978,9981,9989,10024,10060,10062,10071,10160,10175,11088,11093,126980,127183,127374,127489,127514,127535,127988,128064,128378,128420,128716,129008,129736);return e.addRange(8986,8987).addRange(9193,9196).addRange(9725,9726).addRange(9748,9749).addRange(9800,9811).addRange(9898,9899).addRange(9917,9918).addRange(9924,9925).addRange(9970,9971).addRange(9994,9995).addRange(10067,10069).addRange(10133,10135).addRange(11035,11036).addRange(127377,127386).addRange(127538,127542).addRange(127544,127546).addRange(127568,127569).addRange(127744,127776).addRange(127789,127797).addRange(127799,127868).addRange(127870,127891).addRange(127904,127946).addRange(127951,127955).addRange(127968,127984).addRange(127992,128062).addRange(128066,128252).addRange(128255,128317).addRange(128331,128334).addRange(128336,128359).addRange(128405,128406).addRange(128507,128591).addRange(128640,128709).addRange(128720,128722).addRange(128725,128728).addRange(128732,128735).addRange(128747,128748).addRange(128756,128764).addRange(128992,129003).addRange(129292,129338).addRange(129340,129349).addRange(129351,129535).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784),t2.characters=e,t2.strings=["#\ufe0f\u20e3","*\ufe0f\u20e3","0\ufe0f\u20e3","1\ufe0f\u20e3","2\ufe0f\u20e3","3\ufe0f\u20e3","4\ufe0f\u20e3","5\ufe0f\u20e3","6\ufe0f\u20e3","7\ufe0f\u20e3","8\ufe0f\u20e3","9\ufe0f\u20e3","\xa9\ufe0f","\xae\ufe0f","\u203c\ufe0f","\u2049\ufe0f","\u2122\ufe0f","\u2139\ufe0f","\u2194\ufe0f","\u2195\ufe0f","\u2196\ufe0f","\u2197\ufe0f","\u2198\ufe0f","\u2199\ufe0f","\u21a9\ufe0f","\u21aa\ufe0f","\u2328\ufe0f","\u23cf\ufe0f","\u23ed\ufe0f","\u23ee\ufe0f","\u23ef\ufe0f","\u23f1\ufe0f","\u23f2\ufe0f","\u23f8\ufe0f","\u23f9\ufe0f","\u23fa\ufe0f","\u24c2\ufe0f","\u25aa\ufe0f","\u25ab\ufe0f","\u25b6\ufe0f","\u25c0\ufe0f","\u25fb\ufe0f","\u25fc\ufe0f","\u2600\ufe0f","\u2601\ufe0f","\u2602\ufe0f","\u2603\ufe0f","\u2604\ufe0f","\u260e\ufe0f","\u2611\ufe0f","\u2618\ufe0f","\u261d\ud83c\udffb","\u261d\ud83c\udffc","\u261d\ud83c\udffd","\u261d\ud83c\udffe","\u261d\ud83c\udfff","\u261d\ufe0f","\u2620\ufe0f","\u2622\ufe0f","\u2623\ufe0f","\u2626\ufe0f","\u262a\ufe0f","\u262e\ufe0f","\u262f\ufe0f","\u2638\ufe0f","\u2639\ufe0f","\u263a\ufe0f","\u2640\ufe0f","\u2642\ufe0f","\u265f\ufe0f","\u2660\ufe0f","\u2663\ufe0f","\u2665\ufe0f","\u2666\ufe0f","\u2668\ufe0f","\u267b\ufe0f","\u267e\ufe0f","\u2692\ufe0f","\u2694\ufe0f","\u2695\ufe0f","\u2696\ufe0f","\u2697\ufe0f","\u2699\ufe0f","\u269b\ufe0f","\u269c\ufe0f","\u26a0\ufe0f","\u26a7\ufe0f","\u26b0\ufe0f","\u26b1\ufe0f","\u26c8\ufe0f","\u26cf\ufe0f","\u26d1\ufe0f","\u26d3\ufe0f","\u26d3\ufe0f\u200d\ud83d\udca5","\u26e9\ufe0f","\u26f0\ufe0f","\u26f1\ufe0f","\u26f4\ufe0f","\u26f7\ufe0f","\u26f8\ufe0f","\u26f9\ud83c\udffb","\u26f9\ud83c\udffb\u200d\u2640\ufe0f","\u26f9\ud83c\udffb\u200d\u2642\ufe0f","\u26f9\ud83c\udffc","\u26f9\ud83c\udffc\u200d\u2640\ufe0f","\u26f9\ud83c\udffc\u200d\u2642\ufe0f","\u26f9\ud83c\udffd","\u26f9\ud83c\udffd\u200d\u2640\ufe0f","\u26f9\ud83c\udffd\u200d\u2642\ufe0f","\u26f9\ud83c\udffe","\u26f9\ud83c\udffe\u200d\u2640\ufe0f","\u26f9\ud83c\udffe\u200d\u2642\ufe0f","\u26f9\ud83c\udfff","\u26f9\ud83c\udfff\u200d\u2640\ufe0f","\u26f9\ud83c\udfff\u200d\u2642\ufe0f","\u26f9\ufe0f","\u26f9\ufe0f\u200d\u2640\ufe0f","\u26f9\ufe0f\u200d\u2642\ufe0f","\u2702\ufe0f","\u2708\ufe0f","\u2709\ufe0f","\u270a\ud83c\udffb","\u270a\ud83c\udffc","\u270a\ud83c\udffd","\u270a\ud83c\udffe","\u270a\ud83c\udfff","\u270b\ud83c\udffb","\u270b\ud83c\udffc","\u270b\ud83c\udffd","\u270b\ud83c\udffe","\u270b\ud83c\udfff","\u270c\ud83c\udffb","\u270c\ud83c\udffc","\u270c\ud83c\udffd","\u270c\ud83c\udffe","\u270c\ud83c\udfff","\u270c\ufe0f","\u270d\ud83c\udffb","\u270d\ud83c\udffc","\u270d\ud83c\udffd","\u270d\ud83c\udffe","\u270d\ud83c\udfff","\u270d\ufe0f","\u270f\ufe0f","\u2712\ufe0f","\u2714\ufe0f","\u2716\ufe0f","\u271d\ufe0f","\u2721\ufe0f","\u2733\ufe0f","\u2734\ufe0f","\u2744\ufe0f","\u2747\ufe0f","\u2763\ufe0f","\u2764\ufe0f","\u2764\ufe0f\u200d\ud83d\udd25","\u2764\ufe0f\u200d\ud83e\ude79","\u27a1\ufe0f","\u2934\ufe0f","\u2935\ufe0f","\u2b05\ufe0f","\u2b06\ufe0f","\u2b07\ufe0f","\u3030\ufe0f","\u303d\ufe0f","\u3297\ufe0f","\u3299\ufe0f","\ud83c\udd70\ufe0f","\ud83c\udd71\ufe0f","\ud83c\udd7e\ufe0f","\ud83c\udd7f\ufe0f","\ud83c\udde6\ud83c\udde8","\ud83c\udde6\ud83c\udde9","\ud83c\udde6\ud83c\uddea","\ud83c\udde6\ud83c\uddeb","\ud83c\udde6\ud83c\uddec","\ud83c\udde6\ud83c\uddee","\ud83c\udde6\ud83c\uddf1","\ud83c\udde6\ud83c\uddf2","\ud83c\udde6\ud83c\uddf4","\ud83c\udde6\ud83c\uddf6","\ud83c\udde6\ud83c\uddf7","\ud83c\udde6\ud83c\uddf8","\ud83c\udde6\ud83c\uddf9","\ud83c\udde6\ud83c\uddfa","\ud83c\udde6\ud83c\uddfc","\ud83c\udde6\ud83c\uddfd","\ud83c\udde6\ud83c\uddff","\ud83c\udde7\ud83c\udde6","\ud83c\udde7\ud83c\udde7","\ud83c\udde7\ud83c\udde9","\ud83c\udde7\ud83c\uddea","\ud83c\udde7\ud83c\uddeb","\ud83c\udde7\ud83c\uddec","\ud83c\udde7\ud83c\udded","\ud83c\udde7\ud83c\uddee","\ud83c\udde7\ud83c\uddef","\ud83c\udde7\ud83c\uddf1","\ud83c\udde7\ud83c\uddf2","\ud83c\udde7\ud83c\uddf3","\ud83c\udde7\ud83c\uddf4","\ud83c\udde7\ud83c\uddf6","\ud83c\udde7\ud83c\uddf7","\ud83c\udde7\ud83c\uddf8","\ud83c\udde7\ud83c\uddf9","\ud83c\udde7\ud83c\uddfb","\ud83c\udde7\ud83c\uddfc","\ud83c\udde7\ud83c\uddfe","\ud83c\udde7\ud83c\uddff","\ud83c\udde8\ud83c\udde6","\ud83c\udde8\ud83c\udde8","\ud83c\udde8\ud83c\udde9","\ud83c\udde8\ud83c\uddeb","\ud83c\udde8\ud83c\uddec","\ud83c\udde8\ud83c\udded","\ud83c\udde8\ud83c\uddee","\ud83c\udde8\ud83c\uddf0","\ud83c\udde8\ud83c\uddf1","\ud83c\udde8\ud83c\uddf2","\ud83c\udde8\ud83c\uddf3","\ud83c\udde8\ud83c\uddf4","\ud83c\udde8\ud83c\uddf5","\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\ud83c\uddf7","\ud83c\udde8\ud83c\uddfa","\ud83c\udde8\ud83c\uddfb","\ud83c\udde8\ud83c\uddfc","\ud83c\udde8\ud83c\uddfd","\ud83c\udde8\ud83c\uddfe","\ud83c\udde8\ud83c\uddff","\ud83c\udde9\ud83c\uddea","\ud83c\udde9\ud83c\uddec","\ud83c\udde9\ud83c\uddef","\ud83c\udde9\ud83c\uddf0","\ud83c\udde9\ud83c\uddf2","\ud83c\udde9\ud83c\uddf4","\ud83c\udde9\ud83c\uddff","\ud83c\uddea\ud83c\udde6","\ud83c\uddea\ud83c\udde8","\ud83c\uddea\ud83c\uddea","\ud83c\uddea\ud83c\uddec","\ud83c\uddea\ud83c\udded","\ud83c\uddea\ud83c\uddf7","\ud83c\uddea\ud83c\uddf8","\ud83c\uddea\ud83c\uddf9","\ud83c\uddea\ud83c\uddfa","\ud83c\uddeb\ud83c\uddee","\ud83c\uddeb\ud83c\uddef","\ud83c\uddeb\ud83c\uddf0","\ud83c\uddeb\ud83c\uddf2","\ud83c\uddeb\ud83c\uddf4","\ud83c\uddeb\ud83c\uddf7","\ud83c\uddec\ud83c\udde6","\ud83c\uddec\ud83c\udde7","\ud83c\uddec\ud83c\udde9","\ud83c\uddec\ud83c\uddea","\ud83c\uddec\ud83c\uddeb","\ud83c\uddec\ud83c\uddec","\ud83c\uddec\ud83c\udded","\ud83c\uddec\ud83c\uddee","\ud83c\uddec\ud83c\uddf1","\ud83c\uddec\ud83c\uddf2","\ud83c\uddec\ud83c\uddf3","\ud83c\uddec\ud83c\uddf5","\ud83c\uddec\ud83c\uddf6","\ud83c\uddec\ud83c\uddf7","\ud83c\uddec\ud83c\uddf8","\ud83c\uddec\ud83c\uddf9","\ud83c\uddec\ud83c\uddfa","\ud83c\uddec\ud83c\uddfc","\ud83c\uddec\ud83c\uddfe","\ud83c\udded\ud83c\uddf0","\ud83c\udded\ud83c\uddf2","\ud83c\udded\ud83c\uddf3","\ud83c\udded\ud83c\uddf7","\ud83c\udded\ud83c\uddf9","\ud83c\udded\ud83c\uddfa","\ud83c\uddee\ud83c\udde8","\ud83c\uddee\ud83c\udde9","\ud83c\uddee\ud83c\uddea","\ud83c\uddee\ud83c\uddf1","\ud83c\uddee\ud83c\uddf2","\ud83c\uddee\ud83c\uddf3","\ud83c\uddee\ud83c\uddf4","\ud83c\uddee\ud83c\uddf6","\ud83c\uddee\ud83c\uddf7","\ud83c\uddee\ud83c\uddf8","\ud83c\uddee\ud83c\uddf9","\ud83c\uddef\ud83c\uddea","\ud83c\uddef\ud83c\uddf2","\ud83c\uddef\ud83c\uddf4","\ud83c\uddef\ud83c\uddf5","\ud83c\uddf0\ud83c\uddea","\ud83c\uddf0\ud83c\uddec","\ud83c\uddf0\ud83c\udded","\ud83c\uddf0\ud83c\uddee","\ud83c\uddf0\ud83c\uddf2","\ud83c\uddf0\ud83c\uddf3","\ud83c\uddf0\ud83c\uddf5","\ud83c\uddf0\ud83c\uddf7","\ud83c\uddf0\ud83c\uddfc","\ud83c\uddf0\ud83c\uddfe","\ud83c\uddf0\ud83c\uddff","\ud83c\uddf1\ud83c\udde6","\ud83c\uddf1\ud83c\udde7","\ud83c\uddf1\ud83c\udde8","\ud83c\uddf1\ud83c\uddee","\ud83c\uddf1\ud83c\uddf0","\ud83c\uddf1\ud83c\uddf7","\ud83c\uddf1\ud83c\uddf8","\ud83c\uddf1\ud83c\uddf9","\ud83c\uddf1\ud83c\uddfa","\ud83c\uddf1\ud83c\uddfb","\ud83c\uddf1\ud83c\uddfe","\ud83c\uddf2\ud83c\udde6","\ud83c\uddf2\ud83c\udde8","\ud83c\uddf2\ud83c\udde9","\ud83c\uddf2\ud83c\uddea","\ud83c\uddf2\ud83c\uddeb","\ud83c\uddf2\ud83c\uddec","\ud83c\uddf2\ud83c\udded","\ud83c\uddf2\ud83c\uddf0","\ud83c\uddf2\ud83c\uddf1","\ud83c\uddf2\ud83c\uddf2","\ud83c\uddf2\ud83c\uddf3","\ud83c\uddf2\ud83c\uddf4","\ud83c\uddf2\ud83c\uddf5","\ud83c\uddf2\ud83c\uddf6","\ud83c\uddf2\ud83c\uddf7","\ud83c\uddf2\ud83c\uddf8","\ud83c\uddf2\ud83c\uddf9","\ud83c\uddf2\ud83c\uddfa","\ud83c\uddf2\ud83c\uddfb","\ud83c\uddf2\ud83c\uddfc","\ud83c\uddf2\ud83c\uddfd","\ud83c\uddf2\ud83c\uddfe","\ud83c\uddf2\ud83c\uddff","\ud83c\uddf3\ud83c\udde6","\ud83c\uddf3\ud83c\udde8","\ud83c\uddf3\ud83c\uddea","\ud83c\uddf3\ud83c\uddeb","\ud83c\uddf3\ud83c\uddec","\ud83c\uddf3\ud83c\uddee","\ud83c\uddf3\ud83c\uddf1","\ud83c\uddf3\ud83c\uddf4","\ud83c\uddf3\ud83c\uddf5","\ud83c\uddf3\ud83c\uddf7","\ud83c\uddf3\ud83c\uddfa","\ud83c\uddf3\ud83c\uddff","\ud83c\uddf4\ud83c\uddf2","\ud83c\uddf5\ud83c\udde6","\ud83c\uddf5\ud83c\uddea","\ud83c\uddf5\ud83c\uddeb","\ud83c\uddf5\ud83c\uddec","\ud83c\uddf5\ud83c\udded","\ud83c\uddf5\ud83c\uddf0","\ud83c\uddf5\ud83c\uddf1","\ud83c\uddf5\ud83c\uddf2","\ud83c\uddf5\ud83c\uddf3","\ud83c\uddf5\ud83c\uddf7","\ud83c\uddf5\ud83c\uddf8","\ud83c\uddf5\ud83c\uddf9","\ud83c\uddf5\ud83c\uddfc","\ud83c\uddf5\ud83c\uddfe","\ud83c\uddf6\ud83c\udde6","\ud83c\uddf7\ud83c\uddea","\ud83c\uddf7\ud83c\uddf4","\ud83c\uddf7\ud83c\uddf8","\ud83c\uddf7\ud83c\uddfa","\ud83c\uddf7\ud83c\uddfc","\ud83c\uddf8\ud83c\udde6","\ud83c\uddf8\ud83c\udde7","\ud83c\uddf8\ud83c\udde8","\ud83c\uddf8\ud83c\udde9","\ud83c\uddf8\ud83c\uddea","\ud83c\uddf8\ud83c\uddec","\ud83c\uddf8\ud83c\udded","\ud83c\uddf8\ud83c\uddee","\ud83c\uddf8\ud83c\uddef","\ud83c\uddf8\ud83c\uddf0","\ud83c\uddf8\ud83c\uddf1","\ud83c\uddf8\ud83c\uddf2","\ud83c\uddf8\ud83c\uddf3","\ud83c\uddf8\ud83c\uddf4","\ud83c\uddf8\ud83c\uddf7","\ud83c\uddf8\ud83c\uddf8","\ud83c\uddf8\ud83c\uddf9","\ud83c\uddf8\ud83c\uddfb","\ud83c\uddf8\ud83c\uddfd","\ud83c\uddf8\ud83c\uddfe","\ud83c\uddf8\ud83c\uddff","\ud83c\uddf9\ud83c\udde6","\ud83c\uddf9\ud83c\udde8","\ud83c\uddf9\ud83c\udde9","\ud83c\uddf9\ud83c\uddeb","\ud83c\uddf9\ud83c\uddec","\ud83c\uddf9\ud83c\udded","\ud83c\uddf9\ud83c\uddef","\ud83c\uddf9\ud83c\uddf0","\ud83c\uddf9\ud83c\uddf1","\ud83c\uddf9\ud83c\uddf2","\ud83c\uddf9\ud83c\uddf3","\ud83c\uddf9\ud83c\uddf4","\ud83c\uddf9\ud83c\uddf7","\ud83c\uddf9\ud83c\uddf9","\ud83c\uddf9\ud83c\uddfb","\ud83c\uddf9\ud83c\uddfc","\ud83c\uddf9\ud83c\uddff","\ud83c\uddfa\ud83c\udde6","\ud83c\uddfa\ud83c\uddec","\ud83c\uddfa\ud83c\uddf2","\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\ud83c\uddf8","\ud83c\uddfa\ud83c\uddfe","\ud83c\uddfa\ud83c\uddff","\ud83c\uddfb\ud83c\udde6","\ud83c\uddfb\ud83c\udde8","\ud83c\uddfb\ud83c\uddea","\ud83c\uddfb\ud83c\uddec","\ud83c\uddfb\ud83c\uddee","\ud83c\uddfb\ud83c\uddf3","\ud83c\uddfb\ud83c\uddfa","\ud83c\uddfc\ud83c\uddeb","\ud83c\uddfc\ud83c\uddf8","\ud83c\uddfd\ud83c\uddf0","\ud83c\uddfe\ud83c\uddea","\ud83c\uddfe\ud83c\uddf9","\ud83c\uddff\ud83c\udde6","\ud83c\uddff\ud83c\uddf2","\ud83c\uddff\ud83c\uddfc","\ud83c\ude02\ufe0f","\ud83c\ude37\ufe0f","\ud83c\udf21\ufe0f","\ud83c\udf24\ufe0f","\ud83c\udf25\ufe0f","\ud83c\udf26\ufe0f","\ud83c\udf27\ufe0f","\ud83c\udf28\ufe0f","\ud83c\udf29\ufe0f","\ud83c\udf2a\ufe0f","\ud83c\udf2b\ufe0f","\ud83c\udf2c\ufe0f","\ud83c\udf36\ufe0f","\ud83c\udf44\u200d\ud83d\udfeb","\ud83c\udf4b\u200d\ud83d\udfe9","\ud83c\udf7d\ufe0f","\ud83c\udf85\ud83c\udffb","\ud83c\udf85\ud83c\udffc","\ud83c\udf85\ud83c\udffd","\ud83c\udf85\ud83c\udffe","\ud83c\udf85\ud83c\udfff","\ud83c\udf96\ufe0f","\ud83c\udf97\ufe0f","\ud83c\udf99\ufe0f","\ud83c\udf9a\ufe0f","\ud83c\udf9b\ufe0f","\ud83c\udf9e\ufe0f","\ud83c\udf9f\ufe0f","\ud83c\udfc2\ud83c\udffb","\ud83c\udfc2\ud83c\udffc","\ud83c\udfc2\ud83c\udffd","\ud83c\udfc2\ud83c\udffe","\ud83c\udfc2\ud83c\udfff","\ud83c\udfc3\u200d\u2640\ufe0f","\ud83c\udfc3\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\u200d\u2642\ufe0f","\ud83c\udfc3\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffb","\ud83c\udfc3\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udffb\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udffb\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffb\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffc","\ud83c\udfc3\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udffc\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udffc\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffc\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffd","\ud83c\udfc3\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udffd\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udffd\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffd\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffe","\ud83c\udfc3\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udffe\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udffe\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udffe\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udfff","\ud83c\udfc3\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfc3\ud83c\udfff\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfc3\ud83c\udfff\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83c\udfc3\ud83c\udfff\u200d\u27a1\ufe0f","\ud83c\udfc4\u200d\u2640\ufe0f","\ud83c\udfc4\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udffb","\ud83c\udfc4\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udffc","\ud83c\udfc4\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udffd","\ud83c\udfc4\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udffe","\ud83c\udfc4\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfc4\ud83c\udfff","\ud83c\udfc4\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfc4\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfc7\ud83c\udffb","\ud83c\udfc7\ud83c\udffc","\ud83c\udfc7\ud83c\udffd","\ud83c\udfc7\ud83c\udffe","\ud83c\udfc7\ud83c\udfff","\ud83c\udfca\u200d\u2640\ufe0f","\ud83c\udfca\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udffb","\ud83c\udfca\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udffc","\ud83c\udfca\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udffd","\ud83c\udfca\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udffe","\ud83c\udfca\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfca\ud83c\udfff","\ud83c\udfca\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfca\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udffb","\ud83c\udfcb\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udffc","\ud83c\udfcb\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udffd","\ud83c\udfcb\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udffe","\ud83c\udfcb\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfcb\ud83c\udfff","\ud83c\udfcb\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfcb\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfcb\ufe0f","\ud83c\udfcb\ufe0f\u200d\u2640\ufe0f","\ud83c\udfcb\ufe0f\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udffb","\ud83c\udfcc\ud83c\udffb\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udffb\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udffc","\ud83c\udfcc\ud83c\udffc\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udffc\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udffd","\ud83c\udfcc\ud83c\udffd\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udffd\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udffe","\ud83c\udfcc\ud83c\udffe\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udffe\u200d\u2642\ufe0f","\ud83c\udfcc\ud83c\udfff","\ud83c\udfcc\ud83c\udfff\u200d\u2640\ufe0f","\ud83c\udfcc\ud83c\udfff\u200d\u2642\ufe0f","\ud83c\udfcc\ufe0f","\ud83c\udfcc\ufe0f\u200d\u2640\ufe0f","\ud83c\udfcc\ufe0f\u200d\u2642\ufe0f","\ud83c\udfcd\ufe0f","\ud83c\udfce\ufe0f","\ud83c\udfd4\ufe0f","\ud83c\udfd5\ufe0f","\ud83c\udfd6\ufe0f","\ud83c\udfd7\ufe0f","\ud83c\udfd8\ufe0f","\ud83c\udfd9\ufe0f","\ud83c\udfda\ufe0f","\ud83c\udfdb\ufe0f","\ud83c\udfdc\ufe0f","\ud83c\udfdd\ufe0f","\ud83c\udfde\ufe0f","\ud83c\udfdf\ufe0f","\ud83c\udff3\ufe0f","\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200d\ud83c\udf08","\ud83c\udff4\u200d\u2620\ufe0f","\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f","\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f","\ud83c\udff5\ufe0f","\ud83c\udff7\ufe0f","\ud83d\udc08\u200d\u2b1b","\ud83d\udc15\u200d\ud83e\uddba","\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200d\ud83d\udd25","\ud83d\udc3b\u200d\u2744\ufe0f","\ud83d\udc3f\ufe0f","\ud83d\udc41\ufe0f","\ud83d\udc41\ufe0f\u200d\ud83d\udde8\ufe0f","\ud83d\udc42\ud83c\udffb","\ud83d\udc42\ud83c\udffc","\ud83d\udc42\ud83c\udffd","\ud83d\udc42\ud83c\udffe","\ud83d\udc42\ud83c\udfff","\ud83d\udc43\ud83c\udffb","\ud83d\udc43\ud83c\udffc","\ud83d\udc43\ud83c\udffd","\ud83d\udc43\ud83c\udffe","\ud83d\udc43\ud83c\udfff","\ud83d\udc46\ud83c\udffb","\ud83d\udc46\ud83c\udffc","\ud83d\udc46\ud83c\udffd","\ud83d\udc46\ud83c\udffe","\ud83d\udc46\ud83c\udfff","\ud83d\udc47\ud83c\udffb","\ud83d\udc47\ud83c\udffc","\ud83d\udc47\ud83c\udffd","\ud83d\udc47\ud83c\udffe","\ud83d\udc47\ud83c\udfff","\ud83d\udc48\ud83c\udffb","\ud83d\udc48\ud83c\udffc","\ud83d\udc48\ud83c\udffd","\ud83d\udc48\ud83c\udffe","\ud83d\udc48\ud83c\udfff","\ud83d\udc49\ud83c\udffb","\ud83d\udc49\ud83c\udffc","\ud83d\udc49\ud83c\udffd","\ud83d\udc49\ud83c\udffe","\ud83d\udc49\ud83c\udfff","\ud83d\udc4a\ud83c\udffb","\ud83d\udc4a\ud83c\udffc","\ud83d\udc4a\ud83c\udffd","\ud83d\udc4a\ud83c\udffe","\ud83d\udc4a\ud83c\udfff","\ud83d\udc4b\ud83c\udffb","\ud83d\udc4b\ud83c\udffc","\ud83d\udc4b\ud83c\udffd","\ud83d\udc4b\ud83c\udffe","\ud83d\udc4b\ud83c\udfff","\ud83d\udc4c\ud83c\udffb","\ud83d\udc4c\ud83c\udffc","\ud83d\udc4c\ud83c\udffd","\ud83d\udc4c\ud83c\udffe","\ud83d\udc4c\ud83c\udfff","\ud83d\udc4d\ud83c\udffb","\ud83d\udc4d\ud83c\udffc","\ud83d\udc4d\ud83c\udffd","\ud83d\udc4d\ud83c\udffe","\ud83d\udc4d\ud83c\udfff","\ud83d\udc4e\ud83c\udffb","\ud83d\udc4e\ud83c\udffc","\ud83d\udc4e\ud83c\udffd","\ud83d\udc4e\ud83c\udffe","\ud83d\udc4e\ud83c\udfff","\ud83d\udc4f\ud83c\udffb","\ud83d\udc4f\ud83c\udffc","\ud83d\udc4f\ud83c\udffd","\ud83d\udc4f\ud83c\udffe","\ud83d\udc4f\ud83c\udfff","\ud83d\udc50\ud83c\udffb","\ud83d\udc50\ud83c\udffc","\ud83d\udc50\ud83c\udffd","\ud83d\udc50\ud83c\udffe","\ud83d\udc50\ud83c\udfff","\ud83d\udc66\ud83c\udffb","\ud83d\udc66\ud83c\udffc","\ud83d\udc66\ud83c\udffd","\ud83d\udc66\ud83c\udffe","\ud83d\udc66\ud83c\udfff","\ud83d\udc67\ud83c\udffb","\ud83d\udc67\ud83c\udffc","\ud83d\udc67\ud83c\udffd","\ud83d\udc67\ud83c\udffe","\ud83d\udc67\ud83c\udfff","\ud83d\udc68\u200d\u2695\ufe0f","\ud83d\udc68\u200d\u2696\ufe0f","\ud83d\udc68\u200d\u2708\ufe0f","\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68","\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68","\ud83d\udc68\u200d\ud83c\udf3e","\ud83d\udc68\u200d\ud83c\udf73","\ud83d\udc68\u200d\ud83c\udf7c","\ud83d\udc68\u200d\ud83c\udf93","\ud83d\udc68\u200d\ud83c\udfa4","\ud83d\udc68\u200d\ud83c\udfa8","\ud83d\udc68\u200d\ud83c\udfeb","\ud83d\udc68\u200d\ud83c\udfed","\ud83d\udc68\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc68\u200d\ud83d\udcbb","\ud83d\udc68\u200d\ud83d\udcbc","\ud83d\udc68\u200d\ud83d\udd27","\ud83d\udc68\u200d\ud83d\udd2c","\ud83d\udc68\u200d\ud83d\ude80","\ud83d\udc68\u200d\ud83d\ude92","\ud83d\udc68\u200d\ud83e\uddaf","\ud83d\udc68\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\u200d\ud83e\uddb0","\ud83d\udc68\u200d\ud83e\uddb1","\ud83d\udc68\u200d\ud83e\uddb2","\ud83d\udc68\u200d\ud83e\uddb3","\ud83d\udc68\u200d\ud83e\uddbc","\ud83d\udc68\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\u200d\ud83e\uddbd","\ud83d\udc68\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffb\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udffb\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udffb\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udffb\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udffb\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udffb\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffc\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udffc\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udffc\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udffc\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udffc\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udffc\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffd\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udffd\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udffd\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udffd\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udffd\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udffd\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffe\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udffe\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udffe\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udffe\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udffe\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udffe\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udfff\u200d\u2695\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\u2696\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\u2708\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf3e","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf73","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf7c","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udf93","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfa4","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfa8","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfeb","\ud83d\udc68\ud83c\udfff\u200d\ud83c\udfed","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udcbb","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udcbc","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udd27","\ud83d\udc68\ud83c\udfff\u200d\ud83d\udd2c","\ud83d\udc68\ud83c\udfff\u200d\ud83d\ude80","\ud83d\udc68\ud83c\udfff\u200d\ud83d\ude92","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddaf","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb0","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb1","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb2","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddb3","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbc","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbd","\ud83d\udc68\ud83c\udfff\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc68\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\u200d\u2695\ufe0f","\ud83d\udc69\u200d\u2696\ufe0f","\ud83d\udc69\u200d\u2708\ufe0f","\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc68","\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc69","\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68","\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69","\ud83d\udc69\u200d\ud83c\udf3e","\ud83d\udc69\u200d\ud83c\udf73","\ud83d\udc69\u200d\ud83c\udf7c","\ud83d\udc69\u200d\ud83c\udf93","\ud83d\udc69\u200d\ud83c\udfa4","\ud83d\udc69\u200d\ud83c\udfa8","\ud83d\udc69\u200d\ud83c\udfeb","\ud83d\udc69\u200d\ud83c\udfed","\ud83d\udc69\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc67","\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66","\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67","\ud83d\udc69\u200d\ud83d\udcbb","\ud83d\udc69\u200d\ud83d\udcbc","\ud83d\udc69\u200d\ud83d\udd27","\ud83d\udc69\u200d\ud83d\udd2c","\ud83d\udc69\u200d\ud83d\ude80","\ud83d\udc69\u200d\ud83d\ude92","\ud83d\udc69\u200d\ud83e\uddaf","\ud83d\udc69\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\u200d\ud83e\uddb0","\ud83d\udc69\u200d\ud83e\uddb1","\ud83d\udc69\u200d\ud83e\uddb2","\ud83d\udc69\u200d\ud83e\uddb3","\ud83d\udc69\u200d\ud83e\uddbc","\ud83d\udc69\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\u200d\ud83e\uddbd","\ud83d\udc69\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffb\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udffb\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udffb\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udffb\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udffb\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udffb\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffc\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udffc\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udffc\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udffc\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udffc\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udffc\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffd\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udffd\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udffd\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udffd\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udffd\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udffd\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffe\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udffe\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udffe\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udffe\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udffe\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udffe\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\u2695\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\u2696\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\u2708\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c\udfff","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf3e","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf73","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf7c","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udf93","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfa4","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfa8","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfeb","\ud83d\udc69\ud83c\udfff\u200d\ud83c\udfed","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udcbb","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udcbc","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udd27","\ud83d\udc69\ud83c\udfff\u200d\ud83d\udd2c","\ud83d\udc69\ud83c\udfff\u200d\ud83d\ude80","\ud83d\udc69\ud83c\udfff\u200d\ud83d\ude92","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddaf","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb0","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb1","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb2","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddb3","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbc","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbd","\ud83d\udc69\ud83c\udfff\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffb","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffc","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffd","\ud83d\udc69\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83d\udc69\ud83c\udffe","\ud83d\udc6b\ud83c\udffb","\ud83d\udc6b\ud83c\udffc","\ud83d\udc6b\ud83c\udffd","\ud83d\udc6b\ud83c\udffe","\ud83d\udc6b\ud83c\udfff","\ud83d\udc6c\ud83c\udffb","\ud83d\udc6c\ud83c\udffc","\ud83d\udc6c\ud83c\udffd","\ud83d\udc6c\ud83c\udffe","\ud83d\udc6c\ud83c\udfff","\ud83d\udc6d\ud83c\udffb","\ud83d\udc6d\ud83c\udffc","\ud83d\udc6d\ud83c\udffd","\ud83d\udc6d\ud83c\udffe","\ud83d\udc6d\ud83c\udfff","\ud83d\udc6e\u200d\u2640\ufe0f","\ud83d\udc6e\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udffb","\ud83d\udc6e\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udffc","\ud83d\udc6e\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udffd","\ud83d\udc6e\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udffe","\ud83d\udc6e\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc6e\ud83c\udfff","\ud83d\udc6e\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc6e\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc6f\u200d\u2640\ufe0f","\ud83d\udc6f\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udffb","\ud83d\udc6f\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udffc","\ud83d\udc6f\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udffd","\ud83d\udc6f\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udffe","\ud83d\udc6f\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc6f\ud83c\udfff","\ud83d\udc6f\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc6f\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc70\u200d\u2640\ufe0f","\ud83d\udc70\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udffb","\ud83d\udc70\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udffc","\ud83d\udc70\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udffd","\ud83d\udc70\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udffe","\ud83d\udc70\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc70\ud83c\udfff","\ud83d\udc70\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc70\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc71\u200d\u2640\ufe0f","\ud83d\udc71\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udffb","\ud83d\udc71\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udffc","\ud83d\udc71\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udffd","\ud83d\udc71\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udffe","\ud83d\udc71\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc71\ud83c\udfff","\ud83d\udc71\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc71\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc72\ud83c\udffb","\ud83d\udc72\ud83c\udffc","\ud83d\udc72\ud83c\udffd","\ud83d\udc72\ud83c\udffe","\ud83d\udc72\ud83c\udfff","\ud83d\udc73\u200d\u2640\ufe0f","\ud83d\udc73\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udffb","\ud83d\udc73\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udffc","\ud83d\udc73\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udffd","\ud83d\udc73\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udffe","\ud83d\udc73\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc73\ud83c\udfff","\ud83d\udc73\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc73\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc74\ud83c\udffb","\ud83d\udc74\ud83c\udffc","\ud83d\udc74\ud83c\udffd","\ud83d\udc74\ud83c\udffe","\ud83d\udc74\ud83c\udfff","\ud83d\udc75\ud83c\udffb","\ud83d\udc75\ud83c\udffc","\ud83d\udc75\ud83c\udffd","\ud83d\udc75\ud83c\udffe","\ud83d\udc75\ud83c\udfff","\ud83d\udc76\ud83c\udffb","\ud83d\udc76\ud83c\udffc","\ud83d\udc76\ud83c\udffd","\ud83d\udc76\ud83c\udffe","\ud83d\udc76\ud83c\udfff","\ud83d\udc77\u200d\u2640\ufe0f","\ud83d\udc77\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udffb","\ud83d\udc77\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udffc","\ud83d\udc77\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udffd","\ud83d\udc77\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udffe","\ud83d\udc77\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc77\ud83c\udfff","\ud83d\udc77\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc77\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc78\ud83c\udffb","\ud83d\udc78\ud83c\udffc","\ud83d\udc78\ud83c\udffd","\ud83d\udc78\ud83c\udffe","\ud83d\udc78\ud83c\udfff","\ud83d\udc7c\ud83c\udffb","\ud83d\udc7c\ud83c\udffc","\ud83d\udc7c\ud83c\udffd","\ud83d\udc7c\ud83c\udffe","\ud83d\udc7c\ud83c\udfff","\ud83d\udc81\u200d\u2640\ufe0f","\ud83d\udc81\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udffb","\ud83d\udc81\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udffc","\ud83d\udc81\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udffd","\ud83d\udc81\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udffe","\ud83d\udc81\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc81\ud83c\udfff","\ud83d\udc81\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc81\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc82\u200d\u2640\ufe0f","\ud83d\udc82\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udffb","\ud83d\udc82\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udffc","\ud83d\udc82\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udffd","\ud83d\udc82\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udffe","\ud83d\udc82\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc82\ud83c\udfff","\ud83d\udc82\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc82\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc83\ud83c\udffb","\ud83d\udc83\ud83c\udffc","\ud83d\udc83\ud83c\udffd","\ud83d\udc83\ud83c\udffe","\ud83d\udc83\ud83c\udfff","\ud83d\udc85\ud83c\udffb","\ud83d\udc85\ud83c\udffc","\ud83d\udc85\ud83c\udffd","\ud83d\udc85\ud83c\udffe","\ud83d\udc85\ud83c\udfff","\ud83d\udc86\u200d\u2640\ufe0f","\ud83d\udc86\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udffb","\ud83d\udc86\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udffc","\ud83d\udc86\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udffd","\ud83d\udc86\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udffe","\ud83d\udc86\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc86\ud83c\udfff","\ud83d\udc86\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc86\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc87\u200d\u2640\ufe0f","\ud83d\udc87\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udffb","\ud83d\udc87\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udffc","\ud83d\udc87\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udffd","\ud83d\udc87\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udffe","\ud83d\udc87\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udc87\ud83c\udfff","\ud83d\udc87\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udc87\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udc8f\ud83c\udffb","\ud83d\udc8f\ud83c\udffc","\ud83d\udc8f\ud83c\udffd","\ud83d\udc8f\ud83c\udffe","\ud83d\udc8f\ud83c\udfff","\ud83d\udc91\ud83c\udffb","\ud83d\udc91\ud83c\udffc","\ud83d\udc91\ud83c\udffd","\ud83d\udc91\ud83c\udffe","\ud83d\udc91\ud83c\udfff","\ud83d\udcaa\ud83c\udffb","\ud83d\udcaa\ud83c\udffc","\ud83d\udcaa\ud83c\udffd","\ud83d\udcaa\ud83c\udffe","\ud83d\udcaa\ud83c\udfff","\ud83d\udcfd\ufe0f","\ud83d\udd49\ufe0f","\ud83d\udd4a\ufe0f","\ud83d\udd6f\ufe0f","\ud83d\udd70\ufe0f","\ud83d\udd73\ufe0f","\ud83d\udd74\ud83c\udffb","\ud83d\udd74\ud83c\udffc","\ud83d\udd74\ud83c\udffd","\ud83d\udd74\ud83c\udffe","\ud83d\udd74\ud83c\udfff","\ud83d\udd74\ufe0f","\ud83d\udd75\ud83c\udffb","\ud83d\udd75\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udd75\ud83c\udffc","\ud83d\udd75\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udd75\ud83c\udffd","\ud83d\udd75\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udd75\ud83c\udffe","\ud83d\udd75\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udd75\ud83c\udfff","\ud83d\udd75\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udd75\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udd75\ufe0f","\ud83d\udd75\ufe0f\u200d\u2640\ufe0f","\ud83d\udd75\ufe0f\u200d\u2642\ufe0f","\ud83d\udd76\ufe0f","\ud83d\udd77\ufe0f","\ud83d\udd78\ufe0f","\ud83d\udd79\ufe0f","\ud83d\udd7a\ud83c\udffb","\ud83d\udd7a\ud83c\udffc","\ud83d\udd7a\ud83c\udffd","\ud83d\udd7a\ud83c\udffe","\ud83d\udd7a\ud83c\udfff","\ud83d\udd87\ufe0f","\ud83d\udd8a\ufe0f","\ud83d\udd8b\ufe0f","\ud83d\udd8c\ufe0f","\ud83d\udd8d\ufe0f","\ud83d\udd90\ud83c\udffb","\ud83d\udd90\ud83c\udffc","\ud83d\udd90\ud83c\udffd","\ud83d\udd90\ud83c\udffe","\ud83d\udd90\ud83c\udfff","\ud83d\udd90\ufe0f","\ud83d\udd95\ud83c\udffb","\ud83d\udd95\ud83c\udffc","\ud83d\udd95\ud83c\udffd","\ud83d\udd95\ud83c\udffe","\ud83d\udd95\ud83c\udfff","\ud83d\udd96\ud83c\udffb","\ud83d\udd96\ud83c\udffc","\ud83d\udd96\ud83c\udffd","\ud83d\udd96\ud83c\udffe","\ud83d\udd96\ud83c\udfff","\ud83d\udda5\ufe0f","\ud83d\udda8\ufe0f","\ud83d\uddb1\ufe0f","\ud83d\uddb2\ufe0f","\ud83d\uddbc\ufe0f","\ud83d\uddc2\ufe0f","\ud83d\uddc3\ufe0f","\ud83d\uddc4\ufe0f","\ud83d\uddd1\ufe0f","\ud83d\uddd2\ufe0f","\ud83d\uddd3\ufe0f","\ud83d\udddc\ufe0f","\ud83d\udddd\ufe0f","\ud83d\uddde\ufe0f","\ud83d\udde1\ufe0f","\ud83d\udde3\ufe0f","\ud83d\udde8\ufe0f","\ud83d\uddef\ufe0f","\ud83d\uddf3\ufe0f","\ud83d\uddfa\ufe0f","\ud83d\ude2e\u200d\ud83d\udca8","\ud83d\ude35\u200d\ud83d\udcab","\ud83d\ude36\u200d\ud83c\udf2b\ufe0f","\ud83d\ude42\u200d\u2194\ufe0f","\ud83d\ude42\u200d\u2195\ufe0f","\ud83d\ude45\u200d\u2640\ufe0f","\ud83d\ude45\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udffb","\ud83d\ude45\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udffc","\ud83d\ude45\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udffd","\ud83d\ude45\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udffe","\ud83d\ude45\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude45\ud83c\udfff","\ud83d\ude45\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude45\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude46\u200d\u2640\ufe0f","\ud83d\ude46\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udffb","\ud83d\ude46\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udffc","\ud83d\ude46\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udffd","\ud83d\ude46\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udffe","\ud83d\ude46\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude46\ud83c\udfff","\ud83d\ude46\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude46\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude47\u200d\u2640\ufe0f","\ud83d\ude47\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udffb","\ud83d\ude47\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udffc","\ud83d\ude47\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udffd","\ud83d\ude47\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udffe","\ud83d\ude47\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude47\ud83c\udfff","\ud83d\ude47\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude47\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude4b\u200d\u2640\ufe0f","\ud83d\ude4b\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udffb","\ud83d\ude4b\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udffc","\ud83d\ude4b\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udffd","\ud83d\ude4b\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udffe","\ud83d\ude4b\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude4b\ud83c\udfff","\ud83d\ude4b\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude4b\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude4c\ud83c\udffb","\ud83d\ude4c\ud83c\udffc","\ud83d\ude4c\ud83c\udffd","\ud83d\ude4c\ud83c\udffe","\ud83d\ude4c\ud83c\udfff","\ud83d\ude4d\u200d\u2640\ufe0f","\ud83d\ude4d\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udffb","\ud83d\ude4d\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udffc","\ud83d\ude4d\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udffd","\ud83d\ude4d\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udffe","\ud83d\ude4d\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude4d\ud83c\udfff","\ud83d\ude4d\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude4d\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude4e\u200d\u2640\ufe0f","\ud83d\ude4e\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udffb","\ud83d\ude4e\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udffc","\ud83d\ude4e\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udffd","\ud83d\ude4e\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udffe","\ud83d\ude4e\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\ude4e\ud83c\udfff","\ud83d\ude4e\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\ude4e\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\ude4f\ud83c\udffb","\ud83d\ude4f\ud83c\udffc","\ud83d\ude4f\ud83c\udffd","\ud83d\ude4f\ud83c\udffe","\ud83d\ude4f\ud83c\udfff","\ud83d\udea3\u200d\u2640\ufe0f","\ud83d\udea3\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udffb","\ud83d\udea3\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udffc","\ud83d\udea3\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udffd","\ud83d\udea3\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udffe","\ud83d\udea3\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udea3\ud83c\udfff","\ud83d\udea3\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udea3\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udeb4\u200d\u2640\ufe0f","\ud83d\udeb4\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udffb","\ud83d\udeb4\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udffc","\ud83d\udeb4\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udffd","\ud83d\udeb4\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udffe","\ud83d\udeb4\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udeb4\ud83c\udfff","\ud83d\udeb4\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udeb4\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udeb5\u200d\u2640\ufe0f","\ud83d\udeb5\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udffb","\ud83d\udeb5\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udffc","\ud83d\udeb5\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udffd","\ud83d\udeb5\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udffe","\ud83d\udeb5\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udeb5\ud83c\udfff","\ud83d\udeb5\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udeb5\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udeb6\u200d\u2640\ufe0f","\ud83d\udeb6\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\u200d\u2642\ufe0f","\ud83d\udeb6\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffb","\ud83d\udeb6\ud83c\udffb\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udffb\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffb\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udffb\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffb\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffc","\ud83d\udeb6\ud83c\udffc\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udffc\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffc\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udffc\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffc\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffd","\ud83d\udeb6\ud83c\udffd\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udffd\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffd\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udffd\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffd\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffe","\ud83d\udeb6\ud83c\udffe\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udffe\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffe\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udffe\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udffe\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udfff","\ud83d\udeb6\ud83c\udfff\u200d\u2640\ufe0f","\ud83d\udeb6\ud83c\udfff\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udfff\u200d\u2642\ufe0f","\ud83d\udeb6\ud83c\udfff\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83d\udeb6\ud83c\udfff\u200d\u27a1\ufe0f","\ud83d\udec0\ud83c\udffb","\ud83d\udec0\ud83c\udffc","\ud83d\udec0\ud83c\udffd","\ud83d\udec0\ud83c\udffe","\ud83d\udec0\ud83c\udfff","\ud83d\udecb\ufe0f","\ud83d\udecc\ud83c\udffb","\ud83d\udecc\ud83c\udffc","\ud83d\udecc\ud83c\udffd","\ud83d\udecc\ud83c\udffe","\ud83d\udecc\ud83c\udfff","\ud83d\udecd\ufe0f","\ud83d\udece\ufe0f","\ud83d\udecf\ufe0f","\ud83d\udee0\ufe0f","\ud83d\udee1\ufe0f","\ud83d\udee2\ufe0f","\ud83d\udee3\ufe0f","\ud83d\udee4\ufe0f","\ud83d\udee5\ufe0f","\ud83d\udee9\ufe0f","\ud83d\udef0\ufe0f","\ud83d\udef3\ufe0f","\ud83e\udd0c\ud83c\udffb","\ud83e\udd0c\ud83c\udffc","\ud83e\udd0c\ud83c\udffd","\ud83e\udd0c\ud83c\udffe","\ud83e\udd0c\ud83c\udfff","\ud83e\udd0f\ud83c\udffb","\ud83e\udd0f\ud83c\udffc","\ud83e\udd0f\ud83c\udffd","\ud83e\udd0f\ud83c\udffe","\ud83e\udd0f\ud83c\udfff","\ud83e\udd18\ud83c\udffb","\ud83e\udd18\ud83c\udffc","\ud83e\udd18\ud83c\udffd","\ud83e\udd18\ud83c\udffe","\ud83e\udd18\ud83c\udfff","\ud83e\udd19\ud83c\udffb","\ud83e\udd19\ud83c\udffc","\ud83e\udd19\ud83c\udffd","\ud83e\udd19\ud83c\udffe","\ud83e\udd19\ud83c\udfff","\ud83e\udd1a\ud83c\udffb","\ud83e\udd1a\ud83c\udffc","\ud83e\udd1a\ud83c\udffd","\ud83e\udd1a\ud83c\udffe","\ud83e\udd1a\ud83c\udfff","\ud83e\udd1b\ud83c\udffb","\ud83e\udd1b\ud83c\udffc","\ud83e\udd1b\ud83c\udffd","\ud83e\udd1b\ud83c\udffe","\ud83e\udd1b\ud83c\udfff","\ud83e\udd1c\ud83c\udffb","\ud83e\udd1c\ud83c\udffc","\ud83e\udd1c\ud83c\udffd","\ud83e\udd1c\ud83c\udffe","\ud83e\udd1c\ud83c\udfff","\ud83e\udd1d\ud83c\udffb","\ud83e\udd1d\ud83c\udffc","\ud83e\udd1d\ud83c\udffd","\ud83e\udd1d\ud83c\udffe","\ud83e\udd1d\ud83c\udfff","\ud83e\udd1e\ud83c\udffb","\ud83e\udd1e\ud83c\udffc","\ud83e\udd1e\ud83c\udffd","\ud83e\udd1e\ud83c\udffe","\ud83e\udd1e\ud83c\udfff","\ud83e\udd1f\ud83c\udffb","\ud83e\udd1f\ud83c\udffc","\ud83e\udd1f\ud83c\udffd","\ud83e\udd1f\ud83c\udffe","\ud83e\udd1f\ud83c\udfff","\ud83e\udd26\u200d\u2640\ufe0f","\ud83e\udd26\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udffb","\ud83e\udd26\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udffc","\ud83e\udd26\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udffd","\ud83e\udd26\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udffe","\ud83e\udd26\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd26\ud83c\udfff","\ud83e\udd26\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd26\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd30\ud83c\udffb","\ud83e\udd30\ud83c\udffc","\ud83e\udd30\ud83c\udffd","\ud83e\udd30\ud83c\udffe","\ud83e\udd30\ud83c\udfff","\ud83e\udd31\ud83c\udffb","\ud83e\udd31\ud83c\udffc","\ud83e\udd31\ud83c\udffd","\ud83e\udd31\ud83c\udffe","\ud83e\udd31\ud83c\udfff","\ud83e\udd32\ud83c\udffb","\ud83e\udd32\ud83c\udffc","\ud83e\udd32\ud83c\udffd","\ud83e\udd32\ud83c\udffe","\ud83e\udd32\ud83c\udfff","\ud83e\udd33\ud83c\udffb","\ud83e\udd33\ud83c\udffc","\ud83e\udd33\ud83c\udffd","\ud83e\udd33\ud83c\udffe","\ud83e\udd33\ud83c\udfff","\ud83e\udd34\ud83c\udffb","\ud83e\udd34\ud83c\udffc","\ud83e\udd34\ud83c\udffd","\ud83e\udd34\ud83c\udffe","\ud83e\udd34\ud83c\udfff","\ud83e\udd35\u200d\u2640\ufe0f","\ud83e\udd35\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udffb","\ud83e\udd35\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udffc","\ud83e\udd35\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udffd","\ud83e\udd35\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udffe","\ud83e\udd35\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd35\ud83c\udfff","\ud83e\udd35\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd35\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd36\ud83c\udffb","\ud83e\udd36\ud83c\udffc","\ud83e\udd36\ud83c\udffd","\ud83e\udd36\ud83c\udffe","\ud83e\udd36\ud83c\udfff","\ud83e\udd37\u200d\u2640\ufe0f","\ud83e\udd37\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udffb","\ud83e\udd37\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udffc","\ud83e\udd37\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udffd","\ud83e\udd37\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udffe","\ud83e\udd37\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd37\ud83c\udfff","\ud83e\udd37\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd37\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd38\u200d\u2640\ufe0f","\ud83e\udd38\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udffb","\ud83e\udd38\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udffc","\ud83e\udd38\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udffd","\ud83e\udd38\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udffe","\ud83e\udd38\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd38\ud83c\udfff","\ud83e\udd38\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd38\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd39\u200d\u2640\ufe0f","\ud83e\udd39\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udffb","\ud83e\udd39\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udffc","\ud83e\udd39\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udffd","\ud83e\udd39\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udffe","\ud83e\udd39\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd39\ud83c\udfff","\ud83e\udd39\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd39\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd3c\u200d\u2640\ufe0f","\ud83e\udd3c\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udffb","\ud83e\udd3c\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udffc","\ud83e\udd3c\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udffd","\ud83e\udd3c\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udffe","\ud83e\udd3c\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd3c\ud83c\udfff","\ud83e\udd3c\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd3c\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd3d\u200d\u2640\ufe0f","\ud83e\udd3d\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udffb","\ud83e\udd3d\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udffc","\ud83e\udd3d\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udffd","\ud83e\udd3d\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udffe","\ud83e\udd3d\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd3d\ud83c\udfff","\ud83e\udd3d\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd3d\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd3e\u200d\u2640\ufe0f","\ud83e\udd3e\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udffb","\ud83e\udd3e\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udffc","\ud83e\udd3e\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udffd","\ud83e\udd3e\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udffe","\ud83e\udd3e\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udd3e\ud83c\udfff","\ud83e\udd3e\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udd3e\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udd77\ud83c\udffb","\ud83e\udd77\ud83c\udffc","\ud83e\udd77\ud83c\udffd","\ud83e\udd77\ud83c\udffe","\ud83e\udd77\ud83c\udfff","\ud83e\uddb5\ud83c\udffb","\ud83e\uddb5\ud83c\udffc","\ud83e\uddb5\ud83c\udffd","\ud83e\uddb5\ud83c\udffe","\ud83e\uddb5\ud83c\udfff","\ud83e\uddb6\ud83c\udffb","\ud83e\uddb6\ud83c\udffc","\ud83e\uddb6\ud83c\udffd","\ud83e\uddb6\ud83c\udffe","\ud83e\uddb6\ud83c\udfff","\ud83e\uddb8\u200d\u2640\ufe0f","\ud83e\uddb8\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udffb","\ud83e\uddb8\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udffc","\ud83e\uddb8\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udffd","\ud83e\uddb8\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udffe","\ud83e\uddb8\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddb8\ud83c\udfff","\ud83e\uddb8\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddb8\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddb9\u200d\u2640\ufe0f","\ud83e\uddb9\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udffb","\ud83e\uddb9\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udffc","\ud83e\uddb9\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udffd","\ud83e\uddb9\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udffe","\ud83e\uddb9\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddb9\ud83c\udfff","\ud83e\uddb9\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddb9\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddbb\ud83c\udffb","\ud83e\uddbb\ud83c\udffc","\ud83e\uddbb\ud83c\udffd","\ud83e\uddbb\ud83c\udffe","\ud83e\uddbb\ud83c\udfff","\ud83e\uddcd\u200d\u2640\ufe0f","\ud83e\uddcd\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udffb","\ud83e\uddcd\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udffc","\ud83e\uddcd\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udffd","\ud83e\uddcd\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udffe","\ud83e\uddcd\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddcd\ud83c\udfff","\ud83e\uddcd\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddcd\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddce\u200d\u2640\ufe0f","\ud83e\uddce\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\u200d\u2642\ufe0f","\ud83e\uddce\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffb","\ud83e\uddce\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udffb\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udffb\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffb\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffc","\ud83e\uddce\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udffc\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udffc\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffc\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffd","\ud83e\uddce\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udffd\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udffd\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffd\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffe","\ud83e\uddce\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udffe\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udffe\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udffe\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udfff","\ud83e\uddce\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddce\ud83c\udfff\u200d\u2640\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddce\ud83c\udfff\u200d\u2642\ufe0f\u200d\u27a1\ufe0f","\ud83e\uddce\ud83c\udfff\u200d\u27a1\ufe0f","\ud83e\uddcf\u200d\u2640\ufe0f","\ud83e\uddcf\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udffb","\ud83e\uddcf\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udffc","\ud83e\uddcf\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udffd","\ud83e\uddcf\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udffe","\ud83e\uddcf\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddcf\ud83c\udfff","\ud83e\uddcf\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddcf\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd1\u200d\u2695\ufe0f","\ud83e\uddd1\u200d\u2696\ufe0f","\ud83e\uddd1\u200d\u2708\ufe0f","\ud83e\uddd1\u200d\ud83c\udf3e","\ud83e\uddd1\u200d\ud83c\udf73","\ud83e\uddd1\u200d\ud83c\udf7c","\ud83e\uddd1\u200d\ud83c\udf84","\ud83e\uddd1\u200d\ud83c\udf93","\ud83e\uddd1\u200d\ud83c\udfa4","\ud83e\uddd1\u200d\ud83c\udfa8","\ud83e\uddd1\u200d\ud83c\udfeb","\ud83e\uddd1\u200d\ud83c\udfed","\ud83e\uddd1\u200d\ud83d\udcbb","\ud83e\uddd1\u200d\ud83d\udcbc","\ud83e\uddd1\u200d\ud83d\udd27","\ud83e\uddd1\u200d\ud83d\udd2c","\ud83e\uddd1\u200d\ud83d\ude80","\ud83e\uddd1\u200d\ud83d\ude92","\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1","\ud83e\uddd1\u200d\ud83e\uddaf","\ud83e\uddd1\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\u200d\ud83e\uddb0","\ud83e\uddd1\u200d\ud83e\uddb1","\ud83e\uddd1\u200d\ud83e\uddb2","\ud83e\uddd1\u200d\ud83e\uddb3","\ud83e\uddd1\u200d\ud83e\uddbc","\ud83e\uddd1\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\u200d\ud83e\uddbd","\ud83e\uddd1\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2","\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2","\ud83e\uddd1\u200d\ud83e\uddd2","\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2","\ud83e\uddd1\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffb\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udffb\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udffb\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffc\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udffc\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udffc\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffd\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udffd\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udffd\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffe\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udffe\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udffe\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udfff\u200d\u2695\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\u2696\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\u2708\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf3e","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf73","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf7c","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf84","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udf93","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfa4","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfa8","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfeb","\ud83e\uddd1\ud83c\udfff\u200d\ud83c\udfed","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udc30\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udcbb","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udcbc","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udd27","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\udd2c","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\ude80","\ud83e\uddd1\ud83c\udfff\u200d\ud83d\ude92","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c\udfff","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddaf","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddaf\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb0","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb1","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb2","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddb3","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbc","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbc\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbd","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\uddbd\u200d\u27a1\ufe0f","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\ude70","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffb","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffc","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffd","\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udeef\u200d\ud83e\uddd1\ud83c\udffe","\ud83e\uddd2\ud83c\udffb","\ud83e\uddd2\ud83c\udffc","\ud83e\uddd2\ud83c\udffd","\ud83e\uddd2\ud83c\udffe","\ud83e\uddd2\ud83c\udfff","\ud83e\uddd3\ud83c\udffb","\ud83e\uddd3\ud83c\udffc","\ud83e\uddd3\ud83c\udffd","\ud83e\uddd3\ud83c\udffe","\ud83e\uddd3\ud83c\udfff","\ud83e\uddd4\u200d\u2640\ufe0f","\ud83e\uddd4\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udffb","\ud83e\uddd4\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udffc","\ud83e\uddd4\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udffd","\ud83e\uddd4\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udffe","\ud83e\uddd4\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd4\ud83c\udfff","\ud83e\uddd4\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd4\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd5\ud83c\udffb","\ud83e\uddd5\ud83c\udffc","\ud83e\uddd5\ud83c\udffd","\ud83e\uddd5\ud83c\udffe","\ud83e\uddd5\ud83c\udfff","\ud83e\uddd6\u200d\u2640\ufe0f","\ud83e\uddd6\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udffb","\ud83e\uddd6\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udffc","\ud83e\uddd6\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udffd","\ud83e\uddd6\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udffe","\ud83e\uddd6\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd6\ud83c\udfff","\ud83e\uddd6\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd6\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd7\u200d\u2640\ufe0f","\ud83e\uddd7\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udffb","\ud83e\uddd7\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udffc","\ud83e\uddd7\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udffd","\ud83e\uddd7\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udffe","\ud83e\uddd7\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd7\ud83c\udfff","\ud83e\uddd7\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd7\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd8\u200d\u2640\ufe0f","\ud83e\uddd8\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udffb","\ud83e\uddd8\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udffc","\ud83e\uddd8\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udffd","\ud83e\uddd8\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udffe","\ud83e\uddd8\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd8\ud83c\udfff","\ud83e\uddd8\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd8\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddd9\u200d\u2640\ufe0f","\ud83e\uddd9\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udffb","\ud83e\uddd9\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udffc","\ud83e\uddd9\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udffd","\ud83e\uddd9\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udffe","\ud83e\uddd9\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddd9\ud83c\udfff","\ud83e\uddd9\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddd9\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddda\u200d\u2640\ufe0f","\ud83e\uddda\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udffb","\ud83e\uddda\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udffc","\ud83e\uddda\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udffd","\ud83e\uddda\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udffe","\ud83e\uddda\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\uddda\ud83c\udfff","\ud83e\uddda\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\uddda\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udddb\u200d\u2640\ufe0f","\ud83e\udddb\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udffb","\ud83e\udddb\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udffc","\ud83e\udddb\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udffd","\ud83e\udddb\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udffe","\ud83e\udddb\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udddb\ud83c\udfff","\ud83e\udddb\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udddb\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udddc\u200d\u2640\ufe0f","\ud83e\udddc\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udffb","\ud83e\udddc\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udffc","\ud83e\udddc\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udffd","\ud83e\udddc\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udffe","\ud83e\udddc\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udddc\ud83c\udfff","\ud83e\udddc\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udddc\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\udddd\u200d\u2640\ufe0f","\ud83e\udddd\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udffb","\ud83e\udddd\ud83c\udffb\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udffb\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udffc","\ud83e\udddd\ud83c\udffc\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udffc\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udffd","\ud83e\udddd\ud83c\udffd\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udffd\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udffe","\ud83e\udddd\ud83c\udffe\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udffe\u200d\u2642\ufe0f","\ud83e\udddd\ud83c\udfff","\ud83e\udddd\ud83c\udfff\u200d\u2640\ufe0f","\ud83e\udddd\ud83c\udfff\u200d\u2642\ufe0f","\ud83e\uddde\u200d\u2640\ufe0f","\ud83e\uddde\u200d\u2642\ufe0f","\ud83e\udddf\u200d\u2640\ufe0f","\ud83e\udddf\u200d\u2642\ufe0f","\ud83e\udec3\ud83c\udffb","\ud83e\udec3\ud83c\udffc","\ud83e\udec3\ud83c\udffd","\ud83e\udec3\ud83c\udffe","\ud83e\udec3\ud83c\udfff","\ud83e\udec4\ud83c\udffb","\ud83e\udec4\ud83c\udffc","\ud83e\udec4\ud83c\udffd","\ud83e\udec4\ud83c\udffe","\ud83e\udec4\ud83c\udfff","\ud83e\udec5\ud83c\udffb","\ud83e\udec5\ud83c\udffc","\ud83e\udec5\ud83c\udffd","\ud83e\udec5\ud83c\udffe","\ud83e\udec5\ud83c\udfff","\ud83e\udef0\ud83c\udffb","\ud83e\udef0\ud83c\udffc","\ud83e\udef0\ud83c\udffd","\ud83e\udef0\ud83c\udffe","\ud83e\udef0\ud83c\udfff","\ud83e\udef1\ud83c\udffb","\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udffc","\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udffd","\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udffe","\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udffc","\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udffb","\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udffd","\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udffe","\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udffd","\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udffb","\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udffc","\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udffe","\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udffe","\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udffb","\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udffc","\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udffd","\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c\udfff","\ud83e\udef1\ud83c\udfff","\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffb","\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffc","\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffd","\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c\udffe","\ud83e\udef2\ud83c\udffb","\ud83e\udef2\ud83c\udffc","\ud83e\udef2\ud83c\udffd","\ud83e\udef2\ud83c\udffe","\ud83e\udef2\ud83c\udfff","\ud83e\udef3\ud83c\udffb","\ud83e\udef3\ud83c\udffc","\ud83e\udef3\ud83c\udffd","\ud83e\udef3\ud83c\udffe","\ud83e\udef3\ud83c\udfff","\ud83e\udef4\ud83c\udffb","\ud83e\udef4\ud83c\udffc","\ud83e\udef4\ud83c\udffd","\ud83e\udef4\ud83c\udffe","\ud83e\udef4\ud83c\udfff","\ud83e\udef5\ud83c\udffb","\ud83e\udef5\ud83c\udffc","\ud83e\udef5\ud83c\udffd","\ud83e\udef5\ud83c\udffe","\ud83e\udef5\ud83c\udfff","\ud83e\udef6\ud83c\udffb","\ud83e\udef6\ud83c\udffc","\ud83e\udef6\ud83c\udffd","\ud83e\udef6\ud83c\udffe","\ud83e\udef6\ud83c\udfff","\ud83e\udef7\ud83c\udffb","\ud83e\udef7\ud83c\udffc","\ud83e\udef7\ud83c\udffd","\ud83e\udef7\ud83c\udffe","\ud83e\udef7\ud83c\udfff","\ud83e\udef8\ud83c\udffb","\ud83e\udef8\ud83c\udffc","\ud83e\udef8\ud83c\udffd","\ud83e\udef8\ud83c\udffe","\ud83e\udef8\ud83c\udfff"],t2}var a2,n2={};function s2(){if(a2)return n2;a2=1;var e=_Y(1567,1600,8271,11841);return e.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),n2.characters=e,n2}var o2,i2={};function d2(){if(o2)return i2;o2=1;var e=_Y();return e.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),i2.characters=e,i2}var c2,l2={};function u2(){if(c2)return l2;c2=1;var e=_Y();return e.addRange(82944,83526),l2.characters=e,l2}var p2,f2={};function g2(){if(p2)return f2;p2=1;var e=_Y(8271,11841,126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(1536,1540).addRange(1542,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2193).addRange(2199,2273).addRange(2275,2303).addRange(64336,64975).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(66272,66299).addRange(69216,69246).addRange(69314,69319).addRange(69328,69336).addRange(69370,69375).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),f2.characters=e,f2}var m2,y2={};function h2(){if(m2)return y2;m2=1;var e=_Y(776);return e.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),y2.characters=e,y2}var b2,v2={};function x2(){if(b2)return v2;b2=1;var e=_Y(183);return e.addRange(11824,11825).addRange(68352,68405).addRange(68409,68415),v2.characters=e,v2}var R2,j2={};function w2(){if(R2)return j2;R2=1;var e=_Y();return e.addRange(6912,6988).addRange(6990,7039),j2.characters=e,j2}var E2,S2={};function T2(){if(E2)return S2;E2=1;var e=_Y();return e.addRange(42656,42743).addRange(92160,92728),S2.characters=e,S2}var P2,A2={};function k2(){if(P2)return A2;P2=1;var e=_Y();return e.addRange(92880,92909).addRange(92912,92917),A2.characters=e,A2}var C2,_2={};function I2(){if(C2)return _2;C2=1;var e=_Y();return e.addRange(7104,7155).addRange(7164,7167),_2.characters=e,_2}var D2,O2={};function N2(){if(D2)return O2;D2=1;var e=_Y(700,2482,2519,7376,7378,7384,7393,7402,7405,7410,43249);return e.addRange(2385,2386).addRange(2404,2405).addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558).addRange(7381,7382).addRange(7413,7415),O2.characters=e,O2}var B2,M2={};function F2(){if(B2)return M2;B2=1;var e=_Y();return e.addRange(93856,93880).addRange(93883,93907),M2.characters=e,M2}var L2,U2={};function q2(){if(L2)return U2;L2=1;var e=_Y();return e.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),U2.characters=e,U2}var G2,W2={};function V2(){if(G2)return W2;G2=1;var e=_Y(711,729,12336,12343,12539);return e.addRange(713,715).addRange(746,747).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12330,12333).addRange(12549,12591).addRange(12704,12735).addRange(65093,65094).addRange(65377,65381),W2.characters=e,W2}var H2,z2={};function K2(){if(H2)return z2;H2=1;var e=_Y(69759);return e.addRange(69632,69709).addRange(69714,69749),z2.characters=e,z2}var X2,J2={};function Y2(){if(X2)return J2;X2=1;var e=_Y();return e.addRange(10240,10495),J2.characters=e,J2}var $2,Q2={};function Z2(){if($2)return Q2;$2=1;var e=_Y(43471);return e.addRange(6656,6683).addRange(6686,6687),Q2.characters=e,Q2}var e6,t6={};function r6(){if(e6)return t6;e6=1;var e=_Y();return e.addRange(5941,5942).addRange(5952,5971),t6.characters=e,t6}var a6,n6={};function s6(){if(a6)return n6;a6=1;var e=_Y();return e.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),n6.characters=e,n6}var o6,i6={};function d6(){if(o6)return i6;o6=1;var e=_Y(183,8282,8285,11825);return e.addRange(66208,66256),i6.characters=e,i6}var c6,l6={};function u6(){if(c6)return l6;c6=1;var e=_Y(772,817,862,66927);return e.addRange(66864,66915),l6.characters=e,l6}var p6,f6={};function g6(){if(p6)return f6;p6=1;var e=_Y();return e.addRange(2534,2543).addRange(4160,4169).addRange(69888,69940).addRange(69942,69959),f6.characters=e,f6}var m6,y6={};function h6(){if(m6)return y6;m6=1;var e=_Y();return e.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),y6.characters=e,y6}var b6,v6={};function x6(){if(b6)return v6;b6=1;var e=_Y(772);return e.addRange(768,770).addRange(779,780).addRange(803,804).addRange(816,817).addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),v6.characters=e,v6}var R6,j6={};function w6(){if(R6)return j6;R6=1;var e=_Y();return e.addRange(69552,69579),j6.characters=e,j6}var E6,S6={};function T6(){if(E6)return S6;E6=1;var e=_Y(215,247,712,716,728,894,901,903,1541,1757,2274,3647,11842,12288,12292,12306,12320,12342,12927,13311,43867,65279,119970,119995,120134,129008,129736,917505);return e.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,182).addRange(184,185).addRange(187,191).addRange(697,699).addRange(701,710).addRange(718,726).addRange(730,735).addRange(741,745).addRange(748,767).addRange(4053,4056).addRange(8192,8203).addRange(8206,8238).addRange(8240,8270).addRange(8272,8281).addRange(8283,8284).addRange(8286,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8385).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9257).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11263).addRange(11776,11798).addRange(11800,11823).addRange(11826,11835).addRange(11837,11840).addRange(11844,11869).addRange(12872,12895).addRange(12977,12991).addRange(13004,13007).addRange(13169,13178).addRange(13184,13279).addRange(19904,19967).addRange(42760,42785).addRange(42888,42890).addRange(43882,43883).addRange(65040,65049).addRange(65072,65092).addRange(65095,65106),e.addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65376).addRange(65504,65510).addRange(65512,65518).addRange(65529,65533).addRange(65936,65948).addRange(66e3,66044).addRange(117760,118012).addRange(118016,118451).addRange(118458,118480).addRange(118496,118512).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119488,119507).addRange(119520,119539).addRange(119552,119638).addRange(119666,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779).addRange(120782,120831).addRange(126065,126132).addRange(126209,126269).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183),e.addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127584,127589).addRange(127744,128728).addRange(128732,128748).addRange(128752,128764).addRange(128768,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129211).addRange(129216,129217).addRange(129232,129240).addRange(129280,129623).addRange(129632,129645).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784).addRange(129792,129938).addRange(129940,130042).addRange(917536,917631),S6.characters=e,S6}var P6,A6={};function k6(){if(P6)return A6;P6=1;var e=_Y(183,768,775,11799);return e.addRange(772,773).addRange(884,885).addRange(994,1007).addRange(11392,11507).addRange(11513,11519).addRange(66272,66299),A6.characters=e,A6}var C6,_6={};function I6(){if(C6)return _6;C6=1;var e=_Y();return e.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),_6.characters=e,_6}var D6,O6={};function N6(){if(D6)return O6;D6=1;var e=_Y(67592,67644,67647);return e.addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),O6.characters=e,O6}var B6,M6={};function F6(){if(B6)return M6;B6=1;var e=_Y();return e.addRange(65792,65793).addRange(77712,77810),M6.characters=e,M6}var L6,U6={};function q6(){if(L6)return U6;L6=1;var e=_Y(700,772,774,776,779,785,7467,7544,7672,11843,123023);return e.addRange(768,770).addRange(1024,1327).addRange(7296,7306).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071).addRange(122928,122989),U6.characters=e,U6}var G6,W6={};function V6(){if(G6)return W6;G6=1;var e=_Y();return e.addRange(66560,66639),W6.characters=e,W6}var H6,z6={};function K6(){if(H6)return z6;H6=1;var e=_Y(700,8432);return e.addRange(2304,2386).addRange(2389,2431).addRange(7376,7414).addRange(7416,7417).addRange(43056,43065).addRange(43232,43263).addRange(72448,72457),z6.characters=e,z6}var X6,J6={};function Y6(){if(X6)return J6;X6=1;var e=_Y(71945);return e.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),J6.characters=e,J6}var $6,Q6={};function Z6(){if($6)return Q6;$6=1;var e=_Y();return e.addRange(2404,2415).addRange(43056,43065).addRange(71680,71739),Q6.characters=e,Q6}var e4,t4={};function r4(){if(e4)return t4;e4=1;var e=_Y(183,778,11836);return e.addRange(775,776).addRange(803,804).addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113827),t4.characters=e,t4}var a4,n4={};function s4(){if(a4)return n4;a4=1;var e=_Y();return e.addRange(77824,78933).addRange(78944,82938),n4.characters=e,n4}var o4,i4={};function d4(){if(o4)return i4;o4=1;var e=_Y(183,773);return e.addRange(66816,66855),i4.characters=e,i4}var c4,l4={};function u4(){if(c4)return l4;c4=1;var e=_Y();return e.addRange(69600,69622),l4.characters=e,l4}var p4,f4={};function g4(){if(p4)return f4;p4=1;var e=_Y(782,4696,4800);return e.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),f4.characters=e,f4}var m4,y4={};function h4(){if(m4)return y4;m4=1;var e=_Y(1548,1563,1567);return e.addRange(68928,68965).addRange(68969,68997).addRange(69006,69007),y4.characters=e,y4}var b4,v4={};function x4(){if(b4)return v4;b4=1;var e=_Y(183,1417,4295,4301,8282,11559,11565,11825);return e.addRange(4256,4293).addRange(4304,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),v4.characters=e,v4}var R4,j4={};function w4(){if(R4)return j4;R4=1;var e=_Y(183,771,773,1156,1159,1417,4347,8282,11843,42607);return e.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),j4.characters=e,j4}var E4,S4={};function T4(){if(E4)return S4;E4=1;var e=_Y(183,776,817);return e.addRange(772,773).addRange(66352,66378),S4.characters=e,S4}var P4,A4={};function k4(){if(P4)return A4;P4=1;var e=_Y(7376,8432,70480,70487,73683);return e.addRange(2385,2386).addRange(2404,2405).addRange(3046,3059).addRange(7378,7379).addRange(7410,7412).addRange(7416,7417).addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70459,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516).addRange(73680,73681),A4.characters=e,A4}var C4,_4={};function I4(){if(C4)return _4;C4=1;var e=_Y(183,772,774,776,787,834,837,895,900,902,908,8025,8027,8029,8285,8486,43877,65952);return e.addRange(768,769).addRange(880,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7615,7617).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),_4.characters=e,_4}var D4,O4={};function N4(){if(D4)return O4;D4=1;var e=_Y(2768);return e.addRange(2385,2386).addRange(2404,2405).addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815).addRange(43056,43065),O4.characters=e,O4}var B4,M4={};function F4(){if(B4)return M4;B4=1;var e=_Y(183);return e.addRange(2404,2405).addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),M4.characters=e,M4}var L4,U4={};function q4(){if(L4)return U4;L4=1;var e=_Y(2620,2641,2654);return e.addRange(2385,2386).addRange(2404,2405).addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678).addRange(43056,43065),U4.characters=e,U4}var G4,W4={};function V4(){if(G4)return W4;G4=1;var e=_Y(2405);return e.addRange(90368,90425),W4.characters=e,W4}var H4,z4={};function K4(){if(H4)return z4;H4=1;var e=_Y(183,12336,12539,12783,13055);return e.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12272,12287).addRange(12289,12291).addRange(12293,12305).addRange(12307,12319).addRange(12321,12333).addRange(12343,12351).addRange(12688,12703).addRange(12736,12773).addRange(12832,12871).addRange(12928,12976).addRange(12992,13003).addRange(13144,13168).addRange(13179,13183).addRange(13280,13310).addRange(13312,19903).addRange(19968,40959).addRange(42752,42759).addRange(63744,64109).addRange(64112,64217).addRange(65093,65094).addRange(65377,65381).addRange(94178,94179).addRange(94192,94198).addRange(119648,119665).addRange(127568,127569).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041),z4.characters=e,z4}var X4,J4={};function Y4(){if(X4)return J4;X4=1;var e=_Y(12343,12539);return e.addRange(4352,4607).addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12334,12336).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65093,65094).addRange(65377,65381).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),J4.characters=e,J4}var $4,Q4={};function Z4(){if($4)return Q4;$4=1;var e=_Y(1548,1563,1567,1600,1748);return e.addRange(68864,68903).addRange(68912,68921),Q4.characters=e,Q4}var e7,t7={};function r7(){if(e7)return t7;e7=1;var e=_Y();return e.addRange(5920,5942),t7.characters=e,t7}var a7,n7={};function s7(){if(a7)return n7;a7=1;var e=_Y();return e.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),n7.characters=e,n7}var o7,i7={};function d7(){if(o7)return i7;o7=1;var e=_Y(64318);return e.addRange(775,776).addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),i7.characters=e,i7}var c7,l7={};function u7(){if(c7)return l7;c7=1;var e=_Y(12343,65392,110898,127488);return e.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12353,12438).addRange(12441,12448).addRange(12539,12540).addRange(65093,65094).addRange(65377,65381).addRange(65438,65439).addRange(110593,110879).addRange(110928,110930),l7.characters=e,l7}var p7,f7={};function g7(){if(p7)return f7;p7=1;var e=_Y();return e.addRange(67648,67669).addRange(67671,67679),f7.characters=e,f7}var m7,y7={};function h7(){if(m7)return y7;m7=1;var e=_Y(783,786,815,7673,66045);return e.addRange(788,802).addRange(806,812).addRange(818,833).addRange(835,836).addRange(838,855).addRange(857,861).addRange(863,866).addRange(2387,2388).addRange(6832,6877).addRange(6880,6891).addRange(7618,7671).addRange(7675,7679).addRange(8204,8205).addRange(8400,8431).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),y7.characters=e,y7}var b7,v7={};function x7(){if(b7)return v7;b7=1;var e=_Y();return e.addRange(68448,68466).addRange(68472,68479),v7.characters=e,v7}var R7,j7={};function w7(){if(R7)return j7;R7=1;var e=_Y();return e.addRange(68416,68437).addRange(68440,68447),j7.characters=e,j7}var E7,S7={};function T7(){if(E7)return S7;E7=1;var e=_Y();return e.addRange(43392,43469).addRange(43471,43481).addRange(43486,43487),S7.characters=e,S7}var P7,A7={};function k7(){if(P7)return A7;P7=1;var e=_Y(11825,69837);return e.addRange(2406,2415).addRange(43056,43065).addRange(69760,69826),A7.characters=e,A7}var C7,_7={};function I7(){if(C7)return _7;C7=1;var e=_Y(7376,7386,7410,7412);return e.addRange(2385,2386).addRange(2404,2405).addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3292,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315).addRange(7378,7379).addRange(43056,43061),_7.characters=e,_7}var D7,O7={};function N7(){if(D7)return O7;D7=1;var e=_Y(773,803,12343,110592,110933);return e.addRange(12289,12291).addRange(12296,12305).addRange(12307,12319).addRange(12336,12341).addRange(12348,12349).addRange(12441,12444).addRange(12448,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65093,65094).addRange(65377,65439).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),O7.characters=e,O7}var B7,M7={};function F7(){if(B7)return M7;B7=1;var e=_Y();return e.addRange(73472,73488).addRange(73490,73530).addRange(73534,73562),M7.characters=e,M7}var L7,U7={};function q7(){if(L7)return U7;L7=1;var e=_Y();return e.addRange(43264,43311),U7.characters=e,U7}var G7,W7={};function V7(){if(G7)return W7;G7=1;var e=_Y();return e.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),W7.characters=e,W7}var H7,z7={};function K7(){if(H7)return z7;H7=1;var e=_Y(94180,101631);return e.addRange(101120,101589),z7.characters=e,z7}var X7,J7={};function Y7(){if(X7)return J7;X7=1;var e=_Y();return e.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),J7.characters=e,J7}var $7,Q7={};function Z7(){if($7)return Q7;$7=1;var e=_Y();return e.addRange(2790,2799).addRange(43056,43065).addRange(70144,70161).addRange(70163,70209),Q7.characters=e,Q7}var e3,t3={};function r3(){if(e3)return t3;e3=1;var e=_Y();return e.addRange(2404,2405).addRange(43056,43065).addRange(70320,70378).addRange(70384,70393),t3.characters=e,t3}var a3,n3={};function s3(){if(a3)return n3;a3=1;var e=_Y();return e.addRange(93504,93561),n3.characters=e,n3}var o3,i3={};function d3(){if(o3)return i3;o3=1;var e=_Y(3716,3749,3782);return e.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807),i3.characters=e,i3}var c3,l3={};function u3(){if(c3)return l3;c3=1;var e=_Y(170,183,186,700,711,717,727,729,787,856,862,4347,7672,8239,8305,8319,8432,8498,8526,11799,43310);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(713,715).addRange(736,740).addRange(768,782).addRange(784,785).addRange(803,805).addRange(813,814).addRange(816,817).addRange(867,879).addRange(1157,1158).addRange(2385,2386).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42752,42759).addRange(42786,42887).addRange(42891,42972).addRange(42993,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654).addRange(122661,122666),l3.characters=e,l3}var p3,f3={};function g3(){if(p3)return f3;p3=1;var e=_Y();return e.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),f3.characters=e,f3}var m3,y3={};function h3(){if(m3)return y3;m3=1;var e=_Y(2405,6464);return e.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),y3.characters=e,y3}var b3,v3={};function x3(){if(b3)return v3;b3=1;var e=_Y();return e.addRange(65799,65843).addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),v3.characters=e,v3}var R3,j3={};function w3(){if(R3)return j3;R3=1;var e=_Y();return e.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855),j3.characters=e,j3}var E3,S3={};function T3(){if(E3)return S3;E3=1;var e=_Y(700,717,73648);return e.addRange(12298,12299).addRange(42192,42239),S3.characters=e,S3}var P3,A3={};function k3(){if(P3)return A3;P3=1;var e=_Y(8282);return e.addRange(66176,66204),A3.characters=e,A3}var C3,_3={};function I3(){if(C3)return _3;C3=1;var e=_Y(183,11825,67903);return e.addRange(67872,67897),_3.characters=e,_3}var D3,O3={};function N3(){if(D3)return O3;D3=1;var e=_Y(183);return e.addRange(2404,2415).addRange(43056,43065).addRange(69968,70006),O3.characters=e,O3}var B3,M3={};function F3(){if(B3)return M3;B3=1;var e=_Y();return e.addRange(73440,73464),M3.characters=e,M3}var L3,U3={};function q3(){if(L3)return U3;L3=1;var e=_Y(7386,7410);return e.addRange(2385,2386).addRange(2404,2405).addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455).addRange(43056,43058),U3.characters=e,U3}var G3,W3={};function V3(){if(G3)return W3;G3=1;var e=_Y(1600,2142);return e.addRange(2112,2139),W3.characters=e,W3}var H3,z3={};function K3(){if(H3)return z3;H3=1;var e=_Y(1600);return e.addRange(68288,68326).addRange(68331,68342),z3.characters=e,z3}var X3,J3={};function Y3(){if(X3)return J3;X3=1;var e=_Y();return e.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),J3.characters=e,J3}var $3,Q3={};function Z3(){if($3)return Q3;$3=1;var e=_Y(73018);return e.addRange(2404,2405).addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),Q3.characters=e,Q3}var e8,t8={};function r8(){if(e8)return t8;e8=1;var e=_Y();return e.addRange(93760,93850),t8.characters=e,t8}var a8,n8={};function s8(){if(a8)return n8;a8=1;var e=_Y();return e.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),n8.characters=e,n8}var o8,i8={};function d8(){if(o8)return i8;o8=1;var e=_Y();return e.addRange(124928,125124).addRange(125127,125142),i8.characters=e,i8}var c8,l8={};function u8(){if(c8)return l8;c8=1;var e=_Y();return e.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),l8.characters=e,l8}var p8,f8={};function g8(){if(p8)return f8;p8=1;var e=_Y(8285);return e.addRange(67968,67999),f8.characters=e,f8}var m8,y8={};function h8(){if(m8)return y8;m8=1;var e=_Y();return e.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),y8.characters=e,y8}var b8,v8={};function x8(){if(b8)return v8;b8=1;var e=_Y();return e.addRange(43056,43065).addRange(71168,71236).addRange(71248,71257),v8.characters=e,v8}var R8,j8={};function w8(){if(R8)return j8;R8=1;var e=_Y(8239);return e.addRange(6144,6169).addRange(6176,6264).addRange(6272,6314).addRange(12289,12290).addRange(12296,12299).addRange(71264,71276),j8.characters=e,j8}var E8,S8={};function T8(){if(E8)return S8;E8=1;var e=_Y();return e.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),S8.characters=e,S8}var P8,A8={};function k8(){if(P8)return A8;P8=1;var e=_Y(70280);return e.addRange(2662,2671).addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),A8.characters=e,A8}var C8,_8={};function I8(){if(C8)return _8;C8=1;var e=_Y(43310);return e.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647).addRange(71376,71395),_8.characters=e,_8}var D8,O8={};function N8(){if(D8)return O8;D8=1;var e=_Y();return e.addRange(67712,67742).addRange(67751,67759),O8.characters=e,O8}var B8,M8={};function F8(){if(B8)return M8;B8=1;var e=_Y();return e.addRange(124112,124153),M8.characters=e,M8}var L8,U8={};function q8(){if(L8)return U8;L8=1;var e=_Y(2385,7401,7410,7418);return e.addRange(2404,2405).addRange(3302,3311).addRange(43056,43061).addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),U8.characters=e,U8}var G8,W8={};function V8(){if(G8)return W8;G8=1;var e=_Y();return e.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),W8.characters=e,W8}var H8,z8={};function K8(){if(H8)return z8;H8=1;var e=_Y(7381,7394,7401,7403,7405);return e.addRange(2385,2386).addRange(7383,7384).addRange(70656,70747).addRange(70749,70753),z8.characters=e,z8}var X8,J8={};function Y8(){if(X8)return J8;X8=1;var e=_Y(1548,1563,1567);return e.addRange(1984,2042).addRange(2045,2047).addRange(64830,64831),J8.characters=e,J8}var $8,Q8={};function Z8(){if($8)return Q8;$8=1;var e=_Y(94177);return e.addRange(110960,111355),Q8.characters=e,Q8}var e9,t9={};function r9(){if(e9)return t9;e9=1;var e=_Y();return e.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),t9.characters=e,t9}var a9,n9={};function s9(){if(a9)return n9;a9=1;var e=_Y();return e.addRange(5760,5788),n9.characters=e,n9}var o9,i9={};function d9(){if(o9)return i9;o9=1;var e=_Y();return e.addRange(7248,7295),i9.characters=e,i9}var c9,l9={};function u9(){if(c9)return l9;c9=1;var e=_Y(124415);return e.addRange(2404,2405).addRange(124368,124410),l9.characters=e,l9}var p9,f9={};function g9(){if(p9)return f9;p9=1;var e=_Y(8282,8285,11825,11841);return e.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),f9.characters=e,f9}var m9,y9={};function h9(){if(m9)return y9;m9=1;var e=_Y();return e.addRange(66304,66339).addRange(66349,66351),y9.characters=e,y9}var b9,v9={};function x9(){if(b9)return v9;b9=1;var e=_Y();return e.addRange(68224,68255),v9.characters=e,v9}var R9,j9={};function w9(){if(R9)return j9;R9=1;var e=_Y(183,768,787,1155);return e.addRange(774,776).addRange(66384,66426),j9.characters=e,j9}var E9,S9={};function T9(){if(E9)return S9;E9=1;var e=_Y();return e.addRange(66464,66499).addRange(66504,66517),S9.characters=e,S9}var P9,A9={};function k9(){if(P9)return A9;P9=1;var e=_Y();return e.addRange(69376,69415),A9.characters=e,A9}var C9,_9={};function I9(){if(C9)return _9;C9=1;var e=_Y();return e.addRange(68192,68223),_9.characters=e,_9}var D9,O9={};function N9(){if(D9)return O9;D9=1;var e=_Y(8282,11824);return e.addRange(68608,68680),O9.characters=e,O9}var B9,M9={};function F9(){if(B9)return M9;B9=1;var e=_Y(1600,68338);return e.addRange(69488,69513),M9.characters=e,M9}var L9,U9={};function q9(){if(L9)return U9;L9=1;var e=_Y(7386,7410);return e.addRange(2385,2386).addRange(2404,2405).addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),U9.characters=e,U9}var G9,W9={};function V9(){if(G9)return W9;G9=1;var e=_Y(769,772,779,856);return e.addRange(66736,66771).addRange(66776,66811),W9.characters=e,W9}var H9,z9={};function K9(){if(H9)return z9;H9=1;var e=_Y();return e.addRange(66688,66717).addRange(66720,66729),z9.characters=e,z9}var X9,J9={};function Y9(){if(X9)return J9;X9=1;var e=_Y();return e.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),J9.characters=e,J9}var $9,Q9={};function Z9(){if($9)return Q9;$9=1;var e=_Y();return e.addRange(67680,67711),Q9.characters=e,Q9}var e5,t5={};function r5(){if(e5)return t5;e5=1;var e=_Y();return e.addRange(72384,72440),t5.characters=e,t5}var a5,n5={};function s5(){if(a5)return n5;a5=1;var e=_Y(6149,8239,12290);return e.addRange(6146,6147).addRange(43072,43127),n5.characters=e,n5}var o5,i5={};function d5(){if(o5)return i5;o5=1;var e=_Y(67871);return e.addRange(67840,67867),i5.characters=e,i5}var c5,l5={};function u5(){if(c5)return l5;c5=1;var e=_Y(1600);return e.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),l5.characters=e,l5}var p5,f5={};function g5(){if(p5)return f5;p5=1;var e=_Y(43359);return e.addRange(43312,43347),f5.characters=e,f5}var m5,y5={};function h5(){if(m5)return y5;m5=1;var e=_Y();return e.addRange(5792,5880),y5.characters=e,y5}var b5,v5={};function x5(){if(b5)return v5;b5=1;var e=_Y(11825);return e.addRange(2048,2093).addRange(2096,2110),v5.characters=e,v5}var R5,j5={};function w5(){if(R5)return j5;R5=1;var e=_Y();return e.addRange(43136,43205).addRange(43214,43225),j5.characters=e,j5}var E5,S5={};function T5(){if(E5)return S5;E5=1;var e=_Y(2385,7383,7385,7392,7402,7405,43064);return e.addRange(7388,7389).addRange(43056,43061).addRange(70016,70111).addRange(72544,72551),S5.characters=e,S5}var P5,A5={};function k5(){if(P5)return A5;P5=1;var e=_Y(183);return e.addRange(66640,66687),A5.characters=e,A5}var C5,_5={};function I5(){if(C5)return _5;C5=1;var e=_Y();return e.addRange(71040,71093).addRange(71096,71133),_5.characters=e,_5}var D5,O5={};function N5(){if(D5)return O5;D5=1;var e=_Y();return e.addRange(67904,67929),O5.characters=e,O5}var B5,M5={};function F5(){if(B5)return M5;B5=1;var e=_Y();return e.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),M5.characters=e,M5}var L5,U5={};function q5(){if(L5)return U5;L5=1;var e=_Y(3517,3530,3542,7410);return e.addRange(2404,2405).addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),U5.characters=e,U5}var G5,W5={};function V5(){if(G5)return W5;G5=1;var e=_Y(1600);return e.addRange(69424,69465),W5.characters=e,W5}var H5,z5={};function K5(){if(H5)return z5;H5=1;var e=_Y();return e.addRange(69840,69864).addRange(69872,69881),z5.characters=e,z5}var X5,J5={};function Y5(){if(X5)return J5;X5=1;var e=_Y();return e.addRange(72272,72354),J5.characters=e,J5}var $5,Q5={};function Z5(){if($5)return Q5;$5=1;var e=_Y();return e.addRange(7040,7103).addRange(7360,7367),Q5.characters=e,Q5}var eee,tee={};function ree(){if(eee)return tee;eee=1;var e=_Y(771,781,784,813,817);return e.addRange(768,769).addRange(72640,72673).addRange(72688,72697),tee.characters=e,tee}var aee,nee={};function see(){if(aee)return nee;aee=1;var e=_Y();return e.addRange(2404,2405).addRange(2534,2543).addRange(43008,43052),nee.characters=e,nee}var oee,iee={};function dee(){if(oee)return iee;oee=1;var e=_Y(778,1548,1567,1600,1648,7672,7674);return e.addRange(771,772).addRange(775,776).addRange(803,805).addRange(813,814).addRange(816,817).addRange(1563,1564).addRange(1611,1621).addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),iee.characters=e,iee}var cee,lee={};function uee(){if(cee)return lee;cee=1;var e=_Y(5919);return e.addRange(5888,5909).addRange(5941,5942),lee.characters=e,lee}var pee,fee={};function gee(){if(pee)return fee;pee=1;var e=_Y();return e.addRange(5941,5942).addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),fee.characters=e,fee}var mee,yee={};function hee(){if(mee)return yee;mee=1;var e=_Y(780);return e.addRange(768,769).addRange(775,776).addRange(4160,4169).addRange(6480,6509).addRange(6512,6516),yee.characters=e,yee}var bee,vee={};function xee(){if(bee)return vee;bee=1;var e=_Y();return e.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),vee.characters=e,vee}var Ree,jee={};function wee(){if(Ree)return jee;Ree=1;var e=_Y();return e.addRange(43648,43714).addRange(43739,43743),jee.characters=e,jee}var Eee,See={};function Tee(){if(Eee)return See;Eee=1;var e=_Y();return e.addRange(124608,124638).addRange(124640,124661).addRange(124670,124671),See.characters=e,See}var Pee,Aee={};function kee(){if(Pee)return Aee;Pee=1;var e=_Y();return e.addRange(2404,2405).addRange(43056,43065).addRange(71296,71353).addRange(71360,71369),Aee.characters=e,Aee}var Cee,_ee={};function Iee(){if(Cee)return _ee;Cee=1;var e=_Y(2972,3024,3031,7386,43251,70401,70403,73727);return e.addRange(2385,2386).addRange(2404,2405).addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(70459,70460).addRange(73664,73713),_ee.characters=e,_ee}var Dee,Oee={};function Nee(){if(Dee)return Oee;Dee=1;var e=_Y();return e.addRange(92784,92862).addRange(92864,92873),Oee.characters=e,Oee}var Bee,Mee={};function Fee(){if(Bee)return Mee;Bee=1;var e=_Y(12783,94176);return e.addRange(12272,12287).addRange(94208,101119).addRange(101632,101662).addRange(101760,101874),Mee.characters=e,Mee}var Lee,Uee={};function qee(){if(Lee)return Uee;Lee=1;var e=_Y(7384,7386,7410);return e.addRange(2385,2386).addRange(2404,2405).addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3164,3165).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199).addRange(7381,7382),Uee.characters=e,Uee}var Gee,Wee={};function Vee(){if(Gee)return Wee;Gee=1;var e=_Y(1548,1567,65010,65021);return e.addRange(1563,1564).addRange(1632,1641).addRange(1920,1969),Wee.characters=e,Wee}var Hee,zee={};function Kee(){if(Hee)return zee;Hee=1;var e=_Y(700,727,771,817);return e.addRange(3585,3642).addRange(3648,3675),zee.characters=e,zee}var Xee,Jee={};function Yee(){if(Xee)return Jee;Xee=1;var e=_Y();return e.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058).addRange(12296,12299),Jee.characters=e,Jee}var $ee,Qee={};function Zee(){if($ee)return Qee;$ee=1;var e=_Y(770,772,803,11647);return e.addRange(774,777).addRange(11568,11623).addRange(11631,11632),Qee.characters=e,Qee}var ete,tte={};function rte(){if(ete)return tte;ete=1;var e=_Y(7381,7394,7410);return e.addRange(2385,2386).addRange(2404,2405).addRange(43056,43065).addRange(70784,70855).addRange(70864,70873),tte.characters=e,tte}var ate,nte={};function ste(){if(ate)return nte;ate=1;var e=_Y(769,772,775,785,787,862);return e.addRange(67008,67059),nte.characters=e,nte}var ote,ite={};function dte(){if(ote)return ite;ote=1;var e=_Y();return e.addRange(73136,73179).addRange(73184,73193),ite.characters=e,ite}var cte,lte={};function ute(){if(cte)return lte;cte=1;var e=_Y(700);return e.addRange(123536,123566),lte.characters=e,lte}var pte,fte={};function gte(){if(pte)return fte;pte=1;var e=_Y(7410,7412,43249,70539,70542,70594,70597);return e.addRange(3302,3311).addRange(43056,43061).addRange(70528,70537).addRange(70544,70581).addRange(70583,70592).addRange(70599,70602).addRange(70604,70613).addRange(70615,70616).addRange(70625,70626),fte.characters=e,fte}var mte,yte={};function hte(){if(mte)return yte;mte=1;var e=_Y(66463);return e.addRange(66432,66461),yte.characters=e,yte}var bte,vte={};function xte(){if(bte)return vte;bte=1;var e=_Y(907,909,930,1328,1424,1806,2111,2143,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3163,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3791,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6431,6751,6989,8024,8026,8028,8030,8117,8133,8156,8181,8191,8293,8335,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65280,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70538,70543,70582,70593,70598,70603,70614,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,73489,74863,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124639,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129735,129939);return e.addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1535).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2194,2198).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957).addRange(2966,2968).addRange(2976,2978).addRange(2981,2983),e.addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3291).addRange(3300,3301).addRange(3316,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119).addRange(5789,5791).addRange(5881,5887).addRange(5910,5918).addRange(5943,5951).addRange(5972,5983),e.addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6878,6879).addRange(6892,6911).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7307,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8306,8307).addRange(8349,8351).addRange(8386,8399).addRange(8433,8447).addRange(8588,8591).addRange(9258,9279).addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630).addRange(11633,11646).addRange(11671,11679),e.addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12439,12440).addRange(12544,12548).addRange(12774,12782).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42973,42992).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,63743).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64976,65007).addRange(65050,65055).addRange(65132,65135).addRange(65277,65278).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489).addRange(65496,65497).addRange(65501,65503).addRange(65519,65528).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791),e.addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67007).addRange(67060,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67930,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158).addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408).addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735),e.addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,68927).addRange(68966,68968).addRange(68998,69005).addRange(69008,69215).addRange(69294,69295).addRange(69298,69313).addRange(69320,69327).addRange(69337,69369).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69836).addRange(69838,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70210,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70527).addRange(70540,70541).addRange(70595,70596).addRange(70617,70624).addRange(70627,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247).addRange(71258,71263).addRange(71277,71295),e.addRange(71354,71359).addRange(71370,71375).addRange(71396,71423).addRange(71451,71452).addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72447).addRange(72458,72543).addRange(72552,72639).addRange(72674,72687).addRange(72698,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73135).addRange(73180,73183).addRange(73194,73439).addRange(73465,73471).addRange(73531,73533).addRange(73563,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78934,78943).addRange(82939,82943).addRange(83527,90367).addRange(90426,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911),e.addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93503).addRange(93562,93759).addRange(93851,93855).addRange(93881,93882).addRange(93908,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191).addRange(94199,94207).addRange(101590,101630).addRange(101663,101759).addRange(101875,110575).addRange(110883,110897).addRange(110899,110927).addRange(110931,110932).addRange(110934,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113828,117759).addRange(118013,118015).addRange(118452,118457).addRange(118481,118495).addRange(118513,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119275,119295).addRange(119366,119487).addRange(119508,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623),e.addRange(122655,122660).addRange(122667,122879).addRange(122905,122906).addRange(122923,122927).addRange(122990,123022).addRange(123024,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124111).addRange(124154,124367).addRange(124411,124414).addRange(124416,124607).addRange(124662,124669).addRange(124672,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502).addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703).addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128729,128731).addRange(128749,128751).addRange(128765,128767).addRange(128986,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103),e.addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129212,129215).addRange(129218,129231).addRange(129241,129279).addRange(129624,129631).addRange(129646,129647).addRange(129661,129663).addRange(129675,129677).addRange(129737,129740).addRange(129757,129758).addRange(129771,129774).addRange(129785,129791).addRange(130043,131071).addRange(173792,173823).addRange(178206,178207).addRange(183982,183983).addRange(191457,191471).addRange(192094,194559).addRange(195102,196607).addRange(201547,201551).addRange(210042,917504).addRange(917506,917535).addRange(917632,917759).addRange(918e3,1114111),vte.characters=e,vte}var Rte,jte={};function wte(){if(Rte)return jte;Rte=1;var e=_Y();return e.addRange(42240,42539),jte.characters=e,jte}var Ete,Ste={};function Tte(){if(Ete)return Ste;Ete=1;var e=_Y();return e.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),Ste.characters=e,Ste}var Pte,Ate={};function kte(){if(Pte)return Ate;Pte=1;var e=_Y(123647);return e.addRange(123584,123641),Ate.characters=e,Ate}var Cte,_te={};function Ite(){if(Cte)return _te;Cte=1;var e=_Y(71935);return e.addRange(71840,71922),_te.characters=e,_te}var Dte,Ote={};function Nte(){if(Dte)return Ote;Dte=1;var e=_Y(1548,1563,1567);return e.addRange(1632,1641).addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),Ote.characters=e,Ote}var Bte,Mte={};function Fte(){if(Bte)return Mte;Bte=1;var e=_Y(12539);return e.addRange(12289,12290).addRange(12296,12305).addRange(12308,12315).addRange(40960,42124).addRange(42128,42182).addRange(65377,65381),Mte.characters=e,Mte}var Lte,Ute={};function qte(){if(Lte)return Ute;Lte=1;var e=_Y();return e.addRange(72192,72263),Ute.characters=e,Ute}var Gte,Wte={};function Vte(){if(Gte)return Wte;Gte=1;var e=_Y();return e.addRange(125184,125259).addRange(125264,125273).addRange(125278,125279),Wte.characters=e,Wte}var Hte,zte={};function Kte(){if(Hte)return zte;Hte=1;var e=_Y();return e.addRange(71424,71450).addRange(71453,71467).addRange(71472,71494),zte.characters=e,zte}var Xte,Jte={};function Yte(){if(Xte)return Jte;Xte=1;var e=_Y();return e.addRange(82944,83526),Jte.characters=e,Jte}var $te,Qte={};function Zte(){if($te)return Qte;$te=1;var e=_Y(126500,126503,126521,126523,126530,126535,126537,126539,126548,126551,126553,126555,126557,126559,126564,126590);return e.addRange(1536,1540).addRange(1542,1547).addRange(1549,1562).addRange(1564,1566).addRange(1568,1599).addRange(1601,1610).addRange(1622,1647).addRange(1649,1756).addRange(1758,1791).addRange(1872,1919).addRange(2160,2193).addRange(2199,2273).addRange(2275,2303).addRange(64336,64829).addRange(64832,64975).addRange(65008,65023).addRange(65136,65140).addRange(65142,65276).addRange(69216,69246).addRange(69314,69319).addRange(69328,69336).addRange(69370,69375).addRange(126464,126467).addRange(126469,126495).addRange(126497,126498).addRange(126505,126514).addRange(126516,126519).addRange(126541,126543).addRange(126545,126546).addRange(126561,126562).addRange(126567,126570).addRange(126572,126578).addRange(126580,126583).addRange(126585,126588).addRange(126592,126601).addRange(126603,126619).addRange(126625,126627).addRange(126629,126633).addRange(126635,126651).addRange(126704,126705),Qte.characters=e,Qte}var ere,tre={};function rre(){if(ere)return tre;ere=1;var e=_Y();return e.addRange(1329,1366).addRange(1369,1418).addRange(1421,1423).addRange(64275,64279),tre.characters=e,tre}var are,nre={};function sre(){if(are)return nre;are=1;var e=_Y();return e.addRange(68352,68405).addRange(68409,68415),nre.characters=e,nre}var ore,ire={};function dre(){if(ore)return ire;ore=1;var e=_Y();return e.addRange(6912,6988).addRange(6990,7039),ire.characters=e,ire}var cre,lre={};function ure(){if(cre)return lre;cre=1;var e=_Y();return e.addRange(42656,42743).addRange(92160,92728),lre.characters=e,lre}var pre,fre={};function gre(){if(pre)return fre;pre=1;var e=_Y();return e.addRange(92880,92909).addRange(92912,92917),fre.characters=e,fre}var mre,yre={};function hre(){if(mre)return yre;mre=1;var e=_Y();return e.addRange(7104,7155).addRange(7164,7167),yre.characters=e,yre}var bre,vre={};function xre(){if(bre)return vre;bre=1;var e=_Y(2482,2519);return e.addRange(2432,2435).addRange(2437,2444).addRange(2447,2448).addRange(2451,2472).addRange(2474,2480).addRange(2486,2489).addRange(2492,2500).addRange(2503,2504).addRange(2507,2510).addRange(2524,2525).addRange(2527,2531).addRange(2534,2558),vre.characters=e,vre}var Rre,jre={};function wre(){if(Rre)return jre;Rre=1;var e=_Y();return e.addRange(93856,93880).addRange(93883,93907),jre.characters=e,jre}var Ere,Sre={};function Tre(){if(Ere)return Sre;Ere=1;var e=_Y();return e.addRange(72704,72712).addRange(72714,72758).addRange(72760,72773).addRange(72784,72812),Sre.characters=e,Sre}var Pre,Are={};function kre(){if(Pre)return Are;Pre=1;var e=_Y();return e.addRange(746,747).addRange(12549,12591).addRange(12704,12735),Are.characters=e,Are}var Cre,_re={};function Ire(){if(Cre)return _re;Cre=1;var e=_Y(69759);return e.addRange(69632,69709).addRange(69714,69749),_re.characters=e,_re}var Dre,Ore={};function Nre(){if(Dre)return Ore;Dre=1;var e=_Y();return e.addRange(10240,10495),Ore.characters=e,Ore}var Bre,Mre={};function Fre(){if(Bre)return Mre;Bre=1;var e=_Y();return e.addRange(6656,6683).addRange(6686,6687),Mre.characters=e,Mre}var Lre,Ure={};function qre(){if(Lre)return Ure;Lre=1;var e=_Y();return e.addRange(5952,5971),Ure.characters=e,Ure}var Gre,Wre={};function Vre(){if(Gre)return Wre;Gre=1;var e=_Y();return e.addRange(5120,5759).addRange(6320,6389).addRange(72368,72383),Wre.characters=e,Wre}var Hre,zre={};function Kre(){if(Hre)return zre;Hre=1;var e=_Y();return e.addRange(66208,66256),zre.characters=e,zre}var Xre,Jre={};function Yre(){if(Xre)return Jre;Xre=1;var e=_Y(66927);return e.addRange(66864,66915),Jre.characters=e,Jre}var $re,Qre={};function Zre(){if($re)return Qre;$re=1;var e=_Y();return e.addRange(69888,69940).addRange(69942,69959),Qre.characters=e,Qre}var eae,tae={};function rae(){if(eae)return tae;eae=1;var e=_Y();return e.addRange(43520,43574).addRange(43584,43597).addRange(43600,43609).addRange(43612,43615),tae.characters=e,tae}var aae,nae={};function sae(){if(aae)return nae;aae=1;var e=_Y();return e.addRange(5024,5109).addRange(5112,5117).addRange(43888,43967),nae.characters=e,nae}var oae,iae={};function dae(){if(oae)return iae;oae=1;var e=_Y();return e.addRange(69552,69579),iae.characters=e,iae}var cae,lae={};function uae(){if(cae)return lae;cae=1;var e=_Y(215,247,884,894,901,903,1541,1548,1563,1567,1600,1757,2274,3647,4347,6149,7379,7393,7418,12294,12448,12783,13055,43310,43471,43867,65279,65392,119970,119995,120134,129008,129736,917505);return e.addRange(0,64).addRange(91,96).addRange(123,169).addRange(171,185).addRange(187,191).addRange(697,735).addRange(741,745).addRange(748,767).addRange(2404,2405).addRange(4053,4056).addRange(5867,5869).addRange(5941,5942).addRange(6146,6147).addRange(7401,7404).addRange(7406,7411).addRange(7413,7415).addRange(8192,8203).addRange(8206,8292).addRange(8294,8304).addRange(8308,8318).addRange(8320,8334).addRange(8352,8385).addRange(8448,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8525).addRange(8527,8543).addRange(8585,8587).addRange(8592,9257).addRange(9280,9290).addRange(9312,10239).addRange(10496,11123).addRange(11126,11263).addRange(11776,11869).addRange(12272,12292).addRange(12296,12320).addRange(12336,12343).addRange(12348,12351).addRange(12443,12444).addRange(12539,12540).addRange(12688,12703).addRange(12736,12773).addRange(12832,12895).addRange(12927,13007).addRange(13144,13311).addRange(19904,19967).addRange(42752,42785).addRange(42888,42890).addRange(43056,43065).addRange(43882,43883).addRange(64830,64831),e.addRange(65040,65049).addRange(65072,65106).addRange(65108,65126).addRange(65128,65131).addRange(65281,65312).addRange(65339,65344).addRange(65371,65381).addRange(65438,65439).addRange(65504,65510).addRange(65512,65518).addRange(65529,65533).addRange(65792,65794).addRange(65799,65843).addRange(65847,65855).addRange(65936,65948).addRange(66e3,66044).addRange(66273,66299).addRange(113824,113827).addRange(117760,118012).addRange(118016,118451).addRange(118458,118480).addRange(118496,118512).addRange(118608,118723).addRange(118784,119029).addRange(119040,119078).addRange(119081,119142).addRange(119146,119162).addRange(119171,119172).addRange(119180,119209).addRange(119214,119274).addRange(119488,119507).addRange(119520,119539).addRange(119552,119638).addRange(119648,119672).addRange(119808,119892).addRange(119894,119964).addRange(119966,119967).addRange(119973,119974).addRange(119977,119980).addRange(119982,119993).addRange(119997,120003).addRange(120005,120069).addRange(120071,120074).addRange(120077,120084).addRange(120086,120092).addRange(120094,120121).addRange(120123,120126).addRange(120128,120132).addRange(120138,120144).addRange(120146,120485).addRange(120488,120779),e.addRange(120782,120831).addRange(126065,126132).addRange(126209,126269).addRange(126976,127019).addRange(127024,127123).addRange(127136,127150).addRange(127153,127167).addRange(127169,127183).addRange(127185,127221).addRange(127232,127405).addRange(127462,127487).addRange(127489,127490).addRange(127504,127547).addRange(127552,127560).addRange(127568,127569).addRange(127584,127589).addRange(127744,128728).addRange(128732,128748).addRange(128752,128764).addRange(128768,128985).addRange(128992,129003).addRange(129024,129035).addRange(129040,129095).addRange(129104,129113).addRange(129120,129159).addRange(129168,129197).addRange(129200,129211).addRange(129216,129217).addRange(129232,129240).addRange(129280,129623).addRange(129632,129645).addRange(129648,129660).addRange(129664,129674).addRange(129678,129734).addRange(129741,129756).addRange(129759,129770).addRange(129775,129784).addRange(129792,129938).addRange(129940,130042).addRange(917536,917631),lae.characters=e,lae}var pae,fae={};function gae(){if(pae)return fae;pae=1;var e=_Y();return e.addRange(994,1007).addRange(11392,11507).addRange(11513,11519),fae.characters=e,fae}var mae,yae={};function hae(){if(mae)return yae;mae=1;var e=_Y();return e.addRange(73728,74649).addRange(74752,74862).addRange(74864,74868).addRange(74880,75075),yae.characters=e,yae}var bae,vae={};function xae(){if(bae)return vae;bae=1;var e=_Y(67592,67644,67647);return e.addRange(67584,67589).addRange(67594,67637).addRange(67639,67640),vae.characters=e,vae}var Rae,jae={};function wae(){if(Rae)return jae;Rae=1;var e=_Y();return e.addRange(77712,77810),jae.characters=e,jae}var Eae,Sae={};function Tae(){if(Eae)return Sae;Eae=1;var e=_Y(7467,7544,123023);return e.addRange(1024,1156).addRange(1159,1327).addRange(7296,7306).addRange(11744,11775).addRange(42560,42655).addRange(65070,65071).addRange(122928,122989),Sae.characters=e,Sae}var Pae,Aae={};function kae(){if(Pae)return Aae;Pae=1;var e=_Y();return e.addRange(66560,66639),Aae.characters=e,Aae}var Cae,_ae={};function Iae(){if(Cae)return _ae;Cae=1;var e=_Y();return e.addRange(2304,2384).addRange(2389,2403).addRange(2406,2431).addRange(43232,43263).addRange(72448,72457),_ae.characters=e,_ae}var Dae,Oae={};function Nae(){if(Dae)return Oae;Dae=1;var e=_Y(71945);return e.addRange(71936,71942).addRange(71948,71955).addRange(71957,71958).addRange(71960,71989).addRange(71991,71992).addRange(71995,72006).addRange(72016,72025),Oae.characters=e,Oae}var Bae,Mae={};function Fae(){if(Bae)return Mae;Bae=1;var e=_Y();return e.addRange(71680,71739),Mae.characters=e,Mae}var Lae,Uae={};function qae(){if(Lae)return Uae;Lae=1;var e=_Y();return e.addRange(113664,113770).addRange(113776,113788).addRange(113792,113800).addRange(113808,113817).addRange(113820,113823),Uae.characters=e,Uae}var Gae,Wae={};function Vae(){if(Gae)return Wae;Gae=1;var e=_Y();return e.addRange(77824,78933).addRange(78944,82938),Wae.characters=e,Wae}var Hae,zae={};function Kae(){if(Hae)return zae;Hae=1;var e=_Y();return e.addRange(66816,66855),zae.characters=e,zae}var Xae,Jae={};function Yae(){if(Xae)return Jae;Xae=1;var e=_Y();return e.addRange(69600,69622),Jae.characters=e,Jae}var $ae,Qae={};function Zae(){if($ae)return Qae;$ae=1;var e=_Y(4696,4800);return e.addRange(4608,4680).addRange(4682,4685).addRange(4688,4694).addRange(4698,4701).addRange(4704,4744).addRange(4746,4749).addRange(4752,4784).addRange(4786,4789).addRange(4792,4798).addRange(4802,4805).addRange(4808,4822).addRange(4824,4880).addRange(4882,4885).addRange(4888,4954).addRange(4957,4988).addRange(4992,5017).addRange(11648,11670).addRange(11680,11686).addRange(11688,11694).addRange(11696,11702).addRange(11704,11710).addRange(11712,11718).addRange(11720,11726).addRange(11728,11734).addRange(11736,11742).addRange(43777,43782).addRange(43785,43790).addRange(43793,43798).addRange(43808,43814).addRange(43816,43822).addRange(124896,124902).addRange(124904,124907).addRange(124909,124910).addRange(124912,124926),Qae.characters=e,Qae}var ene,tne={};function rne(){if(ene)return tne;ene=1;var e=_Y();return e.addRange(68928,68965).addRange(68969,68997).addRange(69006,69007),tne.characters=e,tne}var ane,nne={};function sne(){if(ane)return nne;ane=1;var e=_Y(4295,4301,11559,11565);return e.addRange(4256,4293).addRange(4304,4346).addRange(4348,4351).addRange(7312,7354).addRange(7357,7359).addRange(11520,11557),nne.characters=e,nne}var one,ine={};function dne(){if(one)return ine;one=1;var e=_Y();return e.addRange(11264,11359).addRange(122880,122886).addRange(122888,122904).addRange(122907,122913).addRange(122915,122916).addRange(122918,122922),ine.characters=e,ine}var cne,lne={};function une(){if(cne)return lne;cne=1;var e=_Y();return e.addRange(66352,66378),lne.characters=e,lne}var pne,fne={};function gne(){if(pne)return fne;pne=1;var e=_Y(70480,70487);return e.addRange(70400,70403).addRange(70405,70412).addRange(70415,70416).addRange(70419,70440).addRange(70442,70448).addRange(70450,70451).addRange(70453,70457).addRange(70460,70468).addRange(70471,70472).addRange(70475,70477).addRange(70493,70499).addRange(70502,70508).addRange(70512,70516),fne.characters=e,fne}var mne,yne={};function hne(){if(mne)return yne;mne=1;var e=_Y(895,900,902,908,7615,8025,8027,8029,8486,43877,65952);return e.addRange(880,883).addRange(885,887).addRange(890,893).addRange(904,906).addRange(910,929).addRange(931,993).addRange(1008,1023).addRange(7462,7466).addRange(7517,7521).addRange(7526,7530).addRange(7936,7957).addRange(7960,7965).addRange(7968,8005).addRange(8008,8013).addRange(8016,8023).addRange(8031,8061).addRange(8064,8116).addRange(8118,8132).addRange(8134,8147).addRange(8150,8155).addRange(8157,8175).addRange(8178,8180).addRange(8182,8190).addRange(65856,65934).addRange(119296,119365),yne.characters=e,yne}var bne,vne={};function xne(){if(bne)return vne;bne=1;var e=_Y(2768);return e.addRange(2689,2691).addRange(2693,2701).addRange(2703,2705).addRange(2707,2728).addRange(2730,2736).addRange(2738,2739).addRange(2741,2745).addRange(2748,2757).addRange(2759,2761).addRange(2763,2765).addRange(2784,2787).addRange(2790,2801).addRange(2809,2815),vne.characters=e,vne}var Rne,jne={};function wne(){if(Rne)return jne;Rne=1;var e=_Y();return e.addRange(73056,73061).addRange(73063,73064).addRange(73066,73102).addRange(73104,73105).addRange(73107,73112).addRange(73120,73129),jne.characters=e,jne}var Ene,Sne={};function Tne(){if(Ene)return Sne;Ene=1;var e=_Y(2620,2641,2654);return e.addRange(2561,2563).addRange(2565,2570).addRange(2575,2576).addRange(2579,2600).addRange(2602,2608).addRange(2610,2611).addRange(2613,2614).addRange(2616,2617).addRange(2622,2626).addRange(2631,2632).addRange(2635,2637).addRange(2649,2652).addRange(2662,2678),Sne.characters=e,Sne}var Pne,Ane={};function kne(){if(Pne)return Ane;Pne=1;var e=_Y();return e.addRange(90368,90425),Ane.characters=e,Ane}var Cne,_ne={};function Ine(){if(Cne)return _ne;Cne=1;var e=_Y(12293,12295);return e.addRange(11904,11929).addRange(11931,12019).addRange(12032,12245).addRange(12321,12329).addRange(12344,12347).addRange(13312,19903).addRange(19968,40959).addRange(63744,64109).addRange(64112,64217).addRange(94178,94179).addRange(94192,94198).addRange(131072,173791).addRange(173824,178205).addRange(178208,183981).addRange(183984,191456).addRange(191472,192093).addRange(194560,195101).addRange(196608,201546).addRange(201552,210041),_ne.characters=e,_ne}var Dne,One={};function Nne(){if(Dne)return One;Dne=1;var e=_Y();return e.addRange(4352,4607).addRange(12334,12335).addRange(12593,12686).addRange(12800,12830).addRange(12896,12926).addRange(43360,43388).addRange(44032,55203).addRange(55216,55238).addRange(55243,55291).addRange(65440,65470).addRange(65474,65479).addRange(65482,65487).addRange(65490,65495).addRange(65498,65500),One.characters=e,One}var Bne,Mne={};function Fne(){if(Bne)return Mne;Bne=1;var e=_Y();return e.addRange(68864,68903).addRange(68912,68921),Mne.characters=e,Mne}var Lne,Une={};function qne(){if(Lne)return Une;Lne=1;var e=_Y();return e.addRange(5920,5940),Une.characters=e,Une}var Gne,Wne={};function Vne(){if(Gne)return Wne;Gne=1;var e=_Y();return e.addRange(67808,67826).addRange(67828,67829).addRange(67835,67839),Wne.characters=e,Wne}var Hne,zne={};function Kne(){if(Hne)return zne;Hne=1;var e=_Y(64318);return e.addRange(1425,1479).addRange(1488,1514).addRange(1519,1524).addRange(64285,64310).addRange(64312,64316).addRange(64320,64321).addRange(64323,64324).addRange(64326,64335),zne.characters=e,zne}var Xne,Jne={};function Yne(){if(Xne)return Jne;Xne=1;var e=_Y(110898,127488);return e.addRange(12353,12438).addRange(12445,12447).addRange(110593,110879).addRange(110928,110930),Jne.characters=e,Jne}var $ne,Qne={};function Zne(){if($ne)return Qne;$ne=1;var e=_Y();return e.addRange(67648,67669).addRange(67671,67679),Qne.characters=e,Qne}var ese,tse={};function rse(){if(ese)return tse;ese=1;var e=_Y(1648,7405,7412,66045,66272,70459);return e.addRange(768,879).addRange(1157,1158).addRange(1611,1621).addRange(2385,2388).addRange(6832,6877).addRange(6880,6891).addRange(7376,7378).addRange(7380,7392).addRange(7394,7400).addRange(7416,7417).addRange(7616,7679).addRange(8204,8205).addRange(8400,8432).addRange(12330,12333).addRange(12441,12442).addRange(65024,65039).addRange(65056,65069).addRange(118528,118573).addRange(118576,118598).addRange(119143,119145).addRange(119163,119170).addRange(119173,119179).addRange(119210,119213).addRange(917760,917999),tse.characters=e,tse}var ase,nse={};function sse(){if(ase)return nse;ase=1;var e=_Y();return e.addRange(68448,68466).addRange(68472,68479),nse.characters=e,nse}var ose,ise={};function dse(){if(ose)return ise;ose=1;var e=_Y();return e.addRange(68416,68437).addRange(68440,68447),ise.characters=e,ise}var cse,lse={};function use(){if(cse)return lse;cse=1;var e=_Y();return e.addRange(43392,43469).addRange(43472,43481).addRange(43486,43487),lse.characters=e,lse}var pse,fse={};function gse(){if(pse)return fse;pse=1;var e=_Y(69837);return e.addRange(69760,69826),fse.characters=e,fse}var mse,yse={};function hse(){if(mse)return yse;mse=1;var e=_Y();return e.addRange(3200,3212).addRange(3214,3216).addRange(3218,3240).addRange(3242,3251).addRange(3253,3257).addRange(3260,3268).addRange(3270,3272).addRange(3274,3277).addRange(3285,3286).addRange(3292,3294).addRange(3296,3299).addRange(3302,3311).addRange(3313,3315),yse.characters=e,yse}var bse,vse={};function xse(){if(bse)return vse;bse=1;var e=_Y(110592,110933);return e.addRange(12449,12538).addRange(12541,12543).addRange(12784,12799).addRange(13008,13054).addRange(13056,13143).addRange(65382,65391).addRange(65393,65437).addRange(110576,110579).addRange(110581,110587).addRange(110589,110590).addRange(110880,110882).addRange(110948,110951),vse.characters=e,vse}var Rse,jse={};function wse(){if(Rse)return jse;Rse=1;var e=_Y();return e.addRange(73472,73488).addRange(73490,73530).addRange(73534,73562),jse.characters=e,jse}var Ese,Sse={};function Tse(){if(Ese)return Sse;Ese=1;var e=_Y(43311);return e.addRange(43264,43309),Sse.characters=e,Sse}var Pse,Ase={};function kse(){if(Pse)return Ase;Pse=1;var e=_Y();return e.addRange(68096,68099).addRange(68101,68102).addRange(68108,68115).addRange(68117,68119).addRange(68121,68149).addRange(68152,68154).addRange(68159,68168).addRange(68176,68184),Ase.characters=e,Ase}var Cse,_se={};function Ise(){if(Cse)return _se;Cse=1;var e=_Y(94180,101631);return e.addRange(101120,101589),_se.characters=e,_se}var Dse,Ose={};function Nse(){if(Dse)return Ose;Dse=1;var e=_Y();return e.addRange(6016,6109).addRange(6112,6121).addRange(6128,6137).addRange(6624,6655),Ose.characters=e,Ose}var Bse,Mse={};function Fse(){if(Bse)return Mse;Bse=1;var e=_Y();return e.addRange(70144,70161).addRange(70163,70209),Mse.characters=e,Mse}var Lse,Use={};function qse(){if(Lse)return Use;Lse=1;var e=_Y();return e.addRange(70320,70378).addRange(70384,70393),Use.characters=e,Use}var Gse,Wse={};function Vse(){if(Gse)return Wse;Gse=1;var e=_Y();return e.addRange(93504,93561),Wse.characters=e,Wse}var Hse,zse={};function Kse(){if(Hse)return zse;Hse=1;var e=_Y(3716,3749,3782);return e.addRange(3713,3714).addRange(3718,3722).addRange(3724,3747).addRange(3751,3773).addRange(3776,3780).addRange(3784,3790).addRange(3792,3801).addRange(3804,3807),zse.characters=e,zse}var Xse,Jse={};function Yse(){if(Xse)return Jse;Xse=1;var e=_Y(170,186,8305,8319,8498,8526);return e.addRange(65,90).addRange(97,122).addRange(192,214).addRange(216,246).addRange(248,696).addRange(736,740).addRange(7424,7461).addRange(7468,7516).addRange(7522,7525).addRange(7531,7543).addRange(7545,7614).addRange(7680,7935).addRange(8336,8348).addRange(8490,8491).addRange(8544,8584).addRange(11360,11391).addRange(42786,42887).addRange(42891,42972).addRange(42993,43007).addRange(43824,43866).addRange(43868,43876).addRange(43878,43881).addRange(64256,64262).addRange(65313,65338).addRange(65345,65370).addRange(67456,67461).addRange(67463,67504).addRange(67506,67514).addRange(122624,122654).addRange(122661,122666),Jse.characters=e,Jse}var $se,Qse={};function Zse(){if($se)return Qse;$se=1;var e=_Y();return e.addRange(7168,7223).addRange(7227,7241).addRange(7245,7247),Qse.characters=e,Qse}var eoe,toe={};function roe(){if(eoe)return toe;eoe=1;var e=_Y(6464);return e.addRange(6400,6430).addRange(6432,6443).addRange(6448,6459).addRange(6468,6479),toe.characters=e,toe}var aoe,noe={};function soe(){if(aoe)return noe;aoe=1;var e=_Y();return e.addRange(67072,67382).addRange(67392,67413).addRange(67424,67431),noe.characters=e,noe}var ooe,ioe={};function doe(){if(ooe)return ioe;ooe=1;var e=_Y();return e.addRange(65536,65547).addRange(65549,65574).addRange(65576,65594).addRange(65596,65597).addRange(65599,65613).addRange(65616,65629).addRange(65664,65786),ioe.characters=e,ioe}var coe,loe={};function uoe(){if(coe)return loe;coe=1;var e=_Y(73648);return e.addRange(42192,42239),loe.characters=e,loe}var poe,foe={};function goe(){if(poe)return foe;poe=1;var e=_Y();return e.addRange(66176,66204),foe.characters=e,foe}var moe,yoe={};function hoe(){if(moe)return yoe;moe=1;var e=_Y(67903);return e.addRange(67872,67897),yoe.characters=e,yoe}var boe,voe={};function xoe(){if(boe)return voe;boe=1;var e=_Y();return e.addRange(69968,70006),voe.characters=e,voe}var Roe,joe={};function woe(){if(Roe)return joe;Roe=1;var e=_Y();return e.addRange(73440,73464),joe.characters=e,joe}var Eoe,Soe={};function Toe(){if(Eoe)return Soe;Eoe=1;var e=_Y();return e.addRange(3328,3340).addRange(3342,3344).addRange(3346,3396).addRange(3398,3400).addRange(3402,3407).addRange(3412,3427).addRange(3430,3455),Soe.characters=e,Soe}var Poe,Aoe={};function koe(){if(Poe)return Aoe;Poe=1;var e=_Y(2142);return e.addRange(2112,2139),Aoe.characters=e,Aoe}var Coe,_oe={};function Ioe(){if(Coe)return _oe;Coe=1;var e=_Y();return e.addRange(68288,68326).addRange(68331,68342),_oe.characters=e,_oe}var Doe,Ooe={};function Noe(){if(Doe)return Ooe;Doe=1;var e=_Y();return e.addRange(72816,72847).addRange(72850,72871).addRange(72873,72886),Ooe.characters=e,Ooe}var Boe,Moe={};function Foe(){if(Boe)return Moe;Boe=1;var e=_Y(73018);return e.addRange(72960,72966).addRange(72968,72969).addRange(72971,73014).addRange(73020,73021).addRange(73023,73031).addRange(73040,73049),Moe.characters=e,Moe}var Loe,Uoe={};function qoe(){if(Loe)return Uoe;Loe=1;var e=_Y();return e.addRange(93760,93850),Uoe.characters=e,Uoe}var Goe,Woe={};function Voe(){if(Goe)return Woe;Goe=1;var e=_Y();return e.addRange(43744,43766).addRange(43968,44013).addRange(44016,44025),Woe.characters=e,Woe}var Hoe,zoe={};function Koe(){if(Hoe)return zoe;Hoe=1;var e=_Y();return e.addRange(124928,125124).addRange(125127,125142),zoe.characters=e,zoe}var Xoe,Joe={};function Yoe(){if(Xoe)return Joe;Xoe=1;var e=_Y();return e.addRange(68e3,68023).addRange(68028,68047).addRange(68050,68095),Joe.characters=e,Joe}var $oe,Qoe={};function Zoe(){if($oe)return Qoe;$oe=1;var e=_Y();return e.addRange(67968,67999),Qoe.characters=e,Qoe}var eie,tie={};function rie(){if(eie)return tie;eie=1;var e=_Y();return e.addRange(93952,94026).addRange(94031,94087).addRange(94095,94111),tie.characters=e,tie}var aie,nie={};function sie(){if(aie)return nie;aie=1;var e=_Y();return e.addRange(71168,71236).addRange(71248,71257),nie.characters=e,nie}var oie,iie={};function die(){if(oie)return iie;oie=1;var e=_Y(6148);return e.addRange(6144,6145).addRange(6150,6169).addRange(6176,6264).addRange(6272,6314).addRange(71264,71276),iie.characters=e,iie}var cie,lie={};function uie(){if(cie)return lie;cie=1;var e=_Y();return e.addRange(92736,92766).addRange(92768,92777).addRange(92782,92783),lie.characters=e,lie}var pie,fie={};function gie(){if(pie)return fie;pie=1;var e=_Y(70280);return e.addRange(70272,70278).addRange(70282,70285).addRange(70287,70301).addRange(70303,70313),fie.characters=e,fie}var mie,yie={};function hie(){if(mie)return yie;mie=1;var e=_Y();return e.addRange(4096,4255).addRange(43488,43518).addRange(43616,43647).addRange(71376,71395),yie.characters=e,yie}var bie,vie={};function xie(){if(bie)return vie;bie=1;var e=_Y();return e.addRange(67712,67742).addRange(67751,67759),vie.characters=e,vie}var Rie,jie={};function wie(){if(Rie)return jie;Rie=1;var e=_Y();return e.addRange(124112,124153),jie.characters=e,jie}var Eie,Sie={};function Tie(){if(Eie)return Sie;Eie=1;var e=_Y();return e.addRange(72096,72103).addRange(72106,72151).addRange(72154,72164),Sie.characters=e,Sie}var Pie,Aie={};function kie(){if(Pie)return Aie;Pie=1;var e=_Y();return e.addRange(6528,6571).addRange(6576,6601).addRange(6608,6618).addRange(6622,6623),Aie.characters=e,Aie}var Cie,_ie={};function Iie(){if(Cie)return _ie;Cie=1;var e=_Y();return e.addRange(70656,70747).addRange(70749,70753),_ie.characters=e,_ie}var Die,Oie={};function Nie(){if(Die)return Oie;Die=1;var e=_Y();return e.addRange(1984,2042).addRange(2045,2047),Oie.characters=e,Oie}var Bie,Mie={};function Fie(){if(Bie)return Mie;Bie=1;var e=_Y(94177);return e.addRange(110960,111355),Mie.characters=e,Mie}var Lie,Uie={};function qie(){if(Lie)return Uie;Lie=1;var e=_Y();return e.addRange(123136,123180).addRange(123184,123197).addRange(123200,123209).addRange(123214,123215),Uie.characters=e,Uie}var Gie,Wie={};function Vie(){if(Gie)return Wie;Gie=1;var e=_Y();return e.addRange(5760,5788),Wie.characters=e,Wie}var Hie,zie={};function Kie(){if(Hie)return zie;Hie=1;var e=_Y();return e.addRange(7248,7295),zie.characters=e,zie}var Xie,Jie={};function Yie(){if(Xie)return Jie;Xie=1;var e=_Y(124415);return e.addRange(124368,124410),Jie.characters=e,Jie}var $ie,Qie={};function Zie(){if($ie)return Qie;$ie=1;var e=_Y();return e.addRange(68736,68786).addRange(68800,68850).addRange(68858,68863),Qie.characters=e,Qie}var ede,tde={};function rde(){if(ede)return tde;ede=1;var e=_Y();return e.addRange(66304,66339).addRange(66349,66351),tde.characters=e,tde}var ade,nde={};function sde(){if(ade)return nde;ade=1;var e=_Y();return e.addRange(68224,68255),nde.characters=e,nde}var ode,ide={};function dde(){if(ode)return ide;ode=1;var e=_Y();return e.addRange(66384,66426),ide.characters=e,ide}var cde,lde={};function ude(){if(cde)return lde;cde=1;var e=_Y();return e.addRange(66464,66499).addRange(66504,66517),lde.characters=e,lde}var pde,fde={};function gde(){if(pde)return fde;pde=1;var e=_Y();return e.addRange(69376,69415),fde.characters=e,fde}var mde,yde={};function hde(){if(mde)return yde;mde=1;var e=_Y();return e.addRange(68192,68223),yde.characters=e,yde}var bde,vde={};function xde(){if(bde)return vde;bde=1;var e=_Y();return e.addRange(68608,68680),vde.characters=e,vde}var Rde,jde={};function wde(){if(Rde)return jde;Rde=1;var e=_Y();return e.addRange(69488,69513),jde.characters=e,jde}var Ede,Sde={};function Tde(){if(Ede)return Sde;Ede=1;var e=_Y();return e.addRange(2817,2819).addRange(2821,2828).addRange(2831,2832).addRange(2835,2856).addRange(2858,2864).addRange(2866,2867).addRange(2869,2873).addRange(2876,2884).addRange(2887,2888).addRange(2891,2893).addRange(2901,2903).addRange(2908,2909).addRange(2911,2915).addRange(2918,2935),Sde.characters=e,Sde}var Pde,Ade={};function kde(){if(Pde)return Ade;Pde=1;var e=_Y();return e.addRange(66736,66771).addRange(66776,66811),Ade.characters=e,Ade}var Cde,_de={};function Ide(){if(Cde)return _de;Cde=1;var e=_Y();return e.addRange(66688,66717).addRange(66720,66729),_de.characters=e,_de}var Dde,Ode={};function Nde(){if(Dde)return Ode;Dde=1;var e=_Y();return e.addRange(92928,92997).addRange(93008,93017).addRange(93019,93025).addRange(93027,93047).addRange(93053,93071),Ode.characters=e,Ode}var Bde,Mde={};function Fde(){if(Bde)return Mde;Bde=1;var e=_Y();return e.addRange(67680,67711),Mde.characters=e,Mde}var Lde,Ude={};function qde(){if(Lde)return Ude;Lde=1;var e=_Y();return e.addRange(72384,72440),Ude.characters=e,Ude}var Gde,Wde={};function Vde(){if(Gde)return Wde;Gde=1;var e=_Y();return e.addRange(43072,43127),Wde.characters=e,Wde}var Hde,zde={};function Kde(){if(Hde)return zde;Hde=1;var e=_Y(67871);return e.addRange(67840,67867),zde.characters=e,zde}var Xde,Jde={};function Yde(){if(Xde)return Jde;Xde=1;var e=_Y();return e.addRange(68480,68497).addRange(68505,68508).addRange(68521,68527),Jde.characters=e,Jde}var $de,Qde={};function Zde(){if($de)return Qde;$de=1;var e=_Y(43359);return e.addRange(43312,43347),Qde.characters=e,Qde}var ece,tce={};function rce(){if(ece)return tce;ece=1;var e=_Y();return e.addRange(5792,5866).addRange(5870,5880),tce.characters=e,tce}var ace,nce={};function sce(){if(ace)return nce;ace=1;var e=_Y();return e.addRange(2048,2093).addRange(2096,2110),nce.characters=e,nce}var oce,ice={};function dce(){if(oce)return ice;oce=1;var e=_Y();return e.addRange(43136,43205).addRange(43214,43225),ice.characters=e,ice}var cce,lce={};function uce(){if(cce)return lce;cce=1;var e=_Y();return e.addRange(70016,70111).addRange(72544,72551),lce.characters=e,lce}var pce,fce={};function gce(){if(pce)return fce;pce=1;var e=_Y();return e.addRange(66640,66687),fce.characters=e,fce}var mce,yce={};function hce(){if(mce)return yce;mce=1;var e=_Y();return e.addRange(71040,71093).addRange(71096,71133),yce.characters=e,yce}var bce,vce={};function xce(){if(bce)return vce;bce=1;var e=_Y();return e.addRange(67904,67929),vce.characters=e,vce}var Rce,jce={};function wce(){if(Rce)return jce;Rce=1;var e=_Y();return e.addRange(120832,121483).addRange(121499,121503).addRange(121505,121519),jce.characters=e,jce}var Ece,Sce={};function Tce(){if(Ece)return Sce;Ece=1;var e=_Y(3517,3530,3542);return e.addRange(3457,3459).addRange(3461,3478).addRange(3482,3505).addRange(3507,3515).addRange(3520,3526).addRange(3535,3540).addRange(3544,3551).addRange(3558,3567).addRange(3570,3572).addRange(70113,70132),Sce.characters=e,Sce}var Pce,Ace={};function kce(){if(Pce)return Ace;Pce=1;var e=_Y();return e.addRange(69424,69465),Ace.characters=e,Ace}var Cce,_ce={};function Ice(){if(Cce)return _ce;Cce=1;var e=_Y();return e.addRange(69840,69864).addRange(69872,69881),_ce.characters=e,_ce}var Dce,Oce={};function Nce(){if(Dce)return Oce;Dce=1;var e=_Y();return e.addRange(72272,72354),Oce.characters=e,Oce}var Bce,Mce={};function Fce(){if(Bce)return Mce;Bce=1;var e=_Y();return e.addRange(7040,7103).addRange(7360,7367),Mce.characters=e,Mce}var Lce,Uce={};function qce(){if(Lce)return Uce;Lce=1;var e=_Y();return e.addRange(72640,72673).addRange(72688,72697),Uce.characters=e,Uce}var Gce,Wce={};function Vce(){if(Gce)return Wce;Gce=1;var e=_Y();return e.addRange(43008,43052),Wce.characters=e,Wce}var Hce,zce={};function Kce(){if(Hce)return zce;Hce=1;var e=_Y();return e.addRange(1792,1805).addRange(1807,1866).addRange(1869,1871).addRange(2144,2154),zce.characters=e,zce}var Xce,Jce={};function Yce(){if(Xce)return Jce;Xce=1;var e=_Y(5919);return e.addRange(5888,5909),Jce.characters=e,Jce}var $ce,Qce={};function Zce(){if($ce)return Qce;$ce=1;var e=_Y();return e.addRange(5984,5996).addRange(5998,6e3).addRange(6002,6003),Qce.characters=e,Qce}var ele,tle={};function rle(){if(ele)return tle;ele=1;var e=_Y();return e.addRange(6480,6509).addRange(6512,6516),tle.characters=e,tle}var ale,nle={};function sle(){if(ale)return nle;ale=1;var e=_Y();return e.addRange(6688,6750).addRange(6752,6780).addRange(6783,6793).addRange(6800,6809).addRange(6816,6829),nle.characters=e,nle}var ole,ile={};function dle(){if(ole)return ile;ole=1;var e=_Y();return e.addRange(43648,43714).addRange(43739,43743),ile.characters=e,ile}var cle,lle={};function ule(){if(cle)return lle;cle=1;var e=_Y();return e.addRange(124608,124638).addRange(124640,124661).addRange(124670,124671),lle.characters=e,lle}var ple,fle={};function gle(){if(ple)return fle;ple=1;var e=_Y();return e.addRange(71296,71353).addRange(71360,71369),fle.characters=e,fle}var mle,yle={};function hle(){if(mle)return yle;mle=1;var e=_Y(2972,3024,3031,73727);return e.addRange(2946,2947).addRange(2949,2954).addRange(2958,2960).addRange(2962,2965).addRange(2969,2970).addRange(2974,2975).addRange(2979,2980).addRange(2984,2986).addRange(2990,3001).addRange(3006,3010).addRange(3014,3016).addRange(3018,3021).addRange(3046,3066).addRange(73664,73713),yle.characters=e,yle}var ble,vle={};function xle(){if(ble)return vle;ble=1;var e=_Y();return e.addRange(92784,92862).addRange(92864,92873),vle.characters=e,vle}var Rle,jle={};function wle(){if(Rle)return jle;Rle=1;var e=_Y(94176);return e.addRange(94208,101119).addRange(101632,101662).addRange(101760,101874),jle.characters=e,jle}var Ele,Sle={};function Tle(){if(Ele)return Sle;Ele=1;var e=_Y();return e.addRange(3072,3084).addRange(3086,3088).addRange(3090,3112).addRange(3114,3129).addRange(3132,3140).addRange(3142,3144).addRange(3146,3149).addRange(3157,3158).addRange(3160,3162).addRange(3164,3165).addRange(3168,3171).addRange(3174,3183).addRange(3191,3199),Sle.characters=e,Sle}var Ple,Ale={};function kle(){if(Ple)return Ale;Ple=1;var e=_Y();return e.addRange(1920,1969),Ale.characters=e,Ale}var Cle,_le={};function Ile(){if(Cle)return _le;Cle=1;var e=_Y();return e.addRange(3585,3642).addRange(3648,3675),_le.characters=e,_le}var Dle,Ole={};function Nle(){if(Dle)return Ole;Dle=1;var e=_Y();return e.addRange(3840,3911).addRange(3913,3948).addRange(3953,3991).addRange(3993,4028).addRange(4030,4044).addRange(4046,4052).addRange(4057,4058),Ole.characters=e,Ole}var Ble,Mle={};function Fle(){if(Ble)return Mle;Ble=1;var e=_Y(11647);return e.addRange(11568,11623).addRange(11631,11632),Mle.characters=e,Mle}var Lle,Ule={};function qle(){if(Lle)return Ule;Lle=1;var e=_Y();return e.addRange(70784,70855).addRange(70864,70873),Ule.characters=e,Ule}var Gle,Wle={};function Vle(){if(Gle)return Wle;Gle=1;var e=_Y();return e.addRange(67008,67059),Wle.characters=e,Wle}var Hle,zle={};function Kle(){if(Hle)return zle;Hle=1;var e=_Y();return e.addRange(73136,73179).addRange(73184,73193),zle.characters=e,zle}var Xle,Jle={};function Yle(){if(Xle)return Jle;Xle=1;var e=_Y();return e.addRange(123536,123566),Jle.characters=e,Jle}var $le,Qle={};function Zle(){if($le)return Qle;$le=1;var e=_Y(70539,70542,70594,70597);return e.addRange(70528,70537).addRange(70544,70581).addRange(70583,70592).addRange(70599,70602).addRange(70604,70613).addRange(70615,70616).addRange(70625,70626),Qle.characters=e,Qle}var eue,tue={};function rue(){if(eue)return tue;eue=1;var e=_Y(66463);return e.addRange(66432,66461),tue.characters=e,tue}var aue,nue={};function sue(){if(aue)return nue;aue=1;var e=_Y(907,909,930,1328,1424,1806,2111,2143,2436,2473,2481,2526,2564,2601,2609,2612,2615,2621,2653,2692,2702,2706,2729,2737,2740,2758,2762,2816,2820,2857,2865,2868,2910,2948,2961,2971,2973,3017,3085,3089,3113,3141,3145,3159,3163,3213,3217,3241,3252,3269,3273,3295,3312,3341,3345,3397,3401,3456,3460,3506,3516,3541,3543,3715,3717,3723,3748,3750,3781,3783,3791,3912,3992,4029,4045,4294,4681,4695,4697,4745,4785,4799,4801,4823,4881,5997,6001,6431,6751,6989,8024,8026,8028,8030,8117,8133,8156,8181,8191,8293,8335,11558,11687,11695,11703,11711,11719,11727,11735,11743,11930,12352,12592,12687,12831,43470,43519,43815,43823,64311,64317,64319,64322,64325,65107,65127,65141,65280,65511,65548,65575,65595,65598,65935,66462,66939,66955,66963,66966,66978,66994,67002,67462,67505,67593,67638,67670,67827,68100,68116,68120,69247,69290,69941,70112,70162,70279,70281,70286,70302,70404,70441,70449,70452,70458,70538,70543,70582,70593,70598,70603,70614,70748,71956,71959,71990,72713,72759,72872,72967,72970,73019,73022,73062,73065,73103,73106,73489,74863,92767,92863,93018,93026,110580,110588,110591,119893,119965,119981,119994,119996,120004,120070,120085,120093,120122,120127,120133,120145,121504,122887,122914,122917,124639,124903,124908,124911,124927,126468,126496,126499,126504,126515,126520,126522,126536,126538,126540,126544,126547,126552,126554,126556,126558,126560,126563,126571,126579,126584,126589,126591,126602,126628,126634,127168,127184,129735,129939);return e.addRange(888,889).addRange(896,899).addRange(1367,1368).addRange(1419,1420).addRange(1480,1487).addRange(1515,1518).addRange(1525,1535).addRange(1867,1868).addRange(1970,1983).addRange(2043,2044).addRange(2094,2095).addRange(2140,2141).addRange(2155,2159).addRange(2194,2198).addRange(2445,2446).addRange(2449,2450).addRange(2483,2485).addRange(2490,2491).addRange(2501,2502).addRange(2505,2506).addRange(2511,2518).addRange(2520,2523).addRange(2532,2533).addRange(2559,2560).addRange(2571,2574).addRange(2577,2578).addRange(2618,2619).addRange(2627,2630).addRange(2633,2634).addRange(2638,2640).addRange(2642,2648).addRange(2655,2661).addRange(2679,2688).addRange(2746,2747).addRange(2766,2767).addRange(2769,2783).addRange(2788,2789).addRange(2802,2808).addRange(2829,2830).addRange(2833,2834).addRange(2874,2875).addRange(2885,2886).addRange(2889,2890).addRange(2894,2900).addRange(2904,2907).addRange(2916,2917).addRange(2936,2945).addRange(2955,2957).addRange(2966,2968).addRange(2976,2978).addRange(2981,2983),e.addRange(2987,2989).addRange(3002,3005).addRange(3011,3013).addRange(3022,3023).addRange(3025,3030).addRange(3032,3045).addRange(3067,3071).addRange(3130,3131).addRange(3150,3156).addRange(3166,3167).addRange(3172,3173).addRange(3184,3190).addRange(3258,3259).addRange(3278,3284).addRange(3287,3291).addRange(3300,3301).addRange(3316,3327).addRange(3408,3411).addRange(3428,3429).addRange(3479,3481).addRange(3518,3519).addRange(3527,3529).addRange(3531,3534).addRange(3552,3557).addRange(3568,3569).addRange(3573,3584).addRange(3643,3646).addRange(3676,3712).addRange(3774,3775).addRange(3802,3803).addRange(3808,3839).addRange(3949,3952).addRange(4059,4095).addRange(4296,4300).addRange(4302,4303).addRange(4686,4687).addRange(4702,4703).addRange(4750,4751).addRange(4790,4791).addRange(4806,4807).addRange(4886,4887).addRange(4955,4956).addRange(4989,4991).addRange(5018,5023).addRange(5110,5111).addRange(5118,5119).addRange(5789,5791).addRange(5881,5887).addRange(5910,5918).addRange(5943,5951).addRange(5972,5983),e.addRange(6004,6015).addRange(6110,6111).addRange(6122,6127).addRange(6138,6143).addRange(6170,6175).addRange(6265,6271).addRange(6315,6319).addRange(6390,6399).addRange(6444,6447).addRange(6460,6463).addRange(6465,6467).addRange(6510,6511).addRange(6517,6527).addRange(6572,6575).addRange(6602,6607).addRange(6619,6621).addRange(6684,6685).addRange(6781,6782).addRange(6794,6799).addRange(6810,6815).addRange(6830,6831).addRange(6878,6879).addRange(6892,6911).addRange(7156,7163).addRange(7224,7226).addRange(7242,7244).addRange(7307,7311).addRange(7355,7356).addRange(7368,7375).addRange(7419,7423).addRange(7958,7959).addRange(7966,7967).addRange(8006,8007).addRange(8014,8015).addRange(8062,8063).addRange(8148,8149).addRange(8176,8177).addRange(8306,8307).addRange(8349,8351).addRange(8386,8399).addRange(8433,8447).addRange(8588,8591).addRange(9258,9279).addRange(9291,9311).addRange(11124,11125).addRange(11508,11512).addRange(11560,11564).addRange(11566,11567).addRange(11624,11630).addRange(11633,11646).addRange(11671,11679),e.addRange(11870,11903).addRange(12020,12031).addRange(12246,12271).addRange(12439,12440).addRange(12544,12548).addRange(12774,12782).addRange(42125,42127).addRange(42183,42191).addRange(42540,42559).addRange(42744,42751).addRange(42973,42992).addRange(43053,43055).addRange(43066,43071).addRange(43128,43135).addRange(43206,43213).addRange(43226,43231).addRange(43348,43358).addRange(43389,43391).addRange(43482,43485).addRange(43575,43583).addRange(43598,43599).addRange(43610,43611).addRange(43715,43738).addRange(43767,43776).addRange(43783,43784).addRange(43791,43792).addRange(43799,43807).addRange(43884,43887).addRange(44014,44015).addRange(44026,44031).addRange(55204,55215).addRange(55239,55242).addRange(55292,63743).addRange(64110,64111).addRange(64218,64255).addRange(64263,64274).addRange(64280,64284).addRange(64976,65007).addRange(65050,65055).addRange(65132,65135).addRange(65277,65278).addRange(65471,65473).addRange(65480,65481).addRange(65488,65489).addRange(65496,65497).addRange(65501,65503).addRange(65519,65528).addRange(65534,65535).addRange(65614,65615).addRange(65630,65663).addRange(65787,65791),e.addRange(65795,65798).addRange(65844,65846).addRange(65949,65951).addRange(65953,65999).addRange(66046,66175).addRange(66205,66207).addRange(66257,66271).addRange(66300,66303).addRange(66340,66348).addRange(66379,66383).addRange(66427,66431).addRange(66500,66503).addRange(66518,66559).addRange(66718,66719).addRange(66730,66735).addRange(66772,66775).addRange(66812,66815).addRange(66856,66863).addRange(66916,66926).addRange(67005,67007).addRange(67060,67071).addRange(67383,67391).addRange(67414,67423).addRange(67432,67455).addRange(67515,67583).addRange(67590,67591).addRange(67641,67643).addRange(67645,67646).addRange(67743,67750).addRange(67760,67807).addRange(67830,67834).addRange(67868,67870).addRange(67898,67902).addRange(67930,67967).addRange(68024,68027).addRange(68048,68049).addRange(68103,68107).addRange(68150,68151).addRange(68155,68158).addRange(68169,68175).addRange(68185,68191).addRange(68256,68287).addRange(68327,68330).addRange(68343,68351).addRange(68406,68408).addRange(68438,68439).addRange(68467,68471).addRange(68498,68504).addRange(68509,68520).addRange(68528,68607).addRange(68681,68735),e.addRange(68787,68799).addRange(68851,68857).addRange(68904,68911).addRange(68922,68927).addRange(68966,68968).addRange(68998,69005).addRange(69008,69215).addRange(69294,69295).addRange(69298,69313).addRange(69320,69327).addRange(69337,69369).addRange(69416,69423).addRange(69466,69487).addRange(69514,69551).addRange(69580,69599).addRange(69623,69631).addRange(69710,69713).addRange(69750,69758).addRange(69827,69836).addRange(69838,69839).addRange(69865,69871).addRange(69882,69887).addRange(69960,69967).addRange(70007,70015).addRange(70133,70143).addRange(70210,70271).addRange(70314,70319).addRange(70379,70383).addRange(70394,70399).addRange(70413,70414).addRange(70417,70418).addRange(70469,70470).addRange(70473,70474).addRange(70478,70479).addRange(70481,70486).addRange(70488,70492).addRange(70500,70501).addRange(70509,70511).addRange(70517,70527).addRange(70540,70541).addRange(70595,70596).addRange(70617,70624).addRange(70627,70655).addRange(70754,70783).addRange(70856,70863).addRange(70874,71039).addRange(71094,71095).addRange(71134,71167).addRange(71237,71247).addRange(71258,71263).addRange(71277,71295),e.addRange(71354,71359).addRange(71370,71375).addRange(71396,71423).addRange(71451,71452).addRange(71468,71471).addRange(71495,71679).addRange(71740,71839).addRange(71923,71934).addRange(71943,71944).addRange(71946,71947).addRange(71993,71994).addRange(72007,72015).addRange(72026,72095).addRange(72104,72105).addRange(72152,72153).addRange(72165,72191).addRange(72264,72271).addRange(72355,72367).addRange(72441,72447).addRange(72458,72543).addRange(72552,72639).addRange(72674,72687).addRange(72698,72703).addRange(72774,72783).addRange(72813,72815).addRange(72848,72849).addRange(72887,72959).addRange(73015,73017).addRange(73032,73039).addRange(73050,73055).addRange(73113,73119).addRange(73130,73135).addRange(73180,73183).addRange(73194,73439).addRange(73465,73471).addRange(73531,73533).addRange(73563,73647).addRange(73649,73663).addRange(73714,73726).addRange(74650,74751).addRange(74869,74879).addRange(75076,77711).addRange(77811,77823).addRange(78934,78943).addRange(82939,82943).addRange(83527,90367).addRange(90426,92159).addRange(92729,92735).addRange(92778,92781).addRange(92874,92879).addRange(92910,92911),e.addRange(92918,92927).addRange(92998,93007).addRange(93048,93052).addRange(93072,93503).addRange(93562,93759).addRange(93851,93855).addRange(93881,93882).addRange(93908,93951).addRange(94027,94030).addRange(94088,94094).addRange(94112,94175).addRange(94181,94191).addRange(94199,94207).addRange(101590,101630).addRange(101663,101759).addRange(101875,110575).addRange(110883,110897).addRange(110899,110927).addRange(110931,110932).addRange(110934,110947).addRange(110952,110959).addRange(111356,113663).addRange(113771,113775).addRange(113789,113791).addRange(113801,113807).addRange(113818,113819).addRange(113828,117759).addRange(118013,118015).addRange(118452,118457).addRange(118481,118495).addRange(118513,118527).addRange(118574,118575).addRange(118599,118607).addRange(118724,118783).addRange(119030,119039).addRange(119079,119080).addRange(119275,119295).addRange(119366,119487).addRange(119508,119519).addRange(119540,119551).addRange(119639,119647).addRange(119673,119807).addRange(119968,119969).addRange(119971,119972).addRange(119975,119976).addRange(120075,120076).addRange(120135,120137).addRange(120486,120487).addRange(120780,120781).addRange(121484,121498).addRange(121520,122623),e.addRange(122655,122660).addRange(122667,122879).addRange(122905,122906).addRange(122923,122927).addRange(122990,123022).addRange(123024,123135).addRange(123181,123183).addRange(123198,123199).addRange(123210,123213).addRange(123216,123535).addRange(123567,123583).addRange(123642,123646).addRange(123648,124111).addRange(124154,124367).addRange(124411,124414).addRange(124416,124607).addRange(124662,124669).addRange(124672,124895).addRange(125125,125126).addRange(125143,125183).addRange(125260,125263).addRange(125274,125277).addRange(125280,126064).addRange(126133,126208).addRange(126270,126463).addRange(126501,126502).addRange(126524,126529).addRange(126531,126534).addRange(126549,126550).addRange(126565,126566).addRange(126620,126624).addRange(126652,126703).addRange(126706,126975).addRange(127020,127023).addRange(127124,127135).addRange(127151,127152).addRange(127222,127231).addRange(127406,127461).addRange(127491,127503).addRange(127548,127551).addRange(127561,127567).addRange(127570,127583).addRange(127590,127743).addRange(128729,128731).addRange(128749,128751).addRange(128765,128767).addRange(128986,128991).addRange(129004,129007).addRange(129009,129023).addRange(129036,129039).addRange(129096,129103),e.addRange(129114,129119).addRange(129160,129167).addRange(129198,129199).addRange(129212,129215).addRange(129218,129231).addRange(129241,129279).addRange(129624,129631).addRange(129646,129647).addRange(129661,129663).addRange(129675,129677).addRange(129737,129740).addRange(129757,129758).addRange(129771,129774).addRange(129785,129791).addRange(130043,131071).addRange(173792,173823).addRange(178206,178207).addRange(183982,183983).addRange(191457,191471).addRange(192094,194559).addRange(195102,196607).addRange(201547,201551).addRange(210042,917504).addRange(917506,917535).addRange(917632,917759).addRange(918e3,1114111),nue.characters=e,nue}var oue,iue={};function due(){if(oue)return iue;oue=1;var e=_Y();return e.addRange(42240,42539),iue.characters=e,iue}var cue,lue={};function uue(){if(cue)return lue;cue=1;var e=_Y();return e.addRange(66928,66938).addRange(66940,66954).addRange(66956,66962).addRange(66964,66965).addRange(66967,66977).addRange(66979,66993).addRange(66995,67001).addRange(67003,67004),lue.characters=e,lue}var pue,fue={};function gue(){if(pue)return fue;pue=1;var e=_Y(123647);return e.addRange(123584,123641),fue.characters=e,fue}var mue,yue={};function hue(){if(mue)return yue;mue=1;var e=_Y(71935);return e.addRange(71840,71922),yue.characters=e,yue}var bue,vue={};function xue(){if(bue)return vue;bue=1;var e=_Y();return e.addRange(69248,69289).addRange(69291,69293).addRange(69296,69297),vue.characters=e,vue}var Rue,jue={};function wue(){if(Rue)return jue;Rue=1;var e=_Y();return e.addRange(40960,42124).addRange(42128,42182),jue.characters=e,jue}var Eue,Sue,Tue,Pue,Aue={};function kue(){if(Eue)return Aue;Eue=1;var e=_Y();return e.addRange(72192,72263),Aue.characters=e,Aue}function Cue(){return Tue?Sue:(Tue=1,Sue="17.0.0")}function _ue(){return Pue||(Pue={"/node_modules/regenerate-unicode-properties/Binary_Property/Alphabetic.js":IY,"/node_modules/regenerate-unicode-properties/Binary_Property/Any.js":NY,"/node_modules/regenerate-unicode-properties/Binary_Property/ASCII_Hex_Digit.js":FY,"/node_modules/regenerate-unicode-properties/Binary_Property/ASCII.js":qY,"/node_modules/regenerate-unicode-properties/Binary_Property/Assigned.js":VY,"/node_modules/regenerate-unicode-properties/Binary_Property/Bidi_Control.js":KY,"/node_modules/regenerate-unicode-properties/Binary_Property/Bidi_Mirrored.js":YY,"/node_modules/regenerate-unicode-properties/Binary_Property/Case_Ignorable.js":ZY,"/node_modules/regenerate-unicode-properties/Binary_Property/Cased.js":r$,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casefolded.js":s$,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Casemapped.js":d$,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Lowercased.js":u$,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_NFKC_Casefolded.js":g$,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Titlecased.js":h$,"/node_modules/regenerate-unicode-properties/Binary_Property/Changes_When_Uppercased.js":x$,"/node_modules/regenerate-unicode-properties/Binary_Property/Dash.js":w$,"/node_modules/regenerate-unicode-properties/Binary_Property/Default_Ignorable_Code_Point.js":T$,"/node_modules/regenerate-unicode-properties/Binary_Property/Deprecated.js":k$,"/node_modules/regenerate-unicode-properties/Binary_Property/Diacritic.js":I$,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Component.js":N$,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Modifier_Base.js":F$,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Modifier.js":q$,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji_Presentation.js":V$,"/node_modules/regenerate-unicode-properties/Binary_Property/Emoji.js":K$,"/node_modules/regenerate-unicode-properties/Binary_Property/Extended_Pictographic.js":Y$,"/node_modules/regenerate-unicode-properties/Binary_Property/Extender.js":Z$,"/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Base.js":rQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Grapheme_Extend.js":sQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Hex_Digit.js":dQ,"/node_modules/regenerate-unicode-properties/Binary_Property/ID_Continue.js":uQ,"/node_modules/regenerate-unicode-properties/Binary_Property/ID_Start.js":gQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Ideographic.js":hQ,"/node_modules/regenerate-unicode-properties/Binary_Property/IDS_Binary_Operator.js":xQ,"/node_modules/regenerate-unicode-properties/Binary_Property/IDS_Trinary_Operator.js":wQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Join_Control.js":TQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Logical_Order_Exception.js":kQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Lowercase.js":IQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Math.js":NQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Noncharacter_Code_Point.js":FQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Pattern_Syntax.js":qQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Pattern_White_Space.js":VQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Quotation_Mark.js":KQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Radical.js":YQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Regional_Indicator.js":ZQ,"/node_modules/regenerate-unicode-properties/Binary_Property/Sentence_Terminal.js":rZ,"/node_modules/regenerate-unicode-properties/Binary_Property/Soft_Dotted.js":sZ,"/node_modules/regenerate-unicode-properties/Binary_Property/Terminal_Punctuation.js":dZ,"/node_modules/regenerate-unicode-properties/Binary_Property/Unified_Ideograph.js":uZ,"/node_modules/regenerate-unicode-properties/Binary_Property/Uppercase.js":gZ,"/node_modules/regenerate-unicode-properties/Binary_Property/Variation_Selector.js":hZ,"/node_modules/regenerate-unicode-properties/Binary_Property/White_Space.js":xZ,"/node_modules/regenerate-unicode-properties/Binary_Property/XID_Continue.js":wZ,"/node_modules/regenerate-unicode-properties/Binary_Property/XID_Start.js":TZ,"/node_modules/regenerate-unicode-properties/General_Category/Cased_Letter.js":kZ,"/node_modules/regenerate-unicode-properties/General_Category/Close_Punctuation.js":IZ,"/node_modules/regenerate-unicode-properties/General_Category/Connector_Punctuation.js":NZ,"/node_modules/regenerate-unicode-properties/General_Category/Control.js":FZ,"/node_modules/regenerate-unicode-properties/General_Category/Currency_Symbol.js":qZ,"/node_modules/regenerate-unicode-properties/General_Category/Dash_Punctuation.js":VZ,"/node_modules/regenerate-unicode-properties/General_Category/Decimal_Number.js":KZ,"/node_modules/regenerate-unicode-properties/General_Category/Enclosing_Mark.js":YZ,"/node_modules/regenerate-unicode-properties/General_Category/Final_Punctuation.js":ZZ,"/node_modules/regenerate-unicode-properties/General_Category/Format.js":r1,"/node_modules/regenerate-unicode-properties/General_Category/Initial_Punctuation.js":s1,"/node_modules/regenerate-unicode-properties/General_Category/Letter_Number.js":d1,"/node_modules/regenerate-unicode-properties/General_Category/Letter.js":u1,"/node_modules/regenerate-unicode-properties/General_Category/Line_Separator.js":g1,"/node_modules/regenerate-unicode-properties/General_Category/Lowercase_Letter.js":h1,"/node_modules/regenerate-unicode-properties/General_Category/Mark.js":x1,"/node_modules/regenerate-unicode-properties/General_Category/Math_Symbol.js":w1,"/node_modules/regenerate-unicode-properties/General_Category/Modifier_Letter.js":T1,"/node_modules/regenerate-unicode-properties/General_Category/Modifier_Symbol.js":k1,"/node_modules/regenerate-unicode-properties/General_Category/Nonspacing_Mark.js":I1,"/node_modules/regenerate-unicode-properties/General_Category/Number.js":N1,"/node_modules/regenerate-unicode-properties/General_Category/Open_Punctuation.js":F1,"/node_modules/regenerate-unicode-properties/General_Category/Other_Letter.js":q1,"/node_modules/regenerate-unicode-properties/General_Category/Other_Number.js":V1,"/node_modules/regenerate-unicode-properties/General_Category/Other_Punctuation.js":K1,"/node_modules/regenerate-unicode-properties/General_Category/Other_Symbol.js":Y1,"/node_modules/regenerate-unicode-properties/General_Category/Other.js":Z1,"/node_modules/regenerate-unicode-properties/General_Category/Paragraph_Separator.js":r0,"/node_modules/regenerate-unicode-properties/General_Category/Private_Use.js":s0,"/node_modules/regenerate-unicode-properties/General_Category/Punctuation.js":d0,"/node_modules/regenerate-unicode-properties/General_Category/Separator.js":u0,"/node_modules/regenerate-unicode-properties/General_Category/Space_Separator.js":g0,"/node_modules/regenerate-unicode-properties/General_Category/Spacing_Mark.js":h0,"/node_modules/regenerate-unicode-properties/General_Category/Surrogate.js":x0,"/node_modules/regenerate-unicode-properties/General_Category/Symbol.js":w0,"/node_modules/regenerate-unicode-properties/General_Category/Titlecase_Letter.js":T0,"/node_modules/regenerate-unicode-properties/General_Category/Unassigned.js":k0,"/node_modules/regenerate-unicode-properties/General_Category/Uppercase_Letter.js":O0,"/node_modules/regenerate-unicode-properties/index.js":N0,"/node_modules/regenerate-unicode-properties/Property_of_Strings/Basic_Emoji.js":F0,"/node_modules/regenerate-unicode-properties/Property_of_Strings/Emoji_Keycap_Sequence.js":q0,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Flag_Sequence.js":V0,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Modifier_Sequence.js":K0,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_Tag_Sequence.js":Y0,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji_ZWJ_Sequence.js":Z0,"/node_modules/regenerate-unicode-properties/Property_of_Strings/RGI_Emoji.js":r2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Adlam.js":s2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ahom.js":d2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Anatolian_Hieroglyphs.js":u2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Arabic.js":g2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Armenian.js":h2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Avestan.js":x2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Balinese.js":w2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bamum.js":T2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bassa_Vah.js":k2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Batak.js":I2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bengali.js":N2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Beria_Erfe.js":F2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bhaiksuki.js":q2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Bopomofo.js":V2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Brahmi.js":K2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Braille.js":Y2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Buginese.js":Z2,"/node_modules/regenerate-unicode-properties/Script_Extensions/Buhid.js":r6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Canadian_Aboriginal.js":s6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Carian.js":d6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Caucasian_Albanian.js":u6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Chakma.js":g6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cham.js":h6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cherokee.js":x6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Chorasmian.js":w6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Common.js":T6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Coptic.js":k6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cuneiform.js":I6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cypriot.js":N6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cypro_Minoan.js":F6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Cyrillic.js":q6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Deseret.js":V6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Devanagari.js":K6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Dives_Akuru.js":Y6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Dogra.js":Z6,"/node_modules/regenerate-unicode-properties/Script_Extensions/Duployan.js":r4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Egyptian_Hieroglyphs.js":s4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Elbasan.js":d4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Elymaic.js":u4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ethiopic.js":g4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Garay.js":h4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Georgian.js":x4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Glagolitic.js":w4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Gothic.js":T4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Grantha.js":k4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Greek.js":I4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Gujarati.js":N4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Gunjala_Gondi.js":F4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Gurmukhi.js":q4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Gurung_Khema.js":V4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Han.js":K4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hangul.js":Y4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hanifi_Rohingya.js":Z4,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hanunoo.js":r7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hatran.js":s7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hebrew.js":d7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Hiragana.js":u7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Imperial_Aramaic.js":g7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Inherited.js":h7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Inscriptional_Pahlavi.js":x7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Inscriptional_Parthian.js":w7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Javanese.js":T7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kaithi.js":k7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kannada.js":I7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Katakana.js":N7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kawi.js":F7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kayah_Li.js":q7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kharoshthi.js":V7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Khitan_Small_Script.js":K7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Khmer.js":Y7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Khojki.js":Z7,"/node_modules/regenerate-unicode-properties/Script_Extensions/Khudawadi.js":r3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Kirat_Rai.js":s3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lao.js":d3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Latin.js":u3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lepcha.js":g3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Limbu.js":h3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Linear_A.js":x3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Linear_B.js":w3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lisu.js":T3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lycian.js":k3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Lydian.js":I3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mahajani.js":N3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Makasar.js":F3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Malayalam.js":q3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mandaic.js":V3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Manichaean.js":K3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Marchen.js":Y3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Masaram_Gondi.js":Z3,"/node_modules/regenerate-unicode-properties/Script_Extensions/Medefaidrin.js":r8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Meetei_Mayek.js":s8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mende_Kikakui.js":d8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Meroitic_Cursive.js":u8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Meroitic_Hieroglyphs.js":g8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Miao.js":h8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Modi.js":x8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mongolian.js":w8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Mro.js":T8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Multani.js":k8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Myanmar.js":I8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nabataean.js":N8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nag_Mundari.js":F8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nandinagari.js":q8,"/node_modules/regenerate-unicode-properties/Script_Extensions/New_Tai_Lue.js":V8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Newa.js":K8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nko.js":Y8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nushu.js":Z8,"/node_modules/regenerate-unicode-properties/Script_Extensions/Nyiakeng_Puachue_Hmong.js":r9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ogham.js":s9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ol_Chiki.js":d9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ol_Onal.js":u9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Hungarian.js":g9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Italic.js":h9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_North_Arabian.js":x9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Permic.js":w9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Persian.js":T9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Sogdian.js":k9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_South_Arabian.js":I9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Turkic.js":N9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Old_Uyghur.js":F9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Oriya.js":q9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Osage.js":V9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Osmanya.js":K9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Pahawh_Hmong.js":Y9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Palmyrene.js":Z9,"/node_modules/regenerate-unicode-properties/Script_Extensions/Pau_Cin_Hau.js":r5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Phags_Pa.js":s5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Phoenician.js":d5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Psalter_Pahlavi.js":u5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Rejang.js":g5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Runic.js":h5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Samaritan.js":x5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Saurashtra.js":w5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sharada.js":T5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Shavian.js":k5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Siddham.js":I5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sidetic.js":N5,"/node_modules/regenerate-unicode-properties/Script_Extensions/SignWriting.js":F5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sinhala.js":q5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sogdian.js":V5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sora_Sompeng.js":K5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Soyombo.js":Y5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sundanese.js":Z5,"/node_modules/regenerate-unicode-properties/Script_Extensions/Sunuwar.js":ree,"/node_modules/regenerate-unicode-properties/Script_Extensions/Syloti_Nagri.js":see,"/node_modules/regenerate-unicode-properties/Script_Extensions/Syriac.js":dee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tagalog.js":uee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tagbanwa.js":gee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Le.js":hee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Tham.js":xee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Viet.js":wee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tai_Yo.js":Tee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Takri.js":kee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tamil.js":Iee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tangsa.js":Nee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tangut.js":Fee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Telugu.js":qee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Thaana.js":Vee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Thai.js":Kee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tibetan.js":Yee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tifinagh.js":Zee,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tirhuta.js":rte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Todhri.js":ste,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tolong_Siki.js":dte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Toto.js":ute,"/node_modules/regenerate-unicode-properties/Script_Extensions/Tulu_Tigalari.js":gte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Ugaritic.js":hte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Unknown.js":xte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Vai.js":wte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Vithkuqi.js":Tte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Wancho.js":kte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Warang_Citi.js":Ite,"/node_modules/regenerate-unicode-properties/Script_Extensions/Yezidi.js":Nte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Yi.js":Fte,"/node_modules/regenerate-unicode-properties/Script_Extensions/Zanabazar_Square.js":qte,"/node_modules/regenerate-unicode-properties/Script/Adlam.js":Vte,"/node_modules/regenerate-unicode-properties/Script/Ahom.js":Kte,"/node_modules/regenerate-unicode-properties/Script/Anatolian_Hieroglyphs.js":Yte,"/node_modules/regenerate-unicode-properties/Script/Arabic.js":Zte,"/node_modules/regenerate-unicode-properties/Script/Armenian.js":rre,"/node_modules/regenerate-unicode-properties/Script/Avestan.js":sre,"/node_modules/regenerate-unicode-properties/Script/Balinese.js":dre,"/node_modules/regenerate-unicode-properties/Script/Bamum.js":ure,"/node_modules/regenerate-unicode-properties/Script/Bassa_Vah.js":gre,"/node_modules/regenerate-unicode-properties/Script/Batak.js":hre,"/node_modules/regenerate-unicode-properties/Script/Bengali.js":xre,"/node_modules/regenerate-unicode-properties/Script/Beria_Erfe.js":wre,"/node_modules/regenerate-unicode-properties/Script/Bhaiksuki.js":Tre,"/node_modules/regenerate-unicode-properties/Script/Bopomofo.js":kre,"/node_modules/regenerate-unicode-properties/Script/Brahmi.js":Ire,"/node_modules/regenerate-unicode-properties/Script/Braille.js":Nre,"/node_modules/regenerate-unicode-properties/Script/Buginese.js":Fre,"/node_modules/regenerate-unicode-properties/Script/Buhid.js":qre,"/node_modules/regenerate-unicode-properties/Script/Canadian_Aboriginal.js":Vre,"/node_modules/regenerate-unicode-properties/Script/Carian.js":Kre,"/node_modules/regenerate-unicode-properties/Script/Caucasian_Albanian.js":Yre,"/node_modules/regenerate-unicode-properties/Script/Chakma.js":Zre,"/node_modules/regenerate-unicode-properties/Script/Cham.js":rae,"/node_modules/regenerate-unicode-properties/Script/Cherokee.js":sae,"/node_modules/regenerate-unicode-properties/Script/Chorasmian.js":dae,"/node_modules/regenerate-unicode-properties/Script/Common.js":uae,"/node_modules/regenerate-unicode-properties/Script/Coptic.js":gae,"/node_modules/regenerate-unicode-properties/Script/Cuneiform.js":hae,"/node_modules/regenerate-unicode-properties/Script/Cypriot.js":xae,"/node_modules/regenerate-unicode-properties/Script/Cypro_Minoan.js":wae,"/node_modules/regenerate-unicode-properties/Script/Cyrillic.js":Tae,"/node_modules/regenerate-unicode-properties/Script/Deseret.js":kae,"/node_modules/regenerate-unicode-properties/Script/Devanagari.js":Iae,"/node_modules/regenerate-unicode-properties/Script/Dives_Akuru.js":Nae,"/node_modules/regenerate-unicode-properties/Script/Dogra.js":Fae,"/node_modules/regenerate-unicode-properties/Script/Duployan.js":qae,"/node_modules/regenerate-unicode-properties/Script/Egyptian_Hieroglyphs.js":Vae,"/node_modules/regenerate-unicode-properties/Script/Elbasan.js":Kae,"/node_modules/regenerate-unicode-properties/Script/Elymaic.js":Yae,"/node_modules/regenerate-unicode-properties/Script/Ethiopic.js":Zae,"/node_modules/regenerate-unicode-properties/Script/Garay.js":rne,"/node_modules/regenerate-unicode-properties/Script/Georgian.js":sne,"/node_modules/regenerate-unicode-properties/Script/Glagolitic.js":dne,"/node_modules/regenerate-unicode-properties/Script/Gothic.js":une,"/node_modules/regenerate-unicode-properties/Script/Grantha.js":gne,"/node_modules/regenerate-unicode-properties/Script/Greek.js":hne,"/node_modules/regenerate-unicode-properties/Script/Gujarati.js":xne,"/node_modules/regenerate-unicode-properties/Script/Gunjala_Gondi.js":wne,"/node_modules/regenerate-unicode-properties/Script/Gurmukhi.js":Tne,"/node_modules/regenerate-unicode-properties/Script/Gurung_Khema.js":kne,"/node_modules/regenerate-unicode-properties/Script/Han.js":Ine,"/node_modules/regenerate-unicode-properties/Script/Hangul.js":Nne,"/node_modules/regenerate-unicode-properties/Script/Hanifi_Rohingya.js":Fne,"/node_modules/regenerate-unicode-properties/Script/Hanunoo.js":qne,"/node_modules/regenerate-unicode-properties/Script/Hatran.js":Vne,"/node_modules/regenerate-unicode-properties/Script/Hebrew.js":Kne,"/node_modules/regenerate-unicode-properties/Script/Hiragana.js":Yne,"/node_modules/regenerate-unicode-properties/Script/Imperial_Aramaic.js":Zne,"/node_modules/regenerate-unicode-properties/Script/Inherited.js":rse,"/node_modules/regenerate-unicode-properties/Script/Inscriptional_Pahlavi.js":sse,"/node_modules/regenerate-unicode-properties/Script/Inscriptional_Parthian.js":dse,"/node_modules/regenerate-unicode-properties/Script/Javanese.js":use,"/node_modules/regenerate-unicode-properties/Script/Kaithi.js":gse,"/node_modules/regenerate-unicode-properties/Script/Kannada.js":hse,"/node_modules/regenerate-unicode-properties/Script/Katakana.js":xse,"/node_modules/regenerate-unicode-properties/Script/Kawi.js":wse,"/node_modules/regenerate-unicode-properties/Script/Kayah_Li.js":Tse,"/node_modules/regenerate-unicode-properties/Script/Kharoshthi.js":kse,"/node_modules/regenerate-unicode-properties/Script/Khitan_Small_Script.js":Ise,"/node_modules/regenerate-unicode-properties/Script/Khmer.js":Nse,"/node_modules/regenerate-unicode-properties/Script/Khojki.js":Fse,"/node_modules/regenerate-unicode-properties/Script/Khudawadi.js":qse,"/node_modules/regenerate-unicode-properties/Script/Kirat_Rai.js":Vse,"/node_modules/regenerate-unicode-properties/Script/Lao.js":Kse,"/node_modules/regenerate-unicode-properties/Script/Latin.js":Yse,"/node_modules/regenerate-unicode-properties/Script/Lepcha.js":Zse,"/node_modules/regenerate-unicode-properties/Script/Limbu.js":roe,"/node_modules/regenerate-unicode-properties/Script/Linear_A.js":soe,"/node_modules/regenerate-unicode-properties/Script/Linear_B.js":doe,"/node_modules/regenerate-unicode-properties/Script/Lisu.js":uoe,"/node_modules/regenerate-unicode-properties/Script/Lycian.js":goe,"/node_modules/regenerate-unicode-properties/Script/Lydian.js":hoe,"/node_modules/regenerate-unicode-properties/Script/Mahajani.js":xoe,"/node_modules/regenerate-unicode-properties/Script/Makasar.js":woe,"/node_modules/regenerate-unicode-properties/Script/Malayalam.js":Toe,"/node_modules/regenerate-unicode-properties/Script/Mandaic.js":koe,"/node_modules/regenerate-unicode-properties/Script/Manichaean.js":Ioe,"/node_modules/regenerate-unicode-properties/Script/Marchen.js":Noe,"/node_modules/regenerate-unicode-properties/Script/Masaram_Gondi.js":Foe,"/node_modules/regenerate-unicode-properties/Script/Medefaidrin.js":qoe,"/node_modules/regenerate-unicode-properties/Script/Meetei_Mayek.js":Voe,"/node_modules/regenerate-unicode-properties/Script/Mende_Kikakui.js":Koe,"/node_modules/regenerate-unicode-properties/Script/Meroitic_Cursive.js":Yoe,"/node_modules/regenerate-unicode-properties/Script/Meroitic_Hieroglyphs.js":Zoe,"/node_modules/regenerate-unicode-properties/Script/Miao.js":rie,"/node_modules/regenerate-unicode-properties/Script/Modi.js":sie,"/node_modules/regenerate-unicode-properties/Script/Mongolian.js":die,"/node_modules/regenerate-unicode-properties/Script/Mro.js":uie,"/node_modules/regenerate-unicode-properties/Script/Multani.js":gie,"/node_modules/regenerate-unicode-properties/Script/Myanmar.js":hie,"/node_modules/regenerate-unicode-properties/Script/Nabataean.js":xie,"/node_modules/regenerate-unicode-properties/Script/Nag_Mundari.js":wie,"/node_modules/regenerate-unicode-properties/Script/Nandinagari.js":Tie,"/node_modules/regenerate-unicode-properties/Script/New_Tai_Lue.js":kie,"/node_modules/regenerate-unicode-properties/Script/Newa.js":Iie,"/node_modules/regenerate-unicode-properties/Script/Nko.js":Nie,"/node_modules/regenerate-unicode-properties/Script/Nushu.js":Fie,"/node_modules/regenerate-unicode-properties/Script/Nyiakeng_Puachue_Hmong.js":qie,"/node_modules/regenerate-unicode-properties/Script/Ogham.js":Vie,"/node_modules/regenerate-unicode-properties/Script/Ol_Chiki.js":Kie,"/node_modules/regenerate-unicode-properties/Script/Ol_Onal.js":Yie,"/node_modules/regenerate-unicode-properties/Script/Old_Hungarian.js":Zie,"/node_modules/regenerate-unicode-properties/Script/Old_Italic.js":rde,"/node_modules/regenerate-unicode-properties/Script/Old_North_Arabian.js":sde,"/node_modules/regenerate-unicode-properties/Script/Old_Permic.js":dde,"/node_modules/regenerate-unicode-properties/Script/Old_Persian.js":ude,"/node_modules/regenerate-unicode-properties/Script/Old_Sogdian.js":gde,"/node_modules/regenerate-unicode-properties/Script/Old_South_Arabian.js":hde,"/node_modules/regenerate-unicode-properties/Script/Old_Turkic.js":xde,"/node_modules/regenerate-unicode-properties/Script/Old_Uyghur.js":wde,"/node_modules/regenerate-unicode-properties/Script/Oriya.js":Tde,"/node_modules/regenerate-unicode-properties/Script/Osage.js":kde,"/node_modules/regenerate-unicode-properties/Script/Osmanya.js":Ide,"/node_modules/regenerate-unicode-properties/Script/Pahawh_Hmong.js":Nde,"/node_modules/regenerate-unicode-properties/Script/Palmyrene.js":Fde,"/node_modules/regenerate-unicode-properties/Script/Pau_Cin_Hau.js":qde,"/node_modules/regenerate-unicode-properties/Script/Phags_Pa.js":Vde,"/node_modules/regenerate-unicode-properties/Script/Phoenician.js":Kde,"/node_modules/regenerate-unicode-properties/Script/Psalter_Pahlavi.js":Yde,"/node_modules/regenerate-unicode-properties/Script/Rejang.js":Zde,"/node_modules/regenerate-unicode-properties/Script/Runic.js":rce,"/node_modules/regenerate-unicode-properties/Script/Samaritan.js":sce,"/node_modules/regenerate-unicode-properties/Script/Saurashtra.js":dce,"/node_modules/regenerate-unicode-properties/Script/Sharada.js":uce,"/node_modules/regenerate-unicode-properties/Script/Shavian.js":gce,"/node_modules/regenerate-unicode-properties/Script/Siddham.js":hce,"/node_modules/regenerate-unicode-properties/Script/Sidetic.js":xce,"/node_modules/regenerate-unicode-properties/Script/SignWriting.js":wce,"/node_modules/regenerate-unicode-properties/Script/Sinhala.js":Tce,"/node_modules/regenerate-unicode-properties/Script/Sogdian.js":kce,"/node_modules/regenerate-unicode-properties/Script/Sora_Sompeng.js":Ice,"/node_modules/regenerate-unicode-properties/Script/Soyombo.js":Nce,"/node_modules/regenerate-unicode-properties/Script/Sundanese.js":Fce,"/node_modules/regenerate-unicode-properties/Script/Sunuwar.js":qce,"/node_modules/regenerate-unicode-properties/Script/Syloti_Nagri.js":Vce,"/node_modules/regenerate-unicode-properties/Script/Syriac.js":Kce,"/node_modules/regenerate-unicode-properties/Script/Tagalog.js":Yce,"/node_modules/regenerate-unicode-properties/Script/Tagbanwa.js":Zce,"/node_modules/regenerate-unicode-properties/Script/Tai_Le.js":rle,"/node_modules/regenerate-unicode-properties/Script/Tai_Tham.js":sle,"/node_modules/regenerate-unicode-properties/Script/Tai_Viet.js":dle,"/node_modules/regenerate-unicode-properties/Script/Tai_Yo.js":ule,"/node_modules/regenerate-unicode-properties/Script/Takri.js":gle,"/node_modules/regenerate-unicode-properties/Script/Tamil.js":hle,"/node_modules/regenerate-unicode-properties/Script/Tangsa.js":xle,"/node_modules/regenerate-unicode-properties/Script/Tangut.js":wle,"/node_modules/regenerate-unicode-properties/Script/Telugu.js":Tle,"/node_modules/regenerate-unicode-properties/Script/Thaana.js":kle,"/node_modules/regenerate-unicode-properties/Script/Thai.js":Ile,"/node_modules/regenerate-unicode-properties/Script/Tibetan.js":Nle,"/node_modules/regenerate-unicode-properties/Script/Tifinagh.js":Fle,"/node_modules/regenerate-unicode-properties/Script/Tirhuta.js":qle,"/node_modules/regenerate-unicode-properties/Script/Todhri.js":Vle,"/node_modules/regenerate-unicode-properties/Script/Tolong_Siki.js":Kle,"/node_modules/regenerate-unicode-properties/Script/Toto.js":Yle,"/node_modules/regenerate-unicode-properties/Script/Tulu_Tigalari.js":Zle,"/node_modules/regenerate-unicode-properties/Script/Ugaritic.js":rue,"/node_modules/regenerate-unicode-properties/Script/Unknown.js":sue,"/node_modules/regenerate-unicode-properties/Script/Vai.js":due,"/node_modules/regenerate-unicode-properties/Script/Vithkuqi.js":uue,"/node_modules/regenerate-unicode-properties/Script/Wancho.js":gue,"/node_modules/regenerate-unicode-properties/Script/Warang_Citi.js":hue,"/node_modules/regenerate-unicode-properties/Script/Yezidi.js":xue,"/node_modules/regenerate-unicode-properties/Script/Yi.js":wue,"/node_modules/regenerate-unicode-properties/Script/Zanabazar_Square.js":kue,"/node_modules/regenerate-unicode-properties/unicode-version.js":Cue})}function Iue(e,t){var r,a=function(e){var t=e[0];if("/"===t||"\\"===t)return!1;var r=e[1],a=e[2];return!(!("."!==t||r&&"/"!==r&&"\\"!==r)||!("."!==t||"."!==r||a&&"/"!==a&&"\\"!==a))&&(":"!==r||"/"!==a&&"\\"!==a)}(e);"/"===(e=Due(e))[0]&&(t="");for(var n=_ue(),s=["",".js",".json"];!(r=Due(a?t+"/node_modules/"+e:t+"/"+e)).endsWith("/..");){for(var o=0;o<s.length;o++){var i=r+s[o];if(n[i])return i}if(!a)break;var d=Due(t+"/..");if(d===t)break;t=d}return null}function Due(e){for(var t=(e=e.replace(/\\/g,"/")).split("/"),r=""===t[0],a=1;a<t.length;a++)"."!==t[a]&&""!==t[a]||t.splice(a--,1);for(a=1;a<t.length;a++)".."===t[a]&&a>0&&".."!==t[a-1]&&"."!==t[a-1]&&(t.splice(--a,2),a--);return e=t.join("/"),r&&"/"!==e[0]?e="/"+e:0===e.length&&(e="."),e}var Oue={exports:{}};!function(e,t){(function(){var r={function:!0,object:!0}[typeof window]&&window||this,a=t&&!t.nodeType&&t,n=e&&!e.nodeType,s=a&&n&&"object"==typeof dR&&dR;!s||s.global!==s&&s.window!==s&&s.self!==s||(r=s);var o=Object.prototype.hasOwnProperty;function i(){var e=Number(arguments[0]);if(!isFinite(e)||e<0||e>1114111||Math.floor(e)!=e)throw RangeError("Invalid code point: "+e);if(e<=65535)return String.fromCharCode(e);var t=55296+((e-=65536)>>10),r=e%1024+56320;return String.fromCharCode(t,r)}var d={};function c(e,t){if(-1==t.indexOf("|")){if(e==t)return;throw Error("Invalid node type: "+e+"; expected type: "+t)}if(!(t=o.call(d,t)?d[t]:d[t]=RegExp("^(?:"+t+")$")).test(e))throw Error("Invalid node type: "+e+"; expected types: "+t)}function l(e){var t=e.type;if(o.call(h,t))return h[t](e);throw Error("Invalid node type: "+t)}function u(e,t,r){for(var a,n=-1,s=t.length,o="";++n<s;)a=t[n],r&&n>0&&(o+=r),n+1<s&&"value"==t[n].type&&"null"==t[n].kind&&"value"==t[n+1].type&&"symbol"==t[n+1].kind&&t[n+1].codePoint>=48&&t[n+1].codePoint<=57?o+="\\000":o+=e(a);return o}var p="anchor|characterClass|characterClassEscape|dot|group|reference|unicodePropertyEscape|value";function f(e){return c(e.type,"anchor|characterClass|characterClassEscape|characterClassRange|dot|value|unicodePropertyEscape|classStrings"),l(e)}function g(e){return c(e.type,"classString"),u(l,e.characters)}function m(e){return c(e.type,"identifier"),e.value}function y(e){return c(e.type,p+"|empty|quantifier"),l(e)}var h={alternative:function(e){return c(e.type,"alternative"),u(y,e.body)},anchor:function(e){switch(c(e.type,"anchor"),e.kind){case"start":return"^";case"end":return"$";case"boundary":return"\\b";case"not-boundary":return"\\B";default:throw Error("Invalid assertion")}},characterClass:function(e){c(e.type,"characterClass");var t=e.kind,r="intersection"===t?"&&":"subtraction"===t?"--":"";return"["+(e.negative?"^":"")+u(f,e.body,r)+"]"},characterClassEscape:function(e){return c(e.type,"characterClassEscape"),"\\"+e.value},characterClassRange:function(e){c(e.type,"characterClassRange");var t=e.min,r=e.max;if("characterClassRange"==t.type||"characterClassRange"==r.type)throw Error("Invalid character class range");return f(t)+"-"+f(r)},classStrings:function(e){return c(e.type,"classStrings"),"\\q{"+u(g,e.strings,"|")+"}"},disjunction:function(e){return c(e.type,"disjunction"),u(l,e.body,"|")},dot:function(e){return c(e.type,"dot"),"."},group:function(e){c(e.type,"group");var t="";switch(e.behavior){case"normal":e.name&&(t+="?<"+m(e.name)+">");break;case"ignore":e.modifierFlags?(t+="?",e.modifierFlags.enabling&&(t+=e.modifierFlags.enabling),e.modifierFlags.disabling&&(t+="-"+e.modifierFlags.disabling),t+=":"):t+="?:";break;case"lookahead":t+="?=";break;case"negativeLookahead":t+="?!";break;case"lookbehind":t+="?<=";break;case"negativeLookbehind":t+="?<!";break;default:throw Error("Invalid behaviour: "+e.behaviour)}return"("+(t+=u(l,e.body))+")"},quantifier:function(e){c(e.type,"quantifier");var t="",r=e.min,a=e.max;return t=null==a?0==r?"*":1==r?"+":"{"+r+",}":r==a?"{"+r+"}":0==r&&1==a?"?":"{"+r+","+a+"}",e.greedy||(t+="?"),function(e){return c(e.type,p),l(e)}(e.body[0])+t},reference:function(e){if(c(e.type,"reference"),e.matchIndex)return"\\"+e.matchIndex;if(e.name)return"\\k<"+m(e.name)+">";throw new Error("Unknown reference type")},unicodePropertyEscape:function(e){return c(e.type,"unicodePropertyEscape"),"\\"+(e.negative?"P":"p")+"{"+e.value+"}"},value:function(e){c(e.type,"value");var t=e.kind,r=e.codePoint;if("number"!=typeof r)throw new Error("Invalid code point: "+r);switch(t){case"controlLetter":return"\\c"+i(r+64);case"hexadecimalEscape":return"\\x"+("00"+r.toString(16).toUpperCase()).slice(-2);case"identifier":return"\\"+i(r);case"null":return"\\"+r;case"octal":return"\\"+("000"+r.toString(8)).slice(-3);case"singleEscape":switch(r){case 8:return"\\b";case 9:return"\\t";case 10:return"\\n";case 11:return"\\v";case 12:return"\\f";case 13:return"\\r";case 45:return"\\-";default:throw Error("Invalid code point: "+r)}case"symbol":return i(r);case"unicodeEscape":return"\\u"+("0000"+r.toString(16).toUpperCase()).slice(-4);case"unicodeCodePointEscape":return"\\u{"+r.toString(16).toUpperCase()+"}";default:throw Error("Unsupported node kind: "+t)}}},b={generate:l};a&&n?a.generate=l:r.regjsgen=b}).call(dR)}(Oue,Oue.exports);var Nue=Oue.exports,Bue={exports:{}};!function(e){var t,r,a,n;a=String.fromCodePoint||(t=String.fromCharCode,r=Math.floor,function(){var e,a,n=[],s=-1,o=arguments.length;if(!o)return"";for(var i="";++s<o;){var d=Number(arguments[s]);if(!isFinite(d)||d<0||d>1114111||r(d)!=d)throw RangeError("Invalid code point: "+d);d<=65535?n.push(d):(e=55296+((d-=65536)>>10),a=d%1024+56320,n.push(e,a)),(s+1==o||n.length>16384)&&(i+=t.apply(null,n),n.length=0)}return i}),n={parse:function(e,t,r){function n(t,r){return t.range[0]=r,t.raw=e.substring(r,t.range[1]),t}function s(t,r){return{type:"anchor",kind:t,range:[te-r,te],raw:e.substring(te-r,te)}}function o(t,r,a,n){return{type:"value",kind:t,codePoint:r,range:[a,n],raw:e.substring(a,n)}}function i(e,t,r,a){return a=a||0,o(e,t,te-(r.length+a),te)}function d(e){var t,r=e[0],a=r.charCodeAt(0);return ee&&1===r.length&&a>=55296&&a<=56319&&(t=h().charCodeAt(0))>=56320&&t<=57343?o("symbol",1024*(a-55296)+t-56320+65536,++te-2,te):o("symbol",a,te-1,te)}function c(t,r,a,n,s){return null==n&&(a=te-1,n=te),{type:"quantifier",min:t,max:r,greedy:!0,body:null,symbol:s,range:[a,n],raw:e.substring(a,n)}}function l(t,r,a,n){return{type:"characterClass",kind:t.kind,body:t.body,negative:r,range:[a,n],raw:e.substring(a,n)}}function u(t,r,a,n){return t.codePoint>r.codePoint&&K("invalid range in character class",t.raw+"-"+r.raw,a,n),{type:"characterClassRange",min:t,max:r,range:[a,n],raw:e.substring(a,n)}}function p(e){return"alternative"===e.type?e.body:[e]}function f(e){te+=e=e||1}function g(e){m(e)||K("character",e)}function m(t){var r=t.length;if(e.substring(te,te+r)===t)return f(r),t}function y(t){if(e[te]===t)return te++,t}function h(){return e[te]}function b(t){return e[te]===t}function v(t){return e[te+1]===t}function x(t){var r=e.substring(te).match(t);return r&&(te+=r[0].length),r}function R(){var t=[],r=te;for(t.push(j());y("|");)t.push(j());return 1===t.length?t[0]:function(t,r,a){return{type:"disjunction",body:t,range:[r,a],raw:e.substring(r,a)}}(t,r,te)}function j(){for(var t,r=[],a=te;t=w();)r.push(t);return 1===r.length?r[0]:function(t,r,a){return{type:"alternative",body:t,range:[r,a],raw:e.substring(r,a)}}(r,a,te)}function w(){if(te>=e.length||b("|")||b(")"))return null;var t,a=function(){switch(h()){case"^":return f(),s("start",1);case"$":return f(),s("end",1);case"\\":if(v("b"))return f(2),s("boundary",2);if(v("B"))return f(2),s("not-boundary",2);break;case"(":return E("(?=","lookahead","(?!","negativeLookahead");default:return}}();if(a){var i=te;if(t=T()||!1){if(!ee&&"group"===a.type)return t.body=p(a),n(t,a.range[0]),t;te=i,K("Expected atom")}return a}var c=function(){var t;switch(t=h()){case".":return f(),{type:"dot",range:[te-1,te],raw:"."};case"\\":if(f(),!(t=k())){if(!ee&&"c"==h())return o("symbol",92,te-1,te);K("atomEscape")}return t;case"[":return F();case"(":if(r.lookbehind&&(t=E("(?<=","lookbehind","(?<!","negativeLookbehind")))return t;if(r.namedGroups&&m("(?<")){var a=O();g(">");var n=S("normal",a.range[0]-3);return n.name=a,n}return r.modifiers&&function(t){var r=t.length;return e.substring(te,te+r)===t}("(?")&&":"!=e[te+2]?function(){function e(e){for(var t=0;t<e.length;){if(-1!=e.indexOf(e[t],t+1))return!0;t++}return!1}var t=te;f(2);var r,a=x(/^[sim]+/);y("-")&&":"!==h()?(r=x(/^[sim]+/))||K("Invalid flags for modifiers group"):a||K("Invalid flags for modifiers group"),a=a?a[0]:"",r=r?r[0]:"";var n=a+r;(n.length>3||e(n))&&K("flags cannot be duplicated for modifiers group"),y(":")||K("Invalid flags for modifiers group");var s=S("ignore",t);return s.modifierFlags={enabling:a,disabling:r},s}():E("(?:","ignore","(","normal");case"]":case"}":if(!ee)return f(),d(t);break;case"^":case"$":case"*":case"+":case"?":case"{":case")":case"|":break;default:return f(),d(t)}}();if(c||(i=te,(t=T()||!1)&&(te=i,K("Expected atom")),!ee&&y("{")?c=d("{"):K("Expected atom")),t=T()||!1){var l=c.type,u=c.behavior;return"group"!==l||"negativeLookbehind"!==u&&"lookbehind"!==u||K("Invalid quantifier","",t.range[0],t.range[1]),t.body=p(c),n(t,c.range[0]),t}return c}function E(e,t,r,a){var n=null,s=te;if(m(e))n=t;else{if(!m(r))return!1;n=a}return S(n,s)}function S(t,r){var a=R();a||K("Expected disjunction"),g(")");var n=function(t,r,a,n){return{type:"group",behavior:t,body:r,range:[a,n],raw:e.substring(a,n)}}(t,p(a),r,te);return"normal"==t&&Y&&J++,n}function T(){var e,t,r,a,n=te;switch(h()){case"*":f(),t=c(0,void 0,void 0,void 0,"*");break;case"+":f(),t=c(1,void 0,void 0,void 0,"+");break;case"?":f(),t=c(0,1,void 0,void 0,"?");break;case"{":(e=x(/^\{(\d+)\}/))?t=c(r=parseInt(e[1],10),r,n,te):(e=x(/^\{(\d+),\}/))?t=c(r=parseInt(e[1],10),void 0,n,te):(e=x(/^\{(\d+),(\d+)\}/))&&((r=parseInt(e[1],10))>(a=parseInt(e[2],10))&&K("numbers out of order in {} quantifier","",n,te),t=c(r,a,n,te)),(r&&!Number.isSafeInteger(r)||a&&!Number.isSafeInteger(a))&&K("iterations outside JS safe integer range in quantifier","",n,te)}return t&&y("?")&&(t.greedy=!1,t.range[1]+=1),t}function P(t,r){var a,n;if(r&&"unicodeEscape"==t.kind&&(a=t.codePoint)>=55296&&a<=56319&&b("\\")&&v("u")){var s=te;te++;var o=A();"unicodeEscape"==o.kind&&(n=o.codePoint)>=56320&&n<=57343?(t.kind="unicodeCodePointEscape",t.codePoint=1024*(a-55296)+n-56320+65536,t.range[1]=te,t.raw=e.substring(t.range[0],te)):te=s}return t}function A(){return k(!0)}function k(t){var a,s,o=te;switch(s=h()){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return function(t){var r,a,s=te;if(r=x(/^(?!0)\d+/)){a=r[0];var o=parseInt(r[0],10);if(o<=J&&!t)return function(t){var r=te-1-t.length;return{type:"reference",matchIndex:parseInt(t,10),range:[r,te],raw:e.substring(r,te)}}(r[0]);if(X.push(o),Y?$=!0:C(s,te),f(-r[0].length),r=x(/^[0-7]{1,3}/))return i("octal",parseInt(r[0],8),r[0],1);var c=te;return n(r=d(x(/^[89]/)),c-1)}return!!(r=x(/^[0-7]{1,3}/))&&("0"!==(a=r[0])&&C(s,te),/^0{1,3}$/.test(a)?i("null",0,"0",a.length):i("octal",parseInt(a,8),a,1))}(t);case"B":if(t){K("\\B not possible inside of CharacterClass","",o);break}return M();case"b":return t?(f(),i("singleEscape",8,"\\b")):M();case"c":if(t){if(!ee&&(a=x(/^c(\d)/)))return i("controlLetter",a[1]+16,a[1],2);if(!ee&&m("c_"))return i("controlLetter",31,"_",2)}return I();case"d":case"D":case"w":case"W":case"s":case"S":return f(),function(t){return{type:"characterClassEscape",value:t,range:[te-2,te],raw:e.substring(te-2,te)}}(s);case"k":return function(){if(r.namedGroups&&x(/^k<(?=.*?>)/)){var t=O();return g(">"),function(t){var r=t.range[0]-3;return{type:"reference",name:t,range:[r,te],raw:e.substring(r,te)}}(t)}}()||M();case"p":case"P":return function(){var t,a=te;return!!(r.unicodePropertyEscape&&ee&&(t=x(/^([pP])\{([^}]+)\}/)))&&{type:"unicodePropertyEscape",negative:"P"===t[1],value:t[2],range:[a-1,te],raw:e.substring(a-1,te)}}()||M();case"-":return t&&ee?(f(),i("singleEscape",45,"\\-")):M();default:return I()}}function C(e,t){ee&&K("Invalid decimal escape in unicode mode",null,e,t)}function _(e){var t;return(t=x(/^u([0-9a-fA-F]{4})/))?P(i("unicodeEscape",parseInt(t[1],16),t[1],2),e):e&&(t=x(/^u\{([0-9a-fA-F]+)\}/))?i("unicodeCodePointEscape",parseInt(t[1],16),t[1],4):void 0}function I(){var e,t=te;switch(h()){case"t":return f(),i("singleEscape",9,"\\t");case"n":return f(),i("singleEscape",10,"\\n");case"v":return f(),i("singleEscape",11,"\\v");case"f":return f(),i("singleEscape",12,"\\f");case"r":return f(),i("singleEscape",13,"\\r");case"c":if(e=x(/^c([a-zA-Z])/))return i("controlLetter",e[1].charCodeAt(0)%32,e[1],2);break;case"x":if(e=x(/^x([0-9a-fA-F]{2})/))return i("hexadecimalEscape",parseInt(e[1],16),e[1],2);break;case"u":if(e=_(ee))return(!e||e.codePoint>1114111)&&K("Invalid escape sequence",null,t,te),e}return M()}function D(t){var r=h(),n=te;if("\\"===r){f();var s=_(!0);return s&&t(s.codePoint)||K("Invalid escape sequence",null,n,te),a(s.codePoint)}var o=r.charCodeAt(0);if(o>=55296&&o<=56319){var i=(r+=e[te+1]).charCodeAt(1);i>=56320&&i<=57343&&(o=1024*(o-55296)+i-56320+65536)}if(t(o))return f(),o>65535&&f(),r}function O(){var t,r=te,a=D(N);for(a||K("Invalid identifier");t=D(B);)a+=t;return{type:"identifier",value:a,range:[r,te],raw:e.substring(r,te)}}function N(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=128&&/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u0870-\u0887\u0889-\u088E\u08A0-\u08C9\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C5D\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D04-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u1711\u171F-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4C\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C8A\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1CFA\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BF\u31F0-\u31FF\u3400-\u4DBF\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7CD\uA7D0\uA7D1\uA7D3\uA7D5-\uA7DC\uA7F2-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB69\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD70-\uDD7A\uDD7C-\uDD8A\uDD8C-\uDD92\uDD94\uDD95\uDD97-\uDDA1\uDDA3-\uDDB1\uDDB3-\uDDB9\uDDBB\uDDBC\uDDC0-\uDDF3\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67\uDF80-\uDF85\uDF87-\uDFB0\uDFB2-\uDFBA]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDD4A-\uDD65\uDD6F-\uDD85\uDE80-\uDEA9\uDEB0\uDEB1\uDEC2-\uDEC4\uDF00-\uDF1C\uDF27\uDF30-\uDF45\uDF70-\uDF81\uDFB0-\uDFC4\uDFE0-\uDFF6]|\uD804[\uDC03-\uDC37\uDC71\uDC72\uDC75\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD47\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE3F\uDE40\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61\uDF80-\uDF89\uDF8B\uDF8E\uDF90-\uDFB5\uDFB7\uDFD1\uDFD3]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC5F-\uDC61\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDEB8\uDF00-\uDF1A\uDF40-\uDF46]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF-\uDD06\uDD09\uDD0C-\uDD13\uDD15\uDD16\uDD18-\uDD2F\uDD3F\uDD41\uDDA0-\uDDA7\uDDAA-\uDDD0\uDDE1\uDDE3\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE89\uDE9D\uDEB0-\uDEF8\uDFC0-\uDFE0]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2\uDF02\uDF04-\uDF10\uDF12-\uDF33\uDFB0]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|\uD80B[\uDF90-\uDFF0]|[\uD80C\uD80E\uD80F\uD81C-\uD820\uD822\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD887][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2F\uDC41-\uDC46\uDC60-\uDFFF]|\uD810[\uDC00-\uDFFA]|\uD811[\uDC00-\uDE46]|\uD818[\uDD00-\uDD1D]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE70-\uDEBE\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDD40-\uDD6C\uDE40-\uDE7F\uDF00-\uDF4A\uDF50\uDF93-\uDF9F\uDFE0\uDFE1\uDFE3]|\uD821[\uDC00-\uDFF7]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD08]|\uD82B[\uDFF0-\uDFF3\uDFF5-\uDFFB\uDFFD\uDFFE]|\uD82C[\uDC00-\uDD22\uDD32\uDD50-\uDD52\uDD55\uDD64-\uDD67\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD837[\uDF00-\uDF1E\uDF25-\uDF2A]|\uD838[\uDC30-\uDC6D\uDD00-\uDD2C\uDD37-\uDD3D\uDD4E\uDE90-\uDEAD\uDEC0-\uDEEB]|\uD839[\uDCD0-\uDCEB\uDDD0-\uDDED\uDDF0\uDFE0-\uDFE6\uDFE8-\uDFEB\uDFED\uDFEE\uDFF0-\uDFFE]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43\uDD4B]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF39\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD888[\uDC00-\uDFAF]/.test(a(e))}function B(e){return N(e)||e>=48&&e<=57||e>=128&&/[\xB7\u0300-\u036F\u0387\u0483-\u0487\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u0669\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u06F0-\u06F9\u0711\u0730-\u074A\u07A6-\u07B0\u07C0-\u07C9\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0897-\u089F\u08CA-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0966-\u096F\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09E6-\u09EF\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A66-\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AE6-\u0AEF\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B66-\u0B6F\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0BE6-\u0BEF\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CE6-\u0CEF\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D66-\u0D6F\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0E50-\u0E59\u0EB1\u0EB4-\u0EBC\u0EC8-\u0ECE\u0ED0-\u0ED9\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1040-\u1049\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109D\u135D-\u135F\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u17E0-\u17E9\u180B-\u180D\u180F-\u1819\u18A9\u1920-\u192B\u1930-\u193B\u1946-\u194F\u19D0-\u19DA\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AB0-\u1ABD\u1ABF-\u1ACE\u1B00-\u1B04\u1B34-\u1B44\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BF3\u1C24-\u1C37\u1C40-\u1C49\u1C50-\u1C59\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u203F\u2040\u2054\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\u30FB\uA620-\uA629\uA66F\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F1\uA8FF-\uA909\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9D0-\uA9D9\uA9E5\uA9F0-\uA9F9\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA50-\uAA59\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uABF0-\uABF9\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFF10-\uFF19\uFF3F\uFF65]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD30-\uDD39\uDD40-\uDD49\uDD69-\uDD6D\uDEAB\uDEAC\uDEFC-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC66-\uDC70\uDC73\uDC74\uDC7F-\uDC82\uDCB0-\uDCBA\uDCC2\uDCF0-\uDCF9\uDD00-\uDD02\uDD27-\uDD34\uDD36-\uDD3F\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC9-\uDDCC\uDDCE-\uDDD9\uDE2C-\uDE37\uDE3E\uDE41\uDEDF-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDFB8-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD0\uDFD2\uDFE1\uDFE2]|\uD805[\uDC35-\uDC46\uDC50-\uDC59\uDC5E\uDCB0-\uDCC3\uDCD0-\uDCD9\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDE50-\uDE59\uDEAB-\uDEB7\uDEC0-\uDEC9\uDED0-\uDEE3\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDC2C-\uDC3A\uDCE0-\uDCE9\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD3E\uDD40\uDD42\uDD43\uDD50-\uDD59\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE8A-\uDE99\uDFF0-\uDFF9]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC50-\uDC59\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD45\uDD47\uDD50-\uDD59\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDDA0-\uDDA9\uDEF3-\uDEF6\uDF00\uDF01\uDF03\uDF34-\uDF3A\uDF3E-\uDF42\uDF50-\uDF5A]|\uD80D[\uDC40\uDC47-\uDC55]|\uD818[\uDD1E-\uDD39]|\uD81A[\uDE60-\uDE69\uDEC0-\uDEC9\uDEF0-\uDEF4\uDF30-\uDF36\uDF50-\uDF59]|\uD81B[\uDD70-\uDD79\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDCF0-\uDCF9\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDD40-\uDD49\uDEAE\uDEEC-\uDEF9]|\uD839[\uDCEC-\uDCF9\uDDEE\uDDEF\uDDF1-\uDDFA]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A\uDD50-\uDD59]|\uD83E[\uDFF0-\uDFF9]|\uDB40[\uDD00-\uDDEF]/.test(a(e))}function M(){var t,a,n=h();return ee&&/[\^$.*+?()\\[\]{}|/]/.test(n)||!ee&&"c"!==n?"k"===n&&r.lookbehind?null:(a=1,i("identifier",(t=e.substring(te,te+=a)).charCodeAt(0),t,1)):null}function F(){var e,t=te;return(e=m("[^"))?(e=L(),g("]"),l(e,!0,t,te)):y("[")?(e=L(),g("]"),l(e,!1,t,te)):null}function L(){var e,t;return b("]")?{kind:"union",body:[]}:Z?function(){var e,t=[],r=G(!0);for(t.push(r),e="classRange"===r.type?"union":b("&")?"intersection":b("-")?"subtraction":"union";!b("]");)"intersection"===e?(g("&"),g("&"),b("&")&&K("&& cannot be followed by &. Wrap it in brackets: &&[&].")):"subtraction"===e&&(g("-"),g("-")),r=G("union"===e),t.push(r);return{kind:e,body:t}}():((t=q())||K("classAtom"),(e=b("]")?[t]:U(t))||K("nonEmptyClassRanges"),{kind:"union",body:e})}function U(e){var t,r,a,n,s;if(b("-")&&!v("]")){t=e.range[0],f(),s=d("-"),(n=q())||K("classAtom"),r=te;var o=L();return o||K("classContents"),"codePoint"in e&&"codePoint"in n?a=[u(e,n,t,r)]:ee?K("invalid character class"):a=[e,s,n],"empty"===o.type?a:a.concat(o.body)}return(a=function(){var e=q();return e||K("classAtom"),b("]")?e:U(e)}())||K("nonEmptyClassRangesNoDash"),[e].concat(a)}function q(){return y("-")?d("-"):function(){var e;switch(e=h()){case"\\":if(f(),!(e=A())){if(!ee&&"c"==h())return d("\\");K("classEscape")}return P(e,ee);case"]":case"-":break;default:return f(),d(e)}}()}function G(t){var r,a,n=te;if(y("\\")){if(m("q{"))return function(){var t=te-3,r=[];do{r.push(z())}while(y("|"));return g("}"),function(t,r,a){return{type:"classStrings",strings:t,range:[r,a],raw:e.substring(r,a)}}(r,t,te)}();if(a=A())r=a;else{if(a=H())return a;K("Invalid escape","\\"+h(),n)}}else if(a=V())r=a;else{if(a=F())return a;K("Invalid character",h())}if(t&&b("-")&&!v("-")){if(f(),a=W())return u(r,a,n,te);K("Invalid range end",h())}return r}function W(){if(y("\\")){var e,t=te;if(e=H())return e;K("Invalid escape","\\"+h(),t)}return V()}function V(){var e;if(x(/^(?:&&|!!|##|\$\$|%%|\*\*|\+\+|,,|\.\.|::|;;|<<|==|>>|\?\?|@@|\^\^|``|~~)/)&&K("Invalid set operation in character class"),e=x(/^[^()[\]{}/\-\\|]/))return d(e)}function H(){var e;return y("b")?i("singleEscape",8,"\\b"):y("B")?void K("\\B not possible inside of ClassContents","",te-2):(e=x(/^[&\-!#%,:;<=>@`~]/))?i("identifier",e[0].codePointAt(0),e[0]):(e=I())?e:null}function z(){for(var t,r=[],a=te;t=W();)r.push(t);return function(t,r,a){return{type:"classString",characters:t,range:[r,a],raw:e.substring(r,a)}}(r,a,te)}function K(t,r,a,n){a=null==a?te:a,n=null==n?a:n;var s=Math.max(0,a-10),o=Math.min(n+10,e.length),i=" "+e.substring(s,o),d=" "+new Array(a-s+1).join(" ")+"^";throw SyntaxError(t+" at position "+a+(r?": "+r:"")+"\n"+i+"\n"+d)}r||(r={});var X=[],J=0,Y=!0,$=!1,Q=-1!==(t||"").indexOf("u"),Z=-1!==(t||"").indexOf("v"),ee=Q||Z,te=0;if(Z&&!r.unicodeSet)throw new Error('The "v" flag is only supported when the .unicodeSet option is enabled.');if(Q&&Z)throw new Error('The "u" and "v" flags are mutually exclusive.');""===(e=String(e))&&(e="(?:)");var re=R();return re.range[1]!==e.length&&K("Could not parse entire input - got stuck","",re.range[1]),($=$||X.some(function(e){return e<=J}))?(te=0,Y=!1,R()):re}},e.exports?e.exports=n:window.regjsparser=n}(Bue);var Mue=Bue.exports,Fue=new Set(["General_Category","Script","Script_Extensions","Alphabetic","Any","ASCII","ASCII_Hex_Digit","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","ID_Continue","ID_Start","Ideographic","IDS_Binary_Operator","IDS_Trinary_Operator","Join_Control","Logical_Order_Exception","Lowercase","Math","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start"]),Lue=new Map([["scx","Script_Extensions"],["sc","Script"],["gc","General_Category"],["AHex","ASCII_Hex_Digit"],["Alpha","Alphabetic"],["Bidi_C","Bidi_Control"],["Bidi_M","Bidi_Mirrored"],["Cased","Cased"],["CI","Case_Ignorable"],["CWCF","Changes_When_Casefolded"],["CWCM","Changes_When_Casemapped"],["CWKCF","Changes_When_NFKC_Casefolded"],["CWL","Changes_When_Lowercased"],["CWT","Changes_When_Titlecased"],["CWU","Changes_When_Uppercased"],["Dash","Dash"],["Dep","Deprecated"],["DI","Default_Ignorable_Code_Point"],["Dia","Diacritic"],["EBase","Emoji_Modifier_Base"],["EComp","Emoji_Component"],["EMod","Emoji_Modifier"],["Emoji","Emoji"],["EPres","Emoji_Presentation"],["Ext","Extender"],["ExtPict","Extended_Pictographic"],["Gr_Base","Grapheme_Base"],["Gr_Ext","Grapheme_Extend"],["Hex","Hex_Digit"],["IDC","ID_Continue"],["Ideo","Ideographic"],["IDS","ID_Start"],["IDSB","IDS_Binary_Operator"],["IDST","IDS_Trinary_Operator"],["Join_C","Join_Control"],["LOE","Logical_Order_Exception"],["Lower","Lowercase"],["Math","Math"],["NChar","Noncharacter_Code_Point"],["Pat_Syn","Pattern_Syntax"],["Pat_WS","Pattern_White_Space"],["QMark","Quotation_Mark"],["Radical","Radical"],["RI","Regional_Indicator"],["SD","Soft_Dotted"],["STerm","Sentence_Terminal"],["Term","Terminal_Punctuation"],["UIdeo","Unified_Ideograph"],["Upper","Uppercase"],["VS","Variation_Selector"],["WSpace","White_Space"],["space","White_Space"],["XIDC","XID_Continue"],["XIDS","XID_Start"]]),Uue=Fue,que=Lue,Gue=function(e){if(Uue.has(e))return e;if(que.has(e))return que.get(e);throw new Error("Unknown property: "+e)},Wue=new Map([["General_Category",new Map([["C","Other"],["Cc","Control"],["cntrl","Control"],["Cf","Format"],["Cn","Unassigned"],["Co","Private_Use"],["Cs","Surrogate"],["L","Letter"],["LC","Cased_Letter"],["Ll","Lowercase_Letter"],["Lm","Modifier_Letter"],["Lo","Other_Letter"],["Lt","Titlecase_Letter"],["Lu","Uppercase_Letter"],["M","Mark"],["Combining_Mark","Mark"],["Mc","Spacing_Mark"],["Me","Enclosing_Mark"],["Mn","Nonspacing_Mark"],["N","Number"],["Nd","Decimal_Number"],["digit","Decimal_Number"],["Nl","Letter_Number"],["No","Other_Number"],["P","Punctuation"],["punct","Punctuation"],["Pc","Connector_Punctuation"],["Pd","Dash_Punctuation"],["Pe","Close_Punctuation"],["Pf","Final_Punctuation"],["Pi","Initial_Punctuation"],["Po","Other_Punctuation"],["Ps","Open_Punctuation"],["S","Symbol"],["Sc","Currency_Symbol"],["Sk","Modifier_Symbol"],["Sm","Math_Symbol"],["So","Other_Symbol"],["Z","Separator"],["Zl","Line_Separator"],["Zp","Paragraph_Separator"],["Zs","Space_Separator"],["Other","Other"],["Control","Control"],["Format","Format"],["Unassigned","Unassigned"],["Private_Use","Private_Use"],["Surrogate","Surrogate"],["Letter","Letter"],["Cased_Letter","Cased_Letter"],["Lowercase_Letter","Lowercase_Letter"],["Modifier_Letter","Modifier_Letter"],["Other_Letter","Other_Letter"],["Titlecase_Letter","Titlecase_Letter"],["Uppercase_Letter","Uppercase_Letter"],["Mark","Mark"],["Spacing_Mark","Spacing_Mark"],["Enclosing_Mark","Enclosing_Mark"],["Nonspacing_Mark","Nonspacing_Mark"],["Number","Number"],["Decimal_Number","Decimal_Number"],["Letter_Number","Letter_Number"],["Other_Number","Other_Number"],["Punctuation","Punctuation"],["Connector_Punctuation","Connector_Punctuation"],["Dash_Punctuation","Dash_Punctuation"],["Close_Punctuation","Close_Punctuation"],["Final_Punctuation","Final_Punctuation"],["Initial_Punctuation","Initial_Punctuation"],["Other_Punctuation","Other_Punctuation"],["Open_Punctuation","Open_Punctuation"],["Symbol","Symbol"],["Currency_Symbol","Currency_Symbol"],["Modifier_Symbol","Modifier_Symbol"],["Math_Symbol","Math_Symbol"],["Other_Symbol","Other_Symbol"],["Separator","Separator"],["Line_Separator","Line_Separator"],["Paragraph_Separator","Paragraph_Separator"],["Space_Separator","Space_Separator"]])],["Script",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Berf","Beria_Erfe"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Gara","Garay"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Gukh","Gurung_Khema"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Kawi","Kawi"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Krai","Kirat_Rai"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nagm","Nag_Mundari"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Onao","Ol_Onal"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sidt","Sidetic"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sunu","Sunuwar"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Tayo","Tai_Yo"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Todr","Todhri"],["Tols","Tolong_Siki"],["Toto","Toto"],["Tutg","Tulu_Tigalari"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Beria_Erfe","Beria_Erfe"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Garay","Garay"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurung_Khema","Gurung_Khema"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kirat_Rai","Kirat_Rai"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nag_Mundari","Nag_Mundari"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Ol_Onal","Ol_Onal"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Sidetic","Sidetic"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Sunuwar","Sunuwar"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Tai_Yo","Tai_Yo"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Todhri","Todhri"],["Tolong_Siki","Tolong_Siki"],["Tulu_Tigalari","Tulu_Tigalari"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])],["Script_Extensions",new Map([["Adlm","Adlam"],["Aghb","Caucasian_Albanian"],["Ahom","Ahom"],["Arab","Arabic"],["Armi","Imperial_Aramaic"],["Armn","Armenian"],["Avst","Avestan"],["Bali","Balinese"],["Bamu","Bamum"],["Bass","Bassa_Vah"],["Batk","Batak"],["Beng","Bengali"],["Berf","Beria_Erfe"],["Bhks","Bhaiksuki"],["Bopo","Bopomofo"],["Brah","Brahmi"],["Brai","Braille"],["Bugi","Buginese"],["Buhd","Buhid"],["Cakm","Chakma"],["Cans","Canadian_Aboriginal"],["Cari","Carian"],["Cham","Cham"],["Cher","Cherokee"],["Chrs","Chorasmian"],["Copt","Coptic"],["Qaac","Coptic"],["Cpmn","Cypro_Minoan"],["Cprt","Cypriot"],["Cyrl","Cyrillic"],["Deva","Devanagari"],["Diak","Dives_Akuru"],["Dogr","Dogra"],["Dsrt","Deseret"],["Dupl","Duployan"],["Egyp","Egyptian_Hieroglyphs"],["Elba","Elbasan"],["Elym","Elymaic"],["Ethi","Ethiopic"],["Gara","Garay"],["Geor","Georgian"],["Glag","Glagolitic"],["Gong","Gunjala_Gondi"],["Gonm","Masaram_Gondi"],["Goth","Gothic"],["Gran","Grantha"],["Grek","Greek"],["Gujr","Gujarati"],["Gukh","Gurung_Khema"],["Guru","Gurmukhi"],["Hang","Hangul"],["Hani","Han"],["Hano","Hanunoo"],["Hatr","Hatran"],["Hebr","Hebrew"],["Hira","Hiragana"],["Hluw","Anatolian_Hieroglyphs"],["Hmng","Pahawh_Hmong"],["Hmnp","Nyiakeng_Puachue_Hmong"],["Hrkt","Katakana_Or_Hiragana"],["Hung","Old_Hungarian"],["Ital","Old_Italic"],["Java","Javanese"],["Kali","Kayah_Li"],["Kana","Katakana"],["Kawi","Kawi"],["Khar","Kharoshthi"],["Khmr","Khmer"],["Khoj","Khojki"],["Kits","Khitan_Small_Script"],["Knda","Kannada"],["Krai","Kirat_Rai"],["Kthi","Kaithi"],["Lana","Tai_Tham"],["Laoo","Lao"],["Latn","Latin"],["Lepc","Lepcha"],["Limb","Limbu"],["Lina","Linear_A"],["Linb","Linear_B"],["Lisu","Lisu"],["Lyci","Lycian"],["Lydi","Lydian"],["Mahj","Mahajani"],["Maka","Makasar"],["Mand","Mandaic"],["Mani","Manichaean"],["Marc","Marchen"],["Medf","Medefaidrin"],["Mend","Mende_Kikakui"],["Merc","Meroitic_Cursive"],["Mero","Meroitic_Hieroglyphs"],["Mlym","Malayalam"],["Modi","Modi"],["Mong","Mongolian"],["Mroo","Mro"],["Mtei","Meetei_Mayek"],["Mult","Multani"],["Mymr","Myanmar"],["Nagm","Nag_Mundari"],["Nand","Nandinagari"],["Narb","Old_North_Arabian"],["Nbat","Nabataean"],["Newa","Newa"],["Nkoo","Nko"],["Nshu","Nushu"],["Ogam","Ogham"],["Olck","Ol_Chiki"],["Onao","Ol_Onal"],["Orkh","Old_Turkic"],["Orya","Oriya"],["Osge","Osage"],["Osma","Osmanya"],["Ougr","Old_Uyghur"],["Palm","Palmyrene"],["Pauc","Pau_Cin_Hau"],["Perm","Old_Permic"],["Phag","Phags_Pa"],["Phli","Inscriptional_Pahlavi"],["Phlp","Psalter_Pahlavi"],["Phnx","Phoenician"],["Plrd","Miao"],["Prti","Inscriptional_Parthian"],["Rjng","Rejang"],["Rohg","Hanifi_Rohingya"],["Runr","Runic"],["Samr","Samaritan"],["Sarb","Old_South_Arabian"],["Saur","Saurashtra"],["Sgnw","SignWriting"],["Shaw","Shavian"],["Shrd","Sharada"],["Sidd","Siddham"],["Sidt","Sidetic"],["Sind","Khudawadi"],["Sinh","Sinhala"],["Sogd","Sogdian"],["Sogo","Old_Sogdian"],["Sora","Sora_Sompeng"],["Soyo","Soyombo"],["Sund","Sundanese"],["Sunu","Sunuwar"],["Sylo","Syloti_Nagri"],["Syrc","Syriac"],["Tagb","Tagbanwa"],["Takr","Takri"],["Tale","Tai_Le"],["Talu","New_Tai_Lue"],["Taml","Tamil"],["Tang","Tangut"],["Tavt","Tai_Viet"],["Tayo","Tai_Yo"],["Telu","Telugu"],["Tfng","Tifinagh"],["Tglg","Tagalog"],["Thaa","Thaana"],["Thai","Thai"],["Tibt","Tibetan"],["Tirh","Tirhuta"],["Tnsa","Tangsa"],["Todr","Todhri"],["Tols","Tolong_Siki"],["Toto","Toto"],["Tutg","Tulu_Tigalari"],["Ugar","Ugaritic"],["Vaii","Vai"],["Vith","Vithkuqi"],["Wara","Warang_Citi"],["Wcho","Wancho"],["Xpeo","Old_Persian"],["Xsux","Cuneiform"],["Yezi","Yezidi"],["Yiii","Yi"],["Zanb","Zanabazar_Square"],["Zinh","Inherited"],["Qaai","Inherited"],["Zyyy","Common"],["Zzzz","Unknown"],["Adlam","Adlam"],["Caucasian_Albanian","Caucasian_Albanian"],["Arabic","Arabic"],["Imperial_Aramaic","Imperial_Aramaic"],["Armenian","Armenian"],["Avestan","Avestan"],["Balinese","Balinese"],["Bamum","Bamum"],["Bassa_Vah","Bassa_Vah"],["Batak","Batak"],["Bengali","Bengali"],["Beria_Erfe","Beria_Erfe"],["Bhaiksuki","Bhaiksuki"],["Bopomofo","Bopomofo"],["Brahmi","Brahmi"],["Braille","Braille"],["Buginese","Buginese"],["Buhid","Buhid"],["Chakma","Chakma"],["Canadian_Aboriginal","Canadian_Aboriginal"],["Carian","Carian"],["Cherokee","Cherokee"],["Chorasmian","Chorasmian"],["Coptic","Coptic"],["Cypro_Minoan","Cypro_Minoan"],["Cypriot","Cypriot"],["Cyrillic","Cyrillic"],["Devanagari","Devanagari"],["Dives_Akuru","Dives_Akuru"],["Dogra","Dogra"],["Deseret","Deseret"],["Duployan","Duployan"],["Egyptian_Hieroglyphs","Egyptian_Hieroglyphs"],["Elbasan","Elbasan"],["Elymaic","Elymaic"],["Ethiopic","Ethiopic"],["Garay","Garay"],["Georgian","Georgian"],["Glagolitic","Glagolitic"],["Gunjala_Gondi","Gunjala_Gondi"],["Masaram_Gondi","Masaram_Gondi"],["Gothic","Gothic"],["Grantha","Grantha"],["Greek","Greek"],["Gujarati","Gujarati"],["Gurung_Khema","Gurung_Khema"],["Gurmukhi","Gurmukhi"],["Hangul","Hangul"],["Han","Han"],["Hanunoo","Hanunoo"],["Hatran","Hatran"],["Hebrew","Hebrew"],["Hiragana","Hiragana"],["Anatolian_Hieroglyphs","Anatolian_Hieroglyphs"],["Pahawh_Hmong","Pahawh_Hmong"],["Nyiakeng_Puachue_Hmong","Nyiakeng_Puachue_Hmong"],["Katakana_Or_Hiragana","Katakana_Or_Hiragana"],["Old_Hungarian","Old_Hungarian"],["Old_Italic","Old_Italic"],["Javanese","Javanese"],["Kayah_Li","Kayah_Li"],["Katakana","Katakana"],["Kharoshthi","Kharoshthi"],["Khmer","Khmer"],["Khojki","Khojki"],["Khitan_Small_Script","Khitan_Small_Script"],["Kannada","Kannada"],["Kirat_Rai","Kirat_Rai"],["Kaithi","Kaithi"],["Tai_Tham","Tai_Tham"],["Lao","Lao"],["Latin","Latin"],["Lepcha","Lepcha"],["Limbu","Limbu"],["Linear_A","Linear_A"],["Linear_B","Linear_B"],["Lycian","Lycian"],["Lydian","Lydian"],["Mahajani","Mahajani"],["Makasar","Makasar"],["Mandaic","Mandaic"],["Manichaean","Manichaean"],["Marchen","Marchen"],["Medefaidrin","Medefaidrin"],["Mende_Kikakui","Mende_Kikakui"],["Meroitic_Cursive","Meroitic_Cursive"],["Meroitic_Hieroglyphs","Meroitic_Hieroglyphs"],["Malayalam","Malayalam"],["Mongolian","Mongolian"],["Mro","Mro"],["Meetei_Mayek","Meetei_Mayek"],["Multani","Multani"],["Myanmar","Myanmar"],["Nag_Mundari","Nag_Mundari"],["Nandinagari","Nandinagari"],["Old_North_Arabian","Old_North_Arabian"],["Nabataean","Nabataean"],["Nko","Nko"],["Nushu","Nushu"],["Ogham","Ogham"],["Ol_Chiki","Ol_Chiki"],["Ol_Onal","Ol_Onal"],["Old_Turkic","Old_Turkic"],["Oriya","Oriya"],["Osage","Osage"],["Osmanya","Osmanya"],["Old_Uyghur","Old_Uyghur"],["Palmyrene","Palmyrene"],["Pau_Cin_Hau","Pau_Cin_Hau"],["Old_Permic","Old_Permic"],["Phags_Pa","Phags_Pa"],["Inscriptional_Pahlavi","Inscriptional_Pahlavi"],["Psalter_Pahlavi","Psalter_Pahlavi"],["Phoenician","Phoenician"],["Miao","Miao"],["Inscriptional_Parthian","Inscriptional_Parthian"],["Rejang","Rejang"],["Hanifi_Rohingya","Hanifi_Rohingya"],["Runic","Runic"],["Samaritan","Samaritan"],["Old_South_Arabian","Old_South_Arabian"],["Saurashtra","Saurashtra"],["SignWriting","SignWriting"],["Shavian","Shavian"],["Sharada","Sharada"],["Siddham","Siddham"],["Sidetic","Sidetic"],["Khudawadi","Khudawadi"],["Sinhala","Sinhala"],["Sogdian","Sogdian"],["Old_Sogdian","Old_Sogdian"],["Sora_Sompeng","Sora_Sompeng"],["Soyombo","Soyombo"],["Sundanese","Sundanese"],["Sunuwar","Sunuwar"],["Syloti_Nagri","Syloti_Nagri"],["Syriac","Syriac"],["Tagbanwa","Tagbanwa"],["Takri","Takri"],["Tai_Le","Tai_Le"],["New_Tai_Lue","New_Tai_Lue"],["Tamil","Tamil"],["Tangut","Tangut"],["Tai_Viet","Tai_Viet"],["Tai_Yo","Tai_Yo"],["Telugu","Telugu"],["Tifinagh","Tifinagh"],["Tagalog","Tagalog"],["Thaana","Thaana"],["Tibetan","Tibetan"],["Tirhuta","Tirhuta"],["Tangsa","Tangsa"],["Todhri","Todhri"],["Tolong_Siki","Tolong_Siki"],["Tulu_Tigalari","Tulu_Tigalari"],["Ugaritic","Ugaritic"],["Vai","Vai"],["Vithkuqi","Vithkuqi"],["Warang_Citi","Warang_Citi"],["Wancho","Wancho"],["Old_Persian","Old_Persian"],["Cuneiform","Cuneiform"],["Yezidi","Yezidi"],["Yi","Yi"],["Zanabazar_Square","Zanabazar_Square"],["Inherited","Inherited"],["Common","Common"],["Unknown","Unknown"]])]]),Vue=function(e,t){var r=Wue.get(e);if(!r)throw new Error("Unknown property `"+e+"`.");var a=r.get(t);if(a)return a;throw new Error("Unknown value `"+t+"` for property `"+e+"`.")},Hue=new Map([[75,8490],[83,383],[107,8490],[115,383],[181,924],[197,8491],[223,7838],[229,8491],[383,83],[452,453],[453,452],[455,456],[456,455],[458,459],[459,458],[497,498],[498,497],[837,8126],[912,8147],[914,976],[917,1013],[920,1012],[921,8126],[922,1008],[924,181],[928,982],[929,1009],[931,962],[934,981],[937,8486],[944,8163],[952,1012],[962,931],[969,8486],[976,914],[977,1012],[981,934],[982,928],[1008,922],[1009,929],[1012,[920,977,952]],[1013,917],[1042,7296],[1044,7297],[1054,7298],[1057,7299],[1058,7301],[1066,7302],[1122,7303],[7296,1042],[7297,1044],[7298,1054],[7299,1057],[7300,7301],[7301,[1058,7300]],[7302,1066],[7303,1122],[7304,42570],[7776,7835],[7835,7776],[7838,223],[8064,8072],[8065,8073],[8066,8074],[8067,8075],[8068,8076],[8069,8077],[8070,8078],[8071,8079],[8072,8064],[8073,8065],[8074,8066],[8075,8067],[8076,8068],[8077,8069],[8078,8070],[8079,8071],[8080,8088],[8081,8089],[8082,8090],[8083,8091],[8084,8092],[8085,8093],[8086,8094],[8087,8095],[8088,8080],[8089,8081],[8090,8082],[8091,8083],[8092,8084],[8093,8085],[8094,8086],[8095,8087],[8096,8104],[8097,8105],[8098,8106],[8099,8107],[8100,8108],[8101,8109],[8102,8110],[8103,8111],[8104,8096],[8105,8097],[8106,8098],[8107,8099],[8108,8100],[8109,8101],[8110,8102],[8111,8103],[8115,8124],[8124,8115],[8126,[837,921]],[8131,8140],[8140,8131],[8147,912],[8163,944],[8179,8188],[8188,8179],[8486,[937,969]],[8490,75],[8491,[197,229]],[42570,7304],[64261,64262],[64262,64261],[66560,66600],[66561,66601],[66562,66602],[66563,66603],[66564,66604],[66565,66605],[66566,66606],[66567,66607],[66568,66608],[66569,66609],[66570,66610],[66571,66611],[66572,66612],[66573,66613],[66574,66614],[66575,66615],[66576,66616],[66577,66617],[66578,66618],[66579,66619],[66580,66620],[66581,66621],[66582,66622],[66583,66623],[66584,66624],[66585,66625],[66586,66626],[66587,66627],[66588,66628],[66589,66629],[66590,66630],[66591,66631],[66592,66632],[66593,66633],[66594,66634],[66595,66635],[66596,66636],[66597,66637],[66598,66638],[66599,66639],[66600,66560],[66601,66561],[66602,66562],[66603,66563],[66604,66564],[66605,66565],[66606,66566],[66607,66567],[66608,66568],[66609,66569],[66610,66570],[66611,66571],[66612,66572],[66613,66573],[66614,66574],[66615,66575],[66616,66576],[66617,66577],[66618,66578],[66619,66579],[66620,66580],[66621,66581],[66622,66582],[66623,66583],[66624,66584],[66625,66585],[66626,66586],[66627,66587],[66628,66588],[66629,66589],[66630,66590],[66631,66591],[66632,66592],[66633,66593],[66634,66594],[66635,66595],[66636,66596],[66637,66597],[66638,66598],[66639,66599],[66736,66776],[66737,66777],[66738,66778],[66739,66779],[66740,66780],[66741,66781],[66742,66782],[66743,66783],[66744,66784],[66745,66785],[66746,66786],[66747,66787],[66748,66788],[66749,66789],[66750,66790],[66751,66791],[66752,66792],[66753,66793],[66754,66794],[66755,66795],[66756,66796],[66757,66797],[66758,66798],[66759,66799],[66760,66800],[66761,66801],[66762,66802],[66763,66803],[66764,66804],[66765,66805],[66766,66806],[66767,66807],[66768,66808],[66769,66809],[66770,66810],[66771,66811],[66776,66736],[66777,66737],[66778,66738],[66779,66739],[66780,66740],[66781,66741],[66782,66742],[66783,66743],[66784,66744],[66785,66745],[66786,66746],[66787,66747],[66788,66748],[66789,66749],[66790,66750],[66791,66751],[66792,66752],[66793,66753],[66794,66754],[66795,66755],[66796,66756],[66797,66757],[66798,66758],[66799,66759],[66800,66760],[66801,66761],[66802,66762],[66803,66763],[66804,66764],[66805,66765],[66806,66766],[66807,66767],[66808,66768],[66809,66769],[66810,66770],[66811,66771],[66928,66967],[66929,66968],[66930,66969],[66931,66970],[66932,66971],[66933,66972],[66934,66973],[66935,66974],[66936,66975],[66937,66976],[66938,66977],[66940,66979],[66941,66980],[66942,66981],[66943,66982],[66944,66983],[66945,66984],[66946,66985],[66947,66986],[66948,66987],[66949,66988],[66950,66989],[66951,66990],[66952,66991],[66953,66992],[66954,66993],[66956,66995],[66957,66996],[66958,66997],[66959,66998],[66960,66999],[66961,67e3],[66962,67001],[66964,67003],[66965,67004],[66967,66928],[66968,66929],[66969,66930],[66970,66931],[66971,66932],[66972,66933],[66973,66934],[66974,66935],[66975,66936],[66976,66937],[66977,66938],[66979,66940],[66980,66941],[66981,66942],[66982,66943],[66983,66944],[66984,66945],[66985,66946],[66986,66947],[66987,66948],[66988,66949],[66989,66950],[66990,66951],[66991,66952],[66992,66953],[66993,66954],[66995,66956],[66996,66957],[66997,66958],[66998,66959],[66999,66960],[67e3,66961],[67001,66962],[67003,66964],[67004,66965],[68736,68800],[68737,68801],[68738,68802],[68739,68803],[68740,68804],[68741,68805],[68742,68806],[68743,68807],[68744,68808],[68745,68809],[68746,68810],[68747,68811],[68748,68812],[68749,68813],[68750,68814],[68751,68815],[68752,68816],[68753,68817],[68754,68818],[68755,68819],[68756,68820],[68757,68821],[68758,68822],[68759,68823],[68760,68824],[68761,68825],[68762,68826],[68763,68827],[68764,68828],[68765,68829],[68766,68830],[68767,68831],[68768,68832],[68769,68833],[68770,68834],[68771,68835],[68772,68836],[68773,68837],[68774,68838],[68775,68839],[68776,68840],[68777,68841],[68778,68842],[68779,68843],[68780,68844],[68781,68845],[68782,68846],[68783,68847],[68784,68848],[68785,68849],[68786,68850],[68800,68736],[68801,68737],[68802,68738],[68803,68739],[68804,68740],[68805,68741],[68806,68742],[68807,68743],[68808,68744],[68809,68745],[68810,68746],[68811,68747],[68812,68748],[68813,68749],[68814,68750],[68815,68751],[68816,68752],[68817,68753],[68818,68754],[68819,68755],[68820,68756],[68821,68757],[68822,68758],[68823,68759],[68824,68760],[68825,68761],[68826,68762],[68827,68763],[68828,68764],[68829,68765],[68830,68766],[68831,68767],[68832,68768],[68833,68769],[68834,68770],[68835,68771],[68836,68772],[68837,68773],[68838,68774],[68839,68775],[68840,68776],[68841,68777],[68842,68778],[68843,68779],[68844,68780],[68845,68781],[68846,68782],[68847,68783],[68848,68784],[68849,68785],[68850,68786],[68944,68976],[68945,68977],[68946,68978],[68947,68979],[68948,68980],[68949,68981],[68950,68982],[68951,68983],[68952,68984],[68953,68985],[68954,68986],[68955,68987],[68956,68988],[68957,68989],[68958,68990],[68959,68991],[68960,68992],[68961,68993],[68962,68994],[68963,68995],[68964,68996],[68965,68997],[68976,68944],[68977,68945],[68978,68946],[68979,68947],[68980,68948],[68981,68949],[68982,68950],[68983,68951],[68984,68952],[68985,68953],[68986,68954],[68987,68955],[68988,68956],[68989,68957],[68990,68958],[68991,68959],[68992,68960],[68993,68961],[68994,68962],[68995,68963],[68996,68964],[68997,68965],[71840,71872],[71841,71873],[71842,71874],[71843,71875],[71844,71876],[71845,71877],[71846,71878],[71847,71879],[71848,71880],[71849,71881],[71850,71882],[71851,71883],[71852,71884],[71853,71885],[71854,71886],[71855,71887],[71856,71888],[71857,71889],[71858,71890],[71859,71891],[71860,71892],[71861,71893],[71862,71894],[71863,71895],[71864,71896],[71865,71897],[71866,71898],[71867,71899],[71868,71900],[71869,71901],[71870,71902],[71871,71903],[71872,71840],[71873,71841],[71874,71842],[71875,71843],[71876,71844],[71877,71845],[71878,71846],[71879,71847],[71880,71848],[71881,71849],[71882,71850],[71883,71851],[71884,71852],[71885,71853],[71886,71854],[71887,71855],[71888,71856],[71889,71857],[71890,71858],[71891,71859],[71892,71860],[71893,71861],[71894,71862],[71895,71863],[71896,71864],[71897,71865],[71898,71866],[71899,71867],[71900,71868],[71901,71869],[71902,71870],[71903,71871],[93760,93792],[93761,93793],[93762,93794],[93763,93795],[93764,93796],[93765,93797],[93766,93798],[93767,93799],[93768,93800],[93769,93801],[93770,93802],[93771,93803],[93772,93804],[93773,93805],[93774,93806],[93775,93807],[93776,93808],[93777,93809],[93778,93810],[93779,93811],[93780,93812],[93781,93813],[93782,93814],[93783,93815],[93784,93816],[93785,93817],[93786,93818],[93787,93819],[93788,93820],[93789,93821],[93790,93822],[93791,93823],[93792,93760],[93793,93761],[93794,93762],[93795,93763],[93796,93764],[93797,93765],[93798,93766],[93799,93767],[93800,93768],[93801,93769],[93802,93770],[93803,93771],[93804,93772],[93805,93773],[93806,93774],[93807,93775],[93808,93776],[93809,93777],[93810,93778],[93811,93779],[93812,93780],[93813,93781],[93814,93782],[93815,93783],[93816,93784],[93817,93785],[93818,93786],[93819,93787],[93820,93788],[93821,93789],[93822,93790],[93823,93791],[93856,93883],[93857,93884],[93858,93885],[93859,93886],[93860,93887],[93861,93888],[93862,93889],[93863,93890],[93864,93891],[93865,93892],[93866,93893],[93867,93894],[93868,93895],[93869,93896],[93870,93897],[93871,93898],[93872,93899],[93873,93900],[93874,93901],[93875,93902],[93876,93903],[93877,93904],[93878,93905],[93879,93906],[93880,93907],[93883,93856],[93884,93857],[93885,93858],[93886,93859],[93887,93860],[93888,93861],[93889,93862],[93890,93863],[93891,93864],[93892,93865],[93893,93866],[93894,93867],[93895,93868],[93896,93869],[93897,93870],[93898,93871],[93899,93872],[93900,93873],[93901,93874],[93902,93875],[93903,93876],[93904,93877],[93905,93878],[93906,93879],[93907,93880],[125184,125218],[125185,125219],[125186,125220],[125187,125221],[125188,125222],[125189,125223],[125190,125224],[125191,125225],[125192,125226],[125193,125227],[125194,125228],[125195,125229],[125196,125230],[125197,125231],[125198,125232],[125199,125233],[125200,125234],[125201,125235],[125202,125236],[125203,125237],[125204,125238],[125205,125239],[125206,125240],[125207,125241],[125208,125242],[125209,125243],[125210,125244],[125211,125245],[125212,125246],[125213,125247],[125214,125248],[125215,125249],[125216,125250],[125217,125251],[125218,125184],[125219,125185],[125220,125186],[125221,125187],[125222,125188],[125223,125189],[125224,125190],[125225,125191],[125226,125192],[125227,125193],[125228,125194],[125229,125195],[125230,125196],[125231,125197],[125232,125198],[125233,125199],[125234,125200],[125235,125201],[125236,125202],[125237,125203],[125238,125204],[125239,125205],[125240,125206],[125241,125207],[125242,125208],[125243,125209],[125244,125210],[125245,125211],[125246,125212],[125247,125213],[125248,125214],[125249,125215],[125250,125216],[125251,125217]]),zue=new Map([[181,956],[192,224],[193,225],[194,226],[195,227],[196,228],[197,229],[198,230],[199,231],[200,232],[201,233],[202,234],[203,235],[204,236],[205,237],[206,238],[207,239],[208,240],[209,241],[210,242],[211,243],[212,244],[213,245],[214,246],[216,248],[217,249],[218,250],[219,251],[220,252],[221,253],[222,254],[224,192],[225,193],[226,194],[227,195],[228,196],[229,197],[230,198],[231,199],[232,200],[233,201],[234,202],[235,203],[236,204],[237,205],[238,206],[239,207],[240,208],[241,209],[242,210],[243,211],[244,212],[245,213],[246,214],[248,216],[249,217],[250,218],[251,219],[252,220],[253,221],[254,222],[255,376],[256,257],[257,256],[258,259],[259,258],[260,261],[261,260],[262,263],[263,262],[264,265],[265,264],[266,267],[267,266],[268,269],[269,268],[270,271],[271,270],[272,273],[273,272],[274,275],[275,274],[276,277],[277,276],[278,279],[279,278],[280,281],[281,280],[282,283],[283,282],[284,285],[285,284],[286,287],[287,286],[288,289],[289,288],[290,291],[291,290],[292,293],[293,292],[294,295],[295,294],[296,297],[297,296],[298,299],[299,298],[300,301],[301,300],[302,303],[303,302],[306,307],[307,306],[308,309],[309,308],[310,311],[311,310],[313,314],[314,313],[315,316],[316,315],[317,318],[318,317],[319,320],[320,319],[321,322],[322,321],[323,324],[324,323],[325,326],[326,325],[327,328],[328,327],[330,331],[331,330],[332,333],[333,332],[334,335],[335,334],[336,337],[337,336],[338,339],[339,338],[340,341],[341,340],[342,343],[343,342],[344,345],[345,344],[346,347],[347,346],[348,349],[349,348],[350,351],[351,350],[352,353],[353,352],[354,355],[355,354],[356,357],[357,356],[358,359],[359,358],[360,361],[361,360],[362,363],[363,362],[364,365],[365,364],[366,367],[367,366],[368,369],[369,368],[370,371],[371,370],[372,373],[373,372],[374,375],[375,374],[376,255],[377,378],[378,377],[379,380],[380,379],[381,382],[382,381],[384,579],[385,595],[386,387],[387,386],[388,389],[389,388],[390,596],[391,392],[392,391],[393,598],[394,599],[395,396],[396,395],[398,477],[399,601],[400,603],[401,402],[402,401],[403,608],[404,611],[405,502],[406,617],[407,616],[408,409],[409,408],[410,573],[411,42972],[412,623],[413,626],[414,544],[415,629],[416,417],[417,416],[418,419],[419,418],[420,421],[421,420],[422,640],[423,424],[424,423],[425,643],[428,429],[429,428],[430,648],[431,432],[432,431],[433,650],[434,651],[435,436],[436,435],[437,438],[438,437],[439,658],[440,441],[441,440],[444,445],[445,444],[447,503],[452,454],[453,454],[454,[452,453]],[455,457],[456,457],[457,[455,456]],[458,460],[459,460],[460,[458,459]],[461,462],[462,461],[463,464],[464,463],[465,466],[466,465],[467,468],[468,467],[469,470],[470,469],[471,472],[472,471],[473,474],[474,473],[475,476],[476,475],[477,398],[478,479],[479,478],[480,481],[481,480],[482,483],[483,482],[484,485],[485,484],[486,487],[487,486],[488,489],[489,488],[490,491],[491,490],[492,493],[493,492],[494,495],[495,494],[497,499],[498,499],[499,[497,498]],[500,501],[501,500],[502,405],[503,447],[504,505],[505,504],[506,507],[507,506],[508,509],[509,508],[510,511],[511,510],[512,513],[513,512],[514,515],[515,514],[516,517],[517,516],[518,519],[519,518],[520,521],[521,520],[522,523],[523,522],[524,525],[525,524],[526,527],[527,526],[528,529],[529,528],[530,531],[531,530],[532,533],[533,532],[534,535],[535,534],[536,537],[537,536],[538,539],[539,538],[540,541],[541,540],[542,543],[543,542],[544,414],[546,547],[547,546],[548,549],[549,548],[550,551],[551,550],[552,553],[553,552],[554,555],[555,554],[556,557],[557,556],[558,559],[559,558],[560,561],[561,560],[562,563],[563,562],[570,11365],[571,572],[572,571],[573,410],[574,11366],[575,11390],[576,11391],[577,578],[578,577],[579,384],[580,649],[581,652],[582,583],[583,582],[584,585],[585,584],[586,587],[587,586],[588,589],[589,588],[590,591],[591,590],[592,11375],[593,11373],[594,11376],[595,385],[596,390],[598,393],[599,394],[601,399],[603,400],[604,42923],[608,403],[609,42924],[611,404],[612,42955],[613,42893],[614,42922],[616,407],[617,406],[618,42926],[619,11362],[620,42925],[623,412],[625,11374],[626,413],[629,415],[637,11364],[640,422],[642,42949],[643,425],[647,42929],[648,430],[649,580],[650,433],[651,434],[652,581],[658,439],[669,42930],[670,42928],[837,953],[880,881],[881,880],[882,883],[883,882],[886,887],[887,886],[891,1021],[892,1022],[893,1023],[895,1011],[902,940],[904,941],[905,942],[906,943],[908,972],[910,973],[911,974],[913,945],[914,946],[915,947],[916,948],[917,949],[918,950],[919,951],[920,952],[921,953],[922,954],[923,955],[924,956],[925,957],[926,958],[927,959],[928,960],[929,961],[931,963],[932,964],[933,965],[934,966],[935,967],[936,968],[937,969],[938,970],[939,971],[940,902],[941,904],[942,905],[943,906],[945,913],[946,[914,976]],[947,915],[948,916],[949,[917,1013]],[950,918],[951,919],[952,[920,977]],[953,[837,921,8126]],[954,[922,1008]],[955,923],[956,[181,924]],[957,925],[958,926],[959,927],[960,[928,982]],[961,[929,1009]],[962,963],[963,[931,962]],[964,932],[965,933],[966,[934,981]],[967,935],[968,936],[969,937],[970,938],[971,939],[972,908],[973,910],[974,911],[975,983],[976,946],[977,952],[981,966],[982,960],[983,975],[984,985],[985,984],[986,987],[987,986],[988,989],[989,988],[990,991],[991,990],[992,993],[993,992],[994,995],[995,994],[996,997],[997,996],[998,999],[999,998],[1e3,1001],[1001,1e3],[1002,1003],[1003,1002],[1004,1005],[1005,1004],[1006,1007],[1007,1006],[1008,954],[1009,961],[1010,1017],[1011,895],[1013,949],[1015,1016],[1016,1015],[1017,1010],[1018,1019],[1019,1018],[1021,891],[1022,892],[1023,893],[1024,1104],[1025,1105],[1026,1106],[1027,1107],[1028,1108],[1029,1109],[1030,1110],[1031,1111],[1032,1112],[1033,1113],[1034,1114],[1035,1115],[1036,1116],[1037,1117],[1038,1118],[1039,1119],[1040,1072],[1041,1073],[1042,1074],[1043,1075],[1044,1076],[1045,1077],[1046,1078],[1047,1079],[1048,1080],[1049,1081],[1050,1082],[1051,1083],[1052,1084],[1053,1085],[1054,1086],[1055,1087],[1056,1088],[1057,1089],[1058,1090],[1059,1091],[1060,1092],[1061,1093],[1062,1094],[1063,1095],[1064,1096],[1065,1097],[1066,1098],[1067,1099],[1068,1100],[1069,1101],[1070,1102],[1071,1103],[1072,1040],[1073,1041],[1074,[1042,7296]],[1075,1043],[1076,[1044,7297]],[1077,1045],[1078,1046],[1079,1047],[1080,1048],[1081,1049],[1082,1050],[1083,1051],[1084,1052],[1085,1053],[1086,[1054,7298]],[1087,1055],[1088,1056],[1089,[1057,7299]],[1090,[1058,7300,7301]],[1091,1059],[1092,1060],[1093,1061],[1094,1062],[1095,1063],[1096,1064],[1097,1065],[1098,[1066,7302]],[1099,1067],[1100,1068],[1101,1069],[1102,1070],[1103,1071],[1104,1024],[1105,1025],[1106,1026],[1107,1027],[1108,1028],[1109,1029],[1110,1030],[1111,1031],[1112,1032],[1113,1033],[1114,1034],[1115,1035],[1116,1036],[1117,1037],[1118,1038],[1119,1039],[1120,1121],[1121,1120],[1122,1123],[1123,[1122,7303]],[1124,1125],[1125,1124],[1126,1127],[1127,1126],[1128,1129],[1129,1128],[1130,1131],[1131,1130],[1132,1133],[1133,1132],[1134,1135],[1135,1134],[1136,1137],[1137,1136],[1138,1139],[1139,1138],[1140,1141],[1141,1140],[1142,1143],[1143,1142],[1144,1145],[1145,1144],[1146,1147],[1147,1146],[1148,1149],[1149,1148],[1150,1151],[1151,1150],[1152,1153],[1153,1152],[1162,1163],[1163,1162],[1164,1165],[1165,1164],[1166,1167],[1167,1166],[1168,1169],[1169,1168],[1170,1171],[1171,1170],[1172,1173],[1173,1172],[1174,1175],[1175,1174],[1176,1177],[1177,1176],[1178,1179],[1179,1178],[1180,1181],[1181,1180],[1182,1183],[1183,1182],[1184,1185],[1185,1184],[1186,1187],[1187,1186],[1188,1189],[1189,1188],[1190,1191],[1191,1190],[1192,1193],[1193,1192],[1194,1195],[1195,1194],[1196,1197],[1197,1196],[1198,1199],[1199,1198],[1200,1201],[1201,1200],[1202,1203],[1203,1202],[1204,1205],[1205,1204],[1206,1207],[1207,1206],[1208,1209],[1209,1208],[1210,1211],[1211,1210],[1212,1213],[1213,1212],[1214,1215],[1215,1214],[1216,1231],[1217,1218],[1218,1217],[1219,1220],[1220,1219],[1221,1222],[1222,1221],[1223,1224],[1224,1223],[1225,1226],[1226,1225],[1227,1228],[1228,1227],[1229,1230],[1230,1229],[1231,1216],[1232,1233],[1233,1232],[1234,1235],[1235,1234],[1236,1237],[1237,1236],[1238,1239],[1239,1238],[1240,1241],[1241,1240],[1242,1243],[1243,1242],[1244,1245],[1245,1244],[1246,1247],[1247,1246],[1248,1249],[1249,1248],[1250,1251],[1251,1250],[1252,1253],[1253,1252],[1254,1255],[1255,1254],[1256,1257],[1257,1256],[1258,1259],[1259,1258],[1260,1261],[1261,1260],[1262,1263],[1263,1262],[1264,1265],[1265,1264],[1266,1267],[1267,1266],[1268,1269],[1269,1268],[1270,1271],[1271,1270],[1272,1273],[1273,1272],[1274,1275],[1275,1274],[1276,1277],[1277,1276],[1278,1279],[1279,1278],[1280,1281],[1281,1280],[1282,1283],[1283,1282],[1284,1285],[1285,1284],[1286,1287],[1287,1286],[1288,1289],[1289,1288],[1290,1291],[1291,1290],[1292,1293],[1293,1292],[1294,1295],[1295,1294],[1296,1297],[1297,1296],[1298,1299],[1299,1298],[1300,1301],[1301,1300],[1302,1303],[1303,1302],[1304,1305],[1305,1304],[1306,1307],[1307,1306],[1308,1309],[1309,1308],[1310,1311],[1311,1310],[1312,1313],[1313,1312],[1314,1315],[1315,1314],[1316,1317],[1317,1316],[1318,1319],[1319,1318],[1320,1321],[1321,1320],[1322,1323],[1323,1322],[1324,1325],[1325,1324],[1326,1327],[1327,1326],[1329,1377],[1330,1378],[1331,1379],[1332,1380],[1333,1381],[1334,1382],[1335,1383],[1336,1384],[1337,1385],[1338,1386],[1339,1387],[1340,1388],[1341,1389],[1342,1390],[1343,1391],[1344,1392],[1345,1393],[1346,1394],[1347,1395],[1348,1396],[1349,1397],[1350,1398],[1351,1399],[1352,1400],[1353,1401],[1354,1402],[1355,1403],[1356,1404],[1357,1405],[1358,1406],[1359,1407],[1360,1408],[1361,1409],[1362,1410],[1363,1411],[1364,1412],[1365,1413],[1366,1414],[1377,1329],[1378,1330],[1379,1331],[1380,1332],[1381,1333],[1382,1334],[1383,1335],[1384,1336],[1385,1337],[1386,1338],[1387,1339],[1388,1340],[1389,1341],[1390,1342],[1391,1343],[1392,1344],[1393,1345],[1394,1346],[1395,1347],[1396,1348],[1397,1349],[1398,1350],[1399,1351],[1400,1352],[1401,1353],[1402,1354],[1403,1355],[1404,1356],[1405,1357],[1406,1358],[1407,1359],[1408,1360],[1409,1361],[1410,1362],[1411,1363],[1412,1364],[1413,1365],[1414,1366],[4256,11520],[4257,11521],[4258,11522],[4259,11523],[4260,11524],[4261,11525],[4262,11526],[4263,11527],[4264,11528],[4265,11529],[4266,11530],[4267,11531],[4268,11532],[4269,11533],[4270,11534],[4271,11535],[4272,11536],[4273,11537],[4274,11538],[4275,11539],[4276,11540],[4277,11541],[4278,11542],[4279,11543],[4280,11544],[4281,11545],[4282,11546],[4283,11547],[4284,11548],[4285,11549],[4286,11550],[4287,11551],[4288,11552],[4289,11553],[4290,11554],[4291,11555],[4292,11556],[4293,11557],[4295,11559],[4301,11565],[4304,7312],[4305,7313],[4306,7314],[4307,7315],[4308,7316],[4309,7317],[4310,7318],[4311,7319],[4312,7320],[4313,7321],[4314,7322],[4315,7323],[4316,7324],[4317,7325],[4318,7326],[4319,7327],[4320,7328],[4321,7329],[4322,7330],[4323,7331],[4324,7332],[4325,7333],[4326,7334],[4327,7335],[4328,7336],[4329,7337],[4330,7338],[4331,7339],[4332,7340],[4333,7341],[4334,7342],[4335,7343],[4336,7344],[4337,7345],[4338,7346],[4339,7347],[4340,7348],[4341,7349],[4342,7350],[4343,7351],[4344,7352],[4345,7353],[4346,7354],[4349,7357],[4350,7358],[4351,7359],[5024,43888],[5025,43889],[5026,43890],[5027,43891],[5028,43892],[5029,43893],[5030,43894],[5031,43895],[5032,43896],[5033,43897],[5034,43898],[5035,43899],[5036,43900],[5037,43901],[5038,43902],[5039,43903],[5040,43904],[5041,43905],[5042,43906],[5043,43907],[5044,43908],[5045,43909],[5046,43910],[5047,43911],[5048,43912],[5049,43913],[5050,43914],[5051,43915],[5052,43916],[5053,43917],[5054,43918],[5055,43919],[5056,43920],[5057,43921],[5058,43922],[5059,43923],[5060,43924],[5061,43925],[5062,43926],[5063,43927],[5064,43928],[5065,43929],[5066,43930],[5067,43931],[5068,43932],[5069,43933],[5070,43934],[5071,43935],[5072,43936],[5073,43937],[5074,43938],[5075,43939],[5076,43940],[5077,43941],[5078,43942],[5079,43943],[5080,43944],[5081,43945],[5082,43946],[5083,43947],[5084,43948],[5085,43949],[5086,43950],[5087,43951],[5088,43952],[5089,43953],[5090,43954],[5091,43955],[5092,43956],[5093,43957],[5094,43958],[5095,43959],[5096,43960],[5097,43961],[5098,43962],[5099,43963],[5100,43964],[5101,43965],[5102,43966],[5103,43967],[5104,5112],[5105,5113],[5106,5114],[5107,5115],[5108,5116],[5109,5117],[5112,5104],[5113,5105],[5114,5106],[5115,5107],[5116,5108],[5117,5109],[7296,1074],[7297,1076],[7298,1086],[7299,1089],[7300,1090],[7301,1090],[7302,1098],[7303,1123],[7304,42571],[7305,7306],[7306,7305],[7312,4304],[7313,4305],[7314,4306],[7315,4307],[7316,4308],[7317,4309],[7318,4310],[7319,4311],[7320,4312],[7321,4313],[7322,4314],[7323,4315],[7324,4316],[7325,4317],[7326,4318],[7327,4319],[7328,4320],[7329,4321],[7330,4322],[7331,4323],[7332,4324],[7333,4325],[7334,4326],[7335,4327],[7336,4328],[7337,4329],[7338,4330],[7339,4331],[7340,4332],[7341,4333],[7342,4334],[7343,4335],[7344,4336],[7345,4337],[7346,4338],[7347,4339],[7348,4340],[7349,4341],[7350,4342],[7351,4343],[7352,4344],[7353,4345],[7354,4346],[7357,4349],[7358,4350],[7359,4351],[7545,42877],[7549,11363],[7566,42950],[7680,7681],[7681,7680],[7682,7683],[7683,7682],[7684,7685],[7685,7684],[7686,7687],[7687,7686],[7688,7689],[7689,7688],[7690,7691],[7691,7690],[7692,7693],[7693,7692],[7694,7695],[7695,7694],[7696,7697],[7697,7696],[7698,7699],[7699,7698],[7700,7701],[7701,7700],[7702,7703],[7703,7702],[7704,7705],[7705,7704],[7706,7707],[7707,7706],[7708,7709],[7709,7708],[7710,7711],[7711,7710],[7712,7713],[7713,7712],[7714,7715],[7715,7714],[7716,7717],[7717,7716],[7718,7719],[7719,7718],[7720,7721],[7721,7720],[7722,7723],[7723,7722],[7724,7725],[7725,7724],[7726,7727],[7727,7726],[7728,7729],[7729,7728],[7730,7731],[7731,7730],[7732,7733],[7733,7732],[7734,7735],[7735,7734],[7736,7737],[7737,7736],[7738,7739],[7739,7738],[7740,7741],[7741,7740],[7742,7743],[7743,7742],[7744,7745],[7745,7744],[7746,7747],[7747,7746],[7748,7749],[7749,7748],[7750,7751],[7751,7750],[7752,7753],[7753,7752],[7754,7755],[7755,7754],[7756,7757],[7757,7756],[7758,7759],[7759,7758],[7760,7761],[7761,7760],[7762,7763],[7763,7762],[7764,7765],[7765,7764],[7766,7767],[7767,7766],[7768,7769],[7769,7768],[7770,7771],[7771,7770],[7772,7773],[7773,7772],[7774,7775],[7775,7774],[7776,7777],[7777,[7776,7835]],[7778,7779],[7779,7778],[7780,7781],[7781,7780],[7782,7783],[7783,7782],[7784,7785],[7785,7784],[7786,7787],[7787,7786],[7788,7789],[7789,7788],[7790,7791],[7791,7790],[7792,7793],[7793,7792],[7794,7795],[7795,7794],[7796,7797],[7797,7796],[7798,7799],[7799,7798],[7800,7801],[7801,7800],[7802,7803],[7803,7802],[7804,7805],[7805,7804],[7806,7807],[7807,7806],[7808,7809],[7809,7808],[7810,7811],[7811,7810],[7812,7813],[7813,7812],[7814,7815],[7815,7814],[7816,7817],[7817,7816],[7818,7819],[7819,7818],[7820,7821],[7821,7820],[7822,7823],[7823,7822],[7824,7825],[7825,7824],[7826,7827],[7827,7826],[7828,7829],[7829,7828],[7835,7777],[7840,7841],[7841,7840],[7842,7843],[7843,7842],[7844,7845],[7845,7844],[7846,7847],[7847,7846],[7848,7849],[7849,7848],[7850,7851],[7851,7850],[7852,7853],[7853,7852],[7854,7855],[7855,7854],[7856,7857],[7857,7856],[7858,7859],[7859,7858],[7860,7861],[7861,7860],[7862,7863],[7863,7862],[7864,7865],[7865,7864],[7866,7867],[7867,7866],[7868,7869],[7869,7868],[7870,7871],[7871,7870],[7872,7873],[7873,7872],[7874,7875],[7875,7874],[7876,7877],[7877,7876],[7878,7879],[7879,7878],[7880,7881],[7881,7880],[7882,7883],[7883,7882],[7884,7885],[7885,7884],[7886,7887],[7887,7886],[7888,7889],[7889,7888],[7890,7891],[7891,7890],[7892,7893],[7893,7892],[7894,7895],[7895,7894],[7896,7897],[7897,7896],[7898,7899],[7899,7898],[7900,7901],[7901,7900],[7902,7903],[7903,7902],[7904,7905],[7905,7904],[7906,7907],[7907,7906],[7908,7909],[7909,7908],[7910,7911],[7911,7910],[7912,7913],[7913,7912],[7914,7915],[7915,7914],[7916,7917],[7917,7916],[7918,7919],[7919,7918],[7920,7921],[7921,7920],[7922,7923],[7923,7922],[7924,7925],[7925,7924],[7926,7927],[7927,7926],[7928,7929],[7929,7928],[7930,7931],[7931,7930],[7932,7933],[7933,7932],[7934,7935],[7935,7934],[7936,7944],[7937,7945],[7938,7946],[7939,7947],[7940,7948],[7941,7949],[7942,7950],[7943,7951],[7944,7936],[7945,7937],[7946,7938],[7947,7939],[7948,7940],[7949,7941],[7950,7942],[7951,7943],[7952,7960],[7953,7961],[7954,7962],[7955,7963],[7956,7964],[7957,7965],[7960,7952],[7961,7953],[7962,7954],[7963,7955],[7964,7956],[7965,7957],[7968,7976],[7969,7977],[7970,7978],[7971,7979],[7972,7980],[7973,7981],[7974,7982],[7975,7983],[7976,7968],[7977,7969],[7978,7970],[7979,7971],[7980,7972],[7981,7973],[7982,7974],[7983,7975],[7984,7992],[7985,7993],[7986,7994],[7987,7995],[7988,7996],[7989,7997],[7990,7998],[7991,7999],[7992,7984],[7993,7985],[7994,7986],[7995,7987],[7996,7988],[7997,7989],[7998,7990],[7999,7991],[8e3,8008],[8001,8009],[8002,8010],[8003,8011],[8004,8012],[8005,8013],[8008,8e3],[8009,8001],[8010,8002],[8011,8003],[8012,8004],[8013,8005],[8017,8025],[8019,8027],[8021,8029],[8023,8031],[8025,8017],[8027,8019],[8029,8021],[8031,8023],[8032,8040],[8033,8041],[8034,8042],[8035,8043],[8036,8044],[8037,8045],[8038,8046],[8039,8047],[8040,8032],[8041,8033],[8042,8034],[8043,8035],[8044,8036],[8045,8037],[8046,8038],[8047,8039],[8048,8122],[8049,8123],[8050,8136],[8051,8137],[8052,8138],[8053,8139],[8054,8154],[8055,8155],[8056,8184],[8057,8185],[8058,8170],[8059,8171],[8060,8186],[8061,8187],[8112,8120],[8113,8121],[8120,8112],[8121,8113],[8122,8048],[8123,8049],[8126,953],[8136,8050],[8137,8051],[8138,8052],[8139,8053],[8144,8152],[8145,8153],[8152,8144],[8153,8145],[8154,8054],[8155,8055],[8160,8168],[8161,8169],[8165,8172],[8168,8160],[8169,8161],[8170,8058],[8171,8059],[8172,8165],[8184,8056],[8185,8057],[8186,8060],[8187,8061],[8498,8526],[8526,8498],[8544,8560],[8545,8561],[8546,8562],[8547,8563],[8548,8564],[8549,8565],[8550,8566],[8551,8567],[8552,8568],[8553,8569],[8554,8570],[8555,8571],[8556,8572],[8557,8573],[8558,8574],[8559,8575],[8560,8544],[8561,8545],[8562,8546],[8563,8547],[8564,8548],[8565,8549],[8566,8550],[8567,8551],[8568,8552],[8569,8553],[8570,8554],[8571,8555],[8572,8556],[8573,8557],[8574,8558],[8575,8559],[8579,8580],[8580,8579],[9398,9424],[9399,9425],[9400,9426],[9401,9427],[9402,9428],[9403,9429],[9404,9430],[9405,9431],[9406,9432],[9407,9433],[9408,9434],[9409,9435],[9410,9436],[9411,9437],[9412,9438],[9413,9439],[9414,9440],[9415,9441],[9416,9442],[9417,9443],[9418,9444],[9419,9445],[9420,9446],[9421,9447],[9422,9448],[9423,9449],[9424,9398],[9425,9399],[9426,9400],[9427,9401],[9428,9402],[9429,9403],[9430,9404],[9431,9405],[9432,9406],[9433,9407],[9434,9408],[9435,9409],[9436,9410],[9437,9411],[9438,9412],[9439,9413],[9440,9414],[9441,9415],[9442,9416],[9443,9417],[9444,9418],[9445,9419],[9446,9420],[9447,9421],[9448,9422],[9449,9423],[11264,11312],[11265,11313],[11266,11314],[11267,11315],[11268,11316],[11269,11317],[11270,11318],[11271,11319],[11272,11320],[11273,11321],[11274,11322],[11275,11323],[11276,11324],[11277,11325],[11278,11326],[11279,11327],[11280,11328],[11281,11329],[11282,11330],[11283,11331],[11284,11332],[11285,11333],[11286,11334],[11287,11335],[11288,11336],[11289,11337],[11290,11338],[11291,11339],[11292,11340],[11293,11341],[11294,11342],[11295,11343],[11296,11344],[11297,11345],[11298,11346],[11299,11347],[11300,11348],[11301,11349],[11302,11350],[11303,11351],[11304,11352],[11305,11353],[11306,11354],[11307,11355],[11308,11356],[11309,11357],[11310,11358],[11311,11359],[11312,11264],[11313,11265],[11314,11266],[11315,11267],[11316,11268],[11317,11269],[11318,11270],[11319,11271],[11320,11272],[11321,11273],[11322,11274],[11323,11275],[11324,11276],[11325,11277],[11326,11278],[11327,11279],[11328,11280],[11329,11281],[11330,11282],[11331,11283],[11332,11284],[11333,11285],[11334,11286],[11335,11287],[11336,11288],[11337,11289],[11338,11290],[11339,11291],[11340,11292],[11341,11293],[11342,11294],[11343,11295],[11344,11296],[11345,11297],[11346,11298],[11347,11299],[11348,11300],[11349,11301],[11350,11302],[11351,11303],[11352,11304],[11353,11305],[11354,11306],[11355,11307],[11356,11308],[11357,11309],[11358,11310],[11359,11311],[11360,11361],[11361,11360],[11362,619],[11363,7549],[11364,637],[11365,570],[11366,574],[11367,11368],[11368,11367],[11369,11370],[11370,11369],[11371,11372],[11372,11371],[11373,593],[11374,625],[11375,592],[11376,594],[11378,11379],[11379,11378],[11381,11382],[11382,11381],[11390,575],[11391,576],[11392,11393],[11393,11392],[11394,11395],[11395,11394],[11396,11397],[11397,11396],[11398,11399],[11399,11398],[11400,11401],[11401,11400],[11402,11403],[11403,11402],[11404,11405],[11405,11404],[11406,11407],[11407,11406],[11408,11409],[11409,11408],[11410,11411],[11411,11410],[11412,11413],[11413,11412],[11414,11415],[11415,11414],[11416,11417],[11417,11416],[11418,11419],[11419,11418],[11420,11421],[11421,11420],[11422,11423],[11423,11422],[11424,11425],[11425,11424],[11426,11427],[11427,11426],[11428,11429],[11429,11428],[11430,11431],[11431,11430],[11432,11433],[11433,11432],[11434,11435],[11435,11434],[11436,11437],[11437,11436],[11438,11439],[11439,11438],[11440,11441],[11441,11440],[11442,11443],[11443,11442],[11444,11445],[11445,11444],[11446,11447],[11447,11446],[11448,11449],[11449,11448],[11450,11451],[11451,11450],[11452,11453],[11453,11452],[11454,11455],[11455,11454],[11456,11457],[11457,11456],[11458,11459],[11459,11458],[11460,11461],[11461,11460],[11462,11463],[11463,11462],[11464,11465],[11465,11464],[11466,11467],[11467,11466],[11468,11469],[11469,11468],[11470,11471],[11471,11470],[11472,11473],[11473,11472],[11474,11475],[11475,11474],[11476,11477],[11477,11476],[11478,11479],[11479,11478],[11480,11481],[11481,11480],[11482,11483],[11483,11482],[11484,11485],[11485,11484],[11486,11487],[11487,11486],[11488,11489],[11489,11488],[11490,11491],[11491,11490],[11499,11500],[11500,11499],[11501,11502],[11502,11501],[11506,11507],[11507,11506],[11520,4256],[11521,4257],[11522,4258],[11523,4259],[11524,4260],[11525,4261],[11526,4262],[11527,4263],[11528,4264],[11529,4265],[11530,4266],[11531,4267],[11532,4268],[11533,4269],[11534,4270],[11535,4271],[11536,4272],[11537,4273],[11538,4274],[11539,4275],[11540,4276],[11541,4277],[11542,4278],[11543,4279],[11544,4280],[11545,4281],[11546,4282],[11547,4283],[11548,4284],[11549,4285],[11550,4286],[11551,4287],[11552,4288],[11553,4289],[11554,4290],[11555,4291],[11556,4292],[11557,4293],[11559,4295],[11565,4301],[42560,42561],[42561,42560],[42562,42563],[42563,42562],[42564,42565],[42565,42564],[42566,42567],[42567,42566],[42568,42569],[42569,42568],[42570,42571],[42571,[7304,42570]],[42572,42573],[42573,42572],[42574,42575],[42575,42574],[42576,42577],[42577,42576],[42578,42579],[42579,42578],[42580,42581],[42581,42580],[42582,42583],[42583,42582],[42584,42585],[42585,42584],[42586,42587],[42587,42586],[42588,42589],[42589,42588],[42590,42591],[42591,42590],[42592,42593],[42593,42592],[42594,42595],[42595,42594],[42596,42597],[42597,42596],[42598,42599],[42599,42598],[42600,42601],[42601,42600],[42602,42603],[42603,42602],[42604,42605],[42605,42604],[42624,42625],[42625,42624],[42626,42627],[42627,42626],[42628,42629],[42629,42628],[42630,42631],[42631,42630],[42632,42633],[42633,42632],[42634,42635],[42635,42634],[42636,42637],[42637,42636],[42638,42639],[42639,42638],[42640,42641],[42641,42640],[42642,42643],[42643,42642],[42644,42645],[42645,42644],[42646,42647],[42647,42646],[42648,42649],[42649,42648],[42650,42651],[42651,42650],[42786,42787],[42787,42786],[42788,42789],[42789,42788],[42790,42791],[42791,42790],[42792,42793],[42793,42792],[42794,42795],[42795,42794],[42796,42797],[42797,42796],[42798,42799],[42799,42798],[42802,42803],[42803,42802],[42804,42805],[42805,42804],[42806,42807],[42807,42806],[42808,42809],[42809,42808],[42810,42811],[42811,42810],[42812,42813],[42813,42812],[42814,42815],[42815,42814],[42816,42817],[42817,42816],[42818,42819],[42819,42818],[42820,42821],[42821,42820],[42822,42823],[42823,42822],[42824,42825],[42825,42824],[42826,42827],[42827,42826],[42828,42829],[42829,42828],[42830,42831],[42831,42830],[42832,42833],[42833,42832],[42834,42835],[42835,42834],[42836,42837],[42837,42836],[42838,42839],[42839,42838],[42840,42841],[42841,42840],[42842,42843],[42843,42842],[42844,42845],[42845,42844],[42846,42847],[42847,42846],[42848,42849],[42849,42848],[42850,42851],[42851,42850],[42852,42853],[42853,42852],[42854,42855],[42855,42854],[42856,42857],[42857,42856],[42858,42859],[42859,42858],[42860,42861],[42861,42860],[42862,42863],[42863,42862],[42873,42874],[42874,42873],[42875,42876],[42876,42875],[42877,7545],[42878,42879],[42879,42878],[42880,42881],[42881,42880],[42882,42883],[42883,42882],[42884,42885],[42885,42884],[42886,42887],[42887,42886],[42891,42892],[42892,42891],[42893,613],[42896,42897],[42897,42896],[42898,42899],[42899,42898],[42900,42948],[42902,42903],[42903,42902],[42904,42905],[42905,42904],[42906,42907],[42907,42906],[42908,42909],[42909,42908],[42910,42911],[42911,42910],[42912,42913],[42913,42912],[42914,42915],[42915,42914],[42916,42917],[42917,42916],[42918,42919],[42919,42918],[42920,42921],[42921,42920],[42922,614],[42923,604],[42924,609],[42925,620],[42926,618],[42928,670],[42929,647],[42930,669],[42931,43859],[42932,42933],[42933,42932],[42934,42935],[42935,42934],[42936,42937],[42937,42936],[42938,42939],[42939,42938],[42940,42941],[42941,42940],[42942,42943],[42943,42942],[42944,42945],[42945,42944],[42946,42947],[42947,42946],[42948,42900],[42949,642],[42950,7566],[42951,42952],[42952,42951],[42953,42954],[42954,42953],[42955,612],[42956,42957],[42957,42956],[42958,42959],[42959,42958],[42960,42961],[42961,42960],[42962,42963],[42963,42962],[42964,42965],[42965,42964],[42966,42967],[42967,42966],[42968,42969],[42969,42968],[42970,42971],[42971,42970],[42972,411],[42997,42998],[42998,42997],[43859,42931],[43888,5024],[43889,5025],[43890,5026],[43891,5027],[43892,5028],[43893,5029],[43894,5030],[43895,5031],[43896,5032],[43897,5033],[43898,5034],[43899,5035],[43900,5036],[43901,5037],[43902,5038],[43903,5039],[43904,5040],[43905,5041],[43906,5042],[43907,5043],[43908,5044],[43909,5045],[43910,5046],[43911,5047],[43912,5048],[43913,5049],[43914,5050],[43915,5051],[43916,5052],[43917,5053],[43918,5054],[43919,5055],[43920,5056],[43921,5057],[43922,5058],[43923,5059],[43924,5060],[43925,5061],[43926,5062],[43927,5063],[43928,5064],[43929,5065],[43930,5066],[43931,5067],[43932,5068],[43933,5069],[43934,5070],[43935,5071],[43936,5072],[43937,5073],[43938,5074],[43939,5075],[43940,5076],[43941,5077],[43942,5078],[43943,5079],[43944,5080],[43945,5081],[43946,5082],[43947,5083],[43948,5084],[43949,5085],[43950,5086],[43951,5087],[43952,5088],[43953,5089],[43954,5090],[43955,5091],[43956,5092],[43957,5093],[43958,5094],[43959,5095],[43960,5096],[43961,5097],[43962,5098],[43963,5099],[43964,5100],[43965,5101],[43966,5102],[43967,5103],[65313,65345],[65314,65346],[65315,65347],[65316,65348],[65317,65349],[65318,65350],[65319,65351],[65320,65352],[65321,65353],[65322,65354],[65323,65355],[65324,65356],[65325,65357],[65326,65358],[65327,65359],[65328,65360],[65329,65361],[65330,65362],[65331,65363],[65332,65364],[65333,65365],[65334,65366],[65335,65367],[65336,65368],[65337,65369],[65338,65370],[65345,65313],[65346,65314],[65347,65315],[65348,65316],[65349,65317],[65350,65318],[65351,65319],[65352,65320],[65353,65321],[65354,65322],[65355,65323],[65356,65324],[65357,65325],[65358,65326],[65359,65327],[65360,65328],[65361,65329],[65362,65330],[65363,65331],[65364,65332],[65365,65333],[65366,65334],[65367,65335],[65368,65336],[65369,65337],[65370,65338]]),Kue=new Map([[65,97],[66,98],[67,99],[68,100],[69,101],[70,102],[71,103],[72,104],[73,105],[74,106],[75,107],[76,108],[77,109],[78,110],[79,111],[80,112],[81,113],[82,114],[83,115],[84,116],[85,117],[86,118],[87,119],[88,120],[89,121],[90,122],[181,956],[192,224],[193,225],[194,226],[195,227],[196,228],[197,229],[198,230],[199,231],[200,232],[201,233],[202,234],[203,235],[204,236],[205,237],[206,238],[207,239],[208,240],[209,241],[210,242],[211,243],[212,244],[213,245],[214,246],[216,248],[217,249],[218,250],[219,251],[220,252],[221,253],[222,254],[256,257],[258,259],[260,261],[262,263],[264,265],[266,267],[268,269],[270,271],[272,273],[274,275],[276,277],[278,279],[280,281],[282,283],[284,285],[286,287],[288,289],[290,291],[292,293],[294,295],[296,297],[298,299],[300,301],[302,303],[306,307],[308,309],[310,311],[313,314],[315,316],[317,318],[319,320],[321,322],[323,324],[325,326],[327,328],[330,331],[332,333],[334,335],[336,337],[338,339],[340,341],[342,343],[344,345],[346,347],[348,349],[350,351],[352,353],[354,355],[356,357],[358,359],[360,361],[362,363],[364,365],[366,367],[368,369],[370,371],[372,373],[374,375],[376,255],[377,378],[379,380],[381,382],[383,115],[385,595],[386,387],[388,389],[390,596],[391,392],[393,598],[394,599],[395,396],[398,477],[399,601],[400,603],[401,402],[403,608],[404,611],[406,617],[407,616],[408,409],[412,623],[413,626],[415,629],[416,417],[418,419],[420,421],[422,640],[423,424],[425,643],[428,429],[430,648],[431,432],[433,650],[434,651],[435,436],[437,438],[439,658],[440,441],[444,445],[452,454],[453,454],[455,457],[456,457],[458,460],[459,460],[461,462],[463,464],[465,466],[467,468],[469,470],[471,472],[473,474],[475,476],[478,479],[480,481],[482,483],[484,485],[486,487],[488,489],[490,491],[492,493],[494,495],[497,499],[498,499],[500,501],[502,405],[503,447],[504,505],[506,507],[508,509],[510,511],[512,513],[514,515],[516,517],[518,519],[520,521],[522,523],[524,525],[526,527],[528,529],[530,531],[532,533],[534,535],[536,537],[538,539],[540,541],[542,543],[544,414],[546,547],[548,549],[550,551],[552,553],[554,555],[556,557],[558,559],[560,561],[562,563],[570,11365],[571,572],[573,410],[574,11366],[577,578],[579,384],[580,649],[581,652],[582,583],[584,585],[586,587],[588,589],[590,591],[837,953],[880,881],[882,883],[886,887],[895,1011],[902,940],[904,941],[905,942],[906,943],[908,972],[910,973],[911,974],[913,945],[914,946],[915,947],[916,948],[917,949],[918,950],[919,951],[920,952],[921,953],[922,954],[923,955],[924,956],[925,957],[926,958],[927,959],[928,960],[929,961],[931,963],[932,964],[933,965],[934,966],[935,967],[936,968],[937,969],[938,970],[939,971],[962,963],[975,983],[976,946],[977,952],[981,966],[982,960],[984,985],[986,987],[988,989],[990,991],[992,993],[994,995],[996,997],[998,999],[1e3,1001],[1002,1003],[1004,1005],[1006,1007],[1008,954],[1009,961],[1012,952],[1013,949],[1015,1016],[1017,1010],[1018,1019],[1021,891],[1022,892],[1023,893],[1024,1104],[1025,1105],[1026,1106],[1027,1107],[1028,1108],[1029,1109],[1030,1110],[1031,1111],[1032,1112],[1033,1113],[1034,1114],[1035,1115],[1036,1116],[1037,1117],[1038,1118],[1039,1119],[1040,1072],[1041,1073],[1042,1074],[1043,1075],[1044,1076],[1045,1077],[1046,1078],[1047,1079],[1048,1080],[1049,1081],[1050,1082],[1051,1083],[1052,1084],[1053,1085],[1054,1086],[1055,1087],[1056,1088],[1057,1089],[1058,1090],[1059,1091],[1060,1092],[1061,1093],[1062,1094],[1063,1095],[1064,1096],[1065,1097],[1066,1098],[1067,1099],[1068,1100],[1069,1101],[1070,1102],[1071,1103],[1120,1121],[1122,1123],[1124,1125],[1126,1127],[1128,1129],[1130,1131],[1132,1133],[1134,1135],[1136,1137],[1138,1139],[1140,1141],[1142,1143],[1144,1145],[1146,1147],[1148,1149],[1150,1151],[1152,1153],[1162,1163],[1164,1165],[1166,1167],[1168,1169],[1170,1171],[1172,1173],[1174,1175],[1176,1177],[1178,1179],[1180,1181],[1182,1183],[1184,1185],[1186,1187],[1188,1189],[1190,1191],[1192,1193],[1194,1195],[1196,1197],[1198,1199],[1200,1201],[1202,1203],[1204,1205],[1206,1207],[1208,1209],[1210,1211],[1212,1213],[1214,1215],[1216,1231],[1217,1218],[1219,1220],[1221,1222],[1223,1224],[1225,1226],[1227,1228],[1229,1230],[1232,1233],[1234,1235],[1236,1237],[1238,1239],[1240,1241],[1242,1243],[1244,1245],[1246,1247],[1248,1249],[1250,1251],[1252,1253],[1254,1255],[1256,1257],[1258,1259],[1260,1261],[1262,1263],[1264,1265],[1266,1267],[1268,1269],[1270,1271],[1272,1273],[1274,1275],[1276,1277],[1278,1279],[1280,1281],[1282,1283],[1284,1285],[1286,1287],[1288,1289],[1290,1291],[1292,1293],[1294,1295],[1296,1297],[1298,1299],[1300,1301],[1302,1303],[1304,1305],[1306,1307],[1308,1309],[1310,1311],[1312,1313],[1314,1315],[1316,1317],[1318,1319],[1320,1321],[1322,1323],[1324,1325],[1326,1327],[1329,1377],[1330,1378],[1331,1379],[1332,1380],[1333,1381],[1334,1382],[1335,1383],[1336,1384],[1337,1385],[1338,1386],[1339,1387],[1340,1388],[1341,1389],[1342,1390],[1343,1391],[1344,1392],[1345,1393],[1346,1394],[1347,1395],[1348,1396],[1349,1397],[1350,1398],[1351,1399],[1352,1400],[1353,1401],[1354,1402],[1355,1403],[1356,1404],[1357,1405],[1358,1406],[1359,1407],[1360,1408],[1361,1409],[1362,1410],[1363,1411],[1364,1412],[1365,1413],[1366,1414],[4256,11520],[4257,11521],[4258,11522],[4259,11523],[4260,11524],[4261,11525],[4262,11526],[4263,11527],[4264,11528],[4265,11529],[4266,11530],[4267,11531],[4268,11532],[4269,11533],[4270,11534],[4271,11535],[4272,11536],[4273,11537],[4274,11538],[4275,11539],[4276,11540],[4277,11541],[4278,11542],[4279,11543],[4280,11544],[4281,11545],[4282,11546],[4283,11547],[4284,11548],[4285,11549],[4286,11550],[4287,11551],[4288,11552],[4289,11553],[4290,11554],[4291,11555],[4292,11556],[4293,11557],[4295,11559],[4301,11565],[5112,5104],[5113,5105],[5114,5106],[5115,5107],[5116,5108],[5117,5109],[7296,1074],[7297,1076],[7298,1086],[7299,1089],[7300,1090],[7301,1090],[7302,1098],[7303,1123],[7304,42571],[7305,7306],[7312,4304],[7313,4305],[7314,4306],[7315,4307],[7316,4308],[7317,4309],[7318,4310],[7319,4311],[7320,4312],[7321,4313],[7322,4314],[7323,4315],[7324,4316],[7325,4317],[7326,4318],[7327,4319],[7328,4320],[7329,4321],[7330,4322],[7331,4323],[7332,4324],[7333,4325],[7334,4326],[7335,4327],[7336,4328],[7337,4329],[7338,4330],[7339,4331],[7340,4332],[7341,4333],[7342,4334],[7343,4335],[7344,4336],[7345,4337],[7346,4338],[7347,4339],[7348,4340],[7349,4341],[7350,4342],[7351,4343],[7352,4344],[7353,4345],[7354,4346],[7357,4349],[7358,4350],[7359,4351],[7680,7681],[7682,7683],[7684,7685],[7686,7687],[7688,7689],[7690,7691],[7692,7693],[7694,7695],[7696,7697],[7698,7699],[7700,7701],[7702,7703],[7704,7705],[7706,7707],[7708,7709],[7710,7711],[7712,7713],[7714,7715],[7716,7717],[7718,7719],[7720,7721],[7722,7723],[7724,7725],[7726,7727],[7728,7729],[7730,7731],[7732,7733],[7734,7735],[7736,7737],[7738,7739],[7740,7741],[7742,7743],[7744,7745],[7746,7747],[7748,7749],[7750,7751],[7752,7753],[7754,7755],[7756,7757],[7758,7759],[7760,7761],[7762,7763],[7764,7765],[7766,7767],[7768,7769],[7770,7771],[7772,7773],[7774,7775],[7776,7777],[7778,7779],[7780,7781],[7782,7783],[7784,7785],[7786,7787],[7788,7789],[7790,7791],[7792,7793],[7794,7795],[7796,7797],[7798,7799],[7800,7801],[7802,7803],[7804,7805],[7806,7807],[7808,7809],[7810,7811],[7812,7813],[7814,7815],[7816,7817],[7818,7819],[7820,7821],[7822,7823],[7824,7825],[7826,7827],[7828,7829],[7835,7777],[7838,223],[7840,7841],[7842,7843],[7844,7845],[7846,7847],[7848,7849],[7850,7851],[7852,7853],[7854,7855],[7856,7857],[7858,7859],[7860,7861],[7862,7863],[7864,7865],[7866,7867],[7868,7869],[7870,7871],[7872,7873],[7874,7875],[7876,7877],[7878,7879],[7880,7881],[7882,7883],[7884,7885],[7886,7887],[7888,7889],[7890,7891],[7892,7893],[7894,7895],[7896,7897],[7898,7899],[7900,7901],[7902,7903],[7904,7905],[7906,7907],[7908,7909],[7910,7911],[7912,7913],[7914,7915],[7916,7917],[7918,7919],[7920,7921],[7922,7923],[7924,7925],[7926,7927],[7928,7929],[7930,7931],[7932,7933],[7934,7935],[7944,7936],[7945,7937],[7946,7938],[7947,7939],[7948,7940],[7949,7941],[7950,7942],[7951,7943],[7960,7952],[7961,7953],[7962,7954],[7963,7955],[7964,7956],[7965,7957],[7976,7968],[7977,7969],[7978,7970],[7979,7971],[7980,7972],[7981,7973],[7982,7974],[7983,7975],[7992,7984],[7993,7985],[7994,7986],[7995,7987],[7996,7988],[7997,7989],[7998,7990],[7999,7991],[8008,8e3],[8009,8001],[8010,8002],[8011,8003],[8012,8004],[8013,8005],[8025,8017],[8027,8019],[8029,8021],[8031,8023],[8040,8032],[8041,8033],[8042,8034],[8043,8035],[8044,8036],[8045,8037],[8046,8038],[8047,8039],[8072,8064],[8073,8065],[8074,8066],[8075,8067],[8076,8068],[8077,8069],[8078,8070],[8079,8071],[8088,8080],[8089,8081],[8090,8082],[8091,8083],[8092,8084],[8093,8085],[8094,8086],[8095,8087],[8104,8096],[8105,8097],[8106,8098],[8107,8099],[8108,8100],[8109,8101],[8110,8102],[8111,8103],[8120,8112],[8121,8113],[8122,8048],[8123,8049],[8124,8115],[8126,953],[8136,8050],[8137,8051],[8138,8052],[8139,8053],[8140,8131],[8147,912],[8152,8144],[8153,8145],[8154,8054],[8155,8055],[8163,944],[8168,8160],[8169,8161],[8170,8058],[8171,8059],[8172,8165],[8184,8056],[8185,8057],[8186,8060],[8187,8061],[8188,8179],[8486,969],[8490,107],[8491,229],[8498,8526],[8544,8560],[8545,8561],[8546,8562],[8547,8563],[8548,8564],[8549,8565],[8550,8566],[8551,8567],[8552,8568],[8553,8569],[8554,8570],[8555,8571],[8556,8572],[8557,8573],[8558,8574],[8559,8575],[8579,8580],[9398,9424],[9399,9425],[9400,9426],[9401,9427],[9402,9428],[9403,9429],[9404,9430],[9405,9431],[9406,9432],[9407,9433],[9408,9434],[9409,9435],[9410,9436],[9411,9437],[9412,9438],[9413,9439],[9414,9440],[9415,9441],[9416,9442],[9417,9443],[9418,9444],[9419,9445],[9420,9446],[9421,9447],[9422,9448],[9423,9449],[11264,11312],[11265,11313],[11266,11314],[11267,11315],[11268,11316],[11269,11317],[11270,11318],[11271,11319],[11272,11320],[11273,11321],[11274,11322],[11275,11323],[11276,11324],[11277,11325],[11278,11326],[11279,11327],[11280,11328],[11281,11329],[11282,11330],[11283,11331],[11284,11332],[11285,11333],[11286,11334],[11287,11335],[11288,11336],[11289,11337],[11290,11338],[11291,11339],[11292,11340],[11293,11341],[11294,11342],[11295,11343],[11296,11344],[11297,11345],[11298,11346],[11299,11347],[11300,11348],[11301,11349],[11302,11350],[11303,11351],[11304,11352],[11305,11353],[11306,11354],[11307,11355],[11308,11356],[11309,11357],[11310,11358],[11311,11359],[11360,11361],[11362,619],[11363,7549],[11364,637],[11367,11368],[11369,11370],[11371,11372],[11373,593],[11374,625],[11375,592],[11376,594],[11378,11379],[11381,11382],[11390,575],[11391,576],[11392,11393],[11394,11395],[11396,11397],[11398,11399],[11400,11401],[11402,11403],[11404,11405],[11406,11407],[11408,11409],[11410,11411],[11412,11413],[11414,11415],[11416,11417],[11418,11419],[11420,11421],[11422,11423],[11424,11425],[11426,11427],[11428,11429],[11430,11431],[11432,11433],[11434,11435],[11436,11437],[11438,11439],[11440,11441],[11442,11443],[11444,11445],[11446,11447],[11448,11449],[11450,11451],[11452,11453],[11454,11455],[11456,11457],[11458,11459],[11460,11461],[11462,11463],[11464,11465],[11466,11467],[11468,11469],[11470,11471],[11472,11473],[11474,11475],[11476,11477],[11478,11479],[11480,11481],[11482,11483],[11484,11485],[11486,11487],[11488,11489],[11490,11491],[11499,11500],[11501,11502],[11506,11507],[42560,42561],[42562,42563],[42564,42565],[42566,42567],[42568,42569],[42570,42571],[42572,42573],[42574,42575],[42576,42577],[42578,42579],[42580,42581],[42582,42583],[42584,42585],[42586,42587],[42588,42589],[42590,42591],[42592,42593],[42594,42595],[42596,42597],[42598,42599],[42600,42601],[42602,42603],[42604,42605],[42624,42625],[42626,42627],[42628,42629],[42630,42631],[42632,42633],[42634,42635],[42636,42637],[42638,42639],[42640,42641],[42642,42643],[42644,42645],[42646,42647],[42648,42649],[42650,42651],[42786,42787],[42788,42789],[42790,42791],[42792,42793],[42794,42795],[42796,42797],[42798,42799],[42802,42803],[42804,42805],[42806,42807],[42808,42809],[42810,42811],[42812,42813],[42814,42815],[42816,42817],[42818,42819],[42820,42821],[42822,42823],[42824,42825],[42826,42827],[42828,42829],[42830,42831],[42832,42833],[42834,42835],[42836,42837],[42838,42839],[42840,42841],[42842,42843],[42844,42845],[42846,42847],[42848,42849],[42850,42851],[42852,42853],[42854,42855],[42856,42857],[42858,42859],[42860,42861],[42862,42863],[42873,42874],[42875,42876],[42877,7545],[42878,42879],[42880,42881],[42882,42883],[42884,42885],[42886,42887],[42891,42892],[42893,613],[42896,42897],[42898,42899],[42902,42903],[42904,42905],[42906,42907],[42908,42909],[42910,42911],[42912,42913],[42914,42915],[42916,42917],[42918,42919],[42920,42921],[42922,614],[42923,604],[42924,609],[42925,620],[42926,618],[42928,670],[42929,647],[42930,669],[42931,43859],[42932,42933],[42934,42935],[42936,42937],[42938,42939],[42940,42941],[42942,42943],[42944,42945],[42946,42947],[42948,42900],[42949,642],[42950,7566],[42951,42952],[42953,42954],[42955,612],[42956,42957],[42958,42959],[42960,42961],[42962,42963],[42964,42965],[42966,42967],[42968,42969],[42970,42971],[42972,411],[42997,42998],[43888,5024],[43889,5025],[43890,5026],[43891,5027],[43892,5028],[43893,5029],[43894,5030],[43895,5031],[43896,5032],[43897,5033],[43898,5034],[43899,5035],[43900,5036],[43901,5037],[43902,5038],[43903,5039],[43904,5040],[43905,5041],[43906,5042],[43907,5043],[43908,5044],[43909,5045],[43910,5046],[43911,5047],[43912,5048],[43913,5049],[43914,5050],[43915,5051],[43916,5052],[43917,5053],[43918,5054],[43919,5055],[43920,5056],[43921,5057],[43922,5058],[43923,5059],[43924,5060],[43925,5061],[43926,5062],[43927,5063],[43928,5064],[43929,5065],[43930,5066],[43931,5067],[43932,5068],[43933,5069],[43934,5070],[43935,5071],[43936,5072],[43937,5073],[43938,5074],[43939,5075],[43940,5076],[43941,5077],[43942,5078],[43943,5079],[43944,5080],[43945,5081],[43946,5082],[43947,5083],[43948,5084],[43949,5085],[43950,5086],[43951,5087],[43952,5088],[43953,5089],[43954,5090],[43955,5091],[43956,5092],[43957,5093],[43958,5094],[43959,5095],[43960,5096],[43961,5097],[43962,5098],[43963,5099],[43964,5100],[43965,5101],[43966,5102],[43967,5103],[64261,64262],[65313,65345],[65314,65346],[65315,65347],[65316,65348],[65317,65349],[65318,65350],[65319,65351],[65320,65352],[65321,65353],[65322,65354],[65323,65355],[65324,65356],[65325,65357],[65326,65358],[65327,65359],[65328,65360],[65329,65361],[65330,65362],[65331,65363],[65332,65364],[65333,65365],[65334,65366],[65335,65367],[65336,65368],[65337,65369],[65338,65370],[66560,66600],[66561,66601],[66562,66602],[66563,66603],[66564,66604],[66565,66605],[66566,66606],[66567,66607],[66568,66608],[66569,66609],[66570,66610],[66571,66611],[66572,66612],[66573,66613],[66574,66614],[66575,66615],[66576,66616],[66577,66617],[66578,66618],[66579,66619],[66580,66620],[66581,66621],[66582,66622],[66583,66623],[66584,66624],[66585,66625],[66586,66626],[66587,66627],[66588,66628],[66589,66629],[66590,66630],[66591,66631],[66592,66632],[66593,66633],[66594,66634],[66595,66635],[66596,66636],[66597,66637],[66598,66638],[66599,66639],[66736,66776],[66737,66777],[66738,66778],[66739,66779],[66740,66780],[66741,66781],[66742,66782],[66743,66783],[66744,66784],[66745,66785],[66746,66786],[66747,66787],[66748,66788],[66749,66789],[66750,66790],[66751,66791],[66752,66792],[66753,66793],[66754,66794],[66755,66795],[66756,66796],[66757,66797],[66758,66798],[66759,66799],[66760,66800],[66761,66801],[66762,66802],[66763,66803],[66764,66804],[66765,66805],[66766,66806],[66767,66807],[66768,66808],[66769,66809],[66770,66810],[66771,66811],[66928,66967],[66929,66968],[66930,66969],[66931,66970],[66932,66971],[66933,66972],[66934,66973],[66935,66974],[66936,66975],[66937,66976],[66938,66977],[66940,66979],[66941,66980],[66942,66981],[66943,66982],[66944,66983],[66945,66984],[66946,66985],[66947,66986],[66948,66987],[66949,66988],[66950,66989],[66951,66990],[66952,66991],[66953,66992],[66954,66993],[66956,66995],[66957,66996],[66958,66997],[66959,66998],[66960,66999],[66961,67e3],[66962,67001],[66964,67003],[66965,67004],[68736,68800],[68737,68801],[68738,68802],[68739,68803],[68740,68804],[68741,68805],[68742,68806],[68743,68807],[68744,68808],[68745,68809],[68746,68810],[68747,68811],[68748,68812],[68749,68813],[68750,68814],[68751,68815],[68752,68816],[68753,68817],[68754,68818],[68755,68819],[68756,68820],[68757,68821],[68758,68822],[68759,68823],[68760,68824],[68761,68825],[68762,68826],[68763,68827],[68764,68828],[68765,68829],[68766,68830],[68767,68831],[68768,68832],[68769,68833],[68770,68834],[68771,68835],[68772,68836],[68773,68837],[68774,68838],[68775,68839],[68776,68840],[68777,68841],[68778,68842],[68779,68843],[68780,68844],[68781,68845],[68782,68846],[68783,68847],[68784,68848],[68785,68849],[68786,68850],[68944,68976],[68945,68977],[68946,68978],[68947,68979],[68948,68980],[68949,68981],[68950,68982],[68951,68983],[68952,68984],[68953,68985],[68954,68986],[68955,68987],[68956,68988],[68957,68989],[68958,68990],[68959,68991],[68960,68992],[68961,68993],[68962,68994],[68963,68995],[68964,68996],[68965,68997],[71840,71872],[71841,71873],[71842,71874],[71843,71875],[71844,71876],[71845,71877],[71846,71878],[71847,71879],[71848,71880],[71849,71881],[71850,71882],[71851,71883],[71852,71884],[71853,71885],[71854,71886],[71855,71887],[71856,71888],[71857,71889],[71858,71890],[71859,71891],[71860,71892],[71861,71893],[71862,71894],[71863,71895],[71864,71896],[71865,71897],[71866,71898],[71867,71899],[71868,71900],[71869,71901],[71870,71902],[71871,71903],[93760,93792],[93761,93793],[93762,93794],[93763,93795],[93764,93796],[93765,93797],[93766,93798],[93767,93799],[93768,93800],[93769,93801],[93770,93802],[93771,93803],[93772,93804],[93773,93805],[93774,93806],[93775,93807],[93776,93808],[93777,93809],[93778,93810],[93779,93811],[93780,93812],[93781,93813],[93782,93814],[93783,93815],[93784,93816],[93785,93817],[93786,93818],[93787,93819],[93788,93820],[93789,93821],[93790,93822],[93791,93823],[93856,93883],[93857,93884],[93858,93885],[93859,93886],[93860,93887],[93861,93888],[93862,93889],[93863,93890],[93864,93891],[93865,93892],[93866,93893],[93867,93894],[93868,93895],[93869,93896],[93870,93897],[93871,93898],[93872,93899],[93873,93900],[93874,93901],[93875,93902],[93876,93903],[93877,93904],[93878,93905],[93879,93906],[93880,93907],[125184,125218],[125185,125219],[125186,125220],[125187,125221],[125188,125222],[125189,125223],[125190,125224],[125191,125225],[125192,125226],[125193,125227],[125194,125228],[125195,125229],[125196,125230],[125197,125231],[125198,125232],[125199,125233],[125200,125234],[125201,125235],[125202,125236],[125203,125237],[125204,125238],[125205,125239],[125206,125240],[125207,125241],[125208,125242],[125209,125243],[125210,125244],[125211,125245],[125212,125246],[125213,125247],[125214,125248],[125215,125249],[125216,125250],[125217,125251]]),Xue={},Jue={},Yue=_Y;Jue.UNICODE_SET=Yue().addRange(0,1114111),Jue.UNICODE_IV_SET=Yue(215,257,259,261,263,265,267,269,271,273,275,277,279,281,283,285,287,289,291,293,295,297,299,301,307,309,314,316,318,320,322,324,326,331,333,335,337,339,341,343,345,347,349,351,353,355,357,359,361,363,365,367,369,371,373,375,378,380,382,384,387,389,392,402,405,414,417,419,421,424,429,432,436,438,454,457,460,462,464,466,468,470,472,474,479,481,483,485,487,489,491,493,499,501,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,549,551,553,555,557,559,561,572,578,583,585,587,589,881,903,907,909,912,930,983,985,987,989,991,993,995,997,999,1001,1003,1005,1007,1014,1016,1121,1123,1125,1127,1129,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1151,1163,1165,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1218,1220,1222,1224,1226,1228,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1253,1255,1257,1259,1261,1263,1265,1267,1269,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,4294,7681,7683,7685,7687,7689,7691,7693,7695,7697,7699,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729,7731,7733,7735,7737,7739,7741,7743,7745,7747,7749,7751,7753,7755,7757,7759,7761,7763,7765,7767,7769,7771,7773,7775,7777,7779,7781,7783,7785,7787,7789,7791,7793,7795,7797,7799,7801,7803,7805,7807,7809,7811,7813,7815,7817,7819,7821,7823,7825,7827,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869,7871,7873,7875,7877,7879,7881,7883,7885,7887,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927,7929,7931,7933,8026,8028,8030,8125,11361,11368,11370,11372,11377,11393,11395,11397,11399,11401,11403,11405,11407,11409,11411,11413,11415,11417,11419,11421,11423,11425,11427,11429,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449,11451,11453,11455,11457,11459,11461,11463,11465,11467,11469,11471,11473,11475,11477,11479,11481,11483,11485,11487,11489,11500,42561,42563,42565,42567,42569,42571,42573,42575,42577,42579,42581,42583,42585,42587,42589,42591,42593,42595,42597,42599,42601,42603,42625,42627,42629,42631,42633,42635,42637,42639,42641,42643,42645,42647,42649,42787,42789,42791,42793,42795,42797,42803,42805,42807,42809,42811,42813,42815,42817,42819,42821,42823,42825,42827,42829,42831,42833,42835,42837,42839,42841,42843,42845,42847,42849,42851,42853,42855,42857,42859,42861,42874,42876,42879,42881,42883,42885,42892,42897,42903,42905,42907,42909,42911,42913,42915,42917,42919,42921,42927,42933,42935,42937,42939,42941,42943,42945,42947,42952,42954,42957,42959,42961,42963,42965,42967,42969,42971,66939,66955,66963).addRange(0,64).addRange(91,180).addRange(182,191).addRange(223,255).addRange(303,305).addRange(311,312).addRange(328,329).addRange(396,397).addRange(409,411).addRange(426,427).addRange(441,443).addRange(445,451).addRange(476,477).addRange(495,496).addRange(563,569).addRange(575,576).addRange(591,836).addRange(838,879).addRange(883,885).addRange(887,894).addRange(896,901).addRange(940,961).addRange(963,974).addRange(978,980).addRange(1010,1011).addRange(1019,1020).addRange(1072,1119).addRange(1153,1161).addRange(1230,1231).addRange(1327,1328).addRange(1367,4255).addRange(4296,4300).addRange(4302,5111).addRange(5118,7295).addRange(7306,7311).addRange(7355,7356).addRange(7360,7679).addRange(7829,7834).addRange(7836,7837).addRange(7935,7943).addRange(7952,7959).addRange(7966,7975).addRange(7984,7991).addRange(8e3,8007).addRange(8014,8024).addRange(8032,8039).addRange(8048,8071).addRange(8080,8087).addRange(8096,8103).addRange(8112,8119).addRange(8127,8135).addRange(8141,8146).addRange(8148,8151).addRange(8156,8162).addRange(8164,8167).addRange(8173,8183).addRange(8189,8485).addRange(8487,8489).addRange(8492,8497).addRange(8499,8543).addRange(8560,8578).addRange(8580,9397).addRange(9424,11263).addRange(11312,11359).addRange(11365,11366).addRange(11379,11380).addRange(11382,11389).addRange(11491,11498).addRange(11502,11505).addRange(11507,42559).addRange(42605,42623).addRange(42651,42785).addRange(42799,42801).addRange(42863,42872).addRange(42887,42890).addRange(42894,42895).addRange(42899,42901).addRange(42973,42996).addRange(42998,43887).addRange(43968,64260).addRange(64262,65312).addRange(65339,66559).addRange(66600,66735).addRange(66772,66927).addRange(66966,68735).addRange(68787,68943).addRange(68966,71839).addRange(71872,93759).addRange(93792,93855).addRange(93881,125183).addRange(125218,1114111);var $ue=_Y,Que=Jue.UNICODE_IV_SET;Xue.REGULAR=new Map([["d",$ue().addRange(48,57)],["D",$ue().addRange(0,47).addRange(58,65535)],["s",$ue(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",$ue().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,65535)],["w",$ue(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",$ue(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,65535)]]),Xue.UNICODE=new Map([["d",$ue().addRange(48,57)],["D",$ue().addRange(0,47).addRange(58,1114111)],["s",$ue(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",$ue().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",$ue(95).addRange(48,57).addRange(65,90).addRange(97,122)],["W",$ue(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,1114111)]]),Xue.UNICODE_IGNORE_CASE=new Map([["d",$ue().addRange(48,57)],["D",$ue().addRange(0,47).addRange(58,1114111)],["s",$ue(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",$ue().addRange(0,8).addRange(14,31).addRange(33,159).addRange(161,5759).addRange(5761,8191).addRange(8203,8231).addRange(8234,8238).addRange(8240,8286).addRange(8288,12287).addRange(12289,65278).addRange(65280,1114111)],["w",$ue(95,383,8490).addRange(48,57).addRange(65,90).addRange(97,122)],["W",$ue(96).addRange(0,47).addRange(58,64).addRange(91,94).addRange(123,382).addRange(384,8489).addRange(8491,1114111)]]),Xue.UNICODESET_IGNORE_CASE=new Map([["d",$ue().addRange(48,57)],["D",Que.clone().remove($ue().addRange(48,57))],["s",$ue(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233)],["S",Que.clone().remove($ue(32,160,5760,8239,8287,12288,65279).addRange(9,13).addRange(8192,8202).addRange(8232,8233))],["w",$ue(95).addRange(48,57).addRange(97,122)],["W",Que.clone().remove($ue(95).addRange(48,57).addRange(97,122))]]);var Zue=Nue.generate,epe=Mue.parse,tpe=_Y,rpe=Gue,ape=Vue,npe=Hue,spe=zue,ope=Kue,ipe=Xue,dpe=Jue.UNICODE_SET,cpe=Jue.UNICODE_IV_SET;var lpe=/[\\^$.*+?()[\]{}|]/g,upe=tpe().addRange(65536,1114111),ppe=tpe().add(10,13,8232,8233),fpe=dpe.clone().remove(ppe),gpe=function(e,t,r,a){if(t){if(r){var n=ipe.UNICODE_IGNORE_CASE.get(e);return a?ipe.UNICODESET_IGNORE_CASE.get(e):n}return ipe.UNICODE.get(e)}return ipe.REGULAR.get(e)},mpe=function(e,t){var r=t?e+"/"+t:"Binary_Property/"+e;try{return function(e){function t(t){var r=Iue(t,e);if(null!==r)return _ue()[r]();throw new Error('Could not dynamically require "'+t+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}return t.resolve=function(t){var r=Iue(t,e);if(null!==r)return r;throw new Error("Babel internal error")},t}("/node_modules/regexpu-core")("regenerate-unicode-properties/"+r+".js")}catch(r){throw new Error("Failed to recognize value `"+t+"` for property `"+e+"`.")}},ype=function(e,t,r){var a,n=e.split("="),s=n[0];if(1==n.length)a=function(e){try{var t="General_Category",r=ape(t,e);return mpe(t,r)}catch(e){}try{return mpe("Property_of_Strings",e)}catch(e){}var a=rpe(e);return mpe(a)}(s);else{var o=rpe(s),i=ape(o,n[1]);a=mpe(o,i)}if(t){if(a.strings)throw new Error("Cannot negate Unicode property of strings");return{characters:(r?cpe:dpe).clone().remove(a.characters),strings:new Set}}return{characters:a.characters.clone(),strings:a.strings?new Set(a.strings.map(function(e){return e.replace(lpe,"\\$&")})):new Set}},hpe=function(e,t,r,a){var n=ype(e,t,r),s=Ppe(),o=a?tpe(n.characters.toArray().map(function(e){return Spe(e)})):n.characters,d=Rpe();if(d)for(var c,l=i(o.toArray());!(c=l()).done;){var u=c.value,p=Epe(u,d);p&&o.add(p)}return s.singleChars=o,n.strings.size>0&&(s.longStrings=n.strings,s.maybeIncludesStrings=!0),s},bpe=0,vpe=1,xpe=2;function Rpe(){var e=bpe;return!0===Dpe.modifiersData.i?Dpe.transform.modifiers&&(e|=vpe,(Dpe.flags.unicode||Dpe.flags.unicodeSets)&&(e|=xpe)):void 0===Dpe.modifiersData.i&&Dpe.transform.unicodeFlag&&Dpe.flags.ignoreCase&&(e|=xpe),e}tpe.prototype.iuAddRange=function(e,t,r){do{var a=Epe(e,r);a&&this.add(a)}while(++e<=t);return this},tpe.prototype.iuRemoveRange=function(e,t,r){do{var a=Epe(e,r);a&&this.remove(a)}while(++e<=t);return this};var jpe=function(e,t){var r=epe(t,Dpe.useUnicodeFlag?"u":"",{lookbehind:!0,namedGroups:!0,unicodePropertyEscape:!0,unicodeSet:!0,modifiers:!0});switch(r.type){case"characterClass":case"group":case"value":break;default:r=wpe(r,t)}Object.assign(e,r)},wpe=function(e,t){return{type:"group",behavior:"ignore",body:[e],raw:"(?:"+t+")"}},Epe=function(e,t){if(t===bpe)return!1;var r=(t&xpe?npe.get(e):void 0)||[];if("number"==typeof r&&(r=[r]),t&vpe)for(var a,n=i([e].concat(r));!(a=n()).done;){var s=a.value;s>=65&&s<=90?r.push(s+32):s>=97&&s<=122?r.push(s-32):r=r.concat(spe.get(s)||[])}return 0!=r.length&&r},Spe=function(e){return e<=127?e>=65&&e<=90?e+32:e:ope.get(e)||e},Tpe=function(e){switch(e){case"union":return{single:function(e,t){e.singleChars.add(t)},regSet:function(e,t){e.singleChars.add(t)},range:function(e,t,r){e.singleChars.addRange(t,r)},iuRange:function(e,t,r,a){e.singleChars.iuAddRange(t,r,a)},nested:function(e,t){e.singleChars.add(t.singleChars);for(var r,a=i(t.longStrings);!(r=a()).done;){var n=r.value;e.longStrings.add(n)}t.maybeIncludesStrings&&(e.maybeIncludesStrings=!0)}};case"union-negative":var t=function(e,t){e.singleChars=dpe.clone().remove(t).add(e.singleChars)};return{single:function(e,t){var r=dpe.clone();e.singleChars=e.singleChars.contains(t)?r:r.remove(t)},regSet:t,range:function(e,t,r){e.singleChars=dpe.clone().removeRange(t,r).add(e.singleChars)},iuRange:function(e,t,r,a){e.singleChars=dpe.clone().iuRemoveRange(t,r,a).add(e.singleChars)},nested:function(e,r){if(t(e,r.singleChars),r.maybeIncludesStrings)throw new Error("ASSERTION ERROR")}};case"intersection":var r=function(e,t){e.first?e.singleChars=t:e.singleChars.intersection(t)};return{single:function(e,t){e.singleChars=e.first||e.singleChars.contains(t)?tpe(t):tpe(),e.longStrings.clear(),e.maybeIncludesStrings=!1},regSet:function(e,t){r(e,t),e.longStrings.clear(),e.maybeIncludesStrings=!1},range:function(e,t,r){e.first?e.singleChars.addRange(t,r):e.singleChars.intersection(tpe().addRange(t,r)),e.longStrings.clear(),e.maybeIncludesStrings=!1},iuRange:function(e,t,r,a){e.first?e.singleChars.iuAddRange(t,r,a):e.singleChars.intersection(tpe().iuAddRange(t,r,a)),e.longStrings.clear(),e.maybeIncludesStrings=!1},nested:function(e,t){if(r(e,t.singleChars),e.first)e.longStrings=t.longStrings,e.maybeIncludesStrings=t.maybeIncludesStrings;else{for(var a,n=i(e.longStrings);!(a=n()).done;){var s=a.value;t.longStrings.has(s)||e.longStrings.delete(s)}t.maybeIncludesStrings||(e.maybeIncludesStrings=!1)}}};case"subtraction":var a=function(e,t){e.first?e.singleChars.add(t):e.singleChars.remove(t)};return{single:function(e,t){e.first?e.singleChars.add(t):e.singleChars.remove(t)},regSet:a,range:function(e,t,r){e.first?e.singleChars.addRange(t,r):e.singleChars.removeRange(t,r)},iuRange:function(e,t,r,a){e.first?e.singleChars.iuAddRange(t,r,a):e.singleChars.iuRemoveRange(t,r,a)},nested:function(e,t){if(a(e,t.singleChars),e.first)e.longStrings=t.longStrings,e.maybeIncludesStrings=t.maybeIncludesStrings;else for(var r,n=i(e.longStrings);!(r=n()).done;){var s=r.value;t.longStrings.has(s)&&e.longStrings.delete(s)}}};default:throw new Error("Unknown set action: "+characterClassItem.kind)}},Ppe=function(){return{transformed:Dpe.transform.unicodeFlag,singleChars:tpe(),longStrings:new Set,hasEmptyString:!1,first:!0,maybeIncludesStrings:!1}},Ape=function(e,t){var r=Epe(e,t);return r?[e].concat(b(r)):[e]},kpe=function(e,t,r,a){for(var n,s=Ppe(),o=i(e.strings);!(n=o()).done;){var d=n.value;if(1===d.characters.length){var c=a?Spe(d.characters[0].codePoint):d.characters[0].codePoint;Ape(c,r).forEach(function(e){s.singleChars.add(e)})}else{var l="";if(r)for(var u,p=i(d.characters);!(u=p()).done;){var f=u.value,g=a?Spe(f.codePoint):f.codePoint;l+=tpe(Ape(g,r)).toString(t)}else for(var m,y=i(d.characters);!(m=y()).done;){var h=m.value,b=a?Spe(h.codePoint):h.codePoint;b!==h.codePoint?l+=tpe(b).toString(t):l+=Zue(h)}s.longStrings.add(l),s.maybeIncludesStrings=!0}}return s},Cpe=function(e,t,r){var a,n,s=Ppe(),o=Rpe();switch(e.kind){case"union":a=Tpe("union"),n=Tpe("union-negative");break;case"intersection":a=Tpe("intersection"),n=Tpe("subtraction"),Dpe.transform.unicodeSetsFlag&&(s.transformed=!0),Dpe.isIgnoreCaseMode&&(r=!0);break;case"subtraction":a=Tpe("subtraction"),n=Tpe("intersection"),Dpe.transform.unicodeSetsFlag&&(s.transformed=!0),Dpe.isIgnoreCaseMode&&(r=!0);break;default:throw new Error("Unknown character class kind: "+e.kind)}for(var d,c=i(e.body);!(d=c()).done;){var l=d.value;switch(l.type){case"value":var u=r?Spe(l.codePoint):l.codePoint,p=Ape(u,o);a.regSet(s,tpe(p)),p.length>1&&(s.transformed=!0);break;case"characterClassRange":var f=l.min.codePoint,g=l.max.codePoint;if(r){for(var m=[],y=f;y<=g;y++)m.push(Spe(y));a.regSet(s,tpe(m))}else a.range(s,f,g);o&&(a.iuRange(s,f,g,o),s.transformed=!0);break;case"characterClassEscape":a.regSet(s,gpe(l.value,Dpe.flags.unicode||Dpe.flags.unicodeSets,Dpe.flags.ignoreCase,r));break;case"unicodePropertyEscape":var h=hpe(l.value,l.negative,Dpe.flags.unicodeSets&&Dpe.isIgnoreCaseMode,r);a.nested(s,h),s.transformed=s.transformed||Dpe.transform.unicodePropertyEscapes||Dpe.transform.unicodeSetsFlag&&(h.maybeIncludesStrings||"union"!==e.kind||l.negative);break;case"characterClass":var b=l.negative?n:a,v=Cpe(l,t,r);b.nested(s,v),s.transformed=!0;break;case"classStrings":a.nested(s,kpe(l,t,o,r)),s.transformed=!0;break;default:throw new Error("Unknown term type: "+l.type)}s.first=!1}if(e.negative&&s.maybeIncludesStrings)throw new SyntaxError("Cannot negate set containing strings");return s},_pe=function(e,t,r){void 0===r&&(r=Cpe(e,t));var a=e.negative,n=r,s=n.singleChars,o=n.transformed,i=n.longStrings;if(o){var d=function(e){var t=e.data;return t.length>=1&&t[t.length-1]>=65536}(s),c=s.toString(Object.assign({},t,{bmpOnly:d}));if(a)if(Dpe.useUnicodeFlag)jpe(e,"[^"+("["===c[0]?c.slice(1,-1):c)+"]");else if(Dpe.flags.unicode||Dpe.flags.unicodeSets)if(Dpe.flags.ignoreCase){var l=s.clone().intersection(upe),u=s.clone().remove(l).addRange(55296,57343).toString({bmpOnly:!0}),p=upe.clone().remove(l).toString(t);jpe(e,"(?!"+u+")[^]|"+p)}else{var f=dpe.clone().remove(s);jpe(e,f.toString(t))}else jpe(e,"(?!"+c+")[^]");else{var g=i.has(""),m=Array.from(i).sort(function(e,t){return t.length-e.length});"[]"===c&&0!==i.size||m.splice(m.length-(g?1:0),0,c),jpe(e,m.join("|"))}}return e},Ipe=function(e,t,r){switch(e.type){case"dot":Dpe.transform.unicodeFlag?jpe(e,(b=Dpe.isDotAllMode,b?dpe:fpe).toString(t)):(null!=Dpe.modifiersData.s?Dpe.modifiersData.s&&Dpe.transform.modifiers:Dpe.transform.dotAllFlag)&&jpe(e,"[^]");break;case"characterClass":e=_pe(e,t);break;case"unicodePropertyEscape":var a=hpe(e.value,e.negative,Dpe.flags.unicodeSets&&Dpe.isIgnoreCaseMode);if(a.maybeIncludesStrings){if(!Dpe.flags.unicodeSets)throw new Error("Properties of strings are only supported when using the unicodeSets (v) flag.");Dpe.transform.unicodeSetsFlag&&(a.transformed=!0,e=_pe(e,t,a))}else(Dpe.transform.unicodePropertyEscapes||Rpe())&&jpe(e,a.singleChars.toString(t));break;case"characterClassEscape":Dpe.transform.unicodeFlag&&jpe(e,gpe(e.value,!0,Dpe.flags.ignoreCase).toString(t));break;case"group":if("normal"==e.behavior&&r.lastIndex++,e.name){var n=e.name.value;if(r.namesConflicts[n])throw new Error("Group '"+n+"' has already been defined in this context.");r.namesConflicts[n]=!0,Dpe.transform.namedGroups&&delete e.name;var s=r.lastIndex;r.names[n]||(r.names[n]=[]),r.names[n].push(s),r.onNamedGroup&&r.onNamedGroup.call(null,n,s),r.unmatchedReferences[n]&&delete r.unmatchedReferences[n]}if(e.modifierFlags)return function(e,t,r){for(var a,n=e.modifierFlags.enabling,s=e.modifierFlags.disabling,o=Object.assign({},Dpe.modifiersData),d=i(n);!(a=d()).done;){var c=a.value;Dpe.modifiersData[c]=!0}for(var l,u=i(s);!(l=u()).done;){var p=l.value;Dpe.modifiersData[p]=!1}return Dpe.transform.modifiers&&(delete e.modifierFlags,e.behavior="ignore"),e.body=e.body.map(function(e){return Ipe(e,t,r)}),Dpe.modifiersData=o,e}(e,t,r);case"quantifier":e.body=e.body.map(function(e){return Ipe(e,t,r)});break;case"disjunction":var o=r.namesConflicts;e.body=e.body.map(function(e){return r.namesConflicts=Object.create(o),Ipe(e,t,r)});break;case"alternative":e.body=(m=e.body,y=function(e){var a=Ipe(e,t,r);return"alternative"===a.type?a.body:a},h=[],m.forEach(function(e){var t=y(e);Array.isArray(t)?h.push.apply(h,t):h.push(t)}),h);break;case"value":var d=e.codePoint,c=Rpe(),l=Ape(d,c);if(1===l.length&&"symbol"===e.kind&&d>=32&&d<=126)break;var u=tpe(l);jpe(e,u.toString(t));break;case"reference":if(e.name){var p=e.name.value,f=r.names[p];if(f||(r.unmatchedReferences[p]=!0),Dpe.transform.namedGroups){if(f){var g=f.map(function(e){return{type:"reference",matchIndex:e,raw:"\\"+e}});return 1===g.length?g[0]:{type:"alternative",body:g,raw:g.map(function(e){return e.raw}).join("")}}return{type:"group",behavior:"ignore",body:[],raw:"(?:)"}}}break;case"anchor":Dpe.modifiersData.m&&Dpe.transform.modifiers&&("start"==e.kind?jpe(e,"(?:^|(?<="+ppe.toString()+"))"):"end"==e.kind&&jpe(e,"(?:$|(?="+ppe.toString()+"))"));case"empty":break;default:throw new Error("Unknown term type: "+e.type)}var m,y,h,b;return e},Dpe={flags:{ignoreCase:!1,unicode:!1,unicodeSets:!1,dotAll:!1,multiline:!1},transform:{dotAllFlag:!1,unicodeFlag:!1,unicodeSetsFlag:!1,unicodePropertyEscapes:!1,namedGroups:!1,modifiers:!1},modifiersData:{i:void 0,s:void 0,m:void 0},get useUnicodeFlag(){return(this.flags.unicode||this.flags.unicodeSets)&&!this.transform.unicodeFlag},get isDotAllMode(){return void 0!==this.modifiersData.s?this.modifiersData.s:this.flags.dotAll},get isIgnoreCaseMode(){return void 0!==this.modifiersData.i?this.modifiersData.i:this.flags.ignoreCase}},Ope=function(e,t){return!!e&&e.includes(t)},Npe=function(e,t){return!!e&&"transform"===e[t]},Bpe=function(e,t,r){!function(e){if(e)for(var t=0,r=Object.keys(e);t<r.length;t++){var a=r[t],n=e[a];switch(a){case"dotAllFlag":case"unicodeFlag":case"unicodePropertyEscapes":case"unicodeSetsFlag":case"namedGroups":if(null!=n&&!1!==n&&"transform"!==n)throw new Error("."+a+" must be false (default) or 'transform'.");break;case"modifiers":if(null!=n&&!1!==n&&"parse"!==n&&"transform"!==n)throw new Error("."+a+" must be false (default), 'parse' or 'transform'.");break;case"onNamedGroup":case"onNewFlags":if(null!=n&&"function"!=typeof n)throw new Error("."+a+" must be a function.");break;default:throw new Error("."+a+" is not a valid regexpu-core option.")}}}(r),Dpe.flags.unicode=Ope(t,"u"),Dpe.flags.unicodeSets=Ope(t,"v"),Dpe.flags.ignoreCase=Ope(t,"i"),Dpe.flags.dotAll=Ope(t,"s"),Dpe.flags.multiline=Ope(t,"m"),Dpe.transform.dotAllFlag=Dpe.flags.dotAll&&Npe(r,"dotAllFlag"),Dpe.transform.unicodeFlag=(Dpe.flags.unicode||Dpe.flags.unicodeSets)&&Npe(r,"unicodeFlag"),Dpe.transform.unicodeSetsFlag=Dpe.flags.unicodeSets&&Npe(r,"unicodeSetsFlag"),Dpe.transform.unicodePropertyEscapes=(Dpe.flags.unicode||Dpe.flags.unicodeSets)&&(Npe(r,"unicodeFlag")||Npe(r,"unicodePropertyEscapes")),Dpe.transform.namedGroups=Npe(r,"namedGroups"),Dpe.transform.modifiers=Npe(r,"modifiers"),Dpe.modifiersData.i=void 0,Dpe.modifiersData.s=void 0,Dpe.modifiersData.m=void 0;var a={hasUnicodeFlag:Dpe.useUnicodeFlag,bmpOnly:!Dpe.flags.unicode&&!Dpe.flags.unicodeSets},n={onNamedGroup:r&&r.onNamedGroup,lastIndex:0,names:Object.create(null),namesConflicts:Object.create(null),unmatchedReferences:Object.create(null)},s=epe(e,t,{modifiers:!0,unicodePropertyEscape:!0,unicodeSet:!0,namedGroups:!0,lookbehind:!0});if(Dpe.transform.modifiers&&/\(\?[a-z]*-[a-z]+:/.test(e)){for(var o,d=Object.create(null),c=[s];null!=(o=c.pop());)if(Array.isArray(o))Array.prototype.push.apply(c,o);else if("object"==typeof o&&null!=o)for(var l=0,u=Object.keys(o);l<u.length;l++){var p=u[l],f=o[p];if("modifierFlags"==p)for(var g,m=i(f.disabling);!(g=m()).done;){d[g.value]=!0}else"object"==typeof f&&null!=f&&c.push(f)}d.i&&(Dpe.modifiersData.i=Dpe.flags.ignoreCase),d.m&&(Dpe.modifiersData.m=Dpe.flags.multiline),d.s&&(Dpe.modifiersData.s=Dpe.flags.dotAll)}Ipe(s,a,n),function(e){var t=Object.keys(e.unmatchedReferences);if(t.length>0)throw new Error("Unknown group names: "+t)}(n);var y=r&&r.onNewFlags;if(y){var h=t.split("").filter(function(e){return!Dpe.modifiersData[e]}).join("");Dpe.transform.unicodeSetsFlag&&(h=h.replace("v","u")),Dpe.transform.unicodeFlag&&(h=h.replace("u","")),Dpe.transform.dotAllFlag&&(h=h.replace("s","")),y(h)}return Zue(s)};var Mpe=(void z.env.BABEL_8_BREAKING,FO()),Fpe=Object.freeze({unicodeFlag:1,dotAllFlag:2,unicodePropertyEscape:4,namedCaptureGroups:8,unicodeSetsFlag_syntax:16,unicodeSetsFlag:32,duplicateNamedCaptureGroups:64,modifiers:128}),Lpe="@babel/plugin-regexp-features/featuresKey",Upe="@babel/plugin-regexp-features/runtimeKey";function qpe(e,t){return e|t}function Gpe(e,t){return!!(e&t)}var Wpe="@babel/plugin-regexp-features/version";function Vpe(e){var t=e.name,r=e.feature,a=e.options,n=void 0===a?{}:a,s=e.manipulateOptions;return{name:t,manipulateOptions:void 0===s?function(){}:s,pre:function(){var e,t=this.file,a=null!=(e=t.get(Lpe))?e:0,s=qpe(a,Fpe[r]),o=n.useUnicodeFlag,i=n.runtime;if(!1===o&&(s=qpe(s,Fpe.unicodeFlag)),s!==a&&t.set(Lpe,s),void 0!==i){if(t.has(Upe)&&t.get(Upe)!==i&&Gpe(s,Fpe.duplicateNamedCaptureGroups))throw new Error("The 'runtime' option must be the same for '@babel/plugin-transform-named-capturing-groups-regex' and '@babel/plugin-transform-duplicate-named-capturing-groups-regex'.");"namedCaptureGroups"===r&&i&&t.has(Upe)||t.set(Upe,i)}"number"!=typeof t.get(Wpe)&&t.get(Wpe)&&!Mpe.lt(t.get(Wpe),"7.28.5")||t.set(Wpe,"7.28.5")},visitor:{RegExpLiteral:function(e){var t,r=e.node,a=this.file,n=a.get(Lpe),s=null==(t=a.get(Upe))||t,o=function(e,t){var r=function(e){return!!Gpe(t,Fpe[e])&&"transform"};return{unicodeFlag:r("unicodeFlag"),unicodeSetsFlag:r("unicodeSetsFlag"),dotAllFlag:r("dotAllFlag"),unicodePropertyEscapes:r("unicodePropertyEscape"),namedGroups:r("namedCaptureGroups")||function(){if(!r("duplicateNamedCaptureGroups"))return!1;for(var t,a=/\(\?<([^>]+)(>|$)/g,n=new Set;(t=a.exec(e))&&t[2];n.add(t[1]))if(n.has(t[1]))return"transform";return!1}(),onNamedGroup:function(){},modifiers:r("modifiers")}}(r.pattern,n);if(!function(e,t){var r=e.flags,a=e.pattern;if(r.includes("v")&&"transform"===t.unicodeSetsFlag)return!1;if(r.includes("u")){if("transform"===t.unicodeFlag)return!1;if("transform"===t.unicodePropertyEscapes&&/\\p\{/i.test(a))return!1}return!(r.includes("s")&&"transform"===t.dotAllFlag||"transform"===t.namedGroups&&/\(\?<(?![=!])/.test(a)||"transform"===t.modifiers&&/\(\?[\w-]+:/.test(a))}(r,o)){var i,d={__proto__:null};if("transform"===o.namedGroups&&(o.onNamedGroup=function(e,t){var r=d[e];"number"==typeof r?d[e]=[r,t]:Array.isArray(r)?r.push(t):d[e]=t}),"transform"===o.modifiers&&(o.onNewFlags=function(e){i=e}),r.pattern=Bpe(r.pattern,r.flags,o),"transform"===o.namedGroups&&Object.keys(d).length>0&&s&&!function(e){return e.parentPath.isMemberExpression({object:e.node,computed:!1})&&e.parentPath.get("property").isIdentifier({name:"test"})}(e)){var c=gs(this.addHelper("wrapRegExp"),[r,ky(d)]);DH(c),e.replaceWith(c)}r.flags=function(e,t){return"transform"===e.unicodeSetsFlag&&(t=t.replace("v","u")),"transform"===e.unicodeFlag&&(t=t.replace("u","")),"transform"===e.dotAllFlag&&(t=t.replace("s","")),t}(o,null!=i?i:r.flags)}}}}}var Hpe,zpe=function(e,t){e.assertVersion("*");var r=t.runtime;if(void 0!==r&&"boolean"!=typeof r)throw new Error("The 'runtime' option must be boolean");return Vpe({name:"transform-duplicate-named-capturing-groups-regex",feature:"duplicateNamedCaptureGroups",options:{runtime:r}})},Kpe=new Set(["commonjs","amd","systemjs"]),Xpe=function(e){return e.assertVersion("*"),{name:"transform-dynamic-import",manipulateOptions:function(e,t){return t.plugins.push("dynamicImport")},pre:function(){this.file.set("@babel/plugin-proposal-dynamic-import","7.27.1")},visitor:{Program:function(){var e=this.file.get("@babel/plugin-transform-modules-*");if(!Kpe.has(e))throw new Error("@babel/plugin-transform-dynamic-import depends on a modules\ntransform plugin. Supported plugins are:\n - @babel/plugin-transform-modules-commonjs ^7.4.0\n - @babel/plugin-transform-modules-amd ^7.4.0\n - @babel/plugin-transform-modules-systemjs ^7.4.0\n\nIf you are using Webpack or Rollup and thus don't want\nBabel to transpile your imports and exports, you can use\nthe @babel/plugin-syntax-dynamic-import plugin and let your\nbundler handle dynamic imports.\n")}}}},Jpe=function(e){return e.assertVersion("*"),{name:"proposal-export-default-from",manipulateOptions:function(e,t){return t.plugins.push("exportDefaultFrom")},visitor:{ExportNamedDeclaration:function(e){var t=e.node,r=t.specifiers,a=t.source;if(Nt(r[0])){var n=r.shift().exported;r.every(function(e){return Le(e)})?r.unshift(fo(Ps("default"),n)):e.insertBefore(po(null,[fo(Ps("default"),n)],sm(a)))}}}}},Ype=function(e){return e.assertVersion("*"),{name:"transform-export-namespace-from",manipulateOptions:function(e,t){return t.plugins.push("exportNamespaceFrom")},visitor:{ExportNamedDeclaration:function(e){var t,r=e.node,a=e.scope,n=r.specifiers,s=Nt(n[0])?1:0;if(rt(n[s])){var o=[];1===s&&o.push(po(null,[n.shift()],r.source));var i=n.shift().exported,d=a.generateUidIdentifier(null!=(t=i.name)?t:i.value);o.push(mo([ho(d)],sm(r.source)),po(null,[fo(sm(d),i)])),r.specifiers.length>=1&&o.push(r);var c=y(e.replaceWithMultiple(o),1)[0];e.scope.registerDeclaration(c)}}}}},$pe=function(e){function t(e,t){var r=function(e){return $t(e.object)?e.object:e.callee.object}(e);return t.isStatic(r)&&(Je(r)?{type:"ThisExpression"}:r)}function r(e,r){var a=t(e,r);if(a)return sm(a);var n=function(e){var t=e.path.getData("functionBind");return t?sm(t):(t=e.generateDeclaredUidIdentifier("context"),e.path.setData("functionBind",t))}(r);return e.object?e.callee=Vs([is("=",n,e.object),e.callee]):me(e.callee)&&(e.callee.object=is("=",n,e.callee.object)),sm(n)}return e.assertVersion("*"),{name:"proposal-function-bind",manipulateOptions:function(e,t){return t.plugins.push("functionBind")},visitor:{CallExpression:function(e){var t=e.node,a=e.scope,n=t.callee;if(Ot(n)){var s=r(n,a);t.callee=Bs(n.callee,Ps("call")),t.arguments.unshift(s)}},BindExpression:function(e){var t=e.node,a=r(t,e.scope);e.replaceWith(gs(Bs(t.callee,Ps("bind")),[a]))}}}},Qpe=function(e){e.assertVersion("*");var t=function(e){return ie(e.meta,{name:"function"})&&ie(e.property,{name:"sent"})},r={Function:function(e){e.skip()},YieldExpression:function(e){(function(e,t){return $(e)&&ie(e.left,{name:t})})(e.parent,this.sentId)||e.replaceWith(is("=",Ps(this.sentId),e.node))},MetaProperty:function(e){t(e.node)&&e.replaceWith(Ps(this.sentId))}};return{name:"proposal-function-sent",manipulateOptions:function(e,t){return t.plugins.push("functionSent")},visitor:{MetaProperty:function(e,a){if(t(e.node)){var n=e.getFunctionParent();if(!n.node.generator)throw new Error("Parent generator function not found");var s=e.scope.generateUid("function.sent");n.traverse(r,{sentId:s}),n.node.body.body.unshift(Zs("let",[eo(Ps(s),Ao())])),_H(n,a.addHelper("skipFirstGeneratorNext"))}}}}},Zpe=function(e){e.assertVersion("*");var t=/(\\*)([\u2028\u2029])/g;function r(e,t,r){return t.length%2==1?e:t+"\\u"+r.charCodeAt(0).toString(16)}return{name:"transform-json-strings",manipulateOptions:function(e,t){return t.plugins.push("jsonStrings")},visitor:{"DirectiveLiteral|StringLiteral":function(e){var a=e.node.extra;null!=a&&a.raw&&(a.raw=a.raw.replace(t,r))}}}},efe=function(e){return e.assertVersion("*"),{name:"transform-logical-assignment-operators",manipulateOptions:function(e,t){return t.plugins.push("logicalAssignment")},visitor:{AssignmentExpression:function(e){var t=e.node,r=e.scope,a=t.operator,n=t.left,s=t.right,o=a.slice(0,-1);if(da.includes(o)){var i=sm(n);if(me(n)){var d=n.object,c=n.property,l=n.computed,u=r.maybeGenerateMemoised(d);if(u&&(n.object=u,i.object=is("=",sm(u),d)),l){var p=r.maybeGenerateMemoised(c);p&&(n.property=p,i.property=is("=",sm(p),c))}}e.replaceWith(Ns(o,i,is("=",n,s)))}}}}},tfe=function(e,t){var r,a,n=t.loose,s=void 0!==n&&n;e.assertVersion("*");var o=null!=(r=e.assumption("noDocumentAll"))?r:s,i=null!=(a=e.assumption("pureGetters"))&&a;return{name:"transform-nullish-coalescing-operator",manipulateOptions:function(e,t){return t.plugins.push("nullishCoalescingOperator")},visitor:{LogicalExpression:function(e){var t=e.node,r=e.scope;if("??"===t.operator){var a,n;if(i&&r.path.isPattern()&&me(t.left)&&!t.left.computed&&ie(t.left.object)&&ie(t.left.property)||ie(t.left)&&(i||r.hasBinding(t.left.name)))a=t.left,n=sm(t.left);else{if(r.path.isPattern())return void e.replaceWith(pj.statement.ast(Hpe||(Hpe=h(["(() => ",")()"])),e.node));a=r.generateUidIdentifierBasedOnNode(t.left),r.push({id:sm(a)}),n=is("=",a,t.left)}e.replaceWith(ys(o?ds("!=",n,{type:"NullLiteral"}):Ns("&&",ds("!==",n,{type:"NullLiteral"}),ds("!==",sm(a),r.buildUndefinedNode())),sm(a),t.right))}}}}};function rfe(e){var t,r=e.node.extra;null!=r&&null!=(t=r.raw)&&t.includes("_")&&(r.raw=r.raw.replace(/_/g,""))}var afe=function(e){return e.assertVersion("*"),{name:"transform-numeric-separator",manipulateOptions:function(e,t){return t.plugins.push("numericSeparator")},visitor:{NumericLiteral:rfe,BigIntLiteral:rfe}}};function nfe(e){if(!e)return!1;if("ArrayPattern"===e.type){var t=e.elements.filter(function(e){return null!==e&&"VoidPattern"!==e.type});return t.length>1||nfe(t[0])}if("ObjectPattern"===e.type){var r=e.properties;if(r.length>1)return!0;if(0===r.length)return!1;var a=r[0];return"ObjectProperty"===a.type?nfe(a.value):nfe(a)}return"AssignmentPattern"===e.type?nfe(e.left):"RestElement"===e.type&&("Identifier"===e.argument.type||nfe(e.argument))}var sfe,ofe={"Object.assign":{chrome:"49",opera:"36",edge:"13",firefox:"36",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"}},ife=Ps("a"),dfe=qs(Ps("key"),ife),cfe=Gy(ife,dfe,jo([dfe]))?1:0,lfe=function(e,t){var r,a,n,s,o=p().m(j);e.assertVersion("*");var d=!CU("Object.assign",e.targets(),{compatData:ofe}),c=t.useBuiltIns,l=void 0===c?d:c,u=t.loose,f=void 0!==u&&u;if("boolean"!=typeof f)throw new Error(".loose must be a boolean, or undefined");var m=null!=(r=e.assumption("ignoreFunctionLength"))?r:f,h=null!=(a=e.assumption("objectRestNoSymbols"))?a:f,v=null!=(n=e.assumption("pureGetters"))?n:f,x=null!=(s=e.assumption("setSpreadProperties"))?s:f;function R(e){return l?Bs(Ps("Object"),Ps("assign")):e.addHelper("extends")}function j(e){var t,r,a,n,s,d,c;return p().w(function(o){for(;;)switch(o.n){case 0:c=e.type,o.n="ArrayPattern"===c?1:"ObjectPattern"===c?7:"AssignmentPattern"===c?13:15;break;case 1:t=i(e.get("elements"));case 2:if((r=t()).done){o.n=6;break}if(!(a=r.value).isRestElement()){o.n=4;break}return o.d(g(j(a.get("argument"))),3);case 3:o.n=5;break;case 4:return o.d(g(j(a)),5);case 5:o.n=2;break;case 6:return o.a(3,16);case 7:n=i(e.get("properties"));case 8:if((s=n()).done){o.n=12;break}if(!(d=s.value).isRestElement()){o.n=10;break}return o.n=9,d;case 9:o.n=11;break;case 10:return o.d(g(j(d.get("value"))),11);case 11:o.n=8;break;case 12:return o.a(3,16);case 13:return o.d(g(j(e.get("left"))),14);case 14:case 15:return o.a(3,16);case 16:return o.a(2)}},o)}function w(e){return!j(e).next().done}function E(e,t){for(var r,a=i(j(e));!(r=a()).done;){t(r.value)}}function S(e,t){for(var r,a=[],n=i(e);!(r=n()).done;){var s=r.value,o=s.get("key");if(o.isAssignmentExpression()&&o.get("left").isIdentifier()){var d=o.node.left.name;if(t.hasUid(d))continue}if(s.node.computed&&!o.isPure()){var c=t.generateUidBasedOnNode(o.node),l=eo(Ps(c),o.node);a.push(l),o.replaceWith(Ps(c))}}return a}function T(e,t,r){var a=e.get("properties"),n=a[a.length-1];Wg(n.node);var s=sm(n.node);n.remove();var o,d=S(e.get("properties"),e.scope),c=function(e){for(var t,r=[],a=!0,n=!1,s=i(e.get("properties").map(function(e){return e.node}));!(t=s()).done;){var o=t.value,d=o.key;if(ie(d)&&!o.computed)r.push(Cs(d.name));else if($e(d))r.push(sm(d)),n=!0;else if(dr(d))r.push(Cs(String(d.value)));else{$(d)&&ie(d.left)?r.push(sm(d.left)):r.push(sm(d));var c=$(d)?d.right:d;me(c,{computed:!1})&&ie(c.object,{name:"Symbol"})||Z(c)&&Er(c.callee,"Symbol.for")||(a=!1)}}return{keys:r,allPrimitives:a,hasTemplateLiteral:n}}(e),l=c.keys,u=c.allPrimitives,p=c.hasTemplateLiteral;if(0===l.length)return[d,s.argument,gs(R(t),[Ls([]),Vs([gs(t.addHelper("objectDestructuringEmpty"),[sm(r)]),sm(r)])])];if(u){if(o=os(l),!p&&!he(e.scope.block)){var f=e.findParent(function(e){return e.isProgram()}),g=e.scope.generateUidIdentifier("excluded");f.scope.push({id:g,init:o,kind:"const"}),o=sm(g)}}else o=gs(Bs(os(l),Ps("map")),[t.addHelper("toPropertyKey")]);return[d,s.argument,gs(t.addHelper("objectWithoutProperties"+(h?"Loose":"")),[sm(r),o])]}function P(e,t,r){if(t.isAssignmentPattern())P(e,t.get("left"),r);else{if(t.isArrayPattern()&&w(t))for(var a=t.get("elements"),n=0;n<a.length;n++)P(e,a[n],r);if(t.isObjectPattern()&&w(t)){var s=e.scope.generateUidIdentifier("ref"),o=Zs("let",[eo(t.node,s)]);r?r.push(o):(e.ensureBlock(),e.get("body").unshiftContainer("body",o)),t.replaceWith(sm(s))}}}return{name:"transform-object-rest-spread",manipulateOptions:function(e,t){return t.plugins.push("objectRestSpread")},visitor:{Function:function(e){for(var t=e.get("params"),r=new Set,a=new Set,n=0;n<t.length;++n){var s=t[n];if(w(s)){r.add(n);for(var o=0,i=Object.keys(s.getBindingIdentifiers());o<i.length;o++){var d=i[o];a.add(d)}}}var c,l=!1,u=function(e,t){var r=e.node.name;e.scope.getBinding(r)===t.getBinding(r)&&a.has(r)&&(l=!0,e.stop())};for(c=0;c<t.length&&!l;++c){var p=t[c];r.has(c)||(p.isReferencedIdentifier()||p.isBindingIdentifier()?u(p,e.scope):p.traverse({"Scope|TypeAnnotation|TSTypeAnnotation":function(e){return e.skip()},"ReferencedIdentifier|BindingIdentifier":u},e.scope))}if(l){uY(e,m,function(e){return e>=c-1||r.has(e)},P)}else for(var f=0;f<t.length;++f){var g=t[f];r.has(f)&&P(e,g)}},VariableDeclarator:function(e,t){if(e.get("id").isObjectPattern()){var r=e,a=e;if(w(e.get("id")))for(var n,s=function(e){var t=[];return function e(r){if(r.isObjectPattern())for(var a,n=i(r.get("properties"));!(a=n()).done;){var s=a.value;s.isRestElement()||(s.node.computed&&t.push(s),e(s.get("value")))}else if(r.isArrayPattern())for(var o,d=i(r.get("elements"));!(o=d()).done;){var c=o.value;c&&(c.isRestElement()?e(c.get("argument")):e(c))}else r.isAssignmentPattern()&&e(r.get("left"))}(e),t}(a.get("id")),o=i(s);!(n=o()).done;){var d=n.value.get("key");if(!(d.isAssignmentExpression()&&d.get("left").isIdentifier()&&a.scope.hasUid(d.node.left.name))&&!d.isPure()){var c=Ps(a.scope.generateUidBasedOnNode(d.node));a.scope.push({id:c,kind:"var"}),d.replaceWith(is("=",sm(c),d.node))}}E(e.get("id"),function(e){if(nfe(a.node.id)&&!ie(a.node.init)){var n=e.scope.generateUidIdentifierBasedOnNode(a.node.init,"ref");return a.insertBefore(eo(n,a.node.init)),void a.replaceWith(eo(a.node.id,sm(n)))}var s,o=a.node.init,i=[];e.findParent(function(e){if(e.isObjectProperty())i.unshift(e);else if(e.isVariableDeclarator())return s=e.parentPath.node.kind,!0});var d=S(i,e.scope);i.forEach(function(e){var t=e.get("key"),r=t.node;$(t.node)&&(r=t.node.left),o=Bs(o,sm(r),e.node.computed||dr(t.node))});var c=e.parentPath,l=y(T(c,t,o),3),u=l[0],p=l[1],f=l[2];v&&function(e){var t=e.getOuterBindingIdentifierPaths();Object.keys(t).forEach(function(r){var a=t[r].parentPath;e.scope.getBinding(r).references>cfe||!a.isObjectProperty()||a.remove()})}(c),Gg(p),r.insertBefore(u),r.insertBefore(d),r=r.insertAfter(eo(p,f))[0],e.scope.registerBinding(s,r),0===c.node.properties.length&&c.findParent(function(e){return e.isObjectProperty()||e.isVariableDeclarator()}).remove()})}},ExportNamedDeclaration:function(e){var t=e.get("declaration");if(t.isVariableDeclaration()){var r=t.get("declarations").some(function(e){return w(e.get("id"))});r&&e.splitExportDeclaration()}},CatchClause:function(e){var t=e.get("param");P(e,t)},AssignmentExpression:function(e,t){var r=e.get("left");if(r.isObjectPattern()&&w(r)){var a=[],n=e.scope.generateUidBasedOnNode(e.node.right,"ref");a.push(Zs("var",[eo(Ps(n),e.node.right)]));var s=y(T(r,t,Ps(n)),3),o=s[0],i=s[1],d=s[2];o.length>0&&a.push(Zs("var",o));var c=sm(e.node);c.right=Ps(n),a.push(Rs(c)),a.push(Rs(is("=",i,d))),a.push(Rs(Ps(n))),e.replaceWithMultiple(a)}},ForXStatement:function(e){var t=e.node,r=e.scope,a=e.get("left");if(a.isVariableDeclaration()){var n=a.get("declarations")[0].get("id");if(!w(n))return;var s=a.node,o=n.node,i=r.generateUidIdentifier("ref");return t.left=Zs(s.kind,[eo(i,null)]),e.ensureBlock(),wJ(e,[Zs(t.left.kind,[eo(o,sm(i))])]),void r.crawl()}if(w(a)){var d=r.generateUidIdentifier("ref");t.left=Zs("var",[eo(d)]),e.ensureBlock();var c=[];return 0===e.node.body.body.length&&e.isCompletionRecord()&&c.unshift(Rs(r.buildUndefinedNode())),c.unshift(Rs(is("=",a.node,sm(d)))),wJ(e,c),void r.crawl()}},ArrayPattern:function(e){var t=[],r=e.scope,a=[];if(E(e,function(e){var n=e.parentPath,s=r.generateUidIdentifier("ref");t.push({left:n.node,right:s}),a.push(s),n.replaceWith(sm(s)),e.skip()}),t.length>0){var n=e.findParent(function(e){return!(e.isPattern()||e.isObjectProperty())}),s=n.node;switch(s.type){case"VariableDeclarator":n.insertAfter(t.map(function(e){return eo(e.left,e.right)}));break;case"AssignmentExpression":for(var o,d=i(a);!(o=d()).done;){var c=o.value;r.push({id:sm(c)})}n.insertAfter(t.map(function(e){return is("=",e.left,e.right)}));break;default:throw new Error("Unexpected pattern parent type: "+s.type)}}},ObjectExpression:function(e,t){if(function(e){for(var t,r=i(e.properties);!(t=r()).done;)if(Xe(t.value))return!0;return!1}(e.node)){var r;if(x)r=R(t);else try{r=t.addHelper("objectSpread2")}catch(e){this.file.declarations.objectSpread2=null,r=t.addHelper("objectSpread")}for(var a,n=null,s=[],o=i(e.node.properties);!(a=o()).done;){var d=a.value;Xe(d)?(c(),n.arguments.push(d.argument)):s.push(d)}s.length&&c(),e.replaceWith(n)}function c(){var e=s.length>0,t=Ls(s);s=[],n?v?e&&n.arguments.push(t):n=gs(sm(r),[n].concat(b(e?[Ls([]),t]:[]))):n=gs(r,[t])}}}}},ufe=function(e){return e.assertVersion("*"),{name:"transform-optional-catch-binding",manipulateOptions:function(e,t){return t.plugins.push("optionalCatchBinding")},visitor:{CatchClause:function(e){if(!e.node.param){var t=e.scope.generateUidIdentifier("unused");e.get("param").replaceWith(t)}}}}};function pfe(e){var t=ffe(e),r=t.node,a=t.parentPath;if(a.isLogicalExpression()){var n=a.node,s=n.operator,o=n.right;if("&&"===s||"||"===s||"??"===s&&r===o)return pfe(a)}if(a.isSequenceExpression()){var i=a.node.expressions;return i[i.length-1]!==r||pfe(a)}return a.isConditional({test:r})||a.isUnaryExpression({operator:"!"})||a.isForStatement({test:r})||a.isWhile({test:r})}function ffe(e){var t=e;return e.findParent(function(e){if(!yK(e.node))return!0;t=e}),t}function gfe(e){return ie(e=bK(e))||Je(e)||me(e)&&!e.computed&&gfe(e.object)}var mfe=pj.expression("%%check%% === null || %%ref%% === void 0"),yfe=pj.expression("%%check%% == null"),hfe=pj.expression("%%check%% !== null && %%ref%% !== void 0"),bfe=pj.expression("%%check%% != null");function vfe(e,t,r,a,n){var s=t.pureGetters,o=t.noDocumentAll,i=e.scope;if(i.path.isPattern()&&function(e){for(var t=e,r=e.scope;t.isOptionalMemberExpression()||t.isOptionalCallExpression();){var a=t.node,n=hK(t.isOptionalMemberExpression()?t.get("object"):t.get("callee"));if(a.optional)return!r.isStatic(n.node);t=n}}(e))r.replaceWith(pj.expression.ast(sfe||(sfe=h(["(() => ",")()"])),r.node));else{for(var d=[],c=e;c.isOptionalMemberExpression()||c.isOptionalCallExpression();){var l=c.node;l.optional&&d.push(l),c.isOptionalMemberExpression()?(c.node.type="MemberExpression",c=hK(c.get("object"))):c.isOptionalCallExpression()&&(c.node.type="CallExpression",c=hK(c.get("callee")))}if(0!==d.length){for(var u,p=[],f=d.length-1;f>=0;f--){var g=d[f],m=Z(g),y=m?g.callee:g.object,b=bK(y),v=void 0,x=void 0;if(m&&ie(b,{name:"eval"})?(x=v=b,g.callee=Vs([_s(0),v])):s&&m&&gfe(b)?x=v=g.callee:i.isStatic(b)?x=v=y:(u&&!m||(u=i.generateUidIdentifierBasedOnNode(b),i.push({id:sm(u)})),v=u,x=is("=",sm(u),y),m?g.callee=v:g.object=v),m&&me(b))if(s&&gfe(b))g.callee=y;else{var R=b.object,j=void 0;if(Je(R))j=Xs();else{var w=i.maybeGenerateMemoised(R);w?(j=w,b.object=is("=",w,R)):j=R}g.arguments.unshift(sm(j)),g.callee=Bs(g.callee,Ps("call"))}var E={check:sm(x),ref:sm(v)};Object.defineProperty(E,"ref",{enumerable:!1}),p.push(E)}var S=r.node;n&&(S=n(S));var T,P=fe(a),A=P&&!1===a.value,k=!P&&Te(a,{operator:"void"}),C=re(r.parent)&&!r.isCompletionRecord()||we(r.parent)&&(T=r.parent.expressions)[T.length-1]!==r.node,_=A?o?bfe:hfe:o?yfe:mfe,I=A?"&&":"||",D=p.map(_).reduce(function(e,t){return Ns(I,e,t)});r.replaceWith(P||k&&C?Ns(I,D,S):ys(D,a,S))}}}function xfe(e,t){var r,a=e.scope,n=ffe(e),s=n.parentPath;s.isUnaryExpression({operator:"delete"})?vfe(e,t,s,Ds(!0)):(s.isCallExpression({callee:n.node})&&e.isOptionalMemberExpression()&&(r=function(e){var r,n=bK(e.object);return t.pureGetters&&gfe(n)||(r=a.maybeGenerateMemoised(n))&&(e.object=is("=",r,n)),gs(Bs(e,Ps("bind")),[sm(null!=r?r:n)])}),vfe(e,t,e,pfe(n)?Ds(!1):a.buildUndefinedNode(),r))}var Rfe=function(e,t){var r,a;e.assertVersion("*");var n=t.loose,s=void 0!==n&&n,o=null!=(r=e.assumption("noDocumentAll"))?r:s,i=null!=(a=e.assumption("pureGetters"))?a:s;return{name:"transform-optional-chaining",manipulateOptions:function(e,t){return t.plugins.push("optionalChaining")},visitor:{"OptionalCallExpression|OptionalMemberExpression":function(e){xfe(e,{noDocumentAll:o,pureGetters:i})}}}},jfe=function(e){var t,r;e.assertVersion("*");var a={noDocumentAll:null!=(t=e.assumption("noDocumentAll"))&&t,pureGetters:null!=(r=e.assumption("pureGetters"))&&r},n=e.types;return{name:"transform-optional-chaining-assign",inherits:cH,visitor:{AssignmentExpression:function(e,t){var r,s=e.get("left");if(s.isExpression()){var o=(null==(r=s.node.extra)?void 0:r.parenthesized)||n.isParenthesizedExpression(s.node);if((s=hK(s)).isOptionalMemberExpression()){var i=e.scope.buildUndefinedNode();o&&(i=n.callExpression(t.addHelper("nullishReceiverError"),[]),"="===e.node.operator&&(i=n.sequenceExpression([n.cloneNode(e.node.right),i]))),vfe(s,a,e,i)}}}}}};var wfe,Efe,Sfe,Tfe,Pfe,Afe,kfe,Cfe,_fe,Ife,Dfe=function(e){var t=e.call,r=e.path,a=e.placeholder,n=t.callee,s=r.node.left,o=is("=",sm(a),s),i=function(e){return Ie(e)&&$t(e.body)&&!e.async}(n);if(i){var d,c=!0,l=n.params;if(1===l.length&&ie(l[0])?d=l[0]:l.length>0&&(c=!1),c&&!d)return Vs([s,n.body]);if(d)return r.scope.push({id:sm(a)}),r.get("right").scope.rename(d.name,a.name),Vs([o,n.body])}else if(ie(n,{name:"eval"})){var u=Vs([_s(0),n]);t.callee=u}return r.scope.push({id:sm(a)}),Vs([o,t])},Ofe={BinaryExpression:function(e){var t=e.scope,r=e.node,a=r.operator,n=r.left,s=r.right;if("|>"===a){var o=t.generateUidIdentifierBasedOnNode(n),i=gs(s,[sm(o)]);e.replaceWith(Dfe({placeholder:o,call:i,path:e}))}}},Nfe={exit:function(e,t){e.isTopicReference()?t.topicReferences.push(e):0!==t.topicReferences.length||t.sideEffectsBeforeFirstTopicReference||e.isPure()||(t.sideEffectsBeforeFirstTopicReference=!0)},"ClassBody|Function":function(e,t){0===t.topicReferences.length&&(t.sideEffectsBeforeFirstTopicReference=!0)}},Bfe={BinaryExpression:{exit:function(e){var t=e.scope,r=e.node;if("|>"===r.operator){var a=e.get("right");if("TopicReference"!==a.node.type){var n={topicReferences:[],sideEffectsBeforeFirstTopicReference:a.isFunction()};if(a.traverse(Nfe,n),1===n.topicReferences.length&&(!n.sideEffectsBeforeFirstTopicReference||e.scope.isPure(r.left,!0)))return n.topicReferences[0].replaceWith(r.left),void e.replaceWith(r.right);var s=t.generateUidIdentifierBasedOnNode(r);t.push({id:s}),n.topicReferences.forEach(function(e){return e.replaceWith(sm(s))}),e.replaceWith(Vs([is("=",sm(s),r.left),r.right]))}else e.replaceWith(r.left)}}}},Mfe={BinaryExpression:function(e){var t=e.scope,r=e.node,a=r.operator,n=r.left,s=r.right;if("|>"===a){var o=t.generateUidIdentifierBasedOnNode(n),i="AwaitExpression"===s.type?ko(sm(o)):gs(s,[sm(o)]),d=Dfe({placeholder:o,call:i,path:e});e.replaceWith(d)}}},Ffe={PipelinePrimaryTopicReference:function(e){e.replaceWith(sm(this.topicId))},PipelineTopicExpression:function(e){e.skip()}},Lfe={BinaryExpression:function(e){var t=e.scope,r=e.node,a=r.operator,n=r.left,s=r.right;if("|>"===a){var o,i=t.generateUidIdentifierBasedOnNode(n);if(t.push({id:i}),Mt(s))e.get("right").traverse(Ffe,{topicId:i}),o=s.expression;else{var d=s.callee;ie(d,{name:"eval"})&&(d=Vs([_s(0),d])),o=gs(d,[sm(i)])}e.replaceWith(Vs([is("=",sm(i),n),o]))}}},Ufe={minimal:Ofe,hack:Bfe,fsharp:Mfe,smart:Lfe},qfe=function(e,t){return e.assertVersion("*"),"smart"===t.proposal&&console.warn('The smart-mix pipe operator is deprecated. Use "proposal": "hack" instead.'),{name:"proposal-pipeline-operator",inherits:fH,visitor:Ufe[t.proposal]}},Gfe=function(e,t){return e.assertVersion("*"),aJ({name:"transform-private-methods",api:e,feature:HX.privateMethods,loose:t.loose,manipulateOptions:function(e,t){t.plugins.push("classPrivateMethods")}})},Wfe=function(e,t){e.assertVersion("*");var r=e.types,a=e.template,n=t.loose,s=new WeakMap,o=new WeakMap;function d(e,t,a){if(void 0===a&&(a=!1),e.node.value){var n=e.get("value");a?n.insertBefore(t):n.insertAfter(t)}else e.set("value",r.unaryExpression("void",t))}function c(e,t){for(var a,n,s,o=i(e.get("body.body"));!(s=o()).done;){var c=s.value;if((c.isClassProperty()||c.isClassPrivateProperty())&&!c.node.static){a=c;break}!n&&c.isClassMethod({kind:"constructor"})&&(n=c)}a?d(a,t,!0):ZK(e,n,[r.expressionStatement(t)])}function l(e,t,n,s,o){void 0===s&&(s="");var i=e.get(n.node);if(!i){i=t.scope.generateUidIdentifier((s||"")+" brandCheck"),e.set(n.node,i),o(n,a.expression.ast(wfe||(wfe=h(["",".add(this)"])),r.cloneNode(i)));var d=r.newExpression(r.identifier("WeakSet"),[]);DH(d),t.insertBefore(a.ast(Efe||(Efe=h(["var "," = ",""])),i,d))}return r.cloneNode(i)}return{name:"transform-private-property-in-object",manipulateOptions:function(e,t){return t.plugins.push("privateIn")},pre:function(){$X(this.file,HX.privateIn,n)},visitor:{BinaryExpression:function(e,t){var n=e.node,i=t.file;if("in"===n.operator&&r.isPrivateName(n.left)){var u,p=n.left.id.name,f=e.findParent(function(e){return!!e.isClass()&&(u=e.get("body.body").find(function(e){var t=e.node;return r.isPrivate(t)&&t.key.id.name===p}),!!u)});if(f.parentPath.scope.path.isPattern())f.replaceWith(a.ast(Sfe||(Sfe=h(["(() => ",")()"])),f.node));else if("ClassPrivateMethod"===u.node.type)if(u.node.static)f.node.id?function(e,t,r){for(;r!==t;)r.hasOwnBinding(e)&&r.rename(e),r=r.parent}(f.node.id.name,f.scope,e.scope):f.set("id",e.scope.generateUidIdentifier("class")),e.replaceWith(a.expression.ast(Tfe||(Tfe=h(["\n "," === ","\n "])),r.cloneNode(f.node.id),EK(n.right,i)));else{var g,m=l(s,f,f,null==(g=f.node.id)?void 0:g.name,c);e.replaceWith(a.expression.ast(Pfe||(Pfe=h(["",".has(",")"])),m,EK(n.right,i)))}else{var y=l(o,f,u,u.node.key.id.name,d);e.replaceWith(a.expression.ast(Afe||(Afe=h(["",".has(",")"])),y,EK(n.right,i)))}}}}}},Vfe=function(e){return e.assertVersion("*"),Vpe({name:"transform-regexp-modifiers",feature:"modifiers"})},Hfe=function(e){return e.assertVersion("*"),{name:"proposal-throw-expressions",manipulateOptions:function(e,t){return t.plugins.push("throwExpressions")},visitor:{UnaryExpression:function(e){var t=e.node,r=t.operator,a=t.argument;if("throw"===r){var n=Ts(null,[Ps("e")],ps([Js(Ps("e"))]));e.replaceWith(gs(n,[a]))}}}}},zfe=function(e,t){e.assertVersion("*");var r=t.useUnicodeFlag,a=void 0===r||r;if("boolean"!=typeof a)throw new Error(".useUnicodeFlag must be a boolean, or undefined");return Vpe({name:"transform-unicode-property-regex",feature:"unicodePropertyEscape",options:{useUnicodeFlag:a}})},Kfe=function(e){return e.assertVersion("*"),Vpe({name:"transform-unicode-sets-regex",feature:"unicodeSetsFlag",manipulateOptions:function(e,t){t.plugins.push("regexpUnicodeSets")}})},Xfe=function(e,t){var r,a;e.assertVersion("*");var n=t.method,s=t.module,o=null==(r=e.assumption("noNewArrows"))||r,i=null!=(a=e.assumption("ignoreFunctionLength"))&&a;return n&&s?{name:"transform-async-to-generator",visitor:{Function:function(e,t){if(e.node.async&&!e.node.generator){var r=t.methodWrapper;UH(e,{wrapAsync:r=r?sm(r):t.methodWrapper=$N(e,n,s)},o,i)}}}}:{name:"transform-async-to-generator",visitor:{Function:function(e,t){e.node.async&&!e.node.generator&&UH(e,{wrapAsync:t.addHelper("asyncToGenerator")},o,i)}}}},Jfe=function(e,t){var r;e.assertVersion("*");var a=null!=(r=e.assumption("noNewArrows"))?r:!t.spec;return{name:"transform-arrow-functions",visitor:{ArrowFunctionExpression:function(e){e.isArrowFunctionExpression()&&e.arrowFunctionToExpression({allowInsertArrow:!1,noNewArrows:a,specCompliant:!a})}}}},Yfe=function(e){function t(e,t){for(var r,a=i(t);!(r=a()).done;){var n=r.value;if(n.isFunctionDeclaration()){var s=n.node,o=Zs("let",[eo(s.id,by(s))]);o._blockHoist=2,s.id=null,n.replaceWith(o)}}}return e.assertVersion("*"),{name:"transform-block-scoped-functions",visitor:{BlockStatement:function(e){var r=e.node,a=e.parent;nr(a,{body:r})||gr(a)||t(0,e.get("body"))},SwitchCase:function(e){t(0,e.get("consequent"))}}}},$fe={"Expression|Declaration|Loop":function(e){e.skip()},Scope:function(e,t){e.isFunctionParent()&&e.skip();for(var r=e.scope.bindings,a=0,n=Object.keys(r);a<n.length;a++){var s=r[n[a]];"let"!==s.kind&&"const"!==s.kind&&"hoisted"!==s.kind||t.blockScoped.push(s)}}};function Qfe(e,t){var r=new WeakSet,a=!1,n=rge(e.constantViolations,function(e){var n=Zfe(e,t),s=n.inBody,o=n.inClosure;if(!s)return null;a||(a=o);var i=e.isUpdateExpression()?e.get("argument"):e.isAssignmentExpression()?e.get("left"):null;return i&&r.add(i.node),i}),s=rge(e.referencePaths,function(e){if(r.has(e.node))return null;var n=Zfe(e,t),s=n.inBody,o=n.inClosure;return s?(a||(a=o),e):null});return{capturedInClosure:a,hasConstantViolations:n.length>0,usages:s.concat(n)}}function Zfe(e,t){for(var r=t.get("body"),a=!1,n=e;n;n=n.parentPath){if((n.isFunction()||n.isClass()||n.isMethod())&&(a=!0),n===r)return{inBody:!0,inClosure:a};if(n===t)return{inBody:!1,inClosure:a}}throw new Error("Internal Babel error: path is not in loop. Please report this as a bug.")}var ege={Function:function(e){e.skip()},LabeledStatement:{enter:function(e,t){var r=e.node;t.labelsStack.push(r.label.name)},exit:function(e,t){var r=e.node;if(t.labelsStack.pop()!==r.label.name)throw new Error("Assertion failure. Please report this bug to Babel.")}},Loop:{enter:function(e,t){t.labellessContinueTargets++,t.labellessBreakTargets++},exit:function(e,t){t.labellessContinueTargets--,t.labellessBreakTargets--}},SwitchStatement:{enter:function(e,t){t.labellessBreakTargets++},exit:function(e,t){t.labellessBreakTargets--}},"BreakStatement|ContinueStatement":function(e,t){var r=e.node.label;if(r){if(t.labelsStack.includes(r.name))return}else if(e.isBreakStatement()?t.labellessBreakTargets>0:t.labellessContinueTargets>0)return;t.breaksContinues.push(e)},ReturnStatement:function(e,t){t.returns.push(e)},VariableDeclaration:function(e,t){e.parent===t.loopNode&&tge(e)||"var"===e.node.kind&&t.vars.push(e)}};function tge(e){return ne(e.parent)?"init"===e.key:!!ar(e.parent)&&"left"===e.key}function rge(e,t){for(var r,a=[],n=i(e);!(r=n()).done;){var s=t(r.value);s&&a.push(s)}return a}function age(e,t,r){for(var a,n=i(t.constantViolations);!(a=n()).done;){var s=a.value,o=gs(r.addHelper("readOnlyError"),[Cs(e)]);if(s.isAssignmentExpression()){var d=s.node,c=d.operator,l=d.left,u=d.right;if("="===c){var p=[u];p.push(o),s.replaceWith(Vs(p))}else["&&=","||=","??="].includes(c)?s.replaceWith(Ns(c.slice(0,-1),l,Vs([u,o]))):s.replaceWith(Vs([ds(c.slice(0,-1),l,u),o]))}else s.isUpdateExpression()?s.replaceWith(Vs([$s("+",s.get("argument").node),o])):s.isForXStatement()&&(s.ensureBlock(),s.get("left").replaceWith(Zs("var",[eo(s.scope.generateUidIdentifier(e))])),s.node.body.body.unshift(Rs(o)))}}var nge=new WeakSet;function sge(e,t,r){if("maybe"===e){var a=sm(t);return nge.add(a),gs(r.addHelper("temporalRef"),[a,Cs(t.name)])}return gs(r.addHelper("tdz"),[Cs(t.name)])}function oge(e,t,r){var a;if(void 0===r&&(r=e.node),!nge.has(r)){nge.add(r);var n=null==(a=e.scope.getBinding(r.name))?void 0:a.path;if(n&&!n.isFunctionDeclaration()){var s=function(e,t){var r=t._guessExecutionStatusRelativeTo(e);return"before"===r?"outside":"after"===r?"inside":"maybe"}(e,n);if("outside"!==s)return"maybe"===s&&(n.parent._tdzThis=!0),{status:s,node:sge(s,r,t)}}}}function ige(e,t){var r=new Set(e.referencePaths);e.constantViolations.forEach(r.add,r);for(var a,n=!1,s=i(e.constantViolations);!(a=s()).done;){var o=a.value,d=o.node;if(!nge.has(d))if(nge.add(d),o.isUpdateExpression()){var c=o.get("argument"),l=oge(o,t,c.node);if(!l)continue;"maybe"===l.status?(n=!0,o.insertBefore(l.node)):o.replaceWith(l.node)}else if(o.isAssignmentExpression()){for(var u=[],p=o.getBindingIdentifiers(),f=0,g=Object.keys(p);f<g.length;f++){var m=oge(o,t,p[g[f]]);if(m){if(u.push(Rs(m.node)),"inside"===m.status)break;"maybe"===m.status&&(n=!0)}}u.length>0&&o.insertBefore(u)}}for(var y=0,h=e.referencePaths;y<h.length;y++){var b=h[y];if(!b.parentPath.isUpdateExpression()&&!b.parentPath.isForXStatement({left:b.node})){var v=oge(b,t);v&&("maybe"===v.status&&(n=!0),b.replaceWith(v.node))}}return n}var dge=Object.assign({VariableDeclaration:function(e){fge(e)||"var"===e.node.kind&&(e.scope.getFunctionParent()||e.scope.getProgramParent()).path.traverse(uge,{names:Object.keys(e.getBindingIdentifiers())})}},{BlockStatement:function(e){fge(e)||nr(e.parent,{body:e.node})||cge(e.get("body"))},SwitchCase:function(e){fge(e)||cge(e.get("consequent"))}});function cge(e){e:for(var t,r=i(e);!(t=r()).done;){var a=t.value;if(a.isFunctionDeclaration()){if(a.node.async||a.node.generator)return;var n=a.parentPath.scope;if(pge(n))return;var s=a.node.id.name,o=n;do{if(o.parent.hasOwnBinding(s))continue e;o=o.parent}while(!pge(o));lge(a)}}}function lge(e){var t=e.node,r=e.parentPath.scope,a=t.id;r.removeOwnBinding(a.name),t.id=null;var n=Zs("var",[eo(a,by(t))]);n._blockHoist=2;var s=y(e.replaceWith(n),1)[0];r.registerDeclaration(s)}var uge={Scope:function(e,t){for(var r,a=i(t.names);!(r=a()).done;){var n=r.value,s=e.scope.getOwnBinding(n);"hoisted"===(null==s?void 0:s.kind)&&lge(s.path)}},"Expression|Declaration":function(e){e.skip()}};function pge(e){return e.path.isFunctionParent()||e.path.isProgram()}function fge(e){return!!e.find(function(e){var t,r=e.node;if(he(r)){if("module"===r.sourceType)return!0}else{if(pr(r))return!0;if(!Q(r))return!1}return null==(t=r.directives)?void 0:t.some(function(e){return"use strict"===e.value.value})})}var gge=function(e,t){e.assertVersion("*");var r=t.throwIfClosureRequired,a=void 0!==r&&r,n=t.tdz,s=void 0!==n&&n;if("boolean"!=typeof a)throw new Error(".throwIfClosureRequired must be a boolean, or undefined");if("boolean"!=typeof s)throw new Error(".tdz must be a boolean, or undefined");return{name:"transform-block-scoping",visitor:OO.visitors.merge([dge,{Loop:function(e,t){var r,n=e.isForStatement(),o=n?e.get("init"):e.isForXStatement()?e.get("left"):null,d=!1,c=function(){if(a)throw e.buildCodeFrameError("Compiling let/const in this block would add a closure (throwIfClosureRequired).");d=!0},l=e.get("body");l.isBlockStatement()&&(r=l.scope);for(var u,p=function(e){var t={blockScoped:[]};return e.traverse($fe,t),t.blockScoped}(e),f=i(p);!(u=f()).done;){Qfe(u.value,e).capturedInClosure&&c()}var g=[],m=new Map;if(o&&bge(o))for(var v=Object.keys(o.getBindingIdentifiers()),x=o.scope,R=0,j=v;R<j.length;R++){var w,E=j[R];if(null==(w=r)||!w.hasOwnBinding(E)){var S=x.getOwnBinding(E);S||(x.crawl(),S=x.getOwnBinding(E));var T=Qfe(S,e),P=T.usages,A=T.capturedInClosure,k=T.hasConstantViolations;if(x.parent.hasBinding(E)||x.parent.hasGlobal(E)){var C=x.generateUid(E);x.rename(E,C),E=C}A&&(c(),g.push(E)),n&&k&&m.set(E,P)}}if(d){var _=function(e,t,r){var a=e.node,n={breaksContinues:[],returns:[],labelsStack:[],labellessBreakTargets:0,labellessContinueTargets:0,vars:[],loopNode:a};e.traverse(ege,n);for(var s,o=[],d=[],c=[],l=i(r);!(s=l()).done;){var u=y(s.value,2),p=u[0],f=u[1];o.push(Ps(p));var g=e.scope.generateUid(p);d.push(Ps(g)),c.push(is("=",Ps(p),Ps(g)));for(var m,v=i(f);!(m=v()).done;)m.value.replaceWith(Ps(g))}for(var x,R=i(t);!(x=R()).done;){var j=x.value;r.has(j)||(o.push(Ps(j)),d.push(Ps(j)))}var w=e.scope.generateUid("loop"),E=Ts(null,d,gy(a.body)),S=gs(Ps(w),o),T=e.findParent(function(e){return e.isFunction()});if(T){var P=T.node,A=P.async,k=P.generator;E.async=A,E.generator=k,k?S=Ao(S,!0):A&&(S=ko(S))}var C=c.length>0?Rs(Vs(c)):null;C&&E.body.body.push(C);for(var _,I=y(e.insertBefore(Zs("var",[eo(Ps(w),E)])),1)[0],D=[],O=[],N=i(n.vars);!(_=N()).done;){for(var B,M=_.value,F=[],L=i(M.node.declarations);!(B=L()).done;){var U=B.value;O.push.apply(O,b(Object.keys(Iy(U.id)))),U.init?F.push(is("=",U.id,U.init)):ar(M.parent,{left:M.node})&&F.push(U.id)}if(F.length>0){var q=1===F.length?F[0]:Vs(F);M.replaceWith(q)}else M.remove()}O.length&&I.pushContainer("declarations",O.map(function(e){return eo(Ps(e))}));var G=n.breaksContinues.length,W=n.returns.length;if(G+W===0)D.push(Rs(S));else if(1===G&&0===W)for(var V,H=i(n.breaksContinues);!(V=H()).done;){var z=V.value,K=z.node,X=K.type,J=K.label,Y="BreakStatement"===X?"break":"continue";J&&(Y+=" "+J.name),z.replaceWith(lm(Ws(_s(1)),"trailing"," "+Y,!0)),C&&z.insertBefore(sm(C)),D.push(pj.statement.ast(kfe||(kfe=h(["\n if (",") ","\n "])),S,K))}else{var $=e.scope.generateUid("ret");I.isVariableDeclaration()?(I.pushContainer("declarations",[eo(Ps($))]),D.push(Rs(is("=",Ps($),S)))):D.push(Zs("var",[eo(Ps($),S)]));for(var Q,Z=[],ee=i(n.breaksContinues);!(Q=ee()).done;){var te=Q.value,re=te.node,ae=re.type,ne=re.label,se="BreakStatement"===ae?"break":"continue";ne&&(se+=" "+ne.name);var oe=Z.indexOf(se),ie=-1!==oe;ie||(Z.push(se),oe=Z.length-1),te.replaceWith(lm(Ws(_s(oe)),"trailing"," "+se,!0)),C&&te.insertBefore(sm(C)),ie||D.push(pj.statement.ast(Ife||(Ife=h(["\n if ("," === ",") ","\n "])),Ps($),_s(oe),re))}if(W){for(var de,ce=i(n.returns);!(de=ce()).done;){var le=de.value,ue=le.node.argument||le.scope.buildUndefinedNode();le.replaceWith(pj.statement.ast(_fe||(_fe=h(["\n return { v: "," };\n "])),ue))}D.push(pj.statement.ast(Cfe||(Cfe=h(["\n if (",") return ",".v;\n "])),Ps($),Ps($)))}}return a.body=ps(D),I}(e,g,m);null!=o&&o.isVariableDeclaration()&&yge(o,t,s),_.get("declarations.0.init").unwrapFunctionEnvironment()}},VariableDeclaration:function(e,t){yge(e,t,s)},ClassDeclaration:function(e){var t=e.node.id;if(t){var r=e.parentPath.scope;!pge(r)&&r.parent.hasBinding(t.name,{noUids:!0})&&e.scope.rename(t.name)}}}])}},mge={Scope:function(e,t){for(var r,a=i(t.names);!(r=a()).done;){var n=r.value,s=e.scope.getOwnBinding(n);"hoisted"===(null==s?void 0:s.kind)&&e.scope.rename(n)}},"Expression|Declaration":function(e){e.skip()}};function yge(e,t,r){if(bge(e)){var a=function(e,t,r){for(var a=[],n=0,s=Object.keys(e.getBindingIdentifiers());n<s.length;n++){var o=s[n],i=e.scope.getBinding(o);i&&(r&&ige(i,t)&&a.push(o),"const"===e.node.kind&&age(o,i,t))}return a}(e,t,r);e.node.kind="var";for(var n=Object.keys(e.getBindingIdentifiers()),s=0,o=n;s<o.length;s++){var d=o[s],c=e.scope.getOwnBinding(d);c&&(c.kind="var")}if(hge(e)&&!tge(e)||a.length>0)for(var l,u=i(e.node.declarations);!(l=u()).done;){var p=l.value;null!=p.init||(p.init=e.scope.buildUndefinedNode())}var f=e.scope,g=f.getFunctionParent()||f.getProgramParent();if(g!==f)for(var m,y=i(n);!(m=y()).done;){var h=m.value,b=h;(f.parent.hasBinding(h,{noUids:!0})||f.parent.hasGlobal(h))&&(b=f.generateUid(h),f.rename(h,b)),f.moveBindingTo(b,g)}f.path.traverse(mge,{names:n});for(var v,x=i(a);!(v=x()).done;){var R=v.value;e.scope.push({id:Ps(R),init:t.addHelper("temporalUndefined")})}}}function hge(e){return!!e.parentPath&&(!!e.parentPath.isLoop()||!e.parentPath.isFunctionParent()&&hge(e.parentPath))}function bge(e){var t=e.node;if(!Ae(t))return!1;var r=t.kind;if("using"===r||"await using"===r)throw e.buildCodeFrameError("The "+r+" declaration should be first transformed by `@babel/plugin-transform-explicit-resource-management`.");return!!function(e){return"let"===e||"const"===e}(r)}var vge,xge,Rge=pj.statement(vge||(vge=h(["\n function CALL_SUPER(\n _this,\n derived,\n args,\n ) {\n function isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n\n // core-js@3\n if (Reflect.construct.sham) return false;\n\n // Proxy can't be polyfilled. Every browser implemented\n // proxies before or at the same time as Reflect.construct,\n // so if they support Proxy they also support Reflect.construct.\n if (typeof Proxy === \"function\") return true;\n\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}),);\n } catch (e) {\n return false;\n }\n }\n\n // Super\n derived = GET_PROTOTYPE_OF(derived);\n return POSSIBLE_CONSTRUCTOR_RETURN(\n _this,\n isNativeReflectConstruct()\n ? // NOTE: This doesn't work if this.__proto__.constructor has been modified.\n Reflect.construct(\n derived,\n args || [],\n GET_PROTOTYPE_OF(_this).constructor,\n )\n : derived.apply(_this, args),\n );\n }\n"]))),jge=new WeakMap;function wge(e,t,r){var a=Ss(sm(e),[],t);return Cy(a,r),a}function Ege(e,t,r,a,n,s){var o={parent:void 0,scope:void 0,node:void 0,path:void 0,file:void 0,classId:void 0,classRef:void 0,superName:null,superReturns:[],isDerived:!1,extendsNative:!1,construct:void 0,constructorBody:void 0,userConstructor:void 0,userConstructorPath:void 0,hasConstructor:!1,body:[],superThises:[],pushedInherits:!1,pushedCreateClass:!1,protoAlias:null,isLoose:!1,dynamicKeys:new Map,methods:{instance:{hasComputed:!1,list:[],map:new Map},static:{hasComputed:!1,list:[],map:new Map}}},d=function(e){Object.assign(o,e)},c=hw({ThisExpression:function(e){o.superThises.push(e)}});function l(e){return gs(o.file.addHelper("createClass"),e)}function u(){if(function(){for(var e,t=o.path.get("body"),r=i(t.get("body"));!(e=r()).done;)if(e.value.isClassMethod({kind:"constructor"}))return;var a;a=o.isDerived?pj.statement.ast(xge||(xge=h(["{\n super(...arguments);\n }"]))):ps([]),t.unshiftContainer("body",Ro("constructor",Ps("constructor"),[],a))}(),function(){for(var e,t=o.path.get("body.body"),r=function(){var t=e.value,r=t.node;if(t.isClassProperty()||t.isClassPrivateProperty())throw t.buildCodeFrameError("Missing class properties transform.");if(r.decorators)throw t.buildCodeFrameError("Method has decorators, put the decorator plugin before the classes one.");if(ze(r)){var a="constructor"===r.kind;new cK({methodPath:t,objectRef:o.classRef,superRef:o.superName,constantSuper:n.constantSuper,file:o.file,refToPreserve:o.classRef}).replace();var i,c=[];if(t.traverse(hw({ReturnStatement:function(e){e.getFunctionParent().isArrowFunctionExpression()||c.push(e)}})),a)!function(e,t,r){d({userConstructorPath:r,userConstructor:t,hasConstructor:!0,superReturns:e});var a=o.construct;mm(a,t),a.params=t.params,Cy(a.body,t.body),a.body.directives=t.body.directives,(o.hasInstanceDescriptors||o.hasStaticDescriptors)&&p();f()}(c,r,t);else t.ensureFunctionName(s),r!==t.node&&(i=t.node,t.replaceWith(r)),function(e,t){if("method"===e.kind&&function(e){if(n.setClassMethods&&!e.decorators){var t=o.classRef;e.static||(!function(){if(null===o.protoAlias){d({protoAlias:o.scope.generateUidIdentifier("proto")});var e=Bs(o.classRef,Ps("prototype")),t=Zs("var",[eo(o.protoAlias,e)]);o.body.push(t)}}(),t=o.protoAlias);var r=Bs(sm(t),e.key,e.computed||dr(e.key)),a=Ts(e.id,e.params,e.body,e.generator,e.async);Cy(a,e);var s=Rs(is("=",r,a));return mm(s,e),o.body.push(s),!0}return!1}(e))return;var r=e.static?"static":"instance",a=o.methods[r],s="method"===e.kind?"value":e.kind,i=ue(e.key)||tt(e.key)?Cs(String(e.key.value)):hy(e);a.hasComputed=!le(i);var c,l=null!=t?t:by(e);if(!a.hasComputed&&a.map.has(i.value))(c=a.map.get(i.value))[s]=l,"value"===s?(c.get=null,c.set=null):c.value=null;else{var u;(u={key:i})[s]=l,c=u,a.list.push(c),a.hasComputed||a.map.set(i.value,c)}}(r,i)}},a=i(t);!(e=a()).done;)r()}(),function(){if(!o.isDerived)return;var e=o.userConstructorPath,t=e.get("body"),r=e.get("body"),a=r.node.body.length;e.traverse(c);var s=function(){var t=e.scope.generateDeclaredUidIdentifier("this");return a++,s=function(){return sm(t)},t},d=function(){return gs(o.file.addHelper("assertThisInitialized"),[s()])},l=[];e.traverse(hw({Super:function(e){var t=e.node,r=e.parentPath;r.isCallExpression({callee:t})&&l.unshift(r)}}));for(var u=function(){var e,i=f[p];(function(e,t,r,a){var s,i=e.node;if(n.superIsCallableConstructor)i.arguments.unshift({type:"ThisExpression"}),2===i.arguments.length&&Xe(i.arguments[1])&&ie(i.arguments[1].argument,{name:"arguments"})?(i.arguments[1]=i.arguments[1].argument,i.callee=Bs(sm(t),Ps("apply"))):i.callee=Bs(sm(t),Ps("call")),s=Ns("||",i,{type:"ThisExpression"});else{var d,c=[{type:"ThisExpression"},sm(o.classRef)];if(null!=(d=i.arguments)&&d.length){var l=i.arguments;1===l.length&&Xe(l[0])&&ie(l[0].argument,{name:"arguments"})?c.push(l[0].argument):c.push(os(l))}s=gs(function(e){if(jge.has(e))return(sm||dm)(jge.get(e));try{return e.addHelper("callSuper")}catch(e){}var t=e.scope.generateUidIdentifier("callSuper");jge.set(e,t);var r=Rge({CALL_SUPER:t,GET_PROTOTYPE_OF:e.addHelper("getPrototypeOf"),POSSIBLE_CONSTRUCTOR_RETURN:e.addHelper("possibleConstructorReturn")}),a=y(e.path.unshiftContainer("body",[r]),1)[0];return e.scope.registerDeclaration(a),sm(t)}(o.file),c)}e.parentPath.isExpressionStatement()&&e.parentPath.container===a.node.body&&a.node.body.length-1===e.parentPath.key?(o.superThises.length&&(s=is("=",r(),s)),e.parentPath.replaceWith(Ws(s))):e.replaceWith(is("=",r(),s))}(i,o.superName,s,t),a>=0)&&i.find(function(t){if(t===r)return a=Math.min(a,e.key),!0;var n=t.type;switch(n){case"ExpressionStatement":case"SequenceExpression":case"AssignmentExpression":case"BinaryExpression":case"MemberExpression":case"CallExpression":case"NewExpression":case"VariableDeclarator":case"VariableDeclaration":case"BlockStatement":case"ArrayExpression":case"ObjectExpression":case"ObjectProperty":case"TemplateLiteral":return e=t,!1;default:if("LogicalExpression"===n&&t.node.left===e.node||t.isConditional()&&t.node.test===e.node||"OptionalCallExpression"===n&&t.node.callee===e.node||"OptionalMemberExpression"===n&&t.node.object===e.node)return e=t,!1}return a=-1,!0})},p=0,f=l;p<f.length;p++)u();for(var g,m,h=new Set,b=function(){var e,t=g.value,n=t.node;if(t.parentPath.isMemberExpression({object:n}))return t.replaceWith(s()),1;t.find(function(t){if(t.parentPath===r)return e=t.key,!0});var o=t.parentPath.isSequenceExpression()?t.parentPath:t;o="arguments"===o.listKey&&(o.parentPath.isCallExpression()||o.parentPath.isOptionalCallExpression())?o.parentPath:null,-1!==a&&e>a||h.has(o)?t.replaceWith(s()):(o&&h.add(o),t.replaceWith(d()))},v=i(o.superThises);!(g=v()).done;)b();m=o.isLoose?function(e){var t=d();return e?Ns("||",e,t):t}:function(e){var t=[s()];return null!=e&&t.push(e),gs(o.file.addHelper("possibleConstructorReturn"),t)};var x=t.get("body"),R=-1!==a&&a<x.length;x.length&&x.pop().isReturnStatement()||t.pushContainer("body",Ws(R?s():d()));for(var j,w=i(o.superReturns);!(j=w()).done;){var E=j.value;E.get("argument").replaceWith(m(E.node.argument))}}(),o.userConstructor){var e,t=o.constructorBody,r=o.userConstructor,a=o.construct;(e=t.body).push.apply(e,b(r.body.body)),Cy(a,r),Cy(t,r.body)}p()}function p(){f();for(var e,t=o.body,r={instance:null,static:null},a=i(["static","instance"]);!(e=a()).done;){var n=e.value;o.methods[n].list.length&&(r[n]=o.methods[n].list.map(function(e){for(var t,r=Ls([qs(Ps("key"),e.key)]),a=i(["get","set","value"]);!(t=a()).done;){var n=t.value;null!=e[n]&&r.properties.push(qs(Ps(n),e[n]))}return r}))}if(r.instance||r.static){for(var s=[sm(o.classRef),r.instance?os(r.instance):{type:"NullLiteral"},r.static?os(r.static):{type:"NullLiteral"}],d=0,c=0;c<s.length;c++)pe(s[c])||(d=c);s=s.slice(0,d+1),t.push(Ws(l(s))),o.pushedCreateClass=!0}}function f(){o.isDerived&&!o.pushedInherits&&(o.pushedInherits=!0,o.body.unshift(Rs(gs(o.file.addHelper(o.isLoose?"inheritsLoose":"inherits"),[sm(o.classRef),sm(o.superName)]))))}return function(e,t,r,a){d({parent:e.parent,scope:e.scope,node:e.node,path:e,file:t,isLoose:a}),d({classId:o.node.id,classRef:o.node.id?Ps(o.node.id.name):o.scope.generateUidIdentifier("class"),superName:o.node.superClass,isDerived:!!o.node.superClass,constructorBody:ps([])}),d({extendsNative:ie(o.superName)&&r.has(o.superName.name)&&!o.scope.hasBinding(o.superName.name,!0)});var s=o.classRef,c=o.node,p=o.constructorBody;d({construct:wge(s,p,c)}),function(){for(var e,t=o.dynamicKeys,r=o.node,a=o.scope,n=i(r.body.body);!(e=n()).done;){var s=e.value;if(ze(s)&&s.computed&&!a.isPure(s.key,!0)){var d=a.generateUidIdentifierBasedOnNode(s.key);t.set(d.name,s.key),s.key=d}}}();var f=o.body,g=function(){var e=o.superName,t=o.dynamicKeys,r=[],a=[];if(o.isDerived){var n=sm(e);o.extendsNative&&DH(n=gs(o.file.addHelper("wrapNativeSuper"),[n]));var s=o.scope.generateUidIdentifierBasedOnNode(e);r.push(s),a.push(n),d({superName:sm(s)})}for(var c,l=i(t);!(c=l()).done;){var u=y(c.value,2),p=u[0],f=u[1];r.push(Ps(p)),a.push(f)}return{closureParams:r,closureArgs:a}}(),m=g.closureParams,h=g.closureArgs;u(),n.noClassCalls||p.body.unshift(Rs(gs(o.file.addHelper("classCallCheck"),[{type:"ThisExpression"},sm(o.classRef)])));var b=e.isInStrictMode(),v=0===f.length;if(v&&!b)for(var x,R=i(o.construct.params);!(x=R()).done;){if(!ie(x.value)){v=!1;break}}var j=v?o.construct.body.directives:[];if(b||j.push(ls(us("use strict"))),v){var w=by(o.construct);return o.isLoose?w:l([w])}return o.pushedCreateClass||f.push(Ws(o.isLoose?sm(o.classRef):l([sm(o.classRef)]))),f.unshift(o.construct),gs(so(m,ps(f,j)),h)}(e,t,r,a)}var Sge=new Set([].concat(b(["AbortController","AbortSignal","AbsoluteOrientationSensor","AbstractRange","Accelerometer","AI","AICreateMonitor","AITextSession","AnalyserNode","Animation","AnimationEffect","AnimationEvent","AnimationPlaybackEvent","AnimationTimeline","AsyncDisposableStack","Attr","Audio","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioData","AudioDecoder","AudioDestinationNode","AudioEncoder","AudioListener","AudioNode","AudioParam","AudioParamMap","AudioProcessingEvent","AudioScheduledSourceNode","AudioSinkInfo","AudioWorklet","AudioWorkletGlobalScope","AudioWorkletNode","AudioWorkletProcessor","AuthenticatorAssertionResponse","AuthenticatorAttestationResponse","AuthenticatorResponse","BackgroundFetchManager","BackgroundFetchRecord","BackgroundFetchRegistration","BarcodeDetector","BarProp","BaseAudioContext","BatteryManager","BeforeUnloadEvent","BiquadFilterNode","Blob","BlobEvent","Bluetooth","BluetoothCharacteristicProperties","BluetoothDevice","BluetoothRemoteGATTCharacteristic","BluetoothRemoteGATTDescriptor","BluetoothRemoteGATTServer","BluetoothRemoteGATTService","BluetoothUUID","BroadcastChannel","BrowserCaptureMediaStreamTrack","ByteLengthQueuingStrategy","Cache","CacheStorage","CanvasCaptureMediaStream","CanvasCaptureMediaStreamTrack","CanvasGradient","CanvasPattern","CanvasRenderingContext2D","CaptureController","CaretPosition","CDATASection","ChannelMergerNode","ChannelSplitterNode","ChapterInformation","CharacterBoundsUpdateEvent","CharacterData","Clipboard","ClipboardEvent","ClipboardItem","CloseEvent","CloseWatcher","CommandEvent","Comment","CompositionEvent","CompressionStream","ConstantSourceNode","ContentVisibilityAutoStateChangeEvent","ConvolverNode","CookieChangeEvent","CookieDeprecationLabel","CookieStore","CookieStoreManager","CountQueuingStrategy","Credential","CredentialsContainer","CropTarget","Crypto","CryptoKey","CSPViolationReportBody","CSS","CSSAnimation","CSSConditionRule","CSSContainerRule","CSSCounterStyleRule","CSSFontFaceRule","CSSFontFeatureValuesRule","CSSFontPaletteValuesRule","CSSGroupingRule","CSSImageValue","CSSImportRule","CSSKeyframeRule","CSSKeyframesRule","CSSKeywordValue","CSSLayerBlockRule","CSSLayerStatementRule","CSSMarginRule","CSSMathClamp","CSSMathInvert","CSSMathMax","CSSMathMin","CSSMathNegate","CSSMathProduct","CSSMathSum","CSSMathValue","CSSMatrixComponent","CSSMediaRule","CSSNamespaceRule","CSSNestedDeclarations","CSSNumericArray","CSSNumericValue","CSSPageDescriptors","CSSPageRule","CSSPerspective","CSSPositionTryDescriptors","CSSPositionTryRule","CSSPositionValue","CSSPropertyRule","CSSRotate","CSSRule","CSSRuleList","CSSScale","CSSScopeRule","CSSSkew","CSSSkewX","CSSSkewY","CSSStartingStyleRule","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSStyleValue","CSSSupportsRule","CSSTransformComponent","CSSTransformValue","CSSTransition","CSSTranslate","CSSUnitValue","CSSUnparsedValue","CSSVariableReferenceValue","CSSViewTransitionRule","CustomElementRegistry","CustomEvent","CustomStateSet","DataTransfer","DataTransferItem","DataTransferItemList","DecompressionStream","DelayNode","DelegatedInkTrailPresenter","DeviceMotionEvent","DeviceMotionEventAcceleration","DeviceMotionEventRotationRate","DeviceOrientationEvent","DevicePosture","DisposableStack","Document","DocumentFragment","DocumentPictureInPicture","DocumentPictureInPictureEvent","DocumentTimeline","DocumentType","DOMError","DOMException","DOMImplementation","DOMMatrix","DOMMatrixReadOnly","DOMParser","DOMPoint","DOMPointReadOnly","DOMQuad","DOMRect","DOMRectList","DOMRectReadOnly","DOMStringList","DOMStringMap","DOMTokenList","DragEvent","DynamicsCompressorNode","EditContext","Element","ElementInternals","EncodedAudioChunk","EncodedVideoChunk","ErrorEvent","Event","EventCounts","EventSource","EventTarget","External","EyeDropper","FeaturePolicy","FederatedCredential","Fence","FencedFrameConfig","FetchLaterResult","File","FileList","FileReader","FileSystem","FileSystemDirectoryEntry","FileSystemDirectoryHandle","FileSystemDirectoryReader","FileSystemEntry","FileSystemFileEntry","FileSystemFileHandle","FileSystemHandle","FileSystemObserver","FileSystemWritableFileStream","FocusEvent","FontData","FontFace","FontFaceSet","FontFaceSetLoadEvent","FormData","FormDataEvent","FragmentDirective","GainNode","Gamepad","GamepadAxisMoveEvent","GamepadButton","GamepadButtonEvent","GamepadEvent","GamepadHapticActuator","GamepadPose","Geolocation","GeolocationCoordinates","GeolocationPosition","GeolocationPositionError","GPU","GPUAdapter","GPUAdapterInfo","GPUBindGroup","GPUBindGroupLayout","GPUBuffer","GPUBufferUsage","GPUCanvasContext","GPUColorWrite","GPUCommandBuffer","GPUCommandEncoder","GPUCompilationInfo","GPUCompilationMessage","GPUComputePassEncoder","GPUComputePipeline","GPUDevice","GPUDeviceLostInfo","GPUError","GPUExternalTexture","GPUInternalError","GPUMapMode","GPUOutOfMemoryError","GPUPipelineError","GPUPipelineLayout","GPUQuerySet","GPUQueue","GPURenderBundle","GPURenderBundleEncoder","GPURenderPassEncoder","GPURenderPipeline","GPUSampler","GPUShaderModule","GPUShaderStage","GPUSupportedFeatures","GPUSupportedLimits","GPUTexture","GPUTextureUsage","GPUTextureView","GPUUncapturedErrorEvent","GPUValidationError","GravitySensor","Gyroscope","HashChangeEvent","Headers","HID","HIDConnectionEvent","HIDDevice","HIDInputReportEvent","Highlight","HighlightRegistry","History","HTMLAllCollection","HTMLAnchorElement","HTMLAreaElement","HTMLAudioElement","HTMLBaseElement","HTMLBodyElement","HTMLBRElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDirectoryElement","HTMLDivElement","HTMLDListElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFencedFrameElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormControlsCollection","HTMLFormElement","HTMLFrameElement","HTMLFrameSetElement","HTMLHeadElement","HTMLHeadingElement","HTMLHRElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLLabelElement","HTMLLegendElement","HTMLLIElement","HTMLLinkElement","HTMLMapElement","HTMLMarqueeElement","HTMLMediaElement","HTMLMenuElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLObjectElement","HTMLOListElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLQuoteElement","HTMLScriptElement","HTMLSelectedContentElement","HTMLSelectElement","HTMLSlotElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","IDBCursor","IDBCursorWithValue","IDBDatabase","IDBFactory","IDBIndex","IDBKeyRange","IDBObjectStore","IDBOpenDBRequest","IDBRequest","IDBTransaction","IDBVersionChangeEvent","IdentityCredential","IdentityCredentialError","IdentityProvider","IdleDeadline","IdleDetector","IIRFilterNode","Image","ImageBitmap","ImageBitmapRenderingContext","ImageCapture","ImageData","ImageDecoder","ImageTrack","ImageTrackList","Ink","InputDeviceCapabilities","InputDeviceInfo","InputEvent","IntersectionObserver","IntersectionObserverEntry","Keyboard","KeyboardEvent","KeyboardLayoutMap","KeyframeEffect","LanguageDetector","LargestContentfulPaint","LaunchParams","LaunchQueue","LayoutShift","LayoutShiftAttribution","LinearAccelerationSensor","Location","Lock","LockManager","MathMLElement","MediaCapabilities","MediaCapabilitiesInfo","MediaDeviceInfo","MediaDevices","MediaElementAudioSourceNode","MediaEncryptedEvent","MediaError","MediaKeyError","MediaKeyMessageEvent","MediaKeys","MediaKeySession","MediaKeyStatusMap","MediaKeySystemAccess","MediaList","MediaMetadata","MediaQueryList","MediaQueryListEvent","MediaRecorder","MediaRecorderErrorEvent","MediaSession","MediaSource","MediaSourceHandle","MediaStream","MediaStreamAudioDestinationNode","MediaStreamAudioSourceNode","MediaStreamEvent","MediaStreamTrack","MediaStreamTrackAudioSourceNode","MediaStreamTrackAudioStats","MediaStreamTrackEvent","MediaStreamTrackGenerator","MediaStreamTrackProcessor","MediaStreamTrackVideoStats","MessageChannel","MessageEvent","MessagePort","MIDIAccess","MIDIConnectionEvent","MIDIInput","MIDIInputMap","MIDIMessageEvent","MIDIOutput","MIDIOutputMap","MIDIPort","MimeType","MimeTypeArray","ModelGenericSession","ModelManager","MouseEvent","MutationEvent","MutationObserver","MutationRecord","NamedNodeMap","NavigateEvent","Navigation","NavigationActivation","NavigationCurrentEntryChangeEvent","NavigationDestination","NavigationHistoryEntry","NavigationPreloadManager","NavigationTransition","Navigator","NavigatorLogin","NavigatorManagedData","NavigatorUAData","NetworkInformation","Node","NodeFilter","NodeIterator","NodeList","Notification","NotifyPaintEvent","NotRestoredReasonDetails","NotRestoredReasons","Observable","OfflineAudioCompletionEvent","OfflineAudioContext","OffscreenCanvas","OffscreenCanvasRenderingContext2D","Option","OrientationSensor","OscillatorNode","OTPCredential","OverconstrainedError","PageRevealEvent","PageSwapEvent","PageTransitionEvent","PannerNode","PasswordCredential","Path2D","PaymentAddress","PaymentManager","PaymentMethodChangeEvent","PaymentRequest","PaymentRequestUpdateEvent","PaymentResponse","Performance","PerformanceElementTiming","PerformanceEntry","PerformanceEventTiming","PerformanceLongAnimationFrameTiming","PerformanceLongTaskTiming","PerformanceMark","PerformanceMeasure","PerformanceNavigation","PerformanceNavigationTiming","PerformanceObserver","PerformanceObserverEntryList","PerformancePaintTiming","PerformanceResourceTiming","PerformanceScriptTiming","PerformanceServerTiming","PerformanceTiming","PeriodicSyncManager","PeriodicWave","Permissions","PermissionStatus","PERSISTENT","PictureInPictureEvent","PictureInPictureWindow","Plugin","PluginArray","PointerEvent","PopStateEvent","Presentation","PresentationAvailability","PresentationConnection","PresentationConnectionAvailableEvent","PresentationConnectionCloseEvent","PresentationConnectionList","PresentationReceiver","PresentationRequest","PressureObserver","PressureRecord","ProcessingInstruction","Profiler","ProgressEvent","PromiseRejectionEvent","ProtectedAudience","PublicKeyCredential","PushManager","PushSubscription","PushSubscriptionOptions","RadioNodeList","Range","ReadableByteStreamController","ReadableStream","ReadableStreamBYOBReader","ReadableStreamBYOBRequest","ReadableStreamDefaultController","ReadableStreamDefaultReader","RelativeOrientationSensor","RemotePlayback","ReportBody","ReportingObserver","Request","ResizeObserver","ResizeObserverEntry","ResizeObserverSize","Response","RestrictionTarget","RTCCertificate","RTCDataChannel","RTCDataChannelEvent","RTCDtlsTransport","RTCDTMFSender","RTCDTMFToneChangeEvent","RTCEncodedAudioFrame","RTCEncodedVideoFrame","RTCError","RTCErrorEvent","RTCIceCandidate","RTCIceTransport","RTCPeerConnection","RTCPeerConnectionIceErrorEvent","RTCPeerConnectionIceEvent","RTCRtpReceiver","RTCRtpScriptTransform","RTCRtpSender","RTCRtpTransceiver","RTCSctpTransport","RTCSessionDescription","RTCStatsReport","RTCTrackEvent","Scheduler","Scheduling","Screen","ScreenDetailed","ScreenDetails","ScreenOrientation","ScriptProcessorNode","ScrollTimeline","SecurityPolicyViolationEvent","Selection","Sensor","SensorErrorEvent","Serial","SerialPort","ServiceWorker","ServiceWorkerContainer","ServiceWorkerRegistration","ShadowRoot","SharedStorage","SharedStorageAppendMethod","SharedStorageClearMethod","SharedStorageDeleteMethod","SharedStorageModifierMethod","SharedStorageSetMethod","SharedStorageWorklet","SharedWorker","SnapEvent","SourceBuffer","SourceBufferList","SpeechSynthesis","SpeechSynthesisErrorEvent","SpeechSynthesisEvent","SpeechSynthesisUtterance","SpeechSynthesisVoice","StaticRange","StereoPannerNode","Storage","StorageBucket","StorageBucketManager","StorageEvent","StorageManager","StylePropertyMap","StylePropertyMapReadOnly","StyleSheet","StyleSheetList","SubmitEvent","Subscriber","SubtleCrypto","SuppressedError","SVGAElement","SVGAngle","SVGAnimatedAngle","SVGAnimatedBoolean","SVGAnimatedEnumeration","SVGAnimatedInteger","SVGAnimatedLength","SVGAnimatedLengthList","SVGAnimatedNumber","SVGAnimatedNumberList","SVGAnimatedPreserveAspectRatio","SVGAnimatedRect","SVGAnimatedString","SVGAnimatedTransformList","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGComponentTransferFunctionElement","SVGDefsElement","SVGDescElement","SVGElement","SVGEllipseElement","SVGFEBlendElement","SVGFEColorMatrixElement","SVGFEComponentTransferElement","SVGFECompositeElement","SVGFEConvolveMatrixElement","SVGFEDiffuseLightingElement","SVGFEDisplacementMapElement","SVGFEDistantLightElement","SVGFEDropShadowElement","SVGFEFloodElement","SVGFEFuncAElement","SVGFEFuncBElement","SVGFEFuncGElement","SVGFEFuncRElement","SVGFEGaussianBlurElement","SVGFEImageElement","SVGFEMergeElement","SVGFEMergeNodeElement","SVGFEMorphologyElement","SVGFEOffsetElement","SVGFEPointLightElement","SVGFESpecularLightingElement","SVGFESpotLightElement","SVGFETileElement","SVGFETurbulenceElement","SVGFilterElement","SVGForeignObjectElement","SVGGElement","SVGGeometryElement","SVGGradientElement","SVGGraphicsElement","SVGImageElement","SVGLength","SVGLengthList","SVGLinearGradientElement","SVGLineElement","SVGMarkerElement","SVGMaskElement","SVGMatrix","SVGMetadataElement","SVGMPathElement","SVGNumber","SVGNumberList","SVGPathElement","SVGPatternElement","SVGPoint","SVGPointList","SVGPolygonElement","SVGPolylineElement","SVGPreserveAspectRatio","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStringList","SVGStyleElement","SVGSVGElement","SVGSwitchElement","SVGSymbolElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGTSpanElement","SVGUnitTypes","SVGUseElement","SVGViewElement","SyncManager","TaskAttributionTiming","TaskController","TaskPriorityChangeEvent","TaskSignal","TEMPORARY","Text","TextDecoder","TextDecoderStream","TextEncoder","TextEncoderStream","TextEvent","TextFormat","TextFormatUpdateEvent","TextMetrics","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TextUpdateEvent","TimeEvent","TimeRanges","ToggleEvent","Touch","TouchEvent","TouchList","TrackEvent","TransformStream","TransformStreamDefaultController","TransitionEvent","TreeWalker","TrustedHTML","TrustedScript","TrustedScriptURL","TrustedTypePolicy","TrustedTypePolicyFactory","UIEvent","URL","URLPattern","URLSearchParams","USB","USBAlternateInterface","USBConfiguration","USBConnectionEvent","USBDevice","USBEndpoint","USBInterface","USBInTransferResult","USBIsochronousInTransferPacket","USBIsochronousInTransferResult","USBIsochronousOutTransferPacket","USBIsochronousOutTransferResult","USBOutTransferResult","UserActivation","ValidityState","VideoColorSpace","VideoDecoder","VideoEncoder","VideoFrame","VideoPlaybackQuality","ViewTimeline","ViewTransition","ViewTransitionTypeSet","VirtualKeyboard","VirtualKeyboardGeometryChangeEvent","VisibilityStateEntry","VisualViewport","VTTCue","VTTRegion","WakeLock","WakeLockSentinel","WaveShaperNode","WebAssembly","WebGL2RenderingContext","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLObject","WebGLProgram","WebGLQuery","WebGLRenderbuffer","WebGLRenderingContext","WebGLSampler","WebGLShader","WebGLShaderPrecisionFormat","WebGLSync","WebGLTexture","WebGLTransformFeedback","WebGLUniformLocation","WebGLVertexArrayObject","WebSocket","WebSocketError","WebSocketStream","WebTransport","WebTransportBidirectionalStream","WebTransportDatagramDuplexStream","WebTransportError","WebTransportReceiveStream","WebTransportSendStream","WGSLLanguageFeatures","WheelEvent","Window","WindowControlsOverlay","WindowControlsOverlayGeometryChangeEvent","Worker","Worklet","WorkletGlobalScope","WritableStream","WritableStreamDefaultController","WritableStreamDefaultWriter","XMLDocument","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload","XMLSerializer","XPathEvaluator","XPathExpression","XPathResult","XRAnchor","XRAnchorSet","XRBoundedReferenceSpace","XRCamera","XRCPUDepthInformation","XRDepthInformation","XRDOMOverlayState","XRFrame","XRHand","XRHitTestResult","XRHitTestSource","XRInputSource","XRInputSourceArray","XRInputSourceEvent","XRInputSourcesChangeEvent","XRJointPose","XRJointSpace","XRLayer","XRLightEstimate","XRLightProbe","XRPose","XRRay","XRReferenceSpace","XRReferenceSpaceEvent","XRRenderState","XRRigidTransform","XRSession","XRSessionEvent","XRSpace","XRSystem","XRTransientInputHitTestResult","XRTransientInputHitTestSource","XRView","XRViewerPose","XRViewport","XRWebGLBinding","XRWebGLDepthInformation","XRWebGLLayer","XSLTProcessor"]),b(ww)));Sge.delete("Iterator");var Tge,Pge=function(e,t){var r,a,n,s;e.assertVersion("*");var o=t.loose,i=void 0!==o&&o,d=null!=(r=e.assumption("setClassMethods"))?r:i,c=null!=(a=e.assumption("constantSuper"))?a:i,l=null!=(n=e.assumption("superIsCallableConstructor"))?n:i,u=null!=(s=e.assumption("noClassCalls"))?s:i,p=!CU("transform-unicode-escapes",e.targets()),f=new WeakSet;return{name:"transform-classes",visitor:{ExportDefaultDeclaration:function(e){e.get("declaration").isClassDeclaration()&&e.splitExportDeclaration()},ClassDeclaration:function(e){var t=e.node,r=t.id?sm(t.id):e.scope.generateUidIdentifier("class");e.replaceWith(Zs("let",[eo(r,by(t))]))},ClassExpression:function(e,t){var r=e.node;if(!f.has(r)){var a=e.ensureFunctionName(p);if(!a||a.node===r){f.add(r);var n=y(e.replaceWith(Ege(e,t.file,Sge,i,{setClassMethods:d,constantSuper:c,superIsCallableConstructor:l,noClassCalls:u},p)),1)[0];if(n.isCallExpression()){DH(n);var s=n.get("callee");s.isArrowFunctionExpression()&&s.arrowFunctionToExpression()}}}}}}},Age=pj.expression.ast(Tge||(Tge=h(["\n function (type, obj, key, fn) {\n var desc = { configurable: true, enumerable: true };\n desc[type] = fn;\n return Object.defineProperty(obj, key, desc);\n }\n "])));Age._compact=!0;var kge=function(e,t){var r;e.assertVersion("*");var a=null!=(r=e.assumption("setComputedProperties"))?r:t.loose,n=a?function(e){for(var t,r=e.computedProps,a=e.state,n=e.initPropExpression,o=e.objId,c=e.body,l=i(r);!(t=l()).done;){var u=t.value;if(!ve(u)||"get"!==u.kind&&"set"!==u.kind)d(sm(o),u,c);else{if(1===r.length)return s(a,n,u);c.push(Rs(s(a,sm(o),u)))}}}:function(e){for(var t,r=e.objId,a=e.body,n=e.computedProps,d=e.state,c=null,l=[],u=i(n);!(t=u()).done;){var p=t.value;c&&10!==c.length||(c=[],l.push(c)),c.push(p)}for(var f=0,g=l;f<g.length;f++){for(var m,y=g[f],h=1===l.length,b=h?e.initPropExpression:sm(r),v=i(y);!(m=v()).done;){var x=m.value;b=!ve(x)||"get"!==x.kind&&"set"!==x.kind?gs(d.addHelper("defineProperty"),[b,hy(x),o(x)]):s(e.state,b,x)}if(h)return b;a.push(Rs(b))}};function s(e,t,r){var a,n=r.kind,s=!r.computed&&ie(r.key)?Cs(r.key.name):r.key,i=o(r);if(e.availableHelper("defineAccessor"))a=e.addHelper("defineAccessor");else{var d=e.file;if(!(a=d.get("fallbackDefineAccessorHelper"))){var c=d.scope.generateUidIdentifier("defineAccessor");d.scope.push({id:c,init:Age}),d.set("fallbackDefineAccessorHelper",a=c)}a=sm(a)}return gs(a,[Cs(n),t,s,i])}function o(e){return xe(e)?e.value:ve(e)?Ts(null,e.params,e.body,e.generator,e.async):void 0}function d(e,t,r){r.push(Rs(is("=",Bs(sm(e),t.key,t.computed||dr(t.key)),o(t))))}return{name:"transform-computed-properties",visitor:{ObjectExpression:{exit:function(e,t){for(var r,s=e.node,o=e.parent,d=e.scope,c=!1,l=i(s.properties);!(r=l()).done;){if(c=!0===r.value.computed)break}if(c){for(var u,p=[],f=[],g=!1,m=i(s.properties);!(u=m()).done;){var y=u.value;Xe(y)||(y.computed&&(g=!0),g?f.push(y):p.push(y))}var h=d.generateUidIdentifierBasedOnNode(o),b=Ls(p),v=[];v.push(Zs("var",[eo(h,b)]));var x=n({scope:d,objId:h,body:v,computedProps:f,initPropExpression:b,state:t});x?e.replaceWith(x):(a&&v.push(Rs(sm(h))),e.replaceWithMultiple(v))}}}}}},Cge=function(e){return e.assertVersion("*"),Vpe({name:"transform-dotall-regex",feature:"dotAllFlag"})};function _ge(e){return ie(e)?e.name:e.value.toString()}var Ige,Dge=function(e){return e.assertVersion("*"),{name:"transform-duplicate-keys",visitor:{ObjectExpression:function(e){for(var t,r=e.node.properties.filter(function(e){return!Xe(e)&&!e.computed}),a=Object.create(null),n=Object.create(null),s=Object.create(null),o=i(r);!(t=o()).done;){var d=t.value,c=_ge(d.key),l=!1;switch(d.kind){case"get":(a[c]||n[c])&&(l=!0),n[c]=!0;break;case"set":(a[c]||s[c])&&(l=!0),s[c]=!0;break;default:(a[c]||n[c]||s[c])&&(l=!0),a[c]=!0}l&&(d.computed=!0,d.key=Cs(c))}}}}},Oge=function(e){e.assertVersion("*");var t=e.types,r=e.template;function a(e,r){return t.callExpression(t.memberExpression(t.identifier("Math"),t.identifier("pow")),[e,r])}function n(e,r){if(r.isStatic(e))return{assign:e,ref:t.cloneNode(e)};if(r.path.isPattern())return null;var a=r.generateUidIdentifierBasedOnNode(e);return r.push({id:a}),{assign:t.assignmentExpression("=",t.cloneNode(a),e),ref:t.cloneNode(a)}}return{name:"transform-exponentiation-operator",visitor:{AssignmentExpression:function(e){var s=e.node,o=e.scope;if("**="===s.operator)if(t.isMemberExpression(s.left)){var i,d,c=n(s.left.object,o);if(!c)return void e.replaceWith(r.expression.ast(Ige||(Ige=h(["(() => ",")()"])),e.node));var l=s.left,u=l.property;if(l.computed){var p=n(u,o);i=t.memberExpression(c.assign,p.assign,!0),d=t.memberExpression(c.ref,p.ref,!0)}else i=t.memberExpression(c.assign,u,!1),d=t.memberExpression(c.ref,t.cloneNode(u),!1);e.replaceWith(t.assignmentExpression("=",i,a(d,s.right)))}else e.replaceWith(t.assignmentExpression("=",s.left,a(t.cloneNode(s.left),s.right)))},BinaryExpression:function(e){var t=e.node;"**"===t.operator&&e.replaceWith(a(t.left,t.right))}}}},Nge=function(e){function t(e){return"string"==typeof e?{type:"CommentBlock",value:e}:e}function r(e){var r,a=e.ofPath,s=e.toPath,o=e.where,i=void 0===o?"trailing":o,d=e.optional,c=void 0!==d&&d,l=e.comments,u=void 0===l?n(a,c):l,p=e.keepType,f=void 0!==p&&p;null!=(r=s)&&r.node||(s=a.getPrevSibling(),i="trailing"),s.node||(s=a.getNextSibling(),i="leading"),s.node||(s=a.parentPath,i="inner"),Array.isArray(u)||(u=[u]);var g=u.map(t);if(!f&&null!=a&&a.node){var m=a.node,y=a.parentPath,h=a.getPrevSibling(),b=a.getNextSibling(),v=!(h.node||b.node),x=m.leadingComments,R=m.trailingComments;v&&x&&y.addComments("inner",x),s.addComments(i,g),a.remove(),v&&R&&y.addComments("inner",R)}else s.addComments(i,g)}function a(e){r({ofPath:e,comments:n(e,e.parent.optional)})}function n(e,t){var r=e.getSource().replace(/\*-\//g,"*-ESCAPED/").replace(/\*\//g,"*-/");return t&&(r="?"+r),r.startsWith(":")||(r=":: "+r),r}function s(e){return"type"===e||"typeof"===e}return e.assertVersion("*"),{name:"transform-flow-comments",inherits:ZV,visitor:{TypeCastExpression:function(e){var t=e.node;r({ofPath:e.get("typeAnnotation"),toPath:e.get("expression"),keepType:!0}),e.replaceWith(Hs(t.expression))},Identifier:function(e){if(!e.parentPath.isFlow()){var t=e.node;t.typeAnnotation?(r({ofPath:e.get("typeAnnotation"),toPath:e,optional:t.optional||t.typeAnnotation.optional}),t.optional&&(t.optional=!1)):t.optional&&(r({toPath:e,comments:":: ?"}),t.optional=!1)}},AssignmentPattern:{exit:function(e){var t=e.node.left;t.optional&&(t.optional=!1)}},Function:function(e){if(!e.isDeclareFunction()){var t=e.node;t.typeParameters&&r({ofPath:e.get("typeParameters"),toPath:e.get("id"),optional:t.typeParameters.optional}),t.returnType&&r({ofPath:e.get("returnType"),toPath:e.get("body"),where:"leading",optional:t.returnType.typeAnnotation.optional})}},ClassProperty:function(e){var t=e.node;t.value?t.typeAnnotation&&r({ofPath:e.get("typeAnnotation"),toPath:e.get("key"),optional:t.typeAnnotation.optional}):a(e)},ExportNamedDeclaration:function(e){var t=e.node;("type"===t.exportKind||hr(t.declaration))&&a(e)},ImportDeclaration:function(e){var t=e.node;if(s(t.importKind))a(e);else{var n=t.specifiers.filter(function(e){return"ImportSpecifier"===e.type&&s(e.importKind)}),o=t.specifiers.filter(function(e){return"ImportSpecifier"!==e.type||!s(e.importKind)});if(t.specifiers=o,n.length>0){var i=sm(t);i.specifiers=n;var d=":: "+bk(i).code;o.length>0?r({toPath:e,comments:d}):r({ofPath:e,comments:d})}}},ObjectPattern:function(e){var t=e.node;t.typeAnnotation&&r({ofPath:e.get("typeAnnotation"),toPath:e,optional:t.optional||t.typeAnnotation.optional})},Flow:function(e){a(e)},Class:function(e){var t=e.node,a=[];if(t.typeParameters){var s=e.get("typeParameters");a.push(n(s,t.typeParameters.optional));var o,i=t.typeParameters.trailingComments;if(i)(o=a).push.apply(o,b(i));s.remove()}if(t.superClass&&(a.length>0&&(r({toPath:e.get("id"),comments:a}),a=[]),t.superTypeParameters)){var d=e.get("superTypeParameters");a.push(n(d,d.node.optional)),d.remove()}if(t.implements){var c="implements "+e.get("implements").map(function(e){return n(e).replace(/^:: /,"")}).join(", ");delete t.implements,1===a.length?a[0]+=" "+c:a.push(":: "+c)}a.length>0&&r({toPath:e.get("body"),where:"leading",comments:a})}}}},Bge=function(e,t){e.assertVersion("*");var r=/@flow(?:\s+(?:strict(?:-local)?|weak))?|@noflow/,a=!1,n=t.requireDirective,s=void 0!==n&&n,o=t.allowDeclareFields,d=void 0!==o&&o;return{name:"transform-flow-strip-types",inherits:ZV,visitor:{Program:function(e,t){var n=t.file.ast.comments;a=!1;var o=!1;if(n)for(var d,c=i(n);!(d=c()).done;){var l=d.value;r.test(l.value)&&(o=!0,l.value=l.value.replace(r,""),l.value.replace(/\*/g,"").trim()||(l.ignore=!0))}!o&&s&&(a=!0)},ImportDeclaration:function(e){if(!a&&e.node.specifiers.length){var t=0;e.node.specifiers.forEach(function(e){var r=e.importKind;"type"!==r&&"typeof"!==r||t++}),t===e.node.specifiers.length&&e.remove()}},Flow:function(e){if(a)throw e.buildCodeFrameError("A @flow directive is required when using Flow annotations with the `requireDirective` option.");e.remove()},ClassPrivateProperty:function(e){a||(e.node.typeAnnotation=null)},Class:function(e){a||(e.node.implements=null,e.get("body.body").forEach(function(e){if(e.isClassProperty()){var t=e.node;if(!d&&t.declare)throw e.buildCodeFrameError("The 'declare' modifier is only allowed when the 'allowDeclareFields' option of @babel/plugin-transform-flow-strip-types or @babel/preset-flow is enabled.");if(t.declare)e.remove();else{if(!d&&!t.value&&!t.decorators)return void e.remove();t.variance=null,t.typeAnnotation=null}}}))},AssignmentPattern:function(e){var t=e.node;a||t.left.optional&&(t.left.optional=!1)},Function:function(e){var t=e.node;if(!a){t.params.length>0&&"Identifier"===t.params[0].type&&"this"===t.params[0].name&&t.params.shift();for(var r=0;r<t.params.length;r++){var n=t.params[r];"AssignmentPattern"===n.type&&(n=n.left),n.optional&&(n.optional=!1)}cr(t)||(t.predicate=null)}},TypeCastExpression:function(e){if(!a){var t=e.node;do{t=t.expression}while(xt(t));e.replaceWith(t)}},CallExpression:function(e){var t=e.node;a||(t.typeArguments=null)},JSXOpeningElement:function(e){var t=e.node;a||(t.typeArguments=null)},OptionalCallExpression:function(e){var t=e.node;a||(t.typeArguments=null)},NewExpression:function(e){var t=e.node;a||(t.typeArguments=null)}}}};var Mge,Fge,Lge,Uge=pj.statement("\n for (var LOOP_OBJECT = OBJECT,\n IS_ARRAY = Array.isArray(LOOP_OBJECT),\n INDEX = 0,\n LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n INTERMEDIATE;\n if (IS_ARRAY) {\n if (INDEX >= LOOP_OBJECT.length) break;\n ID = LOOP_OBJECT[INDEX++];\n } else {\n INDEX = LOOP_OBJECT.next();\n if (INDEX.done) break;\n ID = INDEX.value;\n }\n }\n"),qge=pj.statements("\n var ITERATOR_COMPLETION = true;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY = undefined;\n try {\n for (\n var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY;\n !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done);\n ITERATOR_COMPLETION = true\n ) {}\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (!ITERATOR_COMPLETION && ITERATOR_KEY.return != null) {\n ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n");function Gge(e,t){var r,a,n,s=e.node,o=e.scope,i=e.parent,d=s.left;if(ie(d)||ur(d)||me(d))a=d,n=null;else{if(!Ae(d))throw t.buildCodeFrameError(d,"Unknown node type "+d.type+" in ForStatement");a=o.generateUidIdentifier("ref"),r=Zs(d.kind,[eo(d.declarations[0].id,Ps(a.name))]),n=Zs("var",[eo(Ps(a.name))])}var c,l=o.generateUidIdentifier("iterator"),u=o.generateUidIdentifier("isArray"),p=Uge({LOOP_OBJECT:l,IS_ARRAY:u,OBJECT:s.right,INDEX:o.generateUidIdentifier("i"),ID:a,INTERMEDIATE:n}),f=ce(i);return f&&(c=ks(i.label,p)),{replaceParent:f,declar:r,node:c||p,loop:p}}function Wge(e,t){var r,a=e.node,n=e.scope,s=e.parent,o=a.left,i=n.generateUid("step"),d=Bs(Ps(i),Ps("value"));if(ie(o)||ur(o)||me(o))r=Rs(is("=",o,d));else{if(!Ae(o))throw t.buildCodeFrameError(o,"Unknown node type "+o.type+" in ForStatement");r=Zs(o.kind,[eo(o.declarations[0].id,d)])}var c=qge({ITERATOR_HAD_ERROR_KEY:n.generateUidIdentifier("didIteratorError"),ITERATOR_COMPLETION:n.generateUidIdentifier("iteratorNormalCompletion"),ITERATOR_ERROR_KEY:n.generateUidIdentifier("iteratorError"),ITERATOR_KEY:n.generateUidIdentifier("iterator"),STEP_KEY:Ps(i),OBJECT:a.right}),l=ce(s),u=c[3].block.body,p=u[0];return l&&(u[0]=ks(s.label,p)),{replaceParent:l,declar:r,loop:p,node:c}}function Vge(e,t,r){var a,n=e.get("body"),s=null!=r?r:n.node;return Q(s)&&Object.keys(e.getBindingIdentifiers()).some(function(e){return n.scope.hasOwnBinding(e)})?a=ps([t,s]):(a=gy(s)).body.unshift(t),a}var Hge=function(e,t){var r,a,n;e.assertVersion("*");var s=t.assumeArray,o=t.allowArrayLike;if(!0===t.loose&&!0===s)throw new Error("The loose and assumeArray options cannot be used together in @babel/plugin-transform-for-of");if(!0===s&&!0===o)throw new Error("The assumeArray and allowArrayLike options cannot be used together in @babel/plugin-transform-for-of");if(o&&/^7\.\d\./.test(e.version))throw new Error("The allowArrayLike is only supported when using @babel/core@^7.10.0");var i=null!=(r=t.assumeArray)?r:!t.loose&&e.assumption("iterableIsArray"),d=null!=(a=t.allowArrayLike)?a:e.assumption("arrayLikeIsIterable"),c=null!=(n=e.assumption("skipForOfIteratorClosing"))?n:t.loose;if(i&&d)throw new Error('The "iterableIsArray" and "arrayLikeIsIterable" assumptions are not compatible.');if(i)return{name:"transform-for-of",visitor:{ForOfStatement:function(e){var t=e.scope,r=e.node,a=r.left;if(!r.await){var n=bK(e.node.right),s=t.generateUidIdentifier("i"),o=t.maybeGenerateMemoised(n,!0);!o&&ie(n)&&e.get("body").scope.hasOwnBinding(n.name)&&(o=t.generateUidIdentifier("arr"));var i=[eo(s,_s(0))];o?i.push(eo(o,n)):o=n;var d,c=Bs(sm(o),sm(s),!0);Ae(a)?(d=a).declarations[0].init=c:d=Rs(is("=",a,c)),e.replaceWith(Es(Zs("let",i),ds("<",sm(s),Bs(sm(o),Ps("length"))),Qs("++",sm(s)),Vge(e,d)))}}}};var l=pj(Mge||(Mge=h(["\n for (var KEY = 0, NAME = ARR; KEY < NAME.length; KEY++) BODY;\n "]))),u=pj.statements(Fge||(Fge=h(["\n for (var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY;\n !(STEP_KEY = ITERATOR_HELPER()).done;) BODY;\n "]))),p=pj.statements(Lge||(Lge=h(["\n var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY;\n try {\n for (ITERATOR_HELPER.s(); !(STEP_KEY = ITERATOR_HELPER.n()).done;) BODY;\n } catch (err) {\n ITERATOR_HELPER.e(err);\n } finally {\n ITERATOR_HELPER.f();\n }\n "]))),f=c?{build:u,helper:"createForOfIteratorHelperLoose",getContainer:function(e){return e}}:{build:p,helper:"createForOfIteratorHelper",getContainer:function(e){return e[1].block.body}};return{name:"transform-for-of",visitor:{ForOfStatement:function(e,t){var r=e.get("right");if(r.isArrayExpression()||r.isGenericType("Array")||lt(r.getTypeAnnotation()))e.replaceWith(function(e){var t=e.node,r=e.scope,a=r.generateUidIdentifierBasedOnNode(t.right,"arr"),n=r.generateUidIdentifier("i"),s=l({BODY:t.body,KEY:n,NAME:a,ARR:t.right});Cy(s,t);var o,i=Bs(sm(a),sm(n),!0),d=t.left;return Ae(d)?(d.declarations[0].init=i,o=d):o=Rs(is("=",d,i)),s.body=Vge(e,o,s.body),s}(e));else if(t.availableHelper(f.helper)){var a,n=e.node,s=e.parent,o=e.scope,i=n.left,u=o.generateUid("step"),p=Bs(Ps(u),Ps("value"));a=Ae(i)?Zs(i.kind,[eo(i.declarations[0].id,p)]):Rs(is("=",i,p));var g=f.build({CREATE_ITERATOR_HELPER:t.addHelper(f.helper),ITERATOR_HELPER:o.generateUidIdentifier("iterator"),ARRAY_LIKE_IS_ITERABLE:d?Ds(!0):null,STEP_KEY:Ps(u),OBJECT:n.right,BODY:Vge(e,a)}),m=f.getContainer(g);Cy(m[0],n),Cy(m[0].body,n.body),ce(s)?(m[0]=ks(s.label,m[0]),e.parentPath.replaceWithMultiple(g),e.skip()):e.replaceWithMultiple(g)}else!function(e,t,r){var a,n=e?Gge:Wge,s=t.node,o=n(t,r),i=o.declar,d=o.loop,c=d.body;t.ensureBlock(),i&&c.body.push(i),(a=c.body).push.apply(a,b(s.body.body)),Cy(d,s),Cy(d.body,s.body),o.replaceParent?(t.parentPath.replaceWithMultiple(o.node),t.remove()):t.replaceWithMultiple(o.node)}(c,e,t)}}}},zge=function(e){e.assertVersion("*");var t=!CU("transform-unicode-escapes",e.targets());return{name:"transform-function-name",visitor:{FunctionExpression:{exit:function(e){"value"===e.key||e.parentPath.isObjectProperty()||e.ensureFunctionName(t)}},ObjectProperty:function(e){var r=e.get("value");r.isFunction()&&r.ensureFunctionName(t)}}}},Kge=function(e){return e.assertVersion("*"),{name:"transform-instanceof",visitor:{BinaryExpression:function(e){var t=e.node;if("instanceof"===t.operator){var r=this.addHelper("instanceof"),a=e.findParent(function(e){return e.isVariableDeclarator()&&e.node.id===r||e.isFunctionDeclaration()&&e.node.id&&e.node.id.name===r.name});if(a)return;e.replaceWith(gs(r,[t.left,t.right]))}}}}},Xge=function(e){return e.assertVersion("*"),{name:"transform-jscript",visitor:{FunctionExpression:{exit:function(e){var t=e.node;t.id&&e.replaceWith(gs(Ts(null,[],ps([Py(t),Ws(sm(t.id))])),[]))}}}}},Jge=["node"];var Yge,$ge,Qge,Zge,eme,tme,rme,ame,nme,sme,ome,ime,dme,cme,lme,ume,pme,fme,gme,mme,yme,hme={compatData:{webIMR:{chrome:"105.0.0",edge:"105.0.0",firefox:"106.0.0",opera:"91.0.0",safari:"16.4.0",opera_mobile:"72.0.0",ios:"16.4.0",samsung:"20.0",deno:"1.24.0"},nodeIMR:{node:"20.6.0"},nodeFSP:{node:"10.0.0"}}},bme=new WeakMap;function vme(e){if(bme.has(e))return bme.get(e);var t,r=e.node,a=u(e,Jge),n=null==r,s=(t=a,0===Object.keys(t).length),o=!n||s,i=!s||n,d=!s&&!CU("webIMR",a,hme),c={needsNodeSupport:o,needsWebSupport:i,nodeSupportsIMR:!n&&!CU("nodeIMR",{node:r},hme),webSupportsIMR:d,nodeSupportsFsPromises:!n&&!CU("nodeFSP",{node:r},hme)};return bme.set(e,c),c}function xme(e,t,r){return $N(e,t,r,{importedType:"es6"})}var Rme,jme,wme,Eme,Sme,Tme=function(e){return pj.expression.ast(Yge||(Yge=h(["\n import.meta.resolve(",")\n"])),e)},Pme=function(e){return pj.expression.ast($ge||($ge=h(["\n import.meta.resolve?.(",") ?? new URL(",", import.meta.url)\n"])),e,sm(e))};function Ame(e,t,r){var a,n,s=vme(e),o=s.needsNodeSupport,i=s.needsWebSupport,d=s.nodeSupportsIMR,c=s.webSupportsIMR,l=s.nodeSupportsFsPromises,u=null!=t.commonJS,p=function(e){var t=e.web,a=void 0===t?i:t,n=e.node,s=void 0===n?o:n,p=e.nodeFSP,f=void 0===p?l:p,g=e.webIMR,m=void 0===g?c:g,y=e.nodeIMR,h=void 0===y?d:y,b=e.toCJS,v=void 0===b?r:b,x=e.supportIsomorphicCJS;return+a+(+s<<1)+(+m<<2)+(+h<<3)+(+v<<4)+(+f<<5)+(+(void 0===x?u:x)<<6)},f=function(e,t){return l?pj.expression.ast(Qge||(Qge=h(["",".promises.readFile(",")"])),e,t):pj.expression.ast(Zge||(Zge=h(["\n new Promise(\n (a =>\n (r, j) => ",".readFile(a, (e, d) => e ? j(e) : r(d))\n )(",")\n )"])),e,t)};switch(p({web:i,node:o,webIMR:c,nodeIMR:d,toCJS:r})){case p({toCJS:!0,supportIsomorphicCJS:!0}):n=function(e){return t.commonJS(Ps("require"),e)};break;case p({web:!0,node:!0}):a=function(e){var r=t.webFetch(gs(Ps("fetch"),[(c?Tme:Pme)(sm(e))])),a=u?pj.expression.ast(eme||(eme=h(['\n import("module").then(module => ',")\n "])),t.commonJS(pj.expression.ast(tme||(tme=h(["module.createRequire(import.meta.url)"]))),e)):d?pj.expression.ast(rme||(rme=h(['\n import("fs").then(\n fs => ',"\n ).then(",")\n "])),f(Ps("fs"),pj.expression.ast(ame||(ame=h(["new URL(",")"])),Tme(e))),t.nodeFsAsync()):pj.expression.ast(nme||(nme=h(['\n Promise.all([import("fs"), import("module")])\n .then(([fs, module]) =>\n ',"\n )\n .then(",")\n "])),f(Ps("fs"),pj.expression.ast(sme||(sme=h(["\n module.createRequire(import.meta.url).resolve(",")\n "])),e)),t.nodeFsAsync());return pj.expression.ast(ome||(ome=h(['\n typeof process === "object" && process.versions?.node\n ? ',"\n : ","\n "])),a,r)};break;case p({web:!0,node:!1,webIMR:!0}):a=function(e){return t.webFetch(gs(Ps("fetch"),[Tme(e)]))};break;case p({web:!0,node:!1,webIMR:!1}):a=function(e){return t.webFetch(gs(Ps("fetch"),[Pme(e)]))};break;case p({web:!1,node:!0,toCJS:!0}):n=function(e){return t.nodeFsSync(pj.expression.ast(ime||(ime=h(['\n require("fs").readFileSync(require.resolve(',"))\n "])),e))},a=function(e){return pj.expression.ast(dme||(dme=h(['\n require("fs").promises.readFile(require.resolve(',"))\n .then(",")\n "])),e,t.nodeFsAsync())};break;case p({web:!1,node:!0,toCJS:!1,supportIsomorphicCJS:!0}):n=function(e,r){return t.commonJS(pj.expression.ast(cme||(cme=h(["\n ","(import.meta.url)\n "])),xme(r,"createRequire","module")),e)};break;case p({web:!1,node:!0,toCJS:!1,nodeIMR:!0}):n=function(e,r){return t.nodeFsSync(pj.expression.ast(lme||(lme=h(["\n ","(\n new URL(",")\n )\n "])),xme(r,"readFileSync","fs"),Tme(e)))},a=function(e,r){return pj.expression.ast(ume||(ume=h(["\n ","\n .readFile(new URL(","))\n .then(",")\n "])),xme(r,"promises","fs"),Tme(e),t.nodeFsAsync())};break;case p({web:!1,node:!0,toCJS:!1,nodeIMR:!1}):n=function(e,r){return t.nodeFsSync(pj.expression.ast(pme||(pme=h(["\n ","(\n ","(import.meta.url)\n .resolve(",")\n )\n "])),xme(r,"readFileSync","fs"),xme(r,"createRequire","module"),e))},a=function(e,r){return t.webFetch(pj.expression.ast(fme||(fme=h(["\n ","\n .readFile(\n ","(import.meta.url)\n .resolve(",")\n )\n "])),xme(r,"promises","fs"),xme(r,"createRequire","module"),e))};break;default:throw new Error("Internal Babel error: unreachable code.")}null!=a||(a=n);var g=n;return n||(g=r?function(e,t){throw t.buildCodeFrameError("Cannot compile to CommonJS, since it would require top-level await.")}:a),{buildFetch:g,buildFetchAsync:function(e,t){return le(e)?pj.expression.ast(gme||(gme=h(["\n Promise.resolve().then(() => ",")\n "])),a(e,t)):pj.expression.ast(mme||(mme=h(["\n Promise.resolve(`${","}`).then((s) => ",")\n "],["\n Promise.resolve(\\`\\${","}\\`).then((s) => ",")\n "])),e,a(Ps("s"),t))},needsAwait:!n}}var kme,Cme=function(e,t){var r=e.types,a=e.template;e.assertVersion("*");var n,s,o=e.targets(),d={commonJS:t.uncheckedRequire?function(e,t){return r.callExpression(e,[t])}:null,webFetch:function(e){return a.expression.ast(Rme||(Rme=h(["",".then(r => r.json())"])),e)},nodeFsSync:function(e){return a.expression.ast(jme||(jme=h(["JSON.parse(",")"])),e)},nodeFsAsync:function(){return a.expression.ast(wme||(wme=h(["JSON.parse"])))}};function c(e){var t=e.key;return r.isIdentifier(t)?t.name:t.value}function l(e){return!(null==e||!e.some(function(e){return"type"===c(e)&&"json"===e.value.value}))}return{name:"transform-json-modules",inherits:aH,visitor:{Program:function(e){if("module"===e.node.sourceType){for(var t,r=function(e){var t=e.get("@babel/plugin-transform-modules-*");if("commonjs"===t)return null!=s?s:s=Ame(o,d,!0);if(null==t)return null!=n?n:n=Ame(o,d,!1);throw new Error("@babel/plugin-transform-json-modules can only be used when not compiling modules, or when compiling them to CommonJS.")}(this.file),u=[],p=i(e.get("body"));!(t=p()).done;){var f=t.value;if(f.isImportDeclaration()){var g=f.node.attributes||f.node.assertions;if(l(g)){if(null!=f.node.phase)throw f.buildCodeFrameError("JSON modules do not support phase modifiers.");if(g.length>1)throw(f.node.attributes?f.get("attributes"):f.get("assertions"))["type"===c(g[0])?1:0].buildCodeFrameError("Unknown attribute for JSON modules.");for(var m,y=void 0,b=!1,v=i(f.get("specifiers"));!(m=v()).done;){var x=m.value;if(x.isImportSpecifier())throw x.buildCodeFrameError("JSON modules do not support named imports.");y=x.node.local,b=x.isImportNamespaceSpecifier()}null!=y||(y=e.scope.generateUidIdentifier("_"));var R=r.buildFetch(f.node.source,e);b&&(R=r.needsAwait?a.expression.ast(Eme||(Eme=h(["\n ",".then(j => ({ default: j }))\n "])),R):a.expression.ast(Sme||(Sme=h(["{ default: "," }"])),R)),u.push({id:y,fetch:R}),f.remove()}}}if(0!==u.length){var j=function(e,t){if(0===e.length)return null;var r=[];if(1===e.length){var a=e[0].fetch;t&&(a=ko(a)),r.push(eo(e[0].id,a))}else if(t){var n=e.map(function(e){return e.id}),s=e.map(function(e){return e.fetch});r.push(eo(no(n),ko(pj.expression.ast(yme||(yme=h(["\n Promise.all(",")\n "])),os(s)))))}else for(var o,d=i(e);!(o=d()).done;){var c=o.value,l=c.id,u=c.fetch;r.push(eo(l,u))}return Zs("const",r)}(u,r.needsAwait);j&&e.unshiftContainer("body",j)}}}}}},_me=function(e){return e.assertVersion("*"),{name:"transform-literals",visitor:{NumericLiteral:function(e){var t=e.node;t.extra&&/^0[ob]/i.test(t.extra.raw)&&(t.extra=void 0)},StringLiteral:function(e){var t=e.node;t.extra&&/\\u/i.test(t.extra.raw)&&(t.extra=void 0)}}}},Ime=function(e){return e.assertVersion("*"),{name:"transform-member-expression-literals",visitor:{MemberExpression:{exit:function(e){var t=e.node,r=t.property;t.computed||!ie(r)||Hy(r.name)||(t.property=Cs(r.name),t.computed=!0)}}}}},Dme=pj.statement("\n define(MODULE_NAME, AMD_ARGUMENTS, function(IMPORT_NAMES) {\n })\n"),Ome=pj.statement('\n define(["require"], function(REQUIRE) {\n })\n');function Nme(e,t){var r=e.node,a=r.body,n=r.directives;e.node.directives=[],e.node.body=[];var s=e.pushContainer("body",t)[0].get("expression").get("arguments"),o=s[s.length-1].get("body");o.pushContainer("directives",n),o.pushContainer("body",a)}var Bme,Mme,Fme=function(e,t){var r,a,n;e.assertVersion("*");var s=t.allowTopLevelThis,o=t.strict,d=t.strictMode,c=t.importInterop,l=t.noInterop,u=null!=(r=e.assumption("constantReexports"))?r:t.loose,p=null!=(a=e.assumption("enumerableModuleMeta"))?a:t.loose;return{name:"transform-modules-amd",pre:function(){this.file.set("@babel/plugin-transform-modules-*","amd")},visitor:(n={},n["CallExpression"+(e.types.importExpression?"|ImportExpression":"")]=function(e,t){if(this.file.has("@babel/plugin-proposal-dynamic-import")&&(!e.isCallExpression()||e.get("callee").isImport())){var r=t.requireId,a=t.resolveId,n=t.rejectId;r||(r=e.scope.generateUidIdentifier("require"),t.requireId=r),a&&n||(a=e.scope.generateUidIdentifier("resolve"),n=e.scope.generateUidIdentifier("reject"),t.resolveId=a,t.rejectId=n);var s=Ps("imported");l||(s=ZB(this.file.path,s,"namespace")),e.replaceWith(OB(e.node,!1,!1,function(e){return pj.expression.ast(kme||(kme=h(["\n new Promise((",", ",") =>\n ","(\n [","],\n imported => ","(","),\n ","\n )\n )\n "])),a,n,r,e,sm(a),s,sm(n))}))}},n.Program={exit:function(e,r){var a=r.requireId;if(LN(e)){var n=[],f=[];a&&(n.push(Cs("require")),f.push(sm(a)));var g=YB(this.file.opts,t);g&&(g=Cs(g));var m=$B(e,{enumerableModuleMeta:p,constantReexports:u,strict:o,strictMode:d,allowTopLevelThis:s,importInterop:c,noInterop:l,filename:this.file.opts.filename}),h=m.meta,v=m.headers;TB(h)&&(n.push(Cs("exports")),f.push(Ps(h.exportName)));for(var x,R=i(h.source);!(x=R()).done;){var j=y(x.value,2),w=j[0],E=j[1];if(n.push(Cs(w)),f.push(Ps(E.name)),!PB(E)){var S=ZB(e,Ps(E.name),E.interop);if(S){var T=Rs(is("=",Ps(E.name),S));T.loc=E.loc,v.push(T)}}v.push.apply(v,b(eM(h,E,u)))}QB(v),e.unshiftContainer("body",v),Nme(e,Dme({MODULE_NAME:g,AMD_ARGUMENTS:os(n),IMPORT_NAMES:f}))}else a&&Nme(e,Ome({REQUIRE:sm(a)}))}},n)}},Lme=function(e){return pj.expression.ast(Bme||(Bme=h(["require(",")"])),e)},Ume=function(e,t){return gs(t.addHelper("interopRequireWildcard"),[Lme(e)])};var qme,Gme,Wme="@babel/plugin-transform-modules-commonjs/customWrapperPlugin";function Vme(e,t){var r=e.get(Wme);r||e.set(Wme,r=[]),r.push(t)}function Hme(e,t){if(e)for(var r,a=i(e);!(r=a()).done;){var n=t(r.value);if(null!=n)return n}}var zme=function(e,t){var r,a,n,s;e.assertVersion("*");var o=t.strictNamespace,d=void 0!==o&&o,c=t.mjsStrictNamespace,l=void 0===c?d:c,u=t.allowTopLevelThis,p=t.strict,f=t.strictMode,g=t.noInterop,m=t.importInterop,v=t.lazy,x=void 0!==v&&v,R=t.allowCommonJSExports,j=void 0===R||R,w=t.loose,E=void 0!==w&&w,S=null!=(r=e.assumption("constantReexports"))?r:E,T=null!=(a=e.assumption("enumerableModuleMeta"))?a:E,P=null!=(n=e.assumption("noIncompleteNsImportDetection"))&&n;if(!("boolean"==typeof x||"function"==typeof x||Array.isArray(x)&&x.every(function(e){return"string"==typeof e})))throw new Error(".lazy must be a boolean, array of strings, or a function");if("boolean"!=typeof d)throw new Error(".strictNamespace must be a boolean, or undefined");if("boolean"!=typeof l)throw new Error(".mjsStrictNamespace must be a boolean, or undefined");var A=function(e){return pj.expression.ast(qme||(qme=h(['\n (function(){\n throw new Error(\n "The CommonJS \'" + "','" + "\' variable is not available in ES6 modules." +\n "Consider setting setting sourceType:script or sourceType:unambiguous in your " +\n "Babel config for this file.");\n })()\n '])),e)},k={ReferencedIdentifier:function(e){var t=e.node.name;if("module"===t||"exports"===t){var r=e.scope.getBinding(t);this.scope.getBinding(t)!==r||e.parentPath.isObjectProperty({value:e.node})&&e.parentPath.parentPath.isObjectPattern()||e.parentPath.isAssignmentExpression({left:e.node})||e.isAssignmentExpression({left:e.node})||e.replaceWith(A(t))}},UpdateExpression:function(e){var t=e.get("argument");if(t.isIdentifier()){var r=t.node.name;if("module"===r||"exports"===r){var a=e.scope.getBinding(r);this.scope.getBinding(r)===a&&e.replaceWith(is(e.node.operator[0]+"=",t.node,A(r)))}}},AssignmentExpression:function(e){var t=this,r=e.get("left");if(r.isIdentifier()){var a=r.node.name;if("module"!==a&&"exports"!==a)return;var n=e.scope.getBinding(a);if(this.scope.getBinding(a)!==n)return;var s=e.get("right");s.replaceWith(Vs([s.node,A(a)]))}else if(r.isPattern()){var o=r.getOuterBindingIdentifiers(),i=Object.keys(o).find(function(r){return("module"===r||"exports"===r)&&t.scope.getBinding(r)===e.scope.getBinding(r)});if(i){var d=e.get("right");d.replaceWith(Vs([d.node,A(i)]))}}}};return{name:"transform-modules-commonjs",pre:function(){this.file.set("@babel/plugin-transform-modules-*","commonjs"),x&&Vme(this.file,function(e){return{name:"@babel/plugin-transform-modules-commonjs/lazy",version:"7.28.6",getWrapperPayload:function(t,r){return PB(r)||r.reexportAll?null:!0===e?t.includes(".")?null:"lazy/function":Array.isArray(e)?e.includes(t)?"lazy/function":null:"function"==typeof e?e(t)?"lazy/function":null:void 0},buildRequireWrapper:function(e,t,r,a){if("lazy/function"===r)return!!a&&pj.statement.ast(Mme||(Mme=h(["\n function ","() {\n const data = ",";\n "," = function(){ return data; };\n return data;\n }\n "])),e,t,e)},wrapReference:function(e,t){if("lazy/function"===t)return gs(e,[])}}}(x))},visitor:(s={},s["CallExpression"+(e.types.importExpression?"|ImportExpression":"")]=function(e){if(this.file.has("@babel/plugin-proposal-dynamic-import")&&(!e.isCallExpression()||et(e.node.callee))){var t=e.scope;do{t.rename("require")}while(t=t.parent);!function(e,t,r){var a=t?Lme:Ume;e.replaceWith(OB(e.node,!0,!1,function(e){return a(e,r)}))}(e,g,this.file)}},s.Program={exit:function(e,r){if(LN(e)){e.scope.rename("exports"),e.scope.rename("module"),e.scope.rename("require"),e.scope.rename("__filename"),e.scope.rename("__dirname"),j||e.traverse(k,{scope:e.scope});var a=YB(this.file.opts,t);a&&(a=Cs(a));for(var n,s=function(e){var t=e.get(Wme);return{getWrapperPayload:function(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];return Hme(t,function(e){return null==e.getWrapperPayload?void 0:e.getWrapperPayload.apply(e,r)})},wrapReference:function(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];return Hme(t,function(e){return null==e.wrapReference?void 0:e.wrapReference.apply(e,r)})},buildRequireWrapper:function(){for(var e=arguments.length,r=new Array(e),a=0;a<e;a++)r[a]=arguments[a];return Hme(t,function(e){return null==e.buildRequireWrapper?void 0:e.buildRequireWrapper.apply(e,r)})}}}(this.file),o=$B(e,{exportName:"exports",constantReexports:S,enumerableModuleMeta:T,strict:p,strictMode:f,allowTopLevelThis:u,noInterop:g,importInterop:m,wrapReference:s.wrapReference,getWrapperPayload:s.getWrapperPayload,esNamespaceOnly:"string"==typeof r.filename&&r.filename.endsWith(".mjs")?l:d,noIncompleteNsImportDetection:P,filename:this.file.opts.filename}),c=o.meta,v=o.headers,R=i(c.source);!(n=R()).done;){var w=y(n.value,2),E=w[0],A=w[1],C=gs(Ps("require"),[Cs(E)]),_=void 0;if(PB(A)){if(x&&"function"===A.wrap)throw new Error("Assertion failure");_=Rs(C)}else{var I=ZB(e,C,A.interop)||C;if(A.wrap){var D=s.buildRequireWrapper(A.name,I,A.wrap,A.referenced);if(!1===D)continue;_=D}null!=_||(_=pj.statement.ast(Gme||(Gme=h(["\n var "," = ",";\n "])),A.name,I))}_.loc=A.loc,v.push(_),v.push.apply(v,b(eM(c,A,S,s.wrapReference)))}QB(v),e.unshiftContainer("body",v),e.get("body").forEach(function(e){v.includes(e.node)&&e.isVariableDeclaration()&&e.scope.registerDeclaration(e)})}}},s)}},Kme=pj.statement('\n SYSTEM_REGISTER(MODULE_NAME, SOURCES, function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n "use strict";\n BEFORE_BODY;\n return {\n setters: SETTERS,\n execute: EXECUTE,\n };\n });\n'),Xme=pj.statement('\n for (var KEY in TARGET) {\n if (KEY !== "default" && KEY !== "__esModule") EXPORT_OBJ[KEY] = TARGET[KEY];\n }\n');function Jme(e,t){if("Identifier"===e.type)return e.name;if("StringLiteral"===e.type){var r=e.value;return Lr(r)||t.add(r),r}throw new Error("Expected export specifier to be either Identifier or StringLiteral, got "+e.type)}function Yme(e,t,r,a,n,s){var o=[];if(n){var i=e.scope.generateUid("exportObj");o.push(Zs("var",[eo(Ps(i),Ls([]))])),o.push(Xme({KEY:e.scope.generateUidIdentifier("key"),EXPORT_OBJ:Ps(i),TARGET:n}));for(var d=0;d<r.length;d++){var c=r[d],l=a[d];o.push(Rs(is("=",Bs(Ps(i),Ps(c)),l)))}o.push(Rs(gs(t,[Ps(i)])))}else if(1===r.length)o.push(Rs(gs(t,[Cs(r[0]),a[0]])));else{for(var u=[],p=0;p<r.length;p++){var f=r[p],g=a[p];u.push(qs(s.has(f)?Cs(f):Ps(f),g))}o.push(Rs(gs(t,[Ls(u)])))}return o}var $me=function(e,t){var r;e.assertVersion("*");var a=t.systemGlobal,n=void 0===a?"System":a,s=t.allowTopLevelThis,o=void 0!==s&&s,d=new WeakSet,c={"AssignmentExpression|UpdateExpression":function(e){if(!d.has(e.node)){d.add(e.node);var t=e.isAssignmentExpression()?e.get("left"):e.get("argument");if(t.isObjectPattern()||t.isArrayPattern()){for(var r=[e.node],a=0,n=Object.keys(t.getBindingIdentifiers());a<n.length;a++){var s=n[a];if(this.scope.getBinding(s)!==e.scope.getBinding(s))return;var o=this.exports[s];if(o)for(var c,l=i(o);!(c=l()).done;){var u=c.value;r.push(this.buildCall(u,Ps(s)).expression)}}e.replaceWith(Vs(r))}else if(t.isIdentifier()){var p=t.node.name;if(this.scope.getBinding(p)===e.scope.getBinding(p)){var f=this.exports[p];if(f){var g=e.node,m=Pe(g,{prefix:!1});m&&(g=ds(g.operator[0],$s("+",sm(g.argument)),_s(1)));for(var y,h=i(f);!(y=h()).done;){var b=y.value;g=this.buildCall(b,g).expression}m&&(g=Vs([g,e.node])),e.replaceWith(g)}}}}}};return{name:"transform-modules-systemjs",pre:function(){this.file.set("@babel/plugin-transform-modules-*","systemjs")},visitor:(r={},r["CallExpression"+(e.types.importExpression?"|ImportExpression":"")]=function(e,t){if(!e.isCallExpression()||et(e.node.callee)){if(e.isCallExpression())this.file.has("@babel/plugin-proposal-dynamic-import")||console.warn("WARNING: Dynamic import() transformation must be enabled using the\n @babel/plugin-transform-dynamic-import plugin. Babel 8 will\n no longer transform import() without using that plugin.\n");else if(!this.file.has("@babel/plugin-proposal-dynamic-import"))throw new Error("ERROR: Dynamic import() transformation must be enabled using the\n @babel/plugin-transform-dynamic-import plugin. Babel 8\n no longer transforms import() without using that plugin.\n");e.replaceWith(OB(e.node,!1,!0,function(e){return gs(Bs(Ps(t.contextIdent),Ps("import")),[e])}))}},r.MetaProperty=function(e,t){"import"===e.node.meta.name&&"meta"===e.node.property.name&&e.replaceWith(Bs(Ps(t.contextIdent),Ps("meta")))},r.ReferencedIdentifier=function(e,t){"__moduleName"!==e.node.name||e.scope.hasBinding("__moduleName")||e.replaceWith(Bs(Ps(t.contextIdent),Ps("id")))},r.Program={enter:function(e,t){t.contextIdent=e.scope.generateUid("context"),t.stringSpecifiers=new Set,o||rB(e)},exit:function(e,r){var a=e.scope,s=a.generateUid("export"),o=r.contextIdent,d=r.stringSpecifiers,l=Object.create(null),u=[],p=[],f=[],g=[],m=[],y=[];function h(e,t){l[e]=l[e]||[],l[e].push(t)}function v(e,t,r){var a;u.forEach(function(t){t.key===e&&(a=t)}),a||u.push(a={key:e,imports:[],exports:[]}),a[t]=a[t].concat(r)}function x(e,t){return Rs(gs(Ps(s),[Cs(e),t]))}for(var R,j=[],w=[],E=i(e.get("body"));!(R=E()).done;){var S=R.value;if(S.isFunctionDeclaration())p.push(S.node),y.push(S);else if(S.isClassDeclaration())m.push(sm(S.node.id)),S.replaceWith(Rs(is("=",sm(S.node.id),by(S.node))));else if(S.isVariableDeclaration())S.node.kind="var";else if(S.isImportDeclaration()){v(S.node.source.value,"imports",S.node.specifiers);for(var T=0,P=Object.keys(S.getBindingIdentifiers());T<P.length;T++){var A=P[T];a.removeBinding(A),m.push(Ps(A))}S.remove()}else if(S.isExportAllDeclaration())v(S.node.source.value,"exports",S.node),S.remove();else if(S.isExportDefaultDeclaration()){var k=S.node.declaration;if(Ne(k)){var C=k.id;C?(j.push("default"),w.push(a.buildUndefinedNode()),m.push(sm(C)),h(C.name,"default"),S.replaceWith(Rs(is("=",sm(C),by(k))))):(j.push("default"),w.push(by(k)),y.push(S))}else if(se(k)){var _=k.id;_?(p.push(k),j.push("default"),w.push(sm(_)),h(_.name,"default")):(j.push("default"),w.push(by(k))),y.push(S)}else S.replaceWith(x("default",k))}else if(S.isExportNamedDeclaration()){var I=S.node.declaration;if(I)if(S.replaceWith(I),nr(I)){var D=I.id.name;h(D,D),p.push(I),j.push(D),w.push(sm(I.id)),y.push(S)}else if(pr(I)){var O=I.id.name;j.push(O),w.push(a.buildUndefinedNode()),m.push(sm(I.id)),S.replaceWith(Rs(is("=",sm(I.id),by(I)))),h(O,O)}else{Ae(I)&&(I.kind="var");for(var N=0,B=Object.keys(Iy(I));N<B.length;N++){var M=B[N];h(M,M)}}else{var F=S.node.specifiers;if(null!=F&&F.length)if(S.node.source)v(S.node.source.value,"exports",F),S.remove();else{for(var L,U=[],q=i(F);!(L=q()).done;){var G=L.value,W=G.local,V=G.exported,H=a.getBinding(W.name),z=Jme(V,d);H&&se(H.path.node)?(j.push(z),w.push(sm(W))):H||U.push(x(z,W)),h(W.name,z)}S.replaceWithMultiple(U)}else S.remove()}}}u.forEach(function(t){for(var r,n=[],o=a.generateUid(t.key),c=i(t.imports);!(r=c()).done;){var l=r.value;if(We(l)?n.push(Rs(is("=",l.local,Ps(o)))):Ge(l)&&(l=bo(l.local,Ps("default"))),Ve(l)){var u=l.imported;n.push(Rs(is("=",l.local,Bs(Ps(o),l.imported,"StringLiteral"===u.type))))}}if(t.exports.length){for(var p,m=[],y=[],h=!1,v=i(t.exports);!(p=v()).done;){var x=p.value;if(Be(x))h=!0;else if(Le(x)){var R=Jme(x.exported,d);m.push(R),y.push(Bs(Ps(o),x.local,le(x.local)))}}n.push.apply(n,b(Yme(e,Ps(s),m,y,h?Ps(o):null,d)))}g.push(Cs(t.key)),f.push(Ts(null,[Ps(o)],ps(n)))});var K=YB(this.file.opts,t);K&&(K=Cs(K)),e.scope.hoistVariables(function(e,t){if(m.push(e),!t&&e.name in l)for(var r,a=i(l[e.name]);!(r=a()).done;){var n=r.value;j.push(n),w.push(tm())}}),m.length&&p.unshift(Zs("var",m.map(function(e){return eo(e)}))),j.length&&p.push.apply(p,b(Yme(e,Ps(s),j,w,null,d))),e.traverse(c,{exports:l,buildCall:x,scope:a});for(var X=0,J=y;X<J.length;X++){J[X].remove()}var Y=!1;e.traverse({AwaitExpression:function(e){Y=!0,e.stop()},Function:function(e){e.skip()},noScope:!0}),e.node.body=[Kme({SYSTEM_REGISTER:Bs(Ps(n),Ps("register")),BEFORE_BODY:p,MODULE_NAME:K,SETTERS:os(f),EXECUTE:Ts(null,[],ps(e.node.body),!1,Y),SOURCES:os(g),EXPORT_IDENTIFIER:Ps(s),CONTEXT_IDENTIFIER:Ps(o)})],e.requeue(e.get("body.0"))}},r)}},Qme=pj("\n GLOBAL_REFERENCE = GLOBAL_REFERENCE || {}\n"),Zme=pj('\n (function (global, factory) {\n if (typeof define === "function" && define.amd) {\n define(MODULE_NAME, AMD_ARGUMENTS, factory);\n } else if (typeof exports !== "undefined") {\n factory(COMMONJS_ARGUMENTS);\n } else {\n var mod = { exports: {} };\n factory(BROWSER_ARGUMENTS);\n\n GLOBAL_TO_ASSIGN;\n }\n })(\n typeof globalThis !== "undefined" ? globalThis\n : typeof self !== "undefined" ? self\n : this,\n function(IMPORT_NAMES) {\n })\n'),eye=function(e,t){var r,a;e.assertVersion("*");var n=t.globals,s=t.exactGlobals,o=t.allowTopLevelThis,d=t.strict,c=t.strictMode,l=t.noInterop,u=t.importInterop,p=null!=(r=e.assumption("constantReexports"))?r:t.loose,f=null!=(a=e.assumption("enumerableModuleMeta"))?a:t.loose;function g(e,t,r,a){var n=a?a.value:yB(r,hB(r)),s=Bs(Ps("global"),Ps(my(n))),o=[];if(t){var i=e[n];if(i){o=[];var d=i.split(".");s=d.slice(1).reduce(function(e,t){return o.push(Qme({GLOBAL_REFERENCE:sm(e)})),Bs(e,Ps(t))},Bs(Ps("global"),Ps(d[0])))}}return o.push(Rs(is("=",s,Bs(Ps("mod"),Ps("exports"))))),o}function m(e,t,r){var a;if(t){var n=e[r];a=n?n.split(".").reduce(function(e,t){return Bs(e,Ps(t))},Ps("global")):Bs(Ps("global"),Ps(my(r)))}else{var s=yB(r,hB(r)),o=e[s]||s;a=Bs(Ps("global"),Ps(my(o)))}return a}return{name:"transform-modules-umd",visitor:{Program:{exit:function(e){if(LN(e)){var r,a=n||{},h=YB(this.file.opts,t);h&&(r=Cs(h));var v=$B(e,{constantReexports:p,enumerableModuleMeta:f,strict:d,strictMode:c,allowTopLevelThis:o,noInterop:l,importInterop:u,filename:this.file.opts.filename}),x=v.meta,R=v.headers,j=[],w=[],E=[],S=[];TB(x)&&(j.push(Cs("exports")),w.push(Ps("exports")),E.push(Bs(Ps("mod"),Ps("exports"))),S.push(Ps(x.exportName)));for(var T,P=i(x.source);!(T=P()).done;){var A=y(T.value,2),k=A[0],C=A[1];if(j.push(Cs(k)),w.push(gs(Ps("require"),[Cs(k)])),E.push(m(a,s,k)),S.push(Ps(C.name)),!PB(C)){var _=ZB(e,Ps(C.name),C.interop);if(_){var I=Rs(is("=",Ps(C.name),_));I.loc=x.loc,R.push(I)}}R.push.apply(R,b(eM(x,C,p)))}QB(R),e.unshiftContainer("body",R);var D=e.node,O=D.body,N=D.directives;e.node.directives=[],e.node.body=[];var B=e.pushContainer("body",[Zme({MODULE_NAME:r,AMD_ARGUMENTS:os(j),COMMONJS_ARGUMENTS:w,BROWSER_ARGUMENTS:E,IMPORT_NAMES:S,GLOBAL_TO_ASSIGN:g(a,s,this.filename||"unknown",r)})])[0].get("expression.arguments")[1].get("body");B.pushContainer("directives",N),B.pushContainer("body",O)}}}}}},tye=function(e,t){var r=t.runtime;if(void 0!==r&&"boolean"!=typeof r)throw new Error("The 'runtime' option must be boolean");return Vpe({name:"transform-named-capturing-groups-regex",feature:"namedCaptureGroups",options:{runtime:r}})},rye=function(e){return e.assertVersion("*"),{name:"transform-new-target",visitor:{MetaProperty:function(e){var t=e.get("meta"),r=e.get("property"),a=e.scope;if(t.isIdentifier({name:"new"})&&r.isIdentifier({name:"target"})){var n=e.findParent(function(e){return!!e.isClass()||!(!e.isFunction()||e.isArrowFunctionExpression())&&!e.isClassMethod({kind:"constructor"})});if(!n)throw e.buildCodeFrameError("new.target must be under a (non-arrow) function or a class.");var s=n.node;if(cr(s))return void e.replaceWith(a.buildUndefinedNode());var o=Bs({type:"ThisExpression"},Ps("constructor"));if(n.isClass())return void e.replaceWith(o);if(s.id)for(var i=e.scope,d=s.id.name;i!==n.parentPath.scope;)i.hasOwnBinding(d)&&!i.bindingIdentifierEquals(d,s.id)&&i.rename(d),i=i.parent;else s.id=a.generateUidIdentifier("target");e.replaceWith(ys(ds("instanceof",{type:"ThisExpression"},sm(s.id)),o,a.buildUndefinedNode()))}}}}},aye=function(e){return e.assertVersion("*"),{name:"transform-object-assign",visitor:{CallExpression:function(e,t){e.get("callee").matchesPattern("Object.assign")&&(e.node.callee=t.addHelper("extends"))}}}};var nye=function(e){e.assertVersion("*");var t=new Set;return{name:"transform-object-super",visitor:{Loop:{exit:function(e){t.forEach(function(r){r.scopePath===e&&(e.scope.push({id:r.id,kind:"let"}),e.scope.crawl(),e.requeue(),t.delete(r))})}},ObjectExpression:function(e,r){var a,n=function(){return a=a||e.scope.generateUidIdentifier("obj")};if(e.get("properties").forEach(function(e){e.isMethod()&&function(e,t,r){new cK({getObjectRef:t,methodPath:e,file:r}).replace()}(e,n,r.file)}),a){var s=e.findParent(function(e){return e.isFunction()||e.isProgram()||e.isLoop()});s.isLoop()?t.add({scopePath:s,id:sm(a)}):e.scope.push({id:sm(a),kind:"var"}),e.replaceWith(is("=",sm(a),e.node))}}}}},sye=function(e){return e.assertVersion("*"),{name:"transform-object-set-prototype-of-to-assign",visitor:{CallExpression:function(e,t){e.get("callee").matchesPattern("Object.setPrototypeOf")&&(e.node.callee=t.addHelper("defaults"))}}}},oye=function(e){return e.assertVersion("*"),{name:"transform-property-literals",visitor:{ObjectProperty:{exit:function(e){var t=e.node,r=t.key;t.computed||!ie(r)||Hy(r.name)||(t.key=Cs(r.name))}}}}};function iye(e){var t=Ls([]);return Object.keys(e).forEach(function(r){var a=e[r];a.configurable=Ds(!0),a.enumerable=Ds(!0);var n=Ls([]),s=qs(a._key,n,a._computed);Object.keys(a).forEach(function(e){var t=a[e];if(!e.startsWith("_")){var r=qs(Ps(e),t);mm(r,t),ym(t),n.properties.push(r)}}),t.properties.push(s)}),t}var dye,cye=function(e){return e.assertVersion("*"),{name:"transform-property-mutators",visitor:{ObjectExpression:function(e){var t,r=e.node,a=r.properties.filter(function(e){return!(ve(e)&&!e.computed&&("get"===e.kind||"set"===e.kind))||(function(e,t){var r,a=Ty(t),n=null!=(r=e[a])?r:e[a]={_inherits:[],_key:t.key};n._inherits.push(t);var s=Ts(null,t.params,t.body,t.generator,t.async);s.returnType=t.returnType,mm(s,t),n[t.kind]=s}(null!=t?t:t={},e),!1)});void 0!==t&&(r.properties=a,e.replaceWith(gs(Bs(Ps("Object"),Ps("defineProperties")),[r,iye(t)])))}}}},lye=function(e){function t(e){return!Xe(e)&&le(hy(e,e.key),{value:"__proto__"})}function r(e){var t=e;return me(t)&&le(hy(t,t.property),{value:"__proto__"})}function a(e,t,r){return Rs(gs(r.addHelper("defaults"),[t,e.right]))}return e.assertVersion("*"),{name:"transform-proto-to-assign",visitor:{AssignmentExpression:function(e,t){var n=t.file;if(r(e.node.left)){var s=[],o=e.node.left.object,i=e.scope.maybeGenerateMemoised(o);i&&s.push(Rs(is("=",i,o))),s.push(a(e.node,sm(i||o),n)),i&&s.push(sm(i)),e.replaceWithMultiple(s)}},ExpressionStatement:function(e,t){var n=t.file,s=e.node.expression;$(s,{operator:"="})&&r(s.left)&&e.replaceWith(a(s,s.left.object,n))},ObjectExpression:function(e,r){for(var a,n=r.file,s=e.node,o=s.properties,i=0;i<o.length;i++){var d=o[i];if(t(d)){a=d.value,o.splice(i,1);break}}if(a){var c=[Ls([]),a];s.properties.length&&c.push(s),e.replaceWith(gs(n.addHelper("extends"),c))}}}}},uye=function(e,t){e.assertVersion("*");var r=t.allowMutablePropsOnTags;if(null!=r&&!Array.isArray(r))throw new Error(".allowMutablePropsOnTags must be an array, null, or undefined.");var a=new WeakMap;function n(e,t){if(Pt(e,{name:"this"})||Pt(e,{name:"arguments"})||Pt(e,{name:"super"})||Pt(e,{name:"new"})){var r=t.path;return r.isFunctionParent()&&!r.isArrowFunctionExpression()}return t.hasOwnBinding(e.name)}function s(e){var t=e.path;return t.isFunctionParent()||t.isLoop()||t.isProgram()}var o={ReferencedIdentifier:function(e,t){for(var r=e.node,a=e.scope;a!==t.jsxScope;){if(n(r,a))return;a=a.parent}for(;a;){if(a===t.targetScope)return;if(n(r,a))break;a=a.parent}t.targetScope=function(e){for(;!s(e);)e=e.parent;return e}(a)}},i={enter:function(e,t){var r,a=function(){t.isImmutable=!1,e.stop()},n=function(){e.skip()};if(e.isJSXClosingElement())n();else if(e.isJSXIdentifier({name:"ref"})&&e.parentPath.isJSXAttribute({name:e.node}))a();else if(!(e.isJSXIdentifier()||e.isJSXMemberExpression()||e.isJSXNamespacedName()||e.isImmutable())){if(e.isIdentifier()){var s=e.scope.getBinding(e.node.name);if(null!=s&&s.constant)return}var i=t.mutablePropsAllowed;if(i&&e.isFunction())return e.traverse(o,t),void n();if(e.isPure()){var d=e.evaluate();if(d.confident){var c=d.value;if(i||null===c||"object"!=typeof c&&"function"!=typeof c)return void n()}else if(null!=(r=d.deopt)&&r.isIdentifier())return;a()}else a()}}},d=Object.assign({},i,o);return{name:"transform-react-constant-elements",visitor:{"JSXElement|JSXFragment":function(e){if(!a.has(e.node)){var t,n,o=!1;if(e.isJSXElement()){if(t=e.node.openingElement.name,null!=r){for(var i=t;At(i);)i=i.property;var c=i.name;o=r.includes(c)}}else t=e.node;for(var l=e;!n&&l.parentPath.isJSX();)l=l.parentPath,n=a.get(l.node);null!=n||(n=e.scope),a.set(e.node,n);var u={isImmutable:!0,mutablePropsAllowed:o,jsxScope:n,targetScope:e.scope.getProgramParent()};if(e.traverse(d,u),u.isImmutable){for(var p=u.targetScope,f=n;;){if(p===f)return;if(s(f))break;if(!(f=f.parent))throw new Error("Internal @babel/plugin-transform-react-constant-elements error: targetScope must be an ancestor of jsxScope. This is a Babel bug, please report it.")}var g=e.scope.generateUidBasedOnNode(t);p.push({id:Ps(g)}),a.set(e.node,p);var m=pj.expression.ast(dye||(dye=h(["\n "," || ("," = ",")\n "])),Ps(g),Ps(g),e.node);(e.parentPath.isJSXElement()||e.parentPath.isJSXAttribute()||e.parentPath.isJSXFragment())&&(m=rd(m)),e.replaceWith(m)}}}}}},pye=function(e){function t(e,t){for(var r=t.arguments[0].properties,a=!0,n=0;n<r.length;n++){var s=r[n];if(!Xe(s))if(le(hy(s),{value:"displayName"})){a=!1;break}}a&&r.unshift(qs(Ps("displayName"),Cs(e)))}e.assertVersion("*");var r=Sr("React.createClass");function a(e){if(!e||!Z(e))return!1;if(!r(e.callee)&&!ie(e.callee,{name:"createReactClass"}))return!1;var t=e.arguments;return 1===t.length&&!!be(t[0])}return{name:"transform-react-display-name",visitor:{ExportDefaultDeclaration:function(e,r){var n=e.node;if(a(n.declaration)){var s=r.filename||"unknown",o=bB.basename(s,bB.extname(s));"index"===o&&(o=bB.basename(bB.dirname(s))),t(o,n.declaration)}},CallExpression:function(e){var r,n=e.node;a(n)&&(e.find(function(e){if(e.isAssignmentExpression())r=e.node.left;else if(e.isObjectProperty())r=e.node.key;else if(e.isVariableDeclarator())r=e.node.id;else if(e.isStatement())return!0;if(r)return!0}),r&&(me(r)&&(r=r.property),ie(r)&&t(r.name,n)))}}}},fye=Jy,gye=fye.booleanLiteral,mye=fye.callExpression,yye=fye.identifier,hye=fye.inherits,bye=fye.isIdentifier,vye=fye.isJSXExpressionContainer,xye=fye.isJSXIdentifier,Rye=fye.isJSXMemberExpression,jye=fye.isJSXNamespacedName,wye=fye.isJSXSpreadAttribute,Eye=fye.isObjectExpression,Sye=fye.isReferenced,Tye=fye.isStringLiteral,Pye=fye.isValidIdentifier,Aye=fye.memberExpression,kye=fye.nullLiteral,Cye=fye.objectExpression,_ye=fye.objectProperty,Iye=fye.react,Dye=fye.spreadElement,Oye=fye.stringLiteral,Nye=fye.thisExpression;function Bye(e){var t={JSXNamespacedName:function(t){if(e.throwIfNamespace)throw t.buildCodeFrameError("Namespace tags are not supported by default. React's JSX doesn't support namespace tags. You can set `throwIfNamespace: false` to bypass this warning.")},JSXSpreadChild:function(e){throw e.buildCodeFrameError("Spread children are not supported in React.")}};return t.JSXElement={exit:function(t,s){var o=function(t,s){if(e.filter&&!e.filter(t.node,s))return;var o=t.get("openingElement");t.node.children=Iye.buildChildren(t.node);var i,d=r(o.node.name,o.node),c=[];bye(d)?i=d.name:Tye(d)&&(i=d.value);var l={tagExpr:d,tagName:i,args:c,pure:!1};e.pre&&e.pre(l,s);var u,p=o.node.attributes;u=p.length?function(e,t){var r=[],s=[],o=t.opts.useSpread,i=void 0!==o&&o;if("boolean"!=typeof i)throw new Error("transform-react-jsx currently only accepts a boolean option for useSpread (defaults to false)");var d,c=t.opts.useBuiltIns||!1;if("boolean"!=typeof c)throw new Error("transform-react-jsx currently only accepts a boolean option for useBuiltIns (defaults to false)");if(i&&c)throw new Error("transform-react-jsx currently only accepts useBuiltIns or useSpread but not both");if(i){var l=e.map(a);return Cye(l)}for(;e.length;){var u=e.shift();wye(u)?(r=n(r,s),s.push(u.argument)):r.push(a(u))}if(n(r,s),1===s.length)d=s[0];else{Eye(s[0])||s.unshift(Cye([]));var p=c?Aye(yye("Object"),yye("assign")):t.addHelper("extends");d=mye(p,s)}return d}(p,s):kye();c.push.apply(c,[u].concat(b(t.node.children))),e.post&&e.post(l,s);var f=l.call||mye(l.callee,c);l.pure&&DH(f);return f}(t,s);o&&t.replaceWith(hye(o,t.node))}},t.JSXFragment={exit:function(t,r){if(e.compat)throw t.buildCodeFrameError("Fragment tags are only supported in React 16 and up.");var a=function(t,r){if(e.filter&&!e.filter(t.node,r))return;t.node.children=Iye.buildChildren(t.node);var a=[],n=null,s={tagExpr:r.get("jsxFragIdentifier")(),tagName:n,args:a,pure:!1};e.pre&&e.pre(s,r);a.push.apply(a,[kye()].concat(b(t.node.children))),e.post&&e.post(s,r);r.set("usedFragment",!0);var o=s.call||mye(s.callee,a);s.pure&&DH(o);return o}(t,r);a&&t.replaceWith(hye(a,t.node))}},t;function r(e,t){return xye(e)?"this"===e.name&&Sye(e,t)?Nye():Pye(e.name,!1)?(e.type="Identifier",e):Oye(e.name):Rye(e)?Aye(r(e.object,e),r(e.property,e)):jye(e)?Oye(e.namespace.name+":"+e.name.name):e}function a(e){if(wye(e))return Dye(e.argument);var t,r=function(e){return vye(e)?e.expression:e}(e.value||gye(!0));Tye(r)&&!vye(e.value)&&(r.value=r.value.replace(/\n\s+/g," "),null==(t=r.extra)||delete t.raw);return jye(e.name)?e.name=Oye(e.name.namespace.name+":"+e.name.name.name):Pye(e.name.name,!1)?e.name.type="Identifier":e.name=Oye(e.name.name),hye(_ye(e.name,r),e)}function n(e,t){return e.length?(t.push(Cye(e)),[]):e}}var Mye,Fye=function(e){function t(e,t){return wt(e)&&Pt(e.name,{name:t})}e.assertVersion("*");var r=Bye({filter:function(e){return"JSXElement"===e.type&&!function(e){for(var r=0;r<e.length;r++){var a=e[r];if(_t(a))return!0;if(t(a,"ref"))return!0}return!1}(e.openingElement.attributes)},pre:function(e){var t=e.tagName,r=e.args;Xy.isCompatTag(t)?r.push(Cs(t)):r.push(e.tagExpr)},post:function(e,t){e.callee=t.addHelper("jsx");var r=e.args[1],a=!1;if(be(r)){var n=r.properties.findIndex(function(e){return ie(e.key,{name:"key"})});n>-1&&(e.args.splice(2,0,r.properties[n].value),r.properties.splice(n,1),a=!0)}else pe(r)&&e.args.splice(1,1,Ls([]));!a&&e.args.length>2&&e.args.splice(2,0,$s("void",_s(0))),e.pure=!0}});return{name:"transform-react-inline-elements",visitor:r}},Lye="react",Uye="React.createElement",qye="React.Fragment",Gye=/^\s*(?:\*\s*)?@jsxImportSource\s+(\S+)\s*$/m,Wye=/^\s*(?:\*\s*)?@jsxRuntime\s+(\S+)\s*$/m,Vye=/^\s*(?:\*\s*)?@jsx\s+(\S+)\s*$/m,Hye=/^\s*(?:\*\s*)?@jsxFrag\s+(\S+)\s*$/m,zye=function(e,t){return e.get("@babel/plugin-react-jsx/"+t)},Kye=function(e,t,r){return e.set("@babel/plugin-react-jsx/"+t,r)};function Xye(e){var t=e.name,r=e.development;return function(e,a){var n=a.pure,s=a.throwIfNamespace,o=void 0===s||s,d=a.filter,c=a.runtime,l=void 0===c?r?"automatic":"classic":c,u=a.importSource,p=void 0===u?Lye:u,f=a.pragma,g=void 0===f?Uye:f,m=a.pragmaFrag,y=void 0===m?qye:m,v=a.useSpread,x=void 0!==v&&v,R=a.useBuiltIns,j=void 0!==R&&R;if("classic"===l){if("boolean"!=typeof x)throw new Error("transform-react-jsx currently only accepts a boolean option for useSpread (defaults to false)");if("boolean"!=typeof j)throw new Error("transform-react-jsx currently only accepts a boolean option for useBuiltIns (defaults to false)");if(x&&j)throw new Error("transform-react-jsx currently only accepts useBuiltIns or useSpread but not both")}var w=null;return{name:t,inherits:oH,visitor:{JSXNamespacedName:function(e){if(o)throw e.buildCodeFrameError("Namespace tags are not supported by default. React's JSX doesn't support namespace tags. You can set `throwIfNamespace: false` to bypass this warning.")},JSXSpreadChild:function(e){throw e.buildCodeFrameError("Spread children are not supported in React.")},Program:{enter:function(e,t){var n=t.file,s=l,o=p,d=g,c=y,u=!!a.importSource,f=!!a.pragma,m=!!a.pragmaFrag;if(n.ast.comments)for(var b,v=i(n.ast.comments);!(b=v()).done;){var x=b.value,R=Gye.exec(x.value);R&&(o=R[1],u=!0);var j=Wye.exec(x.value);j&&(s=j[1]);var w=Vye.exec(x.value);w&&(d=w[1],f=!0);var E=Hye.exec(x.value);E&&(c=E[1],m=!0)}if(Kye(t,"runtime",s),"classic"===s){if(u)throw e.buildCodeFrameError("importSource cannot be set when runtime is classic.");var S=Jye(d),T=Jye(c);Kye(t,"id/createElement",function(){return sm(S)}),Kye(t,"id/fragment",function(){return sm(T)}),Kye(t,"defaultPure",d===Uye)}else{if("automatic"!==s)throw e.buildCodeFrameError('Runtime must be either "classic" or "automatic".');if(f||m)throw e.buildCodeFrameError("pragma and pragmaFrag cannot be set when runtime is automatic.");var P=function(a,n){return Kye(t,a,function(e,t,a,n){return function(){var s=function(e,t){switch(t){case"Fragment":return e+"/"+(r?"jsx-dev-runtime":"jsx-runtime");case"jsxDEV":return e+"/jsx-dev-runtime";case"jsx":case"jsxs":return e+"/jsx-runtime";case"createElement":return e}}(n,a);if(LN(t)){var o=zye(e,"imports/"+a);return o?sm(o):(o=$N(t,a,s,{importedInterop:"uncompiled",importPosition:"after"}),Kye(e,"imports/"+a,o),o)}var i=zye(e,"requires/"+s);return i?i=sm(i):(i=QN(t,s,{importedInterop:"uncompiled"}),Kye(e,"requires/"+s,i)),Bs(i,Ps(a))}}(t,e,n,o))};P("id/jsx",r?"jsxDEV":"jsx"),P("id/jsxs",r?"jsxDEV":"jsxs"),P("id/createElement","createElement"),P("id/fragment","Fragment"),Kye(t,"defaultPure",o===Lye)}if(r){var A,k=function(e){return null!==e.superClass},C=function(e,t,r){var a=null!=t?_s(t):{type:"NullLiteral"},n=null!=r?_s(r+1):{type:"NullLiteral"};return pj.expression.ast(Mye||(Mye=h(["{\n fileName: ",",\n lineNumber: ",",\n columnNumber: ",",\n }"])),e,a,n)};if(By(e.node,{enter:function(t,r){if(Ct(t)){var a=t.attributes;(function(e){var t=e.length-1;do{var r=e[t].node;if(sr(r)&&!Ie(r))return!cr(r)||"constructor"!==r.kind||!k(e[t-2].node);if(Xt(r))return!1}while(t-- >0);return!0})(r)&&a.push(Qi(nd("__self"),rd({type:"ThisExpression"}))),a.push(Qi(nd("__source"),rd(function(t){var r=t.loc;return r?(A||(A=e.scope.generateUidIdentifier("_jsxFileName")),C(sm(A),r.start.line,r.start.column)):e.scope.buildUndefinedNode()}(t))))}}}),A){var _=t.filename,I=void 0===_?"":_;e.scope.push({id:A,init:Cs(I)})}}}},JSXFragment:{exit:function(e,t){var a;a="classic"===zye(t,"runtime")?function(e,t){if(d&&!d(e.node,t))return;return E(t,"createElement",[zye(t,"id/fragment")(),{type:"NullLiteral"}].concat(b(Xy.buildChildren(e.node))))}(e,t):function(e,t){var a=[zye(t,"id/fragment")()],n=Xy.buildChildren(e.node);a.push(Ls(n.length>0?[k(n)]:[])),r&&a.push(e.scope.buildUndefinedNode(),Ds(n.length>1));return E(t,n.length>1?"jsxs":"jsx",a)}(e,t),e.replaceWith(Cy(a,e.node))}},JSXElement:{exit:function(e,t){var a;a="classic"===zye(t,"runtime")||function(e){for(var t=e.get("openingElement").node.attributes,r=!1,a=0;a<t.length;a++){var n=t[a];if(r&&wt(n)&&"key"===n.name.name)return!0;_t(n)&&(r=!0)}return!1}(e)?function(e,t){var r=e.get("openingElement");return E(t,"createElement",[C(r),_(t,e,r.get("attributes"))].concat(b(Xy.buildChildren(e.node))))}(e,t):function(e,t){for(var a,n=e.get("openingElement"),s=[C(n)],o=[],d=Object.create(null),c=i(n.get("attributes"));!(a=c()).done;){var l=a.value;if(l.isJSXAttribute()&&Pt(l.node.name)){var u=l.node.name.name;switch(u){case"__source":case"__self":if(d[u])throw Yye(e,u);case"key":var p=T(l.node.value);if(null===p)throw l.buildCodeFrameError('Please provide an explicit key value. Using "key" as a shorthand for "key={true}" is not allowed.');d[u]=p;break;default:o.push(l)}}else o.push(l)}var f,g=Xy.buildChildren(e.node);o.length||g.length?(f=function(e,t){P(e);var r=e.reduce(A,[]);(null==t?void 0:t.length)>0&&r.push(k(t));return Ls(r)}(o,g),w&&mm(f,w)):f=Ls([]);if(s.push(f),r){var m;s.push(null!=(m=d.key)?m:e.scope.buildUndefinedNode(),Ds(g.length>1)),d.__source?(s.push(d.__source),d.__self&&s.push(d.__self)):d.__self&&s.push(e.scope.buildUndefinedNode(),d.__self)}else void 0!==d.key&&s.push(d.key);return E(t,g.length>1?"jsxs":"jsx",s)}(e,t),e.replaceWith(Cy(a,e.node))}},JSXAttribute:function(e){Et(e.node.value)&&(e.node.value=rd(e.node.value))}}};function E(e,t,r){var a=gs(zye(e,"id/"+t)(),r);return(null!=n?n:zye(e,"defaultPure"))&&DH(a),a}function S(e,t){return Pt(e)?"this"===e.name&&Gy(e,t)?{type:"ThisExpression"}:Yr(e.name,!1)?(e.type="Identifier",e):Cs(e.name):At(e)?Bs(S(e.object,e),S(e.property,e)):kt(e)?Cs(e.namespace.name+":"+e.name.name):e}function T(e){return Tt(e)?e.expression:e}function P(e){if(w=null,e.length&&e[0].isJSXSpreadAttribute()){var t=e[0].node.argument;(t.leadingComments||t.trailingComments)&&(w=sm(t))}}function A(e,t){if(_t(t.node)){var r=t.node.argument;return be(r)&&!function(e){return e.properties.some(function(e){return xe(e,{computed:!1,shorthand:!1})&&(ie(e.key,{name:"__proto__"})||le(e.key,{value:"__proto__"}))})}(r)?e.push.apply(e,b(r.properties)):e.push(wo(r)),e}var a,n=T("key"!==t.node.name.name?t.node.value||Ds(!0):t.node.value);if("key"===t.node.name.name&&null===n)throw t.buildCodeFrameError('Please provide an explicit key value. Using "key" as a shorthand for "key={true}" is not allowed.');le(n)&&!Tt(t.node.value)&&(n.value=n.value.replace(/\n\s+/g," "),null==(a=n.extra)||delete a.raw);return kt(t.node.name)?t.node.name=Cs(t.node.name.namespace.name+":"+t.node.name.name.name):Yr(t.node.name.name,!1)?t.node.name.type="Identifier":t.node.name=Cs(t.node.name.name),e.push(Cy(qs(t.node.name,n),t.node)),e}function k(e){var t;if(1===e.length)t=e[0];else{if(!(e.length>1))return;t=os(e)}return qs(Ps("children"),t)}function C(e){var t,r=S(e.node.name,e.node);return ie(r)?t=r.name:le(r)&&(t=r.value),Xy.isCompatTag(t)?Cs(t):r}function _(e,t,r){var a=zye(e,"runtime");if("automatic"!==a){var n=[];P(r);var s=r.reduce(A,[]);if(x)s.length&&n.push(Ls(s));else{var o=0;s.forEach(function(e,t){Xe(e)&&(t>o&&n.push(Ls(s.slice(o,t))),n.push(e.argument),o=t+1)}),s.length>o&&n.push(Ls(s.slice(o)))}return n.length?(w&&mm(n[0],w),1!==n.length||Xe(s[0])&&be(s[0].argument)?(be(n[0])||n.unshift(Ls([])),gs(j?Bs(Ps("Object"),Ps("assign")):e.addHelper("extends"),n)):n[0]):{type:"NullLiteral"}}var d=[],c=Object.create(null);P(r);for(var l,u=i(r);!(l=u()).done;){var p=l.value,f=p.node,g=wt(f)&&Pt(f.name)&&f.name.name;if("automatic"===a&&("__source"===g||"__self"===g)){if(c[g])throw Yye(t,g);c[g]=!0}A(d,p)}var m=1===d.length&&Xe(d[0])&&!be(d[0].argument)?d[0].argument:d.length>0?Ls(d):{type:"NullLiteral"};return w&&mm(m,w),m}}}function Jye(e){return e.split(".").map(function(e){return Ps(e)}).reduce(function(e,t){return Bs(e,t)})}function Yye(e,t){var r="transform-react-jsx-"+t.slice(2);return e.buildCodeFrameError("Duplicate "+t+" prop found. You are most likely using the deprecated "+r+" Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config.")}var $ye=Xye({name:"transform-react-jsx",development:!1}),Qye=function(e){return e.assertVersion("*"),{name:"transform-react-jsx-compat",manipulateOptions:function(e,t){t.plugins.push("jsx")},visitor:Bye({pre:function(e){e.callee=e.tagExpr},post:function(e){Xy.isCompatTag(e.tagName)&&(e.call=gs(Bs(Bs(Ps("React"),Ps("DOM")),e.tagExpr,dr(e.tagExpr)),e.args))},compat:!0})}},Zye=Xye({name:"transform-react-jsx/development",development:!0});var ehe,the=function(e){e.assertVersion("*");var t={JSXOpeningElement:function(e){if(function(e){var t=function(e){var t=e.scope;do{var r=t.path;if(r.isFunctionParent()&&!r.isArrowFunctionExpression())return r}while(t=t.parent);return null}(e);return!(null!==t&&t.isMethod()&&"constructor"===t.node.kind&&null!==t.parentPath.parentPath.node.superClass)}(e)){var t=e.node,r=nd("__self"),a={type:"ThisExpression"};t.attributes.push(Qi(r,rd(a)))}}};return{name:"transform-react-jsx-self",visitor:{Program:function(e){e.traverse(t)}}}},rhe="__source",ahe=function(e,t){return null==e?{type:"NullLiteral"}:t(e)},nhe=function(e){e.assertVersion("*");var t=function(e){return wt(e)&&e.name.name===rhe};return{name:"transform-react-jsx-source",visitor:{JSXOpeningElement:function(e,r){var a=e.node;if(a.loc&&!e.node.attributes.some(t)){if(!r.fileNameIdentifier){var n=e.scope.generateUidIdentifier("_jsxFileName");r.fileNameIdentifier=n,e.scope.getProgramParent().push({id:n,init:Cs(r.filename||"")})}a.attributes.push(Qi(nd(rhe),rd(function(e,t){var r=t.line,a=t.column,n=ahe(r,_s),s=ahe(a,function(e){return _s(e+1)});return pj.expression.ast(ehe||(ehe=h(["{\n fileName: ",",\n lineNumber: ",",\n columnNumber: ",",\n }"])),e,n,s)}(sm(r.fileNameIdentifier),a.loc.start))))}}}}};var she=o(function(){}),ohe=function(e){function t(t){var r;return(r=e.call(this)||this).returnLoc=void 0,r.returnLoc=t,r}return c(t,e),o(t)}(she),ihe=function(e){function t(t,r,a){var n;return void 0===a&&(a=null),(n=e.call(this)||this).breakLoc=void 0,n.continueLoc=void 0,n.label=void 0,n.breakLoc=t,n.continueLoc=r,n.label=a,n}return c(t,e),o(t)}(she),dhe=function(e){function t(t){var r;return(r=e.call(this)||this).breakLoc=void 0,r.breakLoc=t,r}return c(t,e),o(t)}(she),che=function(e){function t(t,r,a){var n;return void 0===r&&(r=null),void 0===a&&(a=null),(n=e.call(this)||this).firstLoc=void 0,n.catchEntry=void 0,n.finallyEntry=void 0,gN.ok(r||a),n.firstLoc=t,n.catchEntry=r,n.finallyEntry=a,n}return c(t,e),o(t)}(she),lhe=function(e){function t(t,r){var a;return(a=e.call(this)||this).firstLoc=void 0,a.paramId=void 0,a.firstLoc=t,a.paramId=r,a}return c(t,e),o(t)}(she),uhe=function(e){function t(t,r){var a;return(a=e.call(this)||this).firstLoc=void 0,a.afterLoc=void 0,a.firstLoc=t,a.afterLoc=r,a}return c(t,e),o(t)}(she),phe=function(e){function t(t,r){var a;return(a=e.call(this)||this).breakLoc=void 0,a.label=void 0,a.breakLoc=t,a.label=r,a}return c(t,e),o(t)}(she),fhe=function(){function e(e){this.emitter=void 0,this.entryStack=void 0,this.emitter=e,this.entryStack=[new ohe(e.finalLoc)]}var t=e.prototype;return t.withEntry=function(e,t){this.entryStack.push(e);try{t.call(this.emitter)}finally{var r=this.entryStack.pop();gN.strictEqual(r,e)}},t._findLeapLocation=function(e,t){for(var r=this.entryStack.length-1;r>=0;--r){var a=this.entryStack[r],n=a[e];if(n)if(t){if(a.label&&a.label.name===t.name)return n}else if(!(a instanceof phe))return n}return null},t.getBreakLoc=function(e){return this._findLeapLocation("breakLoc",e)},t.getContinueLoc=function(e){return this._findLeapLocation("continueLoc",e)},o(e)}(),ghe=new WeakMap;function mhe(e,t){function r(e){Lg(e);var t=!1;function r(e){return t||(Array.isArray(e)?e.some(r):Fg(e)&&(gN.strictEqual(t,!1),t=a(e))),t}var n=ja[e.type];if(n)for(var s=0;s<n.length;s++){r(e[n[s]])}return t}function a(a){Lg(a);var n=function(e){return ghe.has(e)||ghe.set(e,{}),ghe.get(e)}(a);return hasOwnProperty.call(n,e)?n[e]:hasOwnProperty.call(yhe,a.type)?n[e]=!1:hasOwnProperty.call(t,a.type)?n[e]=!0:n[e]=r(a)}return a.onlyChildren=r,a}var yhe={FunctionExpression:!0,ArrowFunctionExpression:!0},hhe={CallExpression:!0,ForInStatement:!0,UnaryExpression:!0,BinaryExpression:!0,AssignmentExpression:!0,UpdateExpression:!0,NewExpression:!0},bhe={YieldExpression:!0,BreakStatement:!0,ContinueStatement:!0,ReturnStatement:!0,ThrowStatement:!0};for(var vhe in bhe)hasOwnProperty.call(bhe,vhe)&&(hhe[vhe]=bhe[vhe]);mhe("hasSideEffects",hhe);var xhe,Rhe,jhe=mhe("containsLeap",bhe);function whe(e){return e.isReferenced()||e.parentPath.isAssignmentExpression({left:e.node})}xhe=function(e){return e.availableHelper("regenerator")&&!ie(e.addHelper("regenerator"),{name:"__interal_marker_fallback_regenerator__"})},Rhe=function(e,t){var r=e.addHelper("regeneratorRuntime");return Bs(Ie(r)&&ie(r.body)?r.body:gs(r,[]),Ps(t),!1)};var Ehe=Number.MAX_VALUE;function She(e){return new Error("all declarations should have been transformed into assignments before the Exploder began its work: "+JSON.stringify(e))}var The={Identifier:function(e,t){e.node.name===t.catchParamName&&whe(e)&&e.replaceWith(t.getSafeParam())},Scope:function(e,t){e.scope.hasOwnBinding(t.catchParamName)&&e.skip()}},Phe=function(){function e(e,t,r,a){this.nextTempId=void 0,this.contextId=void 0,this.index=void 0,this.indexMap=void 0,this.listing=void 0,this.returns=void 0,this.lastReferenceIndex=0,this.marked=void 0,this.insertedLocs=void 0,this.finalLoc=void 0,this.tryEntries=void 0,this.leapManager=void 0,this.scope=void 0,this.vars=void 0,this.pluginPass=void 0,this.pluginPass=a,this.scope=t,this.vars=r,this.nextTempId=0,this.contextId=e,this.listing=[],this.index=0,this.indexMap=new Map([[0,0]]),this.returns=new Set,this.lastReferenceIndex=0,this.marked=[!0],this.insertedLocs=new Set,this.finalLoc=this.loc(),this.tryEntries=[],this.leapManager=new fhe(this)}var t=e.prototype;return t.loc=function(){var e=_s(Ehe);return this.insertedLocs.add(e),e},t.getInsertedLocs=function(){return this.insertedLocs},t.getContextId=function(){return sm(this.contextId)},t.getIndex=function(){return this.indexMap.has(this.listing.length)||this.indexMap.set(this.listing.length,++this.index),this.index},t.mark=function(e){return e.value===Ehe?e.value=this.getIndex():gN.strictEqual(e.value,this.index),this.marked[this.listing.length]=!0,e.value>this.lastReferenceIndex&&(this.lastReferenceIndex=e.value),e},t.emit=function(e){$t(e)&&(e=Rs(e)),zg(e),this.listing.push(e)},t.emitAssign=function(e,t){return this.emit(this.assign(e,t)),e},t.assign=function(e,t){return Rs(is("=",sm(e),t))},t.contextProperty=function(e){var t="catch"===e;return Bs(this.getContextId(),t?Cs(e):Ps(e),!!t)},t.clearPendingException=function(e,t){var r=gs(this.contextProperty("catch"),[sm(e)]);t?this.emitAssign(t,r):this.emit(r)},t.jump=function(e){this.emitAssign(this.contextProperty(xhe(this.pluginPass)?"n":"next"),e),this.emit(fs())},t.jumpIf=function(e,t){this.emit(As(e,ps([this.assign(this.contextProperty(xhe(this.pluginPass)?"n":"next"),t),fs()])))},t.jumpIfNot=function(e,t){var r;r=Te(e)&&"!"===e.operator?e.argument:$s("!",e),this.emit(As(r,ps([this.assign(this.contextProperty(xhe(this.pluginPass)?"n":"next"),t),fs()])))},t.makeContextTempVar=function(){return this.contextProperty("t"+this.nextTempId++)},t.makeTempVar=function(){var e=this.scope.generateUidIdentifier("t");return this.vars.push(eo(e)),sm(e)},t.getContextFunction=function(){return Ts(null,[this.getContextId()],ps([this.getDispatchLoop()]),!1,!1)},t.getDispatchLoop=function(){var e,t=this,r=[],a=!1;return t.listing.forEach(function(n,s){t.marked[s]&&(r.push(zs(_s(t.indexMap.get(s)),e=[])),a=!1),a||(e.push(n),tr(n)&&(a=!0))}),this.finalLoc.value=this.getIndex(),xhe(this.pluginPass)?this.lastReferenceIndex!==this.index&&this.returns.has(this.listing.length)||r.push(zs(this.finalLoc,[Ws(gs(this.contextProperty("a"),[_s(2)]))])):r.push(zs(this.finalLoc,[]),zs(Cs("end"),[Ws(gs(this.contextProperty("stop"),[]))])),to(_s(1),Ks(xhe(this.pluginPass)?0===this.tryEntries.length?this.contextProperty("n"):is("=",this.contextProperty("p"),this.contextProperty("n")):is("=",this.contextProperty("prev"),this.contextProperty("next")),r))},t.getTryLocsList=function(){if(0===this.tryEntries.length)return null;var e=0,t=os(this.tryEntries.map(function(t){var r=t.firstLoc.value;gN.ok(r>=e,"try entries out of order"),e=r;var a=t.catchEntry,n=t.finallyEntry,s=[t.firstLoc,a?a.firstLoc:null];return n&&(s[2]=n.firstLoc,s[3]=n.afterLoc),os(s.map(function(e){return e&&sm(e)}))}));return xhe(this.pluginPass)&&t.elements.reverse(),t},t.explode=function(e,t){var r=e.node;if(ir(r))throw She(r);if(e.isStatement())return this.explodeStatement(e);if(e.isExpression())return this.explodeExpression(e,t);switch(r.type){case"VariableDeclarator":throw She(r);case"ObjectProperty":case"SwitchCase":case"CatchClause":throw new Error(r.type+" nodes should be handled by their parents");default:throw new Error("unknown Node of type "+JSON.stringify(r.type))}},t.explodeStatement=function(e,t){var r=this;void 0===t&&(t=null);var a,n,s,o=e.node,i=this;if(e.isBlockStatement())e.get("body").forEach(function(e){i.explodeStatement(e)});else if(jhe(o))switch(e.type){case"ExpressionStatement":i.explodeExpression(e.get("expression"),!0);break;case"LabeledStatement":n=this.loc(),i.leapManager.withEntry(new phe(n,e.node.label),function(){i.explodeStatement(e.get("body"),e.node.label)}),i.mark(n);break;case"WhileStatement":a=this.loc(),n=this.loc(),i.mark(a),i.jumpIfNot(i.explodeExpression(e.get("test")),n),i.leapManager.withEntry(new ihe(n,a,t),function(){i.explodeStatement(e.get("body"))}),i.jump(a),i.mark(n);break;case"DoWhileStatement":var d=this.loc(),c=this.loc();n=this.loc(),i.mark(d),i.leapManager.withEntry(new ihe(n,c,t),function(){i.explode(e.get("body"))}),i.mark(c),i.jumpIf(i.explodeExpression(e.get("test")),d),i.mark(n);break;case"ForStatement":s=this.loc();var l=this.loc();n=this.loc(),e.node.init&&i.explode(e.get("init"),!0),i.mark(s),e.node.test&&i.jumpIfNot(i.explodeExpression(e.get("test")),n),i.leapManager.withEntry(new ihe(n,l,t),function(){i.explodeStatement(e.get("body"))}),i.mark(l),e.node.update&&i.explode(e.get("update"),!0),i.jump(s),i.mark(n);break;case"TypeCastExpression":return i.explodeExpression(e.get("expression"));case"ForInStatement":s=this.loc(),n=this.loc();var u=i.makeTempVar(),p=xhe(this.pluginPass)?this.pluginPass.addHelper("regeneratorKeys"):Rhe(this.pluginPass,"keys");i.emitAssign(u,gs(p,[i.explodeExpression(e.get("right"))])),i.mark(s);var f=i.makeTempVar();i.jumpIf(Bs(is("=",f,gs(sm(u),[])),Ps("done"),!1),n),i.emitAssign(e.node.left,Bs(sm(f),Ps("value"),!1)),i.leapManager.withEntry(new ihe(n,s,t),function(){i.explodeStatement(e.get("body"))}),i.jump(s),i.mark(n);break;case"BreakStatement":i.emitAbruptCompletion({type:3,target:i.leapManager.getBreakLoc(e.node.label)});break;case"ContinueStatement":i.emitAbruptCompletion({type:3,target:i.leapManager.getContinueLoc(e.node.label)});break;case"SwitchStatement":var g=i.emitAssign(i.makeTempVar(),i.explodeExpression(e.get("discriminant")));n=this.loc();for(var m=this.loc(),y=m,h=[],b=e.node.cases||[],v=b.length-1;v>=0;--v){var x=b[v];x.test?y=ys(ds("===",sm(g),x.test),h[v]=this.loc(),y):h[v]=m}var R=e.get("discriminant");R.replaceWith(y),i.jump(i.explodeExpression(R)),i.leapManager.withEntry(new dhe(n),function(){e.get("cases").forEach(function(e){var t=e.key;i.mark(h[t]),e.get("consequent").forEach(function(e){i.explodeStatement(e)})})}),i.mark(n),m.value===Ehe&&(i.mark(m),gN.strictEqual(n.value,m.value));break;case"IfStatement":var j=e.node.alternate&&this.loc();n=this.loc(),i.jumpIfNot(i.explodeExpression(e.get("test")),j||n),i.explodeStatement(e.get("consequent")),j&&(i.jump(n),i.mark(j),i.explodeStatement(e.get("alternate"))),i.mark(n);break;case"ReturnStatement":i.emitAbruptCompletion({type:2,value:i.explodeExpression(e.get("argument"))});break;case"WithStatement":throw new Error("WithStatement not supported in generator functions.");case"TryStatement":n=this.loc();var w=e.node.handler,E=w&&this.loc(),S=E&&new lhe(E,w.param),T=e.node.finalizer&&this.loc(),P=T&&new uhe(T,n),A=new che(i.getUnmarkedCurrentLoc(),S,P);i.tryEntries.push(A),i.updateContextPrevLoc(A.firstLoc),i.leapManager.withEntry(A,function(){if(i.explodeStatement(e.get("block")),E){var t=e.node.block.body;T?i.jump(T):t.length&&"ReturnStatement"===t[t.length-1].type?n=null:i.jump(n),i.updateContextPrevLoc(i.mark(E));var a=e.get("handler.body"),s=i.makeTempVar();xhe(r.pluginPass)?r.emitAssign(s,i.contextProperty("v")):i.clearPendingException(A.firstLoc,s),a.traverse(The,{getSafeParam:function(){return sm(s)},catchParamName:w.param.name}),i.leapManager.withEntry(S,function(){i.explodeStatement(a)})}T&&(i.updateContextPrevLoc(i.mark(T)),i.leapManager.withEntry(P,function(){i.explodeStatement(e.get("finalizer"))}),i.emit(Ws(gs(i.contextProperty(xhe(r.pluginPass)?"f":"finish"),[P.firstLoc]))))}),n&&i.mark(n);break;case"ThrowStatement":i.emit(Js(i.explodeExpression(e.get("argument"))));break;case"ClassDeclaration":i.emit(i.explodeClass(e));break;default:throw new Error("unknown Statement of type "+JSON.stringify(o.type))}else i.emit(o)},t.emitAbruptCompletion=function(e){var t=[xhe(this.pluginPass)?_s(e.type):Cs(3===e.type?"continue":"return")];3===e.type?t[1]=this.insertedLocs.has(e.target)?e.target:sm(e.target):2===e.type&&e.value&&(t[1]=sm(e.value)),this.emit(Ws(gs(this.contextProperty(xhe(this.pluginPass)?"a":"abrupt"),t))),2===e.type&&this.returns.add(this.listing.length)},t.getUnmarkedCurrentLoc=function(){return _s(this.getIndex())},t.updateContextPrevLoc=function(e){e?e.value===Ehe?e.value=this.getIndex():gN.strictEqual(e.value,this.index):e=this.getUnmarkedCurrentLoc(),this.emitAssign(this.contextProperty(xhe(this.pluginPass)?"p":"prev"),e)},t.explodeViaTempVar=function(e,t,r,a){gN.ok(!a||!e,"Ignoring the result of a child expression but forcing it to be assigned to a temporary variable?");var n=this.explodeExpression(t,a);return a||(e||r&&!dr(n))&&(n=this.emitAssign(e||this.makeTempVar(),n)),n},t.explodeExpression=function(e,t){var r=e.node;if(!r)return r;var a,n,s=this;function o(e){return t&&s.emit(e),e}if(!jhe(r))return o(r);var i=jhe.onlyChildren(r);switch(e.type){case"MemberExpression":return o(Bs(s.explodeExpression(e.get("object")),e.node.computed?s.explodeViaTempVar(null,e.get("property"),i):e.node.property,e.node.computed));case"CallExpression":for(var d,c,l=e.get("callee"),u=e.get("arguments"),p=u.length-1;p>=0&&!jhe(u[p].node);)p--;var f=null;if(me(l.node))if(-1!==p){var g=s.explodeViaTempVar(s.makeTempVar(),l.get("object"),i),m=l.node.computed?s.explodeViaTempVar(null,l.get("property"),i):l.node.property;f=g,d=Bs(Bs(sm(g),m,l.node.computed),Ps("call"),!1)}else d=s.explodeExpression(l);else me(d=s.explodeViaTempVar(null,l,i))&&(d=Vs([_s(0),sm(d)]));return-1!==p?(c=u.map(function(e,t){return t>=p?s.explodeExpression(e):s.explodeViaTempVar(null,e,i)}),f&&c.unshift(f),c=c.map(function(e){return sm(e)})):c=e.node.arguments,o(gs(d,c));case"NewExpression":return o(Ms(s.explodeViaTempVar(null,e.get("callee"),i),e.get("arguments").map(function(e){return s.explodeViaTempVar(null,e,i)})));case"ObjectExpression":return o(Ls(e.get("properties").map(function(e){return e.isObjectProperty()?qs(e.node.key,s.explodeViaTempVar(null,e.get("value"),i),e.node.computed):e.node})));case"ArrayExpression":return o(os(e.get("elements").map(function(e){return e.node?e.isSpreadElement()?wo(s.explodeViaTempVar(null,e.get("argument"),i)):s.explodeViaTempVar(null,e,i):null})));case"SequenceExpression":var y=e.node.expressions.length-1;return e.get("expressions").forEach(function(e){e.key===y?a=s.explodeExpression(e,t):s.explodeExpression(e,!0)}),a;case"LogicalExpression":n=this.loc(),t||(a=s.makeTempVar());var h=s.explodeViaTempVar(a,e.get("left"),i);return"&&"===e.node.operator?s.jumpIfNot(h,n):(gN.strictEqual(e.node.operator,"||"),s.jumpIf(h,n)),s.explodeViaTempVar(a,e.get("right"),i,t),s.mark(n),a;case"ConditionalExpression":var b=this.loc();n=this.loc();var v=s.explodeExpression(e.get("test"));return s.jumpIfNot(v,b),t||(a=s.makeTempVar()),s.explodeViaTempVar(a,e.get("consequent"),i,t),s.jump(n),s.mark(b),s.explodeViaTempVar(a,e.get("alternate"),i,t),s.mark(n),a;case"UnaryExpression":return o($s(e.node.operator,s.explodeExpression(e.get("argument")),!!e.node.prefix));case"BinaryExpression":return o(ds(e.node.operator,s.explodeViaTempVar(null,e.get("left"),i),s.explodeViaTempVar(null,e.get("right"),i)));case"AssignmentExpression":if("="===e.node.operator)return o(is(e.node.operator,s.explodeExpression(e.get("left")),s.explodeExpression(e.get("right"))));var x=s.explodeExpression(e.get("left")),R=s.emitAssign(s.makeTempVar(),x);return o(is("=",sm(x),is(e.node.operator,sm(R),s.explodeExpression(e.get("right")))));case"UpdateExpression":return o(Qs(e.node.operator,s.explodeExpression(e.get("argument")),e.node.prefix));case"YieldExpression":n=this.loc();var j=e.node.argument&&s.explodeExpression(e.get("argument"));if(j&&e.node.delegate){if(xhe(this.pluginPass)){var w=Ws(gs(s.contextProperty("d"),[gs(this.pluginPass.addHelper("regeneratorValues"),[j]),n]));return w.loc=r.loc,s.emit(w),s.mark(n),s.contextProperty("v")}var E=s.makeContextTempVar(),S=Ws(gs(s.contextProperty("delegateYield"),[j,Cs(E.property.name),n]));return S.loc=r.loc,s.emit(S),s.mark(n),E}s.emitAssign(s.contextProperty(xhe(this.pluginPass)?"n":"next"),n);var T=Ws(sm(j)||null);return T.loc=r.loc,s.emit(T),s.mark(n),s.contextProperty(xhe(s.pluginPass)?"v":"sent");case"ClassExpression":return o(s.explodeClass(e));default:throw new Error("unknown Expression of type "+JSON.stringify(r.type))}},t.explodeClass=function(e){var t=[];e.node.superClass&&t.push(e.get("superClass")),e.get("body.body").forEach(function(e){e.node.computed&&t.push(e.get("key"))});for(var r=t.some(function(e){return jhe(e.node)}),a=0;a<t.length;a++){var n=t[a];a===t.length-1?n.replaceWith(this.explodeExpression(n)):n.replaceWith(this.explodeViaTempVar(null,n,r))}return e.node},o(e)}();var Ahe=function(){return{Method:function(e,t){var r=e.node;if(khe(r,t)){var a=Ts(null,[],sm(r.body,!1),r.generator,r.async);e.get("body").set("body",[Ws(gs(a,[]))]),r.async=!1,r.generator=!1,e.get("body.body.0.argument.callee").unwrapFunctionEnvironment()}},Function:{exit:function(e,t){var r=e.node;if(khe(r,t)){e=function(e){if(!e.node||!nr(e.node))throw new Error("replaceShorthandObjectMethod can only be called on Function AST node paths.");if(!ve(e.node))return e;if(!e.node.generator)return e;var t=Ts(null,e.node.params.map(function(e){return sm(e)}),sm(e.node.body),e.node.generator,e.node.async);return e.replaceWith(qs(sm(e.node.key),t,e.node.computed,!1)),e.get("value")}(e),r=e.node;var a=e.scope.generateUidIdentifier("context"),n=e.scope.generateUidIdentifier("args");e.ensureBlock();var s=e.get("body");r.async&&s.traverse(Dhe,this),s.traverse(Ihe,{context:a,pluginPass:this});var o=[],i=[];s.get("body").forEach(function(e){var t=e.node;re(t)&&le(t.expression)||null!=(null==t?void 0:t._blockHoist)?o.push(t):i.push(t)}),o.length>0&&(s.node.body=i);var d=function(e,t){var r=t.node;Kg(r),r.id||(r.id=t.scope.parent.generateUidIdentifier("callee"));if(r.generator&&se(r))return function(e,t){var r=t.node;Gg(r.id);var a=t.findParent(function(e){return e.isProgram()||e.isBlockStatement()});if(!a)return r.id;var n=a.node;gN.ok(Array.isArray(n.body));var s=function(e){Che.has(e)||Che.set(e,{});return Che.get(e)}(n);s.decl||(s.decl=Zs("var",[]),a.unshiftContainer("body",s.decl),s.declPath=a.get("body.0"));gN.strictEqual(s.declPath.node,s.decl);var o=a.scope.generateUidIdentifier("marked"),i=gs(xhe(e)?Bs(gs(e.addHelper("regenerator"),[]),Ps("m")):Rhe(e,"mark"),[sm(r.id)]),d=s.decl.declarations.push(eo(o,i))-1,c=s.declPath.get("declarations."+d+".init");return gN.strictEqual(c.node,i),c.addComment("leading","#__PURE__"),sm(o)}(e,t);return sm(r.id)}(this,e);Gg(r.id);var c=function(e){Kg(e.node);var t={__proto__:null};function r(e,r){var a=e.node;Vg(a);var n=[];return a.declarations.forEach(function(e){t[e.id.name]=Ps(e.id.name),e.init?n.push(is("=",e.id,e.init)):r&&n.push(e.id)}),0===n.length?null:1===n.length?n[0]:Vs(n)}e.get("body").traverse({VariableDeclaration:{exit:function(e){var a=r(e,!1);if(null===a)e.remove();else{for(var n=0,s=Object.keys(t);n<s.length;n++){var o=s[n];e.scope.removeBinding(o)}e.replaceWith(Rs(a))}e.skip()}},ForStatement:function(e){var t=e.get("init");if(t.isVariableDeclaration()){var a=r(t,!1);a?t.replaceWith(a):t.remove()}},ForXStatement:function(e){var t=e.get("left");t.isVariableDeclaration()&&t.replaceWith(r(t,!0))},FunctionDeclaration:function(e){var r=e.node;t[r.id.name]=r.id;var a=Rs(is("=",sm(r.id),Ts(e.scope.generateUidIdentifierBasedOnNode(r),r.params,r.body,r.generator,r.async)));e.parentPath.isBlockStatement()?(e.parentPath.unshiftContainer("body",a),e.remove()):(e.replaceWith(a),e.scope.removeBinding(r.id.name)),e.skip()},FunctionExpression:function(e){e.skip()},ArrowFunctionExpression:function(e){e.skip()}});var a={__proto__:null};e.get("params").forEach(function(e){var t=e.node;ie(t)&&(a[t.name]=t)});var n=[];return Object.keys(t).forEach(function(e){hasOwnProperty.call(a,e)||n.push(eo(t[e],null))}),n}(e),l={usesThis:!1,usesArguments:!1,getArgsId:function(){return sm(n)}};e.traverse(_he,l),l.usesArguments&&c.push(eo(sm(n),Ps("arguments")));var u=new Phe(a,e.scope,c,this);u.explode(e.get("body")),c.length>0&&o.push(Zs("var",c));var p=[u.getContextFunction()],f=u.getTryLocsList();if(r.generator?p.push(d):(l.usesThis||f||r.async)&&p.push({type:"NullLiteral"}),l.usesThis?p.push({type:"ThisExpression"}):(f||r.async)&&p.push({type:"NullLiteral"}),f?p.push(f):r.async&&p.push({type:"NullLiteral"}),r.async){var g=e.scope;do{g.hasOwnBinding("Promise")&&g.rename("Promise")}while(g=g.parent);p.push(Ps("Promise"))}var m=gs(xhe(this)?r.async?r.generator?this.addHelper("regeneratorAsyncGen"):this.addHelper("regeneratorAsync"):Bs(gs(this.addHelper("regenerator"),[]),Ps("w")):Rhe(this,r.async?"async":"wrap"),p);o.push(Ws(m)),r.body=ps(o),e.get("body.body").forEach(function(e){return e.scope.registerDeclaration(e)});var y=s.node.directives;y&&(r.body.directives=y);var h=r.generator;h&&(r.generator=!1),r.async&&(r.async=!1),h&&$t(r)&&(e.replaceWith(gs(xhe(this)?Bs(gs(this.addHelper("regenerator"),[]),Ps("m")):Rhe(this,"mark"),[r])),e.addComment("leading","#__PURE__"));var b=u.getInsertedLocs();e.traverse({NumericLiteral:function(e){b.has(e.node)&&e.replaceWith(_s(e.node.value))}}),e.requeue()}}}}};function khe(e,t){return e.generator?e.async?!1!==t.opts.asyncGenerators:!1!==t.opts.generators:!!e.async&&!1!==t.opts.async}var Che=new WeakMap;var _he={"FunctionExpression|FunctionDeclaration|Method":function(e){e.skip()},Identifier:function(e,t){"arguments"===e.node.name&&whe(e)&&(e.replaceWith(t.getArgsId()),t.usesArguments=!0)},ThisExpression:function(e,t){t.usesThis=!0}},Ihe={MetaProperty:function(e,t){var r=e.node;"function"===r.meta.name&&"sent"===r.property.name&&e.replaceWith(Bs(sm(t.context),Ps(xhe(t.pluginPass)?"v":"_sent")))}},Dhe={Function:function(e){e.skip()},AwaitExpression:function(e){var t=e.node.argument,r=xhe(this)?this.addHelper("awaitAsyncGenerator"):Rhe(this,"awrap");e.replaceWith(Ao(gs(r,[t]),!1))}},Ohe=function(e){var t=e.types,r=e.traverse;return(0,e.assertVersion)("*"),{name:"transform-regenerator",visitor:r.visitors.merge([Ahe(),{CallExpression:function(e){var r;if(null!=(r=this.availableHelper)&&r.call(this,"regeneratorRuntime")){var a=e.get("callee");if(a.isMemberExpression()){var n=a.get("object");if(n.isIdentifier({name:"regeneratorRuntime"})){var s=this.addHelper("regeneratorRuntime");if(t.isArrowFunctionExpression(s))return void n.replaceWith(s.body);n.replaceWith(t.callExpression(s,[]))}}}}}])}},Nhe=function(e){return e.assertVersion("*"),{name:"transform-reserved-words",visitor:{"BindingIdentifier|ReferencedIdentifier":function(e){Hy(e.node.name)||e.scope.rename(e.node.name)}}}};function Bhe(){throw new Error("The 'absoluteRuntime' option is not supported when using @babel/standalone.")}var Mhe,Fhe={},Lhe={},Uhe={"es6.array.copy-within":{chrome:"45",opera:"32",edge:"12",firefox:"32",safari:"9",node:"4",deno:"1",ios:"9",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es6.array.every":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.fill":{chrome:"45",opera:"32",edge:"12",firefox:"31",safari:"7.1",node:"4",deno:"1",ios:"8",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es6.array.filter":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.array.find":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"7.1",node:"4",deno:"1",ios:"8",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es6.array.find-index":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"7.1",node:"4",deno:"1",ios:"8",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es7.array.flat-map":{chrome:"69",opera:"56",edge:"79",firefox:"62",safari:"12",node:"11",deno:"1",ios:"12",samsung:"10",rhino:"1.7.15",opera_mobile:"48",electron:"4.0"},"es6.array.for-each":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.from":{chrome:"51",opera:"38",edge:"15",firefox:"36",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"},"es7.array.includes":{chrome:"47",opera:"34",edge:"14",firefox:"102",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"34",electron:"0.36"},"es6.array.index-of":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.is-array":{chrome:"5",opera:"10.50",edge:"12",firefox:"4",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.iterator":{chrome:"66",opera:"53",edge:"12",firefox:"60",safari:"9",node:"10",deno:"1",ios:"9",samsung:"9",rhino:"1.7.13",opera_mobile:"47",electron:"3.0"},"es6.array.last-index-of":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.map":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.array.of":{chrome:"45",opera:"32",edge:"12",firefox:"25",safari:"9",node:"4",deno:"1",ios:"9",samsung:"5",rhino:"1.7.13",opera_mobile:"32",electron:"0.31"},"es6.array.reduce":{chrome:"5",opera:"10.50",edge:"12",firefox:"3",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.reduce-right":{chrome:"5",opera:"10.50",edge:"12",firefox:"3",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.slice":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.array.some":{chrome:"5",opera:"10.10",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.array.sort":{chrome:"63",opera:"50",edge:"12",firefox:"5",safari:"12",node:"10",deno:"1",ie:"9",ios:"12",samsung:"8",rhino:"1.7.13",opera_mobile:"46",electron:"3.0"},"es6.array.species":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"},"es6.date.now":{chrome:"5",opera:"10.50",edge:"12",firefox:"2",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.date.to-iso-string":{chrome:"5",opera:"10.50",edge:"12",firefox:"3.5",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.date.to-json":{chrome:"5",opera:"12.10",edge:"12",firefox:"4",safari:"10",node:"0.4",deno:"1",ie:"9",android:"4",ios:"10",samsung:"1",rhino:"1.7.13",opera_mobile:"12.1",electron:"0.20"},"es6.date.to-primitive":{chrome:"47",opera:"34",edge:"15",firefox:"44",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"34",electron:"0.36"},"es6.date.to-string":{chrome:"5",opera:"10.50",edge:"12",firefox:"2",safari:"3.1",node:"0.4",deno:"1",ie:"10",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.function.bind":{chrome:"7",opera:"12",edge:"12",firefox:"4",safari:"5.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es6.function.has-instance":{chrome:"51",opera:"38",edge:"15",firefox:"50",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.function.name":{chrome:"5",opera:"10.50",edge:"14",firefox:"2",safari:"4",node:"0.4",deno:"1",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es6.map":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.math.acosh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.asinh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.atanh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.cbrt":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.clz32":{chrome:"38",opera:"25",edge:"12",firefox:"31",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.cosh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.expm1":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.fround":{chrome:"38",opera:"25",edge:"12",firefox:"26",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.hypot":{chrome:"38",opera:"25",edge:"12",firefox:"27",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.imul":{chrome:"30",opera:"17",edge:"12",firefox:"23",safari:"7",node:"0.12",deno:"1",android:"4.4",ios:"7",samsung:"2",rhino:"1.7.13",opera_mobile:"18",electron:"0.20"},"es6.math.log1p":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.log10":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.log2":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.sign":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.sinh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.tanh":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.math.trunc":{chrome:"38",opera:"25",edge:"12",firefox:"25",safari:"7.1",node:"0.12",deno:"1",ios:"8",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.number.constructor":{chrome:"41",opera:"28",edge:"12",firefox:"36",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.number.epsilon":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.14",opera_mobile:"21",electron:"0.20"},"es6.number.is-finite":{chrome:"19",opera:"15",edge:"12",firefox:"16",safari:"9",node:"0.8",deno:"1",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",opera_mobile:"14",electron:"0.20"},"es6.number.is-integer":{chrome:"34",opera:"21",edge:"12",firefox:"16",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es6.number.is-nan":{chrome:"19",opera:"15",edge:"12",firefox:"15",safari:"9",node:"0.8",deno:"1",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",opera_mobile:"14",electron:"0.20"},"es6.number.is-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"32",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es6.number.max-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es6.number.min-safe-integer":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es6.number.parse-float":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.14",opera_mobile:"21",electron:"0.20"},"es6.number.parse-int":{chrome:"34",opera:"21",edge:"12",firefox:"25",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"2",rhino:"1.7.14",opera_mobile:"21",electron:"0.20"},"es6.object.assign":{chrome:"49",opera:"36",edge:"13",firefox:"36",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.object.create":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es7.object.define-getter":{chrome:"62",opera:"49",edge:"16",firefox:"48",safari:"9",node:"8.10",deno:"1",ios:"9",samsung:"8",opera_mobile:"46",electron:"3.0"},"es7.object.define-setter":{chrome:"62",opera:"49",edge:"16",firefox:"48",safari:"9",node:"8.10",deno:"1",ios:"9",samsung:"8",opera_mobile:"46",electron:"3.0"},"es6.object.define-property":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"5.1",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es6.object.define-properties":{chrome:"5",opera:"12",edge:"12",firefox:"4",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es7.object.entries":{chrome:"54",opera:"41",edge:"14",firefox:"47",safari:"10.1",node:"7",deno:"1",ios:"10.3",samsung:"6",rhino:"1.7.14",opera_mobile:"41",electron:"1.4"},"es6.object.freeze":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.get-own-property-descriptor":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es7.object.get-own-property-descriptors":{chrome:"54",opera:"41",edge:"15",firefox:"50",safari:"10.1",node:"7",deno:"1",ios:"10.3",samsung:"6",rhino:"1.8",opera_mobile:"41",electron:"1.4"},"es6.object.get-own-property-names":{chrome:"40",opera:"27",edge:"12",firefox:"33",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"27",electron:"0.21"},"es6.object.get-prototype-of":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es7.object.lookup-getter":{chrome:"62",opera:"49",edge:"79",firefox:"36",safari:"9",node:"8.10",deno:"1",ios:"9",samsung:"8",opera_mobile:"46",electron:"3.0"},"es7.object.lookup-setter":{chrome:"62",opera:"49",edge:"79",firefox:"36",safari:"9",node:"8.10",deno:"1",ios:"9",samsung:"8",opera_mobile:"46",electron:"3.0"},"es6.object.prevent-extensions":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.to-string":{chrome:"57",opera:"44",edge:"15",firefox:"51",safari:"10",node:"8",deno:"1",ios:"10",samsung:"7",opera_mobile:"43",electron:"1.7"},"es6.object.is":{chrome:"19",opera:"15",edge:"12",firefox:"22",safari:"9",node:"0.8",deno:"1",android:"4.1",ios:"9",samsung:"1.5",rhino:"1.7.13",opera_mobile:"14",electron:"0.20"},"es6.object.is-frozen":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.is-sealed":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.is-extensible":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.keys":{chrome:"40",opera:"27",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"27",electron:"0.21"},"es6.object.seal":{chrome:"44",opera:"31",edge:"12",firefox:"35",safari:"9",node:"4",deno:"1",ios:"9",samsung:"4",rhino:"1.7.13",opera_mobile:"32",electron:"0.30"},"es6.object.set-prototype-of":{chrome:"34",opera:"21",edge:"12",firefox:"31",safari:"9",node:"0.12",deno:"1",ie:"11",ios:"9",samsung:"2",rhino:"1.7.13",opera_mobile:"21",electron:"0.20"},"es7.object.values":{chrome:"54",opera:"41",edge:"14",firefox:"47",safari:"10.1",node:"7",deno:"1",ios:"10.3",samsung:"6",rhino:"1.7.14",opera_mobile:"41",electron:"1.4"},"es6.promise":{chrome:"51",opera:"38",edge:"14",firefox:"45",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"},"es7.promise.finally":{chrome:"63",opera:"50",edge:"18",firefox:"58",safari:"11.1",node:"10",deno:"1",ios:"11.3",samsung:"8",rhino:"1.7.15",opera_mobile:"46",electron:"3.0"},"es6.reflect.apply":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.construct":{chrome:"49",opera:"36",edge:"13",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"es6.reflect.define-property":{chrome:"49",opera:"36",edge:"13",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.delete-property":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.get":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.get-own-property-descriptor":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.get-prototype-of":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.has":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.is-extensible":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.own-keys":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.prevent-extensions":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.set":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.reflect.set-prototype-of":{chrome:"49",opera:"36",edge:"12",firefox:"42",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.8",opera_mobile:"36",electron:"0.37"},"es6.regexp.constructor":{chrome:"50",opera:"37",edge:"79",firefox:"40",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"},"es6.regexp.flags":{chrome:"49",opera:"36",edge:"79",firefox:"37",safari:"9",node:"6",deno:"1",ios:"9",samsung:"5",rhino:"1.7.15",opera_mobile:"36",electron:"0.37"},"es6.regexp.match":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.13",opera_mobile:"37",electron:"1.1"},"es6.regexp.replace":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"},"es6.regexp.split":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"},"es6.regexp.search":{chrome:"50",opera:"37",edge:"79",firefox:"49",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.13",opera_mobile:"37",electron:"1.1"},"es6.regexp.to-string":{chrome:"50",opera:"37",edge:"79",firefox:"39",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",rhino:"1.7.15",opera_mobile:"37",electron:"1.1"},"es6.set":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.symbol":{chrome:"51",opera:"38",edge:"79",firefox:"51",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es7.symbol.async-iterator":{chrome:"63",opera:"50",edge:"79",firefox:"57",safari:"12",node:"10",deno:"1",ios:"12",samsung:"8",opera_mobile:"46",electron:"3.0"},"es6.string.anchor":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.big":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.blink":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.bold":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.code-point-at":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.ends-with":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.fixed":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.fontcolor":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.fontsize":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.from-code-point":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.includes":{chrome:"41",opera:"28",edge:"12",firefox:"40",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.italics":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.iterator":{chrome:"38",opera:"25",edge:"12",firefox:"36",safari:"9",node:"0.12",deno:"1",ios:"9",samsung:"3",rhino:"1.7.13",opera_mobile:"25",electron:"0.20"},"es6.string.link":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es7.string.pad-start":{chrome:"57",opera:"44",edge:"15",firefox:"48",safari:"10",node:"8",deno:"1",ios:"10",samsung:"7",rhino:"1.7.13",opera_mobile:"43",electron:"1.7"},"es7.string.pad-end":{chrome:"57",opera:"44",edge:"15",firefox:"48",safari:"10",node:"8",deno:"1",ios:"10",samsung:"7",rhino:"1.7.13",opera_mobile:"43",electron:"1.7"},"es6.string.raw":{chrome:"41",opera:"28",edge:"12",firefox:"34",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.14",opera_mobile:"28",electron:"0.21"},"es6.string.repeat":{chrome:"41",opera:"28",edge:"12",firefox:"24",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.small":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.starts-with":{chrome:"41",opera:"28",edge:"12",firefox:"29",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",rhino:"1.7.13",opera_mobile:"28",electron:"0.21"},"es6.string.strike":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.sub":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.sup":{chrome:"5",opera:"15",edge:"12",firefox:"17",safari:"6",node:"0.4",deno:"1",android:"4",ios:"7",phantom:"1.9",samsung:"1",rhino:"1.7.14",opera_mobile:"14",electron:"0.20"},"es6.string.trim":{chrome:"5",opera:"10.50",edge:"12",firefox:"3.5",safari:"4",node:"0.4",deno:"1",ie:"9",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"10.1",electron:"0.20"},"es7.string.trim-left":{chrome:"66",opera:"53",edge:"79",firefox:"61",safari:"12",node:"10",deno:"1",ios:"12",samsung:"9",rhino:"1.7.13",opera_mobile:"47",electron:"3.0"},"es7.string.trim-right":{chrome:"66",opera:"53",edge:"79",firefox:"61",safari:"12",node:"10",deno:"1",ios:"12",samsung:"9",rhino:"1.7.13",opera_mobile:"47",electron:"3.0"},"es6.typed.array-buffer":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.data-view":{chrome:"5",opera:"12",edge:"12",firefox:"15",safari:"5.1",node:"0.4",deno:"1",ie:"10",android:"4",ios:"6",phantom:"1.9",samsung:"1",rhino:"1.7.13",opera_mobile:"12",electron:"0.20"},"es6.typed.int8-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.uint8-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.uint8-clamped-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.int16-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.uint16-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.int32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.uint32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.float32-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.typed.float64-array":{chrome:"51",opera:"38",edge:"13",firefox:"48",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"es6.weak-map":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"9",node:"6.5",deno:"1",ios:"9",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"},"es6.weak-set":{chrome:"51",opera:"38",edge:"15",firefox:"53",safari:"9",node:"6.5",deno:"1",ios:"9",samsung:"5",rhino:"1.7.15",opera_mobile:"41",electron:"1.2"}},qhe={};var Ghe,Whe={};var Vhe,Hhe,zhe={},Khe={exports:{}};function Xhe(){return Vhe||(Vhe=1,function(e,t){var r;t=e.exports=h,r="object"==typeof z&&z.env&&z.env.NODE_DEBUG&&/\bsemver\b/i.test(z.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var a=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,s=a-6,o=t.re=[],i=t.safeRe=[],d=t.src=[],c=t.tokens={},l=0;function u(e){c[e]=l++}var p="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",a],[p,s]];function g(e){for(var t=0;t<f.length;t++){var r=f[t][0],a=f[t][1];e=e.split(r+"*").join(r+"{0,"+a+"}").split(r+"+").join(r+"{1,"+a+"}")}return e}u("NUMERICIDENTIFIER"),d[c.NUMERICIDENTIFIER]="0|[1-9]\\d*",u("NUMERICIDENTIFIERLOOSE"),d[c.NUMERICIDENTIFIERLOOSE]="\\d+",u("NONNUMERICIDENTIFIER"),d[c.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+p+"*",u("MAINVERSION"),d[c.MAINVERSION]="("+d[c.NUMERICIDENTIFIER]+")\\.("+d[c.NUMERICIDENTIFIER]+")\\.("+d[c.NUMERICIDENTIFIER]+")",u("MAINVERSIONLOOSE"),d[c.MAINVERSIONLOOSE]="("+d[c.NUMERICIDENTIFIERLOOSE]+")\\.("+d[c.NUMERICIDENTIFIERLOOSE]+")\\.("+d[c.NUMERICIDENTIFIERLOOSE]+")",u("PRERELEASEIDENTIFIER"),d[c.PRERELEASEIDENTIFIER]="(?:"+d[c.NUMERICIDENTIFIER]+"|"+d[c.NONNUMERICIDENTIFIER]+")",u("PRERELEASEIDENTIFIERLOOSE"),d[c.PRERELEASEIDENTIFIERLOOSE]="(?:"+d[c.NUMERICIDENTIFIERLOOSE]+"|"+d[c.NONNUMERICIDENTIFIER]+")",u("PRERELEASE"),d[c.PRERELEASE]="(?:-("+d[c.PRERELEASEIDENTIFIER]+"(?:\\."+d[c.PRERELEASEIDENTIFIER]+")*))",u("PRERELEASELOOSE"),d[c.PRERELEASELOOSE]="(?:-?("+d[c.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+d[c.PRERELEASEIDENTIFIERLOOSE]+")*))",u("BUILDIDENTIFIER"),d[c.BUILDIDENTIFIER]=p+"+",u("BUILD"),d[c.BUILD]="(?:\\+("+d[c.BUILDIDENTIFIER]+"(?:\\."+d[c.BUILDIDENTIFIER]+")*))",u("FULL"),u("FULLPLAIN"),d[c.FULLPLAIN]="v?"+d[c.MAINVERSION]+d[c.PRERELEASE]+"?"+d[c.BUILD]+"?",d[c.FULL]="^"+d[c.FULLPLAIN]+"$",u("LOOSEPLAIN"),d[c.LOOSEPLAIN]="[v=\\s]*"+d[c.MAINVERSIONLOOSE]+d[c.PRERELEASELOOSE]+"?"+d[c.BUILD]+"?",u("LOOSE"),d[c.LOOSE]="^"+d[c.LOOSEPLAIN]+"$",u("GTLT"),d[c.GTLT]="((?:<|>)?=?)",u("XRANGEIDENTIFIERLOOSE"),d[c.XRANGEIDENTIFIERLOOSE]=d[c.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",u("XRANGEIDENTIFIER"),d[c.XRANGEIDENTIFIER]=d[c.NUMERICIDENTIFIER]+"|x|X|\\*",u("XRANGEPLAIN"),d[c.XRANGEPLAIN]="[v=\\s]*("+d[c.XRANGEIDENTIFIER]+")(?:\\.("+d[c.XRANGEIDENTIFIER]+")(?:\\.("+d[c.XRANGEIDENTIFIER]+")(?:"+d[c.PRERELEASE]+")?"+d[c.BUILD]+"?)?)?",u("XRANGEPLAINLOOSE"),d[c.XRANGEPLAINLOOSE]="[v=\\s]*("+d[c.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+d[c.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+d[c.XRANGEIDENTIFIERLOOSE]+")(?:"+d[c.PRERELEASELOOSE]+")?"+d[c.BUILD]+"?)?)?",u("XRANGE"),d[c.XRANGE]="^"+d[c.GTLT]+"\\s*"+d[c.XRANGEPLAIN]+"$",u("XRANGELOOSE"),d[c.XRANGELOOSE]="^"+d[c.GTLT]+"\\s*"+d[c.XRANGEPLAINLOOSE]+"$",u("COERCE"),d[c.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",u("COERCERTL"),o[c.COERCERTL]=new RegExp(d[c.COERCE],"g"),i[c.COERCERTL]=new RegExp(g(d[c.COERCE]),"g"),u("LONETILDE"),d[c.LONETILDE]="(?:~>?)",u("TILDETRIM"),d[c.TILDETRIM]="(\\s*)"+d[c.LONETILDE]+"\\s+",o[c.TILDETRIM]=new RegExp(d[c.TILDETRIM],"g"),i[c.TILDETRIM]=new RegExp(g(d[c.TILDETRIM]),"g");u("TILDE"),d[c.TILDE]="^"+d[c.LONETILDE]+d[c.XRANGEPLAIN]+"$",u("TILDELOOSE"),d[c.TILDELOOSE]="^"+d[c.LONETILDE]+d[c.XRANGEPLAINLOOSE]+"$",u("LONECARET"),d[c.LONECARET]="(?:\\^)",u("CARETTRIM"),d[c.CARETTRIM]="(\\s*)"+d[c.LONECARET]+"\\s+",o[c.CARETTRIM]=new RegExp(d[c.CARETTRIM],"g"),i[c.CARETTRIM]=new RegExp(g(d[c.CARETTRIM]),"g");u("CARET"),d[c.CARET]="^"+d[c.LONECARET]+d[c.XRANGEPLAIN]+"$",u("CARETLOOSE"),d[c.CARETLOOSE]="^"+d[c.LONECARET]+d[c.XRANGEPLAINLOOSE]+"$",u("COMPARATORLOOSE"),d[c.COMPARATORLOOSE]="^"+d[c.GTLT]+"\\s*("+d[c.LOOSEPLAIN]+")$|^$",u("COMPARATOR"),d[c.COMPARATOR]="^"+d[c.GTLT]+"\\s*("+d[c.FULLPLAIN]+")$|^$",u("COMPARATORTRIM"),d[c.COMPARATORTRIM]="(\\s*)"+d[c.GTLT]+"\\s*("+d[c.LOOSEPLAIN]+"|"+d[c.XRANGEPLAIN]+")",o[c.COMPARATORTRIM]=new RegExp(d[c.COMPARATORTRIM],"g"),i[c.COMPARATORTRIM]=new RegExp(g(d[c.COMPARATORTRIM]),"g");u("HYPHENRANGE"),d[c.HYPHENRANGE]="^\\s*("+d[c.XRANGEPLAIN]+")\\s+-\\s+("+d[c.XRANGEPLAIN]+")\\s*$",u("HYPHENRANGELOOSE"),d[c.HYPHENRANGELOOSE]="^\\s*("+d[c.XRANGEPLAINLOOSE]+")\\s+-\\s+("+d[c.XRANGEPLAINLOOSE]+")\\s*$",u("STAR"),d[c.STAR]="(<|>)?=?\\s*\\*";for(var m=0;m<l;m++)r(m,d[m]),o[m]||(o[m]=new RegExp(d[m]),i[m]=new RegExp(g(d[m])));function y(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof h)return e;if("string"!=typeof e)return null;if(e.length>a)return null;if(!(t.loose?i[c.LOOSE]:i[c.FULL]).test(e))return null;try{return new h(e,t)}catch(e){return null}}function h(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof h){if(e.loose===t.loose)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>a)throw new TypeError("version is longer than "+a+" characters");if(!(this instanceof h))return new h(e,t);r("SemVer",e,t),this.options=t,this.loose=!!t.loose;var s=e.trim().match(t.loose?i[c.LOOSE]:i[c.FULL]);if(!s)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t<n)return t}return e}):this.prerelease=[],this.build=s[5]?s[5].split("."):[],this.format()}t.parse=y,t.valid=function(e,t){var r=y(e,t);return r?r.version:null},t.clean=function(e,t){var r=y(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null},t.SemVer=h,h.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},h.prototype.toString=function(){return this.version},h.prototype.compare=function(e){return r("SemVer.compare",this.version,this.options,e),e instanceof h||(e=new h(e,this.options)),this.compareMain(e)||this.comparePre(e)},h.prototype.compareMain=function(e){return e instanceof h||(e=new h(e,this.options)),v(this.major,e.major)||v(this.minor,e.minor)||v(this.patch,e.patch)},h.prototype.comparePre=function(e){if(e instanceof h||(e=new h(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;var t=0;do{var a=this.prerelease[t],n=e.prerelease[t];if(r("prerelease compare",t,a,n),void 0===a&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(a!==n)return v(a,n)}while(++t)},h.prototype.compareBuild=function(e){e instanceof h||(e=new h(e,this.options));var t=0;do{var a=this.build[t],n=e.build[t];if(r("prerelease compare",t,a,n),void 0===a&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(a!==n)return v(a,n)}while(++t)},h.prototype.inc=function(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var r=this.prerelease.length;--r>=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},t.inc=function(e,t,r,a){"string"==typeof r&&(a=r,r=void 0);try{return new h(e,r).inc(t,a).version}catch(e){return null}},t.diff=function(e,t){if(w(e,t))return null;var r=y(e),a=y(t),n="";if(r.prerelease.length||a.prerelease.length){n="pre";var s="prerelease"}for(var o in r)if(("major"===o||"minor"===o||"patch"===o)&&r[o]!==a[o])return n+o;return s},t.compareIdentifiers=v;var b=/^[0-9]+$/;function v(e,t){var r=b.test(e),a=b.test(t);return r&&a&&(e=+e,t=+t),e===t?0:r&&!a?-1:a&&!r?1:e<t?-1:1}function x(e,t,r){return new h(e,r).compare(new h(t,r))}function R(e,t,r){return x(e,t,r)>0}function j(e,t,r){return x(e,t,r)<0}function w(e,t,r){return 0===x(e,t,r)}function E(e,t,r){return 0!==x(e,t,r)}function S(e,t,r){return x(e,t,r)>=0}function T(e,t,r){return x(e,t,r)<=0}function P(e,t,r,a){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return w(e,r,a);case"!=":return E(e,r,a);case">":return R(e,r,a);case">=":return S(e,r,a);case"<":return j(e,r,a);case"<=":return T(e,r,a);default:throw new TypeError("Invalid operator: "+t)}}function A(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof A){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof A))return new A(e,t);e=e.trim().split(/\s+/).join(" "),r("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===k?this.value="":this.value=this.operator+this.semver.version,r("comp",this)}t.rcompareIdentifiers=function(e,t){return v(t,e)},t.major=function(e,t){return new h(e,t).major},t.minor=function(e,t){return new h(e,t).minor},t.patch=function(e,t){return new h(e,t).patch},t.compare=x,t.compareLoose=function(e,t){return x(e,t,!0)},t.compareBuild=function(e,t,r){var a=new h(e,r),n=new h(t,r);return a.compare(n)||a.compareBuild(n)},t.rcompare=function(e,t,r){return x(t,e,r)},t.sort=function(e,r){return e.sort(function(e,a){return t.compareBuild(e,a,r)})},t.rsort=function(e,r){return e.sort(function(e,a){return t.compareBuild(a,e,r)})},t.gt=R,t.lt=j,t.eq=w,t.neq=E,t.gte=S,t.lte=T,t.cmp=P,t.Comparator=A;var k={};function C(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof C)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new C(e.raw,t);if(e instanceof A)return new C(e.value,t);if(!(this instanceof C))return new C(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}function _(e,t){for(var r=!0,a=e.slice(),n=a.pop();r&&a.length;)r=a.every(function(e){return n.intersects(e,t)}),n=a.pop();return r}function I(e){return!e||"x"===e.toLowerCase()||"*"===e}function D(e,t,r,a,n,s,o,i,d,c,l,u,p){return((t=I(r)?"":I(a)?">="+r+".0.0":I(n)?">="+r+"."+a+".0":">="+t)+" "+(i=I(d)?"":I(c)?"<"+(+d+1)+".0.0":I(l)?"<"+d+"."+(+c+1)+".0":u?"<="+d+"."+c+"."+l+"-"+u:"<="+i)).trim()}function O(e,t,a){for(var n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!a.includePrerelease){for(n=0;n<e.length;n++)if(r(e[n].semver),e[n].semver!==k&&e[n].semver.prerelease.length>0){var s=e[n].semver;if(s.major===t.major&&s.minor===t.minor&&s.patch===t.patch)return!0}return!1}return!0}function N(e,t,r){try{t=new C(t,r)}catch(e){return!1}return t.test(e)}function B(e,t,r,a){var n,s,o,i,d;switch(e=new h(e,a),t=new C(t,a),r){case">":n=R,s=T,o=j,i=">",d=">=";break;case"<":n=j,s=S,o=R,i="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(N(e,t,a))return!1;for(var c=0;c<t.set.length;++c){var l=t.set[c],u=null,p=null;if(l.forEach(function(e){e.semver===k&&(e=new A(">=0.0.0")),u=u||e,p=p||e,n(e.semver,u.semver,a)?u=e:o(e.semver,p.semver,a)&&(p=e)}),u.operator===i||u.operator===d)return!1;if((!p.operator||p.operator===i)&&s(e,p.semver))return!1;if(p.operator===d&&o(e,p.semver))return!1}return!0}A.prototype.parse=function(e){var t=this.options.loose?i[c.COMPARATORLOOSE]:i[c.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new h(r[2],this.options.loose):this.semver=k},A.prototype.toString=function(){return this.value},A.prototype.test=function(e){if(r("Comparator.test",e,this.options.loose),this.semver===k||e===k)return!0;if("string"==typeof e)try{e=new h(e,this.options)}catch(e){return!1}return P(e,this.operator,this.semver,this.options)},A.prototype.intersects=function(e,t){if(!(e instanceof A))throw new TypeError("a Comparator is required");var r;if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new C(e.value,t),N(this.value,r,t));if(""===e.operator)return""===e.value||(r=new C(this.value,t),N(e.semver,r,t));var a=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),s=this.semver.version===e.semver.version,o=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),i=P(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),d=P(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return a||n||s&&o||i||d},t.Range=C,C.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range},C.prototype.toString=function(){return this.range},C.prototype.parseRange=function(e){var t=this.options.loose,a=t?i[c.HYPHENRANGELOOSE]:i[c.HYPHENRANGE];e=e.replace(a,D),r("hyphen replace",e),e=e.replace(i[c.COMPARATORTRIM],"$1$2$3"),r("comparator trim",e,i[c.COMPARATORTRIM]),e=(e=(e=e.replace(i[c.TILDETRIM],"$1~")).replace(i[c.CARETTRIM],"$1^")).split(/\s+/).join(" ");var n=t?i[c.COMPARATORLOOSE]:i[c.COMPARATOR],s=e.split(" ").map(function(e){return function(e,t){return r("comp",e,t),e=function(e,t){return e.trim().split(/\s+/).map(function(e){return function(e,t){r("caret",e,t);var a=t.loose?i[c.CARETLOOSE]:i[c.CARET];return e.replace(a,function(t,a,n,s,o){var i;return r("caret",e,t,a,n,s,o),I(a)?i="":I(n)?i=">="+a+".0.0 <"+(+a+1)+".0.0":I(s)?i="0"===a?">="+a+"."+n+".0 <"+a+"."+(+n+1)+".0":">="+a+"."+n+".0 <"+(+a+1)+".0.0":o?(r("replaceCaret pr",o),i="0"===a?"0"===n?">="+a+"."+n+"."+s+"-"+o+" <"+a+"."+n+"."+(+s+1):">="+a+"."+n+"."+s+"-"+o+" <"+a+"."+(+n+1)+".0":">="+a+"."+n+"."+s+"-"+o+" <"+(+a+1)+".0.0"):(r("no pr"),i="0"===a?"0"===n?">="+a+"."+n+"."+s+" <"+a+"."+n+"."+(+s+1):">="+a+"."+n+"."+s+" <"+a+"."+(+n+1)+".0":">="+a+"."+n+"."+s+" <"+(+a+1)+".0.0"),r("caret return",i),i})}(e,t)}).join(" ")}(e,t),r("caret",e),e=function(e,t){return e.trim().split(/\s+/).map(function(e){return function(e,t){var a=t.loose?i[c.TILDELOOSE]:i[c.TILDE];return e.replace(a,function(t,a,n,s,o){var i;return r("tilde",e,t,a,n,s,o),I(a)?i="":I(n)?i=">="+a+".0.0 <"+(+a+1)+".0.0":I(s)?i=">="+a+"."+n+".0 <"+a+"."+(+n+1)+".0":o?(r("replaceTilde pr",o),i=">="+a+"."+n+"."+s+"-"+o+" <"+a+"."+(+n+1)+".0"):i=">="+a+"."+n+"."+s+" <"+a+"."+(+n+1)+".0",r("tilde return",i),i})}(e,t)}).join(" ")}(e,t),r("tildes",e),e=function(e,t){return r("replaceXRanges",e,t),e.split(/\s+/).map(function(e){return function(e,t){e=e.trim();var a=t.loose?i[c.XRANGELOOSE]:i[c.XRANGE];return e.replace(a,function(a,n,s,o,i,d){r("xRange",e,a,n,s,o,i,d);var c=I(s),l=c||I(o),u=l||I(i),p=u;return"="===n&&p&&(n=""),d=t.includePrerelease?"-0":"",c?a=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(l&&(o=0),i=0,">"===n?(n=">=",l?(s=+s+1,o=0,i=0):(o=+o+1,i=0)):"<="===n&&(n="<",l?s=+s+1:o=+o+1),a=n+s+"."+o+"."+i+d):l?a=">="+s+".0.0"+d+" <"+(+s+1)+".0.0"+d:u&&(a=">="+s+"."+o+".0"+d+" <"+s+"."+(+o+1)+".0"+d),r("xRange return",a),a})}(e,t)}).join(" ")}(e,t),r("xrange",e),e=function(e,t){return r("replaceStars",e,t),e.trim().replace(i[c.STAR],"")}(e,t),r("stars",e),e}(e,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(s=s.filter(function(e){return!!e.match(n)})),s=s.map(function(e){return new A(e,this.options)},this)},C.prototype.intersects=function(e,t){if(!(e instanceof C))throw new TypeError("a Range is required");return this.set.some(function(r){return _(r,t)&&e.set.some(function(e){return _(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t)})})})})},t.toComparators=function(e,t){return new C(e,t).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})},C.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new h(e,this.options)}catch(e){return!1}for(var t=0;t<this.set.length;t++)if(O(this.set[t],e,this.options))return!0;return!1},t.satisfies=N,t.maxSatisfying=function(e,t,r){var a=null,n=null;try{var s=new C(t,r)}catch(e){return null}return e.forEach(function(e){s.test(e)&&(a&&-1!==n.compare(e)||(n=new h(a=e,r)))}),a},t.minSatisfying=function(e,t,r){var a=null,n=null;try{var s=new C(t,r)}catch(e){return null}return e.forEach(function(e){s.test(e)&&(a&&1!==n.compare(e)||(n=new h(a=e,r)))}),a},t.minVersion=function(e,t){e=new C(e,t);var r=new h("0.0.0");if(e.test(r))return r;if(r=new h("0.0.0-0"),e.test(r))return r;r=null;for(var a=0;a<e.set.length;++a){e.set[a].forEach(function(e){var t=new h(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!R(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}if(r&&e.test(r))return r;return null},t.validRange=function(e,t){try{return new C(e,t).range||"*"}catch(e){return null}},t.ltr=function(e,t,r){return B(e,t,"<",r)},t.gtr=function(e,t,r){return B(e,t,">",r)},t.outside=B,t.prerelease=function(e,t){var r=y(e,t);return r&&r.prerelease.length?r.prerelease:null},t.intersects=function(e,t,r){return e=new C(e,r),t=new C(t,r),e.intersects(t)},t.coerce=function(e,t){if(e instanceof h)return e;"number"==typeof e&&(e=String(e));if("string"!=typeof e)return null;var r=null;if((t=t||{}).rtl){for(var a;(a=i[c.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&a.index+a[0].length===r.index+r[0].length||(r=a),i[c.COERCERTL].lastIndex=a.index+a[1].length+a[2].length;i[c.COERCERTL].lastIndex=-1}else r=e.match(i[c.COERCE]);if(null===r)return null;return y(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}}(Khe,Khe.exports)),Khe.exports}var Jhe,Yhe,$he,Qhe,Zhe={},ebe=cR(qU),tbe={},rbe=cR(r);function abe(){if(Qhe)return tbe;Qhe=1,tbe.__esModule=!0,tbe.createUtilsGetter=function(e){return function(t){var n=t.findParent(function(e){return e.isProgram()});return{injectGlobalImport:function(t,s){e.storeAnonymous(n,t,s,function(e,t){return e?a.statement.ast(Jhe||(Jhe=h(["require(",")"])),t):r.importDeclaration([],t)})},injectNamedImport:function(t,s,i,d){return void 0===i&&(i=s),e.storeNamed(n,t,s,d,function(e,t,s){var d=n.scope.generateUidIdentifier(i);return{node:e?o(a.statement.ast(Yhe||(Yhe=h(["\n var "," = require(",").","\n "])),d,t,s)):r.importDeclaration([r.importSpecifier(d,s)],t),name:d.name}})},injectDefaultImport:function(t,s,i){return void 0===s&&(s=t),e.storeNamed(n,t,"default",i,function(e,t){var i=n.scope.generateUidIdentifier(s);return{node:e?o(a.statement.ast($he||($he=h(["var "," = require(",")"])),i,t)):r.importDeclaration([r.importDefaultSpecifier(i)],t),name:i.name}})}}}},tbe.getImportSource=function(e){var t=e.node;if(0===t.specifiers.length)return t.source.value},tbe.getRequireSource=function(e){var t=e.node;if(!r.isExpressionStatement(t))return;var a=t.expression;if(r.isCallExpression(a)&&r.isIdentifier(a.callee)&&"require"===a.callee.name&&1===a.arguments.length&&r.isStringLiteral(a.arguments[0]))return a.arguments[0].value},tbe.has=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},tbe.intersection=function(e,t){var r=new Set;return e.forEach(function(e){return t.has(e)&&r.add(e)}),r},tbe.resolveKey=function e(t,r){void 0===r&&(r=!1);var a=t.scope;if(t.isStringLiteral())return t.node.value;var n=t.isIdentifier();if(n&&!r&&!t.parent.computed)return t.node.name;if(r&&t.isMemberExpression()&&t.get("object").isIdentifier({name:"Symbol"})&&!a.hasBinding("Symbol",!0)){var s=e(t.get("property"),t.node.computed);if(s)return"Symbol."+s}if(n?a.hasBinding(t.node.name,!0):t.isPure()){var o=t.evaluate().value;if("string"==typeof o)return o}},tbe.resolveSource=function(e){if(e.isMemberExpression()&&e.get("property").isIdentifier({name:"prototype"})){var t=s(e.get("object"));return t?{id:t,placement:"prototype"}:{id:null,placement:null}}var r=s(e);if(r)return{id:r,placement:"static"};var a=n(e);switch(null==a?void 0:a.type){case"RegExpLiteral":return{id:"RegExp",placement:"prototype"};case"FunctionExpression":return{id:"Function",placement:"prototype"};case"StringLiteral":return{id:"String",placement:"prototype"};case"NumberLiteral":return{id:"Number",placement:"prototype"};case"BooleanLiteral":return{id:"Boolean",placement:"prototype"};case"ObjectExpression":return{id:"Object",placement:"prototype"};case"ArrayExpression":return{id:"Array",placement:"prototype"}}return{id:null,placement:null}};var e=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o}(e,t)}(rbe);var t=e.default||e,r=t.types,a=t.template;function n(e,t){if(void 0===t&&(t=new Set),!t.has(e)){if(t.add(e),e.isVariableDeclarator()){if(e.get("id").isIdentifier())return n(e.get("init"),t)}else if(e.isReferencedIdentifier()){var r=e.scope.getBinding(e.node.name);if(!r)return e;if(!r.constant)return;return n(r.path,t)}return e}}function s(e){if(e.isIdentifier()&&!e.scope.hasBinding(e.node.name,!0))return e.node.name;var t=n(e);return null!=t&&t.isIdentifier()?t.node.name:void 0}function o(e){return e._blockHoist=3,e}return tbe}var nbe,sbe={};var obe,ibe={};var dbe,cbe={};function lbe(){if(dbe)return cbe;dbe=1,cbe.__esModule=!0,cbe.applyMissingDependenciesDefaults=function(e,t){var r=e.missingDependencies,a=void 0===r?{}:r;if(!1===a)return!1;var n=t.caller(function(e){return null==e?void 0:e.name}),s=a.log,o=void 0===s?"deferred":s,i=a.inject,d=void 0===i?"rollup-plugin-babel"===n?"throw":"import":i,c=a.all,l=void 0!==c&&c;return{log:o,inject:d,all:l}},cbe.validateIncludeExclude=function(r,a,n,s){var o,d=function(e){var t=function(e){if(e instanceof RegExp)return e;try{return new RegExp("^"+e+"$")}catch(e){return null}}(e);if(!t)return!1;for(var r,n=!1,s=i(a.keys());!(r=s()).done;){var d=r.value;t.test(d)&&(n=!0,o.add(d))}return!n},c=o=new Set,l=Array.from(n).filter(d),u=o=new Set,p=Array.from(s).filter(d),f=(0,e.intersection)(c,u);if(f.size>0||l.length>0||p.length>0)throw new Error('Error while validating the "'+r+'" provider options:\n'+t("include",l)+t("exclude",p)+function(e){return e.size?' - The following polyfills were matched both by "include" and "exclude" patterns:\n'+Array.from(e,function(e){return" "+e+"\n"}).join(""):""}(f));return{include:c,exclude:u}};var e=abe();function t(e,t){return t.length?' - The following "'+e+"\" patterns didn't match any polyfill:\n"+t.map(function(e){return" "+String(e)+"\n"}).join(""):""}return cbe}var ube,pbe={},fbe={};function gbe(){if(ube)return fbe;ube=1,fbe.__esModule=!0,fbe.default=void 0;var e=abe();function t(e){if(e.removed)return!0;if(!e.parentPath)return!1;var r,a;if(e.listKey){if(null==(r=e.parentPath.node)||null==(r=r[e.listKey])||!r.includes(e.node))return!0}else if((null==(a=e.parentPath.node)?void 0:a[e.key])!==e.node)return!0;return t(e.parentPath)}return fbe.default=function(r){function a(e,t,a,n){return r({kind:"property",object:e,key:t,placement:a},n)}function n(e){var t=e.node.name;e.scope.getBindingIdentifier(t)||r({kind:"global",name:t},e)}function s(t){var r=(0,e.resolveKey)(t.get("property"),t.node.computed);return{key:r,handleAsMemberExpression:!!r&&"prototype"!==r}}return{ReferencedIdentifier:function(e){var t=e.parentPath;t.isMemberExpression({object:e.node})&&s(t).handleAsMemberExpression||n(e)},"MemberExpression|OptionalMemberExpression":function(r){var o=s(r),i=o.key;if(o.handleAsMemberExpression){var d=r.get("object"),c=d.isIdentifier();if(c){var l=d.scope.getBinding(d.node.name);if(l){if(l.path.isImportNamespaceSpecifier())return;c=!1}}var u=(0,e.resolveSource)(d),p=a(u.id,i,u.placement,r);p||(p=!c||r.shouldSkip||d.shouldSkip||t(d)),p||n(d)}},ObjectPattern:function(t){var r,n=t.parentPath,s=t.parent;if(n.isVariableDeclarator())r=n.get("init");else if(n.isAssignmentExpression())r=n.get("right");else if(n.isFunction()){var o=n.parentPath;(o.isCallExpression()||o.isNewExpression())&&o.node.callee===s&&(r=o.get("arguments")[t.key])}var d=null,c=null;if(r){var l=(0,e.resolveSource)(r);d=l.id,c=l.placement}for(var u,p=i(t.get("properties"));!(u=p()).done;){var f=u.value;if(f.isObjectProperty()){var g=(0,e.resolveKey)(f.get("key"));g&&a(d,g,c,f)}}},BinaryExpression:function(t){if("in"===t.node.operator){var a=(0,e.resolveSource)(t.get("right")),n=(0,e.resolveKey)(t.get("left"),!0);n&&r({kind:"in",object:a.id,key:n,placement:a.placement},t)}}}},fbe}var mbe,ybe,hbe={};function bbe(){if(ybe)return pbe;ybe=1,pbe.__esModule=!0,pbe.usage=pbe.entry=void 0;var e=r(gbe());pbe.usage=e.default;var t=r(function(){if(mbe)return hbe;mbe=1,hbe.__esModule=!0,hbe.default=void 0;var e=abe();return hbe.default=function(t){return{ImportDeclaration:function(r){var a=(0,e.getImportSource)(r);a&&t({kind:"import",source:a},r)},Program:function(r){r.get("body").forEach(function(r){var a=(0,e.getRequireSource)(r);a&&t({kind:"import",source:a},r)})}}},hbe}());function r(e){return e&&e.__esModule?e:{default:e}}return pbe.entry=t.default,pbe}var vbe,xbe={};var Rbe,jbe,wbe,Ebe,Sbe,Tbe={};function Pbe(){if(jbe)return Zhe;jbe=1,Zhe.__esModule=!0,Zhe.default=function(o){return(0,e.declare)(function(e,p,f){e.assertVersion("^7.0.0 || ^8.0.0-alpha.0");var m,y=e.traverse,h=(0,s.applyMissingDependenciesDefaults)(p,e),b=function(e,n,o,i,d,p){var f,m,y,h,b,v=function(e,t){var r,a,n=e.method,s=e.targets,o=e.ignoreBrowserslistConfig,i=e.configPath,d=e.debug,c=e.shouldInjectPolyfill,l=e.absoluteImports,p=function(e,t){if(null==e)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;r[a]=e[a]}return r}(e,u);if(f=e,0===Object.keys(f).length)throw new Error('This plugin requires options, for example:\n {\n "plugins": [\n ["<plugin name>", { method: "usage-pure" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md');var f;if("usage-global"===n)r="usageGlobal";else if("entry-global"===n)r="entryGlobal";else{if("usage-pure"!==n)throw"string"!=typeof n?new Error(".method must be a string"):new Error('.method must be one of "entry-global", "usage-global" or "usage-pure" (received '+JSON.stringify(n)+")");r="usagePure"}if("function"==typeof c){if(e.include||e.exclude)throw new Error(".include and .exclude are not supported when using the .shouldInjectPolyfill function.")}else if(null!=c)throw new Error(".shouldInjectPolyfill must be a function, or undefined (received "+JSON.stringify(c)+")");if(null!=l&&"boolean"!=typeof l&&"string"!=typeof l)throw new Error(".absoluteImports must be a boolean, a string, or undefined (received "+JSON.stringify(l)+")");if(s||i||o){var m="string"==typeof s||Array.isArray(s)?{browsers:s}:s;a=g(m,{ignoreBrowserslistConfig:o,configPath:i})}else a=t.targets();return{method:n,methodName:r,targets:a,absoluteImports:null!=l&&l,shouldInjectPolyfill:c,debug:!!d,providerOptions:p}}(n,p),x=v.method,R=v.methodName,j=v.targets,w=v.debug,E=v.shouldInjectPolyfill,S=v.providerOptions,T=v.absoluteImports,P=(0,r.createUtilsGetter)(new a.default(function(e){return c.resolve(i,e,T)},function(e){var t,r;return null!=(t=null==(r=h)?void 0:r.get(e))?t:1/0})),A=new Map,k={babel:p,getUtils:P,method:n.method,targets:j,createMetaResolver:l.default,shouldInjectPolyfill:function(r){if(void 0===h)throw new Error("Internal error in the "+e.name+" provider: shouldInjectPolyfill() can't be called during initialization.");if(h.has(r)||console.warn("Internal error in the "+_+' provider: unknown polyfill "'+r+'".'),b&&!b(r))return!1;var a=(0,t.isRequired)(r,j,{compatData:y,includes:f,excludes:m});if(E&&"boolean"!=typeof(a=E(r,a)))throw new Error(".shouldInjectPolyfill must return a boolean.");return a},debug:function(e){var t;d().found=!0,w&&e&&(d().polyfills.has(_)||(d().polyfills.add(e),null!=(t=d()).polyfillsSupport||(t.polyfillsSupport=y)))},assertDependency:function(e,t){if(void 0===t&&(t="*"),!1!==o&&!T){var r="*"===t?e:e+"@^"+t,a=!o.all&&function(e,t,r){var a=e.get(t);void 0===a&&(a=r(),e.set(t,a));return a}(A,e+" :: "+i,function(){return c.has(i,e)});a||d().missingDeps.add(r)}}},C=e(k,S,i),_=C.name||e.name;if("function"!=typeof C[R])throw new Error('The "'+_+'" provider doesn\'t support the "'+x+'" polyfilling method.');Array.isArray(C.polyfills)?(h=new Map(C.polyfills.map(function(e,t){return[e,t]})),b=C.filterPolyfills):C.polyfills?(h=new Map(Object.keys(C.polyfills).map(function(e,t){return[e,t]})),y=C.polyfills,b=C.filterPolyfills):h=new Map;var I,D=(0,s.validateIncludeExclude)(_,h,S.include||[],S.exclude||[]);f=D.include,m=D.exclude,I="usageGlobal"===R?function(e,t){var r,a=P(t);return null!=(r=C[R](e,a,t))&&r}:function(e,t){var r=P(t);return C[R](e,r,t),!1};return{debug:w,method:x,targets:j,provider:C,providerName:_,callProvider:I}}(o,p,h,f,function(){return m},e),v=b.debug,x=b.method,R=b.targets,j=b.provider,w=b.providerName,E=b.callProvider,S="entry-global"===x?d.entry:d.usage,T=j.visitor?y.visitors.merge([S(E),j.visitor]):S(E);v&&v!==n.presetEnvSilentDebugHeader&&(console.log(w+": `DEBUG` option"),console.log("\nUsing targets: "+(0,n.stringifyTargetsMultiline)(R)),console.log("\nUsing polyfills with `"+x+"` method:"));var P=j.runtimeName;return{name:"inject-polyfills",visitor:T,pre:function(e){var t;P&&(e.get("runtimeHelpersModuleName")&&e.get("runtimeHelpersModuleName")!==P?console.warn("Two different polyfill providers ("+e.get("runtimeHelpersModuleProvider")+" and "+w+") are trying to define two conflicting @babel/runtime alternatives: "+e.get("runtimeHelpersModuleName")+" and "+P+". The second one will be ignored."):(e.set("runtimeHelpersModuleName",P),e.set("runtimeHelpersModuleProvider",w))),m={polyfills:new Set,polyfillsSupport:void 0,found:!1,providers:new Set,missingDeps:new Set},null==(t=j.pre)||t.apply(this,arguments)},post:function(){var e;if(null==(e=j.post)||e.apply(this,arguments),!1!==h&&("per-file"===h.log?c.logMissing(m.missingDeps):c.laterLogMissing(m.missingDeps)),v)if(this.filename&&console.log("\n["+this.filename+"]"),0!==m.polyfills.size){"entry-global"===x?console.log("The "+w+" polyfill entry has been replaced with the following polyfills:"):console.log("The "+w+" polyfill added the following polyfills:");for(var r,a=i(m.polyfills);!(r=a()).done;){var n,s=r.value;if(null!=(n=m.polyfillsSupport)&&n[s]){var o=(0,t.getInclusionReasons)(s,R,m.polyfillsSupport),d=JSON.stringify(o).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }');console.log(" "+s+" "+d)}else console.log(" "+s)}}else console.log("entry-global"===x?m.found?"Based on your targets, the "+w+" polyfill did not add any polyfill.":"The entry point for the "+w+" polyfill has not been found.":"Based on your code and targets, the "+w+" polyfill did not add any polyfill.")}}})};var e=zV,t=f(ebe),r=abe(),a=p(function(){if(nbe)return sbe;nbe=1,sbe.__esModule=!0,sbe.default=void 0;var e=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o}(e,t)}(rbe),t=(e.default||e).types,r=function(){function e(e,t){this._imports=new WeakMap,this._anonymousImports=new WeakMap,this._lastImports=new WeakMap,this._resolver=e,this._getPreferredIndex=t}var r=e.prototype;return r.storeAnonymous=function(e,r,a,n){var s=this._normalizeKey(e,r),o=this._ensure(this._anonymousImports,e,Set);if(!o.has(s)){var i=n("script"===e.node.sourceType,t.stringLiteral(this._resolver(r)));o.add(s),this._injectImport(e,i,a)}},r.storeNamed=function(e,r,a,n,s){var o=this._normalizeKey(e,r,a),i=this._ensure(this._imports,e,Map);if(!i.has(o)){var d=s("script"===e.node.sourceType,t.stringLiteral(this._resolver(r)),t.identifier(a)),c=d.node,l=d.name;i.set(o,l),this._injectImport(e,c,n)}return t.identifier(i.get(o))},r._injectImport=function(e,t,r){var a,n,s=this._getPreferredIndex(r),o=null!=(a=this._lastImports.get(e))?a:[],d=function(t){return t.node&&t.parent===e.node&&t.container===e.node.body};if(s===1/0)o.length>0&&(d(n=o[o.length-1].path)||(n=void 0));else for(var c,l=i(o.entries());!(c=l()).done;){var u=y(c.value,2),p=u[0],f=u[1],g=f.path,m=f.index;if(d(g)){if(s<m){var h=y(g.insertBefore(t),1)[0];return void o.splice(p,0,{path:h,index:s})}n=g}}if(n){var b=y(n.insertAfter(t),1)[0];o.push({path:b,index:s})}else{var v=y(e.unshiftContainer("body",[t]),1)[0];this._lastImports.set(e,[{path:v,index:s}])}},r._ensure=function(e,t,r){var a=e.get(t);return a||(a=new r,e.set(t,a)),a},r._normalizeKey=function(e,t,r){void 0===r&&(r="");var a=e.node.sourceType;return(r&&a)+"::"+t+"::"+r},o(e)}();return sbe.default=r,sbe}()),n=function(){if(obe)return ibe;obe=1,ibe.__esModule=!0,ibe.presetEnvSilentDebugHeader=void 0,ibe.stringifyTargets=function(e){return JSON.stringify(e).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }')},ibe.stringifyTargetsMultiline=function(t){return JSON.stringify((0,e.prettifyTargets)(t),null,2)};var e=ebe;return ibe.presetEnvSilentDebugHeader="#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets",ibe}(),s=lbe(),d=f(bbe()),c=f((vbe||(vbe=1,xbe.__esModule=!0,xbe.has=function(e,t){return!0},xbe.laterLogMissing=function(e){},xbe.logMissing=function(e){},xbe.resolve=function(e,t,r){if(!1===r)return t;throw new Error('"absoluteImports" is not supported in bundles prepared for the browser.')}),xbe)),l=p(function(){if(Rbe)return Tbe;Rbe=1,Tbe.__esModule=!0,Tbe.default=function(r){var a=r.static,n=r.instance,s=r.global;return function(r){if("global"===r.kind&&s&&(0,e.has)(s,r.name))return{kind:"global",desc:s[r.name],name:r.name};if("property"===r.kind||"in"===r.kind){var o=r.placement,i=r.object,d=r.key;if(i&&"static"===o){if(s&&t.has(i)&&(0,e.has)(s,d))return{kind:"global",desc:s[d],name:d};if(a&&(0,e.has)(a,i)&&(0,e.has)(a[i],d))return{kind:"static",desc:a[i][d],name:i+"$"+d}}if(n&&(0,e.has)(n,d))return{kind:"instance",desc:n[d],name:""+d}}}};var e=abe(),t=new Set(["global","globalThis","self","window"]);return Tbe}()),u=["method","targets","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","absoluteImports"];function p(e){return e&&e.__esModule?e:{default:e}}function f(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(f=function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o})(e,t)}var g=t.default.default||t.default;return Zhe}function Abe(){if(wbe)return Lhe;wbe=1,Lhe.__esModule=!0,Lhe.default=void 0;var e=o(Uhe),t=function(){if(Mhe)return qhe;Mhe=1,qhe.__esModule=!0,qhe.StaticProperties=qhe.InstanceProperties=qhe.CommonIterators=qhe.BuiltIns=void 0;var e,t=(e=Uhe)&&e.__esModule?e:{default:e},r=function(e,t,r,a){return void 0===r&&(r=[]),{name:e,pure:t,global:r,meta:a}},a=function(e,t,a){return void 0===a&&(a=null),r(t[0],e,t,{minRuntimeVersion:a})},n=function(e){return r(e[0],null,e)},s=function(e,t){return r(t,e,[])},o=["es6.object.to-string","es6.array.iterator","web.dom.iterable"],i=qhe.CommonIterators=["es6.string.iterator"].concat(o),d=["es6.object.to-string","es6.promise"];qhe.BuiltIns={DataView:n(["es6.typed.data-view"]),Float32Array:n(["es6.typed.float32-array"]),Float64Array:n(["es6.typed.float64-array"]),Int8Array:n(["es6.typed.int8-array"]),Int16Array:n(["es6.typed.int16-array"]),Int32Array:n(["es6.typed.int32-array"]),Map:a("map",["es6.map"].concat(b(i))),Number:n(["es6.number.constructor"]),Promise:a("promise",d),RegExp:n(["es6.regexp.constructor"]),Set:a("set",["es6.set"].concat(b(i))),Symbol:a("symbol/index",["es6.symbol"]),Uint8Array:n(["es6.typed.uint8-array"]),Uint8ClampedArray:n(["es6.typed.uint8-clamped-array"]),Uint16Array:n(["es6.typed.uint16-array"]),Uint32Array:n(["es6.typed.uint32-array"]),WeakMap:a("weak-map",["es6.weak-map"].concat(b(i))),WeakSet:a("weak-set",["es6.weak-set"].concat(b(i))),setImmediate:s("set-immediate","web.immediate"),clearImmediate:s("clear-immediate","web.immediate"),parseFloat:s("parse-float","es6.parse-float"),parseInt:s("parse-int","es6.parse-int")};var c=qhe.InstanceProperties={__defineGetter__:n(["es7.object.define-getter"]),__defineSetter__:n(["es7.object.define-setter"]),__lookupGetter__:n(["es7.object.lookup-getter"]),__lookupSetter__:n(["es7.object.lookup-setter"]),anchor:n(["es6.string.anchor"]),big:n(["es6.string.big"]),bind:n(["es6.function.bind"]),blink:n(["es6.string.blink"]),bold:n(["es6.string.bold"]),codePointAt:n(["es6.string.code-point-at"]),copyWithin:n(["es6.array.copy-within"]),endsWith:n(["es6.string.ends-with"]),entries:n(o),every:n(["es6.array.every"]),fill:n(["es6.array.fill"]),filter:n(["es6.array.filter"]),finally:n(["es7.promise.finally"].concat(d)),find:n(["es6.array.find"]),findIndex:n(["es6.array.find-index"]),fixed:n(["es6.string.fixed"]),flags:n(["es6.regexp.flags"]),flatMap:n(["es7.array.flat-map"]),fontcolor:n(["es6.string.fontcolor"]),fontsize:n(["es6.string.fontsize"]),forEach:n(["es6.array.for-each"]),includes:n(["es6.string.includes","es7.array.includes"]),indexOf:n(["es6.array.index-of"]),italics:n(["es6.string.italics"]),keys:n(o),lastIndexOf:n(["es6.array.last-index-of"]),link:n(["es6.string.link"]),map:n(["es6.array.map"]),match:n(["es6.regexp.match"]),name:n(["es6.function.name"]),padStart:n(["es7.string.pad-start"]),padEnd:n(["es7.string.pad-end"]),reduce:n(["es6.array.reduce"]),reduceRight:n(["es6.array.reduce-right"]),repeat:n(["es6.string.repeat"]),replace:n(["es6.regexp.replace"]),search:n(["es6.regexp.search"]),small:n(["es6.string.small"]),some:n(["es6.array.some"]),sort:n(["es6.array.sort"]),split:n(["es6.regexp.split"]),startsWith:n(["es6.string.starts-with"]),strike:n(["es6.string.strike"]),sub:n(["es6.string.sub"]),sup:n(["es6.string.sup"]),toISOString:n(["es6.date.to-iso-string"]),toJSON:n(["es6.date.to-json"]),toString:n(["es6.object.to-string","es6.date.to-string","es6.regexp.to-string"]),trim:n(["es6.string.trim"]),trimEnd:n(["es7.string.trim-right"]),trimLeft:n(["es7.string.trim-left"]),trimRight:n(["es7.string.trim-right"]),trimStart:n(["es7.string.trim-left"]),values:n(o)};return"es6.array.slice"in t.default&&(c.slice=n(["es6.array.slice"])),qhe.StaticProperties={Array:{from:a("array/from",["es6.symbol","es6.array.from"].concat(b(i))),isArray:a("array/is-array",["es6.array.is-array"]),of:a("array/of",["es6.array.of"])},Date:{now:a("date/now",["es6.date.now"])},JSON:{stringify:s("json/stringify","es6.symbol")},Math:{acosh:a("math/acosh",["es6.math.acosh"],"7.0.1"),asinh:a("math/asinh",["es6.math.asinh"],"7.0.1"),atanh:a("math/atanh",["es6.math.atanh"],"7.0.1"),cbrt:a("math/cbrt",["es6.math.cbrt"],"7.0.1"),clz32:a("math/clz32",["es6.math.clz32"],"7.0.1"),cosh:a("math/cosh",["es6.math.cosh"],"7.0.1"),expm1:a("math/expm1",["es6.math.expm1"],"7.0.1"),fround:a("math/fround",["es6.math.fround"],"7.0.1"),hypot:a("math/hypot",["es6.math.hypot"],"7.0.1"),imul:a("math/imul",["es6.math.imul"],"7.0.1"),log1p:a("math/log1p",["es6.math.log1p"],"7.0.1"),log10:a("math/log10",["es6.math.log10"],"7.0.1"),log2:a("math/log2",["es6.math.log2"],"7.0.1"),sign:a("math/sign",["es6.math.sign"],"7.0.1"),sinh:a("math/sinh",["es6.math.sinh"],"7.0.1"),tanh:a("math/tanh",["es6.math.tanh"],"7.0.1"),trunc:a("math/trunc",["es6.math.trunc"],"7.0.1")},Number:{EPSILON:a("number/epsilon",["es6.number.epsilon"]),MIN_SAFE_INTEGER:a("number/min-safe-integer",["es6.number.min-safe-integer"]),MAX_SAFE_INTEGER:a("number/max-safe-integer",["es6.number.max-safe-integer"]),isFinite:a("number/is-finite",["es6.number.is-finite"]),isInteger:a("number/is-integer",["es6.number.is-integer"]),isSafeInteger:a("number/is-safe-integer",["es6.number.is-safe-integer"]),isNaN:a("number/is-nan",["es6.number.is-nan"]),parseFloat:a("number/parse-float",["es6.number.parse-float"]),parseInt:a("number/parse-int",["es6.number.parse-int"])},Object:{assign:a("object/assign",["es6.object.assign"]),create:a("object/create",["es6.object.create"]),defineProperties:a("object/define-properties",["es6.object.define-properties"]),defineProperty:a("object/define-property",["es6.object.define-property"]),entries:a("object/entries",["es7.object.entries"]),freeze:a("object/freeze",["es6.object.freeze"]),getOwnPropertyDescriptor:a("object/get-own-property-descriptor",["es6.object.get-own-property-descriptor"]),getOwnPropertyDescriptors:a("object/get-own-property-descriptors",["es7.object.get-own-property-descriptors"]),getOwnPropertyNames:a("object/get-own-property-names",["es6.object.get-own-property-names"]),getOwnPropertySymbols:a("object/get-own-property-symbols",["es6.symbol"]),getPrototypeOf:a("object/get-prototype-of",["es6.object.get-prototype-of"]),is:a("object/is",["es6.object.is"]),isExtensible:a("object/is-extensible",["es6.object.is-extensible"]),isFrozen:a("object/is-frozen",["es6.object.is-frozen"]),isSealed:a("object/is-sealed",["es6.object.is-sealed"]),keys:a("object/keys",["es6.object.keys"]),preventExtensions:a("object/prevent-extensions",["es6.object.prevent-extensions"]),seal:a("object/seal",["es6.object.seal"]),setPrototypeOf:a("object/set-prototype-of",["es6.object.set-prototype-of"]),values:a("object/values",["es7.object.values"])},Promise:{all:n(i),race:n(i)},Reflect:{apply:a("reflect/apply",["es6.reflect.apply"]),construct:a("reflect/construct",["es6.reflect.construct"]),defineProperty:a("reflect/define-property",["es6.reflect.define-property"]),deleteProperty:a("reflect/delete-property",["es6.reflect.delete-property"]),get:a("reflect/get",["es6.reflect.get"]),getOwnPropertyDescriptor:a("reflect/get-own-property-descriptor",["es6.reflect.get-own-property-descriptor"]),getPrototypeOf:a("reflect/get-prototype-of",["es6.reflect.get-prototype-of"]),has:a("reflect/has",["es6.reflect.has"]),isExtensible:a("reflect/is-extensible",["es6.reflect.is-extensible"]),ownKeys:a("reflect/own-keys",["es6.reflect.own-keys"]),preventExtensions:a("reflect/prevent-extensions",["es6.reflect.prevent-extensions"]),set:a("reflect/set",["es6.reflect.set"]),setPrototypeOf:a("reflect/set-prototype-of",["es6.reflect.set-prototype-of"])},String:{at:s("string/at","es7.string.at"),fromCodePoint:a("string/from-code-point",["es6.string.from-code-point"]),raw:a("string/raw",["es6.string.raw"])},Symbol:{asyncIterator:n(["es6.symbol","es7.symbol.async-iterator"]),for:s("symbol/for","es6.symbol"),hasInstance:s("symbol/has-instance","es6.symbol"),isConcatSpreadable:s("symbol/is-concat-spreadable","es6.symbol"),iterator:r("es6.symbol","symbol/iterator",i),keyFor:s("symbol/key-for","es6.symbol"),match:a("symbol/match",["es6.regexp.match"]),replace:s("symbol/replace","es6.symbol"),search:s("symbol/search","es6.symbol"),species:s("symbol/species","es6.symbol"),split:s("symbol/split","es6.symbol"),toPrimitive:s("symbol/to-primitive","es6.symbol"),toStringTag:s("symbol/to-string-tag","es6.symbol"),unscopables:s("symbol/unscopables","es6.symbol")}},qhe}(),r=o(function(){if(Ghe)return Whe;function e(){return e=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},e.apply(null,arguments)}Ghe=1,Whe.__esModule=!0,Whe.default=function(a,n,s){var o=Object.keys(a),i=!o.length,d=o.some(function(e){return"node"!==e});return e({},s,"usage-pure"===n?r:null,i||d?t:null)};var t={"web.timers":{},"web.immediate":{},"web.dom.iterable":{}},r={"es6.parse-float":{},"es6.parse-int":{},"es7.string.at":{}};return Whe}()),a=function(){if(Hhe)return zhe;Hhe=1,zhe.__esModule=!0,zhe.hasMinVersion=function(e,r){return!r||!e||(r=String(r),t.default.valid(r)&&(r="^"+r),!t.default.intersects("<"+e,r)&&!t.default.intersects(">=8.0.0",r))};var e,t=(e=Xhe())&&e.__esModule?e:{default:e};return zhe}(),n=o(Pbe()),s=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o}(e,t)}(rbe);function o(e){return e&&e.__esModule?e:{default:e}}var i=(s.default||s).types,d="@babel/runtime-corejs2",c=Function.call.bind(Object.hasOwnProperty);return Lhe.default=(0,n.default)(function(n,s){var o=s["#__secret_key__@babel/preset-env__compatibility"],l=void 0===o?{}:o,u=l.entryInjectRegenerator,p=void 0!==u&&u,f=l.noRuntimeName,g=void 0!==f&&f,m=s["#__secret_key__@babel/runtime__compatibility"],y=void 0===m?{}:m,h=y.useBabelRuntime,b=void 0!==h&&h,v=y.runtimeVersion,x=void 0===v?"":v,R=y.ext,j=void 0===R?".js":R,w=n.createMetaResolver({global:t.BuiltIns,static:t.StaticProperties,instance:t.InstanceProperties}),E=n.debug,S=n.shouldInjectPolyfill,T=n.method,P=(0,r.default)(n.targets,T,e.default),A=b?d+"/core-js":"usage-pure"===T?"core-js/library/fn":"core-js/modules";function k(e,t){"string"!=typeof e?e.forEach(function(e){return k(e,t)}):c(P,e)&&S(e)&&(E(e),t.injectGlobalImport(A+"/"+e+".js"))}return{name:"corejs2",runtimeName:g?null:d,polyfills:P,entryGlobal:function(e,t,r){"import"===e.kind&&"core-js"===e.source&&(E(null),k(Object.keys(P),t),p&&t.injectGlobalImport("regenerator-runtime/runtime.js"),r.remove())},usageGlobal:function(e,t){var r=w(e);if(r){var a=r.desc.global;if("global"!==r.kind&&"object"in e&&e.object&&"prototype"===e.placement){var n=e.object.toLowerCase();a=a.filter(function(e){return e.includes(n)})}k(a,t)}},usagePure:function(e,t,r){if("in"!==e.kind){if(!r.parentPath.isUnaryExpression({operator:"delete"})){if("property"===e.kind){if(!r.isMemberExpression())return;if(!r.isReferenced())return;if("Symbol.iterator"===e.key&&S("es6.symbol")&&r.parentPath.isCallExpression({callee:r.node})&&0===r.parentPath.node.arguments.length)return r.parentPath.replaceWith(i.callExpression(t.injectDefaultImport(A+"/get-iterator"+j,"getIterator"),[r.node.object])),void r.skip()}var n=w(e);if(n){var s=function(e,t,r){var n=e.pure,s=e.meta,o=e.name;if(n&&S(o)&&(!(x&&s&&s.minRuntimeVersion)||(0,a.hasMinVersion)(s&&s.minRuntimeVersion,x)))return b&&"symbol/index"===n&&(n="symbol"),r.injectDefaultImport(A+"/"+n+j,t)}(n.desc,n.name,t);s&&r.replaceWith(s)}}}else"Symbol.iterator"===e.key&&r.replaceWith(i.callExpression(t.injectDefaultImport(A+"/is-iterable"+j,"isIterable"),[r.node.right]))},visitor:"usage-global"===T&&{YieldExpression:function(e){e.node.delegate&&k("web.dom.iterable",n.getUtils(e))},"ForOfStatement|ArrayPattern":function(e){t.CommonIterators.forEach(function(t){return k(t,n.getUtils(e))})}}}}),Lhe}var kbe,Cbe,_be={},Ibe={"es.symbol":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.symbol.description":{android:"70",bun:"0.1.1",chrome:"70","chrome-android":"70",deno:"1.0",edge:"79",electron:"5.0",firefox:"63","firefox-android":"63",ios:"12.2",node:"11.0",oculus:"6.0",opera:"57","opera-android":"49",opera_mobile:"49",quest:"6.0",rhino:"1.8.0",safari:"12.1",samsung:"10.0"},"es.symbol.async-dispose":{android:"127",bun:"1.0.23",chrome:"127","chrome-android":"127",deno:"1.38",edge:"127",electron:"32.0",firefox:"135","firefox-android":"135",node:"20.5.0",oculus:"35.0",opera:"113","opera-android":"84",opera_mobile:"84",quest:"35.0",samsung:"28.0"},"es.symbol.async-iterator":{android:"63",bun:"0.1.1",chrome:"63","chrome-android":"63",deno:"1.0",edge:"79",electron:"3.0",firefox:"55","firefox-android":"55",ios:"12.0",node:"10.0",oculus:"5.0",opera:"50","opera-android":"46",opera_mobile:"46",quest:"5.0",safari:"12.0",samsung:"8.0"},"es.symbol.dispose":{android:"125",bun:"1.0.23",chrome:"125","chrome-android":"125",deno:"1.38",edge:"125",electron:"31.0",firefox:"135","firefox-android":"135",node:"20.5.0",oculus:"34.0",opera:"111","opera-android":"83",opera_mobile:"83",quest:"34.0",samsung:"27.0"},"es.symbol.has-instance":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"15",electron:"1.1",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.is-concat-spreadable":{android:"48",bun:"0.1.1",chrome:"48","chrome-android":"48",deno:"1.0",edge:"15",electron:"0.37",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"35","opera-android":"35",opera_mobile:"35",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.iterator":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"36","firefox-android":"36",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.symbol.match":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"40","firefox-android":"40",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.match-all":{android:"73",bun:"0.1.1",chrome:"73","chrome-android":"73",deno:"1.0",edge:"79",electron:"5.0",firefox:"67","firefox-android":"67",hermes:"0.6",ios:"13.0",node:"12.0",oculus:"6.0",opera:"60","opera-android":"52",opera_mobile:"52",quest:"6.0","react-native":"0.69",rhino:"1.8.0",safari:"13",samsung:"11.0"},"es.symbol.replace":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.search":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.species":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"41","firefox-android":"41",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.split":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.to-primitive":{android:"47",bun:"0.1.1",chrome:"47","chrome-android":"47",deno:"1.0",edge:"15",electron:"0.36",firefox:"44","firefox-android":"44",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"34","opera-android":"34",opera_mobile:"34",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.to-string-tag":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.symbol.unscopables":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"48","firefox-android":"48",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.error.cause":{android:"94",bun:"0.1.1",chrome:"94","chrome-android":"94",deno:"1.14",edge:"94",electron:"15.0",firefox:"91","firefox-android":"91",hermes:"0.8",ios:"15.0",node:"16.11",oculus:"18.0",opera:"80","opera-android":"66",opera_mobile:"66",quest:"18.0","react-native":"0.69",rhino:"1.8.0",safari:"15.0",samsung:"17.0"},"es.error.is-error":{android:"134",chrome:"134","chrome-android":"134",deno:"2.2",edge:"134",electron:"35.0",firefox:"138","firefox-android":"138",node:"24.3",oculus:"38.0",opera:"119","opera-android":"88",opera_mobile:"88",quest:"38.0",rhino:"1.9.0",samsung:"29.0"},"es.error.to-string":{android:"4.4.3",bun:"0.1.1",chrome:"33","chrome-android":"33",deno:"1.0",edge:"12",electron:"0.20",firefox:"11","firefox-android":"11",hermes:"0.1",ie:"9",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"20","opera-android":"20",opera_mobile:"20",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"8.0",samsung:"2.0"},"es.aggregate-error":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.2",edge:"85",electron:"10.0",firefox:"79","firefox-android":"79",hermes:"0.13",ios:"14.0",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0","react-native":"0.72",rhino:"1.8.0",safari:"14.0",samsung:"14.0"},"es.aggregate-error.cause":{android:"94",bun:"0.1.1",chrome:"94","chrome-android":"94",deno:"1.14",edge:"94",electron:"15.0",firefox:"91","firefox-android":"91",hermes:"0.13",ios:"15.0",node:"16.11",oculus:"18.0",opera:"80","opera-android":"66",opera_mobile:"66",quest:"18.0","react-native":"0.72",rhino:"1.8.0",safari:"15.0",samsung:"17.0"},"es.suppressed-error.constructor":{android:"136",bun:"1.2.15",chrome:"136","chrome-android":"136",deno:"2.2.10",edge:"136",electron:"36.0",firefox:"141","firefox-android":"141",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",samsung:"29.0"},"es.array.at":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",hermes:"0.13",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",rhino:"1.7.15",safari:"15.4",samsung:"16.0"},"es.array.concat":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"48","firefox-android":"48",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.array.copy-within":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"12",electron:"0.31",firefox:"48","firefox-android":"48",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0",rhino:"1.8.0",safari:"9.0",samsung:"5.0"},"es.array.every":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.array.fill":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"12",electron:"0.31",firefox:"48","firefox-android":"48",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0",rhino:"1.8.0",safari:"9.0",samsung:"5.0"},"es.array.filter":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"48","firefox-android":"48",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.array.find":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"48","firefox-android":"48",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0",rhino:"1.8.0",safari:"9.0",samsung:"5.0"},"es.array.find-index":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"48","firefox-android":"48",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0",rhino:"1.8.0",safari:"9.0",samsung:"5.0"},"es.array.find-last":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",rhino:"1.8.0",safari:"15.4",samsung:"18.0"},"es.array.find-last-index":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",rhino:"1.8.0",safari:"15.4",samsung:"18.0"},"es.array.flat":{android:"69",bun:"0.1.1",chrome:"69","chrome-android":"69",deno:"1.0",edge:"79",electron:"4.0",firefox:"62","firefox-android":"62",hermes:"0.4",ios:"12.0",node:"11.0",oculus:"6.0",opera:"56","opera-android":"48",opera_mobile:"48",quest:"6.0","react-native":"0.69",rhino:"1.7.15",safari:"12.0",samsung:"10.0"},"es.array.flat-map":{android:"69",bun:"0.1.1",chrome:"69","chrome-android":"69",deno:"1.0",edge:"79",electron:"4.0",firefox:"62","firefox-android":"62",hermes:"0.4",ios:"12.0",node:"11.0",oculus:"6.0",opera:"56","opera-android":"48",opera_mobile:"48",quest:"6.0","react-native":"0.69",rhino:"1.7.15",safari:"12.0",samsung:"10.0"},"es.array.for-each":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.array.from":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"53","firefox-android":"53",hermes:"0.13",ios:"9.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"9.0",samsung:"5.0"},"es.array.includes":{android:"53",bun:"0.1.1",chrome:"53","chrome-android":"53",deno:"1.0",edge:"14",electron:"1.4",firefox:"102","firefox-android":"102",ios:"10.0",node:"7.0",oculus:"3.0",opera:"40","opera-android":"40",opera_mobile:"40",quest:"3.0",rhino:"1.8.0",safari:"10.0",samsung:"6.0"},"es.array.index-of":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"12",electron:"1.2",firefox:"47","firefox-android":"47",hermes:"0.1",ie:"9",ios:"8.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"5.0"},"es.array.is-array":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"3.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"4.0",samsung:"1.0"},"es.array.iterator":{android:"66",bun:"0.1.1",chrome:"66","chrome-android":"66",deno:"1.0",edge:"15",electron:"3.0",firefox:"60","firefox-android":"60",ios:"10.0",node:"10.0",oculus:"5.0",opera:"53","opera-android":"47",opera_mobile:"47",quest:"5.0",rhino:"1.8.0",safari:"10.0",samsung:"9.0"},"es.array.join":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"13",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.array.last-index-of":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"12",electron:"1.2",firefox:"47","firefox-android":"47",hermes:"0.1",ie:"9",ios:"8.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"5.0"},"es.array.map":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"50","firefox-android":"50",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.array.of":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"9.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"5.0"},"es.array.push":{android:"122",bun:"0.1.1",chrome:"122","chrome-android":"122",deno:"1.41.3",edge:"122",electron:"29.0",firefox:"55","firefox-android":"55",hermes:"0.2",ios:"16.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0","react-native":"0.69",safari:"16.0",samsung:"26.0"},"es.array.reduce":{android:"83",bun:"0.1.1",chrome:"83","chrome-android":"83",deno:"1.0",edge:"12",electron:"9.0",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"6.0",oculus:"10.0",opera:"69","opera-android":"59",opera_mobile:"59",quest:"10.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"13.0"},"es.array.reduce-right":{android:"83",bun:"0.1.1",chrome:"83","chrome-android":"83",deno:"1.0",edge:"12",electron:"9.0",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"6.0",oculus:"10.0",opera:"69","opera-android":"59",opera_mobile:"59",quest:"10.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"13.0"},"es.array.reverse":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"5.5",ios:"12.2",node:"0.0.3",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"12.0.2",samsung:"1.0"},"es.array.slice":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"48","firefox-android":"48",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.array.some":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.array.sort":{android:"70",bun:"0.1.1",chrome:"70","chrome-android":"70",deno:"1.0",edge:"79",electron:"5.0",firefox:"4","firefox-android":"4",hermes:"0.10",ios:"12.0",node:"11.0",oculus:"6.0",opera:"57","opera-android":"49",opera_mobile:"49",quest:"6.0","react-native":"0.69",rhino:"1.8.0",safari:"12.0",samsung:"10.0"},"es.array.species":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"48","firefox-android":"48",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.array.splice":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"49","firefox-android":"49",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",safari:"10.0",samsung:"5.0"},"es.array.to-reversed":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",hermes:"0.13",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"es.array.to-sorted":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"es.array.to-spliced":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",hermes:"0.13",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"es.array.unscopables.flat":{android:"73",bun:"0.1.1",chrome:"73","chrome-android":"73",deno:"1.0",edge:"79",electron:"5.0",firefox:"67","firefox-android":"67",ios:"13.0",node:"12.0",oculus:"6.0",opera:"60","opera-android":"52",opera_mobile:"52",quest:"6.0",rhino:"1.8.0",safari:"13",samsung:"11.0"},"es.array.unscopables.flat-map":{android:"73",bun:"0.1.1",chrome:"73","chrome-android":"73",deno:"1.0",edge:"79",electron:"5.0",firefox:"67","firefox-android":"67",ios:"13.0",node:"12.0",oculus:"6.0",opera:"60","opera-android":"52",opera_mobile:"52",quest:"6.0",rhino:"1.8.0",safari:"13",samsung:"11.0"},"es.array.unshift":{android:"71",bun:"0.1.1",chrome:"71","chrome-android":"71",deno:"1.0",edge:"12",electron:"5.0",firefox:"23","firefox-android":"23",hermes:"0.1",ie:"9",ios:"16.0",node:"12.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0","react-native":"0.69",safari:"16.0",samsung:"10.0"},"es.array.with":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"140","firefox-android":"140",hermes:"0.13",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"es.array-buffer.constructor":{android:"4.4",bun:"0.1.1",chrome:"28","chrome-android":"28",deno:"1.0",edge:"14",electron:"0.20",firefox:"44","firefox-android":"44",hermes:"0.1",ios:"12.0",node:"0.11.1",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"12.0",samsung:"1.5"},"es.array-buffer.is-view":{android:"4.4.3",bun:"0.1.1",chrome:"32","chrome-android":"32",deno:"1.0",edge:"12",electron:"0.20",firefox:"29","firefox-android":"29",hermes:"0.1",ie:"11",ios:"8.0",node:"0.11.9",oculus:"3.0",opera:"19","opera-android":"19",opera_mobile:"19",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"7.1",samsung:"2.0"},"es.array-buffer.slice":{android:"4.4.3",bun:"0.1.1",chrome:"31","chrome-android":"31",deno:"1.0",edge:"12",electron:"0.20",firefox:"46","firefox-android":"46",hermes:"0.1",ie:"11",ios:"12.2",node:"0.11.8",oculus:"3.0",opera:"18","opera-android":"18",opera_mobile:"18",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"12.1",samsung:"2.0"},"es.data-view":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"15","firefox-android":"15",hermes:"0.1",ie:"10",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.data-view.get-float16":{android:"135",bun:"1.1.23",chrome:"135","chrome-android":"135",deno:"1.43",edge:"135",electron:"36.0",firefox:"129","firefox-android":"129",ios:"18.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"18.2",samsung:"29.0"},"es.data-view.set-float16":{android:"135",bun:"1.1.23",chrome:"135","chrome-android":"135",deno:"1.43",edge:"135",electron:"36.0",firefox:"129","firefox-android":"129",ios:"18.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"18.2",samsung:"29.0"},"es.array-buffer.detached":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",rhino:"1.9.0",safari:"17.4",samsung:"23.0"},"es.array-buffer.transfer":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",rhino:"1.9.0",safari:"17.4",samsung:"23.0"},"es.array-buffer.transfer-to-fixed-length":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",rhino:"1.9.0",safari:"17.4",samsung:"23.0"},"es.date.get-year":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"9",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.date.now":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",hermes:"0.1",ie:"9",ios:"3.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"4.0",samsung:"1.0"},"es.date.set-year":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"3",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.date.to-gmt-string":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"3",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.date.to-iso-string":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"7","firefox-android":"7",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.date.to-json":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"10.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"1.5"},"es.date.to-primitive":{android:"47",bun:"0.1.1",chrome:"47","chrome-android":"47",deno:"1.0",edge:"15",electron:"0.36",firefox:"44","firefox-android":"44",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"34","opera-android":"34",opera_mobile:"34",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.date.to-string":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",hermes:"0.1",ie:"9",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.disposable-stack.constructor":{android:"136",bun:"1.3.0",chrome:"136","chrome-android":"136",deno:"2.2.10",edge:"136",electron:"36.0",firefox:"141","firefox-android":"141",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",samsung:"29.0"},"es.escape":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"3",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.function.bind":{android:"3.0",bun:"0.1.1",chrome:"7","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"5.0",node:"0.1.101",oculus:"3.0",opera:"12","opera-android":"12",opera_mobile:"12",phantom:"2.0",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"5.1",samsung:"1.0"},"es.function.has-instance":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"50","firefox-android":"50",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.function.name":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",hermes:"0.1",ios:"3.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"4.0",samsung:"1.0"},"es.global-this":{android:"71",bun:"0.1.1",chrome:"71","chrome-android":"71",deno:"1.0",edge:"79",electron:"5.0",firefox:"65","firefox-android":"65",hermes:"0.2",ios:"12.2",node:"12.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0","react-native":"0.69",rhino:"1.7.14",safari:"12.1",samsung:"10.0"},"es.iterator.constructor":{android:"122",bun:"1.1.31",chrome:"122","chrome-android":"122",deno:"1.38.1",edge:"122",electron:"29.0",firefox:"131","firefox-android":"131",ios:"18.4",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",safari:"18.4",samsung:"26.0"},"es.iterator.concat":{bun:"1.3.7",firefox:"147","firefox-android":"147"},"es.iterator.dispose":{android:"136",bun:"1.3.0",chrome:"136","chrome-android":"136",deno:"2.2.10",edge:"136",electron:"36.0",firefox:"135","firefox-android":"135",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",samsung:"29.0"},"es.iterator.drop":{android:"135",bun:"1.2.11",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"es.iterator.every":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"es.iterator.filter":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"es.iterator.find":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"es.iterator.flat-map":{android:"135",bun:"1.2.21",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.2",samsung:"29.0"},"es.iterator.for-each":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"es.iterator.from":{android:"122",bun:"1.2.5",chrome:"122","chrome-android":"122",deno:"1.38.1",edge:"122",electron:"29.0",firefox:"131","firefox-android":"131",ios:"26.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",safari:"26.0",samsung:"26.0"},"es.iterator.map":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"es.iterator.reduce":{android:"135",bun:"1.2.11",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"es.iterator.some":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"es.iterator.take":{android:"135",bun:"1.2.11",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"es.iterator.to-array":{android:"122",bun:"1.1.31",chrome:"122","chrome-android":"122",deno:"1.38.1",edge:"122",electron:"29.0",firefox:"131","firefox-android":"131",ios:"18.4",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",safari:"18.4",samsung:"26.0"},"es.json.is-raw-json":{android:"114",bun:"1.1.43",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"135","firefox-android":"135",ios:"18.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"18.4",samsung:"23.0"},"es.json.parse":{android:"114",bun:"1.1.43",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"135","firefox-android":"135",ios:"18.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"18.4",samsung:"23.0"},"es.json.raw-json":{android:"114",bun:"1.1.43",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"135","firefox-android":"135",ios:"18.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"18.4",samsung:"23.0"},"es.json.stringify":{android:"114",bun:"1.1.43",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"135","firefox-android":"135",ios:"18.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"18.4",samsung:"23.0"},"es.json.to-string-tag":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"15",electron:"1.1",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.map":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"53","firefox-android":"53",hermes:"0.13",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.map.group-by":{android:"117",bun:"1.1.2",chrome:"117","chrome-android":"117",deno:"1.37",edge:"117",electron:"27.0",firefox:"119","firefox-android":"119",ios:"18.0",node:"21.0",oculus:"30.0",opera:"103","opera-android":"78",opera_mobile:"78",quest:"30.0",rhino:"1.8.0",safari:"18.0",samsung:"24.0"},"es.map.get-or-insert":{android:"145",bun:"1.2.20",chrome:"145","chrome-android":"145",edge:"145",electron:"41.0",firefox:"144","firefox-android":"144",ios:"26.2",opera:"129",safari:"26.2"},"es.map.get-or-insert-computed":{android:"145",bun:"1.2.20",chrome:"145","chrome-android":"145",edge:"145",electron:"41.0",firefox:"144","firefox-android":"144",ios:"26.2",opera:"129",safari:"26.2"},"es.math.acosh":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"13",electron:"1.4",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0","react-native":"0.69",safari:"7.1",samsung:"6.0"},"es.math.asinh":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"13",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.atanh":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"13",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.cbrt":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.clz32":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"31","firefox-android":"31",hermes:"0.1",ios:"9.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.0"},"es.math.cosh":{android:"39",bun:"0.1.1",chrome:"39","chrome-android":"39",deno:"1.0",edge:"13",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"1.0",oculus:"3.0",opera:"26","opera-android":"26",opera_mobile:"26",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.4"},"es.math.expm1":{android:"39",bun:"0.1.1",chrome:"39","chrome-android":"39",deno:"1.0",edge:"13",electron:"0.20",firefox:"46","firefox-android":"46",hermes:"0.1",ios:"8.0",node:"1.0",oculus:"3.0",opera:"26","opera-android":"26",opera_mobile:"26",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.4"},"es.math.fround":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"26","firefox-android":"26",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.f16round":{android:"135",bun:"1.1.23",chrome:"135","chrome-android":"135",deno:"1.43",edge:"135",electron:"36.0",firefox:"129","firefox-android":"129",ios:"18.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",rhino:"1.9.0",safari:"18.2",samsung:"29.0"},"es.math.hypot":{android:"78",bun:"0.1.1",chrome:"78","chrome-android":"78",deno:"1.0",edge:"12",electron:"7.0",firefox:"27","firefox-android":"27",hermes:"0.1",ios:"8.0",node:"12.16",oculus:"8.0",opera:"65","opera-android":"56",opera_mobile:"56",quest:"8.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"12.0"},"es.math.imul":{android:"4.4",bun:"0.1.1",chrome:"28","chrome-android":"28",deno:"1.0",edge:"13",electron:"0.20",firefox:"20","firefox-android":"20",hermes:"0.1",ios:"9.0",node:"0.11.1",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"1.5"},"es.math.log10":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.log1p":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.log2":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.sign":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"9.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.0"},"es.math.sinh":{android:"39",bun:"0.1.1",chrome:"39","chrome-android":"39",deno:"1.0",edge:"13",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"1.0",oculus:"3.0",opera:"26","opera-android":"26",opera_mobile:"26",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.4"},"es.math.sum-precise":{bun:"1.2.18",firefox:"137","firefox-android":"137",ios:"26.2",safari:"26.2"},"es.math.tanh":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.math.to-string-tag":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"15",electron:"1.1",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.math.trunc":{android:"38",bun:"0.1.1",chrome:"38","chrome-android":"38",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"8.0",node:"0.11.15",oculus:"3.0",opera:"25","opera-android":"25",opera_mobile:"25",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.number.constructor":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"46","firefox-android":"46",hermes:"0.5",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.number.epsilon":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"25","firefox-android":"25",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"9.0",samsung:"2.0"},"es.number.is-finite":{android:"4.1",bun:"0.1.1",chrome:"19","chrome-android":"25",deno:"1.0",edge:"12",electron:"0.20",firefox:"16","firefox-android":"16",hermes:"0.1",ios:"9.0",node:"0.7.3",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"1.5"},"es.number.is-integer":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"16","firefox-android":"16",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.number.is-nan":{android:"4.1",bun:"0.1.1",chrome:"19","chrome-android":"25",deno:"1.0",edge:"12",electron:"0.20",firefox:"15","firefox-android":"15",hermes:"0.1",ios:"9.0",node:"0.7.3",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"1.5"},"es.number.is-safe-integer":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"32","firefox-android":"32",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.number.max-safe-integer":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"31","firefox-android":"31",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.number.min-safe-integer":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"31","firefox-android":"31",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.number.parse-float":{android:"37",bun:"0.1.1",chrome:"35","chrome-android":"35",deno:"1.0",edge:"79",electron:"0.20",firefox:"39","firefox-android":"39",hermes:"0.1",ios:"11.0",node:"0.11.13",oculus:"3.0",opera:"22","opera-android":"22",opera_mobile:"22",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"11.0",samsung:"3.0"},"es.number.parse-int":{android:"37",bun:"0.1.1",chrome:"35","chrome-android":"35",deno:"1.0",edge:"79",electron:"0.20",firefox:"39","firefox-android":"39",hermes:"0.1",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"22","opera-android":"22",opera_mobile:"22",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"9.0",samsung:"3.0"},"es.number.to-exponential":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"18",electron:"1.2",firefox:"87","firefox-android":"87",hermes:"0.1",ios:"11.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"11",samsung:"5.0"},"es.number.to-fixed":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"79",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.number.to-precision":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"8",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"1.5"},"es.object.assign":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"79",electron:"0.37",firefox:"36","firefox-android":"36",hermes:"0.4",ios:"9.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"9.0",samsung:"5.0"},"es.object.create":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"3.0",node:"0.1.27",oculus:"3.0",opera:"12","opera-android":"12",opera_mobile:"12",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"4.0",samsung:"1.0"},"es.object.define-getter":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"16",electron:"3.0",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"8.0",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"8.0"},"es.object.define-properties":{android:"37",bun:"0.1.1",chrome:"37","chrome-android":"37",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"5.0",node:"0.11.15",oculus:"3.0",opera:"12","opera-android":"12",opera_mobile:"12",phantom:"2.0",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"5.1",samsung:"3.0"},"es.object.define-property":{android:"37",bun:"0.1.1",chrome:"37","chrome-android":"37",deno:"1.0",edge:"12",electron:"0.20",firefox:"4","firefox-android":"4",hermes:"0.1",ie:"9",ios:"5.0",node:"0.11.15",oculus:"3.0",opera:"12","opera-android":"12",opera_mobile:"12",phantom:"2.0",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"5.1",samsung:"3.0"},"es.object.define-setter":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"16",electron:"3.0",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"8.0",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"8.0"},"es.object.entries":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"14",electron:"1.4",firefox:"47","firefox-android":"47",hermes:"0.1",ios:"10.3",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"10.1",samsung:"6.0"},"es.object.freeze":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.from-entries":{android:"73",bun:"0.1.1",chrome:"73","chrome-android":"73",deno:"1.0",edge:"79",electron:"5.0",firefox:"63","firefox-android":"63",hermes:"0.4",ios:"12.2",node:"12.0",oculus:"6.0",opera:"60","opera-android":"52",opera_mobile:"52",quest:"6.0","react-native":"0.69",rhino:"1.7.14",safari:"12.1",samsung:"11.0"},"es.object.get-own-property-descriptor":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.get-own-property-descriptors":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"50","firefox-android":"50",hermes:"0.6",ios:"10.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"6.0"},"es.object.get-own-property-names":{android:"40",bun:"0.1.1",chrome:"40","chrome-android":"40",deno:"1.0",edge:"13",electron:"0.21",firefox:"34","firefox-android":"34",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"27","opera-android":"27",opera_mobile:"27",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.object.get-prototype-of":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.group-by":{android:"117",bun:"1.1.2",chrome:"117","chrome-android":"117",deno:"1.37",edge:"117",electron:"27.0",firefox:"119","firefox-android":"119",ios:"18.0",node:"21.0",oculus:"30.0",opera:"103","opera-android":"78",opera_mobile:"78",quest:"30.0",rhino:"1.8.0",safari:"18.0",samsung:"24.0"},"es.object.has-own":{android:"93",bun:"0.1.1",chrome:"93","chrome-android":"93",deno:"1.13",edge:"93",electron:"14.0",firefox:"92","firefox-android":"92",hermes:"0.10",ios:"15.4",node:"16.9",oculus:"17.0",opera:"79","opera-android":"66",opera_mobile:"66",quest:"17.0","react-native":"0.69",rhino:"1.7.15",safari:"15.4",samsung:"17.0"},"es.object.is":{android:"4.1",bun:"0.1.1",chrome:"19","chrome-android":"25",deno:"1.0",edge:"12",electron:"0.20",firefox:"22","firefox-android":"22",hermes:"0.1",ios:"9.0",node:"0.7.3",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"1.5"},"es.object.is-extensible":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.is-frozen":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.is-sealed":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.keys":{android:"40",bun:"0.1.1",chrome:"40","chrome-android":"40",deno:"1.0",edge:"13",electron:"0.21",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"27","opera-android":"27",opera_mobile:"27",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.object.lookup-getter":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"16",electron:"3.0",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"8.0",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"8.0"},"es.object.lookup-setter":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"16",electron:"3.0",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"8.0",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"8.0"},"es.object.prevent-extensions":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.proto":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",hermes:"0.1",ie:"11",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"3.1",samsung:"1.0"},"es.object.seal":{android:"44",bun:"0.1.1",chrome:"44","chrome-android":"44",deno:"1.0",edge:"13",electron:"0.30",firefox:"35","firefox-android":"35",hermes:"0.1",ios:"9.0",node:"3.0",oculus:"3.0",opera:"31","opera-android":"31",opera_mobile:"31",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"4.0"},"es.object.set-prototype-of":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"12",electron:"0.20",firefox:"31","firefox-android":"31",hermes:"0.1",ie:"11",ios:"9.0",node:"0.11.13",oculus:"3.0",opera:"21","opera-android":"21",opera_mobile:"21",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"2.0"},"es.object.to-string":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.object.values":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"14",electron:"1.4",firefox:"47","firefox-android":"47",hermes:"0.1",ios:"10.3",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"10.1",samsung:"6.0"},"es.parse-float":{android:"37",bun:"0.1.1",chrome:"35","chrome-android":"35",deno:"1.0",edge:"74",electron:"0.20",firefox:"8","firefox-android":"8",hermes:"0.1",ie:"8",ios:"8.0",node:"0.11.13",oculus:"3.0",opera:"22","opera-android":"22",opera_mobile:"22",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.parse-int":{android:"37",bun:"0.1.1",chrome:"35","chrome-android":"35",deno:"1.0",edge:"74",electron:"0.20",firefox:"21","firefox-android":"21",hermes:"0.1",ie:"9",ios:"8.0",node:"0.11.13",oculus:"3.0",opera:"22","opera-android":"22",opera_mobile:"22",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"7.1",samsung:"3.0"},"es.promise":{android:"67",bun:"0.1.1",chrome:"67","chrome-android":"67",deno:"1.24",edge:"79",electron:"4.0",firefox:"69","firefox-android":"69",ios:"11.0",node:"10.4",oculus:"6.0",opera:"54","opera-android":"48",opera_mobile:"48",quest:"6.0",rhino:"1.7.14",safari:"11.0",samsung:"9.0"},"es.promise.all-settled":{android:"76",bun:"0.1.1",chrome:"76","chrome-android":"76",deno:"1.24",edge:"79",electron:"6.0",firefox:"71","firefox-android":"71",ios:"13.0",node:"12.9",oculus:"7.0",opera:"63","opera-android":"54",opera_mobile:"54",quest:"7.0",rhino:"1.7.15",safari:"13",samsung:"12.0"},"es.promise.any":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.24",edge:"85",electron:"10.0",firefox:"79","firefox-android":"79",ios:"14.0",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0",rhino:"1.8.0",safari:"14.0",samsung:"14.0"},"es.promise.finally":{android:"67",bun:"0.1.1",chrome:"67","chrome-android":"67",deno:"1.24",edge:"79",electron:"4.0",firefox:"69","firefox-android":"69",ios:"13.2.3",node:"10.4",oculus:"6.0",opera:"54","opera-android":"48",opera_mobile:"48",quest:"6.0",rhino:"1.7.14",safari:"13.0.3",samsung:"9.0"},"es.promise.try":{android:"128",bun:"1.1.22",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"134","firefox-android":"134",ios:"18.2",node:"23.0",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",rhino:"1.9.0",safari:"18.2",samsung:"28.0"},"es.promise.with-resolvers":{android:"119",bun:"0.7.1",chrome:"119","chrome-android":"119",deno:"1.38",edge:"119",electron:"28.0",firefox:"121","firefox-android":"121",ios:"17.4",node:"22.0",oculus:"31.0",opera:"105","opera-android":"79",opera_mobile:"79",quest:"31.0",safari:"17.4",samsung:"25.0"},"es.array.from-async":{android:"121",bun:"1.1.2",chrome:"121","chrome-android":"121",deno:"1.38",edge:"121",electron:"29.0",firefox:"115","firefox-android":"115",ios:"18.0",node:"22.0",oculus:"32.0",opera:"107","opera-android":"81",opera_mobile:"81",quest:"32.0",rhino:"1.9.0",safari:"18.0",samsung:"25.0"},"es.async-disposable-stack.constructor":{android:"136",bun:"1.3.0",chrome:"136","chrome-android":"136",deno:"2.3.2",edge:"136",electron:"36.0",firefox:"141","firefox-android":"141",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",samsung:"29.0"},"es.async-iterator.async-dispose":{},"es.reflect.apply":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.construct":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"15",electron:"0.37",firefox:"44","firefox-android":"44",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.define-property":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"13",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.delete-property":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.get":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.get-own-property-descriptor":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.get-prototype-of":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.has":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.is-extensible":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.own-keys":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.prevent-extensions":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.set":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"79",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.reflect.set-prototype-of":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"12",electron:"0.37",firefox:"42","firefox-android":"42",hermes:"0.7",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.8.0",safari:"10.0",samsung:"5.0"},"es.reflect.to-string-tag":{android:"86",bun:"0.1.1",chrome:"86","chrome-android":"86",deno:"1.3",edge:"86",electron:"11.0",firefox:"82","firefox-android":"82",hermes:"0.7",ios:"14.0",node:"15.0",oculus:"12.0",opera:"72","opera-android":"61",opera_mobile:"61",quest:"12.0","react-native":"0.69",rhino:"1.8.0",safari:"14.0",samsung:"14.0"},"es.regexp.constructor":{android:"64",bun:"0.1.1",chrome:"64","chrome-android":"64",deno:"1.0",edge:"79",electron:"3.0",firefox:"78","firefox-android":"78",ios:"11.3",node:"10.0",oculus:"5.0",opera:"51","opera-android":"47",opera_mobile:"47",quest:"5.0",safari:"11.1",samsung:"9.0"},"es.regexp.escape":{android:"136",bun:"1.1.22",chrome:"136","chrome-android":"136",deno:"2.3.2",edge:"136",electron:"36.0",firefox:"134","firefox-android":"134",ios:"18.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",safari:"18.2",samsung:"29.0"},"es.regexp.dot-all":{android:"62",bun:"0.1.1",chrome:"62","chrome-android":"62",deno:"1.0",edge:"79",electron:"3.0",firefox:"78","firefox-android":"78",hermes:"0.4",ios:"11.3",node:"8.10",oculus:"5.0",opera:"49","opera-android":"46",opera_mobile:"46",quest:"5.0","react-native":"0.69",rhino:"1.7.15",safari:"11.1",samsung:"8.0"},"es.regexp.exec":{android:"64",bun:"0.1.1",chrome:"64","chrome-android":"64",deno:"1.0",edge:"79",electron:"3.0",firefox:"78","firefox-android":"78",hermes:"0.13",ios:"11.3",node:"10.0",oculus:"5.0",opera:"51","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.71",rhino:"1.9.0",safari:"11.1",samsung:"9.0"},"es.regexp.flags":{android:"111",bun:"0.1.1",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"78","firefox-android":"78",hermes:"0.4",ios:"11.3",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0","react-native":"0.69",safari:"11.1",samsung:"22.0"},"es.regexp.sticky":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"13",electron:"0.37",firefox:"3","firefox-android":"4",hermes:"0.3",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.regexp.test":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"46","firefox-android":"46",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0",safari:"10.0",samsung:"5.0"},"es.regexp.to-string":{android:"50",bun:"0.1.1",chrome:"50","chrome-android":"50",deno:"1.0",edge:"79",electron:"1.1",firefox:"46","firefox-android":"46",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"37","opera-android":"37",opera_mobile:"37",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.set":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"53","firefox-android":"53",hermes:"0.13",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.set.difference.v2":{android:"128",bun:"1.2.5",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"26.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"26.0",samsung:"28.0"},"es.set.intersection.v2":{android:"128",bun:"1.1.1",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"18.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"18.0",samsung:"28.0"},"es.set.is-disjoint-from.v2":{android:"128",bun:"1.1.1",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"18.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"18.0",samsung:"28.0"},"es.set.is-subset-of.v2":{android:"128",bun:"1.1.1",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"18.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"18.0",samsung:"28.0"},"es.set.is-superset-of.v2":{android:"128",bun:"1.1.1",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"18.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"18.0",samsung:"28.0"},"es.set.symmetric-difference.v2":{android:"123",bun:"1.2.5",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",ios:"26.0",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0",safari:"26.0",samsung:"27.0"},"es.set.union.v2":{android:"123",bun:"1.2.5",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",ios:"26.0",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0",safari:"26.0",samsung:"27.0"},"es.string.at-alternative":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",hermes:"0.13",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",safari:"15.4",samsung:"16.0"},"es.string.code-point-at":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"29","firefox-android":"29",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.string.ends-with":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"40","firefox-android":"40",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.string.from-code-point":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"29","firefox-android":"29",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.string.includes":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"40","firefox-android":"40",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.string.is-well-formed":{android:"111",bun:"0.4.0",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"119","firefox-android":"119",ios:"16.4",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0",rhino:"1.8.0",safari:"16.4",samsung:"22.0"},"es.string.iterator":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"36","firefox-android":"36",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.string.match":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.string.match-all":{android:"80",bun:"0.1.1",chrome:"80","chrome-android":"80",deno:"1.0",edge:"80",electron:"8.0",firefox:"73","firefox-android":"73",hermes:"0.6",ios:"13.4",node:"14.0",oculus:"9.0",opera:"67","opera-android":"57",opera_mobile:"57",quest:"9.0","react-native":"0.69",rhino:"1.8.0",safari:"13.1",samsung:"13.0"},"es.string.pad-end":{android:"57",bun:"0.1.1",chrome:"57","chrome-android":"57",deno:"1.0",edge:"15",electron:"1.7",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"11.0",node:"8.0",oculus:"3.0",opera:"44","opera-android":"43",opera_mobile:"43",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"11.0",samsung:"7.0"},"es.string.pad-start":{android:"57",bun:"0.1.1",chrome:"57","chrome-android":"57",deno:"1.0",edge:"15",electron:"1.7",firefox:"48","firefox-android":"48",hermes:"0.1",ios:"11.0",node:"8.0",oculus:"3.0",opera:"44","opera-android":"43",opera_mobile:"43",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"11.0",samsung:"7.0"},"es.string.raw":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"34","firefox-android":"34",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.14",safari:"9.0",samsung:"3.4"},"es.string.repeat":{android:"41",bun:"0.1.1",chrome:"41","chrome-android":"41",deno:"1.0",edge:"13",electron:"0.21",firefox:"24","firefox-android":"24",hermes:"0.1",ios:"9.0",node:"1.0",oculus:"3.0",opera:"28","opera-android":"28",opera_mobile:"28",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"9.0",samsung:"3.4"},"es.string.replace":{android:"64",bun:"0.1.1",chrome:"64","chrome-android":"64",deno:"1.0",edge:"79",electron:"3.0",firefox:"78","firefox-android":"78",hermes:"0.13",ios:"14.0",node:"10.0",oculus:"5.0",opera:"51","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.71",rhino:"1.9.0",safari:"14.0",samsung:"9.0"},"es.string.replace-all":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.2",edge:"85",electron:"10.0",firefox:"77","firefox-android":"77",hermes:"0.7",ios:"13.4",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0","react-native":"0.69",rhino:"1.7.15",safari:"13.1",samsung:"14.0"},"es.string.search":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"49","firefox-android":"49",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.string.split":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"79",electron:"1.4",firefox:"49","firefox-android":"49",ios:"10.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",rhino:"1.9.0",safari:"10.0",samsung:"6.0"},"es.string.starts-with":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"40","firefox-android":"40",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",rhino:"1.7.15",safari:"10.0",samsung:"5.0"},"es.string.substr":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"9",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"4","opera-android":"4",opera_mobile:"4",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.string.to-well-formed":{android:"111",bun:"0.5.7",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"119","firefox-android":"119",ios:"16.4",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0",rhino:"1.8.0",safari:"16.4",samsung:"22.0"},"es.string.trim":{android:"59",bun:"0.1.1",chrome:"59","chrome-android":"59",deno:"1.0",edge:"15",electron:"1.8",firefox:"52","firefox-android":"52",hermes:"0.1",ios:"12.2",node:"8.3",oculus:"4.0",opera:"46","opera-android":"43",opera_mobile:"43",quest:"4.0","react-native":"0.69",rhino:"1.8.0",safari:"12.1",samsung:"7.0"},"es.string.trim-end":{android:"66",bun:"0.1.1",chrome:"66","chrome-android":"66",deno:"1.0",edge:"79",electron:"3.0",firefox:"61","firefox-android":"61",hermes:"0.3",ios:"12.2",node:"10.0",oculus:"5.0",opera:"53","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.69",safari:"12.1",samsung:"9.0"},"es.string.trim-start":{android:"66",bun:"0.1.1",chrome:"66","chrome-android":"66",deno:"1.0",edge:"79",electron:"3.0",firefox:"61","firefox-android":"61",hermes:"0.3",ios:"12.0",node:"10.0",oculus:"5.0",opera:"53","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.69",safari:"12.0",samsung:"9.0"},"es.string.anchor":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"17","firefox-android":"17",ios:"6.0",node:"0.1.27",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",phantom:"2.0",quest:"3.0",rhino:"1.7.14",safari:"6.0",samsung:"1.0"},"es.string.big":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.blink":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.bold":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.fixed":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.fontcolor":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"17","firefox-android":"17",ios:"6.0",node:"0.1.27",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",phantom:"2.0",quest:"3.0",rhino:"1.7.14",safari:"6.0",samsung:"1.0"},"es.string.fontsize":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"17","firefox-android":"17",ios:"6.0",node:"0.1.27",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",phantom:"2.0",quest:"3.0",rhino:"1.7.14",safari:"6.0",samsung:"1.0"},"es.string.italics":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.link":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"17","firefox-android":"17",ios:"6.0",node:"0.1.27",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",phantom:"2.0",quest:"3.0",rhino:"1.7.14",safari:"6.0",samsung:"1.0"},"es.string.small":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.strike":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.sub":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.string.sup":{android:"3.0",bun:"0.1.1",chrome:"5","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"2","firefox-android":"4",ios:"2.0",node:"0.1.27",oculus:"3.0",opera:"10.50","opera-android":"10.50",opera_mobile:"10.50",phantom:"1.9",quest:"3.0",rhino:"1.7.13",safari:"3.1",samsung:"1.0"},"es.typed-array.float32-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.float64-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.int8-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.int16-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.int32-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.uint8-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.uint8-clamped-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.uint16-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.uint32-array":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.at":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",hermes:"0.13",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",rhino:"1.7.15",safari:"15.4",samsung:"16.0"},"es.typed-array.copy-within":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"34","firefox-android":"34",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.every":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.fill":{android:"58",bun:"0.1.1",chrome:"58","chrome-android":"58",deno:"1.0",edge:"79",electron:"1.7",firefox:"55","firefox-android":"55",hermes:"0.1",ios:"14.5",node:"8.0",oculus:"4.0",opera:"45","opera-android":"43",opera_mobile:"43",quest:"4.0","react-native":"0.69",rhino:"1.9.0",safari:"14.1",samsung:"7.0"},"es.typed-array.filter":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"38","firefox-android":"38",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.find":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.find-index":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.find-last":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",rhino:"1.8.0",safari:"15.4",samsung:"18.0"},"es.typed-array.find-last-index":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",rhino:"1.8.0",safari:"15.4",samsung:"18.0"},"es.typed-array.for-each":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"38","firefox-android":"38",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.from":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.includes":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.0",edge:"14",electron:"0.37",firefox:"43","firefox-android":"43",hermes:"0.1",ios:"10.0",node:"6.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.index-of":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.iterator":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.join":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.last-index-of":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.map":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"38","firefox-android":"38",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.of":{android:"54",bun:"0.1.1",chrome:"54","chrome-android":"54",deno:"1.0",edge:"15",electron:"1.4",firefox:"55","firefox-android":"55",ios:"14.0",node:"7.0",oculus:"3.0",opera:"41","opera-android":"41",opera_mobile:"41",quest:"3.0",safari:"14.0",samsung:"6.0"},"es.typed-array.reduce":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.reduce-right":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.reverse":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.set":{android:"95",bun:"0.1.1",chrome:"95","chrome-android":"95",deno:"1.15",edge:"95",electron:"16.0",firefox:"54","firefox-android":"54",hermes:"0.1",ios:"14.5",node:"17.0",oculus:"18.0",opera:"81","opera-android":"67",opera_mobile:"67",quest:"18.0","react-native":"0.69",safari:"14.1",samsung:"17.0"},"es.typed-array.slice":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"38","firefox-android":"38",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.some":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"13",electron:"0.31",firefox:"37","firefox-android":"37",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.sort":{android:"74",bun:"0.1.1",chrome:"74","chrome-android":"74",deno:"1.0",edge:"79",electron:"6.0",firefox:"67","firefox-android":"67",hermes:"0.10",ios:"14.5",node:"12.0",oculus:"6.0",opera:"61","opera-android":"53",opera_mobile:"53",quest:"6.0","react-native":"0.69",rhino:"1.9.0",safari:"14.1",samsung:"11.0"},"es.typed-array.subarray":{android:"4.4",bun:"0.1.1",chrome:"26","chrome-android":"26",deno:"1.0",edge:"13",electron:"0.20",firefox:"15","firefox-android":"15",hermes:"0.1",ios:"8.0",node:"0.11.0",oculus:"3.0",opera:"15","opera-android":"15",opera_mobile:"15",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"7.1",samsung:"1.5"},"es.typed-array.to-locale-string":{android:"45",bun:"0.1.1",chrome:"45","chrome-android":"45",deno:"1.0",edge:"79",electron:"0.31",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"4.0",oculus:"3.0",opera:"32","opera-android":"32",opera_mobile:"32",quest:"3.0","react-native":"0.69",rhino:"1.9.0",safari:"10.0",samsung:"5.0"},"es.typed-array.to-reversed":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"es.typed-array.to-sorted":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"es.typed-array.to-string":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"13",electron:"1.2",firefox:"51","firefox-android":"51",hermes:"0.1",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.69",safari:"10.0",samsung:"5.0"},"es.typed-array.with":{android:"110",bun:"1.2.18",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"26.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",rhino:"1.8.0",safari:"26.0",samsung:"21.0"},"es.uint8-array.from-base64":{android:"140",bun:"1.2.20",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"26.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"26.2"},"es.uint8-array.from-hex":{android:"140",bun:"1.1.22",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"18.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"18.2"},"es.uint8-array.set-from-base64":{android:"140",bun:"1.2.20",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"26.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"26.2"},"es.uint8-array.set-from-hex":{android:"144",bun:"1.1.22",chrome:"144","chrome-android":"144",edge:"144",electron:"40.0",firefox:"133","firefox-android":"133",ios:"18.2",opera:"128",safari:"18.2"},"es.uint8-array.to-base64":{android:"140",bun:"1.1.22",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"18.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"18.2"},"es.uint8-array.to-hex":{android:"140",bun:"1.1.22",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"18.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"18.2"},"es.unescape":{android:"3.0",bun:"0.1.1",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"3",ios:"1.0",node:"0.0.3",oculus:"3.0",opera:"3","opera-android":"3",opera_mobile:"3",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1",samsung:"1.0"},"es.weak-map":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"79",electron:"1.2",firefox:"53","firefox-android":"53",hermes:"0.13",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"es.weak-map.get-or-insert":{android:"145",bun:"1.2.20",chrome:"145","chrome-android":"145",edge:"145",electron:"41.0",firefox:"144","firefox-android":"144",ios:"26.2",opera:"129",safari:"26.2"},"es.weak-map.get-or-insert-computed":{android:"145",bun:"1.2.20",chrome:"145","chrome-android":"145",edge:"145",electron:"41.0",firefox:"144","firefox-android":"144",ios:"26.2",opera:"129",safari:"26.2"},"es.weak-set":{android:"51",bun:"0.1.1",chrome:"51","chrome-android":"51",deno:"1.0",edge:"15",electron:"1.2",firefox:"53","firefox-android":"53",hermes:"0.13",ios:"10.0",node:"6.5",oculus:"3.0",opera:"38","opera-android":"38",opera_mobile:"38",quest:"3.0","react-native":"0.73",rhino:"1.7.13",safari:"10.0",samsung:"5.0"},"esnext.aggregate-error":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.2",edge:"85",electron:"10.0",firefox:"79","firefox-android":"79",hermes:"0.13",ios:"14.0",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0","react-native":"0.72",rhino:"1.8.0",safari:"14.0",samsung:"14.0"},"esnext.suppressed-error.constructor":{android:"136",bun:"1.2.15",chrome:"136","chrome-android":"136",deno:"2.2.10",edge:"136",electron:"36.0",firefox:"141","firefox-android":"141",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",samsung:"29.0"},"esnext.array.from-async":{android:"121",bun:"1.1.2",chrome:"121","chrome-android":"121",deno:"1.38",edge:"121",electron:"29.0",firefox:"115","firefox-android":"115",ios:"18.0",node:"22.0",oculus:"32.0",opera:"107","opera-android":"81",opera_mobile:"81",quest:"32.0",rhino:"1.9.0",safari:"18.0",samsung:"25.0"},"esnext.array.at":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",hermes:"0.13",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",rhino:"1.7.15",safari:"15.4",samsung:"16.0"},"esnext.array.filter-out":{},"esnext.array.filter-reject":{},"esnext.array.find-last":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",rhino:"1.8.0",safari:"15.4",samsung:"18.0"},"esnext.array.find-last-index":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",rhino:"1.8.0",safari:"15.4",samsung:"18.0"},"esnext.array.group":{},"esnext.array.group-by":{},"esnext.array.group-by-to-map":{},"esnext.array.group-to-map":{},"esnext.array.is-template-object":{},"esnext.array.last-index":{},"esnext.array.last-item":{},"esnext.array.to-reversed":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",hermes:"0.13",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"esnext.array.to-sorted":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"esnext.array.to-spliced":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",hermes:"0.13",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"esnext.array.unique-by":{},"esnext.array.with":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"140","firefox-android":"140",hermes:"0.13",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0","react-native":"0.74",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"esnext.array-buffer.detached":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",rhino:"1.9.0",safari:"17.4",samsung:"23.0"},"esnext.array-buffer.transfer":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",rhino:"1.9.0",safari:"17.4",samsung:"23.0"},"esnext.array-buffer.transfer-to-fixed-length":{android:"114",bun:"1.0.19",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"122","firefox-android":"122",ios:"17.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",rhino:"1.9.0",safari:"17.4",samsung:"23.0"},"esnext.async-disposable-stack.constructor":{android:"136",bun:"1.3.0",chrome:"136","chrome-android":"136",deno:"2.3.2",edge:"136",electron:"36.0",firefox:"141","firefox-android":"141",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",samsung:"29.0"},"esnext.async-iterator.constructor":{},"esnext.async-iterator.as-indexed-pairs":{},"esnext.async-iterator.async-dispose":{},"esnext.async-iterator.drop":{},"esnext.async-iterator.every":{},"esnext.async-iterator.filter":{},"esnext.async-iterator.find":{},"esnext.async-iterator.flat-map":{},"esnext.async-iterator.for-each":{},"esnext.async-iterator.from":{},"esnext.async-iterator.indexed":{},"esnext.async-iterator.map":{},"esnext.async-iterator.reduce":{},"esnext.async-iterator.some":{},"esnext.async-iterator.take":{},"esnext.async-iterator.to-array":{},"esnext.bigint.range":{},"esnext.composite-key":{},"esnext.composite-symbol":{},"esnext.data-view.get-float16":{android:"135",bun:"1.1.23",chrome:"135","chrome-android":"135",deno:"1.43",edge:"135",electron:"36.0",firefox:"129","firefox-android":"129",ios:"18.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"18.2",samsung:"29.0"},"esnext.data-view.get-uint8-clamped":{},"esnext.data-view.set-float16":{android:"135",bun:"1.1.23",chrome:"135","chrome-android":"135",deno:"1.43",edge:"135",electron:"36.0",firefox:"129","firefox-android":"129",ios:"18.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"18.2",samsung:"29.0"},"esnext.data-view.set-uint8-clamped":{},"esnext.disposable-stack.constructor":{android:"136",bun:"1.3.0",chrome:"136","chrome-android":"136",deno:"2.2.10",edge:"136",electron:"36.0",firefox:"141","firefox-android":"141",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",samsung:"29.0"},"esnext.error.is-error":{android:"134",chrome:"134","chrome-android":"134",deno:"2.2",edge:"134",electron:"35.0",firefox:"138","firefox-android":"138",node:"24.3",oculus:"38.0",opera:"119","opera-android":"88",opera_mobile:"88",quest:"38.0",rhino:"1.9.0",samsung:"29.0"},"esnext.function.demethodize":{},"esnext.function.is-callable":{},"esnext.function.is-constructor":{},"esnext.function.metadata":{},"esnext.function.un-this":{},"esnext.global-this":{android:"71",bun:"0.1.1",chrome:"71","chrome-android":"71",deno:"1.0",edge:"79",electron:"5.0",firefox:"65","firefox-android":"65",hermes:"0.2",ios:"12.2",node:"12.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0","react-native":"0.69",rhino:"1.7.14",safari:"12.1",samsung:"10.0"},"esnext.iterator.constructor":{android:"122",bun:"1.1.31",chrome:"122","chrome-android":"122",deno:"1.38.1",edge:"122",electron:"29.0",firefox:"131","firefox-android":"131",ios:"18.4",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",safari:"18.4",samsung:"26.0"},"esnext.iterator.as-indexed-pairs":{},"esnext.iterator.chunks":{},"esnext.iterator.concat":{bun:"1.3.7",firefox:"147","firefox-android":"147"},"esnext.iterator.dispose":{android:"136",bun:"1.3.0",chrome:"136","chrome-android":"136",deno:"2.2.10",edge:"136",electron:"36.0",firefox:"135","firefox-android":"135",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",samsung:"29.0"},"esnext.iterator.drop":{android:"135",bun:"1.2.11",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"esnext.iterator.every":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"esnext.iterator.filter":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"esnext.iterator.find":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"esnext.iterator.flat-map":{android:"135",bun:"1.2.21",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.2",samsung:"29.0"},"esnext.iterator.for-each":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"esnext.iterator.from":{android:"122",bun:"1.2.5",chrome:"122","chrome-android":"122",deno:"1.38.1",edge:"122",electron:"29.0",firefox:"131","firefox-android":"131",ios:"26.0",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",safari:"26.0",samsung:"26.0"},"esnext.iterator.indexed":{},"esnext.iterator.map":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"esnext.iterator.range":{},"esnext.iterator.reduce":{android:"135",bun:"1.2.11",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"esnext.iterator.sliding":{},"esnext.iterator.some":{android:"135",bun:"1.2.4",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"esnext.iterator.take":{android:"135",bun:"1.2.11",chrome:"135","chrome-android":"135",deno:"2.2.5",edge:"135",electron:"36.0",firefox:"141","firefox-android":"141",ios:"26.0",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",safari:"26.0",samsung:"29.0"},"esnext.iterator.to-array":{android:"122",bun:"1.1.31",chrome:"122","chrome-android":"122",deno:"1.38.1",edge:"122",electron:"29.0",firefox:"131","firefox-android":"131",ios:"18.4",node:"22.0",oculus:"32.0",opera:"108","opera-android":"81",opera_mobile:"81",quest:"32.0",safari:"18.4",samsung:"26.0"},"esnext.iterator.to-async":{},"esnext.iterator.windows":{},"esnext.iterator.zip":{firefox:"148","firefox-android":"148"},"esnext.iterator.zip-keyed":{firefox:"148","firefox-android":"148"},"esnext.json.is-raw-json":{android:"114",bun:"1.1.43",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"135","firefox-android":"135",ios:"18.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"18.4",samsung:"23.0"},"esnext.json.parse":{android:"114",bun:"1.1.43",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"135","firefox-android":"135",ios:"18.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"18.4",samsung:"23.0"},"esnext.json.raw-json":{android:"114",bun:"1.1.43",chrome:"114","chrome-android":"114",deno:"1.33",edge:"114",electron:"25.0",firefox:"135","firefox-android":"135",ios:"18.4",node:"21.0",oculus:"28.0",opera:"100","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"18.4",samsung:"23.0"},"esnext.map.delete-all":{},"esnext.map.emplace":{},"esnext.map.every":{},"esnext.map.filter":{},"esnext.map.find":{},"esnext.map.find-key":{},"esnext.map.from":{},"esnext.map.get-or-insert":{android:"145",bun:"1.2.20",chrome:"145","chrome-android":"145",edge:"145",electron:"41.0",firefox:"144","firefox-android":"144",ios:"26.2",opera:"129",safari:"26.2"},"esnext.map.get-or-insert-computed":{android:"145",bun:"1.2.20",chrome:"145","chrome-android":"145",edge:"145",electron:"41.0",firefox:"144","firefox-android":"144",ios:"26.2",opera:"129",safari:"26.2"},"esnext.map.group-by":{android:"117",bun:"1.1.2",chrome:"117","chrome-android":"117",deno:"1.37",edge:"117",electron:"27.0",firefox:"119","firefox-android":"119",ios:"18.0",node:"21.0",oculus:"30.0",opera:"103","opera-android":"78",opera_mobile:"78",quest:"30.0",rhino:"1.8.0",safari:"18.0",samsung:"24.0"},"esnext.map.includes":{},"esnext.map.key-by":{},"esnext.map.key-of":{},"esnext.map.map-keys":{},"esnext.map.map-values":{},"esnext.map.merge":{},"esnext.map.of":{},"esnext.map.reduce":{},"esnext.map.some":{},"esnext.map.update":{},"esnext.map.update-or-insert":{},"esnext.map.upsert":{},"esnext.math.clamp":{},"esnext.math.deg-per-rad":{},"esnext.math.degrees":{},"esnext.math.fscale":{},"esnext.math.f16round":{android:"135",bun:"1.1.23",chrome:"135","chrome-android":"135",deno:"1.43",edge:"135",electron:"36.0",firefox:"129","firefox-android":"129",ios:"18.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"89",opera_mobile:"89",quest:"39.0",rhino:"1.9.0",safari:"18.2",samsung:"29.0"},"esnext.math.iaddh":{},"esnext.math.imulh":{},"esnext.math.isubh":{},"esnext.math.rad-per-deg":{},"esnext.math.radians":{},"esnext.math.scale":{},"esnext.math.seeded-prng":{},"esnext.math.signbit":{},"esnext.math.sum-precise":{bun:"1.2.18",firefox:"137","firefox-android":"137",ios:"26.2",safari:"26.2"},"esnext.math.umulh":{},"esnext.number.clamp":{},"esnext.number.from-string":{},"esnext.number.range":{},"esnext.object.has-own":{android:"93",bun:"0.1.1",chrome:"93","chrome-android":"93",deno:"1.13",edge:"93",electron:"14.0",firefox:"92","firefox-android":"92",hermes:"0.10",ios:"15.4",node:"16.9",oculus:"17.0",opera:"79","opera-android":"66",opera_mobile:"66",quest:"17.0","react-native":"0.69",rhino:"1.7.15",safari:"15.4",samsung:"17.0"},"esnext.object.iterate-entries":{},"esnext.object.iterate-keys":{},"esnext.object.iterate-values":{},"esnext.object.group-by":{android:"117",bun:"1.1.2",chrome:"117","chrome-android":"117",deno:"1.37",edge:"117",electron:"27.0",firefox:"119","firefox-android":"119",ios:"18.0",node:"21.0",oculus:"30.0",opera:"103","opera-android":"78",opera_mobile:"78",quest:"30.0",rhino:"1.8.0",safari:"18.0",samsung:"24.0"},"esnext.observable":{},"esnext.promise.all-settled":{android:"76",bun:"0.1.1",chrome:"76","chrome-android":"76",deno:"1.24",edge:"79",electron:"6.0",firefox:"71","firefox-android":"71",ios:"13.0",node:"12.9",oculus:"7.0",opera:"63","opera-android":"54",opera_mobile:"54",quest:"7.0",rhino:"1.7.15",safari:"13",samsung:"12.0"},"esnext.promise.any":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.24",edge:"85",electron:"10.0",firefox:"79","firefox-android":"79",ios:"14.0",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0",rhino:"1.8.0",safari:"14.0",samsung:"14.0"},"esnext.promise.try":{android:"128",bun:"1.1.22",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"134","firefox-android":"134",ios:"18.2",node:"23.0",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",rhino:"1.9.0",safari:"18.2",samsung:"28.0"},"esnext.promise.with-resolvers":{android:"119",bun:"0.7.1",chrome:"119","chrome-android":"119",deno:"1.38",edge:"119",electron:"28.0",firefox:"121","firefox-android":"121",ios:"17.4",node:"22.0",oculus:"31.0",opera:"105","opera-android":"79",opera_mobile:"79",quest:"31.0",safari:"17.4",samsung:"25.0"},"esnext.reflect.define-metadata":{},"esnext.reflect.delete-metadata":{},"esnext.reflect.get-metadata":{},"esnext.reflect.get-metadata-keys":{},"esnext.reflect.get-own-metadata":{},"esnext.reflect.get-own-metadata-keys":{},"esnext.reflect.has-metadata":{},"esnext.reflect.has-own-metadata":{},"esnext.reflect.metadata":{},"esnext.regexp.escape":{android:"136",bun:"1.1.22",chrome:"136","chrome-android":"136",deno:"2.3.2",edge:"136",electron:"36.0",firefox:"134","firefox-android":"134",ios:"18.2",node:"24.0",oculus:"39.0",opera:"120","opera-android":"90",opera_mobile:"90",quest:"39.0",safari:"18.2",samsung:"29.0"},"esnext.set.add-all":{},"esnext.set.delete-all":{},"esnext.set.difference.v2":{android:"128",bun:"1.2.5",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"26.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"26.0",samsung:"28.0"},"esnext.set.difference":{},"esnext.set.every":{},"esnext.set.filter":{},"esnext.set.find":{},"esnext.set.from":{},"esnext.set.intersection.v2":{android:"128",bun:"1.1.1",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"18.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"18.0",samsung:"28.0"},"esnext.set.intersection":{},"esnext.set.is-disjoint-from.v2":{android:"128",bun:"1.1.1",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"18.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"18.0",samsung:"28.0"},"esnext.set.is-disjoint-from":{},"esnext.set.is-subset-of.v2":{android:"128",bun:"1.1.1",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"18.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"18.0",samsung:"28.0"},"esnext.set.is-subset-of":{},"esnext.set.is-superset-of.v2":{android:"128",bun:"1.1.1",chrome:"128","chrome-android":"128",deno:"1.46",edge:"128",electron:"32.0",firefox:"127","firefox-android":"127",ios:"18.0",node:"22.10",oculus:"35.0",opera:"114","opera-android":"85",opera_mobile:"85",quest:"35.0",safari:"18.0",samsung:"28.0"},"esnext.set.is-superset-of":{},"esnext.set.join":{},"esnext.set.map":{},"esnext.set.of":{},"esnext.set.reduce":{},"esnext.set.some":{},"esnext.set.symmetric-difference.v2":{android:"123",bun:"1.2.5",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",ios:"26.0",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0",safari:"26.0",samsung:"27.0"},"esnext.set.symmetric-difference":{},"esnext.set.union.v2":{android:"123",bun:"1.2.5",chrome:"123","chrome-android":"123",deno:"1.41.3",edge:"123",electron:"30.0",firefox:"127","firefox-android":"127",ios:"26.0",node:"22.0",oculus:"33.0",opera:"109","opera-android":"82",opera_mobile:"82",quest:"33.0",safari:"26.0",samsung:"27.0"},"esnext.set.union":{},"esnext.string.at":{},"esnext.string.cooked":{},"esnext.string.code-points":{},"esnext.string.dedent":{},"esnext.string.is-well-formed":{android:"111",bun:"0.4.0",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"119","firefox-android":"119",ios:"16.4",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0",rhino:"1.8.0",safari:"16.4",samsung:"22.0"},"esnext.string.match-all":{android:"80",bun:"0.1.1",chrome:"80","chrome-android":"80",deno:"1.0",edge:"80",electron:"8.0",firefox:"73","firefox-android":"73",hermes:"0.6",ios:"13.4",node:"14.0",oculus:"9.0",opera:"67","opera-android":"57",opera_mobile:"57",quest:"9.0","react-native":"0.69",rhino:"1.8.0",safari:"13.1",samsung:"13.0"},"esnext.string.replace-all":{android:"85",bun:"0.1.1",chrome:"85","chrome-android":"85",deno:"1.2",edge:"85",electron:"10.0",firefox:"77","firefox-android":"77",hermes:"0.7",ios:"13.4",node:"15.0",oculus:"12.0",opera:"71","opera-android":"60",opera_mobile:"60",quest:"12.0","react-native":"0.69",rhino:"1.7.15",safari:"13.1",samsung:"14.0"},"esnext.string.to-well-formed":{android:"111",bun:"0.5.7",chrome:"111","chrome-android":"111",deno:"1.32",edge:"111",electron:"24.0",firefox:"119","firefox-android":"119",ios:"16.4",node:"20.0",oculus:"27.0",opera:"97","opera-android":"75",opera_mobile:"75",quest:"27.0",rhino:"1.8.0",safari:"16.4",samsung:"22.0"},"esnext.symbol.async-dispose":{android:"127",bun:"1.0.23",chrome:"127","chrome-android":"127",deno:"1.38",edge:"127",electron:"32.0",firefox:"135","firefox-android":"135",node:"20.5.0",oculus:"35.0",opera:"113","opera-android":"84",opera_mobile:"84",quest:"35.0",samsung:"28.0"},"esnext.symbol.custom-matcher":{},"esnext.symbol.dispose":{android:"125",bun:"1.0.23",chrome:"125","chrome-android":"125",deno:"1.38",edge:"125",electron:"31.0",firefox:"135","firefox-android":"135",node:"20.5.0",oculus:"34.0",opera:"111","opera-android":"83",opera_mobile:"83",quest:"34.0",samsung:"27.0"},"esnext.symbol.is-registered-symbol":{},"esnext.symbol.is-registered":{},"esnext.symbol.is-well-known-symbol":{},"esnext.symbol.is-well-known":{},"esnext.symbol.matcher":{},"esnext.symbol.metadata":{deno:"1.40.4"},"esnext.symbol.metadata-key":{},"esnext.symbol.observable":{},"esnext.symbol.pattern-match":{},"esnext.symbol.replace-all":{},"esnext.typed-array.from-async":{},"esnext.typed-array.at":{android:"92",bun:"0.1.1",chrome:"92","chrome-android":"92",deno:"1.12",edge:"92",electron:"14.0",firefox:"90","firefox-android":"90",hermes:"0.13",ios:"15.4",node:"16.6",oculus:"17.0",opera:"78","opera-android":"65",opera_mobile:"65",quest:"17.0","react-native":"0.71",rhino:"1.7.15",safari:"15.4",samsung:"16.0"},"esnext.typed-array.filter-out":{},"esnext.typed-array.filter-reject":{},"esnext.typed-array.find-last":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",rhino:"1.8.0",safari:"15.4",samsung:"18.0"},"esnext.typed-array.find-last-index":{android:"97",bun:"0.1.1",chrome:"97","chrome-android":"97",deno:"1.16",edge:"97",electron:"17.0",firefox:"104","firefox-android":"104",hermes:"0.11",ios:"15.4",node:"18.0",oculus:"20.0",opera:"83","opera-android":"68",opera_mobile:"68",quest:"20.0","react-native":"0.69",rhino:"1.8.0",safari:"15.4",samsung:"18.0"},"esnext.typed-array.group-by":{},"esnext.typed-array.to-reversed":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"esnext.typed-array.to-sorted":{android:"110",bun:"0.1.1",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"16.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",rhino:"1.8.0",safari:"16.0",samsung:"21.0"},"esnext.typed-array.to-spliced":{},"esnext.typed-array.unique-by":{},"esnext.typed-array.with":{android:"110",bun:"1.2.18",chrome:"110","chrome-android":"110",deno:"1.27",edge:"110",electron:"23.0",firefox:"115","firefox-android":"115",ios:"26.0",node:"20.0",oculus:"26.0",opera:"96","opera-android":"74",opera_mobile:"74",quest:"26.0",rhino:"1.8.0",safari:"26.0",samsung:"21.0"},"esnext.uint8-array.from-base64":{android:"140",bun:"1.2.20",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"26.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"26.2"},"esnext.uint8-array.from-hex":{android:"140",bun:"1.1.22",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"18.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"18.2"},"esnext.uint8-array.set-from-base64":{android:"140",bun:"1.2.20",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"26.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"26.2"},"esnext.uint8-array.set-from-hex":{android:"144",bun:"1.1.22",chrome:"144","chrome-android":"144",edge:"144",electron:"40.0",firefox:"133","firefox-android":"133",ios:"18.2",opera:"128",safari:"18.2"},"esnext.uint8-array.to-base64":{android:"140",bun:"1.1.22",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"18.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"18.2"},"esnext.uint8-array.to-hex":{android:"140",bun:"1.1.22",chrome:"140","chrome-android":"140",deno:"2.5",edge:"140",electron:"38.0",firefox:"133","firefox-android":"133",ios:"18.2",node:"25.0",oculus:"41.0",opera:"124","opera-android":"92",opera_mobile:"92",quest:"41.0",safari:"18.2"},"esnext.weak-map.delete-all":{},"esnext.weak-map.from":{},"esnext.weak-map.of":{},"esnext.weak-map.emplace":{},"esnext.weak-map.get-or-insert":{android:"145",bun:"1.2.20",chrome:"145","chrome-android":"145",edge:"145",electron:"41.0",firefox:"144","firefox-android":"144",ios:"26.2",opera:"129",safari:"26.2"},"esnext.weak-map.get-or-insert-computed":{android:"145",bun:"1.2.20",chrome:"145","chrome-android":"145",edge:"145",electron:"41.0",firefox:"144","firefox-android":"144",ios:"26.2",opera:"129",safari:"26.2"},"esnext.weak-map.upsert":{},"esnext.weak-set.add-all":{},"esnext.weak-set.delete-all":{},"esnext.weak-set.from":{},"esnext.weak-set.of":{},"web.atob":{android:"37",bun:"0.1.1",chrome:"34","chrome-android":"34",deno:"1.0",edge:"16",electron:"0.20",firefox:"27","firefox-android":"27",hermes:"0.13",ios:"10.3",node:"18.0",oculus:"3.0",opera:"10.5","opera-android":"10.5",opera_mobile:"10.5",quest:"3.0","react-native":"0.74",safari:"10.1",samsung:"2.0"},"web.btoa":{android:"3.0",bun:"0.1.1",chrome:"4","chrome-android":"18",deno:"1.0",edge:"16",electron:"0.20",firefox:"27","firefox-android":"27",ios:"1.0",node:"17.5",oculus:"3.0",opera:"10.5","opera-android":"10.5",opera_mobile:"10.5",phantom:"1.9",quest:"3.0",safari:"3.0",samsung:"1.0"},"web.dom-collections.for-each":{android:"58",bun:"0.1.1",chrome:"58","chrome-android":"58",deno:"1.0",edge:"16",electron:"1.7",firefox:"50","firefox-android":"50",hermes:"0.1",ios:"10.0",node:"0.0.1",oculus:"4.0",opera:"45","opera-android":"43",opera_mobile:"43",quest:"4.0","react-native":"0.69",rhino:"1.7.13",safari:"10.0",samsung:"7.0"},"web.dom-collections.iterator":{android:"66",bun:"0.1.1",chrome:"66","chrome-android":"66",deno:"1.0",edge:"79",electron:"3.0",firefox:"60","firefox-android":"60",hermes:"0.1",ios:"13.4",node:"0.0.1",oculus:"5.0",opera:"53","opera-android":"47",opera_mobile:"47",quest:"5.0","react-native":"0.69",rhino:"1.7.13",safari:"13.1",samsung:"9.0"},"web.dom-exception.constructor":{android:"46",bun:"0.1.1",chrome:"46","chrome-android":"46",deno:"1.7",edge:"79",electron:"0.36",firefox:"37","firefox-android":"37",ios:"11.3",node:"17.0",oculus:"3.0",opera:"33","opera-android":"33",opera_mobile:"33",quest:"3.0",safari:"11.1",samsung:"5.0"},"web.dom-exception.stack":{deno:"1.15",firefox:"37","firefox-android":"37",node:"17.0"},"web.dom-exception.to-string-tag":{android:"49",bun:"0.1.1",chrome:"49","chrome-android":"49",deno:"1.7",edge:"79",electron:"0.37",firefox:"51","firefox-android":"51",ios:"11.3",node:"17.0",oculus:"3.0",opera:"36","opera-android":"36",opera_mobile:"36",quest:"3.0",safari:"11.1",samsung:"5.0"},"web.immediate":{bun:"0.4.0",deno:"2.4",ie:"10",node:"0.9.1"},"web.queue-microtask":{android:"71",chrome:"71","chrome-android":"71",deno:"1.0",edge:"79",electron:"5.0",firefox:"69","firefox-android":"69",ios:"12.2",node:"12.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0",safari:"12.1",samsung:"10.0"},"web.self":{android:"86",bun:"1.0.22",chrome:"86","chrome-android":"86",deno:"1.46.0",edge:"86",electron:"11.0",firefox:"31","firefox-android":"31",ios:"10.0",oculus:"12.0",opera:"72","opera-android":"61",opera_mobile:"61",quest:"12.0",safari:"10",samsung:"14.0"},"web.structured-clone":{},"web.timers":{android:"1.5",bun:"0.4.0",chrome:"1","chrome-android":"18",deno:"1.0",edge:"12",electron:"0.20",firefox:"1","firefox-android":"4",hermes:"0.1",ie:"10",ios:"1.0",node:"0.0.1",oculus:"3.0",opera:"7","opera-android":"7",opera_mobile:"7",phantom:"1.9",quest:"3.0","react-native":"0.69",rhino:"1.7.13",safari:"1.0",samsung:"1.0"},"web.url":{android:"67",bun:"0.1.1",chrome:"67","chrome-android":"67",deno:"1.0",edge:"79",electron:"4.0",firefox:"57","firefox-android":"57",ios:"14.0",node:"10.0",oculus:"6.0",opera:"54","opera-android":"48",opera_mobile:"48",quest:"6.0",safari:"14.0",samsung:"9.0"},"web.url.can-parse":{android:"120",bun:"1.1.0",chrome:"120","chrome-android":"120",deno:"1.33.2",edge:"120",electron:"28.0",firefox:"115","firefox-android":"115",ios:"17.0",node:"20.1",oculus:"31.0",opera:"106","opera-android":"80",opera_mobile:"80",quest:"31.0",safari:"17.0",samsung:"25.0"},"web.url.parse":{android:"126",bun:"1.1.4",chrome:"126","chrome-android":"126",deno:"1.43",edge:"126",electron:"31.0",firefox:"126","firefox-android":"126",ios:"18.0",node:"22.1",oculus:"34.0",opera:"112","opera-android":"83",opera_mobile:"83",quest:"34.0",safari:"18.0",samsung:"28.0"},"web.url.to-json":{android:"71",bun:"0.1.1",chrome:"71","chrome-android":"71",deno:"1.0",edge:"79",electron:"5.0",firefox:"57","firefox-android":"57",ios:"14.0",node:"10.0",oculus:"6.0",opera:"58","opera-android":"50",opera_mobile:"50",quest:"6.0",safari:"14.0",samsung:"10.0"},"web.url-search-params":{android:"67",bun:"0.1.1",chrome:"67","chrome-android":"67",deno:"1.0",edge:"79",electron:"4.0",firefox:"57","firefox-android":"57",ios:"14.0",node:"10.0",oculus:"6.0",opera:"54","opera-android":"48",opera_mobile:"48",quest:"6.0",safari:"14.0",samsung:"9.0"},"web.url-search-params.delete":{android:"118",bun:"1.0.31",chrome:"118","chrome-android":"118",deno:"1.35",edge:"118",electron:"27.0",firefox:"115","firefox-android":"115",ios:"17.0",node:"20.2",oculus:"30.0",opera:"104","opera-android":"79",opera_mobile:"79",quest:"30.0",safari:"17.0",samsung:"25.0"},"web.url-search-params.has":{android:"118",bun:"1.0.31",chrome:"118","chrome-android":"118",deno:"1.35",edge:"118",electron:"27.0",firefox:"115","firefox-android":"115",ios:"17.0",node:"20.2",oculus:"30.0",opera:"104","opera-android":"79",opera_mobile:"79",quest:"30.0",safari:"17.0",samsung:"25.0"},"web.url-search-params.size":{android:"113",bun:"1.0.2",chrome:"113","chrome-android":"113",deno:"1.32",edge:"113",electron:"25.0",firefox:"112","firefox-android":"112",ios:"17.0",node:"19.8",oculus:"28.0",opera:"99","opera-android":"76",opera_mobile:"76",quest:"28.0",safari:"17.0",samsung:"23.0"}};function Dbe(){return Cbe?kbe:(Cbe=1,kbe=Ibe)}var Obe,Nbe={};Object.hasOwn||Function.call.bind({}.hasOwnProperty);var Bbe=/(\d+)(?:\.(\d+))?(?:\.(\d+))?/,Mbe=function(){function e(e){var t=Bbe.exec(e);if(!t)throw new TypeError("Invalid version: "+e);var r=y(t,4),a=r[1],n=r[2],s=r[3];this.major=+a,this.minor=n?+n:0,this.patch=s?+s:0}return e.prototype.toString=function(){return this.major+"."+this.minor+"."+this.patch},o(e)}();function Fbe(e){return e instanceof Mbe?e:new Mbe(e)}var Lbe,Ube,qbe=function(e,t,r){for(var a=Fbe(e),n=Fbe(r),s=0,o=["major","minor","patch"];s<o.length;s++){var i=o[s];if(a[i]<n[i])return"<"===t||"<="===t||"!="===t;if(a[i]>n[i])return">"===t||">="===t||"!="===t}return"=="===t||"<="===t||">="===t},Gbe=function(e,t){var r=e instanceof Set?e:new Set(e);return t.filter(function(e){return r.has(e)})},Wbe=qbe,Vbe=Gbe,Hbe=Fbe,zbe={"3.0":["es.symbol","es.symbol.description","es.symbol.async-iterator","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.date.now","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.function.bind","es.function.has-instance","es.function.name","es.json.to-string-tag","es.map","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.finally","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.regexp.constructor","es.regexp.exec","es.regexp.flags","es.regexp.to-string","es.set","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.iterator","es.string.match","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.search","es.string.split","es.string.starts-with","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-string","es.weak-map","es.weak-set","esnext.aggregate-error","esnext.array.last-index","esnext.array.last-item","esnext.composite-key","esnext.composite-symbol","esnext.global-this","esnext.map.delete-all","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.umulh","esnext.number.from-string","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union","esnext.string.at","esnext.string.code-points","esnext.string.match-all","esnext.string.replace-all","esnext.symbol.dispose","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.for-each","web.dom-collections.iterator","web.immediate","web.queue-microtask","web.timers","web.url","web.url.to-json","web.url-search-params"],3.1:["es.string.match-all","es.symbol.match-all","esnext.symbol.replace-all"],3.2:["es.promise.all-settled","esnext.array.is-template-object","esnext.map.update-or-insert","esnext.symbol.async-dispose"],3.3:["es.global-this","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.map.upsert","esnext.weak-map.upsert"],3.4:["es.json.stringify"],3.5:["esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values"],3.6:["es.regexp.sticky","es.regexp.test"],3.7:["es.aggregate-error","es.promise.any","es.reflect.to-string-tag","es.string.replace-all","esnext.map.emplace","esnext.weak-map.emplace"],3.8:["esnext.array.at","esnext.array.filter-out","esnext.array.unique-by","esnext.bigint.range","esnext.number.range","esnext.typed-array.at","esnext.typed-array.filter-out"],3.9:["esnext.array.find-last","esnext.array.find-last-index","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.unique-by"],3.11:["esnext.object.has-own"],3.12:["esnext.symbol.matcher","esnext.symbol.metadata"],3.15:["es.date.get-year","es.date.set-year","es.date.to-gmt-string","es.escape","es.regexp.dot-all","es.string.substr","es.unescape"],3.16:["esnext.array.filter-reject","esnext.array.group-by","esnext.typed-array.filter-reject","esnext.typed-array.group-by"],3.17:["es.array.at","es.object.has-own","es.string.at-alternative","es.typed-array.at"],3.18:["esnext.array.from-async","esnext.typed-array.from-async"],"3.20":["es.error.cause","es.error.to-string","es.aggregate-error.cause","es.number.to-exponential","esnext.array.group-by-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.un-this","esnext.iterator.to-async","esnext.string.cooked","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],3.21:["web.atob","web.btoa"],3.23:["es.array.find-last","es.array.find-last-index","es.array.push","es.array.unshift","es.typed-array.find-last","es.typed-array.find-last-index","esnext.array.group","esnext.array.group-to-map","esnext.symbol.metadata-key"],3.24:["esnext.async-iterator.indexed","esnext.iterator.indexed"],3.25:["es.object.proto"],3.26:["esnext.string.is-well-formed","esnext.string.to-well-formed","web.self"],3.27:["esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.disposable-stack.constructor","esnext.iterator.dispose","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.dedent"],3.28:["es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.with","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.function.demethodize","esnext.iterator.range","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.symbol.is-registered","esnext.symbol.is-well-known"],3.29:["web.url-search-params.size"],"3.30":["web.url.can-parse"],3.31:["es.string.is-well-formed","es.string.to-well-formed","esnext.function.metadata","esnext.object.group-by","esnext.promise.with-resolvers","esnext.symbol.is-registered-symbol","esnext.symbol.is-well-known-symbol","web.url-search-params.delete","web.url-search-params.has"],3.32:["esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.math.f16round"],3.33:["esnext.regexp.escape"],3.34:["es.map.group-by","es.object.group-by","es.promise.with-resolvers","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],3.36:["es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length"],3.37:["es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","esnext.math.sum-precise","esnext.symbol.custom-matcher","web.url.parse"],3.38:["esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex"],3.39:["es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.promise.try","esnext.iterator.concat","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed"],"3.40":["esnext.error.is-error"],3.41:["es.data-view.get-float16","es.data-view.set-float16","es.math.f16round","es.regexp.escape"],3.43:["es.array.from-async","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","es.disposable-stack.constructor","es.error.is-error","es.iterator.dispose","es.suppressed-error.constructor","es.symbol.async-dispose","es.symbol.dispose","esnext.iterator.chunks","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.number.clamp"],3.44:["esnext.iterator.sliding"],3.45:["es.math.sum-precise","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],3.47:["es.iterator.concat","es.json.is-raw-json","es.json.parse","es.json.raw-json"],3.48:["es.map.get-or-insert","es.map.get-or-insert-computed","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed"]},Kbe=["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.is-error","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.suppressed-error.constructor","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.disposable-stack.constructor","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.array.from-async","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","es.unescape","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.clamp","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],Xbe=function(e){var t=Hbe(e);if(3!==t.major)throw new RangeError("This version of `core-js-compat` works only with `core-js@3`.");for(var r=[],a=0,n=Object.keys(zbe);a<n.length;a++){var s=n[a];Wbe(s,"<=",t)&&r.push.apply(r,b(zbe[s]))}return Vbe(r,Kbe)};var Jbe,Ybe={};var $be,Qbe={};var Zbe,eve={};var tve,rve,ave,nve,sve,ove={},ive={"core-js":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.is-error","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.suppressed-error.constructor","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.disposable-stack.constructor","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.array.from-async","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","es.unescape","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.clamp","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/actual":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.is-error","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.suppressed-error.constructor","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.disposable-stack.constructor","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.array.from-async","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","es.unescape","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.math.f16round","esnext.math.sum-precise","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/actual/aggregate-error":[],"core-js/actual/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string","es.promise","es.array.from-async","es.string.iterator","esnext.array.from-async","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with"],"core-js/actual/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/actual/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/actual/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","esnext.array-buffer.detached"],"core-js/actual/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/actual/array-buffer/slice":["es.array-buffer.slice"],"core-js/actual/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer","esnext.array-buffer.transfer"],"core-js/actual/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length","esnext.array-buffer.transfer-to-fixed-length"],"core-js/actual/array/at":["es.array.at"],"core-js/actual/array/concat":["es.array.concat"],"core-js/actual/array/copy-within":["es.array.copy-within"],"core-js/actual/array/entries":["es.array.iterator","es.object.to-string"],"core-js/actual/array/every":["es.array.every"],"core-js/actual/array/fill":["es.array.fill"],"core-js/actual/array/filter":["es.array.filter"],"core-js/actual/array/find":["es.array.find"],"core-js/actual/array/find-index":["es.array.find-index"],"core-js/actual/array/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/actual/array/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/actual/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/array/for-each":["es.array.for-each"],"core-js/actual/array/from":["es.array.from","es.string.iterator"],"core-js/actual/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.array.from-async","es.string.iterator","esnext.array.from-async"],"core-js/actual/array/group":["esnext.array.group"],"core-js/actual/array/group-by":["esnext.array.group-by"],"core-js/actual/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/array/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/actual/array/includes":["es.array.includes"],"core-js/actual/array/index-of":["es.array.index-of"],"core-js/actual/array/is-array":["es.array.is-array"],"core-js/actual/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/actual/array/join":["es.array.join"],"core-js/actual/array/keys":["es.array.iterator","es.object.to-string"],"core-js/actual/array/last-index-of":["es.array.last-index-of"],"core-js/actual/array/map":["es.array.map"],"core-js/actual/array/of":["es.array.of"],"core-js/actual/array/push":["es.array.push"],"core-js/actual/array/reduce":["es.array.reduce"],"core-js/actual/array/reduce-right":["es.array.reduce-right"],"core-js/actual/array/reverse":["es.array.reverse"],"core-js/actual/array/slice":["es.array.slice"],"core-js/actual/array/some":["es.array.some"],"core-js/actual/array/sort":["es.array.sort"],"core-js/actual/array/splice":["es.array.splice"],"core-js/actual/array/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/actual/array/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/actual/array/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/actual/array/unshift":["es.array.unshift"],"core-js/actual/array/values":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with"],"core-js/actual/array/virtual/at":["es.array.at"],"core-js/actual/array/virtual/concat":["es.array.concat"],"core-js/actual/array/virtual/copy-within":["es.array.copy-within"],"core-js/actual/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/every":["es.array.every"],"core-js/actual/array/virtual/fill":["es.array.fill"],"core-js/actual/array/virtual/filter":["es.array.filter"],"core-js/actual/array/virtual/find":["es.array.find"],"core-js/actual/array/virtual/find-index":["es.array.find-index"],"core-js/actual/array/virtual/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/actual/array/virtual/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/actual/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/array/virtual/for-each":["es.array.for-each"],"core-js/actual/array/virtual/group":["esnext.array.group"],"core-js/actual/array/virtual/group-by":["esnext.array.group-by"],"core-js/actual/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/array/virtual/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/actual/array/virtual/includes":["es.array.includes"],"core-js/actual/array/virtual/index-of":["es.array.index-of"],"core-js/actual/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/join":["es.array.join"],"core-js/actual/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/actual/array/virtual/map":["es.array.map"],"core-js/actual/array/virtual/push":["es.array.push"],"core-js/actual/array/virtual/reduce":["es.array.reduce"],"core-js/actual/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/actual/array/virtual/reverse":["es.array.reverse"],"core-js/actual/array/virtual/slice":["es.array.slice"],"core-js/actual/array/virtual/some":["es.array.some"],"core-js/actual/array/virtual/sort":["es.array.sort"],"core-js/actual/array/virtual/splice":["es.array.splice"],"core-js/actual/array/virtual/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/actual/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/actual/array/virtual/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/actual/array/virtual/unshift":["es.array.unshift"],"core-js/actual/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/actual/array/virtual/with":["es.array.with","esnext.array.with"],"core-js/actual/array/with":["es.array.with","esnext.array.with"],"core-js/actual/async-disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/actual/async-disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/actual/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.async-iterator.async-dispose","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/actual/async-iterator/async-dispose":["es.object.to-string","es.promise","es.async-iterator.async-dispose","esnext.async-iterator.async-dispose"],"core-js/actual/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/actual/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/actual/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/actual/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/actual/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/actual/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/actual/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/actual/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/actual/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/actual/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/actual/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/actual/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/actual/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/clear-immediate":["web.immediate"],"core-js/actual/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.object.to-string","esnext.data-view.get-float16","esnext.data-view.set-float16"],"core-js/actual/data-view/get-float16":["es.data-view.get-float16","esnext.data-view.get-float16"],"core-js/actual/data-view/set-float16":["es.data-view.set-float16","esnext.data-view.set-float16"],"core-js/actual/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/actual/date/get-year":["es.date.get-year"],"core-js/actual/date/now":["es.date.now"],"core-js/actual/date/set-year":["es.date.set-year"],"core-js/actual/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/actual/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/actual/date/to-json":["es.date.to-json"],"core-js/actual/date/to-primitive":["es.date.to-primitive"],"core-js/actual/date/to-string":["es.date.to-string"],"core-js/actual/disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/actual/disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/actual/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/actual/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/actual/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/actual/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/actual/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/actual/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/actual/error":["es.error.cause","es.error.is-error","es.error.to-string","es.object.create","esnext.error.is-error"],"core-js/actual/error/constructor":["es.error.cause"],"core-js/actual/error/is-error":["es.error.is-error","es.object.create","esnext.error.is-error"],"core-js/actual/error/to-string":["es.error.to-string"],"core-js/actual/escape":["es.escape"],"core-js/actual/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.metadata"],"core-js/actual/function/bind":["es.function.bind"],"core-js/actual/function/has-instance":["es.function.has-instance"],"core-js/actual/function/metadata":["esnext.function.metadata"],"core-js/actual/function/name":["es.function.name"],"core-js/actual/function/virtual":["es.function.bind"],"core-js/actual/function/virtual/bind":["es.function.bind"],"core-js/actual/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/global-this":["es.global-this"],"core-js/actual/instance/at":["es.array.at","es.string.at-alternative"],"core-js/actual/instance/bind":["es.function.bind"],"core-js/actual/instance/code-point-at":["es.string.code-point-at"],"core-js/actual/instance/concat":["es.array.concat"],"core-js/actual/instance/copy-within":["es.array.copy-within"],"core-js/actual/instance/ends-with":["es.string.ends-with"],"core-js/actual/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/every":["es.array.every"],"core-js/actual/instance/fill":["es.array.fill"],"core-js/actual/instance/filter":["es.array.filter"],"core-js/actual/instance/find":["es.array.find"],"core-js/actual/instance/find-index":["es.array.find-index"],"core-js/actual/instance/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/actual/instance/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/actual/instance/flags":["es.regexp.flags"],"core-js/actual/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/actual/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/actual/instance/for-each":["es.array.for-each","web.dom-collections.for-each"],"core-js/actual/instance/group":["esnext.array.group"],"core-js/actual/instance/group-by":["esnext.array.group-by"],"core-js/actual/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/actual/instance/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/actual/instance/includes":["es.array.includes","es.string.includes"],"core-js/actual/instance/index-of":["es.array.index-of"],"core-js/actual/instance/is-well-formed":["es.string.is-well-formed"],"core-js/actual/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/last-index-of":["es.array.last-index-of"],"core-js/actual/instance/map":["es.array.map"],"core-js/actual/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/instance/pad-end":["es.string.pad-end"],"core-js/actual/instance/pad-start":["es.string.pad-start"],"core-js/actual/instance/push":["es.array.push"],"core-js/actual/instance/reduce":["es.array.reduce"],"core-js/actual/instance/reduce-right":["es.array.reduce-right"],"core-js/actual/instance/repeat":["es.string.repeat"],"core-js/actual/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/instance/reverse":["es.array.reverse"],"core-js/actual/instance/slice":["es.array.slice"],"core-js/actual/instance/some":["es.array.some"],"core-js/actual/instance/sort":["es.array.sort"],"core-js/actual/instance/splice":["es.array.splice"],"core-js/actual/instance/starts-with":["es.string.starts-with"],"core-js/actual/instance/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/actual/instance/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/actual/instance/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/actual/instance/to-well-formed":["es.string.to-well-formed"],"core-js/actual/instance/trim":["es.string.trim"],"core-js/actual/instance/trim-end":["es.string.trim-end"],"core-js/actual/instance/trim-left":["es.string.trim-start"],"core-js/actual/instance/trim-right":["es.string.trim-end"],"core-js/actual/instance/trim-start":["es.string.trim-start"],"core-js/actual/instance/unshift":["es.array.unshift"],"core-js/actual/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/actual/instance/with":["es.array.with","esnext.array.with"],"core-js/actual/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/iterator":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.create","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.zip","esnext.iterator.zip-keyed","web.dom-collections.iterator"],"core-js/actual/iterator/concat":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","esnext.iterator.concat","web.dom-collections.iterator"],"core-js/actual/iterator/dispose":["esnext.iterator.dispose"],"core-js/actual/iterator/drop":["es.iterator.constructor","es.iterator.drop","es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/actual/iterator/every":["es.iterator.constructor","es.iterator.every","es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/actual/iterator/filter":["es.iterator.constructor","es.iterator.filter","es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/actual/iterator/find":["es.iterator.constructor","es.iterator.find","es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/actual/iterator/flat-map":["es.array.iterator","es.iterator.constructor","es.iterator.flat-map","es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map","web.dom-collections.iterator"],"core-js/actual/iterator/for-each":["es.iterator.constructor","es.iterator.for-each","es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/actual/iterator/from":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","web.dom-collections.iterator"],"core-js/actual/iterator/map":["es.iterator.constructor","es.iterator.map","es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/actual/iterator/reduce":["es.iterator.constructor","es.iterator.reduce","es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/actual/iterator/some":["es.iterator.constructor","es.iterator.some","es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/actual/iterator/take":["es.iterator.constructor","es.iterator.take","es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/actual/iterator/to-array":["es.iterator.constructor","es.iterator.to-array","es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/actual/iterator/to-async":["es.iterator.constructor","es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/actual/iterator/zip":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","esnext.iterator.zip","web.dom-collections.iterator"],"core-js/actual/iterator/zip-keyed":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.create","es.object.to-string","es.reflect.own-keys","es.string.iterator","esnext.iterator.zip-keyed","web.dom-collections.iterator"],"core-js/actual/json":["es.date.to-json","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.object.create","es.object.freeze","es.object.keys","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json"],"core-js/actual/json/is-raw-json":["es.json.is-raw-json","esnext.json.is-raw-json"],"core-js/actual/json/parse":["es.json.parse","es.object.keys","esnext.json.parse"],"core-js/actual/json/raw-json":["es.json.raw-json","es.json.stringify","es.object.create","es.object.freeze","esnext.json.raw-json"],"core-js/actual/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/actual/json/to-string-tag":["es.json.to-string-tag"],"core-js/actual/map":["es.array.iterator","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string","es.string.iterator","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","web.dom-collections.iterator"],"core-js/actual/map/get-or-insert":["es.map","es.map.get-or-insert","esnext.map.get-or-insert"],"core-js/actual/map/get-or-insert-computed":["es.map","es.map.get-or-insert-computed","esnext.map.get-or-insert-computed"],"core-js/actual/map/group-by":["es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by"],"core-js/actual/math":["es.array.iterator","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.f16round","esnext.math.sum-precise"],"core-js/actual/math/acosh":["es.math.acosh"],"core-js/actual/math/asinh":["es.math.asinh"],"core-js/actual/math/atanh":["es.math.atanh"],"core-js/actual/math/cbrt":["es.math.cbrt"],"core-js/actual/math/clz32":["es.math.clz32"],"core-js/actual/math/cosh":["es.math.cosh"],"core-js/actual/math/expm1":["es.math.expm1"],"core-js/actual/math/f16round":["es.math.f16round","esnext.math.f16round"],"core-js/actual/math/fround":["es.math.fround"],"core-js/actual/math/hypot":["es.math.hypot"],"core-js/actual/math/imul":["es.math.imul"],"core-js/actual/math/log10":["es.math.log10"],"core-js/actual/math/log1p":["es.math.log1p"],"core-js/actual/math/log2":["es.math.log2"],"core-js/actual/math/sign":["es.math.sign"],"core-js/actual/math/sinh":["es.math.sinh"],"core-js/actual/math/sum-precise":["es.array.iterator","es.math.sum-precise","esnext.math.sum-precise"],"core-js/actual/math/tanh":["es.math.tanh"],"core-js/actual/math/to-string-tag":["es.math.to-string-tag"],"core-js/actual/math/trunc":["es.math.trunc"],"core-js/actual/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/actual/number/constructor":["es.number.constructor"],"core-js/actual/number/epsilon":["es.number.epsilon"],"core-js/actual/number/is-finite":["es.number.is-finite"],"core-js/actual/number/is-integer":["es.number.is-integer"],"core-js/actual/number/is-nan":["es.number.is-nan"],"core-js/actual/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/actual/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/actual/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/actual/number/parse-float":["es.number.parse-float"],"core-js/actual/number/parse-int":["es.number.parse-int"],"core-js/actual/number/to-exponential":["es.number.to-exponential"],"core-js/actual/number/to-fixed":["es.number.to-fixed"],"core-js/actual/number/to-precision":["es.number.to-precision"],"core-js/actual/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/actual/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/actual/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/actual/number/virtual/to-precision":["es.number.to-precision"],"core-js/actual/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.group-by","web.dom-collections.iterator"],"core-js/actual/object/assign":["es.object.assign"],"core-js/actual/object/create":["es.object.create"],"core-js/actual/object/define-getter":["es.object.define-getter"],"core-js/actual/object/define-properties":["es.object.define-properties"],"core-js/actual/object/define-property":["es.object.define-property"],"core-js/actual/object/define-setter":["es.object.define-setter"],"core-js/actual/object/entries":["es.object.entries"],"core-js/actual/object/freeze":["es.object.freeze"],"core-js/actual/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/actual/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/actual/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/actual/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/actual/object/get-own-property-symbols":["es.symbol"],"core-js/actual/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/actual/object/group-by":["es.object.create","es.object.group-by","esnext.object.group-by"],"core-js/actual/object/has-own":["es.object.has-own"],"core-js/actual/object/is":["es.object.is"],"core-js/actual/object/is-extensible":["es.object.is-extensible"],"core-js/actual/object/is-frozen":["es.object.is-frozen"],"core-js/actual/object/is-sealed":["es.object.is-sealed"],"core-js/actual/object/keys":["es.object.keys"],"core-js/actual/object/lookup-getter":["es.object.lookup-getter"],"core-js/actual/object/lookup-setter":["es.object.lookup-setter"],"core-js/actual/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/actual/object/proto":["es.object.proto"],"core-js/actual/object/seal":["es.object.seal"],"core-js/actual/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/actual/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/actual/object/values":["es.object.values"],"core-js/actual/parse-float":["es.parse-float"],"core-js/actual/parse-int":["es.parse-int"],"core-js/actual/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.string.iterator","esnext.promise.try","esnext.promise.with-resolvers","web.dom-collections.iterator"],"core-js/actual/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/actual/promise/try":["es.object.to-string","es.promise","es.promise.try","esnext.promise.try"],"core-js/actual/promise/with-resolvers":["es.promise","es.promise.with-resolvers","esnext.promise.with-resolvers"],"core-js/actual/queue-microtask":["web.queue-microtask"],"core-js/actual/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/actual/reflect/apply":["es.reflect.apply"],"core-js/actual/reflect/construct":["es.reflect.construct"],"core-js/actual/reflect/define-property":["es.reflect.define-property"],"core-js/actual/reflect/delete-property":["es.reflect.delete-property"],"core-js/actual/reflect/get":["es.reflect.get"],"core-js/actual/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/actual/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/actual/reflect/has":["es.reflect.has"],"core-js/actual/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/actual/reflect/own-keys":["es.reflect.own-keys"],"core-js/actual/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/actual/reflect/set":["es.reflect.set"],"core-js/actual/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/actual/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/actual/regexp":["es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split","esnext.regexp.escape"],"core-js/actual/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/actual/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/actual/regexp/escape":["es.regexp.escape","esnext.regexp.escape"],"core-js/actual/regexp/flags":["es.regexp.flags"],"core-js/actual/regexp/match":["es.regexp.exec","es.string.match"],"core-js/actual/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/actual/regexp/search":["es.regexp.exec","es.string.search"],"core-js/actual/regexp/split":["es.regexp.exec","es.string.split"],"core-js/actual/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/actual/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/actual/regexp/to-string":["es.regexp.to-string"],"core-js/actual/self":["web.self"],"core-js/actual/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","web.dom-collections.iterator"],"core-js/actual/set-immediate":["web.immediate"],"core-js/actual/set-interval":["web.timers"],"core-js/actual/set-timeout":["web.timers"],"core-js/actual/set/difference":["es.set","es.set.difference.v2","esnext.set.difference.v2"],"core-js/actual/set/intersection":["es.set","es.set.intersection.v2","esnext.set.intersection.v2"],"core-js/actual/set/is-disjoint-from":["es.set","es.set.is-disjoint-from.v2","esnext.set.is-disjoint-from.v2"],"core-js/actual/set/is-subset-of":["es.set","es.set.is-subset-of.v2","esnext.set.is-subset-of.v2"],"core-js/actual/set/is-superset-of":["es.set","es.set.is-superset-of.v2","esnext.set.is-superset-of.v2"],"core-js/actual/set/symmetric-difference":["es.set","es.set.symmetric-difference.v2","esnext.set.symmetric-difference.v2"],"core-js/actual/set/union":["es.set","es.set.union.v2","esnext.set.union.v2"],"core-js/actual/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.is-well-formed","esnext.string.to-well-formed"],"core-js/actual/string/anchor":["es.string.anchor"],"core-js/actual/string/at":["es.string.at-alternative"],"core-js/actual/string/big":["es.string.big"],"core-js/actual/string/blink":["es.string.blink"],"core-js/actual/string/bold":["es.string.bold"],"core-js/actual/string/code-point-at":["es.string.code-point-at"],"core-js/actual/string/ends-with":["es.string.ends-with"],"core-js/actual/string/fixed":["es.string.fixed"],"core-js/actual/string/fontcolor":["es.string.fontcolor"],"core-js/actual/string/fontsize":["es.string.fontsize"],"core-js/actual/string/from-code-point":["es.string.from-code-point"],"core-js/actual/string/includes":["es.string.includes"],"core-js/actual/string/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/actual/string/italics":["es.string.italics"],"core-js/actual/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/actual/string/link":["es.string.link"],"core-js/actual/string/match":["es.regexp.exec","es.string.match"],"core-js/actual/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/string/pad-end":["es.string.pad-end"],"core-js/actual/string/pad-start":["es.string.pad-start"],"core-js/actual/string/raw":["es.string.raw"],"core-js/actual/string/repeat":["es.string.repeat"],"core-js/actual/string/replace":["es.regexp.exec","es.string.replace"],"core-js/actual/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/string/search":["es.regexp.exec","es.string.search"],"core-js/actual/string/small":["es.string.small"],"core-js/actual/string/split":["es.regexp.exec","es.string.split"],"core-js/actual/string/starts-with":["es.string.starts-with"],"core-js/actual/string/strike":["es.string.strike"],"core-js/actual/string/sub":["es.string.sub"],"core-js/actual/string/substr":["es.string.substr"],"core-js/actual/string/sup":["es.string.sup"],"core-js/actual/string/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/actual/string/trim":["es.string.trim"],"core-js/actual/string/trim-end":["es.string.trim-end"],"core-js/actual/string/trim-left":["es.string.trim-start"],"core-js/actual/string/trim-right":["es.string.trim-end"],"core-js/actual/string/trim-start":["es.string.trim-start"],"core-js/actual/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.is-well-formed","esnext.string.to-well-formed"],"core-js/actual/string/virtual/anchor":["es.string.anchor"],"core-js/actual/string/virtual/at":["es.string.at-alternative"],"core-js/actual/string/virtual/big":["es.string.big"],"core-js/actual/string/virtual/blink":["es.string.blink"],"core-js/actual/string/virtual/bold":["es.string.bold"],"core-js/actual/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/actual/string/virtual/ends-with":["es.string.ends-with"],"core-js/actual/string/virtual/fixed":["es.string.fixed"],"core-js/actual/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/actual/string/virtual/fontsize":["es.string.fontsize"],"core-js/actual/string/virtual/includes":["es.string.includes"],"core-js/actual/string/virtual/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/actual/string/virtual/italics":["es.string.italics"],"core-js/actual/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/actual/string/virtual/link":["es.string.link"],"core-js/actual/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/string/virtual/pad-end":["es.string.pad-end"],"core-js/actual/string/virtual/pad-start":["es.string.pad-start"],"core-js/actual/string/virtual/repeat":["es.string.repeat"],"core-js/actual/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/actual/string/virtual/small":["es.string.small"],"core-js/actual/string/virtual/starts-with":["es.string.starts-with"],"core-js/actual/string/virtual/strike":["es.string.strike"],"core-js/actual/string/virtual/sub":["es.string.sub"],"core-js/actual/string/virtual/substr":["es.string.substr"],"core-js/actual/string/virtual/sup":["es.string.sup"],"core-js/actual/string/virtual/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/actual/string/virtual/trim":["es.string.trim"],"core-js/actual/string/virtual/trim-end":["es.string.trim-end"],"core-js/actual/string/virtual/trim-left":["es.string.trim-start"],"core-js/actual/string/virtual/trim-right":["es.string.trim-end"],"core-js/actual/string/virtual/trim-start":["es.string.trim-start"],"core-js/actual/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/actual/suppressed-error":[],"core-js/actual/symbol":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.function.metadata","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","web.dom-collections.iterator"],"core-js/actual/symbol/async-dispose":["es.symbol.async-dispose","esnext.symbol.async-dispose"],"core-js/actual/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/actual/symbol/description":["es.symbol.description"],"core-js/actual/symbol/dispose":["es.symbol.dispose","esnext.symbol.dispose"],"core-js/actual/symbol/for":["es.symbol"],"core-js/actual/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/actual/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/actual/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/actual/symbol/key-for":["es.symbol"],"core-js/actual/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/actual/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/actual/symbol/metadata":["esnext.function.metadata","esnext.symbol.metadata"],"core-js/actual/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/actual/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/actual/symbol/species":["es.symbol.species"],"core-js/actual/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/actual/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/actual/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/actual/symbol/unscopables":["es.symbol.unscopables"],"core-js/actual/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/at":["es.typed-array.at"],"core-js/actual/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/actual/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/every":["es.typed-array.every"],"core-js/actual/typed-array/fill":["es.typed-array.fill"],"core-js/actual/typed-array/filter":["es.typed-array.filter"],"core-js/actual/typed-array/find":["es.typed-array.find"],"core-js/actual/typed-array/find-index":["es.typed-array.find-index"],"core-js/actual/typed-array/find-last":["es.typed-array.find-last","esnext.typed-array.find-last"],"core-js/actual/typed-array/find-last-index":["es.typed-array.find-last-index","esnext.typed-array.find-last-index"],"core-js/actual/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/for-each":["es.typed-array.for-each"],"core-js/actual/typed-array/from":["es.typed-array.from"],"core-js/actual/typed-array/from-base64":["es.uint8-array.from-base64","esnext.uint8-array.from-base64"],"core-js/actual/typed-array/from-hex":["es.uint8-array.from-hex","esnext.uint8-array.from-hex"],"core-js/actual/typed-array/includes":["es.typed-array.includes"],"core-js/actual/typed-array/index-of":["es.typed-array.index-of"],"core-js/actual/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/join":["es.typed-array.join"],"core-js/actual/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/actual/typed-array/map":["es.typed-array.map"],"core-js/actual/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/of":["es.typed-array.of"],"core-js/actual/typed-array/reduce":["es.typed-array.reduce"],"core-js/actual/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/actual/typed-array/reverse":["es.typed-array.reverse"],"core-js/actual/typed-array/set":["es.typed-array.set"],"core-js/actual/typed-array/set-from-base64":["es.uint8-array.set-from-base64","esnext.uint8-array.set-from-base64"],"core-js/actual/typed-array/set-from-hex":["es.uint8-array.set-from-hex","esnext.uint8-array.set-from-hex"],"core-js/actual/typed-array/slice":["es.typed-array.slice"],"core-js/actual/typed-array/some":["es.typed-array.some"],"core-js/actual/typed-array/sort":["es.typed-array.sort"],"core-js/actual/typed-array/subarray":["es.typed-array.subarray"],"core-js/actual/typed-array/to-base64":["es.uint8-array.to-base64","esnext.uint8-array.to-base64"],"core-js/actual/typed-array/to-hex":["es.uint8-array.to-hex","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/actual/typed-array/to-reversed":["es.typed-array.to-reversed","esnext.typed-array.to-reversed"],"core-js/actual/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted","esnext.typed-array.to-sorted"],"core-js/actual/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/actual/typed-array/to-string":["es.typed-array.to-string"],"core-js/actual/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/actual/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/actual/typed-array/with":["es.typed-array.with","esnext.typed-array.with"],"core-js/actual/unescape":["es.unescape"],"core-js/actual/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/actual/url-search-params":["web.dom-collections.iterator","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/actual/url/can-parse":["web.url","web.url.can-parse"],"core-js/actual/url/parse":["web.url","web.url.parse"],"core-js/actual/url/to-json":["web.url.to-json"],"core-js/actual/weak-map":["es.array.iterator","es.object.to-string","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","web.dom-collections.iterator"],"core-js/actual/weak-map/get-or-insert":["es.weak-map","es.weak-map.get-or-insert","esnext.weak-map.get-or-insert"],"core-js/actual/weak-map/get-or-insert-computed":["es.weak-map","es.weak-map.get-or-insert-computed","esnext.weak-map.get-or-insert-computed"],"core-js/actual/weak-set":["es.array.iterator","es.object.to-string","es.weak-set","web.dom-collections.iterator"],"core-js/es":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.is-error","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.suppressed-error.constructor","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.disposable-stack.constructor","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.array.from-async","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","es.unescape","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","es.weak-set"],"core-js/es/aggregate-error":[],"core-js/es/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string","es.promise","es.array.from-async","es.string.iterator"],"core-js/es/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],"core-js/es/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],"core-js/es/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached"],"core-js/es/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/es/array-buffer/slice":["es.array-buffer.slice"],"core-js/es/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer"],"core-js/es/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length"],"core-js/es/array/at":["es.array.at"],"core-js/es/array/concat":["es.array.concat"],"core-js/es/array/copy-within":["es.array.copy-within"],"core-js/es/array/entries":["es.array.iterator","es.object.to-string"],"core-js/es/array/every":["es.array.every"],"core-js/es/array/fill":["es.array.fill"],"core-js/es/array/filter":["es.array.filter"],"core-js/es/array/find":["es.array.find"],"core-js/es/array/find-index":["es.array.find-index"],"core-js/es/array/find-last":["es.array.find-last"],"core-js/es/array/find-last-index":["es.array.find-last-index"],"core-js/es/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/array/for-each":["es.array.for-each"],"core-js/es/array/from":["es.array.from","es.string.iterator"],"core-js/es/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.array.from-async","es.string.iterator"],"core-js/es/array/includes":["es.array.includes"],"core-js/es/array/index-of":["es.array.index-of"],"core-js/es/array/is-array":["es.array.is-array"],"core-js/es/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/es/array/join":["es.array.join"],"core-js/es/array/keys":["es.array.iterator","es.object.to-string"],"core-js/es/array/last-index-of":["es.array.last-index-of"],"core-js/es/array/map":["es.array.map"],"core-js/es/array/of":["es.array.of"],"core-js/es/array/push":["es.array.push"],"core-js/es/array/reduce":["es.array.reduce"],"core-js/es/array/reduce-right":["es.array.reduce-right"],"core-js/es/array/reverse":["es.array.reverse"],"core-js/es/array/slice":["es.array.slice"],"core-js/es/array/some":["es.array.some"],"core-js/es/array/sort":["es.array.sort"],"core-js/es/array/splice":["es.array.splice"],"core-js/es/array/to-reversed":["es.array.to-reversed"],"core-js/es/array/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/es/array/to-spliced":["es.array.to-spliced"],"core-js/es/array/unshift":["es.array.unshift"],"core-js/es/array/values":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string"],"core-js/es/array/virtual/at":["es.array.at"],"core-js/es/array/virtual/concat":["es.array.concat"],"core-js/es/array/virtual/copy-within":["es.array.copy-within"],"core-js/es/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/every":["es.array.every"],"core-js/es/array/virtual/fill":["es.array.fill"],"core-js/es/array/virtual/filter":["es.array.filter"],"core-js/es/array/virtual/find":["es.array.find"],"core-js/es/array/virtual/find-index":["es.array.find-index"],"core-js/es/array/virtual/find-last":["es.array.find-last"],"core-js/es/array/virtual/find-last-index":["es.array.find-last-index"],"core-js/es/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/array/virtual/for-each":["es.array.for-each"],"core-js/es/array/virtual/includes":["es.array.includes"],"core-js/es/array/virtual/index-of":["es.array.index-of"],"core-js/es/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/join":["es.array.join"],"core-js/es/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/es/array/virtual/map":["es.array.map"],"core-js/es/array/virtual/push":["es.array.push"],"core-js/es/array/virtual/reduce":["es.array.reduce"],"core-js/es/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/es/array/virtual/reverse":["es.array.reverse"],"core-js/es/array/virtual/slice":["es.array.slice"],"core-js/es/array/virtual/some":["es.array.some"],"core-js/es/array/virtual/sort":["es.array.sort"],"core-js/es/array/virtual/splice":["es.array.splice"],"core-js/es/array/virtual/to-reversed":["es.array.to-reversed"],"core-js/es/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/es/array/virtual/to-spliced":["es.array.to-spliced"],"core-js/es/array/virtual/unshift":["es.array.unshift"],"core-js/es/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/es/array/virtual/with":["es.array.with"],"core-js/es/array/with":["es.array.with"],"core-js/es/async-disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose"],"core-js/es/async-disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose"],"core-js/es/async-iterator":["es.object.to-string","es.promise","es.async-iterator.async-dispose"],"core-js/es/async-iterator/async-dispose":["es.object.to-string","es.promise","es.async-iterator.async-dispose"],"core-js/es/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.object.to-string"],"core-js/es/data-view/get-float16":["es.data-view.get-float16"],"core-js/es/data-view/set-float16":["es.data-view.set-float16"],"core-js/es/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/es/date/get-year":["es.date.get-year"],"core-js/es/date/now":["es.date.now"],"core-js/es/date/set-year":["es.date.set-year"],"core-js/es/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/es/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/es/date/to-json":["es.date.to-json"],"core-js/es/date/to-primitive":["es.date.to-primitive"],"core-js/es/date/to-string":["es.date.to-string"],"core-js/es/disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string"],"core-js/es/disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string"],"core-js/es/error":["es.error.cause","es.error.is-error","es.error.to-string"],"core-js/es/error/constructor":["es.error.cause"],"core-js/es/error/is-error":["es.error.is-error","es.object.create"],"core-js/es/error/to-string":["es.error.to-string"],"core-js/es/escape":["es.escape"],"core-js/es/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/es/function/bind":["es.function.bind"],"core-js/es/function/has-instance":["es.function.has-instance"],"core-js/es/function/name":["es.function.name"],"core-js/es/function/virtual":["es.function.bind"],"core-js/es/function/virtual/bind":["es.function.bind"],"core-js/es/get-iterator":["es.array.iterator","es.string.iterator"],"core-js/es/get-iterator-method":["es.array.iterator","es.string.iterator"],"core-js/es/global-this":["es.global-this"],"core-js/es/instance/at":["es.array.at","es.string.at-alternative"],"core-js/es/instance/bind":["es.function.bind"],"core-js/es/instance/code-point-at":["es.string.code-point-at"],"core-js/es/instance/concat":["es.array.concat"],"core-js/es/instance/copy-within":["es.array.copy-within"],"core-js/es/instance/ends-with":["es.string.ends-with"],"core-js/es/instance/entries":["es.array.iterator","es.object.to-string"],"core-js/es/instance/every":["es.array.every"],"core-js/es/instance/fill":["es.array.fill"],"core-js/es/instance/filter":["es.array.filter"],"core-js/es/instance/find":["es.array.find"],"core-js/es/instance/find-index":["es.array.find-index"],"core-js/es/instance/find-last":["es.array.find-last"],"core-js/es/instance/find-last-index":["es.array.find-last-index"],"core-js/es/instance/flags":["es.regexp.flags"],"core-js/es/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/es/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/es/instance/for-each":["es.array.for-each"],"core-js/es/instance/includes":["es.array.includes","es.string.includes"],"core-js/es/instance/index-of":["es.array.index-of"],"core-js/es/instance/is-well-formed":["es.string.is-well-formed"],"core-js/es/instance/keys":["es.array.iterator","es.object.to-string"],"core-js/es/instance/last-index-of":["es.array.last-index-of"],"core-js/es/instance/map":["es.array.map"],"core-js/es/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/instance/pad-end":["es.string.pad-end"],"core-js/es/instance/pad-start":["es.string.pad-start"],"core-js/es/instance/push":["es.array.push"],"core-js/es/instance/reduce":["es.array.reduce"],"core-js/es/instance/reduce-right":["es.array.reduce-right"],"core-js/es/instance/repeat":["es.string.repeat"],"core-js/es/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/instance/reverse":["es.array.reverse"],"core-js/es/instance/slice":["es.array.slice"],"core-js/es/instance/some":["es.array.some"],"core-js/es/instance/sort":["es.array.sort"],"core-js/es/instance/splice":["es.array.splice"],"core-js/es/instance/starts-with":["es.string.starts-with"],"core-js/es/instance/to-reversed":["es.array.to-reversed"],"core-js/es/instance/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/es/instance/to-spliced":["es.array.to-spliced"],"core-js/es/instance/to-well-formed":["es.string.to-well-formed"],"core-js/es/instance/trim":["es.string.trim"],"core-js/es/instance/trim-end":["es.string.trim-end"],"core-js/es/instance/trim-left":["es.string.trim-start"],"core-js/es/instance/trim-right":["es.string.trim-end"],"core-js/es/instance/trim-start":["es.string.trim-start"],"core-js/es/instance/unshift":["es.array.unshift"],"core-js/es/instance/values":["es.array.iterator","es.object.to-string"],"core-js/es/instance/with":["es.array.with"],"core-js/es/is-iterable":["es.array.iterator","es.string.iterator"],"core-js/es/iterator":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator"],"core-js/es/iterator/concat":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/es/iterator/dispose":["es.iterator.dispose"],"core-js/es/iterator/drop":["es.iterator.constructor","es.iterator.drop","es.object.to-string"],"core-js/es/iterator/every":["es.iterator.constructor","es.iterator.every","es.object.to-string"],"core-js/es/iterator/filter":["es.iterator.constructor","es.iterator.filter","es.object.to-string"],"core-js/es/iterator/find":["es.iterator.constructor","es.iterator.find","es.object.to-string"],"core-js/es/iterator/flat-map":["es.array.iterator","es.iterator.constructor","es.iterator.flat-map","es.object.to-string"],"core-js/es/iterator/for-each":["es.iterator.constructor","es.iterator.for-each","es.object.to-string"],"core-js/es/iterator/from":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator"],"core-js/es/iterator/map":["es.iterator.constructor","es.iterator.map","es.object.to-string"],"core-js/es/iterator/reduce":["es.iterator.constructor","es.iterator.reduce","es.object.to-string"],"core-js/es/iterator/some":["es.iterator.constructor","es.iterator.some","es.object.to-string"],"core-js/es/iterator/take":["es.iterator.constructor","es.iterator.take","es.object.to-string"],"core-js/es/iterator/to-array":["es.iterator.constructor","es.iterator.to-array","es.object.to-string"],"core-js/es/json":["es.date.to-json","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.object.create","es.object.freeze","es.object.keys"],"core-js/es/json/is-raw-json":["es.json.is-raw-json"],"core-js/es/json/parse":["es.json.parse","es.object.keys"],"core-js/es/json/raw-json":["es.json.raw-json","es.object.create","es.object.freeze"],"core-js/es/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/es/json/to-string-tag":["es.json.to-string-tag"],"core-js/es/map":["es.array.iterator","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string","es.string.iterator"],"core-js/es/map/get-or-insert":["es.map","es.map.get-or-insert"],"core-js/es/map/get-or-insert-computed":["es.map","es.map.get-or-insert-computed"],"core-js/es/map/group-by":["es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string"],"core-js/es/math":["es.array.iterator","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/es/math/acosh":["es.math.acosh"],"core-js/es/math/asinh":["es.math.asinh"],"core-js/es/math/atanh":["es.math.atanh"],"core-js/es/math/cbrt":["es.math.cbrt"],"core-js/es/math/clz32":["es.math.clz32"],"core-js/es/math/cosh":["es.math.cosh"],"core-js/es/math/expm1":["es.math.expm1"],"core-js/es/math/f16round":["es.math.f16round"],"core-js/es/math/fround":["es.math.fround"],"core-js/es/math/hypot":["es.math.hypot"],"core-js/es/math/imul":["es.math.imul"],"core-js/es/math/log10":["es.math.log10"],"core-js/es/math/log1p":["es.math.log1p"],"core-js/es/math/log2":["es.math.log2"],"core-js/es/math/sign":["es.math.sign"],"core-js/es/math/sinh":["es.math.sinh"],"core-js/es/math/sum-precise":["es.array.iterator","es.math.sum-precise"],"core-js/es/math/tanh":["es.math.tanh"],"core-js/es/math/to-string-tag":["es.math.to-string-tag"],"core-js/es/math/trunc":["es.math.trunc"],"core-js/es/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/es/number/constructor":["es.number.constructor"],"core-js/es/number/epsilon":["es.number.epsilon"],"core-js/es/number/is-finite":["es.number.is-finite"],"core-js/es/number/is-integer":["es.number.is-integer"],"core-js/es/number/is-nan":["es.number.is-nan"],"core-js/es/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/es/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/es/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/es/number/parse-float":["es.number.parse-float"],"core-js/es/number/parse-int":["es.number.parse-int"],"core-js/es/number/to-exponential":["es.number.to-exponential"],"core-js/es/number/to-fixed":["es.number.to-fixed"],"core-js/es/number/to-precision":["es.number.to-precision"],"core-js/es/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/es/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/es/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/es/number/virtual/to-precision":["es.number.to-precision"],"core-js/es/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag"],"core-js/es/object/assign":["es.object.assign"],"core-js/es/object/create":["es.object.create"],"core-js/es/object/define-getter":["es.object.define-getter"],"core-js/es/object/define-properties":["es.object.define-properties"],"core-js/es/object/define-property":["es.object.define-property"],"core-js/es/object/define-setter":["es.object.define-setter"],"core-js/es/object/entries":["es.object.entries"],"core-js/es/object/freeze":["es.object.freeze"],"core-js/es/object/from-entries":["es.array.iterator","es.object.from-entries"],"core-js/es/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/es/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/es/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/es/object/get-own-property-symbols":["es.symbol"],"core-js/es/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/es/object/group-by":["es.object.create","es.object.group-by"],"core-js/es/object/has-own":["es.object.has-own"],"core-js/es/object/is":["es.object.is"],"core-js/es/object/is-extensible":["es.object.is-extensible"],"core-js/es/object/is-frozen":["es.object.is-frozen"],"core-js/es/object/is-sealed":["es.object.is-sealed"],"core-js/es/object/keys":["es.object.keys"],"core-js/es/object/lookup-getter":["es.object.lookup-getter"],"core-js/es/object/lookup-setter":["es.object.lookup-setter"],"core-js/es/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/es/object/proto":["es.object.proto"],"core-js/es/object/seal":["es.object.seal"],"core-js/es/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/es/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/object/values":["es.object.values"],"core-js/es/parse-float":["es.parse-float"],"core-js/es/parse-int":["es.parse-int"],"core-js/es/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.string.iterator"],"core-js/es/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator"],"core-js/es/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator"],"core-js/es/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/es/promise/try":["es.object.to-string","es.promise","es.promise.try"],"core-js/es/promise/with-resolvers":["es.promise","es.promise.with-resolvers"],"core-js/es/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/es/reflect/apply":["es.reflect.apply"],"core-js/es/reflect/construct":["es.reflect.construct"],"core-js/es/reflect/define-property":["es.reflect.define-property"],"core-js/es/reflect/delete-property":["es.reflect.delete-property"],"core-js/es/reflect/get":["es.reflect.get"],"core-js/es/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/es/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/es/reflect/has":["es.reflect.has"],"core-js/es/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/es/reflect/own-keys":["es.reflect.own-keys"],"core-js/es/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/es/reflect/set":["es.reflect.set"],"core-js/es/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/es/reflect/to-string-tag":["es.object.to-string","es.reflect.to-string-tag"],"core-js/es/regexp":["es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/es/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/es/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/es/regexp/escape":["es.regexp.escape"],"core-js/es/regexp/flags":["es.regexp.flags"],"core-js/es/regexp/match":["es.regexp.exec","es.string.match"],"core-js/es/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/es/regexp/search":["es.regexp.exec","es.string.search"],"core-js/es/regexp/split":["es.regexp.exec","es.string.split"],"core-js/es/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/es/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/es/regexp/to-string":["es.regexp.to-string"],"core-js/es/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator"],"core-js/es/set/difference":["es.set","es.set.difference.v2"],"core-js/es/set/intersection":["es.set","es.set.intersection.v2"],"core-js/es/set/is-disjoint-from":["es.set","es.set.is-disjoint-from.v2"],"core-js/es/set/is-subset-of":["es.set","es.set.is-subset-of.v2"],"core-js/es/set/is-superset-of":["es.set","es.set.is-superset-of.v2"],"core-js/es/set/symmetric-difference":["es.set","es.set.symmetric-difference.v2"],"core-js/es/set/union":["es.set","es.set.union.v2"],"core-js/es/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/es/string/anchor":["es.string.anchor"],"core-js/es/string/at":["es.string.at-alternative"],"core-js/es/string/big":["es.string.big"],"core-js/es/string/blink":["es.string.blink"],"core-js/es/string/bold":["es.string.bold"],"core-js/es/string/code-point-at":["es.string.code-point-at"],"core-js/es/string/ends-with":["es.string.ends-with"],"core-js/es/string/fixed":["es.string.fixed"],"core-js/es/string/fontcolor":["es.string.fontcolor"],"core-js/es/string/fontsize":["es.string.fontsize"],"core-js/es/string/from-code-point":["es.string.from-code-point"],"core-js/es/string/includes":["es.string.includes"],"core-js/es/string/is-well-formed":["es.string.is-well-formed"],"core-js/es/string/italics":["es.string.italics"],"core-js/es/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/es/string/link":["es.string.link"],"core-js/es/string/match":["es.regexp.exec","es.string.match"],"core-js/es/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/string/pad-end":["es.string.pad-end"],"core-js/es/string/pad-start":["es.string.pad-start"],"core-js/es/string/raw":["es.string.raw"],"core-js/es/string/repeat":["es.string.repeat"],"core-js/es/string/replace":["es.regexp.exec","es.string.replace"],"core-js/es/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/string/search":["es.regexp.exec","es.string.search"],"core-js/es/string/small":["es.string.small"],"core-js/es/string/split":["es.regexp.exec","es.string.split"],"core-js/es/string/starts-with":["es.string.starts-with"],"core-js/es/string/strike":["es.string.strike"],"core-js/es/string/sub":["es.string.sub"],"core-js/es/string/substr":["es.string.substr"],"core-js/es/string/sup":["es.string.sup"],"core-js/es/string/to-well-formed":["es.string.to-well-formed"],"core-js/es/string/trim":["es.string.trim"],"core-js/es/string/trim-end":["es.string.trim-end"],"core-js/es/string/trim-left":["es.string.trim-start"],"core-js/es/string/trim-right":["es.string.trim-end"],"core-js/es/string/trim-start":["es.string.trim-start"],"core-js/es/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/es/string/virtual/anchor":["es.string.anchor"],"core-js/es/string/virtual/at":["es.string.at-alternative"],"core-js/es/string/virtual/big":["es.string.big"],"core-js/es/string/virtual/blink":["es.string.blink"],"core-js/es/string/virtual/bold":["es.string.bold"],"core-js/es/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/es/string/virtual/ends-with":["es.string.ends-with"],"core-js/es/string/virtual/fixed":["es.string.fixed"],"core-js/es/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/es/string/virtual/fontsize":["es.string.fontsize"],"core-js/es/string/virtual/includes":["es.string.includes"],"core-js/es/string/virtual/is-well-formed":["es.string.is-well-formed"],"core-js/es/string/virtual/italics":["es.string.italics"],"core-js/es/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/es/string/virtual/link":["es.string.link"],"core-js/es/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/string/virtual/pad-end":["es.string.pad-end"],"core-js/es/string/virtual/pad-start":["es.string.pad-start"],"core-js/es/string/virtual/repeat":["es.string.repeat"],"core-js/es/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/es/string/virtual/small":["es.string.small"],"core-js/es/string/virtual/starts-with":["es.string.starts-with"],"core-js/es/string/virtual/strike":["es.string.strike"],"core-js/es/string/virtual/sub":["es.string.sub"],"core-js/es/string/virtual/substr":["es.string.substr"],"core-js/es/string/virtual/sup":["es.string.sup"],"core-js/es/string/virtual/to-well-formed":["es.string.to-well-formed"],"core-js/es/string/virtual/trim":["es.string.trim"],"core-js/es/string/virtual/trim-end":["es.string.trim-end"],"core-js/es/string/virtual/trim-left":["es.string.trim-start"],"core-js/es/string/virtual/trim-right":["es.string.trim-end"],"core-js/es/string/virtual/trim-start":["es.string.trim-start"],"core-js/es/suppressed-error":[],"core-js/es/symbol":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/symbol/async-dispose":["es.symbol.async-dispose"],"core-js/es/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/es/symbol/description":["es.symbol.description"],"core-js/es/symbol/dispose":["es.symbol.dispose"],"core-js/es/symbol/for":["es.symbol"],"core-js/es/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/es/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/es/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator"],"core-js/es/symbol/key-for":["es.symbol"],"core-js/es/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/es/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/es/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/es/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/es/symbol/species":["es.symbol.species"],"core-js/es/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/es/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/es/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/es/symbol/unscopables":["es.symbol.unscopables"],"core-js/es/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/at":["es.typed-array.at"],"core-js/es/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/es/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/every":["es.typed-array.every"],"core-js/es/typed-array/fill":["es.typed-array.fill"],"core-js/es/typed-array/filter":["es.typed-array.filter"],"core-js/es/typed-array/find":["es.typed-array.find"],"core-js/es/typed-array/find-index":["es.typed-array.find-index"],"core-js/es/typed-array/find-last":["es.typed-array.find-last"],"core-js/es/typed-array/find-last-index":["es.typed-array.find-last-index"],"core-js/es/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/for-each":["es.typed-array.for-each"],"core-js/es/typed-array/from":["es.typed-array.from"],"core-js/es/typed-array/from-base64":["es.uint8-array.from-base64"],"core-js/es/typed-array/from-hex":["es.uint8-array.from-hex"],"core-js/es/typed-array/includes":["es.typed-array.includes"],"core-js/es/typed-array/index-of":["es.typed-array.index-of"],"core-js/es/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/join":["es.typed-array.join"],"core-js/es/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/es/typed-array/map":["es.typed-array.map"],"core-js/es/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/of":["es.typed-array.of"],"core-js/es/typed-array/reduce":["es.typed-array.reduce"],"core-js/es/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/es/typed-array/reverse":["es.typed-array.reverse"],"core-js/es/typed-array/set":["es.typed-array.set"],"core-js/es/typed-array/set-from-base64":["es.uint8-array.set-from-base64"],"core-js/es/typed-array/set-from-hex":["es.uint8-array.set-from-hex"],"core-js/es/typed-array/slice":["es.typed-array.slice"],"core-js/es/typed-array/some":["es.typed-array.some"],"core-js/es/typed-array/sort":["es.typed-array.sort"],"core-js/es/typed-array/subarray":["es.typed-array.subarray"],"core-js/es/typed-array/to-base64":["es.uint8-array.to-base64"],"core-js/es/typed-array/to-hex":["es.uint8-array.to-hex"],"core-js/es/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/es/typed-array/to-reversed":["es.typed-array.to-reversed"],"core-js/es/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted"],"core-js/es/typed-array/to-string":["es.typed-array.to-string"],"core-js/es/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/es/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/es/typed-array/with":["es.typed-array.with"],"core-js/es/unescape":["es.unescape"],"core-js/es/weak-map":["es.array.iterator","es.object.to-string","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed"],"core-js/es/weak-map/get-or-insert":["es.weak-map","es.weak-map.get-or-insert"],"core-js/es/weak-map/get-or-insert-computed":["es.weak-map","es.weak-map.get-or-insert-computed"],"core-js/es/weak-set":["es.array.iterator","es.object.to-string","es.weak-set"],"core-js/features":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.is-error","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.suppressed-error.constructor","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.disposable-stack.constructor","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.array.from-async","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","es.unescape","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.clamp","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/features/aggregate-error":[],"core-js/features/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","es.promise","es.array.from-async","es.string.iterator","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/features/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/features/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/features/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","esnext.array-buffer.detached"],"core-js/features/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/features/array-buffer/slice":["es.array-buffer.slice"],"core-js/features/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer","esnext.array-buffer.transfer"],"core-js/features/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length","esnext.array-buffer.transfer-to-fixed-length"],"core-js/features/array/at":["es.array.at","esnext.array.at"],"core-js/features/array/concat":["es.array.concat"],"core-js/features/array/copy-within":["es.array.copy-within"],"core-js/features/array/entries":["es.array.iterator","es.object.to-string"],"core-js/features/array/every":["es.array.every"],"core-js/features/array/fill":["es.array.fill"],"core-js/features/array/filter":["es.array.filter"],"core-js/features/array/filter-out":["esnext.array.filter-out"],"core-js/features/array/filter-reject":["esnext.array.filter-reject"],"core-js/features/array/find":["es.array.find"],"core-js/features/array/find-index":["es.array.find-index"],"core-js/features/array/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/features/array/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/features/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/array/for-each":["es.array.for-each"],"core-js/features/array/from":["es.array.from","es.string.iterator"],"core-js/features/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.array.from-async","es.string.iterator","esnext.array.from-async"],"core-js/features/array/group":["esnext.array.group"],"core-js/features/array/group-by":["esnext.array.group-by"],"core-js/features/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/array/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/features/array/includes":["es.array.includes"],"core-js/features/array/index-of":["es.array.index-of"],"core-js/features/array/is-array":["es.array.is-array"],"core-js/features/array/is-template-object":["esnext.array.is-template-object"],"core-js/features/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/features/array/join":["es.array.join"],"core-js/features/array/keys":["es.array.iterator","es.object.to-string"],"core-js/features/array/last-index":["esnext.array.last-index"],"core-js/features/array/last-index-of":["es.array.last-index-of"],"core-js/features/array/last-item":["esnext.array.last-item"],"core-js/features/array/map":["es.array.map"],"core-js/features/array/of":["es.array.of"],"core-js/features/array/push":["es.array.push"],"core-js/features/array/reduce":["es.array.reduce"],"core-js/features/array/reduce-right":["es.array.reduce-right"],"core-js/features/array/reverse":["es.array.reverse"],"core-js/features/array/slice":["es.array.slice"],"core-js/features/array/some":["es.array.some"],"core-js/features/array/sort":["es.array.sort"],"core-js/features/array/splice":["es.array.splice"],"core-js/features/array/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/features/array/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/features/array/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/features/array/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/array/unshift":["es.array.unshift"],"core-js/features/array/values":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/features/array/virtual/at":["es.array.at","esnext.array.at"],"core-js/features/array/virtual/concat":["es.array.concat"],"core-js/features/array/virtual/copy-within":["es.array.copy-within"],"core-js/features/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/every":["es.array.every"],"core-js/features/array/virtual/fill":["es.array.fill"],"core-js/features/array/virtual/filter":["es.array.filter"],"core-js/features/array/virtual/filter-out":["esnext.array.filter-out"],"core-js/features/array/virtual/filter-reject":["esnext.array.filter-reject"],"core-js/features/array/virtual/find":["es.array.find"],"core-js/features/array/virtual/find-index":["es.array.find-index"],"core-js/features/array/virtual/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/features/array/virtual/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/features/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/array/virtual/for-each":["es.array.for-each"],"core-js/features/array/virtual/group":["esnext.array.group"],"core-js/features/array/virtual/group-by":["esnext.array.group-by"],"core-js/features/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/array/virtual/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/features/array/virtual/includes":["es.array.includes"],"core-js/features/array/virtual/index-of":["es.array.index-of"],"core-js/features/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/join":["es.array.join"],"core-js/features/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/features/array/virtual/map":["es.array.map"],"core-js/features/array/virtual/push":["es.array.push"],"core-js/features/array/virtual/reduce":["es.array.reduce"],"core-js/features/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/features/array/virtual/reverse":["es.array.reverse"],"core-js/features/array/virtual/slice":["es.array.slice"],"core-js/features/array/virtual/some":["es.array.some"],"core-js/features/array/virtual/sort":["es.array.sort"],"core-js/features/array/virtual/splice":["es.array.splice"],"core-js/features/array/virtual/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/features/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/features/array/virtual/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/features/array/virtual/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/array/virtual/unshift":["es.array.unshift"],"core-js/features/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/features/array/virtual/with":["es.array.with","esnext.array.with"],"core-js/features/array/with":["es.array.with","esnext.array.with"],"core-js/features/async-disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/features/async-disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/features/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.async-iterator.async-dispose","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/features/async-iterator/as-indexed-pairs":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs"],"core-js/features/async-iterator/async-dispose":["es.object.to-string","es.promise","es.async-iterator.async-dispose","esnext.async-iterator.async-dispose"],"core-js/features/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/features/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/features/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/features/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/features/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/features/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/features/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/features/async-iterator/indexed":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.indexed"],"core-js/features/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/features/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/features/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/features/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/features/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/features/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/bigint":["es.object.to-string","esnext.bigint.range"],"core-js/features/bigint/range":["es.object.to-string","esnext.bigint.range"],"core-js/features/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/clear-immediate":["web.immediate"],"core-js/features/composite-key":["esnext.composite-key"],"core-js/features/composite-symbol":["es.symbol","esnext.composite-symbol"],"core-js/features/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.object.to-string","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped"],"core-js/features/data-view/get-float16":["es.data-view.get-float16","esnext.data-view.get-float16"],"core-js/features/data-view/get-uint8-clamped":["esnext.data-view.get-uint8-clamped"],"core-js/features/data-view/set-float16":["es.data-view.set-float16","esnext.data-view.set-float16"],"core-js/features/data-view/set-uint8-clamped":["esnext.data-view.set-uint8-clamped"],"core-js/features/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/features/date/get-year":["es.date.get-year"],"core-js/features/date/now":["es.date.now"],"core-js/features/date/set-year":["es.date.set-year"],"core-js/features/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/features/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/features/date/to-json":["es.date.to-json"],"core-js/features/date/to-primitive":["es.date.to-primitive"],"core-js/features/date/to-string":["es.date.to-string"],"core-js/features/disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/features/disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/features/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/features/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/features/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/features/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/features/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/features/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/features/error":["es.error.cause","es.error.is-error","es.error.to-string","es.object.create","esnext.error.is-error"],"core-js/features/error/constructor":["es.error.cause"],"core-js/features/error/is-error":["es.error.is-error","es.object.create","esnext.error.is-error"],"core-js/features/error/to-string":["es.error.to-string"],"core-js/features/escape":["es.escape"],"core-js/features/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this"],"core-js/features/function/bind":["es.function.bind"],"core-js/features/function/demethodize":["esnext.function.demethodize"],"core-js/features/function/has-instance":["es.function.has-instance"],"core-js/features/function/is-callable":["esnext.function.is-callable"],"core-js/features/function/is-constructor":["esnext.function.is-constructor"],"core-js/features/function/metadata":["esnext.function.metadata"],"core-js/features/function/name":["es.function.name"],"core-js/features/function/un-this":["esnext.function.un-this"],"core-js/features/function/virtual":["es.function.bind","esnext.function.demethodize","esnext.function.un-this"],"core-js/features/function/virtual/bind":["es.function.bind"],"core-js/features/function/virtual/demethodize":["esnext.function.demethodize"],"core-js/features/function/virtual/un-this":["esnext.function.un-this"],"core-js/features/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/global-this":["es.global-this","esnext.global-this"],"core-js/features/instance/at":["es.array.at","es.string.at-alternative","esnext.array.at","esnext.string.at"],"core-js/features/instance/bind":["es.function.bind"],"core-js/features/instance/clamp":["esnext.number.clamp"],"core-js/features/instance/code-point-at":["es.string.code-point-at"],"core-js/features/instance/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/instance/concat":["es.array.concat"],"core-js/features/instance/copy-within":["es.array.copy-within"],"core-js/features/instance/demethodize":["esnext.function.demethodize"],"core-js/features/instance/ends-with":["es.string.ends-with"],"core-js/features/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/every":["es.array.every"],"core-js/features/instance/fill":["es.array.fill"],"core-js/features/instance/filter":["es.array.filter"],"core-js/features/instance/filter-out":["esnext.array.filter-out"],"core-js/features/instance/filter-reject":["esnext.array.filter-reject"],"core-js/features/instance/find":["es.array.find"],"core-js/features/instance/find-index":["es.array.find-index"],"core-js/features/instance/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/features/instance/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/features/instance/flags":["es.regexp.flags"],"core-js/features/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/features/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/features/instance/for-each":["es.array.for-each","web.dom-collections.for-each"],"core-js/features/instance/group":["esnext.array.group"],"core-js/features/instance/group-by":["esnext.array.group-by"],"core-js/features/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/features/instance/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/features/instance/includes":["es.array.includes","es.string.includes"],"core-js/features/instance/index-of":["es.array.index-of"],"core-js/features/instance/is-well-formed":["es.string.is-well-formed"],"core-js/features/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/last-index-of":["es.array.last-index-of"],"core-js/features/instance/map":["es.array.map"],"core-js/features/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/instance/pad-end":["es.string.pad-end"],"core-js/features/instance/pad-start":["es.string.pad-start"],"core-js/features/instance/push":["es.array.push"],"core-js/features/instance/reduce":["es.array.reduce"],"core-js/features/instance/reduce-right":["es.array.reduce-right"],"core-js/features/instance/repeat":["es.string.repeat"],"core-js/features/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/instance/reverse":["es.array.reverse"],"core-js/features/instance/slice":["es.array.slice"],"core-js/features/instance/some":["es.array.some"],"core-js/features/instance/sort":["es.array.sort"],"core-js/features/instance/splice":["es.array.splice"],"core-js/features/instance/starts-with":["es.string.starts-with"],"core-js/features/instance/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/features/instance/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/features/instance/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/features/instance/to-well-formed":["es.string.to-well-formed"],"core-js/features/instance/trim":["es.string.trim"],"core-js/features/instance/trim-end":["es.string.trim-end"],"core-js/features/instance/trim-left":["es.string.trim-start"],"core-js/features/instance/trim-right":["es.string.trim-end"],"core-js/features/instance/trim-start":["es.string.trim-start"],"core-js/features/instance/un-this":["esnext.function.un-this"],"core-js/features/instance/unique-by":["es.map","esnext.array.unique-by"],"core-js/features/instance/unshift":["es.array.unshift"],"core-js/features/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/features/instance/with":["es.array.with","esnext.array.with"],"core-js/features/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/features/iterator":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.create","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","web.dom-collections.iterator"],"core-js/features/iterator/as-indexed-pairs":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs"],"core-js/features/iterator/chunks":["es.iterator.constructor","es.object.to-string","esnext.iterator.chunks"],"core-js/features/iterator/concat":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.sliding","esnext.iterator.windows","web.dom-collections.iterator"],"core-js/features/iterator/dispose":["esnext.iterator.dispose"],"core-js/features/iterator/drop":["es.iterator.constructor","es.iterator.drop","es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/features/iterator/every":["es.iterator.constructor","es.iterator.every","es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/features/iterator/filter":["es.iterator.constructor","es.iterator.filter","es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/features/iterator/find":["es.iterator.constructor","es.iterator.find","es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/features/iterator/flat-map":["es.array.iterator","es.iterator.constructor","es.iterator.flat-map","es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map","web.dom-collections.iterator"],"core-js/features/iterator/for-each":["es.iterator.constructor","es.iterator.for-each","es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/features/iterator/from":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.chunks","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","web.dom-collections.iterator"],"core-js/features/iterator/indexed":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.indexed"],"core-js/features/iterator/map":["es.iterator.constructor","es.iterator.map","es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/features/iterator/range":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","esnext.iterator.constructor","esnext.iterator.chunks","esnext.iterator.range","esnext.iterator.sliding","esnext.iterator.windows","web.dom-collections.iterator"],"core-js/features/iterator/reduce":["es.iterator.constructor","es.iterator.reduce","es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/features/iterator/sliding":["es.iterator.constructor","es.object.to-string","esnext.iterator.sliding"],"core-js/features/iterator/some":["es.iterator.constructor","es.iterator.some","es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/features/iterator/take":["es.iterator.constructor","es.iterator.take","es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/features/iterator/to-array":["es.iterator.constructor","es.iterator.to-array","es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/features/iterator/to-async":["es.iterator.constructor","es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/features/iterator/windows":["es.iterator.constructor","es.object.to-string","esnext.iterator.windows"],"core-js/features/iterator/zip":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","esnext.iterator.chunks","esnext.iterator.sliding","esnext.iterator.windows","esnext.iterator.zip","web.dom-collections.iterator"],"core-js/features/iterator/zip-keyed":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.create","es.object.to-string","es.reflect.own-keys","es.string.iterator","esnext.iterator.chunks","esnext.iterator.sliding","esnext.iterator.windows","esnext.iterator.zip-keyed","web.dom-collections.iterator"],"core-js/features/json":["es.date.to-json","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.object.create","es.object.freeze","es.object.keys","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json"],"core-js/features/json/is-raw-json":["es.json.is-raw-json","esnext.json.is-raw-json"],"core-js/features/json/parse":["es.json.parse","es.object.keys","esnext.json.parse"],"core-js/features/json/raw-json":["es.json.raw-json","es.json.stringify","es.object.create","es.object.freeze","esnext.json.raw-json"],"core-js/features/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/features/json/to-string-tag":["es.json.to-string-tag"],"core-js/features/map":["es.array.iterator","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","web.dom-collections.iterator"],"core-js/features/map/delete-all":["es.map","esnext.map.delete-all"],"core-js/features/map/emplace":["es.map","esnext.map.emplace"],"core-js/features/map/every":["es.map","esnext.map.every"],"core-js/features/map/filter":["es.map","esnext.map.filter"],"core-js/features/map/find":["es.map","esnext.map.find"],"core-js/features/map/find-key":["es.map","esnext.map.find-key"],"core-js/features/map/from":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update","web.dom-collections.iterator"],"core-js/features/map/get-or-insert":["es.map","es.map.get-or-insert","esnext.map.get-or-insert"],"core-js/features/map/get-or-insert-computed":["es.map","es.map.get-or-insert-computed","esnext.map.get-or-insert-computed"],"core-js/features/map/group-by":["es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/features/map/includes":["es.map","esnext.map.includes"],"core-js/features/map/key-by":["es.map","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/features/map/key-of":["es.map","esnext.map.key-of"],"core-js/features/map/map-keys":["es.map","esnext.map.map-keys"],"core-js/features/map/map-values":["es.map","esnext.map.map-values"],"core-js/features/map/merge":["es.map","esnext.map.merge"],"core-js/features/map/of":["es.array.iterator","es.map","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/features/map/reduce":["es.map","esnext.map.reduce"],"core-js/features/map/some":["es.map","esnext.map.some"],"core-js/features/map/update":["es.map","esnext.map.update"],"core-js/features/map/update-or-insert":["es.map","esnext.map.update-or-insert"],"core-js/features/map/upsert":["es.map","esnext.map.upsert"],"core-js/features/math":["es.array.iterator","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh"],"core-js/features/math/acosh":["es.math.acosh"],"core-js/features/math/asinh":["es.math.asinh"],"core-js/features/math/atanh":["es.math.atanh"],"core-js/features/math/cbrt":["es.math.cbrt"],"core-js/features/math/clamp":["esnext.math.clamp"],"core-js/features/math/clz32":["es.math.clz32"],"core-js/features/math/cosh":["es.math.cosh"],"core-js/features/math/deg-per-rad":["esnext.math.deg-per-rad"],"core-js/features/math/degrees":["esnext.math.degrees"],"core-js/features/math/expm1":["es.math.expm1"],"core-js/features/math/f16round":["es.math.f16round","esnext.math.f16round"],"core-js/features/math/fround":["es.math.fround"],"core-js/features/math/fscale":["esnext.math.fscale"],"core-js/features/math/hypot":["es.math.hypot"],"core-js/features/math/iaddh":["esnext.math.iaddh"],"core-js/features/math/imul":["es.math.imul"],"core-js/features/math/imulh":["esnext.math.imulh"],"core-js/features/math/isubh":["esnext.math.isubh"],"core-js/features/math/log10":["es.math.log10"],"core-js/features/math/log1p":["es.math.log1p"],"core-js/features/math/log2":["es.math.log2"],"core-js/features/math/rad-per-deg":["esnext.math.rad-per-deg"],"core-js/features/math/radians":["esnext.math.radians"],"core-js/features/math/scale":["esnext.math.scale"],"core-js/features/math/seeded-prng":["esnext.math.seeded-prng"],"core-js/features/math/sign":["es.math.sign"],"core-js/features/math/signbit":["esnext.math.signbit"],"core-js/features/math/sinh":["es.math.sinh"],"core-js/features/math/sum-precise":["es.array.iterator","es.math.sum-precise","esnext.math.sum-precise"],"core-js/features/math/tanh":["es.math.tanh"],"core-js/features/math/to-string-tag":["es.math.to-string-tag"],"core-js/features/math/trunc":["es.math.trunc"],"core-js/features/math/umulh":["esnext.math.umulh"],"core-js/features/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.to-string","esnext.number.clamp","esnext.number.from-string","esnext.number.range"],"core-js/features/number/clamp":["esnext.number.clamp"],"core-js/features/number/constructor":["es.number.constructor"],"core-js/features/number/epsilon":["es.number.epsilon"],"core-js/features/number/from-string":["esnext.number.from-string"],"core-js/features/number/is-finite":["es.number.is-finite"],"core-js/features/number/is-integer":["es.number.is-integer"],"core-js/features/number/is-nan":["es.number.is-nan"],"core-js/features/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/features/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/features/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/features/number/parse-float":["es.number.parse-float"],"core-js/features/number/parse-int":["es.number.parse-int"],"core-js/features/number/range":["es.object.to-string","esnext.number.range"],"core-js/features/number/to-exponential":["es.number.to-exponential"],"core-js/features/number/to-fixed":["es.number.to-fixed"],"core-js/features/number/to-precision":["es.number.to-precision"],"core-js/features/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/features/number/virtual/clamp":["esnext.number.clamp"],"core-js/features/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/features/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/features/number/virtual/to-precision":["es.number.to-precision"],"core-js/features/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","web.dom-collections.iterator"],"core-js/features/object/assign":["es.object.assign"],"core-js/features/object/create":["es.object.create"],"core-js/features/object/define-getter":["es.object.define-getter"],"core-js/features/object/define-properties":["es.object.define-properties"],"core-js/features/object/define-property":["es.object.define-property"],"core-js/features/object/define-setter":["es.object.define-setter"],"core-js/features/object/entries":["es.object.entries"],"core-js/features/object/freeze":["es.object.freeze"],"core-js/features/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/features/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/features/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/features/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/features/object/get-own-property-symbols":["es.symbol"],"core-js/features/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/features/object/group-by":["es.object.create","es.object.group-by","esnext.object.group-by"],"core-js/features/object/has-own":["es.object.has-own","esnext.object.has-own"],"core-js/features/object/is":["es.object.is"],"core-js/features/object/is-extensible":["es.object.is-extensible"],"core-js/features/object/is-frozen":["es.object.is-frozen"],"core-js/features/object/is-sealed":["es.object.is-sealed"],"core-js/features/object/iterate-entries":["esnext.object.iterate-entries"],"core-js/features/object/iterate-keys":["esnext.object.iterate-keys"],"core-js/features/object/iterate-values":["esnext.object.iterate-values"],"core-js/features/object/keys":["es.object.keys"],"core-js/features/object/lookup-getter":["es.object.lookup-getter"],"core-js/features/object/lookup-setter":["es.object.lookup-setter"],"core-js/features/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/features/object/proto":["es.object.proto"],"core-js/features/object/seal":["es.object.seal"],"core-js/features/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/features/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/features/object/values":["es.object.values"],"core-js/features/observable":["es.object.to-string","es.string.iterator","esnext.observable","esnext.symbol.observable","web.dom-collections.iterator"],"core-js/features/parse-float":["es.parse-float"],"core-js/features/parse-int":["es.parse-int"],"core-js/features/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.string.iterator","esnext.aggregate-error","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","web.dom-collections.iterator"],"core-js/features/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","esnext.promise.all-settled","web.dom-collections.iterator"],"core-js/features/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","esnext.aggregate-error","esnext.promise.any","web.dom-collections.iterator"],"core-js/features/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/features/promise/try":["es.object.to-string","es.promise","es.promise.try","esnext.promise.try"],"core-js/features/promise/with-resolvers":["es.promise","es.promise.with-resolvers","esnext.promise.with-resolvers"],"core-js/features/queue-microtask":["web.queue-microtask"],"core-js/features/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/features/reflect/apply":["es.reflect.apply"],"core-js/features/reflect/construct":["es.reflect.construct"],"core-js/features/reflect/define-metadata":["esnext.reflect.define-metadata"],"core-js/features/reflect/define-property":["es.reflect.define-property"],"core-js/features/reflect/delete-metadata":["esnext.reflect.delete-metadata"],"core-js/features/reflect/delete-property":["es.reflect.delete-property"],"core-js/features/reflect/get":["es.reflect.get"],"core-js/features/reflect/get-metadata":["esnext.reflect.get-metadata"],"core-js/features/reflect/get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/features/reflect/get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/features/reflect/get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/features/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/features/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/features/reflect/has":["es.reflect.has"],"core-js/features/reflect/has-metadata":["esnext.reflect.has-metadata"],"core-js/features/reflect/has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/features/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/features/reflect/metadata":["esnext.reflect.metadata"],"core-js/features/reflect/own-keys":["es.reflect.own-keys"],"core-js/features/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/features/reflect/set":["es.reflect.set"],"core-js/features/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/features/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/features/regexp":["es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split","esnext.regexp.escape"],"core-js/features/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/features/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/features/regexp/escape":["es.regexp.escape","esnext.regexp.escape"],"core-js/features/regexp/flags":["es.regexp.flags"],"core-js/features/regexp/match":["es.regexp.exec","es.string.match"],"core-js/features/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/features/regexp/search":["es.regexp.exec","es.string.search"],"core-js/features/regexp/split":["es.regexp.exec","es.string.split"],"core-js/features/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/features/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/features/regexp/to-string":["es.regexp.to-string"],"core-js/features/self":["web.self"],"core-js/features/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","web.dom-collections.iterator"],"core-js/features/set-immediate":["web.immediate"],"core-js/features/set-interval":["web.timers"],"core-js/features/set-timeout":["web.timers"],"core-js/features/set/add-all":["es.set","esnext.set.add-all"],"core-js/features/set/delete-all":["es.set","esnext.set.delete-all"],"core-js/features/set/difference":["es.array.iterator","es.set","es.set.difference.v2","es.string.iterator","esnext.set.difference.v2","esnext.set.difference","web.dom-collections.iterator"],"core-js/features/set/every":["es.set","esnext.set.every"],"core-js/features/set/filter":["es.set","esnext.set.filter"],"core-js/features/set/find":["es.set","esnext.set.find"],"core-js/features/set/from":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.union.v2","web.dom-collections.iterator"],"core-js/features/set/intersection":["es.array.iterator","es.set","es.set.intersection.v2","es.string.iterator","esnext.set.intersection.v2","esnext.set.intersection","web.dom-collections.iterator"],"core-js/features/set/is-disjoint-from":["es.array.iterator","es.set","es.set.is-disjoint-from.v2","es.string.iterator","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","web.dom-collections.iterator"],"core-js/features/set/is-subset-of":["es.array.iterator","es.set","es.set.is-subset-of.v2","es.string.iterator","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","web.dom-collections.iterator"],"core-js/features/set/is-superset-of":["es.array.iterator","es.set","es.set.is-superset-of.v2","es.string.iterator","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","web.dom-collections.iterator"],"core-js/features/set/join":["es.set","esnext.set.join"],"core-js/features/set/map":["es.set","esnext.set.map"],"core-js/features/set/of":["es.array.iterator","es.object.to-string","es.set","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.union.v2"],"core-js/features/set/reduce":["es.set","esnext.set.reduce"],"core-js/features/set/some":["es.set","esnext.set.some"],"core-js/features/set/symmetric-difference":["es.array.iterator","es.set","es.set.symmetric-difference.v2","es.string.iterator","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","web.dom-collections.iterator"],"core-js/features/set/union":["es.array.iterator","es.set","es.set.union.v2","es.string.iterator","esnext.set.union.v2","esnext.set.union","web.dom-collections.iterator"],"core-js/features/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.weak-map","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed"],"core-js/features/string/anchor":["es.string.anchor"],"core-js/features/string/at":["es.string.at-alternative","esnext.string.at"],"core-js/features/string/big":["es.string.big"],"core-js/features/string/blink":["es.string.blink"],"core-js/features/string/bold":["es.string.bold"],"core-js/features/string/code-point-at":["es.string.code-point-at"],"core-js/features/string/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/string/cooked":["esnext.string.cooked"],"core-js/features/string/dedent":["es.string.from-code-point","es.weak-map","esnext.string.dedent"],"core-js/features/string/ends-with":["es.string.ends-with"],"core-js/features/string/fixed":["es.string.fixed"],"core-js/features/string/fontcolor":["es.string.fontcolor"],"core-js/features/string/fontsize":["es.string.fontsize"],"core-js/features/string/from-code-point":["es.string.from-code-point"],"core-js/features/string/includes":["es.string.includes"],"core-js/features/string/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/features/string/italics":["es.string.italics"],"core-js/features/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/features/string/link":["es.string.link"],"core-js/features/string/match":["es.regexp.exec","es.string.match"],"core-js/features/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/string/pad-end":["es.string.pad-end"],"core-js/features/string/pad-start":["es.string.pad-start"],"core-js/features/string/raw":["es.string.raw"],"core-js/features/string/repeat":["es.string.repeat"],"core-js/features/string/replace":["es.regexp.exec","es.string.replace"],"core-js/features/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/string/search":["es.regexp.exec","es.string.search"],"core-js/features/string/small":["es.string.small"],"core-js/features/string/split":["es.regexp.exec","es.string.split"],"core-js/features/string/starts-with":["es.string.starts-with"],"core-js/features/string/strike":["es.string.strike"],"core-js/features/string/sub":["es.string.sub"],"core-js/features/string/substr":["es.string.substr"],"core-js/features/string/sup":["es.string.sup"],"core-js/features/string/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/features/string/trim":["es.string.trim"],"core-js/features/string/trim-end":["es.string.trim-end"],"core-js/features/string/trim-left":["es.string.trim-start"],"core-js/features/string/trim-right":["es.string.trim-end"],"core-js/features/string/trim-start":["es.string.trim-start"],"core-js/features/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.code-points","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed"],"core-js/features/string/virtual/anchor":["es.string.anchor"],"core-js/features/string/virtual/at":["es.string.at-alternative","esnext.string.at"],"core-js/features/string/virtual/big":["es.string.big"],"core-js/features/string/virtual/blink":["es.string.blink"],"core-js/features/string/virtual/bold":["es.string.bold"],"core-js/features/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/features/string/virtual/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/features/string/virtual/ends-with":["es.string.ends-with"],"core-js/features/string/virtual/fixed":["es.string.fixed"],"core-js/features/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/features/string/virtual/fontsize":["es.string.fontsize"],"core-js/features/string/virtual/includes":["es.string.includes"],"core-js/features/string/virtual/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/features/string/virtual/italics":["es.string.italics"],"core-js/features/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/features/string/virtual/link":["es.string.link"],"core-js/features/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/features/string/virtual/pad-end":["es.string.pad-end"],"core-js/features/string/virtual/pad-start":["es.string.pad-start"],"core-js/features/string/virtual/repeat":["es.string.repeat"],"core-js/features/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/features/string/virtual/small":["es.string.small"],"core-js/features/string/virtual/starts-with":["es.string.starts-with"],"core-js/features/string/virtual/strike":["es.string.strike"],"core-js/features/string/virtual/sub":["es.string.sub"],"core-js/features/string/virtual/substr":["es.string.substr"],"core-js/features/string/virtual/sup":["es.string.sup"],"core-js/features/string/virtual/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/features/string/virtual/trim":["es.string.trim"],"core-js/features/string/virtual/trim-end":["es.string.trim-end"],"core-js/features/string/virtual/trim-left":["es.string.trim-start"],"core-js/features/string/virtual/trim-right":["es.string.trim-end"],"core-js/features/string/virtual/trim-start":["es.string.trim-start"],"core-js/features/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/features/suppressed-error":[],"core-js/features/symbol":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.function.metadata","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","web.dom-collections.iterator"],"core-js/features/symbol/async-dispose":["es.symbol.async-dispose","esnext.symbol.async-dispose"],"core-js/features/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/features/symbol/custom-matcher":["esnext.symbol.custom-matcher"],"core-js/features/symbol/description":["es.symbol.description"],"core-js/features/symbol/dispose":["es.symbol.dispose","esnext.symbol.dispose"],"core-js/features/symbol/for":["es.symbol"],"core-js/features/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/features/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/features/symbol/is-registered":["es.symbol","esnext.symbol.is-registered"],"core-js/features/symbol/is-registered-symbol":["es.symbol","esnext.symbol.is-registered-symbol"],"core-js/features/symbol/is-well-known":["es.symbol","esnext.symbol.is-well-known"],"core-js/features/symbol/is-well-known-symbol":["es.symbol","esnext.symbol.is-well-known-symbol"],"core-js/features/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/features/symbol/key-for":["es.symbol"],"core-js/features/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/features/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/features/symbol/matcher":["esnext.symbol.matcher"],"core-js/features/symbol/metadata":["esnext.function.metadata","esnext.symbol.metadata"],"core-js/features/symbol/metadata-key":["esnext.symbol.metadata-key"],"core-js/features/symbol/observable":["esnext.symbol.observable"],"core-js/features/symbol/pattern-match":["esnext.symbol.pattern-match"],"core-js/features/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/features/symbol/replace-all":["esnext.symbol.replace-all"],"core-js/features/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/features/symbol/species":["es.symbol.species"],"core-js/features/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/features/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/features/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/features/symbol/unscopables":["es.symbol.unscopables"],"core-js/features/typed-array":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/at":["es.typed-array.at","esnext.typed-array.at"],"core-js/features/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/features/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/every":["es.typed-array.every"],"core-js/features/typed-array/fill":["es.typed-array.fill"],"core-js/features/typed-array/filter":["es.typed-array.filter"],"core-js/features/typed-array/filter-out":["esnext.typed-array.filter-out"],"core-js/features/typed-array/filter-reject":["esnext.typed-array.filter-reject"],"core-js/features/typed-array/find":["es.typed-array.find"],"core-js/features/typed-array/find-index":["es.typed-array.find-index"],"core-js/features/typed-array/find-last":["es.typed-array.find-last","esnext.typed-array.find-last"],"core-js/features/typed-array/find-last-index":["es.typed-array.find-last-index","esnext.typed-array.find-last-index"],"core-js/features/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/for-each":["es.typed-array.for-each"],"core-js/features/typed-array/from":["es.typed-array.from"],"core-js/features/typed-array/from-async":["esnext.typed-array.from-async"],"core-js/features/typed-array/from-base64":["es.uint8-array.from-base64","esnext.uint8-array.from-base64"],"core-js/features/typed-array/from-hex":["es.uint8-array.from-hex","esnext.uint8-array.from-hex"],"core-js/features/typed-array/group-by":["esnext.typed-array.group-by"],"core-js/features/typed-array/includes":["es.typed-array.includes"],"core-js/features/typed-array/index-of":["es.typed-array.index-of"],"core-js/features/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/join":["es.typed-array.join"],"core-js/features/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/features/typed-array/map":["es.typed-array.map"],"core-js/features/typed-array/methods":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/of":["es.typed-array.of"],"core-js/features/typed-array/reduce":["es.typed-array.reduce"],"core-js/features/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/features/typed-array/reverse":["es.typed-array.reverse"],"core-js/features/typed-array/set":["es.typed-array.set"],"core-js/features/typed-array/set-from-base64":["es.uint8-array.set-from-base64","esnext.uint8-array.set-from-base64"],"core-js/features/typed-array/set-from-hex":["es.uint8-array.set-from-hex","esnext.uint8-array.set-from-hex"],"core-js/features/typed-array/slice":["es.typed-array.slice"],"core-js/features/typed-array/some":["es.typed-array.some"],"core-js/features/typed-array/sort":["es.typed-array.sort"],"core-js/features/typed-array/subarray":["es.typed-array.subarray"],"core-js/features/typed-array/to-base64":["es.uint8-array.to-base64","esnext.uint8-array.to-base64"],"core-js/features/typed-array/to-hex":["es.uint8-array.to-hex","esnext.uint8-array.to-hex"],"core-js/features/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/features/typed-array/to-reversed":["es.typed-array.to-reversed","esnext.typed-array.to-reversed"],"core-js/features/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted","esnext.typed-array.to-sorted"],"core-js/features/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/features/typed-array/to-string":["es.typed-array.to-string"],"core-js/features/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/features/typed-array/unique-by":["es.map","esnext.typed-array.unique-by"],"core-js/features/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/features/typed-array/with":["es.typed-array.with","esnext.typed-array.with"],"core-js/features/unescape":["es.unescape"],"core-js/features/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/features/url-search-params":["web.dom-collections.iterator","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/features/url/can-parse":["web.url","web.url.can-parse"],"core-js/features/url/parse":["web.url","web.url.parse"],"core-js/features/url/to-json":["web.url.to-json"],"core-js/features/weak-map":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","web.dom-collections.iterator"],"core-js/features/weak-map/delete-all":["es.weak-map","esnext.weak-map.delete-all"],"core-js/features/weak-map/emplace":["es.weak-map","esnext.weak-map.emplace"],"core-js/features/weak-map/from":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","web.dom-collections.iterator"],"core-js/features/weak-map/get-or-insert":["es.weak-map","es.weak-map.get-or-insert","esnext.weak-map.get-or-insert"],"core-js/features/weak-map/get-or-insert-computed":["es.weak-map","es.weak-map.get-or-insert-computed","esnext.weak-map.get-or-insert-computed"],"core-js/features/weak-map/of":["es.array.iterator","es.object.to-string","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed"],"core-js/features/weak-map/upsert":["es.weak-map","esnext.weak-map.upsert"],"core-js/features/weak-set":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.iterator"],"core-js/features/weak-set/add-all":["es.weak-set","esnext.weak-set.add-all"],"core-js/features/weak-set/delete-all":["es.weak-set","esnext.weak-set.delete-all"],"core-js/features/weak-set/from":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","web.dom-collections.iterator"],"core-js/features/weak-set/of":["es.array.iterator","es.object.to-string","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.of"],"core-js/full":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.is-error","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.suppressed-error.constructor","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.disposable-stack.constructor","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.array.from-async","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","es.unescape","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","es.weak-set","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.clamp","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/full/aggregate-error":[],"core-js/full/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","es.promise","es.array.from-async","es.string.iterator","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/full/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/full/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/full/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","esnext.array-buffer.detached"],"core-js/full/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/full/array-buffer/slice":["es.array-buffer.slice"],"core-js/full/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer","esnext.array-buffer.transfer"],"core-js/full/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length","esnext.array-buffer.transfer-to-fixed-length"],"core-js/full/array/at":["es.array.at","esnext.array.at"],"core-js/full/array/concat":["es.array.concat"],"core-js/full/array/copy-within":["es.array.copy-within"],"core-js/full/array/entries":["es.array.iterator","es.object.to-string"],"core-js/full/array/every":["es.array.every"],"core-js/full/array/fill":["es.array.fill"],"core-js/full/array/filter":["es.array.filter"],"core-js/full/array/filter-out":["esnext.array.filter-out"],"core-js/full/array/filter-reject":["esnext.array.filter-reject"],"core-js/full/array/find":["es.array.find"],"core-js/full/array/find-index":["es.array.find-index"],"core-js/full/array/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/full/array/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/full/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/array/for-each":["es.array.for-each"],"core-js/full/array/from":["es.array.from","es.string.iterator"],"core-js/full/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.array.from-async","es.string.iterator","esnext.array.from-async"],"core-js/full/array/group":["esnext.array.group"],"core-js/full/array/group-by":["esnext.array.group-by"],"core-js/full/array/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/array/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/full/array/includes":["es.array.includes"],"core-js/full/array/index-of":["es.array.index-of"],"core-js/full/array/is-array":["es.array.is-array"],"core-js/full/array/is-template-object":["esnext.array.is-template-object"],"core-js/full/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/full/array/join":["es.array.join"],"core-js/full/array/keys":["es.array.iterator","es.object.to-string"],"core-js/full/array/last-index":["esnext.array.last-index"],"core-js/full/array/last-index-of":["es.array.last-index-of"],"core-js/full/array/last-item":["esnext.array.last-item"],"core-js/full/array/map":["es.array.map"],"core-js/full/array/of":["es.array.of"],"core-js/full/array/push":["es.array.push"],"core-js/full/array/reduce":["es.array.reduce"],"core-js/full/array/reduce-right":["es.array.reduce-right"],"core-js/full/array/reverse":["es.array.reverse"],"core-js/full/array/slice":["es.array.slice"],"core-js/full/array/some":["es.array.some"],"core-js/full/array/sort":["es.array.sort"],"core-js/full/array/splice":["es.array.splice"],"core-js/full/array/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/full/array/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/full/array/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/full/array/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/array/unshift":["es.array.unshift"],"core-js/full/array/values":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.map","es.object.to-string","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with"],"core-js/full/array/virtual/at":["es.array.at","esnext.array.at"],"core-js/full/array/virtual/concat":["es.array.concat"],"core-js/full/array/virtual/copy-within":["es.array.copy-within"],"core-js/full/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/every":["es.array.every"],"core-js/full/array/virtual/fill":["es.array.fill"],"core-js/full/array/virtual/filter":["es.array.filter"],"core-js/full/array/virtual/filter-out":["esnext.array.filter-out"],"core-js/full/array/virtual/filter-reject":["esnext.array.filter-reject"],"core-js/full/array/virtual/find":["es.array.find"],"core-js/full/array/virtual/find-index":["es.array.find-index"],"core-js/full/array/virtual/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/full/array/virtual/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/full/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/array/virtual/for-each":["es.array.for-each"],"core-js/full/array/virtual/group":["esnext.array.group"],"core-js/full/array/virtual/group-by":["esnext.array.group-by"],"core-js/full/array/virtual/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/array/virtual/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/full/array/virtual/includes":["es.array.includes"],"core-js/full/array/virtual/index-of":["es.array.index-of"],"core-js/full/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/join":["es.array.join"],"core-js/full/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/full/array/virtual/map":["es.array.map"],"core-js/full/array/virtual/push":["es.array.push"],"core-js/full/array/virtual/reduce":["es.array.reduce"],"core-js/full/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/full/array/virtual/reverse":["es.array.reverse"],"core-js/full/array/virtual/slice":["es.array.slice"],"core-js/full/array/virtual/some":["es.array.some"],"core-js/full/array/virtual/sort":["es.array.sort"],"core-js/full/array/virtual/splice":["es.array.splice"],"core-js/full/array/virtual/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/full/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/full/array/virtual/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/full/array/virtual/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/array/virtual/unshift":["es.array.unshift"],"core-js/full/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/full/array/virtual/with":["es.array.with","esnext.array.with"],"core-js/full/array/with":["es.array.with","esnext.array.with"],"core-js/full/async-disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/full/async-disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.iterator.dispose"],"core-js/full/async-iterator":["es.array.iterator","es.object.to-string","es.promise","es.async-iterator.async-dispose","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/full/async-iterator/as-indexed-pairs":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs"],"core-js/full/async-iterator/async-dispose":["es.object.to-string","es.promise","es.async-iterator.async-dispose","esnext.async-iterator.async-dispose"],"core-js/full/async-iterator/drop":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.drop"],"core-js/full/async-iterator/every":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.every"],"core-js/full/async-iterator/filter":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.filter"],"core-js/full/async-iterator/find":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.find"],"core-js/full/async-iterator/flat-map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.flat-map"],"core-js/full/async-iterator/for-each":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.for-each"],"core-js/full/async-iterator/from":["es.array.iterator","es.object.to-string","es.promise","es.string.iterator","esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","web.dom-collections.iterator"],"core-js/full/async-iterator/indexed":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.indexed"],"core-js/full/async-iterator/map":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.map"],"core-js/full/async-iterator/reduce":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.reduce"],"core-js/full/async-iterator/some":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.some"],"core-js/full/async-iterator/take":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.take"],"core-js/full/async-iterator/to-array":["es.object.to-string","es.promise","esnext.async-iterator.constructor","esnext.async-iterator.to-array"],"core-js/full/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/bigint":["es.object.to-string","esnext.bigint.range"],"core-js/full/bigint/range":["es.object.to-string","esnext.bigint.range"],"core-js/full/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/clear-immediate":["web.immediate"],"core-js/full/composite-key":["esnext.composite-key"],"core-js/full/composite-symbol":["es.symbol","esnext.composite-symbol"],"core-js/full/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.object.to-string","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped"],"core-js/full/data-view/get-float16":["es.data-view.get-float16","esnext.data-view.get-float16"],"core-js/full/data-view/get-uint8-clamped":["esnext.data-view.get-uint8-clamped"],"core-js/full/data-view/set-float16":["es.data-view.set-float16","esnext.data-view.set-float16"],"core-js/full/data-view/set-uint8-clamped":["esnext.data-view.set-uint8-clamped"],"core-js/full/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/full/date/get-year":["es.date.get-year"],"core-js/full/date/now":["es.date.now"],"core-js/full/date/set-year":["es.date.set-year"],"core-js/full/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/full/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/full/date/to-json":["es.date.to-json"],"core-js/full/date/to-primitive":["es.date.to-primitive"],"core-js/full/date/to-string":["es.date.to-string"],"core-js/full/disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/full/disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string","esnext.suppressed-error.constructor","esnext.disposable-stack.constructor","esnext.iterator.dispose"],"core-js/full/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/full/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/full/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/full/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/full/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/full/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/full/error":["es.error.cause","es.error.is-error","es.error.to-string","es.object.create","esnext.error.is-error"],"core-js/full/error/constructor":["es.error.cause"],"core-js/full/error/is-error":["es.error.is-error","es.object.create","esnext.error.is-error"],"core-js/full/error/to-string":["es.error.to-string"],"core-js/full/escape":["es.escape"],"core-js/full/function":["es.function.bind","es.function.has-instance","es.function.name","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this"],"core-js/full/function/bind":["es.function.bind"],"core-js/full/function/demethodize":["esnext.function.demethodize"],"core-js/full/function/has-instance":["es.function.has-instance"],"core-js/full/function/is-callable":["esnext.function.is-callable"],"core-js/full/function/is-constructor":["esnext.function.is-constructor"],"core-js/full/function/metadata":["esnext.function.metadata"],"core-js/full/function/name":["es.function.name"],"core-js/full/function/un-this":["esnext.function.un-this"],"core-js/full/function/virtual":["es.function.bind","esnext.function.demethodize","esnext.function.un-this"],"core-js/full/function/virtual/bind":["es.function.bind"],"core-js/full/function/virtual/demethodize":["esnext.function.demethodize"],"core-js/full/function/virtual/un-this":["esnext.function.un-this"],"core-js/full/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/global-this":["es.global-this","esnext.global-this"],"core-js/full/instance/at":["es.array.at","es.string.at-alternative","esnext.array.at","esnext.string.at"],"core-js/full/instance/bind":["es.function.bind"],"core-js/full/instance/clamp":["esnext.number.clamp"],"core-js/full/instance/code-point-at":["es.string.code-point-at"],"core-js/full/instance/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/instance/concat":["es.array.concat"],"core-js/full/instance/copy-within":["es.array.copy-within"],"core-js/full/instance/demethodize":["esnext.function.demethodize"],"core-js/full/instance/ends-with":["es.string.ends-with"],"core-js/full/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/every":["es.array.every"],"core-js/full/instance/fill":["es.array.fill"],"core-js/full/instance/filter":["es.array.filter"],"core-js/full/instance/filter-out":["esnext.array.filter-out"],"core-js/full/instance/filter-reject":["esnext.array.filter-reject"],"core-js/full/instance/find":["es.array.find"],"core-js/full/instance/find-index":["es.array.find-index"],"core-js/full/instance/find-last":["es.array.find-last","esnext.array.find-last"],"core-js/full/instance/find-last-index":["es.array.find-last-index","esnext.array.find-last-index"],"core-js/full/instance/flags":["es.regexp.flags"],"core-js/full/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/full/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/full/instance/for-each":["es.array.for-each","web.dom-collections.for-each"],"core-js/full/instance/group":["esnext.array.group"],"core-js/full/instance/group-by":["esnext.array.group-by"],"core-js/full/instance/group-by-to-map":["es.map","es.object.to-string","esnext.array.group-by-to-map"],"core-js/full/instance/group-to-map":["es.map","es.object.to-string","esnext.array.group-to-map"],"core-js/full/instance/includes":["es.array.includes","es.string.includes"],"core-js/full/instance/index-of":["es.array.index-of"],"core-js/full/instance/is-well-formed":["es.string.is-well-formed"],"core-js/full/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/last-index-of":["es.array.last-index-of"],"core-js/full/instance/map":["es.array.map"],"core-js/full/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/instance/pad-end":["es.string.pad-end"],"core-js/full/instance/pad-start":["es.string.pad-start"],"core-js/full/instance/push":["es.array.push"],"core-js/full/instance/reduce":["es.array.reduce"],"core-js/full/instance/reduce-right":["es.array.reduce-right"],"core-js/full/instance/repeat":["es.string.repeat"],"core-js/full/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/instance/reverse":["es.array.reverse"],"core-js/full/instance/slice":["es.array.slice"],"core-js/full/instance/some":["es.array.some"],"core-js/full/instance/sort":["es.array.sort"],"core-js/full/instance/splice":["es.array.splice"],"core-js/full/instance/starts-with":["es.string.starts-with"],"core-js/full/instance/to-reversed":["es.array.to-reversed","esnext.array.to-reversed"],"core-js/full/instance/to-sorted":["es.array.sort","es.array.to-sorted","esnext.array.to-sorted"],"core-js/full/instance/to-spliced":["es.array.to-spliced","esnext.array.to-spliced"],"core-js/full/instance/to-well-formed":["es.string.to-well-formed"],"core-js/full/instance/trim":["es.string.trim"],"core-js/full/instance/trim-end":["es.string.trim-end"],"core-js/full/instance/trim-left":["es.string.trim-start"],"core-js/full/instance/trim-right":["es.string.trim-end"],"core-js/full/instance/trim-start":["es.string.trim-start"],"core-js/full/instance/un-this":["esnext.function.un-this"],"core-js/full/instance/unique-by":["es.map","esnext.array.unique-by"],"core-js/full/instance/unshift":["es.array.unshift"],"core-js/full/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/full/instance/with":["es.array.with","esnext.array.with"],"core-js/full/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/full/iterator":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.create","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","web.dom-collections.iterator"],"core-js/full/iterator/as-indexed-pairs":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs"],"core-js/full/iterator/chunks":["es.iterator.constructor","es.object.to-string","esnext.iterator.chunks"],"core-js/full/iterator/concat":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.sliding","esnext.iterator.windows","web.dom-collections.iterator"],"core-js/full/iterator/dispose":["esnext.iterator.dispose"],"core-js/full/iterator/drop":["es.iterator.constructor","es.iterator.drop","es.object.to-string","esnext.iterator.constructor","esnext.iterator.drop"],"core-js/full/iterator/every":["es.iterator.constructor","es.iterator.every","es.object.to-string","esnext.iterator.constructor","esnext.iterator.every"],"core-js/full/iterator/filter":["es.iterator.constructor","es.iterator.filter","es.object.to-string","esnext.iterator.constructor","esnext.iterator.filter"],"core-js/full/iterator/find":["es.iterator.constructor","es.iterator.find","es.object.to-string","esnext.iterator.constructor","esnext.iterator.find"],"core-js/full/iterator/flat-map":["es.array.iterator","es.iterator.constructor","es.iterator.flat-map","es.object.to-string","esnext.iterator.constructor","esnext.iterator.flat-map","web.dom-collections.iterator"],"core-js/full/iterator/for-each":["es.iterator.constructor","es.iterator.for-each","es.object.to-string","esnext.iterator.constructor","esnext.iterator.for-each"],"core-js/full/iterator/from":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.promise","es.string.iterator","esnext.iterator.constructor","esnext.iterator.chunks","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","web.dom-collections.iterator"],"core-js/full/iterator/indexed":["es.object.to-string","esnext.iterator.constructor","esnext.iterator.indexed"],"core-js/full/iterator/map":["es.iterator.constructor","es.iterator.map","es.object.to-string","esnext.iterator.constructor","esnext.iterator.map"],"core-js/full/iterator/range":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","esnext.iterator.constructor","esnext.iterator.chunks","esnext.iterator.range","esnext.iterator.sliding","esnext.iterator.windows","web.dom-collections.iterator"],"core-js/full/iterator/reduce":["es.iterator.constructor","es.iterator.reduce","es.object.to-string","esnext.iterator.constructor","esnext.iterator.reduce"],"core-js/full/iterator/sliding":["es.iterator.constructor","es.object.to-string","esnext.iterator.sliding"],"core-js/full/iterator/some":["es.iterator.constructor","es.iterator.some","es.object.to-string","esnext.iterator.constructor","esnext.iterator.some"],"core-js/full/iterator/take":["es.iterator.constructor","es.iterator.take","es.object.to-string","esnext.iterator.constructor","esnext.iterator.take"],"core-js/full/iterator/to-array":["es.iterator.constructor","es.iterator.to-array","es.object.to-string","esnext.iterator.constructor","esnext.iterator.to-array"],"core-js/full/iterator/to-async":["es.iterator.constructor","es.object.to-string","es.promise","esnext.iterator.constructor","esnext.iterator.to-async"],"core-js/full/iterator/windows":["es.iterator.constructor","es.object.to-string","esnext.iterator.windows"],"core-js/full/iterator/zip":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","esnext.iterator.chunks","esnext.iterator.sliding","esnext.iterator.windows","esnext.iterator.zip","web.dom-collections.iterator"],"core-js/full/iterator/zip-keyed":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.create","es.object.to-string","es.reflect.own-keys","es.string.iterator","esnext.iterator.chunks","esnext.iterator.sliding","esnext.iterator.windows","esnext.iterator.zip-keyed","web.dom-collections.iterator"],"core-js/full/json":["es.date.to-json","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.object.create","es.object.freeze","es.object.keys","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json"],"core-js/full/json/is-raw-json":["es.json.is-raw-json","esnext.json.is-raw-json"],"core-js/full/json/parse":["es.json.parse","es.object.keys","esnext.json.parse"],"core-js/full/json/raw-json":["es.json.raw-json","es.json.stringify","es.object.create","es.object.freeze","esnext.json.raw-json"],"core-js/full/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/full/json/to-string-tag":["es.json.to-string-tag"],"core-js/full/map":["es.array.iterator","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","web.dom-collections.iterator"],"core-js/full/map/delete-all":["es.map","esnext.map.delete-all"],"core-js/full/map/emplace":["es.map","esnext.map.emplace"],"core-js/full/map/every":["es.map","esnext.map.every"],"core-js/full/map/filter":["es.map","esnext.map.filter"],"core-js/full/map/find":["es.map","esnext.map.find"],"core-js/full/map/find-key":["es.map","esnext.map.find-key"],"core-js/full/map/from":["es.array.iterator","es.map","es.object.to-string","es.string.iterator","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update","web.dom-collections.iterator"],"core-js/full/map/get-or-insert":["es.map","es.map.get-or-insert","esnext.map.get-or-insert"],"core-js/full/map/get-or-insert-computed":["es.map","es.map.get-or-insert-computed","esnext.map.get-or-insert-computed"],"core-js/full/map/group-by":["es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/full/map/includes":["es.map","esnext.map.includes"],"core-js/full/map/key-by":["es.map","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/full/map/key-of":["es.map","esnext.map.key-of"],"core-js/full/map/map-keys":["es.map","esnext.map.map-keys"],"core-js/full/map/map-values":["es.map","esnext.map.map-values"],"core-js/full/map/merge":["es.map","esnext.map.merge"],"core-js/full/map/of":["es.array.iterator","es.map","es.object.to-string","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update"],"core-js/full/map/reduce":["es.map","esnext.map.reduce"],"core-js/full/map/some":["es.map","esnext.map.some"],"core-js/full/map/update":["es.map","esnext.map.update"],"core-js/full/map/update-or-insert":["es.map","esnext.map.update-or-insert"],"core-js/full/map/upsert":["es.map","esnext.map.upsert"],"core-js/full/math":["es.array.iterator","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh"],"core-js/full/math/acosh":["es.math.acosh"],"core-js/full/math/asinh":["es.math.asinh"],"core-js/full/math/atanh":["es.math.atanh"],"core-js/full/math/cbrt":["es.math.cbrt"],"core-js/full/math/clamp":["esnext.math.clamp"],"core-js/full/math/clz32":["es.math.clz32"],"core-js/full/math/cosh":["es.math.cosh"],"core-js/full/math/deg-per-rad":["esnext.math.deg-per-rad"],"core-js/full/math/degrees":["esnext.math.degrees"],"core-js/full/math/expm1":["es.math.expm1"],"core-js/full/math/f16round":["es.math.f16round","esnext.math.f16round"],"core-js/full/math/fround":["es.math.fround"],"core-js/full/math/fscale":["esnext.math.fscale"],"core-js/full/math/hypot":["es.math.hypot"],"core-js/full/math/iaddh":["esnext.math.iaddh"],"core-js/full/math/imul":["es.math.imul"],"core-js/full/math/imulh":["esnext.math.imulh"],"core-js/full/math/isubh":["esnext.math.isubh"],"core-js/full/math/log10":["es.math.log10"],"core-js/full/math/log1p":["es.math.log1p"],"core-js/full/math/log2":["es.math.log2"],"core-js/full/math/rad-per-deg":["esnext.math.rad-per-deg"],"core-js/full/math/radians":["esnext.math.radians"],"core-js/full/math/scale":["esnext.math.scale"],"core-js/full/math/seeded-prng":["esnext.math.seeded-prng"],"core-js/full/math/sign":["es.math.sign"],"core-js/full/math/signbit":["esnext.math.signbit"],"core-js/full/math/sinh":["es.math.sinh"],"core-js/full/math/sum-precise":["es.array.iterator","es.math.sum-precise","esnext.math.sum-precise"],"core-js/full/math/tanh":["es.math.tanh"],"core-js/full/math/to-string-tag":["es.math.to-string-tag"],"core-js/full/math/trunc":["es.math.trunc"],"core-js/full/math/umulh":["esnext.math.umulh"],"core-js/full/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.to-string","esnext.number.clamp","esnext.number.from-string","esnext.number.range"],"core-js/full/number/clamp":["esnext.number.clamp"],"core-js/full/number/constructor":["es.number.constructor"],"core-js/full/number/epsilon":["es.number.epsilon"],"core-js/full/number/from-string":["esnext.number.from-string"],"core-js/full/number/is-finite":["es.number.is-finite"],"core-js/full/number/is-integer":["es.number.is-integer"],"core-js/full/number/is-nan":["es.number.is-nan"],"core-js/full/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/full/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/full/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/full/number/parse-float":["es.number.parse-float"],"core-js/full/number/parse-int":["es.number.parse-int"],"core-js/full/number/range":["es.object.to-string","esnext.number.range"],"core-js/full/number/to-exponential":["es.number.to-exponential"],"core-js/full/number/to-fixed":["es.number.to-fixed"],"core-js/full/number/to-precision":["es.number.to-precision"],"core-js/full/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/full/number/virtual/clamp":["esnext.number.clamp"],"core-js/full/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/full/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/full/number/virtual/to-precision":["es.number.to-precision"],"core-js/full/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","web.dom-collections.iterator"],"core-js/full/object/assign":["es.object.assign"],"core-js/full/object/create":["es.object.create"],"core-js/full/object/define-getter":["es.object.define-getter"],"core-js/full/object/define-properties":["es.object.define-properties"],"core-js/full/object/define-property":["es.object.define-property"],"core-js/full/object/define-setter":["es.object.define-setter"],"core-js/full/object/entries":["es.object.entries"],"core-js/full/object/freeze":["es.object.freeze"],"core-js/full/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/full/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/full/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/full/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/full/object/get-own-property-symbols":["es.symbol"],"core-js/full/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/full/object/group-by":["es.object.create","es.object.group-by","esnext.object.group-by"],"core-js/full/object/has-own":["es.object.has-own","esnext.object.has-own"],"core-js/full/object/is":["es.object.is"],"core-js/full/object/is-extensible":["es.object.is-extensible"],"core-js/full/object/is-frozen":["es.object.is-frozen"],"core-js/full/object/is-sealed":["es.object.is-sealed"],"core-js/full/object/iterate-entries":["esnext.object.iterate-entries"],"core-js/full/object/iterate-keys":["esnext.object.iterate-keys"],"core-js/full/object/iterate-values":["esnext.object.iterate-values"],"core-js/full/object/keys":["es.object.keys"],"core-js/full/object/lookup-getter":["es.object.lookup-getter"],"core-js/full/object/lookup-setter":["es.object.lookup-setter"],"core-js/full/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/full/object/proto":["es.object.proto"],"core-js/full/object/seal":["es.object.seal"],"core-js/full/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/full/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/full/object/values":["es.object.values"],"core-js/full/observable":["es.object.to-string","es.string.iterator","esnext.observable","esnext.symbol.observable","web.dom-collections.iterator"],"core-js/full/parse-float":["es.parse-float"],"core-js/full/parse-int":["es.parse-int"],"core-js/full/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.string.iterator","esnext.aggregate-error","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","web.dom-collections.iterator"],"core-js/full/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","esnext.promise.all-settled","web.dom-collections.iterator"],"core-js/full/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","esnext.aggregate-error","esnext.promise.any","web.dom-collections.iterator"],"core-js/full/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/full/promise/try":["es.object.to-string","es.promise","es.promise.try","esnext.promise.try"],"core-js/full/promise/with-resolvers":["es.promise","es.promise.with-resolvers","esnext.promise.with-resolvers"],"core-js/full/queue-microtask":["web.queue-microtask"],"core-js/full/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/full/reflect/apply":["es.reflect.apply"],"core-js/full/reflect/construct":["es.reflect.construct"],"core-js/full/reflect/define-metadata":["esnext.reflect.define-metadata"],"core-js/full/reflect/define-property":["es.reflect.define-property"],"core-js/full/reflect/delete-metadata":["esnext.reflect.delete-metadata"],"core-js/full/reflect/delete-property":["es.reflect.delete-property"],"core-js/full/reflect/get":["es.reflect.get"],"core-js/full/reflect/get-metadata":["esnext.reflect.get-metadata"],"core-js/full/reflect/get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/full/reflect/get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/full/reflect/get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/full/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/full/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/full/reflect/has":["es.reflect.has"],"core-js/full/reflect/has-metadata":["esnext.reflect.has-metadata"],"core-js/full/reflect/has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/full/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/full/reflect/metadata":["esnext.reflect.metadata"],"core-js/full/reflect/own-keys":["es.reflect.own-keys"],"core-js/full/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/full/reflect/set":["es.reflect.set"],"core-js/full/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/full/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/full/regexp":["es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split","esnext.regexp.escape"],"core-js/full/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/full/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/full/regexp/escape":["es.regexp.escape","esnext.regexp.escape"],"core-js/full/regexp/flags":["es.regexp.flags"],"core-js/full/regexp/match":["es.regexp.exec","es.string.match"],"core-js/full/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/full/regexp/search":["es.regexp.exec","es.string.search"],"core-js/full/regexp/split":["es.regexp.exec","es.string.split"],"core-js/full/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/full/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/full/regexp/to-string":["es.regexp.to-string"],"core-js/full/self":["web.self"],"core-js/full/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","web.dom-collections.iterator"],"core-js/full/set-immediate":["web.immediate"],"core-js/full/set-interval":["web.timers"],"core-js/full/set-timeout":["web.timers"],"core-js/full/set/add-all":["es.set","esnext.set.add-all"],"core-js/full/set/delete-all":["es.set","esnext.set.delete-all"],"core-js/full/set/difference":["es.array.iterator","es.set","es.set.difference.v2","es.string.iterator","esnext.set.difference.v2","esnext.set.difference","web.dom-collections.iterator"],"core-js/full/set/every":["es.set","esnext.set.every"],"core-js/full/set/filter":["es.set","esnext.set.filter"],"core-js/full/set/find":["es.set","esnext.set.find"],"core-js/full/set/from":["es.array.iterator","es.object.to-string","es.set","es.string.iterator","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.union.v2","web.dom-collections.iterator"],"core-js/full/set/intersection":["es.array.iterator","es.set","es.set.intersection.v2","es.string.iterator","esnext.set.intersection.v2","esnext.set.intersection","web.dom-collections.iterator"],"core-js/full/set/is-disjoint-from":["es.array.iterator","es.set","es.set.is-disjoint-from.v2","es.string.iterator","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","web.dom-collections.iterator"],"core-js/full/set/is-subset-of":["es.array.iterator","es.set","es.set.is-subset-of.v2","es.string.iterator","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","web.dom-collections.iterator"],"core-js/full/set/is-superset-of":["es.array.iterator","es.set","es.set.is-superset-of.v2","es.string.iterator","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","web.dom-collections.iterator"],"core-js/full/set/join":["es.set","esnext.set.join"],"core-js/full/set/map":["es.set","esnext.set.map"],"core-js/full/set/of":["es.array.iterator","es.object.to-string","es.set","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.union.v2"],"core-js/full/set/reduce":["es.set","esnext.set.reduce"],"core-js/full/set/some":["es.set","esnext.set.some"],"core-js/full/set/symmetric-difference":["es.array.iterator","es.set","es.set.symmetric-difference.v2","es.string.iterator","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","web.dom-collections.iterator"],"core-js/full/set/union":["es.array.iterator","es.set","es.set.union.v2","es.string.iterator","esnext.set.union.v2","esnext.set.union","web.dom-collections.iterator"],"core-js/full/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.weak-map","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed"],"core-js/full/string/anchor":["es.string.anchor"],"core-js/full/string/at":["es.string.at-alternative","esnext.string.at"],"core-js/full/string/big":["es.string.big"],"core-js/full/string/blink":["es.string.blink"],"core-js/full/string/bold":["es.string.bold"],"core-js/full/string/code-point-at":["es.string.code-point-at"],"core-js/full/string/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/string/cooked":["esnext.string.cooked"],"core-js/full/string/dedent":["es.string.from-code-point","es.weak-map","esnext.string.dedent"],"core-js/full/string/ends-with":["es.string.ends-with"],"core-js/full/string/fixed":["es.string.fixed"],"core-js/full/string/fontcolor":["es.string.fontcolor"],"core-js/full/string/fontsize":["es.string.fontsize"],"core-js/full/string/from-code-point":["es.string.from-code-point"],"core-js/full/string/includes":["es.string.includes"],"core-js/full/string/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/full/string/italics":["es.string.italics"],"core-js/full/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/full/string/link":["es.string.link"],"core-js/full/string/match":["es.regexp.exec","es.string.match"],"core-js/full/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/string/pad-end":["es.string.pad-end"],"core-js/full/string/pad-start":["es.string.pad-start"],"core-js/full/string/raw":["es.string.raw"],"core-js/full/string/repeat":["es.string.repeat"],"core-js/full/string/replace":["es.regexp.exec","es.string.replace"],"core-js/full/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/string/search":["es.regexp.exec","es.string.search"],"core-js/full/string/small":["es.string.small"],"core-js/full/string/split":["es.regexp.exec","es.string.split"],"core-js/full/string/starts-with":["es.string.starts-with"],"core-js/full/string/strike":["es.string.strike"],"core-js/full/string/sub":["es.string.sub"],"core-js/full/string/substr":["es.string.substr"],"core-js/full/string/sup":["es.string.sup"],"core-js/full/string/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/full/string/trim":["es.string.trim"],"core-js/full/string/trim-end":["es.string.trim-end"],"core-js/full/string/trim-left":["es.string.trim-start"],"core-js/full/string/trim-right":["es.string.trim-end"],"core-js/full/string/trim-start":["es.string.trim-start"],"core-js/full/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","esnext.string.at","esnext.string.code-points","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed"],"core-js/full/string/virtual/anchor":["es.string.anchor"],"core-js/full/string/virtual/at":["es.string.at-alternative","esnext.string.at"],"core-js/full/string/virtual/big":["es.string.big"],"core-js/full/string/virtual/blink":["es.string.blink"],"core-js/full/string/virtual/bold":["es.string.bold"],"core-js/full/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/full/string/virtual/code-points":["es.object.to-string","esnext.string.code-points"],"core-js/full/string/virtual/ends-with":["es.string.ends-with"],"core-js/full/string/virtual/fixed":["es.string.fixed"],"core-js/full/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/full/string/virtual/fontsize":["es.string.fontsize"],"core-js/full/string/virtual/includes":["es.string.includes"],"core-js/full/string/virtual/is-well-formed":["es.string.is-well-formed","esnext.string.is-well-formed"],"core-js/full/string/virtual/italics":["es.string.italics"],"core-js/full/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/full/string/virtual/link":["es.string.link"],"core-js/full/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all","esnext.string.match-all"],"core-js/full/string/virtual/pad-end":["es.string.pad-end"],"core-js/full/string/virtual/pad-start":["es.string.pad-start"],"core-js/full/string/virtual/repeat":["es.string.repeat"],"core-js/full/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all","esnext.string.replace-all"],"core-js/full/string/virtual/small":["es.string.small"],"core-js/full/string/virtual/starts-with":["es.string.starts-with"],"core-js/full/string/virtual/strike":["es.string.strike"],"core-js/full/string/virtual/sub":["es.string.sub"],"core-js/full/string/virtual/substr":["es.string.substr"],"core-js/full/string/virtual/sup":["es.string.sup"],"core-js/full/string/virtual/to-well-formed":["es.string.to-well-formed","esnext.string.to-well-formed"],"core-js/full/string/virtual/trim":["es.string.trim"],"core-js/full/string/virtual/trim-end":["es.string.trim-end"],"core-js/full/string/virtual/trim-left":["es.string.trim-start"],"core-js/full/string/virtual/trim-right":["es.string.trim-end"],"core-js/full/string/virtual/trim-start":["es.string.trim-start"],"core-js/full/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/full/suppressed-error":[],"core-js/full/symbol":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","esnext.function.metadata","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","web.dom-collections.iterator"],"core-js/full/symbol/async-dispose":["es.symbol.async-dispose","esnext.symbol.async-dispose"],"core-js/full/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/full/symbol/custom-matcher":["esnext.symbol.custom-matcher"],"core-js/full/symbol/description":["es.symbol.description"],"core-js/full/symbol/dispose":["es.symbol.dispose","esnext.symbol.dispose"],"core-js/full/symbol/for":["es.symbol"],"core-js/full/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/full/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/full/symbol/is-registered":["es.symbol","esnext.symbol.is-registered"],"core-js/full/symbol/is-registered-symbol":["es.symbol","esnext.symbol.is-registered-symbol"],"core-js/full/symbol/is-well-known":["es.symbol","esnext.symbol.is-well-known"],"core-js/full/symbol/is-well-known-symbol":["es.symbol","esnext.symbol.is-well-known-symbol"],"core-js/full/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/full/symbol/key-for":["es.symbol"],"core-js/full/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/full/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/full/symbol/matcher":["esnext.symbol.matcher"],"core-js/full/symbol/metadata":["esnext.function.metadata","esnext.symbol.metadata"],"core-js/full/symbol/metadata-key":["esnext.symbol.metadata-key"],"core-js/full/symbol/observable":["esnext.symbol.observable"],"core-js/full/symbol/pattern-match":["esnext.symbol.pattern-match"],"core-js/full/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/full/symbol/replace-all":["esnext.symbol.replace-all"],"core-js/full/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/full/symbol/species":["es.symbol.species"],"core-js/full/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/full/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/full/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/full/symbol/unscopables":["es.symbol.unscopables"],"core-js/full/typed-array":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/at":["es.typed-array.at","esnext.typed-array.at"],"core-js/full/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/full/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/every":["es.typed-array.every"],"core-js/full/typed-array/fill":["es.typed-array.fill"],"core-js/full/typed-array/filter":["es.typed-array.filter"],"core-js/full/typed-array/filter-out":["esnext.typed-array.filter-out"],"core-js/full/typed-array/filter-reject":["esnext.typed-array.filter-reject"],"core-js/full/typed-array/find":["es.typed-array.find"],"core-js/full/typed-array/find-index":["es.typed-array.find-index"],"core-js/full/typed-array/find-last":["es.typed-array.find-last","esnext.typed-array.find-last"],"core-js/full/typed-array/find-last-index":["es.typed-array.find-last-index","esnext.typed-array.find-last-index"],"core-js/full/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/for-each":["es.typed-array.for-each"],"core-js/full/typed-array/from":["es.typed-array.from"],"core-js/full/typed-array/from-async":["esnext.typed-array.from-async"],"core-js/full/typed-array/from-base64":["es.uint8-array.from-base64","esnext.uint8-array.from-base64"],"core-js/full/typed-array/from-hex":["es.uint8-array.from-hex","esnext.uint8-array.from-hex"],"core-js/full/typed-array/group-by":["esnext.typed-array.group-by"],"core-js/full/typed-array/includes":["es.typed-array.includes"],"core-js/full/typed-array/index-of":["es.typed-array.index-of"],"core-js/full/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/join":["es.typed-array.join"],"core-js/full/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/full/typed-array/map":["es.typed-array.map"],"core-js/full/typed-array/methods":["es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/of":["es.typed-array.of"],"core-js/full/typed-array/reduce":["es.typed-array.reduce"],"core-js/full/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/full/typed-array/reverse":["es.typed-array.reverse"],"core-js/full/typed-array/set":["es.typed-array.set"],"core-js/full/typed-array/set-from-base64":["es.uint8-array.set-from-base64","esnext.uint8-array.set-from-base64"],"core-js/full/typed-array/set-from-hex":["es.uint8-array.set-from-hex","esnext.uint8-array.set-from-hex"],"core-js/full/typed-array/slice":["es.typed-array.slice"],"core-js/full/typed-array/some":["es.typed-array.some"],"core-js/full/typed-array/sort":["es.typed-array.sort"],"core-js/full/typed-array/subarray":["es.typed-array.subarray"],"core-js/full/typed-array/to-base64":["es.uint8-array.to-base64","esnext.uint8-array.to-base64"],"core-js/full/typed-array/to-hex":["es.uint8-array.to-hex","esnext.uint8-array.to-hex"],"core-js/full/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/full/typed-array/to-reversed":["es.typed-array.to-reversed","esnext.typed-array.to-reversed"],"core-js/full/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted","esnext.typed-array.to-sorted"],"core-js/full/typed-array/to-spliced":["esnext.typed-array.to-spliced"],"core-js/full/typed-array/to-string":["es.typed-array.to-string"],"core-js/full/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.map","es.object.to-string","es.promise","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/full/typed-array/unique-by":["es.map","esnext.typed-array.unique-by"],"core-js/full/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/full/typed-array/with":["es.typed-array.with","esnext.typed-array.with"],"core-js/full/unescape":["es.unescape"],"core-js/full/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/full/url-search-params":["web.dom-collections.iterator","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/full/url/can-parse":["web.url","web.url.can-parse"],"core-js/full/url/parse":["web.url","web.url.parse"],"core-js/full/url/to-json":["web.url.to-json"],"core-js/full/weak-map":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","web.dom-collections.iterator"],"core-js/full/weak-map/delete-all":["es.weak-map","esnext.weak-map.delete-all"],"core-js/full/weak-map/emplace":["es.weak-map","esnext.weak-map.emplace"],"core-js/full/weak-map/from":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","web.dom-collections.iterator"],"core-js/full/weak-map/get-or-insert":["es.weak-map","es.weak-map.get-or-insert","esnext.weak-map.get-or-insert"],"core-js/full/weak-map/get-or-insert-computed":["es.weak-map","es.weak-map.get-or-insert-computed","esnext.weak-map.get-or-insert-computed"],"core-js/full/weak-map/of":["es.array.iterator","es.object.to-string","es.weak-map","esnext.weak-map.delete-all","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed"],"core-js/full/weak-map/upsert":["es.weak-map","esnext.weak-map.upsert"],"core-js/full/weak-set":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.dom-collections.iterator"],"core-js/full/weak-set/add-all":["es.weak-set","esnext.weak-set.add-all"],"core-js/full/weak-set/delete-all":["es.weak-set","esnext.weak-set.delete-all"],"core-js/full/weak-set/from":["es.array.iterator","es.object.to-string","es.string.iterator","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","web.dom-collections.iterator"],"core-js/full/weak-set/of":["es.array.iterator","es.object.to-string","es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.of"],"core-js/modules/es.aggregate-error":["es.aggregate-error"],"core-js/modules/es.aggregate-error.cause":["es.aggregate-error.cause"],"core-js/modules/es.aggregate-error.constructor":["es.aggregate-error.constructor"],"core-js/modules/es.array-buffer.constructor":["es.array-buffer.constructor"],"core-js/modules/es.array-buffer.detached":["es.array-buffer.detached"],"core-js/modules/es.array-buffer.is-view":["es.array-buffer.is-view"],"core-js/modules/es.array-buffer.slice":["es.array-buffer.slice"],"core-js/modules/es.array-buffer.transfer":["es.array-buffer.transfer"],"core-js/modules/es.array-buffer.transfer-to-fixed-length":["es.array-buffer.transfer-to-fixed-length"],"core-js/modules/es.array.at":["es.array.at"],"core-js/modules/es.array.concat":["es.array.concat"],"core-js/modules/es.array.copy-within":["es.array.copy-within"],"core-js/modules/es.array.every":["es.array.every"],"core-js/modules/es.array.fill":["es.array.fill"],"core-js/modules/es.array.filter":["es.array.filter"],"core-js/modules/es.array.find":["es.array.find"],"core-js/modules/es.array.find-index":["es.array.find-index"],"core-js/modules/es.array.find-last":["es.array.find-last"],"core-js/modules/es.array.find-last-index":["es.array.find-last-index"],"core-js/modules/es.array.flat":["es.array.flat"],"core-js/modules/es.array.flat-map":["es.array.flat-map"],"core-js/modules/es.array.for-each":["es.array.for-each"],"core-js/modules/es.array.from":["es.array.from"],"core-js/modules/es.array.from-async":["es.array.from-async"],"core-js/modules/es.array.includes":["es.array.includes"],"core-js/modules/es.array.index-of":["es.array.index-of"],"core-js/modules/es.array.is-array":["es.array.is-array"],"core-js/modules/es.array.iterator":["es.array.iterator"],"core-js/modules/es.array.join":["es.array.join"],"core-js/modules/es.array.last-index-of":["es.array.last-index-of"],"core-js/modules/es.array.map":["es.array.map"],"core-js/modules/es.array.of":["es.array.of"],"core-js/modules/es.array.push":["es.array.push"],"core-js/modules/es.array.reduce":["es.array.reduce"],"core-js/modules/es.array.reduce-right":["es.array.reduce-right"],"core-js/modules/es.array.reverse":["es.array.reverse"],"core-js/modules/es.array.slice":["es.array.slice"],"core-js/modules/es.array.some":["es.array.some"],"core-js/modules/es.array.sort":["es.array.sort"],"core-js/modules/es.array.species":["es.array.species"],"core-js/modules/es.array.splice":["es.array.splice"],"core-js/modules/es.array.to-reversed":["es.array.to-reversed"],"core-js/modules/es.array.to-sorted":["es.array.to-sorted"],"core-js/modules/es.array.to-spliced":["es.array.to-spliced"],"core-js/modules/es.array.unscopables.flat":["es.array.unscopables.flat"],"core-js/modules/es.array.unscopables.flat-map":["es.array.unscopables.flat-map"],"core-js/modules/es.array.unshift":["es.array.unshift"],"core-js/modules/es.array.with":["es.array.with"],"core-js/modules/es.async-disposable-stack.constructor":["es.async-disposable-stack.constructor"],"core-js/modules/es.async-iterator.async-dispose":["es.async-iterator.async-dispose"],"core-js/modules/es.data-view":["es.data-view"],"core-js/modules/es.data-view.constructor":["es.data-view.constructor"],"core-js/modules/es.data-view.get-float16":["es.data-view.get-float16"],"core-js/modules/es.data-view.set-float16":["es.data-view.set-float16"],"core-js/modules/es.date.get-year":["es.date.get-year"],"core-js/modules/es.date.now":["es.date.now"],"core-js/modules/es.date.set-year":["es.date.set-year"],"core-js/modules/es.date.to-gmt-string":["es.date.to-gmt-string"],"core-js/modules/es.date.to-iso-string":["es.date.to-iso-string"],"core-js/modules/es.date.to-json":["es.date.to-json"],"core-js/modules/es.date.to-primitive":["es.date.to-primitive"],"core-js/modules/es.date.to-string":["es.date.to-string"],"core-js/modules/es.disposable-stack.constructor":["es.disposable-stack.constructor"],"core-js/modules/es.error.cause":["es.error.cause"],"core-js/modules/es.error.is-error":["es.error.is-error"],"core-js/modules/es.error.to-string":["es.error.to-string"],"core-js/modules/es.escape":["es.escape"],"core-js/modules/es.function.bind":["es.function.bind"],"core-js/modules/es.function.has-instance":["es.function.has-instance"],"core-js/modules/es.function.name":["es.function.name"],"core-js/modules/es.global-this":["es.global-this"],"core-js/modules/es.iterator.concat":["es.iterator.concat"],"core-js/modules/es.iterator.constructor":["es.iterator.constructor"],"core-js/modules/es.iterator.dispose":["es.iterator.dispose"],"core-js/modules/es.iterator.drop":["es.iterator.drop"],"core-js/modules/es.iterator.every":["es.iterator.every"],"core-js/modules/es.iterator.filter":["es.iterator.filter"],"core-js/modules/es.iterator.find":["es.iterator.find"],"core-js/modules/es.iterator.flat-map":["es.iterator.flat-map"],"core-js/modules/es.iterator.for-each":["es.iterator.for-each"],"core-js/modules/es.iterator.from":["es.iterator.from"],"core-js/modules/es.iterator.map":["es.iterator.map"],"core-js/modules/es.iterator.reduce":["es.iterator.reduce"],"core-js/modules/es.iterator.some":["es.iterator.some"],"core-js/modules/es.iterator.take":["es.iterator.take"],"core-js/modules/es.iterator.to-array":["es.iterator.to-array"],"core-js/modules/es.json.is-raw-json":["es.json.is-raw-json"],"core-js/modules/es.json.parse":["es.json.parse"],"core-js/modules/es.json.raw-json":["es.json.raw-json"],"core-js/modules/es.json.stringify":["es.json.stringify"],"core-js/modules/es.json.to-string-tag":["es.json.to-string-tag"],"core-js/modules/es.map":["es.map"],"core-js/modules/es.map.constructor":["es.map.constructor"],"core-js/modules/es.map.get-or-insert":["es.map.get-or-insert"],"core-js/modules/es.map.get-or-insert-computed":["es.map.get-or-insert-computed"],"core-js/modules/es.map.group-by":["es.map.group-by"],"core-js/modules/es.math.acosh":["es.math.acosh"],"core-js/modules/es.math.asinh":["es.math.asinh"],"core-js/modules/es.math.atanh":["es.math.atanh"],"core-js/modules/es.math.cbrt":["es.math.cbrt"],"core-js/modules/es.math.clz32":["es.math.clz32"],"core-js/modules/es.math.cosh":["es.math.cosh"],"core-js/modules/es.math.expm1":["es.math.expm1"],"core-js/modules/es.math.f16round":["es.math.f16round"],"core-js/modules/es.math.fround":["es.math.fround"],"core-js/modules/es.math.hypot":["es.math.hypot"],"core-js/modules/es.math.imul":["es.math.imul"],"core-js/modules/es.math.log10":["es.math.log10"],"core-js/modules/es.math.log1p":["es.math.log1p"],"core-js/modules/es.math.log2":["es.math.log2"],"core-js/modules/es.math.sign":["es.math.sign"],"core-js/modules/es.math.sinh":["es.math.sinh"],"core-js/modules/es.math.sum-precise":["es.math.sum-precise"],"core-js/modules/es.math.tanh":["es.math.tanh"],"core-js/modules/es.math.to-string-tag":["es.math.to-string-tag"],"core-js/modules/es.math.trunc":["es.math.trunc"],"core-js/modules/es.number.constructor":["es.number.constructor"],"core-js/modules/es.number.epsilon":["es.number.epsilon"],"core-js/modules/es.number.is-finite":["es.number.is-finite"],"core-js/modules/es.number.is-integer":["es.number.is-integer"],"core-js/modules/es.number.is-nan":["es.number.is-nan"],"core-js/modules/es.number.is-safe-integer":["es.number.is-safe-integer"],"core-js/modules/es.number.max-safe-integer":["es.number.max-safe-integer"],"core-js/modules/es.number.min-safe-integer":["es.number.min-safe-integer"],"core-js/modules/es.number.parse-float":["es.number.parse-float"],"core-js/modules/es.number.parse-int":["es.number.parse-int"],"core-js/modules/es.number.to-exponential":["es.number.to-exponential"],"core-js/modules/es.number.to-fixed":["es.number.to-fixed"],"core-js/modules/es.number.to-precision":["es.number.to-precision"],"core-js/modules/es.object.assign":["es.object.assign"],"core-js/modules/es.object.create":["es.object.create"],"core-js/modules/es.object.define-getter":["es.object.define-getter"],"core-js/modules/es.object.define-properties":["es.object.define-properties"],"core-js/modules/es.object.define-property":["es.object.define-property"],"core-js/modules/es.object.define-setter":["es.object.define-setter"],"core-js/modules/es.object.entries":["es.object.entries"],"core-js/modules/es.object.freeze":["es.object.freeze"],"core-js/modules/es.object.from-entries":["es.object.from-entries"],"core-js/modules/es.object.get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/modules/es.object.get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/modules/es.object.get-own-property-names":["es.object.get-own-property-names"],"core-js/modules/es.object.get-own-property-symbols":["es.object.get-own-property-symbols"],"core-js/modules/es.object.get-prototype-of":["es.object.get-prototype-of"],"core-js/modules/es.object.group-by":["es.object.group-by"],"core-js/modules/es.object.has-own":["es.object.has-own"],"core-js/modules/es.object.is":["es.object.is"],"core-js/modules/es.object.is-extensible":["es.object.is-extensible"],"core-js/modules/es.object.is-frozen":["es.object.is-frozen"],"core-js/modules/es.object.is-sealed":["es.object.is-sealed"],"core-js/modules/es.object.keys":["es.object.keys"],"core-js/modules/es.object.lookup-getter":["es.object.lookup-getter"],"core-js/modules/es.object.lookup-setter":["es.object.lookup-setter"],"core-js/modules/es.object.prevent-extensions":["es.object.prevent-extensions"],"core-js/modules/es.object.proto":["es.object.proto"],"core-js/modules/es.object.seal":["es.object.seal"],"core-js/modules/es.object.set-prototype-of":["es.object.set-prototype-of"],"core-js/modules/es.object.to-string":["es.object.to-string"],"core-js/modules/es.object.values":["es.object.values"],"core-js/modules/es.parse-float":["es.parse-float"],"core-js/modules/es.parse-int":["es.parse-int"],"core-js/modules/es.promise":["es.promise"],"core-js/modules/es.promise.all":["es.promise.all"],"core-js/modules/es.promise.all-settled":["es.promise.all-settled"],"core-js/modules/es.promise.any":["es.promise.any"],"core-js/modules/es.promise.catch":["es.promise.catch"],"core-js/modules/es.promise.constructor":["es.promise.constructor"],"core-js/modules/es.promise.finally":["es.promise.finally"],"core-js/modules/es.promise.race":["es.promise.race"],"core-js/modules/es.promise.reject":["es.promise.reject"],"core-js/modules/es.promise.resolve":["es.promise.resolve"],"core-js/modules/es.promise.try":["es.promise.try"],"core-js/modules/es.promise.with-resolvers":["es.promise.with-resolvers"],"core-js/modules/es.reflect.apply":["es.reflect.apply"],"core-js/modules/es.reflect.construct":["es.reflect.construct"],"core-js/modules/es.reflect.define-property":["es.reflect.define-property"],"core-js/modules/es.reflect.delete-property":["es.reflect.delete-property"],"core-js/modules/es.reflect.get":["es.reflect.get"],"core-js/modules/es.reflect.get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/modules/es.reflect.get-prototype-of":["es.reflect.get-prototype-of"],"core-js/modules/es.reflect.has":["es.reflect.has"],"core-js/modules/es.reflect.is-extensible":["es.reflect.is-extensible"],"core-js/modules/es.reflect.own-keys":["es.reflect.own-keys"],"core-js/modules/es.reflect.prevent-extensions":["es.reflect.prevent-extensions"],"core-js/modules/es.reflect.set":["es.reflect.set"],"core-js/modules/es.reflect.set-prototype-of":["es.reflect.set-prototype-of"],"core-js/modules/es.reflect.to-string-tag":["es.reflect.to-string-tag"],"core-js/modules/es.regexp.constructor":["es.regexp.constructor"],"core-js/modules/es.regexp.dot-all":["es.regexp.dot-all"],"core-js/modules/es.regexp.escape":["es.regexp.escape"],"core-js/modules/es.regexp.exec":["es.regexp.exec"],"core-js/modules/es.regexp.flags":["es.regexp.flags"],"core-js/modules/es.regexp.sticky":["es.regexp.sticky"],"core-js/modules/es.regexp.test":["es.regexp.test"],"core-js/modules/es.regexp.to-string":["es.regexp.to-string"],"core-js/modules/es.set":["es.set"],"core-js/modules/es.set.constructor":["es.set.constructor"],"core-js/modules/es.set.difference.v2":["es.set.difference.v2"],"core-js/modules/es.set.intersection.v2":["es.set.intersection.v2"],"core-js/modules/es.set.is-disjoint-from.v2":["es.set.is-disjoint-from.v2"],"core-js/modules/es.set.is-subset-of.v2":["es.set.is-subset-of.v2"],"core-js/modules/es.set.is-superset-of.v2":["es.set.is-superset-of.v2"],"core-js/modules/es.set.symmetric-difference.v2":["es.set.symmetric-difference.v2"],"core-js/modules/es.set.union.v2":["es.set.union.v2"],"core-js/modules/es.string.anchor":["es.string.anchor"],"core-js/modules/es.string.at-alternative":["es.string.at-alternative"],"core-js/modules/es.string.big":["es.string.big"],"core-js/modules/es.string.blink":["es.string.blink"],"core-js/modules/es.string.bold":["es.string.bold"],"core-js/modules/es.string.code-point-at":["es.string.code-point-at"],"core-js/modules/es.string.ends-with":["es.string.ends-with"],"core-js/modules/es.string.fixed":["es.string.fixed"],"core-js/modules/es.string.fontcolor":["es.string.fontcolor"],"core-js/modules/es.string.fontsize":["es.string.fontsize"],"core-js/modules/es.string.from-code-point":["es.string.from-code-point"],"core-js/modules/es.string.includes":["es.string.includes"],"core-js/modules/es.string.is-well-formed":["es.string.is-well-formed"],"core-js/modules/es.string.italics":["es.string.italics"],"core-js/modules/es.string.iterator":["es.string.iterator"],"core-js/modules/es.string.link":["es.string.link"],"core-js/modules/es.string.match":["es.string.match"],"core-js/modules/es.string.match-all":["es.string.match-all"],"core-js/modules/es.string.pad-end":["es.string.pad-end"],"core-js/modules/es.string.pad-start":["es.string.pad-start"],"core-js/modules/es.string.raw":["es.string.raw"],"core-js/modules/es.string.repeat":["es.string.repeat"],"core-js/modules/es.string.replace":["es.string.replace"],"core-js/modules/es.string.replace-all":["es.string.replace-all"],"core-js/modules/es.string.search":["es.string.search"],"core-js/modules/es.string.small":["es.string.small"],"core-js/modules/es.string.split":["es.string.split"],"core-js/modules/es.string.starts-with":["es.string.starts-with"],"core-js/modules/es.string.strike":["es.string.strike"],"core-js/modules/es.string.sub":["es.string.sub"],"core-js/modules/es.string.substr":["es.string.substr"],"core-js/modules/es.string.sup":["es.string.sup"],"core-js/modules/es.string.to-well-formed":["es.string.to-well-formed"],"core-js/modules/es.string.trim":["es.string.trim"],"core-js/modules/es.string.trim-end":["es.string.trim-end"],"core-js/modules/es.string.trim-left":["es.string.trim-left"],"core-js/modules/es.string.trim-right":["es.string.trim-right"],"core-js/modules/es.string.trim-start":["es.string.trim-start"],"core-js/modules/es.suppressed-error.constructor":["es.suppressed-error.constructor"],"core-js/modules/es.symbol":["es.symbol"],"core-js/modules/es.symbol.async-dispose":["es.symbol.async-dispose"],"core-js/modules/es.symbol.async-iterator":["es.symbol.async-iterator"],"core-js/modules/es.symbol.constructor":["es.symbol.constructor"],"core-js/modules/es.symbol.description":["es.symbol.description"],"core-js/modules/es.symbol.dispose":["es.symbol.dispose"],"core-js/modules/es.symbol.for":["es.symbol.for"],"core-js/modules/es.symbol.has-instance":["es.symbol.has-instance"],"core-js/modules/es.symbol.is-concat-spreadable":["es.symbol.is-concat-spreadable"],"core-js/modules/es.symbol.iterator":["es.symbol.iterator"],"core-js/modules/es.symbol.key-for":["es.symbol.key-for"],"core-js/modules/es.symbol.match":["es.symbol.match"],"core-js/modules/es.symbol.match-all":["es.symbol.match-all"],"core-js/modules/es.symbol.replace":["es.symbol.replace"],"core-js/modules/es.symbol.search":["es.symbol.search"],"core-js/modules/es.symbol.species":["es.symbol.species"],"core-js/modules/es.symbol.split":["es.symbol.split"],"core-js/modules/es.symbol.to-primitive":["es.symbol.to-primitive"],"core-js/modules/es.symbol.to-string-tag":["es.symbol.to-string-tag"],"core-js/modules/es.symbol.unscopables":["es.symbol.unscopables"],"core-js/modules/es.typed-array.at":["es.typed-array.at"],"core-js/modules/es.typed-array.copy-within":["es.typed-array.copy-within"],"core-js/modules/es.typed-array.every":["es.typed-array.every"],"core-js/modules/es.typed-array.fill":["es.typed-array.fill"],"core-js/modules/es.typed-array.filter":["es.typed-array.filter"],"core-js/modules/es.typed-array.find":["es.typed-array.find"],"core-js/modules/es.typed-array.find-index":["es.typed-array.find-index"],"core-js/modules/es.typed-array.find-last":["es.typed-array.find-last"],"core-js/modules/es.typed-array.find-last-index":["es.typed-array.find-last-index"],"core-js/modules/es.typed-array.float32-array":["es.typed-array.float32-array"],"core-js/modules/es.typed-array.float64-array":["es.typed-array.float64-array"],"core-js/modules/es.typed-array.for-each":["es.typed-array.for-each"],"core-js/modules/es.typed-array.from":["es.typed-array.from"],"core-js/modules/es.typed-array.includes":["es.typed-array.includes"],"core-js/modules/es.typed-array.index-of":["es.typed-array.index-of"],"core-js/modules/es.typed-array.int16-array":["es.typed-array.int16-array"],"core-js/modules/es.typed-array.int32-array":["es.typed-array.int32-array"],"core-js/modules/es.typed-array.int8-array":["es.typed-array.int8-array"],"core-js/modules/es.typed-array.iterator":["es.typed-array.iterator"],"core-js/modules/es.typed-array.join":["es.typed-array.join"],"core-js/modules/es.typed-array.last-index-of":["es.typed-array.last-index-of"],"core-js/modules/es.typed-array.map":["es.typed-array.map"],"core-js/modules/es.typed-array.of":["es.typed-array.of"],"core-js/modules/es.typed-array.reduce":["es.typed-array.reduce"],"core-js/modules/es.typed-array.reduce-right":["es.typed-array.reduce-right"],"core-js/modules/es.typed-array.reverse":["es.typed-array.reverse"],"core-js/modules/es.typed-array.set":["es.typed-array.set"],"core-js/modules/es.typed-array.slice":["es.typed-array.slice"],"core-js/modules/es.typed-array.some":["es.typed-array.some"],"core-js/modules/es.typed-array.sort":["es.typed-array.sort"],"core-js/modules/es.typed-array.subarray":["es.typed-array.subarray"],"core-js/modules/es.typed-array.to-locale-string":["es.typed-array.to-locale-string"],"core-js/modules/es.typed-array.to-reversed":["es.typed-array.to-reversed"],"core-js/modules/es.typed-array.to-sorted":["es.typed-array.to-sorted"],"core-js/modules/es.typed-array.to-string":["es.typed-array.to-string"],"core-js/modules/es.typed-array.uint16-array":["es.typed-array.uint16-array"],"core-js/modules/es.typed-array.uint32-array":["es.typed-array.uint32-array"],"core-js/modules/es.typed-array.uint8-array":["es.typed-array.uint8-array"],"core-js/modules/es.typed-array.uint8-clamped-array":["es.typed-array.uint8-clamped-array"],"core-js/modules/es.typed-array.with":["es.typed-array.with"],"core-js/modules/es.uint8-array.from-base64":["es.uint8-array.from-base64"],"core-js/modules/es.uint8-array.from-hex":["es.uint8-array.from-hex"],"core-js/modules/es.uint8-array.set-from-base64":["es.uint8-array.set-from-base64"],"core-js/modules/es.uint8-array.set-from-hex":["es.uint8-array.set-from-hex"],"core-js/modules/es.uint8-array.to-base64":["es.uint8-array.to-base64"],"core-js/modules/es.uint8-array.to-hex":["es.uint8-array.to-hex"],"core-js/modules/es.unescape":["es.unescape"],"core-js/modules/es.weak-map":["es.weak-map"],"core-js/modules/es.weak-map.constructor":["es.weak-map.constructor"],"core-js/modules/es.weak-map.get-or-insert":["es.weak-map.get-or-insert"],"core-js/modules/es.weak-map.get-or-insert-computed":["es.weak-map.get-or-insert-computed"],"core-js/modules/es.weak-set":["es.weak-set"],"core-js/modules/es.weak-set.constructor":["es.weak-set.constructor"],"core-js/modules/esnext.aggregate-error":["esnext.aggregate-error"],"core-js/modules/esnext.array-buffer.detached":["esnext.array-buffer.detached"],"core-js/modules/esnext.array-buffer.transfer":["esnext.array-buffer.transfer"],"core-js/modules/esnext.array-buffer.transfer-to-fixed-length":["esnext.array-buffer.transfer-to-fixed-length"],"core-js/modules/esnext.array.at":["esnext.array.at"],"core-js/modules/esnext.array.filter-out":["esnext.array.filter-out"],"core-js/modules/esnext.array.filter-reject":["esnext.array.filter-reject"],"core-js/modules/esnext.array.find-last":["esnext.array.find-last"],"core-js/modules/esnext.array.find-last-index":["esnext.array.find-last-index"],"core-js/modules/esnext.array.from-async":["esnext.array.from-async"],"core-js/modules/esnext.array.group":["esnext.array.group"],"core-js/modules/esnext.array.group-by":["esnext.array.group-by"],"core-js/modules/esnext.array.group-by-to-map":["esnext.array.group-by-to-map"],"core-js/modules/esnext.array.group-to-map":["esnext.array.group-to-map"],"core-js/modules/esnext.array.is-template-object":["esnext.array.is-template-object"],"core-js/modules/esnext.array.last-index":["esnext.array.last-index"],"core-js/modules/esnext.array.last-item":["esnext.array.last-item"],"core-js/modules/esnext.array.to-reversed":["esnext.array.to-reversed"],"core-js/modules/esnext.array.to-sorted":["esnext.array.to-sorted"],"core-js/modules/esnext.array.to-spliced":["esnext.array.to-spliced"],"core-js/modules/esnext.array.unique-by":["esnext.array.unique-by"],"core-js/modules/esnext.array.with":["esnext.array.with"],"core-js/modules/esnext.async-disposable-stack.constructor":["esnext.async-disposable-stack.constructor"],"core-js/modules/esnext.async-iterator.as-indexed-pairs":["esnext.async-iterator.as-indexed-pairs"],"core-js/modules/esnext.async-iterator.async-dispose":["esnext.async-iterator.async-dispose"],"core-js/modules/esnext.async-iterator.constructor":["esnext.async-iterator.constructor"],"core-js/modules/esnext.async-iterator.drop":["esnext.async-iterator.drop"],"core-js/modules/esnext.async-iterator.every":["esnext.async-iterator.every"],"core-js/modules/esnext.async-iterator.filter":["esnext.async-iterator.filter"],"core-js/modules/esnext.async-iterator.find":["esnext.async-iterator.find"],"core-js/modules/esnext.async-iterator.flat-map":["esnext.async-iterator.flat-map"],"core-js/modules/esnext.async-iterator.for-each":["esnext.async-iterator.for-each"],"core-js/modules/esnext.async-iterator.from":["esnext.async-iterator.from"],"core-js/modules/esnext.async-iterator.indexed":["esnext.async-iterator.indexed"],"core-js/modules/esnext.async-iterator.map":["esnext.async-iterator.map"],"core-js/modules/esnext.async-iterator.reduce":["esnext.async-iterator.reduce"],"core-js/modules/esnext.async-iterator.some":["esnext.async-iterator.some"],"core-js/modules/esnext.async-iterator.take":["esnext.async-iterator.take"],"core-js/modules/esnext.async-iterator.to-array":["esnext.async-iterator.to-array"],"core-js/modules/esnext.bigint.range":["esnext.bigint.range"],"core-js/modules/esnext.composite-key":["esnext.composite-key"],"core-js/modules/esnext.composite-symbol":["esnext.composite-symbol"],"core-js/modules/esnext.data-view.get-float16":["esnext.data-view.get-float16"],"core-js/modules/esnext.data-view.get-uint8-clamped":["esnext.data-view.get-uint8-clamped"],"core-js/modules/esnext.data-view.set-float16":["esnext.data-view.set-float16"],"core-js/modules/esnext.data-view.set-uint8-clamped":["esnext.data-view.set-uint8-clamped"],"core-js/modules/esnext.disposable-stack.constructor":["esnext.disposable-stack.constructor"],"core-js/modules/esnext.error.is-error":["esnext.error.is-error"],"core-js/modules/esnext.function.demethodize":["esnext.function.demethodize"],"core-js/modules/esnext.function.is-callable":["esnext.function.is-callable"],"core-js/modules/esnext.function.is-constructor":["esnext.function.is-constructor"],"core-js/modules/esnext.function.metadata":["esnext.function.metadata"],"core-js/modules/esnext.function.un-this":["esnext.function.un-this"],"core-js/modules/esnext.global-this":["esnext.global-this"],"core-js/modules/esnext.iterator.as-indexed-pairs":["esnext.iterator.as-indexed-pairs"],"core-js/modules/esnext.iterator.chunks":["esnext.iterator.chunks"],"core-js/modules/esnext.iterator.concat":["esnext.iterator.concat"],"core-js/modules/esnext.iterator.constructor":["esnext.iterator.constructor"],"core-js/modules/esnext.iterator.dispose":["esnext.iterator.dispose"],"core-js/modules/esnext.iterator.drop":["esnext.iterator.drop"],"core-js/modules/esnext.iterator.every":["esnext.iterator.every"],"core-js/modules/esnext.iterator.filter":["esnext.iterator.filter"],"core-js/modules/esnext.iterator.find":["esnext.iterator.find"],"core-js/modules/esnext.iterator.flat-map":["esnext.iterator.flat-map"],"core-js/modules/esnext.iterator.for-each":["esnext.iterator.for-each"],"core-js/modules/esnext.iterator.from":["esnext.iterator.from"],"core-js/modules/esnext.iterator.indexed":["esnext.iterator.indexed"],"core-js/modules/esnext.iterator.map":["esnext.iterator.map"],"core-js/modules/esnext.iterator.range":["esnext.iterator.range"],"core-js/modules/esnext.iterator.reduce":["esnext.iterator.reduce"],"core-js/modules/esnext.iterator.sliding":["esnext.iterator.sliding"],"core-js/modules/esnext.iterator.some":["esnext.iterator.some"],"core-js/modules/esnext.iterator.take":["esnext.iterator.take"],"core-js/modules/esnext.iterator.to-array":["esnext.iterator.to-array"],"core-js/modules/esnext.iterator.to-async":["esnext.iterator.to-async"],"core-js/modules/esnext.iterator.windows":["esnext.iterator.windows"],"core-js/modules/esnext.iterator.zip":["esnext.iterator.zip"],"core-js/modules/esnext.iterator.zip-keyed":["esnext.iterator.zip-keyed"],"core-js/modules/esnext.json.is-raw-json":["esnext.json.is-raw-json"],"core-js/modules/esnext.json.parse":["esnext.json.parse"],"core-js/modules/esnext.json.raw-json":["esnext.json.raw-json"],"core-js/modules/esnext.map.delete-all":["esnext.map.delete-all"],"core-js/modules/esnext.map.emplace":["esnext.map.emplace"],"core-js/modules/esnext.map.every":["esnext.map.every"],"core-js/modules/esnext.map.filter":["esnext.map.filter"],"core-js/modules/esnext.map.find":["esnext.map.find"],"core-js/modules/esnext.map.find-key":["esnext.map.find-key"],"core-js/modules/esnext.map.from":["esnext.map.from"],"core-js/modules/esnext.map.get-or-insert":["esnext.map.get-or-insert"],"core-js/modules/esnext.map.get-or-insert-computed":["esnext.map.get-or-insert-computed"],"core-js/modules/esnext.map.group-by":["esnext.map.group-by"],"core-js/modules/esnext.map.includes":["esnext.map.includes"],"core-js/modules/esnext.map.key-by":["esnext.map.key-by"],"core-js/modules/esnext.map.key-of":["esnext.map.key-of"],"core-js/modules/esnext.map.map-keys":["esnext.map.map-keys"],"core-js/modules/esnext.map.map-values":["esnext.map.map-values"],"core-js/modules/esnext.map.merge":["esnext.map.merge"],"core-js/modules/esnext.map.of":["esnext.map.of"],"core-js/modules/esnext.map.reduce":["esnext.map.reduce"],"core-js/modules/esnext.map.some":["esnext.map.some"],"core-js/modules/esnext.map.update":["esnext.map.update"],"core-js/modules/esnext.map.update-or-insert":["esnext.map.update-or-insert"],"core-js/modules/esnext.map.upsert":["esnext.map.upsert"],"core-js/modules/esnext.math.clamp":["esnext.math.clamp"],"core-js/modules/esnext.math.deg-per-rad":["esnext.math.deg-per-rad"],"core-js/modules/esnext.math.degrees":["esnext.math.degrees"],"core-js/modules/esnext.math.f16round":["esnext.math.f16round"],"core-js/modules/esnext.math.fscale":["esnext.math.fscale"],"core-js/modules/esnext.math.iaddh":["esnext.math.iaddh"],"core-js/modules/esnext.math.imulh":["esnext.math.imulh"],"core-js/modules/esnext.math.isubh":["esnext.math.isubh"],"core-js/modules/esnext.math.rad-per-deg":["esnext.math.rad-per-deg"],"core-js/modules/esnext.math.radians":["esnext.math.radians"],"core-js/modules/esnext.math.scale":["esnext.math.scale"],"core-js/modules/esnext.math.seeded-prng":["esnext.math.seeded-prng"],"core-js/modules/esnext.math.signbit":["esnext.math.signbit"],"core-js/modules/esnext.math.sum-precise":["esnext.math.sum-precise"],"core-js/modules/esnext.math.umulh":["esnext.math.umulh"],"core-js/modules/esnext.number.clamp":["esnext.number.clamp"],"core-js/modules/esnext.number.from-string":["esnext.number.from-string"],"core-js/modules/esnext.number.range":["esnext.number.range"],"core-js/modules/esnext.object.group-by":["esnext.object.group-by"],"core-js/modules/esnext.object.has-own":["esnext.object.has-own"],"core-js/modules/esnext.object.iterate-entries":["esnext.object.iterate-entries"],"core-js/modules/esnext.object.iterate-keys":["esnext.object.iterate-keys"],"core-js/modules/esnext.object.iterate-values":["esnext.object.iterate-values"],"core-js/modules/esnext.observable":["esnext.observable"],"core-js/modules/esnext.observable.constructor":["esnext.observable.constructor"],"core-js/modules/esnext.observable.from":["esnext.observable.from"],"core-js/modules/esnext.observable.of":["esnext.observable.of"],"core-js/modules/esnext.promise.all-settled":["esnext.promise.all-settled"],"core-js/modules/esnext.promise.any":["esnext.promise.any"],"core-js/modules/esnext.promise.try":["esnext.promise.try"],"core-js/modules/esnext.promise.with-resolvers":["esnext.promise.with-resolvers"],"core-js/modules/esnext.reflect.define-metadata":["esnext.reflect.define-metadata"],"core-js/modules/esnext.reflect.delete-metadata":["esnext.reflect.delete-metadata"],"core-js/modules/esnext.reflect.get-metadata":["esnext.reflect.get-metadata"],"core-js/modules/esnext.reflect.get-metadata-keys":["esnext.reflect.get-metadata-keys"],"core-js/modules/esnext.reflect.get-own-metadata":["esnext.reflect.get-own-metadata"],"core-js/modules/esnext.reflect.get-own-metadata-keys":["esnext.reflect.get-own-metadata-keys"],"core-js/modules/esnext.reflect.has-metadata":["esnext.reflect.has-metadata"],"core-js/modules/esnext.reflect.has-own-metadata":["esnext.reflect.has-own-metadata"],"core-js/modules/esnext.reflect.metadata":["esnext.reflect.metadata"],"core-js/modules/esnext.regexp.escape":["esnext.regexp.escape"],"core-js/modules/esnext.set.add-all":["esnext.set.add-all"],"core-js/modules/esnext.set.delete-all":["esnext.set.delete-all"],"core-js/modules/esnext.set.difference":["esnext.set.difference"],"core-js/modules/esnext.set.difference.v2":["esnext.set.difference.v2"],"core-js/modules/esnext.set.every":["esnext.set.every"],"core-js/modules/esnext.set.filter":["esnext.set.filter"],"core-js/modules/esnext.set.find":["esnext.set.find"],"core-js/modules/esnext.set.from":["esnext.set.from"],"core-js/modules/esnext.set.intersection":["esnext.set.intersection"],"core-js/modules/esnext.set.intersection.v2":["esnext.set.intersection.v2"],"core-js/modules/esnext.set.is-disjoint-from":["esnext.set.is-disjoint-from"],"core-js/modules/esnext.set.is-disjoint-from.v2":["esnext.set.is-disjoint-from.v2"],"core-js/modules/esnext.set.is-subset-of":["esnext.set.is-subset-of"],"core-js/modules/esnext.set.is-subset-of.v2":["esnext.set.is-subset-of.v2"],"core-js/modules/esnext.set.is-superset-of":["esnext.set.is-superset-of"],"core-js/modules/esnext.set.is-superset-of.v2":["esnext.set.is-superset-of.v2"],"core-js/modules/esnext.set.join":["esnext.set.join"],"core-js/modules/esnext.set.map":["esnext.set.map"],"core-js/modules/esnext.set.of":["esnext.set.of"],"core-js/modules/esnext.set.reduce":["esnext.set.reduce"],"core-js/modules/esnext.set.some":["esnext.set.some"],"core-js/modules/esnext.set.symmetric-difference":["esnext.set.symmetric-difference"],"core-js/modules/esnext.set.symmetric-difference.v2":["esnext.set.symmetric-difference.v2"],"core-js/modules/esnext.set.union":["esnext.set.union"],"core-js/modules/esnext.set.union.v2":["esnext.set.union.v2"],"core-js/modules/esnext.string.at":["esnext.string.at"],"core-js/modules/esnext.string.at-alternative":["esnext.string.at-alternative"],"core-js/modules/esnext.string.code-points":["esnext.string.code-points"],"core-js/modules/esnext.string.cooked":["esnext.string.cooked"],"core-js/modules/esnext.string.dedent":["esnext.string.dedent"],"core-js/modules/esnext.string.is-well-formed":["esnext.string.is-well-formed"],"core-js/modules/esnext.string.match-all":["esnext.string.match-all"],"core-js/modules/esnext.string.replace-all":["esnext.string.replace-all"],"core-js/modules/esnext.string.to-well-formed":["esnext.string.to-well-formed"],"core-js/modules/esnext.suppressed-error.constructor":["esnext.suppressed-error.constructor"],"core-js/modules/esnext.symbol.async-dispose":["esnext.symbol.async-dispose"],"core-js/modules/esnext.symbol.custom-matcher":["esnext.symbol.custom-matcher"],"core-js/modules/esnext.symbol.dispose":["esnext.symbol.dispose"],"core-js/modules/esnext.symbol.is-registered":["esnext.symbol.is-registered"],"core-js/modules/esnext.symbol.is-registered-symbol":["esnext.symbol.is-registered-symbol"],"core-js/modules/esnext.symbol.is-well-known":["esnext.symbol.is-well-known"],"core-js/modules/esnext.symbol.is-well-known-symbol":["esnext.symbol.is-well-known-symbol"],"core-js/modules/esnext.symbol.matcher":["esnext.symbol.matcher"],"core-js/modules/esnext.symbol.metadata":["esnext.symbol.metadata"],"core-js/modules/esnext.symbol.metadata-key":["esnext.symbol.metadata-key"],"core-js/modules/esnext.symbol.observable":["esnext.symbol.observable"],"core-js/modules/esnext.symbol.pattern-match":["esnext.symbol.pattern-match"],"core-js/modules/esnext.symbol.replace-all":["esnext.symbol.replace-all"],"core-js/modules/esnext.typed-array.at":["esnext.typed-array.at"],"core-js/modules/esnext.typed-array.filter-out":["esnext.typed-array.filter-out"],"core-js/modules/esnext.typed-array.filter-reject":["esnext.typed-array.filter-reject"],"core-js/modules/esnext.typed-array.find-last":["esnext.typed-array.find-last"],"core-js/modules/esnext.typed-array.find-last-index":["esnext.typed-array.find-last-index"],"core-js/modules/esnext.typed-array.from-async":["esnext.typed-array.from-async"],"core-js/modules/esnext.typed-array.group-by":["esnext.typed-array.group-by"],"core-js/modules/esnext.typed-array.to-reversed":["esnext.typed-array.to-reversed"],"core-js/modules/esnext.typed-array.to-sorted":["esnext.typed-array.to-sorted"],"core-js/modules/esnext.typed-array.to-spliced":["esnext.typed-array.to-spliced"],"core-js/modules/esnext.typed-array.unique-by":["esnext.typed-array.unique-by"],"core-js/modules/esnext.typed-array.with":["esnext.typed-array.with"],"core-js/modules/esnext.uint8-array.from-base64":["esnext.uint8-array.from-base64"],"core-js/modules/esnext.uint8-array.from-hex":["esnext.uint8-array.from-hex"],"core-js/modules/esnext.uint8-array.set-from-base64":["esnext.uint8-array.set-from-base64"],"core-js/modules/esnext.uint8-array.set-from-hex":["esnext.uint8-array.set-from-hex"],"core-js/modules/esnext.uint8-array.to-base64":["esnext.uint8-array.to-base64"],"core-js/modules/esnext.uint8-array.to-hex":["esnext.uint8-array.to-hex"],"core-js/modules/esnext.weak-map.delete-all":["esnext.weak-map.delete-all"],"core-js/modules/esnext.weak-map.emplace":["esnext.weak-map.emplace"],"core-js/modules/esnext.weak-map.from":["esnext.weak-map.from"],"core-js/modules/esnext.weak-map.get-or-insert":["esnext.weak-map.get-or-insert"],"core-js/modules/esnext.weak-map.get-or-insert-computed":["esnext.weak-map.get-or-insert-computed"],"core-js/modules/esnext.weak-map.of":["esnext.weak-map.of"],"core-js/modules/esnext.weak-map.upsert":["esnext.weak-map.upsert"],"core-js/modules/esnext.weak-set.add-all":["esnext.weak-set.add-all"],"core-js/modules/esnext.weak-set.delete-all":["esnext.weak-set.delete-all"],"core-js/modules/esnext.weak-set.from":["esnext.weak-set.from"],"core-js/modules/esnext.weak-set.of":["esnext.weak-set.of"],"core-js/modules/web.atob":["web.atob"],"core-js/modules/web.btoa":["web.btoa"],"core-js/modules/web.clear-immediate":["web.clear-immediate"],"core-js/modules/web.dom-collections.for-each":["web.dom-collections.for-each"],"core-js/modules/web.dom-collections.iterator":["web.dom-collections.iterator"],"core-js/modules/web.dom-exception.constructor":["web.dom-exception.constructor"],"core-js/modules/web.dom-exception.stack":["web.dom-exception.stack"],"core-js/modules/web.dom-exception.to-string-tag":["web.dom-exception.to-string-tag"],"core-js/modules/web.immediate":["web.immediate"],"core-js/modules/web.queue-microtask":["web.queue-microtask"],"core-js/modules/web.self":["web.self"],"core-js/modules/web.set-immediate":["web.set-immediate"],"core-js/modules/web.set-interval":["web.set-interval"],"core-js/modules/web.set-timeout":["web.set-timeout"],"core-js/modules/web.structured-clone":["web.structured-clone"],"core-js/modules/web.timers":["web.timers"],"core-js/modules/web.url":["web.url"],"core-js/modules/web.url-search-params":["web.url-search-params"],"core-js/modules/web.url-search-params.constructor":["web.url-search-params.constructor"],"core-js/modules/web.url-search-params.delete":["web.url-search-params.delete"],"core-js/modules/web.url-search-params.has":["web.url-search-params.has"],"core-js/modules/web.url-search-params.size":["web.url-search-params.size"],"core-js/modules/web.url.can-parse":["web.url.can-parse"],"core-js/modules/web.url.constructor":["web.url.constructor"],"core-js/modules/web.url.parse":["web.url.parse"],"core-js/modules/web.url.to-json":["web.url.to-json"],"core-js/proposals":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.clamp","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/proposals/accessible-object-hasownproperty":["esnext.object.has-own"],"core-js/proposals/array-buffer-base64":["esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex"],"core-js/proposals/array-buffer-transfer":["esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length"],"core-js/proposals/array-filtering":["esnext.array.filter-out","esnext.array.filter-reject","esnext.typed-array.filter-out","esnext.typed-array.filter-reject"],"core-js/proposals/array-filtering-stage-1":["esnext.array.filter-reject","esnext.typed-array.filter-reject"],"core-js/proposals/array-find-from-last":["esnext.array.find-last","esnext.array.find-last-index","esnext.typed-array.find-last","esnext.typed-array.find-last-index"],"core-js/proposals/array-flat-map":["es.array.flat","es.array.flat-map","es.array.unscopables.flat","es.array.unscopables.flat-map"],"core-js/proposals/array-from-async":["esnext.array.from-async","esnext.typed-array.from-async"],"core-js/proposals/array-from-async-stage-2":["esnext.array.from-async"],"core-js/proposals/array-grouping":["esnext.array.group-by","esnext.array.group-by-to-map","esnext.typed-array.group-by"],"core-js/proposals/array-grouping-stage-3":["esnext.array.group-by","esnext.array.group-by-to-map"],"core-js/proposals/array-grouping-stage-3-2":["esnext.array.group","esnext.array.group-to-map"],"core-js/proposals/array-grouping-v2":["esnext.map.group-by","esnext.object.group-by"],"core-js/proposals/array-includes":["es.array.includes","es.typed-array.includes"],"core-js/proposals/array-is-template-object":["esnext.array.is-template-object"],"core-js/proposals/array-last":["esnext.array.last-index","esnext.array.last-item"],"core-js/proposals/array-unique":["es.map","esnext.array.unique-by","esnext.typed-array.unique-by"],"core-js/proposals/async-explicit-resource-management":["esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.symbol.async-dispose"],"core-js/proposals/async-iteration":["es.symbol.async-iterator"],"core-js/proposals/async-iterator-helpers":["esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.to-async"],"core-js/proposals/change-array-by-copy":["esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with"],"core-js/proposals/change-array-by-copy-stage-4":["esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.with"],"core-js/proposals/collection-methods":["esnext.map.delete-all","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.set.add-all","esnext.set.delete-all","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.weak-map.delete-all","esnext.weak-set.add-all","esnext.weak-set.delete-all"],"core-js/proposals/collection-of-from":["esnext.map.from","esnext.map.of","esnext.set.from","esnext.set.of","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-set.from","esnext.weak-set.of"],"core-js/proposals/data-view-get-set-uint8-clamped":["esnext.data-view.get-uint8-clamped","esnext.data-view.set-uint8-clamped"],"core-js/proposals/decorator-metadata":["esnext.symbol.metadata-key"],"core-js/proposals/decorator-metadata-v2":["esnext.function.metadata","esnext.symbol.metadata"],"core-js/proposals/decorators":["esnext.symbol.metadata"],"core-js/proposals/efficient-64-bit-arithmetic":["esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.umulh"],"core-js/proposals/error-cause":["es.error.cause","es.aggregate-error.cause"],"core-js/proposals/explicit-resource-management":["esnext.suppressed-error.constructor","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.disposable-stack.constructor","esnext.iterator.dispose","esnext.symbol.async-dispose","esnext.symbol.dispose"],"core-js/proposals/extractors":["esnext.symbol.custom-matcher"],"core-js/proposals/float16":["esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.math.f16round"],"core-js/proposals/function-demethodize":["esnext.function.demethodize"],"core-js/proposals/function-is-callable-is-constructor":["esnext.function.is-callable","esnext.function.is-constructor"],"core-js/proposals/function-un-this":["esnext.function.un-this"],"core-js/proposals/global-this":["esnext.global-this"],"core-js/proposals/is-error":["esnext.error.is-error"],"core-js/proposals/iterator-chunking":["esnext.iterator.chunks","esnext.iterator.sliding","esnext.iterator.windows"],"core-js/proposals/iterator-chunking-v2":["esnext.iterator.chunks","esnext.iterator.windows"],"core-js/proposals/iterator-helpers":["esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async"],"core-js/proposals/iterator-helpers-stage-3":["esnext.async-iterator.constructor","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.iterator.constructor","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async"],"core-js/proposals/iterator-helpers-stage-3-2":["esnext.iterator.constructor","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array"],"core-js/proposals/iterator-range":["esnext.iterator.constructor","esnext.iterator.range"],"core-js/proposals/iterator-sequencing":["esnext.iterator.concat"],"core-js/proposals/joint-iteration":["esnext.iterator.zip","esnext.iterator.zip-keyed"],"core-js/proposals/json-parse-with-source":["esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json"],"core-js/proposals/keys-composition":["esnext.composite-key","esnext.composite-symbol"],"core-js/proposals/map-update-or-insert":["esnext.map.emplace","esnext.map.update-or-insert","esnext.map.upsert","esnext.weak-map.emplace","esnext.weak-map.upsert"],"core-js/proposals/map-upsert":["esnext.map.emplace","esnext.map.update-or-insert","esnext.map.upsert","esnext.weak-map.emplace","esnext.weak-map.upsert"],"core-js/proposals/map-upsert-stage-2":["esnext.map.emplace","esnext.weak-map.emplace"],"core-js/proposals/map-upsert-v4":["esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed"],"core-js/proposals/math-clamp":["esnext.math.clamp"],"core-js/proposals/math-clamp-v2":["esnext.number.clamp"],"core-js/proposals/math-extensions":["esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale"],"core-js/proposals/math-signbit":["esnext.math.signbit"],"core-js/proposals/math-sum":["esnext.math.sum-precise"],"core-js/proposals/number-from-string":["esnext.number.from-string"],"core-js/proposals/number-range":["esnext.bigint.range","esnext.number.range"],"core-js/proposals/object-from-entries":["es.object.from-entries"],"core-js/proposals/object-getownpropertydescriptors":["es.object.get-own-property-descriptors"],"core-js/proposals/object-iteration":["esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values"],"core-js/proposals/object-values-entries":["es.object.entries","es.object.values"],"core-js/proposals/observable":["esnext.observable","esnext.symbol.observable"],"core-js/proposals/pattern-matching":["esnext.symbol.matcher","esnext.symbol.pattern-match"],"core-js/proposals/pattern-matching-v2":["esnext.symbol.custom-matcher"],"core-js/proposals/promise-all-settled":["esnext.promise.all-settled"],"core-js/proposals/promise-any":["esnext.aggregate-error","esnext.promise.any"],"core-js/proposals/promise-finally":["es.promise.finally"],"core-js/proposals/promise-try":["esnext.promise.try"],"core-js/proposals/promise-with-resolvers":["esnext.promise.with-resolvers"],"core-js/proposals/reflect-metadata":["esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata"],"core-js/proposals/regexp-dotall-flag":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.flags"],"core-js/proposals/regexp-escaping":["esnext.regexp.escape"],"core-js/proposals/regexp-named-groups":["es.regexp.constructor","es.regexp.exec","es.string.replace"],"core-js/proposals/relative-indexing-method":["es.string.at-alternative","esnext.array.at","esnext.typed-array.at"],"core-js/proposals/seeded-random":["esnext.math.seeded-prng"],"core-js/proposals/set-methods":["esnext.set.difference.v2","esnext.set.difference","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union"],"core-js/proposals/set-methods-v2":["esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2"],"core-js/proposals/string-at":["esnext.string.at"],"core-js/proposals/string-code-points":["esnext.string.code-points"],"core-js/proposals/string-cooked":["esnext.string.cooked"],"core-js/proposals/string-dedent":["esnext.string.dedent"],"core-js/proposals/string-left-right-trim":["es.string.trim-end","es.string.trim-start"],"core-js/proposals/string-match-all":["esnext.string.match-all"],"core-js/proposals/string-padding":["es.string.pad-end","es.string.pad-start"],"core-js/proposals/string-replace-all":["esnext.string.replace-all","esnext.symbol.replace-all"],"core-js/proposals/string-replace-all-stage-4":["esnext.string.replace-all"],"core-js/proposals/symbol-description":["es.symbol.description"],"core-js/proposals/symbol-predicates":["esnext.symbol.is-registered","esnext.symbol.is-well-known"],"core-js/proposals/symbol-predicates-v2":["esnext.symbol.is-registered-symbol","esnext.symbol.is-well-known-symbol"],"core-js/proposals/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/proposals/using-statement":["esnext.symbol.async-dispose","esnext.symbol.dispose"],"core-js/proposals/well-formed-stringify":["es.json.stringify"],"core-js/proposals/well-formed-unicode-strings":["esnext.string.is-well-formed","esnext.string.to-well-formed"],"core-js/stable":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.error.cause","es.error.is-error","es.error.to-string","es.aggregate-error","es.aggregate-error.cause","es.suppressed-error.constructor","es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string","es.disposable-stack.constructor","es.escape","es.function.bind","es.function.has-instance","es.function.name","es.global-this","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc","es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.parse-float","es.parse-int","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.array.from-async","es.async-disposable-stack.constructor","es.async-iterator.async-dispose","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag","es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex","es.unescape","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","es.weak-set","web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stable/aggregate-error":[],"core-js/stable/array":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.from","es.array.includes","es.array.index-of","es.array.is-array","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.of","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string","es.promise","es.array.from-async","es.string.iterator"],"core-js/stable/array-buffer":["es.array-buffer.constructor","es.array-buffer.is-view","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],"core-js/stable/array-buffer/constructor":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],"core-js/stable/array-buffer/detached":["es.array-buffer.constructor","es.array-buffer.slice","es.array-buffer.detached"],"core-js/stable/array-buffer/is-view":["es.array-buffer.is-view"],"core-js/stable/array-buffer/slice":["es.array-buffer.slice"],"core-js/stable/array-buffer/transfer":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer"],"core-js/stable/array-buffer/transfer-to-fixed-length":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.transfer-to-fixed-length"],"core-js/stable/array/at":["es.array.at"],"core-js/stable/array/concat":["es.array.concat"],"core-js/stable/array/copy-within":["es.array.copy-within"],"core-js/stable/array/entries":["es.array.iterator","es.object.to-string"],"core-js/stable/array/every":["es.array.every"],"core-js/stable/array/fill":["es.array.fill"],"core-js/stable/array/filter":["es.array.filter"],"core-js/stable/array/find":["es.array.find"],"core-js/stable/array/find-index":["es.array.find-index"],"core-js/stable/array/find-last":["es.array.find-last"],"core-js/stable/array/find-last-index":["es.array.find-last-index"],"core-js/stable/array/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/array/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/array/for-each":["es.array.for-each"],"core-js/stable/array/from":["es.array.from","es.string.iterator"],"core-js/stable/array/from-async":["es.array.iterator","es.object.to-string","es.promise","es.array.from-async","es.string.iterator"],"core-js/stable/array/includes":["es.array.includes"],"core-js/stable/array/index-of":["es.array.index-of"],"core-js/stable/array/is-array":["es.array.is-array"],"core-js/stable/array/iterator":["es.array.iterator","es.object.to-string"],"core-js/stable/array/join":["es.array.join"],"core-js/stable/array/keys":["es.array.iterator","es.object.to-string"],"core-js/stable/array/last-index-of":["es.array.last-index-of"],"core-js/stable/array/map":["es.array.map"],"core-js/stable/array/of":["es.array.of"],"core-js/stable/array/push":["es.array.push"],"core-js/stable/array/reduce":["es.array.reduce"],"core-js/stable/array/reduce-right":["es.array.reduce-right"],"core-js/stable/array/reverse":["es.array.reverse"],"core-js/stable/array/slice":["es.array.slice"],"core-js/stable/array/some":["es.array.some"],"core-js/stable/array/sort":["es.array.sort"],"core-js/stable/array/splice":["es.array.splice"],"core-js/stable/array/to-reversed":["es.array.to-reversed"],"core-js/stable/array/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/stable/array/to-spliced":["es.array.to-spliced"],"core-js/stable/array/unshift":["es.array.unshift"],"core-js/stable/array/values":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual":["es.array.at","es.array.concat","es.array.copy-within","es.array.every","es.array.fill","es.array.filter","es.array.find","es.array.find-index","es.array.find-last","es.array.find-last-index","es.array.flat","es.array.flat-map","es.array.for-each","es.array.includes","es.array.index-of","es.array.iterator","es.array.join","es.array.last-index-of","es.array.map","es.array.push","es.array.reduce","es.array.reduce-right","es.array.reverse","es.array.slice","es.array.some","es.array.sort","es.array.species","es.array.splice","es.array.to-reversed","es.array.to-sorted","es.array.to-spliced","es.array.unscopables.flat","es.array.unscopables.flat-map","es.array.unshift","es.array.with","es.object.to-string"],"core-js/stable/array/virtual/at":["es.array.at"],"core-js/stable/array/virtual/concat":["es.array.concat"],"core-js/stable/array/virtual/copy-within":["es.array.copy-within"],"core-js/stable/array/virtual/entries":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/every":["es.array.every"],"core-js/stable/array/virtual/fill":["es.array.fill"],"core-js/stable/array/virtual/filter":["es.array.filter"],"core-js/stable/array/virtual/find":["es.array.find"],"core-js/stable/array/virtual/find-index":["es.array.find-index"],"core-js/stable/array/virtual/find-last":["es.array.find-last"],"core-js/stable/array/virtual/find-last-index":["es.array.find-last-index"],"core-js/stable/array/virtual/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/array/virtual/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/array/virtual/for-each":["es.array.for-each"],"core-js/stable/array/virtual/includes":["es.array.includes"],"core-js/stable/array/virtual/index-of":["es.array.index-of"],"core-js/stable/array/virtual/iterator":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/join":["es.array.join"],"core-js/stable/array/virtual/keys":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/last-index-of":["es.array.last-index-of"],"core-js/stable/array/virtual/map":["es.array.map"],"core-js/stable/array/virtual/push":["es.array.push"],"core-js/stable/array/virtual/reduce":["es.array.reduce"],"core-js/stable/array/virtual/reduce-right":["es.array.reduce-right"],"core-js/stable/array/virtual/reverse":["es.array.reverse"],"core-js/stable/array/virtual/slice":["es.array.slice"],"core-js/stable/array/virtual/some":["es.array.some"],"core-js/stable/array/virtual/sort":["es.array.sort"],"core-js/stable/array/virtual/splice":["es.array.splice"],"core-js/stable/array/virtual/to-reversed":["es.array.to-reversed"],"core-js/stable/array/virtual/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/stable/array/virtual/to-spliced":["es.array.to-spliced"],"core-js/stable/array/virtual/unshift":["es.array.unshift"],"core-js/stable/array/virtual/values":["es.array.iterator","es.object.to-string"],"core-js/stable/array/virtual/with":["es.array.with"],"core-js/stable/array/with":["es.array.with"],"core-js/stable/async-disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose"],"core-js/stable/async-disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.iterator.dispose","es.object.to-string","es.promise","es.async-disposable-stack.constructor","es.async-iterator.async-dispose"],"core-js/stable/async-iterator":["es.object.to-string","es.promise","es.async-iterator.async-dispose"],"core-js/stable/async-iterator/async-dispose":["es.object.to-string","es.promise","es.async-iterator.async-dispose"],"core-js/stable/atob":["es.error.to-string","es.object.to-string","web.atob","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/btoa":["es.error.to-string","es.object.to-string","web.btoa","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/clear-immediate":["web.immediate"],"core-js/stable/data-view":["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.data-view.get-float16","es.data-view.set-float16","es.object.to-string"],"core-js/stable/data-view/get-float16":["es.data-view.get-float16"],"core-js/stable/data-view/set-float16":["es.data-view.set-float16"],"core-js/stable/date":["es.date.get-year","es.date.now","es.date.set-year","es.date.to-gmt-string","es.date.to-iso-string","es.date.to-json","es.date.to-primitive","es.date.to-string"],"core-js/stable/date/get-year":["es.date.get-year"],"core-js/stable/date/now":["es.date.now"],"core-js/stable/date/set-year":["es.date.set-year"],"core-js/stable/date/to-gmt-string":["es.date.to-gmt-string"],"core-js/stable/date/to-iso-string":["es.date.to-iso-string","es.date.to-json"],"core-js/stable/date/to-json":["es.date.to-json"],"core-js/stable/date/to-primitive":["es.date.to-primitive"],"core-js/stable/date/to-string":["es.date.to-string"],"core-js/stable/disposable-stack":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string"],"core-js/stable/disposable-stack/constructor":["es.error.cause","es.error.to-string","es.suppressed-error.constructor","es.disposable-stack.constructor","es.iterator.dispose","es.object.to-string"],"core-js/stable/dom-collections":["es.array.iterator","es.object.to-string","web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/stable/dom-collections/for-each":["web.dom-collections.for-each"],"core-js/stable/dom-collections/iterator":["es.object.to-string","web.dom-collections.iterator"],"core-js/stable/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/stable/dom-exception/constructor":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack"],"core-js/stable/dom-exception/to-string-tag":["web.dom-exception.to-string-tag"],"core-js/stable/error":["es.error.cause","es.error.is-error","es.error.to-string"],"core-js/stable/error/constructor":["es.error.cause"],"core-js/stable/error/is-error":["es.error.is-error","es.object.create"],"core-js/stable/error/to-string":["es.error.to-string"],"core-js/stable/escape":["es.escape"],"core-js/stable/function":["es.function.bind","es.function.has-instance","es.function.name"],"core-js/stable/function/bind":["es.function.bind"],"core-js/stable/function/has-instance":["es.function.has-instance"],"core-js/stable/function/name":["es.function.name"],"core-js/stable/function/virtual":["es.function.bind"],"core-js/stable/function/virtual/bind":["es.function.bind"],"core-js/stable/get-iterator":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/get-iterator-method":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/global-this":["es.global-this"],"core-js/stable/instance/at":["es.array.at","es.string.at-alternative"],"core-js/stable/instance/bind":["es.function.bind"],"core-js/stable/instance/code-point-at":["es.string.code-point-at"],"core-js/stable/instance/concat":["es.array.concat"],"core-js/stable/instance/copy-within":["es.array.copy-within"],"core-js/stable/instance/ends-with":["es.string.ends-with"],"core-js/stable/instance/entries":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/every":["es.array.every"],"core-js/stable/instance/fill":["es.array.fill"],"core-js/stable/instance/filter":["es.array.filter"],"core-js/stable/instance/find":["es.array.find"],"core-js/stable/instance/find-index":["es.array.find-index"],"core-js/stable/instance/find-last":["es.array.find-last"],"core-js/stable/instance/find-last-index":["es.array.find-last-index"],"core-js/stable/instance/flags":["es.regexp.flags"],"core-js/stable/instance/flat":["es.array.flat","es.array.unscopables.flat"],"core-js/stable/instance/flat-map":["es.array.flat-map","es.array.unscopables.flat-map"],"core-js/stable/instance/for-each":["es.array.for-each","web.dom-collections.for-each"],"core-js/stable/instance/includes":["es.array.includes","es.string.includes"],"core-js/stable/instance/index-of":["es.array.index-of"],"core-js/stable/instance/is-well-formed":["es.string.is-well-formed"],"core-js/stable/instance/keys":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/last-index-of":["es.array.last-index-of"],"core-js/stable/instance/map":["es.array.map"],"core-js/stable/instance/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/instance/pad-end":["es.string.pad-end"],"core-js/stable/instance/pad-start":["es.string.pad-start"],"core-js/stable/instance/push":["es.array.push"],"core-js/stable/instance/reduce":["es.array.reduce"],"core-js/stable/instance/reduce-right":["es.array.reduce-right"],"core-js/stable/instance/repeat":["es.string.repeat"],"core-js/stable/instance/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/instance/reverse":["es.array.reverse"],"core-js/stable/instance/slice":["es.array.slice"],"core-js/stable/instance/some":["es.array.some"],"core-js/stable/instance/sort":["es.array.sort"],"core-js/stable/instance/splice":["es.array.splice"],"core-js/stable/instance/starts-with":["es.string.starts-with"],"core-js/stable/instance/to-reversed":["es.array.to-reversed"],"core-js/stable/instance/to-sorted":["es.array.sort","es.array.to-sorted"],"core-js/stable/instance/to-spliced":["es.array.to-spliced"],"core-js/stable/instance/to-well-formed":["es.string.to-well-formed"],"core-js/stable/instance/trim":["es.string.trim"],"core-js/stable/instance/trim-end":["es.string.trim-end"],"core-js/stable/instance/trim-left":["es.string.trim-start"],"core-js/stable/instance/trim-right":["es.string.trim-end"],"core-js/stable/instance/trim-start":["es.string.trim-start"],"core-js/stable/instance/unshift":["es.array.unshift"],"core-js/stable/instance/values":["es.array.iterator","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/instance/with":["es.array.with"],"core-js/stable/is-iterable":["es.array.iterator","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/iterator":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.dispose","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/iterator/concat":["es.array.iterator","es.iterator.constructor","es.iterator.concat","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","esnext.iterator.concat","web.dom-collections.iterator"],"core-js/stable/iterator/dispose":["es.iterator.dispose"],"core-js/stable/iterator/drop":["es.iterator.constructor","es.iterator.drop","es.object.to-string"],"core-js/stable/iterator/every":["es.iterator.constructor","es.iterator.every","es.object.to-string"],"core-js/stable/iterator/filter":["es.iterator.constructor","es.iterator.filter","es.object.to-string"],"core-js/stable/iterator/find":["es.iterator.constructor","es.iterator.find","es.object.to-string"],"core-js/stable/iterator/flat-map":["es.array.iterator","es.iterator.constructor","es.iterator.flat-map","es.object.to-string","web.dom-collections.iterator"],"core-js/stable/iterator/for-each":["es.iterator.constructor","es.iterator.for-each","es.object.to-string"],"core-js/stable/iterator/from":["es.array.iterator","es.iterator.constructor","es.iterator.drop","es.iterator.every","es.iterator.filter","es.iterator.find","es.iterator.flat-map","es.iterator.for-each","es.iterator.from","es.iterator.map","es.iterator.reduce","es.iterator.some","es.iterator.take","es.iterator.to-array","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/iterator/map":["es.iterator.constructor","es.iterator.map","es.object.to-string"],"core-js/stable/iterator/reduce":["es.iterator.constructor","es.iterator.reduce","es.object.to-string"],"core-js/stable/iterator/some":["es.iterator.constructor","es.iterator.some","es.object.to-string"],"core-js/stable/iterator/take":["es.iterator.constructor","es.iterator.take","es.object.to-string"],"core-js/stable/iterator/to-array":["es.iterator.constructor","es.iterator.to-array","es.object.to-string"],"core-js/stable/json":["es.date.to-json","es.json.is-raw-json","es.json.parse","es.json.raw-json","es.json.stringify","es.json.to-string-tag","es.object.create","es.object.freeze","es.object.keys"],"core-js/stable/json/is-raw-json":["es.json.is-raw-json"],"core-js/stable/json/parse":["es.json.parse","es.object.keys"],"core-js/stable/json/raw-json":["es.json.raw-json","es.object.create","es.object.freeze"],"core-js/stable/json/stringify":["es.date.to-json","es.json.stringify"],"core-js/stable/json/to-string-tag":["es.json.to-string-tag"],"core-js/stable/map":["es.array.iterator","es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/map/get-or-insert":["es.map","es.map.get-or-insert"],"core-js/stable/map/get-or-insert-computed":["es.map","es.map.get-or-insert-computed"],"core-js/stable/map/group-by":["es.map","es.map.group-by","es.map.get-or-insert","es.map.get-or-insert-computed","es.object.to-string"],"core-js/stable/math":["es.array.iterator","es.math.acosh","es.math.asinh","es.math.atanh","es.math.cbrt","es.math.clz32","es.math.cosh","es.math.expm1","es.math.fround","es.math.f16round","es.math.hypot","es.math.imul","es.math.log10","es.math.log1p","es.math.log2","es.math.sign","es.math.sinh","es.math.sum-precise","es.math.tanh","es.math.to-string-tag","es.math.trunc"],"core-js/stable/math/acosh":["es.math.acosh"],"core-js/stable/math/asinh":["es.math.asinh"],"core-js/stable/math/atanh":["es.math.atanh"],"core-js/stable/math/cbrt":["es.math.cbrt"],"core-js/stable/math/clz32":["es.math.clz32"],"core-js/stable/math/cosh":["es.math.cosh"],"core-js/stable/math/expm1":["es.math.expm1"],"core-js/stable/math/f16round":["es.math.f16round"],"core-js/stable/math/fround":["es.math.fround"],"core-js/stable/math/hypot":["es.math.hypot"],"core-js/stable/math/imul":["es.math.imul"],"core-js/stable/math/log10":["es.math.log10"],"core-js/stable/math/log1p":["es.math.log1p"],"core-js/stable/math/log2":["es.math.log2"],"core-js/stable/math/sign":["es.math.sign"],"core-js/stable/math/sinh":["es.math.sinh"],"core-js/stable/math/sum-precise":["es.array.iterator","es.math.sum-precise"],"core-js/stable/math/tanh":["es.math.tanh"],"core-js/stable/math/to-string-tag":["es.math.to-string-tag"],"core-js/stable/math/trunc":["es.math.trunc"],"core-js/stable/number":["es.number.constructor","es.number.epsilon","es.number.is-finite","es.number.is-integer","es.number.is-nan","es.number.is-safe-integer","es.number.max-safe-integer","es.number.min-safe-integer","es.number.parse-float","es.number.parse-int","es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/stable/number/constructor":["es.number.constructor"],"core-js/stable/number/epsilon":["es.number.epsilon"],"core-js/stable/number/is-finite":["es.number.is-finite"],"core-js/stable/number/is-integer":["es.number.is-integer"],"core-js/stable/number/is-nan":["es.number.is-nan"],"core-js/stable/number/is-safe-integer":["es.number.is-safe-integer"],"core-js/stable/number/max-safe-integer":["es.number.max-safe-integer"],"core-js/stable/number/min-safe-integer":["es.number.min-safe-integer"],"core-js/stable/number/parse-float":["es.number.parse-float"],"core-js/stable/number/parse-int":["es.number.parse-int"],"core-js/stable/number/to-exponential":["es.number.to-exponential"],"core-js/stable/number/to-fixed":["es.number.to-fixed"],"core-js/stable/number/to-precision":["es.number.to-precision"],"core-js/stable/number/virtual":["es.number.to-exponential","es.number.to-fixed","es.number.to-precision"],"core-js/stable/number/virtual/to-exponential":["es.number.to-exponential"],"core-js/stable/number/virtual/to-fixed":["es.number.to-fixed"],"core-js/stable/number/virtual/to-precision":["es.number.to-precision"],"core-js/stable/object":["es.symbol","es.json.to-string-tag","es.math.to-string-tag","es.object.assign","es.object.create","es.object.define-getter","es.object.define-properties","es.object.define-property","es.object.define-setter","es.object.entries","es.object.freeze","es.object.from-entries","es.object.get-own-property-descriptor","es.object.get-own-property-descriptors","es.object.get-own-property-names","es.object.get-prototype-of","es.object.group-by","es.object.has-own","es.object.is","es.object.is-extensible","es.object.is-frozen","es.object.is-sealed","es.object.keys","es.object.lookup-getter","es.object.lookup-setter","es.object.prevent-extensions","es.object.proto","es.object.seal","es.object.set-prototype-of","es.object.to-string","es.object.values","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/stable/object/assign":["es.object.assign"],"core-js/stable/object/create":["es.object.create"],"core-js/stable/object/define-getter":["es.object.define-getter"],"core-js/stable/object/define-properties":["es.object.define-properties"],"core-js/stable/object/define-property":["es.object.define-property"],"core-js/stable/object/define-setter":["es.object.define-setter"],"core-js/stable/object/entries":["es.object.entries"],"core-js/stable/object/freeze":["es.object.freeze"],"core-js/stable/object/from-entries":["es.array.iterator","es.object.from-entries","web.dom-collections.iterator"],"core-js/stable/object/get-own-property-descriptor":["es.object.get-own-property-descriptor"],"core-js/stable/object/get-own-property-descriptors":["es.object.get-own-property-descriptors"],"core-js/stable/object/get-own-property-names":["es.object.get-own-property-names"],"core-js/stable/object/get-own-property-symbols":["es.symbol"],"core-js/stable/object/get-prototype-of":["es.object.get-prototype-of"],"core-js/stable/object/group-by":["es.object.create","es.object.group-by"],"core-js/stable/object/has-own":["es.object.has-own"],"core-js/stable/object/is":["es.object.is"],"core-js/stable/object/is-extensible":["es.object.is-extensible"],"core-js/stable/object/is-frozen":["es.object.is-frozen"],"core-js/stable/object/is-sealed":["es.object.is-sealed"],"core-js/stable/object/keys":["es.object.keys"],"core-js/stable/object/lookup-getter":["es.object.lookup-getter"],"core-js/stable/object/lookup-setter":["es.object.lookup-setter"],"core-js/stable/object/prevent-extensions":["es.object.prevent-extensions"],"core-js/stable/object/proto":["es.object.proto"],"core-js/stable/object/seal":["es.object.seal"],"core-js/stable/object/set-prototype-of":["es.object.set-prototype-of"],"core-js/stable/object/to-string":["es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/stable/object/values":["es.object.values"],"core-js/stable/parse-float":["es.parse-float"],"core-js/stable/parse-int":["es.parse-int"],"core-js/stable/promise":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.promise.any","es.promise.finally","es.promise.try","es.promise.with-resolvers","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/all-settled":["es.array.iterator","es.object.to-string","es.promise","es.promise.all-settled","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/any":["es.aggregate-error","es.array.iterator","es.object.to-string","es.promise","es.promise.any","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/promise/finally":["es.object.to-string","es.promise","es.promise.finally"],"core-js/stable/promise/try":["es.object.to-string","es.promise","es.promise.try"],"core-js/stable/promise/with-resolvers":["es.promise","es.promise.with-resolvers"],"core-js/stable/queue-microtask":["web.queue-microtask"],"core-js/stable/reflect":["es.object.to-string","es.reflect.apply","es.reflect.construct","es.reflect.define-property","es.reflect.delete-property","es.reflect.get","es.reflect.get-own-property-descriptor","es.reflect.get-prototype-of","es.reflect.has","es.reflect.is-extensible","es.reflect.own-keys","es.reflect.prevent-extensions","es.reflect.set","es.reflect.set-prototype-of","es.reflect.to-string-tag"],"core-js/stable/reflect/apply":["es.reflect.apply"],"core-js/stable/reflect/construct":["es.reflect.construct"],"core-js/stable/reflect/define-property":["es.reflect.define-property"],"core-js/stable/reflect/delete-property":["es.reflect.delete-property"],"core-js/stable/reflect/get":["es.reflect.get"],"core-js/stable/reflect/get-own-property-descriptor":["es.reflect.get-own-property-descriptor"],"core-js/stable/reflect/get-prototype-of":["es.reflect.get-prototype-of"],"core-js/stable/reflect/has":["es.reflect.has"],"core-js/stable/reflect/is-extensible":["es.reflect.is-extensible"],"core-js/stable/reflect/own-keys":["es.reflect.own-keys"],"core-js/stable/reflect/prevent-extensions":["es.reflect.prevent-extensions"],"core-js/stable/reflect/set":["es.reflect.set"],"core-js/stable/reflect/set-prototype-of":["es.reflect.set-prototype-of"],"core-js/stable/reflect/to-string-tag":["es.reflect.to-string-tag"],"core-js/stable/regexp":["es.regexp.constructor","es.regexp.escape","es.regexp.dot-all","es.regexp.exec","es.regexp.flags","es.regexp.sticky","es.regexp.test","es.regexp.to-string","es.string.match","es.string.replace","es.string.search","es.string.split"],"core-js/stable/regexp/constructor":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky"],"core-js/stable/regexp/dot-all":["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec"],"core-js/stable/regexp/escape":["es.regexp.escape"],"core-js/stable/regexp/flags":["es.regexp.flags"],"core-js/stable/regexp/match":["es.regexp.exec","es.string.match"],"core-js/stable/regexp/replace":["es.regexp.exec","es.string.replace"],"core-js/stable/regexp/search":["es.regexp.exec","es.string.search"],"core-js/stable/regexp/split":["es.regexp.exec","es.string.split"],"core-js/stable/regexp/sticky":["es.regexp.constructor","es.regexp.exec","es.regexp.sticky"],"core-js/stable/regexp/test":["es.regexp.exec","es.regexp.test"],"core-js/stable/regexp/to-string":["es.regexp.to-string"],"core-js/stable/self":["web.self"],"core-js/stable/set":["es.array.iterator","es.object.to-string","es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/set-immediate":["web.immediate"],"core-js/stable/set-interval":["web.timers"],"core-js/stable/set-timeout":["web.timers"],"core-js/stable/set/difference":["es.set","es.set.difference.v2"],"core-js/stable/set/intersection":["es.set","es.set.intersection.v2"],"core-js/stable/set/is-disjoint-from":["es.set","es.set.is-disjoint-from.v2"],"core-js/stable/set/is-subset-of":["es.set","es.set.is-subset-of.v2"],"core-js/stable/set/is-superset-of":["es.set","es.set.is-superset-of.v2"],"core-js/stable/set/symmetric-difference":["es.set","es.set.symmetric-difference.v2"],"core-js/stable/set/union":["es.set","es.set.union.v2"],"core-js/stable/string":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.from-code-point","es.string.includes","es.string.is-well-formed","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.raw","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.to-well-formed","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/stable/string/anchor":["es.string.anchor"],"core-js/stable/string/at":["es.string.at-alternative"],"core-js/stable/string/big":["es.string.big"],"core-js/stable/string/blink":["es.string.blink"],"core-js/stable/string/bold":["es.string.bold"],"core-js/stable/string/code-point-at":["es.string.code-point-at"],"core-js/stable/string/ends-with":["es.string.ends-with"],"core-js/stable/string/fixed":["es.string.fixed"],"core-js/stable/string/fontcolor":["es.string.fontcolor"],"core-js/stable/string/fontsize":["es.string.fontsize"],"core-js/stable/string/from-code-point":["es.string.from-code-point"],"core-js/stable/string/includes":["es.string.includes"],"core-js/stable/string/is-well-formed":["es.string.is-well-formed"],"core-js/stable/string/italics":["es.string.italics"],"core-js/stable/string/iterator":["es.object.to-string","es.string.iterator"],"core-js/stable/string/link":["es.string.link"],"core-js/stable/string/match":["es.regexp.exec","es.string.match"],"core-js/stable/string/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/string/pad-end":["es.string.pad-end"],"core-js/stable/string/pad-start":["es.string.pad-start"],"core-js/stable/string/raw":["es.string.raw"],"core-js/stable/string/repeat":["es.string.repeat"],"core-js/stable/string/replace":["es.regexp.exec","es.string.replace"],"core-js/stable/string/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/string/search":["es.regexp.exec","es.string.search"],"core-js/stable/string/small":["es.string.small"],"core-js/stable/string/split":["es.regexp.exec","es.string.split"],"core-js/stable/string/starts-with":["es.string.starts-with"],"core-js/stable/string/strike":["es.string.strike"],"core-js/stable/string/sub":["es.string.sub"],"core-js/stable/string/substr":["es.string.substr"],"core-js/stable/string/sup":["es.string.sup"],"core-js/stable/string/to-well-formed":["es.string.to-well-formed"],"core-js/stable/string/trim":["es.string.trim"],"core-js/stable/string/trim-end":["es.string.trim-end"],"core-js/stable/string/trim-left":["es.string.trim-start"],"core-js/stable/string/trim-right":["es.string.trim-end"],"core-js/stable/string/trim-start":["es.string.trim-start"],"core-js/stable/string/virtual":["es.object.to-string","es.regexp.exec","es.string.at-alternative","es.string.code-point-at","es.string.ends-with","es.string.includes","es.string.iterator","es.string.match","es.string.match-all","es.string.pad-end","es.string.pad-start","es.string.repeat","es.string.replace","es.string.replace-all","es.string.search","es.string.split","es.string.starts-with","es.string.substr","es.string.trim","es.string.trim-end","es.string.trim-start","es.string.anchor","es.string.big","es.string.blink","es.string.bold","es.string.fixed","es.string.fontcolor","es.string.fontsize","es.string.italics","es.string.link","es.string.small","es.string.strike","es.string.sub","es.string.sup"],"core-js/stable/string/virtual/anchor":["es.string.anchor"],"core-js/stable/string/virtual/at":["es.string.at-alternative"],"core-js/stable/string/virtual/big":["es.string.big"],"core-js/stable/string/virtual/blink":["es.string.blink"],"core-js/stable/string/virtual/bold":["es.string.bold"],"core-js/stable/string/virtual/code-point-at":["es.string.code-point-at"],"core-js/stable/string/virtual/ends-with":["es.string.ends-with"],"core-js/stable/string/virtual/fixed":["es.string.fixed"],"core-js/stable/string/virtual/fontcolor":["es.string.fontcolor"],"core-js/stable/string/virtual/fontsize":["es.string.fontsize"],"core-js/stable/string/virtual/includes":["es.string.includes"],"core-js/stable/string/virtual/is-well-formed":["es.string.is-well-formed"],"core-js/stable/string/virtual/italics":["es.string.italics"],"core-js/stable/string/virtual/iterator":["es.object.to-string","es.string.iterator"],"core-js/stable/string/virtual/link":["es.string.link"],"core-js/stable/string/virtual/match-all":["es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/string/virtual/pad-end":["es.string.pad-end"],"core-js/stable/string/virtual/pad-start":["es.string.pad-start"],"core-js/stable/string/virtual/repeat":["es.string.repeat"],"core-js/stable/string/virtual/replace-all":["es.regexp.exec","es.string.replace","es.string.replace-all"],"core-js/stable/string/virtual/small":["es.string.small"],"core-js/stable/string/virtual/starts-with":["es.string.starts-with"],"core-js/stable/string/virtual/strike":["es.string.strike"],"core-js/stable/string/virtual/sub":["es.string.sub"],"core-js/stable/string/virtual/substr":["es.string.substr"],"core-js/stable/string/virtual/sup":["es.string.sup"],"core-js/stable/string/virtual/to-well-formed":["es.string.to-well-formed"],"core-js/stable/string/virtual/trim":["es.string.trim"],"core-js/stable/string/virtual/trim-end":["es.string.trim-end"],"core-js/stable/string/virtual/trim-left":["es.string.trim-start"],"core-js/stable/string/virtual/trim-right":["es.string.trim-end"],"core-js/stable/string/virtual/trim-start":["es.string.trim-start"],"core-js/stable/structured-clone":["es.error.to-string","es.array.iterator","es.map","es.object.keys","es.object.to-string","es.set","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.structured-clone"],"core-js/stable/suppressed-error":[],"core-js/stable/symbol":["es.symbol","es.symbol.description","es.symbol.async-dispose","es.symbol.async-iterator","es.symbol.dispose","es.symbol.has-instance","es.symbol.is-concat-spreadable","es.symbol.iterator","es.symbol.match","es.symbol.match-all","es.symbol.replace","es.symbol.search","es.symbol.species","es.symbol.split","es.symbol.to-primitive","es.symbol.to-string-tag","es.symbol.unscopables","es.array.concat","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag","web.dom-collections.iterator"],"core-js/stable/symbol/async-dispose":["es.symbol.async-dispose"],"core-js/stable/symbol/async-iterator":["es.symbol.async-iterator"],"core-js/stable/symbol/description":["es.symbol.description"],"core-js/stable/symbol/dispose":["es.symbol.dispose"],"core-js/stable/symbol/for":["es.symbol"],"core-js/stable/symbol/has-instance":["es.symbol.has-instance","es.function.has-instance"],"core-js/stable/symbol/is-concat-spreadable":["es.symbol.is-concat-spreadable","es.array.concat"],"core-js/stable/symbol/iterator":["es.symbol.iterator","es.array.iterator","es.object.to-string","es.string.iterator","web.dom-collections.iterator"],"core-js/stable/symbol/key-for":["es.symbol"],"core-js/stable/symbol/match":["es.symbol.match","es.regexp.exec","es.string.match"],"core-js/stable/symbol/match-all":["es.symbol.match-all","es.object.to-string","es.regexp.exec","es.string.match-all"],"core-js/stable/symbol/replace":["es.symbol.replace","es.regexp.exec","es.string.replace"],"core-js/stable/symbol/search":["es.symbol.search","es.regexp.exec","es.string.search"],"core-js/stable/symbol/species":["es.symbol.species"],"core-js/stable/symbol/split":["es.symbol.split","es.regexp.exec","es.string.split"],"core-js/stable/symbol/to-primitive":["es.symbol.to-primitive","es.date.to-primitive"],"core-js/stable/symbol/to-string-tag":["es.symbol.to-string-tag","es.json.to-string-tag","es.math.to-string-tag","es.object.to-string","es.reflect.to-string-tag"],"core-js/stable/symbol/unscopables":["es.symbol.unscopables"],"core-js/stable/typed-array":["es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.float64-array","es.typed-array.int8-array","es.typed-array.int16-array","es.typed-array.int32-array","es.typed-array.uint8-array","es.typed-array.uint8-clamped-array","es.typed-array.uint16-array","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/at":["es.typed-array.at"],"core-js/stable/typed-array/copy-within":["es.typed-array.copy-within"],"core-js/stable/typed-array/entries":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/every":["es.typed-array.every"],"core-js/stable/typed-array/fill":["es.typed-array.fill"],"core-js/stable/typed-array/filter":["es.typed-array.filter"],"core-js/stable/typed-array/find":["es.typed-array.find"],"core-js/stable/typed-array/find-index":["es.typed-array.find-index"],"core-js/stable/typed-array/find-last":["es.typed-array.find-last"],"core-js/stable/typed-array/find-last-index":["es.typed-array.find-last-index"],"core-js/stable/typed-array/float32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/float64-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.float64-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/for-each":["es.typed-array.for-each"],"core-js/stable/typed-array/from":["es.typed-array.from"],"core-js/stable/typed-array/from-base64":["es.uint8-array.from-base64"],"core-js/stable/typed-array/from-hex":["es.uint8-array.from-hex"],"core-js/stable/typed-array/includes":["es.typed-array.includes"],"core-js/stable/typed-array/index-of":["es.typed-array.index-of"],"core-js/stable/typed-array/int16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/int32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/int8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.int8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/iterator":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/join":["es.typed-array.join"],"core-js/stable/typed-array/keys":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/last-index-of":["es.typed-array.last-index-of"],"core-js/stable/typed-array/map":["es.typed-array.map"],"core-js/stable/typed-array/methods":["es.object.to-string","es.string.iterator","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/of":["es.typed-array.of"],"core-js/stable/typed-array/reduce":["es.typed-array.reduce"],"core-js/stable/typed-array/reduce-right":["es.typed-array.reduce-right"],"core-js/stable/typed-array/reverse":["es.typed-array.reverse"],"core-js/stable/typed-array/set":["es.typed-array.set"],"core-js/stable/typed-array/set-from-base64":["es.uint8-array.set-from-base64"],"core-js/stable/typed-array/set-from-hex":["es.uint8-array.set-from-hex"],"core-js/stable/typed-array/slice":["es.typed-array.slice"],"core-js/stable/typed-array/some":["es.typed-array.some"],"core-js/stable/typed-array/sort":["es.typed-array.sort"],"core-js/stable/typed-array/subarray":["es.typed-array.subarray"],"core-js/stable/typed-array/to-base64":["es.uint8-array.to-base64"],"core-js/stable/typed-array/to-hex":["es.uint8-array.to-hex"],"core-js/stable/typed-array/to-locale-string":["es.typed-array.to-locale-string"],"core-js/stable/typed-array/to-reversed":["es.typed-array.to-reversed"],"core-js/stable/typed-array/to-sorted":["es.typed-array.sort","es.typed-array.to-sorted"],"core-js/stable/typed-array/to-string":["es.typed-array.to-string"],"core-js/stable/typed-array/uint16-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint16-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/uint32-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint32-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/uint8-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/uint8-clamped-array":["es.array-buffer.constructor","es.array-buffer.slice","es.object.to-string","es.string.iterator","es.typed-array.uint8-clamped-array","es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.from","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.of","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.uint8-array.from-base64","es.uint8-array.from-hex","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"],"core-js/stable/typed-array/values":["es.object.to-string","es.typed-array.iterator"],"core-js/stable/typed-array/with":["es.typed-array.with"],"core-js/stable/unescape":["es.unescape"],"core-js/stable/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stable/url-search-params":["web.dom-collections.iterator","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stable/url/can-parse":["web.url","web.url.can-parse"],"core-js/stable/url/parse":["web.url","web.url.parse"],"core-js/stable/url/to-json":["web.url.to-json"],"core-js/stable/weak-map":["es.array.iterator","es.object.to-string","es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","web.dom-collections.iterator"],"core-js/stable/weak-map/get-or-insert":["es.weak-map","es.weak-map.get-or-insert"],"core-js/stable/weak-map/get-or-insert-computed":["es.weak-map","es.weak-map.get-or-insert-computed"],"core-js/stable/weak-set":["es.array.iterator","es.object.to-string","es.weak-set","web.dom-collections.iterator"],"core-js/stage":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.clamp","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stage/0":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.clamp","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/stage/1":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.number.clamp","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of"],"core-js/stage/2":["es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.emplace","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.math.f16round","esnext.math.sum-precise","esnext.number.clamp","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.difference.v2","esnext.set.difference","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed"],"core-js/stage/2.7":["es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.math.f16round","esnext.math.sum-precise","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed"],"core-js/stage/3":["es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.metadata","esnext.global-this","esnext.iterator.constructor","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.math.f16round","esnext.math.sum-precise","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.symbol.metadata","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed"],"core-js/stage/4":["es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.find-last","esnext.array.find-last-index","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.async-dispose","esnext.data-view.get-float16","esnext.data-view.set-float16","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.global-this","esnext.iterator.constructor","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.map","esnext.iterator.reduce","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.math.f16round","esnext.math.sum-precise","esnext.object.has-own","esnext.object.group-by","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.regexp.escape","esnext.set.difference.v2","esnext.set.intersection.v2","esnext.set.is-disjoint-from.v2","esnext.set.is-subset-of.v2","esnext.set.is-superset-of.v2","esnext.set.symmetric-difference.v2","esnext.set.union.v2","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.dispose","esnext.typed-array.at","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed"],"core-js/stage/pre":["es.map","es.string.at-alternative","esnext.aggregate-error","esnext.suppressed-error.constructor","esnext.array.from-async","esnext.array.at","esnext.array.filter-out","esnext.array.filter-reject","esnext.array.find-last","esnext.array.find-last-index","esnext.array.group","esnext.array.group-by","esnext.array.group-by-to-map","esnext.array.group-to-map","esnext.array.is-template-object","esnext.array.last-index","esnext.array.last-item","esnext.array.to-reversed","esnext.array.to-sorted","esnext.array.to-spliced","esnext.array.unique-by","esnext.array.with","esnext.array-buffer.detached","esnext.array-buffer.transfer","esnext.array-buffer.transfer-to-fixed-length","esnext.async-disposable-stack.constructor","esnext.async-iterator.constructor","esnext.async-iterator.as-indexed-pairs","esnext.async-iterator.async-dispose","esnext.async-iterator.drop","esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.from","esnext.async-iterator.indexed","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some","esnext.async-iterator.take","esnext.async-iterator.to-array","esnext.bigint.range","esnext.composite-key","esnext.composite-symbol","esnext.data-view.get-float16","esnext.data-view.get-uint8-clamped","esnext.data-view.set-float16","esnext.data-view.set-uint8-clamped","esnext.disposable-stack.constructor","esnext.error.is-error","esnext.function.demethodize","esnext.function.is-callable","esnext.function.is-constructor","esnext.function.metadata","esnext.function.un-this","esnext.global-this","esnext.iterator.constructor","esnext.iterator.as-indexed-pairs","esnext.iterator.chunks","esnext.iterator.concat","esnext.iterator.dispose","esnext.iterator.drop","esnext.iterator.every","esnext.iterator.filter","esnext.iterator.find","esnext.iterator.flat-map","esnext.iterator.for-each","esnext.iterator.from","esnext.iterator.indexed","esnext.iterator.map","esnext.iterator.range","esnext.iterator.reduce","esnext.iterator.sliding","esnext.iterator.some","esnext.iterator.take","esnext.iterator.to-array","esnext.iterator.to-async","esnext.iterator.windows","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.json.is-raw-json","esnext.json.parse","esnext.json.raw-json","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.from","esnext.map.get-or-insert","esnext.map.get-or-insert-computed","esnext.map.group-by","esnext.map.includes","esnext.map.key-by","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.of","esnext.map.reduce","esnext.map.some","esnext.map.update","esnext.map.update-or-insert","esnext.map.upsert","esnext.math.clamp","esnext.math.deg-per-rad","esnext.math.degrees","esnext.math.fscale","esnext.math.f16round","esnext.math.iaddh","esnext.math.imulh","esnext.math.isubh","esnext.math.rad-per-deg","esnext.math.radians","esnext.math.scale","esnext.math.seeded-prng","esnext.math.signbit","esnext.math.sum-precise","esnext.math.umulh","esnext.number.clamp","esnext.number.from-string","esnext.number.range","esnext.object.has-own","esnext.object.iterate-entries","esnext.object.iterate-keys","esnext.object.iterate-values","esnext.object.group-by","esnext.observable","esnext.promise.all-settled","esnext.promise.any","esnext.promise.try","esnext.promise.with-resolvers","esnext.reflect.define-metadata","esnext.reflect.delete-metadata","esnext.reflect.get-metadata","esnext.reflect.get-metadata-keys","esnext.reflect.get-own-metadata","esnext.reflect.get-own-metadata-keys","esnext.reflect.has-metadata","esnext.reflect.has-own-metadata","esnext.reflect.metadata","esnext.regexp.escape","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference.v2","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.from","esnext.set.intersection.v2","esnext.set.intersection","esnext.set.is-disjoint-from.v2","esnext.set.is-disjoint-from","esnext.set.is-subset-of.v2","esnext.set.is-subset-of","esnext.set.is-superset-of.v2","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.of","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference.v2","esnext.set.symmetric-difference","esnext.set.union.v2","esnext.set.union","esnext.string.at","esnext.string.cooked","esnext.string.code-points","esnext.string.dedent","esnext.string.is-well-formed","esnext.string.match-all","esnext.string.replace-all","esnext.string.to-well-formed","esnext.symbol.async-dispose","esnext.symbol.custom-matcher","esnext.symbol.dispose","esnext.symbol.is-registered-symbol","esnext.symbol.is-registered","esnext.symbol.is-well-known-symbol","esnext.symbol.is-well-known","esnext.symbol.matcher","esnext.symbol.metadata","esnext.symbol.metadata-key","esnext.symbol.observable","esnext.symbol.pattern-match","esnext.symbol.replace-all","esnext.typed-array.from-async","esnext.typed-array.at","esnext.typed-array.filter-out","esnext.typed-array.filter-reject","esnext.typed-array.find-last","esnext.typed-array.find-last-index","esnext.typed-array.group-by","esnext.typed-array.to-reversed","esnext.typed-array.to-sorted","esnext.typed-array.to-spliced","esnext.typed-array.unique-by","esnext.typed-array.with","esnext.uint8-array.from-base64","esnext.uint8-array.from-hex","esnext.uint8-array.set-from-base64","esnext.uint8-array.set-from-hex","esnext.uint8-array.to-base64","esnext.uint8-array.to-hex","esnext.weak-map.delete-all","esnext.weak-map.from","esnext.weak-map.of","esnext.weak-map.emplace","esnext.weak-map.get-or-insert","esnext.weak-map.get-or-insert-computed","esnext.weak-map.upsert","esnext.weak-set.add-all","esnext.weak-set.delete-all","esnext.weak-set.from","esnext.weak-set.of","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/web":["web.atob","web.btoa","web.dom-collections.for-each","web.dom-collections.iterator","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","web.immediate","web.queue-microtask","web.self","web.structured-clone","web.timers","web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/web/dom-collections":["web.dom-collections.for-each","web.dom-collections.iterator"],"core-js/web/dom-exception":["es.error.to-string","web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag"],"core-js/web/immediate":["web.immediate"],"core-js/web/queue-microtask":["web.queue-microtask"],"core-js/web/structured-clone":["es.array.iterator","es.map","es.object.to-string","es.set","web.structured-clone"],"core-js/web/timers":["web.timers"],"core-js/web/url":["web.url","web.url.can-parse","web.url.parse","web.url.to-json","web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"],"core-js/web/url-search-params":["web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"]};function dve(){if(ave)return ove;ave=1,ove.__esModule=!0,ove.BABEL_RUNTIME=void 0,ove.callMethod=function(e,t,r,n){var o=s(e.node,e.scope),i=y(o,2),d=i[0],c=i[1],l=a.callExpression(t,[d]);n&&(l=n(l));var u=a.identifier("call");e.replaceWith(r?a.optionalMemberExpression(l,u,!1,!0):a.memberExpression(l,u)),e.parentPath.unshiftContainer("arguments",c)},ove.coreJSModule=function(e){return"core-js/modules/"+e+".js"},ove.coreJSPureHelper=function(e,t,r){return t?n+"/core-js/"+e+r:"core-js-pure/features/"+e+".js"},ove.extractOptionalCheck=function(e,t){var r=t;for(;!r.optional&&a.isOptionalMemberExpression(r.object);)r=r.object;r.optional=!1;var n=e.generateDeclaredUidIdentifier("context"),s=a.assignmentExpression("=",n,r.object);return r.object=a.cloneNode(n),function(e){return a.conditionalExpression(a.binaryExpression("==",s,a.nullLiteral()),a.unaryExpression("void",a.numericLiteral(0)),e)}},ove.isCoreJSSource=function(e){"string"==typeof e&&(e=e.replace(/\\/g,"/").replace(/(\/(index)?)?(\.js)?$/i,"").toLowerCase());return Object.prototype.hasOwnProperty.call(r.default,e)&&r.default[e]},ove.maybeMemoizeContext=s;var e,t=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o}(e,t)}(rbe),r=(e=rve?tve:(rve=1,tve=ive))&&e.__esModule?e:{default:e};var a=(t.default||t).types,n=ove.BABEL_RUNTIME="@babel/runtime-corejs3";function s(e,t){var r,n,s=e.object;return a.isIdentifier(s)?(n=s,r=a.cloneNode(s)):(n=t.generateDeclaredUidIdentifier("context"),r=a.assignmentExpression("=",a.cloneNode(n),s)),[r,n]}return ove}function cve(){if(sve)return _be;sve=1,_be.__esModule=!0,_be.default=void 0;var e=u(Dbe()),t=u((Obe||(Obe=1,Nbe.__esModule=!0,Nbe.default=void 0,Nbe.default=new Set(["esnext.array.group","esnext.array.group-to-map","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.symbol.metadata"])),Nbe)),r=u(Ube?Lbe:(Ube=1,Lbe=Xbe)),a=function(){var e;if(Jbe)return Ybe;Jbe=1,Ybe.__esModule=!0,Ybe.StaticProperties=Ybe.PromiseDependenciesWithIterators=Ybe.PromiseDependencies=Ybe.InstanceProperties=Ybe.DecoratorMetadataDependencies=Ybe.CommonIterators=Ybe.BuiltIns=void 0;var t,r=(t=Dbe())&&t.__esModule?t:{default:t};function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},a.apply(null,arguments)}var n={};Object.keys(r.default).forEach(function(e,t){n[e]=t});var s=function(e,t,r,a){return void 0===r&&(r=t[0]),{name:r,pure:e,global:t.sort(function(e,t){return n[e]-n[t]}),exclude:a}},o=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return s(null,[].concat(t,g))},i=["es.array.iterator","web.dom-collections.iterator"],d=Ybe.CommonIterators=["es.string.iterator"].concat(i),c=["es.object.to-string"].concat(i),l=["es.object.to-string"].concat(b(d)),u=["es.error.cause","es.error.to-string"],p=["es.suppressed-error.constructor"].concat(u),f=["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],g=["es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.object.to-string","es.array.iterator","esnext.typed-array.filter-reject","esnext.typed-array.group-by","esnext.typed-array.to-spliced","esnext.typed-array.unique-by"].concat(f),m=Ybe.PromiseDependencies=["es.promise","es.object.to-string"],y=Ybe.PromiseDependenciesWithIterators=[].concat(m,b(d)),h=["es.map","es.map.get-or-insert","es.map.get-or-insert-computed","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"].concat(b(l)),v=["es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union"].concat(b(l)),x=["es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","esnext.weak-map.delete-all","esnext.weak-map.emplace"].concat(b(l)),R=["es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all"].concat(b(l)),j=["web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","es.error.to-string"],w=["web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"].concat(b(l)),E=["esnext.async-iterator.constructor"].concat(m),S=["esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some"],T=["es.iterator.constructor","es.object.to-string"],P=Ybe.DecoratorMetadataDependencies=["esnext.symbol.metadata","esnext.function.metadata"],A=function(e){return{from:s(null,["es.typed-array.from",e].concat(g)),fromAsync:s(null,["esnext.typed-array.from-async",e].concat(b(y),g)),of:s(null,["es.typed-array.of",e].concat(g))}},k=["es.data-view"].concat(f);Ybe.BuiltIns={AsyncDisposableStack:s("async-disposable-stack/index",["es.async-disposable-stack.constructor","es.object.to-string","es.async-iterator.async-dispose","es.iterator.dispose"].concat(m,b(p))),AsyncIterator:s("async-iterator/index",E),AggregateError:s("aggregate-error",["es.aggregate-error"].concat(u,b(l),["es.aggregate-error.cause"])),ArrayBuffer:s(null,f),DataView:s(null,k),Date:s(null,["es.date.to-string"]),DOMException:s("dom-exception/index",j),DisposableStack:s("disposable-stack/index",["es.disposable-stack.constructor","es.object.to-string","es.iterator.dispose"].concat(b(p))),Error:s(null,u),EvalError:s(null,u),Float32Array:o("es.typed-array.float32-array"),Float64Array:o("es.typed-array.float64-array"),Int8Array:o("es.typed-array.int8-array"),Int16Array:o("es.typed-array.int16-array"),Int32Array:o("es.typed-array.int32-array"),Iterator:s("iterator/index",T),Uint8Array:o("es.typed-array.uint8-array","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"),Uint8ClampedArray:o("es.typed-array.uint8-clamped-array"),Uint16Array:o("es.typed-array.uint16-array"),Uint32Array:o("es.typed-array.uint32-array"),Map:s("map/index",h),Number:s(null,["es.number.constructor"]),Observable:s("observable/index",["esnext.observable","esnext.symbol.observable","es.object.to-string"].concat(b(l))),Promise:s("promise/index",m),RangeError:s(null,u),ReferenceError:s(null,u),Reflect:s(null,["es.reflect.to-string-tag","es.object.to-string"]),RegExp:s(null,["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky","es.regexp.to-string"]),Set:s("set/index",v),SuppressedError:s("suppressed-error",p),Symbol:s("symbol/index",["es.symbol","es.symbol.description","es.object.to-string"]),SyntaxError:s(null,u),TypeError:s(null,u),URIError:s(null,u),URL:s("url/index",["web.url","web.url.to-json"].concat(b(w))),URLSearchParams:s("url-search-params/index",w),WeakMap:s("weak-map/index",x),WeakSet:s("weak-set/index",R),atob:s("atob",["web.atob"].concat(j)),btoa:s("btoa",["web.btoa"].concat(j)),clearImmediate:s("clear-immediate",["web.immediate"]),compositeKey:s("composite-key",["esnext.composite-key"]),compositeSymbol:s("composite-symbol",["esnext.composite-symbol"]),escape:s("escape",["es.escape"]),fetch:s(null,m),globalThis:s("global-this",["es.global-this"]),parseFloat:s("parse-float",["es.parse-float"]),parseInt:s("parse-int",["es.parse-int"]),queueMicrotask:s("queue-microtask",["web.queue-microtask"]),self:s("self",["web.self"]),setImmediate:s("set-immediate",["web.immediate"]),setInterval:s("set-interval",["web.timers"]),setTimeout:s("set-timeout",["web.timers"]),structuredClone:s("structured-clone",["web.structured-clone"].concat(j,["es.array.iterator","es.object.keys","es.object.to-string","es.map","es.set"])),unescape:s("unescape",["es.unescape"])};var C=Ybe.StaticProperties={AsyncIterator:{from:s("async-iterator/from",["esnext.async-iterator.from"].concat(b(E),S,b(d)))},Array:{from:s("array/from",["es.array.from","es.string.iterator"]),fromAsync:s("array/from-async",["es.array.from-async"].concat(b(y))),isArray:s("array/is-array",["es.array.is-array"]),isTemplateObject:s("array/is-template-object",["esnext.array.is-template-object"]),of:s("array/of",["es.array.of"])},ArrayBuffer:{isView:s(null,["es.array-buffer.is-view"])},BigInt:{range:s("bigint/range",["esnext.bigint.range","es.object.to-string"])},Date:{now:s("date/now",["es.date.now"])},Error:{isError:s("error/is-error",["es.error.is-error","es.object.create"])},Function:{isCallable:s("function/is-callable",["esnext.function.is-callable"]),isConstructor:s("function/is-constructor",["esnext.function.is-constructor"])},Iterator:{concat:s("iterator/concat",["es.iterator.concat"].concat(T,b(d))),from:s("iterator/from",["es.iterator.from"].concat(T,b(d))),range:s("iterator/range",["esnext.iterator.range"].concat(T)),zip:s("iterator/zip",["esnext.iterator.zip"].concat(T,b(d))),zipKeyed:s("iterator/zip-keyed",["esnext.iterator.zip-keyed","es.object.create","es.reflect.own-keys"].concat(T,b(d)))},JSON:{isRawJSON:s("json/is-raw-json",["es.json.is-raw-json"]),parse:s("json/parse",["es.json.parse","es.object.keys"]),rawJSON:s("json/raw-json",["es.json.raw-json","es.object.create","es.object.freeze"]),stringify:s("json/stringify",["es.json.stringify","es.date.to-json"])},Math:{DEG_PER_RAD:s("math/deg-per-rad",["esnext.math.deg-per-rad"]),RAD_PER_DEG:s("math/rad-per-deg",["esnext.math.rad-per-deg"]),acosh:s("math/acosh",["es.math.acosh"]),asinh:s("math/asinh",["es.math.asinh"]),atanh:s("math/atanh",["es.math.atanh"]),cbrt:s("math/cbrt",["es.math.cbrt"]),clamp:s("math/clamp",["esnext.math.clamp"]),clz32:s("math/clz32",["es.math.clz32"]),cosh:s("math/cosh",["es.math.cosh"]),degrees:s("math/degrees",["esnext.math.degrees"]),expm1:s("math/expm1",["es.math.expm1"]),fround:s("math/fround",["es.math.fround"]),f16round:s("math/f16round",["es.math.f16round"]),fscale:s("math/fscale",["esnext.math.fscale"]),hypot:s("math/hypot",["es.math.hypot"]),iaddh:s("math/iaddh",["esnext.math.iaddh"]),imul:s("math/imul",["es.math.imul"]),imulh:s("math/imulh",["esnext.math.imulh"]),isubh:s("math/isubh",["esnext.math.isubh"]),log10:s("math/log10",["es.math.log10"]),log1p:s("math/log1p",["es.math.log1p"]),log2:s("math/log2",["es.math.log2"]),radians:s("math/radians",["esnext.math.radians"]),scale:s("math/scale",["esnext.math.scale"]),seededPRNG:s("math/seeded-prng",["esnext.math.seeded-prng"]),sign:s("math/sign",["es.math.sign"]),signbit:s("math/signbit",["esnext.math.signbit"]),sinh:s("math/sinh",["es.math.sinh"]),sumPrecise:s("math/sum-precise",["es.math.sum-precise","es.array.iterator"]),tanh:s("math/tanh",["es.math.tanh"]),trunc:s("math/trunc",["es.math.trunc"]),umulh:s("math/umulh",["esnext.math.umulh"])},Map:{from:s("map/from",["esnext.map.from"].concat(b(h))),groupBy:s("map/group-by",["es.map.group-by"].concat(b(h))),keyBy:s("map/key-by",["esnext.map.key-by"].concat(b(h))),of:s("map/of",["esnext.map.of"].concat(b(h)))},Number:{EPSILON:s("number/epsilon",["es.number.epsilon"]),MAX_SAFE_INTEGER:s("number/max-safe-integer",["es.number.max-safe-integer"]),MIN_SAFE_INTEGER:s("number/min-safe-integer",["es.number.min-safe-integer"]),fromString:s("number/from-string",["esnext.number.from-string"]),isFinite:s("number/is-finite",["es.number.is-finite"]),isInteger:s("number/is-integer",["es.number.is-integer"]),isNaN:s("number/is-nan",["es.number.is-nan"]),isSafeInteger:s("number/is-safe-integer",["es.number.is-safe-integer"]),parseFloat:s("number/parse-float",["es.number.parse-float"]),parseInt:s("number/parse-int",["es.number.parse-int"]),range:s("number/range",["esnext.number.range","es.object.to-string"])},Object:{assign:s("object/assign",["es.object.assign"]),create:s("object/create",["es.object.create"]),defineProperties:s("object/define-properties",["es.object.define-properties"]),defineProperty:s("object/define-property",["es.object.define-property"]),entries:s("object/entries",["es.object.entries"]),freeze:s("object/freeze",["es.object.freeze"]),fromEntries:s("object/from-entries",["es.object.from-entries","es.array.iterator"]),getOwnPropertyDescriptor:s("object/get-own-property-descriptor",["es.object.get-own-property-descriptor"]),getOwnPropertyDescriptors:s("object/get-own-property-descriptors",["es.object.get-own-property-descriptors"]),getOwnPropertyNames:s("object/get-own-property-names",["es.object.get-own-property-names"]),getOwnPropertySymbols:s("object/get-own-property-symbols",["es.symbol"]),getPrototypeOf:s("object/get-prototype-of",["es.object.get-prototype-of"]),groupBy:s("object/group-by",["es.object.group-by","es.object.create"]),hasOwn:s("object/has-own",["es.object.has-own"]),is:s("object/is",["es.object.is"]),isExtensible:s("object/is-extensible",["es.object.is-extensible"]),isFrozen:s("object/is-frozen",["es.object.is-frozen"]),isSealed:s("object/is-sealed",["es.object.is-sealed"]),keys:s("object/keys",["es.object.keys"]),preventExtensions:s("object/prevent-extensions",["es.object.prevent-extensions"]),seal:s("object/seal",["es.object.seal"]),setPrototypeOf:s("object/set-prototype-of",["es.object.set-prototype-of"]),values:s("object/values",["es.object.values"])},Promise:{all:s(null,y),allSettled:s("promise/all-settled",["es.promise.all-settled"].concat(b(y))),any:s("promise/any",["es.promise.any","es.aggregate-error"].concat(b(y))),race:s(null,y),try:s("promise/try",["es.promise.try"].concat(m)),withResolvers:s("promise/with-resolvers",["es.promise.with-resolvers"].concat(m))},Reflect:{apply:s("reflect/apply",["es.reflect.apply"]),construct:s("reflect/construct",["es.reflect.construct"]),defineMetadata:s("reflect/define-metadata",["esnext.reflect.define-metadata"]),defineProperty:s("reflect/define-property",["es.reflect.define-property"]),deleteMetadata:s("reflect/delete-metadata",["esnext.reflect.delete-metadata"]),deleteProperty:s("reflect/delete-property",["es.reflect.delete-property"]),get:s("reflect/get",["es.reflect.get"]),getMetadata:s("reflect/get-metadata",["esnext.reflect.get-metadata"]),getMetadataKeys:s("reflect/get-metadata-keys",["esnext.reflect.get-metadata-keys"]),getOwnMetadata:s("reflect/get-own-metadata",["esnext.reflect.get-own-metadata"]),getOwnMetadataKeys:s("reflect/get-own-metadata-keys",["esnext.reflect.get-own-metadata-keys"]),getOwnPropertyDescriptor:s("reflect/get-own-property-descriptor",["es.reflect.get-own-property-descriptor"]),getPrototypeOf:s("reflect/get-prototype-of",["es.reflect.get-prototype-of"]),has:s("reflect/has",["es.reflect.has"]),hasMetadata:s("reflect/has-metadata",["esnext.reflect.has-metadata"]),hasOwnMetadata:s("reflect/has-own-metadata",["esnext.reflect.has-own-metadata"]),isExtensible:s("reflect/is-extensible",["es.reflect.is-extensible"]),metadata:s("reflect/metadata",["esnext.reflect.metadata"]),ownKeys:s("reflect/own-keys",["es.reflect.own-keys"]),preventExtensions:s("reflect/prevent-extensions",["es.reflect.prevent-extensions"]),set:s("reflect/set",["es.reflect.set"]),setPrototypeOf:s("reflect/set-prototype-of",["es.reflect.set-prototype-of"])},RegExp:{escape:s("regexp/escape",["es.regexp.escape"])},Set:{from:s("set/from",["esnext.set.from"].concat(b(v))),of:s("set/of",["esnext.set.of"].concat(b(v)))},String:{cooked:s("string/cooked",["esnext.string.cooked"]),dedent:s("string/dedent",["esnext.string.dedent","es.string.from-code-point","es.weak-map"]),fromCodePoint:s("string/from-code-point",["es.string.from-code-point"]),raw:s("string/raw",["es.string.raw"])},Symbol:{asyncDispose:s("symbol/async-dispose",["es.symbol.async-dispose","es.async-iterator.async-dispose"]),asyncIterator:s("symbol/async-iterator",["es.symbol.async-iterator"]),customMatcher:s("symbol/custom-matcher",["esnext.symbol.custom-matcher"]),dispose:s("symbol/dispose",["es.symbol.dispose","es.iterator.dispose"]),for:s("symbol/for",[],"es.symbol"),hasInstance:s("symbol/has-instance",["es.symbol.has-instance","es.function.has-instance"]),isConcatSpreadable:s("symbol/is-concat-spreadable",["es.symbol.is-concat-spreadable","es.array.concat"]),isRegistered:s("symbol/is-registered",["esnext.symbol.is-registered","es.symbol"]),isRegisteredSymbol:s("symbol/is-registered-symbol",["esnext.symbol.is-registered-symbol","es.symbol"]),isWellKnown:s("symbol/is-well-known",["esnext.symbol.is-well-known","es.symbol"]),isWellKnownSymbol:s("symbol/is-well-known-symbol",["esnext.symbol.is-well-known-symbol","es.symbol"]),iterator:s("symbol/iterator",["es.symbol.iterator"].concat(b(l))),keyFor:s("symbol/key-for",[],"es.symbol"),match:s("symbol/match",["es.symbol.match","es.string.match"]),matcher:s("symbol/matcher",["esnext.symbol.matcher"]),matchAll:s("symbol/match-all",["es.symbol.match-all","es.string.match-all"]),metadata:s("symbol/metadata",P),metadataKey:s("symbol/metadata-key",["esnext.symbol.metadata-key"]),observable:s("symbol/observable",["esnext.symbol.observable"]),patternMatch:s("symbol/pattern-match",["esnext.symbol.pattern-match"]),replace:s("symbol/replace",["es.symbol.replace","es.string.replace"]),search:s("symbol/search",["es.symbol.search","es.string.search"]),species:s("symbol/species",["es.symbol.species","es.array.species"]),split:s("symbol/split",["es.symbol.split","es.string.split"]),toPrimitive:s("symbol/to-primitive",["es.symbol.to-primitive","es.date.to-primitive"]),toStringTag:s("symbol/to-string-tag",["es.symbol.to-string-tag","es.object.to-string","es.math.to-string-tag","es.json.to-string-tag"]),unscopables:s("symbol/unscopables",["es.symbol.unscopables"])},URL:{canParse:s("url/can-parse",["web.url.can-parse","web.url"]),parse:s("url/parse",["web.url.parse","web.url"])},WeakMap:{from:s("weak-map/from",["esnext.weak-map.from"].concat(b(x))),of:s("weak-map/of",["esnext.weak-map.of"].concat(b(x)))},WeakSet:{from:s("weak-set/from",["esnext.weak-set.from"].concat(b(R))),of:s("weak-set/of",["esnext.weak-set.of"].concat(b(R)))},Int8Array:A("es.typed-array.int8-array"),Uint8Array:a({fromBase64:s(null,["es.uint8-array.from-base64"].concat(g)),fromHex:s(null,["es.uint8-array.from-hex"].concat(g))},A("es.typed-array.uint8-array")),Uint8ClampedArray:A("es.typed-array.uint8-clamped-array"),Int16Array:A("es.typed-array.int16-array"),Uint16Array:A("es.typed-array.uint16-array"),Int32Array:A("es.typed-array.int32-array"),Uint32Array:A("es.typed-array.uint32-array"),Float32Array:A("es.typed-array.float32-array"),Float64Array:A("es.typed-array.float64-array"),WebAssembly:{CompileError:s(null,u),LinkError:s(null,u),RuntimeError:s(null,u)}};return["AggregateError","EvalError","RangeError","ReferenceError","SuppressedError","SyntaxError","TypeError","URIError"].forEach(function(e){C[e]=C.Error}),Ybe.InstanceProperties=((e={asIndexedPairs:s(null,["esnext.async-iterator.as-indexed-pairs"].concat(b(E),["esnext.iterator.as-indexed-pairs"],T)),at:s("instance/at",["esnext.string.at","es.string.at-alternative","es.array.at"]),anchor:s(null,["es.string.anchor"]),big:s(null,["es.string.big"]),bind:s("instance/bind",["es.function.bind"]),blink:s(null,["es.string.blink"]),bold:s(null,["es.string.bold"]),chunks:s(null,["esnext.iterator.chunks"].concat(T)),clamp:s("instance/clamp",["esnext.number.clamp"]),codePointAt:s("instance/code-point-at",["es.string.code-point-at"]),codePoints:s("instance/code-points",["esnext.string.code-points"]),concat:s("instance/concat",["es.array.concat"],void 0,["String"]),copyWithin:s("instance/copy-within",["es.array.copy-within"]),demethodize:s("instance/demethodize",["esnext.function.demethodize"]),description:s(null,["es.symbol","es.symbol.description"]),dotAll:s(null,["es.regexp.dot-all"]),drop:s(null,["es.iterator.drop"].concat(T,["esnext.async-iterator.drop"],b(E))),endsWith:s("instance/ends-with",["es.string.ends-with"]),entries:s("instance/entries",c),every:s("instance/every",["es.array.every","es.iterator.every"].concat(T)),exec:s(null,["es.regexp.exec"]),fill:s("instance/fill",["es.array.fill"]),filter:s("instance/filter",["es.array.filter","es.iterator.filter"].concat(T)),filterReject:s("instance/filter-reject",["esnext.array.filter-reject"]),finally:s(null,["es.promise.finally"].concat(m)),find:s("instance/find",["es.array.find","es.iterator.find"].concat(T)),findIndex:s("instance/find-index",["es.array.find-index"]),findLast:s("instance/find-last",["es.array.find-last"]),findLastIndex:s("instance/find-last-index",["es.array.find-last-index"]),fixed:s(null,["es.string.fixed"]),flags:s("instance/flags",["es.regexp.flags"]),flatMap:s("instance/flat-map",["es.array.flat-map","es.array.unscopables.flat-map","es.iterator.flat-map"].concat(T)),flat:s("instance/flat",["es.array.flat","es.array.unscopables.flat"]),getFloat16:s(null,["es.data-view.get-float16"].concat(b(k))),getUint8Clamped:s(null,["esnext.data-view.get-uint8-clamped"].concat(b(k))),getYear:s(null,["es.date.get-year"]),group:s("instance/group",["esnext.array.group"]),groupBy:s("instance/group-by",["esnext.array.group-by"]),groupByToMap:s("instance/group-by-to-map",["esnext.array.group-by-to-map","es.map","es.object.to-string"]),groupToMap:s("instance/group-to-map",["esnext.array.group-to-map","es.map","es.object.to-string"]),fontcolor:s(null,["es.string.fontcolor"]),fontsize:s(null,["es.string.fontsize"]),forEach:s("instance/for-each",["es.array.for-each","es.iterator.for-each"].concat(T,["web.dom-collections.for-each"])),includes:s("instance/includes",["es.array.includes","es.string.includes"]),indexed:s(null,["esnext.async-iterator.indexed"].concat(b(E),["esnext.iterator.indexed"],T)),indexOf:s("instance/index-of",["es.array.index-of"]),isWellFormed:s("instance/is-well-formed",["es.string.is-well-formed"]),italics:s(null,["es.string.italics"]),join:s(null,["es.array.join"]),keys:s("instance/keys",c),lastIndex:s(null,["esnext.array.last-index"]),lastIndexOf:s("instance/last-index-of",["es.array.last-index-of"]),lastItem:s(null,["esnext.array.last-item"]),link:s(null,["es.string.link"]),map:s("instance/map",["es.array.map","es.iterator.map"].concat(T)),match:s(null,["es.string.match","es.regexp.exec"]),matchAll:s("instance/match-all",["es.string.match-all","es.regexp.exec"]),name:s(null,["es.function.name"]),padEnd:s("instance/pad-end",["es.string.pad-end"]),padStart:s("instance/pad-start",["es.string.pad-start"]),push:s("instance/push",["es.array.push"]),reduce:s("instance/reduce",["es.array.reduce","es.iterator.reduce"].concat(T)),reduceRight:s("instance/reduce-right",["es.array.reduce-right"]),repeat:s("instance/repeat",["es.string.repeat"]),replace:s(null,["es.string.replace","es.regexp.exec"]),replaceAll:s("instance/replace-all",["es.string.replace-all","es.string.replace","es.regexp.exec"]),reverse:s("instance/reverse",["es.array.reverse"]),search:s(null,["es.string.search","es.regexp.exec"]),setFloat16:s(null,["es.data-view.set-float16"].concat(b(k))),setUint8Clamped:s(null,["esnext.data-view.set-uint8-clamped"].concat(b(k))),setYear:s(null,["es.date.set-year"]),slice:s("instance/slice",["es.array.slice"]),sliding:s(null,["esnext.iterator.sliding"].concat(T)),small:s(null,["es.string.small"]),some:s("instance/some",["es.array.some","es.iterator.some"].concat(T)),sort:s("instance/sort",["es.array.sort"]),splice:s("instance/splice",["es.array.splice"]),split:s(null,["es.string.split","es.regexp.exec"]),startsWith:s("instance/starts-with",["es.string.starts-with"]),sticky:s(null,["es.regexp.sticky"]),strike:s(null,["es.string.strike"]),sub:s(null,["es.string.sub"]),substr:s(null,["es.string.substr"]),sup:s(null,["es.string.sup"]),take:s(null,["es.iterator.take"].concat(T,["esnext.async-iterator.take"],b(E))),test:s(null,["es.regexp.test","es.regexp.exec"]),toArray:s(null,["es.iterator.to-array"].concat(T,["esnext.async-iterator.to-array"],b(E))),toAsync:s(null,["esnext.iterator.to-async"].concat(T,b(E),S)),toExponential:s(null,["es.number.to-exponential"]),toFixed:s(null,["es.number.to-fixed"]),toGMTString:s(null,["es.date.to-gmt-string"]),toISOString:s(null,["es.date.to-iso-string"]),toJSON:s(null,["es.date.to-json"]),toPrecision:s(null,["es.number.to-precision"]),toReversed:s("instance/to-reversed",["es.array.to-reversed"]),toSorted:s("instance/to-sorted",["es.array.to-sorted","es.array.sort"]),toSpliced:s("instance/to-spliced",["es.array.to-spliced"]),toString:s(null,["es.object.to-string","es.error.to-string","es.date.to-string","es.regexp.to-string"]),toWellFormed:s("instance/to-well-formed",["es.string.to-well-formed"]),trim:s("instance/trim",["es.string.trim"]),trimEnd:s("instance/trim-end",["es.string.trim-end"]),trimLeft:s("instance/trim-left",["es.string.trim-start"]),trimRight:s("instance/trim-right",["es.string.trim-end"]),trimStart:s("instance/trim-start",["es.string.trim-start"]),uniqueBy:s("instance/unique-by",["esnext.array.unique-by","es.map"]),unshift:s("instance/unshift",["es.array.unshift"]),unThis:s("instance/un-this",["esnext.function.un-this"]),values:s("instance/values",c),windows:s(null,["esnext.iterator.windows"].concat(T)),with:s("instance/with",["es.array.with"]),__defineGetter__:s(null,["es.object.define-getter"]),__defineSetter__:s(null,["es.object.define-setter"]),__lookupGetter__:s(null,["es.object.lookup-getter"]),__lookupSetter__:s(null,["es.object.lookup-setter"])}).__proto__=s(null,["es.object.proto"]),e),Ybe}(),n=l(function(){if($be)return Qbe;$be=1,Qbe.__esModule=!0,Qbe.stable=Qbe.proposals=void 0;var e=Qbe.stable=new Set(["array","array/from","array/is-array","array/of","clear-immediate","date/now","instance/bind","instance/code-point-at","instance/concat","instance/copy-within","instance/ends-with","instance/entries","instance/every","instance/fill","instance/filter","instance/find","instance/find-index","instance/flags","instance/flat","instance/flat-map","instance/for-each","instance/includes","instance/index-of","instance/keys","instance/last-index-of","instance/map","instance/pad-end","instance/pad-start","instance/reduce","instance/reduce-right","instance/repeat","instance/reverse","instance/slice","instance/some","instance/sort","instance/splice","instance/starts-with","instance/trim","instance/trim-end","instance/trim-left","instance/trim-right","instance/trim-start","instance/values","json/stringify","map","math/acosh","math/asinh","math/atanh","math/cbrt","math/clz32","math/cosh","math/expm1","math/fround","math/hypot","math/imul","math/log10","math/log1p","math/log2","math/sign","math/sinh","math/tanh","math/trunc","number/epsilon","number/is-finite","number/is-integer","number/is-nan","number/is-safe-integer","number/max-safe-integer","number/min-safe-integer","number/parse-float","number/parse-int","object/assign","object/create","object/define-properties","object/define-property","object/entries","object/freeze","object/from-entries","object/get-own-property-descriptor","object/get-own-property-descriptors","object/get-own-property-names","object/get-own-property-symbols","object/get-prototype-of","object/is","object/is-extensible","object/is-frozen","object/is-sealed","object/keys","object/prevent-extensions","object/seal","object/set-prototype-of","object/values","parse-float","parse-int","promise","queue-microtask","reflect/apply","reflect/construct","reflect/define-property","reflect/delete-property","reflect/get","reflect/get-own-property-descriptor","reflect/get-prototype-of","reflect/has","reflect/is-extensible","reflect/own-keys","reflect/prevent-extensions","reflect/set","reflect/set-prototype-of","set","set-immediate","set-interval","set-timeout","string/from-code-point","string/raw","symbol","symbol/async-iterator","symbol/for","symbol/has-instance","symbol/is-concat-spreadable","symbol/iterator","symbol/key-for","symbol/match","symbol/replace","symbol/search","symbol/species","symbol/split","symbol/to-primitive","symbol/to-string-tag","symbol/unscopables","url","url-search-params","weak-map","weak-set"]);return Qbe.proposals=new Set([].concat(b(e),["aggregate-error","composite-key","composite-symbol","global-this","instance/at","instance/code-points","instance/match-all","instance/replace-all","math/clamp","math/degrees","math/deg-per-rad","math/fscale","math/iaddh","math/imulh","math/isubh","math/rad-per-deg","math/radians","math/scale","math/seeded-prng","math/signbit","math/umulh","number/from-string","observable","reflect/define-metadata","reflect/delete-metadata","reflect/get-metadata","reflect/get-metadata-keys","reflect/get-own-metadata","reflect/get-own-metadata-keys","reflect/has-metadata","reflect/has-own-metadata","reflect/metadata","symbol/dispose","symbol/observable","symbol/pattern-match"])),Qbe}()),s=u(function(){if(Zbe)return eve;Zbe=1,eve.__esModule=!0,eve.default=function(e,r){var a=r.node,n=r.parent;if("es.string.split"===e.name){if(!t.isCallExpression(n,{callee:a}))return!1;if(n.arguments.length<1)return!0;var s=n.arguments[0];return t.isStringLiteral(s)||t.isTemplateLiteral(s)}};var e=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o}(e,t)}(rbe),t=(e.default||e).types;return eve}()),o=l(rbe),d=dve(),c=u(Pbe());function l(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(l=function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o})(e,t)}function u(e){return e&&e.__esModule?e:{default:e}}function p(){return p=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},p.apply(null,arguments)}var f=o.default||o,g=f.types,m=f.template,v=["array","string","iterator","async-iterator","dom-collections"].map(function(e){return new RegExp("[a-z]*\\."+e+"\\..*")}),x=function(t,r){if(r(t))return!0;if(!t.startsWith("es."))return!1;var a="esnext."+t.slice(3);return!!e.default[a]&&r(a)};return _be.default=(0,c.default)(function(o,c){var l=o.getUtils,u=o.method,f=o.shouldInjectPolyfill,b=o.createMetaResolver,R=o.debug,j=o.babel,w=c.version,E=void 0===w?3:w,S=c.proposals,T=c.shippedProposals,P=c["#__secret_key__@babel/preset-env__compatibility"],A=(void 0===P?{}:P).noRuntimeName,k=void 0!==A&&A,C=c["#__secret_key__@babel/runtime__compatibility"],_=void 0===C?{}:C,I=_.useBabelRuntime,D=void 0!==I&&I,O=_.ext,N=void 0===O?".js":O,B=j.caller(function(e){return"babel-loader"===(null==e?void 0:e.name)}),M=b({global:a.BuiltIns,static:a.StaticProperties,instance:a.InstanceProperties}),F=new Set((0,r.default)(E));function L(e,t){return!!f(e)&&(R(e),t.injectGlobalImport((0,d.coreJSModule)(e),e),!0)}function U(e,t,r){void 0===r&&(r=!0);for(var a,n=i(e);!(a=n()).done;){var s=a.value;r?x(s,function(e){return L(e,t)}):L(s,t)}}function q(e,t,r,a){if(e.pure&&!(a&&e.exclude&&e.exclude.includes(a))&&x(e.name,f)){var s=e.name,o=!1;if((S||T&&s.startsWith("esnext.")||s.startsWith("es.")&&!F.has(s))&&(o=!0),D&&!(o?n.proposals:n.stable).has(e.pure))return;var i=function(e){return D?e?d.BABEL_RUNTIME+"/core-js":d.BABEL_RUNTIME+"/core-js-stable":e?"core-js-pure/features":"core-js-pure/stable"}(o);return r.injectDefaultImport(i+"/"+e.pure+N,t)}}return{name:"corejs3",runtimeName:k?null:d.BABEL_RUNTIME,polyfills:e.default,filterPolyfills:function(r){return!!F.has(r)&&(!(!S&&"entry-global"!==u)||(!(!T||!t.default.has(r))||function(t){return!t.startsWith("esnext.")||"es."+t.slice(7)in e.default}(r)))},entryGlobal:function(e,t,r){if("import"===e.kind){var a=(0,d.isCoreJSSource)(e.source);if(a)if(1===a.length&&e.source===(0,d.coreJSModule)(a[0])&&f(a[0]))R(null);else{var n=new Set(a),s=a.filter(function(e){if(!e.startsWith("esnext."))return!0;var t=e.replace("esnext.","es.");return!n.has(t)||!f(t)});U(s,t,!1),r.remove()}}},usageGlobal:function(e,t,r){var a=M(e);if(a&&!(0,s.default)(a.desc,r)){var n=a.desc.global;if("global"!==a.kind&&"object"in e&&e.object&&"prototype"===e.placement){var o=e.object.toLowerCase();n=n.filter(function(e){return!v.some(function(t){return t.test(e)})||e.includes(o)})}return U(n,t),!0}},usagePure:function(e,t,r){if("in"!==e.kind){if(!r.parentPath.isUnaryExpression({operator:"delete"})){if("property"===e.kind){if(!r.isMemberExpression()&&!r.isOptionalMemberExpression())return;if(!r.isReferenced())return;if(r.parentPath.isUpdateExpression())return;if(g.isSuper(r.node.object))return;if("Symbol.iterator"===e.key){if(!f("es.symbol.iterator"))return;var a=r.parent,n=r.node;return void(g.isCallExpression(a,{callee:n})?0===a.arguments.length?(r.parentPath.replaceWith(g.callExpression(t.injectDefaultImport((0,d.coreJSPureHelper)("get-iterator",D,N),"getIterator"),[n.object])),r.skip()):(0,d.callMethod)(r,t.injectDefaultImport((0,d.coreJSPureHelper)("get-iterator-method",D,N),"getIteratorMethod")):r.replaceWith(g.callExpression(t.injectDefaultImport((0,d.coreJSPureHelper)("get-iterator-method",D,N),"getIteratorMethod"),[r.node.object])))}}var o=M(e);if(o&&!(0,s.default)(o.desc,r))if(D&&o.desc.pure&&"/index"===o.desc.pure.slice(-6)&&(o=p({},o,{desc:p({},o.desc,{pure:o.desc.pure.slice(0,-6)})})),"global"===o.kind){var i=q(o.desc,o.name,t);i&&r.replaceWith(i)}else if("static"===o.kind){var c=q(o.desc,o.name,t,e.object);if(c){r.replaceWith(c);var l=r.parentPath;if(l.isOptionalMemberExpression()||l.isOptionalCallExpression())do{var u=l;u.type=u.node.type="OptionalMemberExpression"===l.type?"MemberExpression":"CallExpression",delete u.node.optional,l=l.parentPath}while((l.isOptionalMemberExpression()||l.isOptionalCallExpression())&&!l.node.optional)}}else if("instance"===o.kind){var b=q(o.desc,o.name+"InstanceProperty",t,e.object);if(!b)return;var v=r.node,x=r.parent;if(g.isOptionalCallExpression(x)&&x.callee===v){var R=x.optional;if(x.optional=!R,R)if(g.isOptionalMemberExpression(v)){var j=(0,d.extractOptionalCheck)(r.scope,v);(0,d.callMethod)(r,b,!0,j)}else(0,d.callMethod)(r,b,!0);else{var w=(0,d.extractOptionalCheck)(r.scope,v),E=y((0,d.maybeMemoizeContext)(v,r.scope),2),S=E[0],T=E[1];r.replaceWith(w(m.expression.ast(nve||(nve=h(["\n Function.call.bind(","(","), ",")\n "])),b,S,T)))}}else if(g.isCallExpression(x)&&x.callee===v)(0,d.callMethod)(r,b,!1);else if(g.isOptionalMemberExpression(v)){var P=(0,d.extractOptionalCheck)(r.scope,v);r.replaceWith(P(g.callExpression(b,[v.object]))),g.isOptionalMemberExpression(x)&&(x.optional=!0)}else r.replaceWith(g.callExpression(b,[v.object]))}}}else"Symbol.iterator"===e.key&&r.replaceWith(g.callExpression(t.injectDefaultImport((0,d.coreJSPureHelper)("is-iterable",D,N),"isIterable"),[r.node.right]))},visitor:"usage-global"===u&&{CallExpression:function(e){if(e.get("callee").isImport()){var t=l(e);U(B?a.PromiseDependenciesWithIterators:a.PromiseDependencies,t)}},Function:function(e){e.node.async&&U(a.PromiseDependencies,l(e))},"ForOfStatement|ArrayPattern":function(e){U(a.CommonIterators,l(e))},SpreadElement:function(e){e.parentPath.isObjectExpression()||U(a.CommonIterators,l(e))},YieldExpression:function(e){e.node.delegate&&U(a.CommonIterators,l(e))},Class:function(e){var t;((null==(t=e.node.decorators)?void 0:t.length)||e.node.body.body.some(function(e){var t;return null==(t=e.decorators)?void 0:t.length}))&&U(a.DecoratorMetadataDependencies,l(e))}}}}),_be}var lve,uve,pve,fve,gve,mve={};function yve(){if(lve)return mve;lve=1,mve.__esModule=!0,mve.default=void 0;var e,t=(e=Pbe())&&e.__esModule?e:{default:e};mve.default=(0,t.default)(function(e,t){var a,n,s=e.debug,o=e.targets,i=e.babel;if(a=o,n=i.targets(),JSON.stringify(a)!==JSON.stringify(n))throw new Error("This plugin does not use the targets option. Only preset-env's targets or top-level targets need to be configured for this plugin to work. See https://github.com/babel/babel-polyfills/issues/36 for more details.");var d=t["#__secret_key__@babel/runtime__compatibility"],c=void 0===d?{}:d,l=c.moduleName,u=void 0===l?null:l,p=c.useBabelRuntime,f=void 0!==p&&p;return{name:"regenerator",polyfills:["regenerator-runtime"],usageGlobal:function(e,t){r(e)&&(s("regenerator-runtime"),t.injectGlobalImport("regenerator-runtime/runtime.js"))},usagePure:function(e,t,a){if(r(e)){var n,s="regenerator-runtime";if(f)s=(null!=(n=null!=u?u:a.hub.file.get("runtimeHelpersModuleName"))?n:"@babel/runtime")+"/regenerator";a.replaceWith(t.injectDefaultImport(s,"regenerator-runtime"))}}}});var r=function(e){return"global"===e.kind&&"regeneratorRuntime"===e.name};return mve}function hve(){if(gve)return fve;gve=1;var e=(Sbe?Ebe:(Sbe=1,Ebe=function(e){return null!=e&&e&&"false"!==e&&"0"!==e}(z.env.BABEL_8_BREAKING)?null:Abe())).default,t=cve().default,r=(pve?uve:(pve=1,uve=function(e){return null!=e&&e&&"false"!==e&&"0"!==e}(z.env.BABEL_8_BREAKING)?null:yve())).default;return fve=function(a,n,s){var o,i,d=a.corejs,c=a.regenerator,l=void 0===c||c,u=a.moduleName,p=!1;"object"==typeof d&&null!==d?(i=d.version,p=Boolean(d.proposals)):i=d;var f=!!i&&Number(i);if(![!1,2,3].includes(f))throw new Error("The `core-js` version must be false, 2 or 3, but got "+JSON.stringify(i)+".");if(p&&(!f||f<3))throw new Error("The 'proposals' option is only supported when using 'corejs: 3'");if("boolean"!=typeof l)throw new Error("The 'regenerator' option must be undefined, or a boolean.");var g,m=((o={method:"usage-pure",absoluteImports:s,proposals:p})["#__secret_key__@babel/runtime__compatibility"]={useBabelRuntime:!0,runtimeVersion:n,ext:"",moduleName:u},o);return function(e,t,a){return t?function(t,n,s){return Object.assign({},r(t,e,s),{inherits:null!=a?a:void 0})}:null!=a?a:void 0}(m,l,2===f?(g=m,function(t,r,a){return e(t,g,a)}):3===f?function(e){return function(r,a,n){return t(r,e,n)}}(m):null)},fve}!function(e){Object.defineProperty(e,"createPolyfillPlugins",{get:function(){return hve()}})}(Fhe);var bve,vve,xve=function(e){return null!=e&&(e&&"false"!==e&&"0"!==e)}(z.env.BABEL_8_BREAKING)?null:FO(),Rve=function(e,t,r){e.assertVersion("*");var a,n=t.version,s=void 0===n?"7.0.0-beta.0":n,o=t.absoluteRuntime,i=void 0!==o&&o,d=t.moduleName,c=void 0===d?null:d;if("boolean"!=typeof i&&"string"!=typeof i)throw new Error("The 'absoluteRuntime' option must be undefined, a boolean, or a string.");if("string"!=typeof s)throw new Error("The 'version' option must be a version string.");if(null!==c&&"string"!=typeof c)throw new Error("The 'moduleName' option must be null or a string.");if(s){var l=xve.valid(s)?"^"+s:s;a=!xve.intersects("<7.13.0",l)&&!xve.intersects(">=8.0.0",l)}else a=!0;if(hasOwnProperty.call(t,"useBuiltIns"))throw t.useBuiltIns?new Error("The 'useBuiltIns' option has been removed. The @babel/runtime module now uses builtins by default."):new Error("The 'useBuiltIns' option has been removed. Use the 'corejs'option to polyfill with `core-js` via @babel/runtime.");if(hasOwnProperty.call(t,"polyfill"))throw!1===t.polyfill?new Error("The 'polyfill' option has been removed. The @babel/runtime module now skips polyfilling by default."):new Error("The 'polyfill' option has been removed. Use the 'corejs'option to polyfill with `core-js` via @babel/runtime.");var u=t.useESModules,p=void 0!==u&&u;if("boolean"!=typeof p&&"auto"!==p)throw new Error("The 'useESModules' option must be undefined, or a boolean, or 'auto'.");var f="auto"===p?e.caller(function(e){return!(null==e||!e.supportsStaticESM)}):p,g=t.helpers,m=void 0===g||g;if("boolean"!=typeof m)throw new Error("The 'helpers' option must be undefined, or a boolean.");var y=new Set(["interopRequireWildcard","interopRequireDefault"]);return{name:"transform-runtime",inherits:Fhe.createPolyfillPlugins(t,s,i),pre:function(e){if(m){var t;e.set("helperGenerator",function(n){var o;if(null!=t||(t=function(e,t,r){if(!1===r)return e;Bhe()}(null!=(o=null!=c?c:e.get("runtimeHelpersModuleName"))?o:"@babel/runtime",0,i)),null==e.availableHelper||!e.availableHelper(n,s))return"regeneratorRuntime"===n?so([],Ps("regeneratorRuntime")):"regenerator"===n||"regeneratorKeys"===n||"regeneratorAsync"===n||"regeneratorAsyncGen"===n?Ps("__interal_marker_fallback_regenerator__"):void 0;var d=y.has(n)&&!LN(e.path)?4:void 0,l=t+"/helpers/"+(f&&"module"===e.path.node.sourceType?"esm/"+n:n);return i&&(l=Bhe()),function(t,n,s){var o=LN(e.path),i=t+":"+n+":"+(o||""),d=r.get(i);d?d=sm(d):(d=YN(e.path,t,{importedInterop:a?"compiled":"uncompiled",nameHint:n,blockHoist:s}),r.set(i,d));return d}(l,n,d)});var r=new Map}}}},jve=function(e){return e.assertVersion("*"),{name:"transform-shorthand-properties",visitor:{ObjectMethod:function(e){var t=e.node;if("method"===t.kind){var r=Ts(null,t.params,t.body,t.generator,t.async);r.returnType=t.returnType;var a=hy(t);le(a,{value:"__proto__"})?e.replaceWith(qs(a,r,!0)):e.replaceWith(qs(t.key,r,t.computed))}},ObjectProperty:function(e){var t=e.node;if(t.shorthand){var r=hy(t);le(r,{value:"__proto__"})?e.replaceWith(qs(r,t.value,!0)):t.shorthand=!1}}}}},wve=function(e,t){var r,a;e.assertVersion("*");var n=null!=(r=e.assumption("iterableIsArray"))?r:t.loose,s=null!=(a=t.allowArrayLike)?a:e.assumption("arrayLikeIsIterable");function o(e,t){if(n&&!ie(e.argument,{name:"arguments"}))return e.argument;var r=e.argument;if(ie(r)){var a=t.getBinding(r.name);if(null!=a&&a.constant&&a.path.isGenericType("Array"))return r}if(Y(r))return r;if(ie(r,{name:"arguments"}))return pj.expression.ast(bve||(bve=h(["\n Array.prototype.slice.call(",")\n "])),r);var o=[r],i="toConsumableArray";return s&&(o.unshift(t.path.hub.addHelper(i)),i="maybeArrayLike"),gs(t.path.hub.addHelper(i),o)}function d(e){return e.elements.includes(null)}function c(e){for(var t=0;t<e.length;t++)if(Xe(e[t]))return!0;return!1}function l(e,t){return e.length?(t.push(os(e)),[]):e}function u(e,t,r){for(var a,n=[],s=[],c=i(e);!(a=c()).done;){var u=a.value;if(Xe(u)){s=l(s,n);var p=o(u,t);Y(p)&&d(p)&&(p=gs(r.addHelper("arrayWithoutHoles"),[p])),n.push(p)}else s.push(u)}return l(s,n),n}return{name:"transform-spread",visitor:{ArrayExpression:function(e){var t=e.node,r=e.scope,a=t.elements;if(c(a)){var n=u(a,r,this.file),s=n[0];1!==n.length||s===a[0].argument?(Y(s)?n.shift():s=os([]),e.replaceWith(gs(Bs(s,Ps("concat")),n))):e.replaceWith(s)}},CallExpression:function(e){var t=e.node,r=e.scope,a=t.arguments;if(c(a)){var n=hK(e.get("callee"));if(n.isSuper())throw e.buildCodeFrameError("It's not possible to compile spread arguments in `super()` without compiling classes.\nPlease add '@babel/plugin-transform-classes' to your Babel configuration.");var s,o=r.buildUndefinedNode();t.arguments=[];var i=(s=1===a.length&&ie(a[0].argument,{name:"arguments"})?[a[0].argument]:u(a,r,this.file)).shift();s.length?t.arguments.push(gs(Bs(i,Ps("concat")),s)):t.arguments.push(i);var d=n.node;if(me(d)){var l=r.maybeGenerateMemoised(d.object);l?(d.object=is("=",l,d.object),o=l):o=sm(d.object)}t.callee=Bs(t.callee,Ps("apply")),Je(o)&&(o={type:"ThisExpression"}),t.arguments.unshift(sm(o))}},NewExpression:function(e){var t=e.node,r=e.scope;if(c(t.arguments)){var a,n=u(t.arguments,r,this.file),s=n.shift();a=n.length?gs(Bs(s,Ps("concat")),n):s,e.replaceWith(gs(e.hub.addHelper("construct"),[t.callee,a]))}}}}},Eve=function(e){return e.assertVersion("*"),{name:"transform-sticky-regex",visitor:{RegExpLiteral:function(e){var t=e.node;t.flags.includes("y")&&e.replaceWith(Ms(Ps("RegExp"),[Cs(t.pattern),Cs(t.flags)]))}}}},Sve=function(e){return e.assertVersion("*"),{name:"transform-strict-mode",visitor:{Program:function(e){for(var t,r=i(e.node.directives);!(t=r()).done;){if("use strict"===t.value.value.value)return}e.unshiftContainer("directives",ls(us("use strict")))}}}},Tve=function(e,t){var r,a;e.assertVersion("*");var n=null!=(r=e.assumption("ignoreToPrimitiveHint"))?r:t.loose,s=null!=(a=e.assumption("mutableTemplateObject"))?a:t.loose,o="taggedTemplateLiteral";return s&&(o+="Loose"),{name:"transform-template-literals",visitor:{TaggedTemplateExpression:function(e){for(var t,r=e.node,a=r.quasi,n=[],s=[],d=!0,c=i(a.quasis);!(t=c()).done;){var l=t.value.value,u=l.raw,p=l.cooked,f=null==p?e.scope.buildUndefinedNode():Cs(p);n.push(f),s.push(Cs(u)),u!==p&&(d=!1)}var g=[os(n)];d||g.push(os(s));var m=e.scope.generateUidIdentifier("templateObject");e.scope.getProgramParent().push({id:sm(m)}),e.replaceWith(gs(r.tag,[pj.expression.ast(vve||(vve=h(["\n "," || (\n "," = ","(",")\n )\n "])),sm(m),m,this.addHelper(o),g)].concat(b(a.expressions))))},TemplateLiteral:function(e){if("TSLiteralType"!==e.parent.type){for(var t,r=[],a=e.get("expressions"),s=0,o=i(e.node.quasis);!(t=o()).done;){var d=t.value;if(d.value.cooked&&r.push(Cs(d.value.cooked)),s<a.length){var c=a[s++].node;le(c,{value:""})||r.push(c)}}le(r[0])||n&&le(r[1])||r.unshift(Cs(""));var l,u=r[0];if(n)for(var p=1;p<r.length;p++)u=ds("+",u,r[p]);else r.length>1&&(l=!0,u=r.reduce(function(e,t){var r=dr(t);return!r&&l&&(r=!0,l=!1),r&&Z(e)?(e.arguments.push(t),e):gs(Bs(e,Ps("concat")),[t])}));e.replaceWith(u)}}}}},Pve=function(e){return e.assertVersion("*"),{name:"transform-typeof-symbol",visitor:{Scope:function(e){var t=e.scope;t.getBinding("Symbol")&&t.rename("Symbol")},UnaryExpression:function(e){var t=e.node,r=e.parent;if("typeof"===t.operator){if(e.parentPath.isBinaryExpression()&&ua.includes(r.operator)){var a=e.getOpposite();if(a.isStringLiteral()&&"symbol"!==a.node.value&&"object"!==a.node.value)return}var n=e.findParent(function(e){var t;if(e.isFunctionDeclaration())return"@babel/helpers - typeof"===(null==(t=e.get("body.directives.0"))?void 0:t.node.value.value)});if(!n){var s=this.addHelper("typeof");if(n=e.findParent(function(e){return e.isVariableDeclarator()&&e.node.id===s||e.isFunctionDeclaration()&&e.node.id&&e.node.id.name===s.name}),!n){var o=gs(s,[t.argument]),i=e.get("argument");if(i.isIdentifier()&&!e.scope.hasBinding(i.node.name,!0)){var d=$s("typeof",sm(t.argument));e.replaceWith(ys(ds("===",d,Cs("undefined")),Cs("undefined"),o))}else e.replaceWith(o)}}}}}}},Ave=new WeakMap,kve=pj.expression("\n (function (ID) {\n ASSIGNMENTS;\n return ID;\n })(INIT)\n ");function Cve(e,t){var r=e.node,a=e.parentPath;if(r.declare)e.remove();else{var n=r.id.name,s=function(e,t,r){for(var a=Mve(e,t),n=a.enumValues,s=a.data,o=a.isPure,i=e.get("members"),d=[],c=0;c<i.length;c++){var l=y(n[c],2),u=l[0],p=l[1];d.push(t.inheritsComments(Dve(Ove(p),{ENUM:t.cloneNode(r),NAME:u,VALUE:p}),i[c].node))}return{fill:{ID:t.cloneNode(r),ASSIGNMENTS:d},data:s,isPure:o}}(e,t,r.id),o=s.fill,i=s.data,d=s.isPure;switch(a.type){case"BlockStatement":case"ExportNamedDeclaration":case"Program":var c=t.isProgram(e.parent),l=function e(t){if(t.isExportDeclaration())return e(t.parentPath);return!!t.getData(n)||(t.setData(n,!0),!1)}(a),u=t.objectExpression([]);(l||c)&&(u=t.logicalExpression("||",t.cloneNode(o.ID),u));var p=kve(Object.assign({},o,{INIT:u}));if(d&&DH(p),l)(a.isExportDeclaration()?a:e).replaceWith(t.expressionStatement(t.assignmentExpression("=",t.cloneNode(r.id),p)));else e.scope.registerDeclaration(e.replaceWith(t.variableDeclaration(c?"var":"let",[t.variableDeclarator(r.id,p)]))[0]);Ave.set(e.scope.getBindingIdentifier(n),i);break;default:throw new Error("Unexpected enum parent '"+e.parent.type)}}}var _ve=pj.statement('\n ENUM["NAME"] = VALUE;\n'),Ive=pj.statement('\n ENUM[ENUM["NAME"] = VALUE] = "NAME";\n'),Dve=function(e,t){return(e?_ve:Ive)(t)};function Ove(e){switch((e=bK(e)).type){case"BinaryExpression":var t=e.left,r=e.right;return"+"===e.operator&&(Ove(t)||Ove(r));case"TemplateLiteral":case"StringLiteral":return!0}return!1}function Nve(e,t){var r=t.seen,a=t.path,n=t.t,s=e.node.name;if(r.has(s)){for(var o=e.scope;o!==a.scope;o=o.parent)if(o.hasOwnBinding(s))return;e.replaceWith(n.memberExpression(n.cloneNode(a.node.id),n.cloneNode(e.node))),e.skip()}}var Bve={ReferencedIdentifier:Nve};function Mve(e,t){var r,a,n=e.scope.getBindingIdentifier(e.node.id.name),s=null!=(r=Ave.get(n))?r:new Map,o=-1,i=!0,d=e.get("members").map(function(r){var n,d=r.node,c=t.isIdentifier(d.id)?d.id.name:d.id.value,l=r.get("initializer");if(d.initializer)void 0!==(o=Fve(l,s))?(s.set(c,o),gN("number"==typeof o||"string"==typeof o),n=o===1/0||Number.isNaN(o)?t.identifier(String(o)):o===-1/0?t.unaryExpression("-",t.identifier("Infinity")):t.valueToNode(o)):(i&&(i=l.isPure()),l.isReferencedIdentifier()?Nve(l,{t:t,seen:s,path:e}):l.traverse(Bve,{t:t,seen:s,path:e}),n=l.node,s.set(c,void 0));else if("number"==typeof o)o+=1,n=t.numericLiteral(o),s.set(c,o);else{if("string"==typeof o)throw e.buildCodeFrameError("Enum member must have initializer.");var u=t.memberExpression(t.cloneNode(e.node.id),t.stringLiteral(a),!0);n=t.binaryExpression("+",t.numericLiteral(1),u),s.set(c,void 0)}return a=c,[c,n]});return{isPure:i,data:s,enumValues:d}}function Fve(e,t,r){return void 0===r&&(r=new Set),a(e);function a(e){var s=e.node;switch(s.type){case"MemberExpression":case"Identifier":return n(e,t,r);case"StringLiteral":case"NumericLiteral":return s.value;case"UnaryExpression":return function(e){var t=a(e.get("argument"));if(void 0===t)return;switch(e.node.operator){case"+":return t;case"-":return-t;case"~":return~t;default:return}}(e);case"BinaryExpression":return function(e){var t=a(e.get("left"));if(void 0===t)return;var r=a(e.get("right"));if(void 0===r)return;switch(e.node.operator){case"|":return t|r;case"&":return t&r;case">>":return t>>r;case">>>":return t>>>r;case"<<":return t<<r;case"^":return t^r;case"*":return t*r;case"/":return t/r;case"+":return t+r;case"-":return t-r;case"%":return t%r;case"**":return Math.pow(t,r);default:return}}(e);case"ParenthesizedExpression":return a(e.get("expression"));case"TemplateLiteral":if(1===s.quasis.length)return s.quasis[0].value.cooked;for(var o=e.get("expressions"),i=s.quasis,d="",c=0;c<i.length;c++)if(d+=i[c].value.cooked,c+1<i.length){var l=n(o[c],t,r);if(void 0===l)return;d+=l}return d;default:return}}function n(e,t,r){if(e.isMemberExpression()){var a=e.node,n=a.object,s=a.property;if(!ie(n)||(a.computed?!le(s):!ie(s)))return;var o=e.scope.getBindingIdentifier(n.name),i=Ave.get(o);if(!i)return;return i.get(s.computed?s.value:s.name)}if(e.isIdentifier()){var d=e.node.name;if(["Infinity","NaN"].includes(d))return Number(d);var c=null==t?void 0:t.get(d);if(void 0!==c)return c;if(null!=t&&t.has(d))return;if(r.has(e.node))return;return r.add(e.node),c=Fve(e.resolve(),t,r)}}}var Lve=new WeakSet;var Uve,qve,Gve,Wve,Vve=new WeakMap;function Hve(e,t){var r=e.scope;return!r.hasBinding(t)&&(!!Vve.get(r).has(t)||(console.warn('The exported identifier "'+t+'" is not declared in Babel\'s scope tracker\nas a JavaScript value binding, and "@babel/plugin-transform-typescript"\nnever encountered it as a TypeScript type declaration.\nIt will be treated as a JavaScript value.\n\nThis problem is likely caused by another plugin injecting\n"'+t+'" without registering it in the scope tracker. If you are the author\n of that plugin, please use "scope.registerDeclaration(declarationPath)".'),!1))}function zve(e,t){Vve.get(e).add(t)}function Kve(e){return ie(e)?e:Kve(e.left)}function Xve(e,t){if(e.node.declare||"StringLiteral"===e.node.id.type)e.remove();else{if(!t)throw e.get("id").buildCodeFrameError("Namespace not marked type-only declare. Non-declarative namespaces are only supported experimentally in Babel. To enable and review caveats see: https://babeljs.io/docs/en/babel-plugin-transform-typescript");var r=Kve(e.node.id).name,a=Zve(e,e.node);if(null===a)zve(e.findParent(function(e){return e.isProgram()}).scope,r),e.remove();else e.scope.hasOwnBinding(r)?e.replaceWith(a):e.scope.registerDeclaration(e.replaceWithMultiple([Jve(r),a])[0])}}function Jve(e){return Zs("let",[eo(Ps(e))])}function Yve(e,t){return Bs(Ps(e),Ps(t))}function $ve(e,t,r){if("const"!==e.kind)throw r.file.buildCodeFrameError(e,"Namespaces exporting non-const are not supported by Babel. Change to const or see: https://babeljs.io/docs/en/babel-plugin-transform-typescript");var a=e.declarations;if(a.every(function(e){return ie(e.id)})){for(var n,s=i(a);!(n=s()).done;){var o=n.value;o.init=is("=",Yve(t,o.id.name),o.init)}return[e]}var d=Iy(e),c=[];for(var l in d)c.push(is("=",Yve(t,l),sm(d[l])));return[e,Rs(Vs(c))]}function Qve(e,t){return e.hub.buildError(t,"Ambient modules cannot be nested in other modules or namespaces.",Error)}function Zve(e,t,r){var a,n=new Set,s=t.id,o=e.scope.generateUid(s.name),i=t.body;t.id,a=Xt(i)?i.body:[po(i)];for(var d=!0,c=0;c<a.length;c++){var l=a[c];switch(l.type){case"TSModuleDeclaration":if(!ie(l.id))throw Qve(e,l);var u=Zve(e,l);if(null!==u){d=!1;var p=l.id.name;n.has(p)?a[c]=u:(n.add(p),a.splice(c++,1,Jve(p),u))}continue;case"TSEnumDeclaration":case"FunctionDeclaration":case"ClassDeclaration":d=!1,n.add(l.id.name);continue;case"VariableDeclaration":for(var f in d=!1,Iy(l))n.add(f);continue;default:d&&(d=xr(l));continue;case"ExportNamedDeclaration":}if(!("declare"in l.declaration)||!l.declaration.declare)switch(l.declaration.type){case"TSEnumDeclaration":Lve.add(l.declaration);case"FunctionDeclaration":case"ClassDeclaration":d=!1;var g=l.declaration.id.name;n.add(g),a.splice(c++,1,l.declaration,Rs(is("=",Yve(o,g),Ps(g))));break;case"VariableDeclaration":var m;d=!1;var y=$ve(l.declaration,o,e.hub);(m=a).splice.apply(m,[c,y.length].concat(b(y))),c+=y.length-1;break;case"TSModuleDeclaration":if(!ie(l.declaration.id))throw Qve(e,l.declaration);var v=Zve(e,l.declaration,Ps(o));if(null!==v){d=!1;var x=l.declaration.id.name;n.has(x)?a[c]=v:(n.add(x),a.splice(c++,1,Jve(x),v))}else a.splice(c,1),c--}}if(d)return null;var R=Ls([]);if(r){var j=Bs(r,s);R=pj.expression.ast(Uve||(Uve=h(["\n "," ||\n ("," = ",")\n "])),sm(j),sm(j),R)}return pj.statement.ast(qve||(qve=h(["\n (function (",") {\n ","\n })("," || ("," = ","));\n "])),Ps(o),a,s,sm(s),R)}function exe(e){switch(e.parent.type){case"TSTypeReference":case"TSExpressionWithTypeArguments":case"TSExpressionWithTypeArguments":case"TSTypeQuery":return!0;case"TSQualifiedName":return"TSImportEqualsDeclaration"!==e.parentPath.findParent(function(e){return"TSQualifiedName"!==e.type}).type;case"ExportSpecifier":return"type"===e.parent.exportKind||"type"===e.parentPath.parent.exportKind;default:return!1}}var txe=new WeakMap,rxe=new WeakSet;function axe(e){for(var t=e.getBindingIdentifiers(),r=0,a=Object.keys(t);r<a.length;r++){var n=a[r],s=e.scope.getBinding(n);s&&s.identifier===t[n]&&s.scope.removeBinding(n)}e.opts.noScope=!0,e.remove(),e.opts.noScope=!1}function nxe(e,t,r,a,n){if(void 0===n&&(n=""),"commonjs"!==t.file.get("@babel/plugin-transform-modules-*"))throw e.buildCodeFrameError("`"+r+"` is only supported when compiling modules to CommonJS.\nPlease consider using `"+a+"`"+n+", or add @babel/plugin-transform-modules-commonjs to your Babel config.")}var sxe,oxe=function(e,t){var r,a=e.types,n=e.template;e.assertVersion("*");var s=/\*?\s*@jsx((?:Frag)?)\s+(\S+)/,o=t.allowNamespaces,d=void 0===o||o,c=t.jsxPragma,l=void 0===c?"React.createElement":c,u=t.jsxPragmaFrag,p=void 0===u?"React.Fragment":u,f=t.onlyRemoveTypeImports,g=void 0!==f&&f,m=t.optimizeConstEnums,b=void 0!==m&&m,v=t.allowDeclareFields,x=void 0!==v&&v,R=function(e){var t=e.node;if(!x&&t.declare)throw e.buildCodeFrameError("The 'declare' modifier is only allowed when the 'allowDeclareFields' option of @babel/plugin-transform-typescript or @babel/preset-typescript is enabled.");if(t.declare){if(t.value)throw e.buildCodeFrameError("Fields with the 'declare' modifier cannot be initialized here, but only in the constructor");t.decorators||e.remove()}else if(t.definite){if(t.value)throw e.buildCodeFrameError("Definitely assigned fields cannot be initialized here, but only in the constructor");x||t.decorators||a.isClassPrivateProperty(t)||e.remove()}else t.abstract?e.remove():x||t.value||t.decorators||a.isClassPrivateProperty(t)||e.remove();t.accessibility&&(t.accessibility=null),t.abstract&&(t.abstract=null),t.readonly&&(t.readonly=null),t.optional&&(t.optional=null),t.typeAnnotation&&(t.typeAnnotation=null),t.definite&&(t.definite=null),t.declare&&(t.declare=null),t.override&&(t.override=null)},j=function(e){var t=e.node;t.accessibility&&(t.accessibility=null),t.abstract&&(t.abstract=null),t.optional&&(t.optional=null),t.override&&(t.override=null)},w=function(e,t){e.node.accessibility&&(e.node.accessibility=null);for(var r,s=[],o=e.scope,d=i(e.get("params"));!(r=d()).done;){var c=r.value,l=c.node;if("TSParameterProperty"===l.type){var u=l.parameter;if(rxe.has(u))continue;rxe.add(u);var p=void 0;if(a.isIdentifier(u))p=u;else{if(!a.isAssignmentPattern(u)||!a.isIdentifier(u.left))throw c.buildCodeFrameError("Parameter properties can not be destructuring patterns.");p=u.left}s.push(n.statement.ast(Gve||(Gve=h(["\n this."," = ","\n "])),a.cloneNode(p),a.cloneNode(p))),c.replaceWith(c.get("parameter")),o.registerBinding("param",c)}}ZK(t,e,s)};return{name:"transform-typescript",inherits:mH,visitor:(r={Pattern:S,Identifier:S,RestElement:S,Program:{enter:function(e,t){var r=t.file,a=null,n=null,o=e.scope;if(Vve.has(o)||Vve.set(o,new Set),r.ast.comments)for(var d,c=i(r.ast.comments);!(d=c()).done;){var u=d.value,f=s.exec(u.value);f&&(f[1]?n=f[2]:a=f[2])}var m=a||l;if(m){var h=y(m.split("."),1);m=h[0]}var b=n||p;if(b){var v=y(b.split("."),1);b=v[0]}for(var x,R=function(){var r=x.value;if(r.isImportDeclaration()){if(txe.has(t.file.ast.program)||txe.set(t.file.ast.program,!0),"type"===r.node.importKind){for(var a,n=i(r.node.specifiers);!(a=n()).done;){var s=a.value;zve(o,s.local.name)}return r.remove(),0}for(var d,c=new Set,l=r.node.specifiers.length,u=i(r.node.specifiers);!(d=u()).done;){var p=d.value;if("ImportSpecifier"===p.type&&"type"===p.importKind){zve(o,p.local.name);var f=r.scope.getBinding(p.local.name);f&&c.add(f.path)}}if(g)txe.set(e.node,!1);else{if(0===r.node.specifiers.length)return txe.set(e.node,!1),0;for(var y,h=i(r.node.specifiers);!(y=h()).done;){var v=y.value,R=r.scope.getBinding(v.local.name);R&&!c.has(R.path)&&(T({binding:R,programPath:e,pragmaImportName:m,pragmaFragImportName:b})?c.add(R.path):txe.set(e.node,!1))}}if(l>0&&l===c.size&&!g)r.remove();else for(var j,w=i(c);!(j=w()).done;){j.value.remove()}return 0}if(!g&&r.isTSImportEqualsDeclaration()){var E=r.node.id,S=r.scope.getBinding(E.name);if(S&&!r.node.isExport&&T({binding:S,programPath:e,pragmaImportName:m,pragmaFragImportName:b}))return r.remove(),0}if(r.isExportDeclaration()&&(r=r.get("declaration")),r.isVariableDeclaration({declare:!0}))for(var P=0,A=Object.keys(r.getBindingIdentifiers());P<A.length;P++){var k=A[P];zve(o,k)}else(r.isTSTypeAliasDeclaration()||r.isTSDeclareFunction()&&r.get("id").isIdentifier()||r.isTSInterfaceDeclaration()||r.isClassDeclaration({declare:!0})||r.isTSEnumDeclaration({declare:!0})||r.isTSModuleDeclaration({declare:!0})&&r.get("id").isIdentifier())&&zve(o,r.node.id.name)},j=i(e.get("body"));!(x=j()).done;)R()},exit:function(e){"module"===e.node.sourceType&&txe.get(e.node)&&e.pushContainer("body",a.exportNamedDeclaration())}},ExportNamedDeclaration:function(e,t){if(txe.has(t.file.ast.program)||txe.set(t.file.ast.program,!0),"type"!==e.node.exportKind)if(e.node.source&&e.node.specifiers.length>0&&e.node.specifiers.every(function(e){return"ExportSpecifier"===e.type&&"type"===e.exportKind}))e.remove();else if(!e.node.source&&e.node.specifiers.length>0&&e.node.specifiers.every(function(t){return a.isExportSpecifier(t)&&Hve(e,t.local.name)}))e.remove();else{if(a.isTSModuleDeclaration(e.node.declaration)){var r=e.node.declaration;if(!a.isStringLiteral(r.id)){var n=Kve(r.id);if(e.scope.hasOwnBinding(n.name))e.replaceWith(r);else{var s=y(e.replaceWithMultiple([a.exportNamedDeclaration(a.variableDeclaration("let",[a.variableDeclarator(a.cloneNode(n))])),r]),1)[0];e.scope.registerDeclaration(s)}}}txe.set(t.file.ast.program,!1)}else e.remove()},ExportAllDeclaration:function(e){"type"===e.node.exportKind&&e.remove()},ExportSpecifier:function(e){(!e.parent.source&&Hve(e,e.node.local.name)||"type"===e.node.exportKind)&&e.remove()},ExportDefaultDeclaration:function(e,t){txe.has(t.file.ast.program)||txe.set(t.file.ast.program,!0),a.isIdentifier(e.node.declaration)&&Hve(e,e.node.declaration.name)?e.remove():txe.set(t.file.ast.program,!1)},TSDeclareFunction:function(e){axe(e)},TSDeclareMethod:function(e){axe(e)},VariableDeclaration:function(e){e.node.declare&&axe(e)},VariableDeclarator:function(e){var t=e.node;t.definite&&(t.definite=null)},TSIndexSignature:function(e){e.remove()},ClassDeclaration:function(e){e.node.declare&&axe(e)},Class:function(e){var t=e.node;t.typeParameters&&(t.typeParameters=null),t.superTypeParameters&&(t.superTypeParameters=null),t.implements&&(t.implements=null),t.abstract&&(t.abstract=null),e.get("body.body").forEach(function(t){t.isClassMethod()||t.isClassPrivateMethod()?"constructor"===t.node.kind?w(t,e):j(t):(t.isClassProperty()||t.isClassPrivateProperty()||t.isClassAccessorProperty())&&R(t)})},Function:function(e){var t=e.node;t.typeParameters&&(t.typeParameters=null),t.returnType&&(t.returnType=null);var r=t.params;r.length>0&&a.isIdentifier(r[0],{name:"this"})&&r.shift()},TSModuleDeclaration:function(e){Xve(e,d)},TSInterfaceDeclaration:function(e){e.remove()},TSTypeAliasDeclaration:function(e){e.remove()},TSEnumDeclaration:function(e){b&&e.node.const?function(e,t){var r=e.node.id.name,a=e.parentPath.isExportNamedDeclaration(),n=a;!n&&t.isProgram(e.parent)&&(n=e.parent.body.some(function(e){return t.isExportNamedDeclaration(e)&&"type"!==e.exportKind&&!e.source&&e.specifiers.some(function(e){return t.isExportSpecifier(e)&&"type"!==e.exportKind&&e.local.name===r})}));var s=Mve(e,t).enumValues;if(n||Lve.has(e.node)){var o=t.objectExpression(s.map(function(e){var r=y(e,2),a=r[0],n=r[1];return t.objectProperty(t.isValidIdentifier(a)?t.identifier(a):t.stringLiteral(a),n)}));e.scope.hasOwnBinding(r)?(a?e.parentPath:e).replaceWith(t.expressionStatement(t.callExpression(t.memberExpression(t.identifier("Object"),t.identifier("assign")),[e.node.id,o]))):(e.replaceWith(t.variableDeclaration("var",[t.variableDeclarator(e.node.id,o)])),e.scope.registerDeclaration(e))}else{var i=new Map(s);e.scope.path.traverse({Scope:function(e){e.scope.hasOwnBinding(r)&&e.skip()},MemberExpression:function(e){if(t.isIdentifier(e.node.object,{name:r})){var a;if(e.node.computed){if(!t.isStringLiteral(e.node.property))return;a=e.node.property.value}else{if(!t.isIdentifier(e.node.property))return;a=e.node.property.name}i.has(a)&&e.replaceWith(t.cloneNode(i.get(a)))}}}),e.remove()}}(e,a):Cve(e,a)},TSImportEqualsDeclaration:function(e,t){var r,n,s=e.node,o=s.id,i=s.moduleReference;a.isTSExternalModuleReference(i)?(nxe(e,t,"import "+o.name+" = require(...);","import "+o.name+" from '...';"," alongside Typescript's --allowSyntheticDefaultImports option"),r=a.callExpression(a.identifier("require"),[i.expression]),n="const"):(r=E(i),n="var");var d=a.variableDeclaration(n,[a.variableDeclarator(o,r)]);e.replaceWith(e.node.isExport?a.exportNamedDeclaration(d):d),e.scope.registerDeclaration(e)},TSExportAssignment:function(e,t){nxe(e,t,"export = <value>;","export default <value>;"),e.replaceWith(n.statement.ast(Wve||(Wve=h(["module.exports = ",""])),e.node.expression))},TSTypeAssertion:function(e){e.replaceWith(e.node.expression)}},r["TSAsExpression"+(a.tsSatisfiesExpression?"|TSSatisfiesExpression":"")]=function(e){var t=e.node;do{t=t.expression}while(a.isTSAsExpression(t)||null!=a.isTSSatisfiesExpression&&a.isTSSatisfiesExpression(t));e.replaceWith(t)},r[e.types.tsInstantiationExpression?"TSNonNullExpression|TSInstantiationExpression":"TSNonNullExpression"]=function(e){e.replaceWith(e.node.expression)},r.CallExpression=function(e){e.node.typeParameters=null},r.OptionalCallExpression=function(e){e.node.typeParameters=null},r.NewExpression=function(e){e.node.typeParameters=null},r.JSXOpeningElement=function(e){e.node.typeParameters=null},r.TaggedTemplateExpression=function(e){e.node.typeParameters=null},r)};function E(e){return a.isTSQualifiedName(e)?a.memberExpression(E(e.left),e.right):e}function S(e){var t=e.node;t.typeAnnotation&&(t.typeAnnotation=null),a.isIdentifier(t)&&t.optional&&(t.optional=null)}function T(e){for(var t,r=e.binding,a=e.programPath,n=e.pragmaImportName,s=e.pragmaFragImportName,o=i(r.referencePaths);!(t=o()).done;){if(!exe(t.value))return!1}if(r.identifier.name!==n&&r.identifier.name!==s)return!0;var d=!1;return a.traverse({"JSXElement|JSXFragment":function(e){d=!0,e.stop()}}),!d}},ixe=function(e){e.assertVersion("*");var t=/[\ud800-\udfff]/g,r=/(\\+)u\{([0-9a-fA-F]+)\}/g;function a(e){for(var t=e.toString(16);t.length<4;)t="0"+t;return"\\u"+t}function n(e,t,r){if(t.length%2==0)return e;var n=String.fromCodePoint(parseInt(r,16)),s=t.slice(0,-1)+a(n.charCodeAt(0));return 1===n.length?s:s+a(n.charCodeAt(1))}function s(e){return e.replace(r,n)}return{name:"transform-unicode-escapes",manipulateOptions:function(e){var t,r=e.generatorOpts;r.jsescOption||(r.jsescOption={}),null!=(t=r.jsescOption).minimal||(t.minimal=!1)},visitor:{Identifier:function(e){var r=e.node,a=e.key,n=r.name,s=n.replace(t,function(e){return"_u"+e.charCodeAt(0).toString(16)});if(n!==s){var o=Cy(Cs(n),r);if("key"!==a){var i=e.parentPath,d=e.scope;if(i.isMemberExpression({property:r})||i.isOptionalMemberExpression({property:r}))return i.node.computed=!0,void e.replaceWith(o);if(!d.getBinding(n))throw e.buildCodeFrameError("Can't reference '"+n+"' as a bare identifier");d.rename(n,d.generateUid(s))}else e.replaceWith(o)}},"StringLiteral|DirectiveLiteral":function(e){var t=e.node.extra;null!=t&&t.raw&&(t.raw=s(t.raw))},TemplateElement:function(e){var t=e.node,a=e.parentPath,n=t.value,o=function(e){for(var t;t=r.exec(e);)if(t[1].length%2!=0)return r.lastIndex=0,t[0];return null}(n.raw);if(o){if(a.parentPath.isTaggedTemplateExpression())throw e.buildCodeFrameError("Can't replace Unicode escape '"+o+"' inside tagged template literals. You can enable '@babel/plugin-transform-template-literals' to compile them to classic strings.");n.raw=s(n.raw)}}}}},dxe=function(e){return e.assertVersion("*"),Vpe({name:"transform-unicode-regex",feature:"unicodeFlag"})};function cxe(e){return Ie(e)||(oe(e)||Oe(e))&&!e.id}function lxe(e,t,r){return gs(e.addHelper("setFunctionName"),[t,Cs(r)])}var uxe,pxe,fxe=function(e){e.assertVersion("*");var t=new Map;function r(e){return!!Ae(e)&&("using"===e.kind||"await using"===e.kind||t.has(e))}var a={ForOfStatement:function(e){var t=e.node.left;if(r(t)){var a=t.declarations[0].id,n=e.scope.generateUidIdentifierBasedOnNode(a);t.declarations[0].id=n,t.kind="const",e.ensureBlock(),wJ(e,[Zs("using",[eo(a,sm(n))])])}},"BlockStatement|StaticBlock":function(e,a){for(var n,s=null,o=!1,d=e.scope,c=i(e.node.body);!(n=c()).done;){var l=n.value;if(r(l)){null!=s||(s=d.generateUidIdentifier("usingCtx"));var u="await using"===l.kind||1===t.get(l);o||(o=u),t.delete(l)||(l.kind="const");for(var p,f=i(l.declarations);!(p=f()).done;){var g=p.value,m=g.init;g.init=gs(Bs(sm(s),Ps(u?"a":"u")),[cxe(m)&&ie(g.id)?lxe(a,m,g.id.name):m])}}}if(s){var y=gs(Bs(sm(s),Ps("d")),[]),b=pj.statement.ast(sxe||(sxe=h(["\n try {\n var "," = ","();\n ","\n } catch (_) {\n ",".e = _;\n } finally {\n ","\n }\n "])),sm(s),a.addHelper("usingCtx"),e.node.body,sm(s),o?ko(y):y);Cy(b,e.node);var v=e.parentPath;v.isFunction()||v.isTryStatement()||v.isCatchClause()?e.replaceWith(ps([b])):e.isStaticBlock()?e.node.body=[b]:e.replaceWith(b)}}},n=OO.visitors.merge([a,{Function:function(e){e.skip()}}]);return{name:"transform-explicit-resource-management",manipulateOptions:function(e,t){return t.plugins.push("explicitResourceManagement")},visitor:OO.visitors.merge([a,{Program:function(e){if(t.clear(),"module"===e.node.sourceType&&e.node.body.some(r)){for(var a,n=[],s=i(e.get("body"));!(a=s()).done;){var o=a.value;if(!o.isFunctionDeclaration()&&!o.isImportDeclaration()){var d=o.node,c=!0;if(o.isExportDefaultDeclaration()){var l=o.node.declaration,u=void 0;if(Ne(l))u=l.id,l.id=sm(u),l=by(l);else if(!$t(l))continue;null!=u||(u=e.scope.generateUidIdentifier("_default")),n.push(Zs("var",[eo(u,l)])),o.replaceWith(po(null,[fo(sm(u),Ps("default"))]))}else{if(o.isExportNamedDeclaration()){if(!(d=o.node.declaration)||nr(d))continue;o.replaceWith(po(null,Object.keys(Dy(d,!1)).map(function(e){return fo(Ps(e),Ps(e))}))),c=!1}else if(o.isExportDeclaration())continue;if(Ne(d)){var p=d.id;d.id=sm(p),n.push(Zs("var",[eo(p,by(d))]))}else Ae(d)?("using"===d.kind?t.set(o.node,0):"await using"===d.kind&&t.set(o.node,1),d.kind="var",n.push(d)):n.push(o.node);c&&o.remove()}}}e.pushContainer("body",ps(n))}},Function:function(e,t){e.node.async&&e.traverse(n,t)}}])}},gxe=function(e){e.assertVersion("*");var t=e.types,r=e.template;function a(e,r){var a=r.specifiers[0];t.assertImportNamespaceSpecifier(a);var n=e.getOwnBinding(a.local.name);return!(null==n||!n.referencePaths.every(function(e){return e.parentPath.isMemberExpression({object:e.node})}))}return{name:"proposal-import-defer",manipulateOptions:function(e,t){return t.plugins.push("deferredImportEvaluation")},pre:function(){var e=this.file;Vme(e,{name:"@babel/plugin-proposal-import-defer",version:"7.27.1",getWrapperPayload:function(r,n,s){for(var o,d=!1,c=i(s);!(o=c()).done;){var l=o.value;if(!t.isImportDeclaration(l))return null;if("defer"!==l.phase)return null;a(e.scope,l)||(d=!0)}return d?"defer/proxy":"defer/function"},buildRequireWrapper:function(t,a,n,s){return"defer/proxy"===n?!!s&&r.statement.ast(uxe||(uxe=h(["\n var "," = ","(\n () => ","\n )\n "])),t,e.addHelper("importDeferProxy"),a):"defer/function"===n?!!s&&r.statement.ast(pxe||(pxe=h(["\n function ","(data) {\n "," = () => data;\n return data = ",";\n }\n "])),t,t,a):void 0},wrapReference:function(e,r){if("defer/function"===r)return t.callExpression(e,[])}})},visitor:{Program:function(e){if("commonjs"!==this.file.get("@babel/plugin-transform-modules-*"))throw new Error("@babel/plugin-proposal-import-defer can only be used when transpiling modules to CommonJS.");for(var t,r=new Set,a=i(e.get("body"));!(t=a()).done;){var n=t.value;if(n.isImportDeclaration()&&null==n.node.phase||n.isExportNamedDeclaration()&&null!==n.node.source||n.isExportAllDeclaration()){var s=n.node.source.value;r.has(s)||r.add(s)}}for(var o,d=[],c=i(e.get("body"));!(o=c()).done;){var l=o.value;if(l.isImportDeclaration({phase:"defer"})){var u=l.node.source.value;if(!r.has(u))continue;l.node.phase=null,d.push(l.node),l.remove()}}d.length&&(e.pushContainer("body",d),e.scope.crawl())}}}},mxe={};Object.defineProperty(mxe,"__esModule",{value:!0}),mxe.default=void 0;var yxe=zV;mxe.default=(0,yxe.declare)(function(e,t){return e.assertVersion(7),{name:"syntax-record-and-tuple",manipulateOptions:function(e,r){e.generatorOpts.recordAndTupleSyntaxType=t.syntaxType,r.plugins.push(["recordAndTuple",{syntaxType:t.syntaxType}])}}});var hxe={},bxe=cR(tB),vxe=cR(lU);Object.defineProperty(hxe,"__esModule",{value:!0}),hxe.default=void 0;var xxe=zV,Rxe=mxe,jxe=rbe,wxe=bxe,Exe=new vxe.OptionValidator("@babel/plugin-proposal-record-and-tuple");hxe.default=(0,xxe.declare)(function(e,t){e.assertVersion(7);var r=Exe.validateStringOption("polyfillModuleName",t.polyfillModuleName,"@bloomberg/record-tuple-polyfill"),a=Exe.validateBooleanOption("importPolyfill",t.importPolyfill,!!t.polyfillModuleName),n=new WeakMap;function s(e,t,r){var a=e.get(t);return a||e.set(t,a=r()),a}function o(e,t){if(!a)return jxe.types.identifier(e);if(!t)throw new Error("Internal error: unable to find the Program node.");var o=e+":"+(0,wxe.isModule)(t),i=s(n,t.node,function(){return new Map}),d=s(i,o,function(){return(0,wxe.addNamed)(t,e,r,{importedInterop:"uncompiled"}).name});return jxe.types.identifier(d)}return{name:"proposal-record-and-tuple",inherits:Rxe.default,visitor:{Program:function(e,t){t.programPath=e},RecordExpression:function(e,t){var r=o("Record",t.programPath),a=jxe.types.objectExpression(e.node.properties),n=jxe.types.callExpression(r,[a]);e.replaceWith(n)},TupleExpression:function(e,t){var r=o("Tuple",t.programPath),a=jxe.types.callExpression(r,e.node.elements);e.replaceWith(a)}}}});var Sxe={"syntax-async-generators":GV(),"syntax-class-properties":GV(),"syntax-class-static-block":GV(),"syntax-import-meta":GV(),"syntax-object-rest-spread":GV(),"syntax-optional-catch-binding":GV(),"syntax-top-level-await":GV(),"external-helpers":VV,"syntax-decimal":HV,"syntax-decorators":XV,"syntax-destructuring-private":JV,"syntax-do-expressions":YV,"syntax-explicit-resource-management":$V,"syntax-export-default-from":QV,"syntax-flow":ZV,"syntax-function-bind":eH,"syntax-function-sent":tH,"syntax-import-assertions":rH,"syntax-import-attributes":aH,"syntax-import-reflection":nH,"syntax-jsx":oH,"syntax-module-blocks":iH,"syntax-optional-chaining-assign":cH,"syntax-pipeline-operator":fH,"syntax-typescript":mH,"transform-async-generator-functions":GH,"transform-class-properties":iJ,"transform-class-static-block":dJ,"proposal-decorators":RJ,"proposal-destructuring-private":jY,"proposal-do-expressions":TY,"transform-duplicate-named-capturing-groups-regex":zpe,"transform-dynamic-import":Xpe,"proposal-export-default-from":Jpe,"transform-export-namespace-from":Ype,"proposal-function-bind":$pe,"proposal-function-sent":Qpe,"transform-json-strings":Zpe,"transform-logical-assignment-operators":efe,"transform-nullish-coalescing-operator":tfe,"transform-numeric-separator":afe,"transform-object-rest-spread":lfe,"transform-optional-catch-binding":ufe,"transform-optional-chaining":Rfe,"proposal-optional-chaining-assign":jfe,"proposal-pipeline-operator":qfe,"transform-private-methods":Gfe,"transform-private-property-in-object":Wfe,"transform-regexp-modifiers":Vfe,"proposal-throw-expressions":Hfe,"transform-unicode-property-regex":zfe,"transform-unicode-sets-regex":Kfe,"transform-async-to-generator":Xfe,"transform-arrow-functions":Jfe,"transform-block-scoped-functions":Yfe,"transform-block-scoping":gge,"transform-classes":Pge,"transform-computed-properties":kge,"transform-destructuring":CJ,"transform-dotall-regex":Cge,"transform-duplicate-keys":Dge,"transform-exponentiation-operator":Oge,"transform-flow-comments":Nge,"transform-flow-strip-types":Bge,"transform-for-of":Hge,"transform-function-name":zge,"transform-instanceof":Kge,"transform-jscript":Xge,"transform-json-modules":Cme,"transform-literals":_me,"transform-member-expression-literals":Ime,"transform-modules-amd":Fme,"transform-modules-commonjs":zme,"transform-modules-systemjs":$me,"transform-modules-umd":eye,"transform-named-capturing-groups-regex":tye,"transform-new-target":rye,"transform-object-assign":aye,"transform-object-super":nye,"transform-object-set-prototype-of-to-assign":sye,"transform-parameters":RY,"transform-property-literals":oye,"transform-property-mutators":cye,"transform-proto-to-assign":lye,"transform-react-constant-elements":uye,"transform-react-display-name":pye,"transform-react-inline-elements":Fye,"transform-react-jsx":$ye,"transform-react-jsx-compat":Qye,"transform-react-jsx-development":Zye,"transform-react-jsx-self":the,"transform-react-jsx-source":nhe,"transform-regenerator":Ohe,"transform-reserved-words":Nhe,"transform-runtime":Rve,"transform-shorthand-properties":jve,"transform-spread":wve,"transform-sticky-regex":Eve,"transform-strict-mode":Sve,"transform-template-literals":Tve,"transform-typeof-symbol":Pve,"transform-typescript":oxe,"transform-unicode-escapes":ixe,"transform-unicode-regex":dxe,"transform-explicit-resource-management":fxe,"proposal-import-defer":gxe};Sxe["syntax-record-and-tuple"]=mxe,Sxe["proposal-record-and-tuple"]=hxe;var Txe=function(e,t){var r=!1,a="commonjs",n=!1;void 0!==t&&(void 0!==t.loose&&(r=t.loose),void 0!==t.modules&&(a=t.modules),void 0!==t.spec&&(n=t.spec));var s={loose:r};return{plugins:[[Tve,{loose:r,spec:n}],_me,zge,[Jfe,{spec:n}],Yfe,[Pge,s],nye,jve,Dge,[kge,s],[Hge,s],Eve,ixe,dxe,[wve,s],[RY,s],[CJ,s],gge,Pve,Kge,("commonjs"===a||"cjs"===a)&&[zme,s],"systemjs"===a&&[$me,s],"amd"===a&&[Fme,s],"umd"===a&&[eye,s],[Ohe,{async:!1,asyncGenerators:!1}]].filter(Boolean)}},Pxe=function(e,t){void 0===t&&(t={});var r=t,a=r.loose,n=void 0!==a&&a,s=r.decoratorsLegacy,o=void 0!==s&&s,i=r.decoratorsVersion,d=void 0===i?"2018-09":i,c=r.decoratorsBeforeExport;return{plugins:[[RJ,{version:o?"legacy":d,decoratorsBeforeExport:c}],fxe].concat(b([Ype,efe,[Rfe,{loose:n}],[tfe,{loose:n}],[iJ,{loose:n}],Zpe,Cme,afe,[Gfe,{loose:n}],Wfe,dJ,Kfe,zpe,Vfe,[aH,{deprecatedAssertSyntax:!0}]]))}},Axe=function(e,t){var r;void 0===t&&(t={});var a=t,n=a.pipelineProposal,s=void 0===n?"minimal":n,o=a.pipelineTopicToken;return{presets:[[Pxe,t]],plugins:[jY,[qfe,{proposal:s,topicToken:void 0===o?"%":o}],Qpe,Hfe,iH].concat(b([[hxe,{syntaxType:null!=(r=t.recordAndTupleSyntax)?r:"hash"}],nH]))}},kxe=function(e,t){void 0===t&&(t={});var r=t,a=r.loose,n=void 0!==a&&a,s=r.useBuiltIns,o=void 0!==s&&s,i=r.decoratorsLegacy,d=r.decoratorsVersion,c=r.decoratorsBeforeExport,l=r.pipelineProposal,u=r.pipelineTopicToken,p=r.optionalChainingAssignVersion,f=void 0===p?"2023-07":p;return{presets:[[Axe,{loose:n,useBuiltIns:o,decoratorsLegacy:i,decoratorsVersion:d,decoratorsBeforeExport:c,pipelineProposal:l,pipelineTopicToken:u,recordAndTupleSyntax:t.recordAndTupleSyntax}]],plugins:[].concat(b([HV]),[Jpe,TY,[jfe,{version:f}]])}};var Cxe=(void z.env.BABEL_8_BREAKING,FO()),_xe={exports:{}};!function(e,t){t.__esModule=!0,t.default=void 0;var r={allowInsertArrow:!1,specCompliant:!1};t.default=function(e){var t=e.types;return{name:"transform-async-arrows-in-class",visitor:{ArrowFunctionExpression:function(e){e.node.async&&e.findParent(t.isClassMethod)&&e.arrowFunctionToExpression(r)}}}},e.exports=t.default}(_xe,_xe.exports);var Ixe=_xe.exports,Dxe={exports:{}};!function(e,t){t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.types,r=function(e){return"params"===e.parentKey&&e.parentPath&&t.isArrowFunctionExpression(e.parentPath)};return{name:"transform-edge-default-parameters",visitor:{AssignmentPattern:function(e){e.find(r)&&e.parent.shorthand&&(e.parent.shorthand=!1,(e.parent.extra||{}).shorthand=!1,e.scope.rename(e.parent.key.name))}}}},e.exports=t.default}(Dxe,Dxe.exports);var Oxe=Dxe.exports,Nxe={exports:{}};!function(e,t){t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.types;return{name:"transform-edge-function-name",visitor:{FunctionExpression:{exit:function(e){if(!e.node.id&&t.isIdentifier(e.parent.id)){var r=t.cloneNode(e.parent.id),a=e.scope.getBinding(r.name);(null==a?void 0:a.constantViolations.length)&&e.scope.rename(r.name),e.node.id=r}}}}}},e.exports=t.default}(Nxe,Nxe.exports);var Bxe=Nxe.exports,Mxe=function(e){var t=e.types;(0,e.assertVersion)("*");var r={ClassExpression:function(e,t){t.found=!0,e.stop()},Function:function(e){e.skip()}},a=hw({YieldExpression:function(e,t){t.yield=!0,t.await&&e.stop()},AwaitExpression:function(e,t){t.await=!0,t.yield&&e.stop()}});function n(e){if(t.isClassExpression(e.node))return!0;if(t.isFunction(e.node))return!1;var a={found:!1};return e.traverse(r,a),a.found}function s(e){var r,n={yield:t.isYieldExpression(e.node),await:t.isAwaitExpression(e.node)};if(e.traverse(a,n),n.yield){var s=t.functionExpression(null,[],t.blockStatement([t.returnStatement(e.node)]),!0,n.await);r=t.yieldExpression(t.callExpression(t.memberExpression(s,t.identifier("call")),[t.thisExpression(),t.identifier("arguments")]),!0)}else{var o=t.arrowFunctionExpression([],e.node,n.await);r=t.callExpression(o,[]),n.await&&(r=t.awaitExpression(r))}e.replaceWith(r)}return{name:"bugfix-firefox-class-in-computed-class-key",visitor:{Class:function(e){var r=e.node.body.body.some(function(e){return t.isPrivate(e)});if(r)for(var a,o=i(e.get("body.body"));!(a=o()).done;){var d=a.value;"computed"in d.node&&d.node.computed&&n(d.get("key"))&&s(d.get("key"))}}}}},Fxe={exports:{}};!function(e,t){t.__esModule=!0,t.default=void 0;t.default=function(e){var t=e.types;return{name:"transform-tagged-template-caching",visitor:{TaggedTemplateExpression:function(e,r){var a=r.get("processed");if(a||(a=new WeakSet,r.set("processed",a)),a.has(e.node))return e.skip();var n=e.node.quasi.expressions,s=r.get("identity");s||(s=e.scope.getProgramParent().generateDeclaredUidIdentifier("_"),r.set("identity",s),e.scope.getBinding(s.name).path.get("init").replaceWith(t.arrowFunctionExpression([t.identifier("t")],t.identifier("t"))));var o=t.taggedTemplateExpression(t.cloneNode(s),t.templateLiteral(e.node.quasi.quasis,n.map(function(){return t.numericLiteral(0)})));a.add(o);var i=e.scope.getProgramParent().generateDeclaredUidIdentifier("t");e.scope.getBinding(i.name).path.parent.kind="let";var d=t.logicalExpression("||",i,t.assignmentExpression("=",t.cloneNode(i),o)),c=t.callExpression(e.node.tag,[d].concat(b(n)));e.replaceWith(c)}}}},e.exports=t.default}(Fxe,Fxe.exports);var Lxe=Fxe.exports,Uxe={exports:{}};!function(e,t){t.__esModule=!0,t.default=function(e){var t=e.types;return{name:"transform-safari-block-shadowing",visitor:{VariableDeclarator:function(e){var r=e.parent.kind;if("let"===r||"const"===r){var a=e.scope.block;if(!t.isFunction(a)&&!t.isProgram(a))for(var n=t.getOuterBindingIdentifiers(e.node.id),s=0,o=Object.keys(n);s<o.length;s++){var i=o[s],d=e.scope;if(d.hasOwnBinding(i))for(;d=d.parent;){if(d.hasOwnBinding(i)){e.scope.rename(i);break}if(t.isFunction(d.block)||t.isProgram(d.block))break}}}}}}},e.exports=t.default}(Uxe,Uxe.exports);var qxe=Uxe.exports,Gxe={exports:{}};!function(e,t){function r(e){if(e.isVariableDeclaration()){var t=e.getFunctionParent(),r=e.node.declarations[0].id.name;t&&t.scope.hasOwnBinding(r)&&"param"===t.scope.getOwnBinding(r).kind&&e.scope.rename(r)}}t.__esModule=!0,t.default=void 0;t.default=function(){return{name:"transform-safari-for-shadowing",visitor:{ForXStatement:function(e){r(e.get("left"))},ForStatement:function(e){r(e.get("init"))}}}},e.exports=t.default}(Gxe,Gxe.exports);var Wxe=Gxe.exports;var Vxe=function(e){return e.assertVersion("*"),{name:"plugin-bugfix-safari-id-destructuring-collision-in-function-expression",visitor:{FunctionExpression:function(e){var t=function(e){var t=e.node.id;if(!t)return!1;var r=t.name,a=e.scope.getOwnBinding(r);return void 0!==a&&"param"===a.kind&&a.identifier!==a.path.node&&r}(e);if(t){var r=e.scope,a=r.generateUid(t);r.rename(t,a)}}}}};function Hxe(e){return!(dr(e)&&!$e(e))&&(Z(e)||nt(e)||ye(e)?Hxe(e.callee)||e.arguments.some(Hxe):$e(e)?e.expressions.some(Hxe):Ye(e)?Hxe(e.tag)||Hxe(e.quasi):Y(e)?e.elements.some(Hxe):be(e)?e.properties.some(function(e){return xe(e)?Hxe(e.value)||e.computed&&Hxe(e.key):(ve(e),!1)}):me(e)||at(e)?Hxe(e.object)||e.computed&&Hxe(e.property):!(oe(e)||Ie(e)||Oe(e))&&(!Se(e)&&(!we(e)||e.expressions.some(Hxe))))}function zxe(e){var t=e.node.value;t&&Hxe(t)&&(e.node.value=gs(so([],t),[]))}var Kxe=function(e){return e.assertVersion("*"),{name:"plugin-bugfix-safari-class-field-initializer-scope",visitor:{ClassProperty:function(e){zxe(e)},ClassPrivateProperty:function(e){zxe(e)}}}};function Xxe(e){var t=e.findIndex(function(e){return Xe(e)});return t>=0&&t!==e.length-1}var Jxe=function(e){var t,r;e.assertVersion("*");var a=null!=(t=e.assumption("noDocumentAll"))&&t,n=null!=(r=e.assumption("pureGetters"))&&r;return{name:"bugfix-v8-spread-parameters-in-optional-chaining",visitor:{"OptionalCallExpression|OptionalMemberExpression":function(e){(function(e){for(var t=e,r=[];;)if(t.isOptionalMemberExpression())r.push(t.node),t=hK(t.get("object"));else{if(!t.isOptionalCallExpression())break;r.push(t.node),t=hK(t.get("callee"))}for(var a=0;a<r.length;a++){var n=r[a];if(nt(n)&&Xxe(n.arguments)){if(n.optional)return!0;if(at(r[a+1],{optional:!0}))return!0}}return!1})(e)&&xfe(e,{noDocumentAll:a,pureGetters:n})}}}};function Yxe(e){return ie(e)?"name"===e.name||"length"===e.name:!!le(e)&&("name"===e.value||"length"===e.value)}function $xe(e){return(st(e)||ot(e))&&e.static&&!!e.value}var Qxe={ReferencedIdentifier:function(e,t){e.node.name===t.name&&(t.ref(),e.stop())},Scope:function(e,t){var r=t.name;e.scope.hasOwnBinding(r)&&e.skip()}};function Zxe(e,t){return Se(e)||t&&ie(e,{name:t})}var eRe={"ThisExpression|ReferencedIdentifier":function(e,t){Zxe(e.node,t.name)&&(t.ref(),e.stop())},FunctionParent:function(e,t){e.isArrowFunctionExpression()||(t.name&&!e.scope.hasOwnBinding(t.name)&&e.traverse(Qxe,t),e.skip(),e.isMethod()&&e.requeueComputedKeyAndDecorators())}};function tRe(e,t,r){return Lo(e.map(function(e){var a=e.computed||!ie(e.key)?e.key:Cs(e.key.name);return Rs(gs(r.addHelper("defineProperty"),[{type:"ThisExpression"},a,e.value||t.buildUndefinedNode()]))}))}var rRe,aRe=function(e){e.assertVersion("*");var t=e.assumption("setPublicClassFields");return{name:"bugfix-v8-static-class-fields-redefine-readonly",visitor:{Class:function(e){for(var r=function(e){var t=[];if(0===e.length)return t;for(var r=e[0],a=r+1,n=1;n<e.length;n++){if(e[n]<=e[n-1])throw new Error("Internal Babel error: nums must be in ascending order");e[n]===a?a++:(t.push([r,a]),a=(r=e[n])+1)}return t.push([r,a]),t}(t?function(e){for(var t=[],r=e.node.body.body,a=0;a<r.length;a++){var n=r[a];st(n,{static:!0,computed:!1})&&Yxe(n.key)&&t.push(a)}return t}(e):function(e){var t,r=[],a=!1,n=null==(t=e.node.id)?void 0:t.name,s={name:n,ref:function(){return a=!0}};if(n)for(var o,d=i(e.get("body.body"));!(o=d()).done;){var c=o.value;if(c.node.computed&&(c.get("key").traverse(Qxe,s),a))break}for(var l=!1,u=e.node.body.body,p=0;p<u.length;p++){var f=u[p];l||(dt(f)?(a=!0,l=!0):$xe(f)&&(a||(Zxe(f.value,n)?a=!0:e.get("body.body."+p+".value").traverse(eRe,s)),a&&(l=!e.scope.isPure(f.value)))),st(f,{static:!0})&&(l||f.computed||Yxe(f.key))&&r.push(p)}return r}(e)),a=r.length-1;a>=0;a--){var n=y(r[a],2),s=n[0],o=n[1];e.get("body.body")[s].replaceWith(tRe(e.node.body.body.slice(s,o),e.scope,this.file));for(var d=o-1;d>s;d--)e.get("body.body")[d].remove()}}}}},nRe={"bugfix/transform-async-arrows-in-class":function(){return Ixe},"bugfix/transform-edge-default-parameters":function(){return Oxe},"bugfix/transform-edge-function-name":function(){return Bxe},"bugfix/transform-firefox-class-in-computed-class-key":function(){return Mxe},"bugfix/transform-safari-block-shadowing":function(){return qxe},"bugfix/transform-safari-class-field-initializer-scope":function(){return Kxe},"bugfix/transform-safari-for-shadowing":function(){return Wxe},"bugfix/transform-safari-id-destructuring-collision-in-function-expression":function(){return Vxe},"bugfix/transform-tagged-template-caching":function(){return Lxe},"bugfix/transform-v8-spread-parameters-in-optional-chaining":function(){return Jxe},"bugfix/transform-v8-static-class-fields-redefine-readonly":function(){return aRe},"transform-arrow-functions":function(){return Jfe},"transform-async-generator-functions":function(){return GH},"transform-async-to-generator":function(){return Xfe},"transform-block-scoped-functions":function(){return Yfe},"transform-block-scoping":function(){return gge},"transform-class-properties":function(){return iJ},"transform-class-static-block":function(){return dJ},"transform-classes":function(){return Pge},"transform-computed-properties":function(){return kge},"transform-destructuring":function(){return CJ},"transform-dotall-regex":function(){return Cge},"transform-duplicate-keys":function(){return Dge},"transform-duplicate-named-capturing-groups-regex":function(){return zpe},"transform-dynamic-import":function(){return Xpe},"transform-explicit-resource-management":function(){return fxe},"transform-exponentiation-operator":function(){return Oge},"transform-export-namespace-from":function(){return Ype},"transform-for-of":function(){return Hge},"transform-function-name":function(){return zge},"transform-json-strings":function(){return Zpe},"transform-literals":function(){return _me},"transform-logical-assignment-operators":function(){return efe},"transform-member-expression-literals":function(){return Ime},"transform-modules-amd":function(){return Fme},"transform-modules-commonjs":function(){return zme},"transform-modules-systemjs":function(){return $me},"transform-modules-umd":function(){return eye},"transform-named-capturing-groups-regex":function(){return tye},"transform-new-target":function(){return rye},"transform-nullish-coalescing-operator":function(){return tfe},"transform-numeric-separator":function(){return afe},"transform-object-rest-spread":function(){return lfe},"transform-object-super":function(){return nye},"transform-optional-catch-binding":function(){return ufe},"transform-optional-chaining":function(){return Rfe},"transform-parameters":function(){return RY},"transform-private-methods":function(){return Gfe},"transform-private-property-in-object":function(){return Wfe},"transform-property-literals":function(){return oye},"transform-regenerator":function(){return Ohe},"transform-regexp-modifiers":function(){return Vfe},"transform-reserved-words":function(){return Nhe},"transform-shorthand-properties":function(){return jve},"transform-spread":function(){return wve},"transform-sticky-regex":function(){return Eve},"transform-template-literals":function(){return Tve},"transform-typeof-symbol":function(){return Pve},"transform-unicode-escapes":function(){return ixe},"transform-unicode-property-regex":function(){return zfe},"transform-unicode-regex":function(){return dxe},"transform-unicode-sets-regex":function(){return Kfe}},sRe={};Object.assign(sRe,{"bugfix/transform-safari-id-destructuring-collision-in-function-expression":"7.16.0","bugfix/transform-v8-static-class-fields-redefine-readonly":"7.12.0","syntax-import-attributes":"7.22.0","transform-class-static-block":"7.12.0","transform-duplicate-named-capturing-groups-regex":"7.19.0","transform-explicit-resource-management":"7.23.9","transform-private-property-in-object":"7.10.0","transform-regexp-modifiers":"7.19.0"});var oRe=function(e){return function(){return function(){return{manipulateOptions:function(t,r){return r.plugins.push(e)}}}}},iRe={"syntax-async-generators":oRe("asyncGenerators"),"syntax-class-properties":oRe("classProperties"),"syntax-class-static-block":oRe("classStaticBlock"),"syntax-dynamic-import":oRe("dynamicImport"),"syntax-explicit-resource-management":oRe("explicitResourceManagement"),"syntax-export-namespace-from":oRe("exportNamespaceFrom"),"syntax-import-meta":oRe("importMeta"),"syntax-json-strings":oRe("jsonStrings"),"syntax-logical-assignment-operators":oRe("logicalAssignment"),"syntax-nullish-coalescing-operator":oRe("nullishCoalescingOperator"),"syntax-numeric-separator":oRe("numericSeparator"),"syntax-object-rest-spread":oRe("objectRestSpread"),"syntax-optional-catch-binding":oRe("optionalCatchBinding"),"syntax-optional-chaining":oRe("optionalChaining"),"syntax-private-property-in-object":oRe("privateIn"),"syntax-top-level-await":oRe("topLevelAwait"),"syntax-import-assertions":function(){return rH},"syntax-import-attributes":function(){return aH},"syntax-unicode-sets-regex":function(){return function(){return{}}}};Object.assign(nRe,iRe),rRe=new Set(Object.keys(iRe));var dRe={amd:"transform-modules-amd",commonjs:"transform-modules-commonjs",cjs:"transform-modules-commonjs",systemjs:"transform-modules-systemjs",umd:"transform-modules-umd"},cRe=Object.keys,lRe=fRe(kU),uRe=fRe({"bugfix/transform-async-arrows-in-class":{chrome:"55",opera:"42",edge:"15",firefox:"52",safari:"11",node:"7.6",deno:"1",ios:"11",samsung:"6",opera_mobile:"42",electron:"1.6"},"bugfix/transform-edge-default-parameters":{chrome:"49",opera:"36",edge:"18",firefox:"52",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"bugfix/transform-edge-function-name":{chrome:"51",opera:"38",edge:"79",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"bugfix/transform-safari-block-shadowing":{chrome:"49",opera:"36",edge:"12",firefox:"44",safari:"11",node:"6",deno:"1",ie:"11",ios:"11",samsung:"5",opera_mobile:"36",electron:"0.37"},"bugfix/transform-safari-for-shadowing":{chrome:"49",opera:"36",edge:"12",firefox:"4",safari:"11",node:"6",deno:"1",ie:"11",ios:"11",samsung:"5",rhino:"1.7.13",opera_mobile:"36",electron:"0.37"},"bugfix/transform-safari-id-destructuring-collision-in-function-expression":{chrome:"49",opera:"36",edge:"14",firefox:"2",safari:"16.3",node:"6",deno:"1",ios:"16.3",samsung:"5",opera_mobile:"36",electron:"0.37"},"bugfix/transform-tagged-template-caching":{chrome:"41",opera:"28",edge:"12",firefox:"34",safari:"13",node:"4",deno:"1",ios:"13",samsung:"3.4",rhino:"1.7.14",opera_mobile:"28",electron:"0.21"},"bugfix/transform-v8-spread-parameters-in-optional-chaining":{chrome:"91",opera:"77",edge:"91",firefox:"74",safari:"13.1",node:"16.9",deno:"1.9",ios:"13.4",samsung:"16",opera_mobile:"64",electron:"13.0"},"transform-optional-chaining":{chrome:"80",opera:"67",edge:"80",firefox:"74",safari:"13.1",node:"14",deno:"1",ios:"13.4",samsung:"13",rhino:"1.8",opera_mobile:"57",electron:"8.0"},"proposal-optional-chaining":{chrome:"80",opera:"67",edge:"80",firefox:"74",safari:"13.1",node:"14",deno:"1",ios:"13.4",samsung:"13",rhino:"1.8",opera_mobile:"57",electron:"8.0"},"transform-parameters":{chrome:"49",opera:"36",edge:"15",firefox:"52",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"36",electron:"0.37"},"transform-async-to-generator":{chrome:"55",opera:"42",edge:"15",firefox:"52",safari:"10.1",node:"7.6",deno:"1",ios:"10.3",samsung:"6",opera_mobile:"42",electron:"1.6"},"transform-template-literals":{chrome:"41",opera:"28",edge:"13",firefox:"34",safari:"9",node:"4",deno:"1",ios:"9",samsung:"3.4",opera_mobile:"28",electron:"0.21"},"transform-function-name":{chrome:"51",opera:"38",edge:"14",firefox:"53",safari:"10",node:"6.5",deno:"1",ios:"10",samsung:"5",opera_mobile:"41",electron:"1.2"},"transform-block-scoping":{chrome:"50",opera:"37",edge:"14",firefox:"53",safari:"10",node:"6",deno:"1",ios:"10",samsung:"5",opera_mobile:"37",electron:"1.1"}}),pRe=fRe({"transform-async-to-generator":["bugfix/transform-async-arrows-in-class"],"transform-parameters":["bugfix/transform-edge-default-parameters","bugfix/transform-safari-id-destructuring-collision-in-function-expression"],"transform-function-name":["bugfix/transform-edge-function-name"],"transform-block-scoping":["bugfix/transform-safari-block-shadowing","bugfix/transform-safari-for-shadowing"],"transform-template-literals":["bugfix/transform-tagged-template-caching"],"transform-optional-chaining":["bugfix/transform-v8-spread-parameters-in-optional-chaining"],"proposal-optional-chaining":["bugfix/transform-v8-spread-parameters-in-optional-chaining"],"transform-class-properties":["bugfix/transform-v8-static-class-fields-redefine-readonly","bugfix/transform-firefox-class-in-computed-class-key","bugfix/transform-safari-class-field-initializer-scope"],"proposal-class-properties":["bugfix/transform-v8-static-class-fields-redefine-readonly","bugfix/transform-firefox-class-in-computed-class-key","bugfix/transform-safari-class-field-initializer-scope"]});function fRe(e){for(var t,r={},a=i(cRe(e));!(t=a()).done;){var n=t.value;hasOwnProperty.call(nRe,n)&&(r[n]=e[n])}return r}pRe["syntax-import-attributes"]=["syntax-import-assertions"];var gRe={configPath:"configPath",corejs:"corejs",debug:"debug",exclude:"exclude",forceAllTransforms:"forceAllTransforms",ignoreBrowserslistConfig:"ignoreBrowserslistConfig",include:"include",modules:"modules",shippedProposals:"shippedProposals",targets:"targets",useBuiltIns:"useBuiltIns",browserslistEnv:"browserslistEnv"};Object.assign(gRe,{bugfixes:"bugfixes",loose:"loose",spec:"spec"});var mRe,yRe={false:!1,auto:"auto",amd:"amd",commonjs:"commonjs",cjs:"cjs",systemjs:"systemjs",umd:"umd"},hRe={false:!1,entry:"entry",usage:"usage"},bRe={},vRe={},xRe={};var RRe,jRe={};var wRe,ERe,SRe={},TRe={exports:{}};function PRe(){return wRe||(wRe=1,function(e,t){var r;t=e.exports=h,r="object"==typeof z&&z.env&&z.env.NODE_DEBUG&&/\bsemver\b/i.test(z.env.NODE_DEBUG)?function(){var e=Array.prototype.slice.call(arguments,0);e.unshift("SEMVER"),console.log.apply(console,e)}:function(){},t.SEMVER_SPEC_VERSION="2.0.0";var a=256,n=Number.MAX_SAFE_INTEGER||9007199254740991,s=a-6,o=t.re=[],i=t.safeRe=[],d=t.src=[],c=t.tokens={},l=0;function u(e){c[e]=l++}var p="[a-zA-Z0-9-]",f=[["\\s",1],["\\d",a],[p,s]];function g(e){for(var t=0;t<f.length;t++){var r=f[t][0],a=f[t][1];e=e.split(r+"*").join(r+"{0,"+a+"}").split(r+"+").join(r+"{1,"+a+"}")}return e}u("NUMERICIDENTIFIER"),d[c.NUMERICIDENTIFIER]="0|[1-9]\\d*",u("NUMERICIDENTIFIERLOOSE"),d[c.NUMERICIDENTIFIERLOOSE]="\\d+",u("NONNUMERICIDENTIFIER"),d[c.NONNUMERICIDENTIFIER]="\\d*[a-zA-Z-]"+p+"*",u("MAINVERSION"),d[c.MAINVERSION]="("+d[c.NUMERICIDENTIFIER]+")\\.("+d[c.NUMERICIDENTIFIER]+")\\.("+d[c.NUMERICIDENTIFIER]+")",u("MAINVERSIONLOOSE"),d[c.MAINVERSIONLOOSE]="("+d[c.NUMERICIDENTIFIERLOOSE]+")\\.("+d[c.NUMERICIDENTIFIERLOOSE]+")\\.("+d[c.NUMERICIDENTIFIERLOOSE]+")",u("PRERELEASEIDENTIFIER"),d[c.PRERELEASEIDENTIFIER]="(?:"+d[c.NUMERICIDENTIFIER]+"|"+d[c.NONNUMERICIDENTIFIER]+")",u("PRERELEASEIDENTIFIERLOOSE"),d[c.PRERELEASEIDENTIFIERLOOSE]="(?:"+d[c.NUMERICIDENTIFIERLOOSE]+"|"+d[c.NONNUMERICIDENTIFIER]+")",u("PRERELEASE"),d[c.PRERELEASE]="(?:-("+d[c.PRERELEASEIDENTIFIER]+"(?:\\."+d[c.PRERELEASEIDENTIFIER]+")*))",u("PRERELEASELOOSE"),d[c.PRERELEASELOOSE]="(?:-?("+d[c.PRERELEASEIDENTIFIERLOOSE]+"(?:\\."+d[c.PRERELEASEIDENTIFIERLOOSE]+")*))",u("BUILDIDENTIFIER"),d[c.BUILDIDENTIFIER]=p+"+",u("BUILD"),d[c.BUILD]="(?:\\+("+d[c.BUILDIDENTIFIER]+"(?:\\."+d[c.BUILDIDENTIFIER]+")*))",u("FULL"),u("FULLPLAIN"),d[c.FULLPLAIN]="v?"+d[c.MAINVERSION]+d[c.PRERELEASE]+"?"+d[c.BUILD]+"?",d[c.FULL]="^"+d[c.FULLPLAIN]+"$",u("LOOSEPLAIN"),d[c.LOOSEPLAIN]="[v=\\s]*"+d[c.MAINVERSIONLOOSE]+d[c.PRERELEASELOOSE]+"?"+d[c.BUILD]+"?",u("LOOSE"),d[c.LOOSE]="^"+d[c.LOOSEPLAIN]+"$",u("GTLT"),d[c.GTLT]="((?:<|>)?=?)",u("XRANGEIDENTIFIERLOOSE"),d[c.XRANGEIDENTIFIERLOOSE]=d[c.NUMERICIDENTIFIERLOOSE]+"|x|X|\\*",u("XRANGEIDENTIFIER"),d[c.XRANGEIDENTIFIER]=d[c.NUMERICIDENTIFIER]+"|x|X|\\*",u("XRANGEPLAIN"),d[c.XRANGEPLAIN]="[v=\\s]*("+d[c.XRANGEIDENTIFIER]+")(?:\\.("+d[c.XRANGEIDENTIFIER]+")(?:\\.("+d[c.XRANGEIDENTIFIER]+")(?:"+d[c.PRERELEASE]+")?"+d[c.BUILD]+"?)?)?",u("XRANGEPLAINLOOSE"),d[c.XRANGEPLAINLOOSE]="[v=\\s]*("+d[c.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+d[c.XRANGEIDENTIFIERLOOSE]+")(?:\\.("+d[c.XRANGEIDENTIFIERLOOSE]+")(?:"+d[c.PRERELEASELOOSE]+")?"+d[c.BUILD]+"?)?)?",u("XRANGE"),d[c.XRANGE]="^"+d[c.GTLT]+"\\s*"+d[c.XRANGEPLAIN]+"$",u("XRANGELOOSE"),d[c.XRANGELOOSE]="^"+d[c.GTLT]+"\\s*"+d[c.XRANGEPLAINLOOSE]+"$",u("COERCE"),d[c.COERCE]="(^|[^\\d])(\\d{1,16})(?:\\.(\\d{1,16}))?(?:\\.(\\d{1,16}))?(?:$|[^\\d])",u("COERCERTL"),o[c.COERCERTL]=new RegExp(d[c.COERCE],"g"),i[c.COERCERTL]=new RegExp(g(d[c.COERCE]),"g"),u("LONETILDE"),d[c.LONETILDE]="(?:~>?)",u("TILDETRIM"),d[c.TILDETRIM]="(\\s*)"+d[c.LONETILDE]+"\\s+",o[c.TILDETRIM]=new RegExp(d[c.TILDETRIM],"g"),i[c.TILDETRIM]=new RegExp(g(d[c.TILDETRIM]),"g");u("TILDE"),d[c.TILDE]="^"+d[c.LONETILDE]+d[c.XRANGEPLAIN]+"$",u("TILDELOOSE"),d[c.TILDELOOSE]="^"+d[c.LONETILDE]+d[c.XRANGEPLAINLOOSE]+"$",u("LONECARET"),d[c.LONECARET]="(?:\\^)",u("CARETTRIM"),d[c.CARETTRIM]="(\\s*)"+d[c.LONECARET]+"\\s+",o[c.CARETTRIM]=new RegExp(d[c.CARETTRIM],"g"),i[c.CARETTRIM]=new RegExp(g(d[c.CARETTRIM]),"g");u("CARET"),d[c.CARET]="^"+d[c.LONECARET]+d[c.XRANGEPLAIN]+"$",u("CARETLOOSE"),d[c.CARETLOOSE]="^"+d[c.LONECARET]+d[c.XRANGEPLAINLOOSE]+"$",u("COMPARATORLOOSE"),d[c.COMPARATORLOOSE]="^"+d[c.GTLT]+"\\s*("+d[c.LOOSEPLAIN]+")$|^$",u("COMPARATOR"),d[c.COMPARATOR]="^"+d[c.GTLT]+"\\s*("+d[c.FULLPLAIN]+")$|^$",u("COMPARATORTRIM"),d[c.COMPARATORTRIM]="(\\s*)"+d[c.GTLT]+"\\s*("+d[c.LOOSEPLAIN]+"|"+d[c.XRANGEPLAIN]+")",o[c.COMPARATORTRIM]=new RegExp(d[c.COMPARATORTRIM],"g"),i[c.COMPARATORTRIM]=new RegExp(g(d[c.COMPARATORTRIM]),"g");u("HYPHENRANGE"),d[c.HYPHENRANGE]="^\\s*("+d[c.XRANGEPLAIN]+")\\s+-\\s+("+d[c.XRANGEPLAIN]+")\\s*$",u("HYPHENRANGELOOSE"),d[c.HYPHENRANGELOOSE]="^\\s*("+d[c.XRANGEPLAINLOOSE]+")\\s+-\\s+("+d[c.XRANGEPLAINLOOSE]+")\\s*$",u("STAR"),d[c.STAR]="(<|>)?=?\\s*\\*";for(var m=0;m<l;m++)r(m,d[m]),o[m]||(o[m]=new RegExp(d[m]),i[m]=new RegExp(g(d[m])));function y(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof h)return e;if("string"!=typeof e)return null;if(e.length>a)return null;if(!(t.loose?i[c.LOOSE]:i[c.FULL]).test(e))return null;try{return new h(e,t)}catch(e){return null}}function h(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof h){if(e.loose===t.loose)return e;e=e.version}else if("string"!=typeof e)throw new TypeError("Invalid Version: "+e);if(e.length>a)throw new TypeError("version is longer than "+a+" characters");if(!(this instanceof h))return new h(e,t);r("SemVer",e,t),this.options=t,this.loose=!!t.loose;var s=e.trim().match(t.loose?i[c.LOOSE]:i[c.FULL]);if(!s)throw new TypeError("Invalid Version: "+e);if(this.raw=e,this.major=+s[1],this.minor=+s[2],this.patch=+s[3],this.major>n||this.major<0)throw new TypeError("Invalid major version");if(this.minor>n||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>n||this.patch<0)throw new TypeError("Invalid patch version");s[4]?this.prerelease=s[4].split(".").map(function(e){if(/^[0-9]+$/.test(e)){var t=+e;if(t>=0&&t<n)return t}return e}):this.prerelease=[],this.build=s[5]?s[5].split("."):[],this.format()}t.parse=y,t.valid=function(e,t){var r=y(e,t);return r?r.version:null},t.clean=function(e,t){var r=y(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null},t.SemVer=h,h.prototype.format=function(){return this.version=this.major+"."+this.minor+"."+this.patch,this.prerelease.length&&(this.version+="-"+this.prerelease.join(".")),this.version},h.prototype.toString=function(){return this.version},h.prototype.compare=function(e){return r("SemVer.compare",this.version,this.options,e),e instanceof h||(e=new h(e,this.options)),this.compareMain(e)||this.comparePre(e)},h.prototype.compareMain=function(e){return e instanceof h||(e=new h(e,this.options)),v(this.major,e.major)||v(this.minor,e.minor)||v(this.patch,e.patch)},h.prototype.comparePre=function(e){if(e instanceof h||(e=new h(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;var t=0;do{var a=this.prerelease[t],n=e.prerelease[t];if(r("prerelease compare",t,a,n),void 0===a&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(a!==n)return v(a,n)}while(++t)},h.prototype.compareBuild=function(e){e instanceof h||(e=new h(e,this.options));var t=0;do{var a=this.build[t],n=e.build[t];if(r("prerelease compare",t,a,n),void 0===a&&void 0===n)return 0;if(void 0===n)return 1;if(void 0===a)return-1;if(a!==n)return v(a,n)}while(++t)},h.prototype.inc=function(e,t){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",t);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",t);break;case"prepatch":this.prerelease.length=0,this.inc("patch",t),this.inc("pre",t);break;case"prerelease":0===this.prerelease.length&&this.inc("patch",t),this.inc("pre",t);break;case"major":0===this.minor&&0===this.patch&&0!==this.prerelease.length||this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":0===this.patch&&0!==this.prerelease.length||this.minor++,this.patch=0,this.prerelease=[];break;case"patch":0===this.prerelease.length&&this.patch++,this.prerelease=[];break;case"pre":if(0===this.prerelease.length)this.prerelease=[0];else{for(var r=this.prerelease.length;--r>=0;)"number"==typeof this.prerelease[r]&&(this.prerelease[r]++,r=-2);-1===r&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error("invalid increment argument: "+e)}return this.format(),this.raw=this.version,this},t.inc=function(e,t,r,a){"string"==typeof r&&(a=r,r=void 0);try{return new h(e,r).inc(t,a).version}catch(e){return null}},t.diff=function(e,t){if(w(e,t))return null;var r=y(e),a=y(t),n="";if(r.prerelease.length||a.prerelease.length){n="pre";var s="prerelease"}for(var o in r)if(("major"===o||"minor"===o||"patch"===o)&&r[o]!==a[o])return n+o;return s},t.compareIdentifiers=v;var b=/^[0-9]+$/;function v(e,t){var r=b.test(e),a=b.test(t);return r&&a&&(e=+e,t=+t),e===t?0:r&&!a?-1:a&&!r?1:e<t?-1:1}function x(e,t,r){return new h(e,r).compare(new h(t,r))}function R(e,t,r){return x(e,t,r)>0}function j(e,t,r){return x(e,t,r)<0}function w(e,t,r){return 0===x(e,t,r)}function E(e,t,r){return 0!==x(e,t,r)}function S(e,t,r){return x(e,t,r)>=0}function T(e,t,r){return x(e,t,r)<=0}function P(e,t,r,a){switch(t){case"===":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e===r;case"!==":return"object"==typeof e&&(e=e.version),"object"==typeof r&&(r=r.version),e!==r;case"":case"=":case"==":return w(e,r,a);case"!=":return E(e,r,a);case">":return R(e,r,a);case">=":return S(e,r,a);case"<":return j(e,r,a);case"<=":return T(e,r,a);default:throw new TypeError("Invalid operator: "+t)}}function A(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof A){if(e.loose===!!t.loose)return e;e=e.value}if(!(this instanceof A))return new A(e,t);e=e.trim().split(/\s+/).join(" "),r("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===k?this.value="":this.value=this.operator+this.semver.version,r("comp",this)}t.rcompareIdentifiers=function(e,t){return v(t,e)},t.major=function(e,t){return new h(e,t).major},t.minor=function(e,t){return new h(e,t).minor},t.patch=function(e,t){return new h(e,t).patch},t.compare=x,t.compareLoose=function(e,t){return x(e,t,!0)},t.compareBuild=function(e,t,r){var a=new h(e,r),n=new h(t,r);return a.compare(n)||a.compareBuild(n)},t.rcompare=function(e,t,r){return x(t,e,r)},t.sort=function(e,r){return e.sort(function(e,a){return t.compareBuild(e,a,r)})},t.rsort=function(e,r){return e.sort(function(e,a){return t.compareBuild(a,e,r)})},t.gt=R,t.lt=j,t.eq=w,t.neq=E,t.gte=S,t.lte=T,t.cmp=P,t.Comparator=A;var k={};function C(e,t){if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),e instanceof C)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new C(e.raw,t);if(e instanceof A)return new C(e.value,t);if(!(this instanceof C))return new C(e,t);if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(function(e){return this.parseRange(e.trim())},this).filter(function(e){return e.length}),!this.set.length)throw new TypeError("Invalid SemVer Range: "+this.raw);this.format()}function _(e,t){for(var r=!0,a=e.slice(),n=a.pop();r&&a.length;)r=a.every(function(e){return n.intersects(e,t)}),n=a.pop();return r}function I(e){return!e||"x"===e.toLowerCase()||"*"===e}function D(e,t,r,a,n,s,o,i,d,c,l,u,p){return((t=I(r)?"":I(a)?">="+r+".0.0":I(n)?">="+r+"."+a+".0":">="+t)+" "+(i=I(d)?"":I(c)?"<"+(+d+1)+".0.0":I(l)?"<"+d+"."+(+c+1)+".0":u?"<="+d+"."+c+"."+l+"-"+u:"<="+i)).trim()}function O(e,t,a){for(var n=0;n<e.length;n++)if(!e[n].test(t))return!1;if(t.prerelease.length&&!a.includePrerelease){for(n=0;n<e.length;n++)if(r(e[n].semver),e[n].semver!==k&&e[n].semver.prerelease.length>0){var s=e[n].semver;if(s.major===t.major&&s.minor===t.minor&&s.patch===t.patch)return!0}return!1}return!0}function N(e,t,r){try{t=new C(t,r)}catch(e){return!1}return t.test(e)}function B(e,t,r,a){var n,s,o,i,d;switch(e=new h(e,a),t=new C(t,a),r){case">":n=R,s=T,o=j,i=">",d=">=";break;case"<":n=j,s=S,o=R,i="<",d="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(N(e,t,a))return!1;for(var c=0;c<t.set.length;++c){var l=t.set[c],u=null,p=null;if(l.forEach(function(e){e.semver===k&&(e=new A(">=0.0.0")),u=u||e,p=p||e,n(e.semver,u.semver,a)?u=e:o(e.semver,p.semver,a)&&(p=e)}),u.operator===i||u.operator===d)return!1;if((!p.operator||p.operator===i)&&s(e,p.semver))return!1;if(p.operator===d&&o(e,p.semver))return!1}return!0}A.prototype.parse=function(e){var t=this.options.loose?i[c.COMPARATORLOOSE]:i[c.COMPARATOR],r=e.match(t);if(!r)throw new TypeError("Invalid comparator: "+e);this.operator=void 0!==r[1]?r[1]:"","="===this.operator&&(this.operator=""),r[2]?this.semver=new h(r[2],this.options.loose):this.semver=k},A.prototype.toString=function(){return this.value},A.prototype.test=function(e){if(r("Comparator.test",e,this.options.loose),this.semver===k||e===k)return!0;if("string"==typeof e)try{e=new h(e,this.options)}catch(e){return!1}return P(e,this.operator,this.semver,this.options)},A.prototype.intersects=function(e,t){if(!(e instanceof A))throw new TypeError("a Comparator is required");var r;if(t&&"object"==typeof t||(t={loose:!!t,includePrerelease:!1}),""===this.operator)return""===this.value||(r=new C(e.value,t),N(this.value,r,t));if(""===e.operator)return""===e.value||(r=new C(this.value,t),N(e.semver,r,t));var a=!(">="!==this.operator&&">"!==this.operator||">="!==e.operator&&">"!==e.operator),n=!("<="!==this.operator&&"<"!==this.operator||"<="!==e.operator&&"<"!==e.operator),s=this.semver.version===e.semver.version,o=!(">="!==this.operator&&"<="!==this.operator||">="!==e.operator&&"<="!==e.operator),i=P(this.semver,"<",e.semver,t)&&(">="===this.operator||">"===this.operator)&&("<="===e.operator||"<"===e.operator),d=P(this.semver,">",e.semver,t)&&("<="===this.operator||"<"===this.operator)&&(">="===e.operator||">"===e.operator);return a||n||s&&o||i||d},t.Range=C,C.prototype.format=function(){return this.range=this.set.map(function(e){return e.join(" ").trim()}).join("||").trim(),this.range},C.prototype.toString=function(){return this.range},C.prototype.parseRange=function(e){var t=this.options.loose,a=t?i[c.HYPHENRANGELOOSE]:i[c.HYPHENRANGE];e=e.replace(a,D),r("hyphen replace",e),e=e.replace(i[c.COMPARATORTRIM],"$1$2$3"),r("comparator trim",e,i[c.COMPARATORTRIM]),e=(e=(e=e.replace(i[c.TILDETRIM],"$1~")).replace(i[c.CARETTRIM],"$1^")).split(/\s+/).join(" ");var n=t?i[c.COMPARATORLOOSE]:i[c.COMPARATOR],s=e.split(" ").map(function(e){return function(e,t){return r("comp",e,t),e=function(e,t){return e.trim().split(/\s+/).map(function(e){return function(e,t){r("caret",e,t);var a=t.loose?i[c.CARETLOOSE]:i[c.CARET];return e.replace(a,function(t,a,n,s,o){var i;return r("caret",e,t,a,n,s,o),I(a)?i="":I(n)?i=">="+a+".0.0 <"+(+a+1)+".0.0":I(s)?i="0"===a?">="+a+"."+n+".0 <"+a+"."+(+n+1)+".0":">="+a+"."+n+".0 <"+(+a+1)+".0.0":o?(r("replaceCaret pr",o),i="0"===a?"0"===n?">="+a+"."+n+"."+s+"-"+o+" <"+a+"."+n+"."+(+s+1):">="+a+"."+n+"."+s+"-"+o+" <"+a+"."+(+n+1)+".0":">="+a+"."+n+"."+s+"-"+o+" <"+(+a+1)+".0.0"):(r("no pr"),i="0"===a?"0"===n?">="+a+"."+n+"."+s+" <"+a+"."+n+"."+(+s+1):">="+a+"."+n+"."+s+" <"+a+"."+(+n+1)+".0":">="+a+"."+n+"."+s+" <"+(+a+1)+".0.0"),r("caret return",i),i})}(e,t)}).join(" ")}(e,t),r("caret",e),e=function(e,t){return e.trim().split(/\s+/).map(function(e){return function(e,t){var a=t.loose?i[c.TILDELOOSE]:i[c.TILDE];return e.replace(a,function(t,a,n,s,o){var i;return r("tilde",e,t,a,n,s,o),I(a)?i="":I(n)?i=">="+a+".0.0 <"+(+a+1)+".0.0":I(s)?i=">="+a+"."+n+".0 <"+a+"."+(+n+1)+".0":o?(r("replaceTilde pr",o),i=">="+a+"."+n+"."+s+"-"+o+" <"+a+"."+(+n+1)+".0"):i=">="+a+"."+n+"."+s+" <"+a+"."+(+n+1)+".0",r("tilde return",i),i})}(e,t)}).join(" ")}(e,t),r("tildes",e),e=function(e,t){return r("replaceXRanges",e,t),e.split(/\s+/).map(function(e){return function(e,t){e=e.trim();var a=t.loose?i[c.XRANGELOOSE]:i[c.XRANGE];return e.replace(a,function(a,n,s,o,i,d){r("xRange",e,a,n,s,o,i,d);var c=I(s),l=c||I(o),u=l||I(i),p=u;return"="===n&&p&&(n=""),d=t.includePrerelease?"-0":"",c?a=">"===n||"<"===n?"<0.0.0-0":"*":n&&p?(l&&(o=0),i=0,">"===n?(n=">=",l?(s=+s+1,o=0,i=0):(o=+o+1,i=0)):"<="===n&&(n="<",l?s=+s+1:o=+o+1),a=n+s+"."+o+"."+i+d):l?a=">="+s+".0.0"+d+" <"+(+s+1)+".0.0"+d:u&&(a=">="+s+"."+o+".0"+d+" <"+s+"."+(+o+1)+".0"+d),r("xRange return",a),a})}(e,t)}).join(" ")}(e,t),r("xrange",e),e=function(e,t){return r("replaceStars",e,t),e.trim().replace(i[c.STAR],"")}(e,t),r("stars",e),e}(e,this.options)},this).join(" ").split(/\s+/);return this.options.loose&&(s=s.filter(function(e){return!!e.match(n)})),s=s.map(function(e){return new A(e,this.options)},this)},C.prototype.intersects=function(e,t){if(!(e instanceof C))throw new TypeError("a Range is required");return this.set.some(function(r){return _(r,t)&&e.set.some(function(e){return _(e,t)&&r.every(function(r){return e.every(function(e){return r.intersects(e,t)})})})})},t.toComparators=function(e,t){return new C(e,t).set.map(function(e){return e.map(function(e){return e.value}).join(" ").trim().split(" ")})},C.prototype.test=function(e){if(!e)return!1;if("string"==typeof e)try{e=new h(e,this.options)}catch(e){return!1}for(var t=0;t<this.set.length;t++)if(O(this.set[t],e,this.options))return!0;return!1},t.satisfies=N,t.maxSatisfying=function(e,t,r){var a=null,n=null;try{var s=new C(t,r)}catch(e){return null}return e.forEach(function(e){s.test(e)&&(a&&-1!==n.compare(e)||(n=new h(a=e,r)))}),a},t.minSatisfying=function(e,t,r){var a=null,n=null;try{var s=new C(t,r)}catch(e){return null}return e.forEach(function(e){s.test(e)&&(a&&1!==n.compare(e)||(n=new h(a=e,r)))}),a},t.minVersion=function(e,t){e=new C(e,t);var r=new h("0.0.0");if(e.test(r))return r;if(r=new h("0.0.0-0"),e.test(r))return r;r=null;for(var a=0;a<e.set.length;++a){e.set[a].forEach(function(e){var t=new h(e.semver.version);switch(e.operator){case">":0===t.prerelease.length?t.patch++:t.prerelease.push(0),t.raw=t.format();case"":case">=":r&&!R(r,t)||(r=t);break;case"<":case"<=":break;default:throw new Error("Unexpected operation: "+e.operator)}})}if(r&&e.test(r))return r;return null},t.validRange=function(e,t){try{return new C(e,t).range||"*"}catch(e){return null}},t.ltr=function(e,t,r){return B(e,t,"<",r)},t.gtr=function(e,t,r){return B(e,t,">",r)},t.outside=B,t.prerelease=function(e,t){var r=y(e,t);return r&&r.prerelease.length?r.prerelease:null},t.intersects=function(e,t,r){return e=new C(e,r),t=new C(t,r),e.intersects(t)},t.coerce=function(e,t){if(e instanceof h)return e;"number"==typeof e&&(e=String(e));if("string"!=typeof e)return null;var r=null;if((t=t||{}).rtl){for(var a;(a=i[c.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)r&&a.index+a[0].length===r.index+r[0].length||(r=a),i[c.COERCERTL].lastIndex=a.index+a[1].length+a[2].length;i[c.COERCERTL].lastIndex=-1}else r=e.match(i[c.COERCE]);if(null===r)return null;return y(r[2]+"."+(r[3]||"0")+"."+(r[4]||"0"),t)}}(TRe,TRe.exports)),TRe.exports}var ARe,kRe,CRe,_Re,IRe={},DRe={};function ORe(){if(_Re)return DRe;_Re=1,DRe.__esModule=!0,DRe.createUtilsGetter=function(e){return function(t){var n=t.findParent(function(e){return e.isProgram()});return{injectGlobalImport:function(t,s){e.storeAnonymous(n,t,s,function(e,t){return e?a.statement.ast(ARe||(ARe=h(["require(",")"])),t):r.importDeclaration([],t)})},injectNamedImport:function(t,s,i,d){return void 0===i&&(i=s),e.storeNamed(n,t,s,d,function(e,t,s){var d=n.scope.generateUidIdentifier(i);return{node:e?o(a.statement.ast(kRe||(kRe=h(["\n var "," = require(",").","\n "])),d,t,s)):r.importDeclaration([r.importSpecifier(d,s)],t),name:d.name}})},injectDefaultImport:function(t,s,i){return void 0===s&&(s=t),e.storeNamed(n,t,"default",i,function(e,t){var i=n.scope.generateUidIdentifier(s);return{node:e?o(a.statement.ast(CRe||(CRe=h(["var "," = require(",")"])),i,t)):r.importDeclaration([r.importDefaultSpecifier(i)],t),name:i.name}})}}}},DRe.getImportSource=function(e){var t=e.node;if(0===t.specifiers.length)return t.source.value},DRe.getRequireSource=function(e){var t=e.node;if(!r.isExpressionStatement(t))return;var a=t.expression;if(r.isCallExpression(a)&&r.isIdentifier(a.callee)&&"require"===a.callee.name&&1===a.arguments.length&&r.isStringLiteral(a.arguments[0]))return a.arguments[0].value},DRe.has=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},DRe.intersection=function(e,t){var r=new Set;return e.forEach(function(e){return t.has(e)&&r.add(e)}),r},DRe.resolveKey=function e(t,r){void 0===r&&(r=!1);var a=t.scope;if(t.isStringLiteral())return t.node.value;var n=t.isIdentifier();if(n&&!r&&!t.parent.computed)return t.node.name;if(r&&t.isMemberExpression()&&t.get("object").isIdentifier({name:"Symbol"})&&!a.hasBinding("Symbol",!0)){var s=e(t.get("property"),t.node.computed);if(s)return"Symbol."+s}if(n?a.hasBinding(t.node.name,!0):t.isPure()){var o=t.evaluate().value;if("string"==typeof o)return o}},DRe.resolveSource=function(e){if(e.isMemberExpression()&&e.get("property").isIdentifier({name:"prototype"})){var t=s(e.get("object"));return t?{id:t,placement:"prototype"}:{id:null,placement:null}}var r=s(e);if(r)return{id:r,placement:"static"};var a=n(e);switch(null==a?void 0:a.type){case"RegExpLiteral":return{id:"RegExp",placement:"prototype"};case"FunctionExpression":return{id:"Function",placement:"prototype"};case"StringLiteral":return{id:"String",placement:"prototype"};case"NumberLiteral":return{id:"Number",placement:"prototype"};case"BooleanLiteral":return{id:"Boolean",placement:"prototype"};case"ObjectExpression":return{id:"Object",placement:"prototype"};case"ArrayExpression":return{id:"Array",placement:"prototype"}}return{id:null,placement:null}};var e=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o}(e,t)}(rbe);var t=e.default||e,r=t.types,a=t.template;function n(e,t){if(void 0===t&&(t=new Set),!t.has(e)){if(t.add(e),e.isVariableDeclarator()){if(e.get("id").isIdentifier())return n(e.get("init"),t)}else if(e.isReferencedIdentifier()){var r=e.scope.getBinding(e.node.name);if(!r)return e;if(!r.constant)return;return n(r.path,t)}return e}}function s(e){if(e.isIdentifier()&&!e.scope.hasBinding(e.node.name,!0))return e.node.name;var t=n(e);return null!=t&&t.isIdentifier()?t.node.name:void 0}function o(e){return e._blockHoist=3,e}return DRe}var NRe,BRe={};var MRe,FRe={};var LRe,URe={};function qRe(){if(LRe)return URe;LRe=1,URe.__esModule=!0,URe.applyMissingDependenciesDefaults=function(e,t){var r=e.missingDependencies,a=void 0===r?{}:r;if(!1===a)return!1;var n=t.caller(function(e){return null==e?void 0:e.name}),s=a.log,o=void 0===s?"deferred":s,i=a.inject,d=void 0===i?"rollup-plugin-babel"===n?"throw":"import":i,c=a.all,l=void 0!==c&&c;return{log:o,inject:d,all:l}},URe.validateIncludeExclude=function(r,a,n,s){var o,d=function(e){var t=function(e){if(e instanceof RegExp)return e;try{return new RegExp("^"+e+"$")}catch(e){return null}}(e);if(!t)return!1;for(var r,n=!1,s=i(a.keys());!(r=s()).done;){var d=r.value;t.test(d)&&(n=!0,o.add(d))}return!n},c=o=new Set,l=Array.from(n).filter(d),u=o=new Set,p=Array.from(s).filter(d),f=(0,e.intersection)(c,u);if(f.size>0||l.length>0||p.length>0)throw new Error('Error while validating the "'+r+'" provider options:\n'+t("include",l)+t("exclude",p)+function(e){return e.size?' - The following polyfills were matched both by "include" and "exclude" patterns:\n'+Array.from(e,function(e){return" "+e+"\n"}).join(""):""}(f));return{include:c,exclude:u}};var e=ORe();function t(e,t){return t.length?' - The following "'+e+"\" patterns didn't match any polyfill:\n"+t.map(function(e){return" "+String(e)+"\n"}).join(""):""}return URe}var GRe,WRe={},VRe={};function HRe(){if(GRe)return VRe;GRe=1,VRe.__esModule=!0,VRe.default=void 0;var e=ORe();function t(e){if(e.removed)return!0;if(!e.parentPath)return!1;var r,a;if(e.listKey){if(null==(r=e.parentPath.node)||null==(r=r[e.listKey])||!r.includes(e.node))return!0}else if((null==(a=e.parentPath.node)?void 0:a[e.key])!==e.node)return!0;return t(e.parentPath)}return VRe.default=function(r){function a(e,t,a,n){return r({kind:"property",object:e,key:t,placement:a},n)}function n(e){var t=e.node.name;e.scope.getBindingIdentifier(t)||r({kind:"global",name:t},e)}function s(t){var r=(0,e.resolveKey)(t.get("property"),t.node.computed);return{key:r,handleAsMemberExpression:!!r&&"prototype"!==r}}return{ReferencedIdentifier:function(e){var t=e.parentPath;t.isMemberExpression({object:e.node})&&s(t).handleAsMemberExpression||n(e)},"MemberExpression|OptionalMemberExpression":function(r){var o=s(r),i=o.key;if(o.handleAsMemberExpression){var d=r.get("object"),c=d.isIdentifier();if(c){var l=d.scope.getBinding(d.node.name);if(l){if(l.path.isImportNamespaceSpecifier())return;c=!1}}var u=(0,e.resolveSource)(d),p=a(u.id,i,u.placement,r);p||(p=!c||r.shouldSkip||d.shouldSkip||t(d)),p||n(d)}},ObjectPattern:function(t){var r,n=t.parentPath,s=t.parent;if(n.isVariableDeclarator())r=n.get("init");else if(n.isAssignmentExpression())r=n.get("right");else if(n.isFunction()){var o=n.parentPath;(o.isCallExpression()||o.isNewExpression())&&o.node.callee===s&&(r=o.get("arguments")[t.key])}var d=null,c=null;if(r){var l=(0,e.resolveSource)(r);d=l.id,c=l.placement}for(var u,p=i(t.get("properties"));!(u=p()).done;){var f=u.value;if(f.isObjectProperty()){var g=(0,e.resolveKey)(f.get("key"));g&&a(d,g,c,f)}}},BinaryExpression:function(t){if("in"===t.node.operator){var a=(0,e.resolveSource)(t.get("right")),n=(0,e.resolveKey)(t.get("left"),!0);n&&r({kind:"in",object:a.id,key:n,placement:a.placement},t)}}}},VRe}var zRe,KRe,XRe={};function JRe(){if(KRe)return WRe;KRe=1,WRe.__esModule=!0,WRe.usage=WRe.entry=void 0;var e=r(HRe());WRe.usage=e.default;var t=r(function(){if(zRe)return XRe;zRe=1,XRe.__esModule=!0,XRe.default=void 0;var e=ORe();return XRe.default=function(t){return{ImportDeclaration:function(r){var a=(0,e.getImportSource)(r);a&&t({kind:"import",source:a},r)},Program:function(r){r.get("body").forEach(function(r){var a=(0,e.getRequireSource)(r);a&&t({kind:"import",source:a},r)})}}},XRe}());function r(e){return e&&e.__esModule?e:{default:e}}return WRe.entry=t.default,WRe}var YRe,$Re={};var QRe,ZRe,eje,tje,rje,aje={};function nje(){if(ZRe)return IRe;ZRe=1,IRe.__esModule=!0,IRe.default=function(o){return(0,e.declare)(function(e,p,f){e.assertVersion("^7.0.0 || ^8.0.0-alpha.0");var m,y=e.traverse,h=(0,s.applyMissingDependenciesDefaults)(p,e),b=function(e,n,o,i,d,p){var f,m,y,h,b,v=function(e,t){var r,a,n=e.method,s=e.targets,o=e.ignoreBrowserslistConfig,i=e.configPath,d=e.debug,c=e.shouldInjectPolyfill,l=e.absoluteImports,p=function(e,t){if(null==e)return{};var r={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;r[a]=e[a]}return r}(e,u);if(f=e,0===Object.keys(f).length)throw new Error('This plugin requires options, for example:\n {\n "plugins": [\n ["<plugin name>", { method: "usage-pure" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md');var f;if("usage-global"===n)r="usageGlobal";else if("entry-global"===n)r="entryGlobal";else{if("usage-pure"!==n)throw"string"!=typeof n?new Error(".method must be a string"):new Error('.method must be one of "entry-global", "usage-global" or "usage-pure" (received '+JSON.stringify(n)+")");r="usagePure"}if("function"==typeof c){if(e.include||e.exclude)throw new Error(".include and .exclude are not supported when using the .shouldInjectPolyfill function.")}else if(null!=c)throw new Error(".shouldInjectPolyfill must be a function, or undefined (received "+JSON.stringify(c)+")");if(null!=l&&"boolean"!=typeof l&&"string"!=typeof l)throw new Error(".absoluteImports must be a boolean, a string, or undefined (received "+JSON.stringify(l)+")");if(s||i||o){var m="string"==typeof s||Array.isArray(s)?{browsers:s}:s;a=g(m,{ignoreBrowserslistConfig:o,configPath:i})}else a=t.targets();return{method:n,methodName:r,targets:a,absoluteImports:null!=l&&l,shouldInjectPolyfill:c,debug:!!d,providerOptions:p}}(n,p),x=v.method,R=v.methodName,j=v.targets,w=v.debug,E=v.shouldInjectPolyfill,S=v.providerOptions,T=v.absoluteImports,P=(0,r.createUtilsGetter)(new a.default(function(e){return c.resolve(i,e,T)},function(e){var t,r;return null!=(t=null==(r=h)?void 0:r.get(e))?t:1/0})),A=new Map,k={babel:p,getUtils:P,method:n.method,targets:j,createMetaResolver:l.default,shouldInjectPolyfill:function(r){if(void 0===h)throw new Error("Internal error in the "+e.name+" provider: shouldInjectPolyfill() can't be called during initialization.");if(h.has(r)||console.warn("Internal error in the "+_+' provider: unknown polyfill "'+r+'".'),b&&!b(r))return!1;var a=(0,t.isRequired)(r,j,{compatData:y,includes:f,excludes:m});if(E&&"boolean"!=typeof(a=E(r,a)))throw new Error(".shouldInjectPolyfill must return a boolean.");return a},debug:function(e){var t;d().found=!0,w&&e&&(d().polyfills.has(_)||(d().polyfills.add(e),null!=(t=d()).polyfillsSupport||(t.polyfillsSupport=y)))},assertDependency:function(e,t){if(void 0===t&&(t="*"),!1!==o&&!T){var r="*"===t?e:e+"@^"+t,a=!o.all&&function(e,t,r){var a=e.get(t);void 0===a&&(a=r(),e.set(t,a));return a}(A,e+" :: "+i,function(){return c.has(i,e)});a||d().missingDeps.add(r)}}},C=e(k,S,i),_=C.name||e.name;if("function"!=typeof C[R])throw new Error('The "'+_+'" provider doesn\'t support the "'+x+'" polyfilling method.');Array.isArray(C.polyfills)?(h=new Map(C.polyfills.map(function(e,t){return[e,t]})),b=C.filterPolyfills):C.polyfills?(h=new Map(Object.keys(C.polyfills).map(function(e,t){return[e,t]})),y=C.polyfills,b=C.filterPolyfills):h=new Map;var I,D=(0,s.validateIncludeExclude)(_,h,S.include||[],S.exclude||[]);f=D.include,m=D.exclude,I="usageGlobal"===R?function(e,t){var r,a=P(t);return null!=(r=C[R](e,a,t))&&r}:function(e,t){var r=P(t);return C[R](e,r,t),!1};return{debug:w,method:x,targets:j,provider:C,providerName:_,callProvider:I}}(o,p,h,f,function(){return m},e),v=b.debug,x=b.method,R=b.targets,j=b.provider,w=b.providerName,E=b.callProvider,S="entry-global"===x?d.entry:d.usage,T=j.visitor?y.visitors.merge([S(E),j.visitor]):S(E);v&&v!==n.presetEnvSilentDebugHeader&&(console.log(w+": `DEBUG` option"),console.log("\nUsing targets: "+(0,n.stringifyTargetsMultiline)(R)),console.log("\nUsing polyfills with `"+x+"` method:"));var P=j.runtimeName;return{name:"inject-polyfills",visitor:T,pre:function(e){var t;P&&(e.get("runtimeHelpersModuleName")&&e.get("runtimeHelpersModuleName")!==P?console.warn("Two different polyfill providers ("+e.get("runtimeHelpersModuleProvider")+" and "+w+") are trying to define two conflicting @babel/runtime alternatives: "+e.get("runtimeHelpersModuleName")+" and "+P+". The second one will be ignored."):(e.set("runtimeHelpersModuleName",P),e.set("runtimeHelpersModuleProvider",w))),m={polyfills:new Set,polyfillsSupport:void 0,found:!1,providers:new Set,missingDeps:new Set},null==(t=j.pre)||t.apply(this,arguments)},post:function(){var e;if(null==(e=j.post)||e.apply(this,arguments),!1!==h&&("per-file"===h.log?c.logMissing(m.missingDeps):c.laterLogMissing(m.missingDeps)),v)if(this.filename&&console.log("\n["+this.filename+"]"),0!==m.polyfills.size){"entry-global"===x?console.log("The "+w+" polyfill entry has been replaced with the following polyfills:"):console.log("The "+w+" polyfill added the following polyfills:");for(var r,a=i(m.polyfills);!(r=a()).done;){var n,s=r.value;if(null!=(n=m.polyfillsSupport)&&n[s]){var o=(0,t.getInclusionReasons)(s,R,m.polyfillsSupport),d=JSON.stringify(o).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }');console.log(" "+s+" "+d)}else console.log(" "+s)}}else console.log("entry-global"===x?m.found?"Based on your targets, the "+w+" polyfill did not add any polyfill.":"The entry point for the "+w+" polyfill has not been found.":"Based on your code and targets, the "+w+" polyfill did not add any polyfill.")}}})};var e=zV,t=f(ebe),r=ORe(),a=p(function(){if(NRe)return BRe;NRe=1,BRe.__esModule=!0,BRe.default=void 0;var e=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o}(e,t)}(rbe),t=(e.default||e).types,r=function(){function e(e,t){this._imports=new WeakMap,this._anonymousImports=new WeakMap,this._lastImports=new WeakMap,this._resolver=e,this._getPreferredIndex=t}var r=e.prototype;return r.storeAnonymous=function(e,r,a,n){var s=this._normalizeKey(e,r),o=this._ensure(this._anonymousImports,e,Set);if(!o.has(s)){var i=n("script"===e.node.sourceType,t.stringLiteral(this._resolver(r)));o.add(s),this._injectImport(e,i,a)}},r.storeNamed=function(e,r,a,n,s){var o=this._normalizeKey(e,r,a),i=this._ensure(this._imports,e,Map);if(!i.has(o)){var d=s("script"===e.node.sourceType,t.stringLiteral(this._resolver(r)),t.identifier(a)),c=d.node,l=d.name;i.set(o,l),this._injectImport(e,c,n)}return t.identifier(i.get(o))},r._injectImport=function(e,t,r){var a,n,s=this._getPreferredIndex(r),o=null!=(a=this._lastImports.get(e))?a:[],d=function(t){return t.node&&t.parent===e.node&&t.container===e.node.body};if(s===1/0)o.length>0&&(d(n=o[o.length-1].path)||(n=void 0));else for(var c,l=i(o.entries());!(c=l()).done;){var u=y(c.value,2),p=u[0],f=u[1],g=f.path,m=f.index;if(d(g)){if(s<m){var h=y(g.insertBefore(t),1)[0];return void o.splice(p,0,{path:h,index:s})}n=g}}if(n){var b=y(n.insertAfter(t),1)[0];o.push({path:b,index:s})}else{var v=y(e.unshiftContainer("body",[t]),1)[0];this._lastImports.set(e,[{path:v,index:s}])}},r._ensure=function(e,t,r){var a=e.get(t);return a||(a=new r,e.set(t,a)),a},r._normalizeKey=function(e,t,r){void 0===r&&(r="");var a=e.node.sourceType;return(r&&a)+"::"+t+"::"+r},o(e)}();return BRe.default=r,BRe}()),n=function(){if(MRe)return FRe;MRe=1,FRe.__esModule=!0,FRe.presetEnvSilentDebugHeader=void 0,FRe.stringifyTargets=function(e){return JSON.stringify(e).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }')},FRe.stringifyTargetsMultiline=function(t){return JSON.stringify((0,e.prettifyTargets)(t),null,2)};var e=ebe;return FRe.presetEnvSilentDebugHeader="#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets",FRe}(),s=qRe(),d=f(JRe()),c=f((YRe||(YRe=1,$Re.__esModule=!0,$Re.has=function(e,t){return!0},$Re.laterLogMissing=function(e){},$Re.logMissing=function(e){},$Re.resolve=function(e,t,r){if(!1===r)return t;throw new Error('"absoluteImports" is not supported in bundles prepared for the browser.')}),$Re)),l=p(function(){if(QRe)return aje;QRe=1,aje.__esModule=!0,aje.default=function(r){var a=r.static,n=r.instance,s=r.global;return function(r){if("global"===r.kind&&s&&(0,e.has)(s,r.name))return{kind:"global",desc:s[r.name],name:r.name};if("property"===r.kind||"in"===r.kind){var o=r.placement,i=r.object,d=r.key;if(i&&"static"===o){if(s&&t.has(i)&&(0,e.has)(s,d))return{kind:"global",desc:s[d],name:d};if(a&&(0,e.has)(a,i)&&(0,e.has)(a[i],d))return{kind:"static",desc:a[i][d],name:i+"$"+d}}if(n&&(0,e.has)(n,d))return{kind:"instance",desc:n[d],name:""+d}}}};var e=ORe(),t=new Set(["global","globalThis","self","window"]);return aje}()),u=["method","targets","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","absoluteImports"];function p(e){return e&&e.__esModule?e:{default:e}}function f(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return(f=function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o})(e,t)}var g=t.default.default||t.default;return IRe}function sje(){if(eje)return vRe;eje=1,vRe.__esModule=!0,vRe.default=void 0;var e=o(Uhe),t=function(){if(mRe)return xRe;mRe=1,xRe.__esModule=!0,xRe.StaticProperties=xRe.InstanceProperties=xRe.CommonIterators=xRe.BuiltIns=void 0;var e,t=(e=Uhe)&&e.__esModule?e:{default:e},r=function(e,t,r,a){return void 0===r&&(r=[]),{name:e,pure:t,global:r,meta:a}},a=function(e,t,a){return void 0===a&&(a=null),r(t[0],e,t,{minRuntimeVersion:a})},n=function(e){return r(e[0],null,e)},s=function(e,t){return r(t,e,[])},o=["es6.object.to-string","es6.array.iterator","web.dom.iterable"],i=xRe.CommonIterators=["es6.string.iterator"].concat(o),d=["es6.object.to-string","es6.promise"];xRe.BuiltIns={DataView:n(["es6.typed.data-view"]),Float32Array:n(["es6.typed.float32-array"]),Float64Array:n(["es6.typed.float64-array"]),Int8Array:n(["es6.typed.int8-array"]),Int16Array:n(["es6.typed.int16-array"]),Int32Array:n(["es6.typed.int32-array"]),Map:a("map",["es6.map"].concat(b(i))),Number:n(["es6.number.constructor"]),Promise:a("promise",d),RegExp:n(["es6.regexp.constructor"]),Set:a("set",["es6.set"].concat(b(i))),Symbol:a("symbol/index",["es6.symbol"]),Uint8Array:n(["es6.typed.uint8-array"]),Uint8ClampedArray:n(["es6.typed.uint8-clamped-array"]),Uint16Array:n(["es6.typed.uint16-array"]),Uint32Array:n(["es6.typed.uint32-array"]),WeakMap:a("weak-map",["es6.weak-map"].concat(b(i))),WeakSet:a("weak-set",["es6.weak-set"].concat(b(i))),setImmediate:s("set-immediate","web.immediate"),clearImmediate:s("clear-immediate","web.immediate"),parseFloat:s("parse-float","es6.parse-float"),parseInt:s("parse-int","es6.parse-int")};var c=xRe.InstanceProperties={__defineGetter__:n(["es7.object.define-getter"]),__defineSetter__:n(["es7.object.define-setter"]),__lookupGetter__:n(["es7.object.lookup-getter"]),__lookupSetter__:n(["es7.object.lookup-setter"]),anchor:n(["es6.string.anchor"]),big:n(["es6.string.big"]),bind:n(["es6.function.bind"]),blink:n(["es6.string.blink"]),bold:n(["es6.string.bold"]),codePointAt:n(["es6.string.code-point-at"]),copyWithin:n(["es6.array.copy-within"]),endsWith:n(["es6.string.ends-with"]),entries:n(o),every:n(["es6.array.every"]),fill:n(["es6.array.fill"]),filter:n(["es6.array.filter"]),finally:n(["es7.promise.finally"].concat(d)),find:n(["es6.array.find"]),findIndex:n(["es6.array.find-index"]),fixed:n(["es6.string.fixed"]),flags:n(["es6.regexp.flags"]),flatMap:n(["es7.array.flat-map"]),fontcolor:n(["es6.string.fontcolor"]),fontsize:n(["es6.string.fontsize"]),forEach:n(["es6.array.for-each"]),includes:n(["es6.string.includes","es7.array.includes"]),indexOf:n(["es6.array.index-of"]),italics:n(["es6.string.italics"]),keys:n(o),lastIndexOf:n(["es6.array.last-index-of"]),link:n(["es6.string.link"]),map:n(["es6.array.map"]),match:n(["es6.regexp.match"]),name:n(["es6.function.name"]),padStart:n(["es7.string.pad-start"]),padEnd:n(["es7.string.pad-end"]),reduce:n(["es6.array.reduce"]),reduceRight:n(["es6.array.reduce-right"]),repeat:n(["es6.string.repeat"]),replace:n(["es6.regexp.replace"]),search:n(["es6.regexp.search"]),small:n(["es6.string.small"]),some:n(["es6.array.some"]),sort:n(["es6.array.sort"]),split:n(["es6.regexp.split"]),startsWith:n(["es6.string.starts-with"]),strike:n(["es6.string.strike"]),sub:n(["es6.string.sub"]),sup:n(["es6.string.sup"]),toISOString:n(["es6.date.to-iso-string"]),toJSON:n(["es6.date.to-json"]),toString:n(["es6.object.to-string","es6.date.to-string","es6.regexp.to-string"]),trim:n(["es6.string.trim"]),trimEnd:n(["es7.string.trim-right"]),trimLeft:n(["es7.string.trim-left"]),trimRight:n(["es7.string.trim-right"]),trimStart:n(["es7.string.trim-left"]),values:n(o)};return"es6.array.slice"in t.default&&(c.slice=n(["es6.array.slice"])),xRe.StaticProperties={Array:{from:a("array/from",["es6.symbol","es6.array.from"].concat(b(i))),isArray:a("array/is-array",["es6.array.is-array"]),of:a("array/of",["es6.array.of"])},Date:{now:a("date/now",["es6.date.now"])},JSON:{stringify:s("json/stringify","es6.symbol")},Math:{acosh:a("math/acosh",["es6.math.acosh"],"7.0.1"),asinh:a("math/asinh",["es6.math.asinh"],"7.0.1"),atanh:a("math/atanh",["es6.math.atanh"],"7.0.1"),cbrt:a("math/cbrt",["es6.math.cbrt"],"7.0.1"),clz32:a("math/clz32",["es6.math.clz32"],"7.0.1"),cosh:a("math/cosh",["es6.math.cosh"],"7.0.1"),expm1:a("math/expm1",["es6.math.expm1"],"7.0.1"),fround:a("math/fround",["es6.math.fround"],"7.0.1"),hypot:a("math/hypot",["es6.math.hypot"],"7.0.1"),imul:a("math/imul",["es6.math.imul"],"7.0.1"),log1p:a("math/log1p",["es6.math.log1p"],"7.0.1"),log10:a("math/log10",["es6.math.log10"],"7.0.1"),log2:a("math/log2",["es6.math.log2"],"7.0.1"),sign:a("math/sign",["es6.math.sign"],"7.0.1"),sinh:a("math/sinh",["es6.math.sinh"],"7.0.1"),tanh:a("math/tanh",["es6.math.tanh"],"7.0.1"),trunc:a("math/trunc",["es6.math.trunc"],"7.0.1")},Number:{EPSILON:a("number/epsilon",["es6.number.epsilon"]),MIN_SAFE_INTEGER:a("number/min-safe-integer",["es6.number.min-safe-integer"]),MAX_SAFE_INTEGER:a("number/max-safe-integer",["es6.number.max-safe-integer"]),isFinite:a("number/is-finite",["es6.number.is-finite"]),isInteger:a("number/is-integer",["es6.number.is-integer"]),isSafeInteger:a("number/is-safe-integer",["es6.number.is-safe-integer"]),isNaN:a("number/is-nan",["es6.number.is-nan"]),parseFloat:a("number/parse-float",["es6.number.parse-float"]),parseInt:a("number/parse-int",["es6.number.parse-int"])},Object:{assign:a("object/assign",["es6.object.assign"]),create:a("object/create",["es6.object.create"]),defineProperties:a("object/define-properties",["es6.object.define-properties"]),defineProperty:a("object/define-property",["es6.object.define-property"]),entries:a("object/entries",["es7.object.entries"]),freeze:a("object/freeze",["es6.object.freeze"]),getOwnPropertyDescriptor:a("object/get-own-property-descriptor",["es6.object.get-own-property-descriptor"]),getOwnPropertyDescriptors:a("object/get-own-property-descriptors",["es7.object.get-own-property-descriptors"]),getOwnPropertyNames:a("object/get-own-property-names",["es6.object.get-own-property-names"]),getOwnPropertySymbols:a("object/get-own-property-symbols",["es6.symbol"]),getPrototypeOf:a("object/get-prototype-of",["es6.object.get-prototype-of"]),is:a("object/is",["es6.object.is"]),isExtensible:a("object/is-extensible",["es6.object.is-extensible"]),isFrozen:a("object/is-frozen",["es6.object.is-frozen"]),isSealed:a("object/is-sealed",["es6.object.is-sealed"]),keys:a("object/keys",["es6.object.keys"]),preventExtensions:a("object/prevent-extensions",["es6.object.prevent-extensions"]),seal:a("object/seal",["es6.object.seal"]),setPrototypeOf:a("object/set-prototype-of",["es6.object.set-prototype-of"]),values:a("object/values",["es7.object.values"])},Promise:{all:n(i),race:n(i)},Reflect:{apply:a("reflect/apply",["es6.reflect.apply"]),construct:a("reflect/construct",["es6.reflect.construct"]),defineProperty:a("reflect/define-property",["es6.reflect.define-property"]),deleteProperty:a("reflect/delete-property",["es6.reflect.delete-property"]),get:a("reflect/get",["es6.reflect.get"]),getOwnPropertyDescriptor:a("reflect/get-own-property-descriptor",["es6.reflect.get-own-property-descriptor"]),getPrototypeOf:a("reflect/get-prototype-of",["es6.reflect.get-prototype-of"]),has:a("reflect/has",["es6.reflect.has"]),isExtensible:a("reflect/is-extensible",["es6.reflect.is-extensible"]),ownKeys:a("reflect/own-keys",["es6.reflect.own-keys"]),preventExtensions:a("reflect/prevent-extensions",["es6.reflect.prevent-extensions"]),set:a("reflect/set",["es6.reflect.set"]),setPrototypeOf:a("reflect/set-prototype-of",["es6.reflect.set-prototype-of"])},String:{at:s("string/at","es7.string.at"),fromCodePoint:a("string/from-code-point",["es6.string.from-code-point"]),raw:a("string/raw",["es6.string.raw"])},Symbol:{asyncIterator:n(["es6.symbol","es7.symbol.async-iterator"]),for:s("symbol/for","es6.symbol"),hasInstance:s("symbol/has-instance","es6.symbol"),isConcatSpreadable:s("symbol/is-concat-spreadable","es6.symbol"),iterator:r("es6.symbol","symbol/iterator",i),keyFor:s("symbol/key-for","es6.symbol"),match:a("symbol/match",["es6.regexp.match"]),replace:s("symbol/replace","es6.symbol"),search:s("symbol/search","es6.symbol"),species:s("symbol/species","es6.symbol"),split:s("symbol/split","es6.symbol"),toPrimitive:s("symbol/to-primitive","es6.symbol"),toStringTag:s("symbol/to-string-tag","es6.symbol"),unscopables:s("symbol/unscopables","es6.symbol")}},xRe}(),r=o(function(){if(RRe)return jRe;function e(){return e=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)({}).hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},e.apply(null,arguments)}RRe=1,jRe.__esModule=!0,jRe.default=function(a,n,s){var o=Object.keys(a),i=!o.length,d=o.some(function(e){return"node"!==e});return e({},s,"usage-pure"===n?r:null,i||d?t:null)};var t={"web.timers":{},"web.immediate":{},"web.dom.iterable":{}},r={"es6.parse-float":{},"es6.parse-int":{},"es7.string.at":{}};return jRe}()),a=function(){if(ERe)return SRe;ERe=1,SRe.__esModule=!0,SRe.hasMinVersion=function(e,r){return!r||!e||(r=String(r),t.default.valid(r)&&(r="^"+r),!t.default.intersects("<"+e,r)&&!t.default.intersects(">=8.0.0",r))};var e,t=(e=PRe())&&e.__esModule?e:{default:e};return SRe}(),n=o(nje()),s=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,a=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var n,s,o={__proto__:null,default:e};if(null===e||"object"!=typeof e&&"function"!=typeof e)return o;if(n=t?a:r){if(n.has(e))return n.get(e);n.set(e,o)}for(var i in e)"default"!==i&&{}.hasOwnProperty.call(e,i)&&((s=(n=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,i))&&(s.get||s.set)?n(o,i,s):o[i]=e[i]);return o}(e,t)}(rbe);function o(e){return e&&e.__esModule?e:{default:e}}var i=(s.default||s).types,d="@babel/runtime-corejs2",c=Function.call.bind(Object.hasOwnProperty);return vRe.default=(0,n.default)(function(n,s){var o=s["#__secret_key__@babel/preset-env__compatibility"],l=void 0===o?{}:o,u=l.entryInjectRegenerator,p=void 0!==u&&u,f=l.noRuntimeName,g=void 0!==f&&f,m=s["#__secret_key__@babel/runtime__compatibility"],y=void 0===m?{}:m,h=y.useBabelRuntime,b=void 0!==h&&h,v=y.runtimeVersion,x=void 0===v?"":v,R=y.ext,j=void 0===R?".js":R,w=n.createMetaResolver({global:t.BuiltIns,static:t.StaticProperties,instance:t.InstanceProperties}),E=n.debug,S=n.shouldInjectPolyfill,T=n.method,P=(0,r.default)(n.targets,T,e.default),A=b?d+"/core-js":"usage-pure"===T?"core-js/library/fn":"core-js/modules";function k(e,t){"string"!=typeof e?e.forEach(function(e){return k(e,t)}):c(P,e)&&S(e)&&(E(e),t.injectGlobalImport(A+"/"+e+".js"))}return{name:"corejs2",runtimeName:g?null:d,polyfills:P,entryGlobal:function(e,t,r){"import"===e.kind&&"core-js"===e.source&&(E(null),k(Object.keys(P),t),p&&t.injectGlobalImport("regenerator-runtime/runtime.js"),r.remove())},usageGlobal:function(e,t){var r=w(e);if(r){var a=r.desc.global;if("global"!==r.kind&&"object"in e&&e.object&&"prototype"===e.placement){var n=e.object.toLowerCase();a=a.filter(function(e){return e.includes(n)})}k(a,t)}},usagePure:function(e,t,r){if("in"!==e.kind){if(!r.parentPath.isUnaryExpression({operator:"delete"})){if("property"===e.kind){if(!r.isMemberExpression())return;if(!r.isReferenced())return;if("Symbol.iterator"===e.key&&S("es6.symbol")&&r.parentPath.isCallExpression({callee:r.node})&&0===r.parentPath.node.arguments.length)return r.parentPath.replaceWith(i.callExpression(t.injectDefaultImport(A+"/get-iterator"+j,"getIterator"),[r.node.object])),void r.skip()}var n=w(e);if(n){var s=function(e,t,r){var n=e.pure,s=e.meta,o=e.name;if(n&&S(o)&&(!(x&&s&&s.minRuntimeVersion)||(0,a.hasMinVersion)(s&&s.minRuntimeVersion,x)))return b&&"symbol/index"===n&&(n="symbol"),r.injectDefaultImport(A+"/"+n+j,t)}(n.desc,n.name,t);s&&r.replaceWith(s)}}}else"Symbol.iterator"===e.key&&r.replaceWith(i.callExpression(t.injectDefaultImport(A+"/is-iterable"+j,"isIterable"),[r.node.right]))},visitor:"usage-global"===T&&{YieldExpression:function(e){e.node.delegate&&k("web.dom.iterable",n.getUtils(e))},"ForOfStatement|ArrayPattern":function(e){t.CommonIterators.forEach(function(t){return k(t,n.getUtils(e))})}}}}),vRe}var oje,ije,dje,cje={};function lje(){if(oje)return cje;oje=1,cje.__esModule=!0,cje.default=void 0;var e,t=(e=nje())&&e.__esModule?e:{default:e};cje.default=(0,t.default)(function(e,t){var a,n,s=e.debug,o=e.targets,i=e.babel;if(a=o,n=i.targets(),JSON.stringify(a)!==JSON.stringify(n))throw new Error("This plugin does not use the targets option. Only preset-env's targets or top-level targets need to be configured for this plugin to work. See https://github.com/babel/babel-polyfills/issues/36 for more details.");var d=t["#__secret_key__@babel/runtime__compatibility"],c=void 0===d?{}:d,l=c.moduleName,u=void 0===l?null:l,p=c.useBabelRuntime,f=void 0!==p&&p;return{name:"regenerator",polyfills:["regenerator-runtime"],usageGlobal:function(e,t){r(e)&&(s("regenerator-runtime"),t.injectGlobalImport("regenerator-runtime/runtime.js"))},usagePure:function(e,t,a){if(r(e)){var n,s="regenerator-runtime";if(f)s=(null!=(n=null!=u?u:a.hub.file.get("runtimeHelpersModuleName"))?n:"@babel/runtime")+"/regenerator";a.replaceWith(t.injectDefaultImport(s,"regenerator-runtime"))}}}});var r=function(e){return"global"===e.kind&&"regeneratorRuntime"===e.name};return cje}var uje,pje,fje,gje,mje,yje,hje,bje,vje,xje={};function Rje(){return uje||(uje=1,xje.getImportSource=function(e){var t=e.node;if(0===t.specifiers.length)return t.source.value},xje.getRequireSource=function(e){var t=e.node;if("ExpressionStatement"===t.type){var r=t.expression;return"CallExpression"===r.type&&"Identifier"===r.callee.type&&"require"===r.callee.name&&1===r.arguments.length&&"StringLiteral"===r.arguments[0].type?r.arguments[0].value:void 0}},xje.isPolyfillSource=function(e){return"@babel/polyfill"===e||"core-js"===e}),xje}!function(e){Object.defineProperties(e,{pluginCoreJS2:{get:function(){return(rje?tje:(rje=1,tje=function(e){return null!=e&&e&&"false"!==e&&"0"!==e}(z.env.BABEL_8_BREAKING)?null:sje())).default}},pluginRegenerator:{get:function(){return(dje?ije:(dje=1,ije=function(e){return null!=e&&e&&"false"!==e&&"0"!==e}(z.env.BABEL_8_BREAKING)?null:lje())).default}},legacyBabelPolyfillPlugin:{get:function(){return function(){if(hje)return yje;hje=1;var e=Rje(),t=e.getImportSource,r=e.getRequireSource,a=e.isPolyfillSource,n="\n `@babel/polyfill` is deprecated. Please, use required parts of `core-js`\n and `regenerator-runtime/runtime` separately",s="\n When setting `useBuiltIns: 'usage'`, polyfills are automatically imported when needed.\n Please remove the direct import of `SPECIFIER` or use `useBuiltIns: 'entry'` instead.";return yje=function(e,o){var i=e.template,d=o.regenerator,c=o.deprecated,l=o.usage;return{name:"preset-env/replace-babel-polyfill",visitor:{ImportDeclaration:function(e){var r=t(e);l&&a(r)?(console.warn(s.replace("SPECIFIER",r)),c||e.remove()):"@babel/polyfill"===r&&(c?console.warn(n):d?e.replaceWithMultiple(i.ast(pje||(pje=h(['\n import "core-js";\n import "regenerator-runtime/runtime.js";\n '])))):e.replaceWith(i.ast(fje||(fje=h(['\n import "core-js";\n '])))))},Program:function(e){e.get("body").forEach(function(e){var t=r(e);l&&a(t)?(console.warn(s.replace("SPECIFIER",t)),c||e.remove()):"@babel/polyfill"===t&&(c?console.warn(n):d?e.replaceWithMultiple(i.ast(gje||(gje=h(['\n require("core-js");\n require("regenerator-runtime/runtime.js");\n '])))):e.replaceWith(i.ast(mje||(mje=h(['\n require("core-js");\n '])))))})}}}},yje}()}},removeRegeneratorEntryPlugin:{get:function(){return function(){if(vje)return bje;vje=1;var e=Rje(),t=e.getImportSource,r=e.getRequireSource;function a(e){return"regenerator-runtime/runtime"===e||"regenerator-runtime/runtime.js"===e}return bje=function(){var e={ImportDeclaration:function(e){a(t(e))&&(this.regeneratorImportExcluded=!0,e.remove())},Program:function(e){var t=this;e.get("body").forEach(function(e){a(r(e))&&(t.regeneratorImportExcluded=!0,e.remove())})}};return{name:"preset-env/remove-regenerator",visitor:e,pre:function(){this.regeneratorImportExcluded=!1},post:function(){if(this.opts.debug&&this.regeneratorImportExcluded){var e=this.file.opts.filename;"test"===z.env.BABEL_ENV&&(e=e.replace(/\\/g,"/")),console.log("\n["+e+"] Based on your targets, regenerator-runtime import excluded.")}}}},bje}()}},corejs2Polyfills:{get:function(){return Uhe}}})}(bRe);var jje=new cU("@babel/preset-env"),wje=Object.keys(lRe),Eje=["transform-dynamic-import"].concat(b(Object.keys(dRe).map(function(e){return dRe[e]})));var Sje=function(e,t,r){if(void 0===e&&(e=[]),0===e.length)return[];var a,n,s=function(e,t){var r=new Set(wje);return"exclude"===e&&Eje.map(r.add,r),t&&(2===t?(Object.keys(bRe.corejs2Polyfills).map(r.add,r),r.add("web.timers").add("web.immediate").add("web.dom.iterable")):Object.keys(Ibe).map(r.add,r)),Array.from(r)}(t,r),o=[],i=(a=e,n=function(e){var t;if("string"==typeof e)try{t=new RegExp("^"+function(e){return e.replace(/^(?:@babel\/|babel-)(?:plugin-)?/,"")}(e)+"$")}catch(t){return o.push(e),[]}else t=e;var r=s.filter(function(e){return t.test(e)||t.test(e.replace(/^transform-/,"proposal-"))});return 0===r.length&&o.push(e),r},Array.prototype.concat.apply([],a.map(n)));return jje.invariant(0===o.length,"The plugins/built-ins '"+o.join(", ")+"' passed to the '"+t+"' option are not\n valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env"),i};function Tje(e){jje.validateTopLevelOptions(e,gRe);var t,r,a,n=(void 0===(t=e.useBuiltIns)&&(t=!1),jje.invariant(hRe[t.toString()]||t===hRe.false,"The 'useBuiltIns' option must be either\n 'false' (default) to indicate no polyfill,\n '\"entry\"' to indicate replacing the entry polyfill, or\n '\"usage\"' to import only used polyfills per file"),t),s=function(e,t){var r,a=!1;t&&void 0===e?(r=2,console.warn("\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a core-js version. Currently, we assume version 2.x when no version is passed. Since this default version will likely change in future versions of Babel, we recommend explicitly setting the core-js version you are using via the `corejs` option.\n\nYou should also be sure that the version you pass to the `corejs` option matches the version specified in your `package.json`'s `dependencies` section. If it doesn't, you need to run one of the following commands:\n\n npm install --save core-js@2 npm install --save core-js@3\n yarn add core-js@2 yarn add core-js@3\n\nMore info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\nMore info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs")):"object"==typeof e&&null!==e?(r=e.version,a=Boolean(e.proposals)):r=e;var n=!!r&&Cxe.coerce(String(r));if(n)if(t){if(n.major<2||n.major>3)throw new RangeError("Invalid Option: The version passed to `corejs` is invalid. Currently, only core-js@2 and core-js@3 are supported.")}else console.warn("\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\n");return{version:n,proposals:a}}(e.corejs,n),o=Sje(e.include,gRe.include,!!s.version&&s.version.major),i=Sje(e.exclude,gRe.exclude,!!s.version&&s.version.major);return function(e,t){void 0===e&&(e=[]),void 0===t&&(t=[]);var r=e.filter(function(e){return t.includes(e)});jje.invariant(0===r.length,"The plugins/built-ins '"+r.join(", ")+'\' were found in both the "include" and\n "exclude" options.')}(o,i),jje.validateBooleanOption("loose",e.loose),jje.validateBooleanOption("spec",e.spec),jje.validateBooleanOption("bugfixes",e.bugfixes),{configPath:jje.validateStringOption(gRe.configPath,e.configPath,z.cwd()),corejs:s,debug:jje.validateBooleanOption(gRe.debug,e.debug,!1),include:o,exclude:i,forceAllTransforms:jje.validateBooleanOption(gRe.forceAllTransforms,e.forceAllTransforms,!1),ignoreBrowserslistConfig:jje.validateBooleanOption(gRe.ignoreBrowserslistConfig,e.ignoreBrowserslistConfig,!1),modules:(a=e.modules,void 0===a&&(a=yRe.auto),jje.invariant(yRe[a.toString()]||a===yRe.false,"The 'modules' option must be one of \n - 'false' to indicate no module processing\n - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs' - 'auto' (default) which will automatically select 'false' if the current\n process is known to support ES module syntax, or \"commonjs\" otherwise\n"),a),shippedProposals:jje.validateBooleanOption(gRe.shippedProposals,e.shippedProposals,!1),targets:(r=e.targets,"string"==typeof r||Array.isArray(r)?{browsers:r}:Object.assign({},r)),useBuiltIns:n,browserslistEnv:jje.validateStringOption(gRe.browserslistEnv,e.browserslistEnv)}}var Pje,Aje,kje,Cje=new Set([]),_je=["syntax-import-assertions","syntax-import-attributes"],Ije={"transform-async-generator-functions":"syntax-async-generators","transform-class-properties":"syntax-class-properties","transform-class-static-block":"syntax-class-static-block","transform-export-namespace-from":"syntax-export-namespace-from","transform-json-strings":"syntax-json-strings","transform-nullish-coalescing-operator":"syntax-nullish-coalescing-operator","transform-numeric-separator":"syntax-numeric-separator","transform-object-rest-spread":"syntax-object-rest-spread","transform-optional-catch-binding":"syntax-optional-catch-binding","transform-optional-chaining":"syntax-optional-chaining","transform-private-methods":"syntax-class-properties","transform-private-property-in-object":"syntax-private-property-in-object","transform-unicode-property-regex":null},Dje=Object.keys(Ije).map(function(e){return[e,Ije[e]]}),Oje=new Map(Dje),Nje=Ibe,Bje=Xbe,Mje=ive,Fje=["method","targets","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","absoluteImports"],Lje=r,Uje=Lje.types,qje=Lje.template;function Gje(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Wje(e,t){if(void 0===t&&(t=new Set),!t.has(e)){if(t.add(e),e.isVariableDeclarator()){if(e.get("id").isIdentifier())return Wje(e.get("init"),t)}else if(e.isReferencedIdentifier()){var r=e.scope.getBinding(e.node.name);if(!r)return e;if(!r.constant)return;return Wje(r.path,t)}return e}}function Vje(e){if(e.isIdentifier()&&!e.scope.hasBinding(e.node.name,!0))return e.node.name;var t=Wje(e);return null!=t&&t.isIdentifier()?t.node.name:void 0}function Hje(e,t){void 0===t&&(t=!1);var r=e.scope;if(e.isStringLiteral())return e.node.value;var a=e.isIdentifier();if(a&&!t&&!e.parent.computed)return e.node.name;if(t&&e.isMemberExpression()&&e.get("object").isIdentifier({name:"Symbol"})&&!r.hasBinding("Symbol",!0)){var n=Hje(e.get("property"),e.node.computed);if(n)return"Symbol."+n}if(a?r.hasBinding(e.node.name,!0):e.isPure()){var s=e.evaluate().value;if("string"==typeof s)return s}}function zje(e){if(e.isMemberExpression()&&e.get("property").isIdentifier({name:"prototype"})){var t=Vje(e.get("object"));return t?{id:t,placement:"prototype"}:{id:null,placement:null}}var r=Vje(e);if(r)return{id:r,placement:"static"};var a=Wje(e);switch(null==a?void 0:a.type){case"RegExpLiteral":return{id:"RegExp",placement:"prototype"};case"FunctionExpression":return{id:"Function",placement:"prototype"};case"StringLiteral":return{id:"String",placement:"prototype"};case"NumberLiteral":return{id:"Number",placement:"prototype"};case"BooleanLiteral":return{id:"Boolean",placement:"prototype"};case"ObjectExpression":return{id:"Object",placement:"prototype"};case"ArrayExpression":return{id:"Array",placement:"prototype"}}return{id:null,placement:null}}function Kje(e){return e._blockHoist=3,e}var Xje=r.types,Jje=function(){function e(e,t){this._imports=new WeakMap,this._anonymousImports=new WeakMap,this._lastImports=new WeakMap,this._resolver=e,this._getPreferredIndex=t}var t=e.prototype;return t.storeAnonymous=function(e,t,r,a){var n=this._normalizeKey(e,t),s=this._ensure(this._anonymousImports,e,Set);if(!s.has(n)){var o=a("script"===e.node.sourceType,Xje.stringLiteral(this._resolver(t)));s.add(n),this._injectImport(e,o,r)}},t.storeNamed=function(e,t,r,a,n){var s=this._normalizeKey(e,t,r),o=this._ensure(this._imports,e,Map);if(!o.has(s)){var i=n("script"===e.node.sourceType,Xje.stringLiteral(this._resolver(t)),Xje.identifier(r)),d=i.node,c=i.name;o.set(s,c),this._injectImport(e,d,a)}return Xje.identifier(o.get(s))},t._injectImport=function(e,t,r){var a,n,s=this._getPreferredIndex(r),o=null!=(a=this._lastImports.get(e))?a:[],d=function(t){return t.node&&t.parent===e.node&&t.container===e.node.body};if(s===1/0)o.length>0&&(d(n=o[o.length-1].path)||(n=void 0));else for(var c,l=i(o.entries());!(c=l()).done;){var u=y(c.value,2),p=u[0],f=u[1],g=f.path,m=f.index;if(d(g)){if(s<m){var h=y(g.insertBefore(t),1)[0];return void o.splice(p,0,{path:h,index:s})}n=g}}if(n){var b=y(n.insertAfter(t),1)[0];o.push({path:b,index:s})}else{var v=y(e.unshiftContainer("body",[t]),1)[0];this._lastImports.set(e,[{path:v,index:s}])}},t._ensure=function(e,t,r){var a=e.get(t);return a||(a=new r,e.set(t,a)),a},t._normalizeKey=function(e,t,r){void 0===r&&(r="");var a=e.node.sourceType;return(r&&a)+"::"+t+"::"+r},o(e)}();function Yje(e,t){return t.length?' - The following "'+e+"\" patterns didn't match any polyfill:\n"+t.map(function(e){return" "+String(e)+"\n"}).join(""):""}function $je(e,t,r,a){var n,s=function(e){var r=function(e){if(e instanceof RegExp)return e;try{return new RegExp("^"+e+"$")}catch(e){return null}}(e);if(!r)return!1;for(var a,s=!1,o=i(t.keys());!(a=o()).done;){var d=a.value;r.test(d)&&(s=!0,n.add(d))}return!s},o=n=new Set,d=Array.from(r).filter(s),c=n=new Set,l=Array.from(a).filter(s),u=function(e,t){var r=new Set;return e.forEach(function(e){return t.has(e)&&r.add(e)}),r}(o,c);if(u.size>0||d.length>0||l.length>0)throw new Error('Error while validating the "'+e+'" provider options:\n'+Yje("include",d)+Yje("exclude",l)+function(e){return e.size?' - The following polyfills were matched both by "include" and "exclude" patterns:\n'+Array.from(e,function(e){return" "+e+"\n"}).join(""):""}(u));return{include:o,exclude:c}}function Qje(e){if(e.removed)return!0;if(!e.parentPath)return!1;var t,r;if(e.listKey){if(null==(t=e.parentPath.node)||null==(t=t[e.listKey])||!t.includes(e.node))return!0}else if((null==(r=e.parentPath.node)?void 0:r[e.key])!==e.node)return!0;return Qje(e.parentPath)}var Zje=function(e){function t(t,r,a,n){return e({kind:"property",object:t,key:r,placement:a},n)}function r(t){var r=t.node.name;t.scope.getBindingIdentifier(r)||e({kind:"global",name:r},t)}function a(e){var t=Hje(e.get("property"),e.node.computed);return{key:t,handleAsMemberExpression:!!t&&"prototype"!==t}}return{ReferencedIdentifier:function(e){var t=e.parentPath;t.isMemberExpression({object:e.node})&&a(t).handleAsMemberExpression||r(e)},"MemberExpression|OptionalMemberExpression":function(e){var n=a(e),s=n.key;if(n.handleAsMemberExpression){var o=e.get("object"),i=o.isIdentifier();if(i){var d=o.scope.getBinding(o.node.name);if(d){if(d.path.isImportNamespaceSpecifier())return;i=!1}}var c=zje(o),l=t(c.id,s,c.placement,e);l||(l=!i||e.shouldSkip||o.shouldSkip||Qje(o)),l||r(o)}},ObjectPattern:function(e){var r,a=e.parentPath,n=e.parent;if(a.isVariableDeclarator())r=a.get("init");else if(a.isAssignmentExpression())r=a.get("right");else if(a.isFunction()){var s=a.parentPath;(s.isCallExpression()||s.isNewExpression())&&s.node.callee===n&&(r=s.get("arguments")[e.key])}var o=null,d=null;if(r){var c=zje(r);o=c.id,d=c.placement}for(var l,u=i(e.get("properties"));!(l=u()).done;){var p=l.value;if(p.isObjectProperty()){var f=Hje(p.get("key"));f&&t(o,f,d,p)}}},BinaryExpression:function(t){if("in"===t.node.operator){var r=zje(t.get("right")),a=Hje(t.get("left"),!0);a&&e({kind:"in",object:r.id,key:a,placement:r.placement},t)}}}},ewe=function(e){return{ImportDeclaration:function(t){var r=function(e){var t=e.node;if(0===t.specifiers.length)return t.source.value}(t);r&&e({kind:"import",source:r},t)},Program:function(t){t.get("body").forEach(function(t){var r=function(e){var t=e.node;if(Uje.isExpressionStatement(t)){var r=t.expression;return Uje.isCallExpression(r)&&Uje.isIdentifier(r.callee)&&"require"===r.callee.name&&1===r.arguments.length&&Uje.isStringLiteral(r.arguments[0])?r.arguments[0].value:void 0}}(t);r&&e({kind:"import",source:r},t)})}}};var twe=new Set(["global","globalThis","self","window"]);function rwe(e){var t=e.static,r=e.instance,a=e.global;return function(e){if("global"===e.kind&&a&&Gje(a,e.name))return{kind:"global",desc:a[e.name],name:e.name};if("property"===e.kind||"in"===e.kind){var n=e.placement,s=e.object,o=e.key;if(s&&"static"===n){if(a&&twe.has(s)&&Gje(a,o))return{kind:"global",desc:a[o],name:o};if(t&&Gje(t,s)&&Gje(t[s],o))return{kind:"static",desc:t[s][o],name:s+"$"+o}}if(r&&Gje(r,o))return{kind:"instance",desc:r[o],name:""+o}}}}var awe,nwe,swe=UU.default||UU;function owe(e,t){var r,a,n,s=e.method,o=e.targets,i=e.ignoreBrowserslistConfig,d=e.configPath,c=e.debug,l=e.shouldInjectPolyfill,p=e.absoluteImports,f=function(e,t){if(null==e)return{};var r,a,n=u(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)r=s[a],-1===t.indexOf(r)&&{}.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}(e,Fje);if(r=e,0===Object.keys(r).length)throw new Error('This plugin requires options, for example:\n {\n "plugins": [\n ["<plugin name>", { method: "usage-pure" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md');if("usage-global"===s)a="usageGlobal";else if("entry-global"===s)a="entryGlobal";else{if("usage-pure"!==s)throw"string"!=typeof s?new Error(".method must be a string"):new Error('.method must be one of "entry-global", "usage-global" or "usage-pure" (received '+JSON.stringify(s)+")");a="usagePure"}if("function"==typeof l){if(e.include||e.exclude)throw new Error(".include and .exclude are not supported when using the .shouldInjectPolyfill function.")}else if(null!=l)throw new Error(".shouldInjectPolyfill must be a function, or undefined (received "+JSON.stringify(l)+")");if(null!=p&&"boolean"!=typeof p&&"string"!=typeof p)throw new Error(".absoluteImports must be a boolean, a string, or undefined (received "+JSON.stringify(p)+")");if(o||d||i){var g="string"==typeof o||Array.isArray(o)?{browsers:o}:o;n=swe(g,{ignoreBrowserslistConfig:i,configPath:d})}else n=t.targets();return{method:s,methodName:a,targets:n,absoluteImports:null!=p&&p,shouldInjectPolyfill:l,debug:!!c,providerOptions:f}}function iwe(e,t,r,a,n,s){var o,i,d,c,l,u=owe(t,s),p=u.method,f=u.methodName,g=u.targets,m=u.debug,y=u.shouldInjectPolyfill,b=u.providerOptions,v=u.absoluteImports,x=function(e){return function(t){var r=t.findParent(function(e){return e.isProgram()});return{injectGlobalImport:function(t,a){e.storeAnonymous(r,t,a,function(e,t){return e?qje.statement.ast(Pje||(Pje=h(["require(",")"])),t):Uje.importDeclaration([],t)})},injectNamedImport:function(t,a,n,s){return void 0===n&&(n=a),e.storeNamed(r,t,a,s,function(e,t,a){var s=r.scope.generateUidIdentifier(n);return{node:e?Kje(qje.statement.ast(Aje||(Aje=h(["\n var "," = require(",").","\n "])),s,t,a)):Uje.importDeclaration([Uje.importSpecifier(s,a)],t),name:s.name}})},injectDefaultImport:function(t,a,n){return void 0===a&&(a=t),e.storeNamed(r,t,"default",n,function(e,t){var n=r.scope.generateUidIdentifier(a);return{node:e?Kje(qje.statement.ast(kje||(kje=h(["var "," = require(",")"])),n,t)):Uje.importDeclaration([Uje.importDefaultSpecifier(n)],t),name:n.name}})}}}}(new Jje(function(e){return function(e,t,r){if(!1===r)return t;throw new Error('"absoluteImports" is not supported in bundles prepared for the browser.')}(0,e,v)},function(e){var t,r;return null!=(t=null==(r=c)?void 0:r.get(e))?t:1/0})),R=new Map,j={babel:s,getUtils:x,method:t.method,targets:g,createMetaResolver:rwe,shouldInjectPolyfill:function(t){if(void 0===c)throw new Error("Internal error in the "+e.name+" provider: shouldInjectPolyfill() can't be called during initialization.");if(c.has(t)||console.warn("Internal error in the "+E+' provider: unknown polyfill "'+t+'".'),l&&!l(t))return!1;var r=CU(t,g,{compatData:d,includes:o,excludes:i});if(y&&"boolean"!=typeof(r=y(t,r)))throw new Error(".shouldInjectPolyfill must return a boolean.");return r},debug:function(e){var t;n().found=!0,m&&e&&(n().polyfills.has(E)||(n().polyfills.add(e),null!=(t=n()).polyfillsSupport||(t.polyfillsSupport=d)))},assertDependency:function(e,t){if(void 0===t&&(t="*"),!1!==r&&!v){var s="*"===t?e:e+"@^"+t,o=!r.all&&function(e,t,r){var a=e.get(t);void 0===a&&(a=r(),e.set(t,a));return a}(R,e+" :: "+a,function(){return!0});o||n().missingDeps.add(s)}}},w=e(j,b,a),E=w.name||e.name;if("function"!=typeof w[f])throw new Error('The "'+E+'" provider doesn\'t support the "'+p+'" polyfilling method.');Array.isArray(w.polyfills)?(c=new Map(w.polyfills.map(function(e,t){return[e,t]})),l=w.filterPolyfills):w.polyfills?(c=new Map(Object.keys(w.polyfills).map(function(e,t){return[e,t]})),d=w.polyfills,l=w.filterPolyfills):c=new Map;var S,T=$je(E,c,b.include||[],b.exclude||[]);return o=T.include,i=T.exclude,S="usageGlobal"===f?function(e,t){var r,a=x(t);return null!=(r=w[f](e,a,t))&&r}:function(e,t){var r=x(t);return w[f](e,r,t),!1},{debug:m,method:p,targets:g,provider:w,providerName:E,callProvider:S}}var dwe=new Set(["esnext.array.group","esnext.array.group-to-map","esnext.iterator.zip","esnext.iterator.zip-keyed","esnext.symbol.metadata"]),cwe={};Object.keys(Nje).forEach(function(e,t){cwe[e]=t});var lwe=function(e,t,r,a){return void 0===r&&(r=t[0]),{name:r,pure:e,global:t.sort(function(e,t){return cwe[e]-cwe[t]}),exclude:a}},uwe=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return lwe(null,[].concat(t,vwe))},pwe=["es.array.iterator","web.dom-collections.iterator"],fwe=["es.string.iterator"].concat(pwe),gwe=["es.object.to-string"].concat(pwe),mwe=["es.object.to-string"].concat(b(fwe)),ywe=["es.error.cause","es.error.to-string"],hwe=["es.suppressed-error.constructor"].concat(ywe),bwe=["es.array-buffer.constructor","es.array-buffer.slice","es.data-view","es.array-buffer.detached","es.array-buffer.transfer","es.array-buffer.transfer-to-fixed-length","es.object.to-string"],vwe=["es.typed-array.at","es.typed-array.copy-within","es.typed-array.every","es.typed-array.fill","es.typed-array.filter","es.typed-array.find","es.typed-array.find-index","es.typed-array.find-last","es.typed-array.find-last-index","es.typed-array.for-each","es.typed-array.includes","es.typed-array.index-of","es.typed-array.iterator","es.typed-array.join","es.typed-array.last-index-of","es.typed-array.map","es.typed-array.reduce","es.typed-array.reduce-right","es.typed-array.reverse","es.typed-array.set","es.typed-array.slice","es.typed-array.some","es.typed-array.sort","es.typed-array.subarray","es.typed-array.to-locale-string","es.typed-array.to-reversed","es.typed-array.to-sorted","es.typed-array.to-string","es.typed-array.with","es.object.to-string","es.array.iterator","esnext.typed-array.filter-reject","esnext.typed-array.group-by","esnext.typed-array.to-spliced","esnext.typed-array.unique-by"].concat(bwe),xwe=["es.promise","es.object.to-string"],Rwe=[].concat(xwe,b(fwe)),jwe=["es.map","es.map.get-or-insert","es.map.get-or-insert-computed","esnext.map.delete-all","esnext.map.emplace","esnext.map.every","esnext.map.filter","esnext.map.find","esnext.map.find-key","esnext.map.includes","esnext.map.key-of","esnext.map.map-keys","esnext.map.map-values","esnext.map.merge","esnext.map.reduce","esnext.map.some","esnext.map.update"].concat(b(mwe)),wwe=["es.set","es.set.difference.v2","es.set.intersection.v2","es.set.is-disjoint-from.v2","es.set.is-subset-of.v2","es.set.is-superset-of.v2","es.set.symmetric-difference.v2","es.set.union.v2","esnext.set.add-all","esnext.set.delete-all","esnext.set.difference","esnext.set.every","esnext.set.filter","esnext.set.find","esnext.set.intersection","esnext.set.is-disjoint-from","esnext.set.is-subset-of","esnext.set.is-superset-of","esnext.set.join","esnext.set.map","esnext.set.reduce","esnext.set.some","esnext.set.symmetric-difference","esnext.set.union"].concat(b(mwe)),Ewe=["es.weak-map","es.weak-map.get-or-insert","es.weak-map.get-or-insert-computed","esnext.weak-map.delete-all","esnext.weak-map.emplace"].concat(b(mwe)),Swe=["es.weak-set","esnext.weak-set.add-all","esnext.weak-set.delete-all"].concat(b(mwe)),Twe=["web.dom-exception.constructor","web.dom-exception.stack","web.dom-exception.to-string-tag","es.error.to-string"],Pwe=["web.url-search-params","web.url-search-params.delete","web.url-search-params.has","web.url-search-params.size"].concat(b(mwe)),Awe=["esnext.async-iterator.constructor"].concat(xwe),kwe=["esnext.async-iterator.every","esnext.async-iterator.filter","esnext.async-iterator.find","esnext.async-iterator.flat-map","esnext.async-iterator.for-each","esnext.async-iterator.map","esnext.async-iterator.reduce","esnext.async-iterator.some"],Cwe=["es.iterator.constructor","es.object.to-string"],_we=["esnext.symbol.metadata","esnext.function.metadata"],Iwe=function(e){return{from:lwe(null,["es.typed-array.from",e].concat(vwe)),fromAsync:lwe(null,["esnext.typed-array.from-async",e].concat(b(Rwe),vwe)),of:lwe(null,["es.typed-array.of",e].concat(vwe))}},Dwe=["es.data-view"].concat(bwe),Owe={AsyncDisposableStack:lwe("async-disposable-stack/index",["es.async-disposable-stack.constructor","es.object.to-string","es.async-iterator.async-dispose","es.iterator.dispose"].concat(xwe,b(hwe))),AsyncIterator:lwe("async-iterator/index",Awe),AggregateError:lwe("aggregate-error",["es.aggregate-error"].concat(ywe,b(mwe),["es.aggregate-error.cause"])),ArrayBuffer:lwe(null,bwe),DataView:lwe(null,Dwe),Date:lwe(null,["es.date.to-string"]),DOMException:lwe("dom-exception/index",Twe),DisposableStack:lwe("disposable-stack/index",["es.disposable-stack.constructor","es.object.to-string","es.iterator.dispose"].concat(b(hwe))),Error:lwe(null,ywe),EvalError:lwe(null,ywe),Float32Array:uwe("es.typed-array.float32-array"),Float64Array:uwe("es.typed-array.float64-array"),Int8Array:uwe("es.typed-array.int8-array"),Int16Array:uwe("es.typed-array.int16-array"),Int32Array:uwe("es.typed-array.int32-array"),Iterator:lwe("iterator/index",Cwe),Uint8Array:uwe("es.typed-array.uint8-array","es.uint8-array.set-from-base64","es.uint8-array.set-from-hex","es.uint8-array.to-base64","es.uint8-array.to-hex"),Uint8ClampedArray:uwe("es.typed-array.uint8-clamped-array"),Uint16Array:uwe("es.typed-array.uint16-array"),Uint32Array:uwe("es.typed-array.uint32-array"),Map:lwe("map/index",jwe),Number:lwe(null,["es.number.constructor"]),Observable:lwe("observable/index",["esnext.observable","esnext.symbol.observable","es.object.to-string"].concat(b(mwe))),Promise:lwe("promise/index",xwe),RangeError:lwe(null,ywe),ReferenceError:lwe(null,ywe),Reflect:lwe(null,["es.reflect.to-string-tag","es.object.to-string"]),RegExp:lwe(null,["es.regexp.constructor","es.regexp.dot-all","es.regexp.exec","es.regexp.sticky","es.regexp.to-string"]),Set:lwe("set/index",wwe),SuppressedError:lwe("suppressed-error",hwe),Symbol:lwe("symbol/index",["es.symbol","es.symbol.description","es.object.to-string"]),SyntaxError:lwe(null,ywe),TypeError:lwe(null,ywe),URIError:lwe(null,ywe),URL:lwe("url/index",["web.url","web.url.to-json"].concat(b(Pwe))),URLSearchParams:lwe("url-search-params/index",Pwe),WeakMap:lwe("weak-map/index",Ewe),WeakSet:lwe("weak-set/index",Swe),atob:lwe("atob",["web.atob"].concat(Twe)),btoa:lwe("btoa",["web.btoa"].concat(Twe)),clearImmediate:lwe("clear-immediate",["web.immediate"]),compositeKey:lwe("composite-key",["esnext.composite-key"]),compositeSymbol:lwe("composite-symbol",["esnext.composite-symbol"]),escape:lwe("escape",["es.escape"]),fetch:lwe(null,xwe),globalThis:lwe("global-this",["es.global-this"]),parseFloat:lwe("parse-float",["es.parse-float"]),parseInt:lwe("parse-int",["es.parse-int"]),queueMicrotask:lwe("queue-microtask",["web.queue-microtask"]),self:lwe("self",["web.self"]),setImmediate:lwe("set-immediate",["web.immediate"]),setInterval:lwe("set-interval",["web.timers"]),setTimeout:lwe("set-timeout",["web.timers"]),structuredClone:lwe("structured-clone",["web.structured-clone"].concat(Twe,["es.array.iterator","es.object.keys","es.object.to-string","es.map","es.set"])),unescape:lwe("unescape",["es.unescape"])},Nwe={AsyncIterator:{from:lwe("async-iterator/from",["esnext.async-iterator.from"].concat(b(Awe),kwe,b(fwe)))},Array:{from:lwe("array/from",["es.array.from","es.string.iterator"]),fromAsync:lwe("array/from-async",["es.array.from-async"].concat(b(Rwe))),isArray:lwe("array/is-array",["es.array.is-array"]),isTemplateObject:lwe("array/is-template-object",["esnext.array.is-template-object"]),of:lwe("array/of",["es.array.of"])},ArrayBuffer:{isView:lwe(null,["es.array-buffer.is-view"])},BigInt:{range:lwe("bigint/range",["esnext.bigint.range","es.object.to-string"])},Date:{now:lwe("date/now",["es.date.now"])},Error:{isError:lwe("error/is-error",["es.error.is-error","es.object.create"])},Function:{isCallable:lwe("function/is-callable",["esnext.function.is-callable"]),isConstructor:lwe("function/is-constructor",["esnext.function.is-constructor"])},Iterator:{concat:lwe("iterator/concat",["es.iterator.concat"].concat(Cwe,b(fwe))),from:lwe("iterator/from",["es.iterator.from"].concat(Cwe,b(fwe))),range:lwe("iterator/range",["esnext.iterator.range"].concat(Cwe)),zip:lwe("iterator/zip",["esnext.iterator.zip"].concat(Cwe,b(fwe))),zipKeyed:lwe("iterator/zip-keyed",["esnext.iterator.zip-keyed","es.object.create","es.reflect.own-keys"].concat(Cwe,b(fwe)))},JSON:{isRawJSON:lwe("json/is-raw-json",["es.json.is-raw-json"]),parse:lwe("json/parse",["es.json.parse","es.object.keys"]),rawJSON:lwe("json/raw-json",["es.json.raw-json","es.object.create","es.object.freeze"]),stringify:lwe("json/stringify",["es.json.stringify","es.date.to-json"])},Math:{DEG_PER_RAD:lwe("math/deg-per-rad",["esnext.math.deg-per-rad"]),RAD_PER_DEG:lwe("math/rad-per-deg",["esnext.math.rad-per-deg"]),acosh:lwe("math/acosh",["es.math.acosh"]),asinh:lwe("math/asinh",["es.math.asinh"]),atanh:lwe("math/atanh",["es.math.atanh"]),cbrt:lwe("math/cbrt",["es.math.cbrt"]),clamp:lwe("math/clamp",["esnext.math.clamp"]),clz32:lwe("math/clz32",["es.math.clz32"]),cosh:lwe("math/cosh",["es.math.cosh"]),degrees:lwe("math/degrees",["esnext.math.degrees"]),expm1:lwe("math/expm1",["es.math.expm1"]),fround:lwe("math/fround",["es.math.fround"]),f16round:lwe("math/f16round",["es.math.f16round"]),fscale:lwe("math/fscale",["esnext.math.fscale"]),hypot:lwe("math/hypot",["es.math.hypot"]),iaddh:lwe("math/iaddh",["esnext.math.iaddh"]),imul:lwe("math/imul",["es.math.imul"]),imulh:lwe("math/imulh",["esnext.math.imulh"]),isubh:lwe("math/isubh",["esnext.math.isubh"]),log10:lwe("math/log10",["es.math.log10"]),log1p:lwe("math/log1p",["es.math.log1p"]),log2:lwe("math/log2",["es.math.log2"]),radians:lwe("math/radians",["esnext.math.radians"]),scale:lwe("math/scale",["esnext.math.scale"]),seededPRNG:lwe("math/seeded-prng",["esnext.math.seeded-prng"]),sign:lwe("math/sign",["es.math.sign"]),signbit:lwe("math/signbit",["esnext.math.signbit"]),sinh:lwe("math/sinh",["es.math.sinh"]),sumPrecise:lwe("math/sum-precise",["es.math.sum-precise","es.array.iterator"]),tanh:lwe("math/tanh",["es.math.tanh"]),trunc:lwe("math/trunc",["es.math.trunc"]),umulh:lwe("math/umulh",["esnext.math.umulh"])},Map:{from:lwe("map/from",["esnext.map.from"].concat(b(jwe))),groupBy:lwe("map/group-by",["es.map.group-by"].concat(b(jwe))),keyBy:lwe("map/key-by",["esnext.map.key-by"].concat(b(jwe))),of:lwe("map/of",["esnext.map.of"].concat(b(jwe)))},Number:{EPSILON:lwe("number/epsilon",["es.number.epsilon"]),MAX_SAFE_INTEGER:lwe("number/max-safe-integer",["es.number.max-safe-integer"]),MIN_SAFE_INTEGER:lwe("number/min-safe-integer",["es.number.min-safe-integer"]),fromString:lwe("number/from-string",["esnext.number.from-string"]),isFinite:lwe("number/is-finite",["es.number.is-finite"]),isInteger:lwe("number/is-integer",["es.number.is-integer"]),isNaN:lwe("number/is-nan",["es.number.is-nan"]),isSafeInteger:lwe("number/is-safe-integer",["es.number.is-safe-integer"]),parseFloat:lwe("number/parse-float",["es.number.parse-float"]),parseInt:lwe("number/parse-int",["es.number.parse-int"]),range:lwe("number/range",["esnext.number.range","es.object.to-string"])},Object:{assign:lwe("object/assign",["es.object.assign"]),create:lwe("object/create",["es.object.create"]),defineProperties:lwe("object/define-properties",["es.object.define-properties"]),defineProperty:lwe("object/define-property",["es.object.define-property"]),entries:lwe("object/entries",["es.object.entries"]),freeze:lwe("object/freeze",["es.object.freeze"]),fromEntries:lwe("object/from-entries",["es.object.from-entries","es.array.iterator"]),getOwnPropertyDescriptor:lwe("object/get-own-property-descriptor",["es.object.get-own-property-descriptor"]),getOwnPropertyDescriptors:lwe("object/get-own-property-descriptors",["es.object.get-own-property-descriptors"]),getOwnPropertyNames:lwe("object/get-own-property-names",["es.object.get-own-property-names"]),getOwnPropertySymbols:lwe("object/get-own-property-symbols",["es.symbol"]),getPrototypeOf:lwe("object/get-prototype-of",["es.object.get-prototype-of"]),groupBy:lwe("object/group-by",["es.object.group-by","es.object.create"]),hasOwn:lwe("object/has-own",["es.object.has-own"]),is:lwe("object/is",["es.object.is"]),isExtensible:lwe("object/is-extensible",["es.object.is-extensible"]),isFrozen:lwe("object/is-frozen",["es.object.is-frozen"]),isSealed:lwe("object/is-sealed",["es.object.is-sealed"]),keys:lwe("object/keys",["es.object.keys"]),preventExtensions:lwe("object/prevent-extensions",["es.object.prevent-extensions"]),seal:lwe("object/seal",["es.object.seal"]),setPrototypeOf:lwe("object/set-prototype-of",["es.object.set-prototype-of"]),values:lwe("object/values",["es.object.values"])},Promise:{all:lwe(null,Rwe),allSettled:lwe("promise/all-settled",["es.promise.all-settled"].concat(b(Rwe))),any:lwe("promise/any",["es.promise.any","es.aggregate-error"].concat(b(Rwe))),race:lwe(null,Rwe),try:lwe("promise/try",["es.promise.try"].concat(xwe)),withResolvers:lwe("promise/with-resolvers",["es.promise.with-resolvers"].concat(xwe))},Reflect:{apply:lwe("reflect/apply",["es.reflect.apply"]),construct:lwe("reflect/construct",["es.reflect.construct"]),defineMetadata:lwe("reflect/define-metadata",["esnext.reflect.define-metadata"]),defineProperty:lwe("reflect/define-property",["es.reflect.define-property"]),deleteMetadata:lwe("reflect/delete-metadata",["esnext.reflect.delete-metadata"]),deleteProperty:lwe("reflect/delete-property",["es.reflect.delete-property"]),get:lwe("reflect/get",["es.reflect.get"]),getMetadata:lwe("reflect/get-metadata",["esnext.reflect.get-metadata"]),getMetadataKeys:lwe("reflect/get-metadata-keys",["esnext.reflect.get-metadata-keys"]),getOwnMetadata:lwe("reflect/get-own-metadata",["esnext.reflect.get-own-metadata"]),getOwnMetadataKeys:lwe("reflect/get-own-metadata-keys",["esnext.reflect.get-own-metadata-keys"]),getOwnPropertyDescriptor:lwe("reflect/get-own-property-descriptor",["es.reflect.get-own-property-descriptor"]),getPrototypeOf:lwe("reflect/get-prototype-of",["es.reflect.get-prototype-of"]),has:lwe("reflect/has",["es.reflect.has"]),hasMetadata:lwe("reflect/has-metadata",["esnext.reflect.has-metadata"]),hasOwnMetadata:lwe("reflect/has-own-metadata",["esnext.reflect.has-own-metadata"]),isExtensible:lwe("reflect/is-extensible",["es.reflect.is-extensible"]),metadata:lwe("reflect/metadata",["esnext.reflect.metadata"]),ownKeys:lwe("reflect/own-keys",["es.reflect.own-keys"]),preventExtensions:lwe("reflect/prevent-extensions",["es.reflect.prevent-extensions"]),set:lwe("reflect/set",["es.reflect.set"]),setPrototypeOf:lwe("reflect/set-prototype-of",["es.reflect.set-prototype-of"])},RegExp:{escape:lwe("regexp/escape",["es.regexp.escape"])},Set:{from:lwe("set/from",["esnext.set.from"].concat(b(wwe))),of:lwe("set/of",["esnext.set.of"].concat(b(wwe)))},String:{cooked:lwe("string/cooked",["esnext.string.cooked"]),dedent:lwe("string/dedent",["esnext.string.dedent","es.string.from-code-point","es.weak-map"]),fromCodePoint:lwe("string/from-code-point",["es.string.from-code-point"]),raw:lwe("string/raw",["es.string.raw"])},Symbol:{asyncDispose:lwe("symbol/async-dispose",["es.symbol.async-dispose","es.async-iterator.async-dispose"]),asyncIterator:lwe("symbol/async-iterator",["es.symbol.async-iterator"]),customMatcher:lwe("symbol/custom-matcher",["esnext.symbol.custom-matcher"]),dispose:lwe("symbol/dispose",["es.symbol.dispose","es.iterator.dispose"]),for:lwe("symbol/for",[],"es.symbol"),hasInstance:lwe("symbol/has-instance",["es.symbol.has-instance","es.function.has-instance"]),isConcatSpreadable:lwe("symbol/is-concat-spreadable",["es.symbol.is-concat-spreadable","es.array.concat"]),isRegistered:lwe("symbol/is-registered",["esnext.symbol.is-registered","es.symbol"]),isRegisteredSymbol:lwe("symbol/is-registered-symbol",["esnext.symbol.is-registered-symbol","es.symbol"]),isWellKnown:lwe("symbol/is-well-known",["esnext.symbol.is-well-known","es.symbol"]),isWellKnownSymbol:lwe("symbol/is-well-known-symbol",["esnext.symbol.is-well-known-symbol","es.symbol"]),iterator:lwe("symbol/iterator",["es.symbol.iterator"].concat(b(mwe))),keyFor:lwe("symbol/key-for",[],"es.symbol"),match:lwe("symbol/match",["es.symbol.match","es.string.match"]),matcher:lwe("symbol/matcher",["esnext.symbol.matcher"]),matchAll:lwe("symbol/match-all",["es.symbol.match-all","es.string.match-all"]),metadata:lwe("symbol/metadata",_we),metadataKey:lwe("symbol/metadata-key",["esnext.symbol.metadata-key"]),observable:lwe("symbol/observable",["esnext.symbol.observable"]),patternMatch:lwe("symbol/pattern-match",["esnext.symbol.pattern-match"]),replace:lwe("symbol/replace",["es.symbol.replace","es.string.replace"]),search:lwe("symbol/search",["es.symbol.search","es.string.search"]),species:lwe("symbol/species",["es.symbol.species","es.array.species"]),split:lwe("symbol/split",["es.symbol.split","es.string.split"]),toPrimitive:lwe("symbol/to-primitive",["es.symbol.to-primitive","es.date.to-primitive"]),toStringTag:lwe("symbol/to-string-tag",["es.symbol.to-string-tag","es.object.to-string","es.math.to-string-tag","es.json.to-string-tag"]),unscopables:lwe("symbol/unscopables",["es.symbol.unscopables"])},URL:{canParse:lwe("url/can-parse",["web.url.can-parse","web.url"]),parse:lwe("url/parse",["web.url.parse","web.url"])},WeakMap:{from:lwe("weak-map/from",["esnext.weak-map.from"].concat(b(Ewe))),of:lwe("weak-map/of",["esnext.weak-map.of"].concat(b(Ewe)))},WeakSet:{from:lwe("weak-set/from",["esnext.weak-set.from"].concat(b(Swe))),of:lwe("weak-set/of",["esnext.weak-set.of"].concat(b(Swe)))},Int8Array:Iwe("es.typed-array.int8-array"),Uint8Array:Object.assign({fromBase64:lwe(null,["es.uint8-array.from-base64"].concat(vwe)),fromHex:lwe(null,["es.uint8-array.from-hex"].concat(vwe))},Iwe("es.typed-array.uint8-array")),Uint8ClampedArray:Iwe("es.typed-array.uint8-clamped-array"),Int16Array:Iwe("es.typed-array.int16-array"),Uint16Array:Iwe("es.typed-array.uint16-array"),Int32Array:Iwe("es.typed-array.int32-array"),Uint32Array:Iwe("es.typed-array.uint32-array"),Float32Array:Iwe("es.typed-array.float32-array"),Float64Array:Iwe("es.typed-array.float64-array"),WebAssembly:{CompileError:lwe(null,ywe),LinkError:lwe(null,ywe),RuntimeError:lwe(null,ywe)}};["AggregateError","EvalError","RangeError","ReferenceError","SuppressedError","SyntaxError","TypeError","URIError"].forEach(function(e){Nwe[e]=Nwe.Error});var Bwe=((awe={asIndexedPairs:lwe(null,["esnext.async-iterator.as-indexed-pairs"].concat(b(Awe),["esnext.iterator.as-indexed-pairs"],Cwe)),at:lwe("instance/at",["esnext.string.at","es.string.at-alternative","es.array.at"]),anchor:lwe(null,["es.string.anchor"]),big:lwe(null,["es.string.big"]),bind:lwe("instance/bind",["es.function.bind"]),blink:lwe(null,["es.string.blink"]),bold:lwe(null,["es.string.bold"]),chunks:lwe(null,["esnext.iterator.chunks"].concat(Cwe)),clamp:lwe("instance/clamp",["esnext.number.clamp"]),codePointAt:lwe("instance/code-point-at",["es.string.code-point-at"]),codePoints:lwe("instance/code-points",["esnext.string.code-points"]),concat:lwe("instance/concat",["es.array.concat"],void 0,["String"]),copyWithin:lwe("instance/copy-within",["es.array.copy-within"]),demethodize:lwe("instance/demethodize",["esnext.function.demethodize"]),description:lwe(null,["es.symbol","es.symbol.description"]),dotAll:lwe(null,["es.regexp.dot-all"]),drop:lwe(null,["es.iterator.drop"].concat(Cwe,["esnext.async-iterator.drop"],b(Awe))),endsWith:lwe("instance/ends-with",["es.string.ends-with"]),entries:lwe("instance/entries",gwe),every:lwe("instance/every",["es.array.every","es.iterator.every"].concat(Cwe)),exec:lwe(null,["es.regexp.exec"]),fill:lwe("instance/fill",["es.array.fill"]),filter:lwe("instance/filter",["es.array.filter","es.iterator.filter"].concat(Cwe)),filterReject:lwe("instance/filter-reject",["esnext.array.filter-reject"]),finally:lwe(null,["es.promise.finally"].concat(xwe)),find:lwe("instance/find",["es.array.find","es.iterator.find"].concat(Cwe)),findIndex:lwe("instance/find-index",["es.array.find-index"]),findLast:lwe("instance/find-last",["es.array.find-last"]),findLastIndex:lwe("instance/find-last-index",["es.array.find-last-index"]),fixed:lwe(null,["es.string.fixed"]),flags:lwe("instance/flags",["es.regexp.flags"]),flatMap:lwe("instance/flat-map",["es.array.flat-map","es.array.unscopables.flat-map","es.iterator.flat-map"].concat(Cwe)),flat:lwe("instance/flat",["es.array.flat","es.array.unscopables.flat"]),getFloat16:lwe(null,["es.data-view.get-float16"].concat(b(Dwe))),getUint8Clamped:lwe(null,["esnext.data-view.get-uint8-clamped"].concat(b(Dwe))),getYear:lwe(null,["es.date.get-year"]),group:lwe("instance/group",["esnext.array.group"]),groupBy:lwe("instance/group-by",["esnext.array.group-by"]),groupByToMap:lwe("instance/group-by-to-map",["esnext.array.group-by-to-map","es.map","es.object.to-string"]),groupToMap:lwe("instance/group-to-map",["esnext.array.group-to-map","es.map","es.object.to-string"]),fontcolor:lwe(null,["es.string.fontcolor"]),fontsize:lwe(null,["es.string.fontsize"]),forEach:lwe("instance/for-each",["es.array.for-each","es.iterator.for-each"].concat(Cwe,["web.dom-collections.for-each"])),includes:lwe("instance/includes",["es.array.includes","es.string.includes"]),indexed:lwe(null,["esnext.async-iterator.indexed"].concat(b(Awe),["esnext.iterator.indexed"],Cwe)),indexOf:lwe("instance/index-of",["es.array.index-of"]),isWellFormed:lwe("instance/is-well-formed",["es.string.is-well-formed"]),italics:lwe(null,["es.string.italics"]),join:lwe(null,["es.array.join"]),keys:lwe("instance/keys",gwe),lastIndex:lwe(null,["esnext.array.last-index"]),lastIndexOf:lwe("instance/last-index-of",["es.array.last-index-of"]),lastItem:lwe(null,["esnext.array.last-item"]),link:lwe(null,["es.string.link"]),map:lwe("instance/map",["es.array.map","es.iterator.map"].concat(Cwe)),match:lwe(null,["es.string.match","es.regexp.exec"]),matchAll:lwe("instance/match-all",["es.string.match-all","es.regexp.exec"]),name:lwe(null,["es.function.name"]),padEnd:lwe("instance/pad-end",["es.string.pad-end"]),padStart:lwe("instance/pad-start",["es.string.pad-start"]),push:lwe("instance/push",["es.array.push"]),reduce:lwe("instance/reduce",["es.array.reduce","es.iterator.reduce"].concat(Cwe)),reduceRight:lwe("instance/reduce-right",["es.array.reduce-right"]),repeat:lwe("instance/repeat",["es.string.repeat"]),replace:lwe(null,["es.string.replace","es.regexp.exec"]),replaceAll:lwe("instance/replace-all",["es.string.replace-all","es.string.replace","es.regexp.exec"]),reverse:lwe("instance/reverse",["es.array.reverse"]),search:lwe(null,["es.string.search","es.regexp.exec"]),setFloat16:lwe(null,["es.data-view.set-float16"].concat(b(Dwe))),setUint8Clamped:lwe(null,["esnext.data-view.set-uint8-clamped"].concat(b(Dwe))),setYear:lwe(null,["es.date.set-year"]),slice:lwe("instance/slice",["es.array.slice"]),sliding:lwe(null,["esnext.iterator.sliding"].concat(Cwe)),small:lwe(null,["es.string.small"]),some:lwe("instance/some",["es.array.some","es.iterator.some"].concat(Cwe)),sort:lwe("instance/sort",["es.array.sort"]),splice:lwe("instance/splice",["es.array.splice"]),split:lwe(null,["es.string.split","es.regexp.exec"]),startsWith:lwe("instance/starts-with",["es.string.starts-with"]),sticky:lwe(null,["es.regexp.sticky"]),strike:lwe(null,["es.string.strike"]),sub:lwe(null,["es.string.sub"]),substr:lwe(null,["es.string.substr"]),sup:lwe(null,["es.string.sup"]),take:lwe(null,["es.iterator.take"].concat(Cwe,["esnext.async-iterator.take"],b(Awe))),test:lwe(null,["es.regexp.test","es.regexp.exec"]),toArray:lwe(null,["es.iterator.to-array"].concat(Cwe,["esnext.async-iterator.to-array"],b(Awe))),toAsync:lwe(null,["esnext.iterator.to-async"].concat(Cwe,b(Awe),kwe)),toExponential:lwe(null,["es.number.to-exponential"]),toFixed:lwe(null,["es.number.to-fixed"]),toGMTString:lwe(null,["es.date.to-gmt-string"]),toISOString:lwe(null,["es.date.to-iso-string"]),toJSON:lwe(null,["es.date.to-json"]),toPrecision:lwe(null,["es.number.to-precision"]),toReversed:lwe("instance/to-reversed",["es.array.to-reversed"]),toSorted:lwe("instance/to-sorted",["es.array.to-sorted","es.array.sort"]),toSpliced:lwe("instance/to-spliced",["es.array.to-spliced"]),toString:lwe(null,["es.object.to-string","es.error.to-string","es.date.to-string","es.regexp.to-string"]),toWellFormed:lwe("instance/to-well-formed",["es.string.to-well-formed"]),trim:lwe("instance/trim",["es.string.trim"]),trimEnd:lwe("instance/trim-end",["es.string.trim-end"]),trimLeft:lwe("instance/trim-left",["es.string.trim-start"]),trimRight:lwe("instance/trim-right",["es.string.trim-end"]),trimStart:lwe("instance/trim-start",["es.string.trim-start"]),uniqueBy:lwe("instance/unique-by",["esnext.array.unique-by","es.map"]),unshift:lwe("instance/unshift",["es.array.unshift"]),unThis:lwe("instance/un-this",["esnext.function.un-this"]),values:lwe("instance/values",gwe),windows:lwe(null,["esnext.iterator.windows"].concat(Cwe)),with:lwe("instance/with",["es.array.with"]),__defineGetter__:lwe(null,["es.object.define-getter"]),__defineSetter__:lwe(null,["es.object.define-setter"]),__lookupGetter__:lwe(null,["es.object.lookup-getter"]),__lookupSetter__:lwe(null,["es.object.lookup-setter"])}).__proto__=lwe(null,["es.object.proto"]),awe),Mwe=new Set(["array","array/from","array/is-array","array/of","clear-immediate","date/now","instance/bind","instance/code-point-at","instance/concat","instance/copy-within","instance/ends-with","instance/entries","instance/every","instance/fill","instance/filter","instance/find","instance/find-index","instance/flags","instance/flat","instance/flat-map","instance/for-each","instance/includes","instance/index-of","instance/keys","instance/last-index-of","instance/map","instance/pad-end","instance/pad-start","instance/reduce","instance/reduce-right","instance/repeat","instance/reverse","instance/slice","instance/some","instance/sort","instance/splice","instance/starts-with","instance/trim","instance/trim-end","instance/trim-left","instance/trim-right","instance/trim-start","instance/values","json/stringify","map","math/acosh","math/asinh","math/atanh","math/cbrt","math/clz32","math/cosh","math/expm1","math/fround","math/hypot","math/imul","math/log10","math/log1p","math/log2","math/sign","math/sinh","math/tanh","math/trunc","number/epsilon","number/is-finite","number/is-integer","number/is-nan","number/is-safe-integer","number/max-safe-integer","number/min-safe-integer","number/parse-float","number/parse-int","object/assign","object/create","object/define-properties","object/define-property","object/entries","object/freeze","object/from-entries","object/get-own-property-descriptor","object/get-own-property-descriptors","object/get-own-property-names","object/get-own-property-symbols","object/get-prototype-of","object/is","object/is-extensible","object/is-frozen","object/is-sealed","object/keys","object/prevent-extensions","object/seal","object/set-prototype-of","object/values","parse-float","parse-int","promise","queue-microtask","reflect/apply","reflect/construct","reflect/define-property","reflect/delete-property","reflect/get","reflect/get-own-property-descriptor","reflect/get-prototype-of","reflect/has","reflect/is-extensible","reflect/own-keys","reflect/prevent-extensions","reflect/set","reflect/set-prototype-of","set","set-immediate","set-interval","set-timeout","string/from-code-point","string/raw","symbol","symbol/async-iterator","symbol/for","symbol/has-instance","symbol/is-concat-spreadable","symbol/iterator","symbol/key-for","symbol/match","symbol/replace","symbol/search","symbol/species","symbol/split","symbol/to-primitive","symbol/to-string-tag","symbol/unscopables","url","url-search-params","weak-map","weak-set"]),Fwe=new Set([].concat(b(Mwe),["aggregate-error","composite-key","composite-symbol","global-this","instance/at","instance/code-points","instance/match-all","instance/replace-all","math/clamp","math/degrees","math/deg-per-rad","math/fscale","math/iaddh","math/imulh","math/isubh","math/rad-per-deg","math/radians","math/scale","math/seeded-prng","math/signbit","math/umulh","number/from-string","observable","reflect/define-metadata","reflect/delete-metadata","reflect/get-metadata","reflect/get-metadata-keys","reflect/get-own-metadata","reflect/get-own-metadata-keys","reflect/has-metadata","reflect/has-own-metadata","reflect/metadata","symbol/dispose","symbol/observable","symbol/pattern-match"])),Lwe=r.types;function Uwe(e,t){var r=t.node,a=t.parent;if("es.string.split"===e.name){if(!Lwe.isCallExpression(a,{callee:r}))return!1;if(a.arguments.length<1)return!0;var n=a.arguments[0];return Lwe.isStringLiteral(n)||Lwe.isTemplateLiteral(n)}}var qwe=r.types,Gwe="@babel/runtime-corejs3";function Wwe(e,t,r,a){var n=y(Vwe(e.node,e.scope),2),s=n[0],o=n[1],i=qwe.callExpression(t,[s]);a&&(i=a(i));var d=qwe.identifier("call");e.replaceWith(r?qwe.optionalMemberExpression(i,d,!1,!0):qwe.memberExpression(i,d)),e.parentPath.unshiftContainer("arguments",o)}function Vwe(e,t){var r,a,n=e.object;return qwe.isIdentifier(n)?(a=n,r=qwe.cloneNode(n)):(a=t.generateDeclaredUidIdentifier("context"),r=qwe.assignmentExpression("=",qwe.cloneNode(a),n)),[r,a]}function Hwe(e,t){for(var r=t;!r.optional&&qwe.isOptionalMemberExpression(r.object);)r=r.object;r.optional=!1;var a=e.generateDeclaredUidIdentifier("context"),n=qwe.assignmentExpression("=",a,r.object);return r.object=qwe.cloneNode(a),function(e){return qwe.conditionalExpression(qwe.binaryExpression("==",n,qwe.nullLiteral()),qwe.unaryExpression("void",qwe.numericLiteral(0)),e)}}function zwe(e){return"core-js/modules/"+e+".js"}function Kwe(e,t,r){return t?Gwe+"/core-js/"+e+r:"core-js-pure/features/"+e+".js"}var Xwe,Jwe=r,Ywe=Jwe.types,$we=Jwe.template,Qwe=["array","string","iterator","async-iterator","dom-collections"].map(function(e){return new RegExp("[a-z]*\\."+e+"\\..*")}),Zwe=function(e,t){if(t(e))return!0;if(!e.startsWith("es."))return!1;var r="esnext."+e.slice(3);return!!Nje[r]&&t(r)},eEe=(Xwe=function(e,t){var r=e.getUtils,a=e.method,n=e.shouldInjectPolyfill,s=e.createMetaResolver,o=e.debug,d=e.babel,c=t.version,l=void 0===c?3:c,u=t.proposals,p=t.shippedProposals,f=t["#__secret_key__@babel/preset-env__compatibility"],g=(void 0===f?{}:f).noRuntimeName,m=void 0!==g&&g,b=t["#__secret_key__@babel/runtime__compatibility"],v=void 0===b?{}:b,x=v.useBabelRuntime,R=void 0!==x&&x,j=v.ext,w=void 0===j?".js":j,E=d.caller(function(e){return"babel-loader"===(null==e?void 0:e.name)}),S=s({global:Owe,static:Nwe,instance:Bwe}),T=new Set(Bje(l));function P(e,t){return!!n(e)&&(o(e),t.injectGlobalImport(zwe(e),e),!0)}function A(e,t,r){void 0===r&&(r=!0);for(var a,n=i(e);!(a=n()).done;){var s=a.value;r?Zwe(s,function(e){return P(e,t)}):P(s,t)}}function k(e,t,r,a){if(e.pure&&!(a&&e.exclude&&e.exclude.includes(a))&&Zwe(e.name,n)){var s=e.name,o=!1;if((u||p&&s.startsWith("esnext.")||s.startsWith("es.")&&!T.has(s))&&(o=!0),R&&!(o?Fwe:Mwe).has(e.pure))return;var i=function(e){return R?e?Gwe+"/core-js":Gwe+"/core-js-stable":e?"core-js-pure/features":"core-js-pure/stable"}(o);return r.injectDefaultImport(i+"/"+e.pure+w,t)}}return{name:"corejs3",runtimeName:m?null:Gwe,polyfills:Nje,filterPolyfills:function(e){return!!T.has(e)&&(!(!u&&"entry-global"!==a)||!(!p||!dwe.has(e))||function(e){return!e.startsWith("esnext.")||"es."+e.slice(7)in Nje}(e))},entryGlobal:function(e,t,r){if("import"===e.kind){var a,s=("string"==typeof(a=e.source)&&(a=a.replace(/\\/g,"/").replace(/(\/(index)?)?(\.js)?$/i,"").toLowerCase()),Object.prototype.hasOwnProperty.call(Mje,a)&&Mje[a]);if(s)if(1===s.length&&e.source===zwe(s[0])&&n(s[0]))o(null);else{var i=new Set(s),d=s.filter(function(e){if(!e.startsWith("esnext."))return!0;var t=e.replace("esnext.","es.");return!i.has(t)||!n(t)});A(d,t,!1),r.remove()}}},usageGlobal:function(e,t,r){var a=S(e);if(a&&!Uwe(a.desc,r)){var n=a.desc.global;if("global"!==a.kind&&"object"in e&&e.object&&"prototype"===e.placement){var s=e.object.toLowerCase();n=n.filter(function(e){return!Qwe.some(function(t){return t.test(e)})||e.includes(s)})}return A(n,t),!0}},usagePure:function(e,t,r){if("in"!==e.kind){if(!r.parentPath.isUnaryExpression({operator:"delete"})){if("property"===e.kind){if(!r.isMemberExpression()&&!r.isOptionalMemberExpression())return;if(!r.isReferenced())return;if(r.parentPath.isUpdateExpression())return;if(Ywe.isSuper(r.node.object))return;if("Symbol.iterator"===e.key){if(!n("es.symbol.iterator"))return;var a=r.parent,s=r.node;return void(Ywe.isCallExpression(a,{callee:s})?0===a.arguments.length?(r.parentPath.replaceWith(Ywe.callExpression(t.injectDefaultImport(Kwe("get-iterator",R,w),"getIterator"),[s.object])),r.skip()):Wwe(r,t.injectDefaultImport(Kwe("get-iterator-method",R,w),"getIteratorMethod")):r.replaceWith(Ywe.callExpression(t.injectDefaultImport(Kwe("get-iterator-method",R,w),"getIteratorMethod"),[r.node.object])))}}var o=S(e);if(o&&!Uwe(o.desc,r))if(R&&o.desc.pure&&"/index"===o.desc.pure.slice(-6)&&(o=Object.assign(Object.assign({},o),{},{desc:Object.assign(Object.assign({},o.desc),{},{pure:o.desc.pure.slice(0,-6)})})),"global"===o.kind){var i=k(o.desc,o.name,t);i&&r.replaceWith(i)}else if("static"===o.kind){var d=k(o.desc,o.name,t,e.object);if(d){r.replaceWith(d);var c=r.parentPath;if(c.isOptionalMemberExpression()||c.isOptionalCallExpression())do{var l=c;l.type=l.node.type="OptionalMemberExpression"===c.type?"MemberExpression":"CallExpression",delete l.node.optional,c=c.parentPath}while((c.isOptionalMemberExpression()||c.isOptionalCallExpression())&&!c.node.optional)}}else if("instance"===o.kind){var u=k(o.desc,o.name+"InstanceProperty",t,e.object);if(!u)return;var p=r.node,f=r.parent;if(Ywe.isOptionalCallExpression(f)&&f.callee===p){var g=f.optional;if(f.optional=!g,g)Ywe.isOptionalMemberExpression(p)?Wwe(r,u,!0,Hwe(r.scope,p)):Wwe(r,u,!0);else{var m=Hwe(r.scope,p),b=y(Vwe(p,r.scope),2),v=b[0],x=b[1];r.replaceWith(m($we.expression.ast(nwe||(nwe=h(["\n Function.call.bind(","(","), ",")\n "])),u,v,x)))}}else if(Ywe.isCallExpression(f)&&f.callee===p)Wwe(r,u,!1);else if(Ywe.isOptionalMemberExpression(p)){var j=Hwe(r.scope,p);r.replaceWith(j(Ywe.callExpression(u,[p.object]))),Ywe.isOptionalMemberExpression(f)&&(f.optional=!0)}else r.replaceWith(Ywe.callExpression(u,[p.object]))}}}else"Symbol.iterator"===e.key&&r.replaceWith(Ywe.callExpression(t.injectDefaultImport(Kwe("is-iterable",R,w),"isIterable"),[r.node.right]))},visitor:"usage-global"===a&&{CallExpression:function(e){if(e.get("callee").isImport()){var t=r(e);A(E?Rwe:xwe,t)}},Function:function(e){e.node.async&&A(xwe,r(e))},"ForOfStatement|ArrayPattern":function(e){A(fwe,r(e))},SpreadElement:function(e){e.parentPath.isObjectExpression()||A(fwe,r(e))},YieldExpression:function(e){e.node.delegate&&A(fwe,r(e))},Class:function(e){var t;((null==(t=e.node.decorators)?void 0:t.length)||e.node.body.body.some(function(e){var t;return null==(t=e.decorators)?void 0:t.length}))&&A(_we,r(e))}}}},function(e,t,r){e.assertVersion("^7.0.0 || ^8.0.0-alpha.0");var a,n=e.traverse,s=function(e,t){var r=e.missingDependencies,a=void 0===r?{}:r;if(!1===a)return!1;var n=t.caller(function(e){return null==e?void 0:e.name}),s=a.log,o=void 0===s?"deferred":s,i=a.inject,d=void 0===i?"rollup-plugin-babel"===n?"throw":"import":i,c=a.all;return{log:o,inject:d,all:void 0!==c&&c}}(t,e),o=iwe(Xwe,t,s,r,function(){return a},e),d=o.debug,c=o.method,l=o.targets,u=o.provider,p=o.providerName,f=o.callProvider,g="entry-global"===c?ewe:Zje,m=u.visitor?n.visitors.merge([g(f),u.visitor]):g(f);d&&"#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets"!==d&&(console.log(p+": `DEBUG` option"),console.log("\nUsing targets: "+function(e){return JSON.stringify(PU(e),null,2)}(l)),console.log("\nUsing polyfills with `"+c+"` method:"));var y=u.runtimeName;return{name:"inject-polyfills",visitor:m,pre:function(e){var t;y&&(e.get("runtimeHelpersModuleName")&&e.get("runtimeHelpersModuleName")!==y?console.warn("Two different polyfill providers ("+e.get("runtimeHelpersModuleProvider")+" and "+p+") are trying to define two conflicting @babel/runtime alternatives: "+e.get("runtimeHelpersModuleName")+" and "+y+". The second one will be ignored."):(e.set("runtimeHelpersModuleName",y),e.set("runtimeHelpersModuleProvider",p))),a={polyfills:new Set,polyfillsSupport:void 0,found:!1,providers:new Set,missingDeps:new Set},null==(t=u.pre)||t.apply(this,arguments)},post:function(){var e;if(null==(e=u.post)||e.apply(this,arguments),!1!==s&&(s.log,a.missingDeps),d)if(this.filename&&console.log("\n["+this.filename+"]"),0!==a.polyfills.size){"entry-global"===c?console.log("The "+p+" polyfill entry has been replaced with the following polyfills:"):console.log("The "+p+" polyfill added the following polyfills:");for(var t,r=i(a.polyfills);!(t=r()).done;){var n,o=t.value;if(null!=(n=a.polyfillsSupport)&&n[o]){var f=AU(o,l,a.polyfillsSupport),g=JSON.stringify(f).replace(/,/g,", ").replace(/^\{"/,'{ "').replace(/"\}$/,'" }');console.log(" "+o+" "+g)}else console.log(" "+o)}}else console.log("entry-global"===c?a.found?"Based on your targets, the "+p+" polyfill did not add any polyfill.":"The entry point for the "+p+" polyfill has not been found.":"Based on your code and targets, the "+p+" polyfill did not add any polyfill.")}}}),tEe=eEe.default||eEe;function rEe(e,t){return Object.keys(e).reduce(function(r,a){return t.has(a)||(r[a]=e[a]),r},{})}var aEe=Object.assign({},lRe,uRe),nEe=rEe(aEe,Cje),sEe=lRe,oEe=rEe(lRe,Cje),iEe=function(e){var t=nRe[e]();if(!t)throw new Error('Could not find plugin "'+e+'". Ensure there is an entry in ./available-plugins.js for it.');return t},dEe=function(e){return e.reduce(function(e,t){return e[/^(?:es|es6|es7|esnext|web)\./.test(t)?"builtIns":"plugins"].add(t),e},{all:e,plugins:new Set,builtIns:new Set})};var cEe=function(e){var t=e.useBuiltIns,r=e.corejs,a=e.polyfillTargets,n=e.include,s=e.exclude,o=e.proposals,i=e.shippedProposals,d=e.regenerator,c=e.debug,l=[];if("usage"===t||"entry"===t){var u=function(e){var t=e.useBuiltIns,r=e.corejs,a=e.polyfillTargets,n=e.include,s=e.exclude,o=e.proposals,i=e.shippedProposals,d=e.debug;return{method:t+"-global",version:r?r.toString():void 0,targets:a,include:n,exclude:s,proposals:o,shippedProposals:i,debug:d,"#__secret_key__@babel/preset-env__compatibility":{noRuntimeName:!0}}}({useBuiltIns:t,corejs:r,polyfillTargets:a,include:n,exclude:s,proposals:o,shippedProposals:i,debug:c});r&&("usage"===t?(2===r.major?l.push([bRe.pluginCoreJS2,u],[bRe.legacyBabelPolyfillPlugin,{usage:!0}]):l.push([tEe,u],[bRe.legacyBabelPolyfillPlugin,{usage:!0,deprecated:!0}]),d&&l.push([bRe.pluginRegenerator,{method:"usage-global",debug:c}])):2===r.major?l.push([bRe.legacyBabelPolyfillPlugin,{regenerator:d}],[bRe.pluginCoreJS2,u]):(l.push([tEe,u],[bRe.legacyBabelPolyfillPlugin,{deprecated:!0}]),d||l.push([bRe.removeRegeneratorEntryPlugin,u])))}return l};function lEe(e){return!(null==e||!e.supportsStaticESM)}function uEe(e){return!(null==e||!e.supportsDynamicImport)}function pEe(e){return!(null==e||!e.supportsExportNamespaceFrom)}e.getPolyfillPlugins=cEe;var fEe=function(e,t){e.assertVersion("*");var r=e.targets(),a=Tje(t),n=a.configPath,s=a.debug,o=a.exclude,i=a.forceAllTransforms,d=a.ignoreBrowserslistConfig,c=a.include,l=a.modules,u=a.shippedProposals,p=a.targets,f=a.useBuiltIns,g=a.corejs,m=g.version,y=g.proposals,h=a.browserslistEnv,b=t.loose,v=t.spec,x=void 0!==v&&v,R=t.bugfixes,j=void 0!==R&&R,w=r;if(Cxe.lt(e.version,"7.13.0")||t.targets||t.configPath||t.browserslistEnv||t.ignoreBrowserslistConfig){var E=!1;null!=p&&p.uglify&&(E=!0,delete p.uglify,console.warn("\nThe uglify target has been deprecated. Set the top level\noption `forceAllTransforms: true` instead.\n")),w=function(e,t,r,a,n){return null!=e&&e.esmodules&&e.browsers&&console.warn("\n@babel/preset-env: esmodules and browsers targets have been specified together.\n`browsers` target, `"+e.browsers.toString()+"` will be ignored.\n"),UU(e,{ignoreBrowserslistConfig:t,configPath:r,browserslistEnv:a,onBrowserslistConfigFound:function(e){n.addExternalDependency(e)}})}(p,d,n,h,e)}var S=i||E?{}:w,T=dEe(c),P=dEe(o),A=j?u?aEe:nEe:u?sEe:oEe,k="auto"===l?!e.caller(lEe)&&"commonjs":l,C="auto"===l?!e.caller(uEe):!!k;P.plugins.has("transform-export-namespace-from")||("auto"===l?e.caller(pEe):!k)||T.plugins.add("transform-export-namespace-from");var _,I,D=_U(A,T.plugins,P.plugins,S,function(e,t,r){var a=[];return e&&a.push(dRe[e]),t&&(e&&"umd"!==e?a.push("transform-dynamic-import"):console.warn("Dynamic import can only be transformed when transforming ES modules to AMD, CommonJS or SystemJS.")),r.startsWith("8")||(t||a.push("syntax-dynamic-import"),a.push("syntax-top-level-await"),a.push("syntax-import-meta")),a}(k,C,e.version),b?["transform-typeof-symbol"]:void 0,Oje);u&&function(e,t){t.forEach(function(t){e.add(t)})}(D,_je),_=D,I=e.version,_.forEach(function(e){(hasOwnProperty.call(sRe,e)&&Cxe.lt(I,sRe[e])||I.startsWith("8")&&rRe.has(e))&&_.delete(e)}),function(e,t){e.forEach(function(r){var a;null==(a=t[r])||a.forEach(function(t){return e.delete(t)})})}(D,pRe);var O=cEe({useBuiltIns:f,corejs:m,polyfillTargets:w,include:T.builtIns,exclude:P.builtIns,proposals:y,shippedProposals:u,regenerator:D.has("transform-regenerator"),debug:s}),N=!1!==f,B=Array.from(D).map(function(e){return"transform-class-properties"===e||"transform-private-methods"===e||"transform-private-property-in-object"===e?[iEe(e),{loose:b?"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error":"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error"}]:"syntax-import-attributes"===e?[iEe(e),{deprecatedAssertSyntax:!0}]:[iEe(e),{spec:x,loose:b,useBuiltIns:N}]}).concat(O);return s&&(console.log("@babel/preset-env: `DEBUG` option"),console.log("\nUsing targets:"),console.log(JSON.stringify(PU(w),null,2)),console.log("\nUsing modules transform: "+l.toString()),console.log("\nUsing plugins:"),D.forEach(function(e){!function(e,t,r){var a=AU(e,t,r),n=r[e];if(e.startsWith("transform-")){var s="proposal-"+e.slice(10);("proposal-dynamic-import"===s||hasOwnProperty.call(kU,s))&&(e=s)}if(n){for(var o="{",i=!0,d=0,c=Object.keys(a);d<c.length;d++){var l=c[d];i||(o+=","),i=!1,o+=" "+l,n[l]&&(o+=" < "+n[l])}o+=" }",console.log(" "+e+" "+o)}else console.log(" "+e)}(e,w,A)}),f||console.log("\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.")),{plugins:B}};e.getModulesPluginNames=function(e){var t=e.modules,r=e.transformations,a=e.shouldTransformESM,n=e.shouldTransformDynamicImport,s=e.shouldTransformExportNamespaceFrom,o=[];return!1!==t&&r[t]&&(a&&o.push(r[t]),n&&(a&&"umd"!==t?o.push("transform-dynamic-import"):console.warn("Dynamic import can only be transformed when transforming ES modules to AMD, CommonJS or SystemJS."))),s&&o.push("transform-export-namespace-from"),n||o.push("syntax-dynamic-import"),s||o.push("syntax-export-namespace-from"),o.push("syntax-top-level-await"),o.push("syntax-import-meta"),o},new cU("@babel/preset-flow");var gEe=function(e,t){e.assertVersion("*");var r=function(e){void 0===e&&(e={});var t=e,r=t.all,a=t.ignoreExtensions,n=t.experimental_useHermesParser;return{all:r,allowDeclareFields:e.allowDeclareFields,ignoreExtensions:a,experimental_useHermesParser:n}}(t),a=r.all,n=r.allowDeclareFields,s=r.ignoreExtensions,o=void 0===s||s,i=r.experimental_useHermesParser,d=[[Bge,{all:a,allowDeclareFields:n}]];if(void 0!==i&&i){if(Number.parseInt(z.versions.node,10)<12)throw new Error("The Hermes parser is only supported in Node 12 and later.");throw new Error("The Hermes parser is not supported in the @babel/standalone.")}return o?{plugins:d}:{overrides:[{test:function(e){return null==e||!/\.tsx?$/.test(e)},plugins:d}]}},mEe=[["react",new Set(["cloneElement","createContext","createElement","createFactory","createRef","forwardRef","isValidElement","memo","lazy"])],["react-dom",new Set(["createPortal"])]],yEe=function(e){return e.assertVersion("*"),{name:"transform-react-pure-annotations",visitor:{CallExpression:function(e){(function(e){var t=e.get("callee");if(!t.isMemberExpression()){for(var r=0,a=mEe;r<a.length;r++)for(var n,s=y(a[r],2),o=s[0],d=i(s[1]);!(n=d()).done;){var c=n.value;if(t.referencesImport(o,c))return!0}return!1}var l=t.get("object"),u=t.node;if(!u.computed&&ie(u.property))for(var p=u.property.name,f=0,g=mEe;f<g.length;f++){var m=y(g[f],2),h=m[0],b=m[1];if(l.referencesImport(h,"default")||l.referencesImport(h,"*"))return b.has(p)}return!1})(e)&&DH(e)}}}};new cU("@babel/preset-react");var hEe,bEe=function(e,t){e.assertVersion("*");var r=function(e){void 0===e&&(e={});var t=e,r=t.pragma,a=t.pragmaFrag,n=e,s=n.pure,o=n.throwIfNamespace,i=void 0===o||o,d=n.runtime,c=void 0===d?"classic":d,l=n.importSource,u=n.useBuiltIns,p=n.useSpread;return"classic"===c&&(r=r||"React.createElement",a=a||"React.Fragment"),{development:null==e.development?void 0:!!e.development,importSource:l,pragma:r,pragmaFrag:a,pure:s,runtime:c,throwIfNamespace:i,useBuiltIns:u,useSpread:p}}(t),a=r.development,n=void 0!==a&&a,s=r.importSource,o=r.pragma,i=r.pragmaFrag,d=r.pure,c=r.runtime,l=r.throwIfNamespace;return{plugins:[[n?Zye:$ye,{importSource:s,pragma:o,pragmaFrag:i,runtime:c,throwIfNamespace:l,pure:d,useBuiltIns:!!t.useBuiltIns,useSpread:t.useSpread}],pye,!1!==d&&yEe].filter(Boolean)}},vEe=new cU("@babel/preset-typescript");var xEe,REe=function(e){var t=e.types,r=e.template;function a(e,a,n){e&&(t.isStringLiteral(e)?/^\.\.?\//.test(e.value)&&(e.value=e.value.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+)?)\.([cm]?)ts$/i,function(e,t,r,a,n){return t?".js":!r||a&&n?r+a+"."+n.toLowerCase()+"js":e})):n.availableHelper("tsRewriteRelativeImportExtensions")?a.replaceWith(t.callExpression(n.addHelper("tsRewriteRelativeImportExtensions"),[e])):a.replaceWith(r.expression.ast(hEe||(hEe=h(["(",' + "").replace(/([\\/].*.[mc]?)tsx?$/, "$1js")'],["(",' + "").replace(/([\\\\/].*\\.[mc]?)tsx?$/, "$1js")'])),e)))}return{name:"preset-typescript/plugin-rewrite-ts-imports",visitor:{"ImportDeclaration|ExportAllDeclaration|ExportNamedDeclaration":function(e,r){var n=e.node;"value"===(t.isImportDeclaration(n)?n.importKind:n.exportKind)&&a(n.source,e.get("source"),r)},CallExpression:function(e,r){t.isImport(e.node.callee)&&a(e.node.arguments[0],e.get("arguments.0"),r)},ImportExpression:function(e,t){a(e.node.source,e.get("source"),t)}}}},jEe=function(e,t){e.assertVersion("*");var r=function(e){void 0===e&&(e={});var t=e,r=t.allowNamespaces,a=void 0===r||r,n=t.jsxPragma,s=t.onlyRemoveTypeImports,o="ignoreExtensions",i="disallowAmbiguousJSXLike",d="jsxPragmaFrag",c="optimizeConstEnums",l="rewriteImportExtensions",u="allExtensions",p="isTSX",f=vEe.validateStringOption(d,e.jsxPragmaFrag,"React.Fragment"),g=vEe.validateBooleanOption(u,e.allExtensions,!1),m=vEe.validateBooleanOption(p,e.isTSX,!1);m&&vEe.invariant(g,"isTSX:true requires allExtensions:true");var y=vEe.validateBooleanOption(o,e.ignoreExtensions,!1),h=vEe.validateBooleanOption(i,e.disallowAmbiguousJSXLike,!1);h&&vEe.invariant(g,"disallowAmbiguousJSXLike:true requires allExtensions:true");var b={ignoreExtensions:y,allowNamespaces:a,disallowAmbiguousJSXLike:h,jsxPragma:n,jsxPragmaFrag:f,onlyRemoveTypeImports:s,optimizeConstEnums:vEe.validateBooleanOption(c,e.optimizeConstEnums,!1),rewriteImportExtensions:vEe.validateBooleanOption(l,e.rewriteImportExtensions,!1)};return b.allExtensions=g,b.isTSX=m,b}(t),a=r.allExtensions,n=r.ignoreExtensions,s=r.allowNamespaces,o=r.disallowAmbiguousJSXLike,i=r.isTSX,d=r.jsxPragma,c=r.jsxPragmaFrag,l=r.onlyRemoveTypeImports,u=r.optimizeConstEnums,p=r.rewriteImportExtensions,f=function(e){return{allowDeclareFields:t.allowDeclareFields,allowNamespaces:s,disallowAmbiguousJSXLike:e,jsxPragma:d,jsxPragmaFrag:c,onlyRemoveTypeImports:l,optimizeConstEnums:u}},g=function(e,t){return[[oxe,Object.assign({isTSX:e},f(t))]]};return{plugins:p?[REe]:[],overrides:a||n?[{plugins:g(i,o)}]:[{test:/\.ts$/,plugins:g(!1,!1)},{test:/\.mts$/,sourceType:"module",plugins:g(!1,!0)},{test:/\.cts$/,sourceType:"unambiguous",plugins:[[zme,{allowTopLevelThis:!0}],[oxe,f(!0)]]},{test:/\.tsx$/,plugins:g(!0,!1)}]}},wEe=new Set(["text/jsx","text/babel"]),EEe=0;function SEe(e,t){var r=document.createElement("script");t.type&&r.setAttribute("type",t.type),t.nonce&&(r.nonce=t.nonce),r.text=function(e,t){var r;return null!=t.url?r=t.url:(r="Inline Babel script",++EEe>1&&(r+=" ("+EEe+")")),e(t.content,function(e,t){var r=e.presets;r||(r="module"===e.type?["react",["env",{modules:!1}]]:["react","env"]);var a=e.plugins;a||(a=["transform-class-properties","transform-object-rest-spread","transform-flow-strip-types"]);var n={browsers:e.targets};return"module"===e.type&&(n.esmodules="intersect"),{filename:t,presets:r,plugins:a,sourceMaps:"inline",sourceFileName:t,targets:n}}(t,r)).code}(e,t),xEe.appendChild(r)}function TEe(e,t){var r=e.getAttribute(t);return""===r?[]:r?r.split(",").map(function(e){return e.trim()}):void 0}function PEe(e,t){var r=[],a=t.length;function n(){for(var t=0;t<a;t++){var n=r[t];if(n.loaded&&!n.executed)n.executed=!0,SEe(e,n);else if(!n.loaded&&!n.error&&!n.async)break}}for(var s=function(){var e,a,s,i,d=t[o],c={async:d.hasAttribute("async"),type:d.getAttribute("data-type"),nonce:d.nonce,error:!1,executed:!1,plugins:TEe(d,"data-plugins"),presets:TEe(d,"data-presets"),targets:TEe(d,"data-targets"),loaded:!1,url:null,content:null};r.push(c),d.src?(c.url=d.src,e=d.src,a=function(e){c.loaded=!0,c.content=e,n()},s=function(){c.error=!0,n()},(i=new XMLHttpRequest).open("GET",e,!0),"overrideMimeType"in i&&i.overrideMimeType("text/plain"),i.onreadystatechange=function(){if(4===i.readyState){if(0!==i.status&&200!==i.status)throw s(),new Error("Could not load "+e);a(i.responseText)}},i.send(null)):(c.url=d.getAttribute("data-module")||null,c.loaded=!0,c.content=d.innerHTML)},o=0;o<a;o++)s();n()}var AEe,kEe=Object.freeze({__proto__:null,generator:vk,parser:iR,template:fj,traverse:BO,types:Jy}),CEe={__proto__:null,"transform-class-static-block":"proposal-class-static-block","transform-private-property-in-object":"proposal-private-property-in-object","transform-class-properties":"proposal-class-properties","transform-private-methods":"proposal-private-methods","transform-numeric-separator":"proposal-numeric-separator","transform-logical-assignment-operators":"proposal-logical-assignment-operators","transform-nullish-coalescing-operator":"proposal-nullish-coalescing-operator","transform-optional-chaining":"proposal-optional-chaining","transform-json-strings":"proposal-json-strings","transform-optional-catch-binding":"proposal-optional-catch-binding","transform-async-generator-functions":"proposal-async-generator-functions","transform-object-rest-spread":"proposal-object-rest-spread","transform-unicode-property-regex":"proposal-unicode-property-regex","transform-export-namespace-from":"proposal-export-namespace-from"};for(var _Ee in CEe)Sxe[CEe[_Ee]]=Sxe[_Ee];Sxe["proposal-unicode-sets-regex"]=Sxe["transform-unicode-sets-regex"];var IEe={};qEe(Sxe);var DEe={env:fEe,es2015:Txe,es2016:function(){return{plugins:[IEe["transform-exponentiation-operator"]]}},es2017:function(){return{plugins:[IEe["transform-async-to-generator"]]}},react:bEe,"stage-0":function(e,t){void 0===t&&(t={});var r=t,a=r.loose,n=void 0!==a&&a,s=r.useBuiltIns,o=void 0!==s&&s,i=r.decoratorsLegacy,d=r.decoratorsVersion,c=r.decoratorsBeforeExport,l=r.pipelineProposal,u=r.pipelineTopicToken;return{presets:[[kxe,{loose:n,useBuiltIns:o,decoratorsLegacy:i,decoratorsVersion:d,decoratorsBeforeExport:c,pipelineProposal:l,pipelineTopicToken:u}]],plugins:[$pe]}},"stage-1":kxe,"stage-2":Axe,"stage-3":Pxe,"es2015-loose":{presets:[[Txe,{loose:!0}]]},"es2015-no-commonjs":{presets:[[Txe,{modules:!1}]]},typescript:jEe,flow:gEe},OEe=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};function NEe(e,t){return OEe(t)&&"string"==typeof t[0]?hasOwnProperty.call(e,t[0])?[e[t[0]]].concat(t.slice(1)):void 0:"string"==typeof t?e[t]:t}function BEe(e){return"string"==typeof e?e:OEe(e)?BEe(e[0]):JSON.stringify(e)}function MEe(e){var t=(e.presets||[]).map(function(e){var t=NEe(DEe,e);if(!t)throw new Error('Invalid preset specified in Babel options: "'+BEe(e)+'"');return OEe(t)&&"object"==typeof t[0]&&hasOwnProperty.call(t[0],"buildPreset")&&(t[0]=Object.assign({},t[0],{buildPreset:t[0].buildPreset})),t}),r=(e.plugins||[]).map(function(e){var t=NEe(IEe,e);if(!t)throw new Error('Invalid plugin specified in Babel options: "'+BEe(e)+'"');return t});return Object.assign({babelrc:!1},e,{presets:t,plugins:r})}function FEe(e,t){return SV(e,MEe(t))}var LEe=BM;function UEe(e,t){hasOwnProperty.call(IEe,e)&&console.warn('A plugin named "'+e+'" is already registered, it will be overridden'),IEe[e]=t}function qEe(e){Object.keys(e).forEach(function(t){return UEe(t,e[t])})}function GEe(e,t){hasOwnProperty.call(DEe,e)&&("env"===e?console.warn("@babel/preset-env is now included in @babel/standalone, please remove @babel/preset-env-standalone"):console.warn('A preset named "'+e+'" is already registered, it will be overridden')),DEe[e]=t}function WEe(){VEe()}function VEe(e){!function(e,t){xEe=document.getElementsByTagName("head")[0],t||(t=document.getElementsByTagName("script"));for(var r=[],a=0;a<t.length;a++){var n=t.item(a),s=n.type.split(";")[0];wEe.has(s)&&r.push(n)}0!==r.length&&(console.warn("You are using the in-browser Babel transformer. Be sure to precompile your scripts for production - https://babeljs.io/docs/setup/"),PEe(e,r))}(FEe,e)}"undefined"!=typeof window&&null!=(AEe=window)&&AEe.addEventListener&&window.addEventListener("DOMContentLoaded",WEe,!1),e.availablePlugins=IEe,e.availablePresets=DEe,e.buildExternalHelpers=LEe,e.disableScriptTags=function(){window.removeEventListener("DOMContentLoaded",WEe)},e.packages=kEe,e.registerPlugin=UEe,e.registerPlugins=qEe,e.registerPreset=GEe,e.registerPresets=function(e){Object.keys(e).forEach(function(t){return GEe(t,e[t])})},e.transform=FEe,e.transformAsync=function(e,t){return TV(e,MEe(t))},e.transformFromAst=function(e,t,r){return IV(e,t,MEe(r))},e.transformFromAstAsync=function(e,t,r){return DV(e,t,MEe(r))},e.transformScriptTags=VEe,e.version="7.29.0",Object.defineProperty(e,"__esModule",{value:!0})});
|
||
//# sourceMappingURL=babel.min.js.map
|
||
|
||
```
|
||
|
||
## Matches in master-ai/market_data_assets/canada.md
|
||
|
||
### L1024-1028
|
||
```
|
||
design_engineer Design engineer
|
||
design_institute Design institute
|
||
desktop_publishing_service Desktop publishing service
|
||
dessert_buffet Sweets and dessert buffet
|
||
dessert_restaurant Dessert restaurant
|
||
```
|
||
|
||
## Matches in master-ai/market_data_assets/dfs_categories_raw.json
|
||
|
||
### category_name › L9642-9645
|
||
```
|
||
{
|
||
"category_name": "desktop_publishing_service",
|
||
"business_count": 10091
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/market_data_assets/gbp_categories.json
|
||
|
||
### gcid › L5122-5126
|
||
```
|
||
{
|
||
"gcid": "gcid:desktop_publishing_service",
|
||
"displayName": "Desktop publishing service",
|
||
"serviceTypes": []
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/market_data_assets/smb_to_software_mapping_final.json
|
||
|
||
### gcid › L10800-10810
|
||
```
|
||
{
|
||
"gcid": "gcid:desktop_publishing_service",
|
||
"displayName": "Desktop publishing service",
|
||
"softwareNeeds": [
|
||
"Graphic Design Software",
|
||
"Content Production & Management",
|
||
"Project Management Software",
|
||
"Billing Software",
|
||
"Document Generation Software"
|
||
]
|
||
},
|
||
```
|
||
|
||
## Matches in master-ai/market_data_assets/us.md
|
||
|
||
### L1024-1028
|
||
```
|
||
design_engineer Design engineer
|
||
design_institute Design institute
|
||
desktop_publishing_service Desktop publishing service
|
||
dessert_buffet Sweets and dessert buffet
|
||
dessert_restaurant Dessert restaurant
|
||
```
|
||
|
||
## Matches in master-ai/vibn-agent-runner/dist/mcp/agent-server.js
|
||
|
||
### L1-11
|
||
```
|
||
#!/usr/bin/env node
|
||
"use strict";
|
||
// =============================================================================
|
||
// vibn-agent-mcp
|
||
// -----------------------------------------------------------------------------
|
||
// Stdio MCP server exposing the vibn-agent-runner sub-agent orchestration API.
|
||
// This lets any MCP-speaking client (Goose, Claude Desktop, Cursor, etc.)
|
||
// spawn Coder / PM / Marketing jobs against the vibn-agent-runner HTTP service
|
||
// and poll their status.
|
||
//
|
||
// Config (env):
|
||
```
|
||
|
||
115 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-agent-runner/dist/mcp/workspace-server.js
|
||
|
||
### L11-15
|
||
```
|
||
// Each server instance is scoped to a single WORKSPACE_ROOT. To operate against
|
||
// multiple workspaces, spawn multiple MCP server instances (one per workspace).
|
||
// This mirrors how Goose / Claude Desktop / Cursor MCP configs work in practice.
|
||
//
|
||
// Config (env):
|
||
```
|
||
|
||
## Matches in master-ai/vibn-agent-runner/dist/prompts/atlas.js
|
||
|
||
### L51-55
|
||
```
|
||
- Any features from competitors you explicitly do NOT want?
|
||
- Does this need to integrate with anything external?
|
||
- Does this need to work on mobile, desktop, or both?
|
||
- Any compliance or regulatory requirements?
|
||
|
||
```
|
||
|
||
## Matches in master-ai/vibn-agent-runner/src/mcp/agent-server.ts
|
||
|
||
### L1-11
|
||
```
|
||
#!/usr/bin/env node
|
||
// =============================================================================
|
||
// vibn-agent-mcp
|
||
// -----------------------------------------------------------------------------
|
||
// Stdio MCP server exposing the vibn-agent-runner sub-agent orchestration API.
|
||
// This lets any MCP-speaking client (Goose, Claude Desktop, Cursor, etc.)
|
||
// spawn Coder / PM / Marketing jobs against the vibn-agent-runner HTTP service
|
||
// and poll their status.
|
||
//
|
||
// Config (env):
|
||
// AGENT_RUNNER_URL (default: http://localhost:3333) — URL of the runner
|
||
```
|
||
|
||
94 lines remaining in ancestor node. Read the file to see all.
|
||
|
||
## Matches in master-ai/vibn-agent-runner/src/mcp/workspace-server.ts
|
||
|
||
### L10-14
|
||
```
|
||
// Each server instance is scoped to a single WORKSPACE_ROOT. To operate against
|
||
// multiple workspaces, spawn multiple MCP server instances (one per workspace).
|
||
// This mirrors how Goose / Claude Desktop / Cursor MCP configs work in practice.
|
||
//
|
||
// Config (env):
|
||
```
|
||
|
||
## Matches in master-ai/vibn-agent-runner/src/prompts/atlas.ts
|
||
|
||
### L50-54
|
||
```
|
||
- Any features from competitors you explicitly do NOT want?
|
||
- Does this need to integrate with anything external?
|
||
- Does this need to work on mobile, desktop, or both?
|
||
- Any compliance or regulatory requirements?
|
||
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/LAYOUT-ARCHITECTURE.md
|
||
|
||
### # 🏗️ Layout Architecture - Plane.so Inspired › ## Responsive Behavior › ### Desktop (> 1280px) › L149-150
|
||
```
|
||
### Desktop (> 1280px)
|
||
- All 4 columns visible
|
||
```
|
||
|
||
## Matches in master-ai/vibn-frontend/MCP_README.md
|
||
|
||
### # 🔌 Vibn MCP Integration › ## 📦 What's Included › ### 1. **MCP Server** (stdio) › L14-15
|
||
```
|
||
- Works with Claude Desktop, custom AI applications, and more
|
||
- File: `lib/mcp/server.ts`
|
||
```
|
||
|
||
### # 🔌 Vibn MCP Integration › ## 🚀 Getting Started › ### Option 1: For Claude Desktop › L34-35
|
||
```
|
||
### Option 1: For Claude Desktop
|
||
|
||
```
|
||
|
||
### # 🔌 Vibn MCP Integration › ## 🚀 Getting Started › ### Option 1: For Claude Desktop › L36-40
|
||
```
|
||
1. **Open Claude Desktop configuration:**
|
||
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
||
- Windows: `%APPDATA%/Claude/claude_desktop_config.json`
|
||
|
||
2. **Add Vibn MCP server:**
|
||
```
|
||
|
||
|
||
## Assistant
|
||
|
||
|
||
|
||
## User
|
||
|
||
Why are we maxing tokens?
|
||
|
||
## User
|
||
|
||
why is this failing?
|