@syncular/server-hono 0.0.6-206 → 0.0.6-211

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
@@ -20,6 +20,27 @@ npm install @syncular/console
20
20
  - API reference: https://syncular.dev/docs/api
21
21
  - Operations & console: https://syncular.dev/docs/build/operations
22
22
 
23
+ ## Sync CORS
24
+
25
+ `createSyncRoutes` and `createSyncServer` accept a simple sync-route CORS allowlist:
26
+
27
+ ```ts
28
+ const { syncRoutes } = createSyncServer({
29
+ db,
30
+ dialect,
31
+ sync,
32
+ routes: {
33
+ cors: {
34
+ allowedOrigins: ['https://app.example.com'],
35
+ },
36
+ },
37
+ });
38
+ ```
39
+
40
+ Use `cors.resolveOrigin` only when you need dynamic policy logic.
41
+ When `routes.websocket.allowedOrigins` is unset, realtime websocket upgrades
42
+ inherit `routes.cors.allowedOrigins`.
43
+
23
44
  ## Links
24
45
 
25
46
  - GitHub: https://github.com/syncular/syncular
@@ -43,6 +43,7 @@ export interface SyncServerResult {
43
43
  /** Console event emitter (if console enabled) */
44
44
  consoleEventEmitter?: ConsoleEventEmitter;
45
45
  }
46
+ export declare function resolveDefaultWebSocketAllowedOrigins(routes: SyncRoutesConfigWithRateLimit | undefined): string[] | '*' | undefined;
46
47
  /**
47
48
  * Create a simplified sync server with sync and optional console routes.
48
49
  *
@@ -1 +1 @@
1
- {"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACT,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAEL,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,KAAK,cAAc,EACnB,KAAK,6BAA6B,EACnC,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,iBAAiB,CAChC,EAAE,SAAS,UAAU,GAAG,UAAU,EAClC,IAAI,SAAS,cAAc,GAAG,cAAc,EAC5C,CAAC,SAAS,SAAS,GAAG,SAAS;IAE/B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEf,0BAA0B;IAC1B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAE9B,+CAA+C;IAC/C,IAAI,EAAE,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjC,iEAAiE;IACjE,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC,sDAAsD;IACtD,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,6BAA6B,CAAC;IAEvC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;OAGG;IACH,OAAO,CAAC,EACJ,KAAK,GACL,CAAC;QACC,0FAA0F;QAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,oBAAoB,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,UAAU,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAChD,2CAA2C;IAC3C,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IACvD,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,UAAU,GAAG,UAAU,EAClC,IAAI,SAAS,cAAc,GAAG,cAAc,EAC5C,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,OAAO,EAAE,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,gBAAgB,CAuG3D"}
1
+ {"version":3,"file":"create-server.d.ts","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,SAAS,EACT,UAAU,EACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAEL,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAEhB,KAAK,cAAc,EACnB,KAAK,6BAA6B,EACnC,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,iBAAiB,CAChC,EAAE,SAAS,UAAU,GAAG,UAAU,EAClC,IAAI,SAAS,cAAc,GAAG,cAAc,EAC5C,CAAC,SAAS,SAAS,GAAG,SAAS;IAE/B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEf,0BAA0B;IAC1B,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAE9B,+CAA+C;IAC/C,IAAI,EAAE,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAEjC,iEAAiE;IACjE,YAAY,CAAC,EAAE,oBAAoB,CAAC;IAEpC,sDAAsD;IACtD,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,6BAA6B,CAAC;IAEvC,sCAAsC;IACtC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;OAGG;IACH,OAAO,CAAC,EACJ,KAAK,GACL,CAAC;QACC,0FAA0F;QAC1F,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,oBAAoB,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,2BAA2B;IAC3B,UAAU,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;IAChD,2CAA2C;IAC3C,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;IACvD,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAED,wBAAgB,qCAAqC,CACnD,MAAM,EAAE,6BAA6B,GAAG,SAAS,GAChD,MAAM,EAAE,GAAG,GAAG,GAAG,SAAS,CAE5B;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,gBAAgB,CAC9B,EAAE,SAAS,UAAU,GAAG,UAAU,EAClC,IAAI,SAAS,cAAc,GAAG,cAAc,EAC5C,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,OAAO,EAAE,iBAAiB,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,gBAAgB,CA0G3D"}
@@ -8,6 +8,9 @@
8
8
  import { createConsoleEventEmitter, createConsoleRoutes, createTokenAuthenticator, } from './console/routes.js';
9
9
  import { isBenignConsoleSchemaError } from './console/schema-errors.js';
10
10
  import { createSyncRoutes, getSyncWebSocketConnectionManager, } from './routes.js';
11
+ export function resolveDefaultWebSocketAllowedOrigins(routes) {
12
+ return routes?.websocket?.allowedOrigins ?? routes?.cors?.allowedOrigins;
13
+ }
11
14
  /**
12
15
  * Create a simplified sync server with sync and optional console routes.
13
16
  *
@@ -55,6 +58,7 @@ export function createSyncServer(options) {
55
58
  throw error;
56
59
  })
57
60
  : undefined;
61
+ const defaultWebSocketAllowedOrigins = resolveDefaultWebSocketAllowedOrigins(routes);
58
62
  // Create sync routes
59
63
  const syncRoutes = createSyncRoutes({
60
64
  db,
@@ -71,6 +75,7 @@ export function createSyncServer(options) {
71
75
  websocket: upgradeWebSocket
72
76
  ? {
73
77
  ...routes?.websocket,
78
+ allowedOrigins: defaultWebSocketAllowedOrigins,
74
79
  enabled: true,
75
80
  upgradeWebSocket,
76
81
  }
@@ -101,7 +106,7 @@ export function createSyncServer(options) {
101
106
  maxMessageBytes: routes?.websocket?.maxMessageBytes,
102
107
  maxMessagesPerWindow: routes?.websocket?.maxMessagesPerWindow,
103
108
  messageRateWindowMs: routes?.websocket?.messageRateWindowMs,
104
- allowedOrigins: routes?.websocket?.allowedOrigins,
109
+ allowedOrigins: defaultWebSocketAllowedOrigins,
105
110
  },
106
111
  }),
107
112
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create-server.js","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAKrE,OAAO,EACL,gBAAgB,EAChB,iCAAiC,GAGlC,MAAM,UAAU,CAAC;AAiDlB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,gBAAgB,CAI9B,OAAuC,EAAoB;IAC3D,MAAM,EACJ,EAAE,EACF,OAAO,EACP,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,OAAO,EAAE,aAAa,GACvB,GAAG,OAAO,CAAC;IAEZ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,qBAAqB,GACzB,aAAa,KAAK,KAAK,IAAI,aAAa,KAAK,SAAS;QACpD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,aAAa,CAAC;IACpB,MAAM,gBAAgB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,gBAAgB;QACnC,CAAC,CAAC,CAAC,qBAAqB,EAAE,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QAClE,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,gBAAgB;QAC1C,CAAC,CAAC,yBAAyB,EAAE;QAC7B,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,kBAAkB,GACtB,gBAAgB,IAAI,OAAO,CAAC,mBAAmB;QAC7C,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAC/C,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,OAAO;YACT,CAAC;YACD,MAAM,KAAK,CAAC;QAAA,CACb,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IAEhB,qBAAqB;IACrB,MAAM,UAAU,GAAG,gBAAgB,CAAC;QAClC,EAAE;QACF,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,KAAK,EAAE,OAAO,EAAwB,EAAE,CACpD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;QACpC,YAAY;QACZ,UAAU;QACV,kBAAkB,EAAE,mBAAmB;QACvC,kBAAkB;QAClB,IAAI,EAAE;YACJ,GAAG,MAAM;YACT,SAAS,EAAE,gBAAgB;gBACzB,CAAC,CAAC;oBACE,GAAG,MAAM,EAAE,SAAS;oBACpB,OAAO,EAAE,IAAI;oBACb,gBAAgB;iBACjB;gBACH,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE;SACvB;KACF,CAAC,CAAC;IAEH,2DAA2D;IAC3D,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC3B,OAAO,EAAE,UAAU,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,EAAE;QACF,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,YAAY,EAAE,wBAAwB,CAAC,YAAY,CAAC;QACpD,WAAW,EAAE,qBAAqB,CAAC,WAAW;QAC9C,YAAY,EAAE,mBAAmB;QACjC,kBAAkB;QAClB,mBAAmB,EAAE,iCAAiC,CAAC,UAAU,CAAC;QAClE,OAAO,EAAE,qBAAqB,CAAC,OAAO;QACtC,WAAW,EAAE,qBAAqB,CAAC,WAAW;QAC9C,UAAU,EAAE,qBAAqB,CAAC,UAAU;QAC5C,GAAG,CAAC,gBAAgB,IAAI;YACtB,SAAS,EAAE;gBACT,OAAO,EAAE,IAAI;gBACb,gBAAgB;gBAChB,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB;gBAC3D,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe;gBACnD,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB;gBAC7D,mBAAmB,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB;gBAC3D,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc;aAClD;SACF,CAAC;KACH,CAAC,CAAC;IAEH,OAAO;QACL,UAAU;QACV,aAAa;QACb,mBAAmB;KACpB,CAAC;AAAA,CACH"}
1
+ {"version":3,"file":"create-server.js","sourceRoot":"","sources":["../src/create-server.ts"],"names":[],"mappings":"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"}
package/dist/routes.d.ts CHANGED
@@ -63,6 +63,29 @@ export interface SyncWebSocketConfig {
63
63
  allowedOrigins?: string[] | '*';
64
64
  }
65
65
  export interface SyncRoutesConfigWithRateLimit {
66
+ /**
67
+ * Optional browser CORS handling for sync routes.
68
+ * When configured, sync route responses and preflights include matching
69
+ * CORS headers directly from the generated sync app.
70
+ */
71
+ cors?: {
72
+ /**
73
+ * Simple exact-match origin allowlist.
74
+ * Use `'*'` to allow all origins.
75
+ * When omitted, provide `resolveOrigin` for custom logic.
76
+ */
77
+ allowedOrigins?: string[] | '*';
78
+ /**
79
+ * Advanced origin resolver for dynamic CORS decisions.
80
+ * When both `allowedOrigins` and `resolveOrigin` are provided,
81
+ * `resolveOrigin` takes precedence.
82
+ */
83
+ resolveOrigin?: (origin: string | undefined, context: Context) => string | null | Promise<string | null>;
84
+ allowCredentials?: boolean;
85
+ allowHeaders?: string[];
86
+ allowMethods?: string[];
87
+ maxAgeSeconds?: number;
88
+ };
66
89
  /**
67
90
  * Max commits per pull request.
68
91
  * Default: 100
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
package/dist/routes.js CHANGED
@@ -71,12 +71,68 @@ const auditCommitDetailResponseSchema = z.object({
71
71
  });
72
72
  const DEFAULT_REQUEST_PAYLOAD_SNAPSHOT_MAX_BYTES = 128 * 1024;
73
73
  const SNAPSHOT_SCOPES_HEADER = 'x-syncular-snapshot-scopes';
74
+ const DEFAULT_SYNC_CORS_ALLOW_HEADERS = [
75
+ 'Content-Type',
76
+ 'Authorization',
77
+ 'x-syncular-publishable-key',
78
+ SNAPSHOT_SCOPES_HEADER,
79
+ 'x-syncular-transport-path',
80
+ 'x-syncular-client-id',
81
+ 'sentry-trace',
82
+ 'baggage',
83
+ 'traceparent',
84
+ 'tracestate',
85
+ ];
86
+ const DEFAULT_SYNC_CORS_ALLOW_METHODS = [
87
+ 'GET',
88
+ 'POST',
89
+ 'PUT',
90
+ 'DELETE',
91
+ 'OPTIONS',
92
+ ];
93
+ function applySyncCorsHeaders(args) {
94
+ args.headers.set('Access-Control-Allow-Origin', args.allowedOrigin);
95
+ args.headers.set('Access-Control-Allow-Headers', args.allowHeaders.join(', '));
96
+ args.headers.set('Access-Control-Allow-Methods', args.allowMethods.join(', '));
97
+ args.headers.set('Access-Control-Max-Age', String(args.maxAgeSeconds));
98
+ if (args.allowedOrigin !== '*') {
99
+ args.headers.append('Vary', 'Origin');
100
+ if (args.allowCredentials) {
101
+ args.headers.set('Access-Control-Allow-Credentials', 'true');
102
+ }
103
+ }
104
+ }
105
+ function createSyncCorsOriginDeniedResponse(origin) {
106
+ return Response.json({
107
+ error: 'CORS_ORIGIN_NOT_ALLOWED',
108
+ message: `Origin ${origin} is not allowed for sync access.`,
109
+ }, { status: 403 });
110
+ }
111
+ async function resolveSyncCorsOrigin(args) {
112
+ const { config, origin, context } = args;
113
+ if (typeof config.resolveOrigin === 'function') {
114
+ return config.resolveOrigin(origin, context);
115
+ }
116
+ if (config.allowedOrigins === '*') {
117
+ return '*';
118
+ }
119
+ if (Array.isArray(config.allowedOrigins)) {
120
+ if (!origin) {
121
+ return null;
122
+ }
123
+ return config.allowedOrigins.includes(origin) ? origin : null;
124
+ }
125
+ return null;
126
+ }
74
127
  function createOpaqueId(prefix) {
75
128
  const randomPart = typeof crypto !== 'undefined' && 'randomUUID' in crypto
76
129
  ? crypto.randomUUID()
77
130
  : `${Date.now()}-${Math.random().toString(16).slice(2)}`;
78
131
  return `${prefix}-${randomPart}`;
79
132
  }
133
+ function readOriginHeader(c) {
134
+ return c.req.raw.headers.get('origin') ?? c.req.header('origin');
135
+ }
80
136
  function readRequestId(c) {
81
137
  const headerRequestId = c.req.header('x-request-id')?.trim();
82
138
  if (headerRequestId)
@@ -264,6 +320,7 @@ function emitConsoleLiveEvent(emitter, type, data) {
264
320
  }
265
321
  export function createSyncRoutes(options) {
266
322
  const routes = new Hono();
323
+ const config = options.sync ?? {};
267
324
  routes.onError((error, c) => {
268
325
  captureSyncException(error, {
269
326
  event: 'sync.route.unhandled',
@@ -272,8 +329,47 @@ export function createSyncRoutes(options) {
272
329
  });
273
330
  return c.text('Internal Server Error', 500);
274
331
  });
332
+ const corsConfig = config.cors;
333
+ if (corsConfig) {
334
+ routes.use('*', async (c, next) => {
335
+ const origin = readOriginHeader(c);
336
+ const allowedOrigin = await resolveSyncCorsOrigin({
337
+ config: corsConfig,
338
+ origin,
339
+ context: c,
340
+ });
341
+ if (origin && !allowedOrigin) {
342
+ return createSyncCorsOriginDeniedResponse(origin);
343
+ }
344
+ const resolvedOrigin = allowedOrigin ?? '*';
345
+ const allowHeaders = corsConfig.allowHeaders ?? DEFAULT_SYNC_CORS_ALLOW_HEADERS;
346
+ const allowMethods = corsConfig.allowMethods ?? DEFAULT_SYNC_CORS_ALLOW_METHODS;
347
+ const maxAgeSeconds = corsConfig.maxAgeSeconds ?? 86_400;
348
+ if (c.req.method === 'OPTIONS') {
349
+ const headers = new Headers();
350
+ applySyncCorsHeaders({
351
+ headers,
352
+ allowedOrigin: resolvedOrigin,
353
+ allowCredentials: corsConfig.allowCredentials ?? false,
354
+ allowHeaders,
355
+ allowMethods,
356
+ maxAgeSeconds,
357
+ });
358
+ return new Response(null, { status: 204, headers });
359
+ }
360
+ await next();
361
+ applySyncCorsHeaders({
362
+ headers: c.res.headers,
363
+ allowedOrigin: resolvedOrigin,
364
+ allowCredentials: corsConfig.allowCredentials ?? false,
365
+ allowHeaders,
366
+ allowMethods,
367
+ maxAgeSeconds,
368
+ });
369
+ return c.res;
370
+ });
371
+ }
275
372
  const handlerRegistry = createServerHandlerCollection(options.handlers);
276
- const config = options.sync ?? {};
277
373
  const maxPullLimitCommits = config.maxPullLimitCommits ?? 100;
278
374
  const maxSubscriptionsPerPull = config.maxSubscriptionsPerPull ?? 200;
279
375
  const maxPullLimitSnapshotRows = config.maxPullLimitSnapshotRows ?? 5000;
@@ -1417,6 +1513,10 @@ export function createSyncRoutes(options) {
1417
1513
  if (!auth)
1418
1514
  return c.json({ error: 'UNAUTHENTICATED' }, 401);
1419
1515
  if (!isWebSocketOriginAllowed(c, websocketConfig.allowedOrigins)) {
1516
+ const origin = readOriginHeader(c);
1517
+ if (origin && corsConfig) {
1518
+ return createSyncCorsOriginDeniedResponse(origin);
1519
+ }
1420
1520
  return c.json({ error: 'FORBIDDEN_ORIGIN' }, 403);
1421
1521
  }
1422
1522
  const partitionId = auth.partitionId ?? 'default';
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAE1B,qBAAqB,GAEtB,MAAM,gBAAgB,CAAC;AAaxB,OAAO,EAEL,6BAA6B,EAC7B,6BAA6B,EAC7B,mBAAmB,EACnB,cAAc,EAGd,cAAc,EACd,IAAI,EACJ,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,sCAAsC,EACtC,6BAA6B,GAC9B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,EAAe,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EACL,iBAAiB,EACjB,wBAAwB,GAEzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EAEjC,0BAA0B,GAC3B,MAAM,MAAM,CAAC;AAEd;;GAEG;AACH,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAAoC,CAAC;AAC/E,MAAM,sBAAsB,GAAG,IAAI,OAAO,EAAoB,CAAC;AA2M/D,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3B,CAAC,CAAC;AACH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACzD,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACtC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CACrC,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;CAC1C,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC7B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;CACxC,CAAC,CAAC;AAEH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAChC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IACvC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/C,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IACnB,MAAM,EAAE,wBAAwB;IAChC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;CACpC,CAAC,CAAC;AAEH,MAAM,0CAA0C,GAAG,GAAG,GAAG,IAAI,CAAC;AAC9D,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;AAO5D,MAAM,+BAA+B,GAAG;IACtC,cAAc;IACd,eAAe;IACf,4BAA4B;IAC5B,sBAAsB;IACtB,2BAA2B;IAC3B,sBAAsB;IACtB,cAAc;IACd,SAAS;IACT,aAAa;IACb,YAAY;CACb,CAAC;AAEF,MAAM,+BAA+B,GAAG;IACtC,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,SAAS;CACV,CAAC;AAEF,SAAS,oBAAoB,CAAC,IAO7B,EAAQ;IACP,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,8BAA8B,EAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7B,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,GAAG,CACd,8BAA8B,EAC9B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAC7B,CAAC;IACF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACvE,IAAI,IAAI,CAAC,aAAa,KAAK,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;AAAA,CACF;AAED,SAAS,kCAAkC,CAAC,MAAc,EAAY;IACpE,OAAO,QAAQ,CAAC,IAAI,CAClB;QACE,KAAK,EAAE,yBAAyB;QAChC,OAAO,EAAE,UAAU,MAAM,kCAAkC;KAC5D,EACD,EAAE,MAAM,EAAE,GAAG,EAAE,CAChB,CAAC;AAAA,CACH;AAED,KAAK,UAAU,qBAAqB,CAAC,IAIpC,EAA0B;IACzB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACzC,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,MAAM,CAAC,cAAc,KAAK,GAAG,EAAE,CAAC;QAClC,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;IAChE,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,SAAS,cAAc,CAAC,MAAc,EAAU;IAC9C,MAAM,UAAU,GACd,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM;QACrD,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE;QACrB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,OAAO,GAAG,MAAM,IAAI,UAAU,EAAE,CAAC;AAAA,CAClC;AAED,SAAS,gBAAgB,CAAC,CAAU,EAAsB;IACxD,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAAA,CAClE;AAED,SAAS,aAAa,CAAC,CAAU,EAAU;IACzC,MAAM,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC;IAC7D,IAAI,eAAe;QAAE,OAAO,eAAe,CAAC;IAC5C,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;AAAA,CAC9B;AAED,SAAS,mBAAmB,CAC1B,WAAsC,EACjB;IACrB,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,iDAAiD,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7E,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;IAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAAA,CAC5B;AAED,SAAS,sBAAsB,CAC7B,WAAsC,EACjB;IACrB,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,4CAA4C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxE,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;IAChD,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,CAAC;IAC/C,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAAA,CAC5B;AAED,SAAS,mBAAmB,CAC1B,KAAyB,EACzB,QAAgB,EACR;IACR,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAAA,CAC1B;AAED,SAAS,gBAAgB,CAAC,CAAU,EAAgB;IAClD,MAAM,WAAW,GAAG,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;IACrE,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,WAAW,GAAG,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IACzE,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAAA,CACxC;AAED,SAAS,eAAe,CACtB,IAA6B,EAC7B,GAAW,EACI;IACf,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAAA,CAC5C;AAED,SAAS,2BAA2B,CAClC,GAA4B,EACd;IACd,MAAM,aAAa,GACjB,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,YAAY,GAChB,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACpE,IAAI,aAAa,IAAI,YAAY,EAAE,CAAC;QAClC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC1D,CAAC;IAED,MAAM,WAAW,GACf,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,IAAI,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IAC7E,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAC3D,IAAI,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAEhD,MAAM,WAAW,GACf,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC;QACpC,eAAe,CAAC,GAAG,EAAE,aAAa,CAAC;QACnC,eAAe,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACvC,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC9D,IAAI,iBAAiB;QAAE,OAAO,iBAAiB,CAAC;IAEhD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAAA,CACxC;AAED,SAAS,uBAAuB,CAAC,UAAkB,EAAE,OAAe,EAAU;IAC5E,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC;IAC7C,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,cAAc,CAAC;IAC7C,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,UAAU,CAAC;IACzC,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,KAAK,OAAO,IAAI,OAAO,KAAK,UAAU;YAAE,OAAO,SAAS,CAAC;QACpE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AAAA,CAClB;AAED,SAAS,kBAAkB,CAAC,OAAgB,EAAiB;IAC3D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,SAAS;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7C,IAAI,MAAM,KAAK,OAAO;YAAE,SAAS;QACjC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AAAA,CACb;AAED,SAAS,oBAAoB,CAC3B,MAAyC,EACC;IAC1C,MAAM,OAAO,GAAsC,EAAE,CAAC;IACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACrB,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,KAAK;iBACrB,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;iBAC7D,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAAA,CACzD;AAED,SAAS,qBAAqB,CAAC,QAAgC,EAW7D;IACA,OAAO;QACL,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC;YAC1D,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAC7C,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAC9D,CAAC,CACF,CAAC;YACF,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC;YAC1D,MAAM,gBAAgB,GACpB,YAAY,CAAC,SAAS,EAAE,MAAM,CAC5B,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EACzD,CAAC,CACF,IAAI,CAAC,CAAC;YAET,OAAO;gBACL,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,SAAS,EAAE,YAAY,CAAC,SAAS;gBACjC,UAAU,EAAE,YAAY,CAAC,UAAU;gBACnC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM;gBACxC,WAAW;gBACX,aAAa;gBACb,gBAAgB;aACjB,CAAC;QAAA,CACH,CAAC;KACH,CAAC;AAAA,CACH;AAED,SAAS,aAAa,CAAC,QAAgC,EAAU;IAC/D,OAAO,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,EAAE,CAAC;QAChE,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,CAC5C,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAC9D,CAAC,CACF,CAAC;QACF,MAAM,YAAY,GAChB,YAAY,CAAC,SAAS,EAAE,MAAM,CAC5B,CAAC,iBAAiB,EAAE,QAAQ,EAAE,EAAE,CAC9B,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAC1C,CAAC,CACF,IAAI,CAAC,CAAC;QACT,OAAO,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;IAAA,CAC9C,EAAE,CAAC,CAAC,CAAC;AAAA,CACP;AAED,SAAS,uBAAuB,CAC9B,CAAU,EACV,WAA+B,EACW;IAC1C,MAAM,QAAQ,GAAG,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACrE,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,SAAS,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IACpC,OAAO,SAAS,CAAC,IAAI,CAAC;AAAA,CACvB;AAED,SAAS,qBAAqB,CAAC,KAAc,EAAE,QAAgB,EAAU;IACvE,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,UAAU,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAClC,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,SAAS,EAAE,IAAI;YACf,iBAAiB,EAAE,UAAU,CAAC,MAAM;YACpC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;SACvC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,SAAS,CAAC;YACpB,SAAS,EAAE,KAAK;YAChB,kBAAkB,EAAE,sCAAsC;SAC3D,CAAC,CAAC;IACL,CAAC;AAAA,CACF;AAED,SAAS,oBAAoB,CAC3B,OAQa,EACb,IAAkD,EAClD,IAA+D,EACzD;IACN,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,CAAC,IAAI,CAAC;QACX,IAAI;QACJ,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,IAAI,EAAE,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;KACjD,CAAC,CAAC;AAAA,CACJ;AAED,MAAM,UAAU,gBAAgB,CAI9B,OAA6C,EAAQ;IACrD,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;IAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,oBAAoB,CAAC,KAAK,EAAE;YAC1B,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM;YACpB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI;SACjB,CAAC,CAAC;QACH,OAAO,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;IAAA,CAC7C,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,aAAa,GAAG,MAAM,qBAAqB,CAAC;gBAChD,MAAM,EAAE,UAAU;gBAClB,MAAM;gBACN,OAAO,EAAE,CAAC;aACX,CAAC,CAAC;YAEH,IAAI,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC7B,OAAO,kCAAkC,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,cAAc,GAAG,aAAa,IAAI,GAAG,CAAC;YAC5C,MAAM,YAAY,GAChB,UAAU,CAAC,YAAY,IAAI,+BAA+B,CAAC;YAC7D,MAAM,YAAY,GAChB,UAAU,CAAC,YAAY,IAAI,+BAA+B,CAAC;YAC7D,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,IAAI,MAAM,CAAC;YAEzD,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;gBAC9B,oBAAoB,CAAC;oBACnB,OAAO;oBACP,aAAa,EAAE,cAAc;oBAC7B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,IAAI,KAAK;oBACtD,YAAY;oBACZ,YAAY;oBACZ,aAAa;iBACd,CAAC,CAAC;gBACH,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,MAAM,IAAI,EAAE,CAAC;YACb,oBAAoB,CAAC;gBACnB,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO;gBACtB,aAAa,EAAE,cAAc;gBAC7B,gBAAgB,EAAE,UAAU,CAAC,gBAAgB,IAAI,KAAK;gBACtD,YAAY;gBACZ,YAAY;gBACZ,aAAa;aACd,CAAC,CAAC;YACH,OAAO,CAAC,CAAC,GAAG,CAAC;QAAA,CACd,CAAC,CAAC;IACL,CAAC;IACD,MAAM,eAAe,GAAG,6BAA6B,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxE,MAAM,mBAAmB,GAAG,MAAM,CAAC,mBAAmB,IAAI,GAAG,CAAC;IAC9D,MAAM,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,IAAI,GAAG,CAAC;IACtE,MAAM,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,IAAI,IAAI,CAAC;IACzE,MAAM,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,IAAI,EAAE,CAAC;IACrE,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,IAAI,GAAG,CAAC;IAChE,MAAM,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;IAC/D,MAAM,8BAA8B,GAClC,uBAAuB,EAAE,OAAO;QAChC,uBAAuB,EAAE,QAAQ,KAAK,SAAS,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;IACjC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;IACrC,MAAM,kBAAkB,GAAG,mBAAmB,CAC5C,WAAW,EAAE,aAAa,EAC1B,CAAC,GAAG,EAAE,GAAG,IAAI,CACd,CAAC;IACF,MAAM,oBAAoB,GAAG,mBAAmB,CAC9C,aAAa,EAAE,aAAa,EAC5B,EAAE,GAAG,EAAE,GAAG,IAAI,CACf,CAAC;IACF,MAAM,cAAc,GAAG,aAAa,EAAE,OAAO,CAAC;IAC9C,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACtD,MAAM,2BAA2B,GAAG,kBAAkB,KAAK,SAAS,CAAC;IACrE,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;IAC9D,MAAM,oCAAoC,GACxC,yBAAyB,IAAI,8BAA8B,CAAC;IAC9D,MAAM,8BAA8B,GAAG,mBAAmB,CACxD,uBAAuB,EAAE,QAAQ,EACjC,0CAA0C,CAC3C,CAAC;IACF,MAAM,sBAAsB,GAAG,yBAAyB;QACtD,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB;YAC3B,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACtB,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QACjE,IAAI,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QACD,YAAY,CAAC;YACX,KAAK,EAAE,kCAAkC;YACzC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CAAC,CAAC;QACH,MAAM,KAAK,CAAC;IAAA,CACb,CAAC,CAAC;IAEH,4EAA4E;IAC5E,wDAAwD;IACxD,4EAA4E;IAE5E,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;IACzC,IAAI,eAAe,EAAE,OAAO,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;IACJ,CAAC;IAED,MAAM,mBAAmB,GAAG,eAAe,EAAE,OAAO;QAClD,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB;YAC5B,IAAI,0BAA0B,CAAC;gBAC7B,mBAAmB,EAAE,eAAe,CAAC,mBAAmB,IAAI,MAAM;aACnE,CAAC,CAAC;QACL,CAAC,CAAC,IAAI,CAAC;IAET,IAAI,mBAAmB,EAAE,CAAC;QACxB,sBAAsB,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC1D,CAAC;IAED,4EAA4E;IAC5E,iDAAiD;IACjD,4EAA4E;IAE5E,MAAM,mBAAmB,GAAG,MAAM,CAAC,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC;IACjE,MAAM,UAAU,GACd,MAAM,CAAC,QAAQ,EAAE,UAAU;QAC3B,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,YAAY,IAAI,MAAM;YACtD,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE;YACrB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9D,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,MAAM,mBAAmB,GAAG,CAC1B,GAAW,EACX,KAIC,EACD,EAAE,CAAC;QACH,IAAI,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC5C,sBAAsB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,YAAY,CAAC,KAAK,CAAC,CAAC;IAAA,CACrB,CAAC;IAEF,IAAI,aAAa,IAAI,CAAC,cAAc,EAAE,CAAC;QACrC,YAAY,CAAC;YACX,KAAK,EAAE,4BAA4B;YACnC,MAAM,EAAE,iBAAiB;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,MAAM,sBAAsB,GAAG,CAAC,GAI/B,EAAQ,EAAE,CAAC;QACV,IAAI,CAAC,WAAW,IAAI,CAAC,aAAa;YAAE,OAAO;QAE3C,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;YAChB,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE;wBAC/C,aAAa,EAAE,kBAAkB;wBACjC,OAAO,EAAE,WAAW,CAAC,OAAO;qBAC7B,CAAC,CAAC;oBACH,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;wBAChB,YAAY,CAAC;4BACX,KAAK,EAAE,iBAAiB;4BACxB,MAAM,EAAE,GAAG,CAAC,OAAO;4BACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;4BACtB,WAAW,EAAE,GAAG,CAAC,WAAW;4BAC5B,YAAY,EAAE,OAAO;yBACtB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,mBAAmB,CAAC,wBAAwB,EAAE;wBAC5C,KAAK,EAAE,wBAAwB;wBAC/B,MAAM,EAAE,GAAG,CAAC,OAAO;wBACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpC,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE;wBACpD,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,aAAa,EAAE,oBAAoB;wBACnC,OAAO,EAAE,cAAc;qBACxB,CAAC,CAAC;oBACH,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;wBAChB,YAAY,CAAC;4BACX,KAAK,EAAE,mBAAmB;4BAC1B,MAAM,EAAE,GAAG,CAAC,OAAO;4BACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;4BACtB,WAAW,EAAE,GAAG,CAAC,WAAW;4BAC5B,YAAY,EAAE,OAAO;yBACtB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,mBAAmB,CAAC,0BAA0B,EAAE;wBAC9C,KAAK,EAAE,0BAA0B;wBACjC,MAAM,EAAE,GAAG,CAAC,OAAO;wBACnB,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,WAAW,EAAE,GAAG,CAAC,WAAW;wBAC5B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QAAA,CACF,CAAC,EAAE,CAAC;IAAA,CACN,CAAC;IAEF,IAAI,mBAAmB,IAAI,mBAAmB,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,mBAAmB,CAAC,SAAS,CAC/C,CAAC,KAAwB,EAAE,EAAE,CAAC;YAC5B,KAAK,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAC/C,mBAAmB,CAAC,yCAAyC,EAAE;oBAC7D,KAAK,EAAE,yCAAyC;oBAChD,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAC7D,eAAe,EAAE,KAAK,CAAC,IAAI;iBAC5B,CAAC,CAAC;YAAA,CACJ,CAAC,CAAC;QAAA,CACJ,CACF,CAAC;QAEF,sBAAsB,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAqCD,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAAmB,EAAE,EAAE,CAAC;QACxD,IAAI,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;QAC1C,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,MAAM,cAAc,GAAG,UAAU,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAExC,IAAI,CAAC;gBACH,MAAM,GAAG,CAAA;;;;cAIH,cAAc,KAAK,KAAK,CAAC,WAAW;cACpC,qBAAqB,CACrB,KAAK,CAAC,eAAe,CAAC,OAAO,EAC7B,8BAA8B,CAC/B;cACC,qBAAqB,CACrB,KAAK,CAAC,eAAe,CAAC,QAAQ,EAC9B,8BAA8B,CAC/B;cACC,MAAM;;;;;;;SAOX,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACtB,UAAU,GAAG,cAAc,CAAC;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,UAAU,GAAG,IAAI,CAAC;gBAClB,mBAAmB,CAAC,oCAAoC,EAAE;oBACxD,KAAK,EAAE,oCAAoC;oBAC3C,MAAM,EAAE,KAAK,CAAC,OAAO;oBACrB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,gBAAgB,EAAE,KAAK,CAAC,SAAS;oBACjC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,kBAAkB,GAAG,KAAK,CAAC,aAAa;YAC5C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,GAAG,CAAA;;;;;;;;UAQH,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,OAAO,IAAI,IAAI;UAC/D,KAAK,CAAC,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,QAAQ;UAC3D,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,aAAa;UACxD,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,cAAc;UAC3D,KAAK,CAAC,SAAS,IAAI,IAAI,KAAK,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,SAAS,IAAI,IAAI;UACxE,KAAK,CAAC,cAAc,IAAI,IAAI,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI;UACvD,KAAK,CAAC,iBAAiB,IAAI,IAAI,KAAK,kBAAkB,KAAK,WAAW;UACtE,KAAK,CAAC,YAAY,IAAI,IAAI,KAAK,UAAU;;KAE9C,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAAA,CACvB,CAAC;IAEF,MAAM,8BAA8B,GAAG,CACrC,KAA0C,EACpC,EAAE,CAAC;QACT,IAAI,CAAC,yBAAyB;YAAE,OAAO;QAEvC,MAAM,aAAa,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QAEpE,KAAK,kBAAkB;aACpB,IAAI,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;aAC7C,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,mBAAmB,CAAC,kCAAkC,EAAE;gBACtD,KAAK,EAAE,kCAAkC;gBACzC,MAAM,EAAE,aAAa,CAAC,OAAO;gBAC7B,QAAQ,EAAE,aAAa,CAAC,QAAQ;gBAChC,gBAAgB,EAAE,aAAa,CAAC,SAAS;gBACzC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC,CAAC;QAAA,CACJ,CAAC,CAAC;IAAA,CACN,CAAC;IA6BF,SAAS,8BAA8B,CACrC,GAAyB,EACzB,aAAmC,EAC7B;QACN,IAAI,CAAC,mBAAmB,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,IAAI,eAAmC,CAAC;QACxC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,MAAM,cAAc,GAAyC,EAAE,CAAC;QAEhE,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,IACE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI;gBAC3B,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;gBACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAC7C,CAAC;gBACD,SAAS;YACX,CAAC;YAED,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACvE,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,aAAa,CAAC;YACtD,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,eAAe,CAAC;YAC5D,KAAK,MAAM,QAAQ,IAAI,yBAAyB,CAC9C,GAAG,CAAC,WAAW,EACf,MAAM,CAAC,SAAS,CACjB,EAAE,CAAC;gBACF,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,eAAe,IAAI,CAAC,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEhD,IAAI,mBAAmB,EAAE,CAAC;YACxB,mBAAmB,CAAC,eAAe,CAAC,iBAAiB,EAAE,eAAe,EAAE;gBACtE,gBAAgB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAChC,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,eAAe;aAC3B,CAAC,CAAC;QACL,CAAC;QAED,IAAI,mBAAmB,EAAE,CAAC;YACxB,mBAAmB;iBAChB,OAAO,CAAC;gBACP,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,eAAe;gBAC1B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,SAAS,EAAE,iBAAiB;gBAC5B,gBAAgB,EAAE,UAAU;aAC7B,CAAC;iBACD,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;gBAChB,mBAAmB,CAAC,wCAAwC,EAAE;oBAC5D,KAAK,EAAE,wCAAwC;oBAC/C,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;oBACxB,QAAQ,EAAE,GAAG,CAAC,QAAQ;oBACtB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YAAA,CACJ,CAAC,CAAC;QACP,CAAC;IAAA,CACF;IAED,SAAS,8BAA8B,CACrC,GAAyB,EACzB,OAA6B,EACvB;QACN,8BAA8B,CAAC,GAAG,EAAE,CAAC,CAAC;YACpC,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,OAAO;YACjC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;YAC/B,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;YACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,UAAU,EAAE,GAAG;YACf,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,cAAc,EAAE,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;YAC7D,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC;YAC9C,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC,CAAC,CAAC,CAAC;QAEJ,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACtD,WAAW,EAAE,GAAG,CAAC,WAAW;YAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;YACxB,OAAO,EAAE,GAAG,CAAC,YAAY,CAAC,OAAO;YACjC,MAAM,EAAE,GAAG,CAAC,YAAY,CAAC,MAAM;YAC/B,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;YACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,aAAa,EAAE,GAAG,CAAC,aAAa;YAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,GAAG;YACf,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,cAAc,EAAE,OAAO,CAAC,cAAc;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC,CAAC;IAAA,CACL;IAED,SAAS,uBAAuB,CAC9B,GAAyB,EACzB,OAAoC,EACpC,OAAiB,EACX;QACN,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,iBAAiB,GAAG,OAAO,CAAC,MAAM,CACtC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjE,CAAC,CACF,CAAC;QACF,IAAI,iBAAiB,IAAI,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,eAAe,CAAC,yBAAyB,EAAE,iBAAiB,EAAE;YAC5D,UAAU,EAAE;gBACV,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,aAAa,EAAE,GAAG,CAAC,aAAa;aACjC;SACF,CAAC,CAAC;IAAA,CACJ;IAED,SAAS,oBAAoB,CAC3B,GAAyB,EACzB,aAAmC,EAC7B;QACN,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,IACE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,IAAI;gBAC3B,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;gBACpC,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAC7C,CAAC;gBACD,SAAS;YACX,CAAC;YAED,oBAAoB,CAAC,kBAAkB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;gBACxD,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;gBACpC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;gBACzB,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,cAAc,EAAE,MAAM,CAAC,cAAc;aACtC,CAAC,CAAC,CAAC;QACN,CAAC;IAAA,CACF;IAED,KAAK,UAAU,qCAAqC,CAClD,GAAyB,EACzB,UAA6B,EAC7B,WAAW,GAEP,EAAE,EACyB;QAC/B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,mBAAmB,GAAG,UAAU,CAAC,MAAM,CAC3C,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,EAC/D,CAAC,CACF,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,eAAe,CAAC;YAC3C,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,iBAAiB,EAAE,IAAI;YACvB,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACtC,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,aAAa,EAAE,QAAQ,CAAC,aAAa;aACtC,CAAC,CAAC;SACJ,CAAC,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACpC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC1C,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC;QAC/B,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;YAChE,IAAI,OAAO,MAAM,CAAC,QAAQ,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;gBAClD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,MAAM,CAAC;QAAA,CACf,EAAE,CAAC,CAAC,CAAC;QACN,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAC1C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAChD;YACC,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,cAAc,CAAC,KAAK,CAChB,CAAC,MAAM,EAAE,EAAE,CACT,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS;gBACpC,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CACtC;gBACH,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,UAAU,CAAC;QACjB,MAAM,iBAAiB,GAAG,cAAc,CAAC,OAAO,CAC9C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CACpC,CAAC;QAEF,YAAY,CAAC;YACX,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;YACxB,UAAU,EAAE,cAAc;YAC1B,cAAc,EAAE,mBAAmB;YACnC,MAAM,EAAE,eAAe;YACvB,SAAS,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;SAC7D,CAAC,CAAC;QAEH,8BAA8B,CAAC,GAAG,EAAE;YAClC,UAAU,EAAE,cAAc;YAC1B,OAAO,EAAE,eAAe;YACxB,SAAS,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;YACvD,cAAc,EAAE,mBAAmB;YACnC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;YAClC,OAAO,EAAE,iBAAiB;YAC1B,eAAe,EAAE,oCAAoC;gBACnD,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;4BACrC,cAAc,EAAE,QAAQ,CAAC,cAAc;4BACvC,aAAa,EAAE,QAAQ,CAAC,aAAa;4BACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;yBAChC,CAAC,CAAC;qBACJ;oBACD,QAAQ,EAAE;wBACR,EAAE,EAAE,IAAI;wBACR,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;4BAC9C,cAAc,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,cAAc,IAAI,EAAE;4BACvD,GAAG,MAAM,CAAC,QAAQ;yBACnB,CAAC,CAAC;qBACJ;iBACF;gBACH,CAAC,CAAC,IAAI;SACT,CAAC,CAAC;QAEH,uBAAuB,CACrB,GAAG,EACH,iBAAiB,EACjB,WAAW,CAAC,oBAAoB,CACjC,CAAC;QAEF,8BAA8B,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACpD,oBAAoB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAE1C,OAAO,cAAc,CAAC;IAAA,CACvB;IAED,KAAK,UAAU,gCAAgC,CAC7C,GAAyB,EACzB,QAAyB,EACzB,WAAW,GAGP,EAAE,EACuB;QAC7B,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;QAE1C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC;YAC9B,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,QAAQ,EAAE,eAAe;YACzB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,OAAO,EAAE;gBACP,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,cAAc,EAAE,QAAQ,CAAC,cAAc;gBACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,aAAa,EAAE,QAAQ,CAAC,aAAa;aACtC;SACF,CAAC,CAAC;QAEH,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC;QAE/B,YAAY,CAAC;YACX,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;YACxB,UAAU,EAAE,cAAc;YAC1B,cAAc,EAAE,OAAO,CAAC,MAAM;YAC9B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC9B,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;SACrC,CAAC,CAAC;QAEH,8BAA8B,CAAC,GAAG,EAAE;YAClC,UAAU,EAAE,cAAc;YAC1B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;YAC/B,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI;YAC5C,cAAc,EAAE,OAAO,CAAC,MAAM;YAC9B,MAAM,EAAE,MAAM,CAAC,cAAc;YAC7B,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;YAChC,eAAe,EAAE,oCAAoC;gBACnD,CAAC,CAAC;oBACE,OAAO,EAAE;wBACP,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,cAAc,EAAE,QAAQ,CAAC,cAAc;wBACvC,aAAa,EAAE,QAAQ,CAAC,aAAa;wBACrC,UAAU,EAAE,QAAQ,CAAC,UAAU;qBAChC;oBACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B;gBACH,CAAC,CAAC,IAAI;SACT,CAAC,CAAC;QAEH,uBAAuB,CACrB,GAAG,EACH,MAAM,CAAC,QAAQ,CAAC,OAAO,EACvB,WAAW,CAAC,oBAAoB,CACjC,CAAC;QAEF,IAAI,WAAW,CAAC,0BAA0B,KAAK,IAAI,EAAE,CAAC;YACpD,8BAA8B,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,oBAAoB,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QAEpC,OAAO,MAAM,CAAC;IAAA,CACf;IAED,MAAM,SAAS,GAAG,IAAI,OAAO,EAAiC,CAAC;IAC/D,MAAM,OAAO,GAAG,CAAC,CAAU,EAAwB,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1B,OAAO,OAAO,CAAC;IAAA,CAChB,CAAC;IAEF,4EAA4E;IAC5E,2BAA2B;IAC3B,4EAA4E;IAE5E,MAAM,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC;IACzC,IAAI,eAAe,KAAK,KAAK,EAAE,CAAC;QAC9B,MAAM,aAAa,GACjB,eAAe,EAAE,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC;QACzD,MAAM,aAAa,GACjB,eAAe,EAAE,IAAI,IAAI,wBAAwB,CAAC,IAAI,CAAC;QAEzD,MAAM,0BAA0B,GAAG,CACjC,WAAyE,EACzE,EAAE,CAAC;YACH,IAAI,WAAW,KAAK,KAAK,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YACvD,OAAO,iBAAiB,CAAC;gBACvB,GAAG,WAAW;gBACd,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC9B,OAAO,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC;gBAAA,CAC9B;aACF,CAAC,CAAC;QAAA,CACJ,CAAC;QAEF,MAAM,WAAW,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,WAAW,GAAG,0BAA0B,CAAC,aAAa,CAAC,CAAC;QAE9D,MAAM,eAAe,GAAsB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,EAAE,CAAC;YAEhD,IAAI,eAAe,GAAG,WAAW,KAAK,IAAI,CAAC;YAC3C,IAAI,eAAe,GAAG,WAAW,KAAK,IAAI,CAAC;YAE3C,IAAI,WAAW,IAAI,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC1D,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;oBAC9C,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;wBAClD,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC;wBAC5D,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,SAAS,CAAC;oBAC9D,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,4EAA4E;gBAC9E,CAAC;YACH,CAAC;YAED,IAAI,WAAW,IAAI,eAAe,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;gBACrE,OAAO,WAAW,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;oBAC9C,IAAI,UAAU,YAAY,QAAQ,EAAE,CAAC;wBACnC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC;oBACrB,CAAC;gBAAA,CACF,CAAC,CAAC;YACL,CAAC;YACD,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;gBACnC,OAAO,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC;YACD,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;gBACnC,OAAO,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAC9B,CAAC;YAED,OAAO,IAAI,EAAE,CAAC;QAAA,CACf,CAAC;QAEF,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,4EAA4E;IAC5E,cAAc;IACd,4EAA4E;IAE5E,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,OAAO,CAAC,CAAC,IAAI,CAAC;YACZ,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;IAAA,CACJ,CAAC,CAAC;IAEH,4EAA4E;IAC5E,qBAAqB;IACrB,4EAA4E;IAE5E,MAAM,CAAC,GAAG,CACR,gBAAgB,EAChB,aAAa,CAAC;QACZ,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,gCAAgC;QACzC,WAAW,EACT,2EAA2E;QAC7E,SAAS,EAAE;YACT,GAAG,EAAE;gBACH,WAAW,EAAE,sBAAsB;gBACnC,OAAO,EAAE;oBACP,kBAAkB,EAAE;wBAClB,MAAM,EAAE,QAAQ,CAAC,6BAA6B,CAAC;qBAChD;iBACF;aACF;YACD,GAAG,EAAE;gBACH,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE;oBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;iBAC9D;aACF;SACF;KACF,CAAC,EACF,UAAU,CAAC,OAAO,EAAE,0BAA0B,CAAC,EAC/C,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;QAE5D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAClD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QAEhC,MAAM,YAAY,GAAG,CAAC,GAAG,CAAA,oBAAoB,WAAW,EAAE,CAAC,CAAC;QAC5D,IAAI,KAAK,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACxC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAA,kBAAkB,KAAK,CAAC,eAAe,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAA,gBAAgB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,YAAY,CAAC,IAAI,CAAC,GAAG,CAAA,mBAAmB,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACb,YAAY,CAAC,IAAI,CAAC,GAAG,CAAA,mBAAmB,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC;QAChC,IAAI,WAAW,EAAE,CAAC;YAChB,YAAY,CAAC,IAAI,CAAC,GAAG,CAAA;;;mBAGV,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;oBAClD,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,WAAW;oBAC3C,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC;oBACrD,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,WAAW;;SAE/C,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,GAAG,CAQ1B;;;;;;;;;eASO,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC3C,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAA,OAAO,CAAC;;gBAElC,KAAK,GAAG,CAAC;OAClB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpC,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3D,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzE,OAAO,CAAC,CAAC,IAAI,CACX;YACE,EAAE,EAAE,IAAI;YACR,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClC,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC;gBACjC,OAAO,EAAE,GAAG,CAAC,QAAQ;gBACrB,QAAQ,EAAE,GAAG,CAAC,SAAS;gBACvB,cAAc,EAAE,GAAG,CAAC,gBAAgB;gBACpC,SAAS,EAAE,GAAG,CAAC,UAAU;gBACzB,WAAW,EAAE,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC;gBACrC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;aAC/D,CAAC,CAAC;YACH,UAAU;SACX,EACD,GAAG,CACJ,CAAC;IAAA,CACH,CACF,CAAC;IAEF,4EAA4E;IAC5E,gCAAgC;IAChC,4EAA4E;IAE5E,MAAM,CAAC,GAAG,CACR,2BAA2B,EAC3B,aAAa,CAAC;QACZ,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,yCAAyC;QAClD,WAAW,EACT,4FAA4F;QAC9F,SAAS,EAAE;YACT,GAAG,EAAE;gBACH,WAAW,EAAE,qBAAqB;gBAClC,OAAO,EAAE;oBACP,kBAAkB,EAAE;wBAClB,MAAM,EAAE,QAAQ,CAAC,+BAA+B,CAAC;qBAClD;iBACF;aACF;YACD,GAAG,EAAE;gBACH,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE;oBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;iBAC9D;aACF;YACD,GAAG,EAAE;gBACH,WAAW,EAAE,kBAAkB;gBAC/B,OAAO,EAAE;oBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;iBAC9D;aACF;SACF;KACF,CAAC,EACF,UAAU,CAAC,OAAO,EAAE,uBAAuB,CAAC,EAC5C,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;QAE5D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAClD,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE3C,MAAM,YAAY,GAAG,MAAM,GAAG,CAQ5B;;;;;;;;;eASO,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;+BACT,WAAW;6BACb,SAAS;;OAE/B,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,GAAG,CAQ7B;;YAEI,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;YAC/C,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7C,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC;YACnD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;eACtC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;gBACxB,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,WAAW;gBACxC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,SAAS;mBACjC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;OAChC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEtB,OAAO,CAAC,CAAC,IAAI,CACX;YACE,EAAE,EAAE,IAAI;YACR,MAAM,EAAE;gBACN,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;gBACpC,OAAO,EAAE,MAAM,CAAC,QAAQ;gBACxB,QAAQ,EAAE,MAAM,CAAC,SAAS;gBAC1B,cAAc,EAAE,MAAM,CAAC,gBAAgB;gBACvC,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;gBACxC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC;aAClE;YACD,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC;gBAClC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,KAAK,EAAE,MAAM,CAAC,MAAM;gBACpB,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,UAAU,EACR,MAAM,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBACjE,OAAO,EAAE,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACxC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC;aACtC,CAAC,CAAC;SACJ,EACD,GAAG,CACJ,CAAC;IAAA,CACH,CACF,CAAC;IAEF,4EAA4E;IAC5E,mDAAmD;IACnD,4EAA4E;IAE5E,MAAM,CAAC,IAAI,CACT,GAAG,EACH,aAAa,CAAC;QACZ,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,wBAAwB;QACjC,WAAW,EACT,oEAAoE;QACtE,SAAS,EAAE;YACT,GAAG,EAAE;gBACH,WAAW,EAAE,wBAAwB;gBACrC,OAAO,EAAE;oBACP,kBAAkB,EAAE;wBAClB,MAAM,EAAE,QAAQ,CAAC,0BAA0B,CAAC;qBAC7C;iBACF;aACF;YACD,GAAG,EAAE;gBACH,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE;oBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;iBAC9D;aACF;YACD,GAAG,EAAE;gBACH,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE;oBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;iBAC9D;aACF;SACF;KACF,CAAC,EACF,UAAU,CAAC,MAAM,EAAE,yBAAyB,CAAC,EAC7C,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAClD,MAAM,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,kBAAkB,GAAG,iCAAiC,CAAC;YAC3D,WAAW;YACX,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ;SACT,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,MAAM,eAAe,CACvC,OAAO,CAAC,EAAE,EACV,WAAW,EACX,QAAQ,CACT,CAAC;QACF,IAAI,qBAAqB,GAAG,KAAK,CAAC;QAClC,IACE,IAAI,CAAC,IAAI;YACT,CAAC,IAAI,CAAC,IAAI;YACV,WAAW,CAAC,YAAY,KAAK,IAAI;YACjC,WAAW,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,EACzC,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,sCAAsC,CAAC;gBAC5D,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI;gBACJ,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa;gBACtC,QAAQ,EAAE,eAAe;gBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;YACH,qBAAqB,GAAG,QAAQ,CAAC,KAAK,CACpC,CAAC,YAAY,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,KAAK,SAAS,CACpD,CAAC;QACJ,CAAC;QAED,IACE,CAAC,qBAAqB;YACtB,CAAC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,YAAY,KAAK,IAAI,CAAC,EAC9D,CAAC;YACD,IACE,WAAW,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO;gBACzC,WAAW,CAAC,WAAW,EACvB,CAAC;gBACD,OAAO,CAAC,CAAC,IAAI,CACX;oBACE,KAAK,EAAE,mBAAmB;oBAC1B,OAAO,EAAE,WAAW,CAAC,WAAW;wBAC9B,CAAC,CAAC,4CAA4C;wBAC9C,CAAC,CAAC,gDAAgD;iBACrD,EACD,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,YASC,CAAC;QACN,IAAI,YAAgD,CAAC;QACrD,MAAM,sBAAsB,GAC1B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B,CAAC,KAAK,GAAG,CAAC;QAEnD,qBAAqB;QACrB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAC3C,MAAM,aAAa,GAAgD,EAAE,CAAC;YACtE,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;gBAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;oBAC1C,OAAO,CAAC,CAAC,IAAI,CACX;wBACE,KAAK,EAAE,qBAAqB;wBAC5B,OAAO,EAAE,WAAW,oBAAoB,sBAAsB;qBAC/D,EACD,GAAG,CACJ,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,MAAM,cAAc,GAClB,UAAU,CAAC,MAAM,GAAG,CAAC;gBACnB,CAAC,CAAC,MAAM,qCAAqC,CACzC;oBACE,IAAI;oBACJ,QAAQ;oBACR,WAAW;oBACX,SAAS;oBACT,YAAY;oBACZ,aAAa;oBACb,QAAQ,EAAE,eAAe;iBAC1B,EACD,UAAU,EACV;oBACE,oBAAoB,EAAE,IAAI;iBAC3B,CACF;gBACH,CAAC,CAAC,EAAE,CAAC;YAET,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC1D,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,MAAM,MAAM,GACV,UAAU,CAAC,MAAM,GAAG,CAAC;oBACnB,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC;oBACvB,CAAC,CAAC,MAAM,gCAAgC,CACpC;wBACE,IAAI;wBACJ,QAAQ;wBACR,WAAW;wBACX,SAAS;wBACT,YAAY;wBACZ,aAAa;wBACb,QAAQ,EAAE,eAAe;qBAC1B,EACD,QAAQ,EACR;wBACE,oBAAoB,EAAE,IAAI;qBAC3B,CACF,CAAC;gBACR,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBACpE,CAAC;gBACD,aAAa,CAAC,IAAI,CAAC;oBACjB,cAAc,EAAE,QAAQ,CAAC,cAAc;oBACvC,GAAG,MAAM,CAAC,QAAQ;iBACnB,CAAC,CAAC;YACL,CAAC;YAED,YAAY,GAAG;gBACb,EAAE,EAAE,IAAI;gBACR,OAAO,EAAE,aAAa;aACvB,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,uBAAuB,EAAE,CAAC;gBAC7D,OAAO,CAAC,CAAC,IAAI,CACX;oBACE,KAAK,EAAE,iBAAiB;oBACxB,OAAO,EAAE,+BAA+B,uBAAuB,GAAG;iBACnE,EACD,GAAG,CACJ,CAAC;YACJ,CAAC;YAED,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;YAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBAC1C,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBAChC,OAAO,CAAC,CAAC,IAAI,CACX;wBACE,KAAK,EAAE,iBAAiB;wBACxB,OAAO,EAAE,8BAA8B,EAAE,EAAE;qBAC5C,EACD,GAAG,CACJ,CAAC;gBACJ,CAAC;gBACD,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9B,CAAC;YAED,MAAM,OAAO,GAAG;gBACd,QAAQ;gBACR,YAAY,EAAE,QAAQ,CACpB,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,EAC5B,CAAC,EACD,mBAAmB,CACpB;gBACD,iBAAiB,EAAE,QAAQ,CACzB,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,IAAI,EACnC,CAAC,EACD,wBAAwB,CACzB;gBACD,gBAAgB,EAAE,QAAQ,CACxB,IAAI,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,EAC/B,CAAC,EACD,uBAAuB,CACxB;gBACD,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,KAAK,IAAI;gBACzC,aAAa,EAAE,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACnD,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAsC;oBAC/D,MAAM,EAAE,GAAG,CAAC,MAAiC;oBAC7C,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC;oBAChC,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,IAAI;iBAC3C,CAAC,CAAC;aACJ,CAAC;YAEF,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;YAEhC,IAAI,UAAsB,CAAC;YAC3B,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,IAAI,CAAC;oBACtB,EAAE,EAAE,OAAO,CAAC,EAAE;oBACd,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,QAAQ,EAAE,eAAe;oBACzB,IAAI;oBACJ,OAAO;oBACP,YAAY,EAAE,OAAO,CAAC,YAAY;oBAClC,UAAU,EAAE,OAAO,CAAC,UAAU;iBAC/B,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,6BAA6B,EAAE,CAAC;oBACjD,OAAO,CAAC,CAAC,IAAI,CACX,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,EACvD,GAAG,CACJ,CAAC;gBACJ,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,kBAAkB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE;oBACpD,WAAW;oBACX,QAAQ;oBACR,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,UAAU,CAAC,YAAY;oBAC/B,eAAe,EAAE,UAAU,CAAC,eAAe;iBAC5C,CAAC,CAAC;gBACH,oBAAoB,CAAC,kBAAkB,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC/D,MAAM,EAAE,iBAAiB;oBACzB,WAAW;oBACX,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ;oBACR,MAAM,EAAE,UAAU,CAAC,YAAY;iBAChC,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,mBAAmB,CAAC,kCAAkC,EAAE;oBACtD,KAAK,EAAE,kCAAkC;oBACzC,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,QAAQ;oBACR,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;YAED,mBAAmB,EAAE,yBAAyB,CAC5C,kBAAkB,EAClB,yBAAyB,CACvB,WAAW,EACX,sBAAsB,CAAC,UAAU,CAAC,eAAe,CAAC,CACnD,CACF,CAAC;YAEF,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC;YAE/B,YAAY,CAAC;gBACX,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,IAAI,CAAC,OAAO;gBACpB,UAAU,EAAE,cAAc;gBAC1B,iBAAiB,EAAE,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM;gBAC3D,YAAY,EAAE,UAAU,CAAC,YAAY;aACtC,CAAC,CAAC;YAEH,8BAA8B,CAAC,GAAG,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,yBAAyB;oBAC5C,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC;oBACpC,CAAC,CAAC,IAAI,CAAC;gBACT,MAAM,aAAa,GAAG,yBAAyB;oBAC7C,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,eAAe,CAAC;oBAClD,CAAC,CAAC,IAAI,CAAC;gBACT,MAAM,eAAe,GAAG,oCAAoC;oBAC1D,CAAC,CAAC;wBACE,OAAO,EAAE;4BACP,QAAQ;4BACR,YAAY,EAAE,OAAO,CAAC,YAAY;4BAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;4BAC5C,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;4BAC1C,UAAU,EAAE,OAAO,CAAC,UAAU;4BAC9B,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;gCAC1D,EAAE,EAAE,YAAY,CAAC,EAAE;gCACnB,KAAK,EAAE,YAAY,CAAC,KAAK;gCACzB,MAAM,EAAE,YAAY,CAAC,MAAM;gCAC3B,MAAM,EAAE,YAAY,CAAC,MAAM;gCAC3B,cAAc,EAAE,YAAY,CAAC,cAAc;6BAC5C,CAAC,CAAC;yBACJ;wBACD,QAAQ,EAAE,qBAAqB,CAAC,UAAU,CAAC,QAAQ,CAAC;qBACrD;oBACH,CAAC,CAAC,IAAI,CAAC;gBAET,OAAO;oBACL,WAAW;oBACX,SAAS;oBACT,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,SAAS,EAAE,MAAM;oBACjB,QAAQ,EAAE,eAAe;oBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ;oBACR,aAAa;oBACb,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,SAAS;oBAClB,cAAc,EAAE,uBAAuB,CAAC,GAAG,EAAE,SAAS,CAAC;oBACvD,UAAU,EAAE,cAAc;oBAC1B,QAAQ,EAAE,YAAY;oBACtB,iBAAiB,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM;oBAC/C,aAAa;oBACb,eAAe;iBAChB,CAAC;YAAA,CACH,CAAC,CAAC;YACH,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;gBACrD,MAAM,YAAY,GAAG,2BAA2B;oBAC9C,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC;oBACpC,CAAC,CAAC,IAAI,CAAC;gBACT,OAAO;oBACL,WAAW;oBACX,SAAS;oBACT,OAAO,EAAE,YAAY,CAAC,OAAO;oBAC7B,MAAM,EAAE,YAAY,CAAC,MAAM;oBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ;oBACR,aAAa;oBACb,QAAQ,EAAE,eAAe;oBACzB,OAAO,EAAE,SAAS;oBAClB,UAAU,EAAE,GAAG;oBACf,UAAU,EAAE,cAAc;oBAC1B,QAAQ,EAAE,YAAY;oBACtB,iBAAiB,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM;oBAC/C,YAAY,EAAE,UAAU,CAAC,YAAY;iBACtC,CAAC;YAAA,CACH,CAAC,CAAC;YAEH,IAAI,sBAAsB,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBAC1D,CAAC,CAAC,MAAM,CACN,+BAA+B,EAC/B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAC5C,CAAC;YACJ,CAAC;YAED,YAAY,GAAG,UAAU,CAAC,QAAQ,CAAC;QACrC,CAAC;QAED,sBAAsB,CAAC;YACrB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ;YACR,WAAW;SACZ,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,IAAI,CACX;YACE,EAAE,EAAE,IAAa;YACjB,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,EACD,GAAG,CACJ,CAAC;IAAA,CACH,CACF,CAAC;IAEF,4EAA4E;IAC5E,gCAAgC;IAChC,4EAA4E;IAE5E,MAAM,CAAC,GAAG,CACR,2BAA2B,EAC3B,aAAa,CAAC;QACZ,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,OAAO,EAAE,yBAAyB;QAClC,WAAW,EAAE,8CAA8C;QAC3D,SAAS,EAAE;YACT,GAAG,EAAE;gBACH,WAAW,EAAE,wDAAwD;gBACrE,OAAO,EAAE;oBACP,0BAA0B,EAAE;wBAC1B,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;qBAC7B;iBACF;aACF;YACD,GAAG,EAAE;gBACH,WAAW,EAAE,uBAAuB;aACrC;YACD,GAAG,EAAE;gBACH,WAAW,EAAE,iBAAiB;gBAC9B,OAAO,EAAE;oBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;iBAC9D;aACF;YACD,GAAG,EAAE;gBACH,WAAW,EAAE,WAAW;gBACxB,OAAO,EAAE;oBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;iBAC9D;aACF;YACD,GAAG,EAAE;gBACH,WAAW,EAAE,WAAW;gBACxB,OAAO,EAAE;oBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAAE;iBAC9D;aACF;SACF;KACF,CAAC,EACF,UAAU,CAAC,OAAO,EAAE,yBAAyB,CAAC,EAC9C,UAAU,CAAC,OAAO,EAAE,wBAAwB,CAAC,EAC7C,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;QACX,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAClD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEzC,MAAM,KAAK,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE;YACzD,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC,CAAC;QACH,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QACvD,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YACtC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxC,IAAI,KAAK,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,iBAAiB;gBACxB,OAAO,EAAE,0CAA0C;aACpD,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,sCAAsC,CAAC;gBAC5D,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI;gBACJ,aAAa,EAAE;oBACb;wBACE,EAAE,EAAE,sBAAsB;wBAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;wBAClB,MAAM,EAAE,oBAAoB;wBAC5B,MAAM,EAAE,CAAC;qBACV;iBACF;gBACD,QAAQ,EAAE,eAAe;gBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;aAC/B,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAChD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC;YAED,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,MAAM,6BAA6B,CACpE,SAAS,CAAC,MAAM,CACjB,EAAE,CAAC;YACJ,IAAI,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAChC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,6BAA6B,EAAE,CAAC;gBACnD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAG,WAAW,KAAK,CAAC,MAAM,GAAG,CAAC;QACxC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAClD,IAAI,WAAW,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACxC,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;gBACxB,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE;oBACP,IAAI,EAAE,IAAI;oBACV,eAAe,EAAE,oBAAoB;oBACrC,IAAI,EAAE,2CAA2C;iBAClD;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAgB,EAAE;YAC1C,MAAM,EAAE,GAAG;YACX,OAAO,EAAE;gBACP,cAAc,EAAE,0BAA0B;gBAC1C,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;gBAC1C,IAAI,EAAE,IAAI;gBACV,eAAe,EAAE,oBAAoB;gBACrC,IAAI,EAAE,2CAA2C;gBACjD,iBAAiB,EAAE,KAAK,CAAC,OAAO;gBAChC,qBAAqB,EAAE,KAAK,CAAC,MAAM;gBACnC,uBAAuB,EAAE,KAAK,CAAC,QAAQ;gBACvC,0BAA0B,EAAE,KAAK,CAAC,WAAW;aAC9C;SACF,CAAC,CAAC;IAAA,CACJ,CACF,CAAC;IAEF,4EAA4E;IAC5E,8CAA8C;IAC9C,4EAA4E;IAE5E,IAAI,mBAAmB,IAAI,eAAe,EAAE,OAAO,EAAE,CAAC;QACpD,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC,wBAAwB,CAAC,CAAC,EAAE,eAAe,CAAC,cAAc,CAAC,EAAE,CAAC;gBACjE,MAAM,MAAM,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACnC,IAAI,MAAM,IAAI,UAAU,EAAE,CAAC;oBACzB,OAAO,kCAAkC,CAAC,MAAM,CAAC,CAAC;gBACpD,CAAC;gBACD,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;YACpD,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;YAElD,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC9C,OAAO,CAAC,CAAC,IAAI,CACX;oBACE,KAAK,EAAE,iBAAiB;oBACxB,OAAO,EAAE,kCAAkC;iBAC5C,EACD,GAAG,CACJ,CAAC;YACJ,CAAC;YACD,MAAM,qBAAqB,GAAG,iBAAiB,CAC7C,CAAC,EACD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAC,CAC7B,CAAC;YACF,MAAM,kBAAkB,GAAG,iCAAiC,CAAC;gBAC3D,WAAW;gBACX,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ;aACT,CAAC,CAAC;YAEH,kEAAkE;YAClE,2FAA2F;YAC3F,IAAI,gBAAgB,GAAa,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,MAAM,eAAe,CACvC,OAAO,CAAC,EAAE,EACV,WAAW,EACX,QAAQ,CACT,CAAC;gBACF,IAAI,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;oBACjE,IACE,WAAW,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO;wBACzC,WAAW,CAAC,WAAW,EACvB,CAAC;wBACD,OAAO,CAAC,CAAC,IAAI,CACX;4BACE,KAAK,EAAE,mBAAmB;4BAC1B,OAAO,EAAE,WAAW,CAAC,WAAW;gCAC9B,CAAC,CAAC,4CAA4C;gCAC9C,CAAC,CAAC,gDAAgD;yBACrD,EACD,GAAG,CACJ,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,GAAG,GAAG,WAAW,CAAC,eAAe,CAAC;gBACxC,IAAI,MAAM,GAAY,GAAG,CAAC;gBAC1B,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;oBAC5B,IAAI,CAAC;wBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC3B,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,GAAG,IAAI,CAAC;oBAChB,CAAC;gBACH,CAAC;gBAED,gBAAgB,GAAG,yBAAyB,CAC1C,WAAW,EACX,sBAAsB,CAAC,MAAM,CAAC,CAC/B,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;YAED,MAAM,mBAAmB,GAAG,eAAe,CAAC,mBAAmB,IAAI,IAAI,CAAC;YACxE,MAAM,uBAAuB,GAC3B,eAAe,CAAC,uBAAuB,IAAI,CAAC,CAAC;YAC/C,MAAM,eAAe,GAAG,eAAe,CAAC,eAAe,IAAI,IAAI,GAAG,IAAI,CAAC;YACvE,MAAM,oBAAoB,GAAG,eAAe,CAAC,oBAAoB,IAAI,GAAG,CAAC;YACzE,MAAM,mBAAmB,GAAG,eAAe,CAAC,mBAAmB,IAAI,KAAK,CAAC;YACzE,IAAI,4BAA4B,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9C,IAAI,sBAAsB,GAAG,CAAC,CAAC;YAE/B,IACE,mBAAmB,GAAG,CAAC;gBACvB,mBAAmB,CAAC,mBAAmB,EAAE,IAAI,mBAAmB,EAChE,CAAC;gBACD,YAAY,CAAC;oBACX,KAAK,EAAE,wBAAwB;oBAC/B,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,MAAM,EAAE,WAAW;iBACpB,CAAC,CAAC;gBACH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,kCAAkC,EAAE,EAAE,GAAG,CAAC,CAAC;YACpE,CAAC;YAED,IACE,uBAAuB,GAAG,CAAC;gBAC3B,mBAAmB,CAAC,wBAAwB,CAAC,kBAAkB,CAAC;oBAC9D,uBAAuB,EACzB,CAAC;gBACD,YAAY,CAAC;oBACX,KAAK,EAAE,wBAAwB;oBAC/B,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,MAAM,EAAE,gBAAgB;iBACzB,CAAC,CAAC;gBACH,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mCAAmC,EAAE,EAAE,GAAG,CAAC,CAAC;YACrE,CAAC;YAED,YAAY,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YAEvE,IAAI,UAAU,GAAwB,IAAI,CAAC;YAC3C,IAAI,OAAO,GAAwD,IAAI,CAAC;YACxE,MAAM,4BAA4B,GAChC,mBAAmB,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;YACnE,IAAI,kBAAkB,GAAkB,IAAI,CAAC;YAC7C,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,MAAM,qBAAqB,GAAG,CAAC,MAA0B,EAAE,EAAE,CAAC;gBAC5D,IAAI,YAAY;oBAAE,OAAO;gBACzB,YAAY,GAAG,IAAI,CAAC;gBACpB,IAAI,kBAAkB,KAAK,IAAI,EAAE,CAAC;oBAChC,OAAO;gBACT,CAAC;gBACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC,CAAC;gBAChE,eAAe,CAAC,qBAAqB,EAAE,CAAC,EAAE;oBACxC,UAAU,EAAE;wBACV,aAAa,EAAE,qBAAqB;wBACpC,MAAM;qBACP;iBACF,CAAC,CAAC;gBACH,sBAAsB,CAAC,2BAA2B,EAAE,UAAU,EAAE;oBAC9D,IAAI,EAAE,aAAa;oBACnB,UAAU,EAAE;wBACV,aAAa,EAAE,qBAAqB;wBACpC,MAAM;qBACP;iBACF,CAAC,CAAC;YAAA,CACJ,CAAC;YAEF,MAAM,0BAA0B,GAAG,CAAC,IAGnC,EAAE,EAAE,CAAC;gBACJ,UAAU,EAAE,EAAE,CAAC;gBACf,UAAU,GAAG,IAAI,CAAC;gBAClB,OAAO,GAAG,IAAI,CAAC;gBACf,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnC,YAAY,CAAC;oBACX,KAAK,EAAE,0BAA0B;oBACjC,MAAM,EAAE,IAAI,CAAC,OAAO;iBACrB,CAAC,CAAC;gBACH,oBAAoB,CAAC,kBAAkB,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC/D,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,QAAQ;oBACR,WAAW;iBACZ,CAAC,CAAC,CAAC;YAAA,CACL,CAAC;YAEF,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC;gBAChD,YAAY,CAAC;oBACX,KAAK,EAAE,iCAAiC;oBACxC,MAAM,EAAE,IAAI,CAAC,OAAO;oBACpB,MAAM,EAAE,sBAAsB;oBAC9B,QAAQ;iBACT,CAAC,CAAC;YAAA,CACJ,CAAC;YAEF,MAAM,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC;YAC1D,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACtB,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;YAED,OAAO,gBAAgB,CAAC,CAAC,EAAE;gBACzB,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE;oBACf,MAAM,IAAI,GAAG,yBAAyB,CAAC,EAAE,EAAE;wBACzC,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,QAAQ;wBACR,QAAQ,EAAE,kBAAkB;wBAC5B,aAAa,EAAE,qBAAqB;qBACrC,CAAC,CAAC;oBACH,OAAO,GAAG,IAAI,CAAC;oBACf,kBAAkB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChC,eAAe,CAAC,uBAAuB,EAAE,CAAC,EAAE;wBAC1C,UAAU,EAAE;4BACV,aAAa,EAAE,qBAAqB;yBACrC;qBACF,CAAC,CAAC;oBACH,IAAI,4BAA4B,GAAG,CAAC,EAAE,CAAC;wBACrC,eAAe,CAAC,2BAA2B,EAAE,CAAC,EAAE;4BAC9C,UAAU,EAAE;gCACV,aAAa,EAAE,qBAAqB;gCACpC,MAAM,EAAE,QAAQ;6BACjB;yBACF,CAAC,CAAC;oBACL,CAAC;oBAED,UAAU,GAAG,mBAAmB,CAAC,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;oBAClE,IAAI,CAAC,aAAa,EAAE,CAAC;oBACrB,oBAAoB,CAAC,kBAAkB,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;wBAC/D,MAAM,EAAE,oBAAoB;wBAC5B,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,QAAQ;wBACR,WAAW;wBACX,aAAa,EAAE,qBAAqB;wBACpC,UAAU,EAAE,gBAAgB,CAAC,MAAM;qBACpC,CAAC,CAAC,CAAC;gBAAA,CACL;gBACD,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;oBACjB,0BAA0B,CAAC;wBACzB,MAAM,EAAE,QAAQ;wBAChB,MAAM,EAAE,uBAAuB;qBAChC,CAAC,CAAC;gBAAA,CACJ;gBACD,OAAO,CAAC,IAAI,EAAE,GAAG,EAAE;oBACjB,0BAA0B,CAAC;wBACzB,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,gBAAgB;qBACzB,CAAC,CAAC;gBAAA,CACJ;gBACD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE;oBAClB,IAAI,CAAC,OAAO;wBAAE,OAAO;oBACrB,IAAI,CAAC;wBACH,MAAM,YAAY,GAAG,4BAA4B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC5D,IAAI,YAAY,GAAG,eAAe,EAAE,CAAC;4BACnC,OAAO,CAAC,SAAS,CACf,uCAAuC,eAAe,SAAS,CAChE,CAAC;4BACF,OAAO;wBACT,CAAC;wBACD,IAAI,oBAAoB,GAAG,CAAC,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;4BACxD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;4BACzB,IAAI,KAAK,GAAG,4BAA4B,IAAI,mBAAmB,EAAE,CAAC;gCAChE,4BAA4B,GAAG,KAAK,CAAC;gCACrC,sBAAsB,GAAG,CAAC,CAAC;4BAC7B,CAAC;4BACD,sBAAsB,IAAI,CAAC,CAAC;4BAC5B,IAAI,sBAAsB,GAAG,oBAAoB,EAAE,CAAC;gCAClD,OAAO,CAAC,SAAS,CACf,oCAAoC,oBAAoB,IAAI,mBAAmB,KAAK,CACrF,CAAC;gCACF,OAAO;4BACT,CAAC;wBACH,CAAC;wBACD,MAAM,GAAG,GACP,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC5B,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;4BAAE,OAAO;wBAE5C,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BACxB,KAAK,YAAY,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;4BAChD,OAAO;wBACT,CAAC;wBAED,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ;4BAAE,OAAO;wBAErD,MAAM,QAAQ,GAAG,6BAA6B,CAC5C,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CACrB,CAAC;wBACF,IAAI,CAAC,QAAQ;4BAAE,OAAO;wBAEtB,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;4BACnB,KAAK,MAAM;gCACT,IACE,CAAC,mBAAmB,CAAC,YAAY,CAC/B,kBAAkB,EAClB,QAAQ,EACR,GAAG,CAAC,QAAQ,CACb,EACD,CAAC;oCACD,mBAAmB,CAAC,QAAQ,CAAC,CAAC;oCAC9B,OAAO;gCACT,CAAC;gCACD,oDAAoD;gCACpD,CAAC;oCACC,MAAM,OAAO,GAAG,mBAAmB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oCAC1D,OAAO,CAAC,YAAY,CAAC;wCACnB,MAAM,EAAE,UAAU;wCAClB,QAAQ;wCACR,OAAO;qCACR,CAAC,CAAC;gCACL,CAAC;gCACD,MAAM;4BACR,KAAK,OAAO;gCACV,mBAAmB,CAAC,aAAa,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;gCAChE,MAAM;4BACR,KAAK,QAAQ;gCACX,IACE,CAAC,mBAAmB,CAAC,sBAAsB,CACzC,kBAAkB,EAClB,QAAQ,EACR,GAAG,CAAC,QAAQ,IAAI,EAAE,CACnB;oCACD,CAAC,mBAAmB,CAAC,gCAAgC,CACnD,kBAAkB,EAClB,QAAQ,CACT,EACD,CAAC;oCACD,mBAAmB,CAAC,QAAQ,CAAC,CAAC;gCAChC,CAAC;gCACD,MAAM;wBACV,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,4BAA4B;oBAC9B,CAAC;gBAAA,CACF;aACF,CAAC,CAAC;QAAA,CACJ,CAAC,CAAC;IACL,CAAC;IAED,KAAK,UAAU,mBAAmB,CAAC,KAAwB,EAAiB;QAC1E,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO;QACpC,IAAI,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,KAAK,UAAU;YAAE,OAAO;QAE5E,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAClC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,SAAS,CAAC;QACnD,MAAM,SAAS,GACb,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAC3C,CAAC,CAAC,KAAK,CAAC,SAAS;YACjB,CAAC,CAAC,MAAM,mBAAmB,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAEpE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACnC,mBAAmB,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;IAAA,CAC3D;IAED,MAAM,mBAAmB,GAAG,CAAC,IAc5B,EAAQ,EAAE,CAAC;QACV,8BAA8B,CAAC,GAAG,EAAE,CAAC,CAAC;YACpC,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;YAClC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YAChC,SAAS,EAAE,MAAM;YACjB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,cAAc,EAAE,uBAAuB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;YACtE,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;YAC3C,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;SAC9C,CAAC,CAAC,CAAC;QAEJ,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACtD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO;YAClC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM;YAChC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC,CAAC,CAAC;IAAA,CACL,CAAC;IAEF,KAAK,UAAU,YAAY,CACzB,GAA4B,EAC5B,IAAyB,EACzB,IAAU,EACV,QAAgB,EACD;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAClD,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,YAAY,GAAG,2BAA2B,CAAC,GAAG,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAEhC,IAAI,CAAC;YACH,4BAA4B;YAC5B,MAAM,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,CACrE,GAAG,CACJ,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,iBAAiB,GAAG,KAAK,EAAE,CAAC;gBAClC,MAAM,YAAY,GAAG,sBAAsB,CAAC;gBAC5C,IAAI,CAAC,gBAAgB,CAAC;oBACpB,SAAS;oBACT,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;iBAChE,CAAC,CAAC;gBACH,mBAAmB,CAAC;oBAClB,WAAW;oBACX,SAAS;oBACT,OAAO;oBACP,QAAQ;oBACR,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,UAAU;oBACnB,UAAU,EAAE,iBAAiB;oBAC7B,SAAS,EAAE,sBAAsB;oBACjC,YAAY;oBACZ,YAAY;oBACZ,eAAe,EAAE,oCAAoC;wBACnD,CAAC,CAAC;4BACE,OAAO,EAAE,GAAG;4BACZ,QAAQ,EAAE;gCACR,EAAE,EAAE,KAAK;gCACT,MAAM,EAAE,UAAU;gCAClB,MAAM,EAAE,sBAAsB;6BAC/B;yBACF;wBACH,CAAC,CAAC,IAAI;iBACT,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;YAC7C,IAAI,OAAO,CAAC,MAAM,GAAG,oBAAoB,EAAE,CAAC;gBAC1C,MAAM,kBAAkB,GAAG,KAAK,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,WAAW,oBAAoB,sBAAsB,CAAC;gBAC3E,IAAI,CAAC,gBAAgB,CAAC;oBACpB,SAAS;oBACT,EAAE,EAAE,KAAK;oBACT,MAAM,EAAE,UAAU;oBAClB,OAAO,EAAE;wBACP;4BACE,OAAO,EAAE,CAAC;4BACV,MAAM,EAAE,OAAO;4BACf,KAAK,EAAE,YAAY;yBACpB;qBACF;iBACF,CAAC,CAAC;gBACH,mBAAmB,CAAC;oBAClB,WAAW;oBACX,SAAS;oBACT,OAAO;oBACP,QAAQ;oBACR,aAAa,EAAE,IAAI,CAAC,aAAa;oBACjC,UAAU,EAAE,GAAG;oBACf,OAAO,EAAE,UAAU;oBACnB,UAAU,EAAE,kBAAkB;oBAC9B,SAAS,EAAE,yBAAyB;oBACpC,YAAY;oBACZ,YAAY;oBACZ,cAAc,EAAE,OAAO,CAAC,MAAM;oBAC9B,eAAe,EAAE,oCAAoC;wBACnD,CAAC,CAAC;4BACE,OAAO,EAAE;gCACP,QAAQ;gCACR,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;gCAC1C,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;gCACxC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;6BACnC;4BACD,QAAQ,EAAE;gCACR,EAAE,EAAE,KAAK;gCACT,MAAM,EAAE,UAAU;gCAClB,MAAM,EAAE,yBAAyB;6BAClC;yBACF;wBACH,CAAC,CAAC,IAAI;iBACT,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,gCAAgC,CACnD;gBACE,IAAI;gBACJ,QAAQ;gBACR,WAAW;gBACX,SAAS;gBACT,YAAY;gBACZ,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,QAAQ,EAAE,SAAS;aACpB,EACD;gBACE,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc;gBAC1C,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU;gBAClC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;aACzC,EACD,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAC/B,CAAC;YAEF,sBAAsB,CAAC;gBACrB,OAAO;gBACP,QAAQ;gBACR,WAAW;aACZ,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC;gBACpB,SAAS;gBACT,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE;gBACtB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM;gBAC9B,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS;gBACpC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO;aACjC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,gBAAgB,GAAG,KAAK,EAAE,CAAC;YACjC,oBAAoB,CAAC,GAAG,EAAE;gBACxB,KAAK,EAAE,2BAA2B;gBAClC,SAAS;gBACT,QAAQ;gBACR,OAAO;gBACP,WAAW;aACZ,CAAC,CAAC;YACH,MAAM,OAAO,GACX,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC;YAC/D,mBAAmB,CAAC;gBAClB,WAAW;gBACX,SAAS;gBACT,OAAO;gBACP,QAAQ;gBACR,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,GAAG;gBACf,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,gBAAgB;gBAC5B,SAAS,EAAE,uBAAuB;gBAClC,YAAY,EAAE,OAAO;gBACrB,YAAY;gBACZ,eAAe,EAAE,oCAAoC;oBACnD,CAAC,CAAC;wBACE,OAAO,EAAE,GAAG;wBACZ,QAAQ,EAAE;4BACR,EAAE,EAAE,KAAK;4BACT,MAAM,EAAE,UAAU;4BAClB,MAAM,EAAE,uBAAuB;4BAC/B,OAAO;yBACR;qBACF;oBACH,CAAC,CAAC,IAAI;aACT,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC;gBACpB,SAAS;gBACT,EAAE,EAAE,KAAK;gBACT,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;aAC3D,CAAC,CAAC;QACL,CAAC;IAAA,CACF;IAED,OAAO,MAAM,CAAC;AAAA,CACf;AAED,MAAM,UAAU,iCAAiC,CAC/C,MAAY,EAC4B;IACxC,OAAO,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAAA,CAC3C;AAED,MAAM,UAAU,0BAA0B,CACxC,MAAY,EACc;IAC1B,OAAO,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAAA,CAC3C;AAED,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW,EAAU;IACjE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAAA,CAC5C;AAED,SAAS,4BAA4B,CAAC,IAAa,EAAU;IAC3D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;IACnD,CAAC;IACD,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACxD,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC;AAAA,CAC1D;AAED,SAAS,iBAAiB,CACxB,CAAU,EACV,UAA0B,EACN;IACpB,IAAI,UAAU,KAAK,OAAO,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QACtD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,2BAA2B,CAAC,CAAC;IAC9D,IAAI,WAAW,KAAK,OAAO,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;QACxD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,QAAQ,CAAC;AAAA,CACjB;AAED,SAAS,sBAAsB,CAAC,MAAe,EAAY;IACzD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK;YAAE,SAAS;QACrB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAEvC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,OAAO,CAAC,KAAK,QAAQ;oBAAE,SAAS;gBACpC,IAAI,CAAC,CAAC;oBAAE,SAAS;gBACjB,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;YACpC,SAAS;QACX,CAAC;QAED,kCAAkC;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3D,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAAA,CAC9B;AAED,SAAS,iBAAiB,CAAC,WAAmB,EAAE,QAAgB,EAAU;IACxE,OAAO,GAAG,WAAW,KAAK,QAAQ,EAAE,CAAC;AAAA,CACtC;AAED,SAAS,yBAAyB,CAChC,WAAmB,EACnB,SAA4B,EAClB;IACV,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,QAAQ;YAAE,SAAS;QACxB,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,CAAC,EAAE,CAAC;YAC5C,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvB,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,GAAG,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAAA,CAC7B;AAED,SAAS,6BAA6B,CACpC,WAAmB,EACnB,QAAgB,EACR;IACR,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,WAAW,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7D,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC;IACvC,OAAO,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAAA,CACjD;AAED,KAAK,UAAU,mBAAmB,CAChC,EAAc,EACd,SAAiB,EACjB,WAAmB,EACA;IACnB,iEAAiE;IACjE,MAAM,UAAU,GAAG,MAAM,GAAG,CAAqB;;WAExC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;yBACX,SAAS;2BACP,WAAW;GACnC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACd,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;IAE7B,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GACV,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QAEvE,KAAK,MAAM,CAAC,IAAI,yBAAyB,CACvC,WAAW,EACX,sBAAsB,CAAC,MAAM,CAAC,CAC/B,EAAE,CAAC;YACF,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAAA,CAC9B;AAED,KAAK,UAAU,eAAe,CAC5B,EAAc,EACd,WAAmB,EACnB,QAAgB,EAKf;IACD,MAAM,CAAC,YAAY,EAAE,kBAAkB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3D,GAAG,CAAwD;;;6BAGlC,WAAW,oBAAoB,QAAQ;;KAE/D,CAAC,OAAO,CAAC,EAAE,CAAC;QACb,GAAG,CAA6B;;;6BAGP,WAAW,oBAAoB,QAAQ;;;KAG/D,CAAC,OAAO,CAAC,EAAE,CAAC;KACd,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAEnD,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,YAAY,GAAG,SAAS,EAAE,QAAQ,IAAI,eAAe,EAAE,QAAQ,IAAI,IAAI,CAAC;IAE9E,OAAO;QACL,YAAY;QACZ,eAAe,EAAE,SAAS,EAAE,gBAAgB,IAAI,IAAI;QACpD,WAAW,EAAE,KAAK;KACnB,CAAC;AAAA,CACH"}
@@ -36,7 +36,7 @@ export function isRequestOriginAllowed(args) {
36
36
  export function isWebSocketOriginAllowed(c, allowedOrigins) {
37
37
  return isRequestOriginAllowed({
38
38
  requestUrl: c.req.url,
39
- originHeader: c.req.header('origin'),
39
+ originHeader: c.req.raw.headers.get('origin') ?? c.req.header('origin'),
40
40
  allowedOrigins,
41
41
  });
42
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-origin.js","sourceRoot":"","sources":["../src/websocket-origin.ts"],"names":[],"mappings":"AAEA,SAAS,eAAe,CAAC,MAAc,EAAiB;IACtD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AAAA,CACF;AAED,MAAM,UAAU,sBAAsB,CAAC,IAItC,EAAW;IACV,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,gBAAgB;YACrB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChD,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,OAAO,gBAAgB,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AAAA,CACF;AAED,MAAM,UAAU,wBAAwB,CACtC,CAAU,EACV,cAA+B,EACtB;IACT,OAAO,sBAAsB,CAAC;QAC5B,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG;QACrB,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACpC,cAAc;KACf,CAAC,CAAC;AAAA,CACJ"}
1
+ {"version":3,"file":"websocket-origin.js","sourceRoot":"","sources":["../src/websocket-origin.ts"],"names":[],"mappings":"AAEA,SAAS,eAAe,CAAC,MAAc,EAAiB;IACtD,IAAI,CAAC;QACH,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AAAA,CACF;AAED,MAAM,UAAU,sBAAsB,CAAC,IAItC,EAAW;IACV,IAAI,IAAI,CAAC,cAAc,KAAK,GAAG,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM;YAAE,OAAO,KAAK,CAAC;QAC1B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACjD,OAAO,gBAAgB;YACrB,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAChD,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,OAAO,gBAAgB,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AAAA,CACF;AAED,MAAM,UAAU,wBAAwB,CACtC,CAAU,EACV,cAA+B,EACtB;IACT,OAAO,sBAAsB,CAAC;QAC5B,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG;QACrB,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;QACvE,cAAc;KACf,CAAC,CAAC;AAAA,CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncular/server-hono",
3
- "version": "0.0.6-206",
3
+ "version": "0.0.6-211",
4
4
  "description": "Hono adapter for the Syncular server with OpenAPI support",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Benjamin Kniffler",
@@ -62,17 +62,17 @@
62
62
  "@hono/standard-validator": "^0.2.2",
63
63
  "@standard-community/standard-json": "^0.3.5",
64
64
  "@standard-community/standard-openapi": "^0.2.9",
65
- "@syncular/console": "0.0.6-206",
66
- "@syncular/core": "0.0.6-206",
67
- "@syncular/server": "0.0.6-206",
65
+ "@syncular/console": "0.0.6-211",
66
+ "@syncular/core": "0.0.6-211",
67
+ "@syncular/server": "0.0.6-211",
68
68
  "@types/json-schema": "^7.0.15",
69
69
  "hono-openapi": "^1.2.0",
70
70
  "openapi-types": "^12.1.3"
71
71
  },
72
72
  "devDependencies": {
73
73
  "@syncular/config": "0.0.0",
74
- "@syncular/dialect-pglite": "0.0.6-206",
75
- "@syncular/server-dialect-postgres": "0.0.6-206",
74
+ "@syncular/dialect-pglite": "0.0.6-211",
75
+ "@syncular/server-dialect-postgres": "0.0.6-211",
76
76
  "kysely": "*",
77
77
  "zod": "*"
78
78
  },
@@ -10,7 +10,10 @@ import { createPostgresServerDialect } from '@syncular/server-dialect-postgres';
10
10
  import { Hono } from 'hono';
11
11
  import { defineWebSocketHelper, WSContext, type WSEvents } from 'hono/ws';
12
12
  import { type Kysely, sql } from 'kysely';
13
- import { createSyncServer } from '../create-server';
13
+ import {
14
+ createSyncServer,
15
+ resolveDefaultWebSocketAllowedOrigins,
16
+ } from '../create-server';
14
17
  import { getSyncWebSocketConnectionManager } from '../routes';
15
18
  import {
16
19
  createWebSocketConnectionOwnerKey,
@@ -471,6 +474,48 @@ describe('createSyncServer console configuration', () => {
471
474
  });
472
475
  });
473
476
 
477
+ it('accepts simple sync CORS allowlists without a custom resolver', async () => {
478
+ const options = createOptions();
479
+ const server = createSyncServer({
480
+ ...options,
481
+ routes: {
482
+ cors: {
483
+ allowedOrigins: ['https://allowed.syncular.test'],
484
+ },
485
+ },
486
+ });
487
+
488
+ const app = new Hono();
489
+ app.route('/sync', server.syncRoutes);
490
+
491
+ const allowedPreflight = await app.request(
492
+ new Request('http://localhost/sync', {
493
+ method: 'OPTIONS',
494
+ headers: {
495
+ Origin: 'https://allowed.syncular.test',
496
+ 'Access-Control-Request-Method': 'POST',
497
+ },
498
+ })
499
+ );
500
+ expect(allowedPreflight.status).toBe(204);
501
+ expect(allowedPreflight.headers.has('Access-Control-Allow-Origin')).toBe(
502
+ true
503
+ );
504
+ expect(
505
+ allowedPreflight.headers.get('Access-Control-Allow-Headers')
506
+ ).toContain('x-syncular-snapshot-scopes');
507
+ });
508
+
509
+ it('defaults websocket allowedOrigins from sync CORS allowlists', async () => {
510
+ expect(
511
+ resolveDefaultWebSocketAllowedOrigins({
512
+ cors: {
513
+ allowedOrigins: ['https://allowed.syncular.test'],
514
+ },
515
+ })
516
+ ).toEqual(['https://allowed.syncular.test']);
517
+ });
518
+
474
519
  it('allows same-origin realtime websocket upgrades when allowedOrigins is unset', async () => {
475
520
  const options = createOptions();
476
521
  let capturedEvents: WSEvents | null = null;
@@ -80,6 +80,12 @@ export interface SyncServerResult {
80
80
  consoleEventEmitter?: ConsoleEventEmitter;
81
81
  }
82
82
 
83
+ export function resolveDefaultWebSocketAllowedOrigins(
84
+ routes: SyncRoutesConfigWithRateLimit | undefined
85
+ ): string[] | '*' | undefined {
86
+ return routes?.websocket?.allowedOrigins ?? routes?.cors?.allowedOrigins;
87
+ }
88
+
83
89
  /**
84
90
  * Create a simplified sync server with sync and optional console routes.
85
91
  *
@@ -148,6 +154,8 @@ export function createSyncServer<
148
154
  throw error;
149
155
  })
150
156
  : undefined;
157
+ const defaultWebSocketAllowedOrigins =
158
+ resolveDefaultWebSocketAllowedOrigins(routes);
151
159
 
152
160
  // Create sync routes
153
161
  const syncRoutes = createSyncRoutes({
@@ -166,6 +174,7 @@ export function createSyncServer<
166
174
  websocket: upgradeWebSocket
167
175
  ? {
168
176
  ...routes?.websocket,
177
+ allowedOrigins: defaultWebSocketAllowedOrigins,
169
178
  enabled: true,
170
179
  upgradeWebSocket,
171
180
  }
@@ -198,7 +207,7 @@ export function createSyncServer<
198
207
  maxMessageBytes: routes?.websocket?.maxMessageBytes,
199
208
  maxMessagesPerWindow: routes?.websocket?.maxMessagesPerWindow,
200
209
  messageRateWindowMs: routes?.websocket?.messageRateWindowMs,
201
- allowedOrigins: routes?.websocket?.allowedOrigins,
210
+ allowedOrigins: defaultWebSocketAllowedOrigins,
202
211
  },
203
212
  }),
204
213
  });
package/src/routes.ts CHANGED
@@ -127,6 +127,32 @@ export interface SyncWebSocketConfig {
127
127
  }
128
128
 
129
129
  export interface SyncRoutesConfigWithRateLimit {
130
+ /**
131
+ * Optional browser CORS handling for sync routes.
132
+ * When configured, sync route responses and preflights include matching
133
+ * CORS headers directly from the generated sync app.
134
+ */
135
+ cors?: {
136
+ /**
137
+ * Simple exact-match origin allowlist.
138
+ * Use `'*'` to allow all origins.
139
+ * When omitted, provide `resolveOrigin` for custom logic.
140
+ */
141
+ allowedOrigins?: string[] | '*';
142
+ /**
143
+ * Advanced origin resolver for dynamic CORS decisions.
144
+ * When both `allowedOrigins` and `resolveOrigin` are provided,
145
+ * `resolveOrigin` takes precedence.
146
+ */
147
+ resolveOrigin?: (
148
+ origin: string | undefined,
149
+ context: Context
150
+ ) => string | null | Promise<string | null>;
151
+ allowCredentials?: boolean;
152
+ allowHeaders?: string[];
153
+ allowMethods?: string[];
154
+ maxAgeSeconds?: number;
155
+ };
130
156
  /**
131
157
  * Max commits per pull request.
132
158
  * Default: 100
@@ -316,6 +342,84 @@ type TraceContext = {
316
342
  spanId: string | null;
317
343
  };
318
344
 
345
+ const DEFAULT_SYNC_CORS_ALLOW_HEADERS = [
346
+ 'Content-Type',
347
+ 'Authorization',
348
+ 'x-syncular-publishable-key',
349
+ SNAPSHOT_SCOPES_HEADER,
350
+ 'x-syncular-transport-path',
351
+ 'x-syncular-client-id',
352
+ 'sentry-trace',
353
+ 'baggage',
354
+ 'traceparent',
355
+ 'tracestate',
356
+ ];
357
+
358
+ const DEFAULT_SYNC_CORS_ALLOW_METHODS = [
359
+ 'GET',
360
+ 'POST',
361
+ 'PUT',
362
+ 'DELETE',
363
+ 'OPTIONS',
364
+ ];
365
+
366
+ function applySyncCorsHeaders(args: {
367
+ headers: Headers;
368
+ allowedOrigin: string;
369
+ allowCredentials: boolean;
370
+ allowHeaders: string[];
371
+ allowMethods: string[];
372
+ maxAgeSeconds: number;
373
+ }): void {
374
+ args.headers.set('Access-Control-Allow-Origin', args.allowedOrigin);
375
+ args.headers.set(
376
+ 'Access-Control-Allow-Headers',
377
+ args.allowHeaders.join(', ')
378
+ );
379
+ args.headers.set(
380
+ 'Access-Control-Allow-Methods',
381
+ args.allowMethods.join(', ')
382
+ );
383
+ args.headers.set('Access-Control-Max-Age', String(args.maxAgeSeconds));
384
+ if (args.allowedOrigin !== '*') {
385
+ args.headers.append('Vary', 'Origin');
386
+ if (args.allowCredentials) {
387
+ args.headers.set('Access-Control-Allow-Credentials', 'true');
388
+ }
389
+ }
390
+ }
391
+
392
+ function createSyncCorsOriginDeniedResponse(origin: string): Response {
393
+ return Response.json(
394
+ {
395
+ error: 'CORS_ORIGIN_NOT_ALLOWED',
396
+ message: `Origin ${origin} is not allowed for sync access.`,
397
+ },
398
+ { status: 403 }
399
+ );
400
+ }
401
+
402
+ async function resolveSyncCorsOrigin(args: {
403
+ config: NonNullable<SyncRoutesConfigWithRateLimit['cors']>;
404
+ origin: string | undefined;
405
+ context: Context;
406
+ }): Promise<string | null> {
407
+ const { config, origin, context } = args;
408
+ if (typeof config.resolveOrigin === 'function') {
409
+ return config.resolveOrigin(origin, context);
410
+ }
411
+ if (config.allowedOrigins === '*') {
412
+ return '*';
413
+ }
414
+ if (Array.isArray(config.allowedOrigins)) {
415
+ if (!origin) {
416
+ return null;
417
+ }
418
+ return config.allowedOrigins.includes(origin) ? origin : null;
419
+ }
420
+ return null;
421
+ }
422
+
319
423
  function createOpaqueId(prefix: string): string {
320
424
  const randomPart =
321
425
  typeof crypto !== 'undefined' && 'randomUUID' in crypto
@@ -324,6 +428,10 @@ function createOpaqueId(prefix: string): string {
324
428
  return `${prefix}-${randomPart}`;
325
429
  }
326
430
 
431
+ function readOriginHeader(c: Context): string | undefined {
432
+ return c.req.raw.headers.get('origin') ?? c.req.header('origin');
433
+ }
434
+
327
435
  function readRequestId(c: Context): string {
328
436
  const headerRequestId = c.req.header('x-request-id')?.trim();
329
437
  if (headerRequestId) return headerRequestId;
@@ -574,6 +682,7 @@ export function createSyncRoutes<
574
682
  F extends SqlFamily = SqlFamily,
575
683
  >(options: CreateSyncRoutesOptions<DB, Auth, F>): Hono {
576
684
  const routes = new Hono();
685
+ const config = options.sync ?? {};
577
686
  routes.onError((error, c) => {
578
687
  captureSyncException(error, {
579
688
  event: 'sync.route.unhandled',
@@ -582,8 +691,53 @@ export function createSyncRoutes<
582
691
  });
583
692
  return c.text('Internal Server Error', 500);
584
693
  });
694
+ const corsConfig = config.cors;
695
+ if (corsConfig) {
696
+ routes.use('*', async (c, next) => {
697
+ const origin = readOriginHeader(c);
698
+ const allowedOrigin = await resolveSyncCorsOrigin({
699
+ config: corsConfig,
700
+ origin,
701
+ context: c,
702
+ });
703
+
704
+ if (origin && !allowedOrigin) {
705
+ return createSyncCorsOriginDeniedResponse(origin);
706
+ }
707
+
708
+ const resolvedOrigin = allowedOrigin ?? '*';
709
+ const allowHeaders =
710
+ corsConfig.allowHeaders ?? DEFAULT_SYNC_CORS_ALLOW_HEADERS;
711
+ const allowMethods =
712
+ corsConfig.allowMethods ?? DEFAULT_SYNC_CORS_ALLOW_METHODS;
713
+ const maxAgeSeconds = corsConfig.maxAgeSeconds ?? 86_400;
714
+
715
+ if (c.req.method === 'OPTIONS') {
716
+ const headers = new Headers();
717
+ applySyncCorsHeaders({
718
+ headers,
719
+ allowedOrigin: resolvedOrigin,
720
+ allowCredentials: corsConfig.allowCredentials ?? false,
721
+ allowHeaders,
722
+ allowMethods,
723
+ maxAgeSeconds,
724
+ });
725
+ return new Response(null, { status: 204, headers });
726
+ }
727
+
728
+ await next();
729
+ applySyncCorsHeaders({
730
+ headers: c.res.headers,
731
+ allowedOrigin: resolvedOrigin,
732
+ allowCredentials: corsConfig.allowCredentials ?? false,
733
+ allowHeaders,
734
+ allowMethods,
735
+ maxAgeSeconds,
736
+ });
737
+ return c.res;
738
+ });
739
+ }
585
740
  const handlerRegistry = createServerHandlerCollection(options.handlers);
586
- const config = options.sync ?? {};
587
741
  const maxPullLimitCommits = config.maxPullLimitCommits ?? 100;
588
742
  const maxSubscriptionsPerPull = config.maxSubscriptionsPerPull ?? 200;
589
743
  const maxPullLimitSnapshotRows = config.maxPullLimitSnapshotRows ?? 5000;
@@ -2105,6 +2259,10 @@ export function createSyncRoutes<
2105
2259
  const auth = await getAuth(c);
2106
2260
  if (!auth) return c.json({ error: 'UNAUTHENTICATED' }, 401);
2107
2261
  if (!isWebSocketOriginAllowed(c, websocketConfig.allowedOrigins)) {
2262
+ const origin = readOriginHeader(c);
2263
+ if (origin && corsConfig) {
2264
+ return createSyncCorsOriginDeniedResponse(origin);
2265
+ }
2108
2266
  return c.json({ error: 'FORBIDDEN_ORIGIN' }, 403);
2109
2267
  }
2110
2268
  const partitionId = auth.partitionId ?? 'default';
@@ -48,7 +48,7 @@ export function isWebSocketOriginAllowed(
48
48
  ): boolean {
49
49
  return isRequestOriginAllowed({
50
50
  requestUrl: c.req.url,
51
- originHeader: c.req.header('origin'),
51
+ originHeader: c.req.raw.headers.get('origin') ?? c.req.header('origin'),
52
52
  allowedOrigins,
53
53
  });
54
54
  }