@mukulaggarwal/pacman 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -433,14 +433,10 @@ async function startOnboardingServer(port, workspacePath) {
|
|
|
433
433
|
const app = express();
|
|
434
434
|
app.use(express.json());
|
|
435
435
|
let gdriveAuthSession = null;
|
|
436
|
-
const
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
try {
|
|
441
|
-
await fs.access(staticPath);
|
|
442
|
-
app.use(express.static(staticPath));
|
|
443
|
-
} catch {
|
|
436
|
+
const onboardingStaticPath = await resolveOnboardingStaticPath();
|
|
437
|
+
if (onboardingStaticPath) {
|
|
438
|
+
app.use(express.static(onboardingStaticPath));
|
|
439
|
+
} else {
|
|
444
440
|
app.get("/", (_req, res) => {
|
|
445
441
|
res.send(getInlineOnboardingHtml());
|
|
446
442
|
});
|
|
@@ -824,6 +820,21 @@ async function startOnboardingServer(port, workspacePath) {
|
|
|
824
820
|
process.exit(0);
|
|
825
821
|
});
|
|
826
822
|
}
|
|
823
|
+
async function resolveOnboardingStaticPath() {
|
|
824
|
+
const baseDir = import.meta.dirname ?? __dirname;
|
|
825
|
+
const candidates = [
|
|
826
|
+
path.resolve(baseDir, "./onboarding-web"),
|
|
827
|
+
path.resolve(baseDir, "../../../apps/onboarding-web/dist")
|
|
828
|
+
];
|
|
829
|
+
for (const candidate of candidates) {
|
|
830
|
+
try {
|
|
831
|
+
await fs.access(path.join(candidate, "index.html"));
|
|
832
|
+
return candidate;
|
|
833
|
+
} catch {
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
return null;
|
|
837
|
+
}
|
|
827
838
|
function getInlineOnboardingHtml() {
|
|
828
839
|
return `<!DOCTYPE html>
|
|
829
840
|
<html lang="en">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/onboarding-server.ts","../../template-engine/dist/index.js"],"sourcesContent":["import express from 'express';\nimport * as path from 'node:path';\nimport * as fs from 'node:fs/promises';\nimport { exec } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execAsync = promisify(exec);\nimport { createLocalStorage } from '@personal-assistant/storage-local';\nimport { createGDriveStorage } from '@personal-assistant/storage-gdrive';\nimport { createConfigManager } from '@personal-assistant/config-manager';\nimport { createContextManager } from '@personal-assistant/context-manager';\nimport {\n getTemplate,\n renderTemplate,\n listProfiles,\n getResponsibilities,\n} from '@personal-assistant/template-engine';\nimport { validateIntegrationConfig } from '@personal-assistant/integration-runtime';\nimport { createSlackConnector, validateSlackAppToken } from '@personal-assistant/integrations-slack';\nimport { createNoopEventClient } from '@personal-assistant/event-client';\nimport type {\n AppConfig,\n LlmProvider,\n ProfileType,\n UserProfile,\n StorageConfig,\n GDriveStorageConfig,\n IntegrationConfig,\n SyncConfig,\n} from '@personal-assistant/core-types';\nimport { validateProviderConfig } from './provider-runtime.js';\n\ninterface GDriveAuthSession {\n clientId: string;\n clientSecret: string;\n status: 'pending' | 'authenticated' | 'complete' | 'error';\n // set after OAuth callback\n accessToken?: string;\n refreshToken?: string;\n // set after folder creation\n folderId?: string;\n folderName?: string;\n folderPath?: string;\n error?: string;\n}\n\nexport async function startOnboardingServer(\n port: number,\n workspacePath: string,\n): Promise<void> {\n const app = express();\n app.use(express.json());\n\n let gdriveAuthSession: GDriveAuthSession | null = null;\n\n // Serve static files from onboarding-web dist\n const staticPath = path.resolve(\n import.meta.dirname ?? __dirname,\n '../../../apps/onboarding-web/dist',\n );\n\n // Try to serve built static files; fallback to inline HTML\n try {\n await fs.access(staticPath);\n app.use(express.static(staticPath));\n } catch {\n // Serve inline onboarding page if the web app isn't built\n app.get('/', (_req, res) => {\n res.send(getInlineOnboardingHtml());\n });\n }\n\n // --- API Routes ---\n\n app.get('/api/profiles', (_req, res) => {\n const profiles = listProfiles();\n res.json({ profiles });\n });\n\n app.get('/api/responsibilities/:profileType', (req, res) => {\n try {\n const responsibilities = getResponsibilities(req.params.profileType as ProfileType);\n res.json({ responsibilities });\n } catch {\n res.status(400).json({ error: 'Invalid profile type' });\n }\n });\n\n app.get('/api/template/:profileType', (req, res) => {\n try {\n const template = getTemplate(req.params.profileType as ProfileType);\n res.json({ template });\n } catch {\n res.status(400).json({ error: 'Invalid profile type' });\n }\n });\n\n app.post('/api/preview-template', (req, res) => {\n const { profileType, name, assistantName, responsibilities } = req.body;\n try {\n const template = getTemplate(profileType);\n const files = renderTemplate(template, { name, assistantName, responsibilities });\n res.json({ files });\n } catch (err) {\n res.status(400).json({ error: String(err) });\n }\n });\n\n app.post('/api/save', async (req, res) => {\n try {\n const config: AppConfig = req.body;\n\n // Use the user-chosen local path if provided, otherwise fall back to CLI --dir\n const effectivePath =\n config.storage.mode === 'local' && (config.storage as { workspacePath?: string }).workspacePath\n ? path.resolve((config.storage as { workspacePath: string }).workspacePath)\n : workspacePath;\n\n // Ensure the local directory exists (needed for bootstrap even in GDrive mode)\n await fs.mkdir(effectivePath, { recursive: true });\n\n // Save a global pointer so CLI commands can find the workspace without --dir\n const rcPath = path.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.personal-assistant-rc.json');\n await fs.writeFile(rcPath, JSON.stringify({ workspacePath: effectivePath }, null, 2), 'utf-8');\n\n // Always save storage.json locally for bootstrap (so MCP server knows which backend to use)\n const localStorage = createLocalStorage(effectivePath);\n const localConfigManager = createConfigManager(localStorage);\n await localConfigManager.saveConfig(config);\n\n // Resolve the user's chosen storage backend\n let targetStorage: import('@personal-assistant/core-types').StorageBackend = localStorage;\n if (config.storage.mode === 'gdrive') {\n const gdriveConfig = config.storage as GDriveStorageConfig;\n const resolvedCachePath = path.isAbsolute(gdriveConfig.cachePath)\n ? gdriveConfig.cachePath\n : path.resolve(path.dirname(effectivePath), gdriveConfig.cachePath);\n\n const gdriveStorage = createGDriveStorage({\n ...gdriveConfig,\n cachePath: resolvedCachePath,\n });\n await gdriveStorage.initialize();\n targetStorage = gdriveStorage;\n\n // Write config to GDrive so all reads go through GDrive\n const gdriveConfigManager = createConfigManager(gdriveStorage);\n await gdriveConfigManager.saveConfig(config);\n }\n\n const contextManager = createContextManager(targetStorage);\n\n // Initialize workspace structure on the target backend\n await contextManager.initWorkspace();\n\n // Render and write template files to the target backend\n const template = getTemplate(config.user.profileType);\n const files = renderTemplate(template, {\n name: config.user.name,\n assistantName: config.user.assistantName,\n responsibilities: config.user.responsibilities,\n });\n await contextManager.writeCanonicalFiles(files);\n\n // Emit onboarding completed event\n const eventClient = createNoopEventClient();\n await eventClient.emit('onboarding_completed', {\n profile: config.user.profileType,\n storage_mode: config.storage.mode,\n });\n\n res.json({ success: true, workspacePath: effectivePath });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n // --- Integration credential validation ---\n\n app.post('/api/validate-integration', async (req, res) => {\n const { type, credentials } = req.body as {\n type: string;\n credentials: Record<string, string>;\n };\n\n try {\n const result = await validateIntegrationConfig({\n type: type as IntegrationConfig['type'],\n enabled: true,\n credentials,\n });\n\n if (result.ok) {\n res.json({ valid: true, info: result.summary ?? `Connected to ${type}` });\n return;\n }\n\n res.json({\n valid: false,\n error: [result.reason, ...(result.fix ?? [])].filter(Boolean).join(' '),\n });\n } catch (err) {\n res.json({ valid: false, error: String(err) });\n }\n });\n\n app.post('/api/validate-provider', async (req, res) => {\n const { provider, apiKey, model } = req.body as {\n provider: LlmProvider;\n apiKey: string;\n model?: string;\n };\n\n try {\n const result = await validateProviderConfig(provider, apiKey, model);\n res.json(result);\n } catch (err) {\n res.json({ valid: false, error: String(err) });\n }\n });\n\n app.post('/api/validate-slack-runtime', async (req, res) => {\n const {\n botToken,\n appToken,\n generationEnabled,\n providers,\n } = req.body as {\n botToken?: string;\n appToken?: string;\n generationEnabled?: boolean;\n providers?: {\n openai?: { apiKey?: string; model?: string };\n anthropic?: { apiKey?: string; model?: string };\n };\n };\n\n if (!botToken || !appToken) {\n res.json({ valid: false, error: 'Slack bot token and app token are required.' });\n return;\n }\n\n if (!botToken.startsWith('xoxb-')) {\n res.json({\n valid: false,\n error: 'Slack bot token must start with xoxb-. Paste the Bot User OAuth Token from OAuth & Permissions.',\n });\n return;\n }\n\n if (!appToken.startsWith('xapp-')) {\n res.json({\n valid: false,\n error: 'Slack Socket Mode app token must start with xapp-. Create an App-Level Token with connections:write under Socket Mode.',\n });\n return;\n }\n\n try {\n const connector = createSlackConnector();\n await connector.authenticate({\n type: 'slack',\n enabled: true,\n credentials: { botToken },\n });\n const health = await connector.healthCheck();\n await validateSlackAppToken(appToken);\n\n if (generationEnabled) {\n const providerEntries = [\n ['openai', providers?.openai],\n ['anthropic', providers?.anthropic],\n ] as const;\n\n const configuredProviders = providerEntries.filter(([, value]) => value?.apiKey);\n if (configuredProviders.length === 0) {\n res.json({ valid: false, error: 'Enable at least one provider when Slack generation is turned on.' });\n return;\n }\n\n for (const [provider, value] of configuredProviders) {\n const result = await validateProviderConfig(provider, value?.apiKey ?? '', value?.model);\n if (!result.valid) {\n res.json({ valid: false, error: result.error ?? `Failed to validate ${provider}` });\n return;\n }\n }\n }\n\n res.json({\n valid: true,\n info: `${health.summary ?? 'Slack connected'} via Socket Mode. Atlas will monitor channels where the bot is added.`,\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n if (message.includes('not_allowed_token_type')) {\n res.json({\n valid: false,\n error: 'Slack rejected the Socket Mode token. Use an App-Level Token that starts with xapp- and has the connections:write scope.',\n });\n return;\n }\n\n res.json({\n valid: false,\n error: message,\n });\n }\n });\n\n // --- Local folder picker ---\n\n app.get('/api/pick-folder', async (_req, res) => {\n try {\n let folderPath: string;\n const platform = process.platform;\n\n if (platform === 'darwin') {\n const { stdout } = await execAsync(\n `osascript -e 'POSIX path of (choose folder with prompt \"Select a folder for your personal assistant context\")'`,\n );\n folderPath = stdout.trim();\n } else if (platform === 'linux') {\n const { stdout } = await execAsync(\n 'zenity --file-selection --directory --title=\"Select storage folder\"',\n );\n folderPath = stdout.trim();\n } else if (platform === 'win32') {\n const ps =\n '[System.Reflection.Assembly]::LoadWithPartialName(\\'System.windows.forms\\') | Out-Null; ' +\n '$f = New-Object System.Windows.Forms.FolderBrowserDialog; ' +\n '$f.Description = \\'Select a folder for your personal assistant context\\'; ' +\n '$f.ShowDialog() | Out-Null; $f.SelectedPath';\n const { stdout } = await execAsync(`powershell -command \"${ps}\"`);\n folderPath = stdout.trim();\n } else {\n res.status(400).json({ error: 'Folder picker not supported on this platform' });\n return;\n }\n\n if (!folderPath) {\n res.json({ cancelled: true });\n return;\n }\n\n res.json({ path: folderPath });\n } catch (err) {\n // osascript throws when the user clicks Cancel — treat as cancellation\n if (String(err).includes('User canceled') || String(err).includes('cancel')) {\n res.json({ cancelled: true });\n return;\n }\n res.status(500).json({ error: String(err) });\n }\n });\n\n // --- Google Drive OAuth routes ---\n\n app.post('/api/gdrive/auth-start', async (req, res) => {\n const { clientId, clientSecret } = req.body as { clientId?: string; clientSecret?: string };\n if (!clientId || !clientSecret) {\n res.status(400).json({ error: 'clientId and clientSecret are required' });\n return;\n }\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(clientId, clientSecret, redirectUri);\n const authUrl = oauth2Client.generateAuthUrl({\n access_type: 'offline',\n prompt: 'consent',\n scope: ['https://www.googleapis.com/auth/drive.file'],\n });\n\n gdriveAuthSession = { clientId, clientSecret, status: 'pending' };\n res.json({ authUrl });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n app.get('/api/gdrive/callback', async (req, res) => {\n const { code } = req.query as { code?: string };\n\n if (!code || !gdriveAuthSession) {\n res.status(400).send('Invalid OAuth callback — no pending auth session.');\n return;\n }\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(\n gdriveAuthSession.clientId,\n gdriveAuthSession.clientSecret,\n redirectUri,\n );\n\n const { tokens } = await oauth2Client.getToken(code);\n\n // Store tokens only — folder is created in a separate step\n gdriveAuthSession = {\n ...gdriveAuthSession,\n status: 'authenticated',\n refreshToken: tokens.refresh_token ?? undefined,\n accessToken: tokens.access_token ?? undefined,\n };\n\n res.send(`<!DOCTYPE html><html><body>\n <script>window.close();</script>\n <p style=\"font-family:sans-serif;padding:2rem;color:#4ade80;\">\n ✓ Authentication successful — you can close this tab and return to the setup.\n </p>\n </body></html>`);\n } catch (err) {\n if (gdriveAuthSession) {\n gdriveAuthSession.status = 'error';\n gdriveAuthSession.error = String(err);\n }\n res.status(500).send('Authentication failed: ' + String(err));\n }\n });\n\n app.get('/api/gdrive/auth-status', (_req, res) => {\n if (!gdriveAuthSession) {\n res.json({ status: 'idle' });\n return;\n }\n const { clientId: _cid, clientSecret: _csec, accessToken: _at, refreshToken: _rt, ...publicSession } = gdriveAuthSession;\n res.json(publicSession);\n });\n\n app.post('/api/gdrive/create-folder', async (req, res) => {\n if (!gdriveAuthSession || gdriveAuthSession.status !== 'authenticated') {\n res.status(400).json({ error: 'Not authenticated. Please connect Google Drive first.' });\n return;\n }\n\n const { folderName = 'Personal Assistant', parentFolderName = '' } =\n req.body as { folderName?: string; parentFolderName?: string };\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(\n gdriveAuthSession.clientId,\n gdriveAuthSession.clientSecret,\n redirectUri,\n );\n oauth2Client.setCredentials({\n access_token: gdriveAuthSession.accessToken,\n refresh_token: gdriveAuthSession.refreshToken,\n });\n\n const drive = google.drive({ version: 'v3', auth: oauth2Client });\n\n // Resolve parent folder\n let parentId = 'root';\n let locationPath = 'My Drive';\n\n if (parentFolderName.trim()) {\n const searchRes = await drive.files.list({\n q: `name='${parentFolderName.trim()}' and mimeType='application/vnd.google-apps.folder' and trashed=false`,\n fields: 'files(id,name)',\n spaces: 'drive',\n });\n\n if (searchRes.data.files && searchRes.data.files.length > 0) {\n parentId = searchRes.data.files[0].id!;\n } else {\n // Create the parent folder at root\n const parentRes = await drive.files.create({\n requestBody: {\n name: parentFolderName.trim(),\n mimeType: 'application/vnd.google-apps.folder',\n },\n fields: 'id',\n });\n parentId = parentRes.data.id!;\n }\n locationPath = `My Drive / ${parentFolderName.trim()}`;\n }\n\n // Check if the main folder already exists under the parent before creating\n let folderId: string | undefined;\n let resolvedFolderName = folderName.trim();\n const existingSearch = await drive.files.list({\n q: `name='${resolvedFolderName}' and '${parentId}' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false`,\n fields: 'files(id,name)',\n spaces: 'drive',\n });\n\n if (existingSearch.data.files && existingSearch.data.files.length > 0) {\n folderId = existingSearch.data.files[0].id!;\n resolvedFolderName = existingSearch.data.files[0].name!;\n } else {\n const folderRes = await drive.files.create({\n requestBody: {\n name: resolvedFolderName,\n mimeType: 'application/vnd.google-apps.folder',\n parents: [parentId],\n },\n fields: 'id,name',\n });\n folderId = folderRes.data.id!;\n resolvedFolderName = folderRes.data.name!;\n }\n\n const folderPath = `${locationPath} / ${resolvedFolderName}`;\n\n // Refresh tokens in case they were rotated\n const freshCredentials = await oauth2Client.getAccessToken();\n const latestRefreshToken =\n (oauth2Client.credentials.refresh_token as string | undefined) ??\n gdriveAuthSession.refreshToken;\n\n gdriveAuthSession = {\n ...gdriveAuthSession,\n status: 'complete',\n folderId: folderId!,\n folderName: resolvedFolderName,\n folderPath,\n refreshToken: latestRefreshToken,\n accessToken: freshCredentials.token ?? undefined,\n };\n\n res.json({\n folderId,\n folderName: resolvedFolderName,\n folderPath,\n refreshToken: latestRefreshToken,\n });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n app.get('/api/status', async (_req, res) => {\n const storage = createLocalStorage(workspacePath);\n const configManager = createConfigManager(storage);\n try {\n const config = await configManager.loadConfig();\n res.json({ configured: true, config });\n } catch {\n res.json({ configured: false });\n }\n });\n\n // Start server\n const server = app.listen(port, () => {\n const url = `http://localhost:${port}`;\n console.log(`Onboarding server running at ${url}`);\n\n // Try to open browser\n import('open')\n .then((openModule) => openModule.default(url))\n .catch(() => {\n console.log(`Open ${url} in your browser to continue.`);\n });\n });\n\n // Handle graceful shutdown\n process.on('SIGINT', () => {\n console.log('\\nShutting down onboarding server...');\n server.close();\n process.exit(0);\n });\n}\n\nfunction getInlineOnboardingHtml(): string {\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Personal Assistant - Setup</title>\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0f172a; color: #e2e8f0; min-height: 100vh; }\n .container { max-width: 640px; margin: 0 auto; padding: 2rem; }\n h1 { font-size: 1.8rem; margin-bottom: 0.5rem; color: #f8fafc; }\n h2 { font-size: 1.2rem; margin-bottom: 1rem; color: #94a3b8; font-weight: 400; }\n .step { display: none; }\n .step.active { display: block; }\n .progress { display: flex; gap: 0.5rem; margin-bottom: 2rem; }\n .progress-dot { width: 2rem; height: 0.25rem; background: #334155; border-radius: 2px; transition: background 0.3s; }\n .progress-dot.done { background: #3b82f6; }\n .progress-dot.current { background: #60a5fa; }\n label { display: block; margin-bottom: 0.5rem; color: #cbd5e1; font-size: 0.9rem; }\n input, select, textarea { width: 100%; padding: 0.75rem; background: #1e293b; border: 1px solid #334155; border-radius: 0.5rem; color: #f8fafc; font-size: 1rem; margin-bottom: 1rem; }\n input:focus, select:focus, textarea:focus { outline: none; border-color: #3b82f6; }\n textarea { min-height: 200px; font-family: 'SF Mono', 'Fira Code', monospace; font-size: 0.85rem; }\n button { padding: 0.75rem 1.5rem; border: none; border-radius: 0.5rem; font-size: 1rem; cursor: pointer; transition: all 0.2s; }\n .btn-primary { background: #3b82f6; color: white; }\n .btn-primary:hover { background: #2563eb; }\n .btn-secondary { background: #334155; color: #e2e8f0; }\n .btn-secondary:hover { background: #475569; }\n .btn-group { display: flex; gap: 0.75rem; margin-top: 1.5rem; }\n .checkbox-group { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin-bottom: 1rem; }\n .checkbox-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem; background: #1e293b; border: 1px solid #334155; border-radius: 0.375rem; cursor: pointer; }\n .checkbox-item:hover { border-color: #475569; }\n .checkbox-item input[type=\"checkbox\"] { width: auto; margin: 0; }\n .radio-group { display: flex; gap: 1rem; margin-bottom: 1rem; }\n .radio-item { flex: 1; padding: 1rem; background: #1e293b; border: 2px solid #334155; border-radius: 0.5rem; cursor: pointer; text-align: center; transition: all 0.2s; }\n .radio-item:hover { border-color: #475569; }\n .radio-item.selected { border-color: #3b82f6; background: #1e3a5f; }\n .success { text-align: center; padding: 3rem 0; }\n .success h2 { color: #4ade80; font-size: 1.5rem; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"progress\" id=\"progress\"></div>\n\n <!-- Step 1: Identity -->\n <div class=\"step active\" data-step=\"0\">\n <h1>Welcome</h1>\n <h2>Let's set up your personal assistant</h2>\n <label>Your Name</label>\n <input type=\"text\" id=\"userName\" placeholder=\"Jane Smith\">\n <label>Assistant Name</label>\n <input type=\"text\" id=\"assistantName\" placeholder=\"Atlas\" value=\"Atlas\">\n <label>Profile</label>\n <select id=\"profileType\">\n <option value=\"software-engineer\">Software Engineer</option>\n <option value=\"product-manager\">Product Manager</option>\n <option value=\"engineering-manager\">Engineering Manager</option>\n <option value=\"devops\">DevOps Engineer</option>\n </select>\n <div class=\"btn-group\"><button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button></div>\n </div>\n\n <!-- Step 2: Responsibilities -->\n <div class=\"step\" data-step=\"1\">\n <h1>Responsibilities</h1>\n <h2>Select your core responsibilities</h2>\n <div class=\"checkbox-group\" id=\"responsibilitiesGroup\"></div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 3: Template Preview -->\n <div class=\"step\" data-step=\"2\">\n <h1>Context Template</h1>\n <h2>Preview and customize your context template</h2>\n <textarea id=\"templatePreview\"></textarea>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 4: Storage -->\n <div class=\"step\" data-step=\"3\">\n <h1>Storage</h1>\n <h2>Where should your context be stored?</h2>\n <div class=\"radio-group\">\n <div class=\"radio-item selected\" onclick=\"selectStorage('local')\" id=\"storage-local\">\n <strong>Local Workspace</strong><br><small>Files stored on this machine</small>\n </div>\n <div class=\"radio-item\" onclick=\"selectStorage('gdrive')\" id=\"storage-gdrive\">\n <strong>Google Drive</strong><br><small>Files stored in your Drive folder</small>\n </div>\n </div>\n <div id=\"storage-local-fields\">\n <label>Storage path</label>\n <div style=\"display:flex;gap:0.5rem;align-items:center;\">\n <input type=\"text\" id=\"localPath\" value=\".personal-assistant\" placeholder=\".personal-assistant\" style=\"flex:1;margin-bottom:0;\">\n <button class=\"btn-secondary\" onclick=\"browseFolder()\" id=\"browseBtn\" style=\"white-space:nowrap;flex-shrink:0;\">Browse</button>\n </div>\n <small style=\"color:#64748b;font-size:0.8rem;display:block;margin-top:0.4rem;margin-bottom:1rem;\">Click Browse to open a folder picker, or type a path directly.</small>\n </div>\n <div id=\"storage-gdrive-fields\" style=\"display:none;\">\n <p style=\"color:#f59e0b;font-size:0.85rem;margin-bottom:1rem;\">\n Google Drive OAuth is only supported in the full onboarding UI.<br>\n Run <code>pnpm build</code> in <code>apps/onboarding-web</code> then restart <code>pacman init</code>.\n </p>\n </div>\n <div style=\"background:#1c1917;border:1px solid #92400e;border-radius:0.5rem;padding:0.75rem 1rem;margin-bottom:1.5rem;font-size:0.85rem;color:#fbbf24;\">\n ⚠️ Do not delete, move, or rename the folder structure created by this setup. Claude and the sync daemon rely on the exact file layout to load and update your context.\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 5: Integrations -->\n <div class=\"step\" data-step=\"4\">\n <h1>Integrations</h1>\n <h2>Connect your tools (optional)</h2>\n <div class=\"checkbox-group\" id=\"integrationsGroup\">\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"slack\"> Slack</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gmail\"> Gmail</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"github\"> GitHub</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gitlab\"> GitLab</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gdrive\"> Google Drive Docs</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gchat\"> Google Chat</label>\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 6: Sync Schedule -->\n <div class=\"step\" data-step=\"5\">\n <h1>Sync Schedule</h1>\n <h2>When should context be refreshed?</h2>\n <label>Daily Sync Time</label>\n <input type=\"time\" id=\"syncTime\" value=\"08:00\">\n <label>Timezone</label>\n <select id=\"timezone\">\n <option value=\"America/New_York\">Eastern Time (ET)</option>\n <option value=\"America/Chicago\">Central Time (CT)</option>\n <option value=\"America/Denver\">Mountain Time (MT)</option>\n <option value=\"America/Los_Angeles\">Pacific Time (PT)</option>\n <option value=\"UTC\">UTC</option>\n <option value=\"Europe/London\">London (GMT/BST)</option>\n <option value=\"Europe/Berlin\">Berlin (CET)</option>\n <option value=\"Asia/Tokyo\">Tokyo (JST)</option>\n <option value=\"Asia/Kolkata\">India (IST)</option>\n <option value=\"Australia/Sydney\">Sydney (AEST)</option>\n </select>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-item\"><input type=\"checkbox\" id=\"manualSync\" checked> Manual sync</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" id=\"asyncUpdate\" checked> Async updates</label>\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 7: Finish -->\n <div class=\"step\" data-step=\"6\">\n <h1>All Set!</h1>\n <h2>Review and save your configuration</h2>\n <div id=\"summary\" style=\"background:#1e293b;padding:1rem;border-radius:0.5rem;margin-bottom:1rem;font-family:monospace;font-size:0.85rem;white-space:pre-wrap;\"></div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"saveConfig()\">Save & Finish</button>\n </div>\n </div>\n\n <!-- Success -->\n <div class=\"step\" data-step=\"7\">\n <div class=\"success\">\n <h2>Setup Complete!</h2>\n <p style=\"margin-top:1rem;color:#94a3b8;\">Your personal assistant context has been initialized.</p>\n <p style=\"margin-top:1rem;color:#94a3b8;\">Next steps:</p>\n <pre style=\"text-align:left;margin-top:1rem;background:#1e293b;padding:1rem;border-radius:0.5rem;font-size:0.85rem;\">\n# Install Claude Code integration\npacman claude install\npacman mcp claude install\n\n# Install Codex integration\npacman codex install\npacman mcp codex install\n\n# Start the sync daemon\npacman daemon\n\n# Start the real-time Slack listener\npacman slack listen\n\n# Use in Claude Code\n/personal-assistant start <project>\n\n# Use in Codex\nAsk Codex to load or refresh your Personal Assistant context for <project></pre>\n <p style=\"margin-top:1rem;color:#64748b;font-size:0.85rem;\">Restart Claude Code or Codex after installing the MCP server.<br>If <code style=\"background:#1e293b;padding:0 4px;border-radius:3px;\">pacman</code> is not found, link it first. The legacy alias <code style=\"background:#1e293b;padding:0 4px;border-radius:3px;\">personal-assistant</code> also remains available:<br>\n <code style=\"background:#1e293b;padding:2px 6px;border-radius:3px;\">pnpm setup && source ~/.zshrc && cd packages/cli && pnpm link --global</code></p>\n </div>\n </div>\n </div>\n\n <script>\n let currentStep = 0;\n const totalSteps = 7;\n let state = { storageMode: 'local', responsibilities: [] };\n\n function updateProgress() {\n const bar = document.getElementById('progress');\n bar.innerHTML = '';\n for (let i = 0; i < totalSteps; i++) {\n const dot = document.createElement('div');\n dot.className = 'progress-dot' + (i < currentStep ? ' done' : i === currentStep ? ' current' : '');\n bar.appendChild(dot);\n }\n }\n\n function showStep(n) {\n document.querySelectorAll('.step').forEach(s => s.classList.remove('active'));\n document.querySelector('[data-step=\"' + n + '\"]').classList.add('active');\n currentStep = n;\n updateProgress();\n }\n\n async function nextStep() {\n if (currentStep === 0) await loadResponsibilities();\n if (currentStep === 1) await loadTemplatePreview();\n if (currentStep === 5) updateSummary();\n showStep(currentStep + 1);\n }\n\n function prevStep() { showStep(currentStep - 1); }\n\n async function loadResponsibilities() {\n const profileType = document.getElementById('profileType').value;\n const res = await fetch('/api/responsibilities/' + profileType);\n const data = await res.json();\n const group = document.getElementById('responsibilitiesGroup');\n group.innerHTML = data.responsibilities.map(r =>\n '<label class=\"checkbox-item\"><input type=\"checkbox\" value=\"' + r + '\" checked> ' + r + '</label>'\n ).join('');\n }\n\n async function loadTemplatePreview() {\n const profileType = document.getElementById('profileType').value;\n const name = document.getElementById('userName').value;\n const assistantName = document.getElementById('assistantName').value;\n const responsibilities = Array.from(document.querySelectorAll('#responsibilitiesGroup input:checked')).map(c => c.value);\n state.responsibilities = responsibilities;\n\n const res = await fetch('/api/preview-template', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ profileType, name, assistantName, responsibilities })\n });\n const data = await res.json();\n const preview = Object.entries(data.files).map(([f, c]) => '--- ' + f + ' ---\\\\n' + c).join('\\\\n\\\\n');\n document.getElementById('templatePreview').value = preview;\n }\n\n function selectStorage(mode) {\n state.storageMode = mode;\n document.querySelectorAll('.radio-item').forEach(r => r.classList.remove('selected'));\n document.getElementById('storage-' + mode).classList.add('selected');\n document.getElementById('storage-local-fields').style.display = mode === 'local' ? 'block' : 'none';\n document.getElementById('storage-gdrive-fields').style.display = mode === 'gdrive' ? 'block' : 'none';\n }\n\n async function browseFolder() {\n const btn = document.getElementById('browseBtn');\n btn.textContent = '…';\n btn.disabled = true;\n try {\n const res = await fetch('/api/pick-folder');\n const data = await res.json();\n if (!data.cancelled && data.path) {\n document.getElementById('localPath').value = data.path;\n }\n } catch (e) {\n // ignore — user can type path manually\n } finally {\n btn.textContent = 'Browse';\n btn.disabled = false;\n }\n }\n\n function updateSummary() {\n const config = buildConfig();\n document.getElementById('summary').textContent = JSON.stringify(config, null, 2);\n }\n\n function buildConfig() {\n const integrations = Array.from(document.querySelectorAll('#integrationsGroup input:checked')).map(c => ({\n type: c.value, enabled: true, credentials: {}, cursor: null, lastSyncAt: null\n }));\n\n return {\n user: {\n name: document.getElementById('userName').value,\n assistantName: document.getElementById('assistantName').value,\n profileType: document.getElementById('profileType').value,\n responsibilities: state.responsibilities\n },\n storage: state.storageMode === 'local'\n ? { mode: 'local', workspacePath: document.getElementById('localPath').value || '.personal-assistant' }\n : { mode: 'gdrive', folderId: '', folderName: 'Personal Assistant', cachePath: '.personal-assistant/cache' },\n integrations,\n sync: {\n dailySyncTime: document.getElementById('syncTime').value,\n timezone: document.getElementById('timezone').value,\n manualSyncEnabled: document.getElementById('manualSync').checked,\n asyncUpdateEnabled: document.getElementById('asyncUpdate').checked\n }\n };\n }\n\n async function saveConfig() {\n const config = buildConfig();\n const res = await fetch('/api/save', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(config)\n });\n const data = await res.json();\n if (data.success) showStep(7);\n else alert('Error: ' + data.error);\n }\n\n updateProgress();\n </script>\n</body>\n</html>`;\n}\n","// src/index.ts\nvar PROFILE_TEMPLATES = {\n \"software-engineer\": {\n profileType: \"software-engineer\",\n name: \"Software Engineer\",\n description: \"Context template for software engineers\",\n responsibilities: [\n \"Code review and PR management\",\n \"Feature development\",\n \"Bug fixing and debugging\",\n \"Architecture decisions\",\n \"Technical documentation\",\n \"On-call and incident response\",\n \"Mentoring junior engineers\",\n \"Sprint planning and estimation\",\n \"CI/CD pipeline maintenance\",\n \"API design and development\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nSoftware Engineer\n\n## Team\n<!-- Your team name -->\n\n## Primary Focus\n<!-- Main area of work -->\n\n## Key Repositories\n<!-- List your main repos -->\n\n## Tech Stack\n<!-- Languages, frameworks, tools -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Core Duties\n<!-- Your primary responsibilities -->\n\n## On-Call\n<!-- On-call schedule and escalation paths -->\n\n## Code Review\n<!-- Review expectations and areas -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Direct Manager\n<!-- Name, role -->\n\n## Team Members\n<!-- Key teammates -->\n\n## Cross-Team Contacts\n<!-- People you work with in other teams -->\n\n## Escalation Path\n<!-- Who to escalate to and when -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Internal Docs\n<!-- Links to internal documentation -->\n\n## Runbooks\n<!-- Links to runbooks -->\n\n## Architecture Docs\n<!-- Links to architecture documents -->\n`\n }\n ]\n },\n \"product-manager\": {\n profileType: \"product-manager\",\n name: \"Product Manager\",\n description: \"Context template for product managers\",\n responsibilities: [\n \"Product roadmap management\",\n \"Feature prioritization\",\n \"Stakeholder communication\",\n \"User research and interviews\",\n \"Metrics and KPI tracking\",\n \"Sprint planning and grooming\",\n \"Go-to-market strategy\",\n \"Competitive analysis\",\n \"Cross-team coordination\",\n \"Product requirements documentation\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nProduct Manager\n\n## Product Area\n<!-- Your product area -->\n\n## Key Metrics\n<!-- North star and supporting metrics -->\n\n## Current Quarter Goals\n<!-- OKRs or key goals -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Product Areas\n<!-- Products/features you own -->\n\n## Decision Authority\n<!-- What you can decide vs. escalate -->\n\n## Regular Meetings\n<!-- Recurring meetings and cadences -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Engineering Leads\n<!-- Engineering partners -->\n\n## Design Partners\n<!-- Design team contacts -->\n\n## Business Stakeholders\n<!-- Sales, marketing, exec sponsors -->\n\n## Customers\n<!-- Key customer contacts or segments -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## PRDs\n<!-- Product requirement documents -->\n\n## Roadmap\n<!-- Roadmap links -->\n\n## Analytics Dashboards\n<!-- Links to dashboards -->\n`\n }\n ]\n },\n \"engineering-manager\": {\n profileType: \"engineering-manager\",\n name: \"Engineering Manager\",\n description: \"Context template for engineering managers\",\n responsibilities: [\n \"Team management and 1:1s\",\n \"Hiring and interviewing\",\n \"Performance reviews\",\n \"Technical strategy\",\n \"Cross-team coordination\",\n \"Sprint planning and velocity\",\n \"Incident management\",\n \"Budget and resource planning\",\n \"Career development coaching\",\n \"Process improvement\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nEngineering Manager\n\n## Team\n<!-- Team name and size -->\n\n## Charter\n<!-- Team charter / mission -->\n\n## Key Systems\n<!-- Systems your team owns -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## People Management\n<!-- Direct reports, 1:1 cadence -->\n\n## Technical Oversight\n<!-- Architecture, code quality, tech debt -->\n\n## Process\n<!-- Agile ceremonies, team rituals -->\n\n## Hiring\n<!-- Open roles, pipeline -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Direct Reports\n<!-- Team members -->\n\n## Skip Level\n<!-- Your manager -->\n\n## Product Partners\n<!-- PMs you work with -->\n\n## Peer Managers\n<!-- Other EMs -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Team Docs\n<!-- Team wiki, confluence pages -->\n\n## Process Docs\n<!-- Runbooks, playbooks -->\n\n## HR Resources\n<!-- Performance review templates, etc. -->\n`\n }\n ]\n },\n devops: {\n profileType: \"devops\",\n name: \"DevOps Engineer\",\n description: \"Context template for DevOps engineers\",\n responsibilities: [\n \"CI/CD pipeline management\",\n \"Infrastructure as code\",\n \"Monitoring and alerting\",\n \"Incident response\",\n \"Security compliance\",\n \"Cost optimization\",\n \"Deployment automation\",\n \"Container orchestration\",\n \"Database management\",\n \"Disaster recovery planning\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nDevOps Engineer\n\n## Infrastructure\n<!-- Cloud provider, key services -->\n\n## Key Environments\n<!-- Production, staging, dev -->\n\n## Monitoring Stack\n<!-- Tools and dashboards -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Infrastructure\n<!-- IaC, cloud resources -->\n\n## CI/CD\n<!-- Pipelines, deployment processes -->\n\n## On-Call\n<!-- PagerDuty, escalation paths -->\n\n## Security\n<!-- Compliance, access management -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Platform Team\n<!-- Team members -->\n\n## Engineering Teams\n<!-- Teams you support -->\n\n## Security Team\n<!-- Security contacts -->\n\n## Vendor Contacts\n<!-- Cloud, tooling vendors -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Runbooks\n<!-- Incident response runbooks -->\n\n## Architecture Diagrams\n<!-- Infrastructure diagrams -->\n\n## Compliance Docs\n<!-- SOC2, security policies -->\n`\n }\n ]\n }\n};\nfunction getTemplate(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return { ...template };\n}\nfunction listProfiles() {\n return Object.keys(PROFILE_TEMPLATES);\n}\nfunction getResponsibilities(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return [...template.responsibilities];\n}\nfunction renderTemplate(template, user) {\n const files = {};\n for (const section of template.sections) {\n let content = section.defaultContent;\n content = content.replace(\"<!-- Your team name -->\", `${user.name}'s team`);\n if (section.fileName === \"responsibilities.md\" && user.responsibilities.length > 0) {\n content += \"\\n## Selected Responsibilities\\n\";\n for (const r of user.responsibilities) {\n content += `- ${r}\n`;\n }\n }\n files[section.fileName] = content;\n }\n return files;\n}\nfunction getTemplateSections(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return template.sections.map((s) => ({ ...s }));\n}\nexport {\n getResponsibilities,\n getTemplate,\n getTemplateSections,\n listProfiles,\n renderTemplate\n};\n"],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmVT;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/onboarding-server.ts","../../template-engine/dist/index.js"],"sourcesContent":["import express from 'express';\nimport * as path from 'node:path';\nimport * as fs from 'node:fs/promises';\nimport { exec } from 'node:child_process';\nimport { promisify } from 'node:util';\n\nconst execAsync = promisify(exec);\nimport { createLocalStorage } from '@personal-assistant/storage-local';\nimport { createGDriveStorage } from '@personal-assistant/storage-gdrive';\nimport { createConfigManager } from '@personal-assistant/config-manager';\nimport { createContextManager } from '@personal-assistant/context-manager';\nimport {\n getTemplate,\n renderTemplate,\n listProfiles,\n getResponsibilities,\n} from '@personal-assistant/template-engine';\nimport { validateIntegrationConfig } from '@personal-assistant/integration-runtime';\nimport { createSlackConnector, validateSlackAppToken } from '@personal-assistant/integrations-slack';\nimport { createNoopEventClient } from '@personal-assistant/event-client';\nimport type {\n AppConfig,\n LlmProvider,\n ProfileType,\n UserProfile,\n StorageConfig,\n GDriveStorageConfig,\n IntegrationConfig,\n SyncConfig,\n} from '@personal-assistant/core-types';\nimport { validateProviderConfig } from './provider-runtime.js';\n\ninterface GDriveAuthSession {\n clientId: string;\n clientSecret: string;\n status: 'pending' | 'authenticated' | 'complete' | 'error';\n // set after OAuth callback\n accessToken?: string;\n refreshToken?: string;\n // set after folder creation\n folderId?: string;\n folderName?: string;\n folderPath?: string;\n error?: string;\n}\n\nexport async function startOnboardingServer(\n port: number,\n workspacePath: string,\n): Promise<void> {\n const app = express();\n app.use(express.json());\n\n let gdriveAuthSession: GDriveAuthSession | null = null;\n\n const onboardingStaticPath = await resolveOnboardingStaticPath();\n\n // Try to serve built static files; fallback to inline HTML\n if (onboardingStaticPath) {\n app.use(express.static(onboardingStaticPath));\n } else {\n // Serve inline onboarding page if the web app isn't built\n app.get('/', (_req, res) => {\n res.send(getInlineOnboardingHtml());\n });\n }\n\n // --- API Routes ---\n\n app.get('/api/profiles', (_req, res) => {\n const profiles = listProfiles();\n res.json({ profiles });\n });\n\n app.get('/api/responsibilities/:profileType', (req, res) => {\n try {\n const responsibilities = getResponsibilities(req.params.profileType as ProfileType);\n res.json({ responsibilities });\n } catch {\n res.status(400).json({ error: 'Invalid profile type' });\n }\n });\n\n app.get('/api/template/:profileType', (req, res) => {\n try {\n const template = getTemplate(req.params.profileType as ProfileType);\n res.json({ template });\n } catch {\n res.status(400).json({ error: 'Invalid profile type' });\n }\n });\n\n app.post('/api/preview-template', (req, res) => {\n const { profileType, name, assistantName, responsibilities } = req.body;\n try {\n const template = getTemplate(profileType);\n const files = renderTemplate(template, { name, assistantName, responsibilities });\n res.json({ files });\n } catch (err) {\n res.status(400).json({ error: String(err) });\n }\n });\n\n app.post('/api/save', async (req, res) => {\n try {\n const config: AppConfig = req.body;\n\n // Use the user-chosen local path if provided, otherwise fall back to CLI --dir\n const effectivePath =\n config.storage.mode === 'local' && (config.storage as { workspacePath?: string }).workspacePath\n ? path.resolve((config.storage as { workspacePath: string }).workspacePath)\n : workspacePath;\n\n // Ensure the local directory exists (needed for bootstrap even in GDrive mode)\n await fs.mkdir(effectivePath, { recursive: true });\n\n // Save a global pointer so CLI commands can find the workspace without --dir\n const rcPath = path.join(process.env.HOME ?? process.env.USERPROFILE ?? '~', '.personal-assistant-rc.json');\n await fs.writeFile(rcPath, JSON.stringify({ workspacePath: effectivePath }, null, 2), 'utf-8');\n\n // Always save storage.json locally for bootstrap (so MCP server knows which backend to use)\n const localStorage = createLocalStorage(effectivePath);\n const localConfigManager = createConfigManager(localStorage);\n await localConfigManager.saveConfig(config);\n\n // Resolve the user's chosen storage backend\n let targetStorage: import('@personal-assistant/core-types').StorageBackend = localStorage;\n if (config.storage.mode === 'gdrive') {\n const gdriveConfig = config.storage as GDriveStorageConfig;\n const resolvedCachePath = path.isAbsolute(gdriveConfig.cachePath)\n ? gdriveConfig.cachePath\n : path.resolve(path.dirname(effectivePath), gdriveConfig.cachePath);\n\n const gdriveStorage = createGDriveStorage({\n ...gdriveConfig,\n cachePath: resolvedCachePath,\n });\n await gdriveStorage.initialize();\n targetStorage = gdriveStorage;\n\n // Write config to GDrive so all reads go through GDrive\n const gdriveConfigManager = createConfigManager(gdriveStorage);\n await gdriveConfigManager.saveConfig(config);\n }\n\n const contextManager = createContextManager(targetStorage);\n\n // Initialize workspace structure on the target backend\n await contextManager.initWorkspace();\n\n // Render and write template files to the target backend\n const template = getTemplate(config.user.profileType);\n const files = renderTemplate(template, {\n name: config.user.name,\n assistantName: config.user.assistantName,\n responsibilities: config.user.responsibilities,\n });\n await contextManager.writeCanonicalFiles(files);\n\n // Emit onboarding completed event\n const eventClient = createNoopEventClient();\n await eventClient.emit('onboarding_completed', {\n profile: config.user.profileType,\n storage_mode: config.storage.mode,\n });\n\n res.json({ success: true, workspacePath: effectivePath });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n // --- Integration credential validation ---\n\n app.post('/api/validate-integration', async (req, res) => {\n const { type, credentials } = req.body as {\n type: string;\n credentials: Record<string, string>;\n };\n\n try {\n const result = await validateIntegrationConfig({\n type: type as IntegrationConfig['type'],\n enabled: true,\n credentials,\n });\n\n if (result.ok) {\n res.json({ valid: true, info: result.summary ?? `Connected to ${type}` });\n return;\n }\n\n res.json({\n valid: false,\n error: [result.reason, ...(result.fix ?? [])].filter(Boolean).join(' '),\n });\n } catch (err) {\n res.json({ valid: false, error: String(err) });\n }\n });\n\n app.post('/api/validate-provider', async (req, res) => {\n const { provider, apiKey, model } = req.body as {\n provider: LlmProvider;\n apiKey: string;\n model?: string;\n };\n\n try {\n const result = await validateProviderConfig(provider, apiKey, model);\n res.json(result);\n } catch (err) {\n res.json({ valid: false, error: String(err) });\n }\n });\n\n app.post('/api/validate-slack-runtime', async (req, res) => {\n const {\n botToken,\n appToken,\n generationEnabled,\n providers,\n } = req.body as {\n botToken?: string;\n appToken?: string;\n generationEnabled?: boolean;\n providers?: {\n openai?: { apiKey?: string; model?: string };\n anthropic?: { apiKey?: string; model?: string };\n };\n };\n\n if (!botToken || !appToken) {\n res.json({ valid: false, error: 'Slack bot token and app token are required.' });\n return;\n }\n\n if (!botToken.startsWith('xoxb-')) {\n res.json({\n valid: false,\n error: 'Slack bot token must start with xoxb-. Paste the Bot User OAuth Token from OAuth & Permissions.',\n });\n return;\n }\n\n if (!appToken.startsWith('xapp-')) {\n res.json({\n valid: false,\n error: 'Slack Socket Mode app token must start with xapp-. Create an App-Level Token with connections:write under Socket Mode.',\n });\n return;\n }\n\n try {\n const connector = createSlackConnector();\n await connector.authenticate({\n type: 'slack',\n enabled: true,\n credentials: { botToken },\n });\n const health = await connector.healthCheck();\n await validateSlackAppToken(appToken);\n\n if (generationEnabled) {\n const providerEntries = [\n ['openai', providers?.openai],\n ['anthropic', providers?.anthropic],\n ] as const;\n\n const configuredProviders = providerEntries.filter(([, value]) => value?.apiKey);\n if (configuredProviders.length === 0) {\n res.json({ valid: false, error: 'Enable at least one provider when Slack generation is turned on.' });\n return;\n }\n\n for (const [provider, value] of configuredProviders) {\n const result = await validateProviderConfig(provider, value?.apiKey ?? '', value?.model);\n if (!result.valid) {\n res.json({ valid: false, error: result.error ?? `Failed to validate ${provider}` });\n return;\n }\n }\n }\n\n res.json({\n valid: true,\n info: `${health.summary ?? 'Slack connected'} via Socket Mode. Atlas will monitor channels where the bot is added.`,\n });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n if (message.includes('not_allowed_token_type')) {\n res.json({\n valid: false,\n error: 'Slack rejected the Socket Mode token. Use an App-Level Token that starts with xapp- and has the connections:write scope.',\n });\n return;\n }\n\n res.json({\n valid: false,\n error: message,\n });\n }\n });\n\n // --- Local folder picker ---\n\n app.get('/api/pick-folder', async (_req, res) => {\n try {\n let folderPath: string;\n const platform = process.platform;\n\n if (platform === 'darwin') {\n const { stdout } = await execAsync(\n `osascript -e 'POSIX path of (choose folder with prompt \"Select a folder for your personal assistant context\")'`,\n );\n folderPath = stdout.trim();\n } else if (platform === 'linux') {\n const { stdout } = await execAsync(\n 'zenity --file-selection --directory --title=\"Select storage folder\"',\n );\n folderPath = stdout.trim();\n } else if (platform === 'win32') {\n const ps =\n '[System.Reflection.Assembly]::LoadWithPartialName(\\'System.windows.forms\\') | Out-Null; ' +\n '$f = New-Object System.Windows.Forms.FolderBrowserDialog; ' +\n '$f.Description = \\'Select a folder for your personal assistant context\\'; ' +\n '$f.ShowDialog() | Out-Null; $f.SelectedPath';\n const { stdout } = await execAsync(`powershell -command \"${ps}\"`);\n folderPath = stdout.trim();\n } else {\n res.status(400).json({ error: 'Folder picker not supported on this platform' });\n return;\n }\n\n if (!folderPath) {\n res.json({ cancelled: true });\n return;\n }\n\n res.json({ path: folderPath });\n } catch (err) {\n // osascript throws when the user clicks Cancel — treat as cancellation\n if (String(err).includes('User canceled') || String(err).includes('cancel')) {\n res.json({ cancelled: true });\n return;\n }\n res.status(500).json({ error: String(err) });\n }\n });\n\n // --- Google Drive OAuth routes ---\n\n app.post('/api/gdrive/auth-start', async (req, res) => {\n const { clientId, clientSecret } = req.body as { clientId?: string; clientSecret?: string };\n if (!clientId || !clientSecret) {\n res.status(400).json({ error: 'clientId and clientSecret are required' });\n return;\n }\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(clientId, clientSecret, redirectUri);\n const authUrl = oauth2Client.generateAuthUrl({\n access_type: 'offline',\n prompt: 'consent',\n scope: ['https://www.googleapis.com/auth/drive.file'],\n });\n\n gdriveAuthSession = { clientId, clientSecret, status: 'pending' };\n res.json({ authUrl });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n app.get('/api/gdrive/callback', async (req, res) => {\n const { code } = req.query as { code?: string };\n\n if (!code || !gdriveAuthSession) {\n res.status(400).send('Invalid OAuth callback — no pending auth session.');\n return;\n }\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(\n gdriveAuthSession.clientId,\n gdriveAuthSession.clientSecret,\n redirectUri,\n );\n\n const { tokens } = await oauth2Client.getToken(code);\n\n // Store tokens only — folder is created in a separate step\n gdriveAuthSession = {\n ...gdriveAuthSession,\n status: 'authenticated',\n refreshToken: tokens.refresh_token ?? undefined,\n accessToken: tokens.access_token ?? undefined,\n };\n\n res.send(`<!DOCTYPE html><html><body>\n <script>window.close();</script>\n <p style=\"font-family:sans-serif;padding:2rem;color:#4ade80;\">\n ✓ Authentication successful — you can close this tab and return to the setup.\n </p>\n </body></html>`);\n } catch (err) {\n if (gdriveAuthSession) {\n gdriveAuthSession.status = 'error';\n gdriveAuthSession.error = String(err);\n }\n res.status(500).send('Authentication failed: ' + String(err));\n }\n });\n\n app.get('/api/gdrive/auth-status', (_req, res) => {\n if (!gdriveAuthSession) {\n res.json({ status: 'idle' });\n return;\n }\n const { clientId: _cid, clientSecret: _csec, accessToken: _at, refreshToken: _rt, ...publicSession } = gdriveAuthSession;\n res.json(publicSession);\n });\n\n app.post('/api/gdrive/create-folder', async (req, res) => {\n if (!gdriveAuthSession || gdriveAuthSession.status !== 'authenticated') {\n res.status(400).json({ error: 'Not authenticated. Please connect Google Drive first.' });\n return;\n }\n\n const { folderName = 'Personal Assistant', parentFolderName = '' } =\n req.body as { folderName?: string; parentFolderName?: string };\n\n try {\n const { google } = await import('googleapis');\n const redirectUri = `http://localhost:${port}/api/gdrive/callback`;\n const oauth2Client = new google.auth.OAuth2(\n gdriveAuthSession.clientId,\n gdriveAuthSession.clientSecret,\n redirectUri,\n );\n oauth2Client.setCredentials({\n access_token: gdriveAuthSession.accessToken,\n refresh_token: gdriveAuthSession.refreshToken,\n });\n\n const drive = google.drive({ version: 'v3', auth: oauth2Client });\n\n // Resolve parent folder\n let parentId = 'root';\n let locationPath = 'My Drive';\n\n if (parentFolderName.trim()) {\n const searchRes = await drive.files.list({\n q: `name='${parentFolderName.trim()}' and mimeType='application/vnd.google-apps.folder' and trashed=false`,\n fields: 'files(id,name)',\n spaces: 'drive',\n });\n\n if (searchRes.data.files && searchRes.data.files.length > 0) {\n parentId = searchRes.data.files[0].id!;\n } else {\n // Create the parent folder at root\n const parentRes = await drive.files.create({\n requestBody: {\n name: parentFolderName.trim(),\n mimeType: 'application/vnd.google-apps.folder',\n },\n fields: 'id',\n });\n parentId = parentRes.data.id!;\n }\n locationPath = `My Drive / ${parentFolderName.trim()}`;\n }\n\n // Check if the main folder already exists under the parent before creating\n let folderId: string | undefined;\n let resolvedFolderName = folderName.trim();\n const existingSearch = await drive.files.list({\n q: `name='${resolvedFolderName}' and '${parentId}' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false`,\n fields: 'files(id,name)',\n spaces: 'drive',\n });\n\n if (existingSearch.data.files && existingSearch.data.files.length > 0) {\n folderId = existingSearch.data.files[0].id!;\n resolvedFolderName = existingSearch.data.files[0].name!;\n } else {\n const folderRes = await drive.files.create({\n requestBody: {\n name: resolvedFolderName,\n mimeType: 'application/vnd.google-apps.folder',\n parents: [parentId],\n },\n fields: 'id,name',\n });\n folderId = folderRes.data.id!;\n resolvedFolderName = folderRes.data.name!;\n }\n\n const folderPath = `${locationPath} / ${resolvedFolderName}`;\n\n // Refresh tokens in case they were rotated\n const freshCredentials = await oauth2Client.getAccessToken();\n const latestRefreshToken =\n (oauth2Client.credentials.refresh_token as string | undefined) ??\n gdriveAuthSession.refreshToken;\n\n gdriveAuthSession = {\n ...gdriveAuthSession,\n status: 'complete',\n folderId: folderId!,\n folderName: resolvedFolderName,\n folderPath,\n refreshToken: latestRefreshToken,\n accessToken: freshCredentials.token ?? undefined,\n };\n\n res.json({\n folderId,\n folderName: resolvedFolderName,\n folderPath,\n refreshToken: latestRefreshToken,\n });\n } catch (err) {\n res.status(500).json({ error: String(err) });\n }\n });\n\n app.get('/api/status', async (_req, res) => {\n const storage = createLocalStorage(workspacePath);\n const configManager = createConfigManager(storage);\n try {\n const config = await configManager.loadConfig();\n res.json({ configured: true, config });\n } catch {\n res.json({ configured: false });\n }\n });\n\n // Start server\n const server = app.listen(port, () => {\n const url = `http://localhost:${port}`;\n console.log(`Onboarding server running at ${url}`);\n\n // Try to open browser\n import('open')\n .then((openModule) => openModule.default(url))\n .catch(() => {\n console.log(`Open ${url} in your browser to continue.`);\n });\n });\n\n // Handle graceful shutdown\n process.on('SIGINT', () => {\n console.log('\\nShutting down onboarding server...');\n server.close();\n process.exit(0);\n });\n}\n\nasync function resolveOnboardingStaticPath(): Promise<string | null> {\n const baseDir = import.meta.dirname ?? __dirname;\n const candidates = [\n path.resolve(baseDir, './onboarding-web'),\n path.resolve(baseDir, '../../../apps/onboarding-web/dist'),\n ];\n\n for (const candidate of candidates) {\n try {\n await fs.access(path.join(candidate, 'index.html'));\n return candidate;\n } catch {\n // keep looking\n }\n }\n\n return null;\n}\n\nfunction getInlineOnboardingHtml(): string {\n return `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>Personal Assistant - Setup</title>\n <style>\n * { margin: 0; padding: 0; box-sizing: border-box; }\n body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; background: #0f172a; color: #e2e8f0; min-height: 100vh; }\n .container { max-width: 640px; margin: 0 auto; padding: 2rem; }\n h1 { font-size: 1.8rem; margin-bottom: 0.5rem; color: #f8fafc; }\n h2 { font-size: 1.2rem; margin-bottom: 1rem; color: #94a3b8; font-weight: 400; }\n .step { display: none; }\n .step.active { display: block; }\n .progress { display: flex; gap: 0.5rem; margin-bottom: 2rem; }\n .progress-dot { width: 2rem; height: 0.25rem; background: #334155; border-radius: 2px; transition: background 0.3s; }\n .progress-dot.done { background: #3b82f6; }\n .progress-dot.current { background: #60a5fa; }\n label { display: block; margin-bottom: 0.5rem; color: #cbd5e1; font-size: 0.9rem; }\n input, select, textarea { width: 100%; padding: 0.75rem; background: #1e293b; border: 1px solid #334155; border-radius: 0.5rem; color: #f8fafc; font-size: 1rem; margin-bottom: 1rem; }\n input:focus, select:focus, textarea:focus { outline: none; border-color: #3b82f6; }\n textarea { min-height: 200px; font-family: 'SF Mono', 'Fira Code', monospace; font-size: 0.85rem; }\n button { padding: 0.75rem 1.5rem; border: none; border-radius: 0.5rem; font-size: 1rem; cursor: pointer; transition: all 0.2s; }\n .btn-primary { background: #3b82f6; color: white; }\n .btn-primary:hover { background: #2563eb; }\n .btn-secondary { background: #334155; color: #e2e8f0; }\n .btn-secondary:hover { background: #475569; }\n .btn-group { display: flex; gap: 0.75rem; margin-top: 1.5rem; }\n .checkbox-group { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin-bottom: 1rem; }\n .checkbox-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem; background: #1e293b; border: 1px solid #334155; border-radius: 0.375rem; cursor: pointer; }\n .checkbox-item:hover { border-color: #475569; }\n .checkbox-item input[type=\"checkbox\"] { width: auto; margin: 0; }\n .radio-group { display: flex; gap: 1rem; margin-bottom: 1rem; }\n .radio-item { flex: 1; padding: 1rem; background: #1e293b; border: 2px solid #334155; border-radius: 0.5rem; cursor: pointer; text-align: center; transition: all 0.2s; }\n .radio-item:hover { border-color: #475569; }\n .radio-item.selected { border-color: #3b82f6; background: #1e3a5f; }\n .success { text-align: center; padding: 3rem 0; }\n .success h2 { color: #4ade80; font-size: 1.5rem; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"progress\" id=\"progress\"></div>\n\n <!-- Step 1: Identity -->\n <div class=\"step active\" data-step=\"0\">\n <h1>Welcome</h1>\n <h2>Let's set up your personal assistant</h2>\n <label>Your Name</label>\n <input type=\"text\" id=\"userName\" placeholder=\"Jane Smith\">\n <label>Assistant Name</label>\n <input type=\"text\" id=\"assistantName\" placeholder=\"Atlas\" value=\"Atlas\">\n <label>Profile</label>\n <select id=\"profileType\">\n <option value=\"software-engineer\">Software Engineer</option>\n <option value=\"product-manager\">Product Manager</option>\n <option value=\"engineering-manager\">Engineering Manager</option>\n <option value=\"devops\">DevOps Engineer</option>\n </select>\n <div class=\"btn-group\"><button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button></div>\n </div>\n\n <!-- Step 2: Responsibilities -->\n <div class=\"step\" data-step=\"1\">\n <h1>Responsibilities</h1>\n <h2>Select your core responsibilities</h2>\n <div class=\"checkbox-group\" id=\"responsibilitiesGroup\"></div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 3: Template Preview -->\n <div class=\"step\" data-step=\"2\">\n <h1>Context Template</h1>\n <h2>Preview and customize your context template</h2>\n <textarea id=\"templatePreview\"></textarea>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 4: Storage -->\n <div class=\"step\" data-step=\"3\">\n <h1>Storage</h1>\n <h2>Where should your context be stored?</h2>\n <div class=\"radio-group\">\n <div class=\"radio-item selected\" onclick=\"selectStorage('local')\" id=\"storage-local\">\n <strong>Local Workspace</strong><br><small>Files stored on this machine</small>\n </div>\n <div class=\"radio-item\" onclick=\"selectStorage('gdrive')\" id=\"storage-gdrive\">\n <strong>Google Drive</strong><br><small>Files stored in your Drive folder</small>\n </div>\n </div>\n <div id=\"storage-local-fields\">\n <label>Storage path</label>\n <div style=\"display:flex;gap:0.5rem;align-items:center;\">\n <input type=\"text\" id=\"localPath\" value=\".personal-assistant\" placeholder=\".personal-assistant\" style=\"flex:1;margin-bottom:0;\">\n <button class=\"btn-secondary\" onclick=\"browseFolder()\" id=\"browseBtn\" style=\"white-space:nowrap;flex-shrink:0;\">Browse</button>\n </div>\n <small style=\"color:#64748b;font-size:0.8rem;display:block;margin-top:0.4rem;margin-bottom:1rem;\">Click Browse to open a folder picker, or type a path directly.</small>\n </div>\n <div id=\"storage-gdrive-fields\" style=\"display:none;\">\n <p style=\"color:#f59e0b;font-size:0.85rem;margin-bottom:1rem;\">\n Google Drive OAuth is only supported in the full onboarding UI.<br>\n Run <code>pnpm build</code> in <code>apps/onboarding-web</code> then restart <code>pacman init</code>.\n </p>\n </div>\n <div style=\"background:#1c1917;border:1px solid #92400e;border-radius:0.5rem;padding:0.75rem 1rem;margin-bottom:1.5rem;font-size:0.85rem;color:#fbbf24;\">\n ⚠️ Do not delete, move, or rename the folder structure created by this setup. Claude and the sync daemon rely on the exact file layout to load and update your context.\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 5: Integrations -->\n <div class=\"step\" data-step=\"4\">\n <h1>Integrations</h1>\n <h2>Connect your tools (optional)</h2>\n <div class=\"checkbox-group\" id=\"integrationsGroup\">\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"slack\"> Slack</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gmail\"> Gmail</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"github\"> GitHub</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gitlab\"> GitLab</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gdrive\"> Google Drive Docs</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" value=\"gchat\"> Google Chat</label>\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 6: Sync Schedule -->\n <div class=\"step\" data-step=\"5\">\n <h1>Sync Schedule</h1>\n <h2>When should context be refreshed?</h2>\n <label>Daily Sync Time</label>\n <input type=\"time\" id=\"syncTime\" value=\"08:00\">\n <label>Timezone</label>\n <select id=\"timezone\">\n <option value=\"America/New_York\">Eastern Time (ET)</option>\n <option value=\"America/Chicago\">Central Time (CT)</option>\n <option value=\"America/Denver\">Mountain Time (MT)</option>\n <option value=\"America/Los_Angeles\">Pacific Time (PT)</option>\n <option value=\"UTC\">UTC</option>\n <option value=\"Europe/London\">London (GMT/BST)</option>\n <option value=\"Europe/Berlin\">Berlin (CET)</option>\n <option value=\"Asia/Tokyo\">Tokyo (JST)</option>\n <option value=\"Asia/Kolkata\">India (IST)</option>\n <option value=\"Australia/Sydney\">Sydney (AEST)</option>\n </select>\n <div class=\"checkbox-group\">\n <label class=\"checkbox-item\"><input type=\"checkbox\" id=\"manualSync\" checked> Manual sync</label>\n <label class=\"checkbox-item\"><input type=\"checkbox\" id=\"asyncUpdate\" checked> Async updates</label>\n </div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"nextStep()\">Continue</button>\n </div>\n </div>\n\n <!-- Step 7: Finish -->\n <div class=\"step\" data-step=\"6\">\n <h1>All Set!</h1>\n <h2>Review and save your configuration</h2>\n <div id=\"summary\" style=\"background:#1e293b;padding:1rem;border-radius:0.5rem;margin-bottom:1rem;font-family:monospace;font-size:0.85rem;white-space:pre-wrap;\"></div>\n <div class=\"btn-group\">\n <button class=\"btn-secondary\" onclick=\"prevStep()\">Back</button>\n <button class=\"btn-primary\" onclick=\"saveConfig()\">Save & Finish</button>\n </div>\n </div>\n\n <!-- Success -->\n <div class=\"step\" data-step=\"7\">\n <div class=\"success\">\n <h2>Setup Complete!</h2>\n <p style=\"margin-top:1rem;color:#94a3b8;\">Your personal assistant context has been initialized.</p>\n <p style=\"margin-top:1rem;color:#94a3b8;\">Next steps:</p>\n <pre style=\"text-align:left;margin-top:1rem;background:#1e293b;padding:1rem;border-radius:0.5rem;font-size:0.85rem;\">\n# Install Claude Code integration\npacman claude install\npacman mcp claude install\n\n# Install Codex integration\npacman codex install\npacman mcp codex install\n\n# Start the sync daemon\npacman daemon\n\n# Start the real-time Slack listener\npacman slack listen\n\n# Use in Claude Code\n/personal-assistant start <project>\n\n# Use in Codex\nAsk Codex to load or refresh your Personal Assistant context for <project></pre>\n <p style=\"margin-top:1rem;color:#64748b;font-size:0.85rem;\">Restart Claude Code or Codex after installing the MCP server.<br>If <code style=\"background:#1e293b;padding:0 4px;border-radius:3px;\">pacman</code> is not found, link it first. The legacy alias <code style=\"background:#1e293b;padding:0 4px;border-radius:3px;\">personal-assistant</code> also remains available:<br>\n <code style=\"background:#1e293b;padding:2px 6px;border-radius:3px;\">pnpm setup && source ~/.zshrc && cd packages/cli && pnpm link --global</code></p>\n </div>\n </div>\n </div>\n\n <script>\n let currentStep = 0;\n const totalSteps = 7;\n let state = { storageMode: 'local', responsibilities: [] };\n\n function updateProgress() {\n const bar = document.getElementById('progress');\n bar.innerHTML = '';\n for (let i = 0; i < totalSteps; i++) {\n const dot = document.createElement('div');\n dot.className = 'progress-dot' + (i < currentStep ? ' done' : i === currentStep ? ' current' : '');\n bar.appendChild(dot);\n }\n }\n\n function showStep(n) {\n document.querySelectorAll('.step').forEach(s => s.classList.remove('active'));\n document.querySelector('[data-step=\"' + n + '\"]').classList.add('active');\n currentStep = n;\n updateProgress();\n }\n\n async function nextStep() {\n if (currentStep === 0) await loadResponsibilities();\n if (currentStep === 1) await loadTemplatePreview();\n if (currentStep === 5) updateSummary();\n showStep(currentStep + 1);\n }\n\n function prevStep() { showStep(currentStep - 1); }\n\n async function loadResponsibilities() {\n const profileType = document.getElementById('profileType').value;\n const res = await fetch('/api/responsibilities/' + profileType);\n const data = await res.json();\n const group = document.getElementById('responsibilitiesGroup');\n group.innerHTML = data.responsibilities.map(r =>\n '<label class=\"checkbox-item\"><input type=\"checkbox\" value=\"' + r + '\" checked> ' + r + '</label>'\n ).join('');\n }\n\n async function loadTemplatePreview() {\n const profileType = document.getElementById('profileType').value;\n const name = document.getElementById('userName').value;\n const assistantName = document.getElementById('assistantName').value;\n const responsibilities = Array.from(document.querySelectorAll('#responsibilitiesGroup input:checked')).map(c => c.value);\n state.responsibilities = responsibilities;\n\n const res = await fetch('/api/preview-template', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ profileType, name, assistantName, responsibilities })\n });\n const data = await res.json();\n const preview = Object.entries(data.files).map(([f, c]) => '--- ' + f + ' ---\\\\n' + c).join('\\\\n\\\\n');\n document.getElementById('templatePreview').value = preview;\n }\n\n function selectStorage(mode) {\n state.storageMode = mode;\n document.querySelectorAll('.radio-item').forEach(r => r.classList.remove('selected'));\n document.getElementById('storage-' + mode).classList.add('selected');\n document.getElementById('storage-local-fields').style.display = mode === 'local' ? 'block' : 'none';\n document.getElementById('storage-gdrive-fields').style.display = mode === 'gdrive' ? 'block' : 'none';\n }\n\n async function browseFolder() {\n const btn = document.getElementById('browseBtn');\n btn.textContent = '…';\n btn.disabled = true;\n try {\n const res = await fetch('/api/pick-folder');\n const data = await res.json();\n if (!data.cancelled && data.path) {\n document.getElementById('localPath').value = data.path;\n }\n } catch (e) {\n // ignore — user can type path manually\n } finally {\n btn.textContent = 'Browse';\n btn.disabled = false;\n }\n }\n\n function updateSummary() {\n const config = buildConfig();\n document.getElementById('summary').textContent = JSON.stringify(config, null, 2);\n }\n\n function buildConfig() {\n const integrations = Array.from(document.querySelectorAll('#integrationsGroup input:checked')).map(c => ({\n type: c.value, enabled: true, credentials: {}, cursor: null, lastSyncAt: null\n }));\n\n return {\n user: {\n name: document.getElementById('userName').value,\n assistantName: document.getElementById('assistantName').value,\n profileType: document.getElementById('profileType').value,\n responsibilities: state.responsibilities\n },\n storage: state.storageMode === 'local'\n ? { mode: 'local', workspacePath: document.getElementById('localPath').value || '.personal-assistant' }\n : { mode: 'gdrive', folderId: '', folderName: 'Personal Assistant', cachePath: '.personal-assistant/cache' },\n integrations,\n sync: {\n dailySyncTime: document.getElementById('syncTime').value,\n timezone: document.getElementById('timezone').value,\n manualSyncEnabled: document.getElementById('manualSync').checked,\n asyncUpdateEnabled: document.getElementById('asyncUpdate').checked\n }\n };\n }\n\n async function saveConfig() {\n const config = buildConfig();\n const res = await fetch('/api/save', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(config)\n });\n const data = await res.json();\n if (data.success) showStep(7);\n else alert('Error: ' + data.error);\n }\n\n updateProgress();\n </script>\n</body>\n</html>`;\n}\n","// src/index.ts\nvar PROFILE_TEMPLATES = {\n \"software-engineer\": {\n profileType: \"software-engineer\",\n name: \"Software Engineer\",\n description: \"Context template for software engineers\",\n responsibilities: [\n \"Code review and PR management\",\n \"Feature development\",\n \"Bug fixing and debugging\",\n \"Architecture decisions\",\n \"Technical documentation\",\n \"On-call and incident response\",\n \"Mentoring junior engineers\",\n \"Sprint planning and estimation\",\n \"CI/CD pipeline maintenance\",\n \"API design and development\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nSoftware Engineer\n\n## Team\n<!-- Your team name -->\n\n## Primary Focus\n<!-- Main area of work -->\n\n## Key Repositories\n<!-- List your main repos -->\n\n## Tech Stack\n<!-- Languages, frameworks, tools -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Core Duties\n<!-- Your primary responsibilities -->\n\n## On-Call\n<!-- On-call schedule and escalation paths -->\n\n## Code Review\n<!-- Review expectations and areas -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Direct Manager\n<!-- Name, role -->\n\n## Team Members\n<!-- Key teammates -->\n\n## Cross-Team Contacts\n<!-- People you work with in other teams -->\n\n## Escalation Path\n<!-- Who to escalate to and when -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Internal Docs\n<!-- Links to internal documentation -->\n\n## Runbooks\n<!-- Links to runbooks -->\n\n## Architecture Docs\n<!-- Links to architecture documents -->\n`\n }\n ]\n },\n \"product-manager\": {\n profileType: \"product-manager\",\n name: \"Product Manager\",\n description: \"Context template for product managers\",\n responsibilities: [\n \"Product roadmap management\",\n \"Feature prioritization\",\n \"Stakeholder communication\",\n \"User research and interviews\",\n \"Metrics and KPI tracking\",\n \"Sprint planning and grooming\",\n \"Go-to-market strategy\",\n \"Competitive analysis\",\n \"Cross-team coordination\",\n \"Product requirements documentation\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nProduct Manager\n\n## Product Area\n<!-- Your product area -->\n\n## Key Metrics\n<!-- North star and supporting metrics -->\n\n## Current Quarter Goals\n<!-- OKRs or key goals -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Product Areas\n<!-- Products/features you own -->\n\n## Decision Authority\n<!-- What you can decide vs. escalate -->\n\n## Regular Meetings\n<!-- Recurring meetings and cadences -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Engineering Leads\n<!-- Engineering partners -->\n\n## Design Partners\n<!-- Design team contacts -->\n\n## Business Stakeholders\n<!-- Sales, marketing, exec sponsors -->\n\n## Customers\n<!-- Key customer contacts or segments -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## PRDs\n<!-- Product requirement documents -->\n\n## Roadmap\n<!-- Roadmap links -->\n\n## Analytics Dashboards\n<!-- Links to dashboards -->\n`\n }\n ]\n },\n \"engineering-manager\": {\n profileType: \"engineering-manager\",\n name: \"Engineering Manager\",\n description: \"Context template for engineering managers\",\n responsibilities: [\n \"Team management and 1:1s\",\n \"Hiring and interviewing\",\n \"Performance reviews\",\n \"Technical strategy\",\n \"Cross-team coordination\",\n \"Sprint planning and velocity\",\n \"Incident management\",\n \"Budget and resource planning\",\n \"Career development coaching\",\n \"Process improvement\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nEngineering Manager\n\n## Team\n<!-- Team name and size -->\n\n## Charter\n<!-- Team charter / mission -->\n\n## Key Systems\n<!-- Systems your team owns -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## People Management\n<!-- Direct reports, 1:1 cadence -->\n\n## Technical Oversight\n<!-- Architecture, code quality, tech debt -->\n\n## Process\n<!-- Agile ceremonies, team rituals -->\n\n## Hiring\n<!-- Open roles, pipeline -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Direct Reports\n<!-- Team members -->\n\n## Skip Level\n<!-- Your manager -->\n\n## Product Partners\n<!-- PMs you work with -->\n\n## Peer Managers\n<!-- Other EMs -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Team Docs\n<!-- Team wiki, confluence pages -->\n\n## Process Docs\n<!-- Runbooks, playbooks -->\n\n## HR Resources\n<!-- Performance review templates, etc. -->\n`\n }\n ]\n },\n devops: {\n profileType: \"devops\",\n name: \"DevOps Engineer\",\n description: \"Context template for DevOps engineers\",\n responsibilities: [\n \"CI/CD pipeline management\",\n \"Infrastructure as code\",\n \"Monitoring and alerting\",\n \"Incident response\",\n \"Security compliance\",\n \"Cost optimization\",\n \"Deployment automation\",\n \"Container orchestration\",\n \"Database management\",\n \"Disaster recovery planning\"\n ],\n sections: [\n {\n name: \"Overview\",\n fileName: \"overview.md\",\n required: true,\n defaultContent: `# Overview\n\n## Role\nDevOps Engineer\n\n## Infrastructure\n<!-- Cloud provider, key services -->\n\n## Key Environments\n<!-- Production, staging, dev -->\n\n## Monitoring Stack\n<!-- Tools and dashboards -->\n`\n },\n {\n name: \"Responsibilities\",\n fileName: \"responsibilities.md\",\n required: true,\n defaultContent: `# Responsibilities\n\n## Infrastructure\n<!-- IaC, cloud resources -->\n\n## CI/CD\n<!-- Pipelines, deployment processes -->\n\n## On-Call\n<!-- PagerDuty, escalation paths -->\n\n## Security\n<!-- Compliance, access management -->\n`\n },\n {\n name: \"Stakeholders\",\n fileName: \"stakeholders.md\",\n required: false,\n defaultContent: `# Stakeholders\n\n## Platform Team\n<!-- Team members -->\n\n## Engineering Teams\n<!-- Teams you support -->\n\n## Security Team\n<!-- Security contacts -->\n\n## Vendor Contacts\n<!-- Cloud, tooling vendors -->\n`\n },\n {\n name: \"Documentation\",\n fileName: \"docs.md\",\n required: false,\n defaultContent: `# Documentation References\n\n## Runbooks\n<!-- Incident response runbooks -->\n\n## Architecture Diagrams\n<!-- Infrastructure diagrams -->\n\n## Compliance Docs\n<!-- SOC2, security policies -->\n`\n }\n ]\n }\n};\nfunction getTemplate(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return { ...template };\n}\nfunction listProfiles() {\n return Object.keys(PROFILE_TEMPLATES);\n}\nfunction getResponsibilities(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return [...template.responsibilities];\n}\nfunction renderTemplate(template, user) {\n const files = {};\n for (const section of template.sections) {\n let content = section.defaultContent;\n content = content.replace(\"<!-- Your team name -->\", `${user.name}'s team`);\n if (section.fileName === \"responsibilities.md\" && user.responsibilities.length > 0) {\n content += \"\\n## Selected Responsibilities\\n\";\n for (const r of user.responsibilities) {\n content += `- ${r}\n`;\n }\n }\n files[section.fileName] = content;\n }\n return files;\n}\nfunction getTemplateSections(profileType) {\n const template = PROFILE_TEMPLATES[profileType];\n if (!template) {\n throw new Error(`Unknown profile type: ${profileType}`);\n }\n return template.sections.map((s) => ({ ...s }));\n}\nexport {\n getResponsibilities,\n getTemplate,\n getTemplateSections,\n listProfiles,\n renderTemplate\n};\n"],"mappings":"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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAmVT;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#0f172a;color:#e2e8f0;min-height:100vh}.container{max-width:640px;margin:0 auto;padding:2rem}.container:has(.template-preview){max-width:820px}h1{font-size:1.8rem;margin-bottom:.5rem;color:#f8fafc}h2{font-size:1.2rem;margin-bottom:1rem;color:#94a3b8;font-weight:400}.progress{display:flex;gap:.5rem;margin-bottom:2rem}.progress-dot{width:2rem;height:.25rem;background:#334155;border-radius:2px;transition:background .3s}.progress-dot.done{background:#3b82f6}.progress-dot.current{background:#60a5fa}label{display:block;margin-bottom:.5rem;color:#cbd5e1;font-size:.9rem}input,select,textarea{width:100%;padding:.75rem;background:#1e293b;border:1px solid #334155;border-radius:.5rem;color:#f8fafc;font-size:1rem;margin-bottom:1rem}input:focus,select:focus,textarea:focus{outline:none;border-color:#3b82f6}textarea{min-height:200px;font-family:SF Mono,Fira Code,monospace;font-size:.85rem}.template-preview{display:flex;height:520px;background:#0d1117;border:1px solid #30363d;border-radius:.75rem;overflow:hidden;margin-bottom:.5rem}.template-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;gap:1rem;color:#8b949e}.template-spinner{width:28px;height:28px;border:3px solid #30363d;border-top-color:#58a6ff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.template-error{display:flex;align-items:center;justify-content:center;width:100%;color:#f85149;font-size:.9rem}.template-sidebar{width:190px;min-width:190px;background:#161b22;border-right:1px solid #30363d;display:flex;flex-direction:column;overflow-y:auto}.template-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#8b949e;border-bottom:1px solid #30363d}.template-sidebar-actions{display:flex;gap:.25rem}.template-action-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:4px;color:#8b949e;cursor:pointer;transition:all .15s}.template-action-btn:hover{background:#30363d;color:#e6edf3}.template-file-tab{display:flex;align-items:center;gap:.5rem;width:100%;padding:.55rem 1rem;background:transparent;border:none;border-left:2px solid transparent;color:#c9d1d9;font-size:.8rem;cursor:pointer;text-align:left;transition:all .15s}.template-file-tab:hover{background:#1c2129}.template-file-tab.active{background:#0d1117;border-left-color:#58a6ff;color:#f0f6fc}.template-file-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;font-size:.65rem;font-weight:700;flex-shrink:0}.template-file-icon.icon-m{background:#1f6feb22;color:#58a6ff}.template-file-icon.icon-j{background:#f0883e22;color:#f0883e}.template-file-icon.icon-y{background:#d2a8ff22;color:#d2a8ff}.template-file-icon.icon-f{background:#8b949e22;color:#8b949e}.template-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-file-lines{font-size:.65rem;color:#484f58;flex-shrink:0}.template-folder-group{display:flex;flex-direction:column}.template-folder-row{display:flex;align-items:center;position:relative}.template-folder-tab{display:flex;align-items:center;gap:.35rem;flex:1;padding:.55rem .6rem .55rem .7rem;background:transparent;border:none;border-left:2px solid transparent;color:#c9d1d9;font-size:.8rem;cursor:pointer;text-align:left;transition:all .15s;min-width:0}.template-folder-tab:hover{background:#1c2129}.template-folder-arrow{font-size:.65rem;width:12px;flex-shrink:0;color:#8b949e}.template-file-icon.icon-folder{background:#d2992222;color:#d29922;display:flex;align-items:center;justify-content:center}.template-folder-action{display:none;align-items:center;justify-content:center;width:22px;height:22px;font-size:.75rem;color:#8b949e;cursor:pointer;border-radius:3px;flex-shrink:0;transition:all .15s}.template-folder-row:hover .template-folder-action{display:flex}.template-folder-add:hover{background:#1f6feb33;color:#58a6ff}.template-folder-children{display:flex;flex-direction:column}.template-file-tab.indented{padding-left:2.1rem}.template-folder-empty{padding:.4rem 1rem .4rem 2.1rem;font-size:.7rem;color:#484f58;font-style:italic}.template-item-delete{display:none;align-items:center;justify-content:center;width:22px;height:22px;font-size:.85rem;color:#8b949e;cursor:pointer;border-radius:3px;flex-shrink:0;transition:all .15s}.template-file-tab:hover .template-item-delete,.template-folder-row:hover .template-item-delete{display:flex}.template-file-tab:hover .template-file-lines,.template-folder-row:hover .template-file-lines{display:none}.template-item-delete:hover{background:#da363433;color:#f85149}.template-create-input{display:flex;align-items:center;gap:.35rem;padding:.35rem .6rem;background:#1c2129;border:1px solid #30363d;border-radius:4px;margin:.3rem .5rem}.template-create-prefix{font-family:SF Mono,Fira Code,monospace;font-size:.72rem;color:#8b949e;white-space:nowrap;flex-shrink:0}.template-create-field{width:100%;padding:.2rem .3rem;background:transparent;border:none;border-radius:0;color:#e6edf3;font-family:SF Mono,Fira Code,monospace;font-size:.78rem;outline:none;margin:0}.template-create-field::placeholder{color:#484f58}.template-empty-editor{display:flex;align-items:center;justify-content:center;flex:1;color:#484f58;font-size:.9rem}.template-editor{flex:1;display:flex;flex-direction:column;min-width:0}.template-editor-header{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;background:#161b22;border-bottom:1px solid #30363d;min-height:40px}.template-editor-path{font-family:SF Mono,Fira Code,monospace;font-size:.78rem;color:#c9d1d9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.template-editor-badge{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:.15rem .45rem;border-radius:9999px;background:#1f6feb22;color:#58a6ff;flex-shrink:0}.template-editor-body{display:flex;flex:1;overflow:auto}.template-line-numbers{display:flex;flex-direction:column;padding:.75rem 0;min-width:42px;text-align:right;font-family:SF Mono,Fira Code,monospace;font-size:.78rem;line-height:1.55;color:#484f58;-webkit-user-select:none;user-select:none;border-right:1px solid #21262d;background:#0d1117}.template-line-numbers span{padding:0 .6rem}.template-textarea{flex:1;padding:.75rem;background:#0d1117;border:none;border-radius:0;color:#c9d1d9;font-family:SF Mono,Fira Code,monospace;font-size:.78rem;line-height:1.55;resize:none;outline:none;min-height:100%;margin:0;white-space:pre;overflow-wrap:normal;overflow-x:auto}.template-textarea:focus{border:none}button{padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-size:1rem;cursor:pointer;transition:all .2s}.btn-primary{background:#3b82f6;color:#fff}.btn-primary:hover{background:#2563eb}.btn-secondary{background:#334155;color:#e2e8f0}.btn-secondary:hover{background:#475569}.btn-group{display:flex;gap:.75rem;margin-top:1.5rem}.checkbox-group{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem}.checkbox-item{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#1e293b;border:1px solid #334155;border-radius:.375rem;cursor:pointer}.checkbox-item:hover{border-color:#475569}.checkbox-item input[type=checkbox]{width:auto;margin:0}.radio-group{display:flex;gap:1rem;margin-bottom:1rem}.radio-item{flex:1;padding:1rem;background:#1e293b;border:2px solid #334155;border-radius:.5rem;cursor:pointer;text-align:center;transition:all .2s}.radio-item:hover{border-color:#475569}.radio-item.selected{border-color:#3b82f6;background:#1e3a5f}.success{text-align:center;padding:3rem 0}.success h2{color:#4ade80;font-size:1.5rem}.code-block{text-align:left;margin-top:1rem;background:#1e293b;padding:1rem;border-radius:.5rem;font-size:.85rem;font-family:SF Mono,Fira Code,monospace;white-space:pre-wrap}.summary{background:#1e293b;padding:1rem;border-radius:.5rem;margin-bottom:1rem;font-family:monospace;font-size:.85rem;white-space:pre-wrap}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
(function(){const D=document.createElement("link").relList;if(D&&D.supports&&D.supports("modulepreload"))return;for(const M of document.querySelectorAll('link[rel="modulepreload"]'))h(M);new MutationObserver(M=>{for(const q of M)if(q.type==="childList")for(const V of q.addedNodes)V.tagName==="LINK"&&V.rel==="modulepreload"&&h(V)}).observe(document,{childList:!0,subtree:!0});function X(M){const q={};return M.integrity&&(q.integrity=M.integrity),M.referrerPolicy&&(q.referrerPolicy=M.referrerPolicy),M.crossOrigin==="use-credentials"?q.credentials="include":M.crossOrigin==="anonymous"?q.credentials="omit":q.credentials="same-origin",q}function h(M){if(M.ep)return;M.ep=!0;const q=X(M);fetch(M.href,q)}})();function Hd(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var rf={exports:{}},zn={};/**
|
|
2
|
+
* @license React
|
|
3
|
+
* react-jsx-runtime.production.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
6
|
+
*
|
|
7
|
+
* This source code is licensed under the MIT license found in the
|
|
8
|
+
* LICENSE file in the root directory of this source tree.
|
|
9
|
+
*/var Td;function uy(){if(Td)return zn;Td=1;var r=Symbol.for("react.transitional.element"),D=Symbol.for("react.fragment");function X(h,M,q){var V=null;if(q!==void 0&&(V=""+q),M.key!==void 0&&(V=""+M.key),"key"in M){q={};for(var U in M)U!=="key"&&(q[U]=M[U])}else q=M;return M=q.ref,{$$typeof:r,type:h,key:V,ref:M!==void 0?M:null,props:q}}return zn.Fragment=D,zn.jsx=X,zn.jsxs=X,zn}var Ad;function iy(){return Ad||(Ad=1,rf.exports=uy()),rf.exports}var c=iy(),df={exports:{}},F={};/**
|
|
10
|
+
* @license React
|
|
11
|
+
* react.production.js
|
|
12
|
+
*
|
|
13
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
14
|
+
*
|
|
15
|
+
* This source code is licensed under the MIT license found in the
|
|
16
|
+
* LICENSE file in the root directory of this source tree.
|
|
17
|
+
*/var zd;function cy(){if(zd)return F;zd=1;var r=Symbol.for("react.transitional.element"),D=Symbol.for("react.portal"),X=Symbol.for("react.fragment"),h=Symbol.for("react.strict_mode"),M=Symbol.for("react.profiler"),q=Symbol.for("react.consumer"),V=Symbol.for("react.context"),U=Symbol.for("react.forward_ref"),_=Symbol.for("react.suspense"),T=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),B=Symbol.for("react.activity"),Z=Symbol.iterator;function Tl(s){return s===null||typeof s!="object"?null:(s=Z&&s[Z]||s["@@iterator"],typeof s=="function"?s:null)}var pl={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},il=Object.assign,Il={};function Ol(s,b,C){this.props=s,this.context=b,this.refs=Il,this.updater=C||pl}Ol.prototype.isReactComponent={},Ol.prototype.setState=function(s,b){if(typeof s!="object"&&typeof s!="function"&&s!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,s,b,"setState")},Ol.prototype.forceUpdate=function(s){this.updater.enqueueForceUpdate(this,s,"forceUpdate")};function ee(){}ee.prototype=Ol.prototype;function Sl(s,b,C){this.props=s,this.context=b,this.refs=Il,this.updater=C||pl}var Bl=Sl.prototype=new ee;Bl.constructor=Sl,il(Bl,Ol.prototype),Bl.isPureReactComponent=!0;var cl=Array.isArray;function j(){}var N={H:null,A:null,T:null,S:null},L=Object.prototype.hasOwnProperty;function nl(s,b,C){var R=C.ref;return{$$typeof:r,type:s,key:b,ref:R!==void 0?R:null,props:C}}function Ll(s,b){return nl(s.type,b,s.props)}function xl(s){return typeof s=="object"&&s!==null&&s.$$typeof===r}function El(s){var b={"=":"=0",":":"=2"};return"$"+s.replace(/[=:]/g,function(C){return b[C]})}var ul=/\/+/g;function Wl(s,b){return typeof s=="object"&&s!==null&&s.key!=null?El(""+s.key):b.toString(36)}function se(s){switch(s.status){case"fulfilled":return s.value;case"rejected":throw s.reason;default:switch(typeof s.status=="string"?s.then(j,j):(s.status="pending",s.then(function(b){s.status==="pending"&&(s.status="fulfilled",s.value=b)},function(b){s.status==="pending"&&(s.status="rejected",s.reason=b)})),s.status){case"fulfilled":return s.value;case"rejected":throw s.reason}}throw s}function x(s,b,C,R,w){var I=typeof s;(I==="undefined"||I==="boolean")&&(s=null);var rl=!1;if(s===null)rl=!0;else switch(I){case"bigint":case"string":case"number":rl=!0;break;case"object":switch(s.$$typeof){case r:case D:rl=!0;break;case k:return rl=s._init,x(rl(s._payload),b,C,R,w)}}if(rl)return w=w(s),rl=R===""?"."+Wl(s,0):R,cl(w)?(C="",rl!=null&&(C=rl.replace(ul,"$&/")+"/"),x(w,b,C,"",function(_a){return _a})):w!=null&&(xl(w)&&(w=Ll(w,C+(w.key==null||s&&s.key===w.key?"":(""+w.key).replace(ul,"$&/")+"/")+rl)),b.push(w)),1;rl=0;var Pl=R===""?".":R+":";if(cl(s))for(var Dl=0;Dl<s.length;Dl++)R=s[Dl],I=Pl+Wl(R,Dl),rl+=x(R,b,C,I,w);else if(Dl=Tl(s),typeof Dl=="function")for(s=Dl.call(s),Dl=0;!(R=s.next()).done;)R=R.value,I=Pl+Wl(R,Dl++),rl+=x(R,b,C,I,w);else if(I==="object"){if(typeof s.then=="function")return x(se(s),b,C,R,w);throw b=String(s),Error("Objects are not valid as a React child (found: "+(b==="[object Object]"?"object with keys {"+Object.keys(s).join(", ")+"}":b)+"). If you meant to render a collection of children, use an array instead.")}return rl}function O(s,b,C){if(s==null)return s;var R=[],w=0;return x(s,R,"","",function(I){return b.call(C,I,w++)}),R}function J(s){if(s._status===-1){var b=s._result;b=b(),b.then(function(C){(s._status===0||s._status===-1)&&(s._status=1,s._result=C)},function(C){(s._status===0||s._status===-1)&&(s._status=2,s._result=C)}),s._status===-1&&(s._status=0,s._result=b)}if(s._status===1)return s._result.default;throw s._result}var E=typeof reportError=="function"?reportError:function(s){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var b=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof s=="object"&&s!==null&&typeof s.message=="string"?String(s.message):String(s),error:s});if(!window.dispatchEvent(b))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",s);return}console.error(s)},G={map:O,forEach:function(s,b,C){O(s,function(){b.apply(this,arguments)},C)},count:function(s){var b=0;return O(s,function(){b++}),b},toArray:function(s){return O(s,function(b){return b})||[]},only:function(s){if(!xl(s))throw Error("React.Children.only expected to receive a single React element child.");return s}};return F.Activity=B,F.Children=G,F.Component=Ol,F.Fragment=X,F.Profiler=M,F.PureComponent=Sl,F.StrictMode=h,F.Suspense=_,F.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=N,F.__COMPILER_RUNTIME={__proto__:null,c:function(s){return N.H.useMemoCache(s)}},F.cache=function(s){return function(){return s.apply(null,arguments)}},F.cacheSignal=function(){return null},F.cloneElement=function(s,b,C){if(s==null)throw Error("The argument must be a React element, but you passed "+s+".");var R=il({},s.props),w=s.key;if(b!=null)for(I in b.key!==void 0&&(w=""+b.key),b)!L.call(b,I)||I==="key"||I==="__self"||I==="__source"||I==="ref"&&b.ref===void 0||(R[I]=b[I]);var I=arguments.length-2;if(I===1)R.children=C;else if(1<I){for(var rl=Array(I),Pl=0;Pl<I;Pl++)rl[Pl]=arguments[Pl+2];R.children=rl}return nl(s.type,w,R)},F.createContext=function(s){return s={$$typeof:V,_currentValue:s,_currentValue2:s,_threadCount:0,Provider:null,Consumer:null},s.Provider=s,s.Consumer={$$typeof:q,_context:s},s},F.createElement=function(s,b,C){var R,w={},I=null;if(b!=null)for(R in b.key!==void 0&&(I=""+b.key),b)L.call(b,R)&&R!=="key"&&R!=="__self"&&R!=="__source"&&(w[R]=b[R]);var rl=arguments.length-2;if(rl===1)w.children=C;else if(1<rl){for(var Pl=Array(rl),Dl=0;Dl<rl;Dl++)Pl[Dl]=arguments[Dl+2];w.children=Pl}if(s&&s.defaultProps)for(R in rl=s.defaultProps,rl)w[R]===void 0&&(w[R]=rl[R]);return nl(s,I,w)},F.createRef=function(){return{current:null}},F.forwardRef=function(s){return{$$typeof:U,render:s}},F.isValidElement=xl,F.lazy=function(s){return{$$typeof:k,_payload:{_status:-1,_result:s},_init:J}},F.memo=function(s,b){return{$$typeof:T,type:s,compare:b===void 0?null:b}},F.startTransition=function(s){var b=N.T,C={};N.T=C;try{var R=s(),w=N.S;w!==null&&w(C,R),typeof R=="object"&&R!==null&&typeof R.then=="function"&&R.then(j,E)}catch(I){E(I)}finally{b!==null&&C.types!==null&&(b.types=C.types),N.T=b}},F.unstable_useCacheRefresh=function(){return N.H.useCacheRefresh()},F.use=function(s){return N.H.use(s)},F.useActionState=function(s,b,C){return N.H.useActionState(s,b,C)},F.useCallback=function(s,b){return N.H.useCallback(s,b)},F.useContext=function(s){return N.H.useContext(s)},F.useDebugValue=function(){},F.useDeferredValue=function(s,b){return N.H.useDeferredValue(s,b)},F.useEffect=function(s,b){return N.H.useEffect(s,b)},F.useEffectEvent=function(s){return N.H.useEffectEvent(s)},F.useId=function(){return N.H.useId()},F.useImperativeHandle=function(s,b,C){return N.H.useImperativeHandle(s,b,C)},F.useInsertionEffect=function(s,b){return N.H.useInsertionEffect(s,b)},F.useLayoutEffect=function(s,b){return N.H.useLayoutEffect(s,b)},F.useMemo=function(s,b){return N.H.useMemo(s,b)},F.useOptimistic=function(s,b){return N.H.useOptimistic(s,b)},F.useReducer=function(s,b,C){return N.H.useReducer(s,b,C)},F.useRef=function(s){return N.H.useRef(s)},F.useState=function(s){return N.H.useState(s)},F.useSyncExternalStore=function(s,b,C){return N.H.useSyncExternalStore(s,b,C)},F.useTransition=function(){return N.H.useTransition()},F.version="19.2.4",F}var jd;function bf(){return jd||(jd=1,df.exports=cy()),df.exports}var gl=bf();const fy=Hd(gl);var mf={exports:{}},jn={},hf={exports:{}},yf={};/**
|
|
18
|
+
* @license React
|
|
19
|
+
* scheduler.production.js
|
|
20
|
+
*
|
|
21
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
22
|
+
*
|
|
23
|
+
* This source code is licensed under the MIT license found in the
|
|
24
|
+
* LICENSE file in the root directory of this source tree.
|
|
25
|
+
*/var Ed;function sy(){return Ed||(Ed=1,(function(r){function D(x,O){var J=x.length;x.push(O);l:for(;0<J;){var E=J-1>>>1,G=x[E];if(0<M(G,O))x[E]=O,x[J]=G,J=E;else break l}}function X(x){return x.length===0?null:x[0]}function h(x){if(x.length===0)return null;var O=x[0],J=x.pop();if(J!==O){x[0]=J;l:for(var E=0,G=x.length,s=G>>>1;E<s;){var b=2*(E+1)-1,C=x[b],R=b+1,w=x[R];if(0>M(C,J))R<G&&0>M(w,C)?(x[E]=w,x[R]=J,E=R):(x[E]=C,x[b]=J,E=b);else if(R<G&&0>M(w,J))x[E]=w,x[R]=J,E=R;else break l}}return O}function M(x,O){var J=x.sortIndex-O.sortIndex;return J!==0?J:x.id-O.id}if(r.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var q=performance;r.unstable_now=function(){return q.now()}}else{var V=Date,U=V.now();r.unstable_now=function(){return V.now()-U}}var _=[],T=[],k=1,B=null,Z=3,Tl=!1,pl=!1,il=!1,Il=!1,Ol=typeof setTimeout=="function"?setTimeout:null,ee=typeof clearTimeout=="function"?clearTimeout:null,Sl=typeof setImmediate<"u"?setImmediate:null;function Bl(x){for(var O=X(T);O!==null;){if(O.callback===null)h(T);else if(O.startTime<=x)h(T),O.sortIndex=O.expirationTime,D(_,O);else break;O=X(T)}}function cl(x){if(il=!1,Bl(x),!pl)if(X(_)!==null)pl=!0,j||(j=!0,El());else{var O=X(T);O!==null&&se(cl,O.startTime-x)}}var j=!1,N=-1,L=5,nl=-1;function Ll(){return Il?!0:!(r.unstable_now()-nl<L)}function xl(){if(Il=!1,j){var x=r.unstable_now();nl=x;var O=!0;try{l:{pl=!1,il&&(il=!1,ee(N),N=-1),Tl=!0;var J=Z;try{e:{for(Bl(x),B=X(_);B!==null&&!(B.expirationTime>x&&Ll());){var E=B.callback;if(typeof E=="function"){B.callback=null,Z=B.priorityLevel;var G=E(B.expirationTime<=x);if(x=r.unstable_now(),typeof G=="function"){B.callback=G,Bl(x),O=!0;break e}B===X(_)&&h(_),Bl(x)}else h(_);B=X(_)}if(B!==null)O=!0;else{var s=X(T);s!==null&&se(cl,s.startTime-x),O=!1}}break l}finally{B=null,Z=J,Tl=!1}O=void 0}}finally{O?El():j=!1}}}var El;if(typeof Sl=="function")El=function(){Sl(xl)};else if(typeof MessageChannel<"u"){var ul=new MessageChannel,Wl=ul.port2;ul.port1.onmessage=xl,El=function(){Wl.postMessage(null)}}else El=function(){Ol(xl,0)};function se(x,O){N=Ol(function(){x(r.unstable_now())},O)}r.unstable_IdlePriority=5,r.unstable_ImmediatePriority=1,r.unstable_LowPriority=4,r.unstable_NormalPriority=3,r.unstable_Profiling=null,r.unstable_UserBlockingPriority=2,r.unstable_cancelCallback=function(x){x.callback=null},r.unstable_forceFrameRate=function(x){0>x||125<x?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):L=0<x?Math.floor(1e3/x):5},r.unstable_getCurrentPriorityLevel=function(){return Z},r.unstable_next=function(x){switch(Z){case 1:case 2:case 3:var O=3;break;default:O=Z}var J=Z;Z=O;try{return x()}finally{Z=J}},r.unstable_requestPaint=function(){Il=!0},r.unstable_runWithPriority=function(x,O){switch(x){case 1:case 2:case 3:case 4:case 5:break;default:x=3}var J=Z;Z=x;try{return O()}finally{Z=J}},r.unstable_scheduleCallback=function(x,O,J){var E=r.unstable_now();switch(typeof J=="object"&&J!==null?(J=J.delay,J=typeof J=="number"&&0<J?E+J:E):J=E,x){case 1:var G=-1;break;case 2:G=250;break;case 5:G=1073741823;break;case 4:G=1e4;break;default:G=5e3}return G=J+G,x={id:k++,callback:O,priorityLevel:x,startTime:J,expirationTime:G,sortIndex:-1},J>E?(x.sortIndex=J,D(T,x),X(_)===null&&x===X(T)&&(il?(ee(N),N=-1):il=!0,se(cl,J-E))):(x.sortIndex=G,D(_,x),pl||Tl||(pl=!0,j||(j=!0,El()))),x},r.unstable_shouldYield=Ll,r.unstable_wrapCallback=function(x){var O=Z;return function(){var J=Z;Z=O;try{return x.apply(this,arguments)}finally{Z=J}}}})(yf)),yf}var Md;function oy(){return Md||(Md=1,hf.exports=sy()),hf.exports}var vf={exports:{}},$l={};/**
|
|
26
|
+
* @license React
|
|
27
|
+
* react-dom.production.js
|
|
28
|
+
*
|
|
29
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
30
|
+
*
|
|
31
|
+
* This source code is licensed under the MIT license found in the
|
|
32
|
+
* LICENSE file in the root directory of this source tree.
|
|
33
|
+
*/var Cd;function ry(){if(Cd)return $l;Cd=1;var r=bf();function D(_){var T="https://react.dev/errors/"+_;if(1<arguments.length){T+="?args[]="+encodeURIComponent(arguments[1]);for(var k=2;k<arguments.length;k++)T+="&args[]="+encodeURIComponent(arguments[k])}return"Minified React error #"+_+"; visit "+T+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function X(){}var h={d:{f:X,r:function(){throw Error(D(522))},D:X,C:X,L:X,m:X,X,S:X,M:X},p:0,findDOMNode:null},M=Symbol.for("react.portal");function q(_,T,k){var B=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:M,key:B==null?null:""+B,children:_,containerInfo:T,implementation:k}}var V=r.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function U(_,T){if(_==="font")return"";if(typeof T=="string")return T==="use-credentials"?T:""}return $l.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=h,$l.createPortal=function(_,T){var k=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!T||T.nodeType!==1&&T.nodeType!==9&&T.nodeType!==11)throw Error(D(299));return q(_,T,null,k)},$l.flushSync=function(_){var T=V.T,k=h.p;try{if(V.T=null,h.p=2,_)return _()}finally{V.T=T,h.p=k,h.d.f()}},$l.preconnect=function(_,T){typeof _=="string"&&(T?(T=T.crossOrigin,T=typeof T=="string"?T==="use-credentials"?T:"":void 0):T=null,h.d.C(_,T))},$l.prefetchDNS=function(_){typeof _=="string"&&h.d.D(_)},$l.preinit=function(_,T){if(typeof _=="string"&&T&&typeof T.as=="string"){var k=T.as,B=U(k,T.crossOrigin),Z=typeof T.integrity=="string"?T.integrity:void 0,Tl=typeof T.fetchPriority=="string"?T.fetchPriority:void 0;k==="style"?h.d.S(_,typeof T.precedence=="string"?T.precedence:void 0,{crossOrigin:B,integrity:Z,fetchPriority:Tl}):k==="script"&&h.d.X(_,{crossOrigin:B,integrity:Z,fetchPriority:Tl,nonce:typeof T.nonce=="string"?T.nonce:void 0})}},$l.preinitModule=function(_,T){if(typeof _=="string")if(typeof T=="object"&&T!==null){if(T.as==null||T.as==="script"){var k=U(T.as,T.crossOrigin);h.d.M(_,{crossOrigin:k,integrity:typeof T.integrity=="string"?T.integrity:void 0,nonce:typeof T.nonce=="string"?T.nonce:void 0})}}else T==null&&h.d.M(_)},$l.preload=function(_,T){if(typeof _=="string"&&typeof T=="object"&&T!==null&&typeof T.as=="string"){var k=T.as,B=U(k,T.crossOrigin);h.d.L(_,k,{crossOrigin:B,integrity:typeof T.integrity=="string"?T.integrity:void 0,nonce:typeof T.nonce=="string"?T.nonce:void 0,type:typeof T.type=="string"?T.type:void 0,fetchPriority:typeof T.fetchPriority=="string"?T.fetchPriority:void 0,referrerPolicy:typeof T.referrerPolicy=="string"?T.referrerPolicy:void 0,imageSrcSet:typeof T.imageSrcSet=="string"?T.imageSrcSet:void 0,imageSizes:typeof T.imageSizes=="string"?T.imageSizes:void 0,media:typeof T.media=="string"?T.media:void 0})}},$l.preloadModule=function(_,T){if(typeof _=="string")if(T){var k=U(T.as,T.crossOrigin);h.d.m(_,{as:typeof T.as=="string"&&T.as!=="script"?T.as:void 0,crossOrigin:k,integrity:typeof T.integrity=="string"?T.integrity:void 0})}else h.d.m(_)},$l.requestFormReset=function(_){h.d.r(_)},$l.unstable_batchedUpdates=function(_,T){return _(T)},$l.useFormState=function(_,T,k){return V.H.useFormState(_,T,k)},$l.useFormStatus=function(){return V.H.useHostTransitionStatus()},$l.version="19.2.4",$l}var Od;function dy(){if(Od)return vf.exports;Od=1;function r(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(D){console.error(D)}}return r(),vf.exports=ry(),vf.exports}/**
|
|
34
|
+
* @license React
|
|
35
|
+
* react-dom-client.production.js
|
|
36
|
+
*
|
|
37
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
38
|
+
*
|
|
39
|
+
* This source code is licensed under the MIT license found in the
|
|
40
|
+
* LICENSE file in the root directory of this source tree.
|
|
41
|
+
*/var _d;function my(){if(_d)return jn;_d=1;var r=oy(),D=bf(),X=dy();function h(l){var e="https://react.dev/errors/"+l;if(1<arguments.length){e+="?args[]="+encodeURIComponent(arguments[1]);for(var t=2;t<arguments.length;t++)e+="&args[]="+encodeURIComponent(arguments[t])}return"Minified React error #"+l+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function M(l){return!(!l||l.nodeType!==1&&l.nodeType!==9&&l.nodeType!==11)}function q(l){var e=l,t=l;if(l.alternate)for(;e.return;)e=e.return;else{l=e;do e=l,(e.flags&4098)!==0&&(t=e.return),l=e.return;while(l)}return e.tag===3?t:null}function V(l){if(l.tag===13){var e=l.memoizedState;if(e===null&&(l=l.alternate,l!==null&&(e=l.memoizedState)),e!==null)return e.dehydrated}return null}function U(l){if(l.tag===31){var e=l.memoizedState;if(e===null&&(l=l.alternate,l!==null&&(e=l.memoizedState)),e!==null)return e.dehydrated}return null}function _(l){if(q(l)!==l)throw Error(h(188))}function T(l){var e=l.alternate;if(!e){if(e=q(l),e===null)throw Error(h(188));return e!==l?null:l}for(var t=l,a=e;;){var n=t.return;if(n===null)break;var u=n.alternate;if(u===null){if(a=n.return,a!==null){t=a;continue}break}if(n.child===u.child){for(u=n.child;u;){if(u===t)return _(n),l;if(u===a)return _(n),e;u=u.sibling}throw Error(h(188))}if(t.return!==a.return)t=n,a=u;else{for(var i=!1,f=n.child;f;){if(f===t){i=!0,t=n,a=u;break}if(f===a){i=!0,a=n,t=u;break}f=f.sibling}if(!i){for(f=u.child;f;){if(f===t){i=!0,t=u,a=n;break}if(f===a){i=!0,a=u,t=n;break}f=f.sibling}if(!i)throw Error(h(189))}}if(t.alternate!==a)throw Error(h(190))}if(t.tag!==3)throw Error(h(188));return t.stateNode.current===t?l:e}function k(l){var e=l.tag;if(e===5||e===26||e===27||e===6)return l;for(l=l.child;l!==null;){if(e=k(l),e!==null)return e;l=l.sibling}return null}var B=Object.assign,Z=Symbol.for("react.element"),Tl=Symbol.for("react.transitional.element"),pl=Symbol.for("react.portal"),il=Symbol.for("react.fragment"),Il=Symbol.for("react.strict_mode"),Ol=Symbol.for("react.profiler"),ee=Symbol.for("react.consumer"),Sl=Symbol.for("react.context"),Bl=Symbol.for("react.forward_ref"),cl=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),L=Symbol.for("react.lazy"),nl=Symbol.for("react.activity"),Ll=Symbol.for("react.memo_cache_sentinel"),xl=Symbol.iterator;function El(l){return l===null||typeof l!="object"?null:(l=xl&&l[xl]||l["@@iterator"],typeof l=="function"?l:null)}var ul=Symbol.for("react.client.reference");function Wl(l){if(l==null)return null;if(typeof l=="function")return l.$$typeof===ul?null:l.displayName||l.name||null;if(typeof l=="string")return l;switch(l){case il:return"Fragment";case Ol:return"Profiler";case Il:return"StrictMode";case cl:return"Suspense";case j:return"SuspenseList";case nl:return"Activity"}if(typeof l=="object")switch(l.$$typeof){case pl:return"Portal";case Sl:return l.displayName||"Context";case ee:return(l._context.displayName||"Context")+".Consumer";case Bl:var e=l.render;return l=l.displayName,l||(l=e.displayName||e.name||"",l=l!==""?"ForwardRef("+l+")":"ForwardRef"),l;case N:return e=l.displayName||null,e!==null?e:Wl(l.type)||"Memo";case L:e=l._payload,l=l._init;try{return Wl(l(e))}catch{}}return null}var se=Array.isArray,x=D.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,O=X.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,J={pending:!1,data:null,method:null,action:null},E=[],G=-1;function s(l){return{current:l}}function b(l){0>G||(l.current=E[G],E[G]=null,G--)}function C(l,e){G++,E[G]=l.current,l.current=e}var R=s(null),w=s(null),I=s(null),rl=s(null);function Pl(l,e){switch(C(I,e),C(w,l),C(R,null),e.nodeType){case 9:case 11:l=(l=e.documentElement)&&(l=l.namespaceURI)?Kr(l):0;break;default:if(l=e.tagName,e=e.namespaceURI)e=Kr(e),l=Jr(e,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}b(R),C(R,l)}function Dl(){b(R),b(w),b(I)}function _a(l){l.memoizedState!==null&&C(rl,l);var e=R.current,t=Jr(e,l.type);e!==t&&(C(w,l),C(R,t))}function Cn(l){w.current===l&&(b(R),b(w)),rl.current===l&&(b(rl),Sn._currentValue=J)}var Ju,Sf;function Mt(l){if(Ju===void 0)try{throw Error()}catch(t){var e=t.stack.trim().match(/\n( *(at )?)/);Ju=e&&e[1]||"",Sf=-1<t.stack.indexOf(`
|
|
42
|
+
at`)?" (<anonymous>)":-1<t.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
43
|
+
`+Ju+l+Sf}var ku=!1;function wu(l,e){if(!l||ku)return"";ku=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var a={DetermineComponentFrameRoot:function(){try{if(e){var z=function(){throw Error()};if(Object.defineProperty(z.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(z,[])}catch(p){var g=p}Reflect.construct(l,[],z)}else{try{z.call()}catch(p){g=p}l.call(z.prototype)}}else{try{throw Error()}catch(p){g=p}(z=l())&&typeof z.catch=="function"&&z.catch(function(){})}}catch(p){if(p&&g&&typeof p.stack=="string")return[p.stack,g.stack]}return[null,null]}};a.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var n=Object.getOwnPropertyDescriptor(a.DetermineComponentFrameRoot,"name");n&&n.configurable&&Object.defineProperty(a.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var u=a.DetermineComponentFrameRoot(),i=u[0],f=u[1];if(i&&f){var o=i.split(`
|
|
44
|
+
`),v=f.split(`
|
|
45
|
+
`);for(n=a=0;a<o.length&&!o[a].includes("DetermineComponentFrameRoot");)a++;for(;n<v.length&&!v[n].includes("DetermineComponentFrameRoot");)n++;if(a===o.length||n===v.length)for(a=o.length-1,n=v.length-1;1<=a&&0<=n&&o[a]!==v[n];)n--;for(;1<=a&&0<=n;a--,n--)if(o[a]!==v[n]){if(a!==1||n!==1)do if(a--,n--,0>n||o[a]!==v[n]){var S=`
|
|
46
|
+
`+o[a].replace(" at new "," at ");return l.displayName&&S.includes("<anonymous>")&&(S=S.replace("<anonymous>",l.displayName)),S}while(1<=a&&0<=n);break}}}finally{ku=!1,Error.prepareStackTrace=t}return(t=l?l.displayName||l.name:"")?Mt(t):""}function Bd(l,e){switch(l.tag){case 26:case 27:case 5:return Mt(l.type);case 16:return Mt("Lazy");case 13:return l.child!==e&&e!==null?Mt("Suspense Fallback"):Mt("Suspense");case 19:return Mt("SuspenseList");case 0:case 15:return wu(l.type,!1);case 11:return wu(l.type.render,!1);case 1:return wu(l.type,!0);case 31:return Mt("Activity");default:return""}}function xf(l){try{var e="",t=null;do e+=Bd(l,t),t=l,l=l.return;while(l);return e}catch(a){return`
|
|
47
|
+
Error generating stack: `+a.message+`
|
|
48
|
+
`+a.stack}}var Fu=Object.prototype.hasOwnProperty,Wu=r.unstable_scheduleCallback,$u=r.unstable_cancelCallback,qd=r.unstable_shouldYield,Gd=r.unstable_requestPaint,oe=r.unstable_now,Yd=r.unstable_getCurrentPriorityLevel,Tf=r.unstable_ImmediatePriority,Af=r.unstable_UserBlockingPriority,On=r.unstable_NormalPriority,Xd=r.unstable_LowPriority,zf=r.unstable_IdlePriority,Qd=r.log,Zd=r.unstable_setDisableYieldValue,Na=null,re=null;function tt(l){if(typeof Qd=="function"&&Zd(l),re&&typeof re.setStrictMode=="function")try{re.setStrictMode(Na,l)}catch{}}var de=Math.clz32?Math.clz32:Kd,Vd=Math.log,Ld=Math.LN2;function Kd(l){return l>>>=0,l===0?32:31-(Vd(l)/Ld|0)|0}var _n=256,Nn=262144,Dn=4194304;function Ct(l){var e=l&42;if(e!==0)return e;switch(l&-l){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return l&261888;case 262144:case 524288:case 1048576:case 2097152:return l&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return l&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return l}}function Un(l,e,t){var a=l.pendingLanes;if(a===0)return 0;var n=0,u=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var f=a&134217727;return f!==0?(a=f&~u,a!==0?n=Ct(a):(i&=f,i!==0?n=Ct(i):t||(t=f&~l,t!==0&&(n=Ct(t))))):(f=a&~u,f!==0?n=Ct(f):i!==0?n=Ct(i):t||(t=a&~l,t!==0&&(n=Ct(t)))),n===0?0:e!==0&&e!==n&&(e&u)===0&&(u=n&-n,t=e&-e,u>=t||u===32&&(t&4194048)!==0)?e:n}function Da(l,e){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&e)===0}function Jd(l,e){switch(l){case 1:case 2:case 4:case 8:case 64:return e+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function jf(){var l=Dn;return Dn<<=1,(Dn&62914560)===0&&(Dn=4194304),l}function Iu(l){for(var e=[],t=0;31>t;t++)e.push(l);return e}function Ua(l,e){l.pendingLanes|=e,e!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function kd(l,e,t,a,n,u){var i=l.pendingLanes;l.pendingLanes=t,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=t,l.entangledLanes&=t,l.errorRecoveryDisabledLanes&=t,l.shellSuspendCounter=0;var f=l.entanglements,o=l.expirationTimes,v=l.hiddenUpdates;for(t=i&~t;0<t;){var S=31-de(t),z=1<<S;f[S]=0,o[S]=-1;var g=v[S];if(g!==null)for(v[S]=null,S=0;S<g.length;S++){var p=g[S];p!==null&&(p.lane&=-536870913)}t&=~z}a!==0&&Ef(l,a,0),u!==0&&n===0&&l.tag!==0&&(l.suspendedLanes|=u&~(i&~e))}function Ef(l,e,t){l.pendingLanes|=e,l.suspendedLanes&=~e;var a=31-de(e);l.entangledLanes|=e,l.entanglements[a]=l.entanglements[a]|1073741824|t&261930}function Mf(l,e){var t=l.entangledLanes|=e;for(l=l.entanglements;t;){var a=31-de(t),n=1<<a;n&e|l[a]&e&&(l[a]|=e),t&=~n}}function Cf(l,e){var t=e&-e;return t=(t&42)!==0?1:Pu(t),(t&(l.suspendedLanes|e))!==0?0:t}function Pu(l){switch(l){case 2:l=1;break;case 8:l=4;break;case 32:l=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:l=128;break;case 268435456:l=134217728;break;default:l=0}return l}function li(l){return l&=-l,2<l?8<l?(l&134217727)!==0?32:268435456:8:2}function Of(){var l=O.p;return l!==0?l:(l=window.event,l===void 0?32:yd(l.type))}function _f(l,e){var t=O.p;try{return O.p=l,e()}finally{O.p=t}}var at=Math.random().toString(36).slice(2),Kl="__reactFiber$"+at,te="__reactProps$"+at,Jt="__reactContainer$"+at,ei="__reactEvents$"+at,wd="__reactListeners$"+at,Fd="__reactHandles$"+at,Nf="__reactResources$"+at,Ra="__reactMarker$"+at;function ti(l){delete l[Kl],delete l[te],delete l[ei],delete l[wd],delete l[Fd]}function kt(l){var e=l[Kl];if(e)return e;for(var t=l.parentNode;t;){if(e=t[Jt]||t[Kl]){if(t=e.alternate,e.child!==null||t!==null&&t.child!==null)for(l=Pr(l);l!==null;){if(t=l[Kl])return t;l=Pr(l)}return e}l=t,t=l.parentNode}return null}function wt(l){if(l=l[Kl]||l[Jt]){var e=l.tag;if(e===5||e===6||e===13||e===31||e===26||e===27||e===3)return l}return null}function Ha(l){var e=l.tag;if(e===5||e===26||e===27||e===6)return l.stateNode;throw Error(h(33))}function Ft(l){var e=l[Nf];return e||(e=l[Nf]={hoistableStyles:new Map,hoistableScripts:new Map}),e}function Zl(l){l[Ra]=!0}var Df=new Set,Uf={};function Ot(l,e){Wt(l,e),Wt(l+"Capture",e)}function Wt(l,e){for(Uf[l]=e,l=0;l<e.length;l++)Df.add(e[l])}var Wd=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Rf={},Hf={};function $d(l){return Fu.call(Hf,l)?!0:Fu.call(Rf,l)?!1:Wd.test(l)?Hf[l]=!0:(Rf[l]=!0,!1)}function Rn(l,e,t){if($d(e))if(t===null)l.removeAttribute(e);else{switch(typeof t){case"undefined":case"function":case"symbol":l.removeAttribute(e);return;case"boolean":var a=e.toLowerCase().slice(0,5);if(a!=="data-"&&a!=="aria-"){l.removeAttribute(e);return}}l.setAttribute(e,""+t)}}function Hn(l,e,t){if(t===null)l.removeAttribute(e);else{switch(typeof t){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(e);return}l.setAttribute(e,""+t)}}function qe(l,e,t,a){if(a===null)l.removeAttribute(t);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":l.removeAttribute(t);return}l.setAttributeNS(e,t,""+a)}}function Se(l){switch(typeof l){case"bigint":case"boolean":case"number":case"string":case"undefined":return l;case"object":return l;default:return""}}function Bf(l){var e=l.type;return(l=l.nodeName)&&l.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Id(l,e,t){var a=Object.getOwnPropertyDescriptor(l.constructor.prototype,e);if(!l.hasOwnProperty(e)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var n=a.get,u=a.set;return Object.defineProperty(l,e,{configurable:!0,get:function(){return n.call(this)},set:function(i){t=""+i,u.call(this,i)}}),Object.defineProperty(l,e,{enumerable:a.enumerable}),{getValue:function(){return t},setValue:function(i){t=""+i},stopTracking:function(){l._valueTracker=null,delete l[e]}}}}function ai(l){if(!l._valueTracker){var e=Bf(l)?"checked":"value";l._valueTracker=Id(l,e,""+l[e])}}function qf(l){if(!l)return!1;var e=l._valueTracker;if(!e)return!0;var t=e.getValue(),a="";return l&&(a=Bf(l)?l.checked?"true":"false":l.value),l=a,l!==t?(e.setValue(l),!0):!1}function Bn(l){if(l=l||(typeof document<"u"?document:void 0),typeof l>"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Pd=/[\n"\\]/g;function xe(l){return l.replace(Pd,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function ni(l,e,t,a,n,u,i,f){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),e!=null?i==="number"?(e===0&&l.value===""||l.value!=e)&&(l.value=""+Se(e)):l.value!==""+Se(e)&&(l.value=""+Se(e)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),e!=null?ui(l,i,Se(e)):t!=null?ui(l,i,Se(t)):a!=null&&l.removeAttribute("value"),n==null&&u!=null&&(l.defaultChecked=!!u),n!=null&&(l.checked=n&&typeof n!="function"&&typeof n!="symbol"),f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?l.name=""+Se(f):l.removeAttribute("name")}function Gf(l,e,t,a,n,u,i,f){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(l.type=u),e!=null||t!=null){if(!(u!=="submit"&&u!=="reset"||e!=null)){ai(l);return}t=t!=null?""+Se(t):"",e=e!=null?""+Se(e):t,f||e===l.value||(l.value=e),l.defaultValue=e}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=f?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),ai(l)}function ui(l,e,t){e==="number"&&Bn(l.ownerDocument)===l||l.defaultValue===""+t||(l.defaultValue=""+t)}function $t(l,e,t,a){if(l=l.options,e){e={};for(var n=0;n<t.length;n++)e["$"+t[n]]=!0;for(t=0;t<l.length;t++)n=e.hasOwnProperty("$"+l[t].value),l[t].selected!==n&&(l[t].selected=n),n&&a&&(l[t].defaultSelected=!0)}else{for(t=""+Se(t),e=null,n=0;n<l.length;n++){if(l[n].value===t){l[n].selected=!0,a&&(l[n].defaultSelected=!0);return}e!==null||l[n].disabled||(e=l[n])}e!==null&&(e.selected=!0)}}function Yf(l,e,t){if(e!=null&&(e=""+Se(e),e!==l.value&&(l.value=e),t==null)){l.defaultValue!==e&&(l.defaultValue=e);return}l.defaultValue=t!=null?""+Se(t):""}function Xf(l,e,t,a){if(e==null){if(a!=null){if(t!=null)throw Error(h(92));if(se(a)){if(1<a.length)throw Error(h(93));a=a[0]}t=a}t==null&&(t=""),e=t}t=Se(e),l.defaultValue=t,a=l.textContent,a===t&&a!==""&&a!==null&&(l.value=a),ai(l)}function It(l,e){if(e){var t=l.firstChild;if(t&&t===l.lastChild&&t.nodeType===3){t.nodeValue=e;return}}l.textContent=e}var lm=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function Qf(l,e,t){var a=e.indexOf("--")===0;t==null||typeof t=="boolean"||t===""?a?l.setProperty(e,""):e==="float"?l.cssFloat="":l[e]="":a?l.setProperty(e,t):typeof t!="number"||t===0||lm.has(e)?e==="float"?l.cssFloat=t:l[e]=(""+t).trim():l[e]=t+"px"}function Zf(l,e,t){if(e!=null&&typeof e!="object")throw Error(h(62));if(l=l.style,t!=null){for(var a in t)!t.hasOwnProperty(a)||e!=null&&e.hasOwnProperty(a)||(a.indexOf("--")===0?l.setProperty(a,""):a==="float"?l.cssFloat="":l[a]="");for(var n in e)a=e[n],e.hasOwnProperty(n)&&t[n]!==a&&Qf(l,n,a)}else for(var u in e)e.hasOwnProperty(u)&&Qf(l,u,e[u])}function ii(l){if(l.indexOf("-")===-1)return!1;switch(l){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var em=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),tm=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function qn(l){return tm.test(""+l)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":l}function Ge(){}var ci=null;function fi(l){return l=l.target||l.srcElement||window,l.correspondingUseElement&&(l=l.correspondingUseElement),l.nodeType===3?l.parentNode:l}var Pt=null,la=null;function Vf(l){var e=wt(l);if(e&&(l=e.stateNode)){var t=l[te]||null;l:switch(l=e.stateNode,e.type){case"input":if(ni(l,t.value,t.defaultValue,t.defaultValue,t.checked,t.defaultChecked,t.type,t.name),e=t.name,t.type==="radio"&&e!=null){for(t=l;t.parentNode;)t=t.parentNode;for(t=t.querySelectorAll('input[name="'+xe(""+e)+'"][type="radio"]'),e=0;e<t.length;e++){var a=t[e];if(a!==l&&a.form===l.form){var n=a[te]||null;if(!n)throw Error(h(90));ni(a,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name)}}for(e=0;e<t.length;e++)a=t[e],a.form===l.form&&qf(a)}break l;case"textarea":Yf(l,t.value,t.defaultValue);break l;case"select":e=t.value,e!=null&&$t(l,!!t.multiple,e,!1)}}}var si=!1;function Lf(l,e,t){if(si)return l(e,t);si=!0;try{var a=l(e);return a}finally{if(si=!1,(Pt!==null||la!==null)&&(zu(),Pt&&(e=Pt,l=la,la=Pt=null,Vf(e),l)))for(e=0;e<l.length;e++)Vf(l[e])}}function Ba(l,e){var t=l.stateNode;if(t===null)return null;var a=t[te]||null;if(a===null)return null;t=a[e];l:switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(l=l.type,a=!(l==="button"||l==="input"||l==="select"||l==="textarea")),l=!a;break l;default:l=!1}if(l)return null;if(t&&typeof t!="function")throw Error(h(231,e,typeof t));return t}var Ye=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),oi=!1;if(Ye)try{var qa={};Object.defineProperty(qa,"passive",{get:function(){oi=!0}}),window.addEventListener("test",qa,qa),window.removeEventListener("test",qa,qa)}catch{oi=!1}var nt=null,ri=null,Gn=null;function Kf(){if(Gn)return Gn;var l,e=ri,t=e.length,a,n="value"in nt?nt.value:nt.textContent,u=n.length;for(l=0;l<t&&e[l]===n[l];l++);var i=t-l;for(a=1;a<=i&&e[t-a]===n[u-a];a++);return Gn=n.slice(l,1<a?1-a:void 0)}function Yn(l){var e=l.keyCode;return"charCode"in l?(l=l.charCode,l===0&&e===13&&(l=13)):l=e,l===10&&(l=13),32<=l||l===13?l:0}function Xn(){return!0}function Jf(){return!1}function ae(l){function e(t,a,n,u,i){this._reactName=t,this._targetInst=n,this.type=a,this.nativeEvent=u,this.target=i,this.currentTarget=null;for(var f in l)l.hasOwnProperty(f)&&(t=l[f],this[f]=t?t(u):u[f]);return this.isDefaultPrevented=(u.defaultPrevented!=null?u.defaultPrevented:u.returnValue===!1)?Xn:Jf,this.isPropagationStopped=Jf,this}return B(e.prototype,{preventDefault:function(){this.defaultPrevented=!0;var t=this.nativeEvent;t&&(t.preventDefault?t.preventDefault():typeof t.returnValue!="unknown"&&(t.returnValue=!1),this.isDefaultPrevented=Xn)},stopPropagation:function(){var t=this.nativeEvent;t&&(t.stopPropagation?t.stopPropagation():typeof t.cancelBubble!="unknown"&&(t.cancelBubble=!0),this.isPropagationStopped=Xn)},persist:function(){},isPersistent:Xn}),e}var _t={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(l){return l.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Qn=ae(_t),Ga=B({},_t,{view:0,detail:0}),am=ae(Ga),di,mi,Ya,Zn=B({},Ga,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:yi,button:0,buttons:0,relatedTarget:function(l){return l.relatedTarget===void 0?l.fromElement===l.srcElement?l.toElement:l.fromElement:l.relatedTarget},movementX:function(l){return"movementX"in l?l.movementX:(l!==Ya&&(Ya&&l.type==="mousemove"?(di=l.screenX-Ya.screenX,mi=l.screenY-Ya.screenY):mi=di=0,Ya=l),di)},movementY:function(l){return"movementY"in l?l.movementY:mi}}),kf=ae(Zn),nm=B({},Zn,{dataTransfer:0}),um=ae(nm),im=B({},Ga,{relatedTarget:0}),hi=ae(im),cm=B({},_t,{animationName:0,elapsedTime:0,pseudoElement:0}),fm=ae(cm),sm=B({},_t,{clipboardData:function(l){return"clipboardData"in l?l.clipboardData:window.clipboardData}}),om=ae(sm),rm=B({},_t,{data:0}),wf=ae(rm),dm={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},mm={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},hm={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function ym(l){var e=this.nativeEvent;return e.getModifierState?e.getModifierState(l):(l=hm[l])?!!e[l]:!1}function yi(){return ym}var vm=B({},Ga,{key:function(l){if(l.key){var e=dm[l.key]||l.key;if(e!=="Unidentified")return e}return l.type==="keypress"?(l=Yn(l),l===13?"Enter":String.fromCharCode(l)):l.type==="keydown"||l.type==="keyup"?mm[l.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:yi,charCode:function(l){return l.type==="keypress"?Yn(l):0},keyCode:function(l){return l.type==="keydown"||l.type==="keyup"?l.keyCode:0},which:function(l){return l.type==="keypress"?Yn(l):l.type==="keydown"||l.type==="keyup"?l.keyCode:0}}),gm=ae(vm),pm=B({},Zn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Ff=ae(pm),bm=B({},Ga,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:yi}),Sm=ae(bm),xm=B({},_t,{propertyName:0,elapsedTime:0,pseudoElement:0}),Tm=ae(xm),Am=B({},Zn,{deltaX:function(l){return"deltaX"in l?l.deltaX:"wheelDeltaX"in l?-l.wheelDeltaX:0},deltaY:function(l){return"deltaY"in l?l.deltaY:"wheelDeltaY"in l?-l.wheelDeltaY:"wheelDelta"in l?-l.wheelDelta:0},deltaZ:0,deltaMode:0}),zm=ae(Am),jm=B({},_t,{newState:0,oldState:0}),Em=ae(jm),Mm=[9,13,27,32],vi=Ye&&"CompositionEvent"in window,Xa=null;Ye&&"documentMode"in document&&(Xa=document.documentMode);var Cm=Ye&&"TextEvent"in window&&!Xa,Wf=Ye&&(!vi||Xa&&8<Xa&&11>=Xa),$f=" ",If=!1;function Pf(l,e){switch(l){case"keyup":return Mm.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function ls(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var ea=!1;function Om(l,e){switch(l){case"compositionend":return ls(e);case"keypress":return e.which!==32?null:(If=!0,$f);case"textInput":return l=e.data,l===$f&&If?null:l;default:return null}}function _m(l,e){if(ea)return l==="compositionend"||!vi&&Pf(l,e)?(l=Kf(),Gn=ri=nt=null,ea=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1<e.char.length)return e.char;if(e.which)return String.fromCharCode(e.which)}return null;case"compositionend":return Wf&&e.locale!=="ko"?null:e.data;default:return null}}var Nm={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function es(l){var e=l&&l.nodeName&&l.nodeName.toLowerCase();return e==="input"?!!Nm[l.type]:e==="textarea"}function ts(l,e,t,a){Pt?la?la.push(a):la=[a]:Pt=a,e=Nu(e,"onChange"),0<e.length&&(t=new Qn("onChange","change",null,t,a),l.push({event:t,listeners:e}))}var Qa=null,Za=null;function Dm(l){Yr(l,0)}function Vn(l){var e=Ha(l);if(qf(e))return l}function as(l,e){if(l==="change")return e}var ns=!1;if(Ye){var gi;if(Ye){var pi="oninput"in document;if(!pi){var us=document.createElement("div");us.setAttribute("oninput","return;"),pi=typeof us.oninput=="function"}gi=pi}else gi=!1;ns=gi&&(!document.documentMode||9<document.documentMode)}function is(){Qa&&(Qa.detachEvent("onpropertychange",cs),Za=Qa=null)}function cs(l){if(l.propertyName==="value"&&Vn(Za)){var e=[];ts(e,Za,l,fi(l)),Lf(Dm,e)}}function Um(l,e,t){l==="focusin"?(is(),Qa=e,Za=t,Qa.attachEvent("onpropertychange",cs)):l==="focusout"&&is()}function Rm(l){if(l==="selectionchange"||l==="keyup"||l==="keydown")return Vn(Za)}function Hm(l,e){if(l==="click")return Vn(e)}function Bm(l,e){if(l==="input"||l==="change")return Vn(e)}function qm(l,e){return l===e&&(l!==0||1/l===1/e)||l!==l&&e!==e}var me=typeof Object.is=="function"?Object.is:qm;function Va(l,e){if(me(l,e))return!0;if(typeof l!="object"||l===null||typeof e!="object"||e===null)return!1;var t=Object.keys(l),a=Object.keys(e);if(t.length!==a.length)return!1;for(a=0;a<t.length;a++){var n=t[a];if(!Fu.call(e,n)||!me(l[n],e[n]))return!1}return!0}function fs(l){for(;l&&l.firstChild;)l=l.firstChild;return l}function ss(l,e){var t=fs(l);l=0;for(var a;t;){if(t.nodeType===3){if(a=l+t.textContent.length,l<=e&&a>=e)return{node:t,offset:e-l};l=a}l:{for(;t;){if(t.nextSibling){t=t.nextSibling;break l}t=t.parentNode}t=void 0}t=fs(t)}}function os(l,e){return l&&e?l===e?!0:l&&l.nodeType===3?!1:e&&e.nodeType===3?os(l,e.parentNode):"contains"in l?l.contains(e):l.compareDocumentPosition?!!(l.compareDocumentPosition(e)&16):!1:!1}function rs(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var e=Bn(l.document);e instanceof l.HTMLIFrameElement;){try{var t=typeof e.contentWindow.location.href=="string"}catch{t=!1}if(t)l=e.contentWindow;else break;e=Bn(l.document)}return e}function bi(l){var e=l&&l.nodeName&&l.nodeName.toLowerCase();return e&&(e==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||e==="textarea"||l.contentEditable==="true")}var Gm=Ye&&"documentMode"in document&&11>=document.documentMode,ta=null,Si=null,La=null,xi=!1;function ds(l,e,t){var a=t.window===t?t.document:t.nodeType===9?t:t.ownerDocument;xi||ta==null||ta!==Bn(a)||(a=ta,"selectionStart"in a&&bi(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),La&&Va(La,a)||(La=a,a=Nu(Si,"onSelect"),0<a.length&&(e=new Qn("onSelect","select",null,e,t),l.push({event:e,listeners:a}),e.target=ta)))}function Nt(l,e){var t={};return t[l.toLowerCase()]=e.toLowerCase(),t["Webkit"+l]="webkit"+e,t["Moz"+l]="moz"+e,t}var aa={animationend:Nt("Animation","AnimationEnd"),animationiteration:Nt("Animation","AnimationIteration"),animationstart:Nt("Animation","AnimationStart"),transitionrun:Nt("Transition","TransitionRun"),transitionstart:Nt("Transition","TransitionStart"),transitioncancel:Nt("Transition","TransitionCancel"),transitionend:Nt("Transition","TransitionEnd")},Ti={},ms={};Ye&&(ms=document.createElement("div").style,"AnimationEvent"in window||(delete aa.animationend.animation,delete aa.animationiteration.animation,delete aa.animationstart.animation),"TransitionEvent"in window||delete aa.transitionend.transition);function Dt(l){if(Ti[l])return Ti[l];if(!aa[l])return l;var e=aa[l],t;for(t in e)if(e.hasOwnProperty(t)&&t in ms)return Ti[l]=e[t];return l}var hs=Dt("animationend"),ys=Dt("animationiteration"),vs=Dt("animationstart"),Ym=Dt("transitionrun"),Xm=Dt("transitionstart"),Qm=Dt("transitioncancel"),gs=Dt("transitionend"),ps=new Map,Ai="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");Ai.push("scrollEnd");function _e(l,e){ps.set(l,e),Ot(e,[l])}var Ln=typeof reportError=="function"?reportError:function(l){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof l=="object"&&l!==null&&typeof l.message=="string"?String(l.message):String(l),error:l});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",l);return}console.error(l)},Te=[],na=0,zi=0;function Kn(){for(var l=na,e=zi=na=0;e<l;){var t=Te[e];Te[e++]=null;var a=Te[e];Te[e++]=null;var n=Te[e];Te[e++]=null;var u=Te[e];if(Te[e++]=null,a!==null&&n!==null){var i=a.pending;i===null?n.next=n:(n.next=i.next,i.next=n),a.pending=n}u!==0&&bs(t,n,u)}}function Jn(l,e,t,a){Te[na++]=l,Te[na++]=e,Te[na++]=t,Te[na++]=a,zi|=a,l.lanes|=a,l=l.alternate,l!==null&&(l.lanes|=a)}function ji(l,e,t,a){return Jn(l,e,t,a),kn(l)}function Ut(l,e){return Jn(l,null,null,e),kn(l)}function bs(l,e,t){l.lanes|=t;var a=l.alternate;a!==null&&(a.lanes|=t);for(var n=!1,u=l.return;u!==null;)u.childLanes|=t,a=u.alternate,a!==null&&(a.childLanes|=t),u.tag===22&&(l=u.stateNode,l===null||l._visibility&1||(n=!0)),l=u,u=u.return;return l.tag===3?(u=l.stateNode,n&&e!==null&&(n=31-de(t),l=u.hiddenUpdates,a=l[n],a===null?l[n]=[e]:a.push(e),e.lane=t|536870912),u):null}function kn(l){if(50<mn)throw mn=0,Rc=null,Error(h(185));for(var e=l.return;e!==null;)l=e,e=l.return;return l.tag===3?l.stateNode:null}var ua={};function Zm(l,e,t,a){this.tag=l,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function he(l,e,t,a){return new Zm(l,e,t,a)}function Ei(l){return l=l.prototype,!(!l||!l.isReactComponent)}function Xe(l,e){var t=l.alternate;return t===null?(t=he(l.tag,e,l.key,l.mode),t.elementType=l.elementType,t.type=l.type,t.stateNode=l.stateNode,t.alternate=l,l.alternate=t):(t.pendingProps=e,t.type=l.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=l.flags&65011712,t.childLanes=l.childLanes,t.lanes=l.lanes,t.child=l.child,t.memoizedProps=l.memoizedProps,t.memoizedState=l.memoizedState,t.updateQueue=l.updateQueue,e=l.dependencies,t.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},t.sibling=l.sibling,t.index=l.index,t.ref=l.ref,t.refCleanup=l.refCleanup,t}function Ss(l,e){l.flags&=65011714;var t=l.alternate;return t===null?(l.childLanes=0,l.lanes=e,l.child=null,l.subtreeFlags=0,l.memoizedProps=null,l.memoizedState=null,l.updateQueue=null,l.dependencies=null,l.stateNode=null):(l.childLanes=t.childLanes,l.lanes=t.lanes,l.child=t.child,l.subtreeFlags=0,l.deletions=null,l.memoizedProps=t.memoizedProps,l.memoizedState=t.memoizedState,l.updateQueue=t.updateQueue,l.type=t.type,e=t.dependencies,l.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),l}function wn(l,e,t,a,n,u){var i=0;if(a=l,typeof l=="function")Ei(l)&&(i=1);else if(typeof l=="string")i=kh(l,t,R.current)?26:l==="html"||l==="head"||l==="body"?27:5;else l:switch(l){case nl:return l=he(31,t,e,n),l.elementType=nl,l.lanes=u,l;case il:return Rt(t.children,n,u,e);case Il:i=8,n|=24;break;case Ol:return l=he(12,t,e,n|2),l.elementType=Ol,l.lanes=u,l;case cl:return l=he(13,t,e,n),l.elementType=cl,l.lanes=u,l;case j:return l=he(19,t,e,n),l.elementType=j,l.lanes=u,l;default:if(typeof l=="object"&&l!==null)switch(l.$$typeof){case Sl:i=10;break l;case ee:i=9;break l;case Bl:i=11;break l;case N:i=14;break l;case L:i=16,a=null;break l}i=29,t=Error(h(130,l===null?"null":typeof l,"")),a=null}return e=he(i,t,e,n),e.elementType=l,e.type=a,e.lanes=u,e}function Rt(l,e,t,a){return l=he(7,l,a,e),l.lanes=t,l}function Mi(l,e,t){return l=he(6,l,null,e),l.lanes=t,l}function xs(l){var e=he(18,null,null,0);return e.stateNode=l,e}function Ci(l,e,t){return e=he(4,l.children!==null?l.children:[],l.key,e),e.lanes=t,e.stateNode={containerInfo:l.containerInfo,pendingChildren:null,implementation:l.implementation},e}var Ts=new WeakMap;function Ae(l,e){if(typeof l=="object"&&l!==null){var t=Ts.get(l);return t!==void 0?t:(e={value:l,source:e,stack:xf(e)},Ts.set(l,e),e)}return{value:l,source:e,stack:xf(e)}}var ia=[],ca=0,Fn=null,Ka=0,ze=[],je=0,ut=null,Ue=1,Re="";function Qe(l,e){ia[ca++]=Ka,ia[ca++]=Fn,Fn=l,Ka=e}function As(l,e,t){ze[je++]=Ue,ze[je++]=Re,ze[je++]=ut,ut=l;var a=Ue;l=Re;var n=32-de(a)-1;a&=~(1<<n),t+=1;var u=32-de(e)+n;if(30<u){var i=n-n%5;u=(a&(1<<i)-1).toString(32),a>>=i,n-=i,Ue=1<<32-de(e)+n|t<<n|a,Re=u+l}else Ue=1<<u|t<<n|a,Re=l}function Oi(l){l.return!==null&&(Qe(l,1),As(l,1,0))}function _i(l){for(;l===Fn;)Fn=ia[--ca],ia[ca]=null,Ka=ia[--ca],ia[ca]=null;for(;l===ut;)ut=ze[--je],ze[je]=null,Re=ze[--je],ze[je]=null,Ue=ze[--je],ze[je]=null}function zs(l,e){ze[je++]=Ue,ze[je++]=Re,ze[je++]=ut,Ue=e.id,Re=e.overflow,ut=l}var Jl=null,Al=null,al=!1,it=null,Ee=!1,Ni=Error(h(519));function ct(l){var e=Error(h(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw Ja(Ae(e,l)),Ni}function js(l){var e=l.stateNode,t=l.type,a=l.memoizedProps;switch(e[Kl]=l,e[te]=a,t){case"dialog":ll("cancel",e),ll("close",e);break;case"iframe":case"object":case"embed":ll("load",e);break;case"video":case"audio":for(t=0;t<yn.length;t++)ll(yn[t],e);break;case"source":ll("error",e);break;case"img":case"image":case"link":ll("error",e),ll("load",e);break;case"details":ll("toggle",e);break;case"input":ll("invalid",e),Gf(e,a.value,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name,!0);break;case"select":ll("invalid",e);break;case"textarea":ll("invalid",e),Xf(e,a.value,a.defaultValue,a.children)}t=a.children,typeof t!="string"&&typeof t!="number"&&typeof t!="bigint"||e.textContent===""+t||a.suppressHydrationWarning===!0||Vr(e.textContent,t)?(a.popover!=null&&(ll("beforetoggle",e),ll("toggle",e)),a.onScroll!=null&&ll("scroll",e),a.onScrollEnd!=null&&ll("scrollend",e),a.onClick!=null&&(e.onclick=Ge),e=!0):e=!1,e||ct(l,!0)}function Es(l){for(Jl=l.return;Jl;)switch(Jl.tag){case 5:case 31:case 13:Ee=!1;return;case 27:case 3:Ee=!0;return;default:Jl=Jl.return}}function fa(l){if(l!==Jl)return!1;if(!al)return Es(l),al=!0,!1;var e=l.tag,t;if((t=e!==3&&e!==27)&&((t=e===5)&&(t=l.type,t=!(t!=="form"&&t!=="button")||Fc(l.type,l.memoizedProps)),t=!t),t&&Al&&ct(l),Es(l),e===13){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(317));Al=Ir(l)}else if(e===31){if(l=l.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(317));Al=Ir(l)}else e===27?(e=Al,xt(l.type)?(l=lf,lf=null,Al=l):Al=e):Al=Jl?Ce(l.stateNode.nextSibling):null;return!0}function Ht(){Al=Jl=null,al=!1}function Di(){var l=it;return l!==null&&(ce===null?ce=l:ce.push.apply(ce,l),it=null),l}function Ja(l){it===null?it=[l]:it.push(l)}var Ui=s(null),Bt=null,Ze=null;function ft(l,e,t){C(Ui,e._currentValue),e._currentValue=t}function Ve(l){l._currentValue=Ui.current,b(Ui)}function Ri(l,e,t){for(;l!==null;){var a=l.alternate;if((l.childLanes&e)!==e?(l.childLanes|=e,a!==null&&(a.childLanes|=e)):a!==null&&(a.childLanes&e)!==e&&(a.childLanes|=e),l===t)break;l=l.return}}function Hi(l,e,t,a){var n=l.child;for(n!==null&&(n.return=l);n!==null;){var u=n.dependencies;if(u!==null){var i=n.child;u=u.firstContext;l:for(;u!==null;){var f=u;u=n;for(var o=0;o<e.length;o++)if(f.context===e[o]){u.lanes|=t,f=u.alternate,f!==null&&(f.lanes|=t),Ri(u.return,t,l),a||(i=null);break l}u=f.next}}else if(n.tag===18){if(i=n.return,i===null)throw Error(h(341));i.lanes|=t,u=i.alternate,u!==null&&(u.lanes|=t),Ri(i,t,l),i=null}else i=n.child;if(i!==null)i.return=n;else for(i=n;i!==null;){if(i===l){i=null;break}if(n=i.sibling,n!==null){n.return=i.return,i=n;break}i=i.return}n=i}}function sa(l,e,t,a){l=null;for(var n=e,u=!1;n!==null;){if(!u){if((n.flags&524288)!==0)u=!0;else if((n.flags&262144)!==0)break}if(n.tag===10){var i=n.alternate;if(i===null)throw Error(h(387));if(i=i.memoizedProps,i!==null){var f=n.type;me(n.pendingProps.value,i.value)||(l!==null?l.push(f):l=[f])}}else if(n===rl.current){if(i=n.alternate,i===null)throw Error(h(387));i.memoizedState.memoizedState!==n.memoizedState.memoizedState&&(l!==null?l.push(Sn):l=[Sn])}n=n.return}l!==null&&Hi(e,l,t,a),e.flags|=262144}function Wn(l){for(l=l.firstContext;l!==null;){if(!me(l.context._currentValue,l.memoizedValue))return!0;l=l.next}return!1}function qt(l){Bt=l,Ze=null,l=l.dependencies,l!==null&&(l.firstContext=null)}function kl(l){return Ms(Bt,l)}function $n(l,e){return Bt===null&&qt(l),Ms(l,e)}function Ms(l,e){var t=e._currentValue;if(e={context:e,memoizedValue:t,next:null},Ze===null){if(l===null)throw Error(h(308));Ze=e,l.dependencies={lanes:0,firstContext:e},l.flags|=524288}else Ze=Ze.next=e;return t}var Vm=typeof AbortController<"u"?AbortController:function(){var l=[],e=this.signal={aborted:!1,addEventListener:function(t,a){l.push(a)}};this.abort=function(){e.aborted=!0,l.forEach(function(t){return t()})}},Lm=r.unstable_scheduleCallback,Km=r.unstable_NormalPriority,ql={$$typeof:Sl,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Bi(){return{controller:new Vm,data:new Map,refCount:0}}function ka(l){l.refCount--,l.refCount===0&&Lm(Km,function(){l.controller.abort()})}var wa=null,qi=0,oa=0,ra=null;function Jm(l,e){if(wa===null){var t=wa=[];qi=0,oa=Xc(),ra={status:"pending",value:void 0,then:function(a){t.push(a)}}}return qi++,e.then(Cs,Cs),e}function Cs(){if(--qi===0&&wa!==null){ra!==null&&(ra.status="fulfilled");var l=wa;wa=null,oa=0,ra=null;for(var e=0;e<l.length;e++)(0,l[e])()}}function km(l,e){var t=[],a={status:"pending",value:null,reason:null,then:function(n){t.push(n)}};return l.then(function(){a.status="fulfilled",a.value=e;for(var n=0;n<t.length;n++)(0,t[n])(e)},function(n){for(a.status="rejected",a.reason=n,n=0;n<t.length;n++)(0,t[n])(void 0)}),a}var Os=x.S;x.S=function(l,e){mr=oe(),typeof e=="object"&&e!==null&&typeof e.then=="function"&&Jm(l,e),Os!==null&&Os(l,e)};var Gt=s(null);function Gi(){var l=Gt.current;return l!==null?l:bl.pooledCache}function In(l,e){e===null?C(Gt,Gt.current):C(Gt,e.pool)}function _s(){var l=Gi();return l===null?null:{parent:ql._currentValue,pool:l}}var da=Error(h(460)),Yi=Error(h(474)),Pn=Error(h(542)),lu={then:function(){}};function Ns(l){return l=l.status,l==="fulfilled"||l==="rejected"}function Ds(l,e,t){switch(t=l[t],t===void 0?l.push(e):t!==e&&(e.then(Ge,Ge),e=t),e.status){case"fulfilled":return e.value;case"rejected":throw l=e.reason,Rs(l),l;default:if(typeof e.status=="string")e.then(Ge,Ge);else{if(l=bl,l!==null&&100<l.shellSuspendCounter)throw Error(h(482));l=e,l.status="pending",l.then(function(a){if(e.status==="pending"){var n=e;n.status="fulfilled",n.value=a}},function(a){if(e.status==="pending"){var n=e;n.status="rejected",n.reason=a}})}switch(e.status){case"fulfilled":return e.value;case"rejected":throw l=e.reason,Rs(l),l}throw Xt=e,da}}function Yt(l){try{var e=l._init;return e(l._payload)}catch(t){throw t!==null&&typeof t=="object"&&typeof t.then=="function"?(Xt=t,da):t}}var Xt=null;function Us(){if(Xt===null)throw Error(h(459));var l=Xt;return Xt=null,l}function Rs(l){if(l===da||l===Pn)throw Error(h(483))}var ma=null,Fa=0;function eu(l){var e=Fa;return Fa+=1,ma===null&&(ma=[]),Ds(ma,l,e)}function Wa(l,e){e=e.props.ref,l.ref=e!==void 0?e:null}function tu(l,e){throw e.$$typeof===Z?Error(h(525)):(l=Object.prototype.toString.call(e),Error(h(31,l==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":l)))}function Hs(l){function e(m,d){if(l){var y=m.deletions;y===null?(m.deletions=[d],m.flags|=16):y.push(d)}}function t(m,d){if(!l)return null;for(;d!==null;)e(m,d),d=d.sibling;return null}function a(m){for(var d=new Map;m!==null;)m.key!==null?d.set(m.key,m):d.set(m.index,m),m=m.sibling;return d}function n(m,d){return m=Xe(m,d),m.index=0,m.sibling=null,m}function u(m,d,y){return m.index=y,l?(y=m.alternate,y!==null?(y=y.index,y<d?(m.flags|=67108866,d):y):(m.flags|=67108866,d)):(m.flags|=1048576,d)}function i(m){return l&&m.alternate===null&&(m.flags|=67108866),m}function f(m,d,y,A){return d===null||d.tag!==6?(d=Mi(y,m.mode,A),d.return=m,d):(d=n(d,y),d.return=m,d)}function o(m,d,y,A){var Q=y.type;return Q===il?S(m,d,y.props.children,A,y.key):d!==null&&(d.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===L&&Yt(Q)===d.type)?(d=n(d,y.props),Wa(d,y),d.return=m,d):(d=wn(y.type,y.key,y.props,null,m.mode,A),Wa(d,y),d.return=m,d)}function v(m,d,y,A){return d===null||d.tag!==4||d.stateNode.containerInfo!==y.containerInfo||d.stateNode.implementation!==y.implementation?(d=Ci(y,m.mode,A),d.return=m,d):(d=n(d,y.children||[]),d.return=m,d)}function S(m,d,y,A,Q){return d===null||d.tag!==7?(d=Rt(y,m.mode,A,Q),d.return=m,d):(d=n(d,y),d.return=m,d)}function z(m,d,y){if(typeof d=="string"&&d!==""||typeof d=="number"||typeof d=="bigint")return d=Mi(""+d,m.mode,y),d.return=m,d;if(typeof d=="object"&&d!==null){switch(d.$$typeof){case Tl:return y=wn(d.type,d.key,d.props,null,m.mode,y),Wa(y,d),y.return=m,y;case pl:return d=Ci(d,m.mode,y),d.return=m,d;case L:return d=Yt(d),z(m,d,y)}if(se(d)||El(d))return d=Rt(d,m.mode,y,null),d.return=m,d;if(typeof d.then=="function")return z(m,eu(d),y);if(d.$$typeof===Sl)return z(m,$n(m,d),y);tu(m,d)}return null}function g(m,d,y,A){var Q=d!==null?d.key:null;if(typeof y=="string"&&y!==""||typeof y=="number"||typeof y=="bigint")return Q!==null?null:f(m,d,""+y,A);if(typeof y=="object"&&y!==null){switch(y.$$typeof){case Tl:return y.key===Q?o(m,d,y,A):null;case pl:return y.key===Q?v(m,d,y,A):null;case L:return y=Yt(y),g(m,d,y,A)}if(se(y)||El(y))return Q!==null?null:S(m,d,y,A,null);if(typeof y.then=="function")return g(m,d,eu(y),A);if(y.$$typeof===Sl)return g(m,d,$n(m,y),A);tu(m,y)}return null}function p(m,d,y,A,Q){if(typeof A=="string"&&A!==""||typeof A=="number"||typeof A=="bigint")return m=m.get(y)||null,f(d,m,""+A,Q);if(typeof A=="object"&&A!==null){switch(A.$$typeof){case Tl:return m=m.get(A.key===null?y:A.key)||null,o(d,m,A,Q);case pl:return m=m.get(A.key===null?y:A.key)||null,v(d,m,A,Q);case L:return A=Yt(A),p(m,d,y,A,Q)}if(se(A)||El(A))return m=m.get(y)||null,S(d,m,A,Q,null);if(typeof A.then=="function")return p(m,d,y,eu(A),Q);if(A.$$typeof===Sl)return p(m,d,y,$n(d,A),Q);tu(d,A)}return null}function H(m,d,y,A){for(var Q=null,fl=null,Y=d,$=d=0,tl=null;Y!==null&&$<y.length;$++){Y.index>$?(tl=Y,Y=null):tl=Y.sibling;var sl=g(m,Y,y[$],A);if(sl===null){Y===null&&(Y=tl);break}l&&Y&&sl.alternate===null&&e(m,Y),d=u(sl,d,$),fl===null?Q=sl:fl.sibling=sl,fl=sl,Y=tl}if($===y.length)return t(m,Y),al&&Qe(m,$),Q;if(Y===null){for(;$<y.length;$++)Y=z(m,y[$],A),Y!==null&&(d=u(Y,d,$),fl===null?Q=Y:fl.sibling=Y,fl=Y);return al&&Qe(m,$),Q}for(Y=a(Y);$<y.length;$++)tl=p(Y,m,$,y[$],A),tl!==null&&(l&&tl.alternate!==null&&Y.delete(tl.key===null?$:tl.key),d=u(tl,d,$),fl===null?Q=tl:fl.sibling=tl,fl=tl);return l&&Y.forEach(function(Et){return e(m,Et)}),al&&Qe(m,$),Q}function K(m,d,y,A){if(y==null)throw Error(h(151));for(var Q=null,fl=null,Y=d,$=d=0,tl=null,sl=y.next();Y!==null&&!sl.done;$++,sl=y.next()){Y.index>$?(tl=Y,Y=null):tl=Y.sibling;var Et=g(m,Y,sl.value,A);if(Et===null){Y===null&&(Y=tl);break}l&&Y&&Et.alternate===null&&e(m,Y),d=u(Et,d,$),fl===null?Q=Et:fl.sibling=Et,fl=Et,Y=tl}if(sl.done)return t(m,Y),al&&Qe(m,$),Q;if(Y===null){for(;!sl.done;$++,sl=y.next())sl=z(m,sl.value,A),sl!==null&&(d=u(sl,d,$),fl===null?Q=sl:fl.sibling=sl,fl=sl);return al&&Qe(m,$),Q}for(Y=a(Y);!sl.done;$++,sl=y.next())sl=p(Y,m,$,sl.value,A),sl!==null&&(l&&sl.alternate!==null&&Y.delete(sl.key===null?$:sl.key),d=u(sl,d,$),fl===null?Q=sl:fl.sibling=sl,fl=sl);return l&&Y.forEach(function(ny){return e(m,ny)}),al&&Qe(m,$),Q}function vl(m,d,y,A){if(typeof y=="object"&&y!==null&&y.type===il&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case Tl:l:{for(var Q=y.key;d!==null;){if(d.key===Q){if(Q=y.type,Q===il){if(d.tag===7){t(m,d.sibling),A=n(d,y.props.children),A.return=m,m=A;break l}}else if(d.elementType===Q||typeof Q=="object"&&Q!==null&&Q.$$typeof===L&&Yt(Q)===d.type){t(m,d.sibling),A=n(d,y.props),Wa(A,y),A.return=m,m=A;break l}t(m,d);break}else e(m,d);d=d.sibling}y.type===il?(A=Rt(y.props.children,m.mode,A,y.key),A.return=m,m=A):(A=wn(y.type,y.key,y.props,null,m.mode,A),Wa(A,y),A.return=m,m=A)}return i(m);case pl:l:{for(Q=y.key;d!==null;){if(d.key===Q)if(d.tag===4&&d.stateNode.containerInfo===y.containerInfo&&d.stateNode.implementation===y.implementation){t(m,d.sibling),A=n(d,y.children||[]),A.return=m,m=A;break l}else{t(m,d);break}else e(m,d);d=d.sibling}A=Ci(y,m.mode,A),A.return=m,m=A}return i(m);case L:return y=Yt(y),vl(m,d,y,A)}if(se(y))return H(m,d,y,A);if(El(y)){if(Q=El(y),typeof Q!="function")throw Error(h(150));return y=Q.call(y),K(m,d,y,A)}if(typeof y.then=="function")return vl(m,d,eu(y),A);if(y.$$typeof===Sl)return vl(m,d,$n(m,y),A);tu(m,y)}return typeof y=="string"&&y!==""||typeof y=="number"||typeof y=="bigint"?(y=""+y,d!==null&&d.tag===6?(t(m,d.sibling),A=n(d,y),A.return=m,m=A):(t(m,d),A=Mi(y,m.mode,A),A.return=m,m=A),i(m)):t(m,d)}return function(m,d,y,A){try{Fa=0;var Q=vl(m,d,y,A);return ma=null,Q}catch(Y){if(Y===da||Y===Pn)throw Y;var fl=he(29,Y,null,m.mode);return fl.lanes=A,fl.return=m,fl}finally{}}}var Qt=Hs(!0),Bs=Hs(!1),st=!1;function Xi(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Qi(l,e){l=l.updateQueue,e.updateQueue===l&&(e.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function ot(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function rt(l,e,t){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(ol&2)!==0){var n=a.pending;return n===null?e.next=e:(e.next=n.next,n.next=e),a.pending=e,e=kn(l),bs(l,null,t),e}return Jn(l,a,e,t),kn(l)}function $a(l,e,t){if(e=e.updateQueue,e!==null&&(e=e.shared,(t&4194048)!==0)){var a=e.lanes;a&=l.pendingLanes,t|=a,e.lanes=t,Mf(l,t)}}function Zi(l,e){var t=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,t===a)){var n=null,u=null;if(t=t.firstBaseUpdate,t!==null){do{var i={lane:t.lane,tag:t.tag,payload:t.payload,callback:null,next:null};u===null?n=u=i:u=u.next=i,t=t.next}while(t!==null);u===null?n=u=e:u=u.next=e}else n=u=e;t={baseState:a.baseState,firstBaseUpdate:n,lastBaseUpdate:u,shared:a.shared,callbacks:a.callbacks},l.updateQueue=t;return}l=t.lastBaseUpdate,l===null?t.firstBaseUpdate=e:l.next=e,t.lastBaseUpdate=e}var Vi=!1;function Ia(){if(Vi){var l=ra;if(l!==null)throw l}}function Pa(l,e,t,a){Vi=!1;var n=l.updateQueue;st=!1;var u=n.firstBaseUpdate,i=n.lastBaseUpdate,f=n.shared.pending;if(f!==null){n.shared.pending=null;var o=f,v=o.next;o.next=null,i===null?u=v:i.next=v,i=o;var S=l.alternate;S!==null&&(S=S.updateQueue,f=S.lastBaseUpdate,f!==i&&(f===null?S.firstBaseUpdate=v:f.next=v,S.lastBaseUpdate=o))}if(u!==null){var z=n.baseState;i=0,S=v=o=null,f=u;do{var g=f.lane&-536870913,p=g!==f.lane;if(p?(el&g)===g:(a&g)===g){g!==0&&g===oa&&(Vi=!0),S!==null&&(S=S.next={lane:0,tag:f.tag,payload:f.payload,callback:null,next:null});l:{var H=l,K=f;g=e;var vl=t;switch(K.tag){case 1:if(H=K.payload,typeof H=="function"){z=H.call(vl,z,g);break l}z=H;break l;case 3:H.flags=H.flags&-65537|128;case 0:if(H=K.payload,g=typeof H=="function"?H.call(vl,z,g):H,g==null)break l;z=B({},z,g);break l;case 2:st=!0}}g=f.callback,g!==null&&(l.flags|=64,p&&(l.flags|=8192),p=n.callbacks,p===null?n.callbacks=[g]:p.push(g))}else p={lane:g,tag:f.tag,payload:f.payload,callback:f.callback,next:null},S===null?(v=S=p,o=z):S=S.next=p,i|=g;if(f=f.next,f===null){if(f=n.shared.pending,f===null)break;p=f,f=p.next,p.next=null,n.lastBaseUpdate=p,n.shared.pending=null}}while(!0);S===null&&(o=z),n.baseState=o,n.firstBaseUpdate=v,n.lastBaseUpdate=S,u===null&&(n.shared.lanes=0),vt|=i,l.lanes=i,l.memoizedState=z}}function qs(l,e){if(typeof l!="function")throw Error(h(191,l));l.call(e)}function Gs(l,e){var t=l.callbacks;if(t!==null)for(l.callbacks=null,l=0;l<t.length;l++)qs(t[l],e)}var ha=s(null),au=s(0);function Ys(l,e){l=Ie,C(au,l),C(ha,e),Ie=l|e.baseLanes}function Li(){C(au,Ie),C(ha,ha.current)}function Ki(){Ie=au.current,b(ha),b(au)}var ye=s(null),Me=null;function dt(l){var e=l.alternate;C(Ul,Ul.current&1),C(ye,l),Me===null&&(e===null||ha.current!==null||e.memoizedState!==null)&&(Me=l)}function Ji(l){C(Ul,Ul.current),C(ye,l),Me===null&&(Me=l)}function Xs(l){l.tag===22?(C(Ul,Ul.current),C(ye,l),Me===null&&(Me=l)):mt()}function mt(){C(Ul,Ul.current),C(ye,ye.current)}function ve(l){b(ye),Me===l&&(Me=null),b(Ul)}var Ul=s(0);function nu(l){for(var e=l;e!==null;){if(e.tag===13){var t=e.memoizedState;if(t!==null&&(t=t.dehydrated,t===null||Ic(t)||Pc(t)))return e}else if(e.tag===19&&(e.memoizedProps.revealOrder==="forwards"||e.memoizedProps.revealOrder==="backwards"||e.memoizedProps.revealOrder==="unstable_legacy-backwards"||e.memoizedProps.revealOrder==="together")){if((e.flags&128)!==0)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===l)break;for(;e.sibling===null;){if(e.return===null||e.return===l)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var Le=0,W=null,hl=null,Gl=null,uu=!1,ya=!1,Zt=!1,iu=0,ln=0,va=null,wm=0;function _l(){throw Error(h(321))}function ki(l,e){if(e===null)return!1;for(var t=0;t<e.length&&t<l.length;t++)if(!me(l[t],e[t]))return!1;return!0}function wi(l,e,t,a,n,u){return Le=u,W=e,e.memoizedState=null,e.updateQueue=null,e.lanes=0,x.H=l===null||l.memoizedState===null?zo:sc,Zt=!1,u=t(a,n),Zt=!1,ya&&(u=Zs(e,t,a,n)),Qs(l),u}function Qs(l){x.H=an;var e=hl!==null&&hl.next!==null;if(Le=0,Gl=hl=W=null,uu=!1,ln=0,va=null,e)throw Error(h(300));l===null||Yl||(l=l.dependencies,l!==null&&Wn(l)&&(Yl=!0))}function Zs(l,e,t,a){W=l;var n=0;do{if(ya&&(va=null),ln=0,ya=!1,25<=n)throw Error(h(301));if(n+=1,Gl=hl=null,l.updateQueue!=null){var u=l.updateQueue;u.lastEffect=null,u.events=null,u.stores=null,u.memoCache!=null&&(u.memoCache.index=0)}x.H=jo,u=e(t,a)}while(ya);return u}function Fm(){var l=x.H,e=l.useState()[0];return e=typeof e.then=="function"?en(e):e,l=l.useState()[0],(hl!==null?hl.memoizedState:null)!==l&&(W.flags|=1024),e}function Fi(){var l=iu!==0;return iu=0,l}function Wi(l,e,t){e.updateQueue=l.updateQueue,e.flags&=-2053,l.lanes&=~t}function $i(l){if(uu){for(l=l.memoizedState;l!==null;){var e=l.queue;e!==null&&(e.pending=null),l=l.next}uu=!1}Le=0,Gl=hl=W=null,ya=!1,ln=iu=0,va=null}function le(){var l={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Gl===null?W.memoizedState=Gl=l:Gl=Gl.next=l,Gl}function Rl(){if(hl===null){var l=W.alternate;l=l!==null?l.memoizedState:null}else l=hl.next;var e=Gl===null?W.memoizedState:Gl.next;if(e!==null)Gl=e,hl=l;else{if(l===null)throw W.alternate===null?Error(h(467)):Error(h(310));hl=l,l={memoizedState:hl.memoizedState,baseState:hl.baseState,baseQueue:hl.baseQueue,queue:hl.queue,next:null},Gl===null?W.memoizedState=Gl=l:Gl=Gl.next=l}return Gl}function cu(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function en(l){var e=ln;return ln+=1,va===null&&(va=[]),l=Ds(va,l,e),e=W,(Gl===null?e.memoizedState:Gl.next)===null&&(e=e.alternate,x.H=e===null||e.memoizedState===null?zo:sc),l}function fu(l){if(l!==null&&typeof l=="object"){if(typeof l.then=="function")return en(l);if(l.$$typeof===Sl)return kl(l)}throw Error(h(438,String(l)))}function Ii(l){var e=null,t=W.updateQueue;if(t!==null&&(e=t.memoCache),e==null){var a=W.alternate;a!==null&&(a=a.updateQueue,a!==null&&(a=a.memoCache,a!=null&&(e={data:a.data.map(function(n){return n.slice()}),index:0})))}if(e==null&&(e={data:[],index:0}),t===null&&(t=cu(),W.updateQueue=t),t.memoCache=e,t=e.data[e.index],t===void 0)for(t=e.data[e.index]=Array(l),a=0;a<l;a++)t[a]=Ll;return e.index++,t}function Ke(l,e){return typeof e=="function"?e(l):e}function su(l){var e=Rl();return Pi(e,hl,l)}function Pi(l,e,t){var a=l.queue;if(a===null)throw Error(h(311));a.lastRenderedReducer=t;var n=l.baseQueue,u=a.pending;if(u!==null){if(n!==null){var i=n.next;n.next=u.next,u.next=i}e.baseQueue=n=u,a.pending=null}if(u=l.baseState,n===null)l.memoizedState=u;else{e=n.next;var f=i=null,o=null,v=e,S=!1;do{var z=v.lane&-536870913;if(z!==v.lane?(el&z)===z:(Le&z)===z){var g=v.revertLane;if(g===0)o!==null&&(o=o.next={lane:0,revertLane:0,gesture:null,action:v.action,hasEagerState:v.hasEagerState,eagerState:v.eagerState,next:null}),z===oa&&(S=!0);else if((Le&g)===g){v=v.next,g===oa&&(S=!0);continue}else z={lane:0,revertLane:v.revertLane,gesture:null,action:v.action,hasEagerState:v.hasEagerState,eagerState:v.eagerState,next:null},o===null?(f=o=z,i=u):o=o.next=z,W.lanes|=g,vt|=g;z=v.action,Zt&&t(u,z),u=v.hasEagerState?v.eagerState:t(u,z)}else g={lane:z,revertLane:v.revertLane,gesture:v.gesture,action:v.action,hasEagerState:v.hasEagerState,eagerState:v.eagerState,next:null},o===null?(f=o=g,i=u):o=o.next=g,W.lanes|=z,vt|=z;v=v.next}while(v!==null&&v!==e);if(o===null?i=u:o.next=f,!me(u,l.memoizedState)&&(Yl=!0,S&&(t=ra,t!==null)))throw t;l.memoizedState=u,l.baseState=i,l.baseQueue=o,a.lastRenderedState=u}return n===null&&(a.lanes=0),[l.memoizedState,a.dispatch]}function lc(l){var e=Rl(),t=e.queue;if(t===null)throw Error(h(311));t.lastRenderedReducer=l;var a=t.dispatch,n=t.pending,u=e.memoizedState;if(n!==null){t.pending=null;var i=n=n.next;do u=l(u,i.action),i=i.next;while(i!==n);me(u,e.memoizedState)||(Yl=!0),e.memoizedState=u,e.baseQueue===null&&(e.baseState=u),t.lastRenderedState=u}return[u,a]}function Vs(l,e,t){var a=W,n=Rl(),u=al;if(u){if(t===void 0)throw Error(h(407));t=t()}else t=e();var i=!me((hl||n).memoizedState,t);if(i&&(n.memoizedState=t,Yl=!0),n=n.queue,ac(Js.bind(null,a,n,l),[l]),n.getSnapshot!==e||i||Gl!==null&&Gl.memoizedState.tag&1){if(a.flags|=2048,ga(9,{destroy:void 0},Ks.bind(null,a,n,t,e),null),bl===null)throw Error(h(349));u||(Le&127)!==0||Ls(a,e,t)}return t}function Ls(l,e,t){l.flags|=16384,l={getSnapshot:e,value:t},e=W.updateQueue,e===null?(e=cu(),W.updateQueue=e,e.stores=[l]):(t=e.stores,t===null?e.stores=[l]:t.push(l))}function Ks(l,e,t,a){e.value=t,e.getSnapshot=a,ks(e)&&ws(l)}function Js(l,e,t){return t(function(){ks(e)&&ws(l)})}function ks(l){var e=l.getSnapshot;l=l.value;try{var t=e();return!me(l,t)}catch{return!0}}function ws(l){var e=Ut(l,2);e!==null&&fe(e,l,2)}function ec(l){var e=le();if(typeof l=="function"){var t=l;if(l=t(),Zt){tt(!0);try{t()}finally{tt(!1)}}}return e.memoizedState=e.baseState=l,e.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ke,lastRenderedState:l},e}function Fs(l,e,t,a){return l.baseState=t,Pi(l,hl,typeof a=="function"?a:Ke)}function Wm(l,e,t,a,n){if(du(l))throw Error(h(485));if(l=e.action,l!==null){var u={payload:n,action:l,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(i){u.listeners.push(i)}};x.T!==null?t(!0):u.isTransition=!1,a(u),t=e.pending,t===null?(u.next=e.pending=u,Ws(e,u)):(u.next=t.next,e.pending=t.next=u)}}function Ws(l,e){var t=e.action,a=e.payload,n=l.state;if(e.isTransition){var u=x.T,i={};x.T=i;try{var f=t(n,a),o=x.S;o!==null&&o(i,f),$s(l,e,f)}catch(v){tc(l,e,v)}finally{u!==null&&i.types!==null&&(u.types=i.types),x.T=u}}else try{u=t(n,a),$s(l,e,u)}catch(v){tc(l,e,v)}}function $s(l,e,t){t!==null&&typeof t=="object"&&typeof t.then=="function"?t.then(function(a){Is(l,e,a)},function(a){return tc(l,e,a)}):Is(l,e,t)}function Is(l,e,t){e.status="fulfilled",e.value=t,Ps(e),l.state=t,e=l.pending,e!==null&&(t=e.next,t===e?l.pending=null:(t=t.next,e.next=t,Ws(l,t)))}function tc(l,e,t){var a=l.pending;if(l.pending=null,a!==null){a=a.next;do e.status="rejected",e.reason=t,Ps(e),e=e.next;while(e!==a)}l.action=null}function Ps(l){l=l.listeners;for(var e=0;e<l.length;e++)(0,l[e])()}function lo(l,e){return e}function eo(l,e){if(al){var t=bl.formState;if(t!==null){l:{var a=W;if(al){if(Al){e:{for(var n=Al,u=Ee;n.nodeType!==8;){if(!u){n=null;break e}if(n=Ce(n.nextSibling),n===null){n=null;break e}}u=n.data,n=u==="F!"||u==="F"?n:null}if(n){Al=Ce(n.nextSibling),a=n.data==="F!";break l}}ct(a)}a=!1}a&&(e=t[0])}}return t=le(),t.memoizedState=t.baseState=e,a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:lo,lastRenderedState:e},t.queue=a,t=xo.bind(null,W,a),a.dispatch=t,a=ec(!1),u=fc.bind(null,W,!1,a.queue),a=le(),n={state:e,dispatch:null,action:l,pending:null},a.queue=n,t=Wm.bind(null,W,n,u,t),n.dispatch=t,a.memoizedState=l,[e,t,!1]}function to(l){var e=Rl();return ao(e,hl,l)}function ao(l,e,t){if(e=Pi(l,e,lo)[0],l=su(Ke)[0],typeof e=="object"&&e!==null&&typeof e.then=="function")try{var a=en(e)}catch(i){throw i===da?Pn:i}else a=e;e=Rl();var n=e.queue,u=n.dispatch;return t!==e.memoizedState&&(W.flags|=2048,ga(9,{destroy:void 0},$m.bind(null,n,t),null)),[a,u,l]}function $m(l,e){l.action=e}function no(l){var e=Rl(),t=hl;if(t!==null)return ao(e,t,l);Rl(),e=e.memoizedState,t=Rl();var a=t.queue.dispatch;return t.memoizedState=l,[e,a,!1]}function ga(l,e,t,a){return l={tag:l,create:t,deps:a,inst:e,next:null},e=W.updateQueue,e===null&&(e=cu(),W.updateQueue=e),t=e.lastEffect,t===null?e.lastEffect=l.next=l:(a=t.next,t.next=l,l.next=a,e.lastEffect=l),l}function uo(){return Rl().memoizedState}function ou(l,e,t,a){var n=le();W.flags|=l,n.memoizedState=ga(1|e,{destroy:void 0},t,a===void 0?null:a)}function ru(l,e,t,a){var n=Rl();a=a===void 0?null:a;var u=n.memoizedState.inst;hl!==null&&a!==null&&ki(a,hl.memoizedState.deps)?n.memoizedState=ga(e,u,t,a):(W.flags|=l,n.memoizedState=ga(1|e,u,t,a))}function io(l,e){ou(8390656,8,l,e)}function ac(l,e){ru(2048,8,l,e)}function Im(l){W.flags|=4;var e=W.updateQueue;if(e===null)e=cu(),W.updateQueue=e,e.events=[l];else{var t=e.events;t===null?e.events=[l]:t.push(l)}}function co(l){var e=Rl().memoizedState;return Im({ref:e,nextImpl:l}),function(){if((ol&2)!==0)throw Error(h(440));return e.impl.apply(void 0,arguments)}}function fo(l,e){return ru(4,2,l,e)}function so(l,e){return ru(4,4,l,e)}function oo(l,e){if(typeof e=="function"){l=l();var t=e(l);return function(){typeof t=="function"?t():e(null)}}if(e!=null)return l=l(),e.current=l,function(){e.current=null}}function ro(l,e,t){t=t!=null?t.concat([l]):null,ru(4,4,oo.bind(null,e,l),t)}function nc(){}function mo(l,e){var t=Rl();e=e===void 0?null:e;var a=t.memoizedState;return e!==null&&ki(e,a[1])?a[0]:(t.memoizedState=[l,e],l)}function ho(l,e){var t=Rl();e=e===void 0?null:e;var a=t.memoizedState;if(e!==null&&ki(e,a[1]))return a[0];if(a=l(),Zt){tt(!0);try{l()}finally{tt(!1)}}return t.memoizedState=[a,e],a}function uc(l,e,t){return t===void 0||(Le&1073741824)!==0&&(el&261930)===0?l.memoizedState=e:(l.memoizedState=t,l=yr(),W.lanes|=l,vt|=l,t)}function yo(l,e,t,a){return me(t,e)?t:ha.current!==null?(l=uc(l,t,a),me(l,e)||(Yl=!0),l):(Le&42)===0||(Le&1073741824)!==0&&(el&261930)===0?(Yl=!0,l.memoizedState=t):(l=yr(),W.lanes|=l,vt|=l,e)}function vo(l,e,t,a,n){var u=O.p;O.p=u!==0&&8>u?u:8;var i=x.T,f={};x.T=f,fc(l,!1,e,t);try{var o=n(),v=x.S;if(v!==null&&v(f,o),o!==null&&typeof o=="object"&&typeof o.then=="function"){var S=km(o,a);tn(l,e,S,be(l))}else tn(l,e,a,be(l))}catch(z){tn(l,e,{then:function(){},status:"rejected",reason:z},be())}finally{O.p=u,i!==null&&f.types!==null&&(i.types=f.types),x.T=i}}function Pm(){}function ic(l,e,t,a){if(l.tag!==5)throw Error(h(476));var n=go(l).queue;vo(l,n,e,J,t===null?Pm:function(){return po(l),t(a)})}function go(l){var e=l.memoizedState;if(e!==null)return e;e={memoizedState:J,baseState:J,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ke,lastRenderedState:J},next:null};var t={};return e.next={memoizedState:t,baseState:t,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ke,lastRenderedState:t},next:null},l.memoizedState=e,l=l.alternate,l!==null&&(l.memoizedState=e),e}function po(l){var e=go(l);e.next===null&&(e=l.alternate.memoizedState),tn(l,e.next.queue,{},be())}function cc(){return kl(Sn)}function bo(){return Rl().memoizedState}function So(){return Rl().memoizedState}function lh(l){for(var e=l.return;e!==null;){switch(e.tag){case 24:case 3:var t=be();l=ot(t);var a=rt(e,l,t);a!==null&&(fe(a,e,t),$a(a,e,t)),e={cache:Bi()},l.payload=e;return}e=e.return}}function eh(l,e,t){var a=be();t={lane:a,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null},du(l)?To(e,t):(t=ji(l,e,t,a),t!==null&&(fe(t,l,a),Ao(t,e,a)))}function xo(l,e,t){var a=be();tn(l,e,t,a)}function tn(l,e,t,a){var n={lane:a,revertLane:0,gesture:null,action:t,hasEagerState:!1,eagerState:null,next:null};if(du(l))To(e,n);else{var u=l.alternate;if(l.lanes===0&&(u===null||u.lanes===0)&&(u=e.lastRenderedReducer,u!==null))try{var i=e.lastRenderedState,f=u(i,t);if(n.hasEagerState=!0,n.eagerState=f,me(f,i))return Jn(l,e,n,0),bl===null&&Kn(),!1}catch{}finally{}if(t=ji(l,e,n,a),t!==null)return fe(t,l,a),Ao(t,e,a),!0}return!1}function fc(l,e,t,a){if(a={lane:2,revertLane:Xc(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},du(l)){if(e)throw Error(h(479))}else e=ji(l,t,a,2),e!==null&&fe(e,l,2)}function du(l){var e=l.alternate;return l===W||e!==null&&e===W}function To(l,e){ya=uu=!0;var t=l.pending;t===null?e.next=e:(e.next=t.next,t.next=e),l.pending=e}function Ao(l,e,t){if((t&4194048)!==0){var a=e.lanes;a&=l.pendingLanes,t|=a,e.lanes=t,Mf(l,t)}}var an={readContext:kl,use:fu,useCallback:_l,useContext:_l,useEffect:_l,useImperativeHandle:_l,useLayoutEffect:_l,useInsertionEffect:_l,useMemo:_l,useReducer:_l,useRef:_l,useState:_l,useDebugValue:_l,useDeferredValue:_l,useTransition:_l,useSyncExternalStore:_l,useId:_l,useHostTransitionStatus:_l,useFormState:_l,useActionState:_l,useOptimistic:_l,useMemoCache:_l,useCacheRefresh:_l};an.useEffectEvent=_l;var zo={readContext:kl,use:fu,useCallback:function(l,e){return le().memoizedState=[l,e===void 0?null:e],l},useContext:kl,useEffect:io,useImperativeHandle:function(l,e,t){t=t!=null?t.concat([l]):null,ou(4194308,4,oo.bind(null,e,l),t)},useLayoutEffect:function(l,e){return ou(4194308,4,l,e)},useInsertionEffect:function(l,e){ou(4,2,l,e)},useMemo:function(l,e){var t=le();e=e===void 0?null:e;var a=l();if(Zt){tt(!0);try{l()}finally{tt(!1)}}return t.memoizedState=[a,e],a},useReducer:function(l,e,t){var a=le();if(t!==void 0){var n=t(e);if(Zt){tt(!0);try{t(e)}finally{tt(!1)}}}else n=e;return a.memoizedState=a.baseState=n,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:n},a.queue=l,l=l.dispatch=eh.bind(null,W,l),[a.memoizedState,l]},useRef:function(l){var e=le();return l={current:l},e.memoizedState=l},useState:function(l){l=ec(l);var e=l.queue,t=xo.bind(null,W,e);return e.dispatch=t,[l.memoizedState,t]},useDebugValue:nc,useDeferredValue:function(l,e){var t=le();return uc(t,l,e)},useTransition:function(){var l=ec(!1);return l=vo.bind(null,W,l.queue,!0,!1),le().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,e,t){var a=W,n=le();if(al){if(t===void 0)throw Error(h(407));t=t()}else{if(t=e(),bl===null)throw Error(h(349));(el&127)!==0||Ls(a,e,t)}n.memoizedState=t;var u={value:t,getSnapshot:e};return n.queue=u,io(Js.bind(null,a,u,l),[l]),a.flags|=2048,ga(9,{destroy:void 0},Ks.bind(null,a,u,t,e),null),t},useId:function(){var l=le(),e=bl.identifierPrefix;if(al){var t=Re,a=Ue;t=(a&~(1<<32-de(a)-1)).toString(32)+t,e="_"+e+"R_"+t,t=iu++,0<t&&(e+="H"+t.toString(32)),e+="_"}else t=wm++,e="_"+e+"r_"+t.toString(32)+"_";return l.memoizedState=e},useHostTransitionStatus:cc,useFormState:eo,useActionState:eo,useOptimistic:function(l){var e=le();e.memoizedState=e.baseState=l;var t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return e.queue=t,e=fc.bind(null,W,!0,t),t.dispatch=e,[l,e]},useMemoCache:Ii,useCacheRefresh:function(){return le().memoizedState=lh.bind(null,W)},useEffectEvent:function(l){var e=le(),t={impl:l};return e.memoizedState=t,function(){if((ol&2)!==0)throw Error(h(440));return t.impl.apply(void 0,arguments)}}},sc={readContext:kl,use:fu,useCallback:mo,useContext:kl,useEffect:ac,useImperativeHandle:ro,useInsertionEffect:fo,useLayoutEffect:so,useMemo:ho,useReducer:su,useRef:uo,useState:function(){return su(Ke)},useDebugValue:nc,useDeferredValue:function(l,e){var t=Rl();return yo(t,hl.memoizedState,l,e)},useTransition:function(){var l=su(Ke)[0],e=Rl().memoizedState;return[typeof l=="boolean"?l:en(l),e]},useSyncExternalStore:Vs,useId:bo,useHostTransitionStatus:cc,useFormState:to,useActionState:to,useOptimistic:function(l,e){var t=Rl();return Fs(t,hl,l,e)},useMemoCache:Ii,useCacheRefresh:So};sc.useEffectEvent=co;var jo={readContext:kl,use:fu,useCallback:mo,useContext:kl,useEffect:ac,useImperativeHandle:ro,useInsertionEffect:fo,useLayoutEffect:so,useMemo:ho,useReducer:lc,useRef:uo,useState:function(){return lc(Ke)},useDebugValue:nc,useDeferredValue:function(l,e){var t=Rl();return hl===null?uc(t,l,e):yo(t,hl.memoizedState,l,e)},useTransition:function(){var l=lc(Ke)[0],e=Rl().memoizedState;return[typeof l=="boolean"?l:en(l),e]},useSyncExternalStore:Vs,useId:bo,useHostTransitionStatus:cc,useFormState:no,useActionState:no,useOptimistic:function(l,e){var t=Rl();return hl!==null?Fs(t,hl,l,e):(t.baseState=l,[l,t.queue.dispatch])},useMemoCache:Ii,useCacheRefresh:So};jo.useEffectEvent=co;function oc(l,e,t,a){e=l.memoizedState,t=t(a,e),t=t==null?e:B({},e,t),l.memoizedState=t,l.lanes===0&&(l.updateQueue.baseState=t)}var rc={enqueueSetState:function(l,e,t){l=l._reactInternals;var a=be(),n=ot(a);n.payload=e,t!=null&&(n.callback=t),e=rt(l,n,a),e!==null&&(fe(e,l,a),$a(e,l,a))},enqueueReplaceState:function(l,e,t){l=l._reactInternals;var a=be(),n=ot(a);n.tag=1,n.payload=e,t!=null&&(n.callback=t),e=rt(l,n,a),e!==null&&(fe(e,l,a),$a(e,l,a))},enqueueForceUpdate:function(l,e){l=l._reactInternals;var t=be(),a=ot(t);a.tag=2,e!=null&&(a.callback=e),e=rt(l,a,t),e!==null&&(fe(e,l,t),$a(e,l,t))}};function Eo(l,e,t,a,n,u,i){return l=l.stateNode,typeof l.shouldComponentUpdate=="function"?l.shouldComponentUpdate(a,u,i):e.prototype&&e.prototype.isPureReactComponent?!Va(t,a)||!Va(n,u):!0}function Mo(l,e,t,a){l=e.state,typeof e.componentWillReceiveProps=="function"&&e.componentWillReceiveProps(t,a),typeof e.UNSAFE_componentWillReceiveProps=="function"&&e.UNSAFE_componentWillReceiveProps(t,a),e.state!==l&&rc.enqueueReplaceState(e,e.state,null)}function Vt(l,e){var t=e;if("ref"in e){t={};for(var a in e)a!=="ref"&&(t[a]=e[a])}if(l=l.defaultProps){t===e&&(t=B({},t));for(var n in l)t[n]===void 0&&(t[n]=l[n])}return t}function Co(l){Ln(l)}function Oo(l){console.error(l)}function _o(l){Ln(l)}function mu(l,e){try{var t=l.onUncaughtError;t(e.value,{componentStack:e.stack})}catch(a){setTimeout(function(){throw a})}}function No(l,e,t){try{var a=l.onCaughtError;a(t.value,{componentStack:t.stack,errorBoundary:e.tag===1?e.stateNode:null})}catch(n){setTimeout(function(){throw n})}}function dc(l,e,t){return t=ot(t),t.tag=3,t.payload={element:null},t.callback=function(){mu(l,e)},t}function Do(l){return l=ot(l),l.tag=3,l}function Uo(l,e,t,a){var n=t.type.getDerivedStateFromError;if(typeof n=="function"){var u=a.value;l.payload=function(){return n(u)},l.callback=function(){No(e,t,a)}}var i=t.stateNode;i!==null&&typeof i.componentDidCatch=="function"&&(l.callback=function(){No(e,t,a),typeof n!="function"&&(gt===null?gt=new Set([this]):gt.add(this));var f=a.stack;this.componentDidCatch(a.value,{componentStack:f!==null?f:""})})}function th(l,e,t,a,n){if(t.flags|=32768,a!==null&&typeof a=="object"&&typeof a.then=="function"){if(e=t.alternate,e!==null&&sa(e,t,n,!0),t=ye.current,t!==null){switch(t.tag){case 31:case 13:return Me===null?ju():t.alternate===null&&Nl===0&&(Nl=3),t.flags&=-257,t.flags|=65536,t.lanes=n,a===lu?t.flags|=16384:(e=t.updateQueue,e===null?t.updateQueue=new Set([a]):e.add(a),qc(l,a,n)),!1;case 22:return t.flags|=65536,a===lu?t.flags|=16384:(e=t.updateQueue,e===null?(e={transitions:null,markerInstances:null,retryQueue:new Set([a])},t.updateQueue=e):(t=e.retryQueue,t===null?e.retryQueue=new Set([a]):t.add(a)),qc(l,a,n)),!1}throw Error(h(435,t.tag))}return qc(l,a,n),ju(),!1}if(al)return e=ye.current,e!==null?((e.flags&65536)===0&&(e.flags|=256),e.flags|=65536,e.lanes=n,a!==Ni&&(l=Error(h(422),{cause:a}),Ja(Ae(l,t)))):(a!==Ni&&(e=Error(h(423),{cause:a}),Ja(Ae(e,t))),l=l.current.alternate,l.flags|=65536,n&=-n,l.lanes|=n,a=Ae(a,t),n=dc(l.stateNode,a,n),Zi(l,n),Nl!==4&&(Nl=2)),!1;var u=Error(h(520),{cause:a});if(u=Ae(u,t),dn===null?dn=[u]:dn.push(u),Nl!==4&&(Nl=2),e===null)return!0;a=Ae(a,t),t=e;do{switch(t.tag){case 3:return t.flags|=65536,l=n&-n,t.lanes|=l,l=dc(t.stateNode,a,l),Zi(t,l),!1;case 1:if(e=t.type,u=t.stateNode,(t.flags&128)===0&&(typeof e.getDerivedStateFromError=="function"||u!==null&&typeof u.componentDidCatch=="function"&&(gt===null||!gt.has(u))))return t.flags|=65536,n&=-n,t.lanes|=n,n=Do(n),Uo(n,l,t,a),Zi(t,n),!1}t=t.return}while(t!==null);return!1}var mc=Error(h(461)),Yl=!1;function wl(l,e,t,a){e.child=l===null?Bs(e,null,t,a):Qt(e,l.child,t,a)}function Ro(l,e,t,a,n){t=t.render;var u=e.ref;if("ref"in a){var i={};for(var f in a)f!=="ref"&&(i[f]=a[f])}else i=a;return qt(e),a=wi(l,e,t,i,u,n),f=Fi(),l!==null&&!Yl?(Wi(l,e,n),Je(l,e,n)):(al&&f&&Oi(e),e.flags|=1,wl(l,e,a,n),e.child)}function Ho(l,e,t,a,n){if(l===null){var u=t.type;return typeof u=="function"&&!Ei(u)&&u.defaultProps===void 0&&t.compare===null?(e.tag=15,e.type=u,Bo(l,e,u,a,n)):(l=wn(t.type,null,a,e,e.mode,n),l.ref=e.ref,l.return=e,e.child=l)}if(u=l.child,!xc(l,n)){var i=u.memoizedProps;if(t=t.compare,t=t!==null?t:Va,t(i,a)&&l.ref===e.ref)return Je(l,e,n)}return e.flags|=1,l=Xe(u,a),l.ref=e.ref,l.return=e,e.child=l}function Bo(l,e,t,a,n){if(l!==null){var u=l.memoizedProps;if(Va(u,a)&&l.ref===e.ref)if(Yl=!1,e.pendingProps=a=u,xc(l,n))(l.flags&131072)!==0&&(Yl=!0);else return e.lanes=l.lanes,Je(l,e,n)}return hc(l,e,t,a,n)}function qo(l,e,t,a){var n=a.children,u=l!==null?l.memoizedState:null;if(l===null&&e.stateNode===null&&(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),a.mode==="hidden"){if((e.flags&128)!==0){if(u=u!==null?u.baseLanes|t:t,l!==null){for(a=e.child=l.child,n=0;a!==null;)n=n|a.lanes|a.childLanes,a=a.sibling;a=n&~u}else a=0,e.child=null;return Go(l,e,u,t,a)}if((t&536870912)!==0)e.memoizedState={baseLanes:0,cachePool:null},l!==null&&In(e,u!==null?u.cachePool:null),u!==null?Ys(e,u):Li(),Xs(e);else return a=e.lanes=536870912,Go(l,e,u!==null?u.baseLanes|t:t,t,a)}else u!==null?(In(e,u.cachePool),Ys(e,u),mt(),e.memoizedState=null):(l!==null&&In(e,null),Li(),mt());return wl(l,e,n,t),e.child}function nn(l,e){return l!==null&&l.tag===22||e.stateNode!==null||(e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),e.sibling}function Go(l,e,t,a,n){var u=Gi();return u=u===null?null:{parent:ql._currentValue,pool:u},e.memoizedState={baseLanes:t,cachePool:u},l!==null&&In(e,null),Li(),Xs(e),l!==null&&sa(l,e,a,!0),e.childLanes=n,null}function hu(l,e){return e=vu({mode:e.mode,children:e.children},l.mode),e.ref=l.ref,l.child=e,e.return=l,e}function Yo(l,e,t){return Qt(e,l.child,null,t),l=hu(e,e.pendingProps),l.flags|=2,ve(e),e.memoizedState=null,l}function ah(l,e,t){var a=e.pendingProps,n=(e.flags&128)!==0;if(e.flags&=-129,l===null){if(al){if(a.mode==="hidden")return l=hu(e,a),e.lanes=536870912,nn(null,l);if(Ji(e),(l=Al)?(l=$r(l,Ee),l=l!==null&&l.data==="&"?l:null,l!==null&&(e.memoizedState={dehydrated:l,treeContext:ut!==null?{id:Ue,overflow:Re}:null,retryLane:536870912,hydrationErrors:null},t=xs(l),t.return=e,e.child=t,Jl=e,Al=null)):l=null,l===null)throw ct(e);return e.lanes=536870912,null}return hu(e,a)}var u=l.memoizedState;if(u!==null){var i=u.dehydrated;if(Ji(e),n)if(e.flags&256)e.flags&=-257,e=Yo(l,e,t);else if(e.memoizedState!==null)e.child=l.child,e.flags|=128,e=null;else throw Error(h(558));else if(Yl||sa(l,e,t,!1),n=(t&l.childLanes)!==0,Yl||n){if(a=bl,a!==null&&(i=Cf(a,t),i!==0&&i!==u.retryLane))throw u.retryLane=i,Ut(l,i),fe(a,l,i),mc;ju(),e=Yo(l,e,t)}else l=u.treeContext,Al=Ce(i.nextSibling),Jl=e,al=!0,it=null,Ee=!1,l!==null&&zs(e,l),e=hu(e,a),e.flags|=4096;return e}return l=Xe(l.child,{mode:a.mode,children:a.children}),l.ref=e.ref,e.child=l,l.return=e,l}function yu(l,e){var t=e.ref;if(t===null)l!==null&&l.ref!==null&&(e.flags|=4194816);else{if(typeof t!="function"&&typeof t!="object")throw Error(h(284));(l===null||l.ref!==t)&&(e.flags|=4194816)}}function hc(l,e,t,a,n){return qt(e),t=wi(l,e,t,a,void 0,n),a=Fi(),l!==null&&!Yl?(Wi(l,e,n),Je(l,e,n)):(al&&a&&Oi(e),e.flags|=1,wl(l,e,t,n),e.child)}function Xo(l,e,t,a,n,u){return qt(e),e.updateQueue=null,t=Zs(e,a,t,n),Qs(l),a=Fi(),l!==null&&!Yl?(Wi(l,e,u),Je(l,e,u)):(al&&a&&Oi(e),e.flags|=1,wl(l,e,t,u),e.child)}function Qo(l,e,t,a,n){if(qt(e),e.stateNode===null){var u=ua,i=t.contextType;typeof i=="object"&&i!==null&&(u=kl(i)),u=new t(a,u),e.memoizedState=u.state!==null&&u.state!==void 0?u.state:null,u.updater=rc,e.stateNode=u,u._reactInternals=e,u=e.stateNode,u.props=a,u.state=e.memoizedState,u.refs={},Xi(e),i=t.contextType,u.context=typeof i=="object"&&i!==null?kl(i):ua,u.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&(oc(e,t,i,a),u.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof u.getSnapshotBeforeUpdate=="function"||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(i=u.state,typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount(),i!==u.state&&rc.enqueueReplaceState(u,u.state,null),Pa(e,a,u,n),Ia(),u.state=e.memoizedState),typeof u.componentDidMount=="function"&&(e.flags|=4194308),a=!0}else if(l===null){u=e.stateNode;var f=e.memoizedProps,o=Vt(t,f);u.props=o;var v=u.context,S=t.contextType;i=ua,typeof S=="object"&&S!==null&&(i=kl(S));var z=t.getDerivedStateFromProps;S=typeof z=="function"||typeof u.getSnapshotBeforeUpdate=="function",f=e.pendingProps!==f,S||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(f||v!==i)&&Mo(e,u,a,i),st=!1;var g=e.memoizedState;u.state=g,Pa(e,a,u,n),Ia(),v=e.memoizedState,f||g!==v||st?(typeof z=="function"&&(oc(e,t,z,a),v=e.memoizedState),(o=st||Eo(e,t,o,a,g,v,i))?(S||typeof u.UNSAFE_componentWillMount!="function"&&typeof u.componentWillMount!="function"||(typeof u.componentWillMount=="function"&&u.componentWillMount(),typeof u.UNSAFE_componentWillMount=="function"&&u.UNSAFE_componentWillMount()),typeof u.componentDidMount=="function"&&(e.flags|=4194308)):(typeof u.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=a,e.memoizedState=v),u.props=a,u.state=v,u.context=i,a=o):(typeof u.componentDidMount=="function"&&(e.flags|=4194308),a=!1)}else{u=e.stateNode,Qi(l,e),i=e.memoizedProps,S=Vt(t,i),u.props=S,z=e.pendingProps,g=u.context,v=t.contextType,o=ua,typeof v=="object"&&v!==null&&(o=kl(v)),f=t.getDerivedStateFromProps,(v=typeof f=="function"||typeof u.getSnapshotBeforeUpdate=="function")||typeof u.UNSAFE_componentWillReceiveProps!="function"&&typeof u.componentWillReceiveProps!="function"||(i!==z||g!==o)&&Mo(e,u,a,o),st=!1,g=e.memoizedState,u.state=g,Pa(e,a,u,n),Ia();var p=e.memoizedState;i!==z||g!==p||st||l!==null&&l.dependencies!==null&&Wn(l.dependencies)?(typeof f=="function"&&(oc(e,t,f,a),p=e.memoizedState),(S=st||Eo(e,t,S,a,g,p,o)||l!==null&&l.dependencies!==null&&Wn(l.dependencies))?(v||typeof u.UNSAFE_componentWillUpdate!="function"&&typeof u.componentWillUpdate!="function"||(typeof u.componentWillUpdate=="function"&&u.componentWillUpdate(a,p,o),typeof u.UNSAFE_componentWillUpdate=="function"&&u.UNSAFE_componentWillUpdate(a,p,o)),typeof u.componentDidUpdate=="function"&&(e.flags|=4),typeof u.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof u.componentDidUpdate!="function"||i===l.memoizedProps&&g===l.memoizedState||(e.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||i===l.memoizedProps&&g===l.memoizedState||(e.flags|=1024),e.memoizedProps=a,e.memoizedState=p),u.props=a,u.state=p,u.context=o,a=S):(typeof u.componentDidUpdate!="function"||i===l.memoizedProps&&g===l.memoizedState||(e.flags|=4),typeof u.getSnapshotBeforeUpdate!="function"||i===l.memoizedProps&&g===l.memoizedState||(e.flags|=1024),a=!1)}return u=a,yu(l,e),a=(e.flags&128)!==0,u||a?(u=e.stateNode,t=a&&typeof t.getDerivedStateFromError!="function"?null:u.render(),e.flags|=1,l!==null&&a?(e.child=Qt(e,l.child,null,n),e.child=Qt(e,null,t,n)):wl(l,e,t,n),e.memoizedState=u.state,l=e.child):l=Je(l,e,n),l}function Zo(l,e,t,a){return Ht(),e.flags|=256,wl(l,e,t,a),e.child}var yc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function vc(l){return{baseLanes:l,cachePool:_s()}}function gc(l,e,t){return l=l!==null?l.childLanes&~t:0,e&&(l|=pe),l}function Vo(l,e,t){var a=e.pendingProps,n=!1,u=(e.flags&128)!==0,i;if((i=u)||(i=l!==null&&l.memoizedState===null?!1:(Ul.current&2)!==0),i&&(n=!0,e.flags&=-129),i=(e.flags&32)!==0,e.flags&=-33,l===null){if(al){if(n?dt(e):mt(),(l=Al)?(l=$r(l,Ee),l=l!==null&&l.data!=="&"?l:null,l!==null&&(e.memoizedState={dehydrated:l,treeContext:ut!==null?{id:Ue,overflow:Re}:null,retryLane:536870912,hydrationErrors:null},t=xs(l),t.return=e,e.child=t,Jl=e,Al=null)):l=null,l===null)throw ct(e);return Pc(l)?e.lanes=32:e.lanes=536870912,null}var f=a.children;return a=a.fallback,n?(mt(),n=e.mode,f=vu({mode:"hidden",children:f},n),a=Rt(a,n,t,null),f.return=e,a.return=e,f.sibling=a,e.child=f,a=e.child,a.memoizedState=vc(t),a.childLanes=gc(l,i,t),e.memoizedState=yc,nn(null,a)):(dt(e),pc(e,f))}var o=l.memoizedState;if(o!==null&&(f=o.dehydrated,f!==null)){if(u)e.flags&256?(dt(e),e.flags&=-257,e=bc(l,e,t)):e.memoizedState!==null?(mt(),e.child=l.child,e.flags|=128,e=null):(mt(),f=a.fallback,n=e.mode,a=vu({mode:"visible",children:a.children},n),f=Rt(f,n,t,null),f.flags|=2,a.return=e,f.return=e,a.sibling=f,e.child=a,Qt(e,l.child,null,t),a=e.child,a.memoizedState=vc(t),a.childLanes=gc(l,i,t),e.memoizedState=yc,e=nn(null,a));else if(dt(e),Pc(f)){if(i=f.nextSibling&&f.nextSibling.dataset,i)var v=i.dgst;i=v,a=Error(h(419)),a.stack="",a.digest=i,Ja({value:a,source:null,stack:null}),e=bc(l,e,t)}else if(Yl||sa(l,e,t,!1),i=(t&l.childLanes)!==0,Yl||i){if(i=bl,i!==null&&(a=Cf(i,t),a!==0&&a!==o.retryLane))throw o.retryLane=a,Ut(l,a),fe(i,l,a),mc;Ic(f)||ju(),e=bc(l,e,t)}else Ic(f)?(e.flags|=192,e.child=l.child,e=null):(l=o.treeContext,Al=Ce(f.nextSibling),Jl=e,al=!0,it=null,Ee=!1,l!==null&&zs(e,l),e=pc(e,a.children),e.flags|=4096);return e}return n?(mt(),f=a.fallback,n=e.mode,o=l.child,v=o.sibling,a=Xe(o,{mode:"hidden",children:a.children}),a.subtreeFlags=o.subtreeFlags&65011712,v!==null?f=Xe(v,f):(f=Rt(f,n,t,null),f.flags|=2),f.return=e,a.return=e,a.sibling=f,e.child=a,nn(null,a),a=e.child,f=l.child.memoizedState,f===null?f=vc(t):(n=f.cachePool,n!==null?(o=ql._currentValue,n=n.parent!==o?{parent:o,pool:o}:n):n=_s(),f={baseLanes:f.baseLanes|t,cachePool:n}),a.memoizedState=f,a.childLanes=gc(l,i,t),e.memoizedState=yc,nn(l.child,a)):(dt(e),t=l.child,l=t.sibling,t=Xe(t,{mode:"visible",children:a.children}),t.return=e,t.sibling=null,l!==null&&(i=e.deletions,i===null?(e.deletions=[l],e.flags|=16):i.push(l)),e.child=t,e.memoizedState=null,t)}function pc(l,e){return e=vu({mode:"visible",children:e},l.mode),e.return=l,l.child=e}function vu(l,e){return l=he(22,l,null,e),l.lanes=0,l}function bc(l,e,t){return Qt(e,l.child,null,t),l=pc(e,e.pendingProps.children),l.flags|=2,e.memoizedState=null,l}function Lo(l,e,t){l.lanes|=e;var a=l.alternate;a!==null&&(a.lanes|=e),Ri(l.return,e,t)}function Sc(l,e,t,a,n,u){var i=l.memoizedState;i===null?l.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:a,tail:t,tailMode:n,treeForkCount:u}:(i.isBackwards=e,i.rendering=null,i.renderingStartTime=0,i.last=a,i.tail=t,i.tailMode=n,i.treeForkCount=u)}function Ko(l,e,t){var a=e.pendingProps,n=a.revealOrder,u=a.tail;a=a.children;var i=Ul.current,f=(i&2)!==0;if(f?(i=i&1|2,e.flags|=128):i&=1,C(Ul,i),wl(l,e,a,t),a=al?Ka:0,!f&&l!==null&&(l.flags&128)!==0)l:for(l=e.child;l!==null;){if(l.tag===13)l.memoizedState!==null&&Lo(l,t,e);else if(l.tag===19)Lo(l,t,e);else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===e)break l;for(;l.sibling===null;){if(l.return===null||l.return===e)break l;l=l.return}l.sibling.return=l.return,l=l.sibling}switch(n){case"forwards":for(t=e.child,n=null;t!==null;)l=t.alternate,l!==null&&nu(l)===null&&(n=t),t=t.sibling;t=n,t===null?(n=e.child,e.child=null):(n=t.sibling,t.sibling=null),Sc(e,!1,n,t,u,a);break;case"backwards":case"unstable_legacy-backwards":for(t=null,n=e.child,e.child=null;n!==null;){if(l=n.alternate,l!==null&&nu(l)===null){e.child=n;break}l=n.sibling,n.sibling=t,t=n,n=l}Sc(e,!0,t,null,u,a);break;case"together":Sc(e,!1,null,null,void 0,a);break;default:e.memoizedState=null}return e.child}function Je(l,e,t){if(l!==null&&(e.dependencies=l.dependencies),vt|=e.lanes,(t&e.childLanes)===0)if(l!==null){if(sa(l,e,t,!1),(t&e.childLanes)===0)return null}else return null;if(l!==null&&e.child!==l.child)throw Error(h(153));if(e.child!==null){for(l=e.child,t=Xe(l,l.pendingProps),e.child=t,t.return=e;l.sibling!==null;)l=l.sibling,t=t.sibling=Xe(l,l.pendingProps),t.return=e;t.sibling=null}return e.child}function xc(l,e){return(l.lanes&e)!==0?!0:(l=l.dependencies,!!(l!==null&&Wn(l)))}function nh(l,e,t){switch(e.tag){case 3:Pl(e,e.stateNode.containerInfo),ft(e,ql,l.memoizedState.cache),Ht();break;case 27:case 5:_a(e);break;case 4:Pl(e,e.stateNode.containerInfo);break;case 10:ft(e,e.type,e.memoizedProps.value);break;case 31:if(e.memoizedState!==null)return e.flags|=128,Ji(e),null;break;case 13:var a=e.memoizedState;if(a!==null)return a.dehydrated!==null?(dt(e),e.flags|=128,null):(t&e.child.childLanes)!==0?Vo(l,e,t):(dt(e),l=Je(l,e,t),l!==null?l.sibling:null);dt(e);break;case 19:var n=(l.flags&128)!==0;if(a=(t&e.childLanes)!==0,a||(sa(l,e,t,!1),a=(t&e.childLanes)!==0),n){if(a)return Ko(l,e,t);e.flags|=128}if(n=e.memoizedState,n!==null&&(n.rendering=null,n.tail=null,n.lastEffect=null),C(Ul,Ul.current),a)break;return null;case 22:return e.lanes=0,qo(l,e,t,e.pendingProps);case 24:ft(e,ql,l.memoizedState.cache)}return Je(l,e,t)}function Jo(l,e,t){if(l!==null)if(l.memoizedProps!==e.pendingProps)Yl=!0;else{if(!xc(l,t)&&(e.flags&128)===0)return Yl=!1,nh(l,e,t);Yl=(l.flags&131072)!==0}else Yl=!1,al&&(e.flags&1048576)!==0&&As(e,Ka,e.index);switch(e.lanes=0,e.tag){case 16:l:{var a=e.pendingProps;if(l=Yt(e.elementType),e.type=l,typeof l=="function")Ei(l)?(a=Vt(l,a),e.tag=1,e=Qo(null,e,l,a,t)):(e.tag=0,e=hc(null,e,l,a,t));else{if(l!=null){var n=l.$$typeof;if(n===Bl){e.tag=11,e=Ro(null,e,l,a,t);break l}else if(n===N){e.tag=14,e=Ho(null,e,l,a,t);break l}}throw e=Wl(l)||l,Error(h(306,e,""))}}return e;case 0:return hc(l,e,e.type,e.pendingProps,t);case 1:return a=e.type,n=Vt(a,e.pendingProps),Qo(l,e,a,n,t);case 3:l:{if(Pl(e,e.stateNode.containerInfo),l===null)throw Error(h(387));a=e.pendingProps;var u=e.memoizedState;n=u.element,Qi(l,e),Pa(e,a,null,t);var i=e.memoizedState;if(a=i.cache,ft(e,ql,a),a!==u.cache&&Hi(e,[ql],t,!0),Ia(),a=i.element,u.isDehydrated)if(u={element:a,isDehydrated:!1,cache:i.cache},e.updateQueue.baseState=u,e.memoizedState=u,e.flags&256){e=Zo(l,e,a,t);break l}else if(a!==n){n=Ae(Error(h(424)),e),Ja(n),e=Zo(l,e,a,t);break l}else{switch(l=e.stateNode.containerInfo,l.nodeType){case 9:l=l.body;break;default:l=l.nodeName==="HTML"?l.ownerDocument.body:l}for(Al=Ce(l.firstChild),Jl=e,al=!0,it=null,Ee=!0,t=Bs(e,null,a,t),e.child=t;t;)t.flags=t.flags&-3|4096,t=t.sibling}else{if(Ht(),a===n){e=Je(l,e,t);break l}wl(l,e,a,t)}e=e.child}return e;case 26:return yu(l,e),l===null?(t=ad(e.type,null,e.pendingProps,null))?e.memoizedState=t:al||(t=e.type,l=e.pendingProps,a=Du(I.current).createElement(t),a[Kl]=e,a[te]=l,Fl(a,t,l),Zl(a),e.stateNode=a):e.memoizedState=ad(e.type,l.memoizedProps,e.pendingProps,l.memoizedState),null;case 27:return _a(e),l===null&&al&&(a=e.stateNode=ld(e.type,e.pendingProps,I.current),Jl=e,Ee=!0,n=Al,xt(e.type)?(lf=n,Al=Ce(a.firstChild)):Al=n),wl(l,e,e.pendingProps.children,t),yu(l,e),l===null&&(e.flags|=4194304),e.child;case 5:return l===null&&al&&((n=a=Al)&&(a=Rh(a,e.type,e.pendingProps,Ee),a!==null?(e.stateNode=a,Jl=e,Al=Ce(a.firstChild),Ee=!1,n=!0):n=!1),n||ct(e)),_a(e),n=e.type,u=e.pendingProps,i=l!==null?l.memoizedProps:null,a=u.children,Fc(n,u)?a=null:i!==null&&Fc(n,i)&&(e.flags|=32),e.memoizedState!==null&&(n=wi(l,e,Fm,null,null,t),Sn._currentValue=n),yu(l,e),wl(l,e,a,t),e.child;case 6:return l===null&&al&&((l=t=Al)&&(t=Hh(t,e.pendingProps,Ee),t!==null?(e.stateNode=t,Jl=e,Al=null,l=!0):l=!1),l||ct(e)),null;case 13:return Vo(l,e,t);case 4:return Pl(e,e.stateNode.containerInfo),a=e.pendingProps,l===null?e.child=Qt(e,null,a,t):wl(l,e,a,t),e.child;case 11:return Ro(l,e,e.type,e.pendingProps,t);case 7:return wl(l,e,e.pendingProps,t),e.child;case 8:return wl(l,e,e.pendingProps.children,t),e.child;case 12:return wl(l,e,e.pendingProps.children,t),e.child;case 10:return a=e.pendingProps,ft(e,e.type,a.value),wl(l,e,a.children,t),e.child;case 9:return n=e.type._context,a=e.pendingProps.children,qt(e),n=kl(n),a=a(n),e.flags|=1,wl(l,e,a,t),e.child;case 14:return Ho(l,e,e.type,e.pendingProps,t);case 15:return Bo(l,e,e.type,e.pendingProps,t);case 19:return Ko(l,e,t);case 31:return ah(l,e,t);case 22:return qo(l,e,t,e.pendingProps);case 24:return qt(e),a=kl(ql),l===null?(n=Gi(),n===null&&(n=bl,u=Bi(),n.pooledCache=u,u.refCount++,u!==null&&(n.pooledCacheLanes|=t),n=u),e.memoizedState={parent:a,cache:n},Xi(e),ft(e,ql,n)):((l.lanes&t)!==0&&(Qi(l,e),Pa(e,null,null,t),Ia()),n=l.memoizedState,u=e.memoizedState,n.parent!==a?(n={parent:a,cache:a},e.memoizedState=n,e.lanes===0&&(e.memoizedState=e.updateQueue.baseState=n),ft(e,ql,a)):(a=u.cache,ft(e,ql,a),a!==n.cache&&Hi(e,[ql],t,!0))),wl(l,e,e.pendingProps.children,t),e.child;case 29:throw e.pendingProps}throw Error(h(156,e.tag))}function ke(l){l.flags|=4}function Tc(l,e,t,a,n){if((e=(l.mode&32)!==0)&&(e=!1),e){if(l.flags|=16777216,(n&335544128)===n)if(l.stateNode.complete)l.flags|=8192;else if(br())l.flags|=8192;else throw Xt=lu,Yi}else l.flags&=-16777217}function ko(l,e){if(e.type!=="stylesheet"||(e.state.loading&4)!==0)l.flags&=-16777217;else if(l.flags|=16777216,!fd(e))if(br())l.flags|=8192;else throw Xt=lu,Yi}function gu(l,e){e!==null&&(l.flags|=4),l.flags&16384&&(e=l.tag!==22?jf():536870912,l.lanes|=e,xa|=e)}function un(l,e){if(!al)switch(l.tailMode){case"hidden":e=l.tail;for(var t=null;e!==null;)e.alternate!==null&&(t=e),e=e.sibling;t===null?l.tail=null:t.sibling=null;break;case"collapsed":t=l.tail;for(var a=null;t!==null;)t.alternate!==null&&(a=t),t=t.sibling;a===null?e||l.tail===null?l.tail=null:l.tail.sibling=null:a.sibling=null}}function zl(l){var e=l.alternate!==null&&l.alternate.child===l.child,t=0,a=0;if(e)for(var n=l.child;n!==null;)t|=n.lanes|n.childLanes,a|=n.subtreeFlags&65011712,a|=n.flags&65011712,n.return=l,n=n.sibling;else for(n=l.child;n!==null;)t|=n.lanes|n.childLanes,a|=n.subtreeFlags,a|=n.flags,n.return=l,n=n.sibling;return l.subtreeFlags|=a,l.childLanes=t,e}function uh(l,e,t){var a=e.pendingProps;switch(_i(e),e.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return zl(e),null;case 1:return zl(e),null;case 3:return t=e.stateNode,a=null,l!==null&&(a=l.memoizedState.cache),e.memoizedState.cache!==a&&(e.flags|=2048),Ve(ql),Dl(),t.pendingContext&&(t.context=t.pendingContext,t.pendingContext=null),(l===null||l.child===null)&&(fa(e)?ke(e):l===null||l.memoizedState.isDehydrated&&(e.flags&256)===0||(e.flags|=1024,Di())),zl(e),null;case 26:var n=e.type,u=e.memoizedState;return l===null?(ke(e),u!==null?(zl(e),ko(e,u)):(zl(e),Tc(e,n,null,a,t))):u?u!==l.memoizedState?(ke(e),zl(e),ko(e,u)):(zl(e),e.flags&=-16777217):(l=l.memoizedProps,l!==a&&ke(e),zl(e),Tc(e,n,l,a,t)),null;case 27:if(Cn(e),t=I.current,n=e.type,l!==null&&e.stateNode!=null)l.memoizedProps!==a&&ke(e);else{if(!a){if(e.stateNode===null)throw Error(h(166));return zl(e),null}l=R.current,fa(e)?js(e):(l=ld(n,a,t),e.stateNode=l,ke(e))}return zl(e),null;case 5:if(Cn(e),n=e.type,l!==null&&e.stateNode!=null)l.memoizedProps!==a&&ke(e);else{if(!a){if(e.stateNode===null)throw Error(h(166));return zl(e),null}if(u=R.current,fa(e))js(e);else{var i=Du(I.current);switch(u){case 1:u=i.createElementNS("http://www.w3.org/2000/svg",n);break;case 2:u=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;default:switch(n){case"svg":u=i.createElementNS("http://www.w3.org/2000/svg",n);break;case"math":u=i.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;case"script":u=i.createElement("div"),u.innerHTML="<script><\/script>",u=u.removeChild(u.firstChild);break;case"select":u=typeof a.is=="string"?i.createElement("select",{is:a.is}):i.createElement("select"),a.multiple?u.multiple=!0:a.size&&(u.size=a.size);break;default:u=typeof a.is=="string"?i.createElement(n,{is:a.is}):i.createElement(n)}}u[Kl]=e,u[te]=a;l:for(i=e.child;i!==null;){if(i.tag===5||i.tag===6)u.appendChild(i.stateNode);else if(i.tag!==4&&i.tag!==27&&i.child!==null){i.child.return=i,i=i.child;continue}if(i===e)break l;for(;i.sibling===null;){if(i.return===null||i.return===e)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}e.stateNode=u;l:switch(Fl(u,n,a),n){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break l;case"img":a=!0;break l;default:a=!1}a&&ke(e)}}return zl(e),Tc(e,e.type,l===null?null:l.memoizedProps,e.pendingProps,t),null;case 6:if(l&&e.stateNode!=null)l.memoizedProps!==a&&ke(e);else{if(typeof a!="string"&&e.stateNode===null)throw Error(h(166));if(l=I.current,fa(e)){if(l=e.stateNode,t=e.memoizedProps,a=null,n=Jl,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}l[Kl]=e,l=!!(l.nodeValue===t||a!==null&&a.suppressHydrationWarning===!0||Vr(l.nodeValue,t)),l||ct(e,!0)}else l=Du(l).createTextNode(a),l[Kl]=e,e.stateNode=l}return zl(e),null;case 31:if(t=e.memoizedState,l===null||l.memoizedState!==null){if(a=fa(e),t!==null){if(l===null){if(!a)throw Error(h(318));if(l=e.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(h(557));l[Kl]=e}else Ht(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;zl(e),l=!1}else t=Di(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=t),l=!0;if(!l)return e.flags&256?(ve(e),e):(ve(e),null);if((e.flags&128)!==0)throw Error(h(558))}return zl(e),null;case 13:if(a=e.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(n=fa(e),a!==null&&a.dehydrated!==null){if(l===null){if(!n)throw Error(h(318));if(n=e.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(h(317));n[Kl]=e}else Ht(),(e.flags&128)===0&&(e.memoizedState=null),e.flags|=4;zl(e),n=!1}else n=Di(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=n),n=!0;if(!n)return e.flags&256?(ve(e),e):(ve(e),null)}return ve(e),(e.flags&128)!==0?(e.lanes=t,e):(t=a!==null,l=l!==null&&l.memoizedState!==null,t&&(a=e.child,n=null,a.alternate!==null&&a.alternate.memoizedState!==null&&a.alternate.memoizedState.cachePool!==null&&(n=a.alternate.memoizedState.cachePool.pool),u=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(u=a.memoizedState.cachePool.pool),u!==n&&(a.flags|=2048)),t!==l&&t&&(e.child.flags|=8192),gu(e,e.updateQueue),zl(e),null);case 4:return Dl(),l===null&&Lc(e.stateNode.containerInfo),zl(e),null;case 10:return Ve(e.type),zl(e),null;case 19:if(b(Ul),a=e.memoizedState,a===null)return zl(e),null;if(n=(e.flags&128)!==0,u=a.rendering,u===null)if(n)un(a,!1);else{if(Nl!==0||l!==null&&(l.flags&128)!==0)for(l=e.child;l!==null;){if(u=nu(l),u!==null){for(e.flags|=128,un(a,!1),l=u.updateQueue,e.updateQueue=l,gu(e,l),e.subtreeFlags=0,l=t,t=e.child;t!==null;)Ss(t,l),t=t.sibling;return C(Ul,Ul.current&1|2),al&&Qe(e,a.treeForkCount),e.child}l=l.sibling}a.tail!==null&&oe()>Tu&&(e.flags|=128,n=!0,un(a,!1),e.lanes=4194304)}else{if(!n)if(l=nu(u),l!==null){if(e.flags|=128,n=!0,l=l.updateQueue,e.updateQueue=l,gu(e,l),un(a,!0),a.tail===null&&a.tailMode==="hidden"&&!u.alternate&&!al)return zl(e),null}else 2*oe()-a.renderingStartTime>Tu&&t!==536870912&&(e.flags|=128,n=!0,un(a,!1),e.lanes=4194304);a.isBackwards?(u.sibling=e.child,e.child=u):(l=a.last,l!==null?l.sibling=u:e.child=u,a.last=u)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=oe(),l.sibling=null,t=Ul.current,C(Ul,n?t&1|2:t&1),al&&Qe(e,a.treeForkCount),l):(zl(e),null);case 22:case 23:return ve(e),Ki(),a=e.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(e.flags|=8192):a&&(e.flags|=8192),a?(t&536870912)!==0&&(e.flags&128)===0&&(zl(e),e.subtreeFlags&6&&(e.flags|=8192)):zl(e),t=e.updateQueue,t!==null&&gu(e,t.retryQueue),t=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(t=l.memoizedState.cachePool.pool),a=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),a!==t&&(e.flags|=2048),l!==null&&b(Gt),null;case 24:return t=null,l!==null&&(t=l.memoizedState.cache),e.memoizedState.cache!==t&&(e.flags|=2048),Ve(ql),zl(e),null;case 25:return null;case 30:return null}throw Error(h(156,e.tag))}function ih(l,e){switch(_i(e),e.tag){case 1:return l=e.flags,l&65536?(e.flags=l&-65537|128,e):null;case 3:return Ve(ql),Dl(),l=e.flags,(l&65536)!==0&&(l&128)===0?(e.flags=l&-65537|128,e):null;case 26:case 27:case 5:return Cn(e),null;case 31:if(e.memoizedState!==null){if(ve(e),e.alternate===null)throw Error(h(340));Ht()}return l=e.flags,l&65536?(e.flags=l&-65537|128,e):null;case 13:if(ve(e),l=e.memoizedState,l!==null&&l.dehydrated!==null){if(e.alternate===null)throw Error(h(340));Ht()}return l=e.flags,l&65536?(e.flags=l&-65537|128,e):null;case 19:return b(Ul),null;case 4:return Dl(),null;case 10:return Ve(e.type),null;case 22:case 23:return ve(e),Ki(),l!==null&&b(Gt),l=e.flags,l&65536?(e.flags=l&-65537|128,e):null;case 24:return Ve(ql),null;case 25:return null;default:return null}}function wo(l,e){switch(_i(e),e.tag){case 3:Ve(ql),Dl();break;case 26:case 27:case 5:Cn(e);break;case 4:Dl();break;case 31:e.memoizedState!==null&&ve(e);break;case 13:ve(e);break;case 19:b(Ul);break;case 10:Ve(e.type);break;case 22:case 23:ve(e),Ki(),l!==null&&b(Gt);break;case 24:Ve(ql)}}function cn(l,e){try{var t=e.updateQueue,a=t!==null?t.lastEffect:null;if(a!==null){var n=a.next;t=n;do{if((t.tag&l)===l){a=void 0;var u=t.create,i=t.inst;a=u(),i.destroy=a}t=t.next}while(t!==n)}}catch(f){ml(e,e.return,f)}}function ht(l,e,t){try{var a=e.updateQueue,n=a!==null?a.lastEffect:null;if(n!==null){var u=n.next;a=u;do{if((a.tag&l)===l){var i=a.inst,f=i.destroy;if(f!==void 0){i.destroy=void 0,n=e;var o=t,v=f;try{v()}catch(S){ml(n,o,S)}}}a=a.next}while(a!==u)}}catch(S){ml(e,e.return,S)}}function Fo(l){var e=l.updateQueue;if(e!==null){var t=l.stateNode;try{Gs(e,t)}catch(a){ml(l,l.return,a)}}}function Wo(l,e,t){t.props=Vt(l.type,l.memoizedProps),t.state=l.memoizedState;try{t.componentWillUnmount()}catch(a){ml(l,e,a)}}function fn(l,e){try{var t=l.ref;if(t!==null){switch(l.tag){case 26:case 27:case 5:var a=l.stateNode;break;case 30:a=l.stateNode;break;default:a=l.stateNode}typeof t=="function"?l.refCleanup=t(a):t.current=a}}catch(n){ml(l,e,n)}}function He(l,e){var t=l.ref,a=l.refCleanup;if(t!==null)if(typeof a=="function")try{a()}catch(n){ml(l,e,n)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof t=="function")try{t(null)}catch(n){ml(l,e,n)}else t.current=null}function $o(l){var e=l.type,t=l.memoizedProps,a=l.stateNode;try{l:switch(e){case"button":case"input":case"select":case"textarea":t.autoFocus&&a.focus();break l;case"img":t.src?a.src=t.src:t.srcSet&&(a.srcset=t.srcSet)}}catch(n){ml(l,l.return,n)}}function Ac(l,e,t){try{var a=l.stateNode;Ch(a,l.type,t,e),a[te]=e}catch(n){ml(l,l.return,n)}}function Io(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&xt(l.type)||l.tag===4}function zc(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||Io(l.return))return null;l=l.return}for(l.sibling.return=l.return,l=l.sibling;l.tag!==5&&l.tag!==6&&l.tag!==18;){if(l.tag===27&&xt(l.type)||l.flags&2||l.child===null||l.tag===4)continue l;l.child.return=l,l=l.child}if(!(l.flags&2))return l.stateNode}}function jc(l,e,t){var a=l.tag;if(a===5||a===6)l=l.stateNode,e?(t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t).insertBefore(l,e):(e=t.nodeType===9?t.body:t.nodeName==="HTML"?t.ownerDocument.body:t,e.appendChild(l),t=t._reactRootContainer,t!=null||e.onclick!==null||(e.onclick=Ge));else if(a!==4&&(a===27&&xt(l.type)&&(t=l.stateNode,e=null),l=l.child,l!==null))for(jc(l,e,t),l=l.sibling;l!==null;)jc(l,e,t),l=l.sibling}function pu(l,e,t){var a=l.tag;if(a===5||a===6)l=l.stateNode,e?t.insertBefore(l,e):t.appendChild(l);else if(a!==4&&(a===27&&xt(l.type)&&(t=l.stateNode),l=l.child,l!==null))for(pu(l,e,t),l=l.sibling;l!==null;)pu(l,e,t),l=l.sibling}function Po(l){var e=l.stateNode,t=l.memoizedProps;try{for(var a=l.type,n=e.attributes;n.length;)e.removeAttributeNode(n[0]);Fl(e,a,t),e[Kl]=l,e[te]=t}catch(u){ml(l,l.return,u)}}var we=!1,Xl=!1,Ec=!1,lr=typeof WeakSet=="function"?WeakSet:Set,Vl=null;function ch(l,e){if(l=l.containerInfo,kc=Yu,l=rs(l),bi(l)){if("selectionStart"in l)var t={start:l.selectionStart,end:l.selectionEnd};else l:{t=(t=l.ownerDocument)&&t.defaultView||window;var a=t.getSelection&&t.getSelection();if(a&&a.rangeCount!==0){t=a.anchorNode;var n=a.anchorOffset,u=a.focusNode;a=a.focusOffset;try{t.nodeType,u.nodeType}catch{t=null;break l}var i=0,f=-1,o=-1,v=0,S=0,z=l,g=null;e:for(;;){for(var p;z!==t||n!==0&&z.nodeType!==3||(f=i+n),z!==u||a!==0&&z.nodeType!==3||(o=i+a),z.nodeType===3&&(i+=z.nodeValue.length),(p=z.firstChild)!==null;)g=z,z=p;for(;;){if(z===l)break e;if(g===t&&++v===n&&(f=i),g===u&&++S===a&&(o=i),(p=z.nextSibling)!==null)break;z=g,g=z.parentNode}z=p}t=f===-1||o===-1?null:{start:f,end:o}}else t=null}t=t||{start:0,end:0}}else t=null;for(wc={focusedElem:l,selectionRange:t},Yu=!1,Vl=e;Vl!==null;)if(e=Vl,l=e.child,(e.subtreeFlags&1028)!==0&&l!==null)l.return=e,Vl=l;else for(;Vl!==null;){switch(e=Vl,u=e.alternate,l=e.flags,e.tag){case 0:if((l&4)!==0&&(l=e.updateQueue,l=l!==null?l.events:null,l!==null))for(t=0;t<l.length;t++)n=l[t],n.ref.impl=n.nextImpl;break;case 11:case 15:break;case 1:if((l&1024)!==0&&u!==null){l=void 0,t=e,n=u.memoizedProps,u=u.memoizedState,a=t.stateNode;try{var H=Vt(t.type,n);l=a.getSnapshotBeforeUpdate(H,u),a.__reactInternalSnapshotBeforeUpdate=l}catch(K){ml(t,t.return,K)}}break;case 3:if((l&1024)!==0){if(l=e.stateNode.containerInfo,t=l.nodeType,t===9)$c(l);else if(t===1)switch(l.nodeName){case"HEAD":case"HTML":case"BODY":$c(l);break;default:l.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((l&1024)!==0)throw Error(h(163))}if(l=e.sibling,l!==null){l.return=e.return,Vl=l;break}Vl=e.return}}function er(l,e,t){var a=t.flags;switch(t.tag){case 0:case 11:case 15:We(l,t),a&4&&cn(5,t);break;case 1:if(We(l,t),a&4)if(l=t.stateNode,e===null)try{l.componentDidMount()}catch(i){ml(t,t.return,i)}else{var n=Vt(t.type,e.memoizedProps);e=e.memoizedState;try{l.componentDidUpdate(n,e,l.__reactInternalSnapshotBeforeUpdate)}catch(i){ml(t,t.return,i)}}a&64&&Fo(t),a&512&&fn(t,t.return);break;case 3:if(We(l,t),a&64&&(l=t.updateQueue,l!==null)){if(e=null,t.child!==null)switch(t.child.tag){case 27:case 5:e=t.child.stateNode;break;case 1:e=t.child.stateNode}try{Gs(l,e)}catch(i){ml(t,t.return,i)}}break;case 27:e===null&&a&4&&Po(t);case 26:case 5:We(l,t),e===null&&a&4&&$o(t),a&512&&fn(t,t.return);break;case 12:We(l,t);break;case 31:We(l,t),a&4&&nr(l,t);break;case 13:We(l,t),a&4&&ur(l,t),a&64&&(l=t.memoizedState,l!==null&&(l=l.dehydrated,l!==null&&(t=vh.bind(null,t),Bh(l,t))));break;case 22:if(a=t.memoizedState!==null||we,!a){e=e!==null&&e.memoizedState!==null||Xl,n=we;var u=Xl;we=a,(Xl=e)&&!u?$e(l,t,(t.subtreeFlags&8772)!==0):We(l,t),we=n,Xl=u}break;case 30:break;default:We(l,t)}}function tr(l){var e=l.alternate;e!==null&&(l.alternate=null,tr(e)),l.child=null,l.deletions=null,l.sibling=null,l.tag===5&&(e=l.stateNode,e!==null&&ti(e)),l.stateNode=null,l.return=null,l.dependencies=null,l.memoizedProps=null,l.memoizedState=null,l.pendingProps=null,l.stateNode=null,l.updateQueue=null}var jl=null,ne=!1;function Fe(l,e,t){for(t=t.child;t!==null;)ar(l,e,t),t=t.sibling}function ar(l,e,t){if(re&&typeof re.onCommitFiberUnmount=="function")try{re.onCommitFiberUnmount(Na,t)}catch{}switch(t.tag){case 26:Xl||He(t,e),Fe(l,e,t),t.memoizedState?t.memoizedState.count--:t.stateNode&&(t=t.stateNode,t.parentNode.removeChild(t));break;case 27:Xl||He(t,e);var a=jl,n=ne;xt(t.type)&&(jl=t.stateNode,ne=!1),Fe(l,e,t),gn(t.stateNode),jl=a,ne=n;break;case 5:Xl||He(t,e);case 6:if(a=jl,n=ne,jl=null,Fe(l,e,t),jl=a,ne=n,jl!==null)if(ne)try{(jl.nodeType===9?jl.body:jl.nodeName==="HTML"?jl.ownerDocument.body:jl).removeChild(t.stateNode)}catch(u){ml(t,e,u)}else try{jl.removeChild(t.stateNode)}catch(u){ml(t,e,u)}break;case 18:jl!==null&&(ne?(l=jl,Fr(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,t.stateNode),Oa(l)):Fr(jl,t.stateNode));break;case 4:a=jl,n=ne,jl=t.stateNode.containerInfo,ne=!0,Fe(l,e,t),jl=a,ne=n;break;case 0:case 11:case 14:case 15:ht(2,t,e),Xl||ht(4,t,e),Fe(l,e,t);break;case 1:Xl||(He(t,e),a=t.stateNode,typeof a.componentWillUnmount=="function"&&Wo(t,e,a)),Fe(l,e,t);break;case 21:Fe(l,e,t);break;case 22:Xl=(a=Xl)||t.memoizedState!==null,Fe(l,e,t),Xl=a;break;default:Fe(l,e,t)}}function nr(l,e){if(e.memoizedState===null&&(l=e.alternate,l!==null&&(l=l.memoizedState,l!==null))){l=l.dehydrated;try{Oa(l)}catch(t){ml(e,e.return,t)}}}function ur(l,e){if(e.memoizedState===null&&(l=e.alternate,l!==null&&(l=l.memoizedState,l!==null&&(l=l.dehydrated,l!==null))))try{Oa(l)}catch(t){ml(e,e.return,t)}}function fh(l){switch(l.tag){case 31:case 13:case 19:var e=l.stateNode;return e===null&&(e=l.stateNode=new lr),e;case 22:return l=l.stateNode,e=l._retryCache,e===null&&(e=l._retryCache=new lr),e;default:throw Error(h(435,l.tag))}}function bu(l,e){var t=fh(l);e.forEach(function(a){if(!t.has(a)){t.add(a);var n=gh.bind(null,l,a);a.then(n,n)}})}function ue(l,e){var t=e.deletions;if(t!==null)for(var a=0;a<t.length;a++){var n=t[a],u=l,i=e,f=i;l:for(;f!==null;){switch(f.tag){case 27:if(xt(f.type)){jl=f.stateNode,ne=!1;break l}break;case 5:jl=f.stateNode,ne=!1;break l;case 3:case 4:jl=f.stateNode.containerInfo,ne=!0;break l}f=f.return}if(jl===null)throw Error(h(160));ar(u,i,n),jl=null,ne=!1,u=n.alternate,u!==null&&(u.return=null),n.return=null}if(e.subtreeFlags&13886)for(e=e.child;e!==null;)ir(e,l),e=e.sibling}var Ne=null;function ir(l,e){var t=l.alternate,a=l.flags;switch(l.tag){case 0:case 11:case 14:case 15:ue(e,l),ie(l),a&4&&(ht(3,l,l.return),cn(3,l),ht(5,l,l.return));break;case 1:ue(e,l),ie(l),a&512&&(Xl||t===null||He(t,t.return)),a&64&&we&&(l=l.updateQueue,l!==null&&(a=l.callbacks,a!==null&&(t=l.shared.hiddenCallbacks,l.shared.hiddenCallbacks=t===null?a:t.concat(a))));break;case 26:var n=Ne;if(ue(e,l),ie(l),a&512&&(Xl||t===null||He(t,t.return)),a&4){var u=t!==null?t.memoizedState:null;if(a=l.memoizedState,t===null)if(a===null)if(l.stateNode===null){l:{a=l.type,t=l.memoizedProps,n=n.ownerDocument||n;e:switch(a){case"title":u=n.getElementsByTagName("title")[0],(!u||u[Ra]||u[Kl]||u.namespaceURI==="http://www.w3.org/2000/svg"||u.hasAttribute("itemprop"))&&(u=n.createElement(a),n.head.insertBefore(u,n.querySelector("head > title"))),Fl(u,a,t),u[Kl]=l,Zl(u),a=u;break l;case"link":var i=id("link","href",n).get(a+(t.href||""));if(i){for(var f=0;f<i.length;f++)if(u=i[f],u.getAttribute("href")===(t.href==null||t.href===""?null:t.href)&&u.getAttribute("rel")===(t.rel==null?null:t.rel)&&u.getAttribute("title")===(t.title==null?null:t.title)&&u.getAttribute("crossorigin")===(t.crossOrigin==null?null:t.crossOrigin)){i.splice(f,1);break e}}u=n.createElement(a),Fl(u,a,t),n.head.appendChild(u);break;case"meta":if(i=id("meta","content",n).get(a+(t.content||""))){for(f=0;f<i.length;f++)if(u=i[f],u.getAttribute("content")===(t.content==null?null:""+t.content)&&u.getAttribute("name")===(t.name==null?null:t.name)&&u.getAttribute("property")===(t.property==null?null:t.property)&&u.getAttribute("http-equiv")===(t.httpEquiv==null?null:t.httpEquiv)&&u.getAttribute("charset")===(t.charSet==null?null:t.charSet)){i.splice(f,1);break e}}u=n.createElement(a),Fl(u,a,t),n.head.appendChild(u);break;default:throw Error(h(468,a))}u[Kl]=l,Zl(u),a=u}l.stateNode=a}else cd(n,l.type,l.stateNode);else l.stateNode=ud(n,a,l.memoizedProps);else u!==a?(u===null?t.stateNode!==null&&(t=t.stateNode,t.parentNode.removeChild(t)):u.count--,a===null?cd(n,l.type,l.stateNode):ud(n,a,l.memoizedProps)):a===null&&l.stateNode!==null&&Ac(l,l.memoizedProps,t.memoizedProps)}break;case 27:ue(e,l),ie(l),a&512&&(Xl||t===null||He(t,t.return)),t!==null&&a&4&&Ac(l,l.memoizedProps,t.memoizedProps);break;case 5:if(ue(e,l),ie(l),a&512&&(Xl||t===null||He(t,t.return)),l.flags&32){n=l.stateNode;try{It(n,"")}catch(H){ml(l,l.return,H)}}a&4&&l.stateNode!=null&&(n=l.memoizedProps,Ac(l,n,t!==null?t.memoizedProps:n)),a&1024&&(Ec=!0);break;case 6:if(ue(e,l),ie(l),a&4){if(l.stateNode===null)throw Error(h(162));a=l.memoizedProps,t=l.stateNode;try{t.nodeValue=a}catch(H){ml(l,l.return,H)}}break;case 3:if(Hu=null,n=Ne,Ne=Uu(e.containerInfo),ue(e,l),Ne=n,ie(l),a&4&&t!==null&&t.memoizedState.isDehydrated)try{Oa(e.containerInfo)}catch(H){ml(l,l.return,H)}Ec&&(Ec=!1,cr(l));break;case 4:a=Ne,Ne=Uu(l.stateNode.containerInfo),ue(e,l),ie(l),Ne=a;break;case 12:ue(e,l),ie(l);break;case 31:ue(e,l),ie(l),a&4&&(a=l.updateQueue,a!==null&&(l.updateQueue=null,bu(l,a)));break;case 13:ue(e,l),ie(l),l.child.flags&8192&&l.memoizedState!==null!=(t!==null&&t.memoizedState!==null)&&(xu=oe()),a&4&&(a=l.updateQueue,a!==null&&(l.updateQueue=null,bu(l,a)));break;case 22:n=l.memoizedState!==null;var o=t!==null&&t.memoizedState!==null,v=we,S=Xl;if(we=v||n,Xl=S||o,ue(e,l),Xl=S,we=v,ie(l),a&8192)l:for(e=l.stateNode,e._visibility=n?e._visibility&-2:e._visibility|1,n&&(t===null||o||we||Xl||Lt(l)),t=null,e=l;;){if(e.tag===5||e.tag===26){if(t===null){o=t=e;try{if(u=o.stateNode,n)i=u.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none";else{f=o.stateNode;var z=o.memoizedProps.style,g=z!=null&&z.hasOwnProperty("display")?z.display:null;f.style.display=g==null||typeof g=="boolean"?"":(""+g).trim()}}catch(H){ml(o,o.return,H)}}}else if(e.tag===6){if(t===null){o=e;try{o.stateNode.nodeValue=n?"":o.memoizedProps}catch(H){ml(o,o.return,H)}}}else if(e.tag===18){if(t===null){o=e;try{var p=o.stateNode;n?Wr(p,!0):Wr(o.stateNode,!1)}catch(H){ml(o,o.return,H)}}}else if((e.tag!==22&&e.tag!==23||e.memoizedState===null||e===l)&&e.child!==null){e.child.return=e,e=e.child;continue}if(e===l)break l;for(;e.sibling===null;){if(e.return===null||e.return===l)break l;t===e&&(t=null),e=e.return}t===e&&(t=null),e.sibling.return=e.return,e=e.sibling}a&4&&(a=l.updateQueue,a!==null&&(t=a.retryQueue,t!==null&&(a.retryQueue=null,bu(l,t))));break;case 19:ue(e,l),ie(l),a&4&&(a=l.updateQueue,a!==null&&(l.updateQueue=null,bu(l,a)));break;case 30:break;case 21:break;default:ue(e,l),ie(l)}}function ie(l){var e=l.flags;if(e&2){try{for(var t,a=l.return;a!==null;){if(Io(a)){t=a;break}a=a.return}if(t==null)throw Error(h(160));switch(t.tag){case 27:var n=t.stateNode,u=zc(l);pu(l,u,n);break;case 5:var i=t.stateNode;t.flags&32&&(It(i,""),t.flags&=-33);var f=zc(l);pu(l,f,i);break;case 3:case 4:var o=t.stateNode.containerInfo,v=zc(l);jc(l,v,o);break;default:throw Error(h(161))}}catch(S){ml(l,l.return,S)}l.flags&=-3}e&4096&&(l.flags&=-4097)}function cr(l){if(l.subtreeFlags&1024)for(l=l.child;l!==null;){var e=l;cr(e),e.tag===5&&e.flags&1024&&e.stateNode.reset(),l=l.sibling}}function We(l,e){if(e.subtreeFlags&8772)for(e=e.child;e!==null;)er(l,e.alternate,e),e=e.sibling}function Lt(l){for(l=l.child;l!==null;){var e=l;switch(e.tag){case 0:case 11:case 14:case 15:ht(4,e,e.return),Lt(e);break;case 1:He(e,e.return);var t=e.stateNode;typeof t.componentWillUnmount=="function"&&Wo(e,e.return,t),Lt(e);break;case 27:gn(e.stateNode);case 26:case 5:He(e,e.return),Lt(e);break;case 22:e.memoizedState===null&&Lt(e);break;case 30:Lt(e);break;default:Lt(e)}l=l.sibling}}function $e(l,e,t){for(t=t&&(e.subtreeFlags&8772)!==0,e=e.child;e!==null;){var a=e.alternate,n=l,u=e,i=u.flags;switch(u.tag){case 0:case 11:case 15:$e(n,u,t),cn(4,u);break;case 1:if($e(n,u,t),a=u,n=a.stateNode,typeof n.componentDidMount=="function")try{n.componentDidMount()}catch(v){ml(a,a.return,v)}if(a=u,n=a.updateQueue,n!==null){var f=a.stateNode;try{var o=n.shared.hiddenCallbacks;if(o!==null)for(n.shared.hiddenCallbacks=null,n=0;n<o.length;n++)qs(o[n],f)}catch(v){ml(a,a.return,v)}}t&&i&64&&Fo(u),fn(u,u.return);break;case 27:Po(u);case 26:case 5:$e(n,u,t),t&&a===null&&i&4&&$o(u),fn(u,u.return);break;case 12:$e(n,u,t);break;case 31:$e(n,u,t),t&&i&4&&nr(n,u);break;case 13:$e(n,u,t),t&&i&4&&ur(n,u);break;case 22:u.memoizedState===null&&$e(n,u,t),fn(u,u.return);break;case 30:break;default:$e(n,u,t)}e=e.sibling}}function Mc(l,e){var t=null;l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(t=l.memoizedState.cachePool.pool),l=null,e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),l!==t&&(l!=null&&l.refCount++,t!=null&&ka(t))}function Cc(l,e){l=null,e.alternate!==null&&(l=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==l&&(e.refCount++,l!=null&&ka(l))}function De(l,e,t,a){if(e.subtreeFlags&10256)for(e=e.child;e!==null;)fr(l,e,t,a),e=e.sibling}function fr(l,e,t,a){var n=e.flags;switch(e.tag){case 0:case 11:case 15:De(l,e,t,a),n&2048&&cn(9,e);break;case 1:De(l,e,t,a);break;case 3:De(l,e,t,a),n&2048&&(l=null,e.alternate!==null&&(l=e.alternate.memoizedState.cache),e=e.memoizedState.cache,e!==l&&(e.refCount++,l!=null&&ka(l)));break;case 12:if(n&2048){De(l,e,t,a),l=e.stateNode;try{var u=e.memoizedProps,i=u.id,f=u.onPostCommit;typeof f=="function"&&f(i,e.alternate===null?"mount":"update",l.passiveEffectDuration,-0)}catch(o){ml(e,e.return,o)}}else De(l,e,t,a);break;case 31:De(l,e,t,a);break;case 13:De(l,e,t,a);break;case 23:break;case 22:u=e.stateNode,i=e.alternate,e.memoizedState!==null?u._visibility&2?De(l,e,t,a):sn(l,e):u._visibility&2?De(l,e,t,a):(u._visibility|=2,pa(l,e,t,a,(e.subtreeFlags&10256)!==0||!1)),n&2048&&Mc(i,e);break;case 24:De(l,e,t,a),n&2048&&Cc(e.alternate,e);break;default:De(l,e,t,a)}}function pa(l,e,t,a,n){for(n=n&&((e.subtreeFlags&10256)!==0||!1),e=e.child;e!==null;){var u=l,i=e,f=t,o=a,v=i.flags;switch(i.tag){case 0:case 11:case 15:pa(u,i,f,o,n),cn(8,i);break;case 23:break;case 22:var S=i.stateNode;i.memoizedState!==null?S._visibility&2?pa(u,i,f,o,n):sn(u,i):(S._visibility|=2,pa(u,i,f,o,n)),n&&v&2048&&Mc(i.alternate,i);break;case 24:pa(u,i,f,o,n),n&&v&2048&&Cc(i.alternate,i);break;default:pa(u,i,f,o,n)}e=e.sibling}}function sn(l,e){if(e.subtreeFlags&10256)for(e=e.child;e!==null;){var t=l,a=e,n=a.flags;switch(a.tag){case 22:sn(t,a),n&2048&&Mc(a.alternate,a);break;case 24:sn(t,a),n&2048&&Cc(a.alternate,a);break;default:sn(t,a)}e=e.sibling}}var on=8192;function ba(l,e,t){if(l.subtreeFlags&on)for(l=l.child;l!==null;)sr(l,e,t),l=l.sibling}function sr(l,e,t){switch(l.tag){case 26:ba(l,e,t),l.flags&on&&l.memoizedState!==null&&wh(t,Ne,l.memoizedState,l.memoizedProps);break;case 5:ba(l,e,t);break;case 3:case 4:var a=Ne;Ne=Uu(l.stateNode.containerInfo),ba(l,e,t),Ne=a;break;case 22:l.memoizedState===null&&(a=l.alternate,a!==null&&a.memoizedState!==null?(a=on,on=16777216,ba(l,e,t),on=a):ba(l,e,t));break;default:ba(l,e,t)}}function or(l){var e=l.alternate;if(e!==null&&(l=e.child,l!==null)){e.child=null;do e=l.sibling,l.sibling=null,l=e;while(l!==null)}}function rn(l){var e=l.deletions;if((l.flags&16)!==0){if(e!==null)for(var t=0;t<e.length;t++){var a=e[t];Vl=a,dr(a,l)}or(l)}if(l.subtreeFlags&10256)for(l=l.child;l!==null;)rr(l),l=l.sibling}function rr(l){switch(l.tag){case 0:case 11:case 15:rn(l),l.flags&2048&&ht(9,l,l.return);break;case 3:rn(l);break;case 12:rn(l);break;case 22:var e=l.stateNode;l.memoizedState!==null&&e._visibility&2&&(l.return===null||l.return.tag!==13)?(e._visibility&=-3,Su(l)):rn(l);break;default:rn(l)}}function Su(l){var e=l.deletions;if((l.flags&16)!==0){if(e!==null)for(var t=0;t<e.length;t++){var a=e[t];Vl=a,dr(a,l)}or(l)}for(l=l.child;l!==null;){switch(e=l,e.tag){case 0:case 11:case 15:ht(8,e,e.return),Su(e);break;case 22:t=e.stateNode,t._visibility&2&&(t._visibility&=-3,Su(e));break;default:Su(e)}l=l.sibling}}function dr(l,e){for(;Vl!==null;){var t=Vl;switch(t.tag){case 0:case 11:case 15:ht(8,t,e);break;case 23:case 22:if(t.memoizedState!==null&&t.memoizedState.cachePool!==null){var a=t.memoizedState.cachePool.pool;a!=null&&a.refCount++}break;case 24:ka(t.memoizedState.cache)}if(a=t.child,a!==null)a.return=t,Vl=a;else l:for(t=l;Vl!==null;){a=Vl;var n=a.sibling,u=a.return;if(tr(a),a===t){Vl=null;break l}if(n!==null){n.return=u,Vl=n;break l}Vl=u}}}var sh={getCacheForType:function(l){var e=kl(ql),t=e.data.get(l);return t===void 0&&(t=l(),e.data.set(l,t)),t},cacheSignal:function(){return kl(ql).controller.signal}},oh=typeof WeakMap=="function"?WeakMap:Map,ol=0,bl=null,P=null,el=0,dl=0,ge=null,yt=!1,Sa=!1,Oc=!1,Ie=0,Nl=0,vt=0,Kt=0,_c=0,pe=0,xa=0,dn=null,ce=null,Nc=!1,xu=0,mr=0,Tu=1/0,Au=null,gt=null,Ql=0,pt=null,Ta=null,Pe=0,Dc=0,Uc=null,hr=null,mn=0,Rc=null;function be(){return(ol&2)!==0&&el!==0?el&-el:x.T!==null?Xc():Of()}function yr(){if(pe===0)if((el&536870912)===0||al){var l=Nn;Nn<<=1,(Nn&3932160)===0&&(Nn=262144),pe=l}else pe=536870912;return l=ye.current,l!==null&&(l.flags|=32),pe}function fe(l,e,t){(l===bl&&(dl===2||dl===9)||l.cancelPendingCommit!==null)&&(Aa(l,0),bt(l,el,pe,!1)),Ua(l,t),((ol&2)===0||l!==bl)&&(l===bl&&((ol&2)===0&&(Kt|=t),Nl===4&&bt(l,el,pe,!1)),Be(l))}function vr(l,e,t){if((ol&6)!==0)throw Error(h(327));var a=!t&&(e&127)===0&&(e&l.expiredLanes)===0||Da(l,e),n=a?mh(l,e):Bc(l,e,!0),u=a;do{if(n===0){Sa&&!a&&bt(l,e,0,!1);break}else{if(t=l.current.alternate,u&&!rh(t)){n=Bc(l,e,!1),u=!1;continue}if(n===2){if(u=e,l.errorRecoveryDisabledLanes&u)var i=0;else i=l.pendingLanes&-536870913,i=i!==0?i:i&536870912?536870912:0;if(i!==0){e=i;l:{var f=l;n=dn;var o=f.current.memoizedState.isDehydrated;if(o&&(Aa(f,i).flags|=256),i=Bc(f,i,!1),i!==2){if(Oc&&!o){f.errorRecoveryDisabledLanes|=u,Kt|=u,n=4;break l}u=ce,ce=n,u!==null&&(ce===null?ce=u:ce.push.apply(ce,u))}n=i}if(u=!1,n!==2)continue}}if(n===1){Aa(l,0),bt(l,e,0,!0);break}l:{switch(a=l,u=n,u){case 0:case 1:throw Error(h(345));case 4:if((e&4194048)!==e)break;case 6:bt(a,e,pe,!yt);break l;case 2:ce=null;break;case 3:case 5:break;default:throw Error(h(329))}if((e&62914560)===e&&(n=xu+300-oe(),10<n)){if(bt(a,e,pe,!yt),Un(a,0,!0)!==0)break l;Pe=e,a.timeoutHandle=kr(gr.bind(null,a,t,ce,Au,Nc,e,pe,Kt,xa,yt,u,"Throttled",-0,0),n);break l}gr(a,t,ce,Au,Nc,e,pe,Kt,xa,yt,u,null,-0,0)}}break}while(!0);Be(l)}function gr(l,e,t,a,n,u,i,f,o,v,S,z,g,p){if(l.timeoutHandle=-1,z=e.subtreeFlags,z&8192||(z&16785408)===16785408){z={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:Ge},sr(e,u,z);var H=(u&62914560)===u?xu-oe():(u&4194048)===u?mr-oe():0;if(H=Fh(z,H),H!==null){Pe=u,l.cancelPendingCommit=H(jr.bind(null,l,e,u,t,a,n,i,f,o,S,z,null,g,p)),bt(l,u,i,!v);return}}jr(l,e,u,t,a,n,i,f,o)}function rh(l){for(var e=l;;){var t=e.tag;if((t===0||t===11||t===15)&&e.flags&16384&&(t=e.updateQueue,t!==null&&(t=t.stores,t!==null)))for(var a=0;a<t.length;a++){var n=t[a],u=n.getSnapshot;n=n.value;try{if(!me(u(),n))return!1}catch{return!1}}if(t=e.child,e.subtreeFlags&16384&&t!==null)t.return=e,e=t;else{if(e===l)break;for(;e.sibling===null;){if(e.return===null||e.return===l)return!0;e=e.return}e.sibling.return=e.return,e=e.sibling}}return!0}function bt(l,e,t,a){e&=~_c,e&=~Kt,l.suspendedLanes|=e,l.pingedLanes&=~e,a&&(l.warmLanes|=e),a=l.expirationTimes;for(var n=e;0<n;){var u=31-de(n),i=1<<u;a[u]=-1,n&=~i}t!==0&&Ef(l,t,e)}function zu(){return(ol&6)===0?(hn(0),!1):!0}function Hc(){if(P!==null){if(dl===0)var l=P.return;else l=P,Ze=Bt=null,$i(l),ma=null,Fa=0,l=P;for(;l!==null;)wo(l.alternate,l),l=l.return;P=null}}function Aa(l,e){var t=l.timeoutHandle;t!==-1&&(l.timeoutHandle=-1,Nh(t)),t=l.cancelPendingCommit,t!==null&&(l.cancelPendingCommit=null,t()),Pe=0,Hc(),bl=l,P=t=Xe(l.current,null),el=e,dl=0,ge=null,yt=!1,Sa=Da(l,e),Oc=!1,xa=pe=_c=Kt=vt=Nl=0,ce=dn=null,Nc=!1,(e&8)!==0&&(e|=e&32);var a=l.entangledLanes;if(a!==0)for(l=l.entanglements,a&=e;0<a;){var n=31-de(a),u=1<<n;e|=l[n],a&=~u}return Ie=e,Kn(),t}function pr(l,e){W=null,x.H=an,e===da||e===Pn?(e=Us(),dl=3):e===Yi?(e=Us(),dl=4):dl=e===mc?8:e!==null&&typeof e=="object"&&typeof e.then=="function"?6:1,ge=e,P===null&&(Nl=1,mu(l,Ae(e,l.current)))}function br(){var l=ye.current;return l===null?!0:(el&4194048)===el?Me===null:(el&62914560)===el||(el&536870912)!==0?l===Me:!1}function Sr(){var l=x.H;return x.H=an,l===null?an:l}function xr(){var l=x.A;return x.A=sh,l}function ju(){Nl=4,yt||(el&4194048)!==el&&ye.current!==null||(Sa=!0),(vt&134217727)===0&&(Kt&134217727)===0||bl===null||bt(bl,el,pe,!1)}function Bc(l,e,t){var a=ol;ol|=2;var n=Sr(),u=xr();(bl!==l||el!==e)&&(Au=null,Aa(l,e)),e=!1;var i=Nl;l:do try{if(dl!==0&&P!==null){var f=P,o=ge;switch(dl){case 8:Hc(),i=6;break l;case 3:case 2:case 9:case 6:ye.current===null&&(e=!0);var v=dl;if(dl=0,ge=null,za(l,f,o,v),t&&Sa){i=0;break l}break;default:v=dl,dl=0,ge=null,za(l,f,o,v)}}dh(),i=Nl;break}catch(S){pr(l,S)}while(!0);return e&&l.shellSuspendCounter++,Ze=Bt=null,ol=a,x.H=n,x.A=u,P===null&&(bl=null,el=0,Kn()),i}function dh(){for(;P!==null;)Tr(P)}function mh(l,e){var t=ol;ol|=2;var a=Sr(),n=xr();bl!==l||el!==e?(Au=null,Tu=oe()+500,Aa(l,e)):Sa=Da(l,e);l:do try{if(dl!==0&&P!==null){e=P;var u=ge;e:switch(dl){case 1:dl=0,ge=null,za(l,e,u,1);break;case 2:case 9:if(Ns(u)){dl=0,ge=null,Ar(e);break}e=function(){dl!==2&&dl!==9||bl!==l||(dl=7),Be(l)},u.then(e,e);break l;case 3:dl=7;break l;case 4:dl=5;break l;case 7:Ns(u)?(dl=0,ge=null,Ar(e)):(dl=0,ge=null,za(l,e,u,7));break;case 5:var i=null;switch(P.tag){case 26:i=P.memoizedState;case 5:case 27:var f=P;if(i?fd(i):f.stateNode.complete){dl=0,ge=null;var o=f.sibling;if(o!==null)P=o;else{var v=f.return;v!==null?(P=v,Eu(v)):P=null}break e}}dl=0,ge=null,za(l,e,u,5);break;case 6:dl=0,ge=null,za(l,e,u,6);break;case 8:Hc(),Nl=6;break l;default:throw Error(h(462))}}hh();break}catch(S){pr(l,S)}while(!0);return Ze=Bt=null,x.H=a,x.A=n,ol=t,P!==null?0:(bl=null,el=0,Kn(),Nl)}function hh(){for(;P!==null&&!qd();)Tr(P)}function Tr(l){var e=Jo(l.alternate,l,Ie);l.memoizedProps=l.pendingProps,e===null?Eu(l):P=e}function Ar(l){var e=l,t=e.alternate;switch(e.tag){case 15:case 0:e=Xo(t,e,e.pendingProps,e.type,void 0,el);break;case 11:e=Xo(t,e,e.pendingProps,e.type.render,e.ref,el);break;case 5:$i(e);default:wo(t,e),e=P=Ss(e,Ie),e=Jo(t,e,Ie)}l.memoizedProps=l.pendingProps,e===null?Eu(l):P=e}function za(l,e,t,a){Ze=Bt=null,$i(e),ma=null,Fa=0;var n=e.return;try{if(th(l,n,e,t,el)){Nl=1,mu(l,Ae(t,l.current)),P=null;return}}catch(u){if(n!==null)throw P=n,u;Nl=1,mu(l,Ae(t,l.current)),P=null;return}e.flags&32768?(al||a===1?l=!0:Sa||(el&536870912)!==0?l=!1:(yt=l=!0,(a===2||a===9||a===3||a===6)&&(a=ye.current,a!==null&&a.tag===13&&(a.flags|=16384))),zr(e,l)):Eu(e)}function Eu(l){var e=l;do{if((e.flags&32768)!==0){zr(e,yt);return}l=e.return;var t=uh(e.alternate,e,Ie);if(t!==null){P=t;return}if(e=e.sibling,e!==null){P=e;return}P=e=l}while(e!==null);Nl===0&&(Nl=5)}function zr(l,e){do{var t=ih(l.alternate,l);if(t!==null){t.flags&=32767,P=t;return}if(t=l.return,t!==null&&(t.flags|=32768,t.subtreeFlags=0,t.deletions=null),!e&&(l=l.sibling,l!==null)){P=l;return}P=l=t}while(l!==null);Nl=6,P=null}function jr(l,e,t,a,n,u,i,f,o){l.cancelPendingCommit=null;do Mu();while(Ql!==0);if((ol&6)!==0)throw Error(h(327));if(e!==null){if(e===l.current)throw Error(h(177));if(u=e.lanes|e.childLanes,u|=zi,kd(l,t,u,i,f,o),l===bl&&(P=bl=null,el=0),Ta=e,pt=l,Pe=t,Dc=u,Uc=n,hr=a,(e.subtreeFlags&10256)!==0||(e.flags&10256)!==0?(l.callbackNode=null,l.callbackPriority=0,ph(On,function(){return _r(),null})):(l.callbackNode=null,l.callbackPriority=0),a=(e.flags&13878)!==0,(e.subtreeFlags&13878)!==0||a){a=x.T,x.T=null,n=O.p,O.p=2,i=ol,ol|=4;try{ch(l,e,t)}finally{ol=i,O.p=n,x.T=a}}Ql=1,Er(),Mr(),Cr()}}function Er(){if(Ql===1){Ql=0;var l=pt,e=Ta,t=(e.flags&13878)!==0;if((e.subtreeFlags&13878)!==0||t){t=x.T,x.T=null;var a=O.p;O.p=2;var n=ol;ol|=4;try{ir(e,l);var u=wc,i=rs(l.containerInfo),f=u.focusedElem,o=u.selectionRange;if(i!==f&&f&&f.ownerDocument&&os(f.ownerDocument.documentElement,f)){if(o!==null&&bi(f)){var v=o.start,S=o.end;if(S===void 0&&(S=v),"selectionStart"in f)f.selectionStart=v,f.selectionEnd=Math.min(S,f.value.length);else{var z=f.ownerDocument||document,g=z&&z.defaultView||window;if(g.getSelection){var p=g.getSelection(),H=f.textContent.length,K=Math.min(o.start,H),vl=o.end===void 0?K:Math.min(o.end,H);!p.extend&&K>vl&&(i=vl,vl=K,K=i);var m=ss(f,K),d=ss(f,vl);if(m&&d&&(p.rangeCount!==1||p.anchorNode!==m.node||p.anchorOffset!==m.offset||p.focusNode!==d.node||p.focusOffset!==d.offset)){var y=z.createRange();y.setStart(m.node,m.offset),p.removeAllRanges(),K>vl?(p.addRange(y),p.extend(d.node,d.offset)):(y.setEnd(d.node,d.offset),p.addRange(y))}}}}for(z=[],p=f;p=p.parentNode;)p.nodeType===1&&z.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof f.focus=="function"&&f.focus(),f=0;f<z.length;f++){var A=z[f];A.element.scrollLeft=A.left,A.element.scrollTop=A.top}}Yu=!!kc,wc=kc=null}finally{ol=n,O.p=a,x.T=t}}l.current=e,Ql=2}}function Mr(){if(Ql===2){Ql=0;var l=pt,e=Ta,t=(e.flags&8772)!==0;if((e.subtreeFlags&8772)!==0||t){t=x.T,x.T=null;var a=O.p;O.p=2;var n=ol;ol|=4;try{er(l,e.alternate,e)}finally{ol=n,O.p=a,x.T=t}}Ql=3}}function Cr(){if(Ql===4||Ql===3){Ql=0,Gd();var l=pt,e=Ta,t=Pe,a=hr;(e.subtreeFlags&10256)!==0||(e.flags&10256)!==0?Ql=5:(Ql=0,Ta=pt=null,Or(l,l.pendingLanes));var n=l.pendingLanes;if(n===0&&(gt=null),li(t),e=e.stateNode,re&&typeof re.onCommitFiberRoot=="function")try{re.onCommitFiberRoot(Na,e,void 0,(e.current.flags&128)===128)}catch{}if(a!==null){e=x.T,n=O.p,O.p=2,x.T=null;try{for(var u=l.onRecoverableError,i=0;i<a.length;i++){var f=a[i];u(f.value,{componentStack:f.stack})}}finally{x.T=e,O.p=n}}(Pe&3)!==0&&Mu(),Be(l),n=l.pendingLanes,(t&261930)!==0&&(n&42)!==0?l===Rc?mn++:(mn=0,Rc=l):mn=0,hn(0)}}function Or(l,e){(l.pooledCacheLanes&=e)===0&&(e=l.pooledCache,e!=null&&(l.pooledCache=null,ka(e)))}function Mu(){return Er(),Mr(),Cr(),_r()}function _r(){if(Ql!==5)return!1;var l=pt,e=Dc;Dc=0;var t=li(Pe),a=x.T,n=O.p;try{O.p=32>t?32:t,x.T=null,t=Uc,Uc=null;var u=pt,i=Pe;if(Ql=0,Ta=pt=null,Pe=0,(ol&6)!==0)throw Error(h(331));var f=ol;if(ol|=4,rr(u.current),fr(u,u.current,i,t),ol=f,hn(0,!1),re&&typeof re.onPostCommitFiberRoot=="function")try{re.onPostCommitFiberRoot(Na,u)}catch{}return!0}finally{O.p=n,x.T=a,Or(l,e)}}function Nr(l,e,t){e=Ae(t,e),e=dc(l.stateNode,e,2),l=rt(l,e,2),l!==null&&(Ua(l,2),Be(l))}function ml(l,e,t){if(l.tag===3)Nr(l,l,t);else for(;e!==null;){if(e.tag===3){Nr(e,l,t);break}else if(e.tag===1){var a=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(gt===null||!gt.has(a))){l=Ae(t,l),t=Do(2),a=rt(e,t,2),a!==null&&(Uo(t,a,e,l),Ua(a,2),Be(a));break}}e=e.return}}function qc(l,e,t){var a=l.pingCache;if(a===null){a=l.pingCache=new oh;var n=new Set;a.set(e,n)}else n=a.get(e),n===void 0&&(n=new Set,a.set(e,n));n.has(t)||(Oc=!0,n.add(t),l=yh.bind(null,l,e,t),e.then(l,l))}function yh(l,e,t){var a=l.pingCache;a!==null&&a.delete(e),l.pingedLanes|=l.suspendedLanes&t,l.warmLanes&=~t,bl===l&&(el&t)===t&&(Nl===4||Nl===3&&(el&62914560)===el&&300>oe()-xu?(ol&2)===0&&Aa(l,0):_c|=t,xa===el&&(xa=0)),Be(l)}function Dr(l,e){e===0&&(e=jf()),l=Ut(l,e),l!==null&&(Ua(l,e),Be(l))}function vh(l){var e=l.memoizedState,t=0;e!==null&&(t=e.retryLane),Dr(l,t)}function gh(l,e){var t=0;switch(l.tag){case 31:case 13:var a=l.stateNode,n=l.memoizedState;n!==null&&(t=n.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(h(314))}a!==null&&a.delete(e),Dr(l,t)}function ph(l,e){return Wu(l,e)}var Cu=null,ja=null,Gc=!1,Ou=!1,Yc=!1,St=0;function Be(l){l!==ja&&l.next===null&&(ja===null?Cu=ja=l:ja=ja.next=l),Ou=!0,Gc||(Gc=!0,Sh())}function hn(l,e){if(!Yc&&Ou){Yc=!0;do for(var t=!1,a=Cu;a!==null;){if(l!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var i=a.suspendedLanes,f=a.pingedLanes;u=(1<<31-de(42|l)+1)-1,u&=n&~(i&~f),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(t=!0,Br(a,u))}else u=el,u=Un(a,a===bl?u:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(u&3)===0||Da(a,u)||(t=!0,Br(a,u));a=a.next}while(t);Yc=!1}}function bh(){Ur()}function Ur(){Ou=Gc=!1;var l=0;St!==0&&_h()&&(l=St);for(var e=oe(),t=null,a=Cu;a!==null;){var n=a.next,u=Rr(a,e);u===0?(a.next=null,t===null?Cu=n:t.next=n,n===null&&(ja=t)):(t=a,(l!==0||(u&3)!==0)&&(Ou=!0)),a=n}Ql!==0&&Ql!==5||hn(l),St!==0&&(St=0)}function Rr(l,e){for(var t=l.suspendedLanes,a=l.pingedLanes,n=l.expirationTimes,u=l.pendingLanes&-62914561;0<u;){var i=31-de(u),f=1<<i,o=n[i];o===-1?((f&t)===0||(f&a)!==0)&&(n[i]=Jd(f,e)):o<=e&&(l.expiredLanes|=f),u&=~f}if(e=bl,t=el,t=Un(l,l===e?t:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),a=l.callbackNode,t===0||l===e&&(dl===2||dl===9)||l.cancelPendingCommit!==null)return a!==null&&a!==null&&$u(a),l.callbackNode=null,l.callbackPriority=0;if((t&3)===0||Da(l,t)){if(e=t&-t,e===l.callbackPriority)return e;switch(a!==null&&$u(a),li(t)){case 2:case 8:t=Af;break;case 32:t=On;break;case 268435456:t=zf;break;default:t=On}return a=Hr.bind(null,l),t=Wu(t,a),l.callbackPriority=e,l.callbackNode=t,e}return a!==null&&a!==null&&$u(a),l.callbackPriority=2,l.callbackNode=null,2}function Hr(l,e){if(Ql!==0&&Ql!==5)return l.callbackNode=null,l.callbackPriority=0,null;var t=l.callbackNode;if(Mu()&&l.callbackNode!==t)return null;var a=el;return a=Un(l,l===bl?a:0,l.cancelPendingCommit!==null||l.timeoutHandle!==-1),a===0?null:(vr(l,a,e),Rr(l,oe()),l.callbackNode!=null&&l.callbackNode===t?Hr.bind(null,l):null)}function Br(l,e){if(Mu())return null;vr(l,e,!0)}function Sh(){Dh(function(){(ol&6)!==0?Wu(Tf,bh):Ur()})}function Xc(){if(St===0){var l=oa;l===0&&(l=_n,_n<<=1,(_n&261888)===0&&(_n=256)),St=l}return St}function qr(l){return l==null||typeof l=="symbol"||typeof l=="boolean"?null:typeof l=="function"?l:qn(""+l)}function Gr(l,e){var t=e.ownerDocument.createElement("input");return t.name=e.name,t.value=e.value,l.id&&t.setAttribute("form",l.id),e.parentNode.insertBefore(t,e),l=new FormData(l),t.parentNode.removeChild(t),l}function xh(l,e,t,a,n){if(e==="submit"&&t&&t.stateNode===n){var u=qr((n[te]||null).action),i=a.submitter;i&&(e=(e=i[te]||null)?qr(e.formAction):i.getAttribute("formAction"),e!==null&&(u=e,i=null));var f=new Qn("action","action",null,a,n);l.push({event:f,listeners:[{instance:null,listener:function(){if(a.defaultPrevented){if(St!==0){var o=i?Gr(n,i):new FormData(n);ic(t,{pending:!0,data:o,method:n.method,action:u},null,o)}}else typeof u=="function"&&(f.preventDefault(),o=i?Gr(n,i):new FormData(n),ic(t,{pending:!0,data:o,method:n.method,action:u},u,o))},currentTarget:n}]})}}for(var Qc=0;Qc<Ai.length;Qc++){var Zc=Ai[Qc],Th=Zc.toLowerCase(),Ah=Zc[0].toUpperCase()+Zc.slice(1);_e(Th,"on"+Ah)}_e(hs,"onAnimationEnd"),_e(ys,"onAnimationIteration"),_e(vs,"onAnimationStart"),_e("dblclick","onDoubleClick"),_e("focusin","onFocus"),_e("focusout","onBlur"),_e(Ym,"onTransitionRun"),_e(Xm,"onTransitionStart"),_e(Qm,"onTransitionCancel"),_e(gs,"onTransitionEnd"),Wt("onMouseEnter",["mouseout","mouseover"]),Wt("onMouseLeave",["mouseout","mouseover"]),Wt("onPointerEnter",["pointerout","pointerover"]),Wt("onPointerLeave",["pointerout","pointerover"]),Ot("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Ot("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Ot("onBeforeInput",["compositionend","keypress","textInput","paste"]),Ot("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Ot("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Ot("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var yn="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),zh=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(yn));function Yr(l,e){e=(e&4)!==0;for(var t=0;t<l.length;t++){var a=l[t],n=a.event;a=a.listeners;l:{var u=void 0;if(e)for(var i=a.length-1;0<=i;i--){var f=a[i],o=f.instance,v=f.currentTarget;if(f=f.listener,o!==u&&n.isPropagationStopped())break l;u=f,n.currentTarget=v;try{u(n)}catch(S){Ln(S)}n.currentTarget=null,u=o}else for(i=0;i<a.length;i++){if(f=a[i],o=f.instance,v=f.currentTarget,f=f.listener,o!==u&&n.isPropagationStopped())break l;u=f,n.currentTarget=v;try{u(n)}catch(S){Ln(S)}n.currentTarget=null,u=o}}}}function ll(l,e){var t=e[ei];t===void 0&&(t=e[ei]=new Set);var a=l+"__bubble";t.has(a)||(Xr(e,l,2,!1),t.add(a))}function Vc(l,e,t){var a=0;e&&(a|=4),Xr(t,l,a,e)}var _u="_reactListening"+Math.random().toString(36).slice(2);function Lc(l){if(!l[_u]){l[_u]=!0,Df.forEach(function(t){t!=="selectionchange"&&(zh.has(t)||Vc(t,!1,l),Vc(t,!0,l))});var e=l.nodeType===9?l:l.ownerDocument;e===null||e[_u]||(e[_u]=!0,Vc("selectionchange",!1,e))}}function Xr(l,e,t,a){switch(yd(e)){case 2:var n=Ih;break;case 8:n=Ph;break;default:n=uf}t=n.bind(null,e,t,l),n=void 0,!oi||e!=="touchstart"&&e!=="touchmove"&&e!=="wheel"||(n=!0),a?n!==void 0?l.addEventListener(e,t,{capture:!0,passive:n}):l.addEventListener(e,t,!0):n!==void 0?l.addEventListener(e,t,{passive:n}):l.addEventListener(e,t,!1)}function Kc(l,e,t,a,n){var u=a;if((e&1)===0&&(e&2)===0&&a!==null)l:for(;;){if(a===null)return;var i=a.tag;if(i===3||i===4){var f=a.stateNode.containerInfo;if(f===n)break;if(i===4)for(i=a.return;i!==null;){var o=i.tag;if((o===3||o===4)&&i.stateNode.containerInfo===n)return;i=i.return}for(;f!==null;){if(i=kt(f),i===null)return;if(o=i.tag,o===5||o===6||o===26||o===27){a=u=i;continue l}f=f.parentNode}}a=a.return}Lf(function(){var v=u,S=fi(t),z=[];l:{var g=ps.get(l);if(g!==void 0){var p=Qn,H=l;switch(l){case"keypress":if(Yn(t)===0)break l;case"keydown":case"keyup":p=gm;break;case"focusin":H="focus",p=hi;break;case"focusout":H="blur",p=hi;break;case"beforeblur":case"afterblur":p=hi;break;case"click":if(t.button===2)break l;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":p=kf;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":p=um;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":p=Sm;break;case hs:case ys:case vs:p=fm;break;case gs:p=Tm;break;case"scroll":case"scrollend":p=am;break;case"wheel":p=zm;break;case"copy":case"cut":case"paste":p=om;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":p=Ff;break;case"toggle":case"beforetoggle":p=Em}var K=(e&4)!==0,vl=!K&&(l==="scroll"||l==="scrollend"),m=K?g!==null?g+"Capture":null:g;K=[];for(var d=v,y;d!==null;){var A=d;if(y=A.stateNode,A=A.tag,A!==5&&A!==26&&A!==27||y===null||m===null||(A=Ba(d,m),A!=null&&K.push(vn(d,A,y))),vl)break;d=d.return}0<K.length&&(g=new p(g,H,null,t,S),z.push({event:g,listeners:K}))}}if((e&7)===0){l:{if(g=l==="mouseover"||l==="pointerover",p=l==="mouseout"||l==="pointerout",g&&t!==ci&&(H=t.relatedTarget||t.fromElement)&&(kt(H)||H[Jt]))break l;if((p||g)&&(g=S.window===S?S:(g=S.ownerDocument)?g.defaultView||g.parentWindow:window,p?(H=t.relatedTarget||t.toElement,p=v,H=H?kt(H):null,H!==null&&(vl=q(H),K=H.tag,H!==vl||K!==5&&K!==27&&K!==6)&&(H=null)):(p=null,H=v),p!==H)){if(K=kf,A="onMouseLeave",m="onMouseEnter",d="mouse",(l==="pointerout"||l==="pointerover")&&(K=Ff,A="onPointerLeave",m="onPointerEnter",d="pointer"),vl=p==null?g:Ha(p),y=H==null?g:Ha(H),g=new K(A,d+"leave",p,t,S),g.target=vl,g.relatedTarget=y,A=null,kt(S)===v&&(K=new K(m,d+"enter",H,t,S),K.target=y,K.relatedTarget=vl,A=K),vl=A,p&&H)e:{for(K=jh,m=p,d=H,y=0,A=m;A;A=K(A))y++;A=0;for(var Q=d;Q;Q=K(Q))A++;for(;0<y-A;)m=K(m),y--;for(;0<A-y;)d=K(d),A--;for(;y--;){if(m===d||d!==null&&m===d.alternate){K=m;break e}m=K(m),d=K(d)}K=null}else K=null;p!==null&&Qr(z,g,p,K,!1),H!==null&&vl!==null&&Qr(z,vl,H,K,!0)}}l:{if(g=v?Ha(v):window,p=g.nodeName&&g.nodeName.toLowerCase(),p==="select"||p==="input"&&g.type==="file")var fl=as;else if(es(g))if(ns)fl=Bm;else{fl=Rm;var Y=Um}else p=g.nodeName,!p||p.toLowerCase()!=="input"||g.type!=="checkbox"&&g.type!=="radio"?v&&ii(v.elementType)&&(fl=as):fl=Hm;if(fl&&(fl=fl(l,v))){ts(z,fl,t,S);break l}Y&&Y(l,g,v),l==="focusout"&&v&&g.type==="number"&&v.memoizedProps.value!=null&&ui(g,"number",g.value)}switch(Y=v?Ha(v):window,l){case"focusin":(es(Y)||Y.contentEditable==="true")&&(ta=Y,Si=v,La=null);break;case"focusout":La=Si=ta=null;break;case"mousedown":xi=!0;break;case"contextmenu":case"mouseup":case"dragend":xi=!1,ds(z,t,S);break;case"selectionchange":if(Gm)break;case"keydown":case"keyup":ds(z,t,S)}var $;if(vi)l:{switch(l){case"compositionstart":var tl="onCompositionStart";break l;case"compositionend":tl="onCompositionEnd";break l;case"compositionupdate":tl="onCompositionUpdate";break l}tl=void 0}else ea?Pf(l,t)&&(tl="onCompositionEnd"):l==="keydown"&&t.keyCode===229&&(tl="onCompositionStart");tl&&(Wf&&t.locale!=="ko"&&(ea||tl!=="onCompositionStart"?tl==="onCompositionEnd"&&ea&&($=Kf()):(nt=S,ri="value"in nt?nt.value:nt.textContent,ea=!0)),Y=Nu(v,tl),0<Y.length&&(tl=new wf(tl,l,null,t,S),z.push({event:tl,listeners:Y}),$?tl.data=$:($=ls(t),$!==null&&(tl.data=$)))),($=Cm?Om(l,t):_m(l,t))&&(tl=Nu(v,"onBeforeInput"),0<tl.length&&(Y=new wf("onBeforeInput","beforeinput",null,t,S),z.push({event:Y,listeners:tl}),Y.data=$)),xh(z,l,v,t,S)}Yr(z,e)})}function vn(l,e,t){return{instance:l,listener:e,currentTarget:t}}function Nu(l,e){for(var t=e+"Capture",a=[];l!==null;){var n=l,u=n.stateNode;if(n=n.tag,n!==5&&n!==26&&n!==27||u===null||(n=Ba(l,t),n!=null&&a.unshift(vn(l,n,u)),n=Ba(l,e),n!=null&&a.push(vn(l,n,u))),l.tag===3)return a;l=l.return}return[]}function jh(l){if(l===null)return null;do l=l.return;while(l&&l.tag!==5&&l.tag!==27);return l||null}function Qr(l,e,t,a,n){for(var u=e._reactName,i=[];t!==null&&t!==a;){var f=t,o=f.alternate,v=f.stateNode;if(f=f.tag,o!==null&&o===a)break;f!==5&&f!==26&&f!==27||v===null||(o=v,n?(v=Ba(t,u),v!=null&&i.unshift(vn(t,v,o))):n||(v=Ba(t,u),v!=null&&i.push(vn(t,v,o)))),t=t.return}i.length!==0&&l.push({event:e,listeners:i})}var Eh=/\r\n?/g,Mh=/\u0000|\uFFFD/g;function Zr(l){return(typeof l=="string"?l:""+l).replace(Eh,`
|
|
49
|
+
`).replace(Mh,"")}function Vr(l,e){return e=Zr(e),Zr(l)===e}function yl(l,e,t,a,n,u){switch(t){case"children":typeof a=="string"?e==="body"||e==="textarea"&&a===""||It(l,a):(typeof a=="number"||typeof a=="bigint")&&e!=="body"&&It(l,""+a);break;case"className":Hn(l,"class",a);break;case"tabIndex":Hn(l,"tabindex",a);break;case"dir":case"role":case"viewBox":case"width":case"height":Hn(l,t,a);break;case"style":Zf(l,a,u);break;case"data":if(e!=="object"){Hn(l,"data",a);break}case"src":case"href":if(a===""&&(e!=="a"||t!=="href")){l.removeAttribute(t);break}if(a==null||typeof a=="function"||typeof a=="symbol"||typeof a=="boolean"){l.removeAttribute(t);break}a=qn(""+a),l.setAttribute(t,a);break;case"action":case"formAction":if(typeof a=="function"){l.setAttribute(t,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof u=="function"&&(t==="formAction"?(e!=="input"&&yl(l,e,"name",n.name,n,null),yl(l,e,"formEncType",n.formEncType,n,null),yl(l,e,"formMethod",n.formMethod,n,null),yl(l,e,"formTarget",n.formTarget,n,null)):(yl(l,e,"encType",n.encType,n,null),yl(l,e,"method",n.method,n,null),yl(l,e,"target",n.target,n,null)));if(a==null||typeof a=="symbol"||typeof a=="boolean"){l.removeAttribute(t);break}a=qn(""+a),l.setAttribute(t,a);break;case"onClick":a!=null&&(l.onclick=Ge);break;case"onScroll":a!=null&&ll("scroll",l);break;case"onScrollEnd":a!=null&&ll("scrollend",l);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(h(61));if(t=a.__html,t!=null){if(n.children!=null)throw Error(h(60));l.innerHTML=t}}break;case"multiple":l.multiple=a&&typeof a!="function"&&typeof a!="symbol";break;case"muted":l.muted=a&&typeof a!="function"&&typeof a!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(a==null||typeof a=="function"||typeof a=="boolean"||typeof a=="symbol"){l.removeAttribute("xlink:href");break}t=qn(""+a),l.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",t);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":a!=null&&typeof a!="function"&&typeof a!="symbol"?l.setAttribute(t,""+a):l.removeAttribute(t);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":a&&typeof a!="function"&&typeof a!="symbol"?l.setAttribute(t,""):l.removeAttribute(t);break;case"capture":case"download":a===!0?l.setAttribute(t,""):a!==!1&&a!=null&&typeof a!="function"&&typeof a!="symbol"?l.setAttribute(t,a):l.removeAttribute(t);break;case"cols":case"rows":case"size":case"span":a!=null&&typeof a!="function"&&typeof a!="symbol"&&!isNaN(a)&&1<=a?l.setAttribute(t,a):l.removeAttribute(t);break;case"rowSpan":case"start":a==null||typeof a=="function"||typeof a=="symbol"||isNaN(a)?l.removeAttribute(t):l.setAttribute(t,a);break;case"popover":ll("beforetoggle",l),ll("toggle",l),Rn(l,"popover",a);break;case"xlinkActuate":qe(l,"http://www.w3.org/1999/xlink","xlink:actuate",a);break;case"xlinkArcrole":qe(l,"http://www.w3.org/1999/xlink","xlink:arcrole",a);break;case"xlinkRole":qe(l,"http://www.w3.org/1999/xlink","xlink:role",a);break;case"xlinkShow":qe(l,"http://www.w3.org/1999/xlink","xlink:show",a);break;case"xlinkTitle":qe(l,"http://www.w3.org/1999/xlink","xlink:title",a);break;case"xlinkType":qe(l,"http://www.w3.org/1999/xlink","xlink:type",a);break;case"xmlBase":qe(l,"http://www.w3.org/XML/1998/namespace","xml:base",a);break;case"xmlLang":qe(l,"http://www.w3.org/XML/1998/namespace","xml:lang",a);break;case"xmlSpace":qe(l,"http://www.w3.org/XML/1998/namespace","xml:space",a);break;case"is":Rn(l,"is",a);break;case"innerText":case"textContent":break;default:(!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(t=em.get(t)||t,Rn(l,t,a))}}function Jc(l,e,t,a,n,u){switch(t){case"style":Zf(l,a,u);break;case"dangerouslySetInnerHTML":if(a!=null){if(typeof a!="object"||!("__html"in a))throw Error(h(61));if(t=a.__html,t!=null){if(n.children!=null)throw Error(h(60));l.innerHTML=t}}break;case"children":typeof a=="string"?It(l,a):(typeof a=="number"||typeof a=="bigint")&&It(l,""+a);break;case"onScroll":a!=null&&ll("scroll",l);break;case"onScrollEnd":a!=null&&ll("scrollend",l);break;case"onClick":a!=null&&(l.onclick=Ge);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!Uf.hasOwnProperty(t))l:{if(t[0]==="o"&&t[1]==="n"&&(n=t.endsWith("Capture"),e=t.slice(2,n?t.length-7:void 0),u=l[te]||null,u=u!=null?u[t]:null,typeof u=="function"&&l.removeEventListener(e,u,n),typeof a=="function")){typeof u!="function"&&u!==null&&(t in l?l[t]=null:l.hasAttribute(t)&&l.removeAttribute(t)),l.addEventListener(e,a,n);break l}t in l?l[t]=a:a===!0?l.setAttribute(t,""):Rn(l,t,a)}}}function Fl(l,e,t){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":ll("error",l),ll("load",l);var a=!1,n=!1,u;for(u in t)if(t.hasOwnProperty(u)){var i=t[u];if(i!=null)switch(u){case"src":a=!0;break;case"srcSet":n=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(h(137,e));default:yl(l,e,u,i,t,null)}}n&&yl(l,e,"srcSet",t.srcSet,t,null),a&&yl(l,e,"src",t.src,t,null);return;case"input":ll("invalid",l);var f=u=i=n=null,o=null,v=null;for(a in t)if(t.hasOwnProperty(a)){var S=t[a];if(S!=null)switch(a){case"name":n=S;break;case"type":i=S;break;case"checked":o=S;break;case"defaultChecked":v=S;break;case"value":u=S;break;case"defaultValue":f=S;break;case"children":case"dangerouslySetInnerHTML":if(S!=null)throw Error(h(137,e));break;default:yl(l,e,a,S,t,null)}}Gf(l,u,f,o,v,i,n,!1);return;case"select":ll("invalid",l),a=i=u=null;for(n in t)if(t.hasOwnProperty(n)&&(f=t[n],f!=null))switch(n){case"value":u=f;break;case"defaultValue":i=f;break;case"multiple":a=f;default:yl(l,e,n,f,t,null)}e=u,t=i,l.multiple=!!a,e!=null?$t(l,!!a,e,!1):t!=null&&$t(l,!!a,t,!0);return;case"textarea":ll("invalid",l),u=n=a=null;for(i in t)if(t.hasOwnProperty(i)&&(f=t[i],f!=null))switch(i){case"value":a=f;break;case"defaultValue":n=f;break;case"children":u=f;break;case"dangerouslySetInnerHTML":if(f!=null)throw Error(h(91));break;default:yl(l,e,i,f,t,null)}Xf(l,a,n,u);return;case"option":for(o in t)if(t.hasOwnProperty(o)&&(a=t[o],a!=null))switch(o){case"selected":l.selected=a&&typeof a!="function"&&typeof a!="symbol";break;default:yl(l,e,o,a,t,null)}return;case"dialog":ll("beforetoggle",l),ll("toggle",l),ll("cancel",l),ll("close",l);break;case"iframe":case"object":ll("load",l);break;case"video":case"audio":for(a=0;a<yn.length;a++)ll(yn[a],l);break;case"image":ll("error",l),ll("load",l);break;case"details":ll("toggle",l);break;case"embed":case"source":case"link":ll("error",l),ll("load",l);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for(v in t)if(t.hasOwnProperty(v)&&(a=t[v],a!=null))switch(v){case"children":case"dangerouslySetInnerHTML":throw Error(h(137,e));default:yl(l,e,v,a,t,null)}return;default:if(ii(e)){for(S in t)t.hasOwnProperty(S)&&(a=t[S],a!==void 0&&Jc(l,e,S,a,t,void 0));return}}for(f in t)t.hasOwnProperty(f)&&(a=t[f],a!=null&&yl(l,e,f,a,t,null))}function Ch(l,e,t,a){switch(e){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var n=null,u=null,i=null,f=null,o=null,v=null,S=null;for(p in t){var z=t[p];if(t.hasOwnProperty(p)&&z!=null)switch(p){case"checked":break;case"value":break;case"defaultValue":o=z;default:a.hasOwnProperty(p)||yl(l,e,p,null,a,z)}}for(var g in a){var p=a[g];if(z=t[g],a.hasOwnProperty(g)&&(p!=null||z!=null))switch(g){case"type":u=p;break;case"name":n=p;break;case"checked":v=p;break;case"defaultChecked":S=p;break;case"value":i=p;break;case"defaultValue":f=p;break;case"children":case"dangerouslySetInnerHTML":if(p!=null)throw Error(h(137,e));break;default:p!==z&&yl(l,e,g,p,a,z)}}ni(l,i,f,o,v,S,u,n);return;case"select":p=i=f=g=null;for(u in t)if(o=t[u],t.hasOwnProperty(u)&&o!=null)switch(u){case"value":break;case"multiple":p=o;default:a.hasOwnProperty(u)||yl(l,e,u,null,a,o)}for(n in a)if(u=a[n],o=t[n],a.hasOwnProperty(n)&&(u!=null||o!=null))switch(n){case"value":g=u;break;case"defaultValue":f=u;break;case"multiple":i=u;default:u!==o&&yl(l,e,n,u,a,o)}e=f,t=i,a=p,g!=null?$t(l,!!t,g,!1):!!a!=!!t&&(e!=null?$t(l,!!t,e,!0):$t(l,!!t,t?[]:"",!1));return;case"textarea":p=g=null;for(f in t)if(n=t[f],t.hasOwnProperty(f)&&n!=null&&!a.hasOwnProperty(f))switch(f){case"value":break;case"children":break;default:yl(l,e,f,null,a,n)}for(i in a)if(n=a[i],u=t[i],a.hasOwnProperty(i)&&(n!=null||u!=null))switch(i){case"value":g=n;break;case"defaultValue":p=n;break;case"children":break;case"dangerouslySetInnerHTML":if(n!=null)throw Error(h(91));break;default:n!==u&&yl(l,e,i,n,a,u)}Yf(l,g,p);return;case"option":for(var H in t)if(g=t[H],t.hasOwnProperty(H)&&g!=null&&!a.hasOwnProperty(H))switch(H){case"selected":l.selected=!1;break;default:yl(l,e,H,null,a,g)}for(o in a)if(g=a[o],p=t[o],a.hasOwnProperty(o)&&g!==p&&(g!=null||p!=null))switch(o){case"selected":l.selected=g&&typeof g!="function"&&typeof g!="symbol";break;default:yl(l,e,o,g,a,p)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var K in t)g=t[K],t.hasOwnProperty(K)&&g!=null&&!a.hasOwnProperty(K)&&yl(l,e,K,null,a,g);for(v in a)if(g=a[v],p=t[v],a.hasOwnProperty(v)&&g!==p&&(g!=null||p!=null))switch(v){case"children":case"dangerouslySetInnerHTML":if(g!=null)throw Error(h(137,e));break;default:yl(l,e,v,g,a,p)}return;default:if(ii(e)){for(var vl in t)g=t[vl],t.hasOwnProperty(vl)&&g!==void 0&&!a.hasOwnProperty(vl)&&Jc(l,e,vl,void 0,a,g);for(S in a)g=a[S],p=t[S],!a.hasOwnProperty(S)||g===p||g===void 0&&p===void 0||Jc(l,e,S,g,a,p);return}}for(var m in t)g=t[m],t.hasOwnProperty(m)&&g!=null&&!a.hasOwnProperty(m)&&yl(l,e,m,null,a,g);for(z in a)g=a[z],p=t[z],!a.hasOwnProperty(z)||g===p||g==null&&p==null||yl(l,e,z,g,a,p)}function Lr(l){switch(l){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Oh(){if(typeof performance.getEntriesByType=="function"){for(var l=0,e=0,t=performance.getEntriesByType("resource"),a=0;a<t.length;a++){var n=t[a],u=n.transferSize,i=n.initiatorType,f=n.duration;if(u&&f&&Lr(i)){for(i=0,f=n.responseEnd,a+=1;a<t.length;a++){var o=t[a],v=o.startTime;if(v>f)break;var S=o.transferSize,z=o.initiatorType;S&&Lr(z)&&(o=o.responseEnd,i+=S*(o<f?1:(f-v)/(o-v)))}if(--a,e+=8*(u+i)/(n.duration/1e3),l++,10<l)break}}if(0<l)return e/l/1e6}return navigator.connection&&(l=navigator.connection.downlink,typeof l=="number")?l:5}var kc=null,wc=null;function Du(l){return l.nodeType===9?l:l.ownerDocument}function Kr(l){switch(l){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function Jr(l,e){if(l===0)switch(e){case"svg":return 1;case"math":return 2;default:return 0}return l===1&&e==="foreignObject"?0:l}function Fc(l,e){return l==="textarea"||l==="noscript"||typeof e.children=="string"||typeof e.children=="number"||typeof e.children=="bigint"||typeof e.dangerouslySetInnerHTML=="object"&&e.dangerouslySetInnerHTML!==null&&e.dangerouslySetInnerHTML.__html!=null}var Wc=null;function _h(){var l=window.event;return l&&l.type==="popstate"?l===Wc?!1:(Wc=l,!0):(Wc=null,!1)}var kr=typeof setTimeout=="function"?setTimeout:void 0,Nh=typeof clearTimeout=="function"?clearTimeout:void 0,wr=typeof Promise=="function"?Promise:void 0,Dh=typeof queueMicrotask=="function"?queueMicrotask:typeof wr<"u"?function(l){return wr.resolve(null).then(l).catch(Uh)}:kr;function Uh(l){setTimeout(function(){throw l})}function xt(l){return l==="head"}function Fr(l,e){var t=e,a=0;do{var n=t.nextSibling;if(l.removeChild(t),n&&n.nodeType===8)if(t=n.data,t==="/$"||t==="/&"){if(a===0){l.removeChild(n),Oa(e);return}a--}else if(t==="$"||t==="$?"||t==="$~"||t==="$!"||t==="&")a++;else if(t==="html")gn(l.ownerDocument.documentElement);else if(t==="head"){t=l.ownerDocument.head,gn(t);for(var u=t.firstChild;u;){var i=u.nextSibling,f=u.nodeName;u[Ra]||f==="SCRIPT"||f==="STYLE"||f==="LINK"&&u.rel.toLowerCase()==="stylesheet"||t.removeChild(u),u=i}}else t==="body"&&gn(l.ownerDocument.body);t=n}while(t);Oa(e)}function Wr(l,e){var t=l;l=0;do{var a=t.nextSibling;if(t.nodeType===1?e?(t._stashedDisplay=t.style.display,t.style.display="none"):(t.style.display=t._stashedDisplay||"",t.getAttribute("style")===""&&t.removeAttribute("style")):t.nodeType===3&&(e?(t._stashedText=t.nodeValue,t.nodeValue=""):t.nodeValue=t._stashedText||""),a&&a.nodeType===8)if(t=a.data,t==="/$"){if(l===0)break;l--}else t!=="$"&&t!=="$?"&&t!=="$~"&&t!=="$!"||l++;t=a}while(t)}function $c(l){var e=l.firstChild;for(e&&e.nodeType===10&&(e=e.nextSibling);e;){var t=e;switch(e=e.nextSibling,t.nodeName){case"HTML":case"HEAD":case"BODY":$c(t),ti(t);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(t.rel.toLowerCase()==="stylesheet")continue}l.removeChild(t)}}function Rh(l,e,t,a){for(;l.nodeType===1;){var n=t;if(l.nodeName.toLowerCase()!==e.toLowerCase()){if(!a&&(l.nodeName!=="INPUT"||l.type!=="hidden"))break}else if(a){if(!l[Ra])switch(e){case"meta":if(!l.hasAttribute("itemprop"))break;return l;case"link":if(u=l.getAttribute("rel"),u==="stylesheet"&&l.hasAttribute("data-precedence"))break;if(u!==n.rel||l.getAttribute("href")!==(n.href==null||n.href===""?null:n.href)||l.getAttribute("crossorigin")!==(n.crossOrigin==null?null:n.crossOrigin)||l.getAttribute("title")!==(n.title==null?null:n.title))break;return l;case"style":if(l.hasAttribute("data-precedence"))break;return l;case"script":if(u=l.getAttribute("src"),(u!==(n.src==null?null:n.src)||l.getAttribute("type")!==(n.type==null?null:n.type)||l.getAttribute("crossorigin")!==(n.crossOrigin==null?null:n.crossOrigin))&&u&&l.hasAttribute("async")&&!l.hasAttribute("itemprop"))break;return l;default:return l}}else if(e==="input"&&l.type==="hidden"){var u=n.name==null?null:""+n.name;if(n.type==="hidden"&&l.getAttribute("name")===u)return l}else return l;if(l=Ce(l.nextSibling),l===null)break}return null}function Hh(l,e,t){if(e==="")return null;for(;l.nodeType!==3;)if((l.nodeType!==1||l.nodeName!=="INPUT"||l.type!=="hidden")&&!t||(l=Ce(l.nextSibling),l===null))return null;return l}function $r(l,e){for(;l.nodeType!==8;)if((l.nodeType!==1||l.nodeName!=="INPUT"||l.type!=="hidden")&&!e||(l=Ce(l.nextSibling),l===null))return null;return l}function Ic(l){return l.data==="$?"||l.data==="$~"}function Pc(l){return l.data==="$!"||l.data==="$?"&&l.ownerDocument.readyState!=="loading"}function Bh(l,e){var t=l.ownerDocument;if(l.data==="$~")l._reactRetry=e;else if(l.data!=="$?"||t.readyState!=="loading")e();else{var a=function(){e(),t.removeEventListener("DOMContentLoaded",a)};t.addEventListener("DOMContentLoaded",a),l._reactRetry=a}}function Ce(l){for(;l!=null;l=l.nextSibling){var e=l.nodeType;if(e===1||e===3)break;if(e===8){if(e=l.data,e==="$"||e==="$!"||e==="$?"||e==="$~"||e==="&"||e==="F!"||e==="F")break;if(e==="/$"||e==="/&")return null}}return l}var lf=null;function Ir(l){l=l.nextSibling;for(var e=0;l;){if(l.nodeType===8){var t=l.data;if(t==="/$"||t==="/&"){if(e===0)return Ce(l.nextSibling);e--}else t!=="$"&&t!=="$!"&&t!=="$?"&&t!=="$~"&&t!=="&"||e++}l=l.nextSibling}return null}function Pr(l){l=l.previousSibling;for(var e=0;l;){if(l.nodeType===8){var t=l.data;if(t==="$"||t==="$!"||t==="$?"||t==="$~"||t==="&"){if(e===0)return l;e--}else t!=="/$"&&t!=="/&"||e++}l=l.previousSibling}return null}function ld(l,e,t){switch(e=Du(t),l){case"html":if(l=e.documentElement,!l)throw Error(h(452));return l;case"head":if(l=e.head,!l)throw Error(h(453));return l;case"body":if(l=e.body,!l)throw Error(h(454));return l;default:throw Error(h(451))}}function gn(l){for(var e=l.attributes;e.length;)l.removeAttributeNode(e[0]);ti(l)}var Oe=new Map,ed=new Set;function Uu(l){return typeof l.getRootNode=="function"?l.getRootNode():l.nodeType===9?l:l.ownerDocument}var lt=O.d;O.d={f:qh,r:Gh,D:Yh,C:Xh,L:Qh,m:Zh,X:Lh,S:Vh,M:Kh};function qh(){var l=lt.f(),e=zu();return l||e}function Gh(l){var e=wt(l);e!==null&&e.tag===5&&e.type==="form"?po(e):lt.r(l)}var Ea=typeof document>"u"?null:document;function td(l,e,t){var a=Ea;if(a&&typeof e=="string"&&e){var n=xe(e);n='link[rel="'+l+'"][href="'+n+'"]',typeof t=="string"&&(n+='[crossorigin="'+t+'"]'),ed.has(n)||(ed.add(n),l={rel:l,crossOrigin:t,href:e},a.querySelector(n)===null&&(e=a.createElement("link"),Fl(e,"link",l),Zl(e),a.head.appendChild(e)))}}function Yh(l){lt.D(l),td("dns-prefetch",l,null)}function Xh(l,e){lt.C(l,e),td("preconnect",l,e)}function Qh(l,e,t){lt.L(l,e,t);var a=Ea;if(a&&l&&e){var n='link[rel="preload"][as="'+xe(e)+'"]';e==="image"&&t&&t.imageSrcSet?(n+='[imagesrcset="'+xe(t.imageSrcSet)+'"]',typeof t.imageSizes=="string"&&(n+='[imagesizes="'+xe(t.imageSizes)+'"]')):n+='[href="'+xe(l)+'"]';var u=n;switch(e){case"style":u=Ma(l);break;case"script":u=Ca(l)}Oe.has(u)||(l=B({rel:"preload",href:e==="image"&&t&&t.imageSrcSet?void 0:l,as:e},t),Oe.set(u,l),a.querySelector(n)!==null||e==="style"&&a.querySelector(pn(u))||e==="script"&&a.querySelector(bn(u))||(e=a.createElement("link"),Fl(e,"link",l),Zl(e),a.head.appendChild(e)))}}function Zh(l,e){lt.m(l,e);var t=Ea;if(t&&l){var a=e&&typeof e.as=="string"?e.as:"script",n='link[rel="modulepreload"][as="'+xe(a)+'"][href="'+xe(l)+'"]',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=Ca(l)}if(!Oe.has(u)&&(l=B({rel:"modulepreload",href:l},e),Oe.set(u,l),t.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(t.querySelector(bn(u)))return}a=t.createElement("link"),Fl(a,"link",l),Zl(a),t.head.appendChild(a)}}}function Vh(l,e,t){lt.S(l,e,t);var a=Ea;if(a&&l){var n=Ft(a).hoistableStyles,u=Ma(l);e=e||"default";var i=n.get(u);if(!i){var f={loading:0,preload:null};if(i=a.querySelector(pn(u)))f.loading=5;else{l=B({rel:"stylesheet",href:l,"data-precedence":e},t),(t=Oe.get(u))&&ef(l,t);var o=i=a.createElement("link");Zl(o),Fl(o,"link",l),o._p=new Promise(function(v,S){o.onload=v,o.onerror=S}),o.addEventListener("load",function(){f.loading|=1}),o.addEventListener("error",function(){f.loading|=2}),f.loading|=4,Ru(i,e,a)}i={type:"stylesheet",instance:i,count:1,state:f},n.set(u,i)}}}function Lh(l,e){lt.X(l,e);var t=Ea;if(t&&l){var a=Ft(t).hoistableScripts,n=Ca(l),u=a.get(n);u||(u=t.querySelector(bn(n)),u||(l=B({src:l,async:!0},e),(e=Oe.get(n))&&tf(l,e),u=t.createElement("script"),Zl(u),Fl(u,"link",l),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Kh(l,e){lt.M(l,e);var t=Ea;if(t&&l){var a=Ft(t).hoistableScripts,n=Ca(l),u=a.get(n);u||(u=t.querySelector(bn(n)),u||(l=B({src:l,async:!0,type:"module"},e),(e=Oe.get(n))&&tf(l,e),u=t.createElement("script"),Zl(u),Fl(u,"link",l),t.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function ad(l,e,t,a){var n=(n=I.current)?Uu(n):null;if(!n)throw Error(h(446));switch(l){case"meta":case"title":return null;case"style":return typeof t.precedence=="string"&&typeof t.href=="string"?(e=Ma(t.href),t=Ft(n).hoistableStyles,a=t.get(e),a||(a={type:"style",instance:null,count:0,state:null},t.set(e,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(t.rel==="stylesheet"&&typeof t.href=="string"&&typeof t.precedence=="string"){l=Ma(t.href);var u=Ft(n).hoistableStyles,i=u.get(l);if(i||(n=n.ownerDocument||n,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},u.set(l,i),(u=n.querySelector(pn(l)))&&!u._p&&(i.instance=u,i.state.loading=5),Oe.has(l)||(t={rel:"preload",as:"style",href:t.href,crossOrigin:t.crossOrigin,integrity:t.integrity,media:t.media,hrefLang:t.hrefLang,referrerPolicy:t.referrerPolicy},Oe.set(l,t),u||Jh(n,l,t,i.state))),e&&a===null)throw Error(h(528,""));return i}if(e&&a!==null)throw Error(h(529,""));return null;case"script":return e=t.async,t=t.src,typeof t=="string"&&e&&typeof e!="function"&&typeof e!="symbol"?(e=Ca(t),t=Ft(n).hoistableScripts,a=t.get(e),a||(a={type:"script",instance:null,count:0,state:null},t.set(e,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(h(444,l))}}function Ma(l){return'href="'+xe(l)+'"'}function pn(l){return'link[rel="stylesheet"]['+l+"]"}function nd(l){return B({},l,{"data-precedence":l.precedence,precedence:null})}function Jh(l,e,t,a){l.querySelector('link[rel="preload"][as="style"]['+e+"]")?a.loading=1:(e=l.createElement("link"),a.preload=e,e.addEventListener("load",function(){return a.loading|=1}),e.addEventListener("error",function(){return a.loading|=2}),Fl(e,"link",t),Zl(e),l.head.appendChild(e))}function Ca(l){return'[src="'+xe(l)+'"]'}function bn(l){return"script[async]"+l}function ud(l,e,t){if(e.count++,e.instance===null)switch(e.type){case"style":var a=l.querySelector('style[data-href~="'+xe(t.href)+'"]');if(a)return e.instance=a,Zl(a),a;var n=B({},t,{"data-href":t.href,"data-precedence":t.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),Zl(a),Fl(a,"style",n),Ru(a,t.precedence,l),e.instance=a;case"stylesheet":n=Ma(t.href);var u=l.querySelector(pn(n));if(u)return e.state.loading|=4,e.instance=u,Zl(u),u;a=nd(t),(n=Oe.get(n))&&ef(a,n),u=(l.ownerDocument||l).createElement("link"),Zl(u);var i=u;return i._p=new Promise(function(f,o){i.onload=f,i.onerror=o}),Fl(u,"link",a),e.state.loading|=4,Ru(u,t.precedence,l),e.instance=u;case"script":return u=Ca(t.src),(n=l.querySelector(bn(u)))?(e.instance=n,Zl(n),n):(a=t,(n=Oe.get(u))&&(a=B({},t),tf(a,n)),l=l.ownerDocument||l,n=l.createElement("script"),Zl(n),Fl(n,"link",a),l.head.appendChild(n),e.instance=n);case"void":return null;default:throw Error(h(443,e.type))}else e.type==="stylesheet"&&(e.state.loading&4)===0&&(a=e.instance,e.state.loading|=4,Ru(a,t.precedence,l));return e.instance}function Ru(l,e,t){for(var a=t.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),n=a.length?a[a.length-1]:null,u=n,i=0;i<a.length;i++){var f=a[i];if(f.dataset.precedence===e)u=f;else if(u!==n)break}u?u.parentNode.insertBefore(l,u.nextSibling):(e=t.nodeType===9?t.head:t,e.insertBefore(l,e.firstChild))}function ef(l,e){l.crossOrigin==null&&(l.crossOrigin=e.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=e.referrerPolicy),l.title==null&&(l.title=e.title)}function tf(l,e){l.crossOrigin==null&&(l.crossOrigin=e.crossOrigin),l.referrerPolicy==null&&(l.referrerPolicy=e.referrerPolicy),l.integrity==null&&(l.integrity=e.integrity)}var Hu=null;function id(l,e,t){if(Hu===null){var a=new Map,n=Hu=new Map;n.set(t,a)}else n=Hu,a=n.get(t),a||(a=new Map,n.set(t,a));if(a.has(l))return a;for(a.set(l,null),t=t.getElementsByTagName(l),n=0;n<t.length;n++){var u=t[n];if(!(u[Ra]||u[Kl]||l==="link"&&u.getAttribute("rel")==="stylesheet")&&u.namespaceURI!=="http://www.w3.org/2000/svg"){var i=u.getAttribute(e)||"";i=l+i;var f=a.get(i);f?f.push(u):a.set(i,[u])}}return a}function cd(l,e,t){l=l.ownerDocument||l,l.head.insertBefore(t,e==="title"?l.querySelector("head > title"):null)}function kh(l,e,t){if(t===1||e.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof e.precedence!="string"||typeof e.href!="string"||e.href==="")break;return!0;case"link":if(typeof e.rel!="string"||typeof e.href!="string"||e.href===""||e.onLoad||e.onError)break;switch(e.rel){case"stylesheet":return l=e.disabled,typeof e.precedence=="string"&&l==null;default:return!0}case"script":if(e.async&&typeof e.async!="function"&&typeof e.async!="symbol"&&!e.onLoad&&!e.onError&&e.src&&typeof e.src=="string")return!0}return!1}function fd(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function wh(l,e,t,a){if(t.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(t.state.loading&4)===0){if(t.instance===null){var n=Ma(a.href),u=e.querySelector(pn(n));if(u){e=u._p,e!==null&&typeof e=="object"&&typeof e.then=="function"&&(l.count++,l=Bu.bind(l),e.then(l,l)),t.state.loading|=4,t.instance=u,Zl(u);return}u=e.ownerDocument||e,a=nd(a),(n=Oe.get(n))&&ef(a,n),u=u.createElement("link"),Zl(u);var i=u;i._p=new Promise(function(f,o){i.onload=f,i.onerror=o}),Fl(u,"link",a),t.instance=u}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(t,e),(e=t.state.preload)&&(t.state.loading&3)===0&&(l.count++,t=Bu.bind(l),e.addEventListener("load",t),e.addEventListener("error",t))}}var af=0;function Fh(l,e){return l.stylesheets&&l.count===0&&Gu(l,l.stylesheets),0<l.count||0<l.imgCount?function(t){var a=setTimeout(function(){if(l.stylesheets&&Gu(l,l.stylesheets),l.unsuspend){var u=l.unsuspend;l.unsuspend=null,u()}},6e4+e);0<l.imgBytes&&af===0&&(af=62500*Oh());var n=setTimeout(function(){if(l.waitingForImages=!1,l.count===0&&(l.stylesheets&&Gu(l,l.stylesheets),l.unsuspend)){var u=l.unsuspend;l.unsuspend=null,u()}},(l.imgBytes>af?50:800)+e);return l.unsuspend=t,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(n)}}:null}function Bu(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Gu(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var qu=null;function Gu(l,e){l.stylesheets=null,l.unsuspend!==null&&(l.count++,qu=new Map,e.forEach(Wh,l),qu=null,Bu.call(l))}function Wh(l,e){if(!(e.state.loading&4)){var t=qu.get(l);if(t)var a=t.get(null);else{t=new Map,qu.set(l,t);for(var n=l.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u<n.length;u++){var i=n[u];(i.nodeName==="LINK"||i.getAttribute("media")!=="not all")&&(t.set(i.dataset.precedence,i),a=i)}a&&t.set(null,a)}n=e.instance,i=n.getAttribute("data-precedence"),u=t.get(i)||a,u===a&&t.set(null,n),t.set(i,n),this.count++,a=Bu.bind(this),n.addEventListener("load",a),n.addEventListener("error",a),u?u.parentNode.insertBefore(n,u.nextSibling):(l=l.nodeType===9?l.head:l,l.insertBefore(n,l.firstChild)),e.state.loading|=4}}var Sn={$$typeof:Sl,Provider:null,Consumer:null,_currentValue:J,_currentValue2:J,_threadCount:0};function $h(l,e,t,a,n,u,i,f,o){this.tag=1,this.containerInfo=l,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=Iu(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Iu(0),this.hiddenUpdates=Iu(null),this.identifierPrefix=a,this.onUncaughtError=n,this.onCaughtError=u,this.onRecoverableError=i,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=o,this.incompleteTransitions=new Map}function sd(l,e,t,a,n,u,i,f,o,v,S,z){return l=new $h(l,e,t,i,o,v,S,z,f),e=1,u===!0&&(e|=24),u=he(3,null,null,e),l.current=u,u.stateNode=l,e=Bi(),e.refCount++,l.pooledCache=e,e.refCount++,u.memoizedState={element:a,isDehydrated:t,cache:e},Xi(u),l}function od(l){return l?(l=ua,l):ua}function rd(l,e,t,a,n,u){n=od(n),a.context===null?a.context=n:a.pendingContext=n,a=ot(e),a.payload={element:t},u=u===void 0?null:u,u!==null&&(a.callback=u),t=rt(l,a,e),t!==null&&(fe(t,l,e),$a(t,l,e))}function dd(l,e){if(l=l.memoizedState,l!==null&&l.dehydrated!==null){var t=l.retryLane;l.retryLane=t!==0&&t<e?t:e}}function nf(l,e){dd(l,e),(l=l.alternate)&&dd(l,e)}function md(l){if(l.tag===13||l.tag===31){var e=Ut(l,67108864);e!==null&&fe(e,l,67108864),nf(l,67108864)}}function hd(l){if(l.tag===13||l.tag===31){var e=be();e=Pu(e);var t=Ut(l,e);t!==null&&fe(t,l,e),nf(l,e)}}var Yu=!0;function Ih(l,e,t,a){var n=x.T;x.T=null;var u=O.p;try{O.p=2,uf(l,e,t,a)}finally{O.p=u,x.T=n}}function Ph(l,e,t,a){var n=x.T;x.T=null;var u=O.p;try{O.p=8,uf(l,e,t,a)}finally{O.p=u,x.T=n}}function uf(l,e,t,a){if(Yu){var n=cf(a);if(n===null)Kc(l,e,a,Xu,t),vd(l,a);else if(ey(n,l,e,t,a))a.stopPropagation();else if(vd(l,a),e&4&&-1<ly.indexOf(l)){for(;n!==null;){var u=wt(n);if(u!==null)switch(u.tag){case 3:if(u=u.stateNode,u.current.memoizedState.isDehydrated){var i=Ct(u.pendingLanes);if(i!==0){var f=u;for(f.pendingLanes|=2,f.entangledLanes|=2;i;){var o=1<<31-de(i);f.entanglements[1]|=o,i&=~o}Be(u),(ol&6)===0&&(Tu=oe()+500,hn(0))}}break;case 31:case 13:f=Ut(u,2),f!==null&&fe(f,u,2),zu(),nf(u,2)}if(u=cf(a),u===null&&Kc(l,e,a,Xu,t),u===n)break;n=u}n!==null&&a.stopPropagation()}else Kc(l,e,a,null,t)}}function cf(l){return l=fi(l),ff(l)}var Xu=null;function ff(l){if(Xu=null,l=kt(l),l!==null){var e=q(l);if(e===null)l=null;else{var t=e.tag;if(t===13){if(l=V(e),l!==null)return l;l=null}else if(t===31){if(l=U(e),l!==null)return l;l=null}else if(t===3){if(e.stateNode.current.memoizedState.isDehydrated)return e.tag===3?e.stateNode.containerInfo:null;l=null}else e!==l&&(l=null)}}return Xu=l,null}function yd(l){switch(l){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Yd()){case Tf:return 2;case Af:return 8;case On:case Xd:return 32;case zf:return 268435456;default:return 32}default:return 32}}var sf=!1,Tt=null,At=null,zt=null,xn=new Map,Tn=new Map,jt=[],ly="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function vd(l,e){switch(l){case"focusin":case"focusout":Tt=null;break;case"dragenter":case"dragleave":At=null;break;case"mouseover":case"mouseout":zt=null;break;case"pointerover":case"pointerout":xn.delete(e.pointerId);break;case"gotpointercapture":case"lostpointercapture":Tn.delete(e.pointerId)}}function An(l,e,t,a,n,u){return l===null||l.nativeEvent!==u?(l={blockedOn:e,domEventName:t,eventSystemFlags:a,nativeEvent:u,targetContainers:[n]},e!==null&&(e=wt(e),e!==null&&md(e)),l):(l.eventSystemFlags|=a,e=l.targetContainers,n!==null&&e.indexOf(n)===-1&&e.push(n),l)}function ey(l,e,t,a,n){switch(e){case"focusin":return Tt=An(Tt,l,e,t,a,n),!0;case"dragenter":return At=An(At,l,e,t,a,n),!0;case"mouseover":return zt=An(zt,l,e,t,a,n),!0;case"pointerover":var u=n.pointerId;return xn.set(u,An(xn.get(u)||null,l,e,t,a,n)),!0;case"gotpointercapture":return u=n.pointerId,Tn.set(u,An(Tn.get(u)||null,l,e,t,a,n)),!0}return!1}function gd(l){var e=kt(l.target);if(e!==null){var t=q(e);if(t!==null){if(e=t.tag,e===13){if(e=V(t),e!==null){l.blockedOn=e,_f(l.priority,function(){hd(t)});return}}else if(e===31){if(e=U(t),e!==null){l.blockedOn=e,_f(l.priority,function(){hd(t)});return}}else if(e===3&&t.stateNode.current.memoizedState.isDehydrated){l.blockedOn=t.tag===3?t.stateNode.containerInfo:null;return}}}l.blockedOn=null}function Qu(l){if(l.blockedOn!==null)return!1;for(var e=l.targetContainers;0<e.length;){var t=cf(l.nativeEvent);if(t===null){t=l.nativeEvent;var a=new t.constructor(t.type,t);ci=a,t.target.dispatchEvent(a),ci=null}else return e=wt(t),e!==null&&md(e),l.blockedOn=t,!1;e.shift()}return!0}function pd(l,e,t){Qu(l)&&t.delete(e)}function ty(){sf=!1,Tt!==null&&Qu(Tt)&&(Tt=null),At!==null&&Qu(At)&&(At=null),zt!==null&&Qu(zt)&&(zt=null),xn.forEach(pd),Tn.forEach(pd)}function Zu(l,e){l.blockedOn===e&&(l.blockedOn=null,sf||(sf=!0,r.unstable_scheduleCallback(r.unstable_NormalPriority,ty)))}var Vu=null;function bd(l){Vu!==l&&(Vu=l,r.unstable_scheduleCallback(r.unstable_NormalPriority,function(){Vu===l&&(Vu=null);for(var e=0;e<l.length;e+=3){var t=l[e],a=l[e+1],n=l[e+2];if(typeof a!="function"){if(ff(a||t)===null)continue;break}var u=wt(t);u!==null&&(l.splice(e,3),e-=3,ic(u,{pending:!0,data:n,method:t.method,action:a},a,n))}}))}function Oa(l){function e(o){return Zu(o,l)}Tt!==null&&Zu(Tt,l),At!==null&&Zu(At,l),zt!==null&&Zu(zt,l),xn.forEach(e),Tn.forEach(e);for(var t=0;t<jt.length;t++){var a=jt[t];a.blockedOn===l&&(a.blockedOn=null)}for(;0<jt.length&&(t=jt[0],t.blockedOn===null);)gd(t),t.blockedOn===null&&jt.shift();if(t=(l.ownerDocument||l).$$reactFormReplay,t!=null)for(a=0;a<t.length;a+=3){var n=t[a],u=t[a+1],i=n[te]||null;if(typeof u=="function")i||bd(t);else if(i){var f=null;if(u&&u.hasAttribute("formAction")){if(n=u,i=u[te]||null)f=i.formAction;else if(ff(n)!==null)continue}else f=i.action;typeof f=="function"?t[a+1]=f:(t.splice(a,3),a-=3),bd(t)}}}function Sd(){function l(u){u.canIntercept&&u.info==="react-transition"&&u.intercept({handler:function(){return new Promise(function(i){return n=i})},focusReset:"manual",scroll:"manual"})}function e(){n!==null&&(n(),n=null),a||setTimeout(t,20)}function t(){if(!a&&!navigation.transition){var u=navigation.currentEntry;u&&u.url!=null&&navigation.navigate(u.url,{state:u.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var a=!1,n=null;return navigation.addEventListener("navigate",l),navigation.addEventListener("navigatesuccess",e),navigation.addEventListener("navigateerror",e),setTimeout(t,100),function(){a=!0,navigation.removeEventListener("navigate",l),navigation.removeEventListener("navigatesuccess",e),navigation.removeEventListener("navigateerror",e),n!==null&&(n(),n=null)}}}function of(l){this._internalRoot=l}Lu.prototype.render=of.prototype.render=function(l){var e=this._internalRoot;if(e===null)throw Error(h(409));var t=e.current,a=be();rd(t,a,l,e,null,null)},Lu.prototype.unmount=of.prototype.unmount=function(){var l=this._internalRoot;if(l!==null){this._internalRoot=null;var e=l.containerInfo;rd(l.current,2,null,l,null,null),zu(),e[Jt]=null}};function Lu(l){this._internalRoot=l}Lu.prototype.unstable_scheduleHydration=function(l){if(l){var e=Of();l={blockedOn:null,target:l,priority:e};for(var t=0;t<jt.length&&e!==0&&e<jt[t].priority;t++);jt.splice(t,0,l),t===0&&gd(l)}};var xd=D.version;if(xd!=="19.2.4")throw Error(h(527,xd,"19.2.4"));O.findDOMNode=function(l){var e=l._reactInternals;if(e===void 0)throw typeof l.render=="function"?Error(h(188)):(l=Object.keys(l).join(","),Error(h(268,l)));return l=T(e),l=l!==null?k(l):null,l=l===null?null:l.stateNode,l};var ay={bundleType:0,version:"19.2.4",rendererPackageName:"react-dom",currentDispatcherRef:x,reconcilerVersion:"19.2.4"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Ku=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Ku.isDisabled&&Ku.supportsFiber)try{Na=Ku.inject(ay),re=Ku}catch{}}return jn.createRoot=function(l,e){if(!M(l))throw Error(h(299));var t=!1,a="",n=Co,u=Oo,i=_o;return e!=null&&(e.unstable_strictMode===!0&&(t=!0),e.identifierPrefix!==void 0&&(a=e.identifierPrefix),e.onUncaughtError!==void 0&&(n=e.onUncaughtError),e.onCaughtError!==void 0&&(u=e.onCaughtError),e.onRecoverableError!==void 0&&(i=e.onRecoverableError)),e=sd(l,1,!1,null,null,t,a,null,n,u,i,Sd),l[Jt]=e.current,Lc(l),new of(e)},jn.hydrateRoot=function(l,e,t){if(!M(l))throw Error(h(299));var a=!1,n="",u=Co,i=Oo,f=_o,o=null;return t!=null&&(t.unstable_strictMode===!0&&(a=!0),t.identifierPrefix!==void 0&&(n=t.identifierPrefix),t.onUncaughtError!==void 0&&(u=t.onUncaughtError),t.onCaughtError!==void 0&&(i=t.onCaughtError),t.onRecoverableError!==void 0&&(f=t.onRecoverableError),t.formState!==void 0&&(o=t.formState)),e=sd(l,1,!0,e,t??null,a,n,o,u,i,f,Sd),e.context=od(null),t=e.current,a=be(),a=Pu(a),n=ot(a),n.callback=null,rt(t,n,a),t=a,e.current.lanes=t,Ua(e,t),Be(e),l[Jt]=e.current,Lc(l),new Lu(e)},jn.version="19.2.4",jn}var Nd;function hy(){if(Nd)return mf.exports;Nd=1;function r(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(r)}catch(D){console.error(D)}}return r(),mf.exports=my(),mf.exports}var yy=hy();const vy=Hd(yy);function gy({state:r,update:D,onNext:X}){return c.jsxs("div",{children:[c.jsx("h1",{children:"Welcome"}),c.jsx("h2",{children:"Let's set up your personal assistant"}),c.jsx("label",{children:"Your Name"}),c.jsx("input",{type:"text",value:r.name,onChange:h=>D({name:h.target.value}),placeholder:"Jane Smith"}),c.jsx("label",{children:"Assistant Name"}),c.jsx("input",{type:"text",value:r.assistantName,onChange:h=>D({assistantName:h.target.value}),placeholder:"Atlas"}),c.jsx("label",{children:"Profile"}),c.jsxs("select",{value:r.profileType,onChange:h=>D({profileType:h.target.value}),children:[c.jsx("option",{value:"software-engineer",children:"Software Engineer"}),c.jsx("option",{value:"product-manager",children:"Product Manager"}),c.jsx("option",{value:"engineering-manager",children:"Engineering Manager"}),c.jsx("option",{value:"devops",children:"DevOps Engineer"})]}),c.jsx("div",{className:"btn-group",children:c.jsx("button",{className:"btn-primary",onClick:X,disabled:!r.name,children:"Continue"})})]})}function py({state:r,update:D,onNext:X,onPrev:h}){const[M,q]=gl.useState([]);gl.useEffect(()=>{fetch(`/api/responsibilities/${r.profileType}`).then(U=>U.json()).then(U=>{q(U.responsibilities),r.responsibilities.length===0&&D({responsibilities:U.responsibilities})}).catch(()=>q([]))},[r.profileType]);const V=U=>{const _=r.responsibilities;_.includes(U)?D({responsibilities:_.filter(T=>T!==U)}):D({responsibilities:[..._,U]})};return c.jsxs("div",{children:[c.jsx("h1",{children:"Responsibilities"}),c.jsx("h2",{children:"Select your core responsibilities"}),c.jsx("div",{className:"checkbox-group",children:M.map(U=>c.jsxs("label",{className:"checkbox-item",children:[c.jsx("input",{type:"checkbox",checked:r.responsibilities.includes(U),onChange:()=>V(U)}),U]},U))}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:X,children:"Continue"})]})]})}function by({state:r,update:D,onNext:X,onPrev:h}){const[M,q]=gl.useState({}),[V,U]=gl.useState(""),[_,T]=gl.useState(!0),[k,B]=gl.useState(""),[Z,Tl]=gl.useState(null),[pl,il]=gl.useState(""),[Il,Ol]=gl.useState(new Set),[ee,Sl]=gl.useState(new Set),Bl=gl.useRef(null);gl.useEffect(()=>{T(!0),B(""),fetch("/api/preview-template",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({profileType:r.profileType,name:r.name,assistantName:r.assistantName,responsibilities:r.responsibilities})}).then(E=>E.json()).then(E=>{const G=E.files;q(G),D({templateFiles:G});const s=Object.keys(G);s.length>0&&!V&&U(s[0])}).catch(()=>B("Failed to load template preview")).finally(()=>T(!1))},[r.profileType,r.name,r.responsibilities]),gl.useEffect(()=>{Z&&Bl.current&&Bl.current.focus()},[Z]);const cl=E=>{const G={...M,[V]:E};q(G),D({templateFiles:G})},j=E=>{const G=E.split("/");return G[G.length-1]},N=E=>E.endsWith(".md")?"M":E.endsWith(".json")?"J":E.endsWith(".yaml")||E.endsWith(".yml")?"Y":"F",L=E=>E.split(`
|
|
50
|
+
`).length,Ll=(()=>{const E=new Map,G=[];for(const s of Object.keys(M).sort()){const b=s.indexOf("/");if(b===-1)G.push(s);else{const C=s.substring(0,b);E.has(C)||E.set(C,[]),E.get(C).push(s)}}for(const s of ee)E.has(s)||E.set(s,[]);return{folders:[...E.keys()].sort(),folderFiles:E,rootFiles:G}})(),xl=E=>{Ol(G=>{const s=new Set(G);return s.has(E)?s.delete(E):s.add(E),s})},El=()=>{const E=pl.trim();if(!E||!Z){Tl(null),il("");return}if(Z.type==="folder"){const G=E.replace(/[/\\]/g,"");if(!G)return;Sl(s=>new Set(s).add(G)),Ol(s=>new Set(s).add(G))}else{const G=E.includes(".")?E:`${E}.md`,s=Z.parent?`${Z.parent}/${G}`:G;if(M[s]!==void 0)U(s);else{const b=G.replace(/\.\w+$/,"").replace(/[-_]/g," "),C=b.charAt(0).toUpperCase()+b.slice(1),R={...M,[s]:`# ${C}
|
|
51
|
+
|
|
52
|
+
`};q(R),D({templateFiles:R}),U(s),Z.parent&&(Sl(w=>{const I=new Set(w);return I.delete(Z.parent),I}),Ol(w=>new Set(w).add(Z.parent)))}}Tl(null),il("")},ul=(E,G)=>{G.stopPropagation();const s={...M};if(delete s[E],q(s),D({templateFiles:s}),V===E){const b=Object.keys(s);U(b.length>0?b[0]:"")}},Wl=(E,G)=>{G.stopPropagation();const s={...M};for(const b of Object.keys(s))b.startsWith(`${E}/`)&&delete s[b];if(q(s),D({templateFiles:s}),Sl(b=>{const C=new Set(b);return C.delete(E),C}),V.startsWith(`${E}/`)){const b=Object.keys(s);U(b.length>0?b[0]:"")}},se=E=>{E.key==="Enter"?(E.preventDefault(),El()):E.key==="Escape"&&(Tl(null),il(""))},x=()=>c.jsxs("div",{className:"template-create-input",children:[(Z==null?void 0:Z.parent)&&c.jsxs("span",{className:"template-create-prefix",children:[Z.parent,"/"]}),c.jsx("input",{ref:Bl,type:"text",className:"template-create-field",value:pl,onChange:E=>il(E.target.value),onKeyDown:se,onBlur:El,placeholder:(Z==null?void 0:Z.type)==="folder"?"folder name":"filename.md"})]}),O=(E,G=!1)=>c.jsxs("button",{className:`template-file-tab ${V===E?"active":""} ${G?"indented":""}`,onClick:()=>U(E),title:E,children:[c.jsx("span",{className:`template-file-icon icon-${N(E).toLowerCase()}`,children:N(E)}),c.jsx("span",{className:"template-file-name",children:j(E)}),c.jsxs("span",{className:"template-file-lines",children:[L(M[E]),"L"]}),c.jsx("span",{className:"template-item-delete",onClick:s=>ul(E,s),title:"Delete file",children:"×"})]},E),J=E=>{const G=Il.has(E),s=Ll.folderFiles.get(E)||[];return c.jsxs("div",{className:"template-folder-group",children:[c.jsxs("div",{className:"template-folder-row",children:[c.jsxs("button",{className:"template-folder-tab",onClick:()=>xl(E),children:[c.jsx("span",{className:"template-folder-arrow",children:G?"▾":"▸"}),c.jsx("span",{className:"template-file-icon icon-folder",children:c.jsx("svg",{width:"12",height:"12",viewBox:"0 0 16 16",fill:"currentColor",children:c.jsx("path",{d:"M1.75 1A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25V4.75A1.75 1.75 0 0014.25 3H7.5a.25.25 0 01-.2-.1l-.9-1.2A1.75 1.75 0 004.98 1H1.75z"})})}),c.jsx("span",{className:"template-file-name",children:E}),c.jsx("span",{className:"template-file-lines",children:s.length})]}),c.jsx("span",{className:"template-folder-action template-folder-add",onClick:b=>{b.stopPropagation(),Tl({type:"file",parent:E}),il(""),Ol(C=>new Set(C).add(E))},title:`New file in ${E}/`,children:"+"}),c.jsx("span",{className:"template-folder-action template-item-delete",onClick:b=>Wl(E,b),title:"Delete folder",children:"×"})]}),G&&c.jsxs("div",{className:"template-folder-children",children:[s.map(b=>O(b,!0)),(Z==null?void 0:Z.type)==="file"&&Z.parent===E&&x(),s.length===0&&!Z&&c.jsx("div",{className:"template-folder-empty",children:"Empty folder"})]})]},E)};return c.jsxs("div",{children:[c.jsx("h1",{children:"Context Template"}),c.jsx("h2",{children:"Preview and customize your context template"}),c.jsxs("div",{className:"template-preview",children:[_&&c.jsxs("div",{className:"template-loading",children:[c.jsx("div",{className:"template-spinner"}),c.jsx("span",{children:"Generating template..."})]}),k&&c.jsx("div",{className:"template-error",children:k}),!_&&!k&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"template-sidebar",children:[c.jsxs("div",{className:"template-sidebar-header",children:[c.jsx("span",{children:"Files"}),c.jsxs("div",{className:"template-sidebar-actions",children:[c.jsx("button",{className:"template-action-btn",onClick:()=>Tl({type:"file",parent:null}),title:"New file",children:c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"}),c.jsx("polyline",{points:"14 2 14 8 20 8"}),c.jsx("line",{x1:"12",y1:"18",x2:"12",y2:"12"}),c.jsx("line",{x1:"9",y1:"15",x2:"15",y2:"15"})]})}),c.jsx("button",{className:"template-action-btn",onClick:()=>Tl({type:"folder",parent:null}),title:"New folder",children:c.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[c.jsx("path",{d:"M22 19a2 2 0 01-2 2H4a2 2 0 01-2-2V5a2 2 0 012-2h5l2 3h9a2 2 0 012 2z"}),c.jsx("line",{x1:"12",y1:"11",x2:"12",y2:"17"}),c.jsx("line",{x1:"9",y1:"14",x2:"15",y2:"14"})]})})]})]}),Ll.folders.map(E=>J(E)),Ll.rootFiles.map(E=>O(E)),Z&&Z.parent===null&&x()]}),c.jsx("div",{className:"template-editor",children:V&&M[V]!==void 0?c.jsxs(c.Fragment,{children:[c.jsxs("div",{className:"template-editor-header",children:[c.jsx("span",{className:"template-editor-path",children:V}),c.jsx("span",{className:"template-editor-badge",children:"editable"})]}),c.jsxs("div",{className:"template-editor-body",children:[c.jsx("div",{className:"template-line-numbers",children:M[V].split(`
|
|
53
|
+
`).map((E,G)=>c.jsx("span",{children:G+1},G))}),c.jsx("textarea",{className:"template-textarea",value:M[V],onChange:E=>cl(E.target.value),spellCheck:!1})]})]}):c.jsx("div",{className:"template-empty-editor",children:"Select a file to edit"})})]})]}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:X,children:"Continue"})]})]})}function Sy({state:r,update:D,onNext:X,onPrev:h}){const[M,q]=gl.useState(r.gdriveFolderId?"complete":"idle"),[V,U]=gl.useState(""),[_,T]=gl.useState(!1),[k,B]=gl.useState(!1),[Z,Tl]=gl.useState(!1),pl=gl.useRef(null);gl.useEffect(()=>()=>{pl.current&&clearInterval(pl.current)},[]);const il=async()=>{Tl(!0);try{const j=await(await fetch("/api/pick-folder")).json();!j.cancelled&&j.path&&D({localPath:j.path})}catch{}finally{Tl(!1)}},Il=async()=>{if(!r.gdriveClientId.trim()||!r.gdriveClientSecret.trim()){U("Client ID and Client Secret are required.");return}T(!0),U(""),q("pending");try{const j=await(await fetch("/api/gdrive/auth-start",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:r.gdriveClientId,clientSecret:r.gdriveClientSecret})})).json();if(!j.authUrl)throw new Error(j.error||"Failed to start auth");window.open(j.authUrl,"_blank"),pl.current=setInterval(async()=>{try{const L=await(await fetch("/api/gdrive/auth-status")).json();L.status==="authenticated"?(clearInterval(pl.current),q("authenticated"),T(!1)):L.status==="error"&&(clearInterval(pl.current),q("error"),U(L.error||"Authentication failed"),T(!1))}catch{}},2e3)}catch(cl){q("error"),U(String(cl)),T(!1)}},Ol=async()=>{B(!0),U("");try{const j=await(await fetch("/api/gdrive/create-folder",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({folderName:r.gdriveFolderName||"Personal Assistant",parentFolderName:r.gdriveFolderParent.trim()||""})})).json();if(j.error)throw new Error(j.error);D({gdriveFolderId:j.folderId,gdriveFolderName:j.folderName,gdriveFolderPath:j.folderPath,gdriveRefreshToken:j.refreshToken}),q("complete")}catch(cl){U(String(cl))}finally{B(!1)}},ee=()=>{D({gdriveFolderId:"",gdriveFolderPath:""}),q("authenticated"),U("")},Sl=()=>{pl.current&&clearInterval(pl.current),q("idle"),U(""),T(!1),D({gdriveFolderId:"",gdriveFolderName:"Personal Assistant",gdriveFolderParent:"",gdriveFolderPath:"",gdriveRefreshToken:""})},Bl=r.storageMode==="local"?r.localPath.trim().length>0:M==="complete";return c.jsxs("div",{children:[c.jsx("h1",{children:"Storage"}),c.jsx("h2",{children:"Where should your context be stored?"}),c.jsxs("div",{className:"radio-group",children:[c.jsxs("div",{className:`radio-item ${r.storageMode==="local"?"selected":""}`,onClick:()=>D({storageMode:"local"}),children:[c.jsx("strong",{children:"Local Workspace"}),c.jsx("br",{}),c.jsx("small",{children:"Files stored on this machine"})]}),c.jsxs("div",{className:`radio-item ${r.storageMode==="gdrive"?"selected":""}`,onClick:()=>D({storageMode:"gdrive"}),children:[c.jsx("strong",{children:"Google Drive"}),c.jsx("br",{}),c.jsx("small",{children:"Files stored in your Drive folder"})]})]}),r.storageMode==="local"&&c.jsxs("div",{style:{marginBottom:"1.25rem"},children:[c.jsx("label",{children:"Storage path"}),c.jsxs("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center"},children:[c.jsx("input",{type:"text",value:r.localPath,onChange:cl=>D({localPath:cl.target.value}),placeholder:".personal-assistant",style:{flex:1,marginBottom:0}}),c.jsx("button",{className:"btn-secondary",onClick:il,disabled:Z,style:{whiteSpace:"nowrap",flexShrink:0},children:Z?"…":"Browse"})]}),c.jsx("small",{style:{color:"#64748b",fontSize:"0.8rem",marginTop:"0.4rem",display:"block"},children:"Click Browse to open a folder picker, or type a path directly (relative or absolute)."})]}),r.storageMode==="gdrive"&&c.jsxs("div",{style:{marginBottom:"1.25rem"},children:[(M==="idle"||M==="pending"||M==="error")&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{style:{background:"#0f172a",border:"1px solid #334155",borderRadius:"0.5rem",padding:"1rem",marginBottom:"1.25rem",fontSize:"0.85rem",color:"#94a3b8",lineHeight:"1.6"},children:[c.jsx("p",{style:{color:"#e2e8f0",fontWeight:600,marginBottom:"0.75rem"},children:"How to get your Client ID and Secret"}),c.jsx("p",{style:{marginBottom:"0.5rem"},children:"No credentials are bundled with this app. You create your own in Google Cloud — it takes about 5 minutes and gives you full control over your own quota and data."}),c.jsxs("ol",{style:{paddingLeft:"1.25rem",margin:"0.75rem 0"},children:[c.jsxs("li",{style:{marginBottom:"0.4rem"},children:["Go to ",c.jsx("strong",{style:{color:"#e2e8f0"},children:"console.cloud.google.com"}),' → create a new project (any name, e.g. "Personal Assistant")']}),c.jsxs("li",{style:{marginBottom:"0.4rem"},children:[c.jsx("strong",{style:{color:"#e2e8f0"},children:"APIs & Services → Library"})," → search for ",c.jsx("strong",{style:{color:"#e2e8f0"},children:"Google Drive API"})," → Enable"]}),c.jsxs("li",{style:{marginBottom:"0.4rem"},children:[c.jsx("strong",{style:{color:"#e2e8f0"},children:"APIs & Services → OAuth consent screen"})," ","→ User type: External → fill in app name and email → add scope"," ",c.jsx("code",{style:{background:"#1e293b",padding:"0 4px",borderRadius:3},children:".../auth/drive.file"})," ","→ add your email as a test user → Save."," ",c.jsx("strong",{style:{color:"#fbbf24"},children:'Your email must be in this list or Google will block the login with "Access denied — app not verified".'})]}),c.jsxs("li",{style:{marginBottom:"0.4rem"},children:[c.jsx("strong",{style:{color:"#e2e8f0"},children:"Credentials → Create Credentials → OAuth client ID"})," ","→ Application type:"," ",c.jsx("strong",{style:{color:"#e2e8f0"},children:"Web application"})]}),c.jsxs("li",{style:{marginBottom:"0.4rem"},children:["Under ",c.jsx("strong",{style:{color:"#e2e8f0"},children:"Authorized redirect URIs"})," add exactly:"," ",c.jsx("code",{style:{background:"#1e293b",padding:"0 4px",borderRadius:3},children:"http://localhost:3847/api/gdrive/callback"})]}),c.jsxs("li",{children:["Click ",c.jsx("strong",{style:{color:"#e2e8f0"},children:"Create"})," and copy the Client ID and Client Secret shown."]})]}),c.jsxs("p",{style:{color:"#64748b",fontSize:"0.8rem"},children:["The refresh token obtained during this flow is saved locally to"," ",c.jsx("code",{style:{background:"#1e293b",padding:"0 3px",borderRadius:3},children:"profile/storage.json"})," ","— the sync daemon will use it automatically on future runs."]})]}),c.jsxs("div",{style:{background:"#1c1917",border:"1px solid #92400e",borderRadius:"0.5rem",padding:"0.65rem 0.9rem",marginBottom:"1.25rem",fontSize:"0.82rem",color:"#fbbf24",lineHeight:"1.5"},children:["⚠️ Getting ",c.jsx("strong",{children:'"Access blocked: app not verified"'}),"? Your Google account must be added as a test user. Go to"," ",c.jsx("strong",{children:"OAuth consent screen → Test users → Add users"})," and add your email, then try connecting again. You do not need to publish or verify the app for personal use."]}),c.jsx("label",{children:"Client ID"}),c.jsx("input",{type:"text",value:r.gdriveClientId,onChange:cl=>D({gdriveClientId:cl.target.value}),placeholder:"your-client-id.apps.googleusercontent.com",disabled:M==="pending"}),c.jsx("label",{children:"Client Secret"}),c.jsx("input",{type:"password",value:r.gdriveClientSecret,onChange:cl=>D({gdriveClientSecret:cl.target.value}),placeholder:"your-client-secret",disabled:M==="pending"}),M==="idle"&&c.jsx("button",{className:"btn-primary",onClick:Il,disabled:_,children:"Connect Google Drive"}),M==="pending"&&c.jsx("p",{style:{color:"#f59e0b",fontSize:"0.9rem"},children:"Waiting for Google authentication — complete it in the browser tab that just opened…"}),M==="error"&&c.jsxs("div",{style:{marginTop:"0.5rem"},children:[c.jsx("p",{style:{color:"#ef4444",fontSize:"0.9rem",marginBottom:"0.5rem"},children:V}),c.jsx("button",{className:"btn-secondary",onClick:Sl,children:"Try Again"})]})]}),M==="authenticated"&&c.jsxs("div",{style:{background:"#0f172a",border:"1px solid #334155",borderRadius:"0.5rem",padding:"1rem",marginBottom:"1rem"},children:[c.jsx("p",{style:{color:"#4ade80",fontSize:"0.9rem",marginBottom:"1rem"},children:"✓ Google account connected. Now configure where the folder will be created."}),c.jsx("label",{children:"Folder name"}),c.jsx("input",{type:"text",value:r.gdriveFolderName,onChange:cl=>D({gdriveFolderName:cl.target.value}),placeholder:"Personal Assistant"}),c.jsxs("label",{children:["Parent folder in My Drive"," ",c.jsx("span",{style:{color:"#64748b",fontWeight:400},children:"(optional — leave empty for root)"})]}),c.jsx("input",{type:"text",value:r.gdriveFolderParent,onChange:cl=>D({gdriveFolderParent:cl.target.value}),placeholder:"e.g. Work"}),c.jsx("small",{style:{color:"#64748b",fontSize:"0.8rem",display:"block",marginTop:"-0.5rem",marginBottom:"1rem"},children:"If this folder doesn't exist in your Drive it will be created automatically."}),c.jsxs("div",{style:{display:"flex",gap:"0.75rem",alignItems:"center"},children:[c.jsx("button",{className:"btn-primary",onClick:Ol,disabled:k||!r.gdriveFolderName.trim(),children:k?"Creating…":"Create Folder"}),c.jsx("button",{className:"btn-secondary",onClick:Sl,style:{fontSize:"0.85rem"},children:"Start Over"})]}),V&&c.jsx("p",{style:{color:"#ef4444",fontSize:"0.9rem",marginTop:"0.75rem"},children:V})]}),M==="complete"&&c.jsxs("div",{style:{background:"#0f172a",border:"1px solid #166534",borderRadius:"0.5rem",padding:"1rem",marginBottom:"1rem"},children:[c.jsx("p",{style:{color:"#4ade80",fontSize:"0.9rem",marginBottom:"0.75rem",fontWeight:600},children:"✓ Folder created in Google Drive"}),c.jsxs("div",{style:{fontSize:"0.875rem",color:"#94a3b8",lineHeight:"1.8"},children:[c.jsxs("div",{children:[c.jsx("span",{style:{color:"#64748b"},children:"Name: "}),c.jsx("strong",{style:{color:"#e2e8f0"},children:r.gdriveFolderName})]}),c.jsxs("div",{children:[c.jsx("span",{style:{color:"#64748b"},children:"Location: "}),c.jsx("strong",{style:{color:"#e2e8f0"},children:r.gdriveFolderPath})]}),c.jsxs("div",{children:[c.jsx("span",{style:{color:"#64748b"},children:"Folder ID: "}),c.jsx("code",{style:{background:"#1e293b",padding:"0 4px",borderRadius:3,fontSize:"0.8rem",color:"#94a3b8"},children:r.gdriveFolderId})]})]}),c.jsx("button",{className:"btn-secondary",onClick:ee,style:{marginTop:"0.75rem",fontSize:"0.85rem"},children:"Change location"})]})]}),c.jsx("div",{style:{background:"#1c1917",border:"1px solid #92400e",borderRadius:"0.5rem",padding:"0.75rem 1rem",marginBottom:"1.5rem",fontSize:"0.85rem",color:"#fbbf24"},children:"⚠️ Do not delete, move, or rename the folder structure created by this setup. Claude and the sync daemon rely on the exact file and folder layout to load and update your context. Deleting files will result in lost context that cannot be automatically recovered."}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:X,disabled:!Bl,children:"Continue"})]})]})}const Ml=r=>c.jsx("code",{style:{display:"inline-block",background:"#0f172a",color:"#7dd3fc",borderRadius:4,padding:"1px 7px",fontSize:"0.76rem",fontFamily:"monospace",margin:"0 3px 3px 0",border:"1px solid #1e3a5f"},children:r},r),Hl=r=>c.jsx("strong",{style:{color:"#e2e8f0"},children:r}),Cl=r=>c.jsx("li",{style:{marginBottom:"0.5rem"},children:r}),En=r=>c.jsx("ol",{style:{paddingLeft:"1.1rem",margin:0,lineHeight:1.7,color:"#94a3b8",fontSize:"0.83rem"},children:r}),xy=[{id:"slack",name:"Slack",desc:"Connect a shared Slack channel for instant project-aware replies",color:"#4A154B",initials:"Sl",fields:[{key:"botToken",label:"Bot Token",placeholder:"xoxb-...",type:"password"}],steps:En(c.jsxs(c.Fragment,{children:[Cl(c.jsxs(c.Fragment,{children:["Go to ",Hl("api.slack.com/apps")," → Create New App → From scratch"]})),Cl(c.jsxs(c.Fragment,{children:["Under ",Hl("Socket Mode")," enable Socket Mode, create an app token with scope ",Ml("connections:write"),", and copy the ",Hl("App-Level Token")," (starts with ",Ml("xapp-"),")"]})),Cl(c.jsxs(c.Fragment,{children:["Under ",Hl("OAuth & Permissions")," add bot scopes: ",Ml("channels:history")," ",Ml("channels:read")," ",Ml("groups:history")," ",Ml("groups:read")," ",Ml("im:history")," ",Ml("app_mentions:read")," ",Ml("chat:write")]})),Cl(c.jsxs(c.Fragment,{children:["Under ",Hl("Event Subscriptions")," enable bot events for your channel type: ",Ml("message.channels")," and/or ",Ml("message.groups")," plus ",Ml("app_mention")]})),Cl(c.jsxs(c.Fragment,{children:["Click ",Hl("Install to Workspace")," and copy the ",Hl("Bot User OAuth Token")," (starts with ",Ml("xoxb-"),")"]})),Cl(c.jsxs(c.Fragment,{children:["Invite the bot to any channel or private group you want Atlas to monitor, for example ",Ml("/invite @YourAppName"),". No monitored-channel selection is required in onboarding."]}))]}))},{id:"gmail",name:"Gmail",desc:"Pull email thread summaries into your context",color:"#EA4335",initials:"Gm",fields:[{key:"clientId",label:"Client ID",placeholder:"your-client-id.apps.googleusercontent.com"},{key:"clientSecret",label:"Client Secret",placeholder:"your-client-secret",type:"password"},{key:"refreshToken",label:"Refresh Token",placeholder:"your-refresh-token",type:"password"}],steps:En(c.jsxs(c.Fragment,{children:[Cl(c.jsx(c.Fragment,{children:"Use the same Google Cloud project from your Storage setup, or create a new one"})),Cl(c.jsxs(c.Fragment,{children:["Enable the ",Hl("Gmail API")," in ",Hl("APIs & Services → Library")]})),Cl(c.jsxs(c.Fragment,{children:["Go to ",Hl("developers.google.com/oauthplayground")," → settings gear → check ",Hl("Use your own OAuth credentials")," → enter Client ID & Secret"]})),Cl(c.jsxs(c.Fragment,{children:["In Step 1 select ",Ml("https://www.googleapis.com/auth/gmail.readonly")," → Authorise APIs"]})),Cl(c.jsxs(c.Fragment,{children:["In Step 2 click ",Hl("Exchange authorisation code for tokens")," → copy the ",Hl("Refresh token")]}))]}))},{id:"github",name:"GitHub",desc:"Track your commits, PRs, issues, and all comments",color:"#24292F",initials:"GH",fields:[{key:"token",label:"Personal Access Token",placeholder:"ghp_...",type:"password"}],steps:En(c.jsxs(c.Fragment,{children:[Cl(c.jsxs(c.Fragment,{children:["Go to ",Hl("github.com → Settings → Developer settings → Personal access tokens → Tokens (classic)")]})),Cl(c.jsxs(c.Fragment,{children:["Click ",Hl("Generate new token (classic)")]})),Cl(c.jsxs(c.Fragment,{children:["Select scopes — ",Ml("repo")," ",Ml("read:user")," ",Ml("user:email")," ",Ml("notifications")]})),Cl(c.jsxs(c.Fragment,{children:["Click ",Hl("Generate token")," and copy it (shown only once)"]}))]}))},{id:"gitlab",name:"GitLab",desc:"Sync MRs, issues, and activity events",color:"#FC6D26",initials:"GL",fields:[{key:"token",label:"Personal Access Token",placeholder:"glpat-...",type:"password"},{key:"baseUrl",label:"Base URL",placeholder:"https://gitlab.com/api/v4",optional:!0}],steps:En(c.jsxs(c.Fragment,{children:[Cl(c.jsxs(c.Fragment,{children:["Go to ",Hl("gitlab.com → User Settings → Access Tokens")," (or your self-hosted instance)"]})),Cl(c.jsxs(c.Fragment,{children:["Create a token with scopes: ",Ml("read_api")," ",Ml("read_repository")]})),Cl(c.jsx(c.Fragment,{children:"Copy the token (shown only once)"})),Cl(c.jsxs(c.Fragment,{children:["If self-hosted, enter your API base URL e.g. ",Ml("https://gitlab.mycompany.com/api/v4")," — leave blank for gitlab.com"]}))]}))},{id:"gdrive",name:"Google Drive",desc:"Extract content from documents in your Drive",color:"#4285F4",initials:"GD",fields:[{key:"clientId",label:"Client ID",placeholder:"your-client-id.apps.googleusercontent.com"},{key:"clientSecret",label:"Client Secret",placeholder:"your-client-secret",type:"password"},{key:"refreshToken",label:"Refresh Token",placeholder:"your-refresh-token",type:"password"}],steps:En(c.jsxs(c.Fragment,{children:[Cl(c.jsx(c.Fragment,{children:"Reuse the Client ID and Secret from the Storage step if you already set up Google Drive storage"})),Cl(c.jsxs(c.Fragment,{children:["Go to ",Hl("developers.google.com/oauthplayground")," → settings gear → check ",Hl("Use your own OAuth credentials")," → enter Client ID & Secret"]})),Cl(c.jsxs(c.Fragment,{children:["In Step 1 select ",Ml("https://www.googleapis.com/auth/drive.readonly")," → Authorise APIs"]})),Cl(c.jsxs(c.Fragment,{children:["In Step 2 click ",Hl("Exchange authorisation code for tokens")," → copy the ",Hl("Refresh token")]}))]}))},{id:"gchat",name:"Google Chat",desc:"Sync space messages into your context",color:"#00AC47",initials:"GC",fields:[],comingSoon:!0,steps:null}];function Ty({state:r,update:D,onNext:X,onPrev:h}){const[M,q]=gl.useState(null),[V,U]=gl.useState({}),[_,T]=gl.useState({}),k=j=>r.integrations.includes(j),B=j=>r.integrationCredentials[j]??{},Z=j=>{U(N=>({...N,[j]:"idle"})),T(N=>({...N,[j]:""})),q(j)},Tl=j=>{const N={integrations:r.integrations.filter(L=>L!==j),integrationCredentials:{...r.integrationCredentials,[j]:{}}};j==="slack"&&Object.assign(N,{slackAppToken:"",slackChannelId:"",slackChannelName:"",slackReviewerUserId:"",slackReviewerDisplayName:r.name,slackReviewMode:"auto_send",slackGenerationEnabled:!0,slackDefaultProvider:"openai",slackDefaultModel:r.openAIModel||"gpt-4.1-mini"}),D(N),U(L=>({...L,[j]:"idle"})),T(L=>({...L,[j]:""})),q(null)},pl=(j,N,L)=>{U(nl=>({...nl,[j]:"idle"})),D({integrationCredentials:{...r.integrationCredentials,[j]:{...B(j),[N]:L}}})},il=(j,N)=>{N!=null&&N.invalidateValidation&&U(L=>({...L,slack:"idle"})),D(j)},Il=j=>{var L;if(j.id==="slack")return!!((L=B("slack").botToken)!=null&&L.trim()&&r.slackAppToken.trim());const N=B(j.id);return j.fields.filter(nl=>!nl.optional).every(nl=>(N[nl.key]??"").trim()!=="")},Ol=async j=>{U(N=>({...N,[j.id]:"validating"})),T(N=>({...N,[j.id]:""}));try{if(j.id==="slack"){const Ll=await(await fetch("/api/validate-slack-runtime",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({botToken:B("slack").botToken,appToken:r.slackAppToken,generationEnabled:r.slackGenerationEnabled,providers:{openai:{apiKey:r.openAIApiKey,model:r.openAIModel},anthropic:{apiKey:r.anthropicApiKey,model:r.anthropicModel}}})})).json();if(!Ll.valid){U(xl=>({...xl,slack:"invalid"})),T(xl=>({...xl,slack:Ll.error??"Slack validation failed"}));return}il({slackReviewerDisplayName:r.name}),U(xl=>({...xl,slack:"valid"})),T(xl=>({...xl,slack:Ll.info??"Slack connected"}));return}const L=await(await fetch("/api/validate-integration",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({type:j.id,credentials:B(j.id)})})).json();L.valid?(U(nl=>({...nl,[j.id]:"valid"})),T(nl=>({...nl,[j.id]:L.info??""}))):(U(nl=>({...nl,[j.id]:"invalid"})),T(nl=>({...nl,[j.id]:L.error??"Validation failed"})))}catch(N){U(L=>({...L,[j.id]:"invalid"})),T(L=>({...L,[j.id]:String(N)}))}},ee=j=>{const N=V[j.id]??"idle";if(j.id!=="slack")return N==="valid";const L=!r.slackGenerationEnabled||(r.slackDefaultProvider==="openai"?!!r.openAIApiKey.trim()&&!!r.openAIModel.trim():!!r.anthropicApiKey.trim()&&!!r.anthropicModel.trim());return N==="valid"&&L},Sl=()=>(V.slack??"idle")!=="valid"?"Validate Slack first":r.slackGenerationEnabled&&r.slackDefaultProvider==="openai"&&!r.openAIApiKey.trim()?"Add an OpenAI API key or disable draft generation":r.slackGenerationEnabled&&r.slackDefaultProvider==="anthropic"&&!r.anthropicApiKey.trim()?"Add a Claude API key or disable draft generation":"",Bl=j=>{k(j)||D({integrations:[...r.integrations,j]}),q(null)},cl=r.integrations.length;return c.jsxs("div",{children:[c.jsxs("div",{style:{marginBottom:"1.5rem",display:"flex",alignItems:"flex-start",justifyContent:"space-between"},children:[c.jsxs("div",{children:[c.jsx("h1",{style:{marginBottom:"0.25rem"},children:"Integrations"}),c.jsx("h2",{style:{margin:0},children:"Connect your tools (optional)"})]}),cl>0&&c.jsxs("span",{style:{fontSize:"0.8rem",color:"#4ade80",background:"#052e16",padding:"4px 12px",borderRadius:99,fontWeight:500,marginTop:"0.25rem"},children:[cl," connected"]})]}),c.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0.625rem",marginBottom:"1.5rem"},children:xy.map(j=>{const N=k(j.id),L=M===j.id,nl=V[j.id]??"idle",Ll=_[j.id]??"",xl=Il(j)&&nl!=="validating",El=ee(j);return c.jsxs("div",{style:{borderRadius:"0.75rem",border:`1px solid ${N?"#166534":L?"#2d4a7a":"#1a2332"}`,background:N?"linear-gradient(to right, #071a0f, #0b1628)":L?"#0b1628":"#0a111e",overflow:"hidden",transition:"border-color 0.2s"},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"1rem",padding:"0.875rem 1.25rem"},children:[c.jsx("div",{style:{width:40,height:40,borderRadius:"0.6rem",background:j.color,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:700,fontSize:"0.75rem",color:"#fff",flexShrink:0,opacity:j.comingSoon?.35:1,letterSpacing:"-0.01em"},children:j.initials}),c.jsxs("div",{style:{flex:1},children:[c.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"0.5rem"},children:[c.jsx("span",{style:{color:"#f1f5f9",fontWeight:600,fontSize:"0.9rem"},children:j.name}),N&&c.jsx("span",{style:{fontSize:"0.7rem",background:"#052e16",color:"#4ade80",padding:"1px 8px",borderRadius:99,fontWeight:600},children:"✓ Connected"}),j.comingSoon&&c.jsx("span",{style:{fontSize:"0.7rem",background:"#1a2332",color:"#475569",padding:"1px 8px",borderRadius:99},children:"Coming soon"})]}),c.jsx("div",{style:{color:"#475569",fontSize:"0.78rem",marginTop:"2px"},children:j.desc})]}),!j.comingSoon&&c.jsx("div",{style:{display:"flex",gap:"0.5rem",flexShrink:0},children:N?c.jsxs(c.Fragment,{children:[c.jsx("button",{onClick:()=>Z(j.id),style:Dd,children:"Edit"}),c.jsx("button",{onClick:()=>Tl(j.id),style:{...Dd,color:"#f87171",borderColor:"#3f1515"},children:"Disconnect"})]}):c.jsx("button",{onClick:()=>Z(j.id),style:{...Ay,background:L?"#172554":"#1e293b",borderColor:L?"#3b82f6":"#334155",color:L?"#93c5fd":"#94a3b8"},children:L?"Setting up…":"+ Connect"})})]}),L&&c.jsxs("div",{style:{borderTop:"1px solid #1a2332",padding:"1.25rem"},children:[c.jsxs("div",{style:{background:"#060d18",border:"1px solid #1a2332",borderRadius:"0.5rem",padding:"1rem",marginBottom:"1.25rem"},children:[c.jsx("p",{style:{color:"#64748b",fontSize:"0.7rem",fontWeight:700,letterSpacing:"0.08em",textTransform:"uppercase",marginBottom:"0.625rem"},children:"Setup steps"}),j.steps]}),c.jsx("div",{style:{display:"grid",gridTemplateColumns:j.fields.length>1?"1fr 1fr":"1fr",gap:"0.75rem",marginBottom:j.id==="slack"?"0.75rem":"1rem"},children:j.fields.map(ul=>c.jsxs("div",{children:[c.jsxs("label",{style:{display:"block",fontSize:"0.78rem",color:"#64748b",marginBottom:"0.3rem",fontWeight:500},children:[ul.label,ul.optional&&c.jsx("span",{style:{color:"#334155"},children:" — optional"})]}),c.jsx("input",{type:ul.type??"text",value:B(j.id)[ul.key]??"",onChange:Wl=>pl(j.id,ul.key,Wl.target.value),placeholder:ul.placeholder,style:{marginBottom:0,fontSize:"0.83rem",padding:"0.6rem 0.75rem",background:"#060d18",borderColor:"#1a2332"}})]},ul.key))}),j.id==="slack"&&c.jsxs(c.Fragment,{children:[c.jsxs("div",{style:{marginBottom:"0.75rem"},children:[c.jsx("label",{style:et,children:"Socket Mode App Token"}),c.jsx("input",{type:"password",value:r.slackAppToken,onChange:ul=>il({slackAppToken:ul.target.value},{invalidateValidation:!0}),placeholder:"xapp-...",style:Mn})]}),c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.75rem",marginBottom:"0.75rem"},children:[c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Monitored Channels"}),c.jsx("div",{style:gf,children:"Any Slack channel or private group where the bot is added"})]}),c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Escalation Owner"}),c.jsx("div",{style:gf,children:r.name||"Configured user"})]})]}),c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.75rem",marginBottom:"0.75rem"},children:[c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Reply Mode"}),c.jsx("div",{style:gf,children:"Auto reply"}),c.jsx("div",{style:{marginTop:"0.45rem",color:"#64748b",fontSize:"0.75rem",lineHeight:1.5},children:"Atlas replies automatically in-thread when the bot is present in the channel. Human review is disabled in onboarding for now."})]}),c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Default Provider"}),c.jsxs("select",{value:r.slackDefaultProvider,onChange:ul=>{const Wl=ul.target.value;il({slackDefaultProvider:Wl,slackDefaultModel:Wl==="openai"?r.openAIModel:r.anthropicModel})},style:zy,children:[c.jsx("option",{value:"openai",children:"OpenAI"}),c.jsx("option",{value:"anthropic",children:"Claude / Anthropic"})]})]})]}),c.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"0.55rem",marginBottom:"0.9rem",fontSize:"0.82rem",color:"#cbd5e1"},children:[c.jsx("input",{type:"checkbox",checked:r.slackGenerationEnabled,onChange:ul=>il({slackGenerationEnabled:ul.target.checked},{invalidateValidation:!0})}),"Enable real-time draft generation"]}),c.jsxs("div",{style:{background:"#060d18",border:"1px solid #1a2332",borderRadius:"0.5rem",padding:"0.9rem",marginBottom:"0.9rem"},children:[c.jsx("div",{style:{color:"#e2e8f0",fontSize:"0.82rem",fontWeight:600,marginBottom:"0.6rem"},children:"Model providers"}),c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.75rem",marginBottom:"0.75rem"},children:[c.jsxs("div",{children:[c.jsx("label",{style:et,children:"OpenAI API Key"}),c.jsx("input",{type:"password",value:r.openAIApiKey,onChange:ul=>il({openAIApiKey:ul.target.value},{invalidateValidation:!0}),placeholder:"sk-...",style:Mn})]}),c.jsxs("div",{children:[c.jsx("label",{style:et,children:"OpenAI Model"}),c.jsx("input",{value:r.openAIModel,onChange:ul=>il({openAIModel:ul.target.value,...r.slackDefaultProvider==="openai"?{slackDefaultModel:ul.target.value}:{}},{invalidateValidation:!0}),placeholder:"gpt-4.1-mini",style:Mn})]})]}),c.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"0.75rem"},children:[c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Claude API Key"}),c.jsx("input",{type:"password",value:r.anthropicApiKey,onChange:ul=>il({anthropicApiKey:ul.target.value},{invalidateValidation:!0}),placeholder:"sk-ant-...",style:Mn})]}),c.jsxs("div",{children:[c.jsx("label",{style:et,children:"Claude Model"}),c.jsx("input",{value:r.anthropicModel,onChange:ul=>il({anthropicModel:ul.target.value,...r.slackDefaultProvider==="anthropic"?{slackDefaultModel:ul.target.value}:{}},{invalidateValidation:!0}),placeholder:"claude-3-7-sonnet-latest",style:Mn})]})]})]}),c.jsx("div",{style:{fontSize:"0.76rem",color:"#64748b",marginBottom:"1rem",lineHeight:1.6},children:"Slack and provider secrets are saved into your configured workspace storage. In local mode they stay on disk locally. In Google Drive mode they are stored in the workspace folder you selected."})]}),c.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"1rem"},children:[c.jsxs("div",{style:{fontSize:"0.82rem",flex:1},children:[nl==="idle"&&c.jsx("span",{style:{color:"#334155"},children:"Enter your credentials above and validate to connect"}),nl==="validating"&&c.jsx("span",{style:{color:"#f59e0b"},children:"⏳ Validating credentials…"}),nl==="valid"&&c.jsxs("span",{style:{color:"#4ade80"},children:["✓ ",Ll,j.id==="slack"&&Sl()?` · ${Sl()}`:""]}),nl==="invalid"&&c.jsxs("span",{style:{color:"#f87171"},children:["✕ ",Ll]})]}),c.jsxs("div",{style:{display:"flex",gap:"0.5rem",flexShrink:0},children:[c.jsx("button",{onClick:()=>Ol(j),disabled:!xl,style:{...Ud,background:xl?"#1e3a5f":"#0f172a",color:xl?"#93c5fd":"#334155",borderColor:xl?"#2d5c9e":"#1a2332",cursor:xl?"pointer":"not-allowed"},children:nl==="validating"?"Validating…":"Validate"}),c.jsx("button",{onClick:()=>Bl(j.id),disabled:!El,style:{...Ud,background:El?"#166534":"#0f172a",color:El?"#4ade80":"#334155",borderColor:El?"#15803d":"#1a2332",cursor:El?"pointer":"not-allowed",fontWeight:700},children:"Save"})]})]})]})]},j.id)})}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:X,children:"Continue"})]})]})}const Dd={background:"none",border:"1px solid #1a2332",borderRadius:6,padding:"5px 12px",color:"#475569",fontSize:"0.78rem",cursor:"pointer",fontWeight:500},Ay={border:"1px solid",borderRadius:6,padding:"5px 14px",fontSize:"0.8rem",fontWeight:600,cursor:"pointer",transition:"all 0.15s"},Ud={border:"1px solid",borderRadius:6,padding:"6px 16px",fontSize:"0.8rem",fontWeight:600,transition:"all 0.15s"},et={display:"block",fontSize:"0.78rem",color:"#64748b",marginBottom:"0.3rem",fontWeight:500},Mn={marginBottom:0,fontSize:"0.83rem",padding:"0.6rem 0.75rem",background:"#060d18",borderColor:"#1a2332"},zy={width:"100%",fontSize:"0.83rem",padding:"0.6rem 0.75rem",background:"#060d18",color:"#e2e8f0",border:"1px solid #1a2332",borderRadius:8},gf={width:"100%",fontSize:"0.83rem",padding:"0.6rem 0.75rem",background:"#060d18",color:"#e2e8f0",border:"1px solid #1a2332",borderRadius:8,minHeight:40,display:"flex",alignItems:"center"},jy=[{value:"America/New_York",label:"Eastern Time (ET)"},{value:"America/Chicago",label:"Central Time (CT)"},{value:"America/Denver",label:"Mountain Time (MT)"},{value:"America/Los_Angeles",label:"Pacific Time (PT)"},{value:"UTC",label:"UTC"},{value:"Europe/London",label:"London (GMT/BST)"},{value:"Europe/Berlin",label:"Berlin (CET)"},{value:"Asia/Tokyo",label:"Tokyo (JST)"},{value:"Asia/Kolkata",label:"India (IST)"},{value:"Australia/Sydney",label:"Sydney (AEST)"}];function Ey({state:r,update:D,onNext:X,onPrev:h}){return c.jsxs("div",{children:[c.jsx("h1",{children:"Sync Schedule"}),c.jsx("h2",{children:"When should context be refreshed?"}),c.jsx("label",{children:"Daily Sync Time"}),c.jsx("input",{type:"time",value:r.syncTime,onChange:M=>D({syncTime:M.target.value})}),c.jsx("label",{children:"Timezone"}),c.jsx("select",{value:r.timezone,onChange:M=>D({timezone:M.target.value}),children:jy.map(M=>c.jsx("option",{value:M.value,children:M.label},M.value))}),c.jsxs("div",{className:"checkbox-group",children:[c.jsxs("label",{className:"checkbox-item",children:[c.jsx("input",{type:"checkbox",checked:r.manualSync,onChange:M=>D({manualSync:M.target.checked})}),"Manual sync enabled"]}),c.jsxs("label",{className:"checkbox-item",children:[c.jsx("input",{type:"checkbox",checked:r.asyncUpdate,onChange:M=>D({asyncUpdate:M.target.checked})}),"Async updates enabled"]})]}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:h,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:X,children:"Continue"})]})]})}function My({state:r,onNext:D,onPrev:X}){const[h,M]=gl.useState(!1),[q,V]=gl.useState(""),U={user:{name:r.name,assistantName:r.assistantName,profileType:r.profileType,responsibilities:r.responsibilities},storage:r.storageMode==="local"?{mode:"local",workspacePath:r.localPath}:{mode:"gdrive",folderId:r.gdriveFolderId,folderName:r.gdriveFolderName,cachePath:`${r.localPath||".personal-assistant"}/cache`,credentials:{clientId:r.gdriveClientId,clientSecret:r.gdriveClientSecret,refreshToken:r.gdriveRefreshToken}},integrations:r.integrations.map(k=>({type:k,enabled:!0,credentials:r.integrationCredentials[k]??{}})),sync:{dailySyncTime:r.syncTime,timezone:r.timezone,manualSyncEnabled:r.manualSync,asyncUpdateEnabled:r.asyncUpdate},slackRuntime:r.integrations.includes("slack")?{enabled:!0,transport:"socket_mode",appToken:r.slackAppToken,reviewMode:r.slackReviewMode,generationEnabled:r.slackGenerationEnabled,defaultProvider:r.slackGenerationEnabled?r.slackDefaultProvider:void 0,defaultModel:r.slackGenerationEnabled?r.slackDefaultModel:void 0,channelMappings:[]}:void 0,providers:r.integrations.includes("slack")&&(r.openAIApiKey||r.anthropicApiKey)?{...r.openAIApiKey?{openai:{apiKey:r.openAIApiKey,model:r.openAIModel}}:{},...r.anthropicApiKey?{anthropic:{apiKey:r.anthropicApiKey,model:r.anthropicModel}}:{}}:void 0},_=Cy(U),T=async()=>{M(!0),V("");try{const B=await(await fetch("/api/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(U)})).json();B.success?D():V(B.error||"Failed to save configuration")}catch(k){V(String(k))}finally{M(!1)}};return c.jsxs("div",{children:[c.jsx("h1",{children:"All Set!"}),c.jsx("h2",{children:"Review and save your configuration"}),c.jsx("div",{className:"summary",children:JSON.stringify(_,null,2)}),q&&c.jsx("p",{style:{color:"#ef4444",marginBottom:"1rem"},children:q}),c.jsxs("div",{className:"btn-group",children:[c.jsx("button",{className:"btn-secondary",onClick:X,children:"Back"}),c.jsx("button",{className:"btn-primary",onClick:T,disabled:h,children:h?"Saving...":"Save & Finish"})]})]})}function Cy(r){return JSON.parse(JSON.stringify(r,(D,X)=>typeof X=="string"&&D.toLowerCase().includes("token")||typeof X=="string"&&D.toLowerCase().includes("secret")||typeof X=="string"&&D.toLowerCase().includes("apikey")?pf(X):X))}function pf(r){return r.length<=8?"********":`${r.slice(0,4)}…${r.slice(-4)}`}function Oy(){return c.jsxs("div",{className:"success",children:[c.jsx("h2",{children:"Setup Complete!"}),c.jsx("p",{style:{marginTop:"1rem",color:"#94a3b8"},children:"Your personal assistant context has been initialized."}),c.jsx("p",{style:{marginTop:"1rem",color:"#94a3b8"},children:"Next steps:"}),c.jsx("div",{className:"code-block",children:`# Install Claude Code integration
|
|
54
|
+
pacman claude install
|
|
55
|
+
pacman mcp claude install
|
|
56
|
+
|
|
57
|
+
# Install Codex integration
|
|
58
|
+
pacman codex install
|
|
59
|
+
pacman mcp codex install
|
|
60
|
+
|
|
61
|
+
# Start the sync daemon
|
|
62
|
+
pacman daemon
|
|
63
|
+
|
|
64
|
+
# Start the real-time Slack listener
|
|
65
|
+
pacman slack listen
|
|
66
|
+
|
|
67
|
+
# Atlas now auto-replies in the configured Slack channel(s)
|
|
68
|
+
# in any Slack channel/group where the bot is present,
|
|
69
|
+
# using project inference plus saved context
|
|
70
|
+
|
|
71
|
+
# Use in Claude Code
|
|
72
|
+
/personal-assistant start <project>
|
|
73
|
+
|
|
74
|
+
# Use in Codex
|
|
75
|
+
Ask Codex to load or refresh your Personal Assistant context for <project>`}),c.jsxs("p",{style:{marginTop:"1rem",color:"#64748b",fontSize:"0.85rem"},children:["Restart Claude Code or Codex after installing the MCP server.",c.jsx("br",{}),"Make sure ",c.jsx("code",{style:{background:"#1e293b",padding:"0 4px",borderRadius:3},children:"pacman"})," is available globally. If your shell already reserves ",c.jsx("code",{style:{background:"#1e293b",padding:"0 4px",borderRadius:3},children:"pacman"}),", the legacy alias ",c.jsx("code",{style:{background:"#1e293b",padding:"0 4px",borderRadius:3},children:"personal-assistant"})," still works.",c.jsx("br",{}),"For local repo testing, run:",c.jsx("br",{}),c.jsx("code",{style:{background:"#1e293b",padding:"2px 6px",borderRadius:3,display:"inline-block",marginTop:"0.4rem"},children:"pnpm setup && source ~/.zshrc && cd packages/cli && pnpm link --global"})]})]})}const _y={name:"",assistantName:"Atlas",profileType:"software-engineer",responsibilities:[],templateFiles:{},storageMode:"local",localPath:".personal-assistant",gdriveClientId:"",gdriveClientSecret:"",gdriveFolderId:"",gdriveFolderName:"Personal Assistant",gdriveFolderParent:"",gdriveFolderPath:"",gdriveRefreshToken:"",integrations:[],integrationCredentials:{},slackAppToken:"",slackChannelId:"",slackChannelName:"",slackReviewerUserId:"",slackReviewerDisplayName:"",slackReviewMode:"auto_send",slackGenerationEnabled:!0,slackDefaultProvider:"openai",slackDefaultModel:"gpt-4.1-mini",openAIApiKey:"",openAIModel:"gpt-4.1-mini",anthropicApiKey:"",anthropicModel:"claude-3-7-sonnet-latest",syncTime:"08:00",timezone:"America/New_York",manualSync:!0,asyncUpdate:!0},Rd=["Identity","Responsibilities","Template","Storage","Integrations","Schedule","Finish","Success"];function Ny(){const[r,D]=gl.useState(0),[X,h]=gl.useState(_y),M=U=>{h(_=>({..._,...U}))},q=()=>D(U=>Math.min(U+1,Rd.length-1)),V=()=>D(U=>Math.max(U-1,0));return c.jsxs("div",{className:"container",children:[c.jsx("div",{className:"progress",children:Rd.slice(0,-1).map((U,_)=>c.jsx("div",{className:`progress-dot ${_<r?"done":_===r?"current":""}`},_))}),r===0&&c.jsx(gy,{state:X,update:M,onNext:q}),r===1&&c.jsx(py,{state:X,update:M,onNext:q,onPrev:V}),r===2&&c.jsx(by,{state:X,update:M,onNext:q,onPrev:V}),r===3&&c.jsx(Sy,{state:X,update:M,onNext:q,onPrev:V}),r===4&&c.jsx(Ty,{state:X,update:M,onNext:q,onPrev:V}),r===5&&c.jsx(Ey,{state:X,update:M,onNext:q,onPrev:V}),r===6&&c.jsx(My,{state:X,onNext:q,onPrev:V}),r===7&&c.jsx(Oy,{})]})}vy.createRoot(document.getElementById("root")).render(c.jsx(fy.StrictMode,{children:c.jsx(Ny,{})}));
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>Personal Assistant - Setup</title>
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-DkFsbndL.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-D60Moe_-.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mukulaggarwal/pacman",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Privacy-first personal assistant context manager with MCP, onboarding, and Slack runtime",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -11,9 +11,7 @@
|
|
|
11
11
|
"main": "dist/index.js",
|
|
12
12
|
"types": "dist/index.d.ts",
|
|
13
13
|
"files": [
|
|
14
|
-
"dist
|
|
15
|
-
"dist/**/*.d.ts",
|
|
16
|
-
"dist/**/*.map",
|
|
14
|
+
"dist",
|
|
17
15
|
"README.md"
|
|
18
16
|
],
|
|
19
17
|
"homepage": "https://github.com/mukulaggarwal/personal-assistant-with-context",
|
|
@@ -38,8 +36,8 @@
|
|
|
38
36
|
"access": "public"
|
|
39
37
|
},
|
|
40
38
|
"scripts": {
|
|
41
|
-
"build": "tsup --config tsup.config.ts",
|
|
42
|
-
"dev": "tsup --config tsup.config.ts --watch",
|
|
39
|
+
"build": "pnpm --dir ../../apps/onboarding-web build && tsup --config tsup.config.ts && node ./scripts/copy-onboarding-assets.mjs",
|
|
40
|
+
"dev": "pnpm --dir ../../apps/onboarding-web build && tsup --config tsup.config.ts --watch",
|
|
43
41
|
"test": "vitest run",
|
|
44
42
|
"lint": "eslint src/",
|
|
45
43
|
"clean": "rm -rf dist"
|