4runr-os 2.0.12 → 2.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ui/v3/tui/geometry.d.ts +24 -6
- package/dist/ui/v3/tui/geometry.d.ts.map +1 -1
- package/dist/ui/v3/tui/geometry.js +68 -29
- package/dist/ui/v3/tui/geometry.js.map +1 -1
- package/dist/ui/v3/tui/terminalMode.d.ts +31 -0
- package/dist/ui/v3/tui/terminalMode.d.ts.map +1 -0
- package/dist/ui/v3/tui/terminalMode.js +76 -0
- package/dist/ui/v3/tui/terminalMode.js.map +1 -0
- package/dist/ui/v3/ui/layout/phase1Layout.d.ts.map +1 -1
- package/dist/ui/v3/ui/layout/phase1Layout.js +24 -4
- package/dist/ui/v3/ui/layout/phase1Layout.js.map +1 -1
- package/dist/ui/v3/ui/phase1RuntimeClean.d.ts.map +1 -1
- package/dist/ui/v3/ui/phase1RuntimeClean.js +160 -57
- package/dist/ui/v3/ui/phase1RuntimeClean.js.map +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* RULES (NEVER VIOLATE):
|
|
5
5
|
* 1. Always return integers
|
|
6
6
|
* 2. Clamp to minimums (prevents 0/undefined during resize)
|
|
7
|
-
* 3. Account for margins/borders
|
|
7
|
+
* 3. Account for margins/borders (right edge must be <= cols - 1)
|
|
8
8
|
* 4. Never exceed these dimensions in any widget
|
|
9
9
|
*/
|
|
10
10
|
import type { Widgets } from 'neo-blessed';
|
|
@@ -14,16 +14,34 @@ export interface TerminalGeometry {
|
|
|
14
14
|
safeCols: number;
|
|
15
15
|
safeRows: number;
|
|
16
16
|
source: 'screen' | 'stdout' | 'clamped';
|
|
17
|
+
mode: 'native' | 'ssh' | 'browser' | 'unknown';
|
|
17
18
|
timestamp: number;
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Get terminal size - SINGLE SOURCE OF TRUTH
|
|
22
|
+
*
|
|
23
|
+
* Priority (most accurate first):
|
|
24
|
+
* 1. If browser mode: Use size from client (xterm sends cols/rows via websocket)
|
|
25
|
+
* - For now, use blessed screen since we don't have websocket integration yet
|
|
26
|
+
* 2. For native/SSH terminals: process.stdout.columns/rows (most accurate, updates immediately on resize)
|
|
27
|
+
* 3. Blessed screen.program.cols/rows (accurate for blessed, but may lag on Windows)
|
|
28
|
+
* 4. Blessed screen.cols/rows (alternative blessed API)
|
|
29
|
+
* 5. Blessed screen.width/height (fallback for blessed)
|
|
30
|
+
* 6. Clamped minimums (safety)
|
|
31
|
+
*
|
|
32
|
+
* CRITICAL: For native terminals (especially Windows Terminal), process.stdout.columns/rows
|
|
33
|
+
* updates IMMEDIATELY on resize, while blessed's internal dimensions may lag or not update.
|
|
34
|
+
* We prioritize stdout for native terminals to ensure accurate dimensions during resize.
|
|
35
|
+
*/
|
|
36
|
+
export declare function getTerminalSize(screen?: Widgets.Screen): {
|
|
37
|
+
cols: number;
|
|
38
|
+
rows: number;
|
|
39
|
+
source: TerminalGeometry['source'];
|
|
40
|
+
};
|
|
19
41
|
/**
|
|
20
42
|
* Get current terminal geometry
|
|
21
43
|
*
|
|
22
|
-
*
|
|
23
|
-
* 1. Blessed screen.cols/rows (most accurate for blessed)
|
|
24
|
-
* 2. Blessed screen.width/height (fallback for blessed)
|
|
25
|
-
* 3. process.stdout.columns/rows (fallback)
|
|
26
|
-
* 4. Clamped minimums (safety)
|
|
44
|
+
* Uses getTerminalSize() as single source of truth, then applies mode-specific margins
|
|
27
45
|
*/
|
|
28
46
|
export declare function getTerminalGeometry(screen?: Widgets.Screen): TerminalGeometry;
|
|
29
47
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/tui/geometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/tui/geometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAW3C,MAAM,WAAW,gBAAgB;IAE/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACxC,IAAI,EAAE,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;IAC/C,SAAS,EAAE,MAAM,CAAC;CACnB;AAID;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAA;CAAE,CAqE3H;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAiC7E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,gBAAgB,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CASnE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,OAAO,CASjE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAG5E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAU,GAAG,MAAM,CAG9E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAE5D"}
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
* RULES (NEVER VIOLATE):
|
|
5
5
|
* 1. Always return integers
|
|
6
6
|
* 2. Clamp to minimums (prevents 0/undefined during resize)
|
|
7
|
-
* 3. Account for margins/borders
|
|
7
|
+
* 3. Account for margins/borders (right edge must be <= cols - 1)
|
|
8
8
|
* 4. Never exceed these dimensions in any widget
|
|
9
9
|
*/
|
|
10
|
+
import { detectTerminalMode } from './terminalMode.js';
|
|
10
11
|
// Absolute minimums (below this, TUI is unusable)
|
|
11
12
|
const MIN_COLS = 40;
|
|
12
13
|
const MIN_ROWS = 15;
|
|
@@ -15,64 +16,100 @@ const HORIZONTAL_MARGIN = 0; // Blessed handles borders internally
|
|
|
15
16
|
const VERTICAL_MARGIN = 0; // Blessed handles borders internally
|
|
16
17
|
let lastGeometry = null;
|
|
17
18
|
/**
|
|
18
|
-
* Get
|
|
19
|
+
* Get terminal size - SINGLE SOURCE OF TRUTH
|
|
20
|
+
*
|
|
21
|
+
* Priority (most accurate first):
|
|
22
|
+
* 1. If browser mode: Use size from client (xterm sends cols/rows via websocket)
|
|
23
|
+
* - For now, use blessed screen since we don't have websocket integration yet
|
|
24
|
+
* 2. For native/SSH terminals: process.stdout.columns/rows (most accurate, updates immediately on resize)
|
|
25
|
+
* 3. Blessed screen.program.cols/rows (accurate for blessed, but may lag on Windows)
|
|
26
|
+
* 4. Blessed screen.cols/rows (alternative blessed API)
|
|
27
|
+
* 5. Blessed screen.width/height (fallback for blessed)
|
|
28
|
+
* 6. Clamped minimums (safety)
|
|
19
29
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* 3. process.stdout.columns/rows (fallback)
|
|
24
|
-
* 4. Clamped minimums (safety)
|
|
30
|
+
* CRITICAL: For native terminals (especially Windows Terminal), process.stdout.columns/rows
|
|
31
|
+
* updates IMMEDIATELY on resize, while blessed's internal dimensions may lag or not update.
|
|
32
|
+
* We prioritize stdout for native terminals to ensure accurate dimensions during resize.
|
|
25
33
|
*/
|
|
26
|
-
export function
|
|
34
|
+
export function getTerminalSize(screen) {
|
|
35
|
+
const mode = detectTerminalMode();
|
|
36
|
+
// Future: If browser mode and we have a websocket resize message store, use that
|
|
37
|
+
// For now, use blessed screen as primary source for browser terminals
|
|
27
38
|
let cols;
|
|
28
39
|
let rows;
|
|
29
40
|
let source;
|
|
30
|
-
//
|
|
31
|
-
|
|
41
|
+
// Priority 1: For native/SSH terminals, prioritize process.stdout (updates immediately on resize)
|
|
42
|
+
// This is critical for Windows Terminal where blessed's dimensions lag during resize
|
|
43
|
+
if ((mode === 'native' || mode === 'ssh') && process.stdout.columns && process.stdout.rows) {
|
|
44
|
+
cols = process.stdout.columns;
|
|
45
|
+
rows = process.stdout.rows;
|
|
46
|
+
source = 'stdout';
|
|
47
|
+
}
|
|
48
|
+
// Priority 2: Blessed screen.program.cols/rows (most accurate for blessed, but may lag on Windows)
|
|
49
|
+
if (cols === undefined && screen && screen.program) {
|
|
50
|
+
const program = screen.program;
|
|
51
|
+
if (typeof program.cols === 'number' && typeof program.rows === 'number') {
|
|
52
|
+
cols = program.cols;
|
|
53
|
+
rows = program.rows;
|
|
54
|
+
source = 'screen';
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Priority 3: Blessed screen.cols/rows (blessed API)
|
|
58
|
+
if (cols === undefined && screen && typeof screen.cols === 'number' && typeof screen.rows === 'number') {
|
|
32
59
|
cols = screen.cols;
|
|
33
60
|
rows = screen.rows;
|
|
34
61
|
source = 'screen';
|
|
35
62
|
}
|
|
36
|
-
//
|
|
37
|
-
|
|
63
|
+
// Priority 4: Blessed screen.width/height (alternative blessed API)
|
|
64
|
+
if (cols === undefined && screen && typeof screen.width === 'number' && typeof screen.height === 'number') {
|
|
38
65
|
cols = screen.width;
|
|
39
66
|
rows = screen.height;
|
|
40
67
|
source = 'screen';
|
|
41
68
|
}
|
|
42
|
-
//
|
|
43
|
-
|
|
69
|
+
// Priority 5: process.stdout.columns/rows (fallback for browser terminals)
|
|
70
|
+
if (cols === undefined && process.stdout.columns && process.stdout.rows) {
|
|
44
71
|
cols = process.stdout.columns;
|
|
45
72
|
rows = process.stdout.rows;
|
|
46
73
|
source = 'stdout';
|
|
47
74
|
}
|
|
48
|
-
// Safety fallback
|
|
49
|
-
|
|
75
|
+
// Priority 5: Safety fallback
|
|
76
|
+
if (cols === undefined) {
|
|
50
77
|
cols = MIN_COLS;
|
|
51
78
|
rows = MIN_ROWS;
|
|
52
79
|
source = 'clamped';
|
|
53
80
|
}
|
|
81
|
+
// Ensure rows is defined (should always be set by this point, but TypeScript safety)
|
|
82
|
+
if (rows === undefined) {
|
|
83
|
+
rows = MIN_ROWS;
|
|
84
|
+
}
|
|
85
|
+
if (source === undefined) {
|
|
86
|
+
source = 'clamped';
|
|
87
|
+
}
|
|
54
88
|
// Clamp to minimums (prevents transient 0/undefined during resize)
|
|
55
89
|
cols = Math.max(MIN_COLS, Math.floor(cols));
|
|
56
90
|
rows = Math.max(MIN_ROWS, Math.floor(rows));
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
91
|
+
return { cols, rows, source };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get current terminal geometry
|
|
95
|
+
*
|
|
96
|
+
* Uses getTerminalSize() as single source of truth, then applies mode-specific margins
|
|
97
|
+
*/
|
|
98
|
+
export function getTerminalGeometry(screen) {
|
|
99
|
+
const mode = detectTerminalMode();
|
|
100
|
+
const { cols, rows, source } = getTerminalSize(screen);
|
|
101
|
+
// Apply mode-specific margins
|
|
102
|
+
// Browser terminals (CloudShell) need extra margin to prevent scrollbars
|
|
103
|
+
const isBrowserTerminal = mode === 'browser';
|
|
67
104
|
const browserTerminalMargin = isBrowserTerminal ? 12 : 0; // 12-char margin for CloudShell
|
|
68
105
|
// Additional: Hard cap for CloudShell if width is suspiciously large
|
|
69
|
-
// CloudShell viewport is often 270-275 even when it reports 282+
|
|
70
106
|
let adjustedCols = cols;
|
|
71
107
|
if (isBrowserTerminal && cols > 270) {
|
|
72
108
|
// Cap at 270 for CloudShell (conservative)
|
|
73
109
|
adjustedCols = Math.min(cols, 270);
|
|
74
110
|
}
|
|
75
|
-
// Calculate safe dimensions (accounting for margins
|
|
111
|
+
// Calculate safe dimensions (accounting for margins)
|
|
112
|
+
// CRITICAL: right edge must be <= cols - 1 to prevent scrollbars
|
|
76
113
|
const safeCols = Math.max(MIN_COLS, adjustedCols - HORIZONTAL_MARGIN - browserTerminalMargin);
|
|
77
114
|
const safeRows = Math.max(MIN_ROWS, rows - VERTICAL_MARGIN);
|
|
78
115
|
const geometry = {
|
|
@@ -81,6 +118,7 @@ export function getTerminalGeometry(screen) {
|
|
|
81
118
|
safeCols,
|
|
82
119
|
safeRows,
|
|
83
120
|
source,
|
|
121
|
+
mode,
|
|
84
122
|
timestamp: Date.now(),
|
|
85
123
|
};
|
|
86
124
|
lastGeometry = geometry;
|
|
@@ -99,6 +137,7 @@ export function hasGeometryChanged(screen) {
|
|
|
99
137
|
if (!lastGeometry)
|
|
100
138
|
return true;
|
|
101
139
|
const current = getTerminalGeometry(screen);
|
|
140
|
+
// Only check cols/rows, not safeCols/safeRows (which can change due to mode detection)
|
|
102
141
|
return (current.cols !== lastGeometry.cols ||
|
|
103
142
|
current.rows !== lastGeometry.rows);
|
|
104
143
|
}
|
|
@@ -144,6 +183,6 @@ export function clampPanelHeight(height, minHeight = 3) {
|
|
|
144
183
|
* Format geometry for debug output
|
|
145
184
|
*/
|
|
146
185
|
export function formatGeometry(geo) {
|
|
147
|
-
return `cols=${geo.cols} rows=${geo.rows} safeCols=${geo.safeCols} safeRows=${geo.safeRows} source=${geo.source}`;
|
|
186
|
+
return `cols=${geo.cols} rows=${geo.rows} safeCols=${geo.safeCols} safeRows=${geo.safeRows} source=${geo.source} mode=${geo.mode}`;
|
|
148
187
|
}
|
|
149
188
|
//# sourceMappingURL=geometry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../../src/ui/v3/tui/geometry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"geometry.js","sourceRoot":"","sources":["../../../../src/ui/v3/tui/geometry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal Mode Detection - Explicit Runtime Environment Detection
|
|
3
|
+
*
|
|
4
|
+
* Determines the terminal runtime mode to handle resize and layout correctly
|
|
5
|
+
* for each environment type.
|
|
6
|
+
*/
|
|
7
|
+
export type TerminalMode = 'native' | 'ssh' | 'browser' | 'unknown';
|
|
8
|
+
/**
|
|
9
|
+
* Detect terminal runtime mode
|
|
10
|
+
*
|
|
11
|
+
* Returns:
|
|
12
|
+
* - "native": Real local terminal (Windows Terminal / iTerm / Linux native)
|
|
13
|
+
* - "ssh": Remote terminal via SSH
|
|
14
|
+
* - "browser": Browser-based terminal (xterm.js / web terminal / CloudShell)
|
|
15
|
+
* - "unknown": Cannot determine (fallback)
|
|
16
|
+
*
|
|
17
|
+
* Detection logic:
|
|
18
|
+
* 1. Browser: Check for websocket client or CloudShell environment variables
|
|
19
|
+
* 2. SSH: Check for SSH environment variables
|
|
20
|
+
* 3. Native: Default for local terminals
|
|
21
|
+
*/
|
|
22
|
+
export declare function detectTerminalMode(): TerminalMode;
|
|
23
|
+
/**
|
|
24
|
+
* Get detection log (for debugging)
|
|
25
|
+
*/
|
|
26
|
+
export declare function getDetectionLog(): string[];
|
|
27
|
+
/**
|
|
28
|
+
* Reset detection (for testing)
|
|
29
|
+
*/
|
|
30
|
+
export declare function resetDetection(): void;
|
|
31
|
+
//# sourceMappingURL=terminalMode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminalMode.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/tui/terminalMode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC;AAKpE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,IAAI,YAAY,CAiDjD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal Mode Detection - Explicit Runtime Environment Detection
|
|
3
|
+
*
|
|
4
|
+
* Determines the terminal runtime mode to handle resize and layout correctly
|
|
5
|
+
* for each environment type.
|
|
6
|
+
*/
|
|
7
|
+
let detectedMode = null;
|
|
8
|
+
let detectionLog = [];
|
|
9
|
+
/**
|
|
10
|
+
* Detect terminal runtime mode
|
|
11
|
+
*
|
|
12
|
+
* Returns:
|
|
13
|
+
* - "native": Real local terminal (Windows Terminal / iTerm / Linux native)
|
|
14
|
+
* - "ssh": Remote terminal via SSH
|
|
15
|
+
* - "browser": Browser-based terminal (xterm.js / web terminal / CloudShell)
|
|
16
|
+
* - "unknown": Cannot determine (fallback)
|
|
17
|
+
*
|
|
18
|
+
* Detection logic:
|
|
19
|
+
* 1. Browser: Check for websocket client or CloudShell environment variables
|
|
20
|
+
* 2. SSH: Check for SSH environment variables
|
|
21
|
+
* 3. Native: Default for local terminals
|
|
22
|
+
*/
|
|
23
|
+
export function detectTerminalMode() {
|
|
24
|
+
if (detectedMode !== null) {
|
|
25
|
+
return detectedMode;
|
|
26
|
+
}
|
|
27
|
+
detectionLog = [];
|
|
28
|
+
detectionLog.push('=== Terminal Mode Detection ===');
|
|
29
|
+
// Check 1: Browser/Web terminal
|
|
30
|
+
// CloudShell sets specific environment variables
|
|
31
|
+
const hasCloudShellEnv = typeof process.env.CLOUDSHELL_SESSION !== 'undefined' ||
|
|
32
|
+
process.env.AWS_EXECUTION_ENV?.includes('CloudShell');
|
|
33
|
+
// Check for websocket/HTTP server indicators (if running in browser context)
|
|
34
|
+
// Note: In Node.js backend, we can't directly detect if frontend is browser,
|
|
35
|
+
// but we can check for CloudShell which is a known browser terminal
|
|
36
|
+
const isBrowser = hasCloudShellEnv;
|
|
37
|
+
if (isBrowser) {
|
|
38
|
+
detectedMode = 'browser';
|
|
39
|
+
detectionLog.push(`Detected: browser (CloudShell environment)`);
|
|
40
|
+
detectionLog.push(` CLOUDSHELL_SESSION: ${process.env.CLOUDSHELL_SESSION ?? 'not set'}`);
|
|
41
|
+
detectionLog.push(` AWS_EXECUTION_ENV: ${process.env.AWS_EXECUTION_ENV ?? 'not set'}`);
|
|
42
|
+
return detectedMode;
|
|
43
|
+
}
|
|
44
|
+
// Check 2: SSH
|
|
45
|
+
// SSH connections set SSH_TTY or SSH_CONNECTION
|
|
46
|
+
const hasSshEnv = typeof process.env.SSH_TTY !== 'undefined' ||
|
|
47
|
+
typeof process.env.SSH_CONNECTION !== 'undefined' ||
|
|
48
|
+
typeof process.env.SSH_CLIENT !== 'undefined';
|
|
49
|
+
if (hasSshEnv) {
|
|
50
|
+
detectedMode = 'ssh';
|
|
51
|
+
detectionLog.push(`Detected: ssh (SSH environment)`);
|
|
52
|
+
detectionLog.push(` SSH_TTY: ${process.env.SSH_TTY ?? 'not set'}`);
|
|
53
|
+
detectionLog.push(` SSH_CONNECTION: ${process.env.SSH_CONNECTION ?? 'not set'}`);
|
|
54
|
+
return detectedMode;
|
|
55
|
+
}
|
|
56
|
+
// Default: Native terminal (Windows Terminal, iTerm, Linux native terminal)
|
|
57
|
+
detectedMode = 'native';
|
|
58
|
+
detectionLog.push(`Detected: native (local terminal)`);
|
|
59
|
+
detectionLog.push(` Platform: ${process.platform}`);
|
|
60
|
+
detectionLog.push(` TERM: ${process.env.TERM ?? 'not set'}`);
|
|
61
|
+
return detectedMode;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Get detection log (for debugging)
|
|
65
|
+
*/
|
|
66
|
+
export function getDetectionLog() {
|
|
67
|
+
return [...detectionLog];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reset detection (for testing)
|
|
71
|
+
*/
|
|
72
|
+
export function resetDetection() {
|
|
73
|
+
detectedMode = null;
|
|
74
|
+
detectionLog = [];
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=terminalMode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terminalMode.js","sourceRoot":"","sources":["../../../../src/ui/v3/tui/terminalMode.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,IAAI,YAAY,GAAwB,IAAI,CAAC;AAC7C,IAAI,YAAY,GAAa,EAAE,CAAC;AAEhC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB;IAChC,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,YAAY,GAAG,EAAE,CAAC;IAClB,YAAY,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAErD,gCAAgC;IAChC,iDAAiD;IACjD,MAAM,gBAAgB,GACpB,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,WAAW;QACrD,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC;IAExD,6EAA6E;IAC7E,6EAA6E;IAC7E,oEAAoE;IACpE,MAAM,SAAS,GAAG,gBAAgB,CAAC;IAEnC,IAAI,SAAS,EAAE,CAAC;QACd,YAAY,GAAG,SAAS,CAAC;QACzB,YAAY,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;QAChE,YAAY,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,SAAS,EAAE,CAAC,CAAC;QAC1F,YAAY,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,SAAS,EAAE,CAAC,CAAC;QACxF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,eAAe;IACf,gDAAgD;IAChD,MAAM,SAAS,GACb,OAAO,OAAO,CAAC,GAAG,CAAC,OAAO,KAAK,WAAW;QAC1C,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,WAAW;QACjD,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,WAAW,CAAC;IAEhD,IAAI,SAAS,EAAE,CAAC;QACd,YAAY,GAAG,KAAK,CAAC;QACrB,YAAY,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QACrD,YAAY,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC,CAAC;QACpE,YAAY,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,SAAS,EAAE,CAAC,CAAC;QAClF,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,4EAA4E;IAC5E,YAAY,GAAG,QAAQ,CAAC;IACxB,YAAY,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;IACvD,YAAY,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACrD,YAAY,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IAE9D,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,YAAY,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,YAAY,GAAG,IAAI,CAAC;IACpB,YAAY,GAAG,EAAE,CAAC;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase1Layout.d.ts","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"phase1Layout.d.ts","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAGD,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,eAAO,MAAM,UAAU,KAAK,CAAC;AAM7B;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,YAAY,CA6OxG"}
|
|
@@ -57,10 +57,8 @@ export function computePhase1Layout(width, height, screen) {
|
|
|
57
57
|
// can trust safeWidth and only subtract gutters for local terminals
|
|
58
58
|
// ============================================================================
|
|
59
59
|
const totalGutters = GUTTER * 2; // 2 gutters between 3 columns
|
|
60
|
-
// Detect if this is a browser terminal (geometry
|
|
61
|
-
const isBrowserTerminal =
|
|
62
|
-
process.env.AWS_EXECUTION_ENV?.includes('CloudShell') ||
|
|
63
|
-
(process.stdout.columns && geo.cols === process.stdout.columns && geo.cols > 200);
|
|
60
|
+
// Detect if this is a browser terminal (use mode from geometry - authoritative)
|
|
61
|
+
const isBrowserTerminal = geo.mode === 'browser';
|
|
64
62
|
// For local terminals: use FULL width (safeWidth = cols for local terminals)
|
|
65
63
|
// For browser terminals: geometry.ts already subtracted browser margin, so use safeWidth as-is
|
|
66
64
|
// Use full safeWidth minus only the gutters needed for column spacing
|
|
@@ -209,6 +207,28 @@ export function computePhase1Layout(width, height, screen) {
|
|
|
209
207
|
if (layout.commandLine.top + layout.commandLine.height > safeHeight) {
|
|
210
208
|
errors.push(`Command line overflow: ${layout.commandLine.top + layout.commandLine.height} > ${safeHeight}`);
|
|
211
209
|
}
|
|
210
|
+
// DEBUG MODE: Assert right edge <= cols - 1 for all panels (prevents horizontal scrollbar)
|
|
211
|
+
const isDebugMode = process.env.TUI_DEBUG === '1';
|
|
212
|
+
if (isDebugMode) {
|
|
213
|
+
const panels = [
|
|
214
|
+
{ name: 'POSTURE', rect: layout.posture },
|
|
215
|
+
{ name: 'RESOURCES', rect: layout.resources },
|
|
216
|
+
{ name: 'ASSETS', rect: layout.assets },
|
|
217
|
+
{ name: 'OPERATIONS', rect: layout.operations },
|
|
218
|
+
{ name: 'NETWORK', rect: layout.network },
|
|
219
|
+
{ name: 'CAPABILITIES', rect: layout.capabilities },
|
|
220
|
+
{ name: 'COMMAND_LINE', rect: layout.commandLine },
|
|
221
|
+
];
|
|
222
|
+
for (const { name, rect } of panels) {
|
|
223
|
+
const rightEdge = rect.left + rect.width;
|
|
224
|
+
// CRITICAL: right edge must be <= cols - 1 to prevent scrollbar
|
|
225
|
+
// For safeCols, use <= safeCols - 1 (accounting for browser margins)
|
|
226
|
+
const maxRightEdge = safeWidth - 1;
|
|
227
|
+
if (rightEdge > maxRightEdge) {
|
|
228
|
+
errors.push(`⚠ WARNING: ${name} right edge overflow: ${rightEdge} > ${maxRightEdge} (cols=${geo.cols}, safeCols=${safeWidth})`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
212
232
|
if (errors.length > 0) {
|
|
213
233
|
return {
|
|
214
234
|
ok: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase1Layout.js","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,mBAAmB,EAAqC,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"phase1Layout.js","sourceRoot":"","sources":["../../../../../src/ui/v3/ui/layout/phase1Layout.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase1RuntimeClean.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/ui/phase1RuntimeClean.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"phase1RuntimeClean.d.ts","sourceRoot":"","sources":["../../../../src/ui/v3/ui/phase1RuntimeClean.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6MH;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6LxD;AAujBD;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAyJrC"}
|
|
@@ -23,8 +23,9 @@ import { renderNetworkPanel } from './panels/NetworkPanel.js';
|
|
|
23
23
|
import { renderCapabilitiesPanel } from './panels/CapabilitiesPanel.js';
|
|
24
24
|
import { isAvailable } from '../state/value.js';
|
|
25
25
|
import { parse, execute, UiAction } from '../commands/commandEngine.js';
|
|
26
|
-
import { BOOT_ID, isDebugMode, trackWidget, trackListenerBinding,
|
|
27
|
-
import { getTerminalGeometry,
|
|
26
|
+
import { BOOT_ID, isDebugMode, trackWidget, trackListenerBinding, installStdoutMonkeypatch, updateResizeStats } from './debugUtils.js';
|
|
27
|
+
import { getTerminalGeometry, isGeometryStable, formatGeometry } from '../tui/geometry.js';
|
|
28
|
+
import { detectTerminalMode, getDetectionLog } from '../tui/terminalMode.js';
|
|
28
29
|
const blessedLib = blessed;
|
|
29
30
|
const PROMPT = '4runr> ';
|
|
30
31
|
// Phase B1: Global mount guard - ONE SCREEN. ONE MOUNT. FOREVER.
|
|
@@ -49,7 +50,8 @@ let cursorPosition = PROMPT.length;
|
|
|
49
50
|
let scrollOffset = 0;
|
|
50
51
|
// Phase C1: Resize debounce (prevent resize storm)
|
|
51
52
|
let resizeDebounceTimer = null;
|
|
52
|
-
|
|
53
|
+
let lastAppliedSize = null;
|
|
54
|
+
const RESIZE_DEBOUNCE_MS = 200; // 200ms debounce to handle resize storms
|
|
53
55
|
let resizeEventCount = 0;
|
|
54
56
|
let resizeApplyCount = 0;
|
|
55
57
|
// Resize handler guard (Step 4A: bind once)
|
|
@@ -172,6 +174,21 @@ export async function startPhase1Runtime() {
|
|
|
172
174
|
}
|
|
173
175
|
// Log boot ID and terminal size
|
|
174
176
|
log('SYS', `TUI starting (bootId=${BOOT_ID})`);
|
|
177
|
+
// Detect and log terminal mode (once at boot)
|
|
178
|
+
const terminalMode = detectTerminalMode();
|
|
179
|
+
const detectionLog = getDetectionLog();
|
|
180
|
+
log('SYS', `Terminal mode: ${terminalMode}`);
|
|
181
|
+
if (isDebugMode()) {
|
|
182
|
+
for (const line of detectionLog) {
|
|
183
|
+
log('DBG', line);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Hard guard: Check global TUI initialization flag
|
|
187
|
+
if (globalThis.__TUI_INITIALIZED__) {
|
|
188
|
+
log('ERR', 'TUI already initialized - refusing to re-init', 'ERROR');
|
|
189
|
+
throw new Error('TUI already initialized - cannot reinitialize');
|
|
190
|
+
}
|
|
191
|
+
globalThis.__TUI_INITIALIZED__ = true;
|
|
175
192
|
// Issue 2 - Step 2: Patch console in TUI mode (failsafe)
|
|
176
193
|
// This prevents any library or accidental console.log from breaking the TUI
|
|
177
194
|
const originalLog = console.log;
|
|
@@ -217,6 +234,8 @@ export async function startPhase1Runtime() {
|
|
|
217
234
|
// Step 2: Get geometry from authoritative source (screen values are authoritative)
|
|
218
235
|
// Pass screen so geometry can read screen.cols/rows directly
|
|
219
236
|
const geo = getTerminalGeometry(screen);
|
|
237
|
+
// Initialize last applied size (prevents duplicate processing on first resize)
|
|
238
|
+
lastAppliedSize = { cols: geo.cols, rows: geo.rows };
|
|
220
239
|
const layoutResult = computePhase1Layout(geo.cols, geo.rows, screen);
|
|
221
240
|
if (!layoutResult.ok || !layoutResult.layout) {
|
|
222
241
|
const errorMsg = layoutResult.errorMessage || 'Terminal too small';
|
|
@@ -303,6 +322,58 @@ export async function startPhase1Runtime() {
|
|
|
303
322
|
level: 'INFO'
|
|
304
323
|
});
|
|
305
324
|
}
|
|
325
|
+
/**
|
|
326
|
+
* Schedule resize application with throttling and "last applied" guard
|
|
327
|
+
*
|
|
328
|
+
* Ensures:
|
|
329
|
+
* - Debounce: Multiple rapid resize events result in single layout update
|
|
330
|
+
* - Ignore duplicates: Skip if size hasn't changed from last applied
|
|
331
|
+
* - Single render: Only one render per resize application
|
|
332
|
+
*/
|
|
333
|
+
function scheduleResize(nextCols, nextRows, screen, widgets) {
|
|
334
|
+
// Check if this is the same as last applied (ignore duplicates)
|
|
335
|
+
if (lastAppliedSize && lastAppliedSize.cols === nextCols && lastAppliedSize.rows === nextRows) {
|
|
336
|
+
return; // Same size, no need to recompute
|
|
337
|
+
}
|
|
338
|
+
// Cancel any pending resize
|
|
339
|
+
if (resizeDebounceTimer) {
|
|
340
|
+
clearTimeout(resizeDebounceTimer);
|
|
341
|
+
}
|
|
342
|
+
// Schedule resize application
|
|
343
|
+
resizeDebounceTimer = setTimeout(() => {
|
|
344
|
+
resizeDebounceTimer = null;
|
|
345
|
+
resizeApplyCount++;
|
|
346
|
+
// Update last applied size BEFORE processing (prevents duplicate processing)
|
|
347
|
+
lastAppliedSize = { cols: nextCols, rows: nextRows };
|
|
348
|
+
updateResizeStats({ eventCount: resizeEventCount, applyCount: resizeApplyCount });
|
|
349
|
+
// Get current geometry (always fresh from screen)
|
|
350
|
+
const geo = getTerminalGeometry(screen);
|
|
351
|
+
// Verify we're applying the expected size
|
|
352
|
+
if (geo.cols !== nextCols || geo.rows !== nextRows) {
|
|
353
|
+
// Screen dimensions changed while debouncing - use current screen dimensions
|
|
354
|
+
if (isDebugMode()) {
|
|
355
|
+
log('DBG', `Size changed during debounce: requested ${nextCols}x${nextRows}, using ${geo.cols}x${geo.rows}`);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// Throttle resize logging to prevent spam (only log every 5th resize apply)
|
|
359
|
+
if (isDebugMode() && resizeApplyCount % 5 === 0) {
|
|
360
|
+
log('DBG', `Resize apply #${resizeApplyCount} (${resizeEventCount} events): ${formatGeometry(geo)}`);
|
|
361
|
+
const screenCols = screen.cols ?? screen.program?.cols ?? screen.width;
|
|
362
|
+
const screenRows = screen.rows ?? screen.program?.rows ?? screen.height;
|
|
363
|
+
log('DBG', `screen.cols=${screenCols} screen.rows=${screenRows} screen.width=${screen.width} screen.height=${screen.height}`);
|
|
364
|
+
}
|
|
365
|
+
// Resize = REFLOW ONLY (layoutUI reads geometry fresh from screen)
|
|
366
|
+
layoutUI(screen, widgets);
|
|
367
|
+
// Render once (no logging inside render)
|
|
368
|
+
screen.render();
|
|
369
|
+
// Validate no duplication occurred
|
|
370
|
+
const widgetCount = screen.children?.length || 0;
|
|
371
|
+
const commandLineCount = screen.children?.filter((w) => w === widgets.commandLine).length || 0;
|
|
372
|
+
if (commandLineCount > 1) {
|
|
373
|
+
log('ERR', `DUPLICATION DETECTED: ${commandLineCount} command lines!`, 'ERROR');
|
|
374
|
+
}
|
|
375
|
+
}, RESIZE_DEBOUNCE_MS);
|
|
376
|
+
}
|
|
306
377
|
/**
|
|
307
378
|
* Step 2: Resize handler - UPDATE LAYOUT ONLY
|
|
308
379
|
* Step 4A: Bind once guard
|
|
@@ -315,10 +386,10 @@ function setupResizeHandling(screen, widgets, unbindFns) {
|
|
|
315
386
|
}
|
|
316
387
|
resizeHandlerBound = true;
|
|
317
388
|
updateResizeStats({ handlerBound: true });
|
|
318
|
-
|
|
319
|
-
|
|
389
|
+
// Common resize handler (used by both screen and stdout resize events)
|
|
390
|
+
const handleResize = () => {
|
|
320
391
|
resizeEventCount++;
|
|
321
|
-
//
|
|
392
|
+
// Check geometry stability (reject impossible sizes)
|
|
322
393
|
if (!isGeometryStable(screen)) {
|
|
323
394
|
if (isDebugMode()) {
|
|
324
395
|
const geo = getTerminalGeometry(screen);
|
|
@@ -326,58 +397,85 @@ function setupResizeHandling(screen, widgets, unbindFns) {
|
|
|
326
397
|
}
|
|
327
398
|
return;
|
|
328
399
|
}
|
|
329
|
-
//
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
//
|
|
334
|
-
|
|
335
|
-
|
|
400
|
+
// CRITICAL FIX for Windows Terminal / native terminals:
|
|
401
|
+
// process.stdout.columns/rows updates IMMEDIATELY on resize,
|
|
402
|
+
// while blessed's internal dimensions may lag or not update at all.
|
|
403
|
+
// For native terminals, prioritize stdout (most accurate during resize).
|
|
404
|
+
// For browser terminals, blessed screen dimensions are more reliable.
|
|
405
|
+
const mode = detectTerminalMode();
|
|
406
|
+
let cols;
|
|
407
|
+
let rows;
|
|
408
|
+
if (mode === 'native' || mode === 'ssh') {
|
|
409
|
+
// Native/SSH: Prioritize process.stdout (updates immediately on resize)
|
|
410
|
+
cols = process.stdout.columns ?? undefined;
|
|
411
|
+
rows = process.stdout.rows ?? undefined;
|
|
412
|
+
// Fallback to blessed if stdout not available
|
|
413
|
+
if (cols === undefined) {
|
|
414
|
+
cols = screen.cols ?? screen.program?.cols ?? screen.width;
|
|
415
|
+
}
|
|
416
|
+
if (rows === undefined) {
|
|
417
|
+
rows = screen.rows ?? screen.program?.rows ?? screen.height;
|
|
418
|
+
}
|
|
336
419
|
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
//
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
const screenRows = screen.rows ?? screen.height ?? 24;
|
|
345
|
-
const geo = getTerminalGeometry(screen);
|
|
346
|
-
// Throttle resize logging to prevent spam (only log every 5th resize apply)
|
|
347
|
-
if (isDebugMode() && resizeApplyCount % 5 === 0) {
|
|
348
|
-
log('DBG', `Resize apply #${resizeApplyCount} (${resizeEventCount} events): ${formatGeometry(geo)}`);
|
|
349
|
-
log('DBG', `screen.cols=${screenCols} screen.rows=${screenRows} screen.width=${screen.width} screen.height=${screen.height}`);
|
|
420
|
+
else {
|
|
421
|
+
// Browser: Use blessed screen dimensions (more reliable for web terminals)
|
|
422
|
+
cols = screen.cols ?? screen.program?.cols ?? screen.width;
|
|
423
|
+
rows = screen.rows ?? screen.program?.rows ?? screen.height;
|
|
424
|
+
// Fallback to stdout if blessed not available
|
|
425
|
+
if (cols === undefined) {
|
|
426
|
+
cols = process.stdout.columns ?? undefined;
|
|
350
427
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
layoutUI(screen, widgets);
|
|
354
|
-
// Render once (no logging inside render)
|
|
355
|
-
screen.render();
|
|
356
|
-
// Phase B1: Validate no duplication occurred
|
|
357
|
-
const widgetCount = screen.children?.length || 0;
|
|
358
|
-
const commandLineCount = screen.children?.filter((w) => w === widgets.commandLine).length || 0;
|
|
359
|
-
if (commandLineCount > 1) {
|
|
360
|
-
log('ERR', `DUPLICATION DETECTED: ${commandLineCount} command lines!`, 'ERROR');
|
|
428
|
+
if (rows === undefined) {
|
|
429
|
+
rows = process.stdout.rows ?? undefined;
|
|
361
430
|
}
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
431
|
+
}
|
|
432
|
+
// Final fallback
|
|
433
|
+
cols = cols ?? 80;
|
|
434
|
+
rows = rows ?? 24;
|
|
435
|
+
// Force blessed to update its internal dimensions if they're stale
|
|
436
|
+
// This ensures getTerminalSize() returns correct values on next call
|
|
437
|
+
if (screen.program && typeof screen.program.cols !== 'undefined') {
|
|
438
|
+
// If blessed's dimensions don't match stdout, force an update
|
|
439
|
+
if (mode === 'native' && process.stdout.columns &&
|
|
440
|
+
screen.program.cols !== process.stdout.columns) {
|
|
441
|
+
// Force blessed to re-read terminal size by triggering a resize on the program
|
|
442
|
+
if (isDebugMode()) {
|
|
443
|
+
log('DBG', `Blessed stale: screen.program.cols=${screen.program.cols}, stdout.columns=${process.stdout.columns}`);
|
|
444
|
+
}
|
|
445
|
+
// Blessed will update on next render, but we use stdout values immediately
|
|
366
446
|
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
447
|
+
}
|
|
448
|
+
// Check if geometry actually changed from last known
|
|
449
|
+
// Compare directly against lastAppliedSize (don't use getTerminalGeometry which may have stale blessed values)
|
|
450
|
+
if (lastAppliedSize && lastAppliedSize.cols === cols && lastAppliedSize.rows === rows) {
|
|
451
|
+
if (isDebugMode() && resizeEventCount % 10 === 0) {
|
|
452
|
+
log('DBG', `Resize event #${resizeEventCount} ignored: size unchanged (${cols}x${rows})`);
|
|
370
453
|
}
|
|
371
|
-
|
|
454
|
+
return; // No-op resize, ignore
|
|
455
|
+
}
|
|
456
|
+
// Schedule resize application (debounced + duplicate guard)
|
|
457
|
+
scheduleResize(cols, rows, screen, widgets);
|
|
372
458
|
};
|
|
373
459
|
// Debug: Track listener binding
|
|
374
460
|
trackListenerBinding('resize');
|
|
375
|
-
screen
|
|
461
|
+
// Bind to blessed screen resize event
|
|
462
|
+
screen.on('resize', handleResize);
|
|
463
|
+
// Also bind to process.stdout resize (for Windows compatibility)
|
|
464
|
+
// Both handlers call the same function to avoid double-processing
|
|
465
|
+
if (process.stdout.on && typeof process.stdout.on === 'function') {
|
|
466
|
+
process.stdout.on('resize', handleResize);
|
|
467
|
+
}
|
|
376
468
|
unbindFns.push(() => {
|
|
377
|
-
//
|
|
378
|
-
screen.off('resize',
|
|
469
|
+
// Unbind screen resize
|
|
470
|
+
screen.off('resize', handleResize);
|
|
471
|
+
// Unbind stdout resize
|
|
472
|
+
if (process.stdout.removeListener && typeof process.stdout.removeListener === 'function') {
|
|
473
|
+
process.stdout.removeListener('resize', handleResize);
|
|
474
|
+
}
|
|
475
|
+
// Clear pending resize timer
|
|
379
476
|
if (resizeDebounceTimer) {
|
|
380
477
|
clearTimeout(resizeDebounceTimer);
|
|
478
|
+
resizeDebounceTimer = null;
|
|
381
479
|
}
|
|
382
480
|
});
|
|
383
481
|
}
|
|
@@ -719,16 +817,11 @@ export function dumpLayout() {
|
|
|
719
817
|
lines.push(`Raw terminal: ${geo.cols} cols x ${geo.rows} rows`);
|
|
720
818
|
lines.push(`Safe terminal: ${geo.safeCols} cols x ${geo.safeRows} rows`);
|
|
721
819
|
lines.push(`Source: ${geo.source}`);
|
|
820
|
+
lines.push(`Mode: ${geo.mode}`);
|
|
722
821
|
lines.push(`Screen object: width=${screen.width} height=${screen.height} cols=${screen.cols ?? 'N/A'} rows=${screen.rows ?? 'N/A'}`);
|
|
822
|
+
lines.push(`Screen program: cols=${screen.program?.cols ?? 'N/A'} rows=${screen.program?.rows ?? 'N/A'}`);
|
|
723
823
|
lines.push(`process.stdout: columns=${process.stdout.columns} rows=${process.stdout.rows}`);
|
|
724
|
-
|
|
725
|
-
const isBrowserTerminal = typeof process.env.CLOUDSHELL_SESSION !== 'undefined' ||
|
|
726
|
-
process.env.AWS_EXECUTION_ENV?.includes('CloudShell');
|
|
727
|
-
lines.push(`Browser terminal detected: ${isBrowserTerminal}`);
|
|
728
|
-
if (isBrowserTerminal) {
|
|
729
|
-
lines.push(` CLOUDSHELL_SESSION: ${process.env.CLOUDSHELL_SESSION ?? 'not set'}`);
|
|
730
|
-
lines.push(` AWS_EXECUTION_ENV: ${process.env.AWS_EXECUTION_ENV ?? 'not set'}`);
|
|
731
|
-
}
|
|
824
|
+
lines.push(`Last applied size: ${lastAppliedSize ? `${lastAppliedSize.cols}x${lastAppliedSize.rows}` : 'none'}`);
|
|
732
825
|
lines.push(``);
|
|
733
826
|
// Layout calculations (if available)
|
|
734
827
|
if (layoutResult.ok && layoutResult.layout) {
|
|
@@ -803,8 +896,13 @@ export function dumpLayout() {
|
|
|
803
896
|
lines.push(` position: (${left}, ${top})`);
|
|
804
897
|
lines.push(` size: ${width}w x ${height}h`);
|
|
805
898
|
lines.push(` bounds: left=${left} right=${right} top=${top} bottom=${bottom}`);
|
|
806
|
-
lines.push(` right edge: ${right} (terminal: ${geo.safeCols})`);
|
|
807
|
-
lines.push(` bottom edge: ${bottom} (terminal: ${geo.safeRows})`);
|
|
899
|
+
lines.push(` right edge: ${right} (terminal safeCols: ${geo.safeCols}, raw cols: ${geo.cols})`);
|
|
900
|
+
lines.push(` bottom edge: ${bottom} (terminal safeRows: ${geo.safeRows}, raw rows: ${geo.rows})`);
|
|
901
|
+
// Check for overflow (right edge must be <= cols - 1)
|
|
902
|
+
const maxRightEdge = geo.safeCols - 1;
|
|
903
|
+
if (right > maxRightEdge) {
|
|
904
|
+
lines.push(` ⚠ OVERFLOW: right edge ${right} > ${maxRightEdge} (will cause scrollbar!)`);
|
|
905
|
+
}
|
|
808
906
|
lines.push(``);
|
|
809
907
|
}
|
|
810
908
|
lines.push(`--- SUMMARY ---`);
|
|
@@ -813,6 +911,11 @@ export function dumpLayout() {
|
|
|
813
911
|
lines.push(`Unused width: ${geo.safeCols - maxRight} chars (${((geo.safeCols - maxRight) / geo.safeCols * 100).toFixed(1)}%)`);
|
|
814
912
|
lines.push(`Unused height: ${geo.safeRows - maxBottom} rows (${((geo.safeRows - maxBottom) / geo.safeRows * 100).toFixed(1)}%)`);
|
|
815
913
|
lines.push(``);
|
|
914
|
+
// Overflow checks
|
|
915
|
+
const maxAllowedRight = geo.safeCols - 1;
|
|
916
|
+
if (maxRight > maxAllowedRight) {
|
|
917
|
+
lines.push(`⚠ CRITICAL: Layout overflow detected! Max right edge ${maxRight} > ${maxAllowedRight} (will cause horizontal scrollbar)`);
|
|
918
|
+
}
|
|
816
919
|
if (maxRight < geo.safeCols - 5) {
|
|
817
920
|
lines.push(`⚠ WARNING: Significant unused width detected (${geo.safeCols - maxRight} chars)`);
|
|
818
921
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase1RuntimeClean.js","sourceRoot":"","sources":["../../../../src/ui/v3/ui/phase1RuntimeClean.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"phase1RuntimeClean.js","sourceRoot":"","sources":["../../../../src/ui/v3/ui/phase1RuntimeClean.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,OAAO,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAkC,MAAM,gBAAgB,CAAC;AAC3H,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,EACL,OAAO,EACP,WAAW,EACX,WAAW,EACX,oBAAoB,EAIpB,wBAAwB,EAExB,iBAAiB,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,mBAAmB,EAEnB,gBAAgB,EAChB,cAAc,EACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE7E,MAAM,UAAU,GAAG,OAAc,CAAC;AAClC,MAAM,MAAM,GAAG,SAAS,CAAC;AAEzB,iEAAiE;AACjE,IAAK,UAAkB,CAAC,eAAe,EAAE,CAAC;IACxC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;AACvE,CAAC;AAED,wDAAwD;AACxD,IAAI,OAAO,GAAG,KAAK,CAAC;AAEpB,mDAAmD;AACnD,IAAI,OAAO,GAAqB,IAAI,CAAC;AAErC,mBAAmB;AACnB,IAAI,cAAc,GAAY;IAC5B,GAAG,cAAc;IACjB,OAAO,EAAE,sBAAsB,EAAE;CAClC,CAAC;AAEF,kBAAkB;AAClB,MAAM,cAAc,GAAa,EAAE,CAAC;AACpC,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;AAEtB,cAAc;AACd,IAAI,iBAAiB,GAAG,MAAM,CAAC;AAC/B,IAAI,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;AACnC,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB,mDAAmD;AACnD,IAAI,mBAAmB,GAA0B,IAAI,CAAC;AACtD,IAAI,eAAe,GAA0C,IAAI,CAAC;AAClE,MAAM,kBAAkB,GAAG,GAAG,CAAC,CAAC,yCAAyC;AACzE,IAAI,gBAAgB,GAAG,CAAC,CAAC;AACzB,IAAI,gBAAgB,GAAG,CAAC,CAAC;AAEzB,4CAA4C;AAC5C,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B;;;GAGG;AACH,SAAS,GAAG,CAAC,GAAU,EAAE,GAAW,EAAE,QAAmC,MAAM;IAC7E,QAAQ,CAAC,IAAI,CAAC;QACZ,GAAG;QACH,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,OAAO,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG;QACrD,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,MAAsB,EAAE,MAAmB;IAC7D,sDAAsD;IACtD,IAAK,MAAc,CAAC,MAAM,EAAE,CAAC;QAC3B,GAAG,CAAC,KAAK,EAAE,kDAAkD,EAAE,MAAM,CAAC,CAAC;QACvE,OAAO;IACT,CAAC;IAED,6CAA6C;IAC7C,MAAM,QAAQ,GAAI,MAAc,CAAC,QAAQ,IAAI,EAAE,CAAC;IAChD,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,KAAK,EAAE,0DAA0D,EAAE,MAAM,CAAC,CAAC;QAC/E,OAAO;IACT,CAAC;IAED,iBAAiB;IACjB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,MAAsB,EAAE,MAAW;IAClD,oDAAoD;IACpD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,GAAG,IAAI,CAAC;IAEf,qDAAqD;IACrD,MAAM,cAAc,GAAc;QAChC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;QACvD,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC;QAC7D,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;QACpD,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;QAChE,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;QACvD,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC;QACtE,WAAW,EAAE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;QAC9C,WAAW,EAAE,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC;KAC/C,CAAC;IAEF,mDAAmD;IACnD,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IAC7C,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAC;IAC1C,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC9C,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;IAC3C,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,YAAY,CAAC,CAAC;IAChD,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAC/C,UAAU,CAAC,MAAM,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC;IAE/C,2CAA2C;IAC3C,MAAM,YAAY,GAAI,MAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;IAC3D,GAAG,CAAC,KAAK,EAAE,eAAe,YAAY,UAAU,CAAC,CAAC;IAElD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ,CAAC,MAAsB,EAAE,OAAkB;IAC1D,qFAAqF;IACrF,8EAA8E;IAC9E,MAAM,UAAU,GAAI,MAAc,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC9D,MAAM,UAAU,GAAI,MAAc,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAExC,qFAAqF;IACrF,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAEzE,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC7C,GAAG,CAAC,KAAK,EAAE,uBAAuB,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,UAAU,SAAS,IAAI,UAAU,GAAG,EAAE,MAAM,CAAC,CAAC;QACpG,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IAEnC,iEAAiE;IACjE,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACxD,kBAAkB,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAClD,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC1D,kBAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACpD,kBAAkB,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAE9D,mEAAmE;IACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IAC/D,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,WAAW,GAAG,CAAC,CAAC;IAEhE,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE;QACtC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG;QAC3B,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;QAC7B,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC,CAAC;IACH,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE;QACtC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG;QAC3B,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,WAAW,GAAG,CAAC;QAC/C,KAAK,EAAE,YAAY;QACnB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;KAClC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,eAAe,CAAC,OAAO,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,wDAAwD;IACxD,IAAI,WAAW,EAAE,EAAE,CAAC;QAClB,8DAA8D;QAC9D,GAAG,CAAC,KAAK,EAAE,yCAAyC,EAAE,OAAO,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,gCAAgC;IAChC,GAAG,CAAC,KAAK,EAAE,wBAAwB,OAAO,GAAG,CAAC,CAAC;IAE/C,8CAA8C;IAC9C,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAC1C,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,GAAG,CAAC,KAAK,EAAE,kBAAkB,YAAY,EAAE,CAAC,CAAC;IAC7C,IAAI,WAAW,EAAE,EAAE,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAK,UAAkB,CAAC,mBAAmB,EAAE,CAAC;QAC5C,GAAG,CAAC,KAAK,EAAE,+CAA+C,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IACnE,CAAC;IACA,UAAkB,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAE/C,yDAAyD;IACzD,4EAA4E;IAC5E,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAChC,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IACpC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAElC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QAC/B,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC;IACF,OAAO,CAAC,KAAK,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACjC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC,CAAC;IACF,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QAChC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC;IAEF,6DAA6D;IAC7D,aAAa,EAAE,CAAC;IAEhB,mBAAmB;IACnB,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,uBAAuB;IACvB,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;QAC/B,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,KAAK;QACd,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,KAAK;QAChB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,KAAK;KACnB,CAAmB,CAAC;IAErB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,+BAA+B;IAC/B,GAAG,CAAC,KAAK,EAAE,gBAAgB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAE5D,cAAc;IACd,IAAK,MAAc,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;QACvC,MAAc,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED,mFAAmF;IACnF,6DAA6D;IAC7D,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAExC,+EAA+E;IAC/E,eAAe,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAErD,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAErE,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QAC7C,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,IAAI,oBAAoB,CAAC;QACnE,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;IAEnC,+BAA+B;IAC/B,IAAI,WAAW,EAAE,EAAE,CAAC;QAClB,GAAG,CAAC,KAAK,EAAE,uBAAuB,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAClF,GAAG,CAAC,KAAK,EAAE,SAAS,MAAM,CAAC,OAAO,CAAC,KAAK,cAAc,MAAM,CAAC,UAAU,CAAC,KAAK,aAAa,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QACnH,GAAG,CAAC,KAAK,EAAE,4BAA4B,MAAM,CAAC,OAAO,CAAC,IAAI,WAAW,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7F,GAAG,CAAC,KAAK,EAAE,eAAe,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,kBAAkB,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IACrG,CAAC;IAED,qCAAqC;IACrC,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC,yBAAyB;IACzB,MAAM,SAAS,GAAsB,EAAE,CAAC;IAExC,mDAAmD;IACnD,MAAM,0BAA0B,GAAG,wBAAwB,EAAE,CAAC;IAC9D,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAE3C,6BAA6B;IAC7B,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,WAAW,CAAC;QAC1B,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC;QAC9B,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,eAAe,GAAG,CAAC,KAAY,EAAE,EAAE;QACvC,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,CAAC,MAAW,EAAE,EAAE;QACvC,GAAG,CAAC,KAAK,EAAE,wBAAwB,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IACjD,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;IACnD,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;QAC7D,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,uBAAuB;IACvB,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAE3D,yDAAyD;IACzD,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IAEhD,wBAAwB;IACxB,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACtC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QAChD,OAAO,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,gBAAgB;IAChB,MAAM,OAAO,GAAc;QACzB,MAAM;QACN,OAAO;QACP,SAAS,EAAE,IAAI;QACf,SAAS;KACV,CAAC;IACF,YAAY,CAAC,OAAO,CAAC,CAAC;IAEtB,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAc,EAAE,EAAE;QACpC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,OAAO,EAAE,CAAC;YACZ,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,eAAe,CAAC,OAAO,CAAC,CAAC;IAEzB,iBAAiB;IACjB,MAAM,CAAC,MAAM,EAAE,CAAC;IAEhB,qCAAqC;IACpC,UAAkB,CAAC,eAAe,GAAG,IAAI,CAAC;IAE3C,qDAAqD;IACrD,gBAAgB,EAAE,CAAC;IAEnB,iCAAiC;IACjC,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAExC,WAAW;IACX,QAAQ,CAAC,IAAI,CAAC;QACZ,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,iBAAiB;QACtB,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,cAAc,CAAC,QAAgB,EAAE,QAAgB,EAAE,MAAsB,EAAE,OAAkB;IACpG,gEAAgE;IAChE,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9F,OAAO,CAAC,kCAAkC;IAC5C,CAAC;IAED,4BAA4B;IAC5B,IAAI,mBAAmB,EAAE,CAAC;QACxB,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACpC,CAAC;IAED,8BAA8B;IAC9B,mBAAmB,GAAG,UAAU,CAAC,GAAG,EAAE;QACpC,mBAAmB,GAAG,IAAI,CAAC;QAC3B,gBAAgB,EAAE,CAAC;QAEnB,6EAA6E;QAC7E,eAAe,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACrD,iBAAiB,CAAC,EAAE,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAElF,kDAAkD;QAClD,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAExC,0CAA0C;QAC1C,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACnD,6EAA6E;YAC7E,IAAI,WAAW,EAAE,EAAE,CAAC;gBAClB,GAAG,CAAC,KAAK,EAAE,2CAA2C,QAAQ,IAAI,QAAQ,WAAW,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;QAED,4EAA4E;QAC5E,IAAI,WAAW,EAAE,IAAI,gBAAgB,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,GAAG,CAAC,KAAK,EAAE,iBAAiB,gBAAgB,KAAK,gBAAgB,aAAa,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrG,MAAM,UAAU,GAAI,MAAc,CAAC,IAAI,IAAK,MAAc,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;YACzF,MAAM,UAAU,GAAI,MAAc,CAAC,IAAI,IAAK,MAAc,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;YAC1F,GAAG,CAAC,KAAK,EAAE,eAAe,UAAU,gBAAgB,UAAU,iBAAiB,MAAM,CAAC,KAAK,kBAAkB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAChI,CAAC;QAED,mEAAmE;QACnE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAE1B,yCAAyC;QACzC,MAAM,CAAC,MAAM,EAAE,CAAC;QAEhB,mCAAmC;QACnC,MAAM,WAAW,GAAI,MAAc,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC;QAC1D,MAAM,gBAAgB,GAAI,MAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CACnE,CAAC,KAAK,OAAO,CAAC,WAAW,CAC1B,CAAC,MAAM,IAAI,CAAC,CAAC;QAEd,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACzB,GAAG,CAAC,KAAK,EAAE,yBAAyB,gBAAgB,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAClF,CAAC;IACH,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAC1B,MAAsB,EACtB,OAAkB,EAClB,SAA4B;IAE5B,0DAA0D;IAC1D,IAAI,kBAAkB,EAAE,CAAC;QACvB,GAAG,CAAC,KAAK,EAAE,8CAA8C,EAAE,MAAM,CAAC,CAAC;QACnE,OAAO;IACT,CAAC;IACD,kBAAkB,GAAG,IAAI,CAAC;IAC1B,iBAAiB,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;IAE1C,uEAAuE;IACvE,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,gBAAgB,EAAE,CAAC;QAEnB,qDAAqD;QACrD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,IAAI,WAAW,EAAE,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACxC,GAAG,CAAC,KAAK,EAAE,+BAA+B,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9E,CAAC;YACD,OAAO;QACT,CAAC;QAED,wDAAwD;QACxD,6DAA6D;QAC7D,oEAAoE;QACpE,yEAAyE;QACzE,sEAAsE;QACtE,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAClC,IAAI,IAAwB,CAAC;QAC7B,IAAI,IAAwB,CAAC;QAE7B,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACxC,wEAAwE;YACxE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;YAC3C,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;YAExC,8CAA8C;YAC9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,GAAI,MAAc,CAAC,IAAI,IAAK,MAAc,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;YAC/E,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,GAAI,MAAc,CAAC,IAAI,IAAK,MAAc,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;YAChF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,2EAA2E;YAC3E,IAAI,GAAI,MAAc,CAAC,IAAI,IAAK,MAAc,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC;YAC7E,IAAI,GAAI,MAAc,CAAC,IAAI,IAAK,MAAc,CAAC,OAAO,EAAE,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;YAE9E,8CAA8C;YAC9C,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,SAAS,CAAC;YAC7C,CAAC;YACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAElB,mEAAmE;QACnE,qEAAqE;QACrE,IAAK,MAAc,CAAC,OAAO,IAAI,OAAQ,MAAc,CAAC,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YACnF,8DAA8D;YAC9D,IAAI,IAAI,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;gBAC1C,MAAc,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC5D,+EAA+E;gBAC/E,IAAI,WAAW,EAAE,EAAE,CAAC;oBAClB,GAAG,CAAC,KAAK,EAAE,sCAAuC,MAAc,CAAC,OAAO,CAAC,IAAI,oBAAoB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7H,CAAC;gBACD,2EAA2E;YAC7E,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,+GAA+G;QAC/G,IAAI,eAAe,IAAI,eAAe,CAAC,IAAI,KAAK,IAAI,IAAI,eAAe,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACtF,IAAI,WAAW,EAAE,IAAI,gBAAgB,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,KAAK,EAAE,iBAAiB,gBAAgB,6BAA6B,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;YAC5F,CAAC;YACD,OAAO,CAAC,uBAAuB;QACjC,CAAC;QAED,4DAA4D;QAC5D,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,gCAAgC;IAChC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAE/B,sCAAsC;IACtC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAElC,iEAAiE;IACjE,kEAAkE;IAClE,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;QACjE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;QAClB,uBAAuB;QACtB,MAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAE5C,uBAAuB;QACvB,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YACzF,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,6BAA6B;QAC7B,IAAI,mBAAmB,EAAE,CAAC;YACxB,YAAY,CAAC,mBAAmB,CAAC,CAAC;YAClC,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,MAAmB,EACnB,IAAkE;IAElE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACtB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;IACxB,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAClB,MAAsB,EACtB,IAAkE,EAClE,KAAa;IAEb,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;QAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACxB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,EAAE;QACX,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SACvB;QACD,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,KAAK;QACjB,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,KAAK;KACjB,CAAgB,CAAC;IAElB,KAAK,CAAC,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,CAAC;IAExC,+BAA+B;IAC/B,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE1B,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,MAAsB,EACtB,MAAW;IAEX,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC;QAC3B,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG;QAC3B,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;QAC7B,KAAK,EAAE,WAAW;QAClB,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;QACjC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACxB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,UAAU;QACnB,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACtB,EAAE,EAAE,MAAM;SACX;QACD,SAAS,EAAE,KAAK;QAChB,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,KAAK;QACZ,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,KAAK;KACjB,CAAgB,CAAC;IAElB,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAEtC,+BAA+B;IAC/B,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IAEnC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,MAAsB,EACtB,MAAW;IAEX,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC;QAC7B,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG;QAC3B,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,WAAW,GAAG,CAAC;QAC/C,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,GAAG,WAAW,GAAG,CAAC;QACjD,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;QACjC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACxB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,MAAM;QACf,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;YACtB,EAAE,EAAE,OAAO;SACZ;QACD,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,KAAK;KACZ,CAAgB,CAAC;IAElB,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;IAE9C,+BAA+B;IAC/B,WAAW,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAErC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,MAAsB,EACtB,WAAwB,EACxB,SAA4B;IAE5B,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,MAAM,cAAc,GAAI,WAAW,CAAC,KAAgB,GAAG,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QACnC,MAAM,WAAW,GAAG,cAAc,CAAC;QAEnC,IAAI,WAAW,GAAG,YAAY,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACrD,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,WAAW,GAAG,YAAY,EAAE,CAAC;YAC/B,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,YAAY,GAAG,YAAY,CAAC;QAClC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC;QAChF,IAAI,WAAW,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAE/D,MAAM,kBAAkB,GAAG,WAAW,GAAG,YAAY,CAAC;QACtD,MAAM,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QAC9D,MAAM,YAAY,GAAG,YAAY,GAAG,eAAe,GAAG,WAAW,CAAC;QAElE,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACrC,MAAM,CAAC,MAAM,EAAE,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,EAAE,KAAa,EAAE,EAAE;QAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEhG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,iBAAiB;QACjB,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjC,IAAI,cAAc,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAChC,cAAc,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QACD,YAAY,GAAG,CAAC,CAAC,CAAC;QAElB,cAAc;QACd,iBAAiB,GAAG,MAAM,CAAC;QAC3B,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/B,YAAY,GAAG,CAAC,CAAC;QACjB,aAAa,EAAE,CAAC;QAEhB,qBAAqB;QACrB,QAAQ,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,KAAK;YACV,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,kBAAkB;QAClB,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,OAAO;QAEzB,MAAM,GAAG,GAAmB,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YAE1C,qBAAqB;YACrB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;YAED,yBAAyB;YACzB,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;gBACtD,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;gBAC/B,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBACjC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YAC1B,CAAC;YAED,iBAAiB;YACjB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACpC,SAAS,CAAC,CAAC,CAAC,CAAC;YACf,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACjD,SAAS,CAAC,KAAK,EAAE,CAAC;YACpB,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC;gBACZ,GAAG,EAAE,KAAK;gBACV,GAAG,EAAE,kBAAkB,KAAK,CAAC,OAAO,EAAE;gBACtC,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,IAAqB,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAE9B,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC,SAAS;YAC/B,SAAS,CAAC,CAAC,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC,QAAQ;YAC9C,MAAM,GAAG,GAAG,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC9C,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;gBAC/C,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,GAAG,EAAE,CAAC;gBACR,YAAY,CAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAC1C,QAAQ,CAAC,IAAI,CAAC;wBACZ,GAAG,EAAE,KAAK;wBACV,GAAG,EAAE,kBAAkB,GAAG,CAAC,OAAO,EAAE;wBACpC,KAAK,EAAE,OAAO;qBACf,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,MAAM,CAAC;gBAC3B,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC/B,aAAa,EAAE,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC,YAAY;YACtD,IAAI,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnC,iBAAiB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,GAAG,CAAC,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;gBACrH,cAAc,EAAE,CAAC;gBACjB,aAAa,EAAE,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC,aAAa;YACrC,IAAI,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACnC,cAAc,EAAE,CAAC;gBACjB,aAAa,EAAE,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC,CAAC,cAAc;YACtC,IAAI,cAAc,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC;gBAC9C,cAAc,EAAE,CAAC;gBACjB,aAAa,EAAE,CAAC;YAClB,CAAC;YACD,OAAO;QACT,CAAC;QAED,uBAAuB;QACvB,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YACvD,iBAAiB,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,KAAK,GAAG,iBAAiB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACzH,cAAc,EAAE,CAAC;YACjB,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;QAClB,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,qBAAqB;IACrB,WAAW,CAAC,KAAK,EAAE,CAAC;IACpB,MAAM,CAAC,OAAO,GAAG,WAAW,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,OAAkB;IACzC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/E,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,qBAAqB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1C,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;IACzE,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,uBAAuB,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;IAExF,sBAAsB;IACtB,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC;IAC/C,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC;QAC/B,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,WAAW,CAAC,KAAkB,EAAE,KAAe;IACtD,MAAM,UAAU,GAAG,KAAK,CAAC,KAAe,CAAC;IACzC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAgB,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IAEjD,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;QAC5D,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC;QACnD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,KAAkB;IAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,MAAgB,CAAC;IAC3C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAe,CAAC;IACzC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClC,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC;YACrD,MAAM,IAAI,GAAG,GAAG,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,EAAE,CAAC;YACnD,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;gBAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1C,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,OAAkB,EAAE,MAAsB;IACxE,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACtC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,cAAc,CAAC,CAAC;YACpD,cAAc,GAAG,QAAQ,CAAC;YAC1B,eAAe,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gBAAgB;QAClB,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;IAET,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACxB,MAAM,OAAO,GAAG,YAAY,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAExC,wEAAwE;IACxE,MAAM,UAAU,GAAI,MAAc,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;IACpE,MAAM,UAAU,GAAI,MAAc,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC;IACrE,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;IAEzE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;IACjD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,oBAAoB;IACpB,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,IAAI,WAAW,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;IAChE,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,QAAQ,WAAW,GAAG,CAAC,QAAQ,OAAO,CAAC,CAAC;IACzE,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,MAAM,SAAU,MAAc,CAAC,IAAI,IAAI,KAAK,SAAU,MAAc,CAAC,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IACvJ,KAAK,CAAC,IAAI,CAAC,wBAAyB,MAAc,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,SAAU,MAAc,CAAC,OAAO,EAAE,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;IAC5H,KAAK,CAAC,IAAI,CAAC,2BAA2B,OAAO,CAAC,MAAM,CAAC,OAAO,SAAS,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5F,KAAK,CAAC,IAAI,CAAC,sBAAsB,eAAe,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,IAAI,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACjH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,qCAAqC;IACrC,IAAI,YAAY,CAAC,EAAE,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,MAAM,mBAAmB,GAAG,CAAC,CAAC;QAC9B,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC;QAChC,MAAM,cAAc,GAAG,GAAG,CAAC,QAAQ,GAAG,YAAY,CAAC;QACnD,MAAM,aAAa,GAAG,GAAG,CAAC,QAAQ,GAAG,mBAAmB,GAAG,MAAM,CAAC;QAElE,KAAK,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,QAAQ,MAAM,YAAY,cAAc,cAAc,EAAE,CAAC,CAAC;QAC7F,KAAK,CAAC,IAAI,CAAC,qBAAqB,GAAG,CAAC,QAAQ,MAAM,mBAAmB,UAAU,MAAM,aAAa,aAAa,EAAE,CAAC,CAAC;QACnH,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,CAAC,KAAK,eAAe,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,OAAO,CAAC,KAAK,cAAc,CAAC,CAAC;QAC3D,KAAK,CAAC,IAAI,CAAC,oBAAoB,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACxG,KAAK,CAAC,IAAI,CAAC,yBAAyB,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,YAAY,EAAE,CAAC,CAAC;QAC5H,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,uBAAuB;QACvB,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC;QACtF,MAAM,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1D,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;QAE5E,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,yBAAyB,aAAa,EAAE,CAAC,CAAC;QACrD,KAAK,CAAC,IAAI,CAAC,yBAAyB,gBAAgB,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,QAAQ,GAAG,aAAa,QAAQ,CAAC,CAAC;QACpE,KAAK,CAAC,IAAI,CAAC,uBAAuB,GAAG,CAAC,QAAQ,GAAG,gBAAgB,QAAQ,CAAC,CAAC;QAC3E,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEf,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,qBAAqB,aAAa,EAAE,CAAC,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,uBAAuB,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/C,KAAK,CAAC,IAAI,CAAC,oBAAoB,GAAG,CAAC,QAAQ,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3G,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;SAAM,CAAC;QACN,KAAK,CAAC,IAAI,CAAC,gCAAgC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG;QACb,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE;QAC5C,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE;QAChD,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;QAC1C,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE;QAClD,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE;QAC5C,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE;QACtD,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;QACrD,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;KACtD,CAAC;IAEF,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAa,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAc,CAAC;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAe,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAgB,CAAC;QACvC,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;QAC3B,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;QAE5B,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAExC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC;QAC5C,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,OAAO,MAAM,GAAG,CAAC,CAAC;QAC7C,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,UAAU,KAAK,QAAQ,GAAG,WAAW,MAAM,EAAE,CAAC,CAAC;QAChF,KAAK,CAAC,IAAI,CAAC,iBAAiB,KAAK,wBAAwB,GAAG,CAAC,QAAQ,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,kBAAkB,MAAM,wBAAwB,GAAG,CAAC,QAAQ,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;QAEnG,sDAAsD;QACtD,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;QACtC,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;YACzB,KAAK,CAAC,IAAI,CAAC,4BAA4B,KAAK,MAAM,YAAY,0BAA0B,CAAC,CAAC;QAC5F,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,wBAAwB,GAAG,CAAC,QAAQ,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAC1G,KAAK,CAAC,IAAI,CAAC,wBAAwB,SAAS,wBAAwB,GAAG,CAAC,QAAQ,eAAe,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;IAC5G,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,QAAQ,GAAG,QAAQ,WAAW,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/H,KAAK,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,QAAQ,GAAG,SAAS,UAAU,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEf,kBAAkB;IAClB,MAAM,eAAe,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzC,IAAI,QAAQ,GAAG,eAAe,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,wDAAwD,QAAQ,MAAM,eAAe,oCAAoC,CAAC,CAAC;IACxI,CAAC;IAED,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,iDAAiD,GAAG,CAAC,QAAQ,GAAG,QAAQ,SAAS,CAAC,CAAC;IAChG,CAAC;IACD,IAAI,SAAS,GAAG,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;QACjC,KAAK,CAAC,IAAI,CAAC,kDAAkD,GAAG,CAAC,QAAQ,GAAG,SAAS,QAAQ,CAAC,CAAC;IACjG,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAEvC,8DAA8D;IAC9D,MAAM,eAAe,GAAG,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;QACnC,OAAO;YACL,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC;YACtC,QAAQ,KAAK,CAAC,MAAM,GAAG,eAAe,4BAA4B;YAClE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;SACxB,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,SAAS,CAAC,IAAY;IAC7B,gBAAgB,EAAE,CAAC;IAEnB,mBAAmB;IACnB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc;QACjD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,wBAAwB;IAC/D,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACrB,CAAC"}
|