nterminal 1.2.30 → 1.2.32
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/scripts/onboarding.js +167 -28
- package/dist/scripts/onboarding.js.map +1 -1
- package/dist/scripts/proxySetup.js +241 -15
- package/dist/scripts/proxySetup.js.map +1 -1
- package/dist/server/routes/agentManagementRoutes.js +83 -9
- package/dist/server/routes/agentManagementRoutes.js.map +1 -1
- package/dist/server/terminal/TmuxPtyAdapter.d.ts +11 -0
- package/dist/server/terminal/TmuxPtyAdapter.js +207 -4
- package/dist/server/terminal/TmuxPtyAdapter.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ import { existsSync, statSync, symlinkSync, unlinkSync, writeFileSync } from 'no
|
|
|
3
3
|
import { promises as dnsPromises } from 'node:dns';
|
|
4
4
|
import { request as httpRequest } from 'node:http';
|
|
5
5
|
import { request as httpsRequest } from 'node:https';
|
|
6
|
+
import { isIP } from 'node:net';
|
|
6
7
|
import { spawnSync } from 'node:child_process';
|
|
7
8
|
import path from 'node:path';
|
|
8
9
|
// A deployment URL has to be a real internet-resolvable HTTPS endpoint
|
|
@@ -36,6 +37,73 @@ export function validateDeploymentUrl(url) {
|
|
|
36
37
|
}
|
|
37
38
|
return { ok: true };
|
|
38
39
|
}
|
|
40
|
+
export function normalizeFirewallSource(value) {
|
|
41
|
+
const trimmed = value.trim();
|
|
42
|
+
if (!trimmed) {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
const parts = trimmed.split('/');
|
|
46
|
+
if (parts.length > 2) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
const address = parts[0] ?? '';
|
|
50
|
+
const version = isIP(address);
|
|
51
|
+
if (version === 0) {
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
if (parts.length === 1) {
|
|
55
|
+
return address;
|
|
56
|
+
}
|
|
57
|
+
const prefixText = parts[1] ?? '';
|
|
58
|
+
if (!/^\d+$/.test(prefixText)) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
const prefix = Number(prefixText);
|
|
62
|
+
const maxPrefix = version === 4 ? 32 : 128;
|
|
63
|
+
// /0 would allow the whole internet, which defeats the purpose of the
|
|
64
|
+
// secondary firewall restriction. Operators can still skip restriction and
|
|
65
|
+
// use the legacy broad allow path explicitly.
|
|
66
|
+
if (!Number.isInteger(prefix) || prefix < 1 || prefix > maxPrefix) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
return `${address}/${prefix}`;
|
|
70
|
+
}
|
|
71
|
+
export function analyzeUfwRestrictedStatus(output, port, source) {
|
|
72
|
+
const rules = parseUfwRules(output, port, source);
|
|
73
|
+
const sourceAllowIndex = rules.find((rule) => rule.action === 'allow' && rule.sourceMatch)?.order;
|
|
74
|
+
const denyIndex = rules.find((rule) => rule.action === 'deny')?.order;
|
|
75
|
+
const hasBroadAllowBeforeDeny = denyIndex !== undefined &&
|
|
76
|
+
rules.some((rule) => rule.action === 'allow' && rule.broad && rule.order < denyIndex);
|
|
77
|
+
return {
|
|
78
|
+
restricted: sourceAllowIndex !== undefined && denyIndex !== undefined && sourceAllowIndex < denyIndex && !hasBroadAllowBeforeDeny,
|
|
79
|
+
hasSourceAllow: sourceAllowIndex !== undefined,
|
|
80
|
+
hasDeny: denyIndex !== undefined,
|
|
81
|
+
hasBroadAllowBeforeDeny
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export function manualFirewallCommands(kind, port, source) {
|
|
85
|
+
if (kind === 'ufw') {
|
|
86
|
+
return source
|
|
87
|
+
? [
|
|
88
|
+
'sudo ufw status numbered',
|
|
89
|
+
`sudo ufw insert 1 allow from ${source} to any port ${port} proto tcp`,
|
|
90
|
+
`sudo ufw insert 2 deny to any port ${port} proto tcp`
|
|
91
|
+
]
|
|
92
|
+
: ['sudo ufw status numbered', `sudo ufw allow ${port}/tcp`];
|
|
93
|
+
}
|
|
94
|
+
const allowRule = source ? firewalldAllowRichRule(port, source) : '';
|
|
95
|
+
const dropRule = source ? firewalldDropRichRule(port, source) : '';
|
|
96
|
+
return source
|
|
97
|
+
? [
|
|
98
|
+
'sudo firewall-cmd --state',
|
|
99
|
+
'sudo firewall-cmd --list-ports',
|
|
100
|
+
`sudo firewall-cmd --permanent --add-rich-rule='${allowRule}'`,
|
|
101
|
+
`sudo firewall-cmd --permanent --add-rich-rule='${dropRule}'`,
|
|
102
|
+
'sudo firewall-cmd --reload',
|
|
103
|
+
`if sudo firewall-cmd --list-ports | tr ' ' '\\n' | grep -qx '${port}/tcp'; then sudo firewall-cmd --permanent --remove-port=${port}/tcp && sudo firewall-cmd --reload; fi`
|
|
104
|
+
]
|
|
105
|
+
: ['sudo firewall-cmd --state', 'sudo firewall-cmd --list-ports', `sudo firewall-cmd --permanent --add-port=${port}/tcp`, 'sudo firewall-cmd --reload'];
|
|
106
|
+
}
|
|
39
107
|
// Best-effort guess at the DNS record's "Name" field at the provider's UI.
|
|
40
108
|
// For "cli.example.com" we return "cli"; for the apex "example.com" we return
|
|
41
109
|
// "@". We do NOT try to handle ccTLDs (cli.example.co.uk) correctly — the
|
|
@@ -916,12 +984,49 @@ async function askCertbotEmail(prompter) {
|
|
|
916
984
|
// is actually reachable from the main on first run — without this, the agent
|
|
917
985
|
// is invisible until the operator manually edits ufw / firewalld and remembers
|
|
918
986
|
// to re-register.
|
|
919
|
-
export async function ensureFirewallAllowsPort(port, prompter, sudoMode) {
|
|
987
|
+
export async function ensureFirewallAllowsPort(port, prompter, sudoMode, options = {}) {
|
|
988
|
+
const restrictedSource = options.source ? normalizeFirewallSource(options.source) : null;
|
|
989
|
+
if (options.source && !restrictedSource) {
|
|
990
|
+
console.log(`Invalid firewall source "${options.source}". Expected one IP or CIDR, e.g. 203.0.113.10 or 203.0.113.0/24.`);
|
|
991
|
+
return;
|
|
992
|
+
}
|
|
993
|
+
if (sudoMode === 'manual') {
|
|
994
|
+
printManualFirewallCommands(port, restrictedSource);
|
|
995
|
+
return;
|
|
996
|
+
}
|
|
997
|
+
if (!ensureFirewallSudoReady(sudoMode, port, restrictedSource)) {
|
|
998
|
+
return;
|
|
999
|
+
}
|
|
920
1000
|
if (whichBinary('ufw')) {
|
|
921
|
-
const status = sudoRunCapture(['ufw', 'status'], { nonInteractive: true });
|
|
1001
|
+
const status = sudoRunCapture(['ufw', 'status', 'numbered'], { nonInteractive: true });
|
|
922
1002
|
if (status.ok) {
|
|
923
1003
|
const out = status.output;
|
|
924
1004
|
if (/Status:\s*inactive/i.test(out)) {
|
|
1005
|
+
if (restrictedSource) {
|
|
1006
|
+
console.log(`ufw is installed but inactive, so onboarding will not enable it automatically. Restrict ${port}/tcp to ${restrictedSource} in your cloud/provider firewall if this host is public.`);
|
|
1007
|
+
}
|
|
1008
|
+
return;
|
|
1009
|
+
}
|
|
1010
|
+
if (restrictedSource) {
|
|
1011
|
+
const restrictedStatus = analyzeUfwRestrictedStatus(out, port, restrictedSource);
|
|
1012
|
+
if (restrictedStatus.restricted) {
|
|
1013
|
+
console.log(`\x1b[32m✓\x1b[0m ufw already restricts ${port}/tcp to ${restrictedSource}.`);
|
|
1014
|
+
return;
|
|
1015
|
+
}
|
|
1016
|
+
const commands = manualFirewallCommands('ufw', port, restrictedSource).slice(1);
|
|
1017
|
+
console.log(`\nufw is active. This secondary only needs inbound traffic from the main server.\n` +
|
|
1018
|
+
`Onboarding will insert a source allow for ${restrictedSource}, followed by a deny for other ${port}/tcp traffic.`);
|
|
1019
|
+
const ok = await prompter.confirm(`Restrict ${port}/tcp in ufw to ${restrictedSource}?`, true);
|
|
1020
|
+
if (!ok)
|
|
1021
|
+
return;
|
|
1022
|
+
const allow = sudoRun(['ufw', 'insert', '1', 'allow', 'from', restrictedSource, 'to', 'any', 'port', String(port), 'proto', 'tcp']);
|
|
1023
|
+
const deny = allow.ok ? sudoRun(['ufw', 'insert', '2', 'deny', 'to', 'any', 'port', String(port), 'proto', 'tcp']) : { ok: false };
|
|
1024
|
+
if (allow.ok && deny.ok) {
|
|
1025
|
+
console.log(`\x1b[32m✓\x1b[0m ufw now restricts ${port}/tcp to ${restrictedSource}.`);
|
|
1026
|
+
}
|
|
1027
|
+
else {
|
|
1028
|
+
console.log(`ufw restriction failed; run these commands manually before the main tries to reach this agent:\n${commands.map((command) => ` ${command}`).join('\n')}`);
|
|
1029
|
+
}
|
|
925
1030
|
return;
|
|
926
1031
|
}
|
|
927
1032
|
// Match either explicit port allow (`<port>/tcp` or bare `<port>`) so a
|
|
@@ -931,11 +1036,6 @@ export async function ensureFirewallAllowsPort(port, prompter, sudoMode) {
|
|
|
931
1036
|
console.log(`\x1b[32m✓\x1b[0m ufw already allows ${port}/tcp.`);
|
|
932
1037
|
return;
|
|
933
1038
|
}
|
|
934
|
-
if (sudoMode === 'manual') {
|
|
935
|
-
console.log(`\nufw is active but ${port}/tcp is not allowed — the main will not be able to reach this agent. Run:\n` +
|
|
936
|
-
` sudo ufw allow ${port}/tcp`);
|
|
937
|
-
return;
|
|
938
|
-
}
|
|
939
1039
|
console.log(`\nufw is active but ${port}/tcp is not allowed. The main reaches this agent on that port,\n` +
|
|
940
1040
|
`so it has to be open or registration looks healthy while every request times out.`);
|
|
941
1041
|
const ok = await prompter.confirm(`Open ${port}/tcp in ufw?`, true);
|
|
@@ -957,14 +1057,49 @@ export async function ensureFirewallAllowsPort(port, prompter, sudoMode) {
|
|
|
957
1057
|
const list = sudoRunCapture(['firewall-cmd', '--list-ports'], { nonInteractive: true });
|
|
958
1058
|
if (list.ok) {
|
|
959
1059
|
const ports = list.output.split(/\s+/);
|
|
960
|
-
if (
|
|
961
|
-
|
|
1060
|
+
if (restrictedSource) {
|
|
1061
|
+
const richRules = sudoRunCapture(['firewall-cmd', '--list-rich-rules'], { nonInteractive: true });
|
|
1062
|
+
const allowRule = firewalldAllowRichRule(port, restrictedSource);
|
|
1063
|
+
const dropRule = firewalldDropRichRule(port, restrictedSource);
|
|
1064
|
+
const hasBroadPort = ports.includes(`${port}/tcp`);
|
|
1065
|
+
const richOut = richRules.ok ? richRules.output : '';
|
|
1066
|
+
if (!hasBroadPort && richOut.includes(allowRule) && richOut.includes(dropRule)) {
|
|
1067
|
+
console.log(`\x1b[32m✓\x1b[0m firewalld already restricts ${port}/tcp to ${restrictedSource}.`);
|
|
1068
|
+
return;
|
|
1069
|
+
}
|
|
1070
|
+
const commands = [
|
|
1071
|
+
`sudo firewall-cmd --permanent --add-rich-rule='${allowRule}'`,
|
|
1072
|
+
`sudo firewall-cmd --permanent --add-rich-rule='${dropRule}'`,
|
|
1073
|
+
'sudo firewall-cmd --reload',
|
|
1074
|
+
...(hasBroadPort ? [`sudo firewall-cmd --permanent --remove-port=${port}/tcp`, 'sudo firewall-cmd --reload'] : [])
|
|
1075
|
+
];
|
|
1076
|
+
console.log(`\nfirewalld is running. This secondary only needs inbound traffic from the main server.\n` +
|
|
1077
|
+
`Onboarding will add rich rules for ${restrictedSource}, then remove any broad ${port}/tcp port rule after they reload successfully.`);
|
|
1078
|
+
const ok = await prompter.confirm(`Restrict ${port}/tcp in firewalld to ${restrictedSource}?`, true);
|
|
1079
|
+
if (!ok)
|
|
1080
|
+
return;
|
|
1081
|
+
const addAllow = sudoRun(['firewall-cmd', '--permanent', `--add-rich-rule=${allowRule}`]);
|
|
1082
|
+
const addDrop = addAllow.ok ? sudoRun(['firewall-cmd', '--permanent', `--add-rich-rule=${dropRule}`]) : { ok: false };
|
|
1083
|
+
const reloadRestrictedRules = addAllow.ok && addDrop.ok ? sudoRun(['firewall-cmd', '--reload']) : { ok: false };
|
|
1084
|
+
if (!addAllow.ok || !addDrop.ok || !reloadRestrictedRules.ok) {
|
|
1085
|
+
console.log(`firewalld restriction failed; run these commands manually before the main tries to reach this agent:\n${commands.map((command) => ` ${command}`).join('\n')}`);
|
|
1086
|
+
return;
|
|
1087
|
+
}
|
|
1088
|
+
if (hasBroadPort) {
|
|
1089
|
+
const removeBroadPort = sudoRun(['firewall-cmd', '--permanent', `--remove-port=${port}/tcp`]);
|
|
1090
|
+
const reloadAfterRemove = removeBroadPort.ok ? sudoRun(['firewall-cmd', '--reload']) : { ok: false };
|
|
1091
|
+
if (!removeBroadPort.ok || !reloadAfterRemove.ok) {
|
|
1092
|
+
console.log(`firewalld rich rules were added, but the broad ${port}/tcp port rule could not be removed. Run:\n` +
|
|
1093
|
+
` sudo firewall-cmd --permanent --remove-port=${port}/tcp\n` +
|
|
1094
|
+
' sudo firewall-cmd --reload');
|
|
1095
|
+
return;
|
|
1096
|
+
}
|
|
1097
|
+
}
|
|
1098
|
+
console.log(`\x1b[32m✓\x1b[0m firewalld now restricts ${port}/tcp to ${restrictedSource}.`);
|
|
962
1099
|
return;
|
|
963
1100
|
}
|
|
964
|
-
if (
|
|
965
|
-
console.log(`\
|
|
966
|
-
` sudo firewall-cmd --permanent --add-port=${port}/tcp\n` +
|
|
967
|
-
' sudo firewall-cmd --reload');
|
|
1101
|
+
if (ports.includes(`${port}/tcp`)) {
|
|
1102
|
+
console.log(`\x1b[32m✓\x1b[0m firewalld already allows ${port}/tcp.`);
|
|
968
1103
|
return;
|
|
969
1104
|
}
|
|
970
1105
|
console.log(`\nfirewalld is running but ${port}/tcp is not open — the main needs this port to reach the agent.`);
|
|
@@ -982,8 +1117,99 @@ export async function ensureFirewallAllowsPort(port, prompter, sudoMode) {
|
|
|
982
1117
|
}
|
|
983
1118
|
}
|
|
984
1119
|
}
|
|
985
|
-
// No detectable firewall
|
|
986
|
-
//
|
|
1120
|
+
// No detectable firewall. Raw iptables/nftables setups are operator-managed;
|
|
1121
|
+
// for restricted secondary access we still print the provider-firewall action
|
|
1122
|
+
// because otherwise the operator can assume the restriction was applied.
|
|
1123
|
+
if (restrictedSource) {
|
|
1124
|
+
console.log(`No active ufw/firewalld firewall was detected. If this secondary is public, restrict provider firewall access to ${restrictedSource}:${port}/tcp.`);
|
|
1125
|
+
}
|
|
1126
|
+
}
|
|
1127
|
+
function ensureFirewallSudoReady(sudoMode, port, restrictedSource) {
|
|
1128
|
+
if (sudoMode !== 'auto-with-prompt') {
|
|
1129
|
+
return true;
|
|
1130
|
+
}
|
|
1131
|
+
if (canSudoNonInteractive()) {
|
|
1132
|
+
return true;
|
|
1133
|
+
}
|
|
1134
|
+
console.log('\nChecking firewall status needs sudo. Enter your sudo password if prompted.');
|
|
1135
|
+
const ready = sudoRun(['true']);
|
|
1136
|
+
if (ready.ok && canSudoNonInteractive()) {
|
|
1137
|
+
return true;
|
|
1138
|
+
}
|
|
1139
|
+
const target = restrictedSource ? `${restrictedSource}:${port}/tcp` : `${port}/tcp`;
|
|
1140
|
+
console.log(`Could not obtain sudo for firewall inspection. No host firewall changes were made for ${target}.`);
|
|
1141
|
+
return false;
|
|
1142
|
+
}
|
|
1143
|
+
function printManualFirewallCommands(port, restrictedSource) {
|
|
1144
|
+
const sections = [];
|
|
1145
|
+
if (whichBinary('ufw')) {
|
|
1146
|
+
sections.push(formatManualFirewallSection('ufw', port, restrictedSource));
|
|
1147
|
+
}
|
|
1148
|
+
if (whichBinary('firewall-cmd')) {
|
|
1149
|
+
sections.push(formatManualFirewallSection('firewalld', port, restrictedSource));
|
|
1150
|
+
}
|
|
1151
|
+
if (sections.length > 0) {
|
|
1152
|
+
const intro = sections.length > 1
|
|
1153
|
+
? '\nMultiple firewall tools are installed. Run the block for the firewall that is active on this host.'
|
|
1154
|
+
: '';
|
|
1155
|
+
console.log(`${intro}\n${sections.join('\n\n')}`);
|
|
1156
|
+
return;
|
|
1157
|
+
}
|
|
1158
|
+
const target = restrictedSource ? `${restrictedSource}:${port}/tcp` : `${port}/tcp`;
|
|
1159
|
+
console.log(`\nNo ufw/firewalld binary was detected. Configure your provider firewall manually for ${target}.`);
|
|
1160
|
+
}
|
|
1161
|
+
function formatManualFirewallSection(kind, port, restrictedSource) {
|
|
1162
|
+
const commands = manualFirewallCommands(kind, port, restrictedSource ?? undefined);
|
|
1163
|
+
const label = kind === 'ufw' ? 'ufw' : 'firewalld';
|
|
1164
|
+
const detail = restrictedSource
|
|
1165
|
+
? `Restrict ${port}/tcp so only the main server (${restrictedSource}) can reach this secondary.`
|
|
1166
|
+
: `Open ${port}/tcp so the main server can reach this secondary.`;
|
|
1167
|
+
return `${label} commands. ${detail}\n${commands.map((command) => ` ${command}`).join('\n')}`;
|
|
1168
|
+
}
|
|
1169
|
+
function parseUfwRules(output, port, source) {
|
|
1170
|
+
const portPattern = new RegExp(`\\b${port}(/tcp)?\\b`);
|
|
1171
|
+
const rules = [];
|
|
1172
|
+
for (const [lineIndex, rawLine] of output.split(/\r?\n/).entries()) {
|
|
1173
|
+
if (!portPattern.test(rawLine)) {
|
|
1174
|
+
continue;
|
|
1175
|
+
}
|
|
1176
|
+
const actionMatch = /\b(ALLOW|DENY)\b(?:\s+(?:IN|OUT))?/i.exec(rawLine);
|
|
1177
|
+
if (!actionMatch) {
|
|
1178
|
+
continue;
|
|
1179
|
+
}
|
|
1180
|
+
const action = actionMatch[1].toLowerCase() === 'allow' ? 'allow' : 'deny';
|
|
1181
|
+
const numbered = /^\[\s*(\d+)\]/.exec(rawLine);
|
|
1182
|
+
const order = numbered ? Number(numbered[1]) : lineIndex + 1;
|
|
1183
|
+
const fromField = rawLine.slice(actionMatch.index + actionMatch[0].length).trim();
|
|
1184
|
+
const sourceMatch = ufwFromFieldMatchesSource(fromField, source);
|
|
1185
|
+
const broad = action === 'allow' && ufwFromFieldIsBroad(fromField);
|
|
1186
|
+
rules.push({ order, action, sourceMatch, broad });
|
|
1187
|
+
}
|
|
1188
|
+
return rules.sort((a, b) => a.order - b.order);
|
|
1189
|
+
}
|
|
1190
|
+
function ufwFromFieldMatchesSource(fromField, source) {
|
|
1191
|
+
const sourceLower = source.toLowerCase();
|
|
1192
|
+
return ufwFromFieldTokens(fromField).some((token) => token === sourceLower);
|
|
1193
|
+
}
|
|
1194
|
+
function ufwFromFieldIsBroad(fromField) {
|
|
1195
|
+
return ufwFromFieldTokens(fromField).some((token) => token === 'anywhere' || token === '0.0.0.0/0' || token === '::/0');
|
|
1196
|
+
}
|
|
1197
|
+
function ufwFromFieldTokens(fromField) {
|
|
1198
|
+
return fromField
|
|
1199
|
+
.toLowerCase()
|
|
1200
|
+
.split(/\s+/)
|
|
1201
|
+
.map((token) => token.replace(/^[[(]+|[\]),]+$/g, ''))
|
|
1202
|
+
.filter(Boolean);
|
|
1203
|
+
}
|
|
1204
|
+
function firewalldRuleFamily(source) {
|
|
1205
|
+
const address = source.split('/')[0] ?? '';
|
|
1206
|
+
return isIP(address) === 6 ? 'ipv6' : 'ipv4';
|
|
1207
|
+
}
|
|
1208
|
+
function firewalldAllowRichRule(port, source) {
|
|
1209
|
+
return `rule priority="-100" family="${firewalldRuleFamily(source)}" source address="${source}" port port="${port}" protocol="tcp" accept`;
|
|
1210
|
+
}
|
|
1211
|
+
function firewalldDropRichRule(port, source) {
|
|
1212
|
+
return `rule priority="100" family="${firewalldRuleFamily(source)}" port port="${port}" protocol="tcp" drop`;
|
|
987
1213
|
}
|
|
988
1214
|
// Re-export the up-front sudo mode picker so secondary onboarding can share
|
|
989
1215
|
// the same "ask once, remember for the rest of the run" semantics.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxySetup.js","sourceRoot":"","sources":["../../scripts/proxySetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACvF,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,IAAI,MAAM,WAAW,CAAC;AAS7B,uEAAuE;AACvE,0EAA0E;AAC1E,uEAAuE;AACvE,8EAA8E;AAC9E,4CAA4C;AAC5C,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IACpD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAC3C,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,+EAA+E,EAAE,CAAC;IAChH,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,wCAAwC,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iDAAiD,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,qDAAqD,EAAE,CAAC;IACtF,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC;AAED,2EAA2E;AAC3E,8EAA8E;AAC9E,0EAA0E;AAC1E,wEAAwE;AACxE,4BAA4B;AAC5B,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9D,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,IAAY;IAC9D,OAAO,6CAA6C,MAAM;kCAC1B,MAAM;;;;;;kBAMtB,MAAM;;;sCAGc,IAAI;;;;;;;;;;;;;CAazC,CAAC;AACF,CAAC;AAgBD,6EAA6E;AAC7E,2EAA2E;AAC3E,iCAAiC;AACjC,MAAM,uBAAuB,GAA+C;IAC1E,EAAE,OAAO,EAAE,4BAA4B,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,EAAE,QAAQ,EAAE;IACnG,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,UAAU,EAAE;IACpD,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,EAAE,UAAU,EAAE;IAC/D,EAAE,OAAO,EAAE,iCAAiC,EAAE,MAAM,EAAE,UAAU,EAAE;CACnE,CAAC;AAEF,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5C,OAAO,GAAG,IAAI,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAA0B,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS;IAC3H,OAAO,GAAG,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAc,EAAE,UAAwC,EAAE;IACnF,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,4EAA4E;AAC5E,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,4EAA4E;AAC5E,+BAA+B;AAC/B,SAAS,sBAAsB;IAC7B,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,oEAAoE;QACpE,0EAA0E;QAC1E,OAAO,CAAC,KAAK,EAAE,gCAAgC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;IACnH,CAAC;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC;IACtE,CAAC;IACD,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IACrE,CAAC;IACD,uEAAuE;IACvE,iDAAiD;IACjD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,uBAAuB,EAAE,CAAC;QAChD,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;gBAC/E,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAS,GAAG,IAAI;IACnD,0EAA0E;IAC1E,yDAAyD;IACzD,MAAM,OAAO,GAAG,CAAC,uBAAuB,EAAE,wBAAwB,EAAE,uBAAuB,CAAC,CAAC;IAC7F,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC5E,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,SAAS;YACtB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACvC,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sBAAsB;QACxB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,2EAA2E;AAC3E,4EAA4E;AAC5E,2EAA2E;AAC3E,wEAAwE;AACxE,yEAAyE;AACzE,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAAc;IACnD,MAAM,QAAQ,GAAG,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC5C,QAAQ,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,QAAgB;IAC/D,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACrE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,UAAU,CAAC,MAAc,EAAE,IAAY;IACrD,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC;QACH,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1B,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,GAAI,GAA6B,CAAC,IAAI,CAAC;QACjD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;QAChC,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY,EAAE,QAAgB;IAC/D,MAAM,MAAM,GAAG,wBAAwB,QAAQ,GAAG,CAAC;IACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,IAAY;IAC9D,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,cAAc,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAA,cAAc,OAAO,OAAO,EAAE,GAAG,CAAC,CAAC;IAC/E,OAAO,IAAI;SACR,KAAK,CAAC,OAAO,CAAC;SACd,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;SAC/C,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,MAAc;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,WAAW,GAAG,gBAAgB,CAAC;IACnC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC7D,IAAI,MAAM,EAAE,CAAC;YACX,WAAW,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,IAAI,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAE;aACzB,KAAK,CAAC,KAAK,CAAC;aACZ,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aACxC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO;QACZ,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,gBAAgB,CAAC;QACxC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACtD,CAAC;AAED,0EAA0E;AAC1E,2EAA2E;AAC3E,qEAAqE;AACrE,8CAA8C;AAC9C,MAAM,UAAU,qBAAqB;IACnC,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,6EAA6E;AAC7E,6EAA6E;AAC7E,4EAA4E;AAC5E,EAAE;AACF,oEAAoE;AACpE,4EAA4E;AAC5E,0EAA0E;AAC1E,wEAAwE;AACxE,4EAA4E;AAC5E,yDAAyD;AACzD,MAAM,UAAU,OAAO,CAAC,IAAc;IACpC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAyF,CAAC;IAChH,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACnD,IAAI,MAAM,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QACrD,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,IAAI,CAAC;QACH,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACjE,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACrC,CAAC;YAAS,CAAC;QACT,IAAI,MAAM,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACrD,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,IAAc,EAAE,UAAwC,EAAE;IAChF,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;AACnE,CAAC;AAED,8EAA8E;AAC9E,kFAAkF;AAClF,8EAA8E;AAC9E,4EAA4E;AAC5E,qDAAqD;AACrD,MAAM,UAAU,aAAa,CAAC,UAAkB,EAAE,OAAe;IAC/D,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YACtE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,0BAA0B,OAAO,CAAC,GAAG,IAAI,UAAU,EAAE,MAAM,CAAC;IAC7E,IAAI,CAAC;QACH,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IACtE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;YAChF,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IACtC,CAAC;YAAS,CAAC;QACT,IAAI,CAAC;YACH,UAAU,CAAC,QAAQ,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,wDAAwD;QAC1D,CAAC;IACH,CAAC;AACH,CAAC;AAMD,MAAM,UAAU,MAAM,CAAC,GAAW,EAAE,IAAc;IAChD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/C,MAAM,QAAQ,GAAG,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACxC,CAAC;IACD,MAAM,UAAU,GAAG,gEAAgE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC1D,CAAC;AAED,SAAS,oBAAoB;IAC3B,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,4EAA4E;AAC5E,6EAA6E;AAC7E,gFAAgF;AAChF,4EAA4E;AAC5E,8EAA8E;AAC9E,cAAc;AACd,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,mBAA2B;IAC5E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,WAAW,CACrB;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACzB,OAAO,EAAE,IAAI;SACd,EACD,KAAK,EAAE,GAAG,EAAE,EAAE;YACZ,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC/E,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,GAAG,CAAC,UAAU,iEAAiE,mBAAmB,WAAW,oBAAoB,EAAE,qCAAqC,EAAE,CAAC,CAAC;gBAC1N,OAAO;YACT,CAAC;YACD,IAAI,wBAAwB,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC;gBACzF,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;gBACjD,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;oBACb,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBACtB,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,MAAM,4CAA4C,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBACpH,OAAO;YACT,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,6CAA6C,WAAW,IAAI,iBAAiB,4DAA4D,MAAM,SAAS,EAAE,CAAC,CAAC;gBACzL,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,6CAA6C,GAAG,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;gBAC/F,OAAO;YACT,CAAC;YACD,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxB,CAAC,CACF,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2CAA2C,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QACnH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAA8B,EAAE,QAAgB,EAAE,MAAc;IACvG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC;QACrD,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC;IACpE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,4EAA4E;AAC5E,qCAAqC;AACrC,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,YAAY,CACtB;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,GAAG;YACT,IAAI,EAAE,mBAAmB;YACzB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,KAAK;SACf,EACD,CAAC,GAAG,EAAE,EAAE;YACN,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,CAAC;gBACpD,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,MAAM,cAAc,GAAG,CAAC,UAAU,IAAI,aAAa,EAAE,EAAE,CAAC,CAAC;gBACjG,OAAO;YACT,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClC,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,MAAM,8BAA8B,WAAW,IAAI,iBAAiB,sBAAsB,EAAE,CAAC,CAAC;gBACtI,OAAO;YACT,CAAC;YACD,IAAI,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;gBAC3B,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,MAAM,8BAA8B,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;gBAChG,OAAO;YACT,CAAC;YACD,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACxB,CAAC,CACF,CAAC;QACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACtB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5B,IAAI,sEAAsE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzF,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,OAAO,oCAAoC,EAAE,CAAC,CAAC;YAC5F,CAAC;iBAAM,IAAI,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACvD,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,8FAA8F,EAAE,CAAC,CAAC;YACjI,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;YACrB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,MAAM,6BAA6B,EAAE,CAAC,CAAC;QACjF,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAsCD,MAAM,WAAW,GAAG;IAClB,WAAW;IACX,cAAc;IACd,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,wBAAwB;IACxB,yBAAyB;CACjB,CAAC;AAEX,SAAS,kBAAkB;IACzB,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;IACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,4EAA4E;IAC5E,0EAA0E;IAC1E,0BAA0B;IAC1B,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,IAAI,WAAW,CAAC,MAAM,KAAK,KAAK,SAAS,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAyB;IAC7D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,oCAAoC,MAAM,SAAS,CAAC,CAAC;IACjE,kBAAkB,EAAE,CAAC;IAErB,gEAAgE;IAChE,uEAAuE;IACvE,oEAAoE;IACpE,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEhD,uDAAuD;IACvD,eAAe,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;IACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;QAC7F,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,yEAAyE;IACzE,oCAAoC;IACpC,eAAe,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAElD,wDAAwD;IACxD,eAAe,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,qBAAqB,EAAE,CAAC;YACxB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,iBAAiB,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAEnF,yEAAyE;IACzE,eAAe,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;QAChE,IAAI,CAAC,CAAC,MAAM,eAAe,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,0EAA0E;IAC1E,0CAA0C;IAC1C,eAAe,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,MAAM,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QAChF,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,uEAAuE;IACvE,kEAAkE;IAClE,yEAAyE;IACzE,oDAAoD;IACpD,eAAe,CAAC,CAAC,CAAC,CAAC;IACnB,MAAM,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAEnD,wEAAwE;IACxE,uEAAuE;IACvE,eAAe,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,CAAC,MAAM,gBAAgB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,yDAAyD,MAAM,wBAAwB,CAAC,CAAC;IACrG,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,QAA4B;IACxD,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IAAI,qBAAqB,EAAE,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAAC;QAChG,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,OAAO,CAAC,GAAG,CACT,6EAA6E;QAC3E,gFAAgF;QAChF,YAAY;QACZ,gFAAgF;QAChF,mEAAmE;QACnE,kFAAkF;QAClF,iFAAiF;QACjF,0CAA0C,CAC7C,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;IACnF,OAAO,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC;AACjD,CAAC;AAED,yEAAyE;AACzE,0EAA0E;AAC1E,yEAAyE;AACzE,4CAA4C;AAC5C,KAAK,UAAU,eAAe,CAAC,QAAkB,EAAE,QAA4B;IAC7E,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,SAAS,GAAG,oBAAoB,EAAE,CAAC;IACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,mDAAmD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACzF,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IAC9D,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,MAAM,GAAG,iBAAiB,EAAE,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,oBAAoB;IAC3B,IAAI,WAAW,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,KAAK,EAAE,gCAAgC,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAmBD,KAAK,UAAU,eAAe,CAAC,IAAyB;IACtD,MAAM,KAAK,GAAG,KAAK,IAA+C,EAAE;QAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,OAAO,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IACtD,CAAC,CAAC;IAEF,uEAAuE;IACvE,iEAAiE;IACjE,IAAI,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC;IAC3B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,KAAK,kBAAkB,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,WAAW,SAAS,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,SAAS,CAAC;QACR,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,YAAY,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QAClD,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,uEAAuE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3I,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,KAAK,6EAA6E,CAAC,CAAC;YACjH,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,GAAG,MAAM,KAAK,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,UAAkB,EAClB,MAAc,EACd,QAA4B,EAC5B,QAAkB;IAElB,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,6CAA6C,UAAU,qBAAqB,CAAC,CAAC;QAC1F,OAAO,IAAI,CAAC;IACd,CAAC;IACD,gCAAgC;IAChC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,aAAa,UAAU,sEAAsE,CAAC,CAAC;QAC3G,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,EAAE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,0BAA0B,UAAU,WAAW,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;IACD,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,kCAAkC,UAAU,EAAE;QACrD,WAAW,EACT,8EAA8E;YAC9E,8EAA8E;YAC9E,0EAA0E;QAC5E,QAAQ,EAAE;YACR,YAAY,UAAU,+BAA+B,MAAM,CAAC,OAAO,EAAE,aAAa;SACnF;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QACpC,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,UAAkB,EAClB,QAAgB,EAChB,QAA4B,EAC5B,QAAkB;IAElB,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACjD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,uCAAuC,QAAQ,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,gCAAgC;IAChC,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,sDAAsD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC9F,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3D,IAAI,MAAM,CAAC,EAAE,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,gCAAgC,QAAQ,EAAE,CAAC,CAAC;YACxD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,sCAAsC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACrE,WAAW,EACT,iFAAiF;YACjF,gFAAgF;YAChF,mEAAmE;QACrE,QAAQ,EAAE,CAAC,cAAc,UAAU,IAAI,QAAQ,EAAE,CAAC;QAClD,MAAM,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;QAClC,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,MAAmB,EACnB,MAAc,EACd,IAAY,EACZ,QAA4B,EAC5B,QAAkB;IAElB,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC9D,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,qEAAqE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;QACzG,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC;QACvG,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,MAAM,0CAA0C,CAAC,CAAC;YAChG,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,gDAAgD,MAAM,eAAe,CAAC,CAAC;QACnF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,sDAAsD,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAErF,IAAI,QAAQ,KAAK,QAAQ,IAAI,CAAC,MAAM,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACzF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,uEAAuE;IACvE,wEAAwE;IACxE,2DAA2D;IAC3D,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,sCAAsC,MAAM,eAAe;QAClE,WAAW,EACT,6EAA6E;YAC7E,oDAAoD;YACpD,2EAA2E;YAC3E,2EAA2E;YAC3E,wEAAwE;QAC1E,QAAQ,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,KAAK,EAAE,QAAQ,MAAM,CAAC,MAAM,YAAY,CAAC;QACzE,MAAM,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC9C,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,MAAmB,EACnB,MAAc,EACd,IAAY,EACZ,QAAkB;IAElB,MAAM,IAAI,GAAG,sBAAsB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU;QACxC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,OAAO,CAAC;QAChD,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,wBAAwB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CACT,uDAAuD,MAAM,SAAS,WAAW,IAAI;YACnF,0JAA0J,CAC7J,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,IAAI,EAAE,0BAA0B,CAAC;QAC1E,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,MAAM,OAAO,CAAC;QAClD,CAAC,CAAC,IAAI,CAAC;IACT,IAAI,CAAC,YAAY,IAAI,YAAY,KAAK,gBAAgB,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACnF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,CAAC,GAAG,CACT,yBAAyB,gBAAgB,2CAA2C;QAClF,iCAAiC,YAAY,GAAG,CACnD,CAAC;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,EAAE,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAC/E,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,4DAA4D,MAAM,CAAC,MAAM,eAAe,CAAC,CAAC;QACtG,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,8DAA8D,MAAM,eAAe,CAAC,CAAC;QACjG,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,iFAAiF,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAChH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,MAAmB,EAAE,QAAkB;IACrE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,MAAc,EACd,QAA4B,EAC5B,QAAkB;IAElB,yEAAyE;IACzE,oCAAoC;IACpC,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,kBAAkB,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,iEAAiE;QACjE,uEAAuE;QACvE,kEAAkE;QAClE,0EAA0E;QAC1E,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAC;YAC3C,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CAAC,qDAAqD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3F,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;gBAChE,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC3C,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;oBAC9E,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,IAAI,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;QACpD,wEAAwE;QACxE,uEAAuE;QACvE,0EAA0E;QAC1E,uEAAuE;QACvE,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG;YACf,SAAS;YACT,SAAS;YACT,IAAI;YACJ,MAAM;YACN,GAAG,uBAAuB,CAAC,KAAK,CAAC;YACjC,aAAa;YACb,mBAAmB;YACnB,uBAAuB,CAAC,+DAA+D;SACxF,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,iCAAiC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,QAAQ,CAAC,CAAC;gBACxD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,8DAA8D,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAC/F,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC;QACrB,KAAK,EAAE,2BAA2B,MAAM,EAAE;QAC1C,WAAW,EACT,gFAAgF;YAChF,gFAAgF;YAChF,4EAA4E;YAC5E,+EAA+E;YAC/E,4DAA4D;QAC9D,QAAQ,EAAE;YACR,2BAA2B,MAAM,gDAAgD;YACjF,gEAAgE,MAAM,qDAAqD;YAC3H,+BAA+B;YAC/B,mEAAmE;YACnE,mEAAmE;SACpE;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC;QAC1C,QAAQ;KACT,CAAC,CAAC;AACL,CAAC;AAED,2EAA2E;AAC3E,+EAA+E;AAC/E,KAAK,UAAU,eAAe,CAAC,QAA4B;IACzD,SAAS,CAAC;QACR,MAAM,GAAG,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAC7B,yEAAyE,CAC1E,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,wFAAwF,CAAC,CAAC;YACtG,SAAS;QACX,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,2EAA2E;AAC3E,0EAA0E;AAC1E,4EAA4E;AAC5E,0EAA0E;AAC1E,uCAAuC;AACvC,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,+EAA+E;AAC/E,kBAAkB;AAClB,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,QAA4B,EAC5B,QAAkB;IAElB,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1B,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,wEAAwE;YACxE,oDAAoD;YACpD,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;YACvD,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,OAAO,CAAC,CAAC;gBAChE,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CACT,uBAAuB,IAAI,6EAA6E;oBACtG,oBAAoB,IAAI,MAAM,CACjC,CAAC;gBACF,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CACT,uBAAuB,IAAI,kEAAkE;gBAC3F,mFAAmF,CACtF,CAAC;YACF,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,cAAc,EAAE,IAAI,CAAC,CAAC;YACpE,IAAI,CAAC,EAAE;gBAAE,OAAO;YAChB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC;YACvD,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,mCAAmC,IAAI,OAAO,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,0CAA0C,IAAI,4DAA4D,CAAC,CAAC;YAC1H,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,cAAc,EAAE,cAAc,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YACxF,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,MAAM,CAAC,EAAE,CAAC;oBAClC,OAAO,CAAC,GAAG,CAAC,6CAA6C,IAAI,OAAO,CAAC,CAAC;oBACtE,OAAO;gBACT,CAAC;gBACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CACT,8BAA8B,IAAI,0BAA0B;wBAC1D,8CAA8C,IAAI,QAAQ;wBAC1D,8BAA8B,CACjC,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,8BAA8B,IAAI,iEAAiE,CAAC,CAAC;gBACjH,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,QAAQ,IAAI,oBAAoB,EAAE,IAAI,CAAC,CAAC;gBAC1E,IAAI,CAAC,EAAE;oBAAE,OAAO;gBAChB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,cAAc,IAAI,MAAM,CAAC,CAAC,CAAC;gBAC/E,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;gBACrD,IAAI,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,yCAAyC,IAAI,OAAO,CAAC,CAAC;gBACpE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,oEAAoE;IACpE,gEAAgE;AAClE,CAAC;AAED,4EAA4E;AAC5E,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAA4B;IAC7D,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,KAAK,UAAU,wBAAwB,CAAC,QAA4B,EAAE,QAAkB;IACtF,gEAAgE;IAChE,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,cAAc,CAAC,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,qEAAqE;QACrE,yEAAyE;QACzE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACd,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;YAC1B,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,qEAAqE;YACrE,uEAAuE;YACvE,kEAAkE;YAClE,mDAAmD;YACnD,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpE,OAAO;YACT,CAAC;YACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CACT,kFAAkF;oBAChF,wDAAwD;oBACxD,+BAA+B,CAClC,CAAC;gBACF,OAAO;YACT,CAAC;YACD,OAAO,CAAC,GAAG,CACT,gFAAgF;gBAC9E,uFAAuF;gBACvF,8BAA8B,CACjC,CAAC;YACF,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,EAAE;gBAAE,OAAO;YAChB,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;YACtD,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;YACxE,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;YACjF,CAAC;YACD,OAAO;QACT,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,IAAI,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,cAAc,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACpF,IAAI,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YAClD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3F,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACZ,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC5D,OAAO;gBACT,CAAC;gBACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;oBAC1B,OAAO,CAAC,GAAG,CACT,wEAAwE;wBACtE,0EAA0E;wBAC1E,8BAA8B,CACjC,CAAC;oBACF,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,2FAA2F,CAAC,CAAC;gBACzG,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,gCAAgC,EAAE,IAAI,CAAC,CAAC;gBAC1E,IAAI,CAAC,EAAE;oBAAE,OAAO;gBAChB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,CAAC,CAAC,CAAC;gBAClG,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;gBACrD,IAAI,GAAG,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;oBACxB,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;gBAC5F,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,0EAA0E;AAC5E,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAA4B;IACzD,MAAM,QAAQ,GAAG,MAAM,cAAc,EAAE,CAAC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;QAC/C,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,QAAQ,iCAAiC,EAAE,IAAI,CAAC,CAAC;QAC1F,IAAI,EAAE;YAAE,OAAO,QAAQ,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,2DAA2D,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvG,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,wBAAwB,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,MAAc,EAAE,QAAgB,EAAE,QAA4B;IAC3F,SAAS,CAAC;QACR,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,gBAAgB,QAAQ,GAAG,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,uBAAuB,QAAQ,OAAO,CAAC,CAAC;QAC/D,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,4BAA4B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,YAAY,aAAa,CAAC,MAAM,CAAC,6DAA6D,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;QAC7E,OAAO,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;QACrG,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAC;QAC1F,OAAO,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC;QACvF,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;QACjF,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,uEAAuE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACtI,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB;IAC5B,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;IACnF,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;IACvD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AACrD,CAAC"}
|
|
1
|
+
{"version":3,"file":"proxySetup.js","sourceRoot":"","sources":["../../scripts/proxySetup.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,15 +56,68 @@ export async function registerAgentManagementRoutes(app, config, services) {
|
|
|
56
56
|
if (!normalizedUrl.ok) {
|
|
57
57
|
return reply.code(400).send({ error: normalizedUrl.error });
|
|
58
58
|
}
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
token
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
59
|
+
const agentName = name.trim();
|
|
60
|
+
let agent = null;
|
|
61
|
+
let created = false;
|
|
62
|
+
await services.fileStore.update((state) => {
|
|
63
|
+
const tokenMatchIndex = state.agents.findIndex((a) => a.token === token);
|
|
64
|
+
const urlMatchIndex = state.agents.findIndex((a) => a.url === normalizedUrl.url);
|
|
65
|
+
const existingIndex = tokenMatchIndex >= 0 ? tokenMatchIndex : urlMatchIndex;
|
|
66
|
+
if (existingIndex === -1) {
|
|
67
|
+
created = true;
|
|
68
|
+
agent = {
|
|
69
|
+
id: randomUUID(),
|
|
70
|
+
name: agentName,
|
|
71
|
+
url: normalizedUrl.url,
|
|
72
|
+
token,
|
|
73
|
+
createdAt: new Date().toISOString()
|
|
74
|
+
};
|
|
75
|
+
return { ...state, agents: [...state.agents, agent] };
|
|
76
|
+
}
|
|
77
|
+
const existing = state.agents[existingIndex];
|
|
78
|
+
agent = {
|
|
79
|
+
...existing,
|
|
80
|
+
name: agentName,
|
|
81
|
+
url: normalizedUrl.url,
|
|
82
|
+
token
|
|
83
|
+
};
|
|
84
|
+
const removedAgentIds = [];
|
|
85
|
+
const agents = state.agents.flatMap((current, index) => {
|
|
86
|
+
if (index === existingIndex) {
|
|
87
|
+
return [agent];
|
|
88
|
+
}
|
|
89
|
+
if (current.url === normalizedUrl.url || current.token === token) {
|
|
90
|
+
removedAgentIds.push(current.id);
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
return [current];
|
|
94
|
+
});
|
|
95
|
+
if (removedAgentIds.length === 0) {
|
|
96
|
+
return { ...state, agents };
|
|
97
|
+
}
|
|
98
|
+
const agentLayouts = { ...state.agentLayouts };
|
|
99
|
+
const agentManualUpdates = { ...state.agentManualUpdates };
|
|
100
|
+
for (const removedAgentId of removedAgentIds) {
|
|
101
|
+
const preferredLayout = pickPreferredAgentLayout(agentLayouts[existing.id], agentLayouts[removedAgentId]);
|
|
102
|
+
if (preferredLayout) {
|
|
103
|
+
agentLayouts[existing.id] = preferredLayout;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
delete agentLayouts[existing.id];
|
|
107
|
+
}
|
|
108
|
+
const preferredManualUpdate = pickPreferredManualUpdate(agentManualUpdates[existing.id], agentManualUpdates[removedAgentId]);
|
|
109
|
+
if (preferredManualUpdate) {
|
|
110
|
+
agentManualUpdates[existing.id] = preferredManualUpdate;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
delete agentManualUpdates[existing.id];
|
|
114
|
+
}
|
|
115
|
+
delete agentLayouts[removedAgentId];
|
|
116
|
+
delete agentManualUpdates[removedAgentId];
|
|
117
|
+
}
|
|
118
|
+
return { ...state, agents, agentLayouts, agentManualUpdates };
|
|
119
|
+
}, { flush: 'immediate' });
|
|
120
|
+
return reply.code(created ? 201 : 200).send({ agent: { id: agent.id, name: agent.name, url: agent.url } });
|
|
68
121
|
});
|
|
69
122
|
// Rename agent
|
|
70
123
|
app.patch('/api/agents/:agentId', { preHandler: (request, reply) => requireAllowedOrigin(config, request, reply) }, async (request, reply) => {
|
|
@@ -341,6 +394,27 @@ async function resolveAgent(fileStore, agentId) {
|
|
|
341
394
|
const state = await fileStore.read();
|
|
342
395
|
return state.agents.find((a) => a.id === agentId) ?? null;
|
|
343
396
|
}
|
|
397
|
+
function pickPreferredAgentLayout(current, candidate) {
|
|
398
|
+
if (!current)
|
|
399
|
+
return candidate;
|
|
400
|
+
if (!candidate)
|
|
401
|
+
return current;
|
|
402
|
+
if (candidate.revision !== current.revision) {
|
|
403
|
+
return candidate.revision > current.revision ? candidate : current;
|
|
404
|
+
}
|
|
405
|
+
return timestampMs(candidate.updatedAt) > timestampMs(current.updatedAt) ? candidate : current;
|
|
406
|
+
}
|
|
407
|
+
function pickPreferredManualUpdate(current, candidate) {
|
|
408
|
+
if (!current)
|
|
409
|
+
return candidate;
|
|
410
|
+
if (!candidate)
|
|
411
|
+
return current;
|
|
412
|
+
return timestampMs(candidate.detectedAt) > timestampMs(current.detectedAt) ? candidate : current;
|
|
413
|
+
}
|
|
414
|
+
function timestampMs(value) {
|
|
415
|
+
const parsed = Date.parse(value);
|
|
416
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
417
|
+
}
|
|
344
418
|
function normalizeAgentUrl(rawUrl) {
|
|
345
419
|
let parsedUrl;
|
|
346
420
|
try {
|