k0ntext 3.2.1 ā 3.3.1
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/README.md +15 -0
- package/dist/cli/index.js +28 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/repl/core/parser.d.ts +84 -0
- package/dist/cli/repl/core/parser.d.ts.map +1 -0
- package/dist/cli/repl/core/parser.js +309 -0
- package/dist/cli/repl/core/parser.js.map +1 -0
- package/dist/cli/repl/core/session.d.ts +124 -0
- package/dist/cli/repl/core/session.d.ts.map +1 -0
- package/dist/cli/repl/core/session.js +196 -0
- package/dist/cli/repl/core/session.js.map +1 -0
- package/dist/cli/repl/index.d.ts +59 -0
- package/dist/cli/repl/index.d.ts.map +1 -0
- package/dist/cli/repl/index.js +474 -0
- package/dist/cli/repl/index.js.map +1 -0
- package/dist/cli/repl/init/wizard.d.ts +61 -0
- package/dist/cli/repl/init/wizard.d.ts.map +1 -0
- package/dist/cli/repl/init/wizard.js +245 -0
- package/dist/cli/repl/init/wizard.js.map +1 -0
- package/dist/cli/repl/tui/panels/config.d.ts +71 -0
- package/dist/cli/repl/tui/panels/config.d.ts.map +1 -0
- package/dist/cli/repl/tui/panels/config.js +392 -0
- package/dist/cli/repl/tui/panels/config.js.map +1 -0
- package/dist/cli/repl/tui/panels/drift.d.ts +95 -0
- package/dist/cli/repl/tui/panels/drift.d.ts.map +1 -0
- package/dist/cli/repl/tui/panels/drift.js +353 -0
- package/dist/cli/repl/tui/panels/drift.js.map +1 -0
- package/dist/cli/repl/tui/panels/indexing.d.ts +86 -0
- package/dist/cli/repl/tui/panels/indexing.d.ts.map +1 -0
- package/dist/cli/repl/tui/panels/indexing.js +254 -0
- package/dist/cli/repl/tui/panels/indexing.js.map +1 -0
- package/dist/cli/repl/tui/panels/search.d.ts +66 -0
- package/dist/cli/repl/tui/panels/search.d.ts.map +1 -0
- package/dist/cli/repl/tui/panels/search.js +215 -0
- package/dist/cli/repl/tui/panels/search.js.map +1 -0
- package/dist/cli/repl/tui/theme.d.ts +109 -0
- package/dist/cli/repl/tui/theme.d.ts.map +1 -0
- package/dist/cli/repl/tui/theme.js +225 -0
- package/dist/cli/repl/tui/theme.js.map +1 -0
- package/dist/cli/repl/update/checker.d.ts +64 -0
- package/dist/cli/repl/update/checker.d.ts.map +1 -0
- package/dist/cli/repl/update/checker.js +166 -0
- package/dist/cli/repl/update/checker.js.map +1 -0
- package/dist/db/client.d.ts +1 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +2 -1
- package/dist/db/client.js.map +1 -1
- package/package.json +4 -1
- package/src/cli/index.ts +28 -2
- package/src/cli/repl/core/parser.ts +373 -0
- package/src/cli/repl/core/session.ts +269 -0
- package/src/cli/repl/index.ts +557 -0
- package/src/cli/repl/init/wizard.ts +300 -0
- package/src/cli/repl/tui/panels/config.ts +457 -0
- package/src/cli/repl/tui/panels/drift.ts +458 -0
- package/src/cli/repl/tui/panels/indexing.ts +324 -0
- package/src/cli/repl/tui/panels/search.ts +272 -0
- package/src/cli/repl/tui/theme.ts +276 -0
- package/src/cli/repl/update/checker.ts +209 -0
- package/src/db/client.ts +9 -7
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Init Wizard
|
|
3
|
+
*
|
|
4
|
+
* Interactive wizard for initializing k0ntext configuration
|
|
5
|
+
*/
|
|
6
|
+
import { input, confirm, select, checkbox } from '@inquirer/prompts';
|
|
7
|
+
import { K0NTEXT_THEME } from '../tui/theme.js';
|
|
8
|
+
/**
|
|
9
|
+
* Project type options
|
|
10
|
+
*/
|
|
11
|
+
const PROJECT_TYPES = [
|
|
12
|
+
{ value: 'monorepo', name: 'Monorepo', description: 'Multiple packages/services in one repository' },
|
|
13
|
+
{ value: 'webapp', name: 'Web Application', description: 'Frontend web application (React, Vue, etc.)' },
|
|
14
|
+
{ value: 'api', name: 'API/Backend', description: 'Backend API service' },
|
|
15
|
+
{ value: 'library', name: 'Library/Package', description: 'Reusable library or npm package' },
|
|
16
|
+
{ value: 'cli', name: 'CLI Tool', description: 'Command-line interface tool' },
|
|
17
|
+
{ value: 'unknown', name: 'Other', description: 'Other type of project' }
|
|
18
|
+
];
|
|
19
|
+
/**
|
|
20
|
+
* AI tool options
|
|
21
|
+
*/
|
|
22
|
+
const AI_TOOLS = [
|
|
23
|
+
{ name: 'Claude Code', value: 'claude', description: 'Anthropic Claude with advanced reasoning' },
|
|
24
|
+
{ name: 'GitHub Copilot', value: 'copilot', description: 'GitHub AI-powered code completion' },
|
|
25
|
+
{ name: 'Cline', value: 'cline', description: 'Autonomous coding agent' },
|
|
26
|
+
{ name: 'Cursor', value: 'cursor', description: 'AI code editor with integrated AI' },
|
|
27
|
+
{ name: 'Windsurf', value: 'windsurf', description: 'AI-powered IDE with code understanding' },
|
|
28
|
+
{ name: 'Aider', value: 'aider', description: 'AI pair programming in terminal' },
|
|
29
|
+
{ name: 'Continue', value: 'continue', description: 'Open source AI autopilot' }
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* Feature options
|
|
33
|
+
*/
|
|
34
|
+
const FEATURES = [
|
|
35
|
+
{ name: 'š Statistics & Analytics', value: 'stats', description: 'Track code metrics and context usage' },
|
|
36
|
+
{ name: 'š Semantic Search', value: 'search', description: 'AI-powered code search with embeddings' },
|
|
37
|
+
{ name: 'š Auto Documentation', value: 'docs', description: 'Generate documentation from code' },
|
|
38
|
+
{ name: 'š Drift Detection', value: 'drift', description: 'Detect when docs are out of sync with code' },
|
|
39
|
+
{ name: 'šÆ Workflow Tracking', value: 'workflows', description: 'Track RPI workflows and tasks' },
|
|
40
|
+
{ name: 'š¤ MCP Integration', value: 'mcp', description: 'Model Context Protocol server' }
|
|
41
|
+
];
|
|
42
|
+
/**
|
|
43
|
+
* Init Wizard
|
|
44
|
+
*/
|
|
45
|
+
export class InitWizard {
|
|
46
|
+
projectRoot;
|
|
47
|
+
hasExistingKey;
|
|
48
|
+
constructor(projectRoot) {
|
|
49
|
+
this.projectRoot = projectRoot;
|
|
50
|
+
this.hasExistingKey = !!process.env.OPENROUTER_API_KEY;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Run the complete wizard
|
|
54
|
+
*/
|
|
55
|
+
async run() {
|
|
56
|
+
this.showWelcome();
|
|
57
|
+
// Step 1: API Key
|
|
58
|
+
const apiKey = await this.stepApiKey();
|
|
59
|
+
if (!apiKey) {
|
|
60
|
+
console.log(K0NTEXT_THEME.warning('\nā Initialization cancelled.'));
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
// Step 2: Project Type
|
|
64
|
+
const projectType = await this.stepProjectType();
|
|
65
|
+
// Step 3: AI Tools
|
|
66
|
+
const aiTools = await this.stepAITools();
|
|
67
|
+
// Step 4: Features
|
|
68
|
+
const features = await this.stepFeatures();
|
|
69
|
+
// Step 5: Embeddings
|
|
70
|
+
const generateEmbeddings = await this.stepEmbeddings();
|
|
71
|
+
// Show summary
|
|
72
|
+
const config = {
|
|
73
|
+
apiKey,
|
|
74
|
+
projectType,
|
|
75
|
+
aiTools,
|
|
76
|
+
features,
|
|
77
|
+
generateEmbeddings
|
|
78
|
+
};
|
|
79
|
+
const confirmed = await this.showSummary(config);
|
|
80
|
+
if (!confirmed) {
|
|
81
|
+
console.log(K0NTEXT_THEME.warning('\nā Initialization cancelled.'));
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
return config;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Show welcome message
|
|
88
|
+
*/
|
|
89
|
+
showWelcome() {
|
|
90
|
+
console.log('');
|
|
91
|
+
console.log(K0NTEXT_THEME.box('K0NTEXT INITIALIZATION', `
|
|
92
|
+
Welcome to K0ntext! This wizard will help you set up
|
|
93
|
+
AI context engineering for your project.
|
|
94
|
+
|
|
95
|
+
You'll be asked a few questions to configure K0ntext
|
|
96
|
+
for your specific needs.
|
|
97
|
+
`.trim(), 'primary'));
|
|
98
|
+
console.log('');
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Step 1: API Key
|
|
102
|
+
*/
|
|
103
|
+
async stepApiKey() {
|
|
104
|
+
console.log('');
|
|
105
|
+
console.log(K0NTEXT_THEME.header('\nāāā Step 1/5: OpenRouter API Key āāā'));
|
|
106
|
+
if (this.hasExistingKey) {
|
|
107
|
+
console.log(K0NTEXT_THEME.success('\nā API key detected in OPENROUTER_API_KEY environment variable'));
|
|
108
|
+
const useExisting = await confirm({
|
|
109
|
+
message: 'Use existing API key?',
|
|
110
|
+
default: true
|
|
111
|
+
});
|
|
112
|
+
if (useExisting) {
|
|
113
|
+
return process.env.OPENROUTER_API_KEY;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
console.log('');
|
|
117
|
+
console.log(K0NTEXT_THEME.info('OpenRouter API key enables intelligent analysis and embeddings.'));
|
|
118
|
+
console.log(K0NTEXT_THEME.dim('Get your key at: https://openrouter.ai/keys'));
|
|
119
|
+
const apiKey = await input({
|
|
120
|
+
message: 'Enter your OpenRouter API key (or press Enter to skip):',
|
|
121
|
+
validate: (value) => {
|
|
122
|
+
if (!value)
|
|
123
|
+
return true; // Allow skipping
|
|
124
|
+
if (value.startsWith('sk-or-v1-'))
|
|
125
|
+
return true;
|
|
126
|
+
return 'Invalid API key format. Should start with "sk-or-v1-"';
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
if (!apiKey) {
|
|
130
|
+
const skipAnyway = await confirm({
|
|
131
|
+
message: 'Skip API key? You can add it later with "k0ntext config set apiKey"',
|
|
132
|
+
default: false
|
|
133
|
+
});
|
|
134
|
+
if (!skipAnyway) {
|
|
135
|
+
return null; // User wants to cancel
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return apiKey || '';
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Step 2: Project Type
|
|
142
|
+
*/
|
|
143
|
+
async stepProjectType() {
|
|
144
|
+
console.log('');
|
|
145
|
+
console.log(K0NTEXT_THEME.header('\nāāā Step 2/5: Project Type āāā'));
|
|
146
|
+
console.log('');
|
|
147
|
+
const projectType = await select({
|
|
148
|
+
message: 'What type of project is this?',
|
|
149
|
+
choices: PROJECT_TYPES.map((t) => ({
|
|
150
|
+
name: `${t.name} - ${K0NTEXT_THEME.dim(t.description)}`,
|
|
151
|
+
value: t.value,
|
|
152
|
+
description: t.description
|
|
153
|
+
}))
|
|
154
|
+
});
|
|
155
|
+
return projectType;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Step 3: AI Tools
|
|
159
|
+
*/
|
|
160
|
+
async stepAITools() {
|
|
161
|
+
console.log('');
|
|
162
|
+
console.log(K0NTEXT_THEME.header('\nāāā Step 3/5: AI Tools āāā'));
|
|
163
|
+
console.log('');
|
|
164
|
+
console.log(K0NTEXT_THEME.info('Select the AI coding assistants you want to configure:'));
|
|
165
|
+
const tools = await checkbox({
|
|
166
|
+
message: 'Select AI tools (use space to select, enter to continue):',
|
|
167
|
+
choices: AI_TOOLS.map((t) => ({
|
|
168
|
+
name: `${t.name} - ${K0NTEXT_THEME.dim(t.description)}`,
|
|
169
|
+
value: t.value,
|
|
170
|
+
checked: t.value === 'claude' // Default to Claude
|
|
171
|
+
}))
|
|
172
|
+
});
|
|
173
|
+
return tools.length > 0 ? tools : ['claude']; // Default to claude if none selected
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Step 4: Features
|
|
177
|
+
*/
|
|
178
|
+
async stepFeatures() {
|
|
179
|
+
console.log('');
|
|
180
|
+
console.log(K0NTEXT_THEME.header('\nāāā Step 4/5: Features āāā'));
|
|
181
|
+
console.log('');
|
|
182
|
+
console.log(K0NTEXT_THEME.info('Select the features you want to enable:'));
|
|
183
|
+
const features = await checkbox({
|
|
184
|
+
message: 'Select features (use space to select, enter to continue):',
|
|
185
|
+
choices: FEATURES.map((f) => ({
|
|
186
|
+
name: `${f.name} - ${K0NTEXT_THEME.dim(f.description)}`,
|
|
187
|
+
value: f.value,
|
|
188
|
+
checked: ['stats', 'search', 'mcp'].includes(f.value) // Default to core features
|
|
189
|
+
}))
|
|
190
|
+
});
|
|
191
|
+
return features.length > 0 ? features : ['stats', 'mcp'];
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Step 5: Embeddings
|
|
195
|
+
*/
|
|
196
|
+
async stepEmbeddings() {
|
|
197
|
+
console.log('');
|
|
198
|
+
console.log(K0NTEXT_THEME.header('\nāāā Step 5/5: Embeddings āāā'));
|
|
199
|
+
console.log('');
|
|
200
|
+
console.log(K0NTEXT_THEME.info('Generate semantic embeddings for AI-powered search?'));
|
|
201
|
+
console.log(K0NTEXT_THEME.dim('This will take a few minutes but greatly improves search quality.'));
|
|
202
|
+
const generate = await confirm({
|
|
203
|
+
message: 'Generate embeddings now?',
|
|
204
|
+
default: false
|
|
205
|
+
});
|
|
206
|
+
return generate;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Show summary and confirm
|
|
210
|
+
*/
|
|
211
|
+
async showSummary(config) {
|
|
212
|
+
console.log('');
|
|
213
|
+
console.log(K0NTEXT_THEME.header('\nāāā Configuration Summary āāā'));
|
|
214
|
+
console.log('');
|
|
215
|
+
const typeInfo = PROJECT_TYPES.find(t => t.value === config.projectType);
|
|
216
|
+
console.log(` ${K0NTEXT_THEME.primary('Project Type:')} ${typeInfo?.name || config.projectType}`);
|
|
217
|
+
console.log(` ${K0NTEXT_THEME.primary('API Key:')} ${config.apiKey ? 'ā Configured' : 'ā Skipped'}`);
|
|
218
|
+
console.log(` ${K0NTEXT_THEME.primary('AI Tools:')} ${config.aiTools.map(t => K0NTEXT_THEME.highlight(t)).join(', ')}`);
|
|
219
|
+
console.log(` ${K0NTEXT_THEME.primary('Features:')} ${config.features.map(f => {
|
|
220
|
+
const feat = FEATURES.find(ff => ff.value === f);
|
|
221
|
+
return feat?.name.split(' ')[0] || f;
|
|
222
|
+
}).join(', ')}`);
|
|
223
|
+
console.log(` ${K0NTEXT_THEME.primary('Embeddings:')} ${config.generateEmbeddings ? 'ā Yes' : 'ā Later'}`);
|
|
224
|
+
console.log('');
|
|
225
|
+
return await confirm({
|
|
226
|
+
message: 'Initialize K0ntext with these settings?',
|
|
227
|
+
default: true
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Show success message
|
|
232
|
+
*/
|
|
233
|
+
showSuccess(config) {
|
|
234
|
+
console.log('');
|
|
235
|
+
console.log(K0NTEXT_THEME.success('\nā K0ntext initialized successfully!'));
|
|
236
|
+
console.log('');
|
|
237
|
+
console.log(K0NTEXT_THEME.header('Next Steps:'));
|
|
238
|
+
console.log(` ${K0NTEXT_THEME.cyan('ā¢')} Type ${K0NTEXT_THEME.highlight('stats')} to view database statistics`);
|
|
239
|
+
console.log(` ${K0NTEXT_THEME.cyan('ā¢')} Type ${K0NTEXT_THEME.highlight('index')} to index your codebase`);
|
|
240
|
+
console.log(` ${K0NTEXT_THEME.cyan('ā¢')} Type ${K0NTEXT_THEME.highlight('search <query>')} to search your code`);
|
|
241
|
+
console.log(` ${K0NTEXT_THEME.cyan('ā¢')} Type ${K0NTEXT_THEME.highlight('help')} for all available commands`);
|
|
242
|
+
console.log('');
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../../src/cli/repl/init/wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration UI Panel
|
|
3
|
+
*
|
|
4
|
+
* Visual configuration management for k0ntext settings
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Config key definition
|
|
8
|
+
*/
|
|
9
|
+
interface ConfigKey {
|
|
10
|
+
name: string;
|
|
11
|
+
type: 'string' | 'number' | 'boolean' | 'array';
|
|
12
|
+
description: string;
|
|
13
|
+
options?: string[];
|
|
14
|
+
validate?: (value: string) => boolean | string;
|
|
15
|
+
defaultValue?: unknown;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Configuration UI Panel
|
|
19
|
+
*/
|
|
20
|
+
export declare class ConfigPanel {
|
|
21
|
+
private projectRoot;
|
|
22
|
+
private configPath;
|
|
23
|
+
private sessionConfig;
|
|
24
|
+
constructor(projectRoot: string, sessionConfig: Record<string, unknown>);
|
|
25
|
+
/**
|
|
26
|
+
* Display current configuration
|
|
27
|
+
*/
|
|
28
|
+
displayConfig(): string;
|
|
29
|
+
/**
|
|
30
|
+
* Interactive configuration editor
|
|
31
|
+
*/
|
|
32
|
+
interactiveConfig(category?: string): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Select a category to edit
|
|
35
|
+
*/
|
|
36
|
+
private selectCategory;
|
|
37
|
+
/**
|
|
38
|
+
* Prompt user for a configuration value
|
|
39
|
+
*/
|
|
40
|
+
private promptForKey;
|
|
41
|
+
/**
|
|
42
|
+
* Get a configuration value
|
|
43
|
+
*/
|
|
44
|
+
getValue(name: string): unknown;
|
|
45
|
+
/**
|
|
46
|
+
* Set a configuration value
|
|
47
|
+
*/
|
|
48
|
+
setValue(name: string, value: unknown): void;
|
|
49
|
+
/**
|
|
50
|
+
* Save configuration to file
|
|
51
|
+
*/
|
|
52
|
+
saveConfig(): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Format a value for display
|
|
55
|
+
*/
|
|
56
|
+
formatValue(value: unknown, key: ConfigKey): string;
|
|
57
|
+
/**
|
|
58
|
+
* Show configuration help
|
|
59
|
+
*/
|
|
60
|
+
showConfigHelp(): string;
|
|
61
|
+
/**
|
|
62
|
+
* Validate configuration
|
|
63
|
+
*/
|
|
64
|
+
validateConfig(): {
|
|
65
|
+
valid: boolean;
|
|
66
|
+
errors: string[];
|
|
67
|
+
warnings: string[];
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/cli/repl/tui/panels/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAiBH;;GAEG;AACH,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,CAAC;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA6GD;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA0B;gBAEnC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAMvE;;OAEG;IACH,aAAa,IAAI,MAAM;IA4BvB;;OAEG;IACG,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BzD;;OAEG;YACW,cAAc;IAoB5B;;OAEG;YACW,YAAY;IA+D1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IA4B/B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK5C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,GAAG,MAAM;IAwBnD;;OAEG;IACH,cAAc,IAAI,MAAM;IAyBxB;;OAEG;IACH,cAAc,IAAI;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE;CA6B3E"}
|