@iflow-mcp/joungminsung-opendocuments 0.2.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.
Files changed (78) hide show
  1. package/README.md +144 -0
  2. package/dist/commands/ask.d.ts +3 -0
  3. package/dist/commands/ask.d.ts.map +1 -0
  4. package/dist/commands/ask.js +99 -0
  5. package/dist/commands/ask.js.map +1 -0
  6. package/dist/commands/auth.d.ts +3 -0
  7. package/dist/commands/auth.d.ts.map +1 -0
  8. package/dist/commands/auth.js +87 -0
  9. package/dist/commands/auth.js.map +1 -0
  10. package/dist/commands/completion.d.ts +3 -0
  11. package/dist/commands/completion.d.ts.map +1 -0
  12. package/dist/commands/completion.js +88 -0
  13. package/dist/commands/completion.js.map +1 -0
  14. package/dist/commands/config-cmd.d.ts +3 -0
  15. package/dist/commands/config-cmd.d.ts.map +1 -0
  16. package/dist/commands/config-cmd.js +61 -0
  17. package/dist/commands/config-cmd.js.map +1 -0
  18. package/dist/commands/connector.d.ts +3 -0
  19. package/dist/commands/connector.d.ts.map +1 -0
  20. package/dist/commands/connector.js +84 -0
  21. package/dist/commands/connector.js.map +1 -0
  22. package/dist/commands/doctor.d.ts +3 -0
  23. package/dist/commands/doctor.d.ts.map +1 -0
  24. package/dist/commands/doctor.js +151 -0
  25. package/dist/commands/doctor.js.map +1 -0
  26. package/dist/commands/document.d.ts +3 -0
  27. package/dist/commands/document.d.ts.map +1 -0
  28. package/dist/commands/document.js +78 -0
  29. package/dist/commands/document.js.map +1 -0
  30. package/dist/commands/export-cmd.d.ts +3 -0
  31. package/dist/commands/export-cmd.d.ts.map +1 -0
  32. package/dist/commands/export-cmd.js +44 -0
  33. package/dist/commands/export-cmd.js.map +1 -0
  34. package/dist/commands/import-cmd.d.ts +3 -0
  35. package/dist/commands/import-cmd.d.ts.map +1 -0
  36. package/dist/commands/import-cmd.js +39 -0
  37. package/dist/commands/import-cmd.js.map +1 -0
  38. package/dist/commands/index-cmd.d.ts +3 -0
  39. package/dist/commands/index-cmd.d.ts.map +1 -0
  40. package/dist/commands/index-cmd.js +76 -0
  41. package/dist/commands/index-cmd.js.map +1 -0
  42. package/dist/commands/init.d.ts +3 -0
  43. package/dist/commands/init.d.ts.map +1 -0
  44. package/dist/commands/init.js +408 -0
  45. package/dist/commands/init.js.map +1 -0
  46. package/dist/commands/plugin.d.ts +3 -0
  47. package/dist/commands/plugin.d.ts.map +1 -0
  48. package/dist/commands/plugin.js +296 -0
  49. package/dist/commands/plugin.js.map +1 -0
  50. package/dist/commands/search.d.ts +3 -0
  51. package/dist/commands/search.d.ts.map +1 -0
  52. package/dist/commands/search.js +40 -0
  53. package/dist/commands/search.js.map +1 -0
  54. package/dist/commands/start.d.ts +3 -0
  55. package/dist/commands/start.d.ts.map +1 -0
  56. package/dist/commands/start.js +120 -0
  57. package/dist/commands/start.js.map +1 -0
  58. package/dist/commands/stop.d.ts +3 -0
  59. package/dist/commands/stop.d.ts.map +1 -0
  60. package/dist/commands/stop.js +55 -0
  61. package/dist/commands/stop.js.map +1 -0
  62. package/dist/commands/upgrade.d.ts +3 -0
  63. package/dist/commands/upgrade.d.ts.map +1 -0
  64. package/dist/commands/upgrade.js +16 -0
  65. package/dist/commands/upgrade.js.map +1 -0
  66. package/dist/commands/workspace.d.ts +3 -0
  67. package/dist/commands/workspace.d.ts.map +1 -0
  68. package/dist/commands/workspace.js +85 -0
  69. package/dist/commands/workspace.js.map +1 -0
  70. package/dist/index.d.ts +3 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +43 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/utils/bootstrap.d.ts +4 -0
  75. package/dist/utils/bootstrap.d.ts.map +1 -0
  76. package/dist/utils/bootstrap.js +17 -0
  77. package/dist/utils/bootstrap.js.map +1 -0
  78. package/package.json +53 -0
@@ -0,0 +1,408 @@
1
+ import { Command } from 'commander';
2
+ import { log } from 'opendocuments-core';
3
+ import chalk from 'chalk';
4
+ import { writeFileSync, existsSync, mkdirSync } from 'node:fs';
5
+ import { join, resolve } from 'node:path';
6
+ import { cpus, totalmem, platform, arch } from 'node:os';
7
+ async function checkOllamaRunning() {
8
+ try {
9
+ const res = await fetch('http://localhost:11434/api/tags', { signal: AbortSignal.timeout(3000) });
10
+ return res.ok;
11
+ }
12
+ catch {
13
+ return false;
14
+ }
15
+ }
16
+ async function getOllamaModels() {
17
+ try {
18
+ const res = await fetch('http://localhost:11434/api/tags', { signal: AbortSignal.timeout(3000) });
19
+ if (!res.ok)
20
+ return [];
21
+ const data = await res.json();
22
+ return (data.models || []).map(m => m.name);
23
+ }
24
+ catch {
25
+ return [];
26
+ }
27
+ }
28
+ async function pullOllamaModel(model) {
29
+ const { execSync } = await import('node:child_process');
30
+ try {
31
+ console.log(` Pulling ${model}... (this may take a few minutes)`);
32
+ execSync(`ollama pull ${model}`, { stdio: 'inherit', timeout: 600000 });
33
+ return true;
34
+ }
35
+ catch {
36
+ return false;
37
+ }
38
+ }
39
+ async function validateCloudApiKey(provider, apiKey) {
40
+ if (!apiKey)
41
+ return true;
42
+ const endpoints = {
43
+ openai: {
44
+ url: 'https://api.openai.com/v1/models',
45
+ headers: { 'Authorization': `Bearer ${apiKey}` },
46
+ },
47
+ anthropic: {
48
+ url: 'https://api.anthropic.com/v1/messages',
49
+ headers: { 'x-api-key': apiKey, 'anthropic-version': '2023-06-01' },
50
+ },
51
+ google: {
52
+ url: `https://generativelanguage.googleapis.com/v1beta/models?key=${apiKey}`,
53
+ headers: {},
54
+ },
55
+ };
56
+ const endpoint = endpoints[provider];
57
+ if (!endpoint)
58
+ return true;
59
+ try {
60
+ const res = await fetch(endpoint.url, {
61
+ headers: endpoint.headers,
62
+ signal: AbortSignal.timeout(10000),
63
+ });
64
+ return res.status !== 401 && res.status !== 403;
65
+ }
66
+ catch {
67
+ return true;
68
+ }
69
+ }
70
+ export function initCommand() {
71
+ return new Command('init')
72
+ .description('Initialize OpenDocuments project')
73
+ .argument('[directory]', 'Project directory', '.')
74
+ .action(async (dir) => {
75
+ // Dynamic import to avoid loading inquirer when not needed
76
+ const { input, select, confirm } = await import('@inquirer/prompts');
77
+ log.heading('OpenDocuments Setup');
78
+ log.blank();
79
+ // 1. System detection
80
+ const specs = detectSystem();
81
+ log.info('System specs detected:');
82
+ log.dim(` CPU ${specs.cpuModel} (${specs.cpuCores} cores)`);
83
+ log.dim(` RAM ${specs.ramGB}GB`);
84
+ log.dim(` OS ${specs.os} ${specs.arch}`);
85
+ log.blank();
86
+ // 2. Project name
87
+ const projectName = await input({
88
+ message: 'Project name:',
89
+ default: 'my-docs',
90
+ });
91
+ // 3. Mode
92
+ const mode = await select({
93
+ message: 'Mode:',
94
+ choices: [
95
+ { name: 'Personal (single workspace)', value: 'personal' },
96
+ { name: 'Team (multi-workspace + auth)', value: 'team' },
97
+ ],
98
+ });
99
+ // 4. Model backend
100
+ const backend = await select({
101
+ message: 'Model backend:',
102
+ choices: [
103
+ { name: `Local (Ollama) ${chalk.dim('-- data stays on your machine')}`, value: 'ollama' },
104
+ { name: `Cloud ${chalk.dim('-- OpenAI, Anthropic, Google, Grok')}`, value: 'cloud' },
105
+ ],
106
+ });
107
+ let provider = 'ollama';
108
+ let apiKey = '';
109
+ let embeddingProvider;
110
+ let embeddingApiKey;
111
+ let llmModel = 'qwen2.5:14b';
112
+ let embeddingModel = 'bge-m3';
113
+ if (backend === 'cloud') {
114
+ // 5. Cloud provider
115
+ provider = await select({
116
+ message: 'Cloud provider:',
117
+ choices: [
118
+ { name: 'OpenAI (GPT-4o)', value: 'openai' },
119
+ { name: 'Anthropic (Claude)', value: 'anthropic' },
120
+ { name: 'Google (Gemini)', value: 'google' },
121
+ { name: 'Grok (xAI)', value: 'grok' },
122
+ ],
123
+ });
124
+ // 6. API key
125
+ const envVarMap = {
126
+ openai: 'OPENAI_API_KEY',
127
+ anthropic: 'ANTHROPIC_API_KEY',
128
+ google: 'GOOGLE_API_KEY',
129
+ grok: 'XAI_API_KEY',
130
+ };
131
+ apiKey = await input({
132
+ message: `API Key (or set ${envVarMap[provider]} env var):`,
133
+ default: '',
134
+ });
135
+ if (apiKey) {
136
+ log.wait('Validating API key...');
137
+ const valid = await validateCloudApiKey(provider, apiKey);
138
+ if (valid) {
139
+ log.ok('API key is valid');
140
+ }
141
+ else {
142
+ log.fail('API key appears to be invalid (401/403 response)');
143
+ const proceed = await confirm({
144
+ message: 'Continue with this key anyway?',
145
+ default: false,
146
+ });
147
+ if (!proceed)
148
+ return;
149
+ }
150
+ }
151
+ // Set defaults based on provider
152
+ const providerDefaults = {
153
+ openai: { llm: 'gpt-4o', embedding: 'text-embedding-3-small' },
154
+ anthropic: { llm: 'claude-sonnet-4-20250514', embedding: 'bge-m3' }, // Anthropic has no embedding
155
+ google: { llm: 'gemini-2.5-flash', embedding: 'text-embedding-004' },
156
+ grok: { llm: 'grok-3', embedding: 'grok-2-embed' },
157
+ };
158
+ llmModel = providerDefaults[provider].llm;
159
+ embeddingModel = providerDefaults[provider].embedding;
160
+ if (provider === 'anthropic') {
161
+ log.wait('Anthropic does not provide an embedding API.');
162
+ const embeddingChoice = await select({
163
+ message: 'Embedding provider:',
164
+ choices: [
165
+ { name: `Local (Ollama + BGE-M3) ${chalk.dim('-- requires Ollama running')}`, value: 'ollama' },
166
+ { name: `OpenAI (text-embedding-3-small) ${chalk.dim('-- requires OpenAI API key')}`, value: 'openai' },
167
+ ],
168
+ });
169
+ embeddingProvider = embeddingChoice;
170
+ if (embeddingChoice === 'openai') {
171
+ embeddingModel = 'text-embedding-3-small';
172
+ embeddingApiKey = await input({
173
+ message: `OpenAI API Key for embeddings (or set OPENAI_API_KEY env var):`,
174
+ default: '',
175
+ });
176
+ }
177
+ else {
178
+ embeddingModel = 'bge-m3';
179
+ }
180
+ log.info(`Embedding will use ${embeddingChoice === 'ollama' ? 'Ollama BGE-M3' : 'OpenAI text-embedding-3-small'}`);
181
+ }
182
+ }
183
+ else {
184
+ // Local model recommendation
185
+ log.blank();
186
+ log.info('Recommended models for your system:');
187
+ if (specs.ramGB >= 32) {
188
+ log.arrow(`${chalk.cyan('*')} Qwen 2.5 14B ${chalk.dim('(recommended -- Vision, Korean support)')}`);
189
+ log.dim(' Llama 3.3 8B (lightweight)');
190
+ log.dim(' EXAONE 7.8B (Korean specialized)');
191
+ }
192
+ else if (specs.ramGB >= 16) {
193
+ log.arrow(`${chalk.cyan('*')} Qwen 2.5 7B ${chalk.dim('(recommended for 16GB RAM)')}`);
194
+ log.dim(' Gemma 3 4B (lightweight)');
195
+ }
196
+ else {
197
+ log.arrow(`${chalk.cyan('*')} Gemma 3 4B ${chalk.dim('(recommended for limited RAM)')}`);
198
+ log.info('Limited RAM detected. Consider a cloud provider for better performance.');
199
+ }
200
+ llmModel = await input({
201
+ message: 'LLM model:',
202
+ default: specs.ramGB >= 32 ? 'qwen2.5:14b' : specs.ramGB >= 16 ? 'qwen2.5:7b' : 'gemma3:4b',
203
+ });
204
+ embeddingModel = await input({
205
+ message: 'Embedding model:',
206
+ default: 'bge-m3',
207
+ });
208
+ }
209
+ // 7. RAG profile
210
+ const profile = await select({
211
+ message: 'RAG search profile:',
212
+ choices: [
213
+ { name: `fast ${chalk.dim('-- 10 docs, no reranking, ~1s response')}`, value: 'fast' },
214
+ { name: `balanced ${chalk.dim('-- 20 docs, light reranking, ~3s response')}`, value: 'balanced' },
215
+ { name: `precise ${chalk.dim('-- 50 docs, full reranking + web search, ~5s+')}`, value: 'precise' },
216
+ ],
217
+ default: 'balanced',
218
+ });
219
+ // 8. Plugin presets
220
+ const preset = await select({
221
+ message: 'Plugin preset:',
222
+ choices: [
223
+ { name: `Developer ${chalk.dim('-- GitHub, Swagger, code parser, Markdown')}`, value: 'developer' },
224
+ { name: `Enterprise ${chalk.dim('-- Google Drive, Notion, Confluence, PDF, DOCX')}`, value: 'enterprise' },
225
+ { name: `All ${chalk.dim('-- all connectors + all parsers')}`, value: 'all' },
226
+ { name: 'Custom -- pick individually', value: 'custom' },
227
+ ],
228
+ });
229
+ // 9. Generate config
230
+ const projectDir = resolve(dir);
231
+ if (!existsSync(projectDir)) {
232
+ mkdirSync(projectDir, { recursive: true });
233
+ }
234
+ const configContent = generateConfigFile({
235
+ projectName,
236
+ mode: mode,
237
+ provider,
238
+ apiKey,
239
+ embeddingProvider,
240
+ embeddingApiKey,
241
+ llmModel,
242
+ embeddingModel,
243
+ profile,
244
+ preset,
245
+ });
246
+ const configPath = join(projectDir, 'opendocuments.config.ts');
247
+ if (existsSync(configPath)) {
248
+ const overwrite = await confirm({
249
+ message: 'Config file already exists. Overwrite?',
250
+ default: false,
251
+ });
252
+ if (!overwrite) {
253
+ log.info('Aborted. Existing config preserved.');
254
+ return;
255
+ }
256
+ }
257
+ writeFileSync(configPath, configContent);
258
+ // Write .env file with the actual key (never written to config)
259
+ const envVarName = getEnvVarName(provider);
260
+ const envLines = [];
261
+ if (apiKey)
262
+ envLines.push(`${envVarName}=${apiKey}`);
263
+ if (embeddingApiKey)
264
+ envLines.push(`OPENAI_API_KEY=${embeddingApiKey}`);
265
+ if (envLines.length > 0) {
266
+ writeFileSync(join(projectDir, '.env'), envLines.join('\n') + '\n');
267
+ log.ok(`API key(s) saved to ${chalk.cyan('.env')} (add to .gitignore!)`);
268
+ }
269
+ // Write .gitignore if one doesn't exist
270
+ const gitignorePath = join(projectDir, '.gitignore');
271
+ if (!existsSync(gitignorePath)) {
272
+ writeFileSync(gitignorePath, [
273
+ 'node_modules/',
274
+ '.env',
275
+ '.env.local',
276
+ '*.db',
277
+ '*.sqlite',
278
+ '.opendocuments/',
279
+ '',
280
+ ].join('\n'));
281
+ log.ok(`.gitignore created`);
282
+ }
283
+ // 9. Summary
284
+ log.blank();
285
+ log.heading('Setup Complete');
286
+ log.ok(`Config written to ${chalk.cyan(configPath)}`);
287
+ log.blank();
288
+ log.info('Configuration:');
289
+ log.dim(` Mode ${mode}`);
290
+ log.dim(` Provider ${provider}`);
291
+ log.dim(` LLM ${llmModel}`);
292
+ log.dim(` Embedding ${embeddingModel}`);
293
+ log.dim(` Profile ${profile}`);
294
+ log.dim(` Preset ${preset}`);
295
+ log.blank();
296
+ log.heading('Next Steps');
297
+ if (backend === 'ollama') {
298
+ log.blank();
299
+ log.wait('Checking Ollama availability...');
300
+ const ollamaRunning = await checkOllamaRunning();
301
+ if (ollamaRunning) {
302
+ log.ok('Ollama is running');
303
+ const models = await getOllamaModels();
304
+ const needsPull = [];
305
+ for (const model of [llmModel, embeddingModel]) {
306
+ if (models.some(m => m.startsWith(model.split(':')[0]))) {
307
+ log.ok(`Model ${model} is available`);
308
+ }
309
+ else {
310
+ needsPull.push(model);
311
+ }
312
+ }
313
+ if (needsPull.length > 0) {
314
+ const autoPull = await confirm({
315
+ message: `Pull missing models (${needsPull.join(', ')})?`,
316
+ default: true,
317
+ });
318
+ if (autoPull) {
319
+ for (const model of needsPull) {
320
+ const success = await pullOllamaModel(model);
321
+ if (success) {
322
+ log.ok(`${model} pulled successfully`);
323
+ }
324
+ else {
325
+ log.fail(`Failed to pull ${model}. Run manually: ollama pull ${model}`);
326
+ }
327
+ }
328
+ }
329
+ else {
330
+ log.arrow(`Pull models later: ollama pull ${needsPull.join(' && ollama pull ')}`);
331
+ }
332
+ }
333
+ }
334
+ else {
335
+ log.fail('Ollama is not running or not installed');
336
+ log.arrow('Install Ollama: https://ollama.com');
337
+ log.arrow('Then start it: ollama serve');
338
+ log.arrow(`Then pull models: ollama pull ${llmModel} && ollama pull ${embeddingModel}`);
339
+ }
340
+ }
341
+ if (backend === 'cloud' && !apiKey) {
342
+ const envVarName = getEnvVarName(provider);
343
+ log.arrow(`Set API key: export ${envVarName}=your-key-here`);
344
+ }
345
+ log.arrow(`${dir === '.' ? '' : `cd ${dir} && `}opendocuments start`);
346
+ log.arrow('opendocuments index ./docs');
347
+ log.arrow('opendocuments ask "your question"');
348
+ });
349
+ }
350
+ function detectSystem() {
351
+ const cpuInfo = cpus();
352
+ return {
353
+ cpuModel: cpuInfo[0]?.model || 'Unknown',
354
+ cpuCores: cpuInfo.length,
355
+ ramGB: Math.round(totalmem() / (1024 * 1024 * 1024)),
356
+ os: platform(),
357
+ arch: arch(),
358
+ };
359
+ }
360
+ const PRESET_PLUGINS = {
361
+ developer: ['@opendocuments/parser-code', '@opendocuments/connector-github'],
362
+ enterprise: ['@opendocuments/parser-pdf', '@opendocuments/parser-docx', '@opendocuments/parser-xlsx', '@opendocuments/connector-gdrive', '@opendocuments/connector-notion', '@opendocuments/connector-confluence'],
363
+ all: ['@opendocuments/parser-pdf', '@opendocuments/parser-docx', '@opendocuments/parser-xlsx', '@opendocuments/parser-html', '@opendocuments/parser-jupyter', '@opendocuments/parser-email', '@opendocuments/parser-code', '@opendocuments/connector-github', '@opendocuments/connector-notion', '@opendocuments/connector-gdrive', '@opendocuments/connector-s3', '@opendocuments/connector-confluence', '@opendocuments/connector-web-crawler'],
364
+ };
365
+ function generateConfigFile(opts) {
366
+ const lines = [
367
+ `import { defineConfig } from 'opendocuments-core'`,
368
+ ``,
369
+ `export default defineConfig({`,
370
+ ` workspace: '${opts.projectName}',`,
371
+ ` mode: '${opts.mode}',`,
372
+ ``,
373
+ ` model: {`,
374
+ ` provider: '${opts.provider}',`,
375
+ ` llm: '${opts.llmModel}',`,
376
+ ` embedding: '${opts.embeddingModel}',`,
377
+ ];
378
+ if (opts.embeddingProvider) {
379
+ lines.push(` embeddingProvider: '${opts.embeddingProvider}',`);
380
+ }
381
+ if (opts.apiKey) {
382
+ lines.push(` apiKey: process.env.${getEnvVarName(opts.provider)},`);
383
+ }
384
+ if (opts.embeddingApiKey || opts.embeddingProvider === 'openai') {
385
+ lines.push(` embeddingApiKey: process.env.OPENAI_API_KEY,`);
386
+ }
387
+ lines.push(` },`, ``, ` rag: {`, ` profile: '${opts.profile}',`, ` },`, ``, ` storage: {`, ` db: 'sqlite',`, ` vectorDb: 'lancedb',`, ` dataDir: '~/.opendocuments',`, ` },`);
388
+ const presetPlugins = PRESET_PLUGINS[opts.preset] || [];
389
+ if (presetPlugins.length > 0) {
390
+ lines.push(``, ` plugins: [`, ...presetPlugins.map(p => ` '${p}',`), ` ],`);
391
+ }
392
+ else {
393
+ lines.push(``, ` plugins: [],`);
394
+ }
395
+ lines.push(`})`, ``);
396
+ return lines.join('\n');
397
+ }
398
+ function getEnvVarName(provider) {
399
+ const map = {
400
+ openai: 'OPENAI_API_KEY',
401
+ anthropic: 'ANTHROPIC_API_KEY',
402
+ google: 'GOOGLE_API_KEY',
403
+ grok: 'XAI_API_KEY',
404
+ ollama: 'OLLAMA_URL',
405
+ };
406
+ return map[provider] || 'API_KEY';
407
+ }
408
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AACxC,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAC9D,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAExD,KAAK,UAAU,kBAAkB;IAC/B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,iCAAiC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjG,OAAO,GAAG,CAAC,EAAE,CAAA;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,iCAAiC,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACjG,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAA;QACtB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAA0C,CAAA;QACrE,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,KAAa;IAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,oBAAoB,CAAC,CAAA;IACvD,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,mCAAmC,CAAC,CAAA;QAClE,QAAQ,CAAC,eAAe,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QACvE,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,QAAgB,EAAE,MAAc;IACjE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAA;IACxB,MAAM,SAAS,GAAqE;QAClF,MAAM,EAAE;YACN,GAAG,EAAE,kCAAkC;YACvC,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,MAAM,EAAE,EAAE;SACjD;QACD,SAAS,EAAE;YACT,GAAG,EAAE,uCAAuC;YAC5C,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,YAAY,EAAE;SACpE;QACD,MAAM,EAAE;YACN,GAAG,EAAE,+DAA+D,MAAM,EAAE;YAC5E,OAAO,EAAE,EAAE;SACZ;KACF,CAAA;IACD,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAA;IACpC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;YACpC,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;SACnC,CAAC,CAAA;QACF,OAAO,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAA;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,aAAa,EAAE,mBAAmB,EAAE,GAAG,CAAC;SACjD,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACpB,2DAA2D;QAC3D,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAA;QAEpE,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAA;QAClC,GAAG,CAAC,KAAK,EAAE,CAAA;QAEX,sBAAsB;QACtB,MAAM,KAAK,GAAG,YAAY,EAAE,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QAClC,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,SAAS,CAAC,CAAA;QAC9D,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,KAAK,IAAI,CAAC,CAAA;QACnC,GAAG,CAAC,GAAG,CAAC,WAAW,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5C,GAAG,CAAC,KAAK,EAAE,CAAA;QAEX,kBAAkB;QAClB,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;YAC9B,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,SAAS;SACnB,CAAC,CAAA;QAEF,UAAU;QACV,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC;YACxB,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,UAAU,EAAE;gBAC1D,EAAE,IAAI,EAAE,+BAA+B,EAAE,KAAK,EAAE,MAAM,EAAE;aACzD;SACF,CAAC,CAAA;QAEF,mBAAmB;QACnB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;YAC3B,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,kBAAkB,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACzF,EAAE,IAAI,EAAE,SAAS,KAAK,CAAC,GAAG,CAAC,oCAAoC,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE;aACrF;SACF,CAAC,CAAA;QAEF,IAAI,QAAQ,GAAG,QAAQ,CAAA;QACvB,IAAI,MAAM,GAAG,EAAE,CAAA;QACf,IAAI,iBAAqC,CAAA;QACzC,IAAI,eAAmC,CAAA;QACvC,IAAI,QAAQ,GAAG,aAAa,CAAA;QAC5B,IAAI,cAAc,GAAG,QAAQ,CAAA;QAE7B,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,oBAAoB;YACpB,QAAQ,GAAG,MAAM,MAAM,CAAC;gBACtB,OAAO,EAAE,iBAAiB;gBAC1B,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC5C,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,EAAE;oBAClD,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC5C,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE;iBACtC;aACF,CAAC,CAAA;YAEF,aAAa;YACb,MAAM,SAAS,GAA2B;gBACxC,MAAM,EAAE,gBAAgB;gBACxB,SAAS,EAAE,mBAAmB;gBAC9B,MAAM,EAAE,gBAAgB;gBACxB,IAAI,EAAE,aAAa;aACpB,CAAA;YAED,MAAM,GAAG,MAAM,KAAK,CAAC;gBACnB,OAAO,EAAE,mBAAmB,SAAS,CAAC,QAAQ,CAAC,YAAY;gBAC3D,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;YAEF,IAAI,MAAM,EAAE,CAAC;gBACX,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAA;gBACjC,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBACzD,IAAI,KAAK,EAAE,CAAC;oBACV,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAA;gBAC5B,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;oBAC5D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC;wBAC5B,OAAO,EAAE,gCAAgC;wBACzC,OAAO,EAAE,KAAK;qBACf,CAAC,CAAA;oBACF,IAAI,CAAC,OAAO;wBAAE,OAAM;gBACtB,CAAC;YACH,CAAC;YAED,iCAAiC;YACjC,MAAM,gBAAgB,GAAuD;gBAC3E,MAAM,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,wBAAwB,EAAE;gBAC9D,SAAS,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,6BAA6B;gBAClG,MAAM,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,SAAS,EAAE,oBAAoB,EAAE;gBACpE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE;aACnD,CAAA;YACD,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAA;YACzC,cAAc,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAA;YAErD,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;gBAC7B,GAAG,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAA;gBACxD,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC;oBACnC,OAAO,EAAE,qBAAqB;oBAC9B,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,2BAA2B,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;wBAC/F,EAAE,IAAI,EAAE,mCAAmC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;qBACxG;iBACF,CAAC,CAAA;gBACF,iBAAiB,GAAG,eAAe,CAAA;gBACnC,IAAI,eAAe,KAAK,QAAQ,EAAE,CAAC;oBACjC,cAAc,GAAG,wBAAwB,CAAA;oBACzC,eAAe,GAAG,MAAM,KAAK,CAAC;wBAC5B,OAAO,EAAE,gEAAgE;wBACzE,OAAO,EAAE,EAAE;qBACZ,CAAC,CAAA;gBACJ,CAAC;qBAAM,CAAC;oBACN,cAAc,GAAG,QAAQ,CAAA;gBAC3B,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,sBAAsB,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,+BAA+B,EAAE,CAAC,CAAA;YACpH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,6BAA6B;YAC7B,GAAG,CAAC,KAAK,EAAE,CAAA;YACX,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;YAE/C,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBACtB,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,GAAG,CAAC,yCAAyC,CAAC,EAAE,CAAC,CAAA;gBACpG,GAAG,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAA;gBACzC,GAAG,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAA;YACjD,CAAC;iBAAM,IAAI,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;gBAC7B,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAA;gBACtF,GAAG,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;YACzC,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,CAAC,GAAG,CAAC,+BAA+B,CAAC,EAAE,CAAC,CAAA;gBACxF,GAAG,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAA;YACrF,CAAC;YAED,QAAQ,GAAG,MAAM,KAAK,CAAC;gBACrB,OAAO,EAAE,YAAY;gBACrB,OAAO,EAAE,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW;aAC5F,CAAC,CAAA;YAEF,cAAc,GAAG,MAAM,KAAK,CAAC;gBAC3B,OAAO,EAAE,kBAAkB;gBAC3B,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAA;QACJ,CAAC;QAED,iBAAiB;QACjB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC;YAC3B,OAAO,EAAE,qBAAqB;YAC9B,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,QAAQ,KAAK,CAAC,GAAG,CAAC,wCAAwC,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;gBACtF,EAAE,IAAI,EAAE,YAAY,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;gBACjG,EAAE,IAAI,EAAE,WAAW,KAAK,CAAC,GAAG,CAAC,+CAA+C,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;aACpG;YACD,OAAO,EAAE,UAAU;SACpB,CAAC,CAAA;QAEF,oBAAoB;QACpB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC;YAC1B,OAAO,EAAE,gBAAgB;YACzB,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,aAAa,KAAK,CAAC,GAAG,CAAC,2CAA2C,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE;gBACnG,EAAE,IAAI,EAAE,cAAc,KAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE;gBAC1G,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7E,EAAE,IAAI,EAAE,6BAA6B,EAAE,KAAK,EAAE,QAAQ,EAAE;aACzD;SACF,CAAC,CAAA;QAEF,qBAAqB;QACrB,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC5B,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAC5C,CAAC;QAED,MAAM,aAAa,GAAG,kBAAkB,CAAC;YACvC,WAAW;YACX,IAAI,EAAE,IAA2B;YACjC,QAAQ;YACR,MAAM;YACN,iBAAiB;YACjB,eAAe;YACf,QAAQ;YACR,cAAc;YACd,OAAO;YACP,MAAM;SACP,CAAC,CAAA;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,yBAAyB,CAAC,CAAA;QAC9D,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC;gBAC9B,OAAO,EAAE,wCAAwC;gBACjD,OAAO,EAAE,KAAK;aACf,CAAC,CAAA;YACF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAA;gBAC/C,OAAM;YACR,CAAC;QACH,CAAC;QACD,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QAExC,gEAAgE;QAChE,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC1C,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,IAAI,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,IAAI,MAAM,EAAE,CAAC,CAAA;QACpD,IAAI,eAAe;YAAE,QAAQ,CAAC,IAAI,CAAC,kBAAkB,eAAe,EAAE,CAAC,CAAA;QACvE,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;YACnE,GAAG,CAAC,EAAE,CAAC,uBAAuB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAA;QAC1E,CAAC;QAED,wCAAwC;QACxC,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;QACpD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,aAAa,CAAC,aAAa,EAAE;gBAC3B,eAAe;gBACf,MAAM;gBACN,YAAY;gBACZ,MAAM;gBACN,UAAU;gBACV,iBAAiB;gBACjB,EAAE;aACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;YACb,GAAG,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAA;QAC9B,CAAC;QAED,aAAa;QACb,GAAG,CAAC,KAAK,EAAE,CAAA;QACX,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAC7B,GAAG,CAAC,EAAE,CAAC,qBAAqB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;QACrD,GAAG,CAAC,KAAK,EAAE,CAAA;QACX,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC1B,GAAG,CAAC,GAAG,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAA;QAC/B,GAAG,CAAC,GAAG,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAA;QACnC,GAAG,CAAC,GAAG,CAAC,gBAAgB,QAAQ,EAAE,CAAC,CAAA;QACnC,GAAG,CAAC,GAAG,CAAC,gBAAgB,cAAc,EAAE,CAAC,CAAA;QACzC,GAAG,CAAC,GAAG,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAA;QAClC,GAAG,CAAC,GAAG,CAAC,gBAAgB,MAAM,EAAE,CAAC,CAAA;QACjC,GAAG,CAAC,KAAK,EAAE,CAAA;QACX,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACzB,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACzB,GAAG,CAAC,KAAK,EAAE,CAAA;YACX,GAAG,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAA;YAC3C,MAAM,aAAa,GAAG,MAAM,kBAAkB,EAAE,CAAA;YAChD,IAAI,aAAa,EAAE,CAAC;gBAClB,GAAG,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAA;gBAC3B,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAA;gBACtC,MAAM,SAAS,GAAa,EAAE,CAAA;gBAC9B,KAAK,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC;oBAC/C,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wBACxD,GAAG,CAAC,EAAE,CAAC,SAAS,KAAK,eAAe,CAAC,CAAA;oBACvC,CAAC;yBAAM,CAAC;wBACN,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACvB,CAAC;gBACH,CAAC;gBACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC;wBAC7B,OAAO,EAAE,wBAAwB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;wBACzD,OAAO,EAAE,IAAI;qBACd,CAAC,CAAA;oBACF,IAAI,QAAQ,EAAE,CAAC;wBACb,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;4BAC9B,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,CAAC,CAAA;4BAC5C,IAAI,OAAO,EAAE,CAAC;gCACZ,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,sBAAsB,CAAC,CAAA;4BACxC,CAAC;iCAAM,CAAC;gCACN,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,+BAA+B,KAAK,EAAE,CAAC,CAAA;4BACzE,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,KAAK,CAAC,kCAAkC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;oBACnF,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAA;gBAClD,GAAG,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;gBAC/C,GAAG,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAA;gBACzC,GAAG,CAAC,KAAK,CAAC,iCAAiC,QAAQ,mBAAmB,cAAc,EAAE,CAAC,CAAA;YACzF,CAAC;QACH,CAAC;QACD,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAA;YAC1C,GAAG,CAAC,KAAK,CAAC,uBAAuB,UAAU,gBAAgB,CAAC,CAAA;QAC9D,CAAC;QACD,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,qBAAqB,CAAC,CAAA;QACrE,GAAG,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;QACvC,GAAG,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;AACN,CAAC;AAUD,SAAS,YAAY;IACnB,MAAM,OAAO,GAAG,IAAI,EAAE,CAAA;IACtB,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS;QACxC,QAAQ,EAAE,OAAO,CAAC,MAAM;QACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;QACpD,EAAE,EAAE,QAAQ,EAAE;QACd,IAAI,EAAE,IAAI,EAAE;KACb,CAAA;AACH,CAAC;AAED,MAAM,cAAc,GAA6B;IAC/C,SAAS,EAAE,CAAC,4BAA4B,EAAE,iCAAiC,CAAC;IAC5E,UAAU,EAAE,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,qCAAqC,CAAC;IAClN,GAAG,EAAE,CAAC,2BAA2B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,4BAA4B,EAAE,+BAA+B,EAAE,6BAA6B,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,iCAAiC,EAAE,6BAA6B,EAAE,qCAAqC,EAAE,sCAAsC,CAAC;CAClb,CAAA;AAeD,SAAS,kBAAkB,CAAC,IAAmB;IAC7C,MAAM,KAAK,GAAG;QACZ,mDAAmD;QACnD,EAAE;QACF,+BAA+B;QAC/B,iBAAiB,IAAI,CAAC,WAAW,IAAI;QACrC,YAAY,IAAI,CAAC,IAAI,IAAI;QACzB,EAAE;QACF,YAAY;QACZ,kBAAkB,IAAI,CAAC,QAAQ,IAAI;QACnC,aAAa,IAAI,CAAC,QAAQ,IAAI;QAC9B,mBAAmB,IAAI,CAAC,cAAc,IAAI;KAC3C,CAAA;IAED,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,2BAA2B,IAAI,CAAC,iBAAiB,IAAI,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,2BAA2B,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;IACxE,CAAC;IAED,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,iBAAiB,KAAK,QAAQ,EAAE,CAAC;QAChE,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAA;IAChE,CAAC;IAED,KAAK,CAAC,IAAI,CACR,MAAM,EACN,EAAE,EACF,UAAU,EACV,iBAAiB,IAAI,CAAC,OAAO,IAAI,EACjC,MAAM,EACN,EAAE,EACF,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,kCAAkC,EAClC,MAAM,CACP,CAAA;IAED,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACvD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,EAAE,EACF,cAAc,EACd,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EACxC,MAAM,CACP,CAAA;IACH,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CACR,EAAE,EACF,gBAAgB,CACjB,CAAA;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;IAEpB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,aAAa,CAAC,QAAgB;IACrC,MAAM,GAAG,GAA2B;QAClC,MAAM,EAAE,gBAAgB;QACxB,SAAS,EAAE,mBAAmB;QAC9B,MAAM,EAAE,gBAAgB;QACxB,IAAI,EAAE,aAAa;QACnB,MAAM,EAAE,YAAY;KACrB,CAAA;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAA;AACnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function pluginCommand(): Command;
3
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/commands/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAOnC,wBAAgB,aAAa,YA+Q5B"}