anyray-connect 0.11.14 → 0.11.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -0
- package/dist/cli.js +124 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/agent.js +261 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/agentProxy.js +437 -0
- package/dist/commands/agentProxy.js.map +1 -0
- package/dist/commands/doctor.js +24 -2
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/fallbackProxy.js +493 -0
- package/dist/commands/fallbackProxy.js.map +1 -0
- package/dist/commands/status.js +24 -3
- package/dist/commands/status.js.map +1 -1
- package/dist/target.js +17 -0
- package/dist/target.js.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/opencode.js +305 -0
- package/dist/tools/opencode.js.map +1 -0
- package/dist/tools/shellEnv.js +6 -11
- package/dist/tools/shellEnv.js.map +1 -1
- package/dist/util/agentAllowlist.js +72 -0
- package/dist/util/agentAllowlist.js.map +1 -0
- package/dist/util/agentCa.js +209 -0
- package/dist/util/agentCa.js.map +1 -0
- package/dist/util/agentPaths.js +38 -0
- package/dist/util/agentPaths.js.map +1 -0
- package/dist/util/agentService.js +203 -0
- package/dist/util/agentService.js.map +1 -0
- package/dist/util/agentTrust.js +338 -0
- package/dist/util/agentTrust.js.map +1 -0
- package/dist/util/devVerify.js +4 -0
- package/dist/util/devVerify.js.map +1 -1
- package/dist/util/fallback.js +466 -0
- package/dist/util/fallback.js.map +1 -0
- package/dist/util/fallbackClient.js +68 -0
- package/dist/util/fallbackClient.js.map +1 -0
- package/dist/util/fallbackStore.js +187 -0
- package/dist/util/fallbackStore.js.map +1 -0
- package/dist/util/persist.js +2 -2
- package/dist/util/persist.js.map +1 -1
- package/dist/util/proxyService.js +225 -0
- package/dist/util/proxyService.js.map +1 -0
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -58,6 +58,46 @@ gateway (`ANYRAY_PROVIDER_KEY_*`), which swaps it in per request. Only metadata
|
|
|
58
58
|
(user/team) is attached for spend attribution; **prompt/response content is never
|
|
59
59
|
touched.**
|
|
60
60
|
|
|
61
|
+
## Agent — capture desktop & browser apps (Tier 2)
|
|
62
|
+
|
|
63
|
+
The table above covers tools with a **configurable base URL**. Apps that
|
|
64
|
+
hard-code their endpoint — the **ChatGPT desktop app**, **Claude desktop app**,
|
|
65
|
+
**Copilot**, and **browser** sessions — can't be redirected, so the `agent`
|
|
66
|
+
subcommand captures them one layer lower (RFC 0002):
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
anyray-connect agent install # macOS only in Phase 1
|
|
70
|
+
anyray-connect agent status # running? which domains are intercepted?
|
|
71
|
+
anyray-connect agent stop # pause (keeps the CA)
|
|
72
|
+
anyray-connect agent start # resume
|
|
73
|
+
anyray-connect agent uninstall # restore the proxy, untrust + delete the CA
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
`install` generates a **per-device CA** (via the `openssl` CLI — still zero npm
|
|
77
|
+
deps), trusts it, installs a launchd-supervised **intercepting proxy**, and
|
|
78
|
+
points the macOS system proxy at it. Per connection the proxy makes one decision:
|
|
79
|
+
|
|
80
|
+
- **an allowlisted AI host** (`api.openai.com`, `chatgpt.com`, `api.anthropic.com`,
|
|
81
|
+
`claude.ai`, `*.githubcopilot.com`) → terminate TLS locally with a leaf minted
|
|
82
|
+
from the device CA, then **forward to the gateway** (`POST /v1/agent-intake`)
|
|
83
|
+
so spend is metered content-free. The app's own `Authorization` (its
|
|
84
|
+
ChatGPT/Claude/Copilot session) rides through untouched; the agent injects the
|
|
85
|
+
origin host, content-free attribution, and the dev's `x-anyray-api-key`.
|
|
86
|
+
- **anything else** → a blind CONNECT tunnel, piped byte-for-byte, **never
|
|
87
|
+
decrypted**.
|
|
88
|
+
|
|
89
|
+
The allowlist (`src/util/agentAllowlist.ts`) is a small, code-reviewed constant —
|
|
90
|
+
not runtime-editable — so the proxy can't become a general MITM. It's **opt-in
|
|
91
|
+
and org-governed**, fails open (a dead daemon reverts the system proxy), and
|
|
92
|
+
`uninstall` fully reverts CA + proxy.
|
|
93
|
+
|
|
94
|
+
**Gateway requirement:** the gateway must allowlist the AI domains via
|
|
95
|
+
`ANYRAY_CUSTOM_HOST_ALLOWLIST` (a comma-separated list) or the intake fails
|
|
96
|
+
closed (403). `agent status` prints the exact list. See the
|
|
97
|
+
[Capture desktop & browser apps](https://docs.anyray.ai/get-started/device-capture)
|
|
98
|
+
docs for the privacy model, per-OS mechanics, and the documented gaps
|
|
99
|
+
(cert-pinned apps, QUIC, HTTP/1.1-only interception).
|
|
100
|
+
|
|
61
101
|
## Common flags
|
|
62
102
|
|
|
63
103
|
```
|
package/dist/cli.js
CHANGED
|
@@ -8,7 +8,12 @@
|
|
|
8
8
|
* usage keeps working. All intelligence stays in the gateway; this only writes
|
|
9
9
|
* base URLs + placeholder keys + content-free attribution.
|
|
10
10
|
*/
|
|
11
|
-
import { isInsecureRemoteOrigin, resolveOrigin, resolveTarget, } from './target.js';
|
|
11
|
+
import { isInsecureRemoteOrigin, resolveOrigin, resolveTarget, withLocalProxy, } from './target.js';
|
|
12
|
+
import { pickFallbackPort, installProxyService, uninstallProxyService, probeHealth, } from './util/proxyService.js';
|
|
13
|
+
import { clearBundle, clearQueue } from './util/fallbackStore.js';
|
|
14
|
+
import { runFallbackProxy } from './commands/fallbackProxy.js';
|
|
15
|
+
import { runAgent } from './commands/agent.js';
|
|
16
|
+
import { runAgentProxy } from './commands/agentProxy.js';
|
|
12
17
|
import { checkGateway } from './util/preflight.js';
|
|
13
18
|
import { maskKey } from './util/redeem.js';
|
|
14
19
|
import { parseEnrollLink, isEnrollArg, resolveEnrollLink } from './util/enrollLink.js';
|
|
@@ -41,6 +46,9 @@ ${bold('Subcommands')}
|
|
|
41
46
|
status Show current config: tools pointed at Anyray, gateway, name/team, savings
|
|
42
47
|
doctor Diagnose gateway reachability + tool config; exits non-zero on problems
|
|
43
48
|
sync Pull the team's shared skills/instructions into each tool's skills dir
|
|
49
|
+
agent Capture AI usage from desktop & browser apps (ChatGPT / Claude
|
|
50
|
+
desktop, Copilot, browsers) via a local intercepting proxy +
|
|
51
|
+
device CA. See \`anyray-connect agent\` for its subcommands.
|
|
44
52
|
(no subcommand) Apply the connect flow (wizard-driven when interactive)
|
|
45
53
|
|
|
46
54
|
${bold('Options')}
|
|
@@ -94,6 +102,13 @@ ${bold('Options')}
|
|
|
94
102
|
--force Skip the gateway reachability check before writing
|
|
95
103
|
--skip-verify Skip the post-apply smoke test (it sends one tiny request
|
|
96
104
|
through the gateway to confirm auth + routing actually work)
|
|
105
|
+
--fallback, --no-fallback
|
|
106
|
+
Install (or remove) the local fallback proxy: a tiny
|
|
107
|
+
always-on daemon on 127.0.0.1 your tools point at. It
|
|
108
|
+
forwards to the gateway, and if the gateway isn't responding
|
|
109
|
+
it routes the request straight to the original provider so
|
|
110
|
+
you're never blocked — reconciling the usage when the gateway
|
|
111
|
+
is back. Off by default; the setting persists across re-runs.
|
|
97
112
|
--revert Undo a previous run
|
|
98
113
|
--help, -h Show this help
|
|
99
114
|
|
|
@@ -174,6 +189,12 @@ export const parseArgs = (argv) => {
|
|
|
174
189
|
case '--skip-verify':
|
|
175
190
|
args.skipVerify = true;
|
|
176
191
|
break;
|
|
192
|
+
case '--fallback':
|
|
193
|
+
args.fallback = true;
|
|
194
|
+
break;
|
|
195
|
+
case '--no-fallback':
|
|
196
|
+
args.noFallback = true;
|
|
197
|
+
break;
|
|
177
198
|
case '--revert':
|
|
178
199
|
args.revert = true;
|
|
179
200
|
break;
|
|
@@ -359,6 +380,44 @@ const runVerify = async (target) => {
|
|
|
359
380
|
for (const line of verdict.remedy)
|
|
360
381
|
info(dim(` ${line}`));
|
|
361
382
|
};
|
|
383
|
+
/**
|
|
384
|
+
* Bring up the local fallback proxy and return the target the tools should point
|
|
385
|
+
* at — the local daemon when it comes up healthy, else the direct gateway (with a
|
|
386
|
+
* warning). The daemon reads gateway/clientKey/port from `~/.anyray`, so those are
|
|
387
|
+
* persisted BEFORE it launches. Best-effort: a setup failure never aborts the
|
|
388
|
+
* apply (tools still work while the gateway is up).
|
|
389
|
+
*/
|
|
390
|
+
const setupFallbackProxy = async (target, profile, port, resolvedUser, resolvedTeam) => {
|
|
391
|
+
heading('Local fallback proxy');
|
|
392
|
+
// Persist what the daemon needs to boot before we start it.
|
|
393
|
+
await saveProfile({
|
|
394
|
+
...profile,
|
|
395
|
+
gateway: target.origin,
|
|
396
|
+
name: resolvedUser ?? profile.name,
|
|
397
|
+
team: resolvedTeam ?? profile.team,
|
|
398
|
+
clientKey: target.clientKey ?? profile.clientKey,
|
|
399
|
+
authMode: target.authMode,
|
|
400
|
+
fallbackEnabled: true,
|
|
401
|
+
fallbackPort: port,
|
|
402
|
+
});
|
|
403
|
+
const svc = await installProxyService();
|
|
404
|
+
for (const m of svc.messages)
|
|
405
|
+
info(` ${m}`);
|
|
406
|
+
// The service may take a moment to bind — poll its health endpoint.
|
|
407
|
+
let health = null;
|
|
408
|
+
for (let i = 0; i < 10 && !health; i++) {
|
|
409
|
+
health = await probeHealth(port);
|
|
410
|
+
if (!health)
|
|
411
|
+
await new Promise((r) => setTimeout(r, 300));
|
|
412
|
+
}
|
|
413
|
+
if (health) {
|
|
414
|
+
ok(` Running on 127.0.0.1:${port} → ${target.origin} — tools fail over to the provider automatically.`);
|
|
415
|
+
return withLocalProxy(target, port);
|
|
416
|
+
}
|
|
417
|
+
warn(' Fallback proxy did not come up — pointing tools directly at the gateway for now.');
|
|
418
|
+
info(dim(' It will retry on the next run; check the service logs if it persists.'));
|
|
419
|
+
return target;
|
|
420
|
+
};
|
|
362
421
|
const SUBCOMMANDS = new Set(['wizard', 'status', 'doctor', 'sync']);
|
|
363
422
|
export const run = async (argv) => {
|
|
364
423
|
// Hidden hook entrypoint: Claude Code invokes `anyray-connect __anyray-hook`
|
|
@@ -392,6 +451,27 @@ export const run = async (argv) => {
|
|
|
392
451
|
await refreshIfDue();
|
|
393
452
|
return 0;
|
|
394
453
|
}
|
|
454
|
+
// Hidden entrypoint: the OS login service (launchd/systemd) launches
|
|
455
|
+
// `anyray-connect __anyray-fallback-proxy` — the local fallback proxy daemon
|
|
456
|
+
// (commands/fallbackProxy.ts). It listens on loopback, forwards to the remote
|
|
457
|
+
// gateway, and routes direct to the provider when the gateway isn't
|
|
458
|
+
// responding. Runs until the supervisor stops it.
|
|
459
|
+
if (argv[0] === '__anyray-fallback-proxy') {
|
|
460
|
+
return runFallbackProxy();
|
|
461
|
+
}
|
|
462
|
+
// Hidden entrypoint: the OS login service launches `anyray-connect
|
|
463
|
+
// __anyray-agent-proxy` — the device-capture agent daemon (commands/agentProxy
|
|
464
|
+
// .ts). It's a loopback CONNECT proxy the system proxy points at; it MITMs only
|
|
465
|
+
// the AI-domain allowlist and forwards decrypted requests to the gateway,
|
|
466
|
+
// tunneling everything else. Runs until the supervisor stops it.
|
|
467
|
+
if (argv[0] === '__anyray-agent-proxy') {
|
|
468
|
+
return runAgentProxy();
|
|
469
|
+
}
|
|
470
|
+
// The `agent` subcommand has its OWN verb grammar (install/status/stop/start/
|
|
471
|
+
// uninstall), so route it before the flag-parsing subcommand dispatch below.
|
|
472
|
+
if (argv[0] === 'agent') {
|
|
473
|
+
return runAgent(argv.slice(1));
|
|
474
|
+
}
|
|
395
475
|
// Subcommand dispatch: a known verb as the first token routes to that
|
|
396
476
|
// command. Everything else (a gateway URL, flags, or nothing) runs the apply
|
|
397
477
|
// flow, so the bare `anyray-connect` invocation stays backward compatible.
|
|
@@ -761,7 +841,38 @@ const runApplyCommand = async (argv, forceWizard) => {
|
|
|
761
841
|
}
|
|
762
842
|
ok(`Gateway reachable (${probe.detail}).`);
|
|
763
843
|
}
|
|
764
|
-
|
|
844
|
+
// Local fallback proxy: on by explicit --fallback, or kept on across re-runs
|
|
845
|
+
// once enabled (unless --no-fallback turns it off). When up, tools point at the
|
|
846
|
+
// loopback daemon instead of the gateway directly.
|
|
847
|
+
const wantFallback = !args.revert &&
|
|
848
|
+
(args.fallback === true ||
|
|
849
|
+
(args.noFallback !== true && profile.fallbackEnabled === true));
|
|
850
|
+
let applyTarget = target;
|
|
851
|
+
let resolvedFallbackEnabled = wantFallback;
|
|
852
|
+
let resolvedFallbackPort = profile.fallbackPort;
|
|
853
|
+
if (wantFallback && !args.dryRun) {
|
|
854
|
+
resolvedFallbackPort =
|
|
855
|
+
profile.fallbackPort ?? (await pickFallbackPort());
|
|
856
|
+
applyTarget = await setupFallbackProxy(target, profile, resolvedFallbackPort, resolvedUser, resolvedTeam);
|
|
857
|
+
}
|
|
858
|
+
const changes = await runApply(adapters, applyTarget, opts, args.revert);
|
|
859
|
+
// Revert also tears down the fallback daemon + its at-rest state.
|
|
860
|
+
if (args.revert &&
|
|
861
|
+
!args.dryRun &&
|
|
862
|
+
(profile.fallbackEnabled || profile.fallbackPort)) {
|
|
863
|
+
heading('Local fallback proxy');
|
|
864
|
+
const svc = await uninstallProxyService();
|
|
865
|
+
for (const m of svc.messages)
|
|
866
|
+
info(` ${m}`);
|
|
867
|
+
await clearBundle();
|
|
868
|
+
await clearQueue();
|
|
869
|
+
await saveProfile({
|
|
870
|
+
...profile,
|
|
871
|
+
fallbackEnabled: false,
|
|
872
|
+
fallbackPort: undefined,
|
|
873
|
+
});
|
|
874
|
+
ok(' Removed the local fallback proxy.');
|
|
875
|
+
}
|
|
765
876
|
heading('Summary');
|
|
766
877
|
if (args.dryRun) {
|
|
767
878
|
note('Dry run complete — re-run without --dry-run to apply.');
|
|
@@ -777,6 +888,14 @@ const runApplyCommand = async (argv, forceWizard) => {
|
|
|
777
888
|
note('\nSkipped the connection smoke test (--skip-verify).');
|
|
778
889
|
}
|
|
779
890
|
else {
|
|
891
|
+
// MUST probe `target` (the remote gateway), NOT `applyTarget` (the local
|
|
892
|
+
// fallback daemon the tools were pointed at when --fallback is on). The
|
|
893
|
+
// verify classifiers sniff response bodies: probed through the daemon, a
|
|
894
|
+
// daemon-synthesized 502 would confuse them, and with the gateway down the
|
|
895
|
+
// daemon would forward the seat-wiring probe's sentinel bearer direct to
|
|
896
|
+
// the provider — whose 401 false-positives classifySeatWiring's "gateway
|
|
897
|
+
// passes your sign-in through" verdict. The daemon hop is health-checked
|
|
898
|
+
// separately at install time (and by `doctor`).
|
|
780
899
|
await runVerify(target);
|
|
781
900
|
}
|
|
782
901
|
info('\nRe-test by hand any time:');
|
|
@@ -817,6 +936,9 @@ const runApplyCommand = async (argv, forceWizard) => {
|
|
|
817
936
|
// Persist the resolved auth mode so auto-refresh rebuilds the same target
|
|
818
937
|
// (a subscription install must not be downgraded to seat-derived 'auto').
|
|
819
938
|
authMode: target.authMode,
|
|
939
|
+
// Remember the fallback proxy so re-runs keep it (and know its port).
|
|
940
|
+
fallbackEnabled: resolvedFallbackEnabled,
|
|
941
|
+
fallbackPort: resolvedFallbackPort,
|
|
820
942
|
});
|
|
821
943
|
}
|
|
822
944
|
catch (error) {
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EACL,oBAAoB,EAEpB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAOlD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACxE,OAAO,EACL,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,EAAE,EACF,IAAI,GACL,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,WAAW,EACX,WAAW,EACX,UAAU,EACV,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,OAAO,EACP,aAAa,EACb,MAAM,EACN,kBAAkB,EAClB,WAAW,GACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA0BtD,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC;;EAEpC,IAAI,CAAC,OAAO,CAAC;;;;EAIb,IAAI,CAAC,aAAa,CAAC;;;;;;;;;;EAUnB,IAAI,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CA6C6B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;EAgBhF,IAAI,CAAC,cAAc,CAAC;oCACc,GAAG,CAAC,aAAa,CAAC;;;;uBAI/B,GAAG,CAAC,MAAM,CAAC,0CAA0C,CAAC;AAE7E,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAc,EAAQ,EAAE;IAChD,MAAM,IAAI,GAAS;QACjB,YAAY,EAAE,KAAK;QACnB,WAAW,EAAE,KAAK;QAClB,MAAM,EAAE,KAAK;QACb,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,KAAK;QACb,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,KAAK;KACZ,CAAC;IACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,QAAQ,CAAC,EAAE,CAAC;YACV,KAAK,WAAW;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,CAAC;gBACnB,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,CAAC,WAAW,GAAG,IAAI,EAAE,CAAC;gBAC1B,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;gBACtB,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;gBAClB,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC;gBACrB,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC;gBAClB,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,MAAM;YACR,KAAK,eAAe,CAAC;YACrB,KAAK,OAAO;gBACV,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;gBACxB,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;qBACxB,KAAK,CAAC,GAAG,CAAC;qBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnB,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,MAAM;YACR,KAAK,OAAO,CAAC;YACb,KAAK,IAAI;gBACP,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;gBAChB,MAAM;YACR,KAAK,SAAS;gBACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,MAAM;YACR,KAAK,eAAe;gBAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,MAAM;YACR,KAAK,YAAY;gBACf,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,MAAM;YACR,KAAK,eAAe;gBAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;gBACnB,MAAM;YACR,KAAK,QAAQ,CAAC;YACd,KAAK,IAAI;gBACP,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;gBACjB,MAAM;YACR;gBACE,4EAA4E;gBAC5E,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACrD,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACN,MAAM,IAAI,KAAK,CACb,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;wBACf,CAAC,CAAC,mBAAmB,CAAC,EAAE;wBACxB,CAAC,CAAC,wBAAwB,CAAC,4BAA4B,IAAI,CAAC,OAAO,GAAG,CACzE,CAAC;gBACJ,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,GAAyB,EAAiB,EAAE;IAClE,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,iBAAiB,EAAE,aAAa,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvE,CAAC;QACJ,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAqB,EAAQ,EAAE;IAClD,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC1B,IAAI,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9C,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,WAAW,CAAC;YACvD,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAC3B,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC;YACnD,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC;YAC3B,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,uBAAuB,GAAG,CAAC,YAAY,CAAC,cAAc,MAAM,YAAY,KAAK,EAAE,CAAC,CAAC;QACtF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CACF,wCAAwC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CACrE,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,cAAc,EAAE,CAAC;QAC9C,IAAI,CACF,4CAA4C,GAAG,CAAC,yCAAyC,CAAC,EAAE,CAC7F,CAAC;QACF,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CACF,wCAAwC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,wBAAwB,CAAC,EAAE,CACtG,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QAC5B,IAAI,CACF,wCAAwC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,4BAA4B,CAAC,EAAE,CAC1G,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,kBAAkB,MAAM,CAAC,cAAc,IAAI,GAAG,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,CAAC,kBAAkB,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;AAChG,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,KAAK,EACpB,QAAuB,EACvB,MAAqB,EACrB,IAAkB,EAClB,MAAe,EACE,EAAE;IACnB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,iBAAiB,QAAQ,CAAC,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;YACvD,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM;gBACnB,CAAC,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;gBAC5B,CAAC,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ;gBAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACnE,OAAO,IAAI,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;gBAC5C,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACtC,IAAI,CAAC,oCAAoC,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CACF,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,SAAS,GAAG,KAAK,EACrB,IAAU,EACV,OAA2D,EAC5C,EAAE;IACjB,IAAI,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC,CAAC;IAC5C,IAAI,CACF,GAAG,CAAC,uEAAuE,CAAC,CAC7E,CAAC;IAEF,qEAAqE;IACrE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3C,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC1B,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,CAAC;YACxC,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;gBACvB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAC3B,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,OAAO,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,OAAO,CAAC,KAAK,kBAAkB,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,MAAM,CACvB,8DAA8D,EAC9D,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,SAAS,CACjC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;aACxB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;IAC7C,CAAC;IAED,yDAAyD;IACzD,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,SAAS,CAAC,CAAC;QACnB,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;QACvD,IAAI,MAAM;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACpC,CAAC;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,6BAA6B;IAC7B,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,YAAY,GAAG,KAAK,EAAE,MAAqB,EAAiB,EAAE;IAClE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC;QACtD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,cAAc,CAAC,CAAC;YACxB,IAAI,CAAC,KAAK,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,SAAS,GAAG,KAAK,EAAE,MAAqB,EAAiB,EAAE;IAC/D,OAAO,CAAC,0BAA0B,CAAC,CAAC;IACpC,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;QAAE,EAAE,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;SAChD,IACH,OAAO,CAAC,IAAI,KAAK,aAAa;QAC9B,OAAO,CAAC,IAAI,KAAK,SAAS;QAC1B,OAAO,CAAC,IAAI,KAAK,qBAAqB;QACtC,6EAA6E;QAC7E,6EAA6E;QAC7E,+DAA+D;QAC/D,OAAO,CAAC,IAAI,KAAK,mBAAmB;QAEpC,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;;QACzB,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,MAAM;QAAE,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,KAAK,EAC9B,MAAqB,EACrB,OAAsB,EACtB,IAAY,EACZ,YAAgC,EAChC,YAAgC,EACR,EAAE;IAC1B,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAChC,4DAA4D;IAC5D,MAAM,WAAW,CAAC;QAChB,GAAG,OAAO;QACV,OAAO,EAAE,MAAM,CAAC,MAAM;QACtB,IAAI,EAAE,YAAY,IAAI,OAAO,CAAC,IAAI;QAClC,IAAI,EAAE,YAAY,IAAI,OAAO,CAAC,IAAI;QAClC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;QAChD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,eAAe,EAAE,IAAI;QACrB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,MAAM,mBAAmB,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ;QAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE7C,oEAAoE;IACpE,IAAI,MAAM,GAAmC,IAAI,CAAC;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,EAAE,CACA,0BAA0B,IAAI,MAAM,MAAM,CAAC,MAAM,mDAAmD,CACrG,CAAC;QACF,OAAO,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,oFAAoF,CAAC,CAAC;IAC3F,IAAI,CAAC,GAAG,CAAC,yEAAyE,CAAC,CAAC,CAAC;IACrF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,GAAG,GAAG,KAAK,EAAE,IAAc,EAAmB,EAAE;IAC3D,6EAA6E;IAC7E,8EAA8E;IAC9E,yEAAyE;IACzE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,eAAe,EAAE,CAAC;QAChC,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IACD,8DAA8D;IAC9D,4EAA4E;IAC5E,+EAA+E;IAC/E,+EAA+E;IAC/E,4EAA4E;IAC5E,0DAA0D;IAC1D,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,sBAAsB,EAAE,CAAC;QACvC,OAAO,uBAAuB,EAAE,CAAC;IACnC,CAAC;IACD,+EAA+E;IAC/E,2EAA2E;IAC3E,4EAA4E;IAC5E,sEAAsE;IACtE,0EAA0E;IAC1E,8BAA8B;IAC9B,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,qBAAqB,EAAE,CAAC;QACtC,OAAO,YAAY,EAAE,CAAC;IACxB,CAAC;IACD,8EAA8E;IAC9E,8EAA8E;IAC9E,8CAA8C;IAC9C,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,EAAE,CAAC;QACnC,MAAM,YAAY,EAAE,CAAC;QACrB,OAAO,CAAC,CAAC;IACX,CAAC;IACD,qEAAqE;IACrE,6EAA6E;IAC7E,8EAA8E;IAC9E,oEAAoE;IACpE,kDAAkD;IAClD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,yBAAyB,EAAE,CAAC;QAC1C,OAAO,gBAAgB,EAAE,CAAC;IAC5B,CAAC;IACD,mEAAmE;IACnE,+EAA+E;IAC/E,gFAAgF;IAChF,0EAA0E;IAC1E,iEAAiE;IACjE,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,sBAAsB,EAAE,CAAC;QACvC,OAAO,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,8EAA8E;IAC9E,6EAA6E;IAC7E,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,sEAAsE;IACtE,6EAA6E;IAC7E,2EAA2E;IAC3E,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,MAAY,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,CAAC,0CAA0C,CAAC,CAAC;YACjD,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,CAAC;YACX,OAAO,CAAC,CAAC;QACX,CAAC;QACD,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,IAAI,GAAG,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,iDAAiD;QACjD,OAAO,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,KAAK,EAC3B,IAAc,EACd,WAAoB,EACH,EAAE;IACnB,IAAI,IAAU,CAAC;IACf,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACjD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,CAAC,CAAC;QACX,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,WAAW,EAAE,CAAC;IAEpC,yEAAyE;IACzE,wEAAwE;IACxE,mCAAmC;IACnC,MAAM,eAAe,GACnB,CAAC,WAAW;QACZ,aAAa,EAAE;QACf,CAAC,IAAI,CAAC,OAAO;QACb,CAAC,IAAI,CAAC,MAAM;QACZ,CAAC,IAAI,CAAC,GAAG;QACT,CAAC,IAAI,CAAC,MAAM;QACZ,CAAC,IAAI,CAAC,MAAM;QACZ,CAAC,IAAI,CAAC,GAAG,CAAC;IACZ,IAAI,CAAC,WAAW,IAAI,eAAe,CAAC,IAAI,aAAa,EAAE,EAAE,CAAC;QACxD,IAAI,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,QAAuB,CAAC;IAC5B,IAAI,CAAC;QACH,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAEvE,6EAA6E;IAC7E,6EAA6E;IAC7E,yEAAyE;IACzE,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,+DAA+D,CAAC,CAAC;IACxE,CAAC;IAED,wEAAwE;IACxE,6EAA6E;IAC7E,6EAA6E;IAC7E,iEAAiE;IACjE,IAAI,kBAAsC,CAAC;IAC3C,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC;gBACnC,kBAAkB,GAAG,QAAQ,CAAC,YAAY,CAAC;gBAC3C,IAAI,CACF,kBAAkB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,QAAQ,CAAC,UAAU,EAAE,CAC/F,CAAC;gBACF,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC5C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;oBACzB,IAAI,CACF,6FAA6F,CAC9F,CAAC;gBACJ,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,yEAAyE;gBACzE,0EAA0E;gBAC1E,wEAAwE;gBACxE,gCAAgC;gBAChC,MAAM,QAAQ,GACZ,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC;gBAC5D,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CACF,kEAAkE,QAAQ,GAAG,CAC9E,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC7D,OAAO,CAAC,CAAC;gBACX,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,8EAA8E;IAC9E,6EAA6E;IAC7E,wDAAwD;IACxD,IAAI,aAAmE,CAAC;IACxE,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,iEAAiE,CAAC,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CACF,6EAA6E,CAC9E,CAAC;gBACF,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC;oBAC7B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,UAAU,EAAE,IAAI,CAAC,OAAO;oBACxB,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;iBACpB,CAAC,CAAC;gBACH,aAAa,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC3E,IAAI,MAAM,CAAC,YAAY;oBAAE,kBAAkB,GAAG,MAAM,CAAC,YAAY,CAAC;gBAClE,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU;oBAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;YAC3E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7D,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GACjB,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB;QAC9C,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,aAAa;QAAE,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;IAEhD,0EAA0E;IAC1E,IAAI,MAAc,CAAC;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QAC/B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,YAAgC,CAAC;IACrC,IAAI,YAAgC,CAAC;IAErC,IAAI,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAClC,IAAI,CAAC,YAAY,MAAM,IAAI,GAAG,CAAC,8CAA8C,CAAC,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,sEAAsE;IACtE,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,CACF,GAAG,MAAM,kEAAkE;YACzE,4EAA4E;YAC5E,+BAA+B,CAClC,CAAC;IACJ,CAAC;IAED,IAAI,SAA6B,CAAC;IAElC,6EAA6E;IAC7E,2EAA2E;IAC3E,6EAA6E;IAC7E,oDAAoD;IACpD,6EAA6E;IAC7E,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,uCAAuC;IACvC,IAAI,YAA2C,CAAC;IAChD,IAAI,kBAAsC,CAAC;IAC3C,IAAI,qBAAyC,CAAC;IAC9C,IAAI,iBAAqD,CAAC;IAC1D,uEAAuE;IACvE,uEAAuE;IACvE,IAAI,kBAAsC,CAAC;IAE3C,4EAA4E;IAC5E,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,aAAa,GAAG,KAAK,EAAE,KAO5B,EAAiB,EAAE;QAClB,qEAAqE;QACrE,sEAAsE;QACtE,mDAAmD;QACnD,MAAM,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxD,MAAM,WAAW,GAAG,oBAAoB,CACtC,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,kBAAkB,EAC1B,KAAK,CAAC,YAAY,EAClB,IAAI,CAAC,GAAG,EAAE,EACV,kBAAkB,EAClB,OAAO,CAAC,iBAAiB,CAC1B,CAAC;QACF,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,MAAM,KAAK,GACT,WAAW,IAAI,gBAAgB,IAAI,OAAO,CAAC,YAAY;YACrD,CAAC,CAAC;gBACE,IAAI,EAAE,OAAO,CAAC,YAAY;gBAC1B,aAAa,EAAE,gBAAgB;gBAC/B,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY;aACxD;YACH,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,OAAO,GAAG,CAAC,QAAiB,EAAE,EAAE,CACpC,eAAe,CAAC;YACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,aAAa,EAAE,MAAM;YACrB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACpC,CAAC,CAAC;QAEL,2EAA2E;QAC3E,6EAA6E;QAC7E,2EAA2E;QAC3E,+CAA+C;QAC/C,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC;gBACH,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;YAC/B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,KAAK,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;oBACjD,IAAI,CACF,4GAA4G,CAC7G,CAAC;oBACF,MAAM,GAAG,KAAK,CAAC;oBACf,OAAO,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAC7B,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC;QAC1B,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;QAC3B,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACnD,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC;QACtC,2EAA2E;QAC3E,oDAAoD;QACpD,IAAI,CAAC,MAAM;YAAE,qBAAqB,GAAG,MAAM,CAAC,aAAa,CAAC;QAC1D,IAAI,CAAC,MAAM;YAAE,iBAAiB,GAAG,kBAAkB,CAAC;QACpD,EAAE,CACA,WAAW,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,GAChD,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EACzC,4EAA4E,CAC7E,CAAC;IACJ,CAAC,CAAC;IAEF,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,yDAAyD,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,CACF,mFAAmF,CACpF,CAAC;gBACF,OAAO,CAAC,CAAC;YACX,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/D,MAAM,aAAa,CAAC;oBAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,KAAK,EAAE,IAAI,CAAC,IAAI;oBAChB,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,SAAS;oBACT,YAAY,EAAE,kBAAkB;iBACjC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC7D,qEAAqE;gBACrE,mEAAmE;gBACnE,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;oBACxC,IAAI,CACF,gMAAgM,CACjM,CAAC;gBACJ,CAAC;gBACD,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;IACH,CAAC;IAED,gFAAgF;IAChF,yEAAyE;IACzE,2EAA2E;IAC3E,yEAAyE;IACzE,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAC1C,MAAM,EACN,aAAa,CAAC,IAAI,EAClB,aAAa,CAAC,aAAa,CAC5B,CAAC;YACF,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC;YAC7B,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC;YAChC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,IAAI,CAAC;YAChC,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC;YAClC,kBAAkB,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAC1D,qBAAqB,GAAG,aAAa,CAAC,aAAa,CAAC;YACpD,kBAAkB,GAAG,YAAY,CAAC,SAAS,CAAC;YAC5C,EAAE,CACA,WAAW,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa;gBACzE,yEAAyE,CAC5E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAC7D,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;gBACxC,IAAI,CACF,mJAAmJ,CACpJ,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;QACrC,YAAY,GAAG,MAAM,kBAAkB,CACrC,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,IAAI,EACZ,mBAAmB,CACpB,CAAC;QACF,YAAY,GAAG,MAAM,WAAW,CAC9B,IAAI,CAAC,IAAI,EACT,OAAO,CAAC,IAAI,EACZ,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,+EAA+E;IAC/E,0EAA0E;IAC1E,oEAAoE;IACpE,IAAI,IAA2B,CAAC;IAChC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5D,IAAI,GAAG,MAAM,eAAe,EAAE,CAAC;QAC/B,OAAO,CAAC,yBAAyB,CAAC,CAAC;QACnC,IAAI,CACF,yBACE,IAAI,CAAC,SAAS;YACZ,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC;YACvC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CACnC,EAAE,CACH,CAAC;QACF,IAAI,CACF,yBACE,IAAI,CAAC,MAAM;YACT,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC;YACvC,CAAC,CAAC,GAAG,CAAC,yBAAyB,CACnC,EAAE,CACH,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC;QAC3B,MAAM;QACN,cAAc,EAAE,IAAI,CAAC,GAAG;QACxB,SAAS;QACT,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,IAAI;QACJ,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;IACH,MAAM,IAAI,GAAiB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IAEnD,IAAI,CAAC,IAAI,CAAC,MAAM;QAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM;QAAE,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAE/D,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC;YACrB,IAAI,CACF,iFAAiF,CAClF,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,WAAW,CAAC;QACrE,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,kBAAkB,CAC/C,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAClC,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,6EAA6E;IAC7E,+EAA+E;IAC/E,2EAA2E;IAC3E,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,MAAM,CAAC,MAAM,sBAAsB,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;YACvE,IAAI,CACF,GAAG,CACD,yEAAyE;gBACvE,yDAAyD,CAC5D,CACF,CAAC;YACF,IAAI,CACF,2EAA2E,CAC5E,CAAC;YACF,OAAO,CAAC,CAAC;QACX,CAAC;QACD,EAAE,CAAC,sBAAsB,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IAC7C,CAAC;IAED,6EAA6E;IAC7E,gFAAgF;IAChF,mDAAmD;IACnD,MAAM,YAAY,GAChB,CAAC,IAAI,CAAC,MAAM;QACZ,CAAC,IAAI,CAAC,QAAQ,KAAK,IAAI;YACrB,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,OAAO,CAAC,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC;IACpE,IAAI,WAAW,GAAG,MAAM,CAAC;IACzB,IAAI,uBAAuB,GAAG,YAAY,CAAC;IAC3C,IAAI,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;IAChD,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjC,oBAAoB;YAClB,OAAO,CAAC,YAAY,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;QACrD,WAAW,GAAG,MAAM,kBAAkB,CACpC,MAAM,EACN,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,YAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAEzE,kEAAkE;IAClE,IACE,IAAI,CAAC,MAAM;QACX,CAAC,IAAI,CAAC,MAAM;QACZ,CAAC,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,EACjD,CAAC;QACD,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,MAAM,qBAAqB,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,QAAQ;YAAE,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7C,MAAM,WAAW,EAAE,CAAC;QACpB,MAAM,UAAU,EAAE,CAAC;QACnB,MAAM,WAAW,CAAC;YAChB,GAAG,OAAO;YACV,eAAe,EAAE,KAAK;YACtB,YAAY,EAAE,SAAS;SACxB,CAAC,CAAC;QACH,EAAE,CAAC,qCAAqC,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,CAAC,SAAS,CAAC,CAAC;IACnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,IAAI,CAAC,uDAAuD,CAAC,CAAC;IAChE,CAAC;SAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QACvB,EAAE,CAAC,aAAa,OAAO,oBAAoB,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,SAAS,OAAO,oBAAoB,CAAC,CAAC;QAEzC,6EAA6E;QAC7E,sEAAsE;QACtE,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACN,yEAAyE;YACzE,wEAAwE;YACxE,yEAAyE;YACzE,2EAA2E;YAC3E,yEAAyE;YACzE,yEAAyE;YACzE,yEAAyE;YACzE,gDAAgD;YAChD,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,6BAA6B,CAAC,CAAC;QACpC,qEAAqE;QACrE,uEAAuE;QACvE,kEAAkE;QAClE,IAAI,CACF,GAAG;QACD,qEAAqE;QACrE,cAAc,MAAM,CAAC,aAAa,wBAAwB;YACxD,8CAA8C;YAC9C,iCACE,MAAM,CAAC,SAAS;gBACd,CAAC,CAAC,uBAAuB,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,2BAA2B;gBAC7E,CAAC,CAAC,MAAM,CAAC,cACb,QAAQ;YACR,mGAAmG,CACtG,CACF,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC;YACH,yEAAyE;YACzE,uEAAuE;YACvE,2EAA2E;YAC3E,0EAA0E;YAC1E,IAAI,qBAAqB;gBAAE,MAAM,UAAU,CAAC,qBAAqB,CAAC,CAAC;YAEnE,2EAA2E;YAC3E,kEAAkE;YAClE,iEAAiE;YACjE,wEAAwE;YACxE,6EAA6E;YAC7E,MAAM,WAAW,CAAC;gBAChB,GAAG,OAAO;gBACV,OAAO,EAAE,MAAM,CAAC,MAAM;gBACtB,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS;gBAChD,YAAY,EAAE,YAAY,IAAI,OAAO,CAAC,YAAY;gBAClD,kBAAkB,EAAE,kBAAkB,IAAI,OAAO,CAAC,kBAAkB;gBACpE,iBAAiB,EAAE,iBAAiB,IAAI,OAAO,CAAC,iBAAiB;gBACjE,kBAAkB,EAAE,kBAAkB,IAAI,OAAO,CAAC,kBAAkB;gBACpE,0EAA0E;gBAC1E,0EAA0E;gBAC1E,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,sEAAsE;gBACtE,eAAe,EAAE,uBAAuB;gBACxC,YAAY,EAAE,oBAAoB;aACnC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,2BAA2B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QAED,mEAAmE;QACnE,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `anyray-connect agent <install|start|stop|status|uninstall>` — the
|
|
3
|
+
* device-capture agent lifecycle (RFC 0002 / 0002a).
|
|
4
|
+
*
|
|
5
|
+
* This is Tier 2 capture: for apps `connect` can't redirect (ChatGPT desktop,
|
|
6
|
+
* Claude desktop, Copilot, browsers) it installs a local intercepting proxy + a
|
|
7
|
+
* device-trusted CA that MITMs ONLY the AI-domain allowlist and forwards to the
|
|
8
|
+
* org gateway. Everything else is tunneled, never decrypted.
|
|
9
|
+
*
|
|
10
|
+
* Orchestration only — the real work lives in the modules (agentCa, agentTrust,
|
|
11
|
+
* agentService, agentProxy). Best-effort + fail-open: a failed step is reported,
|
|
12
|
+
* never left in a half-broken state that traps the machine offline.
|
|
13
|
+
*/
|
|
14
|
+
import { platform } from 'node:os';
|
|
15
|
+
import { loadProfile, saveProfile } from '../util/persist.js';
|
|
16
|
+
import { bold, cyan, dim, fail, heading, info, ok, warn, } from '../util/log.js';
|
|
17
|
+
import { caCertPath, DEFAULT_AGENT_PORT } from '../util/agentPaths.js';
|
|
18
|
+
import { gatewayAllowlistHosts, AI_ALLOWLIST, } from '../util/agentAllowlist.js';
|
|
19
|
+
import { ensureCa, removeCa, isOpensslAvailable } from '../util/agentCa.js';
|
|
20
|
+
import { installTrust, uninstallTrust, enableSystemProxy, restoreSystemProxy, readProxyState, } from '../util/agentTrust.js';
|
|
21
|
+
import { installAgentService, uninstallAgentService, probeAgentHealth, } from '../util/agentService.js';
|
|
22
|
+
import { isSafeGatewayOrigin } from './agentProxy.js';
|
|
23
|
+
const AGENT_HELP = `${bold('anyray-connect agent')} — capture AI usage from desktop & browser apps
|
|
24
|
+
|
|
25
|
+
Installs a local intercepting proxy + a device-trusted CA that meters ONLY
|
|
26
|
+
AI-provider domains (ChatGPT, Claude, Copilot, OpenAI, Anthropic) through your
|
|
27
|
+
gateway. All other traffic is tunneled, never decrypted.
|
|
28
|
+
|
|
29
|
+
${bold('Subcommands')}
|
|
30
|
+
install Generate the device CA, trust it, install the proxy service, and
|
|
31
|
+
point the system proxy at it. Asks once for admin (CA trust).
|
|
32
|
+
status Show whether the agent is running + which domains it intercepts.
|
|
33
|
+
stop Pause: remove the system-proxy setting + the service (keeps the CA).
|
|
34
|
+
start Resume a stopped agent.
|
|
35
|
+
uninstall Full teardown: restore the system proxy, untrust + delete the CA,
|
|
36
|
+
remove the service.
|
|
37
|
+
|
|
38
|
+
${bold('Notes')}
|
|
39
|
+
Run \`anyray-connect --enroll <link>\` (or a plain connect) FIRST so the agent
|
|
40
|
+
knows your gateway + identity. The gateway must allowlist the AI domains via
|
|
41
|
+
ANYRAY_CUSTOM_HOST_ALLOWLIST (see the agent docs).`;
|
|
42
|
+
const printInterceptDomains = () => {
|
|
43
|
+
heading('Intercepted domains (only these are decrypted)');
|
|
44
|
+
for (const entry of AI_ALLOWLIST) {
|
|
45
|
+
const host = entry.suffix ? `${entry.host} (+ subdomains)` : entry.host;
|
|
46
|
+
info(` ${cyan(host)} ${dim(`→ ${entry.app}`)}`);
|
|
47
|
+
}
|
|
48
|
+
info(dim(' Everything else is tunneled byte-for-byte, never decrypted.'));
|
|
49
|
+
};
|
|
50
|
+
const requireGateway = async () => {
|
|
51
|
+
const profile = await loadProfile();
|
|
52
|
+
if (!profile.gateway) {
|
|
53
|
+
fail('No gateway configured.');
|
|
54
|
+
info(dim(' Run `anyray-connect --enroll <link>` (or `anyray-connect <gateway-url>`) first,\n' +
|
|
55
|
+
' so the agent knows where to meter and who you are.'));
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
// The agent forwards DECRYPTED prompts + the app's session token to the
|
|
59
|
+
// gateway — a plaintext remote gateway would leak both on the wire. Refuse it
|
|
60
|
+
// (unlike plain connect, which only warns) since a capture agent decrypts.
|
|
61
|
+
if (!isSafeGatewayOrigin(profile.gateway)) {
|
|
62
|
+
fail(`Refusing a plaintext gateway for capture: ${profile.gateway}`);
|
|
63
|
+
info(dim(' The agent forwards decrypted traffic + your session token — use an\n' +
|
|
64
|
+
' https:// gateway (or a loopback address) so nothing crosses the network in the clear.'));
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
return profile.gateway;
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Install the service, point the system proxy at it, and confirm it answers.
|
|
71
|
+
* The proxy is enabled ONLY once the service is installed, and reverted if the
|
|
72
|
+
* daemon never comes up — so `install`/`start` can never leave the machine
|
|
73
|
+
* pointed at a dead listener while reporting success (fail-open).
|
|
74
|
+
*/
|
|
75
|
+
const bringUpProxy = async (port, gateway) => {
|
|
76
|
+
heading('Proxy service');
|
|
77
|
+
const svc = await installAgentService();
|
|
78
|
+
for (const m of svc.messages)
|
|
79
|
+
info(` ${m}`);
|
|
80
|
+
if (!svc.ok) {
|
|
81
|
+
fail(' Could not install the agent service — not enabling the system proxy.');
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
heading('System proxy');
|
|
85
|
+
const proxied = await enableSystemProxy(port);
|
|
86
|
+
for (const m of proxied.messages)
|
|
87
|
+
info(` ${m}`);
|
|
88
|
+
heading('Health');
|
|
89
|
+
let health = null;
|
|
90
|
+
for (let i = 0; i < 15 && !health; i++) {
|
|
91
|
+
health = await probeAgentHealth(port);
|
|
92
|
+
if (!health)
|
|
93
|
+
await sleep(400);
|
|
94
|
+
}
|
|
95
|
+
if (health) {
|
|
96
|
+
ok(` Agent running on 127.0.0.1:${port} → ${gateway}.`);
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
// Never leave the system proxy pointing at a daemon that won't answer.
|
|
100
|
+
warn(' Agent did not come up — reverting the system proxy so you stay online.');
|
|
101
|
+
const restored = await restoreSystemProxy();
|
|
102
|
+
for (const m of restored.messages)
|
|
103
|
+
info(` ${m}`);
|
|
104
|
+
await uninstallAgentService();
|
|
105
|
+
info(dim(' Check the service logs, then re-run `anyray-connect agent install`.'));
|
|
106
|
+
return false;
|
|
107
|
+
};
|
|
108
|
+
const preflight = () => {
|
|
109
|
+
if (platform() !== 'darwin') {
|
|
110
|
+
fail('The device-capture agent is macOS-only in this phase.');
|
|
111
|
+
info(dim(' Windows/Linux support is planned (RFC 0002a §7). On other platforms,\n' +
|
|
112
|
+
' use `anyray-connect` to redirect the tools that support a base URL.'));
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
if (!isOpensslAvailable()) {
|
|
116
|
+
fail('`openssl` was not found on PATH — it is required to mint the device CA.');
|
|
117
|
+
return false;
|
|
118
|
+
}
|
|
119
|
+
return true;
|
|
120
|
+
};
|
|
121
|
+
const runInstall = async () => {
|
|
122
|
+
if (!preflight())
|
|
123
|
+
return 1;
|
|
124
|
+
const gateway = await requireGateway();
|
|
125
|
+
if (!gateway)
|
|
126
|
+
return 1;
|
|
127
|
+
const profile = await loadProfile();
|
|
128
|
+
const port = profile.agentPort ?? DEFAULT_AGENT_PORT;
|
|
129
|
+
info(bold('Installing the Anyray device-capture agent'));
|
|
130
|
+
printInterceptDomains();
|
|
131
|
+
// 1. Device CA.
|
|
132
|
+
heading('Device CA');
|
|
133
|
+
try {
|
|
134
|
+
await ensureCa();
|
|
135
|
+
ok(` CA ready (${caCertPath()}).`);
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
fail(` Could not create the device CA: ${msg(error)}`);
|
|
139
|
+
return 1;
|
|
140
|
+
}
|
|
141
|
+
// 2. Trust the CA (the one admin prompt).
|
|
142
|
+
heading('Trusting the CA');
|
|
143
|
+
info(dim(' macOS will ask for your password once — trusting a root CA is deliberate.'));
|
|
144
|
+
const trust = await installTrust(caCertPath());
|
|
145
|
+
for (const m of trust.messages)
|
|
146
|
+
info(` ${m}`);
|
|
147
|
+
if (!trust.ok) {
|
|
148
|
+
warn(' CA trust did not complete — intercepted apps will reject the proxy until it does.');
|
|
149
|
+
}
|
|
150
|
+
// 3. Bring up the service + system proxy (guarded: proxy only enabled behind a
|
|
151
|
+
// healthy daemon, reverted if it never answers).
|
|
152
|
+
const up = await bringUpProxy(port, gateway);
|
|
153
|
+
if (!up)
|
|
154
|
+
return 1;
|
|
155
|
+
await saveProfile({ ...profile, agentEnabled: true, agentPort: port });
|
|
156
|
+
info('\nUninstall any time: ' + cyan('anyray-connect agent uninstall'));
|
|
157
|
+
return 0;
|
|
158
|
+
};
|
|
159
|
+
const runStatus = async () => {
|
|
160
|
+
const profile = await loadProfile();
|
|
161
|
+
const port = profile.agentPort ?? DEFAULT_AGENT_PORT;
|
|
162
|
+
heading('Anyray device-capture agent');
|
|
163
|
+
info(` Gateway: ${profile.gateway ? cyan(profile.gateway) : dim('(not configured)')}`);
|
|
164
|
+
info(` Enabled: ${profile.agentEnabled ? cyan('yes') : dim('no')}`);
|
|
165
|
+
const health = await probeAgentHealth(port);
|
|
166
|
+
if (health)
|
|
167
|
+
ok(` Running on 127.0.0.1:${port}.`);
|
|
168
|
+
else
|
|
169
|
+
warn(` Not responding on 127.0.0.1:${port}.`);
|
|
170
|
+
if (platform() === 'darwin') {
|
|
171
|
+
const proxy = readProxyState();
|
|
172
|
+
if (proxy) {
|
|
173
|
+
const on = proxy.secureEnabled || proxy.webEnabled;
|
|
174
|
+
info(` System proxy (${proxy.service}): ${on
|
|
175
|
+
? cyan(`${proxy.secureHost ?? proxy.webHost}:${proxy.securePort ?? proxy.webPort}`)
|
|
176
|
+
: dim('off')}`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
printInterceptDomains();
|
|
180
|
+
heading('Gateway requirement');
|
|
181
|
+
info(dim(' The gateway must allowlist these hosts (ANYRAY_CUSTOM_HOST_ALLOWLIST):\n' +
|
|
182
|
+
' ' +
|
|
183
|
+
gatewayAllowlistHosts().join(',')));
|
|
184
|
+
return 0;
|
|
185
|
+
};
|
|
186
|
+
const runStop = async () => {
|
|
187
|
+
const profile = await loadProfile();
|
|
188
|
+
heading('Stopping the agent');
|
|
189
|
+
// Restore the system proxy FIRST so the machine is never left pointing at a
|
|
190
|
+
// dead daemon (fail-open).
|
|
191
|
+
const restored = await restoreSystemProxy();
|
|
192
|
+
for (const m of restored.messages)
|
|
193
|
+
info(` ${m}`);
|
|
194
|
+
const svc = await uninstallAgentService();
|
|
195
|
+
for (const m of svc.messages)
|
|
196
|
+
info(` ${m}`);
|
|
197
|
+
await saveProfile({ ...profile, agentEnabled: false });
|
|
198
|
+
ok(' Agent stopped (the device CA is kept — `agent start` to resume).');
|
|
199
|
+
return 0;
|
|
200
|
+
};
|
|
201
|
+
const runStart = async () => {
|
|
202
|
+
if (!preflight())
|
|
203
|
+
return 1;
|
|
204
|
+
const gateway = await requireGateway();
|
|
205
|
+
if (!gateway)
|
|
206
|
+
return 1;
|
|
207
|
+
const profile = await loadProfile();
|
|
208
|
+
const port = profile.agentPort ?? DEFAULT_AGENT_PORT;
|
|
209
|
+
heading('Starting the agent');
|
|
210
|
+
const up = await bringUpProxy(port, gateway);
|
|
211
|
+
if (!up)
|
|
212
|
+
return 1;
|
|
213
|
+
await saveProfile({ ...profile, agentEnabled: true, agentPort: port });
|
|
214
|
+
return 0;
|
|
215
|
+
};
|
|
216
|
+
const runUninstall = async () => {
|
|
217
|
+
const profile = await loadProfile();
|
|
218
|
+
heading('Uninstalling the agent');
|
|
219
|
+
const restored = await restoreSystemProxy();
|
|
220
|
+
for (const m of restored.messages)
|
|
221
|
+
info(` ${m}`);
|
|
222
|
+
const untrust = await uninstallTrust(caCertPath());
|
|
223
|
+
for (const m of untrust.messages)
|
|
224
|
+
info(` ${m}`);
|
|
225
|
+
const svc = await uninstallAgentService();
|
|
226
|
+
for (const m of svc.messages)
|
|
227
|
+
info(` ${m}`);
|
|
228
|
+
await removeCa();
|
|
229
|
+
await saveProfile({ ...profile, agentEnabled: false, agentPort: undefined });
|
|
230
|
+
ok(' Removed the agent, restored the system proxy, and deleted the device CA.');
|
|
231
|
+
return 0;
|
|
232
|
+
};
|
|
233
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
234
|
+
const msg = (error) => error instanceof Error ? error.message : String(error);
|
|
235
|
+
/** Entry point routed from cli.ts for the `agent` subcommand. */
|
|
236
|
+
export const runAgent = async (argv) => {
|
|
237
|
+
const sub = argv[0];
|
|
238
|
+
switch (sub) {
|
|
239
|
+
case 'install':
|
|
240
|
+
return runInstall();
|
|
241
|
+
case 'status':
|
|
242
|
+
return runStatus();
|
|
243
|
+
case 'stop':
|
|
244
|
+
return runStop();
|
|
245
|
+
case 'start':
|
|
246
|
+
return runStart();
|
|
247
|
+
case 'uninstall':
|
|
248
|
+
return runUninstall();
|
|
249
|
+
case undefined:
|
|
250
|
+
case 'help':
|
|
251
|
+
case '--help':
|
|
252
|
+
case '-h':
|
|
253
|
+
info(AGENT_HELP);
|
|
254
|
+
return 0;
|
|
255
|
+
default:
|
|
256
|
+
fail(`unknown agent subcommand: ${sub}`);
|
|
257
|
+
info('\n' + AGENT_HELP);
|
|
258
|
+
return 1;
|
|
259
|
+
}
|
|
260
|
+
};
|
|
261
|
+
//# sourceMappingURL=agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/commands/agent.ts"],"names":[],"mappings":"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"}
|