onboardconnect-agent 1.1.2 → 1.1.3
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/setup.d.ts.map +1 -1
- package/dist/setup.js +49 -241
- package/dist/setup.js.map +1 -1
- package/package.json +1 -1
package/dist/setup.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAKA,iBAAe,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAKA,iBAAe,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CA6DtC;AAmHD,eAAe,OAAO,CAAC"}
|
package/dist/setup.js
CHANGED
|
@@ -3,254 +3,66 @@ import ora from "ora";
|
|
|
3
3
|
import inquirer from "inquirer";
|
|
4
4
|
import { OcStore } from "./store.js";
|
|
5
5
|
async function ocSetup() {
|
|
6
|
-
console.log(chalk.bold.blue("\n OnboardConnect On-Prem Agent — Setup
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
let cliToken;
|
|
11
|
-
if (tokenFlagIdx !== -1) {
|
|
12
|
-
const arg = process.argv[tokenFlagIdx];
|
|
13
|
-
cliToken = arg.includes("=") ? arg.split("=").slice(1).join("=") : process.argv[tokenFlagIdx + 1];
|
|
14
|
-
}
|
|
15
|
-
// Step 1: Prerequisites
|
|
16
|
-
const spinner = ora("Checking prerequisites...").start();
|
|
17
|
-
const nodeVersion = process.version;
|
|
18
|
-
const major = parseInt(nodeVersion.slice(1).split(".")[0] ?? "0", 10);
|
|
6
|
+
console.log(chalk.bold.blue("\n OnboardConnect On-Prem Agent — Setup\n"));
|
|
7
|
+
// Node.js version check
|
|
8
|
+
const nodeSpinner = ora("Checking Node.js...").start();
|
|
9
|
+
const major = parseInt(process.version.slice(1).split(".")[0] ?? "0", 10);
|
|
19
10
|
if (major < 18) {
|
|
20
|
-
|
|
11
|
+
nodeSpinner.fail(`Node.js >= 18 required. Found: ${process.version}`);
|
|
21
12
|
process.exit(1);
|
|
22
13
|
}
|
|
23
|
-
|
|
24
|
-
//
|
|
25
|
-
const
|
|
26
|
-
try {
|
|
27
|
-
const { execSync } = await import("child_process");
|
|
28
|
-
execSync("cloudflared --version", { stdio: "pipe" });
|
|
29
|
-
cloudflaredCheck.succeed("cloudflared found ✓");
|
|
30
|
-
}
|
|
31
|
-
catch {
|
|
32
|
-
cloudflaredCheck.warn("cloudflared not found");
|
|
33
|
-
console.log(chalk.yellow("\n Please install cloudflared first:\n" +
|
|
34
|
-
" https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/downloads/\n"));
|
|
35
|
-
const { proceed } = await inquirer.prompt([{
|
|
36
|
-
type: "confirm",
|
|
37
|
-
name: "proceed",
|
|
38
|
-
message: "Continue anyway?",
|
|
39
|
-
default: false,
|
|
40
|
-
}]);
|
|
41
|
-
if (!proceed)
|
|
42
|
-
process.exit(0);
|
|
43
|
-
}
|
|
44
|
-
// Step 2: Setup token
|
|
45
|
-
console.log(chalk.bold("\n Step 1: Setup Token\n"));
|
|
14
|
+
nodeSpinner.succeed(`Node.js ${process.version} ✓`);
|
|
15
|
+
// Accept token via --token flag or plain prompt
|
|
16
|
+
const tokenFlagIdx = process.argv.findIndex((a) => a === "--token" || a.startsWith("--token="));
|
|
46
17
|
let setupToken;
|
|
47
|
-
if (
|
|
48
|
-
|
|
18
|
+
if (tokenFlagIdx !== -1) {
|
|
19
|
+
const arg = process.argv[tokenFlagIdx];
|
|
20
|
+
setupToken = arg.includes("=") ? arg.split("=").slice(1).join("=") : (process.argv[tokenFlagIdx + 1] ?? "");
|
|
49
21
|
console.log(chalk.gray(" Using token from --token flag."));
|
|
50
22
|
}
|
|
51
23
|
else {
|
|
52
24
|
const answer = await inquirer.prompt([{
|
|
53
25
|
type: "input",
|
|
54
|
-
name: "
|
|
55
|
-
message: "Paste
|
|
26
|
+
name: "t",
|
|
27
|
+
message: "Paste your one-time setup token:",
|
|
56
28
|
validate: (v) => v.trim().length > 0 || "Token is required",
|
|
57
29
|
}]);
|
|
58
|
-
setupToken = answer.
|
|
30
|
+
setupToken = answer.t.trim();
|
|
59
31
|
}
|
|
60
|
-
|
|
32
|
+
// Exchange token
|
|
33
|
+
const tokenSpinner = ora("Registering agent...").start();
|
|
61
34
|
let credentials;
|
|
62
35
|
try {
|
|
63
|
-
const
|
|
36
|
+
const apiBase = process.env["OC_API_BASE"] ?? "https://api.onboardconnectapp.com";
|
|
37
|
+
const res = await fetch(`${apiBase}/api/tenant/agent/exchange-token`, {
|
|
64
38
|
method: "POST",
|
|
65
39
|
headers: { "Content-Type": "application/json" },
|
|
66
40
|
body: JSON.stringify({ setupToken }),
|
|
67
41
|
});
|
|
68
|
-
if (!
|
|
69
|
-
throw new Error(
|
|
70
|
-
credentials = await
|
|
71
|
-
tokenSpinner.succeed("
|
|
42
|
+
if (!res.ok)
|
|
43
|
+
throw new Error(`${res.status}`);
|
|
44
|
+
credentials = await res.json();
|
|
45
|
+
tokenSpinner.succeed("Agent registered ✓");
|
|
72
46
|
}
|
|
73
47
|
catch (err) {
|
|
74
|
-
tokenSpinner.fail(`
|
|
48
|
+
tokenSpinner.fail(`Registration failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
75
49
|
process.exit(1);
|
|
76
50
|
}
|
|
77
|
-
//
|
|
78
|
-
console.log(chalk.bold("\n Step 2: Agent Name\n"));
|
|
79
|
-
const { agentName } = await inquirer.prompt([{
|
|
80
|
-
type: "input",
|
|
81
|
-
name: "agentName",
|
|
82
|
-
message: "Name this agent (e.g. Main Campus DC):",
|
|
83
|
-
validate: (v) => v.length > 0 || "Name is required",
|
|
84
|
-
}]);
|
|
85
|
-
// Step 4: LDAP configuration
|
|
86
|
-
console.log(chalk.bold("\n Step 3: LDAP Configuration\n"));
|
|
87
|
-
const { authMode } = await inquirer.prompt([{
|
|
88
|
-
type: "list",
|
|
89
|
-
name: "authMode",
|
|
90
|
-
message: "LDAP authentication mode:",
|
|
91
|
-
choices: [
|
|
92
|
-
{ name: "Explicit credentials (bind DN + password)", value: "explicit" },
|
|
93
|
-
{ name: "Windows Service Account (service runs as domain account — no password stored)", value: "service_account" },
|
|
94
|
-
],
|
|
95
|
-
default: "explicit",
|
|
96
|
-
}]);
|
|
97
|
-
const ldapBase = await inquirer.prompt([
|
|
98
|
-
{ type: "input", name: "host", message: "LDAP server hostname or IP:", validate: (v) => v.length > 0 || "Required" },
|
|
99
|
-
{ type: "number", name: "port", message: "LDAP port:", default: authMode === "service_account" ? 389 : 636 },
|
|
100
|
-
{ type: "input", name: "baseDn", message: "Base DN (e.g. DC=university,DC=edu):", validate: (v) => v.length > 0 || "Required" },
|
|
101
|
-
{ type: "input", name: "defaultOu", message: "Default OU for new accounts (e.g. OU=Students,DC=university,DC=edu):", validate: (v) => v.length > 0 || "Required" },
|
|
102
|
-
]);
|
|
103
|
-
let bindDn = "";
|
|
104
|
-
let bindPassword = "";
|
|
105
|
-
if (authMode === "explicit") {
|
|
106
|
-
const creds = await inquirer.prompt([
|
|
107
|
-
{ type: "input", name: "bindDn", message: "Bind DN (e.g. CN=oc-service,OU=ServiceAccounts,DC=university,DC=edu):", validate: (v) => v.length > 0 || "Required" },
|
|
108
|
-
{ type: "input", name: "bindPassword", message: "Bind password:", validate: (v) => v.length > 0 || "Required" },
|
|
109
|
-
]);
|
|
110
|
-
bindDn = creds.bindDn;
|
|
111
|
-
bindPassword = creds.bindPassword;
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
console.log(chalk.gray("\n Service Account mode: the Windows service will authenticate to LDAP using\n" +
|
|
115
|
-
" the domain account it runs as. Configure the service account in Windows\n" +
|
|
116
|
-
" Services after setup completes (Services → OnboardConnect Agent → Log On).\n"));
|
|
117
|
-
}
|
|
118
|
-
const ldapAnswers = { ...ldapBase, bindDn, bindPassword, authMode, disabledOu: "" };
|
|
119
|
-
const ldapSpinner = ora("Testing LDAP connection...").start();
|
|
120
|
-
try {
|
|
121
|
-
const { Client } = await import("ldapts");
|
|
122
|
-
const proto = ldapAnswers.port === 636 ? "ldaps" : "ldap";
|
|
123
|
-
const client = new Client({ url: `${proto}://${ldapAnswers.host}:${ldapAnswers.port}` });
|
|
124
|
-
if (authMode === "explicit") {
|
|
125
|
-
await client.bind(ldapAnswers.bindDn, ldapAnswers.bindPassword);
|
|
126
|
-
}
|
|
127
|
-
await client.unbind();
|
|
128
|
-
ldapSpinner.succeed("LDAP connection successful ✓");
|
|
129
|
-
}
|
|
130
|
-
catch (err) {
|
|
131
|
-
ldapSpinner.fail(`LDAP connection failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
132
|
-
const { cont } = await inquirer.prompt([{
|
|
133
|
-
type: "confirm", name: "cont", message: "Continue setup anyway?", default: false,
|
|
134
|
-
}]);
|
|
135
|
-
if (!cont)
|
|
136
|
-
process.exit(1);
|
|
137
|
-
}
|
|
138
|
-
// Step 5: Required file paths
|
|
139
|
-
console.log(chalk.bold("\n Step 4: File Paths\n"));
|
|
140
|
-
console.log(chalk.gray(" These directories are used by workflow steps that read from or write to\n" +
|
|
141
|
-
" files on this machine. Use absolute paths the service account can access.\n"));
|
|
142
|
-
const pathAnswers = await inquirer.prompt([
|
|
143
|
-
{
|
|
144
|
-
type: "input",
|
|
145
|
-
name: "fileReadPath",
|
|
146
|
-
message: "File read directory (agent reads input files from here):",
|
|
147
|
-
validate: (v) => v.trim().length > 0 || "Required — e.g. C:\\OC\\Imports",
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
type: "input",
|
|
151
|
-
name: "fileWritePath",
|
|
152
|
-
message: "File write directory (agent writes output files here):",
|
|
153
|
-
validate: (v) => v.trim().length > 0 || "Required — e.g. C:\\OC\\Exports",
|
|
154
|
-
},
|
|
155
|
-
]);
|
|
156
|
-
// Step 6: Additional path aliases (optional)
|
|
157
|
-
console.log(chalk.bold("\n Step 5: Additional Path Aliases (optional)\n"));
|
|
158
|
-
console.log(chalk.gray(" Aliases let workflow steps reference files by a short token\n" +
|
|
159
|
-
" (e.g. {slate_export}) instead of a full absolute path.\n" +
|
|
160
|
-
" The read/write directories above are registered automatically.\n" +
|
|
161
|
-
" Press Enter with a blank alias to skip.\n"));
|
|
162
|
-
const paths = {
|
|
163
|
-
read: pathAnswers.fileReadPath.trim(),
|
|
164
|
-
write: pathAnswers.fileWritePath.trim(),
|
|
165
|
-
};
|
|
166
|
-
let addMore = true;
|
|
167
|
-
while (addMore) {
|
|
168
|
-
const { alias } = await inquirer.prompt([{
|
|
169
|
-
type: "input",
|
|
170
|
-
name: "alias",
|
|
171
|
-
message: "Alias name (e.g. slate_export), or leave blank to finish:",
|
|
172
|
-
}]);
|
|
173
|
-
if (!alias.trim()) {
|
|
174
|
-
addMore = false;
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
const { filePath } = await inquirer.prompt([{
|
|
178
|
-
type: "input",
|
|
179
|
-
name: "filePath",
|
|
180
|
-
message: `Absolute path for {${alias}}:`,
|
|
181
|
-
validate: (v) => v.length > 0 || "Path is required",
|
|
182
|
-
}]);
|
|
183
|
-
paths[alias.trim()] = filePath.trim();
|
|
184
|
-
const { more } = await inquirer.prompt([{
|
|
185
|
-
type: "confirm",
|
|
186
|
-
name: "more",
|
|
187
|
-
message: "Add another path alias?",
|
|
188
|
-
default: false,
|
|
189
|
-
}]);
|
|
190
|
-
addMore = more;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
// Step 7: Service install
|
|
194
|
-
console.log(chalk.bold("\n Step 6: Service Install\n"));
|
|
195
|
-
const { installService } = await inquirer.prompt([{
|
|
196
|
-
type: "confirm",
|
|
197
|
-
name: "installService",
|
|
198
|
-
message: "Install agent as a system service (auto-start on boot)?",
|
|
199
|
-
default: true,
|
|
200
|
-
}]);
|
|
201
|
-
let serviceAccountUser = "";
|
|
202
|
-
let serviceAccountPassword = "";
|
|
203
|
-
if (installService && authMode === "service_account" && process.platform === "win32") {
|
|
204
|
-
console.log(chalk.gray("\n Enter the domain account the service will run as for LDAP access.\n"));
|
|
205
|
-
const svcAcct = await inquirer.prompt([
|
|
206
|
-
{ type: "input", name: "user", message: "Service account (DOMAIN\\username):", validate: (v) => v.includes("\\") || "Use DOMAIN\\username format" },
|
|
207
|
-
{ type: "input", name: "password", message: "Service account password:", validate: (v) => v.length > 0 || "Required" },
|
|
208
|
-
]);
|
|
209
|
-
serviceAccountUser = svcAcct.user;
|
|
210
|
-
serviceAccountPassword = svcAcct.password;
|
|
211
|
-
}
|
|
212
|
-
// Save all credentials and paths
|
|
51
|
+
// Save credentials
|
|
213
52
|
const store = new OcStore();
|
|
214
53
|
await store.saveCredentials({ ...credentials });
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
bindDn: ldapAnswers.bindDn,
|
|
220
|
-
bindPassword: ldapAnswers.bindPassword,
|
|
221
|
-
authMode: ldapAnswers.authMode,
|
|
222
|
-
defaultOu: ldapAnswers.defaultOu,
|
|
223
|
-
disabledOu: null,
|
|
224
|
-
});
|
|
225
|
-
await store.savePaths(paths);
|
|
226
|
-
if (installService) {
|
|
227
|
-
await installSystemService(agentName, serviceAccountUser, serviceAccountPassword);
|
|
228
|
-
await ocOpenAgentUi();
|
|
229
|
-
}
|
|
54
|
+
// Install and start Windows service
|
|
55
|
+
await installSystemService();
|
|
56
|
+
// Open the UI — all further config is done there
|
|
57
|
+
await ocOpenAgentUi();
|
|
230
58
|
console.log(chalk.bold.green("\n ✓ Setup complete!\n"));
|
|
231
59
|
console.log(chalk.gray(` Agent ID: ${credentials.agentId}`));
|
|
232
|
-
console.log(chalk.gray(`
|
|
233
|
-
console.log(chalk.
|
|
234
|
-
console.log(chalk.gray(` Write path: ${pathAnswers.fileWritePath}`));
|
|
235
|
-
console.log(chalk.gray(` Config file: ${store.configPath}`));
|
|
236
|
-
if (Object.keys(paths).length > 2) {
|
|
237
|
-
console.log(chalk.gray(` Path aliases:`));
|
|
238
|
-
for (const [k, v] of Object.entries(paths)) {
|
|
239
|
-
if (k !== "read" && k !== "write")
|
|
240
|
-
console.log(chalk.gray(` {${k}} → ${v}`));
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
if (authMode === "service_account" && installService) {
|
|
244
|
-
console.log(chalk.yellow("\n Remember: set the service Log On account in Windows Services → OnboardConnect Agent → Properties → Log On.\n"));
|
|
245
|
-
}
|
|
246
|
-
console.log(chalk.gray(`\n View agent status: https://portal.onboardconnectapp.com/agents\n`));
|
|
247
|
-
if (!installService) {
|
|
248
|
-
console.log(chalk.yellow(" To start the agent manually: npx onboardconnect-agent start\n"));
|
|
249
|
-
}
|
|
60
|
+
console.log(chalk.gray(` Config: ${store.configPath}`));
|
|
61
|
+
console.log(chalk.cyan(`\n Open http://localhost:7432 to configure LDAP, file paths, and more.\n`));
|
|
250
62
|
}
|
|
251
63
|
async function ocOpenAgentUi() {
|
|
252
64
|
const UI_URL = "http://localhost:7432";
|
|
253
|
-
const spinner = ora("Waiting for agent UI
|
|
65
|
+
const spinner = ora("Waiting for agent UI...").start();
|
|
254
66
|
const deadline = Date.now() + 30_000;
|
|
255
67
|
let ready = false;
|
|
256
68
|
while (Date.now() < deadline) {
|
|
@@ -265,10 +77,10 @@ async function ocOpenAgentUi() {
|
|
|
265
77
|
await new Promise((r) => setTimeout(r, 1500));
|
|
266
78
|
}
|
|
267
79
|
if (!ready) {
|
|
268
|
-
spinner.warn(`Agent UI not responding
|
|
80
|
+
spinner.warn(`Agent UI not responding yet — open ${UI_URL} in your browser manually.`);
|
|
269
81
|
return;
|
|
270
82
|
}
|
|
271
|
-
spinner.succeed(`Agent UI ready
|
|
83
|
+
spinner.succeed(`Agent UI ready → ${UI_URL}`);
|
|
272
84
|
try {
|
|
273
85
|
const { exec } = await import("child_process");
|
|
274
86
|
const openCmd = process.platform === "win32" ? `cmd /c start "" "${UI_URL}"` :
|
|
@@ -276,54 +88,50 @@ async function ocOpenAgentUi() {
|
|
|
276
88
|
`xdg-open ${UI_URL}`;
|
|
277
89
|
exec(openCmd);
|
|
278
90
|
}
|
|
279
|
-
catch {
|
|
280
|
-
console.log(chalk.gray(` Open your browser and navigate to: ${UI_URL}`));
|
|
281
|
-
}
|
|
91
|
+
catch { /* browser open is best-effort */ }
|
|
282
92
|
}
|
|
283
|
-
async function installSystemService(
|
|
284
|
-
const spinner = ora("Installing
|
|
93
|
+
async function installSystemService() {
|
|
94
|
+
const spinner = ora("Installing Windows service...").start();
|
|
285
95
|
try {
|
|
286
96
|
if (process.platform === "win32") {
|
|
287
97
|
const { spawnSync } = await import("child_process");
|
|
288
|
-
// Require Administrator — sc.exe will silently fail without it
|
|
289
98
|
const adminCheck = spawnSync("net", ["session"], { stdio: "pipe" });
|
|
290
99
|
if (adminCheck.status !== 0) {
|
|
291
|
-
spinner.fail("Administrator privileges required. Re-run from an elevated PowerShell prompt
|
|
100
|
+
spinner.fail("Administrator privileges required. Re-run from an elevated PowerShell prompt.");
|
|
292
101
|
return;
|
|
293
102
|
}
|
|
294
103
|
const nodePath = process.execPath;
|
|
295
104
|
const scriptPath = process.argv[1];
|
|
296
105
|
if (!scriptPath) {
|
|
297
|
-
spinner.fail("Could not determine agent script path
|
|
106
|
+
spinner.fail("Could not determine agent script path.");
|
|
298
107
|
return;
|
|
299
108
|
}
|
|
300
109
|
const svcName = "OnboardConnectAgent";
|
|
301
|
-
// binPath= value: node.exe + script, both quoted so spaces are handled
|
|
302
110
|
const binPath = `"${nodePath}" "${scriptPath}"`;
|
|
303
|
-
const logOnAcct = serviceAccountUser || "LocalSystem";
|
|
304
111
|
// Remove any previous install
|
|
305
112
|
spawnSync("sc", ["stop", svcName], { stdio: "pipe" });
|
|
306
113
|
await new Promise((r) => setTimeout(r, 1500));
|
|
307
114
|
spawnSync("sc", ["delete", svcName], { stdio: "pipe" });
|
|
308
115
|
await new Promise((r) => setTimeout(r, 1000));
|
|
309
|
-
// Create
|
|
310
|
-
const
|
|
116
|
+
// Create as LocalSystem — no domain account prompts
|
|
117
|
+
const createResult = spawnSync("sc", [
|
|
311
118
|
"create", svcName,
|
|
312
119
|
"binPath=", binPath,
|
|
313
120
|
"start=", "auto",
|
|
314
121
|
"DisplayName=", "OnboardConnect Agent",
|
|
315
|
-
"obj=",
|
|
316
|
-
|
|
317
|
-
];
|
|
318
|
-
const createResult = spawnSync("sc", createArgs, { stdio: "pipe" });
|
|
122
|
+
"obj=", "LocalSystem",
|
|
123
|
+
], { stdio: "pipe" });
|
|
319
124
|
if (createResult.status !== 0) {
|
|
320
|
-
throw new Error(createResult.stderr?.toString().trim() ||
|
|
125
|
+
throw new Error(createResult.stderr?.toString().trim() ||
|
|
126
|
+
createResult.stdout?.toString().trim() ||
|
|
127
|
+
"sc create failed");
|
|
321
128
|
}
|
|
322
|
-
|
|
323
|
-
spawnSync("sc", ["description", svcName, descSafe], { stdio: "pipe" });
|
|
129
|
+
spawnSync("sc", ["description", svcName, "OnboardConnect On-Prem Agent"], { stdio: "pipe" });
|
|
324
130
|
const startResult = spawnSync("sc", ["start", svcName], { stdio: "pipe" });
|
|
325
131
|
if (startResult.status !== 0) {
|
|
326
|
-
throw new Error(startResult.stderr?.toString().trim() ||
|
|
132
|
+
throw new Error(startResult.stderr?.toString().trim() ||
|
|
133
|
+
startResult.stdout?.toString().trim() ||
|
|
134
|
+
"sc start failed");
|
|
327
135
|
}
|
|
328
136
|
}
|
|
329
137
|
else {
|
package/dist/setup.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,OAAO,EAA2B,MAAM,YAAY,CAAC;AAE9D,KAAK,UAAU,OAAO;IACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC,CAAC;IAE3E,wBAAwB;IACxB,MAAM,WAAW,GAAG,GAAG,CAAC,qBAAqB,CAAC,CAAC,KAAK,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;QACf,WAAW,CAAC,IAAI,CAAC,kCAAkC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,WAAW,CAAC,OAAO,CAAC,WAAW,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;IAEpD,gDAAgD;IAChD,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;IAChG,IAAI,UAAkB,CAAC;IACvB,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAE,CAAC;QACxC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5G,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAgB,CAAC;gBACnD,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,GAAG;gBACT,OAAO,EAAE,kCAAkC;gBAC3C,QAAQ,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,mBAAmB;aACpE,CAAC,CAAC,CAAC;QACJ,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,iBAAiB;IACjB,MAAM,YAAY,GAAG,GAAG,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IACzD,IAAI,WAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,mCAAmC,CAAC;QAClF,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,kCAAkC,EAAE;YACpE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC;SACrC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,EAAwB,CAAC;QACrD,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,YAAY,CAAC,IAAI,CAAC,wBAAwB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,mBAAmB;IACnB,MAAM,KAAK,GAAG,IAAI,OAAO,EAAE,CAAC;IAC5B,MAAM,KAAK,CAAC,eAAe,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;IAEhD,oCAAoC;IACpC,MAAM,oBAAoB,EAAE,CAAC;IAE7B,iDAAiD;IACjD,MAAM,aAAa,EAAE,CAAC;IAEtB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,MAAM,GAAG,uBAAuB,CAAC;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC,CAAC,KAAK,EAAE,CAAC;IAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC;IACrC,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvE,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAAC,KAAK,GAAG,IAAI,CAAC;gBAAC,MAAM;YAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC,CAAC,mBAAmB,CAAC,CAAC;QAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,sCAAsC,MAAM,4BAA4B,CAAC,CAAC;QACvF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,oBAAoB,MAAM,EAAE,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,OAAO,GACX,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAE,CAAC,CAAC,oBAAoB,MAAM,GAAG,CAAC,CAAC;YAC/D,OAAO,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC,CAAC;gBAClD,YAAY,MAAM,EAAE,CAAC;QACvB,IAAI,CAAC,OAAO,CAAC,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC,CAAC,iCAAiC,CAAC,CAAC;AAC/C,CAAC;AAED,KAAK,UAAU,oBAAoB;IACjC,MAAM,OAAO,GAAG,GAAG,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC;IAC7D,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YAEpD,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACpE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAC;gBAC9F,OAAO;YACT,CAAC;YAED,MAAM,QAAQ,GAAK,OAAO,CAAC,QAAQ,CAAC;YACpC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBACvD,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,qBAAqB,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,QAAQ,MAAM,UAAU,GAAG,CAAC;YAEhD,8BAA8B;YAC9B,SAAS,CAAC,IAAI,EAAE,CAAC,MAAM,EAAI,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9C,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACxD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;YAE9C,oDAAoD;YACpD,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,EAAE;gBACnC,QAAQ,EAAE,OAAO;gBACjB,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAI,MAAM;gBAClB,cAAc,EAAE,sBAAsB;gBACtC,MAAM,EAAM,aAAa;aAC1B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAEtB,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CACb,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;oBACtC,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;oBACtC,kBAAkB,CACnB,CAAC;YACJ,CAAC;YAED,SAAS,CAAC,IAAI,EAAE,CAAC,aAAa,EAAE,OAAO,EAAE,8BAA8B,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAE7F,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;oBACrC,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE;oBACrC,iBAAiB,CAClB,CAAC;YACJ,CAAC;QAEH,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACxD,MAAM,IAAI,GAAG;;;;;;YAMP,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;;;;;;;CAO9C,CAAC;YACI,aAAa,CAAC,sCAAsC,EAAE,IAAI,CAAC,CAAC;YAC5D,SAAS,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;YACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;YACnD,QAAQ,CAAC,uDAAuD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,2BAA2B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,eAAe,OAAO,CAAC"}
|