ai-code-connect 1.0.1 → 1.1.0

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 CHANGED
@@ -209,13 +209,15 @@ Configuration is stored in `~/.aic/config.json`.
209
209
  ```
210
210
  src/
211
211
  ├── adapters/
212
- │ ├── base.ts # ToolAdapter interface
213
- │ ├── claude.ts # Claude Code adapter
214
- │ ├── gemini.ts # Gemini CLI adapter
212
+ │ ├── base.ts # ToolAdapter interface
213
+ │ ├── claude.ts # Claude Code adapter
214
+ │ ├── gemini.ts # Gemini CLI adapter
215
215
  │ └── template.ts.example # Template for new adapters
216
- ├── sdk-session.ts # Interactive session logic
217
- ├── index.ts # CLI entry point
218
- └── utils.ts # Utilities
216
+ ├── sdk-session.ts # Interactive session logic
217
+ ├── index.ts # CLI entry point
218
+ ├── config.ts # Configuration management
219
+ ├── utils.ts # Utilities
220
+ └── version.ts # Version from package.json
219
221
  ```
220
222
 
221
223
  ## Adding New Tools
@@ -239,6 +241,9 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed instructions.
239
241
  - ✅ **Command menu** - Type `/` for autocomplete suggestions
240
242
  - ✅ **Forward responses** - One command to send between tools
241
243
  - ✅ **Modular adapters** - Easy to add new AI tools
244
+ - ✅ **Cross-platform** - Works on macOS, Linux, and Windows
245
+ - ✅ **Request locking** - Prevents concurrent request issues
246
+ - ✅ **Memory safe** - Conversation history limits prevent memory leaks
242
247
 
243
248
  ## Development
244
249
 
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { Command } from 'commander';
3
3
  import { AdapterRegistry, ClaudeAdapter, GeminiAdapter } from './adapters/index.js';
4
4
  import { loadConfig, getDefaultTool, setDefaultTool, getConfigPath } from './config.js';
5
5
  import { startSDKSession } from './sdk-session.js';
6
+ import { VERSION } from './version.js';
6
7
  const program = new Command();
7
8
  // Initialize adapters
8
9
  const registry = new AdapterRegistry();
@@ -44,7 +45,7 @@ Examples:
44
45
  program
45
46
  .name('aic')
46
47
  .description('AIC² - AI Code Connect\nBridge Claude Code and Gemini CLI')
47
- .version('1.0.0')
48
+ .version(VERSION)
48
49
  .addHelpText('after', HELP_TEXT);
49
50
  // Tools command - list available tools
50
51
  program
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export declare class SDKSession {
14
14
  private cwd;
15
15
  private rl;
16
16
  private inputHistory;
17
+ private requestInProgress;
17
18
  constructor(cwd?: string);
18
19
  start(): Promise<void>;
19
20
  private getPrompt;
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-session.d.ts","sourceRoot":"","sources":["../src/sdk-session.ts"],"names":[],"mappings":"AA6RA;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,mBAAmB,CAAiB;IAG5C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,gBAAgB,CAAgC;IAGxD,OAAO,CAAC,uBAAuB,CAAkC;IAGjE,OAAO,CAAC,GAAG,CAAS;IAGpB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,YAAY,CAAgB;gBAExB,GAAG,CAAC,EAAE,MAAM;IAMlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0I5B,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,aAAa;YAqBP,OAAO;YAKP,UAAU;IA2CxB,OAAO,CAAC,SAAS;YAwCH,iBAAiB;IAiF/B,OAAO,CAAC,QAAQ;YA4BF,UAAU;IA8BxB,OAAO,CAAC,YAAY;IA0DpB,OAAO,CAAC,YAAY;IAyDpB;;;;;;OAMG;YACW,oBAAoB;IAmRlC;;;OAGG;YACW,+BAA+B;IAwT7C,OAAO,CAAC,UAAU;YAcJ,aAAa;IAoE3B,OAAO,CAAC,WAAW;YA8BL,OAAO;CAQtB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrD"}
1
+ {"version":3,"file":"sdk-session.d.ts","sourceRoot":"","sources":["../src/sdk-session.ts"],"names":[],"mappings":"AAwWA;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAsB;IACxC,OAAO,CAAC,mBAAmB,CAAiB;IAG5C,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,gBAAgB,CAAS;IAGjC,OAAO,CAAC,gBAAgB,CAAgC;IAGxD,OAAO,CAAC,uBAAuB,CAAkC;IAGjE,OAAO,CAAC,GAAG,CAAS;IAGpB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,YAAY,CAAgB;IAGpC,OAAO,CAAC,iBAAiB,CAAS;gBAEtB,GAAG,CAAC,EAAE,MAAM;IAMlB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0I5B,OAAO,CAAC,SAAS;IAMjB;;OAEG;IACH,OAAO,CAAC,SAAS;IAcjB,OAAO,CAAC,aAAa;YA0BP,OAAO;YAKP,UAAU;IA2CxB,OAAO,CAAC,SAAS;YAwCH,iBAAiB;IAiF/B,OAAO,CAAC,QAAQ;YA4BF,UAAU;IAoDxB,OAAO,CAAC,YAAY;IA2FpB,OAAO,CAAC,YAAY;IAoGpB;;;;;;OAMG;YACW,oBAAoB;IAiRlC;;;OAGG;YACW,+BAA+B;IA2S7C,OAAO,CAAC,UAAU;YAuCJ,aAAa;IAoE3B,OAAO,CAAC,WAAW;YA8BL,OAAO;CAQtB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAGrD"}
@@ -1,10 +1,11 @@
1
- import { spawn, execSync } from 'child_process';
1
+ import { execSync } from 'child_process';
2
2
  import { createInterface } from 'readline';
3
3
  import * as pty from 'node-pty';
4
4
  import { marked } from 'marked';
5
5
  import TerminalRenderer from 'marked-terminal';
6
6
  import { stripAnsi } from './utils.js';
7
7
  import { getDefaultTool, setDefaultTool } from './config.js';
8
+ import { VERSION } from './version.js';
8
9
  /**
9
10
  * Get the version of a CLI tool
10
11
  */
@@ -31,6 +32,9 @@ marked.setOptions({
31
32
  em: (text) => `\x1b[3m${text}\x1b[0m`, // Italic
32
33
  })
33
34
  });
35
+ // Constants
36
+ const MAX_HISTORY_SIZE = 1000;
37
+ const REQUEST_TIMEOUT_MS = 120000;
34
38
  // Detach key codes - multiple options for compatibility across terminals
35
39
  // Traditional raw control characters (used by Terminal.app and others)
36
40
  const DETACH_KEYS = {
@@ -159,7 +163,6 @@ ${colors.brightCyan} ██╔══██║ ${colors.brightMagenta}██
159
163
  ${colors.brightCyan} ██║ ██║ ${colors.brightMagenta}██║${colors.brightYellow}╚██████╗${colors.reset}
160
164
  ${colors.brightCyan} ╚═╝ ╚═╝ ${colors.brightMagenta}╚═╝${colors.brightYellow} ╚═════╝${colors.reset}
161
165
  `;
162
- const VERSION = 'v1.0.0';
163
166
  const AVAILABLE_TOOLS = [
164
167
  { name: 'claude', displayName: 'Claude Code', color: colors.brightCyan },
165
168
  { name: 'gemini', displayName: 'Gemini CLI', color: colors.brightMagenta },
@@ -209,28 +212,93 @@ class Spinner {
209
212
  intervalId = null;
210
213
  frameIndex = 0;
211
214
  message;
215
+ startTime = 0;
216
+ warningShown = false;
217
+ WARNING_THRESHOLD_MS = 60000; // 60 seconds
218
+ WARNING_REPEAT_MS = 30000; // Repeat every 30s after first warning
219
+ lastWarningTime = 0;
220
+ statusLine = '';
221
+ hasStatusLine = false;
212
222
  constructor(message = 'Thinking') {
213
223
  this.message = message;
214
224
  }
215
225
  start() {
216
226
  this.frameIndex = 0;
227
+ this.startTime = Date.now();
228
+ this.warningShown = false;
229
+ this.lastWarningTime = 0;
230
+ this.statusLine = '';
231
+ this.hasStatusLine = false;
217
232
  // Clear any garbage on the current line before starting spinner
218
233
  process.stdout.write('\x1b[2K\r');
219
- process.stdout.write(`\n${SPINNER_FRAMES[0]} ${this.message}...`);
234
+ process.stdout.write(`\n${SPINNER_FRAMES[0]} ${this.message} ...`);
220
235
  this.intervalId = setInterval(() => {
221
236
  this.frameIndex = (this.frameIndex + 1) % SPINNER_FRAMES.length;
222
- // Move cursor back and overwrite
223
- process.stdout.write(`\r${SPINNER_FRAMES[this.frameIndex]} ${this.message}...`);
224
- }, 80);
237
+ const elapsed = Date.now() - this.startTime;
238
+ const elapsedSec = Math.floor(elapsed / 1000);
239
+ // Build the spinner line with elapsed time
240
+ const elapsedDisplay = elapsedSec > 0 ? ` (${elapsedSec}s)` : '';
241
+ // Move cursor back and overwrite spinner line
242
+ process.stdout.write(`\r${SPINNER_FRAMES[this.frameIndex]} ${this.message} ...${elapsedDisplay} `);
243
+ // If we have a status line, show it below
244
+ if (this.statusLine) {
245
+ // Move to next line, clear it, write status, move back up
246
+ const termWidth = process.stdout.columns || 80;
247
+ const truncatedStatus = this.statusLine.length > termWidth - 5
248
+ ? this.statusLine.slice(0, termWidth - 8) + '...'
249
+ : this.statusLine;
250
+ process.stdout.write(`\n${colors.dim} └─ ${truncatedStatus}${colors.reset}\x1b[K`);
251
+ process.stdout.write('\x1b[1A'); // Move cursor back up
252
+ this.hasStatusLine = true;
253
+ }
254
+ // Check if we should show a timeout warning
255
+ if (elapsed >= this.WARNING_THRESHOLD_MS) {
256
+ const timeSinceLastWarning = elapsed - this.lastWarningTime;
257
+ if (!this.warningShown || timeSinceLastWarning >= this.WARNING_REPEAT_MS) {
258
+ this.showTimeoutWarning(elapsedSec);
259
+ this.warningShown = true;
260
+ this.lastWarningTime = elapsed;
261
+ }
262
+ }
263
+ }, 100); // Slightly slower to reduce flicker
264
+ }
265
+ /**
266
+ * Update the status line shown below the spinner
267
+ */
268
+ setStatus(status) {
269
+ // Clean the status - remove ANSI codes and take last meaningful line
270
+ const cleaned = stripAnsi(status).trim();
271
+ if (cleaned.length > 0) {
272
+ // Get last non-empty line
273
+ const lines = cleaned.split('\n').filter(l => l.trim().length > 0);
274
+ if (lines.length > 0) {
275
+ this.statusLine = lines[lines.length - 1].trim();
276
+ }
277
+ }
278
+ }
279
+ showTimeoutWarning(elapsedSec) {
280
+ // Move down if we have status line, then print warning
281
+ if (this.hasStatusLine) {
282
+ process.stdout.write('\n');
283
+ }
284
+ process.stdout.write('\n');
285
+ process.stdout.write(`${colors.yellow}⚠ Still working... (${elapsedSec}s)${colors.reset} - Press ${colors.bold}Ctrl+C${colors.reset} to cancel this request only\n`);
225
286
  }
226
287
  stop() {
227
288
  if (this.intervalId) {
228
289
  clearInterval(this.intervalId);
229
290
  this.intervalId = null;
230
- // Clear the spinner line
231
- process.stdout.write('\r' + ' '.repeat(this.message.length + 15) + '\r');
291
+ // Clear the spinner line and status line if present
292
+ process.stdout.write('\r\x1b[K'); // Clear current line
293
+ if (this.hasStatusLine) {
294
+ process.stdout.write('\n\x1b[K\x1b[1A'); // Clear status line below
295
+ }
296
+ process.stdout.write('\r');
232
297
  }
233
298
  }
299
+ getElapsedMs() {
300
+ return Date.now() - this.startTime;
301
+ }
234
302
  }
235
303
  /**
236
304
  * Session with persistent interactive mode support
@@ -253,6 +321,8 @@ export class SDKSession {
253
321
  // Readline interface for input with history
254
322
  rl = null;
255
323
  inputHistory = [];
324
+ // Request state management
325
+ requestInProgress = false;
256
326
  constructor(cwd) {
257
327
  this.cwd = cwd || process.cwd();
258
328
  // Load default tool from config (or env var)
@@ -308,7 +378,7 @@ export class SDKSession {
308
378
  // Banner with title and connected tools on the right side
309
379
  const bannerLines = AIC_BANNER.trim().split('\n');
310
380
  const titleLines = [
311
- `${colors.brightCyan}A${colors.brightMagenta}I${colors.reset} ${colors.brightYellow}C${colors.white}ode${colors.reset} ${colors.brightYellow}C${colors.white}onnect${colors.reset} ${colors.dim}${VERSION}${colors.reset}`,
381
+ `${colors.brightCyan}A${colors.brightMagenta}I${colors.reset} ${colors.brightYellow}C${colors.white}ode${colors.reset} ${colors.brightYellow}C${colors.white}onnect${colors.reset} ${colors.dim}v${VERSION}${colors.reset}`,
312
382
  '',
313
383
  `${colors.dim}Connected Tools:${colors.reset}`,
314
384
  claudeVersion
@@ -406,8 +476,12 @@ export class SDKSession {
406
476
  historySize: 100,
407
477
  prompt: this.getPrompt(),
408
478
  });
409
- // Handle Ctrl+C gracefully
479
+ // Handle Ctrl+C gracefully - exit the application
410
480
  this.rl.on('SIGINT', () => {
481
+ if (this.requestInProgress) {
482
+ console.log(`\n${colors.yellow}Request in progress - please wait or use /i to interact${colors.reset}`);
483
+ return;
484
+ }
411
485
  console.log('\n');
412
486
  this.rl?.close();
413
487
  this.cleanup().then(() => {
@@ -586,12 +660,22 @@ export class SDKSession {
586
660
  console.log('');
587
661
  }
588
662
  async sendToTool(message) {
663
+ // Prevent concurrent requests
664
+ if (this.requestInProgress) {
665
+ console.log(`${colors.yellow}⏳ Please wait for the current request to finish${colors.reset}`);
666
+ return;
667
+ }
668
+ this.requestInProgress = true;
589
669
  // Record user message
590
670
  this.conversationHistory.push({
591
671
  tool: this.activeTool,
592
672
  role: 'user',
593
673
  content: message,
594
674
  });
675
+ // Enforce history size limit
676
+ while (this.conversationHistory.length > MAX_HISTORY_SIZE) {
677
+ this.conversationHistory.shift();
678
+ }
595
679
  try {
596
680
  let response;
597
681
  if (this.activeTool === 'claude') {
@@ -606,103 +690,195 @@ export class SDKSession {
606
690
  role: 'assistant',
607
691
  content: response,
608
692
  });
693
+ // Enforce history size limit again after adding response
694
+ while (this.conversationHistory.length > MAX_HISTORY_SIZE) {
695
+ this.conversationHistory.shift();
696
+ }
609
697
  }
610
698
  catch (error) {
611
- console.error(`\nError: ${error instanceof Error ? error.message : error}\n`);
699
+ const errorMessage = error instanceof Error ? error.message : String(error);
700
+ console.error(`\n${colors.red}Error:${colors.reset} ${errorMessage}\n`);
612
701
  // Remove the user message if failed
613
702
  this.conversationHistory.pop();
614
703
  }
704
+ finally {
705
+ this.requestInProgress = false;
706
+ }
615
707
  }
616
708
  sendToClaude(message) {
617
709
  return new Promise((resolve, reject) => {
618
- const args = ['-p']; // Print mode for regular messages
619
- // Continue session if we have one
620
- if (this.claudeHasSession) {
621
- args.push('--continue');
622
- }
623
- // Add the message
624
- args.push(message);
625
710
  // Start spinner
626
711
  const spinner = new Spinner(`${colors.brightCyan}Claude${colors.reset} is thinking`);
627
712
  spinner.start();
628
- const proc = spawn('claude', args, {
713
+ // Use print mode (-p) for non-interactive message sending
714
+ // This won't hijack existing sessions
715
+ const args = ['-p', message];
716
+ // Continue aic's own session if we have one
717
+ if (this.claudeHasSession) {
718
+ args.push('--continue');
719
+ }
720
+ // Use PTY to capture streaming output with status updates
721
+ const ptyProc = pty.spawn('claude', args, {
722
+ name: 'xterm-256color',
723
+ cols: process.stdout.columns || 80,
724
+ rows: process.stdout.rows || 24,
629
725
  cwd: this.cwd,
630
- stdio: ['ignore', 'pipe', 'pipe'],
631
726
  env: process.env,
632
727
  });
633
- let stdout = '';
634
- let stderr = '';
635
- proc.stdout.on('data', (data) => {
636
- stdout += data.toString();
637
- });
638
- proc.stderr.on('data', (data) => {
639
- stderr += data.toString();
640
- });
641
- proc.on('close', (code) => {
728
+ let outputBuffer = '';
729
+ let finished = false;
730
+ let outputHandler = null;
731
+ let timeoutHandle = null;
732
+ // Consolidated cleanup function - prevents double cleanup
733
+ const cleanup = () => {
734
+ if (timeoutHandle) {
735
+ clearTimeout(timeoutHandle);
736
+ timeoutHandle = null;
737
+ }
738
+ if (outputHandler) {
739
+ outputHandler.dispose();
740
+ outputHandler = null;
741
+ }
642
742
  spinner.stop();
643
- if (code !== 0) {
644
- reject(new Error(`Claude exited with code ${code}: ${stderr || stdout}`));
743
+ try {
744
+ ptyProc.kill();
745
+ }
746
+ catch {
747
+ // Process already dead
748
+ }
749
+ };
750
+ // Handle PTY output
751
+ outputHandler = ptyProc.onData((data) => {
752
+ outputBuffer += data;
753
+ spinner.setStatus(data);
754
+ });
755
+ // Handle process exit
756
+ ptyProc.onExit(({ exitCode }) => {
757
+ if (finished)
758
+ return;
759
+ finished = true;
760
+ cleanup();
761
+ const response = stripAnsi(outputBuffer).trim();
762
+ if (exitCode === 0) {
763
+ // Render the response
764
+ console.log('');
765
+ if (response) {
766
+ const rendered = marked.parse(response);
767
+ process.stdout.write(rendered);
768
+ }
769
+ console.log('');
770
+ this.claudeHasSession = true;
771
+ resolve(response);
645
772
  }
646
773
  else {
647
- // Render the response with markdown formatting
774
+ // Non-zero exit might mean Claude needs interaction
648
775
  console.log('');
649
- const rendered = marked.parse(stdout.trim());
650
- process.stdout.write(rendered);
776
+ console.log(`${colors.yellow}⚠ Claude may need your input.${colors.reset} Use ${colors.brightYellow}/i${colors.reset} to interact.`);
651
777
  console.log('');
652
778
  this.claudeHasSession = true;
653
- resolve(stripAnsi(stdout).trim());
779
+ resolve(response);
654
780
  }
655
781
  });
656
- proc.on('error', (err) => {
657
- spinner.stop();
658
- reject(err);
659
- });
782
+ // Timeout fallback - reject instead of silent resolve
783
+ timeoutHandle = setTimeout(() => {
784
+ if (finished)
785
+ return;
786
+ finished = true;
787
+ cleanup();
788
+ reject(new Error(`Request timeout after ${REQUEST_TIMEOUT_MS / 1000} seconds. Use /i to check session.`));
789
+ }, REQUEST_TIMEOUT_MS);
660
790
  });
661
791
  }
662
792
  sendToGemini(message) {
663
793
  return new Promise((resolve, reject) => {
664
- const args = [];
665
- // Resume session if we have one
666
- if (this.geminiHasSession) {
667
- args.push('--resume', 'latest');
668
- }
669
- // Add the message
670
- args.push(message);
671
794
  // Start spinner
672
795
  const spinner = new Spinner(`${colors.brightMagenta}Gemini${colors.reset} is thinking`);
673
796
  spinner.start();
674
- const proc = spawn('gemini', args, {
797
+ // Use positional prompt for non-interactive mode
798
+ // This won't hijack existing sessions
799
+ const args = [message];
800
+ // Resume aic's own session if we have one
801
+ if (this.geminiHasSession) {
802
+ args.push('--resume', 'latest');
803
+ }
804
+ // Use PTY to capture streaming output with status updates
805
+ const ptyProc = pty.spawn('gemini', args, {
806
+ name: 'xterm-256color',
807
+ cols: process.stdout.columns || 80,
808
+ rows: process.stdout.rows || 24,
675
809
  cwd: this.cwd,
676
- stdio: ['ignore', 'pipe', 'pipe'],
677
810
  env: process.env,
678
811
  });
679
- let stdout = '';
680
- let stderr = '';
681
- proc.stdout.on('data', (data) => {
682
- stdout += data.toString();
683
- });
684
- proc.stderr.on('data', (data) => {
685
- stderr += data.toString();
686
- });
687
- proc.on('close', (code) => {
812
+ let outputBuffer = '';
813
+ let finished = false;
814
+ let outputHandler = null;
815
+ let timeoutHandle = null;
816
+ const cleanGeminiOutput = (output) => {
817
+ // Remove "Loaded cached credentials." line and clean up
818
+ return stripAnsi(output)
819
+ .split('\n')
820
+ .filter(line => !line.includes('Loaded cached credentials'))
821
+ .join('\n')
822
+ .trim();
823
+ };
824
+ // Consolidated cleanup function - prevents double cleanup
825
+ const cleanup = () => {
826
+ if (timeoutHandle) {
827
+ clearTimeout(timeoutHandle);
828
+ timeoutHandle = null;
829
+ }
830
+ if (outputHandler) {
831
+ outputHandler.dispose();
832
+ outputHandler = null;
833
+ }
688
834
  spinner.stop();
689
- if (code !== 0) {
690
- reject(new Error(`Gemini exited with code ${code}: ${stderr || stdout}`));
835
+ try {
836
+ ptyProc.kill();
837
+ }
838
+ catch {
839
+ // Process already dead
840
+ }
841
+ };
842
+ // Handle PTY output
843
+ outputHandler = ptyProc.onData((data) => {
844
+ outputBuffer += data;
845
+ spinner.setStatus(data);
846
+ });
847
+ // Handle process exit
848
+ ptyProc.onExit(({ exitCode }) => {
849
+ if (finished)
850
+ return;
851
+ finished = true;
852
+ cleanup();
853
+ const response = cleanGeminiOutput(outputBuffer);
854
+ if (exitCode === 0) {
855
+ // Render the response
856
+ console.log('');
857
+ if (response) {
858
+ const rendered = marked.parse(response);
859
+ process.stdout.write(rendered);
860
+ }
861
+ console.log('');
862
+ this.geminiHasSession = true;
863
+ resolve(response);
691
864
  }
692
865
  else {
693
- // Render the response with markdown formatting
866
+ // Non-zero exit might mean Gemini needs interaction
694
867
  console.log('');
695
- const rendered = marked.parse(stdout.trim());
696
- process.stdout.write(rendered);
868
+ console.log(`${colors.yellow}⚠ Gemini may need your input.${colors.reset} Use ${colors.brightYellow}/i${colors.reset} to interact.`);
697
869
  console.log('');
698
870
  this.geminiHasSession = true;
699
- resolve(stripAnsi(stdout).trim());
871
+ resolve(response);
700
872
  }
701
873
  });
702
- proc.on('error', (err) => {
703
- spinner.stop();
704
- reject(err);
705
- });
874
+ // Timeout fallback - reject instead of silent resolve
875
+ timeoutHandle = setTimeout(() => {
876
+ if (finished)
877
+ return;
878
+ finished = true;
879
+ cleanup();
880
+ reject(new Error(`Request timeout after ${REQUEST_TIMEOUT_MS / 1000} seconds. Use /i to check session.`));
881
+ }, REQUEST_TIMEOUT_MS);
706
882
  });
707
883
  }
708
884
  /**
@@ -790,35 +966,30 @@ export class SDKSession {
790
966
  process.stdin.resume();
791
967
  let detached = false;
792
968
  let lastEscapeTime = 0;
969
+ // Debug mode - set AIC_DEBUG=1 to see key codes
970
+ const debugKeys = process.env.AIC_DEBUG === '1';
971
+ // Define onStdinData first so it can be referenced in performDetach
972
+ let onStdinData = null;
793
973
  const performDetach = () => {
794
974
  if (detached)
795
975
  return;
796
976
  detached = true;
797
- cleanup();
798
- // Save captured output to conversation history for forwarding
799
- const capturedOutput = this.interactiveOutputBuffer.get(this.activeTool);
800
- if (capturedOutput) {
801
- const cleanedOutput = stripAnsi(capturedOutput).trim();
802
- if (cleanedOutput.length > 50) { // Only save meaningful output
803
- this.conversationHistory.push({
804
- tool: this.activeTool,
805
- role: 'assistant',
806
- content: cleanedOutput,
807
- });
808
- }
809
- // Clear buffer after saving
810
- this.interactiveOutputBuffer.set(this.activeTool, '');
977
+ // CRITICAL: Remove stdin listener IMMEDIATELY to prevent race conditions
978
+ // This must happen before any other cleanup to prevent re-entry
979
+ if (onStdinData) {
980
+ process.stdin.removeListener('data', onStdinData);
811
981
  }
982
+ cleanup();
983
+ // Clear the interactive output buffer (don't save to history - it's UI noise)
984
+ this.interactiveOutputBuffer.set(this.activeTool, '');
812
985
  // Clear any pending terminal responses before showing detach message
813
986
  process.stdout.write('\x1b[2K\r'); // Clear current line
814
987
  console.log(`\n\n${colors.yellow}⏸${colors.reset} Detached from ${toolColor}${toolName}${colors.reset} ${colors.dim}(still running)${colors.reset}`);
815
- console.log(`${colors.dim}Use ${colors.brightYellow}/i${colors.dim} to re-attach${colors.brightGreen}/forward${colors.dim} to send to other tool${colors.reset}`);
988
+ console.log(`${colors.dim}Use ${colors.brightYellow}/i${colors.dim} to re-attach${colors.reset}`);
816
989
  console.log(`${colors.dim}Press ${colors.brightYellow}Enter${colors.dim} to continue${colors.reset}\n`);
817
990
  resolve();
818
991
  };
819
- // Debug mode - set AIC_DEBUG=1 to see key codes
820
- const debugKeys = process.env.AIC_DEBUG === '1';
821
- const onStdinData = (data) => {
992
+ onStdinData = (data) => {
822
993
  let str = data.toString();
823
994
  // Debug output to see what keys are being received
824
995
  if (debugKeys) {
@@ -1056,33 +1227,28 @@ export class SDKSession {
1056
1227
  let lastEscapeTime = 0;
1057
1228
  // Debug mode - set AIC_DEBUG=1 to see key codes
1058
1229
  const debugKeys = process.env.AIC_DEBUG === '1';
1230
+ // Define onStdinData first so it can be referenced in performDetach
1231
+ let onStdinData = null;
1059
1232
  const performDetach = () => {
1060
1233
  if (detached)
1061
1234
  return;
1062
1235
  detached = true;
1063
- cleanup();
1064
- // Save captured output to conversation history for forwarding
1065
- const capturedOutput = this.interactiveOutputBuffer.get(this.activeTool);
1066
- if (capturedOutput) {
1067
- const cleanedOutput = stripAnsi(capturedOutput).trim();
1068
- if (cleanedOutput.length > 50) { // Only save meaningful output
1069
- this.conversationHistory.push({
1070
- tool: this.activeTool,
1071
- role: 'assistant',
1072
- content: cleanedOutput,
1073
- });
1074
- }
1075
- // Clear buffer after saving
1076
- this.interactiveOutputBuffer.set(this.activeTool, '');
1236
+ // CRITICAL: Remove stdin listener IMMEDIATELY to prevent race conditions
1237
+ // This must happen before any other cleanup to prevent re-entry
1238
+ if (onStdinData) {
1239
+ process.stdin.removeListener('data', onStdinData);
1077
1240
  }
1241
+ cleanup();
1242
+ // Clear the interactive output buffer (don't save to history - it's UI noise)
1243
+ this.interactiveOutputBuffer.set(this.activeTool, '');
1078
1244
  // Clear any pending terminal responses before showing detach message
1079
1245
  process.stdout.write('\x1b[2K\r'); // Clear current line
1080
1246
  console.log(`\n\n${colors.yellow}⏸${colors.reset} Detached from ${toolColor}${toolName}${colors.reset} ${colors.dim}(still running)${colors.reset}`);
1081
- console.log(`${colors.dim}Use ${colors.brightYellow}/i${colors.dim} to re-attach${colors.brightGreen}/forward${colors.dim} to send to other tool${colors.reset}`);
1247
+ console.log(`${colors.dim}Use ${colors.brightYellow}/i${colors.dim} to re-attach${colors.reset}`);
1082
1248
  console.log(`${colors.dim}Press ${colors.brightYellow}Enter${colors.dim} to continue${colors.reset}\n`);
1083
1249
  resolve();
1084
1250
  };
1085
- const onStdinData = (data) => {
1251
+ onStdinData = (data) => {
1086
1252
  let str = data.toString();
1087
1253
  // Debug output to see what keys are being received
1088
1254
  if (debugKeys) {
@@ -1205,19 +1371,8 @@ export class SDKSession {
1205
1371
  process.stdout.write('\x1b[?2004l'); // Disable bracketed paste
1206
1372
  process.stdout.write('\x1b[>0u'); // Reset keyboard enhancement to legacy mode (CSI u)
1207
1373
  process.stdout.write('\x1b[?25h'); // Ensure cursor is visible
1208
- // Save captured output to conversation history
1209
- const capturedOutput = this.interactiveOutputBuffer.get(this.activeTool);
1210
- if (capturedOutput) {
1211
- const cleanedOutput = stripAnsi(capturedOutput).trim();
1212
- if (cleanedOutput.length > 50) {
1213
- this.conversationHistory.push({
1214
- tool: this.activeTool,
1215
- role: 'assistant',
1216
- content: cleanedOutput,
1217
- });
1218
- }
1219
- this.interactiveOutputBuffer.set(this.activeTool, '');
1220
- }
1374
+ // Clear the interactive output buffer (don't save to history - it's UI noise)
1375
+ this.interactiveOutputBuffer.set(this.activeTool, '');
1221
1376
  if (process.stdin.isTTY) {
1222
1377
  process.stdin.setRawMode(false);
1223
1378
  }
@@ -1234,12 +1389,36 @@ export class SDKSession {
1234
1389
  showStatus() {
1235
1390
  console.log('');
1236
1391
  const statusLines = AVAILABLE_TOOLS.map(tool => {
1237
- const isRunning = this.runningProcesses.has(tool.name);
1392
+ const ptyProcess = this.runningProcesses.get(tool.name);
1238
1393
  const hasSession = tool.name === 'claude' ? this.claudeHasSession : this.geminiHasSession;
1239
1394
  const icon = tool.name === 'claude' ? '◆' : '◇';
1240
- return `${tool.color}${icon} ${tool.displayName.padEnd(12)}${colors.reset} ${isRunning ? `${colors.green}● Running${colors.reset}` : `${colors.dim}○ Stopped${colors.reset}`} ${hasSession ? `${colors.dim}(has history)${colors.reset}` : ''}`;
1395
+ let status;
1396
+ if (ptyProcess) {
1397
+ // Check if the PTY process is still alive by checking its pid
1398
+ try {
1399
+ // process.kill with signal 0 checks if process exists without killing it
1400
+ process.kill(ptyProcess.pid, 0);
1401
+ status = `${colors.green}● Running${colors.reset} (PID: ${ptyProcess.pid})`;
1402
+ }
1403
+ catch {
1404
+ // Process is dead but we haven't cleaned up yet
1405
+ status = `${colors.red}● Dead${colors.reset} (cleaning up...)`;
1406
+ // Clean up the dead process
1407
+ this.runningProcesses.delete(tool.name);
1408
+ }
1409
+ }
1410
+ else {
1411
+ status = `${colors.dim}○ Stopped${colors.reset}`;
1412
+ }
1413
+ const historyNote = hasSession ? `${colors.dim}(has history)${colors.reset}` : '';
1414
+ return `${tool.color}${icon} ${tool.displayName.padEnd(12)}${colors.reset} ${status} ${historyNote}`;
1241
1415
  });
1242
- console.log(drawBox(statusLines, 45));
1416
+ // Add current request status
1417
+ if (this.requestInProgress) {
1418
+ statusLines.push('');
1419
+ statusLines.push(`${colors.yellow}⏳ Request in progress${colors.reset}`);
1420
+ }
1421
+ console.log(drawBox(statusLines, 50));
1243
1422
  console.log('');
1244
1423
  }
1245
1424
  async handleForward(argsString) {
@@ -1 +1 @@
1
- {"version":3,"file":"sdk-session.js","sourceRoot":"","sources":["../src/sdk-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgB,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,eAAe,EAA8B,MAAM,UAAU,CAAC;AAEvE,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7D;;GAEG;AACH,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,OAAO,iBAAiB,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnF,gDAAgD;QAChD,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,8DAA8D;QAC9D,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,OAAO,OAAO,IAAI,IAAI,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+DAA+D;AAC/D,MAAM,CAAC,UAAU,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,EAAE,IAAI,gBAAgB,CAAC;QAC7B,mBAAmB;QACnB,QAAQ,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,IAAI,SAAS,EAAE,yBAAyB;QAC/E,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,IAAI,SAAS,EAAK,OAAO;QAC7D,EAAE,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,UAAU,IAAI,SAAS,EAAS,SAAS;KAChE,CAAC;CACH,CAAC,CAAC;AAQH,yEAAyE;AACzE,uEAAuE;AACvE,MAAM,WAAW,GAAG;IAClB,YAAY,EAAE,IAAI,EAAO,qBAAqB;IAC9C,cAAc,EAAE,IAAI,EAAK,qBAAqB;IAC9C,UAAU,EAAE,IAAI,EAAS,oDAAoD;IAC7E,eAAe,EAAE,IAAI,EAAI,oDAAoD;IAC7E,MAAM,EAAE,IAAI,EAAa,qBAAqB;CAC/C,CAAC;AAEF,4DAA4D;AAC5D,0CAA0C;AAC1C,4BAA4B;AAC5B,MAAM,iBAAiB,GAAG;IACxB,YAAY,EAAI,0BAA0B;IAC1C,YAAY,EAAI,0BAA0B;IAC1C,YAAY,EAAI,mCAAmC;IACnD,YAAY,EAAI,mCAAmC;IACnD,YAAY,EAAI,yCAAyC;IACzD,YAAY,EAAI,yCAAyC;CAC1D,CAAC;AAEF,mCAAmC;AACnC,oEAAoE;AACpE,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAG,yBAAyB;AAC1D,MAAM,aAAa,GAAG,QAAQ,CAAC,CAAE,uBAAuB;AAExD,+DAA+D;AAC/D,2EAA2E;AAC3E,MAAM,uBAAuB,GAAG,0BAA0B,CAAC;AAE3D,8BAA8B;AAC9B,MAAM,UAAU,GAAG,MAAM,CAAC;AAE1B,iBAAiB;AACjB,MAAM,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;AAE1E,sBAAsB;AACtB,MAAM,MAAM,GAAG;IACb,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;IACvB,cAAc,EAAE,UAAU;IAC1B,eAAe,EAAE,UAAU;IAC3B,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,UAAU;CACtB,CAAC;AAEF,mBAAmB;AACnB,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,SAAS;IAChB,IAAI,EAAE,SAAS;IACf,GAAG,EAAE,SAAS;IAEd,aAAa;IACb,IAAI,EAAE,UAAU;IAChB,OAAO,EAAE,UAAU;IACnB,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,UAAU;IACf,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,UAAU;IAEhB,oBAAoB;IACpB,UAAU,EAAE,UAAU;IACtB,aAAa,EAAE,UAAU;IACzB,YAAY,EAAE,UAAU;IACxB,WAAW,EAAE,UAAU;IACvB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;IAEvB,aAAa;IACb,MAAM,EAAE,UAAU;IAClB,SAAS,EAAE,UAAU;IACrB,MAAM,EAAE,UAAU;CACnB,CAAC;AAEF,qCAAqC;AACrC,MAAM,cAAc,GAAG;IACrB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,gBAAgB;IAC5B,UAAU,EAAE,eAAe;IAC3B,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF;;GAEG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,SAAiB,CAAC;IACnD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;QACxD,MAAM,IAAI,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY,EAAE,WAAmB,GAAG;IAC1D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACvC,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;gBACxB,eAAe;gBACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC9D,OAAO,EAAE,CAAC;gBACV,OAAO;YACT,CAAC;YAED,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACvD,MAAM,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;YAC9C,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC1B,CAAC,CAAC;QAEF,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,qCAAqC;AACrC,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;AACtC,CAAC;AAED,sCAAsC;AACtC,SAAS,aAAa,CAAC,OAAe,GAAG,EAAE,QAAgB,MAAM,CAAC,GAAG;IACnE,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,OAAO,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AACxD,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,GAAG;EACjB,MAAM,CAAC,UAAU,iBAAiB,MAAM,CAAC,aAAa,MAAM,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK;EACrI,MAAM,CAAC,UAAU,gBAAgB,MAAM,CAAC,aAAa,MAAM,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,KAAK;EACrG,MAAM,CAAC,UAAU,gBAAgB,MAAM,CAAC,aAAa,MAAM,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,KAAK;EACrG,MAAM,CAAC,UAAU,gBAAgB,MAAM,CAAC,aAAa,MAAM,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,KAAK;EACrG,MAAM,CAAC,UAAU,gBAAgB,MAAM,CAAC,aAAa,MAAM,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,KAAK;EACrG,MAAM,CAAC,UAAU,gBAAgB,MAAM,CAAC,aAAa,MAAM,MAAM,CAAC,YAAY,WAAW,MAAM,CAAC,KAAK;CACtG,CAAC;AAEF,MAAM,OAAO,GAAG,QAAQ,CAAC;AASzB,MAAM,eAAe,GAAiB;IACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;IACxE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE;IAC1E,4BAA4B;IAC5B,0EAA0E;CAC3E,CAAC;AAEF,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC;AACpD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,OAAO,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,IAAI,IAAI,CAAC;AAClD,CAAC;AAED,0DAA0D;AAC1D,MAAM,YAAY,GAAG;IACnB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,SAAS,CAAC,+BAA+B,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC1H,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,8BAA8B,EAAE,WAAW,EAAE,sBAAsB,EAAE;IAC3H,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,qCAAqC,EAAE,WAAW,EAAE,sDAAsD,EAAE;IACxJ,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,8BAA8B,EAAE,WAAW,EAAE,yCAAyC,EAAE;IAChJ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,6BAA6B,EAAE,WAAW,EAAE,qCAAqC,EAAE;IACnI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,0BAA0B,EAAE,WAAW,EAAE,2BAA2B,EAAE;IAC9H,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,gCAAgC,EAAE,WAAW,EAAE,oBAAoB,EAAE;IAC3H,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,yBAAyB,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC9I,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,qBAAqB,EAAE,WAAW,EAAE,yBAAyB,EAAE;IACjH,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,yBAAyB,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC1H,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE;IAC7F,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,yBAAyB,EAAE,WAAW,EAAE,UAAU,EAAE;CACrG,CAAC;AAEF,SAAS,OAAO,CAAC,OAAiB,EAAE,QAAgB,EAAE;IACpD,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IACtE,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IACzE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC/B,MAAM,OAAO,GAAG,KAAK,GAAG,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;IACpH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,OAAO,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC;AACnD,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,KAAa;IAC3C,OAAO,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,OAAO;IACH,UAAU,GAA0B,IAAI,CAAC;IACzC,UAAU,GAAG,CAAC,CAAC;IACf,OAAO,CAAS;IAExB,YAAY,UAAkB,UAAU;QACtC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,gEAAgE;QAChE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;QAElE,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC;YAChE,iCAAiC;YACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;QAClF,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,yBAAyB;YACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACb,SAAS,GAAG,KAAK,CAAC;IAClB,UAAU,CAAsB;IAChC,mBAAmB,GAAc,EAAE,CAAC;IAE5C,oCAAoC;IAC5B,gBAAgB,GAAG,KAAK,CAAC;IACzB,gBAAgB,GAAG,KAAK,CAAC;IAEjC,gDAAgD;IACxC,gBAAgB,GAAsB,IAAI,GAAG,EAAE,CAAC;IAExD,2DAA2D;IACnD,uBAAuB,GAAwB,IAAI,GAAG,EAAE,CAAC;IAEjE,oBAAoB;IACZ,GAAG,CAAS;IAEpB,4CAA4C;IACpC,EAAE,GAAqB,IAAI,CAAC;IAC5B,YAAY,GAAa,EAAE,CAAC;IAEpC,YAAY,GAAY;QACtB,IAAI,CAAC,GAAG,GAAG,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAChC,6CAA6C;QAC7C,IAAI,CAAC,UAAU,GAAG,cAAc,EAAyB,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,2BAA2B;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAEtD,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;QAEjC,0CAA0C;QAC1C,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,aAAa,KAAK,IAAI,CAAC;QAC/C,MAAM,eAAe,GAAG,aAAa,KAAK,IAAI,CAAC;QAC/C,MAAM,cAAc,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7E,4BAA4B;QAC5B,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,uBAAuB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,2DAA2D,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACpG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,UAAU,cAAc,MAAM,CAAC,KAAK,4CAA4C,CAAC,CAAC;YAC1G,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,aAAa,aAAa,MAAM,CAAC,KAAK,sCAAsC,CAAC,CAAC;YACtG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,iCAAiC;QACjC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;YACrE,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC3D,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC;YACnE,MAAM,cAAc,GAAG,eAAe;gBACpC,CAAC,CAAC,mCAAmC;gBACrC,CAAC,CAAC,0CAA0C,CAAC;YAE/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,UAAU,aAAa,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,4DAA4D,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACrG,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,WAAW,WAAW,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,CAAC,KAAK,cAAc,EAAE,CAAC,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,UAAU,aAAa,aAAa,MAAM,CAAC,KAAK,IAAI,YAAY,EAAE,CAAC,CAAC;YAC7F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,+BAA+B;QAC/B,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,gBAAgB;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,0DAA0D;QAC1D,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG;YACjB,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,GAAG,GAAG,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE;YAC3N,EAAE;YACF,GAAG,MAAM,CAAC,GAAG,mBAAmB,MAAM,CAAC,KAAK,EAAE;YAC9C,aAAa;gBACX,CAAC,CAAC,KAAK,MAAM,CAAC,UAAU,cAAc,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE;gBAClG,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,0BAA0B,MAAM,CAAC,KAAK,EAAE;YAC3D,aAAa;gBACX,CAAC,CAAC,KAAK,MAAM,CAAC,aAAa,aAAa,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE;gBACpG,CAAC,CAAC,KAAK,MAAM,CAAC,GAAG,yBAAyB,MAAM,CAAC,KAAK,EAAE;YAC1D,EAAE;YACF,GAAG,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE;SAC7C,CAAC;QAEF,gDAAgD;QAChD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,EAAE,CAAC,CAAC,8BAA8B;QACtD,MAAM,GAAG,GAAG,EAAE,CAAC;QACf,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,MAAM,iBAAiB,GAAG,WAAW,GAAG,GAAG,GAAG,aAAa,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAE7E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC;QAChJ,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,8GAA8G;QAC9G,MAAM,YAAY,GAAG;YACnB,KAAK,WAAW,CAAC,SAAS,CAAC,+BAA+B;YAC1D,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,8BAA8B;YAC5D,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,qCAAqC;YAC9D,KAAK,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,2BAA2B,MAAM,CAAC,GAAG,eAAe,MAAM,CAAC,KAAK,EAAE;SAClG,CAAC;QAEF,MAAM,aAAa,GAAG;YACpB,KAAK,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC,0BAA0B;YACzD,KAAK,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC,gCAAgC;YAC9D,KAAK,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,yBAAyB;YACtD,KAAK,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,kBAAkB,MAAM,CAAC,GAAG,YAAY,MAAM,CAAC,KAAK,EAAE;SACnF,CAAC;QAEF,yDAAyD;QACzD,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACpF,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,GAAG,KAAK,EAAE,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,qCAAqC;YACrC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9C,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACjD,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,eAAe;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,YAAY,MAAM,CAAC,GAAG,gDAAgD,MAAM,CAAC,KAAK,OAAO,MAAM,CAAC,YAAY,SAAS,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,YAAY,UAAU,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,YAAY,UAAU,MAAM,CAAC,KAAK,qBAAqB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACzT,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC,GAAG,oBAAoB,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC,GAAG,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACvJ,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,6CAA6C;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,YAAY,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAChG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAEO,SAAS;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACpE,OAAO,GAAG,SAAS,KAAK,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC;IACnF,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,IAAY;QAC5B,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAEzI,sCAAsC;QACtC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;YACtD,0DAA0D;YAC1D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC;QAED,kCAAkC;QAClC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACpB,CAAC;IAEO,aAAa;QACnB,IAAI,CAAC,EAAE,GAAG,eAAe,CAAC;YACxB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,YAAY;YAC1B,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE;SACzB,CAAC,CAAC;QAEH,2BAA2B;QAC3B,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;YACjB,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;gBACvB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,YAAY,cAAc,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;gBAClE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,UAAU;QACtB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAErC,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBAAE,SAAS;YAEtC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;YAE7B,uEAAuE;YACvE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,0BAA0B;gBAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACnC,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;gBAC5B,CAAC;YACH,CAAC;YAED,oEAAoE;YACpE,kFAAkF;YAClF,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;gBACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;gBAE7E,mDAAmD;gBACnD,MAAM,cAAc,CAAC,iCAAiC,QAAQ,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC1E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE3B,MAAM,IAAI,CAAC,+BAA+B,CAAC,QAAQ,CAAC,CAAC;gBACrD,SAAS;YACX,CAAC;YAED,0CAA0C;YAC1C,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,yEAAyE;gBACzE,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,SAAS;YACX,CAAC;YAED,oCAAoC;YACpC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,SAAS;QACf,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,qCAAqC;YACrC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;YAElB,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;gBACnC,kEAAkE;gBAClE,IAAI,OAAO,GAAG,IAAI;qBACf,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACvB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACvB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACvB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;qBACvB,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;gBAExC,8DAA8D;gBAC9D,oCAAoC;gBACpC,qFAAqF;gBACrF,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAE3C,sDAAsD;gBACtD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBAEhD,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAEzB,0DAA0D;gBAC1D,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC;oBAClB,OAAO;gBACT,CAAC;gBAED,cAAc;gBACd,IAAI,CAAC,EAAE,EAAE,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAC7C,OAAO,CAAC,OAAO,CAAC,CAAC;YACnB,CAAC,CAAC;YAEF,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,GAAW;QACzC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAEvC,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC;YACZ,KAAK,MAAM,CAAC;YACZ,KAAK,KAAK;gBACR,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,YAAY,cAAc,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;gBACpE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAChB,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,gBAAgB,MAAM,CAAC,UAAU,cAAc,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC1G,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;gBAC3B,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,gBAAgB,MAAM,CAAC,aAAa,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC5G,MAAM;YAER,KAAK,SAAS,CAAC;YACf,KAAK,KAAK;gBACR,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACnD,MAAM;YAER,KAAK,aAAa,CAAC;YACnB,KAAK,OAAO,CAAC;YACb,KAAK,GAAG;gBACN,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBAClC,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM;YAER,KAAK,OAAO;gBACV,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACrB,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;gBAC7C,MAAM;YAER,KAAK,SAAS;gBACZ,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACzB,IAAI,OAAO,EAAE,CAAC;oBACZ,kBAAkB;oBAClB,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;oBACvC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;oBACnE,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;oBACjE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,uBAAuB;oBACvB,MAAM,cAAc,GAAG,cAAc,EAAE,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,wBAAwB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,GAAG,cAAc,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACxH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,MAAM,CAAC,KAAK,2BAA2B,CAAC,CAAC;gBAC7E,CAAC;gBACD,MAAM;YAER,KAAK,MAAM,CAAC;YACZ,KAAK,GAAG;gBACN,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAChB,MAAM;YAER;gBACE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,yBAAyB,MAAM,CAAC,YAAY,IAAI,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACnH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,UAAU,MAAM,CAAC,YAAY,QAAQ,MAAM,CAAC,GAAG,8BAA8B,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACtH,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,cAAc,OAAO,qBAAqB,MAAM,CAAC,YAAY,KAAK,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACzH,CAAC;IACH,CAAC;IAEO,QAAQ;QACd,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,SAAS,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,GAAG,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACzO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,oBAAoB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,IAAI,CAAC,uCAAuC,MAAM,CAAC,GAAG,gCAAgC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACnI,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,UAAU,CAAC,gCAAgC,MAAM,CAAC,GAAG,eAAe,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,UAAU,CAAC,kCAAkC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACzE,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,UAAU,CAAC,2BAA2B,MAAM,CAAC,GAAG,kBAAkB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/G,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,kBAAkB,MAAM,CAAC,GAAG,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7F,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,iBAAiB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5D,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,YAAY,YAAY,MAAM,CAAC,KAAK,0CAA0C,CAAC,CAAC;QACxG,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,sFAAsF,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACjI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC,KAAK,mCAAmC,CAAC,CAAC;QACzH,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC,KAAK,8BAA8B,CAAC,CAAC;QACpH,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,SAAS,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,YAAY,UAAU,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,YAAY,SAAS,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,YAAY,SAAS,MAAM,CAAC,KAAK,gCAAgC,CAAC,CAAC;QACpQ,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,YAAY,UAAU,MAAM,CAAC,KAAK,6CAA6C,CAAC,CAAC;QACvI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAe;QACtC,sBAAsB;QACtB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,IAAI,QAAgB,CAAC;YAErB,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACjC,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC9C,CAAC;YAED,4BAA4B;YAC5B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;gBAC5B,IAAI,EAAE,IAAI,CAAC,UAAU;gBACrB,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,QAAQ;aAClB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YAC9E,oCAAoC;YACpC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,OAAe;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAa,CAAC,IAAI,CAAC,CAAC,CAAC,kCAAkC;YAEjE,kCAAkC;YAClC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1B,CAAC;YAED,kBAAkB;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEnB,gBAAgB;YAChB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,UAAU,SAAS,MAAM,CAAC,KAAK,cAAc,CAAC,CAAC;YACrF,OAAO,CAAC,KAAK,EAAE,CAAC;YAEhB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE;gBACjC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC9B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC9B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,OAAO,CAAC,IAAI,EAAE,CAAC;gBAEf,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,+CAA+C;oBAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAW,CAAC;oBACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEhB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC7B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAGO,YAAY,CAAC,OAAe;QAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAa,EAAE,CAAC;YAE1B,gCAAgC;YAChC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAClC,CAAC;YAED,kBAAkB;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEnB,gBAAgB;YAChB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,aAAa,SAAS,MAAM,CAAC,KAAK,cAAc,CAAC,CAAC;YACxF,OAAO,CAAC,KAAK,EAAE,CAAC;YAEhB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE;gBACjC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC;gBACjC,GAAG,EAAE,OAAO,CAAC,GAAG;aACjB,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC9B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC9B,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACxB,OAAO,CAAC,IAAI,EAAE,CAAC;gBAEf,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,IAAI,KAAK,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC5E,CAAC;qBAAM,CAAC;oBACN,+CAA+C;oBAC/C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAW,CAAC;oBACvD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAEhB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC7B,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACvB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,oBAAoB;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;QAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;QAEhC,6CAA6C;QAC7C,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,UAAU,KAAK,SAAS,CAAC;QAE5C,wDAAwD;QACxD,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAEjB,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,oBAAoB,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC;QAC7G,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,aAAa,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,sBAAsB,CAAC,CAAC;QACvH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,MAAM,CAAC,YAAY,SAAS,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,YAAY,UAAU,MAAM,CAAC,GAAG,gBAAgB,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,GAAG,gBAAgB,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAEtM,4CAA4C;QAC5C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAEtD,oCAAoC;QAEpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,8BAA8B;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAa,EAAE,CAAC;gBAE1B,6DAA6D;gBAC7D,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACjE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBAED,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;oBACpC,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;oBAClC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;oBAC/B,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,GAAG,EAAE,OAAO,CAAC,GAAgC;iBAC9C,CAAC,CAAC;gBAEH,oBAAoB;gBACpB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAEvD,qDAAqD;gBACrD,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;oBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,QAAQ,iBAAiB,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnF,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAE9C,iCAAiC;oBACjC,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;wBACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC/B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,gBAAgB;YAChB,MAAM,QAAQ,GAAG,GAAG,EAAE;gBACpB,UAAW,CAAC,MAAM,CAChB,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAC1B,CAAC;YACJ,CAAC,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEtC,yDAAyD;YACzD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,8DAA8D;gBAC9D,4DAA4D;gBAC5D,IAAI,YAAY,GAAG,IAAI,CAAC;gBAExB,yCAAyC;gBACzC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEvF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACrC,CAAC;gBACD,0CAA0C;gBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACxE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YAEH,oDAAoD;YACpD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAEvB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,cAAc,GAAG,CAAC,CAAC;YAEvB,MAAM,aAAa,GAAG,GAAG,EAAE;gBACzB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO,EAAE,CAAC;gBAEV,8DAA8D;gBAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzE,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvD,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,8BAA8B;wBAC7D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;4BAC5B,IAAI,EAAE,IAAI,CAAC,UAAU;4BACrB,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,aAAa;yBACvB,CAAC,CAAC;oBACL,CAAC;oBACD,4BAA4B;oBAC5B,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACxD,CAAC;gBAED,qEAAqE;gBACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB;gBACxD,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,kBAAkB,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,kBAAkB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrJ,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,GAAG,mBAAmB,MAAM,CAAC,WAAW,WAAW,MAAM,CAAC,GAAG,yBAAyB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrK,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,MAAM,CAAC,YAAY,QAAQ,MAAM,CAAC,GAAG,eAAe,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;gBACxG,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,gDAAgD;YAChD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC;YAEhD,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;gBACnC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAE1B,mDAAmD;gBACnD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC7F,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,MAAM,WAAW,QAAQ,EAAE,CAAC,CAAC;gBACtE,CAAC;gBAED,qFAAqF;gBACrF,sDAAsD;gBACtD,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;oBAClD,IAAI,SAAS;wBAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;oBAC3D,OAAO,CAAC,uBAAuB;gBACjC,CAAC;gBAED,0DAA0D;gBAC1D,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,+BAA+B;gBACzC,CAAC;gBAED,sEAAsE;gBACtE,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;oBACpC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,2CAA2C,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;wBACpG,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,uEAAuE;gBACvE,sEAAsE;gBACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBAErB,0CAA0C;oBAC1C,IAAI,IAAI,KAAK,WAAW,CAAC,YAAY,EAAE,CAAC;wBACtC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACtD,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;oBAED,8CAA8C;oBAC9C,IAAI,IAAI,KAAK,WAAW,CAAC,cAAc,EAAE,CAAC;wBACxC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;wBACvD,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;oBAED,0DAA0D;oBAC1D,IAAI,IAAI,KAAK,WAAW,CAAC,UAAU,EAAE,CAAC;wBACpC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACtD,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;oBAED,0DAA0D;oBAC1D,IAAI,IAAI,KAAK,WAAW,CAAC,eAAe,EAAE,CAAC;wBACzC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACtD,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,sDAAsD;gBACtD,mEAAmE;gBACnE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;4BACzE,IAAI,SAAS;gCAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;4BAC7D,aAAa,EAAE,CAAC;4BAChB,OAAO;wBACT,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,2DAA2D;gBAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC;gBAC3E,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,IAAI,GAAG,GAAG,cAAc,GAAG,GAAG,EAAE,CAAC;wBAC/B,mCAAmC;wBACnC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;wBACrE,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;oBACD,cAAc,GAAG,GAAG,CAAC;oBACrB,sCAAsC;oBACtC,UAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACvB,OAAO;gBACT,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,cAAc,GAAG,CAAC,CAAC;gBACrB,CAAC;gBAED,+BAA+B;gBAC/B,UAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAEtC,qCAAqC;YACrC,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,eAAe,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;oBACrF,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YACF,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAE/B,mBAAmB;YACnB,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,SAAS;oBAAE,OAAO;gBACtB,SAAS,GAAG,IAAI,CAAC;gBAEjB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAClD,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAClD,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAE3B,yBAAyB;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAElC,wEAAwE;gBACxE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,8CAA8C;gBACnF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,0BAA0B;gBAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAI,oDAAoD;gBACzF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAG,2BAA2B;gBAEhE,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;gBAED,gEAAgE;gBAChE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,aAAa,EAAE,CAAC;gBAErB,wCAAwC;gBACxC,UAAU,CAAC,GAAG,EAAE;oBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACpC,CAAC,EAAE,GAAG,CAAC,CAAC;YACV,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,+BAA+B,CAAC,OAAe;QAC3D,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC;QAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC;QAEhC,6CAA6C;QAC7C,IAAI,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,UAAU,KAAK,SAAS,CAAC;QAE5C,wDAAwD;QACxD,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;QAEjB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,WAAW,MAAM,CAAC,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC,GAAG,aAAa,MAAM,CAAC,YAAY,SAAS,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,YAAY,UAAU,MAAM,CAAC,GAAG,aAAa,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAE9M,4CAA4C;QAC5C,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAEtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,8BAA8B;YAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,GAAa,EAAE,CAAC;gBAE1B,6DAA6D;gBAC7D,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBAC1D,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAC1B,CAAC;qBAAM,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACjE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAClC,CAAC;gBAED,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;oBACpC,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE;oBAClC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;oBAC/B,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,GAAG,EAAE,OAAO,CAAC,GAAgC;iBAC9C,CAAC,CAAC;gBAEH,oBAAoB;gBACpB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;gBAEvD,qDAAqD;gBACrD,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;oBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,GAAG,QAAQ,iBAAiB,QAAQ,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACnF,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAE9C,iCAAiC;oBACjC,IAAI,IAAI,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;wBACjC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC/B,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC/B,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,kCAAkC;YAClC,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,gBAAgB;YAChB,MAAM,QAAQ,GAAG,GAAG,EAAE;gBACpB,UAAW,CAAC,MAAM,CAChB,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,EAC5B,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAC1B,CAAC;YACJ,CAAC,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAEtC,+BAA+B;YAC/B,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,IAAI,WAAW;oBAAE,OAAO;gBACxB,WAAW,GAAG,IAAI,CAAC;gBAEnB,sDAAsD;gBACtD,IAAI,CAAC,GAAG,CAAC,CAAC;gBACV,MAAM,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC;gBACnC,MAAM,YAAY,GAAG,GAAG,EAAE;oBACxB,IAAI,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;wBAC3B,UAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClC,CAAC,EAAE,CAAC;wBACJ,UAAU,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC,CAAC;gBACF,YAAY,EAAE,CAAC;YACjB,CAAC,CAAC;YAEF,yDAAyD;YACzD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClD,8DAA8D;gBAC9D,4DAA4D;gBAC5D,IAAI,YAAY,GAAG,IAAI,CAAC;gBAExB,yCAAyC;gBACzC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAEvF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACrC,CAAC;gBACD,0CAA0C;gBAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;gBACxE,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YAEH,kFAAkF;YAClF,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1C,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;gBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,WAAW,EAAE,CAAC;gBAChB,CAAC;YACH,CAAC,EAAE,SAAS,CAAC,CAAC;YAEd,oDAAoD;YACpD,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACjC,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YAEvB,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,IAAI,cAAc,GAAG,CAAC,CAAC;YAEvB,gDAAgD;YAChD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG,CAAC;YAEhD,MAAM,aAAa,GAAG,GAAG,EAAE;gBACzB,IAAI,QAAQ;oBAAE,OAAO;gBACrB,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO,EAAE,CAAC;gBAEV,8DAA8D;gBAC9D,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzE,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvD,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC,CAAC,8BAA8B;wBAC7D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;4BAC5B,IAAI,EAAE,IAAI,CAAC,UAAU;4BACrB,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,aAAa;yBACvB,CAAC,CAAC;oBACL,CAAC;oBACD,4BAA4B;oBAC5B,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACxD,CAAC;gBAED,qEAAqE;gBACrE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB;gBACxD,OAAO,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,kBAAkB,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,GAAG,kBAAkB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrJ,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,OAAO,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,GAAG,mBAAmB,MAAM,CAAC,WAAW,WAAW,MAAM,CAAC,GAAG,yBAAyB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;gBACrK,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,MAAM,CAAC,YAAY,QAAQ,MAAM,CAAC,GAAG,eAAe,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;gBACxG,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YAEF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAE,EAAE;gBACnC,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAE1B,mDAAmD;gBACnD,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC7F,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,MAAM,WAAW,QAAQ,EAAE,CAAC,CAAC;gBACtE,CAAC;gBAED,qFAAqF;gBACrF,sDAAsD;gBACtD,IAAI,GAAG,KAAK,YAAY,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;oBAClD,IAAI,SAAS;wBAAE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;oBAC3D,OAAO,CAAC,uBAAuB;gBACjC,CAAC;gBAED,0DAA0D;gBAC1D,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACrE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,+BAA+B;gBACzC,CAAC;gBAED,sEAAsE;gBACtE,KAAK,MAAM,GAAG,IAAI,iBAAiB,EAAE,CAAC;oBACpC,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBACrC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,2CAA2C,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;wBACpG,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,uEAAuE;gBACvE,sEAAsE;gBACtE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBAErB,0CAA0C;oBAC1C,IAAI,IAAI,KAAK,WAAW,CAAC,YAAY,EAAE,CAAC;wBACtC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACtD,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;oBAED,8CAA8C;oBAC9C,IAAI,IAAI,KAAK,WAAW,CAAC,cAAc,EAAE,CAAC;wBACxC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;wBACvD,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;oBAED,0DAA0D;oBAC1D,IAAI,IAAI,KAAK,WAAW,CAAC,UAAU,EAAE,CAAC;wBACpC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACtD,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;oBAED,0DAA0D;oBAC1D,IAAI,IAAI,KAAK,WAAW,CAAC,eAAe,EAAE,CAAC;wBACzC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;wBACtD,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,sDAAsD;gBACtD,mEAAmE;gBACnE,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBACzC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;4BACzE,IAAI,SAAS;gCAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;4BAC7D,aAAa,EAAE,CAAC;4BAChB,OAAO;wBACT,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,2DAA2D;gBAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC;gBAC3E,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBACvB,IAAI,GAAG,GAAG,cAAc,GAAG,GAAG,EAAE,CAAC;wBAC/B,mCAAmC;wBACnC,IAAI,SAAS;4BAAE,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;wBACrE,aAAa,EAAE,CAAC;wBAChB,OAAO;oBACT,CAAC;oBACD,cAAc,GAAG,GAAG,CAAC;oBACrB,sCAAsC;oBACtC,UAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACvB,OAAO;gBACT,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,CAAC,cAAc,EAAE,CAAC;oBACpB,cAAc,GAAG,CAAC,CAAC;gBACrB,CAAC;gBAED,+BAA+B;gBAC/B,UAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzB,CAAC,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YAEtC,qCAAqC;YACrC,MAAM,WAAW,GAAG,GAAG,EAAE;gBACvB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,CAAC;oBACV,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,eAAe,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;oBACrF,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YACF,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAE/B,mBAAmB;YACnB,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,SAAS;oBAAE,OAAO;gBACtB,SAAS,GAAG,IAAI,CAAC;gBAEjB,YAAY,CAAC,aAAa,CAAC,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;gBAClD,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;gBAClD,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAE3B,yBAAyB;gBACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAElC,0DAA0D;gBAC1D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,0BAA0B;gBAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,0BAA0B;gBAC/D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAI,oDAAoD;gBACzF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAG,2BAA2B;gBAEhE,+CAA+C;gBAC/C,MAAM,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACzE,IAAI,cAAc,EAAE,CAAC;oBACnB,MAAM,aAAa,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;oBACvD,IAAI,aAAa,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;wBAC9B,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC;4BAC5B,IAAI,EAAE,IAAI,CAAC,UAAU;4BACrB,IAAI,EAAE,WAAW;4BACjB,OAAO,EAAE,aAAa;yBACvB,CAAC,CAAC;oBACL,CAAC;oBACD,IAAI,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBACxD,CAAC;gBAED,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;gBAED,gEAAgE;gBAChE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC;gBACjB,IAAI,CAAC,aAAa,EAAE,CAAC;gBAErB,wCAAwC;gBACxC,UAAU,CAAC,GAAG,EAAE;oBACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACpC,CAAC,EAAE,GAAG,CAAC,CAAC;YACV,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,UAAU;QAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEhB,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAChD,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,YAAY,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,YAAY,MAAM,CAAC,KAAK,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,gBAAgB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACnP,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,UAAkB;QAC5C,mCAAmC;QACnC,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC;aAC/C,OAAO,EAAE;aACT,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;QAErC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC;QACrC,MAAM,UAAU,GAAG,eAAe;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC;QAEjC,8CAA8C;QAC9C,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,UAAkB,CAAC;QACvB,IAAI,iBAAyB,CAAC;QAE9B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACpE,2BAA2B;YAC3B,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACpC,iBAAiB,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,yDAAyD;YACzD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;gBAC3B,iBAAiB,GAAG,UAAU,CAAC;YACjC,CAAC;iBAAM,CAAC;gBACN,wDAAwD;gBACxD,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,4BAA4B,MAAM,CAAC,KAAK,yBAAyB,CAAC,CAAC;gBAC/F,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,WAAW,WAAW,MAAM,CAAC,KAAK,KAAK,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBAClG,OAAO;YACT,CAAC;QACH,CAAC;QAED,oDAAoD;QACpD,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,oCAAoC,UAAU,IAAI,CAAC,CAAC;YAChE,OAAO;QACT,CAAC;QAED,wBAAwB;QACxB,IAAI,CAAC,UAAU,GAAG,UAAiC,CAAC;QAEpD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAE7C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,qDAAqD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,oBAAoB,WAAW,GAAG,iBAAiB,GAAG,MAAM,CAAC,KAAK,MAAM,WAAW,GAAG,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACrK,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,qDAAqD,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAC9F,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,iBAAiB,aAAa,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAE3E,uBAAuB;QACvB,IAAI,aAAa,GAAG,yBAAyB,iBAAiB,4EAA4E,YAAY,CAAC,OAAO,OAAO,CAAC;QAEtK,IAAI,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;YAC7B,aAAa,IAAI,2BAA2B,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC;QACzE,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACvC,CAAC;IAEO,WAAW;QACjB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,+BAA+B,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;YAC5E,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,IAAI,uBAAuB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;YACnC,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;YAEnF,IAAI,WAAmB,CAAC;YACxB,IAAI,MAAM,EAAE,CAAC;gBACX,WAAW,GAAG,GAAG,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YACzD,CAAC;YAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE;gBACrC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;gBAClC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,KAAK,IAAI,WAAW,KAAK,MAAM,CAAC,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QACpI,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;IACjE,CAAC;IAEO,KAAK,CAAC,OAAO;QACnB,6BAA6B;QAC7B,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,OAAO,GAAG,IAAI,UAAU,EAAE,CAAC;IACjC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"sdk-session.js","sourceRoot":"","sources":["../src/sdk-session.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -26,6 +26,7 @@ export declare function runCommandPty(command: string, args: string[], options?:
26
26
  }): Promise<PtyRunResult>;
27
27
  /**
28
28
  * Check if a command exists in PATH
29
+ * Uses 'where' on Windows, 'which' on Unix-like systems
29
30
  */
30
31
  export declare function commandExists(command: string): Promise<boolean>;
31
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AAOpD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,SAAS,CAAC,CA8BpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7E,OAAO,CAAC,YAAY,CAAC,CA4EvB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,YAAY,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,SAAS,CAAC,CA8BpB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7E,OAAO,CAAC,YAAY,CAAC,CA4EvB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAerE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGzE"}
package/dist/utils.js CHANGED
@@ -1,8 +1,5 @@
1
1
  import { spawn } from 'child_process';
2
- import { promisify } from 'util';
3
- import { exec as execCallback } from 'child_process';
4
2
  import * as pty from 'node-pty';
5
- const exec = promisify(execCallback);
6
3
  /**
7
4
  * Run a command and capture its output (non-interactive)
8
5
  */
@@ -103,11 +100,19 @@ export async function runCommandPty(command, args, options = {}) {
103
100
  }
104
101
  /**
105
102
  * Check if a command exists in PATH
103
+ * Uses 'where' on Windows, 'which' on Unix-like systems
106
104
  */
107
105
  export async function commandExists(command) {
106
+ // Security: Validate command name to prevent injection
107
+ // Only allow alphanumeric, dash, and underscore
108
+ if (!/^[a-zA-Z0-9_-]+$/.test(command)) {
109
+ return false;
110
+ }
108
111
  try {
109
- const { stdout } = await exec(`which ${command}`);
110
- return stdout.trim().length > 0;
112
+ // Use 'where' on Windows, 'which' on Unix-like systems
113
+ const whichCommand = process.platform === 'win32' ? 'where' : 'which';
114
+ const result = await runCommand(whichCommand, [command]);
115
+ return result.exitCode === 0 && result.stdout.trim().length > 0;
111
116
  }
112
117
  catch {
113
118
  return false;
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const VERSION: any;
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,KAAsB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { readFileSync } from 'fs';
2
+ import { join, dirname } from 'path';
3
+ import { fileURLToPath } from 'url';
4
+ const __dirname = dirname(fileURLToPath(import.meta.url));
5
+ // Read version from package.json - single source of truth
6
+ const packageJsonPath = join(__dirname, '../package.json');
7
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
8
+ export const VERSION = packageJson.version;
9
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,0DAA0D;AAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;AAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ai-code-connect",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "AI Code Connect - Bridge Claude Code and Gemini CLI",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -42,9 +42,7 @@
42
42
  "node": ">=18.0.0"
43
43
  },
44
44
  "dependencies": {
45
- "@inquirer/prompts": "^8.0.2",
46
45
  "commander": "^14.0.2",
47
- "inquirer": "^13.0.2",
48
46
  "marked": "^15.0.12",
49
47
  "marked-terminal": "^7.3.0",
50
48
  "node-pty": "^1.0.0"