diff --git a/packages/cli/src/ui/components/ModelDialog.tsx b/packages/cli/src/ui/components/ModelDialog.tsx index 88be57b841..8b5d27c138 100644 --- a/packages/cli/src/ui/components/ModelDialog.tsx +++ b/packages/cli/src/ui/components/ModelDialog.tsx @@ -9,6 +9,7 @@ import { useCallback, useContext, useMemo, useState } from 'react'; import { Box, Text } from 'ink'; import { PREVIEW_GEMINI_MODEL, + PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_MODEL, @@ -37,6 +38,7 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element { const preferredModel = config?.getModel() || DEFAULT_GEMINI_MODEL_AUTO; const shouldShowPreviewModels = config?.getHasAccessToPreviewModel(); + const useGemini31 = config?.getGemini31LaunchedSync?.() ?? false; const manualModelSelected = useMemo(() => { const manualModels = [ @@ -44,6 +46,7 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element { DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, PREVIEW_GEMINI_MODEL, + PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_FLASH_MODEL, ]; if (manualModels.includes(preferredModel)) { @@ -94,13 +97,14 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element { list.unshift({ value: PREVIEW_GEMINI_MODEL_AUTO, title: getDisplayString(PREVIEW_GEMINI_MODEL_AUTO), - description: - 'Let Gemini CLI decide the best model for the task: gemini-3-pro, gemini-3-flash', + description: useGemini31 + ? 'Let Gemini CLI decide the best model for the task: gemini-3.1-pro, gemini-3-flash' + : 'Let Gemini CLI decide the best model for the task: gemini-3-pro, gemini-3-flash', key: PREVIEW_GEMINI_MODEL_AUTO, }); } return list; - }, [shouldShowPreviewModels, manualModelSelected]); + }, [shouldShowPreviewModels, manualModelSelected, useGemini31]); const manualOptions = useMemo(() => { const list = [ @@ -124,9 +128,9 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element { if (shouldShowPreviewModels) { list.unshift( { - value: PREVIEW_GEMINI_MODEL, - title: PREVIEW_GEMINI_MODEL, - key: PREVIEW_GEMINI_MODEL, + value: useGemini31 ? PREVIEW_GEMINI_3_1_MODEL : PREVIEW_GEMINI_MODEL, + title: useGemini31 ? PREVIEW_GEMINI_3_1_MODEL : PREVIEW_GEMINI_MODEL, + key: useGemini31 ? PREVIEW_GEMINI_3_1_MODEL : PREVIEW_GEMINI_MODEL, }, { value: PREVIEW_GEMINI_FLASH_MODEL, @@ -136,7 +140,7 @@ export function ModelDialog({ onClose }: ModelDialogProps): React.JSX.Element { ); } return list; - }, [shouldShowPreviewModels]); + }, [shouldShowPreviewModels, useGemini31]); const options = view === 'main' ? mainOptions : manualOptions; diff --git a/packages/cli/src/ui/components/StatsDisplay.tsx b/packages/cli/src/ui/components/StatsDisplay.tsx index f901b6f9d2..da4e6e901c 100644 --- a/packages/cli/src/ui/components/StatsDisplay.tsx +++ b/packages/cli/src/ui/components/StatsDisplay.tsx @@ -23,11 +23,12 @@ import { import { computeSessionStats } from '../utils/computeStats.js'; import { type RetrieveUserQuotaResponse, - VALID_GEMINI_MODELS, + isActiveModel, getDisplayString, isAutoModel, } from '@google/gemini-cli-core'; import { useSettings } from '../contexts/SettingsContext.js'; +import { useConfig } from '../contexts/ConfigContext.js'; import type { QuotaStats } from '../types.js'; import { QuotaStatsInfo } from './QuotaStatsInfo.js'; @@ -82,6 +83,7 @@ const Section: React.FC = ({ title, children }) => ( const buildModelRows = ( models: Record, quotas?: RetrieveUserQuotaResponse, + useGemini3_1 = false, ) => { const getBaseModelName = (name: string) => name.replace('-001', ''); const usedModelNames = new Set(Object.keys(models).map(getBaseModelName)); @@ -109,7 +111,7 @@ const buildModelRows = ( ?.filter( (b) => b.modelId && - VALID_GEMINI_MODELS.has(b.modelId) && + isActiveModel(b.modelId, useGemini3_1) && !usedModelNames.has(b.modelId), ) .map((bucket) => ({ @@ -135,6 +137,7 @@ const ModelUsageTable: React.FC<{ pooledRemaining?: number; pooledLimit?: number; pooledResetTime?: string; + useGemini3_1?: boolean; }> = ({ models, quotas, @@ -144,8 +147,9 @@ const ModelUsageTable: React.FC<{ pooledRemaining, pooledLimit, pooledResetTime, + useGemini3_1 = false, }) => { - const rows = buildModelRows(models, quotas); + const rows = buildModelRows(models, quotas, useGemini3_1); if (rows.length === 0) { return null; @@ -401,6 +405,8 @@ export const StatsDisplay: React.FC = ({ const { models, tools, files } = metrics; const computed = computeSessionStats(metrics); const settings = useSettings(); + const config = useConfig(); + const useGemini3_1 = config.getGemini31LaunchedSync?.() ?? false; const pooledRemaining = quotaStats?.remaining; const pooledLimit = quotaStats?.limit; @@ -535,6 +541,7 @@ export const StatsDisplay: React.FC = ({ pooledRemaining={pooledRemaining} pooledLimit={pooledLimit} pooledResetTime={pooledResetTime} + useGemini3_1={useGemini3_1} /> ); diff --git a/packages/cli/src/ui/hooks/useQuotaAndFallback.ts b/packages/cli/src/ui/hooks/useQuotaAndFallback.ts index e00460eb15..d0dbfd52a6 100644 --- a/packages/cli/src/ui/hooks/useQuotaAndFallback.ts +++ b/packages/cli/src/ui/hooks/useQuotaAndFallback.ts @@ -14,9 +14,8 @@ import { TerminalQuotaError, ModelNotFoundError, type UserTierId, - PREVIEW_GEMINI_MODEL, - DEFAULT_GEMINI_MODEL, VALID_GEMINI_MODELS, + isProModel, } from '@google/gemini-cli-core'; import { useCallback, useEffect, useRef, useState } from 'react'; import { type UseHistoryManagerReturn } from './useHistoryManager.js'; @@ -67,11 +66,9 @@ export function useQuotaAndFallback({ let message: string; let isTerminalQuotaError = false; let isModelNotFoundError = false; - const usageLimitReachedModel = - failedModel === DEFAULT_GEMINI_MODEL || - failedModel === PREVIEW_GEMINI_MODEL - ? 'all Pro models' - : failedModel; + const usageLimitReachedModel = isProModel(failedModel) + ? 'all Pro models' + : failedModel; if (error instanceof TerminalQuotaError) { isTerminalQuotaError = true; // Common part of the message for both tiers diff --git a/packages/cli/src/zed-integration/zedIntegration.ts b/packages/cli/src/zed-integration/zedIntegration.ts index 57d8dec3a8..108eb6d60f 100644 --- a/packages/cli/src/zed-integration/zedIntegration.ts +++ b/packages/cli/src/zed-integration/zedIntegration.ts @@ -483,7 +483,10 @@ export class Session { const functionCalls: FunctionCall[] = []; try { - const model = resolveModel(this.config.getModel()); + const model = resolveModel( + this.config.getModel(), + (await this.config.getGemini31Launched?.()) ?? false, + ); const responseStream = await chat.sendMessageStream( { model }, nextMessage?.parts ?? [], diff --git a/packages/core/src/availability/policyHelpers.ts b/packages/core/src/availability/policyHelpers.ts index 4d65b84d77..671f1f8be5 100644 --- a/packages/core/src/availability/policyHelpers.ts +++ b/packages/core/src/availability/policyHelpers.ts @@ -43,7 +43,10 @@ export function resolvePolicyChain( const configuredModel = config.getModel(); let chain; - const resolvedModel = resolveModel(modelFromConfig); + const resolvedModel = resolveModel( + modelFromConfig, + config.getGemini31LaunchedSync?.() ?? false, + ); const isAutoPreferred = preferredModel ? isAutoModel(preferredModel) : false; const isAutoConfigured = isAutoModel(configuredModel); diff --git a/packages/core/src/code_assist/experiments/flagNames.ts b/packages/core/src/code_assist/experiments/flagNames.ts index 03b6aaac0a..e1ae2a1af2 100644 --- a/packages/core/src/code_assist/experiments/flagNames.ts +++ b/packages/core/src/code_assist/experiments/flagNames.ts @@ -16,6 +16,7 @@ export const ExperimentFlags = { MASKING_PROTECTION_THRESHOLD: 45758817, MASKING_PRUNABLE_THRESHOLD: 45758818, MASKING_PROTECT_LATEST_TURN: 45758819, + GEMINI_3_1_PRO_LAUNCHED: 45760185, } as const; export type ExperimentFlagName = diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts index 8f94756ee9..2597c9fd50 100644 --- a/packages/core/src/config/config.ts +++ b/packages/core/src/config/config.ts @@ -1023,6 +1023,12 @@ export class Config { // Reset availability status when switching auth (e.g. from limited key to OAuth) this.modelAvailabilityService.reset(); + // Clear stale authType to ensure getGemini31LaunchedSync doesn't return stale results + // during the transition. + if (this.contentGeneratorConfig) { + this.contentGeneratorConfig.authType = undefined; + } + const newContentGeneratorConfig = await createContentGeneratorConfig( this, authMethod, @@ -1298,7 +1304,10 @@ export class Config { if (pooled.remaining !== undefined) { return pooled.remaining; } - const primaryModel = resolveModel(this.getModel()); + const primaryModel = resolveModel( + this.getModel(), + this.getGemini31LaunchedSync(), + ); return this.modelQuotas.get(primaryModel)?.remaining; } @@ -1307,7 +1316,10 @@ export class Config { if (pooled.limit !== undefined) { return pooled.limit; } - const primaryModel = resolveModel(this.getModel()); + const primaryModel = resolveModel( + this.getModel(), + this.getGemini31LaunchedSync(), + ); return this.modelQuotas.get(primaryModel)?.limit; } @@ -1316,7 +1328,10 @@ export class Config { if (pooled.resetTime !== undefined) { return pooled.resetTime; } - const primaryModel = resolveModel(this.getModel()); + const primaryModel = resolveModel( + this.getModel(), + this.getGemini31LaunchedSync(), + ); return this.modelQuotas.get(primaryModel)?.resetTime; } @@ -2145,6 +2160,36 @@ export class Config { ); } + /** + * Returns whether Gemini 3.1 has been launched. + * This method is async and ensures that experiments are loaded before returning the result. + */ + async getGemini31Launched(): Promise { + await this.ensureExperimentsLoaded(); + return this.getGemini31LaunchedSync(); + } + + /** + * Returns whether Gemini 3.1 has been launched. + * + * Note: This method should only be called after startup, once experiments have been loaded. + * If you need to call this during startup or from an async context, use + * getGemini31Launched instead. + */ + getGemini31LaunchedSync(): boolean { + const authType = this.contentGeneratorConfig?.authType; + if ( + authType === AuthType.USE_GEMINI || + authType === AuthType.USE_VERTEX_AI + ) { + return true; + } + return ( + this.experiments?.flags[ExperimentFlags.GEMINI_3_1_PRO_LAUNCHED] + ?.boolValue ?? false + ); + } + private async ensureExperimentsLoaded(): Promise { if (!this.experimentsPromise) { return; diff --git a/packages/core/src/config/models.test.ts b/packages/core/src/config/models.test.ts index 8ece4ce56c..bf957d57ce 100644 --- a/packages/core/src/config/models.test.ts +++ b/packages/core/src/config/models.test.ts @@ -23,6 +23,7 @@ import { PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_MODEL_AUTO, + isActiveModel, } from './models.js'; describe('isGemini3Model', () => { @@ -194,3 +195,24 @@ describe('resolveClassifierModel', () => { ).toBe(PREVIEW_GEMINI_MODEL); }); }); + +describe('isActiveModel', () => { + it('should return true for valid models when useGemini3_1 is false', () => { + expect(isActiveModel(DEFAULT_GEMINI_MODEL)).toBe(true); + expect(isActiveModel(PREVIEW_GEMINI_MODEL)).toBe(true); + expect(isActiveModel(DEFAULT_GEMINI_FLASH_MODEL)).toBe(true); + }); + + it('should return false for invalid models', () => { + expect(isActiveModel('invalid-model')).toBe(false); + expect(isActiveModel(GEMINI_MODEL_ALIAS_AUTO)).toBe(false); + }); + + it('should return false for PREVIEW_GEMINI_MODEL when useGemini3_1 is true', () => { + expect(isActiveModel(PREVIEW_GEMINI_MODEL, true)).toBe(false); + }); + + it('should return true for other valid models when useGemini3_1 is true', () => { + expect(isActiveModel(DEFAULT_GEMINI_MODEL, true)).toBe(true); + }); +}); diff --git a/packages/core/src/config/models.ts b/packages/core/src/config/models.ts index 5bdd15e792..39a4d4134a 100644 --- a/packages/core/src/config/models.ts +++ b/packages/core/src/config/models.ts @@ -5,6 +5,7 @@ */ export const PREVIEW_GEMINI_MODEL = 'gemini-3-pro-preview'; +export const PREVIEW_GEMINI_3_1_MODEL = 'gemini-3.1-pro-preview'; export const PREVIEW_GEMINI_FLASH_MODEL = 'gemini-3-flash-preview'; export const DEFAULT_GEMINI_MODEL = 'gemini-2.5-pro'; export const DEFAULT_GEMINI_FLASH_MODEL = 'gemini-2.5-flash'; @@ -12,6 +13,7 @@ export const DEFAULT_GEMINI_FLASH_LITE_MODEL = 'gemini-2.5-flash-lite'; export const VALID_GEMINI_MODELS = new Set([ PREVIEW_GEMINI_MODEL, + PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, @@ -37,19 +39,24 @@ export const DEFAULT_THINKING_MODE = 8192; * to a concrete model name. * * @param requestedModel The model alias or concrete model name requested by the user. + * @param useGemini3_1 Whether to use Gemini 3.1 Pro Preview for auto/pro aliases. * @returns The resolved concrete model name. */ -export function resolveModel(requestedModel: string): string { +export function resolveModel( + requestedModel: string, + useGemini3_1: boolean = false, +): string { switch (requestedModel) { + case PREVIEW_GEMINI_MODEL: case PREVIEW_GEMINI_MODEL_AUTO: { - return PREVIEW_GEMINI_MODEL; + return useGemini3_1 ? PREVIEW_GEMINI_3_1_MODEL : PREVIEW_GEMINI_MODEL; } case DEFAULT_GEMINI_MODEL_AUTO: { return DEFAULT_GEMINI_MODEL; } case GEMINI_MODEL_ALIAS_AUTO: case GEMINI_MODEL_ALIAS_PRO: { - return PREVIEW_GEMINI_MODEL; + return useGemini3_1 ? PREVIEW_GEMINI_3_1_MODEL : PREVIEW_GEMINI_MODEL; } case GEMINI_MODEL_ALIAS_FLASH: { return PREVIEW_GEMINI_FLASH_MODEL; @@ -115,11 +122,26 @@ export function getDisplayString(model: string) { export function isPreviewModel(model: string): boolean { return ( model === PREVIEW_GEMINI_MODEL || + model === PREVIEW_GEMINI_3_1_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_MODEL_AUTO ); } +/** + * Checks if the model is a Pro model. + * + * @param model The model name to check. + * @returns True if the model is a Pro model. + */ +export function isProModel(model: string): boolean { + return ( + model === PREVIEW_GEMINI_MODEL || + model === PREVIEW_GEMINI_3_1_MODEL || + model === DEFAULT_GEMINI_MODEL + ); +} + /** * Checks if the model is a Gemini 3 model. * @@ -165,3 +187,24 @@ export function isAutoModel(model: string): boolean { export function supportsMultimodalFunctionResponse(model: string): boolean { return model.startsWith('gemini-3-'); } + +/** + * Checks if the given model is considered active based on the current configuration. + * + * @param model The model name to check. + * @param useGemini3_1 Whether Gemini 3.1 Pro Preview is enabled. + * @returns True if the model is active. + */ +export function isActiveModel( + model: string, + useGemini3_1: boolean = false, +): boolean { + if (!VALID_GEMINI_MODELS.has(model)) { + return false; + } + if (useGemini3_1) { + return model !== PREVIEW_GEMINI_MODEL; + } else { + return model !== PREVIEW_GEMINI_3_1_MODEL; + } +} diff --git a/packages/core/src/core/client.ts b/packages/core/src/core/client.ts index 6b6bdecfbc..8047581c0b 100644 --- a/packages/core/src/core/client.ts +++ b/packages/core/src/core/client.ts @@ -541,7 +541,10 @@ export class GeminiClient { // Availability logic: The configured model is the source of truth, // including any permanent fallbacks (config.setModel) or manual overrides. - return resolveModel(this.config.getActiveModel()); + return resolveModel( + this.config.getActiveModel(), + this.config.getGemini31LaunchedSync?.() ?? false, + ); } private async *processTurn( diff --git a/packages/core/src/core/contentGenerator.ts b/packages/core/src/core/contentGenerator.ts index c0bb4909a1..01ddb4c21e 100644 --- a/packages/core/src/core/contentGenerator.ts +++ b/packages/core/src/core/contentGenerator.ts @@ -122,7 +122,12 @@ export async function createContentGenerator( return new LoggingContentGenerator(fakeGenerator, gcConfig); } const version = await getVersion(); - const model = resolveModel(gcConfig.getModel()); + const model = resolveModel( + gcConfig.getModel(), + config.authType === AuthType.USE_GEMINI || + config.authType === AuthType.USE_VERTEX_AI || + ((await gcConfig.getGemini31Launched?.()) ?? false), + ); const customHeadersEnv = process.env['GEMINI_CLI_CUSTOM_HEADERS'] || undefined; const userAgent = `GeminiCLI/${version}/${model} (${process.platform}; ${process.arch})`; diff --git a/packages/core/src/core/geminiChat.ts b/packages/core/src/core/geminiChat.ts index 70a2a00282..8bb395ed17 100644 --- a/packages/core/src/core/geminiChat.ts +++ b/packages/core/src/core/geminiChat.ts @@ -492,13 +492,14 @@ export class GeminiChat { const initialActiveModel = this.config.getActiveModel(); const apiCall = async () => { + const useGemini3_1 = (await this.config.getGemini31Launched?.()) ?? false; // Default to the last used model (which respects arguments/availability selection) - let modelToUse = resolveModel(lastModelToUse); + let modelToUse = resolveModel(lastModelToUse, useGemini3_1); // If the active model has changed (e.g. due to a fallback updating the config), // we switch to the new active model. if (this.config.getActiveModel() !== initialActiveModel) { - modelToUse = resolveModel(this.config.getActiveModel()); + modelToUse = resolveModel(this.config.getActiveModel(), useGemini3_1); } if (modelToUse !== lastModelToUse) { diff --git a/packages/core/src/prompts/promptProvider.ts b/packages/core/src/prompts/promptProvider.ts index 47f7e936cf..1e02493056 100644 --- a/packages/core/src/prompts/promptProvider.ts +++ b/packages/core/src/prompts/promptProvider.ts @@ -58,7 +58,10 @@ export class PromptProvider { const enabledToolNames = new Set(toolNames); const approvedPlanPath = config.getApprovedPlanPath(); - const desiredModel = resolveModel(config.getActiveModel()); + const desiredModel = resolveModel( + config.getActiveModel(), + config.getGemini31LaunchedSync?.() ?? false, + ); const isGemini3 = isPreviewModel(desiredModel); const activeSnippets = isGemini3 ? snippets : legacySnippets; const contextFilenames = getAllGeminiMdFilenames(); @@ -233,7 +236,10 @@ export class PromptProvider { } getCompressionPrompt(config: Config): string { - const desiredModel = resolveModel(config.getActiveModel()); + const desiredModel = resolveModel( + config.getActiveModel(), + config.getGemini31LaunchedSync?.() ?? false, + ); const isGemini3 = isPreviewModel(desiredModel); const activeSnippets = isGemini3 ? snippets : legacySnippets; return activeSnippets.getCompressionPrompt(); diff --git a/packages/core/src/routing/strategies/defaultStrategy.ts b/packages/core/src/routing/strategies/defaultStrategy.ts index e5b89eb1b3..1f5b7e54c2 100644 --- a/packages/core/src/routing/strategies/defaultStrategy.ts +++ b/packages/core/src/routing/strategies/defaultStrategy.ts @@ -21,7 +21,10 @@ export class DefaultStrategy implements TerminalStrategy { config: Config, _baseLlmClient: BaseLlmClient, ): Promise { - const defaultModel = resolveModel(config.getModel()); + const defaultModel = resolveModel( + config.getModel(), + config.getGemini31LaunchedSync?.() ?? false, + ); return { model: defaultModel, metadata: { diff --git a/packages/core/src/routing/strategies/fallbackStrategy.ts b/packages/core/src/routing/strategies/fallbackStrategy.ts index d568039cbc..a18e4fc4dd 100644 --- a/packages/core/src/routing/strategies/fallbackStrategy.ts +++ b/packages/core/src/routing/strategies/fallbackStrategy.ts @@ -23,7 +23,10 @@ export class FallbackStrategy implements RoutingStrategy { _baseLlmClient: BaseLlmClient, ): Promise { const requestedModel = context.requestedModel ?? config.getModel(); - const resolvedModel = resolveModel(requestedModel); + const resolvedModel = resolveModel( + requestedModel, + config.getGemini31LaunchedSync?.() ?? false, + ); const service = config.getModelAvailabilityService(); const snapshot = service.snapshot(resolvedModel); diff --git a/packages/core/src/routing/strategies/overrideStrategy.ts b/packages/core/src/routing/strategies/overrideStrategy.ts index b8382407bd..5101ba9fe7 100644 --- a/packages/core/src/routing/strategies/overrideStrategy.ts +++ b/packages/core/src/routing/strategies/overrideStrategy.ts @@ -33,7 +33,10 @@ export class OverrideStrategy implements RoutingStrategy { // Return the overridden model name. return { - model: resolveModel(overrideModel), + model: resolveModel( + overrideModel, + config.getGemini31LaunchedSync?.() ?? false, + ), metadata: { source: this.name, latencyMs: 0, diff --git a/packages/core/src/services/chatCompressionService.ts b/packages/core/src/services/chatCompressionService.ts index 90101052d9..f2ac987ee0 100644 --- a/packages/core/src/services/chatCompressionService.ts +++ b/packages/core/src/services/chatCompressionService.ts @@ -29,6 +29,7 @@ import { DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_FLASH_MODEL, + PREVIEW_GEMINI_3_1_MODEL, } from '../config/models.js'; import { PreCompressTrigger } from '../hooks/types.js'; @@ -100,6 +101,7 @@ export function findCompressSplitPoint( export function modelStringToModelConfigAlias(model: string): string { switch (model) { case PREVIEW_GEMINI_MODEL: + case PREVIEW_GEMINI_3_1_MODEL: return 'chat-compression-3-pro'; case PREVIEW_GEMINI_FLASH_MODEL: return 'chat-compression-3-flash'; diff --git a/packages/devtools/src/_client-assets.ts b/packages/devtools/src/_client-assets.ts new file mode 100644 index 0000000000..c11597fd81 --- /dev/null +++ b/packages/devtools/src/_client-assets.ts @@ -0,0 +1,11 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +// Auto-generated by esbuild.client.js — do not edit +export const INDEX_HTML = + '\n\n \n \n \n Gemini CLI DevTools\n \n \n \n
\n \n \n\n'; +export const CLIENT_JS = + 'var ty=Object.create;var Wf=Object.defineProperty;var ey=Object.getOwnPropertyDescriptor;var ay=Object.getOwnPropertyNames;var ny=Object.getPrototypeOf,uy=Object.prototype.hasOwnProperty;var Il=(l,t)=>()=>(t||l((t={exports:{}}).exports,t),t.exports);var iy=(l,t,e,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of ay(t))!uy.call(l,n)&&n!==e&&Wf(l,n,{get:()=>t[n],enumerable:!(a=ey(t,n))||a.enumerable});return l};var Mt=(l,t,e)=>(e=l!=null?ty(ny(l)):{},iy(t||!l||!l.__esModule?Wf(e,"default",{value:l,enumerable:!0}):e,l));var io=Il(U=>{"use strict";var ui=Symbol.for("react.transitional.element"),cy=Symbol.for("react.portal"),fy=Symbol.for("react.fragment"),oy=Symbol.for("react.strict_mode"),sy=Symbol.for("react.profiler"),dy=Symbol.for("react.consumer"),yy=Symbol.for("react.context"),vy=Symbol.for("react.forward_ref"),my=Symbol.for("react.suspense"),ry=Symbol.for("react.memo"),lo=Symbol.for("react.lazy"),hy=Symbol.for("react.activity"),$f=Symbol.iterator;function gy(l){return l===null||typeof l!="object"?null:(l=$f&&l[$f]||l["@@iterator"],typeof l=="function"?l:null)}var to={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},eo=Object.assign,ao={};function xe(l,t,e){this.props=l,this.context=t,this.refs=ao,this.updater=e||to}xe.prototype.isReactComponent={};xe.prototype.setState=function(l,t){if(typeof l!="object"&&typeof l!="function"&&l!=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,l,t,"setState")};xe.prototype.forceUpdate=function(l){this.updater.enqueueForceUpdate(this,l,"forceUpdate")};function no(){}no.prototype=xe.prototype;function ii(l,t,e){this.props=l,this.context=t,this.refs=ao,this.updater=e||to}var ci=ii.prototype=new no;ci.constructor=ii;eo(ci,xe.prototype);ci.isPureReactComponent=!0;var Ff=Array.isArray;function ni(){}var K={H:null,A:null,T:null,S:null},uo=Object.prototype.hasOwnProperty;function fi(l,t,e){var a=e.ref;return{$$typeof:ui,type:l,key:t,ref:a!==void 0?a:null,props:e}}function Sy(l,t){return fi(l.type,t,l.props)}function oi(l){return typeof l=="object"&&l!==null&&l.$$typeof===ui}function py(l){var t={"=":"=0",":":"=2"};return"$"+l.replace(/[=:]/g,function(e){return t[e]})}var If=/\\/+/g;function ai(l,t){return typeof l=="object"&&l!==null&&l.key!=null?py(""+l.key):t.toString(36)}function by(l){switch(l.status){case"fulfilled":return l.value;case"rejected":throw l.reason;default:switch(typeof l.status=="string"?l.then(ni,ni):(l.status="pending",l.then(function(t){l.status==="pending"&&(l.status="fulfilled",l.value=t)},function(t){l.status==="pending"&&(l.status="rejected",l.reason=t)})),l.status){case"fulfilled":return l.value;case"rejected":throw l.reason}}throw l}function Te(l,t,e,a,n){var u=typeof l;(u==="undefined"||u==="boolean")&&(l=null);var i=!1;if(l===null)i=!0;else switch(u){case"bigint":case"string":case"number":i=!0;break;case"object":switch(l.$$typeof){case ui:case cy:i=!0;break;case lo:return i=l._init,Te(i(l._payload),t,e,a,n)}}if(i)return n=n(l),i=a===""?"."+ai(l,0):a,Ff(n)?(e="",i!=null&&(e=i.replace(If,"$&/")+"/"),Te(n,t,e,"",function(s){return s})):n!=null&&(oi(n)&&(n=Sy(n,e+(n.key==null||l&&l.key===n.key?"":(""+n.key).replace(If,"$&/")+"/")+i)),t.push(n)),1;i=0;var c=a===""?".":a+":";if(Ff(l))for(var f=0;f{"use strict";co.exports=io()});var So=Il($=>{"use strict";function vi(l,t){var e=l.length;l.push(t);l:for(;0>>1,n=l[a];if(0>>1;aMn(c,e))fMn(s,c)?(l[a]=s,l[f]=e,a=f):(l[a]=c,l[i]=e,a=i);else if(fMn(s,e))l[a]=s,l[f]=e,a=f;else break l}}return t}function Mn(l,t){var e=l.sortIndex-t.sortIndex;return e!==0?e:l.id-t.id}$.unstable_now=void 0;typeof performance=="object"&&typeof performance.now=="function"?(fo=performance,$.unstable_now=function(){return fo.now()}):(si=Date,oo=si.now(),$.unstable_now=function(){return si.now()-oo});var fo,si,oo,it=[],Ot=[],Ty=1,Ll=null,gl=3,mi=!1,pa=!1,ba=!1,ri=!1,vo=typeof setTimeout=="function"?setTimeout:null,mo=typeof clearTimeout=="function"?clearTimeout:null,so=typeof setImmediate<"u"?setImmediate:null;function On(l){for(var t=Pl(Ot);t!==null;){if(t.callback===null)_n(Ot);else if(t.startTime<=l)_n(Ot),t.sortIndex=t.expirationTime,vi(it,t);else break;t=Pl(Ot)}}function hi(l){if(ba=!1,On(l),!pa)if(Pl(it)!==null)pa=!0,Oe||(Oe=!0,Me());else{var t=Pl(Ot);t!==null&&gi(hi,t.startTime-l)}}var Oe=!1,za=-1,ro=5,ho=-1;function go(){return ri?!0:!($.unstable_now()-hol&&go());){var a=Ll.callback;if(typeof a=="function"){Ll.callback=null,gl=Ll.priorityLevel;var n=a(Ll.expirationTime<=l);if(l=$.unstable_now(),typeof n=="function"){Ll.callback=n,On(l),t=!0;break t}Ll===Pl(it)&&_n(it),On(l)}else _n(it);Ll=Pl(it)}if(Ll!==null)t=!0;else{var u=Pl(Ot);u!==null&&gi(hi,u.startTime-l),t=!1}}break l}finally{Ll=null,gl=e,mi=!1}t=void 0}}finally{t?Me():Oe=!1}}}var Me;typeof so=="function"?Me=function(){so(di)}:typeof MessageChannel<"u"?(yi=new MessageChannel,yo=yi.port2,yi.port1.onmessage=di,Me=function(){yo.postMessage(null)}):Me=function(){vo(di,0)};var yi,yo;function gi(l,t){za=vo(function(){l($.unstable_now())},t)}$.unstable_IdlePriority=5;$.unstable_ImmediatePriority=1;$.unstable_LowPriority=4;$.unstable_NormalPriority=3;$.unstable_Profiling=null;$.unstable_UserBlockingPriority=2;$.unstable_cancelCallback=function(l){l.callback=null};$.unstable_forceFrameRate=function(l){0>l||125a?(l.sortIndex=e,vi(Ot,l),Pl(it)===null&&l===Pl(Ot)&&(ba?(mo(za),za=-1):ba=!0,gi(hi,e-a))):(l.sortIndex=n,vi(it,l),pa||mi||(pa=!0,Oe||(Oe=!0,Me()))),l};$.unstable_shouldYield=go;$.unstable_wrapCallback=function(l){var t=gl;return function(){var e=gl;gl=t;try{return l.apply(this,arguments)}finally{gl=e}}}});var bo=Il((dr,po)=>{"use strict";po.exports=So()});var Eo=Il(pl=>{"use strict";var xy=Ae();function zo(l){var t="https://react.dev/errors/"+l;if(1{"use strict";function To(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(To)}catch(l){console.error(l)}}To(),xo.exports=Eo()});var Y1=Il(li=>{"use strict";var fl=bo(),Fs=Ae(),Oy=Ao();function p(l){var t="https://react.dev/errors/"+l;if(1Re||(l.current=ec[Re],ec[Re]=null,Re--)}function V(l,t){Re++,ec[Re]=l.current,l.current=t}var at=nt(null),ka=nt(null),jt=nt(null),ou=nt(null);function su(l,t){switch(V(jt,t),V(ka,l),V(at,null),t.nodeType){case 9:case 11:l=(l=t.documentElement)&&(l=l.namespaceURI)?Rs(l):0;break;default:if(l=t.tagName,t=t.namespaceURI)t=Rs(t),l=T1(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}dl(at),V(at,l)}function Ie(){dl(at),dl(ka),dl(jt)}function ac(l){l.memoizedState!==null&&V(ou,l);var t=at.current,e=T1(t,l.type);t!==e&&(V(ka,l),V(at,e))}function du(l){ka.current===l&&(dl(at),dl(ka)),ou.current===l&&(dl(ou),un._currentValue=ie)}var Si,_o;function ee(l){if(Si===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\\n( *(at )?)/);Si=t&&t[1]||"",_o=-1)":-1n||f[a]!==s[n]){var v=`\n`+f[a].replace(" at new "," at ");return l.displayName&&v.includes("")&&(v=v.replace("",l.displayName)),v}while(1<=a&&0<=n);break}}}finally{pi=!1,Error.prepareStackTrace=e}return(e=l?l.displayName||l.name:"")?ee(e):""}function Cy(l,t){switch(l.tag){case 26:case 27:case 5:return ee(l.type);case 16:return ee("Lazy");case 13:return l.child!==t&&t!==null?ee("Suspense Fallback"):ee("Suspense");case 19:return ee("SuspenseList");case 0:case 15:return bi(l.type,!1);case 11:return bi(l.type.render,!1);case 1:return bi(l.type,!0);case 31:return ee("Activity");default:return""}}function Do(l){try{var t="",e=null;do t+=Cy(l,e),e=l,l=l.return;while(l);return t}catch(a){return`\nError generating stack: `+a.message+`\n`+a.stack}}var nc=Object.prototype.hasOwnProperty,kc=fl.unstable_scheduleCallback,zi=fl.unstable_cancelCallback,Hy=fl.unstable_shouldYield,Ry=fl.unstable_requestPaint,Cl=fl.unstable_now,By=fl.unstable_getCurrentPriorityLevel,nd=fl.unstable_ImmediatePriority,ud=fl.unstable_UserBlockingPriority,yu=fl.unstable_NormalPriority,qy=fl.unstable_LowPriority,id=fl.unstable_IdlePriority,Yy=fl.log,Ly=fl.unstable_setDisableYieldValue,sn=null,Hl=null;function Bt(l){if(typeof Yy=="function"&&Ly(l),Hl&&typeof Hl.setStrictMode=="function")try{Hl.setStrictMode(sn,l)}catch{}}var Rl=Math.clz32?Math.clz32:Xy,Gy=Math.log,jy=Math.LN2;function Xy(l){return l>>>=0,l===0?32:31-(Gy(l)/jy|0)|0}var Nn=256,Cn=262144,Hn=4194304;function ae(l){var t=l&42;if(t!==0)return t;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 Lu(l,t,e){var a=l.pendingLanes;if(a===0)return 0;var n=0,u=l.suspendedLanes,i=l.pingedLanes;l=l.warmLanes;var c=a&134217727;return c!==0?(a=c&~u,a!==0?n=ae(a):(i&=c,i!==0?n=ae(i):e||(e=c&~l,e!==0&&(n=ae(e))))):(c=a&~u,c!==0?n=ae(c):i!==0?n=ae(i):e||(e=a&~l,e!==0&&(n=ae(e)))),n===0?0:t!==0&&t!==n&&(t&u)===0&&(u=n&-n,e=t&-t,u>=e||u===32&&(e&4194048)!==0)?t:n}function dn(l,t){return(l.pendingLanes&~(l.suspendedLanes&~l.pingedLanes)&t)===0}function Qy(l,t){switch(l){case 1:case 2:case 4:case 8:case 64:return t+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 t+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 cd(){var l=Hn;return Hn<<=1,(Hn&62914560)===0&&(Hn=4194304),l}function Ei(l){for(var t=[],e=0;31>e;e++)t.push(l);return t}function yn(l,t){l.pendingLanes|=t,t!==268435456&&(l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0)}function Zy(l,t,e,a,n,u){var i=l.pendingLanes;l.pendingLanes=e,l.suspendedLanes=0,l.pingedLanes=0,l.warmLanes=0,l.expiredLanes&=e,l.entangledLanes&=e,l.errorRecoveryDisabledLanes&=e,l.shellSuspendCounter=0;var c=l.entanglements,f=l.expirationTimes,s=l.hiddenUpdates;for(e=i&~e;0"u")return null;try{return l.activeElement||l.body}catch{return l.body}}var Wy=/[\\n"\\\\]/g;function Zl(l){return l.replace(Wy,function(t){return"\\\\"+t.charCodeAt(0).toString(16)+" "})}function cc(l,t,e,a,n,u,i,c){l.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?l.type=i:l.removeAttribute("type"),t!=null?i==="number"?(t===0&&l.value===""||l.value!=t)&&(l.value=""+jl(t)):l.value!==""+jl(t)&&(l.value=""+jl(t)):i!=="submit"&&i!=="reset"||l.removeAttribute("value"),t!=null?fc(l,i,jl(t)):e!=null?fc(l,i,jl(e)):a!=null&&l.removeAttribute("value"),n==null&&u!=null&&(l.defaultChecked=!!u),n!=null&&(l.checked=n&&typeof n!="function"&&typeof n!="symbol"),c!=null&&typeof c!="function"&&typeof c!="symbol"&&typeof c!="boolean"?l.name=""+jl(c):l.removeAttribute("name")}function hd(l,t,e,a,n,u,i,c){if(u!=null&&typeof u!="function"&&typeof u!="symbol"&&typeof u!="boolean"&&(l.type=u),t!=null||e!=null){if(!(u!=="submit"&&u!=="reset"||t!=null)){ic(l);return}e=e!=null?""+jl(e):"",t=t!=null?""+jl(t):e,c||t===l.value||(l.value=t),l.defaultValue=t}a=a??n,a=typeof a!="function"&&typeof a!="symbol"&&!!a,l.checked=c?l.checked:!!a,l.defaultChecked=!!a,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(l.name=i),ic(l)}function fc(l,t,e){t==="number"&&vu(l.ownerDocument)===l||l.defaultValue===""+e||(l.defaultValue=""+e)}function Je(l,t,e,a){if(l=l.options,t){t={};for(var n=0;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),sc=!1;if(bt)try{_e={},Object.defineProperty(_e,"passive",{get:function(){sc=!0}}),window.addEventListener("test",_e,_e),window.removeEventListener("test",_e,_e)}catch{sc=!1}var _e,qt=null,lf=null,$n=null;function zd(){if($n)return $n;var l,t=lf,e=t.length,a,n="value"in qt?qt.value:qt.textContent,u=n.length;for(l=0;l=Ba),jo=" ",Xo=!1;function Td(l,t){switch(l){case"keyup":return Tv.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function xd(l){return l=l.detail,typeof l=="object"&&"data"in l?l.data:null}var Ye=!1;function Av(l,t){switch(l){case"compositionend":return xd(t);case"keypress":return t.which!==32?null:(Xo=!0,jo);case"textInput":return l=t.data,l===jo&&Xo?null:l;default:return null}}function Mv(l,t){if(Ye)return l==="compositionend"||!ef&&Td(l,t)?(l=zd(),$n=lf=qt=null,Ye=!1,l):null;switch(l){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:e,offset:t-l};l=a}l:{for(;e;){if(e.nextSibling){e=e.nextSibling;break l}e=e.parentNode}e=void 0}e=Ko(e)}}function _d(l,t){return l&&t?l===t?!0:l&&l.nodeType===3?!1:t&&t.nodeType===3?_d(l,t.parentNode):"contains"in l?l.contains(t):l.compareDocumentPosition?!!(l.compareDocumentPosition(t)&16):!1:!1}function Dd(l){l=l!=null&&l.ownerDocument!=null&&l.ownerDocument.defaultView!=null?l.ownerDocument.defaultView:window;for(var t=vu(l.document);t instanceof l.HTMLIFrameElement;){try{var e=typeof t.contentWindow.location.href=="string"}catch{e=!1}if(e)l=t.contentWindow;else break;t=vu(l.document)}return t}function af(l){var t=l&&l.nodeName&&l.nodeName.toLowerCase();return t&&(t==="input"&&(l.type==="text"||l.type==="search"||l.type==="tel"||l.type==="url"||l.type==="password")||t==="textarea"||l.contentEditable==="true")}var Rv=bt&&"documentMode"in document&&11>=document.documentMode,Le=null,dc=null,Ya=null,yc=!1;function wo(l,t,e){var a=e.window===e?e.document:e.nodeType===9?e:e.ownerDocument;yc||Le==null||Le!==vu(a)||(a=Le,"selectionStart"in a&&af(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}),Ya&&Fa(Ya,a)||(Ya=a,a=Nu(dc,"onSelect"),0>=i,n-=i,lt=1<<32-Rl(t)+n|e<A?(O=b,b=null):O=b.sibling;var _=d(y,b,h[A],m);if(_===null){b===null&&(b=O);break}l&&b&&_.alternate===null&&t(y,b),o=u(_,o,A),M===null?z=_:M.sibling=_,M=_,b=O}if(A===h.length)return e(y,b),q&&yt(y,A),z;if(b===null){for(;AA?(O=b,b=null):O=b.sibling;var ll=d(y,b,_.value,m);if(ll===null){b===null&&(b=O);break}l&&b&&ll.alternate===null&&t(y,b),o=u(ll,o,A),M===null?z=ll:M.sibling=ll,M=ll,b=O}if(_.done)return e(y,b),q&&yt(y,A),z;if(b===null){for(;!_.done;A++,_=h.next())_=g(y,_.value,m),_!==null&&(o=u(_,o,A),M===null?z=_:M.sibling=_,M=_);return q&&yt(y,A),z}for(b=a(b);!_.done;A++,_=h.next())_=r(b,y,A,_.value,m),_!==null&&(l&&_.alternate!==null&&b.delete(_.key===null?A:_.key),o=u(_,o,A),M===null?z=_:M.sibling=_,M=_);return l&&b.forEach(function(W){return t(y,W)}),q&&yt(y,A),z}function x(y,o,h,m){if(typeof h=="object"&&h!==null&&h.type===He&&h.key===null&&(h=h.props.children),typeof h=="object"&&h!==null){switch(h.$$typeof){case Un:l:{for(var z=h.key;o!==null;){if(o.key===z){if(z=h.type,z===He){if(o.tag===7){e(y,o.sibling),m=n(o,h.props.children),m.return=y,y=m;break l}}else if(o.elementType===z||typeof z=="object"&&z!==null&&z.$$typeof===Dt&&ne(z)===o.type){e(y,o.sibling),m=n(o,h.props),Aa(m,h),m.return=y,y=m;break l}e(y,o);break}else t(y,o);o=o.sibling}h.type===He?(m=ce(h.props.children,y.mode,m,h.key),m.return=y,y=m):(m=In(h.type,h.key,h.props,null,y.mode,m),Aa(m,h),m.return=y,y=m)}return i(y);case Ua:l:{for(z=h.key;o!==null;){if(o.key===z)if(o.tag===4&&o.stateNode.containerInfo===h.containerInfo&&o.stateNode.implementation===h.implementation){e(y,o.sibling),m=n(o,h.children||[]),m.return=y,y=m;break l}else{e(y,o);break}else t(y,o);o=o.sibling}m=Ui(h,y.mode,m),m.return=y,y=m}return i(y);case Dt:return h=ne(h),x(y,o,h,m)}if(Na(h))return T(y,o,h,m);if(Ta(h)){if(z=Ta(h),typeof z!="function")throw Error(p(150));return h=z.call(h),E(y,o,h,m)}if(typeof h.then=="function")return x(y,o,Gn(h),m);if(h.$$typeof===mt)return x(y,o,Ln(y,h),m);jn(y,h)}return typeof h=="string"&&h!==""||typeof h=="number"||typeof h=="bigint"?(h=""+h,o!==null&&o.tag===6?(e(y,o.sibling),m=n(o,h),m.return=y,y=m):(e(y,o),m=Di(h,y.mode,m),m.return=y,y=m),i(y)):e(y,o)}return function(y,o,h,m){try{ln=0;var z=x(y,o,h,m);return We=null,z}catch(b){if(b===ya||b===Vu)throw b;var M=Ul(29,b,null,y.mode);return M.lanes=m,M.return=y,M}finally{}}}var ve=Vd(!0),Kd=Vd(!1),Ut=!1;function vf(l){l.updateQueue={baseState:l.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function pc(l,t){l=l.updateQueue,t.updateQueue===l&&(t.updateQueue={baseState:l.baseState,firstBaseUpdate:l.firstBaseUpdate,lastBaseUpdate:l.lastBaseUpdate,shared:l.shared,callbacks:null})}function Qt(l){return{lane:l,tag:0,payload:null,callback:null,next:null}}function Zt(l,t,e){var a=l.updateQueue;if(a===null)return null;if(a=a.shared,(Y&2)!==0){var n=a.pending;return n===null?t.next=t:(t.next=n.next,n.next=t),a.pending=t,t=ru(l),qd(l,null,e),t}return Zu(l,a,t,e),ru(l)}function Ga(l,t,e){if(t=t.updateQueue,t!==null&&(t=t.shared,(e&4194048)!==0)){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,od(l,e)}}function Ci(l,t){var e=l.updateQueue,a=l.alternate;if(a!==null&&(a=a.updateQueue,e===a)){var n=null,u=null;if(e=e.firstBaseUpdate,e!==null){do{var i={lane:e.lane,tag:e.tag,payload:e.payload,callback:null,next:null};u===null?n=u=i:u=u.next=i,e=e.next}while(e!==null);u===null?n=u=t:u=u.next=t}else n=u=t;e={baseState:a.baseState,firstBaseUpdate:n,lastBaseUpdate:u,shared:a.shared,callbacks:a.callbacks},l.updateQueue=e;return}l=e.lastBaseUpdate,l===null?e.firstBaseUpdate=t:l.next=t,e.lastBaseUpdate=t}var bc=!1;function ja(){if(bc){var l=ke;if(l!==null)throw l}}function Xa(l,t,e,a){bc=!1;var n=l.updateQueue;Ut=!1;var u=n.firstBaseUpdate,i=n.lastBaseUpdate,c=n.shared.pending;if(c!==null){n.shared.pending=null;var f=c,s=f.next;f.next=null,i===null?u=s:i.next=s,i=f;var v=l.alternate;v!==null&&(v=v.updateQueue,c=v.lastBaseUpdate,c!==i&&(c===null?v.firstBaseUpdate=s:c.next=s,v.lastBaseUpdate=f))}if(u!==null){var g=n.baseState;i=0,v=s=f=null,c=u;do{var d=c.lane&-536870913,r=d!==c.lane;if(r?(B&d)===d:(a&d)===d){d!==0&&d===ta&&(bc=!0),v!==null&&(v=v.next={lane:0,tag:c.tag,payload:c.payload,callback:null,next:null});l:{var T=l,E=c;d=t;var x=e;switch(E.tag){case 1:if(T=E.payload,typeof T=="function"){g=T.call(x,g,d);break l}g=T;break l;case 3:T.flags=T.flags&-65537|128;case 0:if(T=E.payload,d=typeof T=="function"?T.call(x,g,d):T,d==null)break l;g=k({},g,d);break l;case 2:Ut=!0}}d=c.callback,d!==null&&(l.flags|=64,r&&(l.flags|=8192),r=n.callbacks,r===null?n.callbacks=[d]:r.push(d))}else r={lane:d,tag:c.tag,payload:c.payload,callback:c.callback,next:null},v===null?(s=v=r,f=g):v=v.next=r,i|=d;if(c=c.next,c===null){if(c=n.shared.pending,c===null)break;r=c,c=r.next,r.next=null,n.lastBaseUpdate=r,n.shared.pending=null}}while(!0);v===null&&(f=g),n.baseState=f,n.firstBaseUpdate=s,n.lastBaseUpdate=v,u===null&&(n.shared.lanes=0),It|=i,l.lanes=i,l.memoizedState=g}}function Jd(l,t){if(typeof l!="function")throw Error(p(191,l));l.call(t)}function wd(l,t){var e=l.callbacks;if(e!==null)for(l.callbacks=null,l=0;lu?u:8;var i=D.T,c={};D.T=c,Mf(l,!1,t,e);try{var f=n(),s=D.S;if(s!==null&&s(c,f),f!==null&&typeof f=="object"&&typeof f.then=="function"){var v=Zv(f,a);Qa(l,t,v,Bl(l))}else Qa(l,t,a,Bl(l))}catch(g){Qa(l,t,{then:function(){},status:"rejected",reason:g},Bl())}finally{L.p=u,i!==null&&c.types!==null&&(i.types=c.types),D.T=i}}function Wv(){}function Ac(l,t,e,a){if(l.tag!==5)throw Error(p(476));var n=S0(l).queue;g0(l,n,t,ie,e===null?Wv:function(){return p0(l),e(a)})}function S0(l){var t=l.memoizedState;if(t!==null)return t;t={memoizedState:ie,baseState:ie,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Et,lastRenderedState:ie},next:null};var e={};return t.next={memoizedState:e,baseState:e,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Et,lastRenderedState:e},next:null},l.memoizedState=t,l=l.alternate,l!==null&&(l.memoizedState=t),t}function p0(l){var t=S0(l);t.next===null&&(t=l.alternate.memoizedState),Qa(l,t.next.queue,{},Bl())}function Af(){return rl(un)}function b0(){return el().memoizedState}function z0(){return el().memoizedState}function $v(l){for(var t=l.return;t!==null;){switch(t.tag){case 24:case 3:var e=Bl();l=Qt(e);var a=Zt(t,l,e);a!==null&&(Al(a,t,e),Ga(a,t,e)),t={cache:sf()},l.payload=t;return}t=t.return}}function Fv(l,t,e){var a=Bl();e={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null},ku(l)?T0(t,e):(e=uf(l,t,e,a),e!==null&&(Al(e,l,a),x0(e,t,a)))}function E0(l,t,e){var a=Bl();Qa(l,t,e,a)}function Qa(l,t,e,a){var n={lane:a,revertLane:0,gesture:null,action:e,hasEagerState:!1,eagerState:null,next:null};if(ku(l))T0(t,n);else{var u=l.alternate;if(l.lanes===0&&(u===null||u.lanes===0)&&(u=t.lastRenderedReducer,u!==null))try{var i=t.lastRenderedState,c=u(i,e);if(n.hasEagerState=!0,n.eagerState=c,ql(c,i))return Zu(l,t,n,0),Z===null&&Qu(),!1}catch{}finally{}if(e=uf(l,t,n,a),e!==null)return Al(e,l,a),x0(e,t,a),!0}return!1}function Mf(l,t,e,a){if(a={lane:2,revertLane:Bf(),gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},ku(l)){if(t)throw Error(p(479))}else t=uf(l,e,a,2),t!==null&&Al(t,l,2)}function ku(l){var t=l.alternate;return l===N||t!==null&&t===N}function T0(l,t){$e=zu=!0;var e=l.pending;e===null?t.next=t:(t.next=e.next,e.next=t),l.pending=t}function x0(l,t,e){if((e&4194048)!==0){var a=t.lanes;a&=l.pendingLanes,e|=a,t.lanes=e,od(l,e)}}var en={readContext:rl,use:Ju,useCallback:I,useContext:I,useEffect:I,useImperativeHandle:I,useLayoutEffect:I,useInsertionEffect:I,useMemo:I,useReducer:I,useRef:I,useState:I,useDebugValue:I,useDeferredValue:I,useTransition:I,useSyncExternalStore:I,useId:I,useHostTransitionStatus:I,useFormState:I,useActionState:I,useOptimistic:I,useMemoCache:I,useCacheRefresh:I};en.useEffectEvent=I;var A0={readContext:rl,use:Ju,useCallback:function(l,t){return bl().memoizedState=[l,t===void 0?null:t],l},useContext:rl,useEffect:fs,useImperativeHandle:function(l,t,e){e=e!=null?e.concat([l]):null,tu(4194308,4,y0.bind(null,t,l),e)},useLayoutEffect:function(l,t){return tu(4194308,4,l,t)},useInsertionEffect:function(l,t){tu(4,2,l,t)},useMemo:function(l,t){var e=bl();t=t===void 0?null:t;var a=l();if(me){Bt(!0);try{l()}finally{Bt(!1)}}return e.memoizedState=[a,t],a},useReducer:function(l,t,e){var a=bl();if(e!==void 0){var n=e(t);if(me){Bt(!0);try{e(t)}finally{Bt(!1)}}}else n=t;return a.memoizedState=a.baseState=n,l={pending:null,lanes:0,dispatch:null,lastRenderedReducer:l,lastRenderedState:n},a.queue=l,l=l.dispatch=Fv.bind(null,N,l),[a.memoizedState,l]},useRef:function(l){var t=bl();return l={current:l},t.memoizedState=l},useState:function(l){l=Tc(l);var t=l.queue,e=E0.bind(null,N,t);return t.dispatch=e,[l.memoizedState,e]},useDebugValue:Tf,useDeferredValue:function(l,t){var e=bl();return xf(e,l,t)},useTransition:function(){var l=Tc(!1);return l=g0.bind(null,N,l.queue,!0,!1),bl().memoizedState=l,[!1,l]},useSyncExternalStore:function(l,t,e){var a=N,n=bl();if(q){if(e===void 0)throw Error(p(407));e=e()}else{if(e=t(),Z===null)throw Error(p(349));(B&127)!==0||Id(a,t,e)}n.memoizedState=e;var u={value:e,getSnapshot:t};return n.queue=u,fs(l0.bind(null,a,u,l),[l]),a.flags|=2048,aa(9,{destroy:void 0},Pd.bind(null,a,u,e,t),null),e},useId:function(){var l=bl(),t=Z.identifierPrefix;if(q){var e=tt,a=lt;e=(a&~(1<<32-Rl(a)-1)).toString(32)+e,t="_"+t+"R_"+e,e=Eu++,0<\\/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[vl]=t,u[Ml]=a;l:for(i=t.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===t)break l;for(;i.sibling===null;){if(i.return===null||i.return===t)break l;i=i.return}i.sibling.return=i.return,i=i.sibling}t.stateNode=u;l:switch(hl(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&&ft(t)}}return J(t),ji(t,t.type,l===null?null:l.memoizedProps,t.pendingProps,e),null;case 6:if(l&&t.stateNode!=null)l.memoizedProps!==a&&ft(t);else{if(typeof a!="string"&&t.stateNode===null)throw Error(p(166));if(l=jt.current,De(t)){if(l=t.stateNode,e=t.memoizedProps,a=null,n=ml,n!==null)switch(n.tag){case 27:case 5:a=n.memoizedProps}l[vl]=t,l=!!(l.nodeValue===e||a!==null&&a.suppressHydrationWarning===!0||E1(l.nodeValue,e)),l||$t(t,!0)}else l=Cu(l).createTextNode(a),l[vl]=t,t.stateNode=l}return J(t),null;case 31:if(e=t.memoizedState,l===null||l.memoizedState!==null){if(a=De(t),e!==null){if(l===null){if(!a)throw Error(p(318));if(l=t.memoizedState,l=l!==null?l.dehydrated:null,!l)throw Error(p(557));l[vl]=t}else de(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;J(t),l=!1}else e=Ni(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=e),l=!0;if(!l)return t.flags&256?(Dl(t),t):(Dl(t),null);if((t.flags&128)!==0)throw Error(p(558))}return J(t),null;case 13:if(a=t.memoizedState,l===null||l.memoizedState!==null&&l.memoizedState.dehydrated!==null){if(n=De(t),a!==null&&a.dehydrated!==null){if(l===null){if(!n)throw Error(p(318));if(n=t.memoizedState,n=n!==null?n.dehydrated:null,!n)throw Error(p(317));n[vl]=t}else de(),(t.flags&128)===0&&(t.memoizedState=null),t.flags|=4;J(t),n=!1}else n=Ni(),l!==null&&l.memoizedState!==null&&(l.memoizedState.hydrationErrors=n),n=!0;if(!n)return t.flags&256?(Dl(t),t):(Dl(t),null)}return Dl(t),(t.flags&128)!==0?(t.lanes=e,t):(e=a!==null,l=l!==null&&l.memoizedState!==null,e&&(a=t.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)),e!==l&&e&&(t.child.flags|=8192),Xn(t,t.updateQueue),J(t),null);case 4:return Ie(),l===null&&qf(t.stateNode.containerInfo),J(t),null;case 10:return St(t.type),J(t),null;case 19:if(dl(tl),a=t.memoizedState,a===null)return J(t),null;if(n=(t.flags&128)!==0,u=a.rendering,u===null)if(n)Ma(a,!1);else{if(P!==0||l!==null&&(l.flags&128)!==0)for(l=t.child;l!==null;){if(u=bu(l),u!==null){for(t.flags|=128,Ma(a,!1),l=u.updateQueue,t.updateQueue=l,Xn(t,l),t.subtreeFlags=0,l=e,e=t.child;e!==null;)Yd(e,l),e=e.sibling;return V(tl,tl.current&1|2),q&&yt(t,a.treeForkCount),t.child}l=l.sibling}a.tail!==null&&Cl()>Mu&&(t.flags|=128,n=!0,Ma(a,!1),t.lanes=4194304)}else{if(!n)if(l=bu(u),l!==null){if(t.flags|=128,n=!0,l=l.updateQueue,t.updateQueue=l,Xn(t,l),Ma(a,!0),a.tail===null&&a.tailMode==="hidden"&&!u.alternate&&!q)return J(t),null}else 2*Cl()-a.renderingStartTime>Mu&&e!==536870912&&(t.flags|=128,n=!0,Ma(a,!1),t.lanes=4194304);a.isBackwards?(u.sibling=t.child,t.child=u):(l=a.last,l!==null?l.sibling=u:t.child=u,a.last=u)}return a.tail!==null?(l=a.tail,a.rendering=l,a.tail=l.sibling,a.renderingStartTime=Cl(),l.sibling=null,e=tl.current,V(tl,n?e&1|2:e&1),q&&yt(t,a.treeForkCount),l):(J(t),null);case 22:case 23:return Dl(t),mf(),a=t.memoizedState!==null,l!==null?l.memoizedState!==null!==a&&(t.flags|=8192):a&&(t.flags|=8192),a?(e&536870912)!==0&&(t.flags&128)===0&&(J(t),t.subtreeFlags&6&&(t.flags|=8192)):J(t),e=t.updateQueue,e!==null&&Xn(t,e.retryQueue),e=null,l!==null&&l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),a=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),a!==e&&(t.flags|=2048),l!==null&&dl(fe),null;case 24:return e=null,l!==null&&(e=l.memoizedState.cache),t.memoizedState.cache!==e&&(t.flags|=2048),St(ul),J(t),null;case 25:return null;case 30:return null}throw Error(p(156,t.tag))}function em(l,t){switch(of(t),t.tag){case 1:return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 3:return St(ul),Ie(),l=t.flags,(l&65536)!==0&&(l&128)===0?(t.flags=l&-65537|128,t):null;case 26:case 27:case 5:return du(t),null;case 31:if(t.memoizedState!==null){if(Dl(t),t.alternate===null)throw Error(p(340));de()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 13:if(Dl(t),l=t.memoizedState,l!==null&&l.dehydrated!==null){if(t.alternate===null)throw Error(p(340));de()}return l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 19:return dl(tl),null;case 4:return Ie(),null;case 10:return St(t.type),null;case 22:case 23:return Dl(t),mf(),l!==null&&dl(fe),l=t.flags,l&65536?(t.flags=l&-65537|128,t):null;case 24:return St(ul),null;case 25:return null;default:return null}}function Y0(l,t){switch(of(t),t.tag){case 3:St(ul),Ie();break;case 26:case 27:case 5:du(t);break;case 4:Ie();break;case 31:t.memoizedState!==null&&Dl(t);break;case 13:Dl(t);break;case 19:dl(tl);break;case 10:St(t.type);break;case 22:case 23:Dl(t),mf(),l!==null&&dl(fe);break;case 24:St(ul)}}function gn(l,t){try{var e=t.updateQueue,a=e!==null?e.lastEffect:null;if(a!==null){var n=a.next;e=n;do{if((e.tag&l)===l){a=void 0;var u=e.create,i=e.inst;a=u(),i.destroy=a}e=e.next}while(e!==n)}}catch(c){j(t,t.return,c)}}function Ft(l,t,e){try{var a=t.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,c=i.destroy;if(c!==void 0){i.destroy=void 0,n=t;var f=e,s=c;try{s()}catch(v){j(n,f,v)}}}a=a.next}while(a!==u)}}catch(v){j(t,t.return,v)}}function L0(l){var t=l.updateQueue;if(t!==null){var e=l.stateNode;try{wd(t,e)}catch(a){j(l,l.return,a)}}}function G0(l,t,e){e.props=re(l.type,l.memoizedProps),e.state=l.memoizedState;try{e.componentWillUnmount()}catch(a){j(l,t,a)}}function Za(l,t){try{var e=l.ref;if(e!==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 e=="function"?l.refCleanup=e(a):e.current=a}}catch(n){j(l,t,n)}}function et(l,t){var e=l.ref,a=l.refCleanup;if(e!==null)if(typeof a=="function")try{a()}catch(n){j(l,t,n)}finally{l.refCleanup=null,l=l.alternate,l!=null&&(l.refCleanup=null)}else if(typeof e=="function")try{e(null)}catch(n){j(l,t,n)}else e.current=null}function j0(l){var t=l.type,e=l.memoizedProps,a=l.stateNode;try{l:switch(t){case"button":case"input":case"select":case"textarea":e.autoFocus&&a.focus();break l;case"img":e.src?a.src=e.src:e.srcSet&&(a.srcset=e.srcSet)}}catch(n){j(l,l.return,n)}}function Xi(l,t,e){try{var a=l.stateNode;Em(a,l.type,e,t),a[Ml]=t}catch(n){j(l,l.return,n)}}function X0(l){return l.tag===5||l.tag===3||l.tag===26||l.tag===27&&le(l.type)||l.tag===4}function Qi(l){l:for(;;){for(;l.sibling===null;){if(l.return===null||X0(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&&le(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 Uc(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e).insertBefore(l,t):(t=e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,t.appendChild(l),e=e._reactRootContainer,e!=null||t.onclick!==null||(t.onclick=rt));else if(a!==4&&(a===27&&le(l.type)&&(e=l.stateNode,t=null),l=l.child,l!==null))for(Uc(l,t,e),l=l.sibling;l!==null;)Uc(l,t,e),l=l.sibling}function Au(l,t,e){var a=l.tag;if(a===5||a===6)l=l.stateNode,t?e.insertBefore(l,t):e.appendChild(l);else if(a!==4&&(a===27&&le(l.type)&&(e=l.stateNode),l=l.child,l!==null))for(Au(l,t,e),l=l.sibling;l!==null;)Au(l,t,e),l=l.sibling}function Q0(l){var t=l.stateNode,e=l.memoizedProps;try{for(var a=l.type,n=t.attributes;n.length;)t.removeAttributeNode(n[0]);hl(t,a,e),t[vl]=l,t[Ml]=e}catch(u){j(l,l.return,u)}}var vt=!1,nl=!1,Zi=!1,zs=typeof WeakSet=="function"?WeakSet:Set,ol=null;function am(l,t){if(l=l.containerInfo,Yc=qu,l=Dd(l),af(l)){if("selectionStart"in l)var e={start:l.selectionStart,end:l.selectionEnd};else l:{e=(e=l.ownerDocument)&&e.defaultView||window;var a=e.getSelection&&e.getSelection();if(a&&a.rangeCount!==0){e=a.anchorNode;var n=a.anchorOffset,u=a.focusNode;a=a.focusOffset;try{e.nodeType,u.nodeType}catch{e=null;break l}var i=0,c=-1,f=-1,s=0,v=0,g=l,d=null;t:for(;;){for(var r;g!==e||n!==0&&g.nodeType!==3||(c=i+n),g!==u||a!==0&&g.nodeType!==3||(f=i+a),g.nodeType===3&&(i+=g.nodeValue.length),(r=g.firstChild)!==null;)d=g,g=r;for(;;){if(g===l)break t;if(d===e&&++s===n&&(c=i),d===u&&++v===a&&(f=i),(r=g.nextSibling)!==null)break;g=d,d=g.parentNode}g=r}e=c===-1||f===-1?null:{start:c,end:f}}else e=null}e=e||{start:0,end:0}}else e=null;for(Lc={focusedElem:l,selectionRange:e},qu=!1,ol=t;ol!==null;)if(t=ol,l=t.child,(t.subtreeFlags&1028)!==0&&l!==null)l.return=t,ol=l;else for(;ol!==null;){switch(t=ol,u=t.alternate,l=t.flags,t.tag){case 0:if((l&4)!==0&&(l=t.updateQueue,l=l!==null?l.events:null,l!==null))for(e=0;e title"))),hl(u,a,e),u[vl]=l,sl(u),a=u;break l;case"link":var i=Zs("link","href",n).get(a+(e.href||""));if(i){for(var c=0;cx&&(i=x,x=E,E=i);var y=Jo(c,E),o=Jo(c,x);if(y&&o&&(r.rangeCount!==1||r.anchorNode!==y.node||r.anchorOffset!==y.offset||r.focusNode!==o.node||r.focusOffset!==o.offset)){var h=g.createRange();h.setStart(y.node,y.offset),r.removeAllRanges(),E>x?(r.addRange(h),r.extend(o.node,o.offset)):(h.setEnd(o.node,o.offset),r.addRange(h))}}}}for(g=[],r=c;r=r.parentNode;)r.nodeType===1&&g.push({element:r,left:r.scrollLeft,top:r.scrollTop});for(typeof c.focus=="function"&&c.focus(),c=0;ce?32:e,D.T=null,e=Hc,Hc=null;var u=Kt,i=pt;if(cl=0,ua=Kt=null,pt=0,(Y&6)!==0)throw Error(p(331));var c=Y;if(Y|=4,P0(u.current),$0(u,u.current,i,e),Y=c,Sn(0,!1),Hl&&typeof Hl.onPostCommitFiberRoot=="function")try{Hl.onPostCommitFiberRoot(sn,u)}catch{}return!0}finally{L.p=n,D.T=a,m1(l,t)}}function As(l,t,e){t=Vl(e,t),t=Oc(l.stateNode,t,2),l=Zt(l,t,2),l!==null&&(yn(l,2),ut(l))}function j(l,t,e){if(l.tag===3)As(l,l,e);else for(;t!==null;){if(t.tag===3){As(t,l,e);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(Vt===null||!Vt.has(a))){l=Vl(e,l),e=U0(2),a=Zt(t,e,2),a!==null&&(N0(e,a,t,l),yn(a,2),ut(a));break}}t=t.return}}function Ki(l,t,e){var a=l.pingCache;if(a===null){a=l.pingCache=new im;var n=new Set;a.set(t,n)}else n=a.get(t),n===void 0&&(n=new Set,a.set(t,n));n.has(e)||(Cf=!0,n.add(e),l=dm.bind(null,l,t,e),t.then(l,l))}function dm(l,t,e){var a=l.pingCache;a!==null&&a.delete(t),l.pingedLanes|=l.suspendedLanes&e,l.warmLanes&=~e,Z===l&&(B&e)===e&&(P===4||P===3&&(B&62914560)===B&&300>Cl()-Wu?(Y&2)===0&&ia(l,0):Hf|=e,na===B&&(na=0)),ut(l)}function h1(l,t){t===0&&(t=cd()),l=pe(l,t),l!==null&&(yn(l,t),ut(l))}function ym(l){var t=l.memoizedState,e=0;t!==null&&(e=t.retryLane),h1(l,e)}function vm(l,t){var e=0;switch(l.tag){case 31:case 13:var a=l.stateNode,n=l.memoizedState;n!==null&&(e=n.retryLane);break;case 19:a=l.stateNode;break;case 22:a=l.stateNode._retryCache;break;default:throw Error(p(314))}a!==null&&a.delete(t),h1(l,e)}function mm(l,t){return kc(l,t)}var Du=null,Ce=null,Bc=!1,Uu=!1,Ji=!1,Gt=0;function ut(l){l!==Ce&&l.next===null&&(Ce===null?Du=Ce=l:Ce=Ce.next=l),Uu=!0,Bc||(Bc=!0,hm())}function Sn(l,t){if(!Ji&&Uu){Ji=!0;do for(var e=!1,a=Du;a!==null;){if(!t)if(l!==0){var n=a.pendingLanes;if(n===0)var u=0;else{var i=a.suspendedLanes,c=a.pingedLanes;u=(1<<31-Rl(42|l)+1)-1,u&=n&~(i&~c),u=u&201326741?u&201326741|1:u?u|2:0}u!==0&&(e=!0,Ms(a,u))}else u=B,u=Lu(a,a===Z?u:0,a.cancelPendingCommit!==null||a.timeoutHandle!==-1),(u&3)===0||dn(a,u)||(e=!0,Ms(a,u));a=a.next}while(e);Ji=!1}}function rm(){g1()}function g1(){Uu=Bc=!1;var l=0;Gt!==0&&xm()&&(l=Gt);for(var t=Cl(),e=null,a=Du;a!==null;){var n=a.next,u=S1(a,t);u===0?(a.next=null,e===null?Du=n:e.next=n,n===null&&(Ce=e)):(e=a,(l!==0||(u&3)!==0)&&(Uu=!0)),a=n}cl!==0&&cl!==5||Sn(l,!1),Gt!==0&&(Gt=0)}function S1(l,t){for(var e=l.suspendedLanes,a=l.pingedLanes,n=l.expirationTimes,u=l.pendingLanes&-62914561;0c)break;var v=f.transferSize,g=f.initiatorType;v&&Hs(g)&&(f=f.responseEnd,i+=v*(f"u"?null:document;function O1(l,t,e){var a=ma;if(a&&typeof t=="string"&&t){var n=Zl(t);n=\'link[rel="\'+l+\'"][href="\'+n+\'"]\',typeof e=="string"&&(n+=\'[crossorigin="\'+e+\'"]\'),js.has(n)||(js.add(n),l={rel:l,crossOrigin:e,href:t},a.querySelector(n)===null&&(t=a.createElement("link"),hl(t,"link",l),sl(t),a.head.appendChild(t)))}}function Hm(l){At.D(l),O1("dns-prefetch",l,null)}function Rm(l,t){At.C(l,t),O1("preconnect",l,t)}function Bm(l,t,e){At.L(l,t,e);var a=ma;if(a&&l&&t){var n=\'link[rel="preload"][as="\'+Zl(t)+\'"]\';t==="image"&&e&&e.imageSrcSet?(n+=\'[imagesrcset="\'+Zl(e.imageSrcSet)+\'"]\',typeof e.imageSizes=="string"&&(n+=\'[imagesizes="\'+Zl(e.imageSizes)+\'"]\')):n+=\'[href="\'+Zl(l)+\'"]\';var u=n;switch(t){case"style":u=ca(l);break;case"script":u=ra(l)}kl.has(u)||(l=k({rel:"preload",href:t==="image"&&e&&e.imageSrcSet?void 0:l,as:t},e),kl.set(u,l),a.querySelector(n)!==null||t==="style"&&a.querySelector(pn(u))||t==="script"&&a.querySelector(bn(u))||(t=a.createElement("link"),hl(t,"link",l),sl(t),a.head.appendChild(t)))}}function qm(l,t){At.m(l,t);var e=ma;if(e&&l){var a=t&&typeof t.as=="string"?t.as:"script",n=\'link[rel="modulepreload"][as="\'+Zl(a)+\'"][href="\'+Zl(l)+\'"]\',u=n;switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":u=ra(l)}if(!kl.has(u)&&(l=k({rel:"modulepreload",href:l},t),kl.set(u,l),e.querySelector(n)===null)){switch(a){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(e.querySelector(bn(u)))return}a=e.createElement("link"),hl(a,"link",l),sl(a),e.head.appendChild(a)}}}function Ym(l,t,e){At.S(l,t,e);var a=ma;if(a&&l){var n=Ke(a).hoistableStyles,u=ca(l);t=t||"default";var i=n.get(u);if(!i){var c={loading:0,preload:null};if(i=a.querySelector(pn(u)))c.loading=5;else{l=k({rel:"stylesheet",href:l,"data-precedence":t},e),(e=kl.get(u))&&Yf(l,e);var f=i=a.createElement("link");sl(f),hl(f,"link",l),f._p=new Promise(function(s,v){f.onload=s,f.onerror=v}),f.addEventListener("load",function(){c.loading|=1}),f.addEventListener("error",function(){c.loading|=2}),c.loading|=4,uu(i,t,a)}i={type:"stylesheet",instance:i,count:1,state:c},n.set(u,i)}}}function Lm(l,t){At.X(l,t);var e=ma;if(e&&l){var a=Ke(e).hoistableScripts,n=ra(l),u=a.get(n);u||(u=e.querySelector(bn(n)),u||(l=k({src:l,async:!0},t),(t=kl.get(n))&&Lf(l,t),u=e.createElement("script"),sl(u),hl(u,"link",l),e.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Gm(l,t){At.M(l,t);var e=ma;if(e&&l){var a=Ke(e).hoistableScripts,n=ra(l),u=a.get(n);u||(u=e.querySelector(bn(n)),u||(l=k({src:l,async:!0,type:"module"},t),(t=kl.get(n))&&Lf(l,t),u=e.createElement("script"),sl(u),hl(u,"link",l),e.head.appendChild(u)),u={type:"script",instance:u,count:1,state:null},a.set(n,u))}}function Xs(l,t,e,a){var n=(n=jt.current)?Hu(n):null;if(!n)throw Error(p(446));switch(l){case"meta":case"title":return null;case"style":return typeof e.precedence=="string"&&typeof e.href=="string"?(t=ca(e.href),e=Ke(n).hoistableStyles,a=e.get(t),a||(a={type:"style",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};case"link":if(e.rel==="stylesheet"&&typeof e.href=="string"&&typeof e.precedence=="string"){l=ca(e.href);var u=Ke(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),kl.has(l)||(e={rel:"preload",as:"style",href:e.href,crossOrigin:e.crossOrigin,integrity:e.integrity,media:e.media,hrefLang:e.hrefLang,referrerPolicy:e.referrerPolicy},kl.set(l,e),u||jm(n,l,e,i.state))),t&&a===null)throw Error(p(528,""));return i}if(t&&a!==null)throw Error(p(529,""));return null;case"script":return t=e.async,e=e.src,typeof e=="string"&&t&&typeof t!="function"&&typeof t!="symbol"?(t=ra(e),e=Ke(n).hoistableScripts,a=e.get(t),a||(a={type:"script",instance:null,count:0,state:null},e.set(t,a)),a):{type:"void",instance:null,count:0,state:null};default:throw Error(p(444,l))}}function ca(l){return\'href="\'+Zl(l)+\'"\'}function pn(l){return\'link[rel="stylesheet"][\'+l+"]"}function _1(l){return k({},l,{"data-precedence":l.precedence,precedence:null})}function jm(l,t,e,a){l.querySelector(\'link[rel="preload"][as="style"][\'+t+"]")?a.loading=1:(t=l.createElement("link"),a.preload=t,t.addEventListener("load",function(){return a.loading|=1}),t.addEventListener("error",function(){return a.loading|=2}),hl(t,"link",e),sl(t),l.head.appendChild(t))}function ra(l){return\'[src="\'+Zl(l)+\'"]\'}function bn(l){return"script[async]"+l}function Qs(l,t,e){if(t.count++,t.instance===null)switch(t.type){case"style":var a=l.querySelector(\'style[data-href~="\'+Zl(e.href)+\'"]\');if(a)return t.instance=a,sl(a),a;var n=k({},e,{"data-href":e.href,"data-precedence":e.precedence,href:null,precedence:null});return a=(l.ownerDocument||l).createElement("style"),sl(a),hl(a,"style",n),uu(a,e.precedence,l),t.instance=a;case"stylesheet":n=ca(e.href);var u=l.querySelector(pn(n));if(u)return t.state.loading|=4,t.instance=u,sl(u),u;a=_1(e),(n=kl.get(n))&&Yf(a,n),u=(l.ownerDocument||l).createElement("link"),sl(u);var i=u;return i._p=new Promise(function(c,f){i.onload=c,i.onerror=f}),hl(u,"link",a),t.state.loading|=4,uu(u,e.precedence,l),t.instance=u;case"script":return u=ra(e.src),(n=l.querySelector(bn(u)))?(t.instance=n,sl(n),n):(a=e,(n=kl.get(u))&&(a=k({},e),Lf(a,n)),l=l.ownerDocument||l,n=l.createElement("script"),sl(n),hl(n,"link",a),l.head.appendChild(n),t.instance=n);case"void":return null;default:throw Error(p(443,t.type))}else t.type==="stylesheet"&&(t.state.loading&4)===0&&(a=t.instance,t.state.loading|=4,uu(a,e.precedence,l));return t.instance}function uu(l,t,e){for(var a=e.querySelectorAll(\'link[rel="stylesheet"][data-precedence],style[data-precedence]\'),n=a.length?a[a.length-1]:null,u=n,i=0;i title"):null)}function Xm(l,t,e){if(e===1||t.itemProp!=null)return!1;switch(l){case"meta":case"title":return!0;case"style":if(typeof t.precedence!="string"||typeof t.href!="string"||t.href==="")break;return!0;case"link":if(typeof t.rel!="string"||typeof t.href!="string"||t.href===""||t.onLoad||t.onError)break;switch(t.rel){case"stylesheet":return l=t.disabled,typeof t.precedence=="string"&&l==null;default:return!0}case"script":if(t.async&&typeof t.async!="function"&&typeof t.async!="symbol"&&!t.onLoad&&!t.onError&&t.src&&typeof t.src=="string")return!0}return!1}function D1(l){return!(l.type==="stylesheet"&&(l.state.loading&3)===0)}function Qm(l,t,e,a){if(e.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(e.state.loading&4)===0){if(e.instance===null){var n=ca(a.href),u=t.querySelector(pn(n));if(u){t=u._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(l.count++,l=Ru.bind(l),t.then(l,l)),e.state.loading|=4,e.instance=u,sl(u);return}u=t.ownerDocument||t,a=_1(a),(n=kl.get(n))&&Yf(a,n),u=u.createElement("link"),sl(u);var i=u;i._p=new Promise(function(c,f){i.onload=c,i.onerror=f}),hl(u,"link",a),e.instance=u}l.stylesheets===null&&(l.stylesheets=new Map),l.stylesheets.set(e,t),(t=e.state.preload)&&(e.state.loading&3)===0&&(l.count++,e=Ru.bind(l),t.addEventListener("load",e),t.addEventListener("error",e))}}var $i=0;function Zm(l,t){return l.stylesheets&&l.count===0&&cu(l,l.stylesheets),0$i?50:800)+t);return l.unsuspend=e,function(){l.unsuspend=null,clearTimeout(a),clearTimeout(n)}}:null}function Ru(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)cu(this,this.stylesheets);else if(this.unsuspend){var l=this.unsuspend;this.unsuspend=null,l()}}}var Bu=null;function cu(l,t){l.stylesheets=null,l.unsuspend!==null&&(l.count++,Bu=new Map,t.forEach(Vm,l),Bu=null,Ru.call(l))}function Vm(l,t){if(!(t.state.loading&4)){var e=Bu.get(l);if(e)var a=e.get(null);else{e=new Map,Bu.set(l,e);for(var n=l.querySelectorAll("link[data-precedence],style[data-precedence]"),u=0;u{"use strict";function L1(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(L1)}catch(l){console.error(l)}}L1(),G1.exports=Y1()});var Z1=Il(ti=>{"use strict";var Im=Symbol.for("react.transitional.element"),Pm=Symbol.for("react.fragment");function Q1(l,t,e){var a=null;if(e!==void 0&&(a=""+e),t.key!==void 0&&(a=""+t.key),"key"in t){e={};for(var n in t)n!=="key"&&(e[n]=t[n])}else e=t;return t=e.ref,{$$typeof:Im,type:l,key:a,ref:t!==void 0?t:null,props:e}}ti.Fragment=Pm;ti.jsx=Q1;ti.jsxs=Q1});var zn=Il((Sr,V1)=>{"use strict";V1.exports=Z1()});var I1=Mt(Ae(),1),P1=Mt(j1(),1);var C=Mt(Ae(),1);var ze=Mt(Ae(),1);function X1(){let[l,t]=(0,ze.useState)([]),[e,a]=(0,ze.useState)([]),[n,u]=(0,ze.useState)(!1),[i,c]=(0,ze.useState)([]);return(0,ze.useEffect)(()=>{let f=new EventSource("/events");return f.onopen=()=>u(!0),f.onerror=()=>u(!1),f.addEventListener("snapshot",s=>{try{let v=JSON.parse(s.data);t(g=>{if(v.networkLogs.length===0)return g;let d=new Map(g.map(r=>[r.id,r]));for(let r of v.networkLogs)d.set(r.id,r);return Array.from(d.values())}),a(g=>{if(v.consoleLogs.length===0)return g;let d=new Set(g.map(E=>E.id)),r=v.consoleLogs.filter(E=>!d.has(E.id)),T=[...g,...r];return T.length>5e3?T.slice(-5e3):T}),c(v.sessions)}catch{}}),f.addEventListener("network",s=>{try{let v=JSON.parse(s.data);t(g=>{let d=g.findIndex(r=>r.id===v.id);if(d>-1){let r=[...g];return r[d]=v,r}return[...g,v]})}catch{}}),f.addEventListener("console",s=>{try{let v=JSON.parse(s.data);a(g=>{let d=[...g,v];return d.length>5e3?d.slice(-5e3):d})}catch{}}),f.addEventListener("session",s=>{try{c(JSON.parse(s.data))}catch{}}),()=>f.close()},[]),{networkLogs:l,consoleLogs:e,isConnected:n,connectedSessions:i}}var S=Mt(zn(),1);function Kf(){let[l,t]=(0,C.useState)("console"),{networkLogs:e,consoleLogs:a,connectedSessions:n}=X1(),[u,i]=(0,C.useState)(null),[c,f]=(0,C.useState)(null),[s,v]=(0,C.useState)(null),[g,d]=(0,C.useState)(()=>{let b=localStorage.getItem("devtools-theme");return b||null}),[r,T]=(0,C.useState)(window.matchMedia("(prefers-color-scheme: dark)").matches);(0,C.useEffect)(()=>{let b=window.matchMedia("(prefers-color-scheme: dark)"),A=O=>T(O.matches);return b.addEventListener("change",A),()=>b.removeEventListener("change",A)},[]);let E=g===null?r:g==="dark",x=(0,C.useMemo)(()=>({bg:E?"#202124":"#ffffff",bgSecondary:E?"#292a2d":"#f3f3f3",bgHover:E?"#35363a":"#e8f0fe",border:E?"#3c4043":"#ccc",text:E?"#e8eaed":"#333",textSecondary:E?"#9aa0a6":"#666",accent:E?"#8ab4f8":"#1a73e8",consoleBg:E?"#1e1e1e":"#fff",rowBorder:E?"#303134":"#f0f0f0",errorBg:E?"#3c1e1e":"#fff0f0",warnBg:E?"#302a10":"#fff3cd"}),[E]),y=()=>{let b=E?"light":"dark";d(b),localStorage.setItem("devtools-theme",b)},o=b=>{let A=b.target.files?.[0];if(!A)return;let O=new FileReader;O.onload=_=>{let ll=_.target?.result;try{let W=new Map,Tn=[];ll.split(`\n`).filter(ha=>ha.trim()).forEach(ha=>{let ga=JSON.parse(ha),Sa=ga.payload||{},xn=ga.type,kf=ga.timestamp;if(xn==="console")Tn.push({...Sa,type:xn,timestamp:kf,id:Sa.id||Math.random().toString(36).substring(2,11)});else if(xn==="network"){let Ee=Sa.id;if(!Ee)return;if(!W.has(Ee))W.set(Ee,{...Sa,type:xn,timestamp:kf,id:Ee});else{let ei=W.get(Ee);W.set(Ee,{...ei,...Sa,type:ei.type,timestamp:ei.timestamp})}}});let wf=`[Imported] ${A.name}`,ly=Array.from(W.values()).sort((ha,ga)=>ha.timestamp-ga.timestamp);f({network:ly,console:Tn}),v(wf),i(wf)}catch(W){console.error("Import error:",W),alert("Failed to parse session file. Ensure it is a valid JSONL file.")}},O.readAsText(A),b.target.value=""},h=()=>{if(!u)return;let b=[];z.forEach(W=>{b.push({timestamp:W.timestamp,data:{type:"console",payload:{type:W.type,content:W.content},sessionId:W.sessionId,timestamp:W.timestamp}})}),M.forEach(W=>{b.push({timestamp:W.timestamp,data:{type:"network",payload:W,sessionId:W.sessionId,timestamp:W.timestamp}})}),b.sort((W,Tn)=>W.timestamp-Tn.timestamp);let A=b.map(W=>JSON.stringify(W.data)).join(`\n`),O=new Blob([A],{type:"application/jsonl"}),_=URL.createObjectURL(O),ll=document.createElement("a");ll.href=_,ll.download=`session-${u}.jsonl`,ll.click(),URL.revokeObjectURL(_)},m=(0,C.useMemo)(()=>{let b=new Map,A=_=>{if(!_.sessionId)return;let ll=b.get(_.sessionId)||0;_.timestamp>ll&&b.set(_.sessionId,_.timestamp)};e.forEach(A),a.forEach(A);let O=Array.from(b.entries()).sort((_,ll)=>ll[1]-_[1]).map(_=>_[0]);return s?[s,...O]:O},[e,a,s]);(0,C.useEffect)(()=>{m.length>0&&u===null&&i(m[0])},[m,u]);let z=(0,C.useMemo)(()=>u?u===s&&c?c.console:a.filter(b=>b.sessionId===u):[],[a,u,s,c]),M=(0,C.useMemo)(()=>u?u===s&&c?c.network:e.filter(b=>b.sessionId===u):[],[e,u,s,c]);return(0,S.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100vh",background:x.bg,color:x.text,transition:"background 0.2s, color 0.2s",fontFamily:\'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif\'},children:[(0,S.jsx)("style",{children:`\n ::-webkit-scrollbar { width: 8px; height: 8px; }\n ::-webkit-scrollbar-track { background: ${x.bgSecondary}; }\n ::-webkit-scrollbar-thumb { background: ${x.border}; border-radius: 4px; }\n ::-webkit-scrollbar-thumb:hover { background: ${x.textSecondary}; }\n [data-gutter]::selection, [data-gutter] *::selection { background: transparent; }\n [data-gutter] .fold-icon { opacity: 0; transition: opacity 0.15s; }\n [data-code-view]:has([data-gutter]:hover) .fold-icon { opacity: 1; }\n `}),(0,S.jsxs)("div",{style:{display:"flex",background:x.bgSecondary,borderBottom:`1px solid ${x.border}`,height:"36px",alignItems:"center",padding:"0 8px",gap:"12px"},children:[(0,S.jsxs)("div",{style:{display:"flex",height:"100%"},children:[(0,S.jsx)(K1,{active:l==="console",onClick:()=>t("console"),label:"Console",t:x}),(0,S.jsx)(K1,{active:l==="network",onClick:()=>t("network"),label:"Network",t:x})]}),(0,S.jsxs)("div",{style:{marginLeft:"auto",fontSize:"11px",display:"flex",alignItems:"center",gap:"12px"},children:[u&&n.includes(u)&&(0,S.jsx)("button",{onClick:h,style:{fontSize:"11px",padding:"4px 8px",border:`1px solid ${x.border}`,background:x.bg,color:x.text,borderRadius:"4px",cursor:"pointer",fontWeight:600},children:"\\u{1F4E4} Export"}),(0,S.jsxs)("label",{style:{padding:"2px 8px",borderRadius:"4px",border:`1px solid ${x.border}`,background:x.bg,cursor:"pointer",display:"flex",alignItems:"center",gap:"6px",fontWeight:600,fontSize:"11px"},children:[(0,S.jsx)("span",{children:"\\u{1F4E5} Import"}),(0,S.jsx)("input",{type:"file",accept:".jsonl",onChange:o,style:{display:"none"}})]}),(0,S.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[(0,S.jsx)("span",{style:{fontSize:"11px",color:x.textSecondary},children:"Session:"}),m.length>0?(0,S.jsx)("select",{value:u||"",onChange:b=>i(b.target.value),style:{fontSize:"11px",padding:"2px 8px",background:x.bg,color:x.text,border:`1px solid ${x.border}`,borderRadius:"3px",minWidth:"280px",outline:"none"},children:m.map(b=>(0,S.jsxs)("option",{value:b,children:[b," ",b===m[0]&&!b.startsWith("[Imported]")?"(Latest)":""]},b))}):(0,S.jsx)("span",{style:{fontSize:"11px",color:x.textSecondary,fontStyle:"italic"},children:"No Sessions"}),u&&!u.startsWith("[Imported]")&&(0,S.jsxs)("span",{style:{display:"flex",alignItems:"center",gap:"4px",fontSize:"11px",marginLeft:"8px"},children:[(0,S.jsx)("span",{style:{width:"6px",height:"6px",borderRadius:"50%",background:n.includes(u)?"#34a853":"#ea4335"}}),(0,S.jsx)("span",{style:{color:x.textSecondary},children:n.includes(u)?"Connected":"Disconnected"})]})]}),(0,S.jsx)("button",{onClick:y,style:{fontSize:"14px",padding:"2px 8px",border:`1px solid ${x.border}`,background:x.bg,color:x.text,borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",height:"24px",width:"32px"},title:E?"Switch to light mode":"Switch to dark mode",children:E?"\\u{1F319}":"\\u2600\\uFE0F"})]})]}),(0,S.jsx)("div",{style:{flex:1,overflow:"hidden",display:"flex",flexDirection:"column"},children:u?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)("div",{style:{display:l==="console"?"flex":"none",height:"100%"},children:(0,S.jsx)(tr,{logs:z,t:x})}),(0,S.jsx)("div",{style:{display:l==="network"?"flex":"none",height:"100%"},children:(0,S.jsx)(er,{logs:M,t:x,isDark:E})})]}):(0,S.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:x.textSecondary,fontSize:"14px"},children:"Please start Gemini CLI to begin debugging"})})]})}function K1({active:l,onClick:t,label:e,t:a}){return(0,S.jsx)("div",{onClick:t,style:{padding:"4px 16px",cursor:"pointer",color:l?a.accent:a.textSecondary,fontWeight:600,fontSize:"12px",userSelect:"none",borderBottom:l?`2px solid ${a.accent}`:"2px solid transparent",height:"100%",boxSizing:"border-box",display:"flex",alignItems:"center",transition:"all 0.2s"},children:e})}function lr({log:l,t}){let[e,a]=(0,C.useState)(!1),n=l.content||"",u=n.split(`\n`),i=500,c=5,f=n.length>i,s=u.length>c,v=f||s,g=l.type==="error",d=l.type==="warn",r=g?t.errorBg:d?t.warnBg:"transparent",T=g?"#f28b82":d?"#fdd663":t.text,E=g?"\\u274C":d?"\\u26A0\\uFE0F":" ",x=n;return v&&!e&&(s?x=u.slice(0,c).join(`\n`)+`\n...`:x=n.substring(0,i)+"..."),(0,S.jsxs)("div",{style:{display:"flex",borderBottom:`1px solid ${t.rowBorder}`,padding:"4px 12px",backgroundColor:r,alignItems:"flex-start",gap:"8px"},children:[(0,S.jsx)("div",{style:{width:"16px",textAlign:"center",flexShrink:0,fontSize:"10px",marginTop:"2px"},children:E}),(0,S.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:(0,S.jsx)("div",{style:{whiteSpace:"pre-wrap",wordBreak:"break-all",color:T,lineHeight:"1.5",fontSize:"11px"},children:x})}),(0,S.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"8px",flexShrink:0},children:[v&&(0,S.jsx)("div",{onClick:()=>a(!e),style:{fontSize:"12px",color:t.text,cursor:"pointer",fontWeight:"bold",userSelect:"none",width:"20px",height:"20px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px",border:`1px solid ${t.border}`,background:t.bgSecondary,transition:"all 0.1s"},onMouseOver:y=>{y.currentTarget.style.background=t.bgHover},onMouseOut:y=>{y.currentTarget.style.background=t.bgSecondary},title:e?"Collapse":"Expand",children:e?"\\u2212":"+"}),(0,S.jsx)("div",{style:{color:t.textSecondary,fontSize:"10px",userSelect:"none",textAlign:"right",minWidth:"70px"},children:new Date(l.timestamp).toLocaleTimeString([],{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})})]})]})}function tr({logs:l,t}){let e=(0,C.useRef)(null);return(0,C.useEffect)(()=>{e.current?.scrollIntoView({behavior:"smooth"})},[l.length]),l.length===0?(0,S.jsx)("div",{style:{padding:"20px",color:t.textSecondary,fontSize:"11px",textAlign:"center",flex:1},children:"No console logs in this session"}):(0,S.jsxs)("div",{style:{flex:1,overflowY:"auto",fontFamily:\'SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace\',background:t.consoleBg,fontSize:"12px"},children:[l.map(a=>(0,S.jsx)(lr,{log:a,t},a.id)),(0,S.jsx)("div",{ref:e})]})}function er({logs:l,t,isDark:e}){let[a,n]=(0,C.useState)(null),[u,i]=(0,C.useState)(""),[c,f]=(0,C.useState)(!0),[s,v]=(0,C.useState)({}),[g,d]=(0,C.useState)(400),r=(0,C.useRef)(!1);(0,C.useEffect)(()=>{let m=M=>{if(!r.current)return;let b=Math.max(200,Math.min(M.clientX,window.innerWidth-200));d(b)},z=()=>{r.current=!1,document.body.style.cursor="default",document.body.style.userSelect="auto"};return document.addEventListener("mousemove",m),document.addEventListener("mouseup",z),()=>{document.removeEventListener("mousemove",m),document.removeEventListener("mouseup",z)}},[]);let T=()=>{r.current=!0,document.body.style.cursor="col-resize",document.body.style.userSelect="none"},E=(0,C.useMemo)(()=>{let m=l;if(u){let z=u.toLowerCase();m=l.filter(M=>M.url.toLowerCase().includes(z))}return m},[l,u]),x=(0,C.useMemo)(()=>{if(!c)return null;let m={};return E.forEach(z=>{let M="Other";try{let b=new URL(z.url),A=b.pathname.lastIndexOf("/"),O=A!==-1?b.pathname.substring(0,A+1):"/";M=b.hostname+O}catch{}m[M]||(m[M]=[]),m[M].push(z)}),m},[E,c]);(0,C.useEffect)(()=>{x&&v(m=>{let z={...m};return Object.keys(x).forEach(M=>{z[M]===void 0&&(z[M]=!M.includes("play.googleapis.com"))}),z})},[x]);let y=m=>{v(z=>({...z,[m]:!z[m]}))},o=l.find(m=>m.id===a),h=(m,z)=>{let M=m.pending,b=m.response?m.response.status:m.error?"ERR":"...",A=m.error||m.response&&m.response.status>=400,O=z||m.url;if(!z)try{let ll=new URL(m.url);O=ll.pathname+ll.search}catch{}let _=m.id===a;return(0,S.jsx)("div",{onClick:()=>n(m.id),style:{padding:"8px 12px",cursor:"pointer",borderBottom:`1px solid ${t.rowBorder}`,display:"flex",flexDirection:"column",fontSize:"12px",backgroundColor:_?t.bgHover:"transparent",color:A?"#f28b82":t.text,paddingLeft:z?"24px":"12px"},children:(0,S.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,S.jsx)("span",{style:{fontWeight:"bold",width:"45px",flexShrink:0,fontSize:"10px",color:e?"#81c995":"#188038"},children:m.method}),(0,S.jsx)("span",{style:{flex:1,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",margin:"0 8px",fontWeight:500},title:m.url,children:O}),(0,S.jsx)("span",{style:{width:"40px",textAlign:"right",flexShrink:0,fontSize:"11px",color:M?t.accent:A?"#f28b82":"#81c995"},children:M?"\\u23F3":b})]})},m.id)};return l.length===0?(0,S.jsx)("div",{style:{flex:1,display:"flex",alignItems:"center",justifyContent:"center",color:t.textSecondary,fontSize:"12px"},children:"No network activity in this session"}):(0,S.jsxs)("div",{style:{display:"flex",width:"100%",height:"100%"},children:[(0,S.jsxs)("div",{style:{width:`${g}px`,display:"flex",flexDirection:"column",borderRight:`1px solid ${t.border}`,background:t.bg},children:[(0,S.jsxs)("div",{style:{padding:"6px",background:t.bgSecondary,borderBottom:`1px solid ${t.border}`,display:"flex",gap:"6px"},children:[(0,S.jsx)("input",{type:"text",placeholder:"Filter...",value:u,onChange:m=>i(m.target.value),style:{flex:1,boxSizing:"border-box",padding:"4px 10px",background:t.bg,color:t.text,border:`1px solid ${t.border}`,borderRadius:"4px",fontSize:"12px"}}),(0,S.jsx)("button",{onClick:()=>f(!c),style:{background:c?t.accent:t.bg,color:c?"#fff":t.text,border:`1px solid ${t.border}`,borderRadius:"4px",cursor:"pointer",fontSize:"12px",padding:"0 8px"},title:"Group by Domain",children:"\\u{1F4C2}"})]}),(0,S.jsx)("div",{style:{flex:1,overflowY:"auto"},children:c&&x?Object.keys(x).map(m=>(0,S.jsxs)("div",{children:[(0,S.jsxs)("div",{onClick:()=>y(m),style:{padding:"6px 12px",background:t.bgSecondary,fontWeight:"bold",fontSize:"11px",borderBottom:`1px solid ${t.rowBorder}`,wordBreak:"break-all",cursor:"pointer",display:"flex",alignItems:"center",userSelect:"none"},children:[(0,S.jsx)("span",{style:{marginRight:"8px",fontSize:"9px",color:t.textSecondary},children:s[m]?"\\u25BC":"\\u25B6"}),m,(0,S.jsx)("span",{style:{marginLeft:"auto",fontWeight:"normal",color:t.textSecondary,fontSize:"10px",background:t.bg,padding:"0 6px",borderRadius:"10px"},children:x[m].length})]}),s[m]&&x[m].map(z=>{let M=z.url;try{let b=new URL(z.url),A=b.pathname.lastIndexOf("/");M=(b.pathname.substring(A+1)||"/")+b.search}catch{}return h(z,M)})]},m)):E.map(m=>h(m))})]}),(0,S.jsx)("div",{onMouseDown:T,style:{width:"2px",cursor:"col-resize",background:t.border,flexShrink:0,zIndex:10}}),(0,S.jsx)("div",{style:{flex:1,display:"flex",flexDirection:"column",overflow:"hidden",background:t.bg},children:o?(0,S.jsx)(ar,{log:o,t}):(0,S.jsx)("div",{style:{padding:"40px",textAlign:"center",color:t.textSecondary,fontSize:"14px"},children:"Select a request to view details"})})]})}function ar({log:l,t}){let[e,a]=(0,C.useState)("headers"),n=l.response?l.pending?"\\u23F3":l.response.status:l.error?"Error":"\\u23F3";return(0,S.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[(0,S.jsxs)("div",{style:{padding:"12px 16px",borderBottom:`1px solid ${t.border}`,background:t.bgSecondary},children:[(0,S.jsx)("div",{style:{fontWeight:"bold",fontSize:"13px",marginBottom:"6px",wordBreak:"break-all",color:t.text},children:l.url}),(0,S.jsxs)("div",{style:{fontSize:"11px",color:t.textSecondary,display:"flex",gap:"8px"},children:[(0,S.jsx)("span",{style:{background:t.bg,padding:"1px 6px",borderRadius:"3px",fontWeight:"bold"},children:l.method}),(0,S.jsx)("span",{children:"\\u2022"}),(0,S.jsx)("span",{style:{color:l.error?"#f28b82":"#81c995"},children:n}),(0,S.jsx)("span",{children:"\\u2022"}),(0,S.jsx)("span",{children:new Date(l.timestamp).toLocaleTimeString()}),l.response&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)("span",{children:"\\u2022"}),(0,S.jsxs)("span",{style:{color:t.accent},children:[l.response.durationMs,"ms"]})]})]})]}),(0,S.jsx)("div",{style:{display:"flex",borderBottom:`1px solid ${t.border}`,background:t.bgSecondary,paddingLeft:"8px"},children:["headers","payload","response"].map(u=>(0,S.jsx)("div",{onClick:()=>a(u),style:{padding:"8px 16px",cursor:"pointer",fontWeight:600,fontSize:"12px",textTransform:"capitalize",borderBottom:e===u?`2px solid ${t.accent}`:"2px solid transparent",color:e===u?t.accent:t.textSecondary,transition:"all 0.2s"},children:u},u))}),(0,S.jsxs)("div",{style:{flex:1,overflowY:"auto",background:t.bg},children:[e==="headers"&&(0,S.jsxs)("div",{style:{padding:"16px"},children:[(0,S.jsxs)(Zf,{title:"General",t,children:[(0,S.jsx)(En,{k:"Request URL",v:l.url,t}),(0,S.jsx)(En,{k:"Request Method",v:l.method,t}),(0,S.jsx)(En,{k:"Status Code",v:String(l.response?l.response.status:"Pending"),t,color:l.error?"#f28b82":"#81c995"}),l.error&&(0,S.jsx)(En,{k:"Error",v:l.error,t,color:"#f28b82"})]}),(0,S.jsx)(Zf,{title:"Response Headers",t,children:l.response?(0,S.jsx)(J1,{headers:l.response.headers,t}):(0,S.jsx)("span",{style:{fontStyle:"italic",color:t.textSecondary},children:"(no response yet)"})}),(0,S.jsx)(Zf,{title:"Request Headers",t,children:(0,S.jsx)(J1,{headers:l.headers,t})})]}),e==="payload"&&(0,S.jsx)(w1,{content:l.body,t}),e==="response"&&(0,S.jsx)(w1,{content:l.response?.body,chunks:l.chunks,t})]})]})}function Zf({title:l,children:t,t:e}){let[a,n]=(0,C.useState)(!1);return(0,S.jsxs)("div",{style:{marginBottom:"16px",border:`1px solid ${e.border}`,borderRadius:"6px",overflow:"hidden"},children:[(0,S.jsxs)("div",{onClick:()=>n(!a),style:{padding:"8px 12px",background:e.bgSecondary,fontWeight:"bold",fontSize:"11px",cursor:"pointer",userSelect:"none",display:"flex",alignItems:"center",gap:"8px"},children:[(0,S.jsx)("span",{style:{fontSize:"9px",color:e.textSecondary},children:a?"\\u25B6":"\\u25BC"}),l]}),!a&&(0,S.jsx)("div",{style:{padding:"12px",background:e.bg},children:t})]})}function En({k:l,v:t,color:e,t:a}){return(0,S.jsxs)("div",{style:{display:"flex",fontSize:"12px",fontFamily:"monospace",marginBottom:"4px",lineHeight:"1.4"},children:[(0,S.jsxs)("div",{style:{fontWeight:"bold",color:a.textSecondary,width:"160px",flexShrink:0},children:[l,":"]}),(0,S.jsx)("div",{style:{flex:1,wordBreak:"break-all",color:e||a.text},children:t})]})}function J1({headers:l,t}){return l?(0,S.jsx)(S.Fragment,{children:Object.entries(l).map(([e,a])=>(0,S.jsx)(En,{k:e,v:String(a),t},e))}):(0,S.jsx)("div",{style:{color:t.textSecondary},children:"(none)"})}function w1({content:l,chunks:t,t:e}){let[a,n]=(0,C.useState)("json"),u=t&&t.length>0,i=u?t.map(g=>g.data).join(""):l||"",c=()=>{try{return JSON.stringify(JSON.parse(i),null,2)}catch{return i}},f=()=>{navigator.clipboard.writeText(c()).catch(()=>{})},s=()=>{let g=new Blob([c()],{type:"application/json"}),d=URL.createObjectURL(g),r=document.createElement("a");r.href=d,r.download="body.json",r.click(),URL.revokeObjectURL(d)};if(!i&&!u)return(0,S.jsx)("div",{style:{padding:"40px",color:e.textSecondary,textAlign:"center"},children:"(No content)"});let v={background:"none",border:"none",cursor:"pointer",color:e.textSecondary,padding:"2px",borderRadius:"4px",display:"flex",alignItems:"center"};return(0,S.jsxs)("div",{style:{display:"flex",flexDirection:"column",height:"100%"},children:[(0,S.jsxs)("div",{style:{padding:"6px 12px",background:e.bgSecondary,borderBottom:`1px solid ${e.border}`,display:"flex",gap:"8px",alignItems:"center"},children:[["json","raw"].map(g=>(0,S.jsx)("button",{onClick:()=>n(g),style:{fontSize:"11px",padding:"2px 8px",borderRadius:"4px",border:`1px solid ${e.border}`,background:a===g?e.accent:e.bg,color:a===g?"#fff":e.text,cursor:"pointer",textTransform:"uppercase",fontWeight:"bold"},children:g},g)),(0,S.jsx)("div",{style:{flex:1}}),(0,S.jsx)("button",{onClick:f,style:v,title:"Copy JSON",children:(0,S.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor",children:[(0,S.jsx)("path",{d:"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25z"}),(0,S.jsx)("path",{d:"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25z"})]})}),(0,S.jsx)("button",{onClick:s,style:v,title:"Download JSON",children:(0,S.jsxs)("svg",{width:"14",height:"14",viewBox:"0 0 16 16",fill:"currentColor",children:[(0,S.jsx)("path",{d:"M2.75 14A1.75 1.75 0 011 12.25v-2.5a.75.75 0 011.5 0v2.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25v-2.5a.75.75 0 011.5 0v2.5A1.75 1.75 0 0113.25 14z"}),(0,S.jsx)("path",{d:"M7.25 7.689V2a.75.75 0 011.5 0v5.689l1.97-1.969a.749.749 0 111.06 1.06l-3.25 3.25a.749.749 0 01-1.06 0L4.22 6.78a.749.749 0 111.06-1.06z"})]})})]}),(0,S.jsx)("div",{style:{flex:1,overflow:"auto",padding:a==="raw"?"16px":0},children:u&&a==="raw"?(0,S.jsx)("div",{children:t.map((g,d)=>(0,S.jsxs)("div",{style:{marginBottom:"12px"},children:[(0,S.jsxs)("div",{style:{fontSize:"10px",color:e.textSecondary,marginBottom:"4px"},children:["[",new Date(g.timestamp).toLocaleTimeString("en-US",{hour12:!1}),".",String(g.timestamp%1e3).padStart(3,"0"),"]"]}),(0,S.jsx)("pre",{style:{margin:0,fontSize:"12px",fontFamily:"SFMono-Regular, Consolas, monospace",whiteSpace:"pre-wrap",wordBreak:"break-all",color:e.text,lineHeight:"1.5"},children:g.data})]},d))}):a==="raw"?(0,S.jsx)("pre",{style:{margin:0,fontSize:"12px",fontFamily:"SFMono-Regular, Consolas, monospace",whiteSpace:"pre-wrap",wordBreak:"break-all",color:e.text,lineHeight:"1.5"},children:i}):(0,S.jsx)(nr,{content:i,t:e})})]})}function nr({content:l,t}){let e=l||"";if(e.includes("data:")){let a=e.split(/\\n\\s*\\n/).map((n,u)=>({index:u+1,jsonStr:n.split(`\n`).filter(i=>i.trim().startsWith("data:")).map(i=>i.trim().substring(5).trim()).join("")})).filter(n=>n.jsonStr);if(a.length>0)return(0,S.jsx)("div",{children:a.map(n=>(0,S.jsxs)("div",{style:{marginBottom:"12px",borderLeft:`2px solid ${t.accent}`,paddingLeft:"12px",background:t.bgSecondary,borderRadius:"0 4px 4px 0",padding:"8px 12px"},children:[(0,S.jsxs)("div",{style:{fontWeight:"bold",color:t.textSecondary,fontSize:"10px",marginBottom:"4px"},children:["CHUNK ",n.index]}),(0,S.jsx)(F1,{data:k1(n.jsonStr),t})]},n.index))})}return(0,S.jsx)(F1,{data:k1(e),t})}function k1(l){try{return JSON.parse(l)}catch{return l}}function ur(l){let t=typeof l=="string"&&!l.startsWith("{")&&!l.startsWith("[")?l:JSON.stringify(l,null,2);if(t==null)return[{text:"undefined",foldStart:!1,foldEnd:-1,closingBracket:""}];let e=t.split(`\n`),a=e.map(u=>({text:u,foldStart:!1,foldEnd:-1,closingBracket:""})),n=[];for(let u=0;u0&&n[n.length-1].bracket===s){let v=n.pop();a[v.index].foldStart=!0,a[v.index].foldEnd=u,a[v.index].closingBracket=v.bracket}}return a}var W1=/("(?:[^"\\\\]|\\\\.)*")\\s*(?=:)|("(?:[^"\\\\]|\\\\.)*")|(-?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(\\btrue\\b|\\bfalse\\b)|(\\bnull\\b)|([{}[\\]:,])/g;function $1(l,t){let e=[],a=0,n;for(W1.lastIndex=0;(n=W1.exec(l))!==null;){n.index>a&&e.push(l.slice(a,n.index));let[u,i,c,f,s,v]=n;if(i)e.push((0,S.jsx)("span",{style:{color:t.accent,fontWeight:"bold"},children:u},a));else if(c){let g;try{g=JSON.parse(u)}catch{g=u.slice(1,-1)}let d=g.split(`\n`);if(d.length<=1)e.push((0,S.jsx)("span",{style:{color:"#81c995"},children:u},a));else{let r=" ".repeat(n.index+1);e.push((0,S.jsx)(ir,{lines:d,indent:r,t},a))}}else f?e.push((0,S.jsx)("span",{style:{color:"#ad7fa8"},children:u},a)):s?e.push((0,S.jsx)("span",{style:{color:"#fdd663",fontWeight:"bold"},children:u},a)):v?e.push((0,S.jsx)("span",{style:{color:"#babdb6",fontWeight:"bold"},children:u},a)):e.push((0,S.jsx)("span",{children:u},a));a=n.index+u.length}return aVf,i=u&&!a?l.slice(0,Vf):l;return(0,S.jsxs)("span",{style:{color:"#81c995"},children:[\'"\',i[0],i.slice(1).map((c,f)=>(0,S.jsxs)(C.default.Fragment,{children:[`\n`,t,c]},f)),u&&(0,S.jsxs)(S.Fragment,{children:[`\n`,t,(0,S.jsx)("span",{onClick:()=>n(!a),style:{color:e.accent,cursor:"pointer",fontStyle:"italic",userSelect:"none"},children:a?"\\u25B2 collapse":`... ${l.length-Vf} more lines`})]}),\'"\']})}function F1({data:l,t}){let e=(0,C.useMemo)(()=>ur(l),[l]),[a,n]=(0,C.useState)(()=>new Set),u=(0,C.useRef)(null),i=v=>{n(g=>{let d=new Set(g);return d.has(v)?d.delete(v):d.add(v),d})},c=v=>{if((v.metaKey||v.ctrlKey)&&v.key==="a"){v.preventDefault();let g=window.getSelection();if(g&&u.current){g.removeAllRanges();let d=document.createRange();d.selectNodeContents(u.current),g.addRange(d)}}},f=[],s=0;for(;s0&&(0,S.jsx)("span",{children:d}),$1(r,t),(0,S.jsxs)("span",{style:{color:t.textSecondary,fontStyle:"italic"},children:[" ","... ",v.closingBracket]})]}),foldable:!0,isCollapsed:!0}),s=v.foldEnd+1}else f.push({index:s,content:$1(v.text,t),foldable:v.foldStart,isCollapsed:!1}),s++}return(0,S.jsx)("div",{tabIndex:0,onKeyDown:c,ref:u,"data-code-view":!0,style:{display:"grid",gridTemplateColumns:"20px 1fr",fontFamily:\'SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace\',fontSize:"12px",lineHeight:"1.5",outline:"none"},children:f.map(v=>(0,S.jsxs)(C.default.Fragment,{children:[(0,S.jsx)("div",{"data-gutter":!0,style:{userSelect:"none",textAlign:"center",color:t.textSecondary,borderRight:`1px solid ${t.border}`,paddingRight:"2px",cursor:v.foldable?"pointer":"default",fontSize:"9px",paddingTop:"3px"},onClick:v.foldable?()=>i(v.index):void 0,children:v.foldable?(0,S.jsx)("span",{className:"fold-icon",children:v.isCollapsed?"\\u25B6":"\\u25BC"}):""}),(0,S.jsx)("div",{style:{whiteSpace:"pre",color:t.text,paddingLeft:"8px",minHeight:"18px"},children:v.content})]},v.index))})}var Jf=Mt(zn(),1);P1.default.createRoot(document.getElementById("root")).render((0,Jf.jsx)(I1.default.StrictMode,{children:(0,Jf.jsx)(Kf,{})}));\n/**\n * @license\n * Copyright 2025 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\n/*! Bundled license information:\n\nreact/cjs/react.production.js:\n (**\n * @license React\n * react.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nscheduler/cjs/scheduler.production.js:\n (**\n * @license React\n * scheduler.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact-dom/cjs/react-dom.production.js:\n (**\n * @license React\n * react-dom.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact-dom/cjs/react-dom-client.production.js:\n (**\n * @license React\n * react-dom-client.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n\nreact/cjs/react-jsx-runtime.production.js:\n (**\n * @license React\n * react-jsx-runtime.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *)\n*/\n';