@longrun-ai/codex-auth 0.3.3 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -128,6 +128,18 @@ Dump SSE events from the verification request:
128
128
  npx @longrun-ai/codex-auth --verbose
129
129
  ```
130
130
 
131
+ Probe remote `/models` (enabled by default) and print model metadata:
132
+
133
+ ```sh
134
+ npx @longrun-ai/codex-auth --probe-models
135
+ ```
136
+
137
+ Disable `/models` probe:
138
+
139
+ ```sh
140
+ npx @longrun-ai/codex-auth --no-probe-models
141
+ ```
142
+
131
143
  Override model or base URL:
132
144
 
133
145
  ```sh
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+
3
+ import { existsSync } from "node:fs";
4
+ import { dirname, resolve } from "node:path";
5
+ import { fileURLToPath, pathToFileURL } from "node:url";
6
+
7
+ const here = dirname(fileURLToPath(import.meta.url));
8
+ const target = resolve(here, "../dist/bin/auth-doctor.js");
9
+
10
+ if (!existsSync(target)) {
11
+ console.error(
12
+ "[codex-auth] Missing dist/bin/auth-doctor.js. Run `pnpm -C codex-auth build`.",
13
+ );
14
+ process.exit(1);
15
+ }
16
+
17
+ await import(pathToFileURL(target).href);
@@ -14,6 +14,7 @@ function parseArgs(argv) {
14
14
  json: false,
15
15
  verify: true,
16
16
  verbose: false,
17
+ probeModels: true,
17
18
  probeReasoning: false,
18
19
  probeFuncResult: false,
19
20
  };
@@ -46,6 +47,14 @@ function parseArgs(argv) {
46
47
  options.probeReasoning = true;
47
48
  continue;
48
49
  }
50
+ if (arg === '--probe-models') {
51
+ options.probeModels = true;
52
+ continue;
53
+ }
54
+ if (arg === '--no-probe-models') {
55
+ options.probeModels = false;
56
+ continue;
57
+ }
49
58
  if (arg === '--no-probe-reasoning' || arg === '--no-probe-thinking') {
50
59
  options.probeReasoning = false;
51
60
  continue;
@@ -97,13 +106,15 @@ function printHelp() {
97
106
  console.log(`codex-auth doctor
98
107
 
99
108
  Usage:
100
- codex-auth [--codex-home PATH] [--refresh] [--json] [--no-verify] [--verbose] [--probe-reasoning] [--probe-func-result]
109
+ codex-auth [--codex-home PATH] [--refresh] [--json] [--no-verify] [--verbose] [--probe-models] [--probe-reasoning] [--probe-func-result]
101
110
 
102
111
  Options:
103
112
  --codex-home PATH Override CODEX_HOME
104
113
  --refresh Refresh ChatGPT tokens if possible
105
114
  --json Emit JSON output
106
115
  --verbose Dump SSE events as pretty-printed JSON (aliases: -v, -verbose)
116
+ --probe-models Extra probe request to GET ChatGPT codex /models and report model list
117
+ --no-probe-models Disable the /models probe
107
118
  --probe-reasoning Extra probe request enabling reasoning + include to check whether the
108
119
  backend streams response.reasoning_* events (aliases: --probe-thinking)
109
120
  --probe-func-result Extra probe to validate function_call_output can be swapped from
@@ -311,7 +322,9 @@ function printPreflight(options, preflight) {
311
322
  console.log(`- url: ${preflight.request.url}`);
312
323
  console.log(`- proxy: ${JSON.stringify(preflight.proxy)}`);
313
324
  console.log(`- headers: ${JSON.stringify(preflight.request.headers)}`);
314
- console.log(`- json: ${JSON.stringify(preflight.request.json)}`);
325
+ if (preflight.request.json) {
326
+ console.log(`- json: ${JSON.stringify(preflight.request.json)}`);
327
+ }
315
328
  console.log('');
316
329
  }
317
330
  function redactBearer(value) {
@@ -600,6 +613,184 @@ function selectChatGptModel(options) {
600
613
  instructions: 'You are Codex CLI.',
601
614
  };
602
615
  }
616
+ function isRecord(value) {
617
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
618
+ }
619
+ function asFiniteNumber(value) {
620
+ if (typeof value === 'number' && Number.isFinite(value)) {
621
+ return value;
622
+ }
623
+ return undefined;
624
+ }
625
+ function resolveClientVersionForModelsProbe(codexHome) {
626
+ try {
627
+ const raw = readFileSync(path.join(codexHome, 'version.json'), 'utf8');
628
+ const parsed = JSON.parse(raw);
629
+ if (!isRecord(parsed)) {
630
+ return '0.0.0';
631
+ }
632
+ const latestVersion = parsed.latest_version;
633
+ if (typeof latestVersion === 'string') {
634
+ const semver = latestVersion.match(/(\d+)\.(\d+)\.(\d+)/);
635
+ if (semver) {
636
+ return `${semver[1]}.${semver[2]}.${semver[3]}`;
637
+ }
638
+ }
639
+ const version = parsed.version;
640
+ if (typeof version === 'string') {
641
+ const semver = version.match(/(\d+)\.(\d+)\.(\d+)/);
642
+ if (semver) {
643
+ return `${semver[1]}.${semver[2]}.${semver[3]}`;
644
+ }
645
+ }
646
+ }
647
+ catch {
648
+ return '0.0.0';
649
+ }
650
+ return '0.0.0';
651
+ }
652
+ function resolveChatGptModelsProbeUrl(baseUrl, clientVersion) {
653
+ const responsesUrl = resolveChatGptResponsesUrl(baseUrl);
654
+ const modelsUrl = new URL('models', responsesUrl);
655
+ modelsUrl.searchParams.set('client_version', clientVersion);
656
+ return modelsUrl.toString();
657
+ }
658
+ function parseModelsProbeResponse(raw) {
659
+ let parsed;
660
+ try {
661
+ parsed = JSON.parse(raw);
662
+ }
663
+ catch (error) {
664
+ return {
665
+ models: [],
666
+ parseError: `failed to parse JSON: ${describeError(error)}`,
667
+ };
668
+ }
669
+ if (!isRecord(parsed)) {
670
+ return {
671
+ models: [],
672
+ parseError: 'response body is not a JSON object',
673
+ };
674
+ }
675
+ const modelsUnknown = parsed.models;
676
+ if (!Array.isArray(modelsUnknown)) {
677
+ return {
678
+ models: [],
679
+ parseError: 'response JSON missing `models` array',
680
+ };
681
+ }
682
+ const models = [];
683
+ for (const entry of modelsUnknown) {
684
+ if (!isRecord(entry)) {
685
+ continue;
686
+ }
687
+ const slug = entry.slug;
688
+ if (typeof slug !== 'string' || slug.length === 0) {
689
+ continue;
690
+ }
691
+ const model = { slug };
692
+ if (typeof entry.display_name === 'string') {
693
+ model.display_name = entry.display_name;
694
+ }
695
+ const contextWindow = asFiniteNumber(entry.context_window);
696
+ if (contextWindow !== undefined) {
697
+ model.context_window = contextWindow;
698
+ }
699
+ const autoCompactLimit = asFiniteNumber(entry.auto_compact_token_limit);
700
+ if (autoCompactLimit !== undefined) {
701
+ model.auto_compact_token_limit = autoCompactLimit;
702
+ }
703
+ const effectivePercent = asFiniteNumber(entry.effective_context_window_percent);
704
+ if (effectivePercent !== undefined) {
705
+ model.effective_context_window_percent = effectivePercent;
706
+ }
707
+ if (typeof entry.visibility === 'string') {
708
+ model.visibility = entry.visibility;
709
+ }
710
+ models.push(model);
711
+ }
712
+ return { models };
713
+ }
714
+ async function probeChatGptModels(options, codexHome, auth) {
715
+ if (!options.verify || !options.probeModels) {
716
+ return { ok: false, skipped: true };
717
+ }
718
+ if (!auth) {
719
+ return { ok: false, error: 'auth.json missing' };
720
+ }
721
+ const accessToken = auth.tokens?.access_token;
722
+ const accountId = getAccountId(auth);
723
+ if (!accessToken) {
724
+ return { ok: false, error: 'chatgpt access token missing' };
725
+ }
726
+ if (!accountId) {
727
+ return { ok: false, error: 'chatgpt account id missing' };
728
+ }
729
+ const baseUrl = options.chatgptBaseUrl ??
730
+ process.env.CODEX_AUTH_DOCTOR_CHATGPT_BASE_URL ??
731
+ DEFAULT_CHATGPT_BASE_URL;
732
+ const clientVersion = resolveClientVersionForModelsProbe(codexHome);
733
+ const modelsUrl = resolveChatGptModelsProbeUrl(baseUrl, clientVersion);
734
+ const preflight = {
735
+ name: 'chatgpt_models_probe',
736
+ request: {
737
+ method: 'GET',
738
+ url: modelsUrl,
739
+ headers: {
740
+ accept: 'application/json',
741
+ authorization: redactBearer(`Bearer ${accessToken}`),
742
+ 'chatgpt-account-id': redactAccountId(accountId),
743
+ },
744
+ },
745
+ proxy: describeResolvedProxyForLogs(resolveProxyForBaseUrl(baseUrl)),
746
+ };
747
+ printPreflight(options, preflight);
748
+ const client = new ChatGptClient({ accessToken, accountId }, {
749
+ baseUrl,
750
+ codexHome,
751
+ });
752
+ try {
753
+ const response = await client.request(modelsUrl, {
754
+ method: 'GET',
755
+ headers: {
756
+ accept: 'application/json',
757
+ },
758
+ });
759
+ const body = await response.text();
760
+ if (!response.ok) {
761
+ return {
762
+ ok: false,
763
+ status: response.status,
764
+ error: summarizeErrorBody(body || response.statusText),
765
+ preflight,
766
+ };
767
+ }
768
+ const parsed = parseModelsProbeResponse(body);
769
+ if (parsed.parseError) {
770
+ return {
771
+ ok: false,
772
+ status: response.status,
773
+ error: parsed.parseError,
774
+ preflight,
775
+ };
776
+ }
777
+ const modelSlugs = parsed.models.map((model) => model.slug);
778
+ const codex53Family = parsed.models.filter((model) => model.slug.startsWith('gpt-5.3-codex'));
779
+ const sparkModel = parsed.models.find((model) => model.slug === 'gpt-5.3-codex-spark') ?? null;
780
+ return {
781
+ ok: true,
782
+ status: response.status,
783
+ models_count: parsed.models.length,
784
+ model_slugs: modelSlugs,
785
+ codex_53_family: codex53Family,
786
+ spark_model: sparkModel,
787
+ preflight,
788
+ };
789
+ }
790
+ catch (error) {
791
+ return { ok: false, error: describeError(error), preflight };
792
+ }
793
+ }
603
794
  async function verifyChatGptConversation(options, codexHome, auth, selection) {
604
795
  if (!options.verify) {
605
796
  return { ok: false, skipped: true };
@@ -1124,10 +1315,12 @@ async function main() {
1124
1315
  }
1125
1316
  const report = buildReport(codexHome, auth);
1126
1317
  let chatgptVerify;
1318
+ let chatgptModelsProbe;
1127
1319
  let chatgptReasoningProbe;
1128
1320
  let chatgptFuncResultProbe;
1129
1321
  try {
1130
1322
  const selection = selectChatGptModel(options);
1323
+ chatgptModelsProbe = await probeChatGptModels(options, codexHome, auth);
1131
1324
  chatgptVerify = await verifyChatGptConversation(options, codexHome, auth, selection);
1132
1325
  chatgptReasoningProbe = await probeChatGptReasoningStream(options, codexHome, auth, selection);
1133
1326
  chatgptFuncResultProbe = await probeChatGptFuncResultReplacement(options, codexHome, auth, selection);
@@ -1136,6 +1329,7 @@ async function main() {
1136
1329
  const message = error instanceof Error ? error.message : String(error);
1137
1330
  chatgptVerify = { ok: false, error: message };
1138
1331
  }
1332
+ report.chatgpt_models_probe = chatgptModelsProbe;
1139
1333
  report.chatgpt_verify = chatgptVerify;
1140
1334
  report.chatgpt_reasoning_probe = chatgptReasoningProbe;
1141
1335
  report.chatgpt_func_result_probe = chatgptFuncResultProbe;
@@ -1208,6 +1402,52 @@ async function main() {
1208
1402
  }
1209
1403
  }
1210
1404
  }
1405
+ if (chatgptModelsProbe) {
1406
+ if (chatgptModelsProbe.skipped) {
1407
+ console.log('- chatgpt /models probe: skipped');
1408
+ }
1409
+ else if (chatgptModelsProbe.ok) {
1410
+ console.log('- chatgpt /models probe: success');
1411
+ if (chatgptModelsProbe.status) {
1412
+ console.log(`- chatgpt /models status: ${chatgptModelsProbe.status}`);
1413
+ }
1414
+ if (typeof chatgptModelsProbe.models_count === 'number') {
1415
+ console.log(`- chatgpt /models count: ${chatgptModelsProbe.models_count}`);
1416
+ }
1417
+ if (chatgptModelsProbe.codex_53_family && chatgptModelsProbe.codex_53_family.length > 0) {
1418
+ const family = chatgptModelsProbe.codex_53_family.map((model) => model.slug).join(', ');
1419
+ console.log(`- gpt-5.3-codex family: ${family}`);
1420
+ }
1421
+ else {
1422
+ console.log('- gpt-5.3-codex family: none');
1423
+ }
1424
+ if (chatgptModelsProbe.spark_model) {
1425
+ const spark = chatgptModelsProbe.spark_model;
1426
+ console.log(`- spark model found: ${spark.slug}`);
1427
+ if (typeof spark.context_window === 'number') {
1428
+ console.log(`- spark context_window: ${spark.context_window}`);
1429
+ }
1430
+ if (typeof spark.auto_compact_token_limit === 'number') {
1431
+ console.log(`- spark auto_compact_token_limit: ${spark.auto_compact_token_limit}`);
1432
+ }
1433
+ if (typeof spark.effective_context_window_percent === 'number') {
1434
+ console.log(`- spark effective_context_window_percent: ${spark.effective_context_window_percent}`);
1435
+ }
1436
+ }
1437
+ else {
1438
+ console.log('- spark model found: no');
1439
+ }
1440
+ }
1441
+ else {
1442
+ console.log('- chatgpt /models probe: failed');
1443
+ if (chatgptModelsProbe.status) {
1444
+ console.log(`- chatgpt /models status: ${chatgptModelsProbe.status}`);
1445
+ }
1446
+ if (chatgptModelsProbe.error) {
1447
+ console.log(`- chatgpt /models error: ${chatgptModelsProbe.error}`);
1448
+ }
1449
+ }
1450
+ }
1211
1451
  if (chatgptReasoningProbe) {
1212
1452
  if (chatgptReasoningProbe.skipped) {
1213
1453
  console.log('- chatgpt reasoning probe: skipped');
@@ -1 +1 @@
1
- {"version":3,"file":"auth-doctor.js","sourceRoot":"","sources":["../../src/bin/auth-doctor.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAEL,wBAAwB,EACxB,2BAA2B,GAC5B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,aAAa,EAEb,mBAAmB,EACnB,gCAAgC,EAChC,yBAAyB,EACzB,0BAA0B,EAC1B,sBAAsB,GASvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAepD,SAAS,SAAS,CAAC,IAAc;IAC/B,MAAM,OAAO,GAAkB;QAC7B,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK;QACd,cAAc,EAAE,KAAK;QACrB,eAAe,EAAE,KAAK;KACvB,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YACxB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YACtB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YAC1B,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;YACvB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,UAAU,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC9D,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YACvB,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,mBAAmB,IAAI,GAAG,KAAK,kBAAkB,EAAE,CAAC;YAC9D,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;YAC9B,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,sBAAsB,IAAI,GAAG,KAAK,qBAAqB,EAAE,CAAC;YACpE,OAAO,CAAC,cAAc,GAAG,KAAK,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,qBAAqB,EAAE,CAAC;YAClC,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,wBAAwB,EAAE,CAAC;YACrC,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;YAChC,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5B,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC;YACjC,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACrC,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,iBAAiB,EAAE,CAAC;YAC9B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACnC,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;YAC3B,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YACrC,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;QAC1C,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;CAoBb,CAAC,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,WAA6B;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,2BAA2B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAC9E,OAAO,WAAW,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC;AACxC,CAAC;AAED,SAAS,SAAS,CAAC,KAAyB;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAuDD,SAAS,WAAW,CAAC,SAAiB,EAAE,IAAwB;IAC9D,MAAM,MAAM,GAA4B;QACtC,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,YAAY,CAAC,SAAS,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC;QAC3B,KAAK,EAAE,WAAW,EAAE;KACrB,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAElD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,MAAM,CAAC,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;YACnC,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC;YAC9C,MAAM,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,cAAc,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;IAC5B,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjD,MAAM,CAAC,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAE3C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,IAAI,mBAAuC,CAAC;AAE5C,SAAS,eAAe,CAAC,SAAiB;IACxC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC7C,OAAO,oBAAoB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAW;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAC7D,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa;IAC7C,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC;AACjD,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,qBAAqB,CAAC;IAC/B,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC;AACvC,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC;QAC/D,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,OAAO,KAAK,OAAO,GAAG,CAAC;QACnC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAY;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,YAAY,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC/C,IAAI,YAAY,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,KAAK,GAAI,KAAqC,CAAC,KAAK,CAAC;IAC3D,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,CAAC,IAAI,CAAC,UAAU,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACzD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,eAAe,CAAC;QAC/D,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC;IACvD,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzE,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,wBAAwB,CACrC,OAAsB,EACtB,SAAiB,EACjB,IAAwB;IAExB,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;IACT,CAAC;IACD,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IACnE,kBAAkB,CAChB,SAAS,EACT;QACE,OAAO,EAAE,SAAS,CAAC,QAAQ,IAAI,IAAI;QACnC,WAAW,EAAE,SAAS,CAAC,YAAY,IAAI,IAAI;QAC3C,YAAY,EAAE,SAAS,CAAC,aAAa,IAAI,IAAI;KAC9C,EACD,MAAM,CACP,CAAC;AACJ,CAAC;AAUD,SAAS,WAAW;IAClB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,oCAAoC,KAAK,GAAG,CAAC;IACxE,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC1D,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,WAAW,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAEpD,OAAO;QACL,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC;QAC1D,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC;QAC7D,QAAQ,EAAE,OAAO;QACjB,mBAAmB,EAAE,YAAY,CAAC,SAAS,CAAC;QAC5C,oBAAoB,EAAE,YAAY,CAAC,UAAU,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,KAAa,EAAE,KAAa;IAC/C,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAkBD,SAAS,cAAc,CAAC,OAAsB,EAAE,SAAyB;IACvE,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,aAAa,SAAS,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,UAAU,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,KAAa;IACjC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACjD,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,aAAa,CAAC,KAAa,EAAE,QAAgB;IACpD,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,IAAI,UAAU,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;QAClC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;AACrF,CAAC;AAED,SAAS,YAAY,CAAC,QAA4B;IAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,QAA4B;IAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7D,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;AACH,CAAC;AAED,SAAS,4BAA4B,CAAC,QAA6B;IACjE,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,UAAU;YACb,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1D,KAAK,UAAU;YACb,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,OAAO;aAC3B,CAAC;QACJ,KAAK,OAAO;YACV,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1D,KAAK,SAAS;YACZ,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5C,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC5C,cAAc,EAAE,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;aAChD,CAAC;QACJ,OAAO,CAAC,CAAC,CAAC;YACR,MAAM,WAAW,GAAU,QAAQ,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAkC;IAC/D,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,kBAAkB;YACrB,OAAO,uBAAuB,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACjE,KAAK,sBAAsB;YACzB,OAAO,2BAA2B,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACrE,KAAK,oBAAoB;YACvB,OAAO,yBAAyB,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QAC7D,KAAK,iBAAiB;YACpB,OAAO,mBAAmB,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;QACzE,KAAK,4BAA4B,CAAC;QAClC,KAAK,2BAA2B;YAC9B,OAAO,GAAG,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACxD,KAAK,4BAA4B;YAC/B,OAAO,8BAA8B,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5D,KAAK,2BAA2B;YAC9B,OAAO,kCAAkC,KAAK,CAAC,OAAO,QAAQ,KAAK,CAAC,YAAY,QAAQ,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC;QACvH,KAAK,6BAA6B,CAAC;QACnC,KAAK,4BAA4B;YAC/B,OAAO,GAAG,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,OAAO,QAAQ,KAAK,CAAC,YAAY,QAAQ,KAAK,CAAC,aAAa,SAAS,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QACnI,KAAK,uCAAuC;YAC1C,OAAO,6CAA6C,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QAClG,KAAK,sCAAsC;YACzC,OAAO,4CAA4C,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC;QAClF,KAAK,+BAA+B;YAClC,OAAO,qCAAqC,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1F,KAAK,8BAA8B;YACjC,OAAO,oCAAoC,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1E,KAAK,uCAAuC;YAC1C,OAAO,6CAA6C,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC;QACnF,KAAK,sCAAsC;YACzC,OAAO,4CAA4C,KAAK,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC;IACpF,CAAC;IAED,MAAM,WAAW,GAAU,KAAK,CAAC;IACjC,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,SAAS,eAAe,CAAC,KAAkC;IACzD,MAAM,GAAG,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,cAAc,CAAC,MAAwB,EAAE,SAA8C;IAC9F,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,CAAC,SAAS,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB;IAC7C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC9C,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,QAAwB,EACxB,QAA8B;IAE9B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;IAClC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,SAAS,GAAa,EAAE,CAAC;IAE7B,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;QACtB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,SAAS,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QACD,IAAI,KAAkC,CAAC;QACvC,IAAI,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC,CAAC;IAEF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACpC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,MAAM,IAAI,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,MAAM;QACR,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,MAAM,IAAI,EAAE,CAAC;AACf,CAAC;AAED,SAAS,0BAA0B,CAAC,IAAwB;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,WAAW,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAKpC;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YAC3C,OAAO,EAAE;gBACP,eAAe,EAAE,cAAc;gBAC/B,UAAU,EAAE,cAAc;aAC3B;SACF,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,KAAK,EAAE,kBAAkB,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC;gBACtD,IAAI,EAAE,EAAE;aACT,CAAC;QACJ,CAAC;QAED,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,iBAAsD,CAAC;QAC3D,MAAM,QAAQ,GAAyB;YACrC,OAAO,EAAE,KAAK,EAAE,KAAkC,EAAE,EAAE;gBACpD,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACrC,eAAe,CAAC,KAAK,CAAC,CAAC;gBACzB,CAAC;gBACD,IAAI,KAAK,CAAC,IAAI,KAAK,4BAA4B,EAAE,CAAC;oBAChD,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC;oBACzB,OAAO;gBACT,CAAC;gBACD,IACE,CAAC,KAAK,CAAC,IAAI,KAAK,4BAA4B;oBAC1C,KAAK,CAAC,IAAI,KAAK,2BAA2B,CAAC;oBAC7C,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe;oBACnC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,EAC9B,CAAC;oBACD,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC3E,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC;oBACjC,CAAC;oBACD,OAAO;gBACT,CAAC;gBACD,IACE,KAAK,CAAC,IAAI,KAAK,2BAA2B;oBAC1C,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS;oBAC7B,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,EAC/B,CAAC;oBACD,QAAQ,IAAI,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;SACF,CAAC;QAEF,MAAM,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC/D,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,UAAU;YAChB,iBAAiB;SAClB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC;YAC3B,IAAI,EAAE,EAAE;SACT,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CACzB,OAAsB;IAEtB,MAAM,QAAQ,GACZ,OAAO,CAAC,YAAY;QACpB,OAAO,CAAC,KAAK;QACb,OAAO,CAAC,GAAG,CAAC,+BAA+B;QAC3C,mBAAmB;QACnB,SAAS,CAAC;IACZ,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC;QAC7D,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,YAAY,EAAE,iBAAiB,IAAI,oBAAoB;SACxD,CAAC;IACJ,CAAC;IAED,MAAM,cAAc,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC;IACrE,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,EAAE,eAAe;QACtB,YAAY,EAAE,oBAAoB;KACnC,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,OAAsB,EACtB,SAAiB,EACjB,IAAwB,EACxB,SAA8D;IAE9D,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GACX,OAAO,CAAC,cAAc;QACtB,OAAO,CAAC,GAAG,CAAC,kCAAkC;QAC9C,wBAAwB,CAAC;IAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;IAC5C,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;IAEpC,MAAM,SAAS,GAAmB;QAChC,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,0BAA0B,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,cAAc;gBAC/B,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,YAAY,CAAC,UAAU,WAAW,EAAE,CAAC;gBACpD,oBAAoB,EAAE,eAAe,CAAC,SAAS,CAAC;aACjD;YACD,IAAI,EAAE;gBACJ,KAAK;gBACL,gBAAgB,EAAE,cAAc;gBAChC,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC;gBAC9C,QAAQ,EAAE,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC;gBACrC,MAAM,EAAE,IAAI;aACb;SACF;QACD,KAAK,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;KACrE,CAAC;IACF,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,aAAa,CAC9B,EAAE,WAAW,EAAE,SAAS,EAAE,EAC1B;QACE,OAAO;QACP,SAAS;KACV,CACF,CAAC;IACF,MAAM,GAAG,GAA4B,yBAAyB,CAAC;QAC7D,KAAK;QACL,YAAY;QACZ,QAAQ,EAAE,OAAO;QACjB,gBAAgB,EAAE,cAAc;KACjC,CAAC,CAAC;IACH,MAAM,QAAQ,GACZ,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAE1F,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE;YACjD,OAAO,EAAE;gBACP,eAAe,EAAE,cAAc;gBAC/B,UAAU,EAAE,cAAc;aAC3B;SACF,CAAC,CAAC;QACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,CAAC;YAC5C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC;QACzF,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,2BAA2B,CACxC,OAAsB,EACtB,SAAiB,EACjB,IAAwB,EACxB,SAA8D;IAE9D,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;QAC/C,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GACX,OAAO,CAAC,cAAc;QACtB,OAAO,CAAC,GAAG,CAAC,kCAAkC;QAC9C,wBAAwB,CAAC;IAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,CAAC;IAC5C,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;IAEpC,MAAM,SAAS,GAAmB;QAChC,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,0BAA0B,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,cAAc;gBAC/B,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,YAAY,CAAC,UAAU,WAAW,EAAE,CAAC;gBACpD,oBAAoB,EAAE,eAAe,CAAC,SAAS,CAAC;aACjD;YACD,IAAI,EAAE;gBACJ,KAAK;gBACL,gBAAgB,EAAE,cAAc;gBAChC,YAAY,EAAE,aAAa,CAAC,YAAY,EAAE,GAAG,CAAC;gBAC9C,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;gBAClD,OAAO,EAAE,CAAC,6BAA6B,CAAC;gBACxC,QAAQ,EAAE,aAAa,CACrB,6JAA6J,EAC7J,GAAG,CACJ;gBACD,MAAM,EAAE,IAAI;aACb;SACF;QACD,KAAK,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;KACrE,CAAC;IACF,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,aAAa,CAC9B,EAAE,WAAW,EAAE,SAAS,EAAE,EAC1B;QACE,OAAO;QACP,SAAS;KACV,CACF,CAAC;IAEF,MAAM,GAAG,GAA4B,yBAAyB,CAAC;QAC7D,KAAK;QACL,YAAY;QACZ,0FAA0F;QAC1F,4FAA4F;QAC5F,yBAAyB;QACzB,SAAS,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;QAClD,OAAO,EAAE,CAAC,6BAA6B,CAAC;QACxC,QAAQ,EACN,6JAA6J;QAC/J,gBAAgB,EAAE,cAAc;KACjC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAqB,EAAE,CAAC;IACzC,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAC/B,IAAI,4BAA4B,GAAG,KAAK,CAAC;IACzC,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,IAAI,4BAA4B,GAAG,KAAK,CAAC;IACzC,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,eAAe,GAAkB,IAAI,CAAC;IAE1C,MAAM,QAAQ,GAAyB;QACrC,OAAO,EAAE,KAAK,EAAE,KAAkC,EAAE,EAAE;YACpD,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAExC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,oBAAoB,CAAC,CAAC,CAAC;oBAC1B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;oBACnC,MAAM,OAAO,GAAG,KAAK,EAAE,qBAAqB,CAAC;oBAC7C,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;wBAC5D,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC;oBAC7C,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,KAAK,4BAA4B;oBAC/B,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,kBAAkB,GAAG,IAAI,CAAC;oBAC5B,CAAC;oBACD,MAAM;gBACR,KAAK,uCAAuC;oBAC1C,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,4BAA4B,GAAG,IAAI,CAAC;oBACtC,CAAC;oBACD,MAAM;gBACR,KAAK,+BAA+B;oBAClC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC3B,qBAAqB,GAAG,IAAI,CAAC;oBAC/B,CAAC;oBACD,MAAM;gBACR,KAAK,uCAAuC;oBAC1C,4BAA4B,GAAG,IAAI,CAAC;oBACpC,MAAM;gBACR,KAAK,4BAA4B,CAAC;gBAClC,KAAK,2BAA2B;oBAC9B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;wBACpC,gBAAgB,GAAG,IAAI,CAAC;oBAC1B,CAAC;oBACD,MAAM;gBACR;oBACE,MAAM;YACV,CAAC;YAED,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACrC,eAAe,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;KACF,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;YAC3C,OAAO,EAAE;gBACP,eAAe,EAAE,cAAc;gBAC/B,UAAU,EAAE,cAAc;aAC3B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,KAAK,EAAE,kBAAkB,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC;gBACtD,SAAS;aACV,CAAC;QACJ,CAAC;QAED,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAC3F,MAAM,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE5C,MAAM,oBAAoB,GACxB,4BAA4B;YAC5B,qBAAqB;YACrB,4BAA4B;YAC5B,gBAAgB,CAAC;QAEnB,OAAO;YACL,EAAE,EAAE,IAAI;YACR,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,oBAAoB,EAAE,kBAAkB;YACxC,gBAAgB,EAAE,eAAe;YACjC,qBAAqB,EAAE,kBAAkB;YACzC,gCAAgC,EAAE,4BAA4B;YAC9D,wBAAwB,EAAE,qBAAqB;YAC/C,gCAAgC,EAAE,4BAA4B;YAC9D,kBAAkB,EAAE,gBAAgB;YACpC,uBAAuB,EAAE,oBAAoB;YAC7C,YAAY,EAAE,WAAW;YACzB,SAAS;SACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iCAAiC,CAC9C,OAAsB,EACtB,SAAiB,EACjB,IAAwB,EACxB,SAA8D;IAE9D,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAChD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC;IACnD,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9C,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC;IAC9D,CAAC;IACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,OAAO,GACX,OAAO,CAAC,cAAc;QACtB,OAAO,CAAC,GAAG,CAAC,kCAAkC;QAC9C,wBAAwB,CAAC;IAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;IAC9B,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,aAAa,GAAG,WAAW,YAAY,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,SAAS,YAAY,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC;IAEpC,MAAM,iBAAiB,GAAG,GAAG,SAAS,CAAC,YAAY,yEAAyE,CAAC;IAC7H,MAAM,aAAa,GACjB,oDAAoD,CAAC;IACvD,MAAM,eAAe,GACnB,qDAAqD,CAAC;IAExD,MAAM,YAAY,GAAgB;QAChC,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,gEAAgE;QAC7E,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE;YACV,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;aAC7B;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;YACtB,oBAAoB,EAAE,KAAK;SAC5B;KACF,CAAC;IAEF,MAAM,eAAe,GAAmB;QACtC,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,0BAA0B,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,cAAc;gBAC/B,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,YAAY,CAAC,UAAU,WAAW,EAAE,CAAC;gBACpD,oBAAoB,EAAE,eAAe,CAAC,SAAS,CAAC;aACjD;YACD,IAAI,EAAE;gBACJ,KAAK;gBACL,gBAAgB,EAAE,cAAc;gBAChC,YAAY,EAAE,aAAa,CAAC,iBAAiB,EAAE,GAAG,CAAC;gBACnD,KAAK,EAAE,CAAC,UAAU,CAAC;gBACnB,QAAQ,EAAE,aAAa,CAAC,aAAa,EAAE,GAAG,CAAC;gBAC3C,MAAM,EAAE,IAAI;aACb;SACF;QACD,KAAK,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;KACrE,CAAC;IACF,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAEzC,MAAM,eAAe,GAAmB;QACtC,IAAI,EAAE,0CAA0C;QAChD,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,0BAA0B,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,cAAc;gBAC/B,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,YAAY,CAAC,UAAU,WAAW,EAAE,CAAC;gBACpD,oBAAoB,EAAE,eAAe,CAAC,SAAS,CAAC;aACjD;YACD,IAAI,EAAE;gBACJ,KAAK;gBACL,gBAAgB,EAAE,cAAc;gBAChC,QAAQ,EAAE,aAAa,CAAC,eAAe,EAAE,GAAG,CAAC;gBAC7C,2BAA2B,EAAE,aAAa;gBAC1C,MAAM,EAAE,IAAI;aACb;SACF;QACD,KAAK,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;KACrE,CAAC;IACF,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAEzC,MAAM,eAAe,GAAmB;QACtC,IAAI,EAAE,wCAAwC;QAC9C,OAAO,EAAE;YACP,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,0BAA0B,CAAC,OAAO,CAAC;YACxC,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;gBAC3B,eAAe,EAAE,cAAc;gBAC/B,UAAU,EAAE,cAAc;gBAC1B,aAAa,EAAE,YAAY,CAAC,UAAU,WAAW,EAAE,CAAC;gBACpD,oBAAoB,EAAE,eAAe,CAAC,SAAS,CAAC;aACjD;YACD,IAAI,EAAE;gBACJ,KAAK;gBACL,gBAAgB,EAAE,cAAc;gBAChC,QAAQ,EAAE,aAAa,CAAC,eAAe,EAAE,GAAG,CAAC;gBAC7C,2BAA2B,EAAE,WAAW;gBACxC,MAAM,EAAE,IAAI;aACb;SACF;QACD,KAAK,EAAE,4BAA4B,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;KACrE,CAAC;IACF,cAAc,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAEzC,MAAM,MAAM,GAAG,IAAI,aAAa,CAC9B,EAAE,WAAW,EAAE,SAAS,EAAE,EAC1B;QACE,OAAO;QACP,SAAS;KACV,CACF,CAAC;IAEF,MAAM,IAAI,GAA4B,yBAAyB,CAAC;QAC9D,KAAK;QACL,YAAY,EAAE,iBAAiB;QAC/B,KAAK,EAAE,CAAC,YAAY,CAAC;QACrB,mBAAmB,EAAE,KAAK;QAC1B,QAAQ,EAAE,aAAa;QACvB,gBAAgB,EAAE,cAAc;KACjC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;QACzC,MAAM;QACN,GAAG,EAAE,IAAI;QACT,cAAc;QACd,OAAO;KACR,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,cAAc,EAAE,aAAa;YAC7B,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC;SAChE,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,6DAA6D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG;YAClG,cAAc,EAAE,aAAa;YAC7B,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC;SAChE,CAAC;IACJ,CAAC;IAED,MAAM,kBAAkB,GAAuB;QAC7C,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;KACvD,CAAC;IACF,MAAM,cAAc,GAA4B;QAC9C,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,EAAE,EAAE,YAAY,CAAC,EAAE;KACpB,CAAC;IACF,MAAM,WAAW,GAA0B,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAEhF,MAAM,aAAa,GAAkC;QACnD,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;YACrB,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,WAAW;SACrB,CAAC;KACH,CAAC;IACF,MAAM,IAAI,GAA4B,gCAAgC,CAAC;QACrE,KAAK;QACL,YAAY,EAAE,iBAAiB;QAC/B,OAAO,EAAE,CAAC,GAAG,WAAW,EAAE,aAAa,CAAC;QACxC,QAAQ,EAAE,eAAe;QACzB,gBAAgB,EAAE,cAAc;KACjC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;QACzC,MAAM;QACN,GAAG,EAAE,IAAI;QACT,cAAc;QACd,OAAO;KACR,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,cAAc,EAAE,aAAa;YAC7B,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC;SAChE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAkC;QACjD,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;YACrB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,WAAW;YACnB,OAAO,EAAE,cAAc;SACxB,CAAC;KACH,CAAC;IACF,MAAM,IAAI,GAA4B,gCAAgC,CAAC;QACrE,KAAK;QACL,YAAY,EAAE,iBAAiB;QAC/B,OAAO,EAAE,CAAC,GAAG,WAAW,EAAE,WAAW,CAAC;QACtC,QAAQ,EAAE,eAAe;QACzB,gBAAgB,EAAE,cAAc;KACjC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;QACzC,MAAM;QACN,GAAG,EAAE,IAAI;QACT,cAAc;QACd,OAAO;KACR,CAAC,CAAC;IACH,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,cAAc,EAAE,aAAa;YAC7B,YAAY,EAAE,WAAW;YACzB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;YAC9B,UAAU,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC;SAChE,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,eAAe,IAAI,aAAa,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAE7F,OAAO;QACL,EAAE,EAAE,aAAa;QACjB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,KAAK,EAAE,aAAa;YAClB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG;QAClG,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,cAAc,EAAE,aAAa;QAC7B,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,SAAS;QACrB,gBAAgB,EAAE,eAAe;QACjC,cAAc,EAAE,aAAa;QAC7B,cAAc,EAAE,aAAa;QAC7B,UAAU,EAAE,CAAC,eAAe,EAAE,eAAe,EAAE,eAAe,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,IAAiB;IACrC,IAAI,IAAI,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,OAAO,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC;QAC/D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtD,mBAAmB,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;IAEjD,IAAI,IAAI,GAAuB,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,6BAA6B,OAAO,EAAE,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,mBAAmB,OAAO,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,aAAuC,CAAC;IAC5C,IAAI,qBAAoD,CAAC;IACzD,IAAI,sBAAyD,CAAC;IAC9D,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC9C,aAAa,GAAG,MAAM,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QACrF,qBAAqB,GAAG,MAAM,2BAA2B,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QAC/F,sBAAsB,GAAG,MAAM,iCAAiC,CAC9D,OAAO,EACP,SAAS,EACT,IAAI,EACJ,SAAS,CACV,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,aAAa,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAChD,CAAC;IACD,MAAM,CAAC,cAAc,GAAG,aAAa,CAAC;IACtC,MAAM,CAAC,uBAAuB,GAAG,qBAAqB,CAAC;IACvD,MAAM,CAAC,yBAAyB,GAAG,sBAAsB,CAAC;IAE1D,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAgC,CAAC;IACtD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC;QAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,CAAC;QAC1C,MAAM,gBAAgB,GAAG,KAAK,CAAC,mBAAmB,CAAC;QACnD,MAAM,iBAAiB,GAAG,KAAK,CAAC,oBAAoB,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,iBAAiB,SAAS,GAAG,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrF,OAAO,CAAC,GAAG,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,GAAG,CAAC,sBAAsB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAEvE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;YAC5D,CAAC;YACD,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,oBAAoB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,aAAa,CAAC,EAAE,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;YACxC,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,qBAAqB,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,oBAAoB,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,qBAAqB,EAAE,CAAC;QAC1B,IAAI,qBAAqB,CAAC,OAAO,EAAE,CAAC;YAClC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QACpD,CAAC;aAAM,IAAI,qBAAqB,CAAC,EAAE,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,IAAI,qBAAqB,CAAC,oBAAoB,KAAK,IAAI,EAAE,CAAC;gBACxD,OAAO,CAAC,GAAG,CACT,2BAA2B,qBAAqB,CAAC,oBAAoB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAC3F,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,OAAO,qBAAqB,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,uBAAuB,qBAAqB,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC/E,CAAC;YACD,OAAO,CAAC,GAAG,CACT,2BAA2B,qBAAqB,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAC1F,CAAC;YACF,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,EAAE,CAAC;gBACnD,OAAO,CAAC,GAAG,CACT,2IAA2I,CAC5I,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YACjD,IAAI,qBAAqB,CAAC,MAAM,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,qBAAqB,qBAAqB,CAAC,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,qBAAqB,CAAC,KAAK,EAAE,CAAC;gBAChC,OAAO,CAAC,GAAG,CAAC,oBAAoB,qBAAqB,CAAC,KAAK,EAAE,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,sBAAsB,EAAE,CAAC;QAC3B,IAAI,sBAAsB,CAAC,OAAO,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC;aAAM,IAAI,sBAAsB,CAAC,EAAE,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;YACpD,IAAI,sBAAsB,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,sBAAsB,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,sBAAsB,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;gBACxD,OAAO,CAAC,GAAG,CACT,iCAAiC,sBAAsB,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;YACnD,IAAI,sBAAsB,CAAC,MAAM,EAAE,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,qBAAqB,sBAAsB,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,IAAI,sBAAsB,CAAC,OAAO,EAAE,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,0BAA0B,sBAAsB,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,sBAAsB,CAAC,KAAK,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,wBAAwB,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,sBAAsB,CAAC,UAAU,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,6BAA6B,sBAAsB,CAAC,UAAU,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,sBAAsB,CAAC,UAAU,EAAE,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,6BAA6B,sBAAsB,CAAC,UAAU,EAAE,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"auth-doctor.js","sourceRoot":"","sources":["../../src/bin/auth-doctor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.3.3",
6
+ "version": "0.5.0",
7
7
  "description": "ChatGPT OAuth helpers compatible with Codex auth.json",
8
8
  "license": "LGPL-3.0-or-later",
9
9
  "repository": {
@@ -15,9 +15,10 @@
15
15
  "main": "dist/index.js",
16
16
  "types": "dist/index.d.ts",
17
17
  "bin": {
18
- "codex-auth": "dist/bin/auth-doctor.js"
18
+ "codex-auth": "bin/codex-auth.js"
19
19
  },
20
20
  "files": [
21
+ "bin",
21
22
  "dist",
22
23
  "prompts"
23
24
  ],
@@ -25,43 +25,6 @@ When using the planning tool:
25
25
  - Do not make single-step plans.
26
26
  - When you made a plan, update it after having performed one of the sub-tasks that you shared on the plan.
27
27
 
28
- ## Codex CLI harness, sandboxing, and approvals
29
-
30
- The Codex CLI harness supports several different configurations for sandboxing and escalation approvals that the user can choose from.
31
-
32
- Filesystem sandboxing defines which files can be read or written. The options for `sandbox_mode` are:
33
- - **read-only**: The sandbox only permits reading files.
34
- - **workspace-write**: The sandbox permits reading files, and editing files in `cwd` and `writable_roots`. Editing files in other directories requires approval.
35
- - **danger-full-access**: No filesystem sandboxing - all commands are permitted.
36
-
37
- Network sandboxing defines whether network can be accessed without approval. Options for `network_access` are:
38
- - **restricted**: Requires approval
39
- - **enabled**: No approval needed
40
-
41
- Approvals are your mechanism to get user consent to run shell commands without the sandbox. Possible configuration options for `approval_policy` are
42
- - **untrusted**: The harness will escalate most commands for user approval, apart from a limited allowlist of safe "read" commands.
43
- - **on-failure**: The harness will allow all commands to run in the sandbox (if enabled), and failures will be escalated to the user for approval to run again without the sandbox.
44
- - **on-request**: Commands will be run in the sandbox by default, and you can specify in your tool call if you want to escalate a command to run without sandboxing. (Note that this mode is not always available. If it is, you'll see parameters for it in the `shell` command description.)
45
- - **never**: This is a non-interactive mode where you may NEVER ask the user for approval to run commands. Instead, you must always persist and work around constraints to solve the task for the user. You MUST do your utmost best to finish the task and validate your work before yielding. If this mode is paired with `danger-full-access`, take advantage of it to deliver the best outcome for the user. Further, in this mode, your default testing philosophy is overridden: Even if you don't see local patterns for testing, you may add tests and scripts to validate your work. Just remove them before yielding.
46
-
47
- When you are running with `approval_policy == on-request`, and sandboxing enabled, here are scenarios where you'll need to request approval:
48
- - You need to run a command that writes to a directory that requires it (e.g. running tests that write to /var)
49
- - You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files.
50
- - You are running sandboxed and need to run a command that requires network access (e.g. installing packages)
51
- - If you run a command that is important to solving the user's query, but it fails because of sandboxing, rerun the command with approval. ALWAYS proceed to use the `sandbox_permissions` and `justification` parameters - do not message the user before requesting approval for the command.
52
- - You are about to take a potentially destructive action such as an `rm` or `git reset` that the user did not explicitly ask for
53
- - (for all of these, you should weigh alternative paths that do not require approval)
54
-
55
- When `sandbox_mode` is set to read-only, you'll need to request approval for any command that isn't a read.
56
-
57
- You will be told what filesystem sandboxing, network sandboxing, and approval mode are active in a developer or user message. If you are not told about this, assume that you are running with workspace-write, network sandboxing enabled, and approval on-failure.
58
-
59
- Although they introduce friction to the user because your work is paused until the user responds, you should leverage them when necessary to accomplish important work. If the completing the task requires escalated permissions, Do not let these settings or the sandbox deter you from attempting to accomplish the user's task unless it is set to "never", in which case never ask for approvals.
60
-
61
- When requesting approval to execute a command that will require escalated privileges:
62
- - Provide the `sandbox_permissions` parameter with the value `"require_escalated"`
63
- - Include a short, 1 sentence explanation for why you need escalated permissions in the justification parameter
64
-
65
28
  ## Special user requests
66
29
 
67
30
  - If the user makes a simple request (such as asking for the time) which you can fulfill by running a terminal command (such as `date`), you should do so.
@@ -25,43 +25,6 @@ When using the planning tool:
25
25
  - Do not make single-step plans.
26
26
  - When you made a plan, update it after having performed one of the sub-tasks that you shared on the plan.
27
27
 
28
- ## Codex CLI harness, sandboxing, and approvals
29
-
30
- The Codex CLI harness supports several different configurations for sandboxing and escalation approvals that the user can choose from.
31
-
32
- Filesystem sandboxing defines which files can be read or written. The options for `sandbox_mode` are:
33
- - **read-only**: The sandbox only permits reading files.
34
- - **workspace-write**: The sandbox permits reading files, and editing files in `cwd` and `writable_roots`. Editing files in other directories requires approval.
35
- - **danger-full-access**: No filesystem sandboxing - all commands are permitted.
36
-
37
- Network sandboxing defines whether network can be accessed without approval. Options for `network_access` are:
38
- - **restricted**: Requires approval
39
- - **enabled**: No approval needed
40
-
41
- Approvals are your mechanism to get user consent to run shell commands without the sandbox. Possible configuration options for `approval_policy` are
42
- - **untrusted**: The harness will escalate most commands for user approval, apart from a limited allowlist of safe "read" commands.
43
- - **on-failure**: The harness will allow all commands to run in the sandbox (if enabled), and failures will be escalated to the user for approval to run again without the sandbox.
44
- - **on-request**: Commands will be run in the sandbox by default, and you can specify in your tool call if you want to escalate a command to run without sandboxing. (Note that this mode is not always available. If it is, you'll see parameters for it in the `shell` command description.)
45
- - **never**: This is a non-interactive mode where you may NEVER ask the user for approval to run commands. Instead, you must always persist and work around constraints to solve the task for the user. You MUST do your utmost best to finish the task and validate your work before yielding. If this mode is paired with `danger-full-access`, take advantage of it to deliver the best outcome for the user. Further, in this mode, your default testing philosophy is overridden: Even if you don't see local patterns for testing, you may add tests and scripts to validate your work. Just remove them before yielding.
46
-
47
- When you are running with `approval_policy == on-request`, and sandboxing enabled, here are scenarios where you'll need to request approval:
48
- - You need to run a command that writes to a directory that requires it (e.g. running tests that write to /var)
49
- - You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files.
50
- - You are running sandboxed and need to run a command that requires network access (e.g. installing packages)
51
- - If you run a command that is important to solving the user's query, but it fails because of sandboxing, rerun the command with approval. ALWAYS proceed to use the `sandbox_permissions` and `justification` parameters - do not message the user before requesting approval for the command.
52
- - You are about to take a potentially destructive action such as an `rm` or `git reset` that the user did not explicitly ask for
53
- - (for all of these, you should weigh alternative paths that do not require approval)
54
-
55
- When `sandbox_mode` is set to read-only, you'll need to request approval for any command that isn't a read.
56
-
57
- You will be told what filesystem sandboxing, network sandboxing, and approval mode are active in a developer or user message. If you are not told about this, assume that you are running with workspace-write, network sandboxing enabled, and approval on-failure.
58
-
59
- Although they introduce friction to the user because your work is paused until the user responds, you should leverage them when necessary to accomplish important work. If the completing the task requires escalated permissions, Do not let these settings or the sandbox deter you from attempting to accomplish the user's task unless it is set to "never", in which case never ask for approvals.
60
-
61
- When requesting approval to execute a command that will require escalated privileges:
62
- - Provide the `sandbox_permissions` parameter with the value `"require_escalated"`
63
- - Include a short, 1 sentence explanation for why you need escalated permissions in the justification parameter
64
-
65
28
  ## Special user requests
66
29
 
67
30
  - If the user makes a simple request (such as asking for the time) which you can fulfill by running a terminal command (such as `date`), you should do so.
@@ -78,9 +78,9 @@ Unless the user explicitly asks for a plan, asks a question about the code, is b
78
78
  - Use monospace commands/paths/env vars/code ids, inline examples, and literal keyword bullets by wrapping them in backticks.
79
79
  - Code samples or multi-line snippets should be wrapped in fenced code blocks. Include an info string as often as possible.
80
80
  - File References: When referencing files in your response follow the below rules:
81
- * Use inline code to make file paths clickable.
81
+ * Use markdown links (not inline code) for clickable file paths.
82
82
  * Each reference should have a stand alone path. Even if it's the same file.
83
- * Accepted: absolute, workspace‑relative, a/ or b/ diff prefixes, or bare filename/suffix.
83
+ * For clickable/openable file references, the path target must be an absolute filesystem path. Labels may be short (for example, `[app.ts](/abs/path/app.ts)`).
84
84
  * Optionally include line/column (1‑based): :line[:column] or #Lline[Ccolumn] (column defaults to 1).
85
85
  * Do not use URIs like file://, vscode://, or https://.
86
86
  * Do not provide range of lines
@@ -159,43 +159,6 @@ If completing the user's task requires writing or modifying files, your code and
159
159
  - Do not use one-letter variable names unless explicitly requested.
160
160
  - NEVER output inline citations like "【F:README.md†L5-L14】" in your outputs. The CLI is not able to render these so they will just be broken in the UI. Instead, if you output valid filepaths, users will be able to click on them to open the files in their editor.
161
161
 
162
- ## Codex CLI harness, sandboxing, and approvals
163
-
164
- The Codex CLI harness supports several different configurations for sandboxing and escalation approvals that the user can choose from.
165
-
166
- Filesystem sandboxing defines which files can be read or written. The options for `sandbox_mode` are:
167
- - **read-only**: The sandbox only permits reading files.
168
- - **workspace-write**: The sandbox permits reading files, and editing files in `cwd` and `writable_roots`. Editing files in other directories requires approval.
169
- - **danger-full-access**: No filesystem sandboxing - all commands are permitted.
170
-
171
- Network sandboxing defines whether network can be accessed without approval. Options for `network_access` are:
172
- - **restricted**: Requires approval
173
- - **enabled**: No approval needed
174
-
175
- Approvals are your mechanism to get user consent to run shell commands without the sandbox. Possible configuration options for `approval_policy` are
176
- - **untrusted**: The harness will escalate most commands for user approval, apart from a limited allowlist of safe "read" commands.
177
- - **on-failure**: The harness will allow all commands to run in the sandbox (if enabled), and failures will be escalated to the user for approval to run again without the sandbox.
178
- - **on-request**: Commands will be run in the sandbox by default, and you can specify in your tool call if you want to escalate a command to run without sandboxing. (Note that this mode is not always available. If it is, you'll see parameters for escalating in the tool definition.)
179
- - **never**: This is a non-interactive mode where you may NEVER ask the user for approval to run commands. Instead, you must always persist and work around constraints to solve the task for the user. You MUST do your utmost best to finish the task and validate your work before yielding. If this mode is paired with `danger-full-access`, take advantage of it to deliver the best outcome for the user. Further, in this mode, your default testing philosophy is overridden: Even if you don't see local patterns for testing, you may add tests and scripts to validate your work. Just remove them before yielding.
180
-
181
- When you are running with `approval_policy == on-request`, and sandboxing enabled, here are scenarios where you'll need to request approval:
182
- - You need to run a command that writes to a directory that requires it (e.g. running tests that write to /var)
183
- - You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files.
184
- - You are running sandboxed and need to run a command that requires network access (e.g. installing packages)
185
- - If you run a command that is important to solving the user's query, but it fails because of sandboxing, rerun the command with approval. ALWAYS proceed to use the `sandbox_permissions` and `justification` parameters. Within this harness, prefer requesting approval via the tool over asking in natural language.
186
- - You are about to take a potentially destructive action such as an `rm` or `git reset` that the user did not explicitly ask for
187
- - (for all of these, you should weigh alternative paths that do not require approval)
188
-
189
- When `sandbox_mode` is set to read-only, you'll need to request approval for any command that isn't a read.
190
-
191
- You will be told what filesystem sandboxing, network sandboxing, and approval mode are active in a developer or user message. If you are not told about this, assume that you are running with workspace-write, network sandboxing enabled, and approval on-failure.
192
-
193
- Although they introduce friction to the user because your work is paused until the user responds, you should leverage them when necessary to accomplish important work. If the completing the task requires escalated permissions, Do not let these settings or the sandbox deter you from attempting to accomplish the user's task unless it is set to "never", in which case never ask for approvals.
194
-
195
- When requesting approval to execute a command that will require escalated privileges:
196
- - Provide the `sandbox_permissions` parameter with the value `"require_escalated"`
197
- - Include a short, 1 sentence explanation for why you need escalated permissions in the justification parameter
198
-
199
162
  ## Validating your work
200
163
 
201
164
  If the codebase has tests or the ability to build or run, consider using them to verify changes once your work is complete.
@@ -133,43 +133,6 @@ If completing the user's task requires writing or modifying files, your code and
133
133
  - Do not use one-letter variable names unless explicitly requested.
134
134
  - NEVER output inline citations like "【F:README.md†L5-L14】" in your outputs. The CLI is not able to render these so they will just be broken in the UI. Instead, if you output valid filepaths, users will be able to click on them to open the files in their editor.
135
135
 
136
- ## Codex CLI harness, sandboxing, and approvals
137
-
138
- The Codex CLI harness supports several different configurations for sandboxing and escalation approvals that the user can choose from.
139
-
140
- Filesystem sandboxing defines which files can be read or written. The options for `sandbox_mode` are:
141
- - **read-only**: The sandbox only permits reading files.
142
- - **workspace-write**: The sandbox permits reading files, and editing files in `cwd` and `writable_roots`. Editing files in other directories requires approval.
143
- - **danger-full-access**: No filesystem sandboxing - all commands are permitted.
144
-
145
- Network sandboxing defines whether network can be accessed without approval. Options for `network_access` are:
146
- - **restricted**: Requires approval
147
- - **enabled**: No approval needed
148
-
149
- Approvals are your mechanism to get user consent to run shell commands without the sandbox. Possible configuration options for `approval_policy` are
150
- - **untrusted**: The harness will escalate most commands for user approval, apart from a limited allowlist of safe "read" commands.
151
- - **on-failure**: The harness will allow all commands to run in the sandbox (if enabled), and failures will be escalated to the user for approval to run again without the sandbox.
152
- - **on-request**: Commands will be run in the sandbox by default, and you can specify in your tool call if you want to escalate a command to run without sandboxing. (Note that this mode is not always available. If it is, you'll see parameters for escalating in the tool definition.)
153
- - **never**: This is a non-interactive mode where you may NEVER ask the user for approval to run commands. Instead, you must always persist and work around constraints to solve the task for the user. You MUST do your utmost best to finish the task and validate your work before yielding. If this mode is paired with `danger-full-access`, take advantage of it to deliver the best outcome for the user. Further, in this mode, your default testing philosophy is overridden: Even if you don't see local patterns for testing, you may add tests and scripts to validate your work. Just remove them before yielding.
154
-
155
- When you are running with `approval_policy == on-request`, and sandboxing enabled, here are scenarios where you'll need to request approval:
156
- - You need to run a command that writes to a directory that requires it (e.g. running tests that write to /var)
157
- - You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files.
158
- - You are running sandboxed and need to run a command that requires network access (e.g. installing packages)
159
- - If you run a command that is important to solving the user's query, but it fails because of sandboxing, rerun the command with approval. ALWAYS proceed to use the `sandbox_permissions` and `justification` parameters - do not message the user before requesting approval for the command.
160
- - You are about to take a potentially destructive action such as an `rm` or `git reset` that the user did not explicitly ask for
161
- - (for all of these, you should weigh alternative paths that do not require approval)
162
-
163
- When `sandbox_mode` is set to read-only, you'll need to request approval for any command that isn't a read.
164
-
165
- You will be told what filesystem sandboxing, network sandboxing, and approval mode are active in a developer or user message. If you are not told about this, assume that you are running with workspace-write, network sandboxing enabled, and approval on-failure.
166
-
167
- Although they introduce friction to the user because your work is paused until the user responds, you should leverage them when necessary to accomplish important work. If the completing the task requires escalated permissions, Do not let these settings or the sandbox deter you from attempting to accomplish the user's task unless it is set to "never", in which case never ask for approvals.
168
-
169
- When requesting approval to execute a command that will require escalated privileges:
170
- - Provide the `sandbox_permissions` parameter with the value `"require_escalated"`
171
- - Include a short, 1 sentence explanation for why you need escalated permissions in the justification parameter
172
-
173
136
  ## Validating your work
174
137
 
175
138
  If the codebase has tests, or the ability to build or run tests, consider using them to verify changes once your work is complete.
@@ -25,43 +25,6 @@ When using the planning tool:
25
25
  - Do not make single-step plans.
26
26
  - When you made a plan, update it after having performed one of the sub-tasks that you shared on the plan.
27
27
 
28
- ## Codex CLI harness, sandboxing, and approvals
29
-
30
- The Codex CLI harness supports several different configurations for sandboxing and escalation approvals that the user can choose from.
31
-
32
- Filesystem sandboxing defines which files can be read or written. The options for `sandbox_mode` are:
33
- - **read-only**: The sandbox only permits reading files.
34
- - **workspace-write**: The sandbox permits reading files, and editing files in `cwd` and `writable_roots`. Editing files in other directories requires approval.
35
- - **danger-full-access**: No filesystem sandboxing - all commands are permitted.
36
-
37
- Network sandboxing defines whether network can be accessed without approval. Options for `network_access` are:
38
- - **restricted**: Requires approval
39
- - **enabled**: No approval needed
40
-
41
- Approvals are your mechanism to get user consent to run shell commands without the sandbox. Possible configuration options for `approval_policy` are
42
- - **untrusted**: The harness will escalate most commands for user approval, apart from a limited allowlist of safe "read" commands.
43
- - **on-failure**: The harness will allow all commands to run in the sandbox (if enabled), and failures will be escalated to the user for approval to run again without the sandbox.
44
- - **on-request**: Commands will be run in the sandbox by default, and you can specify in your tool call if you want to escalate a command to run without sandboxing. (Note that this mode is not always available. If it is, you'll see parameters for it in the `shell` command description.)
45
- - **never**: This is a non-interactive mode where you may NEVER ask the user for approval to run commands. Instead, you must always persist and work around constraints to solve the task for the user. You MUST do your utmost best to finish the task and validate your work before yielding. If this mode is paired with `danger-full-access`, take advantage of it to deliver the best outcome for the user. Further, in this mode, your default testing philosophy is overridden: Even if you don't see local patterns for testing, you may add tests and scripts to validate your work. Just remove them before yielding.
46
-
47
- When you are running with `approval_policy == on-request`, and sandboxing enabled, here are scenarios where you'll need to request approval:
48
- - You need to run a command that writes to a directory that requires it (e.g. running tests that write to /var)
49
- - You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files.
50
- - You are running sandboxed and need to run a command that requires network access (e.g. installing packages)
51
- - If you run a command that is important to solving the user's query, but it fails because of sandboxing, rerun the command with approval. ALWAYS proceed to use the `sandbox_permissions` and `justification` parameters - do not message the user before requesting approval for the command.
52
- - You are about to take a potentially destructive action such as an `rm` or `git reset` that the user did not explicitly ask for
53
- - (for all of these, you should weigh alternative paths that do not require approval)
54
-
55
- When `sandbox_mode` is set to read-only, you'll need to request approval for any command that isn't a read.
56
-
57
- You will be told what filesystem sandboxing, network sandboxing, and approval mode are active in a developer or user message. If you are not told about this, assume that you are running with workspace-write, network sandboxing enabled, and approval on-failure.
58
-
59
- Although they introduce friction to the user because your work is paused until the user responds, you should leverage them when necessary to accomplish important work. If the completing the task requires escalated permissions, Do not let these settings or the sandbox deter you from attempting to accomplish the user's task unless it is set to "never", in which case never ask for approvals.
60
-
61
- When requesting approval to execute a command that will require escalated privileges:
62
- - Provide the `sandbox_permissions` parameter with the value `"require_escalated"`
63
- - Include a short, 1 sentence explanation for why you need escalated permissions in the justification parameter
64
-
65
28
  ## Special user requests
66
29
 
67
30
  - If the user makes a simple request (such as asking for the time) which you can fulfill by running a terminal command (such as `date`), you should do so.
package/prompts/prompt.md CHANGED
@@ -146,41 +146,6 @@ If completing the user's task requires writing or modifying files, your code and
146
146
  - Do not use one-letter variable names unless explicitly requested.
147
147
  - NEVER output inline citations like "【F:README.md†L5-L14】" in your outputs. The CLI is not able to render these so they will just be broken in the UI. Instead, if you output valid filepaths, users will be able to click on them to open the files in their editor.
148
148
 
149
- ## Sandbox and approvals
150
-
151
- The Codex CLI harness supports several different sandboxing, and approval configurations that the user can choose from.
152
-
153
- Filesystem sandboxing prevents you from editing files without user approval. The options are:
154
-
155
- - **read-only**: You can only read files.
156
- - **workspace-write**: You can read files. You can write to files in your workspace folder, but not outside it.
157
- - **danger-full-access**: No filesystem sandboxing.
158
-
159
- Network sandboxing prevents you from accessing network without approval. Options are
160
-
161
- - **restricted**
162
- - **enabled**
163
-
164
- Approvals are your mechanism to get user consent to perform more privileged actions. Although they introduce friction to the user because your work is paused until the user responds, you should leverage them to accomplish your important work. Do not let these settings or the sandbox deter you from attempting to accomplish the user's task. Approval options are
165
-
166
- - **untrusted**: The harness will escalate most commands for user approval, apart from a limited allowlist of safe "read" commands.
167
- - **on-failure**: The harness will allow all commands to run in the sandbox (if enabled), and failures will be escalated to the user for approval to run again without the sandbox.
168
- - **on-request**: Commands will be run in the sandbox by default, and you can specify in your tool call if you want to escalate a command to run without sandboxing. (Note that this mode is not always available. If it is, you'll see parameters for it in the `shell` command description.)
169
- - **never**: This is a non-interactive mode where you may NEVER ask the user for approval to run commands. Instead, you must always persist and work around constraints to solve the task for the user. You MUST do your utmost best to finish the task and validate your work before yielding. If this mode is pared with `danger-full-access`, take advantage of it to deliver the best outcome for the user. Further, in this mode, your default testing philosophy is overridden: Even if you don't see local patterns for testing, you may add tests and scripts to validate your work. Just remove them before yielding.
170
-
171
- When you are running with approvals `on-request`, and sandboxing enabled, here are scenarios where you'll need to request approval:
172
-
173
- - You need to run a command that writes to a directory that requires it (e.g. running tests that write to /tmp)
174
- - You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files.
175
- - You are running sandboxed and need to run a command that requires network access (e.g. installing packages)
176
- - If you run a command that is important to solving the user's query, but it fails because of sandboxing, rerun the command with approval.
177
- - You are about to take a potentially destructive action such as an `rm` or `git reset` that the user did not explicitly ask for
178
- - (For all of these, you should weigh alternative paths that do not require approval.)
179
-
180
- Note that when sandboxing is set to read-only, you'll need to request approval for any command that isn't a read.
181
-
182
- You will be told what filesystem sandboxing, network sandboxing, and approval mode are active in a developer or user message. If you are not told about this, assume that you are running with workspace-write, network sandboxing ON, and approval on-failure.
183
-
184
149
  ## Validating your work
185
150
 
186
151
  If the codebase has tests or the ability to build or run, consider using them to verify that your work is complete.
@@ -146,41 +146,6 @@ If completing the user's task requires writing or modifying files, your code and
146
146
  - Do not use one-letter variable names unless explicitly requested.
147
147
  - NEVER output inline citations like "【F:README.md†L5-L14】" in your outputs. The CLI is not able to render these so they will just be broken in the UI. Instead, if you output valid filepaths, users will be able to click on them to open the files in their editor.
148
148
 
149
- ## Sandbox and approvals
150
-
151
- The Codex CLI harness supports several different sandboxing, and approval configurations that the user can choose from.
152
-
153
- Filesystem sandboxing prevents you from editing files without user approval. The options are:
154
-
155
- - **read-only**: You can only read files.
156
- - **workspace-write**: You can read files. You can write to files in your workspace folder, but not outside it.
157
- - **danger-full-access**: No filesystem sandboxing.
158
-
159
- Network sandboxing prevents you from accessing network without approval. Options are
160
-
161
- - **restricted**
162
- - **enabled**
163
-
164
- Approvals are your mechanism to get user consent to perform more privileged actions. Although they introduce friction to the user because your work is paused until the user responds, you should leverage them to accomplish your important work. Do not let these settings or the sandbox deter you from attempting to accomplish the user's task. Approval options are
165
-
166
- - **untrusted**: The harness will escalate most commands for user approval, apart from a limited allowlist of safe "read" commands.
167
- - **on-failure**: The harness will allow all commands to run in the sandbox (if enabled), and failures will be escalated to the user for approval to run again without the sandbox.
168
- - **on-request**: Commands will be run in the sandbox by default, and you can specify in your tool call if you want to escalate a command to run without sandboxing. (Note that this mode is not always available. If it is, you'll see parameters for it in the `shell` command description.)
169
- - **never**: This is a non-interactive mode where you may NEVER ask the user for approval to run commands. Instead, you must always persist and work around constraints to solve the task for the user. You MUST do your utmost best to finish the task and validate your work before yielding. If this mode is pared with `danger-full-access`, take advantage of it to deliver the best outcome for the user. Further, in this mode, your default testing philosophy is overridden: Even if you don't see local patterns for testing, you may add tests and scripts to validate your work. Just remove them before yielding.
170
-
171
- When you are running with approvals `on-request`, and sandboxing enabled, here are scenarios where you'll need to request approval:
172
-
173
- - You need to run a command that writes to a directory that requires it (e.g. running tests that write to /tmp)
174
- - You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files.
175
- - You are running sandboxed and need to run a command that requires network access (e.g. installing packages)
176
- - If you run a command that is important to solving the user's query, but it fails because of sandboxing, rerun the command with approval.
177
- - You are about to take a potentially destructive action such as an `rm` or `git reset` that the user did not explicitly ask for
178
- - (For all of these, you should weigh alternative paths that do not require approval.)
179
-
180
- Note that when sandboxing is set to read-only, you'll need to request approval for any command that isn't a read.
181
-
182
- You will be told what filesystem sandboxing, network sandboxing, and approval mode are active in a developer or user message. If you are not told about this, assume that you are running with workspace-write, network sandboxing ON, and approval on-failure.
183
-
184
149
  ## Validating your work
185
150
 
186
151
  If the codebase has tests or the ability to build or run, consider using them to verify that your work is complete.