@10play/expo-air 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,14 @@
1
1
  import { WebSocketServer, WebSocket } from "ws";
2
+ import { createServer } from "http";
2
3
  import { query } from "@anthropic-ai/claude-agent-sdk";
3
4
  import { randomUUID } from "crypto";
4
- import { execSync } from "child_process";
5
+ import { execSync, execFileSync } from "child_process";
5
6
  import { readFileSync, writeFileSync, existsSync } from "fs";
6
7
  import { join } from "path";
7
8
  import chalk from "chalk";
8
9
  export class PromptServer {
9
10
  wss = null;
11
+ httpServer = null;
10
12
  port;
11
13
  clients = new Set();
12
14
  currentQuery = null;
@@ -107,6 +109,259 @@ export class PromptServer {
107
109
  return { hasPR: false };
108
110
  }
109
111
  }
112
+ getRecentBranches() {
113
+ try {
114
+ const output = execSync("git branch --sort=-committerdate --format='%(refname:short)|%(committerdate:iso8601)'", {
115
+ cwd: this.projectRoot,
116
+ encoding: "utf-8",
117
+ stdio: ["pipe", "pipe", "pipe"],
118
+ }).trim();
119
+ if (!output)
120
+ return [];
121
+ const currentBranch = this.getBranchName();
122
+ const branches = output
123
+ .split("\n")
124
+ .slice(0, 15)
125
+ .map((line) => {
126
+ const [name, lastCommitDate] = line.split("|");
127
+ return {
128
+ name: name.trim(),
129
+ isCurrent: name.trim() === currentBranch,
130
+ lastCommitDate: lastCommitDate?.trim(),
131
+ };
132
+ });
133
+ // Try to enrich with PR info
134
+ try {
135
+ const prOutput = execSync("gh pr list --json headRefName,number,title --limit 10", {
136
+ cwd: this.projectRoot,
137
+ encoding: "utf-8",
138
+ stdio: ["pipe", "pipe", "pipe"],
139
+ }).trim();
140
+ if (prOutput) {
141
+ const prs = JSON.parse(prOutput);
142
+ for (const pr of prs) {
143
+ const branch = branches.find((b) => b.name === pr.headRefName);
144
+ if (branch) {
145
+ branch.prNumber = String(pr.number);
146
+ branch.prTitle = pr.title;
147
+ }
148
+ }
149
+ }
150
+ }
151
+ catch {
152
+ // gh CLI not available or not authenticated, skip PR enrichment
153
+ }
154
+ return branches;
155
+ }
156
+ catch {
157
+ return [];
158
+ }
159
+ }
160
+ handleListBranches(ws) {
161
+ const branches = this.getRecentBranches();
162
+ this.sendToClient(ws, {
163
+ type: "branches_list",
164
+ branches,
165
+ timestamp: Date.now(),
166
+ });
167
+ this.log(`Sent ${branches.length} branches to client`, "info");
168
+ }
169
+ isValidBranchName(name) {
170
+ // Reject empty, whitespace-only, or overly long names
171
+ if (!name || name.trim() !== name || name.length > 250)
172
+ return false;
173
+ // Git branch name rules: no space, ~, ^, :, ?, *, [, \, control chars, "..", "//", trailing ".", trailing "/", ".lock"
174
+ if (/[\s~^:?*\[\]\\]/.test(name))
175
+ return false;
176
+ if (/\.\./.test(name))
177
+ return false;
178
+ if (/\/\//.test(name))
179
+ return false;
180
+ if (name.endsWith(".") || name.endsWith("/") || name.endsWith(".lock"))
181
+ return false;
182
+ if (name.startsWith("-") || name.startsWith("."))
183
+ return false;
184
+ return true;
185
+ }
186
+ handleSwitchBranch(ws, branchName) {
187
+ if (!this.isValidBranchName(branchName)) {
188
+ this.sendToClient(ws, {
189
+ type: "branch_switched",
190
+ branchName,
191
+ success: false,
192
+ error: "Invalid branch name",
193
+ timestamp: Date.now(),
194
+ });
195
+ return;
196
+ }
197
+ let didStash = false;
198
+ try {
199
+ // Check for uncommitted changes
200
+ const status = execSync("git status --porcelain -u", {
201
+ cwd: this.projectRoot,
202
+ encoding: "utf-8",
203
+ stdio: ["pipe", "pipe", "pipe"],
204
+ }).trim();
205
+ if (status) {
206
+ // Auto-stash (including untracked) before switching
207
+ try {
208
+ execFileSync("git", ["stash", "push", "-u", "-m", "expo-air-auto-stash"], {
209
+ cwd: this.projectRoot,
210
+ encoding: "utf-8",
211
+ stdio: ["pipe", "pipe", "pipe"],
212
+ });
213
+ didStash = true;
214
+ this.log("Auto-stashed uncommitted changes", "info");
215
+ }
216
+ catch (stashError) {
217
+ const msg = stashError instanceof Error ? stashError.message : String(stashError);
218
+ this.sendToClient(ws, {
219
+ type: "branch_switched",
220
+ branchName,
221
+ success: false,
222
+ error: `Failed to stash changes: ${msg}`,
223
+ timestamp: Date.now(),
224
+ });
225
+ this.log(`Failed to stash before switch: ${msg}`, "error");
226
+ return;
227
+ }
228
+ }
229
+ // Switch branch using execFileSync (no shell interpolation)
230
+ execFileSync("git", ["checkout", branchName], {
231
+ cwd: this.projectRoot,
232
+ encoding: "utf-8",
233
+ stdio: ["pipe", "pipe", "pipe"],
234
+ });
235
+ // Broadcast updated git status
236
+ const currentBranch = this.getBranchName();
237
+ const changes = this.getGitChanges();
238
+ this.broadcastGitStatus(currentBranch, changes);
239
+ this.sendToClient(ws, {
240
+ type: "branch_switched",
241
+ branchName: currentBranch,
242
+ success: true,
243
+ timestamp: Date.now(),
244
+ });
245
+ this.log(`Switched to branch: ${currentBranch}`, "success");
246
+ }
247
+ catch (error) {
248
+ const errorMessage = error instanceof Error ? error.message : String(error);
249
+ // Restore stash if we stashed before the failed checkout
250
+ if (didStash) {
251
+ try {
252
+ execFileSync("git", ["stash", "pop"], {
253
+ cwd: this.projectRoot,
254
+ encoding: "utf-8",
255
+ stdio: ["pipe", "pipe", "pipe"],
256
+ });
257
+ this.log("Restored stash after failed checkout", "info");
258
+ }
259
+ catch {
260
+ this.log("Warning: failed to restore stash after failed checkout", "error");
261
+ }
262
+ }
263
+ this.sendToClient(ws, {
264
+ type: "branch_switched",
265
+ branchName,
266
+ success: false,
267
+ error: errorMessage,
268
+ timestamp: Date.now(),
269
+ });
270
+ this.log(`Failed to switch branch: ${errorMessage}`, "error");
271
+ }
272
+ }
273
+ handleCreateBranch(ws, branchName) {
274
+ if (!this.isValidBranchName(branchName)) {
275
+ this.sendToClient(ws, {
276
+ type: "branch_created",
277
+ branchName,
278
+ success: false,
279
+ error: "Invalid branch name",
280
+ timestamp: Date.now(),
281
+ });
282
+ return;
283
+ }
284
+ let didStash = false;
285
+ try {
286
+ // Check for uncommitted changes
287
+ const status = execSync("git status --porcelain -u", {
288
+ cwd: this.projectRoot,
289
+ encoding: "utf-8",
290
+ stdio: ["pipe", "pipe", "pipe"],
291
+ }).trim();
292
+ if (status) {
293
+ try {
294
+ execFileSync("git", ["stash", "push", "-u", "-m", "expo-air-auto-stash"], {
295
+ cwd: this.projectRoot,
296
+ encoding: "utf-8",
297
+ stdio: ["pipe", "pipe", "pipe"],
298
+ });
299
+ didStash = true;
300
+ this.log("Auto-stashed uncommitted changes", "info");
301
+ }
302
+ catch (stashError) {
303
+ const msg = stashError instanceof Error ? stashError.message : String(stashError);
304
+ this.sendToClient(ws, {
305
+ type: "branch_created",
306
+ branchName,
307
+ success: false,
308
+ error: `Failed to stash changes: ${msg}`,
309
+ timestamp: Date.now(),
310
+ });
311
+ this.log(`Failed to stash before create: ${msg}`, "error");
312
+ return;
313
+ }
314
+ }
315
+ // Fetch latest main
316
+ execFileSync("git", ["fetch", "origin", "main"], {
317
+ cwd: this.projectRoot,
318
+ encoding: "utf-8",
319
+ stdio: ["pipe", "pipe", "pipe"],
320
+ });
321
+ // Create and checkout new branch from origin/main
322
+ execFileSync("git", ["checkout", "-b", branchName, "origin/main"], {
323
+ cwd: this.projectRoot,
324
+ encoding: "utf-8",
325
+ stdio: ["pipe", "pipe", "pipe"],
326
+ });
327
+ // Broadcast updated git status
328
+ const currentBranch = this.getBranchName();
329
+ const changes = this.getGitChanges();
330
+ this.broadcastGitStatus(currentBranch, changes);
331
+ this.sendToClient(ws, {
332
+ type: "branch_created",
333
+ branchName: currentBranch,
334
+ success: true,
335
+ timestamp: Date.now(),
336
+ });
337
+ this.log(`Created new branch: ${currentBranch}`, "success");
338
+ }
339
+ catch (error) {
340
+ const errorMessage = error instanceof Error ? error.message : String(error);
341
+ // Restore stash if we stashed before the failed operation
342
+ if (didStash) {
343
+ try {
344
+ execFileSync("git", ["stash", "pop"], {
345
+ cwd: this.projectRoot,
346
+ encoding: "utf-8",
347
+ stdio: ["pipe", "pipe", "pipe"],
348
+ });
349
+ this.log("Restored stash after failed branch creation", "info");
350
+ }
351
+ catch {
352
+ this.log("Warning: failed to restore stash after failed branch creation", "error");
353
+ }
354
+ }
355
+ this.sendToClient(ws, {
356
+ type: "branch_created",
357
+ branchName,
358
+ success: false,
359
+ error: errorMessage,
360
+ timestamp: Date.now(),
361
+ });
362
+ this.log(`Failed to create branch: ${errorMessage}`, "error");
363
+ }
364
+ }
110
365
  broadcastGitStatus(branchName, changes) {
111
366
  const prStatus = this.getPRStatus();
112
367
  const message = {
@@ -122,6 +377,44 @@ export class PromptServer {
122
377
  }
123
378
  this.log(`Git status updated: ${branchName} (${changes.length} changes, PR: ${prStatus.hasPR})`, "info");
124
379
  }
380
+ getGitRoot() {
381
+ try {
382
+ return execSync("git rev-parse --show-toplevel", {
383
+ cwd: this.projectRoot,
384
+ encoding: "utf-8",
385
+ stdio: ["pipe", "pipe", "pipe"],
386
+ }).trim();
387
+ }
388
+ catch {
389
+ return this.projectRoot;
390
+ }
391
+ }
392
+ retriggerHMR() {
393
+ const changes = this.getGitChanges();
394
+ if (changes.length === 0) {
395
+ this.log("HMR retrigger: no uncommitted files to re-touch", "info");
396
+ return;
397
+ }
398
+ // git status returns paths relative to the repo root, not projectRoot
399
+ const gitRoot = this.getGitRoot();
400
+ this.log(`HMR retrigger: re-touching ${changes.length} uncommitted files (root: ${gitRoot})`, "info");
401
+ let touched = 0;
402
+ for (const change of changes) {
403
+ try {
404
+ const filePath = join(gitRoot, change.file);
405
+ if (existsSync(filePath) && change.status !== "deleted") {
406
+ const content = readFileSync(filePath);
407
+ writeFileSync(filePath, content); // Same content, new mtime → Metro re-pushes HMR
408
+ touched++;
409
+ this.log(`HMR retrigger: re-touched ${change.file}`, "info");
410
+ }
411
+ }
412
+ catch (e) {
413
+ this.log(`HMR retrigger: failed to re-touch ${change.file}: ${e}`, "error");
414
+ }
415
+ }
416
+ this.log(`HMR retrigger: done, re-touched ${touched} files`, "success");
417
+ }
125
418
  getConfigPath() {
126
419
  return join(this.projectRoot, ".expo-air.local.json");
127
420
  }
@@ -176,17 +469,39 @@ export class PromptServer {
176
469
  }
177
470
  async start() {
178
471
  return new Promise((resolve, reject) => {
179
- this.wss = new WebSocketServer({ port: this.port });
180
- this.wss.on("listening", () => {
181
- this.startGitWatcher();
182
- resolve();
472
+ // HTTP server handles /hmr-retrigger and /health requests alongside the WebSocket server
473
+ this.httpServer = createServer((req, res) => {
474
+ this.log(`HTTP ${req.method} ${req.url}`, "info");
475
+ res.setHeader("Access-Control-Allow-Origin", "*");
476
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, OPTIONS");
477
+ if (req.method === "OPTIONS") {
478
+ res.writeHead(200);
479
+ res.end();
480
+ return;
481
+ }
482
+ if (req.url === "/hmr-retrigger" && req.method === "POST") {
483
+ this.retriggerHMR();
484
+ res.writeHead(200);
485
+ res.end("OK");
486
+ return;
487
+ }
488
+ res.writeHead(404);
489
+ res.end();
183
490
  });
491
+ this.wss = new WebSocketServer({ server: this.httpServer });
184
492
  this.wss.on("error", (error) => {
185
493
  reject(error);
186
494
  });
187
495
  this.wss.on("connection", (ws) => {
188
496
  this.handleConnection(ws);
189
497
  });
498
+ this.httpServer.listen(this.port, () => {
499
+ this.startGitWatcher();
500
+ resolve();
501
+ });
502
+ this.httpServer.on("error", (error) => {
503
+ reject(error);
504
+ });
190
505
  });
191
506
  }
192
507
  async stop() {
@@ -202,15 +517,21 @@ export class PromptServer {
202
517
  client.close();
203
518
  }
204
519
  this.clients.clear();
205
- // Close server
520
+ // Close servers
206
521
  return new Promise((resolve) => {
207
- if (this.wss) {
208
- this.wss.close(() => {
522
+ const closeHttp = () => {
523
+ if (this.httpServer) {
524
+ this.httpServer.close(() => resolve());
525
+ }
526
+ else {
209
527
  resolve();
210
- });
528
+ }
529
+ };
530
+ if (this.wss) {
531
+ this.wss.close(() => closeHttp());
211
532
  }
212
533
  else {
213
- resolve();
534
+ closeHttp();
214
535
  }
215
536
  });
216
537
  }
@@ -293,6 +614,19 @@ export class PromptServer {
293
614
  this.log("Push token registered", "info");
294
615
  return;
295
616
  }
617
+ // Handle branch operations
618
+ if (this.isListBranchesMessage(message)) {
619
+ this.handleListBranches(ws);
620
+ return;
621
+ }
622
+ if (this.isSwitchBranchMessage(message)) {
623
+ this.handleSwitchBranch(ws, message.branchName);
624
+ return;
625
+ }
626
+ if (this.isCreateBranchMessage(message)) {
627
+ this.handleCreateBranch(ws, message.branchName);
628
+ return;
629
+ }
296
630
  // Handle prompt message
297
631
  if (this.isPromptMessage(message)) {
298
632
  const promptId = message.id || randomUUID();
@@ -408,6 +742,28 @@ export class PromptServer {
408
742
  "token" in message &&
409
743
  typeof message.token === "string");
410
744
  }
745
+ isListBranchesMessage(message) {
746
+ return (typeof message === "object" &&
747
+ message !== null &&
748
+ "type" in message &&
749
+ message.type === "list_branches");
750
+ }
751
+ isSwitchBranchMessage(message) {
752
+ return (typeof message === "object" &&
753
+ message !== null &&
754
+ "type" in message &&
755
+ message.type === "switch_branch" &&
756
+ "branchName" in message &&
757
+ typeof message.branchName === "string");
758
+ }
759
+ isCreateBranchMessage(message) {
760
+ return (typeof message === "object" &&
761
+ message !== null &&
762
+ "type" in message &&
763
+ message.type === "create_branch" &&
764
+ "branchName" in message &&
765
+ typeof message.branchName === "string");
766
+ }
411
767
  async executeWithSDK(ws, promptId, content) {
412
768
  // Add user prompt to history
413
769
  this.conversationHistory.push({
@@ -570,6 +926,11 @@ IMPORTANT CONSTRAINTS:
570
926
  this.saveSession();
571
927
  }
572
928
  this.log(`Completed in ${message.duration_ms}ms, cost: $${message.total_cost_usd?.toFixed(4)}`, "success");
929
+ // Auto-retrigger HMR after successful completion
930
+ // This ensures Metro pushes any file changes even if HMR reconnected
931
+ // after the files were written but before the retrigger
932
+ this.log("Auto-triggering HMR retrigger after completion", "info");
933
+ this.retriggerHMR();
573
934
  }
574
935
  else {
575
936
  // Store failed result in history
@@ -1 +1 @@
1
- {"version":3,"file":"promptServer.js","sourceRoot":"","sources":["../../server/promptServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"promptServer.js","sourceRoot":"","sources":["../../server/promptServer.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,17 @@ export interface RegisterPushTokenMessage {
22
22
  type: "register_push_token";
23
23
  token: string;
24
24
  }
25
+ export interface ListBranchesMessage {
26
+ type: "list_branches";
27
+ }
28
+ export interface SwitchBranchMessage {
29
+ type: "switch_branch";
30
+ branchName: string;
31
+ }
32
+ export interface CreateBranchMessage {
33
+ type: "create_branch";
34
+ branchName: string;
35
+ }
25
36
  export interface StreamMessage {
26
37
  type: "stream";
27
38
  promptId: string;
@@ -86,6 +97,32 @@ export interface PushTokenAckMessage {
86
97
  success: boolean;
87
98
  timestamp: number;
88
99
  }
100
+ export interface BranchInfo {
101
+ name: string;
102
+ isCurrent: boolean;
103
+ prNumber?: string;
104
+ prTitle?: string;
105
+ lastCommitDate?: string;
106
+ }
107
+ export interface BranchesListMessage {
108
+ type: "branches_list";
109
+ branches: BranchInfo[];
110
+ timestamp: number;
111
+ }
112
+ export interface BranchSwitchedMessage {
113
+ type: "branch_switched";
114
+ branchName: string;
115
+ success: boolean;
116
+ error?: string;
117
+ timestamp: number;
118
+ }
119
+ export interface BranchCreatedMessage {
120
+ type: "branch_created";
121
+ branchName: string;
122
+ success: boolean;
123
+ error?: string;
124
+ timestamp: number;
125
+ }
89
126
  export interface ConversationEntry {
90
127
  role: "user" | "assistant";
91
128
  content: string;
@@ -111,6 +148,6 @@ export interface HistoryMessage {
111
148
  entries: AnyConversationEntry[];
112
149
  timestamp: number;
113
150
  }
114
- export type OutgoingMessage = StreamMessage | ToolMessage | StatusMessage | ResultMessage | ErrorMessage | SessionClearedMessage | StoppedMessage | HistoryMessage | GitStatusMessage | PushTokenAckMessage;
115
- export type IncomingMessage = PromptMessage | NewSessionMessage | StopMessage | DiscardChangesMessage | RegisterPushTokenMessage;
151
+ export type OutgoingMessage = StreamMessage | ToolMessage | StatusMessage | ResultMessage | ErrorMessage | SessionClearedMessage | StoppedMessage | HistoryMessage | GitStatusMessage | PushTokenAckMessage | BranchesListMessage | BranchSwitchedMessage | BranchCreatedMessage;
152
+ export type IncomingMessage = PromptMessage | NewSessionMessage | StopMessage | DiscardChangesMessage | RegisterPushTokenMessage | ListBranchesMessage | SwitchBranchMessage | CreateBranchMessage;
116
153
  //# sourceMappingURL=messages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../types/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../types/messages.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,WAAW,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,CAAC;CACpE;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,uBAAuB,CAAC;AAEvG,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,WAAW,GACX,aAAa,GACb,aAAa,GACb,YAAY,GACZ,qBAAqB,GACrB,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,mBAAmB,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,iBAAiB,GACjB,WAAW,GACX,qBAAqB,GACrB,wBAAwB,GACxB,mBAAmB,GACnB,mBAAmB,GACnB,mBAAmB,CAAC"}