@elizaos/plugin-experience 2.0.0-alpha.4 → 2.0.0-alpha.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/node/index.node.js
CHANGED
|
@@ -220,9 +220,30 @@ var recordExperienceAction = {
|
|
|
220
220
|
similes: spec.similes ? [...spec.similes] : [],
|
|
221
221
|
description: spec.description,
|
|
222
222
|
examples: spec.examples ?? [],
|
|
223
|
-
async
|
|
224
|
-
const
|
|
225
|
-
|
|
223
|
+
validate: async (runtime, message, state, options) => {
|
|
224
|
+
const __avTextRaw = typeof message?.content?.text === "string" ? message.content.text : "";
|
|
225
|
+
const __avText = __avTextRaw.toLowerCase();
|
|
226
|
+
const __avKeywords = ["record", "experience"];
|
|
227
|
+
const __avKeywordOk = __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));
|
|
228
|
+
const __avRegex = /\b(?:record|experience)\b/i;
|
|
229
|
+
const __avRegexOk = __avRegex.test(__avText);
|
|
230
|
+
const __avSource = String(message?.content?.source ?? message?.source ?? "");
|
|
231
|
+
const __avExpectedSource = "";
|
|
232
|
+
const __avSourceOk = __avExpectedSource ? __avSource === __avExpectedSource : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);
|
|
233
|
+
const __avOptions = options && typeof options === "object" ? options : {};
|
|
234
|
+
const __avInputOk = __avText.trim().length > 0 || Object.keys(__avOptions).length > 0 || Boolean(message?.content && typeof message.content === "object");
|
|
235
|
+
if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
const __avLegacyValidate = async (_runtime, message2) => {
|
|
239
|
+
const text = message2.content.text?.toLowerCase();
|
|
240
|
+
return text?.includes("remember") || text?.includes("record") || false;
|
|
241
|
+
};
|
|
242
|
+
try {
|
|
243
|
+
return Boolean(await __avLegacyValidate(runtime, message, state, options));
|
|
244
|
+
} catch {
|
|
245
|
+
return false;
|
|
246
|
+
}
|
|
226
247
|
},
|
|
227
248
|
async handler(runtime, message, state, _options, _callback) {
|
|
228
249
|
logger.info("Recording experience for message:", message.id);
|
|
@@ -522,6 +543,7 @@ var spec2 = requireProviderSpec("experienceProvider");
|
|
|
522
543
|
var experienceProvider = {
|
|
523
544
|
name: spec2.name,
|
|
524
545
|
description: "Provides relevant past experiences and learnings for the current context",
|
|
546
|
+
dynamic: true,
|
|
525
547
|
async get(runtime, message, _state) {
|
|
526
548
|
const experienceService = runtime.getService("EXPERIENCE");
|
|
527
549
|
if (!experienceService) {
|
|
@@ -1030,7 +1052,9 @@ class ExperienceService extends Service {
|
|
|
1030
1052
|
}
|
|
1031
1053
|
let queryEmbedding;
|
|
1032
1054
|
try {
|
|
1033
|
-
queryEmbedding = await this.runtime.useModel(ModelType2.TEXT_EMBEDDING, {
|
|
1055
|
+
queryEmbedding = await this.runtime.useModel(ModelType2.TEXT_EMBEDDING, {
|
|
1056
|
+
text
|
|
1057
|
+
});
|
|
1034
1058
|
if (!Array.isArray(queryEmbedding) || queryEmbedding.length === 0 || queryEmbedding.every((v) => v === 0)) {
|
|
1035
1059
|
logger4.warn("[ExperienceService] Query embedding is empty/zero, falling back to recency sort");
|
|
1036
1060
|
return this.fallbackSort(limit);
|
|
@@ -1254,4 +1278,4 @@ export {
|
|
|
1254
1278
|
ExperienceService
|
|
1255
1279
|
};
|
|
1256
1280
|
|
|
1257
|
-
//# debugId=
|
|
1281
|
+
//# debugId=21141D6C2118F96564756E2164756E21
|
|
@@ -3,18 +3,18 @@
|
|
|
3
3
|
"sources": ["../../index.ts", "../../actions/record-experience.ts", "../../generated/specs/specs.ts", "../../generated/specs/spec-helpers.ts", "../../evaluators/experienceEvaluator.ts", "../../generated/prompts/typescript/prompts.ts", "../../types.ts", "../../providers/experienceProvider.ts", "../../service.ts", "../../utils/confidenceDecay.ts", "../../utils/experienceRelationships.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { IAgentRuntime, Plugin } from \"@elizaos/core\";\nimport { logger } from \"@elizaos/core\";\nimport { recordExperienceAction } from \"./actions/record-experience\";\nimport { experienceEvaluator } from \"./evaluators/experienceEvaluator\";\nimport { experienceProvider } from \"./providers/experienceProvider\";\nimport { ExperienceService } from \"./service\";\nimport \"./types\";\n\nexport const experiencePlugin: Plugin = {\n name: \"experience\",\n description:\n \"Self-learning experience system that records and recalls transferable agent learnings\",\n\n actions: [recordExperienceAction],\n services: [ExperienceService],\n providers: [experienceProvider],\n evaluators: [experienceEvaluator],\n\n async init(config: Record<string, string>, runtime: IAgentRuntime): Promise<void> {\n logger.info(\"[ExperiencePlugin] Initializing experience learning system\");\n\n const autoRecordThreshold = parseOptionalNumber(config.AUTO_RECORD_THRESHOLD, 0.7);\n\n runtime.setSetting(\"AUTO_RECORD_THRESHOLD\", autoRecordThreshold.toString());\n\n logger.info(`[ExperiencePlugin] Configuration:\n - AUTO_RECORD_THRESHOLD: ${autoRecordThreshold}`);\n },\n};\n\nexport default experiencePlugin;\n\nexport { ExperienceService } from \"./service\";\nexport * from \"./types\";\n\nfunction parseOptionalNumber(value: string | undefined, fallback: number): number {\n if (!value) return fallback;\n const parsed = Number.parseFloat(value);\n return Number.isFinite(parsed) ? parsed : fallback;\n}\n",
|
|
6
|
-
"import {\n type Action,\n type ActionExample,\n type ActionResult,\n createUniqueUuid,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\n\nconst spec = requireActionSpec(\"RECORD_EXPERIENCE\");\n\nexport const recordExperienceAction: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n examples: (spec.examples ?? []) as ActionExample[][],\n\n async
|
|
6
|
+
"import {\n type Action,\n type ActionExample,\n type ActionResult,\n createUniqueUuid,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n type State,\n} from \"@elizaos/core\";\nimport { requireActionSpec } from \"../generated/specs/spec-helpers\";\n\nconst spec = requireActionSpec(\"RECORD_EXPERIENCE\");\n\nexport const recordExperienceAction: Action = {\n name: spec.name,\n similes: spec.similes ? [...spec.similes] : [],\n description: spec.description,\n examples: (spec.examples ?? []) as ActionExample[][],\n\n validate: async (runtime: any, message: any, state?: any, options?: any): Promise<boolean> => {\n const __avTextRaw = typeof message?.content?.text === \"string\" ? message.content.text : \"\";\n const __avText = __avTextRaw.toLowerCase();\n const __avKeywords = [\"record\", \"experience\"];\n const __avKeywordOk =\n __avKeywords.length > 0 && __avKeywords.some((kw) => kw.length > 0 && __avText.includes(kw));\n const __avRegex = /\\b(?:record|experience)\\b/i;\n const __avRegexOk = __avRegex.test(__avText);\n const __avSource = String(message?.content?.source ?? message?.source ?? \"\");\n const __avExpectedSource = \"\";\n const __avSourceOk = __avExpectedSource\n ? __avSource === __avExpectedSource\n : Boolean(__avSource || state || runtime?.agentId || runtime?.getService);\n const __avOptions = options && typeof options === \"object\" ? options : {};\n const __avInputOk =\n __avText.trim().length > 0 ||\n Object.keys(__avOptions as Record<string, unknown>).length > 0 ||\n Boolean(message?.content && typeof message.content === \"object\");\n\n if (!(__avKeywordOk && __avRegexOk && __avSourceOk && __avInputOk)) {\n return false;\n }\n\n const __avLegacyValidate = async (_runtime: IAgentRuntime, message: Memory) => {\n const text = message.content.text?.toLowerCase();\n return text?.includes(\"remember\") || text?.includes(\"record\") || false;\n };\n try {\n return Boolean(await (__avLegacyValidate as any)(runtime, message, state, options));\n } catch {\n return false;\n }\n },\n\n async handler(\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: HandlerOptions,\n _callback?: HandlerCallback\n ): Promise<ActionResult> {\n void _options;\n void _callback;\n\n logger.info(\"Recording experience for message:\", message.id);\n\n // Create experience memory with context\n const experienceMemory: Memory = {\n id: createUniqueUuid(runtime, `experience-${message.id}`),\n entityId: message.entityId,\n agentId: runtime.agentId,\n roomId: message.roomId,\n content: {\n text: message.content.text,\n source: message.content.source,\n type: \"experience\",\n context: state?.text,\n },\n createdAt: Date.now(),\n };\n\n // Store in experiences table\n await runtime.createMemory(experienceMemory, \"experiences\", true);\n logger.info(\"Experience recorded successfully\");\n\n return {\n success: true,\n text: \"Experience recorded.\",\n data: {\n experienceMemoryId: experienceMemory.id,\n },\n };\n },\n};\n",
|
|
7
7
|
"/**\n * Auto-generated canonical action/provider/evaluator docs for plugin-experience.\n * DO NOT EDIT - Generated from prompts/specs/**.\n */\n\nexport type ActionDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n parameters?: readonly unknown[];\n examples?: readonly (readonly unknown[])[];\n};\n\nexport type ProviderDoc = {\n name: string;\n description: string;\n position?: number;\n dynamic?: boolean;\n};\n\nexport type EvaluatorDoc = {\n name: string;\n description: string;\n similes?: readonly string[];\n alwaysRun?: boolean;\n examples?: readonly unknown[];\n};\n\nexport const coreActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"RECORD_EXPERIENCE\",\n description:\n \"Record a learning or experience for future reference. Use this when the user explicitly asks you to remember something or when you've learned something important.\",\n similes: [\"REMEMBER\", \"LEARN\", \"STORE_EXPERIENCE\", \"SAVE_EXPERIENCE\", \"RECORD_LEARNING\"],\n parameters: [],\n examples: [\n [\n {\n name: \"{{name1}}\",\n content: {\n text: \"Remember that installing dependencies is required for Python scripts\",\n },\n },\n {\n name: \"{{name2}}\",\n content: {\n text: \"I'll record that experience. Learning: Need to install dependencies before running Python scripts.\",\n actions: [\"RECORD_EXPERIENCE\"],\n },\n },\n ],\n [\n {\n name: \"{{name1}}\",\n content: {\n text: \"Remember that users prefer shorter responses\",\n },\n },\n {\n name: \"{{name2}}\",\n content: {\n text: \"I'll remember that preference.\",\n actions: [\"RECORD_EXPERIENCE\"],\n },\n },\n ],\n [\n {\n name: \"{{name1}}\",\n content: {\n text: \"What's 2+2?\",\n },\n },\n {\n name: \"{{name2}}\",\n content: {\n text: \"2+2 equals 4.\",\n },\n },\n ],\n [\n {\n name: \"{{name1}}\",\n content: {\n text: \"Can you help me with math?\",\n },\n },\n {\n name: \"{{name2}}\",\n content: {\n text: \"Of course! What math problem do you need help with?\",\n },\n },\n ],\n ],\n },\n ],\n} as const;\nexport const allActionsSpec = {\n version: \"1.0.0\",\n actions: [\n {\n name: \"RECORD_EXPERIENCE\",\n description:\n \"Record a learning or experience for future reference. Use this when the user explicitly asks you to remember something or when you've learned something important.\",\n similes: [\"REMEMBER\", \"LEARN\", \"STORE_EXPERIENCE\", \"SAVE_EXPERIENCE\", \"RECORD_LEARNING\"],\n parameters: [],\n examples: [\n [\n {\n name: \"{{name1}}\",\n content: {\n text: \"Remember that installing dependencies is required for Python scripts\",\n },\n },\n {\n name: \"{{name2}}\",\n content: {\n text: \"I'll record that experience. Learning: Need to install dependencies before running Python scripts.\",\n actions: [\"RECORD_EXPERIENCE\"],\n },\n },\n ],\n [\n {\n name: \"{{name1}}\",\n content: {\n text: \"Remember that users prefer shorter responses\",\n },\n },\n {\n name: \"{{name2}}\",\n content: {\n text: \"I'll remember that preference.\",\n actions: [\"RECORD_EXPERIENCE\"],\n },\n },\n ],\n [\n {\n name: \"{{name1}}\",\n content: {\n text: \"What's 2+2?\",\n },\n },\n {\n name: \"{{name2}}\",\n content: {\n text: \"2+2 equals 4.\",\n },\n },\n ],\n [\n {\n name: \"{{name1}}\",\n content: {\n text: \"Can you help me with math?\",\n },\n },\n {\n name: \"{{name2}}\",\n content: {\n text: \"Of course! What math problem do you need help with?\",\n },\n },\n ],\n ],\n },\n ],\n} as const;\nexport const coreProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"experienceProvider\",\n description: \"Provides relevant past experiences and learnings for the current context\",\n dynamic: true,\n },\n ],\n} as const;\nexport const allProvidersSpec = {\n version: \"1.0.0\",\n providers: [\n {\n name: \"experienceProvider\",\n description: \"Provides relevant past experiences and learnings for the current context\",\n dynamic: true,\n },\n ],\n} as const;\nexport const coreEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\nexport const allEvaluatorsSpec = {\n version: \"1.0.0\",\n evaluators: [],\n} as const;\n\nexport const coreActionDocs: readonly ActionDoc[] = coreActionsSpec.actions;\nexport const allActionDocs: readonly ActionDoc[] = allActionsSpec.actions;\nexport const coreProviderDocs: readonly ProviderDoc[] = coreProvidersSpec.providers;\nexport const allProviderDocs: readonly ProviderDoc[] = allProvidersSpec.providers;\nexport const coreEvaluatorDocs: readonly EvaluatorDoc[] = coreEvaluatorsSpec.evaluators;\nexport const allEvaluatorDocs: readonly EvaluatorDoc[] = allEvaluatorsSpec.evaluators;\n",
|
|
8
8
|
"/**\n * Helper functions to lookup action/provider/evaluator specs by name.\n * These allow language-specific implementations to import their text content\n * (description, similes, examples) from the centralized specs.\n *\n * DO NOT EDIT the spec data - update prompts/actions.json, prompts/providers.json, prompts/evaluators.json and regenerate.\n */\n\nimport {\n type ActionDoc,\n allActionDocs,\n allEvaluatorDocs,\n allProviderDocs,\n coreActionDocs,\n coreEvaluatorDocs,\n coreProviderDocs,\n type EvaluatorDoc,\n type ProviderDoc,\n} from \"./specs\";\n\n// Build lookup maps for O(1) access\nconst coreActionMap = new Map<string, ActionDoc>(coreActionDocs.map((doc) => [doc.name, doc]));\nconst allActionMap = new Map<string, ActionDoc>(allActionDocs.map((doc) => [doc.name, doc]));\nconst coreProviderMap = new Map<string, ProviderDoc>(\n coreProviderDocs.map((doc) => [doc.name, doc])\n);\nconst allProviderMap = new Map<string, ProviderDoc>(allProviderDocs.map((doc) => [doc.name, doc]));\nconst coreEvaluatorMap = new Map<string, EvaluatorDoc>(\n coreEvaluatorDocs.map((doc) => [doc.name, doc])\n);\nconst allEvaluatorMap = new Map<string, EvaluatorDoc>(\n allEvaluatorDocs.map((doc) => [doc.name, doc])\n);\n\n/**\n * Get an action spec by name from the core specs.\n * @param name - The action name\n * @returns The action spec or undefined if not found\n */\nexport function getActionSpec(name: string): ActionDoc | undefined {\n return coreActionMap.get(name) ?? allActionMap.get(name);\n}\n\n/**\n * Get an action spec by name, throwing if not found.\n * @param name - The action name\n * @returns The action spec\n * @throws Error if the action is not found\n */\nexport function requireActionSpec(name: string): ActionDoc {\n const spec = getActionSpec(name);\n if (!spec) {\n throw new Error(`Action spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get a provider spec by name from the core specs.\n * @param name - The provider name\n * @returns The provider spec or undefined if not found\n */\nexport function getProviderSpec(name: string): ProviderDoc | undefined {\n return coreProviderMap.get(name) ?? allProviderMap.get(name);\n}\n\n/**\n * Get a provider spec by name, throwing if not found.\n * @param name - The provider name\n * @returns The provider spec\n * @throws Error if the provider is not found\n */\nexport function requireProviderSpec(name: string): ProviderDoc {\n const spec = getProviderSpec(name);\n if (!spec) {\n throw new Error(`Provider spec not found: ${name}`);\n }\n return spec;\n}\n\n/**\n * Get an evaluator spec by name from the core specs.\n * @param name - The evaluator name\n * @returns The evaluator spec or undefined if not found\n */\nexport function getEvaluatorSpec(name: string): EvaluatorDoc | undefined {\n return coreEvaluatorMap.get(name) ?? allEvaluatorMap.get(name);\n}\n\n/**\n * Get an evaluator spec by name, throwing if not found.\n * @param name - The evaluator name\n * @returns The evaluator spec\n * @throws Error if the evaluator is not found\n */\nexport function requireEvaluatorSpec(name: string): EvaluatorDoc {\n const spec = getEvaluatorSpec(name);\n if (!spec) {\n throw new Error(`Evaluator spec not found: ${name}`);\n }\n return spec;\n}\n\n// Re-export types for convenience\nexport type { ActionDoc, ProviderDoc, EvaluatorDoc };\n",
|
|
9
9
|
"import {\n type ActionResult,\n composePrompt,\n type Evaluator,\n type HandlerCallback,\n type HandlerOptions,\n type IAgentRuntime,\n logger,\n type Memory,\n ModelType,\n type State,\n} from \"@elizaos/core\";\nimport { EXTRACT_EXPERIENCES_TEMPLATE } from \"../generated/prompts/typescript/prompts.js\";\nimport type { ExperienceService } from \"../service\";\nimport { ExperienceType, OutcomeType } from \"../types\";\n\ntype ExtractedExperience = {\n type?: string;\n learning?: string;\n context?: string;\n confidence?: number;\n reasoning?: string;\n};\n\nexport const experienceEvaluator: Evaluator = {\n name: \"EXPERIENCE_EVALUATOR\",\n similes: [\"experience recorder\", \"learning evaluator\", \"self-reflection\"],\n description: \"Periodically analyzes conversation patterns to extract novel learning experiences\",\n alwaysRun: false,\n\n examples: [\n {\n prompt: \"The agent successfully executed a shell command after initially failing\",\n messages: [\n {\n name: \"Autoliza\",\n content: {\n text: \"Let me try to run this Python script.\",\n },\n },\n {\n name: \"Autoliza\",\n content: {\n text: \"Error: ModuleNotFoundError for pandas. I need to install it first.\",\n },\n },\n {\n name: \"Autoliza\",\n content: {\n text: \"After installing pandas, the script ran successfully and produced the expected output.\",\n },\n },\n ],\n outcome:\n \"Record a CORRECTION experience about needing to install dependencies before running Python scripts\",\n },\n {\n prompt: \"The agent discovered a new system capability\",\n messages: [\n {\n name: \"Autoliza\",\n content: {\n text: \"I found that the system has jq installed, which is perfect for parsing JSON data.\",\n },\n },\n ],\n outcome: \"Record a DISCOVERY experience about the availability of jq for JSON processing\",\n },\n ],\n\n async validate(runtime: IAgentRuntime, message: Memory, _state?: State): Promise<boolean> {\n // Only run every 10 messages and only on agent messages\n if (message.entityId !== runtime.agentId) {\n return false;\n }\n\n // Check cooldown - only extract experiences every 25 messages to reduce token cost\n const lastExtractionKey = \"experience-extraction:last-message-count\";\n const currentCount = (await runtime.getCache<string>(lastExtractionKey)) || \"0\";\n const messageCount = Number.parseInt(currentCount, 10);\n const newMessageCount = messageCount + 1;\n\n await runtime.setCache(lastExtractionKey, newMessageCount.toString());\n\n // Trigger extraction every 25 messages (was 10 — reduced to cut LLM costs by ~60%)\n const shouldExtract = newMessageCount % 25 === 0;\n\n if (shouldExtract) {\n logger.info(\n `[experienceEvaluator] Triggering experience extraction after ${newMessageCount} messages`\n );\n }\n\n return shouldExtract;\n },\n\n async handler(\n runtime: IAgentRuntime,\n message: Memory,\n state?: State,\n _options?: HandlerOptions,\n _callback?: HandlerCallback,\n _responses?: Memory[]\n ): Promise<ActionResult | undefined> {\n void _options;\n void _callback;\n void _responses;\n void state;\n\n const experienceService = runtime.getService(\"EXPERIENCE\") as ExperienceService | null;\n\n if (!experienceService) {\n logger.warn(\"[experienceEvaluator] Experience service not available\");\n return;\n }\n\n const recentMessages = await runtime.getMemories({\n tableName: \"messages\",\n roomId: message.roomId,\n count: 10,\n unique: false,\n });\n\n if (recentMessages.length < 3) {\n logger.debug(\"[experienceEvaluator] Not enough messages for experience extraction\");\n return;\n }\n\n // Combine recent messages into analysis context\n const conversationContext = recentMessages\n .map((m: Memory) => m.content.text)\n .filter(Boolean)\n .join(\" \");\n\n // NOTE: We intentionally do NOT query existing experiences to embed in the prompt.\n // That added ~500-1000 tokens per call for dedup the LLM can't reliably do anyway.\n // Deduplication happens post-extraction via similarity check before recording.\n\n const extractionPrompt = composePrompt({\n state: {\n conversation_context: conversationContext,\n existing_experiences: \"None\",\n },\n template: EXTRACT_EXPERIENCES_TEMPLATE,\n });\n\n // Use TEXT_SMALL — extraction is a structured JSON task, not complex reasoning.\n // Saves 5-10x in token cost vs TEXT_LARGE.\n const response = await runtime.useModel(ModelType.TEXT_SMALL, {\n prompt: extractionPrompt,\n });\n\n const experiences = parseExtractedExperiences(response);\n\n const threshold = getNumberSetting(runtime, \"AUTO_RECORD_THRESHOLD\", 0.6);\n\n // Record each novel experience\n const experienceTypeMap: Record<string, ExperienceType> = {\n DISCOVERY: ExperienceType.DISCOVERY,\n CORRECTION: ExperienceType.CORRECTION,\n SUCCESS: ExperienceType.SUCCESS,\n LEARNING: ExperienceType.LEARNING,\n };\n\n for (const exp of experiences.slice(0, 3)) {\n // Max 3 experiences per extraction\n if (!exp.learning || typeof exp.confidence !== \"number\" || exp.confidence < threshold) {\n continue;\n }\n\n // Post-extraction dedup: skip if a very similar experience already exists\n const similar = await experienceService.findSimilarExperiences(exp.learning, 1);\n if (similar.length > 0) {\n // If the most similar existing experience shares a lot of the same words,\n // it's likely a duplicate — skip recording\n const existingLearning = similar[0].learning.toLowerCase();\n const newLearning = exp.learning.toLowerCase();\n const existingWords = new Set(existingLearning.split(/\\s+/).filter((w) => w.length > 3));\n const newWords = new Set(newLearning.split(/\\s+/).filter((w) => w.length > 3));\n const overlap = [...newWords].filter((w) => existingWords.has(w)).length;\n const union = new Set([...existingWords, ...newWords]).size;\n if (union > 0 && overlap / union > 0.6) {\n logger.debug(\n `[experienceEvaluator] Skipping duplicate experience: \"${exp.learning.substring(0, 80)}...\"`\n );\n continue;\n }\n }\n\n const normalizedType = typeof exp.type === \"string\" ? exp.type.toUpperCase() : \"\";\n const experienceType = experienceTypeMap[normalizedType] ?? ExperienceType.LEARNING;\n const experienceTag = experienceType;\n\n await experienceService.recordExperience({\n type: experienceType,\n outcome:\n experienceType === ExperienceType.CORRECTION ? OutcomeType.POSITIVE : OutcomeType.NEUTRAL,\n context: sanitizeContext(exp.context || \"Conversation analysis\"),\n action: \"pattern_recognition\",\n result: exp.learning,\n learning: sanitizeContext(exp.learning),\n domain: detectDomain(exp.learning),\n tags: [\"extracted\", \"novel\", experienceTag],\n confidence: Math.min(exp.confidence, 0.9), // Cap confidence\n importance: 0.8, // High importance for extracted experiences\n });\n\n logger.info(\n `[experienceEvaluator] Recorded novel experience: ${exp.learning.substring(0, 100)}...`\n );\n }\n\n if (experiences.length > 0) {\n logger.info(\n `[experienceEvaluator] Extracted ${experiences.length} novel experiences from conversation`\n );\n } else {\n logger.debug(\"[experienceEvaluator] No novel experiences found in recent conversation\");\n }\n\n return {\n success: true,\n data: {\n extractedCount: experiences.length,\n },\n values: {\n extractedCount: experiences.length.toString(),\n },\n };\n },\n};\n\nfunction parseExtractedExperiences(response: string): ExtractedExperience[] {\n const jsonMatch = response.match(/\\[[\\s\\S]*\\]/);\n if (!jsonMatch) return [];\n\n try {\n const parsed = JSON.parse(jsonMatch[0]) as ExtractedExperience[];\n if (!Array.isArray(parsed)) return [];\n return parsed.filter((item) => item && typeof item === \"object\");\n } catch {\n return [];\n }\n}\n\nfunction getNumberSetting(runtime: IAgentRuntime, key: string, fallback: number): number {\n const value = runtime.getSetting(key);\n if (typeof value === \"number\") return value;\n if (typeof value === \"string\") {\n const parsed = Number.parseFloat(value);\n return Number.isFinite(parsed) ? parsed : fallback;\n }\n return fallback;\n}\n\nfunction sanitizeContext(text: string): string {\n if (!text) return \"Unknown context\";\n\n // Remove user-specific details while preserving technical context\n return text\n .replace(/\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b/g, \"[EMAIL]\") // emails\n .replace(/\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b/g, \"[IP]\") // IP addresses\n .replace(/\\/Users\\/[^/\\s]+/g, \"/Users/[USER]\") // user directories\n .replace(/\\/home\\/[^/\\s]+/g, \"/home/[USER]\") // home directories\n .replace(/\\b[A-Z0-9]{20,}\\b/g, \"[TOKEN]\") // API keys/tokens\n .replace(/\\b(user|person|someone|they)\\s+(said|asked|told|mentioned)/gi, \"when asked\") // personal references\n .substring(0, 200); // limit length\n}\n\nfunction detectDomain(text: string): string {\n const domains: Record<string, string[]> = {\n shell: [\"command\", \"terminal\", \"bash\", \"shell\", \"execute\", \"script\", \"cli\"],\n coding: [\n \"code\",\n \"function\",\n \"variable\",\n \"syntax\",\n \"programming\",\n \"debug\",\n \"typescript\",\n \"javascript\",\n ],\n system: [\"file\", \"directory\", \"process\", \"memory\", \"cpu\", \"system\", \"install\", \"package\"],\n network: [\"http\", \"api\", \"request\", \"response\", \"url\", \"network\", \"fetch\", \"curl\"],\n data: [\"json\", \"csv\", \"database\", \"query\", \"data\", \"sql\", \"table\"],\n ai: [\"model\", \"llm\", \"embedding\", \"prompt\", \"token\", \"inference\"],\n };\n\n const lowerText = text.toLowerCase();\n\n for (const [domain, keywords] of Object.entries(domains)) {\n if (keywords.some((keyword) => lowerText.includes(keyword))) {\n return domain;\n }\n }\n\n return \"general\";\n}\n",
|
|
10
|
-
"/**\n * Auto-generated prompt templates\n * DO NOT EDIT - Generated from ../../../../prompts/*.txt\n *\n * These prompts use Handlebars-style template syntax:\n * - {{variableName}} for simple substitution\n * - {{#each items}}...{{/each}} for iteration\n * - {{#if condition}}...{{/if}} for conditionals\n */\n\nexport const extractExperiencesTemplate = `# Task: Extract Novel Learning Experiences\n\nAnalyze this conversation for novel learning experiences that would be surprising or valuable to remember.\n\n## Conversation context\n{{conversation_context}}\n\n## Existing similar experiences\n{{existing_experiences}}\n\n## Instructions\nExtract ONLY experiences that are:\n1. Genuinely novel (not in existing experiences)\n2. Actionable learnings about how things work\n3. Corrections of previous mistakes or assumptions\n4. Discoveries of new capabilities or patterns\n5. Surprising outcomes that contradict expectations\n\nFocus on technical knowledge, patterns, and cause-effect relationships that transfer to other contexts.\nAvoid personal details, user-specific information, or routine interactions.\n\nRespond with JSON array of experiences (max 3):\n[{\n \"type\": \"DISCOVERY|CORRECTION|SUCCESS|LEARNING\",\n \"learning\": \"What was learned (generic, transferable)\",\n \"context\": \"What situation triggered this (anonymized)\",\n \"confidence\": 0.0-1.0,\n \"reasoning\": \"Why this is novel and valuable\"\n}]\n\nReturn empty array [] if no novel experiences found.`;\n\nexport const EXTRACT_EXPERIENCES_TEMPLATE = extractExperiencesTemplate;\n
|
|
10
|
+
"/**\n * Auto-generated prompt templates\n * DO NOT EDIT - Generated from ../../../../prompts/*.txt\n *\n * These prompts use Handlebars-style template syntax:\n * - {{variableName}} for simple substitution\n * - {{#each items}}...{{/each}} for iteration\n * - {{#if condition}}...{{/if}} for conditionals\n */\n\nexport const extractExperiencesTemplate = `# Task: Extract Novel Learning Experiences\n\nAnalyze this conversation for novel learning experiences that would be surprising or valuable to remember.\n\n## Conversation context\n{{conversation_context}}\n\n## Existing similar experiences\n{{existing_experiences}}\n\n## Instructions\nExtract ONLY experiences that are:\n1. Genuinely novel (not in existing experiences)\n2. Actionable learnings about how things work\n3. Corrections of previous mistakes or assumptions\n4. Discoveries of new capabilities or patterns\n5. Surprising outcomes that contradict expectations\n\nFocus on technical knowledge, patterns, and cause-effect relationships that transfer to other contexts.\nAvoid personal details, user-specific information, or routine interactions.\n\nRespond with JSON array of experiences (max 3):\n[{\n \"type\": \"DISCOVERY|CORRECTION|SUCCESS|LEARNING\",\n \"learning\": \"What was learned (generic, transferable)\",\n \"context\": \"What situation triggered this (anonymized)\",\n \"confidence\": 0.0-1.0,\n \"reasoning\": \"Why this is novel and valuable\"\n}]\n\nReturn empty array [] if no novel experiences found.`;\n\nexport const EXTRACT_EXPERIENCES_TEMPLATE = extractExperiencesTemplate;\n",
|
|
11
11
|
"import type { Memory, ServiceTypeRegistry, UUID } from \"@elizaos/core\";\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue = JsonPrimitive | JsonValue[] | { [key: string]: JsonValue };\nexport type JsonObject = { [key: string]: JsonValue };\n\n// Extend the core service types with experience service\ndeclare module \"@elizaos/core\" {\n interface ServiceTypeRegistry {\n EXPERIENCE: \"EXPERIENCE\";\n }\n}\n\n// Export service type constant\nexport const ExperienceServiceType = {\n EXPERIENCE: \"EXPERIENCE\" as const,\n} satisfies Partial<ServiceTypeRegistry>;\n\nexport enum ExperienceType {\n SUCCESS = \"success\", // Agent accomplished something\n FAILURE = \"failure\", // Agent failed at something\n DISCOVERY = \"discovery\", // Agent discovered new information\n CORRECTION = \"correction\", // Agent corrected a mistake\n LEARNING = \"learning\", // Agent learned something new\n HYPOTHESIS = \"hypothesis\", // Agent formed a hypothesis\n VALIDATION = \"validation\", // Agent validated a hypothesis\n WARNING = \"warning\", // Agent encountered a warning/limitation\n}\n\nexport enum OutcomeType {\n POSITIVE = \"positive\",\n NEGATIVE = \"negative\",\n NEUTRAL = \"neutral\",\n MIXED = \"mixed\",\n}\n\nexport interface Experience {\n id: UUID;\n agentId: UUID;\n type: ExperienceType;\n outcome: OutcomeType;\n\n // Context and details\n context: string; // What was happening\n action: string; // What the agent tried to do\n result: string; // What actually happened\n learning: string; // What was learned\n\n // Categorization\n tags: string[]; // Tags for categorization\n domain: string; // Domain of experience (e.g., 'shell', 'coding', 'system')\n\n // Related experiences\n relatedExperiences?: UUID[]; // Links to related experiences\n supersedes?: UUID; // If this experience updates/replaces another\n\n // Confidence and importance\n confidence: number; // 0-1, how confident the agent is in this learning\n importance: number; // 0-1, how important this experience is\n\n // Temporal information\n createdAt: number;\n updatedAt: number;\n lastAccessedAt?: number;\n accessCount: number;\n\n // For corrections\n previousBelief?: string; // What the agent previously believed\n correctedBelief?: string; // The corrected understanding\n\n // Memory integration\n embedding?: number[]; // For semantic search\n memoryIds?: UUID[]; // Related memory IDs\n}\n\nexport interface ExperienceQuery {\n query?: string; // Text query for semantic search\n type?: ExperienceType | ExperienceType[];\n outcome?: OutcomeType | OutcomeType[];\n domain?: string | string[];\n tags?: string[];\n minImportance?: number;\n minConfidence?: number;\n timeRange?: {\n start?: number;\n end?: number;\n };\n limit?: number;\n includeRelated?: boolean;\n}\n\nexport interface ExperienceAnalysis {\n pattern?: string; // Detected pattern\n frequency?: number; // How often this occurs\n reliability?: number; // How reliable this knowledge is\n alternatives?: string[]; // Alternative approaches discovered\n recommendations?: string[]; // Recommendations based on experience\n}\n\nexport interface ExperienceEvent {\n experienceId: UUID;\n eventType: \"created\" | \"accessed\" | \"updated\" | \"superseded\";\n timestamp: number;\n metadata?: JsonObject;\n}\n\nexport interface ExperienceMemory extends Memory {\n experienceId: string;\n experienceType: ExperienceType;\n}\n",
|
|
12
|
-
"import {\n type IAgentRuntime,\n logger,\n type Memory,\n type Provider,\n type ProviderResult,\n type State,\n} from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { ExperienceService } from \"../service\";\n\n/**\n * Simple experience provider that injects relevant experiences into context\n * Similar to the knowledge provider but focused on agent learnings\n */\nconst spec = requireProviderSpec(\"experienceProvider\");\n\nexport const experienceProvider: Provider = {\n name: spec.name,\n description: \"Provides relevant past experiences and learnings for the current context\",\n\n async get(runtime: IAgentRuntime, message: Memory, _state?: State): Promise<ProviderResult> {\n const experienceService = runtime.getService(\"EXPERIENCE\") as ExperienceService | null;\n\n if (!experienceService) {\n return { text: \"\", data: {}, values: {} };\n }\n\n // Get message text for context\n const messageText = message.content.text || \"\";\n if (messageText.length < 10) {\n return { text: \"\", data: {}, values: {} };\n }\n\n // Find relevant experiences using semantic search\n const relevantExperiences = await experienceService.queryExperiences({\n query: messageText,\n limit: 5,\n minConfidence: 0.6,\n minImportance: 0.5,\n });\n\n if (relevantExperiences.length === 0) {\n return { text: \"\", data: {}, values: {} };\n }\n\n // Format experiences for context injection\n const experienceText = relevantExperiences\n .map((exp, index) => {\n return `Experience ${index + 1}: In ${exp.domain} context, when ${exp.context}, I learned: ${exp.learning}`;\n })\n .join(\"\\n\");\n\n const contextText = `[RELEVANT EXPERIENCES]\\n${experienceText}\\n[/RELEVANT EXPERIENCES]`;\n\n logger.debug(\n `[experienceProvider] Injecting ${relevantExperiences.length} relevant experiences`\n );\n\n return {\n text: contextText,\n data: {\n experiences: relevantExperiences,\n count: relevantExperiences.length,\n },\n values: {\n experienceCount: relevantExperiences.length.toString(),\n },\n };\n },\n};\n",
|
|
13
|
-
"import {\n type IAgentRuntime,\n logger,\n ModelType,\n Service,\n type ServiceTypeName,\n type UUID,\n} from \"@elizaos/core\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport {\n type Experience,\n type ExperienceAnalysis,\n type ExperienceQuery,\n ExperienceServiceType,\n ExperienceType,\n OutcomeType,\n} from \"./types\";\nimport { ConfidenceDecayManager } from \"./utils/confidenceDecay\";\nimport { ExperienceRelationshipManager } from \"./utils/experienceRelationships\";\n\nexport class ExperienceService extends Service {\n static override serviceType: ServiceTypeName = ExperienceServiceType.EXPERIENCE;\n override capabilityDescription =\n \"Manages agent experiences, learning from successes and failures to improve future decisions\";\n\n private experiences: Map<UUID, Experience> = new Map();\n private experiencesByDomain: Map<string, Set<UUID>> = new Map();\n private experiencesByType: Map<ExperienceType, Set<UUID>> = new Map();\n private dirtyExperiences: Set<UUID> = new Set();\n private persistTimer: ReturnType<typeof setInterval> | null = null;\n private decayManager: ConfidenceDecayManager;\n private relationshipManager: ExperienceRelationshipManager;\n\n constructor(runtime: IAgentRuntime) {\n super(runtime);\n this.decayManager = new ConfidenceDecayManager();\n this.relationshipManager = new ExperienceRelationshipManager();\n\n void this.loadExperiences();\n\n // Batch-persist dirty access counts every 60 seconds\n this.persistTimer = setInterval(() => {\n void this.persistDirtyExperiences();\n }, 60_000);\n }\n\n static async start(runtime: IAgentRuntime): Promise<ExperienceService> {\n const service = new ExperienceService(runtime);\n // loadExperiences is triggered in constructor\n return service;\n }\n\n private async loadExperiences(): Promise<void> {\n // Load experiences from the \"experiences\" table (same table we write to)\n const memories = await this.runtime.getMemories({\n entityId: this.runtime.agentId,\n tableName: \"experiences\",\n });\n\n for (const memory of memories) {\n const experienceData = memory.content.data as Partial<Experience> | null;\n if (experienceData?.id) {\n const memoryCreatedAt =\n typeof memory.createdAt === \"number\" ? memory.createdAt : Date.now();\n\n const toTimestamp = (value: number | Date | undefined, fallback: number): number => {\n if (value === undefined) return fallback;\n if (typeof value === \"number\") return value;\n if (value instanceof Date) return value.getTime();\n return fallback;\n };\n\n const experience: Experience = {\n id: experienceData.id as UUID,\n agentId: this.runtime.agentId,\n type: experienceData.type || ExperienceType.LEARNING,\n outcome: experienceData.outcome || OutcomeType.NEUTRAL,\n context: experienceData.context || \"\",\n action: experienceData.action || \"\",\n result: experienceData.result || \"\",\n learning: experienceData.learning || \"\",\n domain: experienceData.domain || \"general\",\n tags: experienceData.tags || [],\n confidence: experienceData.confidence || 0.5,\n importance: experienceData.importance || 0.5,\n createdAt: toTimestamp(\n experienceData.createdAt as number | Date | undefined,\n memoryCreatedAt\n ),\n updatedAt: toTimestamp(\n experienceData.updatedAt as number | Date | undefined,\n memoryCreatedAt\n ),\n accessCount: experienceData.accessCount ?? 0,\n lastAccessedAt: toTimestamp(\n experienceData.lastAccessedAt as number | Date | undefined,\n memoryCreatedAt\n ),\n embedding: experienceData.embedding,\n relatedExperiences: experienceData.relatedExperiences,\n supersedes: experienceData.supersedes,\n previousBelief: experienceData.previousBelief,\n correctedBelief: experienceData.correctedBelief,\n };\n\n this.experiences.set(experience.id, experience);\n\n // Update indexes\n if (!this.experiencesByDomain.has(experience.domain)) {\n this.experiencesByDomain.set(experience.domain, new Set());\n }\n this.experiencesByDomain.get(experience.domain)?.add(experience.id);\n\n if (!this.experiencesByType.has(experience.type)) {\n this.experiencesByType.set(experience.type, new Set());\n }\n this.experiencesByType.get(experience.type)?.add(experience.id);\n }\n }\n\n logger.info(`[ExperienceService] Loaded ${this.experiences.size} experiences from memory`);\n }\n\n async recordExperience(experienceData: Partial<Experience>): Promise<Experience> {\n // Generate embedding for the experience (graceful fallback if unavailable)\n const embeddingText = `${experienceData.context} ${experienceData.action} ${experienceData.result} ${experienceData.learning}`;\n let embedding: number[] | undefined;\n try {\n const result = await this.runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: embeddingText,\n });\n // Validate the embedding is non-zero (some providers return zero vectors on error)\n if (Array.isArray(result) && result.length > 0 && result.some((v: number) => v !== 0)) {\n embedding = result;\n } else {\n logger.warn(\n \"[ExperienceService] Embedding model returned empty/zero vector, storing without embedding\"\n );\n }\n } catch (err) {\n logger.warn(\n `[ExperienceService] Embedding generation failed, storing without embedding: ${err}`\n );\n }\n\n const now = Date.now();\n\n const experience: Experience = {\n id: uuidv4() as UUID,\n agentId: this.runtime.agentId,\n type: experienceData.type || ExperienceType.LEARNING,\n outcome: experienceData.outcome || OutcomeType.NEUTRAL,\n context: experienceData.context || \"\",\n action: experienceData.action || \"\",\n result: experienceData.result || \"\",\n learning: experienceData.learning || \"\",\n domain: experienceData.domain || \"general\",\n tags: experienceData.tags || [],\n confidence: experienceData.confidence || 0.5,\n importance: experienceData.importance || 0.5,\n createdAt: now,\n updatedAt: now,\n accessCount: 0,\n lastAccessedAt: now,\n embedding,\n relatedExperiences: experienceData.relatedExperiences,\n supersedes: experienceData.supersedes,\n previousBelief: experienceData.previousBelief,\n correctedBelief: experienceData.correctedBelief,\n };\n\n // Store the experience\n this.experiences.set(experience.id, experience);\n\n // Update indexes\n if (!this.experiencesByDomain.has(experience.domain)) {\n this.experiencesByDomain.set(experience.domain, new Set());\n }\n this.experiencesByDomain.get(experience.domain)?.add(experience.id);\n\n if (!this.experiencesByType.has(experience.type)) {\n this.experiencesByType.set(experience.type, new Set());\n }\n this.experiencesByType.get(experience.type)?.add(experience.id);\n\n // Save to memory service\n await this.saveExperienceToMemory(experience);\n\n // Check for contradictions and add relationships\n const allExperiences = Array.from(this.experiences.values());\n const contradictions = this.relationshipManager.findContradictions(experience, allExperiences);\n\n for (const contradiction of contradictions) {\n this.relationshipManager.addRelationship({\n fromId: experience.id,\n toId: contradiction.id,\n type: \"contradicts\",\n strength: 0.8,\n });\n }\n\n logger.info(`[ExperienceService] Recorded experience: ${experience.id} (${experience.type})`);\n\n return experience;\n }\n\n private async saveExperienceToMemory(experience: Experience): Promise<void> {\n const memory = {\n id: experience.id,\n entityId: this.runtime.agentId,\n agentId: this.runtime.agentId,\n roomId: this.runtime.agentId,\n content: {\n text: `Experience: ${experience.learning}`,\n type: \"experience\",\n data: {\n id: experience.id,\n agentId: experience.agentId,\n type: experience.type,\n outcome: experience.outcome,\n context: experience.context,\n action: experience.action,\n result: experience.result,\n learning: experience.learning,\n domain: experience.domain,\n tags: experience.tags,\n confidence: experience.confidence,\n importance: experience.importance,\n createdAt: experience.createdAt,\n updatedAt: experience.updatedAt,\n accessCount: experience.accessCount,\n lastAccessedAt: experience.lastAccessedAt,\n // NOTE: embedding intentionally excluded — it's large (1-6KB per experience)\n // and stored separately by adapters that support vector search.\n // Keeping it only in the in-memory map for similarity calculations.\n relatedExperiences: experience.relatedExperiences,\n supersedes: experience.supersedes,\n previousBelief: experience.previousBelief,\n correctedBelief: experience.correctedBelief,\n },\n },\n createdAt: experience.createdAt,\n };\n\n await this.runtime.createMemory(memory, \"experiences\", true);\n }\n\n private async persistDirtyExperiences(): Promise<void> {\n if (this.dirtyExperiences.size === 0) return;\n\n const toSave = Array.from(this.dirtyExperiences);\n this.dirtyExperiences.clear();\n\n let saved = 0;\n for (const id of toSave) {\n const exp = this.experiences.get(id);\n if (exp) {\n try {\n await this.saveExperienceToMemory(exp);\n saved++;\n } catch {\n // Re-mark as dirty so it retries next cycle\n this.dirtyExperiences.add(id);\n }\n }\n }\n\n if (saved > 0) {\n logger.debug(`[ExperienceService] Persisted ${saved} dirty experiences`);\n }\n }\n\n async queryExperiences(query: ExperienceQuery): Promise<Experience[]> {\n let results: Experience[] = [];\n const limit = query.limit || 10;\n\n if (query.query) {\n // Semantic search path: over-fetch when filters will reduce the set\n const hasFilters = !!(\n query.type ||\n query.outcome ||\n query.domain ||\n (query.tags && query.tags.length > 0) ||\n query.minConfidence !== undefined ||\n query.minImportance !== undefined ||\n query.timeRange\n );\n const fetchLimit = hasFilters ? Math.max(limit * 5, 50) : limit;\n const candidates = this.applyFilters(\n await this.findSimilarExperiences(query.query, fetchLimit),\n query\n );\n results = candidates.slice(0, limit);\n } else {\n // Non-semantic path: filter then sort by quality\n const candidates = this.applyFilters(Array.from(this.experiences.values()), query);\n candidates.sort((a, b) => {\n const scoreA = this.decayManager.getDecayedConfidence(a) * a.importance;\n const scoreB = this.decayManager.getDecayedConfidence(b) * b.importance;\n return scoreB - scoreA;\n });\n results = candidates.slice(0, limit);\n }\n\n // Include related experiences if requested\n if (query.includeRelated) {\n const relatedIds = new Set<UUID>();\n for (const exp of results) {\n if (exp.relatedExperiences) {\n exp.relatedExperiences.forEach((id) => {\n relatedIds.add(id);\n });\n }\n }\n\n const related = Array.from(relatedIds)\n .map((id) => this.experiences.get(id))\n .filter((exp): exp is Experience => exp !== undefined)\n .filter((exp) => !results.some((r) => r.id === exp.id));\n\n results.push(...related);\n }\n\n // Update access counts and mark dirty for batch persistence\n for (const exp of results) {\n exp.accessCount++;\n exp.lastAccessedAt = Date.now();\n this.dirtyExperiences.add(exp.id);\n }\n\n return results;\n }\n\n /** Apply query filters (type, outcome, domain, tags, confidence, importance, timeRange). */\n private applyFilters(candidates: Experience[], query: ExperienceQuery): Experience[] {\n let filtered = candidates;\n\n if (query.type) {\n const types = Array.isArray(query.type) ? query.type : [query.type];\n filtered = filtered.filter((e) => types.includes(e.type));\n }\n if (query.outcome) {\n filtered = filtered.filter((e) => e.outcome === query.outcome);\n }\n if (query.domain) {\n const domains = Array.isArray(query.domain) ? query.domain : [query.domain];\n filtered = filtered.filter((e) => domains.includes(e.domain));\n }\n if (query.tags && query.tags.length > 0) {\n filtered = filtered.filter((e) => query.tags?.some((t) => e.tags.includes(t)));\n }\n if (query.minConfidence !== undefined) {\n const min = query.minConfidence;\n filtered = filtered.filter((e) => this.decayManager.getDecayedConfidence(e) >= min);\n }\n if (query.minImportance !== undefined) {\n const min = query.minImportance;\n filtered = filtered.filter((e) => e.importance >= min);\n }\n if (query.timeRange) {\n const { start, end } = query.timeRange;\n filtered = filtered.filter((e) => {\n if (start && e.createdAt < start) return false;\n if (end && e.createdAt > end) return false;\n return true;\n });\n }\n\n return filtered;\n }\n\n /**\n * Find similar experiences using vector search + reranking.\n *\n * Reranking strategy:\n * Vector similarity is the dominant signal (70%) — an irrelevant experience\n * should never outrank a relevant one just because it has high confidence.\n * Quality signals (confidence, importance) act as tiebreakers among\n * similarly-relevant results (30% combined).\n *\n * A minimum similarity threshold filters out noise so quality signals\n * can't promote genuinely irrelevant experiences.\n */\n async findSimilarExperiences(text: string, limit = 5): Promise<Experience[]> {\n if (!text || this.experiences.size === 0) {\n return [];\n }\n\n let queryEmbedding: number[];\n try {\n queryEmbedding = await this.runtime.useModel(ModelType.TEXT_EMBEDDING, { text });\n if (\n !Array.isArray(queryEmbedding) ||\n queryEmbedding.length === 0 ||\n queryEmbedding.every((v: number) => v === 0)\n ) {\n logger.warn(\n \"[ExperienceService] Query embedding is empty/zero, falling back to recency sort\"\n );\n return this.fallbackSort(limit);\n }\n } catch {\n logger.warn(\"[ExperienceService] Query embedding failed, falling back to recency sort\");\n return this.fallbackSort(limit);\n }\n\n // Minimum cosine similarity to be considered a candidate at all.\n // Prevents high-quality but irrelevant experiences from appearing.\n const SIMILARITY_FLOOR = 0.05;\n\n const scored: Array<{ experience: Experience; score: number }> = [];\n const now = Date.now();\n\n for (const experience of this.experiences.values()) {\n if (!experience.embedding) continue;\n\n const similarity = this.cosineSimilarity(queryEmbedding, experience.embedding);\n if (similarity < SIMILARITY_FLOOR) continue;\n\n // --- Quality signals (all normalized 0-1) ---\n\n // Confidence with time-decay applied\n const decayedConfidence = this.decayManager.getDecayedConfidence(experience);\n\n // Smooth recency: half-life of 30 days, never goes to zero\n const ageDays = Math.max(0, (now - experience.createdAt) / (24 * 60 * 60 * 1000));\n const recencyFactor = 1 / (1 + ageDays / 30);\n\n // Access frequency: log-scaled, capped at 1.0\n // ~0 at 0 accesses, ~0.33 at 1, ~0.66 at 3, ~1.0 at 9+\n const accessFactor = Math.min(1, Math.log2(experience.accessCount + 1) / Math.log2(10));\n\n // Weighted quality score (0-1 range)\n const qualityScore =\n decayedConfidence * 0.45 +\n experience.importance * 0.35 +\n recencyFactor * 0.12 +\n accessFactor * 0.08;\n\n // Final reranking score: similarity dominates (70%), quality tiebreaks (30%)\n const rerankScore = similarity * 0.7 + qualityScore * 0.3;\n\n scored.push({ experience, score: rerankScore });\n }\n\n // Sort by combined reranking score (highest first)\n scored.sort((a, b) => b.score - a.score);\n const results = scored.slice(0, limit).map((item) => item.experience);\n\n for (const exp of results) {\n exp.accessCount++;\n exp.lastAccessedAt = now;\n this.dirtyExperiences.add(exp.id);\n }\n\n return results;\n }\n\n /** Fallback when embeddings are unavailable: sort by decayed confidence * importance. */\n private fallbackSort(limit: number): Experience[] {\n const all = Array.from(this.experiences.values());\n all.sort((a, b) => {\n const sa = this.decayManager.getDecayedConfidence(a) * a.importance;\n const sb = this.decayManager.getDecayedConfidence(b) * b.importance;\n return sb - sa;\n });\n return all.slice(0, limit);\n }\n\n async analyzeExperiences(domain?: string, type?: ExperienceType): Promise<ExperienceAnalysis> {\n const experiences = await this.queryExperiences({\n domain: domain ? [domain] : undefined,\n type: type ? [type] : undefined,\n limit: 100,\n });\n\n if (experiences.length === 0) {\n return {\n pattern: \"No experiences found for analysis\",\n frequency: 0,\n reliability: 0,\n alternatives: [],\n recommendations: [],\n };\n }\n\n const learnings = experiences.map((exp) => exp.learning);\n const commonWords = this.findCommonPatterns(learnings);\n\n const avgConfidence =\n experiences.reduce((sum, exp) => sum + exp.confidence, 0) / experiences.length;\n const outcomeConsistency = this.calculateOutcomeConsistency(experiences);\n const reliability = (avgConfidence + outcomeConsistency) / 2;\n\n const alternatives = this.extractAlternatives(experiences);\n const recommendations = this.generateRecommendations(experiences, reliability);\n\n return {\n pattern:\n commonWords.length > 0\n ? `Common patterns: ${commonWords.join(\", \")}`\n : \"No clear patterns detected\",\n frequency: experiences.length,\n reliability,\n alternatives,\n recommendations,\n };\n }\n\n private cosineSimilarity(a: number[], b: number[]): number {\n if (a.length !== b.length) return 0;\n\n let dotProduct = 0;\n let normA = 0;\n let normB = 0;\n\n for (let i = 0; i < a.length; i++) {\n const valueA = a[i] ?? 0;\n const valueB = b[i] ?? 0;\n dotProduct += valueA * valueB;\n normA += valueA * valueA;\n normB += valueB * valueB;\n }\n\n if (normA === 0 || normB === 0) return 0;\n return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));\n }\n\n private findCommonPatterns(texts: string[]): string[] {\n const wordFreq = new Map<string, number>();\n\n for (const text of texts) {\n const words = text.toLowerCase().split(/\\s+/);\n for (const word of words) {\n if (word.length > 3) {\n wordFreq.set(word, (wordFreq.get(word) || 0) + 1);\n }\n }\n }\n\n const threshold = texts.length * 0.3;\n return Array.from(wordFreq.entries())\n .filter(([_, count]) => count >= threshold)\n .sort((a, b) => b[1] - a[1])\n .slice(0, 5)\n .map(([word]) => word);\n }\n\n private calculateOutcomeConsistency(experiences: Experience[]): number {\n if (experiences.length === 0) return 0;\n\n const outcomeCounts = new Map<OutcomeType, number>();\n for (const exp of experiences) {\n outcomeCounts.set(exp.outcome, (outcomeCounts.get(exp.outcome) || 0) + 1);\n }\n\n const maxCount = Math.max(...outcomeCounts.values());\n return maxCount / experiences.length;\n }\n\n private extractAlternatives(experiences: Experience[]): string[] {\n const alternatives = new Set<string>();\n\n for (const exp of experiences) {\n if (exp.type === ExperienceType.CORRECTION && exp.correctedBelief) {\n alternatives.add(exp.correctedBelief);\n }\n if (exp.outcome === OutcomeType.NEGATIVE && exp.learning.includes(\"instead\")) {\n const match = exp.learning.match(/instead\\s+(.+?)(?:\\.|$)/i);\n const alternative = match?.[1]?.trim();\n if (alternative) {\n alternatives.add(alternative);\n }\n }\n }\n\n return Array.from(alternatives).slice(0, 5);\n }\n\n private generateRecommendations(experiences: Experience[], reliability: number): string[] {\n const recommendations: string[] = [];\n\n if (reliability > 0.8) {\n recommendations.push(\"Continue using successful approaches\");\n recommendations.push(\"Document and share these reliable methods\");\n } else if (reliability > 0.6) {\n recommendations.push(\"Continue using successful approaches with caution\");\n recommendations.push(\"Monitor for potential issues\");\n recommendations.push(\"Consider backup strategies\");\n } else if (reliability > 0.4) {\n recommendations.push(\"Review and improve current approaches\");\n recommendations.push(\"Investigate failure patterns\");\n recommendations.push(\"Consider alternative methods\");\n } else {\n recommendations.push(\"Significant changes needed to current approach\");\n recommendations.push(\"Analyze failure causes thoroughly\");\n recommendations.push(\"Seek alternative solutions\");\n }\n\n const failureTypes = new Map<string, number>();\n experiences\n .filter((e) => e.outcome === OutcomeType.NEGATIVE)\n .forEach((e) => {\n const key = e.learning.toLowerCase();\n failureTypes.set(key, (failureTypes.get(key) || 0) + 1);\n });\n\n if (failureTypes.size > 0) {\n const mostCommonFailure = Array.from(failureTypes.entries()).sort((a, b) => b[1] - a[1])[0];\n\n if (mostCommonFailure && mostCommonFailure[1] > 1) {\n recommendations.push(`Address recurring issue: ${mostCommonFailure[0]}`);\n }\n }\n\n const domains = new Set(experiences.map((e) => e.domain));\n if (domains.has(\"shell\")) {\n recommendations.push(\"Verify command syntax and permissions\");\n }\n if (domains.has(\"coding\")) {\n recommendations.push(\"Test thoroughly before deployment\");\n }\n if (domains.has(\"network\")) {\n recommendations.push(\"Implement retry logic and error handling\");\n }\n\n return recommendations.slice(0, 5);\n }\n\n async stop(): Promise<void> {\n logger.info(\"[ExperienceService] Stopping...\");\n\n // Stop the persistence timer\n if (this.persistTimer) {\n clearInterval(this.persistTimer);\n this.persistTimer = null;\n }\n\n // Final persist of all dirty experiences + full save\n const experiencesToSave = Array.from(this.experiences.values());\n let savedCount = 0;\n\n for (const experience of experiencesToSave) {\n try {\n await this.saveExperienceToMemory(experience);\n savedCount++;\n } catch (err) {\n logger.warn(`[ExperienceService] Failed to save experience ${experience.id}: ${err}`);\n }\n }\n\n this.dirtyExperiences.clear();\n logger.info(`[ExperienceService] Saved ${savedCount} experiences`);\n }\n}\n",
|
|
12
|
+
"import {\n type IAgentRuntime,\n logger,\n type Memory,\n type Provider,\n type ProviderResult,\n type State,\n} from \"@elizaos/core\";\nimport { requireProviderSpec } from \"../generated/specs/spec-helpers\";\nimport type { ExperienceService } from \"../service\";\n\n/**\n * Simple experience provider that injects relevant experiences into context\n * Similar to the knowledge provider but focused on agent learnings\n */\nconst spec = requireProviderSpec(\"experienceProvider\");\n\nexport const experienceProvider: Provider = {\n name: spec.name,\n description: \"Provides relevant past experiences and learnings for the current context\",\n\n dynamic: true,\n async get(runtime: IAgentRuntime, message: Memory, _state?: State): Promise<ProviderResult> {\n const experienceService = runtime.getService(\"EXPERIENCE\") as ExperienceService | null;\n\n if (!experienceService) {\n return { text: \"\", data: {}, values: {} };\n }\n\n // Get message text for context\n const messageText = message.content.text || \"\";\n if (messageText.length < 10) {\n return { text: \"\", data: {}, values: {} };\n }\n\n // Find relevant experiences using semantic search\n const relevantExperiences = await experienceService.queryExperiences({\n query: messageText,\n limit: 5,\n minConfidence: 0.6,\n minImportance: 0.5,\n });\n\n if (relevantExperiences.length === 0) {\n return { text: \"\", data: {}, values: {} };\n }\n\n // Format experiences for context injection\n const experienceText = relevantExperiences\n .map((exp, index) => {\n return `Experience ${index + 1}: In ${exp.domain} context, when ${exp.context}, I learned: ${exp.learning}`;\n })\n .join(\"\\n\");\n\n const contextText = `[RELEVANT EXPERIENCES]\\n${experienceText}\\n[/RELEVANT EXPERIENCES]`;\n\n logger.debug(\n `[experienceProvider] Injecting ${relevantExperiences.length} relevant experiences`\n );\n\n return {\n text: contextText,\n data: {\n experiences: relevantExperiences,\n count: relevantExperiences.length,\n },\n values: {\n experienceCount: relevantExperiences.length.toString(),\n },\n };\n },\n};\n",
|
|
13
|
+
"import {\n type IAgentRuntime,\n logger,\n ModelType,\n Service,\n type ServiceTypeName,\n type UUID,\n} from \"@elizaos/core\";\nimport { v4 as uuidv4 } from \"uuid\";\nimport {\n type Experience,\n type ExperienceAnalysis,\n type ExperienceQuery,\n ExperienceServiceType,\n ExperienceType,\n OutcomeType,\n} from \"./types\";\nimport { ConfidenceDecayManager } from \"./utils/confidenceDecay\";\nimport { ExperienceRelationshipManager } from \"./utils/experienceRelationships\";\n\nexport class ExperienceService extends Service {\n static override serviceType: ServiceTypeName = ExperienceServiceType.EXPERIENCE;\n override capabilityDescription =\n \"Manages agent experiences, learning from successes and failures to improve future decisions\";\n\n private experiences: Map<UUID, Experience> = new Map();\n private experiencesByDomain: Map<string, Set<UUID>> = new Map();\n private experiencesByType: Map<ExperienceType, Set<UUID>> = new Map();\n private dirtyExperiences: Set<UUID> = new Set();\n private persistTimer: ReturnType<typeof setInterval> | null = null;\n private decayManager: ConfidenceDecayManager;\n private relationshipManager: ExperienceRelationshipManager;\n\n constructor(runtime: IAgentRuntime) {\n super(runtime);\n this.decayManager = new ConfidenceDecayManager();\n this.relationshipManager = new ExperienceRelationshipManager();\n\n void this.loadExperiences();\n\n // Batch-persist dirty access counts every 60 seconds\n this.persistTimer = setInterval(() => {\n void this.persistDirtyExperiences();\n }, 60_000);\n }\n\n static async start(runtime: IAgentRuntime): Promise<ExperienceService> {\n const service = new ExperienceService(runtime);\n // loadExperiences is triggered in constructor\n return service;\n }\n\n private async loadExperiences(): Promise<void> {\n // Load experiences from the \"experiences\" table (same table we write to)\n const memories = await this.runtime.getMemories({\n entityId: this.runtime.agentId,\n tableName: \"experiences\",\n });\n\n for (const memory of memories) {\n const experienceData = memory.content.data as Partial<Experience> | null;\n if (experienceData?.id) {\n const memoryCreatedAt =\n typeof memory.createdAt === \"number\" ? memory.createdAt : Date.now();\n\n const toTimestamp = (value: number | Date | undefined, fallback: number): number => {\n if (value === undefined) return fallback;\n if (typeof value === \"number\") return value;\n if (value instanceof Date) return value.getTime();\n return fallback;\n };\n\n const experience: Experience = {\n id: experienceData.id as UUID,\n agentId: this.runtime.agentId,\n type: experienceData.type || ExperienceType.LEARNING,\n outcome: experienceData.outcome || OutcomeType.NEUTRAL,\n context: experienceData.context || \"\",\n action: experienceData.action || \"\",\n result: experienceData.result || \"\",\n learning: experienceData.learning || \"\",\n domain: experienceData.domain || \"general\",\n tags: experienceData.tags || [],\n confidence: experienceData.confidence || 0.5,\n importance: experienceData.importance || 0.5,\n createdAt: toTimestamp(\n experienceData.createdAt as number | Date | undefined,\n memoryCreatedAt\n ),\n updatedAt: toTimestamp(\n experienceData.updatedAt as number | Date | undefined,\n memoryCreatedAt\n ),\n accessCount: experienceData.accessCount ?? 0,\n lastAccessedAt: toTimestamp(\n experienceData.lastAccessedAt as number | Date | undefined,\n memoryCreatedAt\n ),\n embedding: experienceData.embedding,\n relatedExperiences: experienceData.relatedExperiences,\n supersedes: experienceData.supersedes,\n previousBelief: experienceData.previousBelief,\n correctedBelief: experienceData.correctedBelief,\n };\n\n this.experiences.set(experience.id, experience);\n\n // Update indexes\n if (!this.experiencesByDomain.has(experience.domain)) {\n this.experiencesByDomain.set(experience.domain, new Set());\n }\n this.experiencesByDomain.get(experience.domain)?.add(experience.id);\n\n if (!this.experiencesByType.has(experience.type)) {\n this.experiencesByType.set(experience.type, new Set());\n }\n this.experiencesByType.get(experience.type)?.add(experience.id);\n }\n }\n\n logger.info(`[ExperienceService] Loaded ${this.experiences.size} experiences from memory`);\n }\n\n async recordExperience(experienceData: Partial<Experience>): Promise<Experience> {\n // Generate embedding for the experience (graceful fallback if unavailable)\n const embeddingText = `${experienceData.context} ${experienceData.action} ${experienceData.result} ${experienceData.learning}`;\n let embedding: number[] | undefined;\n try {\n const result = await this.runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text: embeddingText,\n });\n // Validate the embedding is non-zero (some providers return zero vectors on error)\n if (Array.isArray(result) && result.length > 0 && result.some((v: number) => v !== 0)) {\n embedding = result;\n } else {\n logger.warn(\n \"[ExperienceService] Embedding model returned empty/zero vector, storing without embedding\"\n );\n }\n } catch (err) {\n logger.warn(\n `[ExperienceService] Embedding generation failed, storing without embedding: ${err}`\n );\n }\n\n const now = Date.now();\n\n const experience: Experience = {\n id: uuidv4() as UUID,\n agentId: this.runtime.agentId,\n type: experienceData.type || ExperienceType.LEARNING,\n outcome: experienceData.outcome || OutcomeType.NEUTRAL,\n context: experienceData.context || \"\",\n action: experienceData.action || \"\",\n result: experienceData.result || \"\",\n learning: experienceData.learning || \"\",\n domain: experienceData.domain || \"general\",\n tags: experienceData.tags || [],\n confidence: experienceData.confidence || 0.5,\n importance: experienceData.importance || 0.5,\n createdAt: now,\n updatedAt: now,\n accessCount: 0,\n lastAccessedAt: now,\n embedding,\n relatedExperiences: experienceData.relatedExperiences,\n supersedes: experienceData.supersedes,\n previousBelief: experienceData.previousBelief,\n correctedBelief: experienceData.correctedBelief,\n };\n\n // Store the experience\n this.experiences.set(experience.id, experience);\n\n // Update indexes\n if (!this.experiencesByDomain.has(experience.domain)) {\n this.experiencesByDomain.set(experience.domain, new Set());\n }\n this.experiencesByDomain.get(experience.domain)?.add(experience.id);\n\n if (!this.experiencesByType.has(experience.type)) {\n this.experiencesByType.set(experience.type, new Set());\n }\n this.experiencesByType.get(experience.type)?.add(experience.id);\n\n // Save to memory service\n await this.saveExperienceToMemory(experience);\n\n // Check for contradictions and add relationships\n const allExperiences = Array.from(this.experiences.values());\n const contradictions = this.relationshipManager.findContradictions(experience, allExperiences);\n\n for (const contradiction of contradictions) {\n this.relationshipManager.addRelationship({\n fromId: experience.id,\n toId: contradiction.id,\n type: \"contradicts\",\n strength: 0.8,\n });\n }\n\n logger.info(`[ExperienceService] Recorded experience: ${experience.id} (${experience.type})`);\n\n return experience;\n }\n\n private async saveExperienceToMemory(experience: Experience): Promise<void> {\n const memory = {\n id: experience.id,\n entityId: this.runtime.agentId,\n agentId: this.runtime.agentId,\n roomId: this.runtime.agentId,\n content: {\n text: `Experience: ${experience.learning}`,\n type: \"experience\",\n data: {\n id: experience.id,\n agentId: experience.agentId,\n type: experience.type,\n outcome: experience.outcome,\n context: experience.context,\n action: experience.action,\n result: experience.result,\n learning: experience.learning,\n domain: experience.domain,\n tags: experience.tags,\n confidence: experience.confidence,\n importance: experience.importance,\n createdAt: experience.createdAt,\n updatedAt: experience.updatedAt,\n accessCount: experience.accessCount,\n lastAccessedAt: experience.lastAccessedAt,\n // NOTE: embedding intentionally excluded — it's large (1-6KB per experience)\n // and stored separately by adapters that support vector search.\n // Keeping it only in the in-memory map for similarity calculations.\n relatedExperiences: experience.relatedExperiences,\n supersedes: experience.supersedes,\n previousBelief: experience.previousBelief,\n correctedBelief: experience.correctedBelief,\n },\n },\n createdAt: experience.createdAt,\n };\n\n await this.runtime.createMemory(memory, \"experiences\", true);\n }\n\n private async persistDirtyExperiences(): Promise<void> {\n if (this.dirtyExperiences.size === 0) return;\n\n const toSave = Array.from(this.dirtyExperiences);\n this.dirtyExperiences.clear();\n\n let saved = 0;\n for (const id of toSave) {\n const exp = this.experiences.get(id);\n if (exp) {\n try {\n await this.saveExperienceToMemory(exp);\n saved++;\n } catch {\n // Re-mark as dirty so it retries next cycle\n this.dirtyExperiences.add(id);\n }\n }\n }\n\n if (saved > 0) {\n logger.debug(`[ExperienceService] Persisted ${saved} dirty experiences`);\n }\n }\n\n async queryExperiences(query: ExperienceQuery): Promise<Experience[]> {\n let results: Experience[] = [];\n const limit = query.limit || 10;\n\n if (query.query) {\n // Semantic search path: over-fetch when filters will reduce the set\n const hasFilters = !!(\n query.type ||\n query.outcome ||\n query.domain ||\n (query.tags && query.tags.length > 0) ||\n query.minConfidence !== undefined ||\n query.minImportance !== undefined ||\n query.timeRange\n );\n const fetchLimit = hasFilters ? Math.max(limit * 5, 50) : limit;\n const candidates = this.applyFilters(\n await this.findSimilarExperiences(query.query, fetchLimit),\n query\n );\n results = candidates.slice(0, limit);\n } else {\n // Non-semantic path: filter then sort by quality\n const candidates = this.applyFilters(Array.from(this.experiences.values()), query);\n candidates.sort((a, b) => {\n const scoreA = this.decayManager.getDecayedConfidence(a) * a.importance;\n const scoreB = this.decayManager.getDecayedConfidence(b) * b.importance;\n return scoreB - scoreA;\n });\n results = candidates.slice(0, limit);\n }\n\n // Include related experiences if requested\n if (query.includeRelated) {\n const relatedIds = new Set<UUID>();\n for (const exp of results) {\n if (exp.relatedExperiences) {\n exp.relatedExperiences.forEach((id) => {\n relatedIds.add(id);\n });\n }\n }\n\n const related = Array.from(relatedIds)\n .map((id) => this.experiences.get(id))\n .filter((exp): exp is Experience => exp !== undefined)\n .filter((exp) => !results.some((r) => r.id === exp.id));\n\n results.push(...related);\n }\n\n // Update access counts and mark dirty for batch persistence\n for (const exp of results) {\n exp.accessCount++;\n exp.lastAccessedAt = Date.now();\n this.dirtyExperiences.add(exp.id);\n }\n\n return results;\n }\n\n /** Apply query filters (type, outcome, domain, tags, confidence, importance, timeRange). */\n private applyFilters(candidates: Experience[], query: ExperienceQuery): Experience[] {\n let filtered = candidates;\n\n if (query.type) {\n const types = Array.isArray(query.type) ? query.type : [query.type];\n filtered = filtered.filter((e) => types.includes(e.type));\n }\n if (query.outcome) {\n filtered = filtered.filter((e) => e.outcome === query.outcome);\n }\n if (query.domain) {\n const domains = Array.isArray(query.domain) ? query.domain : [query.domain];\n filtered = filtered.filter((e) => domains.includes(e.domain));\n }\n if (query.tags && query.tags.length > 0) {\n filtered = filtered.filter((e) => query.tags?.some((t) => e.tags.includes(t)));\n }\n if (query.minConfidence !== undefined) {\n const min = query.minConfidence;\n filtered = filtered.filter((e) => this.decayManager.getDecayedConfidence(e) >= min);\n }\n if (query.minImportance !== undefined) {\n const min = query.minImportance;\n filtered = filtered.filter((e) => e.importance >= min);\n }\n if (query.timeRange) {\n const { start, end } = query.timeRange;\n filtered = filtered.filter((e) => {\n if (start && e.createdAt < start) return false;\n if (end && e.createdAt > end) return false;\n return true;\n });\n }\n\n return filtered;\n }\n\n /**\n * Find similar experiences using vector search + reranking.\n *\n * Reranking strategy:\n * Vector similarity is the dominant signal (70%) — an irrelevant experience\n * should never outrank a relevant one just because it has high confidence.\n * Quality signals (confidence, importance) act as tiebreakers among\n * similarly-relevant results (30% combined).\n *\n * A minimum similarity threshold filters out noise so quality signals\n * can't promote genuinely irrelevant experiences.\n */\n async findSimilarExperiences(text: string, limit = 5): Promise<Experience[]> {\n if (!text || this.experiences.size === 0) {\n return [];\n }\n\n let queryEmbedding: number[];\n try {\n queryEmbedding = await this.runtime.useModel(ModelType.TEXT_EMBEDDING, {\n text,\n });\n if (\n !Array.isArray(queryEmbedding) ||\n queryEmbedding.length === 0 ||\n queryEmbedding.every((v: number) => v === 0)\n ) {\n logger.warn(\n \"[ExperienceService] Query embedding is empty/zero, falling back to recency sort\"\n );\n return this.fallbackSort(limit);\n }\n } catch {\n logger.warn(\"[ExperienceService] Query embedding failed, falling back to recency sort\");\n return this.fallbackSort(limit);\n }\n\n // Minimum cosine similarity to be considered a candidate at all.\n // Prevents high-quality but irrelevant experiences from appearing.\n const SIMILARITY_FLOOR = 0.05;\n\n const scored: Array<{ experience: Experience; score: number }> = [];\n const now = Date.now();\n\n for (const experience of this.experiences.values()) {\n if (!experience.embedding) continue;\n\n const similarity = this.cosineSimilarity(queryEmbedding, experience.embedding);\n if (similarity < SIMILARITY_FLOOR) continue;\n\n // --- Quality signals (all normalized 0-1) ---\n\n // Confidence with time-decay applied\n const decayedConfidence = this.decayManager.getDecayedConfidence(experience);\n\n // Smooth recency: half-life of 30 days, never goes to zero\n const ageDays = Math.max(0, (now - experience.createdAt) / (24 * 60 * 60 * 1000));\n const recencyFactor = 1 / (1 + ageDays / 30);\n\n // Access frequency: log-scaled, capped at 1.0\n // ~0 at 0 accesses, ~0.33 at 1, ~0.66 at 3, ~1.0 at 9+\n const accessFactor = Math.min(1, Math.log2(experience.accessCount + 1) / Math.log2(10));\n\n // Weighted quality score (0-1 range)\n const qualityScore =\n decayedConfidence * 0.45 +\n experience.importance * 0.35 +\n recencyFactor * 0.12 +\n accessFactor * 0.08;\n\n // Final reranking score: similarity dominates (70%), quality tiebreaks (30%)\n const rerankScore = similarity * 0.7 + qualityScore * 0.3;\n\n scored.push({ experience, score: rerankScore });\n }\n\n // Sort by combined reranking score (highest first)\n scored.sort((a, b) => b.score - a.score);\n const results = scored.slice(0, limit).map((item) => item.experience);\n\n for (const exp of results) {\n exp.accessCount++;\n exp.lastAccessedAt = now;\n this.dirtyExperiences.add(exp.id);\n }\n\n return results;\n }\n\n /** Fallback when embeddings are unavailable: sort by decayed confidence * importance. */\n private fallbackSort(limit: number): Experience[] {\n const all = Array.from(this.experiences.values());\n all.sort((a, b) => {\n const sa = this.decayManager.getDecayedConfidence(a) * a.importance;\n const sb = this.decayManager.getDecayedConfidence(b) * b.importance;\n return sb - sa;\n });\n return all.slice(0, limit);\n }\n\n async analyzeExperiences(domain?: string, type?: ExperienceType): Promise<ExperienceAnalysis> {\n const experiences = await this.queryExperiences({\n domain: domain ? [domain] : undefined,\n type: type ? [type] : undefined,\n limit: 100,\n });\n\n if (experiences.length === 0) {\n return {\n pattern: \"No experiences found for analysis\",\n frequency: 0,\n reliability: 0,\n alternatives: [],\n recommendations: [],\n };\n }\n\n const learnings = experiences.map((exp) => exp.learning);\n const commonWords = this.findCommonPatterns(learnings);\n\n const avgConfidence =\n experiences.reduce((sum, exp) => sum + exp.confidence, 0) / experiences.length;\n const outcomeConsistency = this.calculateOutcomeConsistency(experiences);\n const reliability = (avgConfidence + outcomeConsistency) / 2;\n\n const alternatives = this.extractAlternatives(experiences);\n const recommendations = this.generateRecommendations(experiences, reliability);\n\n return {\n pattern:\n commonWords.length > 0\n ? `Common patterns: ${commonWords.join(\", \")}`\n : \"No clear patterns detected\",\n frequency: experiences.length,\n reliability,\n alternatives,\n recommendations,\n };\n }\n\n private cosineSimilarity(a: number[], b: number[]): number {\n if (a.length !== b.length) return 0;\n\n let dotProduct = 0;\n let normA = 0;\n let normB = 0;\n\n for (let i = 0; i < a.length; i++) {\n const valueA = a[i] ?? 0;\n const valueB = b[i] ?? 0;\n dotProduct += valueA * valueB;\n normA += valueA * valueA;\n normB += valueB * valueB;\n }\n\n if (normA === 0 || normB === 0) return 0;\n return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));\n }\n\n private findCommonPatterns(texts: string[]): string[] {\n const wordFreq = new Map<string, number>();\n\n for (const text of texts) {\n const words = text.toLowerCase().split(/\\s+/);\n for (const word of words) {\n if (word.length > 3) {\n wordFreq.set(word, (wordFreq.get(word) || 0) + 1);\n }\n }\n }\n\n const threshold = texts.length * 0.3;\n return Array.from(wordFreq.entries())\n .filter(([_, count]) => count >= threshold)\n .sort((a, b) => b[1] - a[1])\n .slice(0, 5)\n .map(([word]) => word);\n }\n\n private calculateOutcomeConsistency(experiences: Experience[]): number {\n if (experiences.length === 0) return 0;\n\n const outcomeCounts = new Map<OutcomeType, number>();\n for (const exp of experiences) {\n outcomeCounts.set(exp.outcome, (outcomeCounts.get(exp.outcome) || 0) + 1);\n }\n\n const maxCount = Math.max(...outcomeCounts.values());\n return maxCount / experiences.length;\n }\n\n private extractAlternatives(experiences: Experience[]): string[] {\n const alternatives = new Set<string>();\n\n for (const exp of experiences) {\n if (exp.type === ExperienceType.CORRECTION && exp.correctedBelief) {\n alternatives.add(exp.correctedBelief);\n }\n if (exp.outcome === OutcomeType.NEGATIVE && exp.learning.includes(\"instead\")) {\n const match = exp.learning.match(/instead\\s+(.+?)(?:\\.|$)/i);\n const alternative = match?.[1]?.trim();\n if (alternative) {\n alternatives.add(alternative);\n }\n }\n }\n\n return Array.from(alternatives).slice(0, 5);\n }\n\n private generateRecommendations(experiences: Experience[], reliability: number): string[] {\n const recommendations: string[] = [];\n\n if (reliability > 0.8) {\n recommendations.push(\"Continue using successful approaches\");\n recommendations.push(\"Document and share these reliable methods\");\n } else if (reliability > 0.6) {\n recommendations.push(\"Continue using successful approaches with caution\");\n recommendations.push(\"Monitor for potential issues\");\n recommendations.push(\"Consider backup strategies\");\n } else if (reliability > 0.4) {\n recommendations.push(\"Review and improve current approaches\");\n recommendations.push(\"Investigate failure patterns\");\n recommendations.push(\"Consider alternative methods\");\n } else {\n recommendations.push(\"Significant changes needed to current approach\");\n recommendations.push(\"Analyze failure causes thoroughly\");\n recommendations.push(\"Seek alternative solutions\");\n }\n\n const failureTypes = new Map<string, number>();\n experiences\n .filter((e) => e.outcome === OutcomeType.NEGATIVE)\n .forEach((e) => {\n const key = e.learning.toLowerCase();\n failureTypes.set(key, (failureTypes.get(key) || 0) + 1);\n });\n\n if (failureTypes.size > 0) {\n const mostCommonFailure = Array.from(failureTypes.entries()).sort((a, b) => b[1] - a[1])[0];\n\n if (mostCommonFailure && mostCommonFailure[1] > 1) {\n recommendations.push(`Address recurring issue: ${mostCommonFailure[0]}`);\n }\n }\n\n const domains = new Set(experiences.map((e) => e.domain));\n if (domains.has(\"shell\")) {\n recommendations.push(\"Verify command syntax and permissions\");\n }\n if (domains.has(\"coding\")) {\n recommendations.push(\"Test thoroughly before deployment\");\n }\n if (domains.has(\"network\")) {\n recommendations.push(\"Implement retry logic and error handling\");\n }\n\n return recommendations.slice(0, 5);\n }\n\n async stop(): Promise<void> {\n logger.info(\"[ExperienceService] Stopping...\");\n\n // Stop the persistence timer\n if (this.persistTimer) {\n clearInterval(this.persistTimer);\n this.persistTimer = null;\n }\n\n // Final persist of all dirty experiences + full save\n const experiencesToSave = Array.from(this.experiences.values());\n let savedCount = 0;\n\n for (const experience of experiencesToSave) {\n try {\n await this.saveExperienceToMemory(experience);\n savedCount++;\n } catch (err) {\n logger.warn(`[ExperienceService] Failed to save experience ${experience.id}: ${err}`);\n }\n }\n\n this.dirtyExperiences.clear();\n logger.info(`[ExperienceService] Saved ${savedCount} experiences`);\n }\n}\n",
|
|
14
14
|
"import type { Experience } from \"../types\";\nimport { ExperienceType } from \"../types\";\n\nexport interface DecayConfig {\n halfLife: number; // Time in milliseconds for confidence to decay by half\n minConfidence: number; // Minimum confidence level (never decays below this)\n decayStartDelay: number; // Time before decay starts (grace period)\n}\n\nconst DEFAULT_DECAY_CONFIG: DecayConfig = {\n halfLife: 30 * 24 * 60 * 60 * 1000, // 30 days\n minConfidence: 0.1, // 10% minimum\n decayStartDelay: 7 * 24 * 60 * 60 * 1000, // 7 days grace period\n};\n\nexport class ConfidenceDecayManager {\n private config: DecayConfig;\n\n constructor(config: Partial<DecayConfig> = {}) {\n this.config = { ...DEFAULT_DECAY_CONFIG, ...config };\n }\n\n /**\n * Calculate the decayed confidence for an experience\n */\n getDecayedConfidence(experience: Experience): number {\n const now = Date.now();\n const age = now - experience.createdAt;\n const specificConfig = this.getDomainSpecificDecay(experience);\n\n // No decay during grace period\n if (age < specificConfig.decayStartDelay) {\n return experience.confidence;\n }\n\n // Calculate decay based on half-life\n const decayTime = age - specificConfig.decayStartDelay;\n const halfLives = decayTime / specificConfig.halfLife;\n const decayFactor = 0.5 ** halfLives;\n\n // Apply decay but respect minimum\n const decayedConfidence = experience.confidence * decayFactor;\n return Math.max(specificConfig.minConfidence, decayedConfidence);\n }\n\n /**\n * Get experiences that need reinforcement (low confidence due to decay)\n */\n getExperiencesNeedingReinforcement(experiences: Experience[], threshold = 0.3): Experience[] {\n return experiences.filter((exp) => {\n const decayed = this.getDecayedConfidence(exp);\n return decayed < threshold && decayed > this.config.minConfidence;\n });\n }\n\n /**\n * Calculate reinforcement boost when an experience is validated\n */\n calculateReinforcementBoost(experience: Experience, validationStrength = 1.0): number {\n const currentConfidence = this.getDecayedConfidence(experience);\n const boost = (1 - currentConfidence) * validationStrength * 0.5;\n return Math.min(1, currentConfidence + boost);\n }\n\n /**\n * Adjust decay rate based on experience type and domain\n */\n getDomainSpecificDecay(experience: Experience): DecayConfig {\n const config = { ...this.config };\n\n // Facts and discoveries decay slower\n if (\n experience.type === ExperienceType.DISCOVERY ||\n experience.type === ExperienceType.LEARNING\n ) {\n config.halfLife *= 2; // Double the half-life\n }\n\n // Warnings and corrections decay slower (important to remember)\n if (\n experience.type === ExperienceType.WARNING ||\n experience.type === ExperienceType.CORRECTION\n ) {\n config.halfLife *= 1.5;\n config.minConfidence = 0.2; // Higher minimum\n }\n\n // Domain-specific adjustments\n switch (experience.domain) {\n case \"security\":\n case \"safety\":\n config.halfLife *= 3; // Security lessons decay very slowly\n config.minConfidence = 0.3;\n break;\n case \"performance\":\n config.halfLife *= 0.5; // Performance insights may change quickly\n break;\n case \"user_preference\":\n config.halfLife *= 0.7; // User preferences can change\n break;\n }\n\n return config;\n }\n\n /**\n * Get confidence trend for an experience over time\n */\n getConfidenceTrend(\n experience: Experience,\n points = 10\n ): Array<{ timestamp: number; confidence: number }> {\n const trend: Array<{ timestamp: number; confidence: number }> = [];\n const now = Date.now();\n const totalTime = now - experience.createdAt;\n const interval = totalTime / (points - 1);\n const specificConfig = this.getDomainSpecificDecay(experience);\n\n for (let i = 0; i < points; i++) {\n const timestamp = experience.createdAt + interval * i;\n const age = timestamp - experience.createdAt;\n\n let confidence: number;\n if (age < specificConfig.decayStartDelay) {\n confidence = experience.confidence;\n } else {\n const decayTime = age - specificConfig.decayStartDelay;\n const halfLives = decayTime / specificConfig.halfLife;\n const decayFactor = 0.5 ** halfLives;\n confidence = Math.max(specificConfig.minConfidence, experience.confidence * decayFactor);\n }\n\n trend.push({ timestamp, confidence });\n }\n\n return trend;\n }\n}\n",
|
|
15
15
|
"import type { UUID } from \"@elizaos/core\";\nimport type { Experience, JsonObject } from \"../types\";\nimport { ExperienceType, OutcomeType } from \"../types\";\n\nexport interface ExperienceChain {\n rootExperience: string; // UUID of the root experience\n chain: string[]; // Ordered list of experience IDs\n strength: number; // How strong the causal relationship is\n validated: boolean; // Whether the chain has been validated\n}\n\nexport interface ExperienceRelationship {\n fromId: string;\n toId: string;\n type: \"causes\" | \"contradicts\" | \"supports\" | \"supersedes\" | \"related\";\n strength: number; // 0-1\n metadata?: JsonObject;\n}\n\nexport class ExperienceRelationshipManager {\n private relationships: Map<string, ExperienceRelationship[]> = new Map();\n\n addRelationship(relationship: ExperienceRelationship): void {\n const { fromId } = relationship;\n if (!this.relationships.has(fromId)) {\n this.relationships.set(fromId, []);\n }\n this.relationships.get(fromId)?.push(relationship);\n }\n\n findRelationships(experienceId: string, type?: string): ExperienceRelationship[] {\n const rels = this.relationships.get(experienceId) || [];\n if (type) {\n return rels.filter((r) => r.type === type);\n }\n return rels;\n }\n\n detectCausalChain(experiences: Experience[]): ExperienceChain[] {\n const chains: ExperienceChain[] = [];\n\n // Sort experiences by timestamp\n const sorted = [...experiences].sort((a, b) => a.createdAt - b.createdAt);\n\n // Look for sequences where validation follows hypothesis\n for (let i = 0; i < sorted.length - 1; i++) {\n const current = sorted[i];\n if (!current) {\n continue;\n }\n\n if (current.type === ExperienceType.HYPOTHESIS) {\n const chain: string[] = [current.id];\n let j = i + 1;\n\n // Look for related experiences\n while (j < sorted.length) {\n const next = sorted[j];\n if (!next) {\n j++;\n continue;\n }\n\n // Check if next experience validates or contradicts the hypothesis\n if (next.relatedExperiences?.includes(current.id) || this.isRelated(current, next)) {\n chain.push(next.id);\n\n // If we found a validation, create a chain\n if (next.type === ExperienceType.VALIDATION) {\n chains.push({\n rootExperience: current.id,\n chain,\n strength: next.confidence,\n validated: next.outcome === OutcomeType.POSITIVE,\n });\n break;\n }\n }\n j++;\n }\n }\n }\n\n return chains;\n }\n\n private isRelated(exp1: Experience, exp2: Experience): boolean {\n // Check domain match\n if (exp1.domain === exp2.domain) {\n // Check temporal proximity (within 5 minutes)\n const timeDiff = Math.abs(exp2.createdAt - exp1.createdAt);\n if (timeDiff < 5 * 60 * 1000) {\n // Check content similarity\n if (this.contentSimilarity(exp1, exp2) > 0.7) {\n return true;\n }\n }\n }\n return false;\n }\n\n private contentSimilarity(exp1: Experience, exp2: Experience): number {\n // Simple keyword overlap for now\n const words1 = new Set(exp1.learning.toLowerCase().split(/\\s+/));\n const words2 = new Set(exp2.learning.toLowerCase().split(/\\s+/));\n\n const intersection = new Set([...words1].filter((x) => words2.has(x)));\n const union = new Set([...words1, ...words2]);\n\n return intersection.size / union.size;\n }\n\n findContradictions(experience: Experience, allExperiences: Experience[]): Experience[] {\n const contradictions: Experience[] = [];\n\n for (const other of allExperiences) {\n if (other.id === experience.id) continue;\n\n // Same action, different outcome\n if (\n other.action === experience.action &&\n other.outcome !== experience.outcome &&\n other.domain === experience.domain\n ) {\n contradictions.push(other);\n }\n\n // Explicit contradiction relationship\n const rels = this.findRelationships(experience.id, \"contradicts\");\n if (rels.some((r) => r.toId === other.id)) {\n contradictions.push(other);\n }\n }\n\n return contradictions;\n }\n\n getExperienceImpact(experienceId: string, allExperiences: Experience[]): number {\n let impact = 0;\n\n for (const exp of allExperiences) {\n if (exp.relatedExperiences?.includes(experienceId as UUID)) {\n impact += exp.importance;\n }\n }\n\n // Add impact from relationships\n const relationships = this.findRelationships(experienceId);\n for (const rel of relationships) {\n if (rel.type === \"causes\") {\n impact += rel.strength;\n }\n }\n\n return impact;\n }\n}\n"
|
|
16
16
|
],
|
|
17
|
-
"mappings": "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",
|
|
18
|
-
"debugId": "
|
|
17
|
+
"mappings": "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",
|
|
18
|
+
"debugId": "21141D6C2118F96564756E2164756E21",
|
|
19
19
|
"names": []
|
|
20
20
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elizaos/plugin-experience",
|
|
3
3
|
"description": "Experience learning plugin for ElizaOS - records and recalls transferable agent learnings",
|
|
4
|
-
"version": "2.0.0-alpha.
|
|
4
|
+
"version": "2.0.0-alpha.6",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/node/index.node.js",
|
|
7
7
|
"module": "dist/node/index.node.js",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"format": "bunx @biomejs/biome format --write .",
|
|
61
61
|
"format:check": "bunx @biomejs/biome format .",
|
|
62
62
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
63
|
-
"test": "vitest run
|
|
64
|
-
"test:unit": "vitest run tests
|
|
63
|
+
"test": "npx -y vitest@4.0.18 run --passWithNoTests",
|
|
64
|
+
"test:unit": "npx -y vitest@4.0.18 run tests --passWithNoTests",
|
|
65
65
|
"test:watch": "vitest",
|
|
66
66
|
"lint": "bunx @biomejs/biome check --write --unsafe .",
|
|
67
67
|
"lint:check": "bunx @biomejs/biome check .",
|
|
@@ -73,10 +73,17 @@
|
|
|
73
73
|
},
|
|
74
74
|
"agentConfig": {
|
|
75
75
|
"pluginType": "elizaos:plugin:1.0.0",
|
|
76
|
-
"pluginParameters": {
|
|
76
|
+
"pluginParameters": {
|
|
77
|
+
"AUTO_RECORD_THRESHOLD": {
|
|
78
|
+
"type": "number",
|
|
79
|
+
"description": "Threshold value",
|
|
80
|
+
"required": false,
|
|
81
|
+
"sensitive": false
|
|
82
|
+
}
|
|
83
|
+
},
|
|
77
84
|
"description": "Records and recalls transferable agent learnings."
|
|
78
85
|
},
|
|
79
|
-
"
|
|
86
|
+
"milady": {
|
|
80
87
|
"platforms": [
|
|
81
88
|
"node"
|
|
82
89
|
],
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"fileNames":["../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.error.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../../../../../node_modules/.bun/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../build.ts","../../../../../packages/typescript/dist/logger.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/json-value.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/types.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/descriptor_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/scalar.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/descriptors.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/types.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/unsafe.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect-types.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/guard.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wire/binary-encoding.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wire/base64-encoding.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wire/text-encoding.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wire/text-format.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/error.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/names.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/nested-types.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/reflect.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/registry.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/path.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/reflect/index.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/to-binary.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/from-binary.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wire/size-delimited.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wire/index.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/types.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/is-message.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/create.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/clone.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/equals.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/fields.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/to-json.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/from-json.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/merge.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/extensions.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/proto-int64.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/index.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/boot.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/embed.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/enum.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/enum.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/extension.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/file.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/file.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/message.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/service.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/symbols.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv2/scalar.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/codegenv1/index.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/primitives_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/agent_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/timestamp_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/timestamp.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/duration_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/duration.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/any_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/any.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/wrappers_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/wrappers.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/source_context_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/type_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/api_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/cpp_features_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/empty_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/field_mask_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/go_features_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/java_features_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/struct_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/gen/google/protobuf/compiler/plugin_pb.d.ts","../../../../../node_modules/.bun/@bufbuild+protobuf@2.11.0/node_modules/@bufbuild/protobuf/dist/esm/wkt/index.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/components_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/memory_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/database_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/environment_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/model_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/events_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/service_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/payment_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/plugin_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/state_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/ipc_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/knowledge_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/message_service_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/messaging_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/prompts_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/service_interfaces_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/settings_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/task_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/tee_pb.d.ts","../../../../../packages/typescript/dist/types/generated/eliza/v1/testing_pb.d.ts","../../../../../packages/typescript/dist/types/proto.d.ts","../../../../../packages/typescript/dist/types/primitives.d.ts","../../../../../packages/typescript/dist/types/knowledge.d.ts","../../../../../packages/typescript/dist/types/memory.d.ts","../../../../../packages/typescript/dist/types/settings.d.ts","../../../../../packages/typescript/dist/types/environment.d.ts","../../../../../packages/typescript/dist/types/pairing.d.ts","../../../../../packages/typescript/dist/types/task.d.ts","../../../../../packages/typescript/dist/types/database.d.ts","../../../../../packages/typescript/dist/types/messaging.d.ts","../../../../../packages/typescript/dist/types/model.d.ts","../../../../../packages/typescript/dist/types/events.d.ts","../../../../../packages/typescript/dist/types/message-service.d.ts","../../../../../packages/typescript/dist/types/service.d.ts","../../../../../packages/typescript/dist/types/testing.d.ts","../../../../../packages/typescript/dist/types/plugin.d.ts","../../../../../packages/typescript/dist/utils/channel-utils.d.ts","../../../../../packages/typescript/dist/markdown/ir.d.ts","../../../../../packages/typescript/dist/types/channel-config.d.ts","../../../../../packages/typescript/dist/types/tools.d.ts","../../../../../packages/typescript/dist/types/runtime.d.ts","../../../../../packages/typescript/dist/types/components.d.ts","../../../../../packages/typescript/dist/types/state.d.ts","../../../../../packages/typescript/dist/types/agent.d.ts","../../../../../packages/typescript/dist/types/hook.d.ts","../../../../../packages/typescript/dist/types/onboarding.d.ts","../../../../../packages/typescript/dist/types/payment.d.ts","../../../../../packages/typescript/dist/types/prompts.d.ts","../../../../../packages/typescript/dist/types/service-interfaces.d.ts","../../../../../packages/typescript/dist/types/streaming.d.ts","../../../../../packages/typescript/dist/types/tee.d.ts","../../../../../packages/typescript/dist/types/index.d.ts","../../../../../packages/typescript/dist/actions.d.ts","../../../../../packages/typescript/dist/basic-capabilities/actions/choice.d.ts","../../../../../packages/typescript/dist/basic-capabilities/actions/compactsession.d.ts","../../../../../packages/typescript/dist/basic-capabilities/actions/ignore.d.ts","../../../../../packages/typescript/dist/basic-capabilities/actions/none.d.ts","../../../../../packages/typescript/dist/basic-capabilities/actions/reply.d.ts","../../../../../packages/typescript/dist/basic-capabilities/actions/index.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/actionstate.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/actions.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/attachments.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/capabilities.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/character.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/choice.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/contextbench.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/currenttime.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/entities.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/evaluators.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/providers.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/recentmessages.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/time.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/world.d.ts","../../../../../packages/typescript/dist/basic-capabilities/providers/index.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/addcontact.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/followroom.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/imagegeneration.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/muteroom.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/removecontact.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/roles.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/schedulefollowup.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/searchcontacts.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/sendmessage.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/settings.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/unfollowroom.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/unmuteroom.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/updatecontact.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/updateentity.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/actions/index.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/evaluators/reflection.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/evaluators/relationshipextraction.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/evaluators/index.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/providers/contacts.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/providers/facts.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/providers/followups.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/providers/knowledge.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/providers/relationships.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/providers/roles.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/providers/settings.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/providers/index.d.ts","../../../../../packages/typescript/dist/advanced-capabilities/index.d.ts","../../../../../packages/typescript/dist/autonomy/action.d.ts","../../../../../packages/typescript/dist/autonomy/providers.d.ts","../../../../../packages/typescript/dist/autonomy/routes.d.ts","../../../../../packages/typescript/dist/autonomy/types.d.ts","../../../../../packages/typescript/dist/autonomy/service.d.ts","../../../../../packages/typescript/dist/autonomy/index.d.ts","../../../../../packages/typescript/dist/basic-capabilities/index.d.ts","../../../../../packages/typescript/dist/character.d.ts","../../../../../packages/typescript/dist/character-loader.d.ts","../../../../../packages/typescript/dist/constants/secrets.d.ts","../../../../../packages/typescript/dist/character-utils.d.ts","../../../../../packages/typescript/dist/constants/index.d.ts","../../../../../packages/typescript/dist/database.d.ts","../../../../../packages/typescript/dist/database/inmemoryadapter.d.ts","../../../../../packages/typescript/dist/entities.d.ts","../../../../../packages/typescript/dist/generated/action-docs.d.ts","../../../../../packages/typescript/dist/generated/spec-helpers.d.ts","../../../../../packages/typescript/dist/markdown/chunk.d.ts","../../../../../packages/typescript/dist/markdown/code-spans.d.ts","../../../../../packages/typescript/dist/markdown/fences.d.ts","../../../../../packages/typescript/dist/markdown/frontmatter.d.ts","../../../../../packages/typescript/dist/markdown/index.d.ts","../../../../../packages/typescript/dist/memory.d.ts","../../../../../packages/typescript/dist/network/ssrf.d.ts","../../../../../packages/typescript/dist/network/fetch-guard.d.ts","../../../../../packages/typescript/dist/network/index.d.ts","../../../../../packages/typescript/dist/plugin.d.ts","../../../../../packages/typescript/dist/types/plugin-manifest.d.ts","../../../../../packages/typescript/dist/plugins/discovery.d.ts","../../../../../packages/typescript/dist/plugins/manifest-registry.d.ts","../../../../../packages/typescript/dist/plugins/index.d.ts","../../../../../packages/typescript/dist/prompts.d.ts","../../../../../packages/typescript/dist/providers/onboarding-progress.d.ts","../../../../../packages/typescript/dist/providers/skill-eligibility.d.ts","../../../../../packages/typescript/dist/roles.d.ts","../../../../../packages/typescript/dist/runtime.d.ts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/standard-schema.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/registries.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/to-json-schema.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/util.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/versions.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/schemas.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/checks.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/errors.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/core.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/parse.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/regexes.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ar.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/az.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/be.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/bg.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ca.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/cs.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/da.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/de.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/en.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/eo.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/es.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fa.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fi.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fr.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/fr-ca.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/he.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/hu.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/hy.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/id.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/is.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/it.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ja.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ka.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/kh.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/km.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ko.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/lt.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/mk.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ms.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/nl.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/no.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ota.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ps.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/pl.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/pt.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ru.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/sl.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/sv.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ta.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/th.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/tr.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ua.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/uk.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/ur.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/uz.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/vi.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/zh-cn.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/zh-tw.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/yo.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/locales/index.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/doc.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/api.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema-processors.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/json-schema-generator.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/core/index.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/errors.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/parse.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/schemas.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/checks.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/compat.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/from-json-schema.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/iso.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/coerce.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/external.d.cts","../../../../../node_modules/.bun/zod@4.3.6/node_modules/zod/index.d.cts","../../../../../packages/typescript/dist/schemas/character.d.ts","../../../../../packages/typescript/dist/search.d.ts","../../../../../packages/typescript/dist/secrets.d.ts","../../../../../packages/typescript/dist/security/external-content.d.ts","../../../../../packages/typescript/dist/security/redact.d.ts","../../../../../packages/typescript/dist/security/index.d.ts","../../../../../packages/typescript/dist/services.d.ts","../../../../../packages/typescript/dist/types/agentevent.d.ts","../../../../../packages/typescript/dist/services/agentevent.d.ts","../../../../../packages/typescript/dist/services/approval.d.ts","../../../../../packages/typescript/dist/services/hook.d.ts","../../../../../packages/typescript/dist/services/message.d.ts","../../../../../packages/typescript/dist/services/onboarding-state.d.ts","../../../../../packages/typescript/dist/services/onboarding-cli.d.ts","../../../../../packages/typescript/dist/services/onboarding-rpc.d.ts","../../../../../packages/typescript/dist/services/pairing.d.ts","../../../../../packages/typescript/dist/services/pairing-integration.d.ts","../../../../../packages/typescript/dist/services/pairing-migration.d.ts","../../../../../packages/typescript/dist/services/plugin-hooks.d.ts","../../../../../packages/typescript/dist/services/tool-policy.d.ts","../../../../../packages/typescript/dist/services/trajectorylogger.d.ts","../../../../../packages/typescript/dist/sessions/session-key.d.ts","../../../../../packages/typescript/dist/sessions/types.d.ts","../../../../../packages/typescript/dist/sessions/store.d.ts","../../../../../packages/typescript/dist/sessions/paths.d.ts","../../../../../packages/typescript/dist/sessions/provider.d.ts","../../../../../packages/typescript/dist/sessions/index.d.ts","../../../../../packages/typescript/dist/settings.d.ts","../../../../../packages/typescript/dist/streaming-context.d.ts","../../../../../packages/typescript/dist/trajectory-context.d.ts","../../../../../packages/typescript/dist/utils.d.ts","../../../../../packages/typescript/dist/utils/buffer.d.ts","../../../../../packages/typescript/dist/utils/environment.d.ts","../../../../../packages/typescript/dist/utils/paths.d.ts","../../../../../packages/typescript/dist/utils/server-health.d.ts","../../../../../packages/typescript/dist/utils/node.d.ts","../../../../../packages/typescript/dist/utils/streaming.d.ts","../../../../../packages/typescript/dist/validation/secrets.d.ts","../../../../../packages/typescript/dist/validation/index.d.ts","../../../../../packages/typescript/dist/index.node.d.ts","../../../../../packages/typescript/dist/node/index.d.ts","../../index.browser.ts","../../generated/specs/specs.ts","../../generated/specs/spec-helpers.ts","../../actions/record-experience.ts","../../generated/prompts/typescript/prompts.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/types.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/max.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/nil.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/parse.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/stringify.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v1.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v1tov6.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v35.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v3.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v4.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v5.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v6.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v6tov1.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/v7.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/validate.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/version.d.ts","../../../../../node_modules/.bun/uuid@13.0.0/node_modules/uuid/dist/index.d.ts","../../types.ts","../../utils/confidencedecay.ts","../../utils/experiencerelationships.ts","../../service.ts","../../evaluators/experienceevaluator.ts","../../providers/experienceprovider.ts","../../index.ts","../../actions/index.ts","../../utils/experienceanalyzer.ts","../../utils/experienceformatter.ts","../../../../../node_modules/.bun/@types+events@3.0.3/node_modules/@types/events/index.d.ts","../../../../../node_modules/.bun/buffer@6.0.3/node_modules/buffer/index.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/header.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/compatibility/iterators.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/globals.typedarray.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/buffer.buffer.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/globals.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/abortcontroller.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/blob.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/console.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/crypto.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/domexception.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/encoding.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/events.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/fetch.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/importmeta.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/messaging.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/navigator.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/performance.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/storage.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/streams.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/timers.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/web-globals/url.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/assert.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/assert/strict.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/async_hooks.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/buffer.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/child_process.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/cluster.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/console.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/constants.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/crypto.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/dgram.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/diagnostics_channel.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/dns.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/dns/promises.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/domain.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/events.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/fs.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/fs/promises.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/http.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/http2.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/https.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/inspector.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/inspector.generated.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/inspector/promises.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/module.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/net.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/os.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/path.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/path/posix.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/path/win32.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/perf_hooks.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/process.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/punycode.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/querystring.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/quic.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/readline.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/readline/promises.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/repl.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/sea.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/sqlite.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/stream.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/stream/consumers.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/stream/promises.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/stream/web.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/string_decoder.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/test.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/test/reporters.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/timers.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/timers/promises.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/tls.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/trace_events.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/tty.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/url.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/util.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/util/types.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/v8.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/vm.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/wasi.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/worker_threads.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/zlib.d.ts","../../../../../node_modules/.bun/@types+node@25.2.1/node_modules/@types/node/index.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/client.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/api.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/util.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","../../../../../node_modules/.bun/undici-types@7.16.0/node_modules/undici-types/index.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/globals.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/s3.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/fetch.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/jsx.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/bun.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/extensions.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/devserver.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/ffi.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/html-rewriter.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/jsc.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/sqlite.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/vendor/expect-type/utils.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/vendor/expect-type/overloads.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/vendor/expect-type/branding.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/vendor/expect-type/messages.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/vendor/expect-type/index.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/test.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/wasm.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/overrides.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/deprecated.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/redis.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/shell.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/serve.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/sql.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/security.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/bundle.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/bun.ns.d.ts","../../../../../node_modules/.bun/bun-types@1.3.8/node_modules/bun-types/index.d.ts","../../../../../node_modules/.bun/@types+bun@1.3.8/node_modules/@types/bun/index.d.ts"],"fileIdsList":[[87,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[83,87,88,121,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,88,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[124,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[88,119,120,122,123,125,126,127,128,129,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[83,87,88,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,88,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[83,87,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[85,87,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[85,87,119,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[83,84,87,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[85,86,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,100,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[85,87,90,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,92,102,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[83,87,100,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[83,87,100,103,104,107,108,109,110,111,112,113,114,115,116,117,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[86,87,90,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[86,90,91,96,97,98,99,101,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,100,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[86,87,89,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,90,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[83,84,87,88,91,106,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[92,93,94,95,105,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,103,104,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,100,107,137,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[135,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[84,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[84,107,141,142,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[84,85,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[83,84,107,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[84,107,137,141,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[85,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[133,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[87,107,139,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586,589],[446,464,465,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,466,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,506,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,468,473,475,478,479,482,484,485,486,488,498,503,515,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,468,469,475,478,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,470,475,479,482,484,485,486,498,516,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,471,472,475,479,482,484,485,486,489,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,472,475,479,482,484,485,486,498,503,512,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,473,475,478,479,482,484,485,486,488,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,466,467,474,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,476,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,477,478,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,466,467,475,478,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,478,479,480,482,484,485,486,498,503,515,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,478,479,480,482,484,485,486,498,503,506,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,478,479,481,482,484,485,486,488,498,503,515,561,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,478,479,481,482,484,485,486,488,498,503,512,515,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,481,482,483,484,485,486,498,503,512,515,562,563,564,566,568,579,580,581,582,583,584,585,586],[444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,478,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,487,498,515,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,478,479,482,484,485,486,488,498,503,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,489,498,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,490,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,478,479,482,484,485,486,493,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,495,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,496,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,472,475,479,482,484,485,486,488,498,506,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,478,479,482,484,485,486,498,499,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,500,516,519,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,478,479,482,484,485,486,498,503,505,506,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,504,506,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,506,516,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,507,562,563,564,566,568,579,581,582,583,584,585,586],[446,464,467,475,479,482,484,485,486,498,503,509,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,503,508,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,478,479,482,484,485,486,498,510,511,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,510,511,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,472,475,479,482,484,485,486,488,498,503,512,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,513,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,488,498,514,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,481,482,484,485,486,496,498,515,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,516,517,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,472,475,479,482,484,485,486,498,517,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,503,518,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,487,498,519,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,520,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,470,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,472,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,516,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,561,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,515,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,521,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,493,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,506,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,511,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,478,479,480,482,484,485,486,493,498,503,506,515,518,519,521,561,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,503,522,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,472,475,479,481,482,484,485,486,498,512,516,521,561,562,563,564,565,568,569,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,561,562,563,566,568,579,581,582,583,584,585,586],[446,467,472,475,479,482,484,485,486,493,498,503,506,512,516,521,561,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,523,562,563,564,566,567,568,569,570,571,572,578,579,580,581,582,583,584,585,586,587,588],[446,467,470,472,475,479,480,482,484,485,486,489,498,506,512,515,522,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,572,579,581,582,583,584,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,577,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,573,574,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,573,574,575,576,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,573,575,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,573,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,562,563,564,566,568,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,515,527,530,533,534,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,503,515,530,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,515,530,534,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,503,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,524,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,528,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,515,526,527,530,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,488,498,512,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,523,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,523,524,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,488,498,515,526,530,562,563,564,566,568,579,580,581,582,583,584,585,586],[441,442,443,446,467,475,478,479,482,484,485,486,498,503,515,525,529,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,530,538,546,562,563,564,566,568,579,581,582,583,584,585,586],[442,446,467,475,479,482,484,485,486,498,528,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,530,555,556,562,563,564,566,568,579,581,582,583,584,585,586],[442,446,467,475,479,482,484,485,486,498,506,515,523,525,530,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,523,524,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,530,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,515,526,530,562,563,564,566,568,579,580,581,582,583,584,585,586],[441,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,524,525,526,528,529,530,531,532,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,556,557,558,559,560,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,530,548,551,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,530,538,539,540,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,528,530,539,541,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,529,562,563,564,566,568,579,581,582,583,584,585,586],[442,446,467,475,479,482,484,485,486,498,524,530,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,530,534,539,541,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,534,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,515,528,530,533,562,563,564,566,568,579,580,581,582,583,584,585,586],[442,446,467,475,479,482,484,485,486,498,526,530,538,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,503,562,563,564,566,568,579,580,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,530,548,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,541,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,482,484,485,486,498,506,521,523,524,530,555,562,563,564,566,568,579,580,581,582,583,584,585,586],[412,413,414,415,416,417,418,420,421,422,423,424,425,426,427,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[412,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[412,419,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[364,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[355,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[355,358,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[350,353,355,356,357,358,359,360,361,362,363,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[289,291,358,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[355,356,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[290,355,357,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[291,293,295,296,297,298,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[293,295,297,298,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[293,295,297,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[290,293,295,296,298,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[289,291,292,293,294,295,296,297,298,299,300,350,351,352,353,354,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[289,291,292,295,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[291,292,295,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[295,298,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[289,290,292,293,294,296,297,298,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[289,290,291,295,355,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[295,296,297,298,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[297,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[203,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[226,227,228,229,230,231,232,233,234,235,236,237,238,239,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[241,242,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[187,240,243,251,405,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[244,245,246,247,248,249,250,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[253,254,255,256,257,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[185,203,256,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[205,206,207,208,209,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[187,193,203,210,225,240,243,251,252,258,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[211,212,213,214,215,216,217,218,219,220,221,222,223,224,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[203,262,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[262,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[203,265,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[268,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[82,184,188,197,203,204,259,260,261,263,264,265,266,267,268,269,274,275,278,279,280,283,284,285,286,287,288,366,367,368,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,392,393,394,395,396,397,398,401,402,404,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[189,270,271,272,273,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[276,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[276,277,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[405,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[280,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[281,282,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[173,280,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[82,118,184,191,194,203,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,195,365,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[369,370,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[173,185,203,373,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[185,203,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[183,185,192,196,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[173,175,177,184,192,193,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[197,378,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[173,197,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[178,203,381,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[178,203,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[178,185,192,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[187,195,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[185,191,203,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[185,192,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[387,388,389,390,391,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[388,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[175,193,388,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[175,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,173,174,194,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[173,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[188,189,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,173,175,192,194,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,173,175,177,178,179,195,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,173,176,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[173,175,177,181,182,192,193,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,131,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,131,151,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,151,153,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,131,153,155,156,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,151,152,153,158,160,161,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,131,153,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,131,153,161,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,132,152,158,159,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,151,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,130,152,155,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[183,185,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[82,172,173,174,175,176,177,178,179,180,181,182,183,185,186,187,190,191,192,193,194,195,196,197,198,199,200,201,202,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,173,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,173,175,177,192,193,194,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,173,175,192,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,192,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,180,182,183,185,186,192,193,195,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,172,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,195,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[118,131,132,152,153,154,155,156,157,158,160,161,162,163,164,165,166,167,168,169,170,171,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[82,172,173,175,177,179,180,181,182,183,184,185,187,191,193,194,195,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,173,185,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,173,192,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[172,177,193,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[190,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[396,399,400,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[194,201,394,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[403,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[410,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[406,409,429,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[446,467,475,479,480,482,484,485,486,490,498,562,563,564,566,568,579,580,581,582,583,584,585,586],[406,411,429,432,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[408,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[406,429,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[406,410,429,432,433,434,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[406,409,429,432,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[406,428,429,430,431,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586],[429,446,467,475,479,482,484,485,486,498,562,563,564,566,568,579,581,582,583,584,585,586]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},"2a51661790905c69c21dafd151829869a4a2992d3017658eb8f4372e47e6c922","e5559d901cacaf91f83121cbf862b6c3394d964d069cad56e0cfc5e96068ad0a",{"version":"42324ae49b347a0c3786cbbc137112fdaffa46e2c62fb5f4ea316e23a8041da8","impliedFormat":99},{"version":"2d9a497ae13c00c02748bdf455efea16f9ee8a2779c7a0dccc29030b24db21d9","impliedFormat":99},{"version":"ed9824c31b1c1e44512f3b40c3f1b93759f4dcda5530759add87b93cf561df80","impliedFormat":99},{"version":"f7c1b2c8138d0bfcfa8dd75a4ec6468e8eb07ed226a05de057dcf4a9b6988c24","impliedFormat":99},{"version":"cb082fe4ea619631fbc02d1b5f90233391a1128b365b7fb5b9ca39ed0949321e","impliedFormat":99},{"version":"b54a261562f958270814adacc6f0dd96d20267dd16b9b6fd5cfff159c77c63b3","impliedFormat":99},{"version":"9e4a31ab17c275f49625e9cc5d5c1130c67ba86af532294c357534594631f40e","impliedFormat":99},{"version":"64eeef76c7037e61d4bb05f70076978105105f7e13b3191b8d1e17a3ac238069","impliedFormat":99},{"version":"5593440344062522e165ac4e22fb2c5b5b5e37c36f1c4eec28c4a45ab9cd69b4","impliedFormat":99},{"version":"048b77edb9e3666715c1090b8ff6dec77f3e7926c902f465d4e4ca06545eec04","impliedFormat":99},{"version":"213018b77ede3d85fb08e7c3f16eb74fdd63fe0f8c426cf9bd073f56ae4f74a5","impliedFormat":99},{"version":"fa81227fb960a450922663ca27355bcafcefcb674988cf8a3eaf217791854fcc","impliedFormat":99},{"version":"e2edffb28e4b058115ff37c9eae06b5e9e346a04c4a69e134a6aa889d0461741","impliedFormat":99},{"version":"9e7a73194e54c8997d305f1fd55084b6c00345432549d5e4911a8d209dacaab6","impliedFormat":99},{"version":"3e7e8574836aa676bd5fbd732b8577e3894e4d84a9a1783bc95b33cb07d47598","impliedFormat":99},{"version":"6d537343a60b60a5074a059971cd019139ce16bc07c8dace952c2d1e6b061bc4","impliedFormat":99},{"version":"6e5f487a0ea2e10829d45b7a3888ade2e901ec4423a48c0ff5aee355bc70d5aa","impliedFormat":99},{"version":"213376670843aa2398aaaf57967b47ac967d9869e161df41a0dd6e4e21489119","impliedFormat":99},{"version":"932c9ddc182802d234e82b09c832d40e9df50dd15e3d0d578155c1b376ecda9a","impliedFormat":99},{"version":"83b3f4318d585a7353766468259f26b3dbe00c1e2584f269c03088749416c889","impliedFormat":99},{"version":"8d9e472be581576e30f30783d8c30b46e45acfdf0cbcd6dc7f37bb34672412cd","impliedFormat":99},{"version":"3fd3eaed39db12e95a43cdae262d304ea9e50aeb1423453350fd5511a33cc7d3","impliedFormat":99},{"version":"cbf797eac91e76a70272787efc3eb972278d3a91580d03c6bd22dea1245a55a0","impliedFormat":99},{"version":"a7114eb40f84278eacbd3b67a10f28bde8f139e4b5c9e7be634f32d6be79a0f7","impliedFormat":99},{"version":"d190b7c4774689e7e9243259729be7c25ad458860789941041aaf3d732b0e4fc","impliedFormat":99},{"version":"d13e95194a4e39d255971136c025679c16c5f72cbfdc4c9d49075c7f9129b68f","impliedFormat":99},{"version":"a169ea6f6eb49b7ac0212d3070f4379d7433ac098ed46b6d2867ae24839cd79a","impliedFormat":99},{"version":"cc5970c174f4d5473201768c5ed267c4052efec308b1e5537132c2525bf6e3cd","impliedFormat":99},{"version":"491053f1cbe23c4bf571a3172ef4090912b565dab8b6553b40a4b1a031ffb7e9","impliedFormat":99},{"version":"7e0736c57a0a0fe112725146a32f78c69765bbe397a0f5b5877fd12b8f60a203","impliedFormat":99},{"version":"fb09248d67b9855ec948276c70e9472181662bffd507df1cc3e82aaaa48966b4","impliedFormat":99},{"version":"e8f9d744212a82e079d072347fc3b48e66c1df6a7b3e33b6ac0138d39cfd1d82","impliedFormat":99},{"version":"2f9ea699735e78c9451c886e75cb5994cdba1fa56720eefca80df2302cc94930","impliedFormat":99},{"version":"04535f6cffc32f1b2f8a464a2df97a67539435f095f3592add6b652f939421c9","impliedFormat":99},{"version":"8ccfd8867eb08b17c7fe3a75c251f014d583defe37ee21d592a53badb400724b","impliedFormat":99},{"version":"6798d285cf63c6416c86690891c0b7bfc9c8feaa1ff8a932d4095889b4a42bef","impliedFormat":99},{"version":"0eaa960ef12452dbcdf65c8eac7c911faef8f459ed39a99d2ab34b9015aecca3","impliedFormat":99},{"version":"dbb274c45c744c2fb4a135fd7f5efb1e1c9ed1394de0f0ce776b38443faf5aa5","impliedFormat":99},{"version":"72c4a46226a3d7d6fa883cac212f2a346c9052de6cd3a895988afa2e81698ea6","impliedFormat":99},{"version":"d894ca77ddd594459b91cfef61664c24e6b25f3224994bb5abf439894d6e5058","impliedFormat":99},{"version":"314af91ec010e81f89207256064c68871798d2f979a632d227a4e9e2379b8f75","impliedFormat":99},{"version":"c1c5a951894ba0de853755f53a860454eeb12e4550e44faced1702ec48b7032b","impliedFormat":99},{"version":"da0b5c66c38abf6f40fd8a78fc3d4e92e6eaaeb61b54c69267c5f751f28b3606","impliedFormat":99},{"version":"f60c1fb7f1ca4a215054c0ea9295fc05198ef130e60d388bd13f0b6d6f28aecb","impliedFormat":99},{"version":"c8e4a090dd30aa3cd8a35910bfc1b055ed8d3dc523b60890b3ccefb4dbed84bf","impliedFormat":99},{"version":"ca8d50dab1be8b00040cf8e3ed8fac4b9c7255c114f0cfbbeabf518bdb1f9396","impliedFormat":99},{"version":"c361c3d85a097d0b6648da8bd6e19a2ddab396c31f4313de7d23ab9851d53af1","impliedFormat":99},{"version":"0442fd5f6b9bd2a1ffbeb33e7bff6bd762d0d22fdfbe024f145baadd42981aaa","impliedFormat":99},"5c585ede06cf1f0f648b3e0df58401a343177d502c757bf95fd1def9888abdf0","3c956cf288d64c714fdf3609d97ddfee3d423c24cc089fddfd219186fb999953",{"version":"e79406b9fd0c34b3734835f34ea73a7888617981c62b45643f9d0226cad93999","impliedFormat":99},{"version":"ba2a7dd1f6ed9a9b4cb99c9a8378a71b4402308b2d51bdc1957dfd455b457694","impliedFormat":99},{"version":"644b3f8b803367fe3b23224a342cb9a4dfe060d74a751d12002e6e7f52e5e461","impliedFormat":99},{"version":"5f074c98bd1a217f18db5aac2e27ff6e9f005d77befcacc1ec59fdcdc6ca60dd","impliedFormat":99},{"version":"97d02f298f92b4bf04b507880c48a41272122fe6888a5bb0a077437026453d24","impliedFormat":99},{"version":"67c45e7d971a3a72406ae5ac48080d4a4cb5ecc032b5a46cfbd69328a17a69b9","impliedFormat":99},{"version":"10d36cb847747faa56ff9f0f307b98b5f217349eb23dd7594e86c565e470aa2a","impliedFormat":99},{"version":"314d7e05267c43c0a6710896e037c2a3e6b0e12ba79f6e77a8c0454b72afe3cd","impliedFormat":99},{"version":"4b96beb38c71f31d9427863a8116f0f74f766c35c98094df8e5d84a821a56bd9","impliedFormat":99},{"version":"1c660667258378784515aea8af289baf285adc261a94f32f84e70ce755ec5662","impliedFormat":99},{"version":"703f35616600c559c81c8208906eba0b3157692adf254aa90aaccf0f8aa904ce","impliedFormat":99},{"version":"52a7510b2e1899b56dc446a3ff6f3eb929e11a754bbb9b1cae9a9d3aff2c9f42","impliedFormat":99},{"version":"903dc49a69785783f17abda4b44a74b080c8fbe7cfcaa06074dca76638a2bd13","impliedFormat":99},{"version":"183fc1576a474d5d8b8866913ee1a7a606d483a909502dfa04daae896fa21fbf","impliedFormat":99},{"version":"2c6921a8376a27e9dbaf84c1b1ad0c373065e5557e73d569a2e5cb3340f2bf2f","impliedFormat":99},{"version":"806a54bf89448522cdd6b9bd9a514034e5c727a0cda161ec06e065545218ecdc","impliedFormat":99},{"version":"80eca435a8e1f2a4d0145e968e7b46b6693aa9f09137395965a2ff583eaad5fc","impliedFormat":99},{"version":"658af0eba7195280948df718c054b371a3f9570542ac68dcff392822b17bafed","impliedFormat":99},{"version":"6c9ce902e8cc2fdfa2d7979fdff2ae341966610baa6209ad6dde57f503d49fa0","impliedFormat":99},"7e45cd19108ff2642de4544575e7a864e718b60fdb6483d0d3b93d15c1d0b38a","59dea4bd48333ea07a1cd7a542bbe674195515bd98bf5206be0d029b78cb88a3","41d85360c2ecfa6d4139c1367a71afedc29e4f47ecb36b0ef27960368154144f","9f8d0bf4bb14d6acc6a55c48dbc3d061796255ed706785b4dd8b4748af770b80","08ae98ba3555e794b8624f61f35ef40e4a4d0901ca73b07dc8e6f83d95a4df2f","1f38667394c6a99145a1fbfa3ed02c0e222d01c2985fe6892f2eb262a4189698","12100e7c01e5cce93c4d6399d737cad3601602f3532449e1404b8b28468afa4a","bab6ce2cbc7d13ae4e39a722813a62e92387924b4ba879fcf2329c190df4a0c8","e30a12351032a9216d3426b16f3c094e708c8a655ad2ffa571eb021f4f0fabd1","a57cee79667391119424e1978fe0eefba8661ae6a6d5002c651c9fa035b1343c","d95cc070155c4711d4b1d8e430430a9c9b1ff817ec378ee3075fde44b7180b8b","ae58f1d417aa79d61a08d7b74c19384ca1017466b60b8595addfd0e809432ced","e3365df57d4d66f9d592da4cacc35c1b90b923ac6038fbb8b125d57c9aacd1b1","8f6e070f04fff02147fc8d31617f5e469ceee63e62dd7f393b397c3fc36bdd7b","708d1f2575dc9fdfb8e7728706dc6f9e80d963fd8609ed6124b798516cb3187a","9de91f97b562860b24ef78ae74f84023e68cb2d20df7fc2e4fac5197c9a15cab","f7808a33361bbd8ee9a6ef0dbe543d4f7e347ea829e6508f030b886d9cd7c076","eb72d1dd1b010e7c22270f81f4bbb3ac13cc023ffa729882c2c2d2383dfacc87","b68189d6daff2b640700b4fd5d2626f86e4bbfe8bb877d984a8c1c83b474b190","bcef7183c8a4908acac063607c37adb4a1567494e5955a4e9da642160aae2ec5","b2a14f420d2ae5b21daa35cf098f70e4868c32b49eabf147041c0ae8072ae8be","6cb76139b743423acdd98fb575f124015eb37899a4ec84918936c4a13495de28","0a83ab05a001408a33fb2beecacaa5931beb554d31969834bd407ef7a685ead0","d4522ee0fd85106a1327658ddd8ab1f1a4876a81eeaebda7ac321484c90a1809","f50d2333722572a98b63dbbb9cafba66a66fff28e1b6ee97f55e0fbee27a50d6","ab722fdb4808969a3a84bf1943f8d81b5273d9b52192e44aa59b7ddd5d5189dc","75b498792a7b6d28526f90192581519588dc866a0f1ac2b119f5a6029a571caf","d43b98496e6a9e92a5e6f9e06d3c3b51c9df352976c671344e7c52d861dd9286","dde44f46023ec6cc1498ea4c2e5910dfc81af8df832c8e7418ca8f3ccca9ab27","630e547393d41bc74b3df2de58b85ad5e080400496a437a83a18ad8a003de0eb","13dbdce785325013a211cc1805e5fd0ae91203493a1861ce79b0a91043803b65","34582bfd667532e37bbb28adaa0492a5f2e775779497cdf8544d6125ddfe8e8f","60180d50e84b448e26622e43d12fba9ff76782c264869277a63ab92b895d2716","02cbaff25a0a49ff6b1865381a1cfb83c020ee8bd52699c4ce9c28a9f2d086f0","383666aab376974820114d10f7a7d47e33596513a214825d2d246ccbc15d634d","f6d694bdeec565f4ef8953e98e89cc11e8ddc56b9890bf951f7fe08d96835505","5a4f30ad8e23cd1a16ecd5048ada2163e5804cc9df59e13186950dcf8069c515","ba1e5bc0d00a7e312f7675142d9996669cf44041ec0bcb3bd40520fbba11990c","4e3c4998f7d66d401c87a95e2d810663cca79899054290485295c55cee5a1184","60a72c4e41c013b4c7360fe8acf6f1b5d31ff79ca584eaabb852001bdd02a61c","9f3e5764e466ec39f4fe172fbf7cb9ebda15f33348f8af9195f62245e96ee828","10e23a5604eab190428fca84112ef629f5a68b67af1da82372a5889c475ce56d","f5ce16c12ae05b4e4eaab6e3667dc5ff1c865b5efd9dd9eabf6b8e2d84fc7116","4b689d93c904cd9adac63ce3752c0184025127d217d0b3a9fc7d8f4ba4bd58c0","c88ba83fb1ebb6150a36d09b91d5c101f8a3d90bdc49c57eb0c59b03b1187151","78b7e8f297cb83575a119ca5d5ea7d456de68099de62ab25765082512055a5ee","71df0d839218fcb9adf26e1c1cd8c7b2372e5cd3a34e1615e9ea413ccaea3f9a","4894ebc5a218119c0ff104a2e4136e8e66bb7c95187ab7cd90f128c228cae4f0","73d9a2cb73a5505e733d265f6c22c724f3b439f23d96e3b6b571573849accf91","ced755bdc7840fa5db2f90792af454efc98b533909bb81f38fd0ca4ec26bafce","e49cf909d214495123ad0d3d953ed90b3329e0afb1bf3674398f901cf137268e","7377a7060e63cec953ae4751bf61b653baf2416f9b80a32b93f798b9bb2ce7bd","03f90431e3f1304caef8656d2439c156997620fc463092a75fa5a8318ddb2ec2","07f0e5269735127afa957f0f87c4df514927960db98e6edeb4a9c89119b963d1","b0045e88d2fd89683158f949f36531bd8394236201a5cdcddd8520ecacd56779","d17cda641a288316d08a29397e214ae119a74ec891c75607443b16025cdffc80","4fc87b30d56317c70a174ea9c4f30ea0b768c9695e46918ca270b27aca765f7b","961e6dc54f4d3620fa03ff79282382ebf52f2b404dca0439b9bd112581c7457e","8a10febace8379d58089222d954b3a332b17025c95dc6ab8c130fce89ad979e2","21c707a588a56038fe71d3d43972604c73ab9cf41c91d331eb42839df626466b","26939dbf30b987961bafebf9c71e0b338449fdd2ed373579b76bb55cf4192089","37128e6abed2aa026cb7934bdf5fc0de3524e6e9d470e95480fdcb39631492d0","f034500a11579e162e30f8ba0cacc2fe833e3fb5932bf0d98afa5c87ec4e712a","5aaf0c81141276cb4c13d93eeb44ea19930b90df307109ff44f2ad1ee867d700","8a7897ec674a9de37f95e2d7e11aa8610a1d2d7e4d97b1761a4f4ccb47e14a85","7d894fcde0be762886867d9cc524acf8a9a22cd03cbfde0f713c210ff983c7bc","2ff82376e5d6356812640da3205e225fdaf39d937251ef79caaad5d917707683","b7ae7f4321ce036a6630e3b91a90a07ba832c7a48bab4cb01ab44745b0716ea6","be09e99e0386403441fd80cde588a28cac86b871ddbef4ce11f3d0b1738283c2","bbf5660319320f8a2473a748aaad079d408e0c55c288bd33532e3e5bb5db7d33","c80aded4770e922186f397ab8640e6ebaa632865b851cbd1427082b9dd206abe","12d5a42fd6ff4550969f09e51f6a5e02bbab5f4bd6397e14ac83cf4df4a75614","cd16f8162c8351eac5110fa0b4ee45057599cab16d5462df20f66c839dacc585","58e55c138f493b7826dc42fdba2ea07d898aebf5f5e3037a52a92bf0d3523a73","521310f8c1fbc12b16e6eef60c3475c91ca364c5188263430d7c680e116133b3","ee616522658f3afbddab9bb58096f2da207af750635d44c3a1b9e2ded5852431","05b6380470f2effca8d6f4c5a12b1fa5269296979aec5d17967f7f1ae29f4a86","511003630996eab8e7b6957300a0b21ba683a7eba38b64f1fa313ac5959c3e0e","23db8ddd4d7a47ba722c285632811cf6f32b65fef1f55c3087d6487dd07c47f7","98eb12bf5c3a4b0d6f05dd559b3e51640a87af435f98cedbf01309802a8c6698","e826cde4ba022b2934099a8978ce8202a62e2249b85ef784ad591b072bdfe5f8","c1d0a613da3c84d1736b761c35d24073694c548243419b38dcac0b194ade8942","86cd32950d0cb8e1681376f977893b4f315e001c0547f775b7c6dc23b06abe36","d7c41d0e90539079033ebfa42c13fc5c32785bf0ba369217f8d0830cf9cf8ef5","b02a0d31fcd37f7418c956d46a7b4498cd41df78c87f45393f2736119958692c","772bac69f855d1dca707d64ec30e89238851193bc65e9eab6ce965c8d4a4c7f7","5e7bf27dd92b54efe5f136019705205de59a2840189ba2afcc0956241414fe81","5d9d807e3c4965ae9b0d0897984aeec479f4d9c832ac3820b9be5f4b8964fd16","c82d6157cbe825b6f723ed77a0d78ea8a8cef4334f87150b0a63312be1a4d91f","0d2d7aedb0fb49b19c76e82deaff3f7ff86125bf3610a7debeb22e8742c7ce2f","cd5ae6afaa794ba37cc7285e3f800afc307bc04c9ad1f977e351bb48025898f9","10cbeeac5244e3676a2291065e36d87c724af3c520e7951deddf3c53c2f46beb","1c5b690e6cb90d73e3fb4defa5495a039f30a119bf71bfbe166e6ffddba64028","ba95efc01f91e6e7b3f1e675108130832b1510248199d69e26f9881b960da0ac","119a3a94a681ea3b574bcf3742eda4a4a81dd947a74bcd6b2b1662c35ef917b5","50fe1fa6e2dd51194a37f90a9acbd740d5ccc5ded496d26bc6a23b3090cb2da7","3da8e67ab7f3fe583432284af653d6dc583b1ccb7001b8fea8d2aeeec2be8674","ecb05295e98a043d7acfa17784cf045a787a502f03e929eb86e9da673cdd4e5e","83ba39363f1a9c5bada952e0a2122ffcaf701c9309be02d470bc6fd7a3916f8c","3f0a805d80810a89a1313443c5ef5d1cde4d635d2fbcf90693ba33a61aba2d71","d8222cc34f71f762d163482acd7d706d2ebf098cb116e05a94de6510dd8d9eaa","d9e922cf9d6f8a4740fca3ee3d85dd2bdd356a71bf3d260f2a930024b41cd2a8","91a45caddf10da4c621a6127513d3247f01894540f3d1fea318864c6eb15e0b3","c20b6df0180cfa13b8747bb16f81035af84e7fcca5a6a10d6886717d077089d2","7ec4cdd9691cdb3dd2531ba319d35213ae98ff2931b3845fbe078937d74bfdea","5687bcf8f1a4385f3b7a277d6b5951181801de462f98638a8ec9ab0733c350b9","460eed432bcafffc1c4f47c4cc89e66205025b38604b1a9d522209be1f3ed932","174fc689e040352d34bb40023bd97ab161f98f8152bcf96c9266ff5b3b355ae7","3158ca34b85a46c4ec2025511886f0bb6bc35b3b31abcad307fa0f266f4818fb","9b4cf0118a74a42e27a9507bd4fd9fa99bc43bad5b77c119b4cba0feb7035302","4bf2c800823724bcfaf5549052290c4611a3686250e3129cd4819979c41f9b19","0e2f041385c5a6a1d638717a708d3af8d1e4c19a3284e93bc01971b34536673a","9700fc52ad8d5d6e49742489a62592d0f56ea6b964f64ab548f4ad2529a79636","59dec9e30aa203ce69dc127d9f518214176198c82417a01ca77d7f8cbe5777b0","9f70391f25304967766ffb57d4cb0b8191edf63dab567bd0b5c60ad717d0d056","a700dbe65d439fd26075ea3bd558245a11028b1afbe2083b498538d93f1254fb","e80919eae1029cf91353e3162201e89c95f9e2034fe3a96e5934dd92272a9e14","fcb2498c40f0d6e6e038a0eafd857dc908f3a10f051dffd4992740d1818a84e2","8b1be15b1597221e88f1ad4e95a577af6476d67cef1453e6d853c337dd22b7f5","3a81172661516cc6a2f7734aa2b8296638e3ac7053e8c78648ba7dba30acb319","3082598a3f051262360074f7015a8c51c024c949dee6af912027b9708de4af36","c7a08b49d4896349aae9344ad842ed5c62bc69e40283289feda795ad6be4ef1e","28f7ae9bb116136eb199d1b5147c6a118dc14451bf35021042755803bc378673","8ded8cec299643b5d8e55017a89a24782373cf42f447b729613bd8363caf984e","b351325228549ac4f5013282daa535d6ae0a773759fc0279d9e3f59719d2ebe1","6a901b844c550159a6858be81bc6d5c0130182f9efaab12d860b6365ceb49db3","198a5399aaf1cc7ea741bdd7b464235b65cba89a0ff4dfc2d52cb44ed8d8ad2c","28d94461e88a1858e8007f484472b7fc324394a84c6ee1097e635242035d9cc9","a92d97108d156656e25e547c18da6f283605bfc6d5a966788867e63fd017de2b","f4791300acf2de2e4ba0078af30fe9048151794e8400304e0a4594c451cde2b4","7d10e147b100ae78cd80b6b6795e5f9a36ff3a8fa99ac8e8d4b2dfe7c6538b42","6400f653706f65872354080d4e26bbc004a6997e9532068392d7e432a92b75ef","c83663b869a86f6e1ecc3a072266fc18c6f87e8226b9477ec3b4a57b4c7771d4","7c6765b71ecad4915e5ef1ce54101051e8b8e2cc8d42b240ce514912d76e837e","1eb658d98ff05f5c02c6d12ea0979d6ecd54a1daed84c4b6edfbba725d859276","803a61353ad86df119709c3a156c22aeccb9ae5096bb1cfb5814f504e9e7bdd8","e8fe92de0b9ff67427ad142b77fe54d38bd4f3c77bc17c6f08ca0451af68cb73",{"version":"c1a2e05eb6d7ca8d7e4a7f4c93ccf0c2857e842a64c98eaee4d85841ee9855e6","impliedFormat":1},{"version":"835fb2909ce458740fb4a49fc61709896c6864f5ce3db7f0a88f06c720d74d02","impliedFormat":1},{"version":"6e5857f38aa297a859cab4ec891408659218a5a2610cd317b6dcbef9979459cc","impliedFormat":1},{"version":"ead8e39c2e11891f286b06ae2aa71f208b1802661fcdb2425cffa4f494a68854","impliedFormat":1},{"version":"82919acbb38870fcf5786ec1292f0f5afe490f9b3060123e48675831bd947192","impliedFormat":1},{"version":"e222701788ec77bd57c28facbbd142eadf5c749a74d586bc2f317db7e33544b1","impliedFormat":1},{"version":"09154713fae0ed7befacdad783e5bd1970c06fc41a5f866f7f933b96312ce764","impliedFormat":1},{"version":"8d67b13da77316a8a2fabc21d340866ddf8a4b99e76a6c951cc45189142df652","impliedFormat":1},{"version":"a91c8d28d10fee7fe717ddf3743f287b68770c813c98f796b6e38d5d164bd459","impliedFormat":1},{"version":"68add36d9632bc096d7245d24d6b0b8ad5f125183016102a3dad4c9c2438ccb0","impliedFormat":1},{"version":"3a819c2928ee06bbcc84e2797fd3558ae2ebb7e0ed8d87f71732fb2e2acc87b4","impliedFormat":1},{"version":"f6f827cd43e92685f194002d6b52a9408309cda1cec46fb7ca8489a95cbd2fd4","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"e0bfe601a9fdf6defe94ed62dc60ac71597566001a1f86e705c95e431a9c816d","impliedFormat":1},{"version":"a270a1a893d1aee5a3c1c8c276cd2778aa970a2741ee2ccf29cc3210d7da80f5","impliedFormat":1},{"version":"add0ce7b77ba5b308492fa68f77f24d1ed1d9148534bdf05ac17c30763fc1a79","impliedFormat":1},{"version":"8926594ee895917e90701d8cbb5fdf77fc238b266ac540f929c7253f8ad6233d","impliedFormat":1},{"version":"2f67911e4bf4e0717dc2ded248ce2d5e4398d945ee13889a6852c1233ea41508","impliedFormat":1},{"version":"d8430c275b0f59417ea8e173cfb888a4477b430ec35b595bf734f3ec7a7d729f","impliedFormat":1},{"version":"69364df1c776372d7df1fb46a6cb3a6bf7f55e700f533a104e3f9d70a32bec18","impliedFormat":1},{"version":"6042774c61ece4ba77b3bf375f15942eb054675b7957882a00c22c0e4fe5865c","impliedFormat":1},{"version":"5a3bd57ed7a9d9afef74c75f77fce79ba3c786401af9810cdf45907c4e93f30e","impliedFormat":1},{"version":"ed8763205f02fb65e84eff7432155258df7f93b7d938f01785cb447d043d53f3","impliedFormat":1},{"version":"30db853bb2e60170ba11e39ab48bacecb32d06d4def89eedf17e58ebab762a65","impliedFormat":1},{"version":"e27451b24234dfed45f6cf22112a04955183a99c42a2691fb4936d63cfe42761","impliedFormat":1},{"version":"2316301dd223d31962d917999acf8e543e0119c5d24ec984c9f22cb23247160c","impliedFormat":1},{"version":"58d65a2803c3b6629b0e18c8bf1bc883a686fcf0333230dd0151ab6e85b74307","impliedFormat":1},{"version":"e818471014c77c103330aee11f00a7a00b37b35500b53ea6f337aefacd6174c9","impliedFormat":1},{"version":"d4a5b1d2ff02c37643e18db302488cd64c342b00e2786e65caac4e12bda9219b","impliedFormat":1},{"version":"29f823cbe0166e10e7176a94afe609a24b9e5af3858628c541ff8ce1727023cd","impliedFormat":1},"90ade5db89e5675a4dc803b539056c330ce83c83288a39177c812f44b911f0c0","5ed82c4fee91f95d07cf65db22fdb60ce1d93cf9f340acd661780c9914b2560e","692cfee60a1a4efee471505ae3561037e64499b0f52146d89bf274fcddb85ffe","bd0e116fe444f9fb06d68decac8e5416a97ef4b9e1d924e66389debc2bc7e2a4","c5dc7eddfd72b7c8db0bc9f0d435aeed8107a8dd971884653ccf493046a46c25","a04a16a49f08e6e16935cc9e75ee0522c1281808bd6d2ad33e36529a08de91e6","77b765ee6f369467a5c259fe0799ea33cd37df64ceceecf642d7b0b21e2fdd00","25aea27ee700b04d2c07addb1c05be8f20f3b1a203d12d5ec79237dbc34d2e6e","4e20488088d8c51cb9e73ae9f8ee1fbc501b639850131fa07f0ee55d4b4f3284","ed1865e462453bcac9e7a7efa800f5c70459d74440b5ffdbc593046f1d8484e9","9ee147ddfcca9f920341646e360f5ec1101d62e7f68937e9b3a62f919cfd5e8f","037a1af87cf79f47fa27065a9e5bc99b63d59267e3a9fc3076b3bf89c910c561","690f0c5303fb954e90cb96f50cdc5bf0ec2ad93dd7b527b8c0ca13ae856c99b7","b69d622929bb9a558b3f364987442bde2f553d64c7c3b9daab6fb56294182cbc","b723bdd9070b436713f4bbd97b5c2de6c15b21406a9fd0fb66f22b29e4c4caa0","20abc2c2ed900cd0a7795e5167df1fc0e6cff7cbdc3efc94a8991797e2dfe761","c1c9479320c93ea47f7aa48d63ad46dd843284d45390a72c760da8971683a53b","2ec4ec38e8633bb90dac8c1cd30d5d5974c2eb8c4b3e2cf80642c4d507a1c389","6bd796660c4ea54d527fb20ec2b2f101562f05543a56861400726b949d415d05","ebf9d0f918a7a96d35438ac48f26013442babfda7a51bfdea5d8bdf4e14eecfa","ca9d08ef8e133a080bd1fb51ad9f23eed70e83223cf4d27b5a67c90a9edc7007","e39bff8a8d23943f1528e5dbd70b337ab925ea8850f74d4740c465a55b44d2d7","3a24b9e88d5bb2715a97c11a3e3c2a1706db5352de21cbea613676d58d9d5b7a","4f6a219cabcdf44172bdb945dd9a83622886c8680887b7a1c9e826deb7c24da0","7670812e0c1445fa8577130528efb6c619feb89c9a1d12aa322bc8711c25378f","e94410f7aea19352c4d94a463d7ed89e4fca59bd3f34740b639a4e53c60da720","6c231c571616e1a527ce9f83326fa3823adb29fbc8a61cb0067d7c6545e684ff","19887b3a55e71bc209404964c2802c02b7752188fe6a56a896f5bdc7ca1dcf2a","93f17b3bc947dfd254d3ddfd04802fbff0e8d371bbfa31d8a06d8b5e05b742fe","6ae6cf273a3ec84eb04ebb434eb1369623420762ebe848d8fa718bda561114dc","a33ca98b16d8fb3e8b611865cec3f1642e7e749fe736b86862148ec8442d3714","1360dcd311551b761e43d34f59f3f8a6d7d2cdc5481d66570a1335cb91dd6166","0fbbab195cce141864a735c86fd05832e5b5209df090516f790adff52e685167","23d45b769e4913e55fe6d59897b6a728cdeb69ead37e50f4e4113b1481a7fcec","f89125e636d570f5b41a5421c355ffd7c0c40e287ed82056505e659975cc25b7","e3b49ce83bec5b83b0bb823554c3cc23dab6162a0cb3c207210b5474790cdacb","4e6240801265483a01aac37c36982c2abd0507cf7f1e183783f884b3a6e38c58","d1e219e2cbe859337e427a40e139fd171864a2e659ccbcb8247d2ef03f865d94","547902adc146767771a9893f09db1641f0e880de08da840b4fbd8c818e5d1fe1","c618dccb20f6b61caaa3dfd42c826a1fb4b5efbb9c4576c016797ea60f195e35","de357ab8ed14c02804b37e554b9e61f4d14f95651fec3c0aa39890eec26bf55b","7b69f5030ac690338da098c2719669a3e5c444ff3b032e7a74b8ef095f38ba47","04eecca082bb373cbd0d685f60ff3df60f9f57f6128f017d44bb2c6b78f59b36","0577d00fce75fb52f3955947008c991315d479f3d1b80881d6402ef97fa388ca","3d19ffb997f2a0ee1a6257d3ccea8c1b3ac725a0104d70c2c40cfd413acbfc37","8cb88983b1c2c15430062ad8c69929be4e6f608f352b1702036d3844f2464cc1",{"version":"cff399d99c68e4fafdd5835d443a980622267a39ac6f3f59b9e3d60d60c4f133","impliedFormat":99},{"version":"6ada175c0c585e89569e8feb8ff6fc9fc443d7f9ca6340b456e0f94cbef559bf","impliedFormat":99},{"version":"e56e4d95fad615c97eb0ae39c329a4cda9c0af178273a9173676cc9b14b58520","impliedFormat":99},{"version":"73e8dfd5e7d2abc18bdb5c5873e64dbdd1082408dd1921cad6ff7130d8339334","impliedFormat":99},{"version":"fc820b2f0c21501f51f79b58a21d3fa7ae5659fc1812784dbfbb72af147659ee","impliedFormat":99},{"version":"4f041ef66167b5f9c73101e5fd8468774b09429932067926f9b2960cc3e4f99d","impliedFormat":99},{"version":"31501b8fc4279e78f6a05ca35e365e73c0b0c57d06dbe8faecb10c7254ce7714","impliedFormat":99},{"version":"7bc76e7d4bbe3764abaf054aed3a622c5cdbac694e474050d71ce9d4ab93ea4b","impliedFormat":99},{"version":"ff4e9db3eb1e95d7ba4b5765e4dc7f512b90fb3b588adfd5ca9b0d9d7a56a1ae","impliedFormat":99},{"version":"f205fd03cd15ea054f7006b7ef8378ef29c315149da0726f4928d291e7dce7b9","impliedFormat":99},{"version":"d683908557d53abeb1b94747e764b3bd6b6226273514b96a942340e9ce4b7be7","impliedFormat":99},{"version":"7c6d5704e2f236fddaf8dbe9131d998a4f5132609ef795b78c3b63f46317f88a","impliedFormat":99},{"version":"d05bd4d28c12545827349b0ac3a79c50658d68147dad38d13e97e22353544496","impliedFormat":99},{"version":"b6436d90a5487d9b3c3916b939f68e43f7eaca4b0bb305d897d5124180a122b9","impliedFormat":99},{"version":"04ace6bedd6f59c30ea6df1f0f8d432c728c8bc5c5fd0c5c1c80242d3ab51977","impliedFormat":99},{"version":"57a8a7772769c35ba7b4b1ba125f0812deec5c7102a0d04d9e15b1d22880c9e8","impliedFormat":99},{"version":"badcc9d59770b91987e962f8e3ddfa1e06671b0e4c5e2738bbd002255cad3f38","impliedFormat":99},"88b7e27cf2cb29aa0c63cb1267841e03274b367e21510e16511194e1d48e918b","35355ab8267cb7d37b70b57cf1cee8bf73ba76c8341183bbc9026a871c28e836","e4d8cece5fb86e9d070700a0dae7ad9c739a62cf7f3bea82041c05c248a07133","ac99890a16466844591d8a90050fd2ba81e7e5e8f135c0c0c8b9d97249ed71e6","30ad225d86c57560a373978cc0f02140959bc3e4bd9b78fa298690966c503533","23730f33da16b936d25b95dfdf829b7c8c2812ddf736c7be9ccc7960ecea60d4","4e4e20658980a68b0e2473870e28fee2ea96c54ed1c551ba082d2b2ae53c50c1","0c1483b4bd06adc6f197f59ae3896235a35a670f0b5e5ea1af3312791f31954b","8fa58565f1501464f0a8ddde34daa2c8c02b145a10cc10f9b28b84e2f82ffdaf","ad24ada658f6f0e5fa78dcafcbab9e72e01ded657456b48f8fb904cd0b663380",{"version":"93d28b4eb12c68fccc1f2fc04a4ef83ea3b2a03b18055d3bf29cab267aa7042e","impliedFormat":1},{"version":"4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"435b3711465425770ed2ee2f1cf00ce071835265e0851a7dc4600ab4b007550e","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"237ba5ac2a95702a114a309e39c53a5bddff5f6333b325db9764df9b34f3502b","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"1d024184fb57c58c5c91823f9d10b4915a4867b7934e89115fd0d861a9df27c8","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"b0b69c61b0f0ec8ca15db4c8c41f6e77f4cacb784d42bca948f42dea33e8757e","affectsGlobalScope":true,"impliedFormat":1},{"version":"f96a48183254c00d24575401f1a761b4ce4927d927407e7862a83e06ce5d6964","impliedFormat":1},{"version":"cc25940cfb27aa538e60d465f98bb5068d4d7d33131861ace43f04fe6947d68f","impliedFormat":1},{"version":"9dec1d75d47c23b595402f265babeac9c0f645427df7e937d69ddfa05cdddc1f","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"757227c8b345c57d76f7f0e3bbad7a91ffca23f1b2547cbed9e10025816c9cb7","impliedFormat":1},{"version":"42a05d8f239f74587d4926aba8cc54792eed8e8a442c7adc9b38b516642aadfe","impliedFormat":1},{"version":"5d21b58d60383cc6ab9ad3d3e265d7d25af24a2c9b506247e0e50b0a884920be","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"ae6757460f37078884b1571a3de3ebaf724d827d7e1d53626c02b3c2a408ac63","affectsGlobalScope":true,"impliedFormat":1},{"version":"9451a46a89ed209e2e08329e6cac59f89356eae79a7230f916d8cc38725407c7","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"e236b5eba291f51bdf32c231673e6cab81b5410850e61f51a7a524dddadc0f95","impliedFormat":1},{"version":"f7ba0e839daa0702e3ff1a1a871c0d8ea2d586ce684dd8a72c786c36a680b1d9","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"af4ab0aa8908fc9a655bb833d3bc28e117c4f0e1038c5a891546158beb25accb","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"f64deb26664af64dc274637343bde8d82f930c77af05a412c7d310b77207a448","impliedFormat":1},{"version":"ed4f674fc8c0c993cc7e145069ac44129e03519b910c62be206a0cc777bdc60b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"17d06eb5709839c7ce719f0c38ada6f308fb433f2cd6d8c87b35856e07400950","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"2a00d005e3af99cd1cfa75220e60c61b04bfb6be7ca7453bfe2ef6cca37cc03c","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"14d4bd22d1b05824971b98f7e91b2484c90f1a684805c330476641417c3d9735","impliedFormat":1},{"version":"c3877fef8a43cd434f9728f25a97575b0eb73d92f38b5c87c840daccc3e21d97","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"1dbd83860e7634f9c236647f45dbc5d3c4f9eba8827d87209d6e9826fdf4dbd5","impliedFormat":1},{"version":"41ef7992c555671a8fe54db302788adefa191ded810a50329b79d20a6772d14c","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"b37f83e7deea729aa9ce5593f78905afb45b7532fdff63041d374f60059e7852","impliedFormat":1},{"version":"e1cb68f3ef3a8dd7b2a9dfb3de482ed6c0f1586ba0db4e7d73c1d2147b6ffc51","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"6e215dac8b234548d91b718f9c07d5b09473cd5cabb29053fcd8be0af190acb6","affectsGlobalScope":true,"impliedFormat":1},{"version":"dbecf494aac7d3ee1b23cdaafae0d0bfea8590567fc153db58fe00ed9fa66c24","impliedFormat":1},{"version":"f3d3e999a323c85c8a63ce90c6e4624ff89fe137a0e2508fddc08e0556d08abf","impliedFormat":1},{"version":"314607151cc203975193d5f44765f38597be3b0a43f466d3c1bfb17176dd3bd3","impliedFormat":1},{"version":"13b67080c26e140e8521f2cb7de76fd55af4ed4aaadffea8fd8be9e260c186fd","impliedFormat":1},{"version":"f40aad6c91017f20fc542f5701ec41e0f6aeba63c61bbf7aa13266ec29a50a3b","impliedFormat":1},{"version":"fc9e630f9302d0414ccd6c8ed2706659cff5ae454a56560c6122fa4a3fac5bbd","affectsGlobalScope":true,"impliedFormat":1},{"version":"aa0a44af370a2d7c1aac988a17836f57910a6c52689f52f5b3ac1d4c6cadcb23","impliedFormat":1},{"version":"0ac74c7586880e26b6a599c710b59284a284e084a2bbc82cd40fb3fbfdea71ae","affectsGlobalScope":true,"impliedFormat":1},{"version":"2ce12357dadbb8efc4e4ec4dab709c8071bf992722fc9adfea2fe0bd5b50923f","impliedFormat":1},{"version":"b5a907deaba678e5083ccdd7cc063a3a8c3413c688098f6de29d6e4cefabc85f","impliedFormat":1},{"version":"ffd344731abee98a0a85a735b19052817afd2156d97d1410819cd9bcd1bd575e","impliedFormat":1},{"version":"475e07c959f4766f90678425b45cf58ac9b95e50de78367759c1e5118e85d5c3","impliedFormat":1},{"version":"a524ae401b30a1b0814f1bbcdae459da97fa30ae6e22476e506bb3f82e3d9456","impliedFormat":1},{"version":"7375e803c033425e27cb33bae21917c106cb37b508fd242cccd978ef2ee244c7","impliedFormat":1},{"version":"eeb890c7e9218afdad2f30ad8a76b0b0b5161d11ce13b6723879de408e6bc47a","impliedFormat":1},{"version":"561c795984d06b91091780cebeac616e9e41d83240770e1af14e6ec083b713d5","impliedFormat":1},{"version":"dfbcc400ac6d20b941ccc7bd9031b9d9f54e4d495dd79117334e771959df4805","affectsGlobalScope":true,"impliedFormat":1},{"version":"944d65951e33a13068be5cd525ec42bf9bc180263ba0b723fa236970aa21f611","affectsGlobalScope":true,"impliedFormat":1},{"version":"6b386c7b6ce6f369d18246904fa5eac73566167c88fb6508feba74fa7501a384","affectsGlobalScope":true,"impliedFormat":1},{"version":"592a109e67b907ffd2078cd6f727d5c326e06eaada169eef8fb18546d96f6797","impliedFormat":1},{"version":"f2eb1e35cae499d57e34b4ac3650248776fe7dbd9a3ec34b23754cfd8c22fceb","impliedFormat":1},{"version":"fbed43a6fcf5b675f5ec6fc960328114777862b58a2bb19c109e8fc1906caa09","impliedFormat":1},{"version":"9e98bd421e71f70c75dae7029e316745c89fa7b8bc8b43a91adf9b82c206099c","impliedFormat":1},{"version":"fc803e6b01f4365f71f51f9ce13f71396766848204d4f7a1b2b6154434b84b15","impliedFormat":1},{"version":"f3afcc0d6f77a9ca2d2c5c92eb4b89cd38d6fa4bdc1410d626bd701760a977ec","impliedFormat":1},{"version":"c8109fe76467db6e801d0edfbc50e6826934686467c9418ce6b246232ce7f109","affectsGlobalScope":true,"impliedFormat":1},{"version":"e6f803e4e45915d58e721c04ec17830c6e6678d1e3e00e28edf3d52720909cea","affectsGlobalScope":true,"impliedFormat":1},{"version":"37be812b06e518320ba82e2aff3ac2ca37370a9df917db708f081b9043fa3315","impliedFormat":1}],"root":[81,[407,411],[429,438]],"options":{"allowImportingTsExtensions":true,"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"..","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":4,"module":99,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":false,"target":99},"referencedMap":[[110,1],[122,2],[123,3],[125,4],[130,5],[126,6],[127,7],[128,8],[88,9],[119,10],[120,11],[121,12],[124,13],[129,13],[84,9],[109,1],[87,14],[111,15],[116,16],[112,1],[104,17],[114,18],[118,19],[108,1],[83,8],[115,1],[117,8],[96,13],[91,20],[102,21],[97,13],[98,13],[101,22],[90,23],[99,24],[86,13],[89,13],[100,10],[103,17],[113,18],[107,25],[93,8],[92,8],[106,26],[105,27],[94,8],[95,13],[138,28],[136,29],[137,30],[143,31],[150,32],[144,32],[85,30],[135,30],[145,30],[146,30],[147,32],[148,32],[141,30],[149,33],[133,30],[142,34],[139,30],[151,35],[134,36],[140,37],[590,38],[439,8],[464,39],[465,39],[466,40],[446,41],[467,42],[468,43],[469,44],[444,8],[470,45],[471,46],[472,47],[473,48],[474,49],[475,50],[476,50],[477,51],[478,52],[479,53],[480,54],[447,8],[445,8],[481,55],[482,56],[483,57],[523,58],[484,59],[485,60],[486,59],[487,61],[488,62],[489,63],[490,64],[491,64],[492,64],[493,65],[494,66],[495,67],[496,68],[497,69],[498,70],[499,70],[500,71],[501,8],[502,8],[503,72],[504,73],[505,72],[506,74],[507,75],[508,76],[509,77],[510,78],[511,79],[512,80],[513,81],[514,82],[515,83],[516,84],[517,85],[518,86],[519,87],[520,88],[448,59],[449,8],[450,89],[451,90],[452,8],[453,91],[454,8],[455,92],[456,93],[457,94],[458,94],[459,95],[460,8],[461,96],[462,97],[463,93],[521,98],[522,99],[440,8],[566,100],[588,8],[587,8],[581,101],[568,102],[567,8],[564,103],[569,8],[562,104],[570,8],[589,105],[571,8],[565,8],[580,106],[582,107],[563,108],[586,109],[584,110],[583,111],[585,112],[572,8],[578,113],[575,114],[577,115],[576,116],[574,117],[573,8],[579,118],[79,8],[80,8],[14,8],[13,8],[2,8],[15,8],[16,8],[17,8],[18,8],[19,8],[20,8],[21,8],[22,8],[3,8],[23,8],[24,8],[4,8],[25,8],[29,8],[26,8],[27,8],[28,8],[30,8],[31,8],[32,8],[5,8],[33,8],[34,8],[35,8],[36,8],[6,8],[40,8],[37,8],[38,8],[39,8],[41,8],[7,8],[42,8],[47,8],[48,8],[43,8],[44,8],[45,8],[46,8],[8,8],[52,8],[49,8],[50,8],[51,8],[53,8],[9,8],[54,8],[55,8],[56,8],[58,8],[57,8],[59,8],[60,8],[10,8],[61,8],[62,8],[63,8],[11,8],[64,8],[65,8],[66,8],[67,8],[68,8],[1,8],[69,8],[70,8],[12,8],[74,8],[72,8],[77,8],[76,8],[71,8],[75,8],[73,8],[78,8],[538,119],[550,120],[536,121],[551,122],[560,123],[527,124],[528,125],[526,126],[559,127],[554,128],[558,129],[530,130],[547,131],[529,132],[557,133],[524,134],[525,135],[531,136],[532,8],[537,137],[535,136],[442,138],[561,139],[552,140],[541,141],[540,136],[542,142],[545,143],[539,144],[543,145],[555,127],[533,146],[534,147],[546,148],[443,149],[549,150],[548,136],[544,151],[553,8],[441,8],[556,152],[428,153],[413,8],[414,8],[415,8],[416,8],[412,8],[417,154],[418,8],[420,155],[419,154],[421,154],[422,155],[423,154],[424,8],[425,154],[426,8],[427,8],[365,156],[359,157],[363,158],[360,158],[356,157],[364,159],[361,160],[362,158],[357,161],[358,162],[352,163],[296,164],[298,165],[351,8],[297,166],[355,167],[354,168],[353,169],[289,8],[299,164],[300,8],[291,170],[295,171],[290,8],[292,172],[293,173],[294,8],[301,174],[302,174],[303,174],[304,174],[305,174],[306,174],[307,174],[308,174],[309,174],[310,174],[311,174],[312,174],[313,174],[315,174],[314,174],[316,174],[317,174],[318,174],[319,174],[350,175],[320,174],[321,174],[322,174],[323,174],[324,174],[325,174],[326,174],[327,174],[328,174],[329,174],[330,174],[331,174],[332,174],[334,174],[333,174],[335,174],[336,174],[337,174],[338,174],[339,174],[340,174],[341,174],[342,174],[343,174],[344,174],[345,174],[346,174],[349,174],[347,174],[348,174],[204,176],[226,176],[227,176],[228,176],[240,177],[229,176],[230,176],[231,176],[232,176],[233,176],[234,176],[235,176],[236,176],[237,176],[238,176],[239,176],[243,178],[241,176],[242,176],[252,179],[244,176],[245,176],[246,176],[251,180],[247,176],[248,176],[249,176],[250,176],[253,176],[258,181],[254,176],[255,176],[257,182],[256,176],[205,176],[206,176],[207,176],[210,183],[208,176],[209,176],[259,184],[212,176],[211,176],[213,176],[214,176],[215,176],[216,176],[217,176],[218,176],[219,176],[220,176],[225,185],[221,176],[222,176],[223,176],[224,176],[261,176],[263,186],[260,176],[264,187],[262,8],[265,176],[266,188],[267,176],[268,8],[269,189],[405,190],[82,8],[270,8],[271,8],[272,8],[273,8],[274,191],[189,8],[275,176],[277,192],[278,193],[276,50],[406,194],[279,176],[281,195],[283,196],[282,197],[284,8],[285,176],[286,176],[287,176],[288,198],[366,199],[367,8],[368,176],[369,8],[371,200],[370,8],[372,176],[374,201],[375,202],[376,203],[377,204],[379,205],[380,206],[378,206],[382,207],[383,208],[381,209],[384,210],[385,211],[386,212],[392,213],[390,214],[391,215],[387,8],[389,214],[388,216],[393,176],[394,8],[395,8],[195,217],[373,218],[190,219],[193,220],[180,221],[177,222],[183,223],[132,224],[152,225],[154,226],[155,227],[157,228],[162,229],[163,230],[153,224],[164,231],[165,230],[156,227],[159,227],[160,232],[131,227],[166,227],[167,233],[158,227],[168,233],[161,234],[169,227],[170,227],[171,227],[196,235],[203,236],[174,237],[175,237],[184,238],[181,239],[182,240],[197,218],[178,218],[198,241],[280,218],[187,242],[173,243],[199,244],[172,245],[192,246],[200,247],[185,248],[176,241],[194,249],[201,8],[179,220],[202,241],[186,240],[191,250],[396,176],[397,8],[188,8],[398,8],[401,251],[399,8],[400,8],[402,252],[404,253],[403,8],[436,254],[410,255],[81,256],[433,257],[411,8],[409,258],[408,8],[407,259],[435,260],[434,261],[432,262],[429,259],[430,263],[437,263],[438,263],[431,259]],"affectedFilesPendingEmit":[[436,48],[410,48],[81,48],[433,48],[411,48],[409,48],[408,48],[407,48],[435,48],[434,48],[432,48],[429,48],[430,48],[437,48],[438,48],[431,48]],"emitSignatures":[81,407,408,409,410,411,429,430,431,432,433,434,435,436,437,438],"version":"5.9.3"}
|