cbrowser 7.4.3 → 7.4.6

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
@@ -1,7 +1,9 @@
1
- # CBrowser
1
+ # CBrowser (Cognitive Browser)
2
2
 
3
3
  **The browser automation built for AI agents, not human developers.**
4
4
 
5
+ *CBrowser = Cognitive Browser — browser automation that thinks.*
6
+
5
7
  Most browser automation tools are built for humans writing scripts. CBrowser is built from the ground up as an MCP server for AI agents—natural language is the primary interface, not an afterthought.
6
8
 
7
9
  [![npm version](https://badge.fury.io/js/cbrowser.svg)](https://www.npmjs.com/package/cbrowser)
@@ -641,10 +643,19 @@ CBrowser can run as an MCP server for both Claude Desktop (local) and claude.ai
641
643
  Connect claude.ai directly to a remote CBrowser server:
642
644
 
643
645
  1. Deploy CBrowser on your server ([full guide](docs/REMOTE-MCP-SERVER.md))
644
- 2. In claude.ai: Settings → Integrations → Custom MCP Servers
646
+ 2. In claude.ai: Settings → ConnectorsAdd Custom Connector
645
647
  3. Add URL: `https://your-cbrowser-domain.com/mcp`
648
+ 4. Configure OAuth with Auth0 ([setup guide](docs/AUTH0-SETUP.md))
649
+
650
+ **Public Demo (rate-limited):** `https://cbrowser-mcp-demo.wyldfyre.ai/mcp`
651
+ - No authentication required
652
+ - Rate limit: 5 requests/minute, burst of 10
653
+ - For evaluation purposes only
646
654
 
647
- **Try our public demo:** `https://cbrowser-mcp.wyldfyre.ai/mcp`
655
+ **Authenticated Server:** `https://cbrowser-mcp.wyldfyre.ai/mcp`
656
+ - **OAuth 2.1 via Auth0** - For claude.ai web interface ([setup guide](docs/AUTH0-SETUP.md))
657
+ - **API Key** - For Claude Code CLI and programmatic access
658
+ - No rate limits for authenticated users
648
659
 
649
660
  #### Option 2: Local MCP (Claude Desktop)
650
661
 
@@ -4,6 +4,7 @@
4
4
  *
5
5
  * HTTP-based MCP server for remote access via claude.ai custom connectors.
6
6
  * Uses StreamableHTTPServerTransport for HTTP/SSE communication.
7
+ * Supports OAuth 2.1 via Auth0 for claude.ai integration.
7
8
  *
8
9
  * Run with: cbrowser mcp-remote
9
10
  * Or: npx cbrowser mcp-remote
@@ -13,6 +14,13 @@
13
14
  * PORT - Port to listen on (default: 3000)
14
15
  * HOST - Host to bind to (default: 0.0.0.0)
15
16
  * MCP_SESSION_MODE - 'stateful' or 'stateless' (default: stateless)
17
+ * MCP_API_KEY - API key for authentication (optional, if not set server is open)
18
+ * MCP_API_KEYS - Comma-separated list of valid API keys (optional, alternative to MCP_API_KEY)
19
+ *
20
+ * Auth0 OAuth Environment Variables:
21
+ * AUTH0_DOMAIN - Your Auth0 tenant domain (e.g., 'your-tenant.auth0.com')
22
+ * AUTH0_AUDIENCE - API audience/identifier (e.g., 'https://cbrowser-mcp.wyldfyre.ai')
23
+ * AUTH0_CLIENT_ID - Optional: Client ID for static registration
16
24
  */
17
25
  /**
18
26
  * Start the remote HTTP MCP server
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-remote.d.ts","sourceRoot":"","sources":["../src/mcp-server-remote.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AAm7BH;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CA8F1D"}
1
+ {"version":3,"file":"mcp-server-remote.d.ts","sourceRoot":"","sources":["../src/mcp-server-remote.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AA+oCH;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAsL1D"}
@@ -5,6 +5,7 @@
5
5
  *
6
6
  * HTTP-based MCP server for remote access via claude.ai custom connectors.
7
7
  * Uses StreamableHTTPServerTransport for HTTP/SSE communication.
8
+ * Supports OAuth 2.1 via Auth0 for claude.ai integration.
8
9
  *
9
10
  * Run with: cbrowser mcp-remote
10
11
  * Or: npx cbrowser mcp-remote
@@ -14,11 +15,19 @@
14
15
  * PORT - Port to listen on (default: 3000)
15
16
  * HOST - Host to bind to (default: 0.0.0.0)
16
17
  * MCP_SESSION_MODE - 'stateful' or 'stateless' (default: stateless)
18
+ * MCP_API_KEY - API key for authentication (optional, if not set server is open)
19
+ * MCP_API_KEYS - Comma-separated list of valid API keys (optional, alternative to MCP_API_KEY)
20
+ *
21
+ * Auth0 OAuth Environment Variables:
22
+ * AUTH0_DOMAIN - Your Auth0 tenant domain (e.g., 'your-tenant.auth0.com')
23
+ * AUTH0_AUDIENCE - API audience/identifier (e.g., 'https://cbrowser-mcp.wyldfyre.ai')
24
+ * AUTH0_CLIENT_ID - Optional: Client ID for static registration
17
25
  */
18
26
  Object.defineProperty(exports, "__esModule", { value: true });
19
27
  exports.startRemoteMcpServer = startRemoteMcpServer;
20
28
  const node_http_1 = require("node:http");
21
29
  const node_crypto_1 = require("node:crypto");
30
+ const jose_1 = require("jose");
22
31
  const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
23
32
  const streamableHttp_js_1 = require("@modelcontextprotocol/sdk/server/streamableHttp.js");
24
33
  const zod_1 = require("zod");
@@ -44,6 +53,194 @@ async function getBrowser() {
44
53
  }
45
54
  // Transport instances by session (for stateful mode)
46
55
  const transports = new Map();
56
+ let auth0Config = null;
57
+ // Token cache to avoid hitting Auth0 rate limits
58
+ const tokenCache = new Map();
59
+ const TOKEN_CACHE_TTL = 30 * 60 * 1000; // 30 minutes
60
+ /**
61
+ * Initialize Auth0 configuration from environment variables
62
+ */
63
+ function getAuth0Config() {
64
+ const domain = process.env.AUTH0_DOMAIN;
65
+ const audience = process.env.AUTH0_AUDIENCE;
66
+ if (!domain || !audience) {
67
+ return null;
68
+ }
69
+ if (!auth0Config || auth0Config.domain !== domain) {
70
+ auth0Config = {
71
+ domain,
72
+ audience,
73
+ clientId: process.env.AUTH0_CLIENT_ID,
74
+ jwks: (0, jose_1.createRemoteJWKSet)(new URL(`https://${domain}/.well-known/jwks.json`)),
75
+ };
76
+ }
77
+ return auth0Config;
78
+ }
79
+ /**
80
+ * Validate Auth0 token - supports both JWT and opaque tokens with caching
81
+ */
82
+ async function validateAuth0Token(token) {
83
+ const config = getAuth0Config();
84
+ if (!config) {
85
+ return null;
86
+ }
87
+ // Check cache first (use first 32 chars of token as key for security)
88
+ const cacheKey = token.substring(0, 32);
89
+ const cached = tokenCache.get(cacheKey);
90
+ if (cached && cached.expires > Date.now()) {
91
+ return cached.payload;
92
+ }
93
+ const tokenParts = token.split('.');
94
+ // If it's a proper JWT (3 parts), validate locally
95
+ if (tokenParts.length === 3) {
96
+ try {
97
+ const { payload } = await (0, jose_1.jwtVerify)(token, config.jwks, {
98
+ issuer: `https://${config.domain}/`,
99
+ audience: config.audience,
100
+ });
101
+ console.log("JWT validated successfully for subject:", payload.sub);
102
+ // Cache the result
103
+ tokenCache.set(cacheKey, { payload, expires: Date.now() + TOKEN_CACHE_TTL });
104
+ return payload;
105
+ }
106
+ catch (error) {
107
+ console.error("JWT validation failed:", error instanceof Error ? error.message : error);
108
+ return null;
109
+ }
110
+ }
111
+ // For opaque/JWE tokens (5 parts), validate via Auth0's userinfo endpoint
112
+ console.log("Opaque token detected, validating via Auth0 userinfo...");
113
+ try {
114
+ const response = await fetch(`https://${config.domain}/userinfo`, {
115
+ headers: {
116
+ Authorization: `Bearer ${token}`,
117
+ },
118
+ });
119
+ if (response.ok) {
120
+ const userinfo = await response.json();
121
+ console.log("Token validated via userinfo for:", userinfo.sub || userinfo.email);
122
+ // Cache the result
123
+ tokenCache.set(cacheKey, { payload: userinfo, expires: Date.now() + TOKEN_CACHE_TTL });
124
+ return userinfo;
125
+ }
126
+ else {
127
+ console.error("Userinfo validation failed:", response.status, await response.text());
128
+ return null;
129
+ }
130
+ }
131
+ catch (error) {
132
+ console.error("Userinfo request failed:", error instanceof Error ? error.message : error);
133
+ return null;
134
+ }
135
+ }
136
+ /**
137
+ * Get Protected Resource Metadata (RFC 9728)
138
+ * This tells OAuth clients where to authenticate
139
+ */
140
+ function getProtectedResourceMetadata() {
141
+ const config = getAuth0Config();
142
+ if (!config) {
143
+ return null;
144
+ }
145
+ const serverUrl = process.env.MCP_SERVER_URL || `https://cbrowser-mcp.wyldfyre.ai`;
146
+ return {
147
+ resource: serverUrl,
148
+ authorization_servers: [`https://${config.domain}`],
149
+ bearer_methods_supported: ["header"],
150
+ scopes_supported: ["openid", "profile", "cbrowser:read", "cbrowser:write"],
151
+ resource_documentation: "https://github.com/alexandriashai/cbrowser#readme",
152
+ };
153
+ }
154
+ /**
155
+ * Get configured API keys from environment
156
+ */
157
+ function getApiKeys() {
158
+ const singleKey = process.env.MCP_API_KEY;
159
+ const multipleKeys = process.env.MCP_API_KEYS;
160
+ if (!singleKey && !multipleKeys) {
161
+ return null; // No authentication configured
162
+ }
163
+ const keys = new Set();
164
+ if (singleKey) {
165
+ keys.add(singleKey);
166
+ }
167
+ if (multipleKeys) {
168
+ multipleKeys.split(",").map(k => k.trim()).filter(k => k).forEach(k => keys.add(k));
169
+ }
170
+ return keys;
171
+ }
172
+ /**
173
+ * Validate API key from request headers
174
+ * Supports: Authorization: Bearer <key> or X-API-Key: <key>
175
+ */
176
+ function validateApiKey(req, validKeys) {
177
+ // Check Authorization header (Bearer token)
178
+ const authHeader = req.headers.authorization;
179
+ if (authHeader?.startsWith("Bearer ")) {
180
+ const token = authHeader.slice(7);
181
+ if (validKeys.has(token)) {
182
+ return true;
183
+ }
184
+ }
185
+ // Check X-API-Key header
186
+ const apiKeyHeader = req.headers["x-api-key"];
187
+ if (typeof apiKeyHeader === "string" && validKeys.has(apiKeyHeader)) {
188
+ return true;
189
+ }
190
+ return false;
191
+ }
192
+ /**
193
+ * Validate authentication - supports both API keys and Auth0 JWT
194
+ * Returns: { valid: true } or { valid: false, reason: string }
195
+ */
196
+ async function validateAuth(req, apiKeys, auth0Enabled) {
197
+ const authHeader = req.headers.authorization;
198
+ // Try API key first (if configured)
199
+ if (apiKeys && apiKeys.size > 0) {
200
+ if (validateApiKey(req, apiKeys)) {
201
+ return { valid: true };
202
+ }
203
+ }
204
+ // Try Auth0 JWT (if configured)
205
+ if (auth0Enabled && authHeader?.startsWith("Bearer ")) {
206
+ const token = authHeader.slice(7);
207
+ const payload = await validateAuth0Token(token);
208
+ if (payload) {
209
+ return { valid: true, user: payload };
210
+ }
211
+ return { valid: false, reason: "Invalid or expired JWT token" };
212
+ }
213
+ // No valid auth found
214
+ if (!apiKeys && !auth0Enabled) {
215
+ // No auth configured - allow all
216
+ return { valid: true };
217
+ }
218
+ return { valid: false, reason: "Authentication required" };
219
+ }
220
+ /**
221
+ * Send 401 Unauthorized response with proper WWW-Authenticate header
222
+ */
223
+ function sendUnauthorized(res, message) {
224
+ const auth0 = getAuth0Config();
225
+ let wwwAuth = 'Bearer realm="cbrowser-mcp"';
226
+ if (auth0) {
227
+ // Include Auth0 authorization server info per RFC 9728
228
+ wwwAuth = `Bearer realm="cbrowser-mcp", authorization_uri="https://${auth0.domain}/authorize", token_uri="https://${auth0.domain}/oauth/token"`;
229
+ }
230
+ res.writeHead(401, {
231
+ "Content-Type": "application/json",
232
+ "WWW-Authenticate": wwwAuth,
233
+ });
234
+ res.end(JSON.stringify({
235
+ error: "Unauthorized",
236
+ message: message || "Valid authentication required. Use Authorization: Bearer <token>",
237
+ ...(auth0 && {
238
+ auth0_domain: auth0.domain,
239
+ authorization_endpoint: `https://${auth0.domain}/authorize`,
240
+ token_endpoint: `https://${auth0.domain}/oauth/token`,
241
+ }),
242
+ }));
243
+ }
47
244
  /**
48
245
  * Configure all CBrowser tools on an MCP server instance.
49
246
  * This is shared between stdio and HTTP transports.
@@ -692,7 +889,7 @@ function configureMcpTools(server) {
692
889
  function createMcpServer() {
693
890
  const server = new mcp_js_1.McpServer({
694
891
  name: "cbrowser",
695
- version: "7.4.2",
892
+ version: "7.4.6",
696
893
  });
697
894
  configureMcpTools(server);
698
895
  return server;
@@ -701,16 +898,7 @@ function createMcpServer() {
701
898
  * Handle incoming HTTP MCP request
702
899
  */
703
900
  async function handleMcpRequest(req, res, transport) {
704
- // Handle CORS
705
- res.setHeader("Access-Control-Allow-Origin", "*");
706
- res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
707
- res.setHeader("Access-Control-Allow-Headers", "Content-Type, Mcp-Session-Id");
708
- res.setHeader("Access-Control-Expose-Headers", "Mcp-Session-Id");
709
- if (req.method === "OPTIONS") {
710
- res.writeHead(204);
711
- res.end();
712
- return;
713
- }
901
+ // CORS headers are set at the top level in startRemoteMcpServer
714
902
  // Parse body for POST requests
715
903
  if (req.method === "POST") {
716
904
  const chunks = [];
@@ -732,29 +920,95 @@ async function startRemoteMcpServer() {
732
920
  const port = parseInt(process.env.PORT || "3000", 10);
733
921
  const host = process.env.HOST || "0.0.0.0";
734
922
  const sessionMode = process.env.MCP_SESSION_MODE || "stateless";
735
- console.log(`Starting CBrowser Remote MCP Server v7.4.2...`);
923
+ const apiKeys = getApiKeys();
924
+ const auth0 = getAuth0Config();
925
+ const apiKeyAuthEnabled = apiKeys !== null && apiKeys.size > 0;
926
+ const auth0Enabled = auth0 !== null;
927
+ const authEnabled = apiKeyAuthEnabled || auth0Enabled;
928
+ console.log(`Starting CBrowser Remote MCP Server v7.4.5...`);
736
929
  console.log(`Mode: ${sessionMode}`);
930
+ console.log(`Auth: ${authEnabled ? "enabled" : "disabled (open access)"}`);
931
+ if (apiKeyAuthEnabled) {
932
+ console.log(` - API Key auth: enabled (${apiKeys?.size} keys)`);
933
+ }
934
+ if (auth0Enabled) {
935
+ console.log(` - Auth0 OAuth: enabled (${auth0?.domain})`);
936
+ }
737
937
  console.log(`Listening on ${host}:${port}`);
738
938
  const httpServer = (0, node_http_1.createServer)(async (req, res) => {
739
939
  const url = new URL(req.url || "/", `http://${req.headers.host}`);
940
+ // CORS headers for all responses
941
+ res.setHeader("Access-Control-Allow-Origin", "*");
942
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
943
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, Mcp-Session-Id, X-API-Key");
944
+ res.setHeader("Access-Control-Expose-Headers", "Mcp-Session-Id, WWW-Authenticate");
945
+ if (req.method === "OPTIONS") {
946
+ res.writeHead(204);
947
+ res.end();
948
+ return;
949
+ }
950
+ // =====================================================================
951
+ // Public Endpoints (no auth required)
952
+ // =====================================================================
740
953
  // Health check endpoint
741
954
  if (url.pathname === "/health") {
742
955
  res.writeHead(200, { "Content-Type": "application/json" });
743
- res.end(JSON.stringify({ status: "ok", version: "7.4.2" }));
956
+ res.end(JSON.stringify({
957
+ status: "ok",
958
+ version: "7.4.6",
959
+ auth: authEnabled,
960
+ auth_methods: {
961
+ api_key: apiKeyAuthEnabled,
962
+ oauth: auth0Enabled,
963
+ },
964
+ }));
744
965
  return;
745
966
  }
746
- // Server info endpoint (for discovery)
967
+ // Server info endpoint
747
968
  if (url.pathname === "/info") {
748
969
  res.writeHead(200, { "Content-Type": "application/json" });
749
970
  res.end(JSON.stringify({
750
971
  name: "cbrowser",
751
- version: "7.4.2",
752
- description: "AI-powered browser automation with constitutional safety",
972
+ version: "7.4.6",
973
+ description: "Cognitive Browser - AI-powered browser automation with constitutional safety",
753
974
  mcp_endpoint: "/mcp",
975
+ auth_required: authEnabled,
976
+ auth_methods: {
977
+ api_key: apiKeyAuthEnabled,
978
+ oauth: auth0Enabled ? {
979
+ domain: auth0?.domain,
980
+ authorization_endpoint: `https://${auth0?.domain}/authorize`,
981
+ token_endpoint: `https://${auth0?.domain}/oauth/token`,
982
+ } : false,
983
+ },
754
984
  capabilities: ["navigation", "interaction", "visual-testing", "nlp-testing", "performance"],
755
985
  }));
756
986
  return;
757
987
  }
988
+ // Protected Resource Metadata (RFC 9728) - required for OAuth
989
+ if (url.pathname === "/.well-known/oauth-protected-resource") {
990
+ const metadata = getProtectedResourceMetadata();
991
+ if (metadata) {
992
+ res.writeHead(200, { "Content-Type": "application/json" });
993
+ res.end(JSON.stringify(metadata));
994
+ }
995
+ else {
996
+ res.writeHead(404, { "Content-Type": "application/json" });
997
+ res.end(JSON.stringify({ error: "OAuth not configured" }));
998
+ }
999
+ return;
1000
+ }
1001
+ // =====================================================================
1002
+ // Protected Endpoints (auth required)
1003
+ // =====================================================================
1004
+ // Auth check for protected endpoints
1005
+ if (authEnabled) {
1006
+ const authResult = await validateAuth(req, apiKeys, auth0Enabled);
1007
+ if (!authResult.valid) {
1008
+ sendUnauthorized(res, authResult.reason);
1009
+ return;
1010
+ }
1011
+ }
758
1012
  // MCP endpoint
759
1013
  if (url.pathname === "/mcp" || url.pathname === "/") {
760
1014
  // Get or create session
@@ -790,13 +1044,30 @@ async function startRemoteMcpServer() {
790
1044
  res.end(JSON.stringify({ error: "Not found" }));
791
1045
  });
792
1046
  httpServer.listen(port, host, () => {
793
- console.log(`\nCBrowser Remote MCP Server running at http://${host}:${port}`);
1047
+ console.log(`\nCognitive Browser Remote MCP Server running at http://${host}:${port}`);
794
1048
  console.log(`\nEndpoints:`);
795
- console.log(` MCP: http://${host}:${port}/mcp`);
796
- console.log(` Health: http://${host}:${port}/health`);
797
- console.log(` Info: http://${host}:${port}/info`);
1049
+ console.log(` MCP: http://${host}:${port}/mcp`);
1050
+ console.log(` Health: http://${host}:${port}/health`);
1051
+ console.log(` Info: http://${host}:${port}/info`);
1052
+ if (auth0Enabled) {
1053
+ console.log(` OAuth: http://${host}:${port}/.well-known/oauth-protected-resource`);
1054
+ }
1055
+ if (authEnabled) {
1056
+ console.log(`\nAuthentication:`);
1057
+ if (apiKeyAuthEnabled) {
1058
+ console.log(` API Key: Authorization: Bearer <your-api-key>`);
1059
+ console.log(` X-API-Key: <your-api-key>`);
1060
+ }
1061
+ if (auth0Enabled) {
1062
+ console.log(` OAuth: Authorization: Bearer <jwt-token>`);
1063
+ console.log(` Auth0 Domain: ${auth0?.domain}`);
1064
+ }
1065
+ }
798
1066
  console.log(`\nFor claude.ai custom connector:`);
799
1067
  console.log(` URL: https://cbrowser-mcp.wyldfyre.ai/mcp`);
1068
+ if (auth0Enabled) {
1069
+ console.log(` OAuth metadata: https://cbrowser-mcp.wyldfyre.ai/.well-known/oauth-protected-resource`);
1070
+ }
800
1071
  });
801
1072
  // Graceful shutdown
802
1073
  const shutdown = async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-remote.js","sourceRoot":"","sources":["../src/mcp-server-remote.ts"],"names":[],"mappings":";;AACA;;;;;;;;;;;;;;GAcG;;AAs7BH,oDA8FC;AAlhCD,yCAA0E;AAC1E,6CAAyC;AACzC,oEAAoE;AACpE,0FAAmG;AACnG,6BAAwB;AACxB,6CAAwC;AAExC,wBAAwB;AACxB,gDAQ2B;AAE3B,yBAAyB;AACzB,iDAO4B;AAG5B,0BAA0B;AAC1B,kDAK6B;AAE7B,6BAA6B;AAC7B,qDAIgC;AAEhC,0BAA0B;AAC1B,IAAI,OAAO,GAAoB,IAAI,CAAC;AAEpC,KAAK,UAAU,UAAU;IACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,IAAI,qBAAQ,CAAC;YACrB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAyC,CAAC;AAEpE;;;GAGG;AACH,SAAS,iBAAiB,CAAC,MAAiB;IAC1C,4EAA4E;IAC5E,mBAAmB;IACnB,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,UAAU,EACV,yCAAyC,EACzC;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KACzD,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAChB,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC9B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,oBAAoB;IACpB,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,OAAO,EACP,mEAAmE,EACnE;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAC9F,KAAK,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACvF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAClD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;qBAC9B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,kDAAkD,EAClD;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACjD,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KAChF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACjC,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;wBAChC,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,YAAY,EAAE,MAAM,CAAC,YAAY;qBAClC,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,MAAM,EACN,6BAA6B,EAC7B;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC;QAC5F,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;KAC7C,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;QAC5B,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,mBAAmB;IACnB,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,uCAAuC,EACvC;QACE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KAC7E,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpD;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,SAAS,EACT,4BAA4B,EAC5B;QACE,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC;KAC3F,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC3C;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,QAAQ,EACR,2CAA2C,EAC3C;QACE,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oFAAoF,CAAC;KACrH,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;QACtB,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,iBAAiB;IACjB,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,cAAc,EACd,kDAAkD,EAClD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACvC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;wBACrB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;wBAC5B,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM;wBAChC,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,MAAM;wBAC5B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;wBAC3B,SAAS,EAAE,QAAQ,CAAC,SAAS;wBAC7B,aAAa,EAAE,QAAQ,CAAC,aAAa;qBACtC,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,oCAAoC,EACpC;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;KAChG,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QAChB,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAC1C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,cAAc,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;wBACnC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;4BACZ,WAAW,EAAE,CAAC,CAAC,WAAW;4BAC1B,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;yBACtB,CAAC,CAAC;qBACJ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,gBAAgB;IAChB,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,cAAc,EACd,uDAAuD,EACvD;QACE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;KACxD,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACpE;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,iCAAiC,EACjC;QACE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KACzD,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtE;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,yBAAyB,EACzB,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC;QACxC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,4CAA4C,EAC5C,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,CAAC,CAAC,qBAAqB,EAAE,CAAC;QACxC,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBACrC;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,iCAAiC;IACjC,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,qCAAqC,EACrC;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC7D,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KACnD,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,IAAA,gCAAqB,EAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,IAAI;wBACb,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,SAAS,EAAE,MAAM,CAAC,SAAS;qBAC5B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,kDAAkD,EAClD;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KACzE,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAmB,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,eAAe;wBACjD,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;wBACjC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;qBAC/C,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,8CAA8C,EAC9C;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7C,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KACrG,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAmB,EAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;wBAC1C,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;qBAC3C,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,4CAA4C,EAC5C;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChD,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KACxG,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAgB,EAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACrD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,2CAA2C,EAC3C;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7C,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KACvG,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAiB,EAAC,GAAG,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,cAAc,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;qBAC1C,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,eAAe,EACf,mDAAmD,EACnD;QACE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC5D,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAChE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC7D,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KAC/D,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACvE,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAe,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,eAAe,EAAE,MAAM,CAAC,QAAQ,EAAE,eAAe;wBACjD,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO;wBACjC,YAAY,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;qBACpD,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,0BAA0B;IAC1B,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,cAAc,EACd,6CAA6C,EAC7C;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KACvD,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrB,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAa,EAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;wBAC3B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;wBAC7B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;wBAC7B,QAAQ,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;wBAClD,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,gDAAgD,EAChD;QACE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;QACzG,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KAChE,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1B,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC,OAAO,EAAE,IAAI,IAAI,aAAa,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAc,EAAC,KAAK,CAAC,CAAC;QAC3C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK;wBAC3B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;wBAC7B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM;wBAC7B,QAAQ,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;wBAClD,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,aAAa,EACb,yCAAyC,EACzC;QACE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAClD,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC7D,SAAS,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;KAC1E,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;QACvC,MAAM,QAAQ,GAAe;YAC3B,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBAC/B,WAAW;gBACX,MAAM,EAAE,SAAiC;aAC1C,CAAC,CAAC;SACJ,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAA,qBAAU,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,SAAS,IAAI,KAAK,EAAE,CAAC,CAAC;QAC7E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,IAAI;wBACtC,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;wBAC7C,OAAO,EAAE,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACxC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,WAAW;4BACxB,KAAK,EAAE,CAAC,CAAC,KAAK;4BACd,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,oBAAoB,IAAI,eAAe;yBACtE,CAAC,CAAC;qBACJ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,yDAAyD,EACzD;QACE,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC3D,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;QACnF,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KACxF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;QACzC,MAAM,KAAK,GAAG,IAAA,2BAAgB,EAAC,WAAW,EAAE,qBAAqB,CAAC,CAAC;QACnE,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAgB,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC;QACtF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;wBACrC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe;wBAC1C,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,eAAe;wBAC1C,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,UAAU;wBACrC,gBAAgB,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;wBACvE,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACtC,IAAI,EAAE,CAAC,CAAC,QAAQ;4BAChB,cAAc,EAAE,CAAC,CAAC,cAAc;4BAChC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;4BAC9D,SAAS,EAAE,GAAG,CAAC,CAAC,cAAc,GAAG;yBAClC,CAAC,CAAC;qBACJ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,cAAc,EACd,uCAAuC,EACvC;QACE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACzD,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QACnE,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;KAChF,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACzC,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAmB,EAAC,OAAO,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3E,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;wBACnC,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;wBACtC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,aAAa;wBAC5C,eAAe,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;wBACjE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACvC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;4BACf,QAAQ,EAAE,CAAC,CAAC,QAAQ;4BACpB,MAAM,EAAE,CAAC,CAAC,MAAM;yBACjB,CAAC,CAAC;qBACJ,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,WAAW,EACX,gDAAgD,EAChD;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QAC3D,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QAC9E,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KAClF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACnC,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAA,mBAAQ,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;wBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;qBAC/B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,qCAAqC,EACrC;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7C,cAAc,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;QAC/E,OAAO,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACjE,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC5E,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QACpD,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAY,EAAC,CAAC,EAAE,GAAG,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAClF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,0DAA0D,EAC1D;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QAC9C,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC/C,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACnE,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QAChC,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAe,EAAC;YACnC,QAAQ,EAAE,GAAG;YACb,IAAI;YACJ,QAAQ;SACT,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,gBAAgB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;wBACxC,OAAO,EAAE,MAAM,CAAC,OAAO;qBACxB,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,qCAAqC,EACrC;QACE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0EAA0E,CAAC;KACxG,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,MAAM,CAAC,GAAG,MAAM,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAmB,EAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACpD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,2BAA2B,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;iBAChG;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,8BAA8B;IAC9B,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,eAAe,EACf,wCAAwC,EACxC;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAC7D,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAClD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;KAC7E,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;QAC5B,MAAM,MAAM,GAAG,MAAM,IAAA,qCAA0B,EAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,IAAI,EAAE,MAAM,CAAC,IAAI;wBACjB,GAAG,EAAE,MAAM,CAAC,GAAG;wBACf,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;wBACvB,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;wBACvB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;wBACzB,GAAG,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG;qBACxB,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,gDAAgD,EAChD;QACE,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC7C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACxE,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KACrF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,MAAM,IAAA,sCAA2B,EAAC,GAAG,EAAE,YAAY,EAAE;YAClE,UAAU,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE;SAClC,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;wBACrC,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI;qBAC/B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,mDAAmD,EACnD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,eAAe,GAAG,MAAM,IAAA,8BAAmB,GAAE,CAAC;QACpD,MAAM,aAAa,GAAG,MAAM,IAAA,mCAAwB,GAAE,CAAC;QACvD,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,MAAM,EAAE,eAAe;wBACvB,WAAW,EAAE,aAAa;qBAC3B,EAAE,IAAI,EAAE,CAAC,CAAC;iBACZ;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,IAAI,kBAAS,CAAC;QAC3B,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IACH,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAC7B,GAAoB,EACpB,GAAmB,EACnB,SAAwC;IAExC,cAAc;IACd,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAClD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,4BAA4B,CAAC,CAAC;IAC5E,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,8BAA8B,CAAC,CAAC;IAC9E,GAAG,CAAC,SAAS,CAAC,+BAA+B,EAAE,gBAAgB,CAAC,CAAC;IAEjE,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvD,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB;IACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,SAAS,CAAC;IAC3C,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,WAAW,CAAC;IAEhE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,SAAS,WAAW,EAAE,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAG,IAAA,wBAAY,EAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAElE,wBAAwB;QACxB,IAAI,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;gBACrB,IAAI,EAAE,UAAU;gBAChB,OAAO,EAAE,OAAO;gBAChB,WAAW,EAAE,0DAA0D;gBACvE,YAAY,EAAE,MAAM;gBACpB,YAAY,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,aAAa,CAAC;aAC5F,CAAC,CAAC,CAAC;YACJ,OAAO;QACT,CAAC;QAED,eAAe;QACf,IAAI,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;YACpD,wBAAwB;YACxB,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,gBAAgB,CAAuB,CAAC;YAEtE,IAAI,SAAwC,CAAC;YAE7C,IAAI,WAAW,KAAK,UAAU,IAAI,SAAS,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzE,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,uBAAuB;gBACvB,SAAS,GAAG,IAAI,iDAA6B,CAAC;oBAC5C,kBAAkB,EAAE,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAA,wBAAU,GAAE,CAAC,CAAC,CAAC,SAAS;iBAChF,CAAC,CAAC;gBAEH,4BAA4B;gBAC5B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;gBACjC,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBAEhC,oCAAoC;gBACpC,IAAI,WAAW,KAAK,UAAU,EAAE,CAAC;oBAC/B,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC;oBACzC,IAAI,YAAY,EAAE,CAAC;wBACjB,UAAU,CAAC,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;wBACxC,SAAS,CAAC,OAAO,GAAG,GAAG,EAAE;4BACvB,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;wBAClC,CAAC,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,MAAM,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,sBAAsB;QACtB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE;QACjC,OAAO,CAAC,GAAG,CAAC,kDAAkD,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;QAC9E,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,IAAI,SAAS,CAAC,CAAC;QACvD,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;QACD,UAAU,CAAC,KAAK,EAAE,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,2BAA2B;AAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,CAAC;IACtD,oBAAoB,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"mcp-server-remote.js","sourceRoot":"","sources":["../src/mcp-server-remote.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ # Auth0 OAuth Setup for CBrowser MCP Server
2
+
3
+ This guide walks you through setting up Auth0 authentication for the CBrowser Remote MCP Server, enabling integration with claude.ai's custom connector feature.
4
+
5
+ ## Quick Start
6
+
7
+ ### 1. Create Auth0 Account
8
+
9
+ 1. Go to [auth0.com](https://auth0.com) and sign up (free tier works)
10
+ 2. Create a new tenant (e.g., `cbrowser` or use your existing tenant)
11
+
12
+ ### 2. Create an API
13
+
14
+ 1. Go to **Applications → APIs**
15
+ 2. Click **+ Create API**
16
+ 3. Configure:
17
+ - **Name:** `CBrowser MCP API`
18
+ - **Identifier:** `https://cbrowser-mcp.wyldfyre.ai` (your server URL)
19
+ - **Signing Algorithm:** RS256
20
+ 4. Click **Create**
21
+
22
+ ### 3. Create an Application (Static Registration)
23
+
24
+ For secure integration, we use static client registration:
25
+
26
+ 1. Go to **Applications → Applications**
27
+ 2. Click **+ Create Application**
28
+ 3. Configure:
29
+ - **Name:** `Claude.ai MCP Client`
30
+ - **Type:** Regular Web Application
31
+ 4. Click **Create**
32
+ 5. In Settings tab, configure:
33
+ - **Allowed Callback URLs:**
34
+ ```
35
+ https://claude.ai/api/mcp/auth_callback,
36
+ https://claude.com/api/mcp/auth_callback
37
+ ```
38
+ - **Allowed Web Origins:** `https://claude.ai, https://claude.com`
39
+ 6. Save Changes
40
+ 7. Note down:
41
+ - **Domain** (e.g., `your-tenant.auth0.com`)
42
+ - **Client ID**
43
+ - **Client Secret**
44
+
45
+ ### 4. Configure MCP Server
46
+
47
+ Add these environment variables to your systemd service:
48
+
49
+ ```bash
50
+ sudo nano /etc/systemd/system/cbrowser-mcp.service
51
+ ```
52
+
53
+ Add under `[Service]`:
54
+
55
+ ```ini
56
+ Environment=AUTH0_DOMAIN=your-tenant.auth0.com
57
+ Environment=AUTH0_AUDIENCE=https://cbrowser-mcp.wyldfyre.ai
58
+ Environment=AUTH0_CLIENT_ID=your-client-id
59
+ ```
60
+
61
+ Reload and restart:
62
+
63
+ ```bash
64
+ sudo systemctl daemon-reload
65
+ sudo systemctl restart cbrowser-mcp
66
+ ```
67
+
68
+ ### 5. Verify Setup
69
+
70
+ ```bash
71
+ # Check protected resource metadata
72
+ curl https://cbrowser-mcp.wyldfyre.ai/.well-known/oauth-protected-resource
73
+
74
+ # Should return:
75
+ {
76
+ "resource": "https://cbrowser-mcp.wyldfyre.ai",
77
+ "authorization_servers": ["https://your-tenant.auth0.com"],
78
+ "bearer_methods_supported": ["header"],
79
+ "scopes_supported": ["openid", "profile", "cbrowser:read", "cbrowser:write"]
80
+ }
81
+ ```
82
+
83
+ ### 6. Connect from Claude.ai
84
+
85
+ 1. Go to [claude.ai](https://claude.ai)
86
+ 2. Open **Settings → Connectors**
87
+ 3. Click **Add custom connector**
88
+ 4. Enter: `https://cbrowser-mcp.wyldfyre.ai/mcp`
89
+ 5. Claude will:
90
+ - Fetch the OAuth metadata from `/.well-known/oauth-protected-resource`
91
+ - Redirect you to Auth0 for authentication
92
+ - Exchange tokens and connect
93
+
94
+ ---
95
+
96
+ ## Architecture
97
+
98
+ ```
99
+ ┌─────────────────┐ ┌────────────────┐ ┌─────────────────┐
100
+ │ Claude.ai │────▶│ Auth0 │────▶│ CBrowser MCP │
101
+ │ │ │ │ │ Server │
102
+ │ 1. Discover │ │ 2. Authorize │ │ │
103
+ │ OAuth metadata │ │ 3. Get token │ │ 4. Validate │
104
+ │ │ │ │ │ JWT │
105
+ └─────────────────┘ └────────────────┘ └─────────────────┘
106
+ ```
107
+
108
+ ## Flow Details
109
+
110
+ 1. **Discovery**: Claude fetches `/.well-known/oauth-protected-resource` to find Auth0
111
+ 2. **Authorization**: User is redirected to Auth0 login
112
+ 3. **Token Exchange**: Auth0 issues JWT access token
113
+ 4. **API Access**: Claude sends requests with `Authorization: Bearer <jwt>`
114
+ 5. **Validation**: CBrowser validates JWT against Auth0 JWKS
115
+
116
+ ---
117
+
118
+ ## Environment Variables
119
+
120
+ | Variable | Required | Description |
121
+ |----------|----------|-------------|
122
+ | `AUTH0_DOMAIN` | Yes | Your Auth0 tenant domain (e.g., `your-tenant.auth0.com`) |
123
+ | `AUTH0_AUDIENCE` | Yes | API identifier (your server URL) |
124
+ | `AUTH0_CLIENT_ID` | No | Client ID for static registration info |
125
+
126
+ ---
127
+
128
+ ## Scopes
129
+
130
+ The server supports these OAuth scopes:
131
+
132
+ | Scope | Description |
133
+ |-------|-------------|
134
+ | `openid` | OpenID Connect authentication |
135
+ | `profile` | User profile information |
136
+ | `cbrowser:read` | Read-only access to CBrowser tools |
137
+ | `cbrowser:write` | Full access to CBrowser tools |
138
+
139
+ ---
140
+
141
+ ## Troubleshooting
142
+
143
+ ### "Invalid token" errors
144
+
145
+ 1. Check Auth0 domain is correct
146
+ 2. Verify audience matches exactly (including trailing slash if needed)
147
+ 3. Check token hasn't expired
148
+
149
+ ### "OAuth not configured" response
150
+
151
+ 1. Ensure `AUTH0_DOMAIN` and `AUTH0_AUDIENCE` are set
152
+ 2. Restart the service after config changes
153
+
154
+ ### Claude.ai can't connect
155
+
156
+ 1. Verify callback URLs include both `claude.ai` and `claude.com`
157
+ 2. Check CORS is working (test with browser dev tools)
158
+ 3. Ensure `/.well-known/oauth-protected-resource` is accessible
159
+
160
+ ### Rate limit errors (429)
161
+
162
+ Auth0 free tier has strict rate limits. CBrowser caches validated tokens for 30 minutes to avoid hitting these limits. If you're still seeing rate limits:
163
+
164
+ 1. Upgrade to Auth0 paid tier
165
+ 2. Reduce concurrent users
166
+
167
+ ### Opaque token instead of JWT
168
+
169
+ If Auth0 returns an opaque (encrypted) token instead of a JWT, CBrowser validates it via Auth0's `/userinfo` endpoint. This works but:
170
+
171
+ 1. Ensure API Identifier in Auth0 exactly matches your audience (including trailing slash)
172
+ 2. Check the Application is authorized for the API in Auth0
173
+
174
+ ---
175
+
176
+ ## Security Best Practices
177
+
178
+ 1. **Use static registration** - Don't enable open DCR without IP restrictions
179
+ 2. **Restrict callback URLs** - Only allow Claude's official callbacks
180
+ 3. **Monitor logs** - Check Auth0 logs for unauthorized access attempts
181
+ 4. **Rotate secrets** - Periodically rotate client secrets
182
+ 5. **Use scopes** - Implement scope-based access control for sensitive tools
183
+
184
+ ---
185
+
186
+ ## Dual Authentication
187
+
188
+ The server supports both API keys and OAuth simultaneously:
189
+
190
+ - **API Key**: For Claude Code CLI and programmatic access
191
+ - **OAuth**: For claude.ai web interface
192
+
193
+ Both can be enabled at the same time. The server checks OAuth JWT first, then falls back to API key.
194
+
195
+ ---
196
+
197
+ ## Related Documentation
198
+
199
+ - [Auth0 MCP Documentation](https://auth0.com/ai/docs/mcp/)
200
+ - [MCP Authorization Spec](https://spec.modelcontextprotocol.io/specification/architecture/transports/)
201
+ - [RFC 9728 - OAuth Protected Resource Metadata](https://datatracker.ietf.org/doc/html/rfc9728)
@@ -1,6 +1,6 @@
1
1
  # Remote MCP Server Deployment Guide
2
2
 
3
- Deploy CBrowser as a remote MCP server for claude.ai custom connectors. This allows your entire team to use CBrowser through Claude without local installation.
3
+ Deploy CBrowser (Cognitive Browser) as a remote MCP server for claude.ai custom connectors. This allows your entire team to use CBrowser through Claude without local installation.
4
4
 
5
5
  ## Architecture Overview
6
6
 
@@ -114,6 +114,11 @@ Environment=HOST=127.0.0.1
114
114
  Environment=MCP_SESSION_MODE=stateless
115
115
  Environment=CBROWSER_DATA_DIR=/home/YOUR_USERNAME/.cbrowser
116
116
 
117
+ # Authentication (optional - remove to allow open access)
118
+ # Generate a secure key: openssl rand -hex 32
119
+ Environment=MCP_API_KEY=your-secure-api-key-here
120
+ # Or use multiple keys: Environment=MCP_API_KEYS=key1,key2,key3
121
+
117
122
  # Security hardening (optional but recommended)
118
123
  NoNewPrivileges=yes
119
124
  ProtectSystem=strict
@@ -290,7 +295,7 @@ Create a page rule to bypass caching:
290
295
 
291
296
  ```bash
292
297
  curl https://cbrowser-mcp.yourdomain.com/health
293
- # {"status":"ok","version":"7.4.2"}
298
+ # {"status":"ok","version":"7.4.6","auth":true,"auth_methods":{"api_key":true,"oauth":true}}
294
299
  ```
295
300
 
296
301
  ### Info Endpoint
@@ -312,14 +317,34 @@ curl -X POST https://cbrowser-mcp.yourdomain.com/mcp \
312
317
 
313
318
  ## Step 6: Connect to Claude.ai
314
319
 
315
- 1. Go to [claude.ai](https://claude.ai)
316
- 2. Open **Settings → Integrations → Custom MCP Servers**
317
- 3. Add new connector:
318
- - **Name:** CBrowser
319
- - **URL:** `https://cbrowser-mcp.yourdomain.com/mcp`
320
- 4. Click **Connect**
320
+ ### Option A: With Auth0 OAuth (Recommended)
321
+
322
+ For secure authentication with claude.ai, set up Auth0 OAuth:
323
+
324
+ 1. See the [Auth0 Setup Guide](AUTH0-SETUP.md) to configure Auth0
325
+ 2. Add Auth0 environment variables to your systemd service:
326
+ ```ini
327
+ Environment=AUTH0_DOMAIN=your-tenant.auth0.com
328
+ Environment=AUTH0_AUDIENCE=https://cbrowser-mcp.yourdomain.com/
329
+ ```
330
+ 3. Restart the service: `sudo systemctl restart cbrowser-mcp`
331
+ 4. Go to [claude.ai](https://claude.ai) → **Settings → Connectors**
332
+ 5. Click **Add Custom Connector**
333
+ 6. Enter URL: `https://cbrowser-mcp.yourdomain.com/mcp`
334
+ 7. Enter your Auth0 **Client ID** and **Client Secret** when prompted
335
+ 8. Complete the OAuth login flow
336
+
337
+ ### Option B: Open Access (Public Demo)
321
338
 
322
- You should see 31 CBrowser tools become available in Claude.
339
+ For a public demo server without authentication:
340
+
341
+ 1. Remove `MCP_API_KEY` from your systemd service
342
+ 2. Remove `AUTH0_*` variables
343
+ 3. Add rate limiting in nginx (see Security section)
344
+ 4. Go to [claude.ai](https://claude.ai) → **Settings → Connectors**
345
+ 5. Add URL: `https://cbrowser-mcp.yourdomain.com/mcp`
346
+
347
+ You should see 31+ CBrowser tools become available in Claude.
323
348
 
324
349
  ---
325
350
 
@@ -335,13 +360,72 @@ sudo ufw allow 443/tcp # HTTPS
335
360
  sudo ufw enable
336
361
  ```
337
362
 
338
- ### Authentication (Future)
363
+ ### Authentication (v7.4.6+)
364
+
365
+ CBrowser Remote MCP Server supports two authentication methods:
366
+
367
+ #### Method 1: Auth0 OAuth (for claude.ai)
368
+
369
+ Claude.ai requires OAuth 2.1 authentication. Set up Auth0:
370
+
371
+ ```bash
372
+ # Auth0 OAuth (enables claude.ai login)
373
+ Environment=AUTH0_DOMAIN=your-tenant.auth0.com
374
+ Environment=AUTH0_AUDIENCE=https://cbrowser-mcp.yourdomain.com/
375
+ ```
376
+
377
+ See [Auth0 Setup Guide](AUTH0-SETUP.md) for full configuration.
378
+
379
+ **OAuth Endpoints:**
380
+ - `/.well-known/oauth-protected-resource` - OAuth metadata discovery
381
+ - `/mcp` - MCP endpoint (requires valid JWT)
382
+
383
+ #### Method 2: API Key (for Claude Code CLI)
384
+
385
+ For programmatic access and Claude Code CLI:
386
+
387
+ ```bash
388
+ # Single API key
389
+ Environment=MCP_API_KEY=your-secure-key
390
+
391
+ # Multiple API keys (for different users/services)
392
+ Environment=MCP_API_KEYS=user1-key,user2-key,service-key
393
+ ```
394
+
395
+ **Generate a secure key:**
396
+
397
+ ```bash
398
+ openssl rand -hex 32
399
+ ```
400
+
401
+ **Client usage:**
402
+
403
+ ```bash
404
+ # Bearer token (recommended)
405
+ curl -H "Authorization: Bearer your-api-key" https://your-server/mcp
406
+
407
+ # X-API-Key header (alternative)
408
+ curl -H "X-API-Key: your-api-key" https://your-server/mcp
409
+ ```
410
+
411
+ #### Dual Authentication
412
+
413
+ Both methods can be enabled simultaneously:
414
+ - **OAuth** - For claude.ai web interface
415
+ - **API Key** - For Claude Code CLI and scripts
416
+
417
+ **Public Endpoints (no auth required):**
418
+ - `/health` - Server health status
419
+ - `/info` - Server information
420
+ - `/.well-known/oauth-protected-resource` - OAuth metadata
339
421
 
340
- The current MCP server is open. For production with sensitive data:
422
+ **Protected Endpoints:**
423
+ - `/mcp` - MCP endpoint (requires valid auth)
341
424
 
342
- 1. Use Cloudflare Access for authentication
343
- 2. Or add API key validation (coming in future version)
344
- 3. Or restrict to IP whitelist in nginx
425
+ **Additional security layers:**
426
+ 1. Rate limiting in nginx
427
+ 2. Cloudflare WAF rules
428
+ 3. IP whitelisting
345
429
 
346
430
  ### Rate Limiting
347
431
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cbrowser",
3
- "version": "7.4.3",
3
+ "version": "7.4.6",
4
4
  "description": "AI-powered browser automation with constitutional safety, AI visual regression, persona testing, and natural language test suites. Modular architecture for visual, testing, analysis, and performance modules.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -89,6 +89,7 @@
89
89
  },
90
90
  "dependencies": {
91
91
  "@modelcontextprotocol/sdk": "^1.25.3",
92
+ "jose": "^5.2.0",
92
93
  "playwright": "^1.40.0",
93
94
  "zod": "^3.25.76"
94
95
  },