create-hq 10.1.0 → 10.7.1

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.
Files changed (70) hide show
  1. package/dist/admin-onboarding.d.ts +42 -0
  2. package/dist/admin-onboarding.d.ts.map +1 -0
  3. package/dist/admin-onboarding.js +460 -0
  4. package/dist/admin-onboarding.js.map +1 -0
  5. package/dist/art.d.ts +17 -0
  6. package/dist/art.d.ts.map +1 -0
  7. package/dist/art.js +171 -0
  8. package/dist/art.js.map +1 -0
  9. package/dist/auth.d.ts +60 -23
  10. package/dist/auth.d.ts.map +1 -1
  11. package/dist/auth.js +219 -116
  12. package/dist/auth.js.map +1 -1
  13. package/dist/cloud.d.ts +26 -0
  14. package/dist/cloud.d.ts.map +1 -0
  15. package/dist/cloud.js +126 -0
  16. package/dist/cloud.js.map +1 -0
  17. package/dist/company-template.d.ts +34 -0
  18. package/dist/company-template.d.ts.map +1 -0
  19. package/dist/company-template.js +142 -0
  20. package/dist/company-template.js.map +1 -0
  21. package/dist/deps.d.ts +2 -0
  22. package/dist/deps.d.ts.map +1 -1
  23. package/dist/deps.js +42 -30
  24. package/dist/deps.js.map +1 -1
  25. package/dist/fetch-template.d.ts +2 -2
  26. package/dist/fetch-template.d.ts.map +1 -1
  27. package/dist/fetch-template.js +54 -38
  28. package/dist/fetch-template.js.map +1 -1
  29. package/dist/git.d.ts.map +1 -1
  30. package/dist/git.js +28 -4
  31. package/dist/git.js.map +1 -1
  32. package/dist/index.js +18 -1
  33. package/dist/index.js.map +1 -1
  34. package/dist/invite-command.d.ts +10 -0
  35. package/dist/invite-command.d.ts.map +1 -0
  36. package/dist/invite-command.js +110 -0
  37. package/dist/invite-command.js.map +1 -0
  38. package/dist/invite.d.ts +91 -0
  39. package/dist/invite.d.ts.map +1 -0
  40. package/dist/invite.js +230 -0
  41. package/dist/invite.js.map +1 -0
  42. package/dist/join-flow.d.ts +32 -0
  43. package/dist/join-flow.d.ts.map +1 -0
  44. package/dist/join-flow.js +194 -0
  45. package/dist/join-flow.js.map +1 -0
  46. package/dist/platform.d.ts +2 -2
  47. package/dist/platform.d.ts.map +1 -1
  48. package/dist/platform.js +14 -1
  49. package/dist/platform.js.map +1 -1
  50. package/dist/scaffold.d.ts +4 -1
  51. package/dist/scaffold.d.ts.map +1 -1
  52. package/dist/scaffold.js +152 -41
  53. package/dist/scaffold.js.map +1 -1
  54. package/dist/team-setup.d.ts +58 -0
  55. package/dist/team-setup.d.ts.map +1 -0
  56. package/dist/team-setup.js +237 -0
  57. package/dist/team-setup.js.map +1 -0
  58. package/dist/teams-flow.d.ts +36 -0
  59. package/dist/teams-flow.d.ts.map +1 -0
  60. package/dist/teams-flow.js +134 -0
  61. package/dist/teams-flow.js.map +1 -0
  62. package/dist/tui.d.ts +8 -0
  63. package/dist/tui.d.ts.map +1 -0
  64. package/dist/tui.js +86 -0
  65. package/dist/tui.js.map +1 -0
  66. package/dist/ui.d.ts +17 -0
  67. package/dist/ui.d.ts.map +1 -1
  68. package/dist/ui.js +45 -0
  69. package/dist/ui.js.map +1 -1
  70. package/package.json +1 -1
package/dist/art.js ADDED
@@ -0,0 +1,171 @@
1
+ import chalk from "chalk";
2
+ const VERSION = "7.0.0";
3
+ /**
4
+ * Raw banner lines without ANSI codes — testable.
5
+ */
6
+ export function bannerLines() {
7
+ return [
8
+ "",
9
+ " ┌──────────┐",
10
+ " │ ╔══════╗│",
11
+ " │ ║INDIGO║│",
12
+ " │ ║ HQ ║│",
13
+ " │ ╚══════╝│",
14
+ " ┌────┴──────────┴────┐",
15
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
16
+ " │ ░░ ▓▓ ░░ ▓▓ ░░ │",
17
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
18
+ " ┌────┴────────────────────┴────┐",
19
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
20
+ " │ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ │",
21
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
22
+ " ┌────┴─────────────────────────────┴────┐",
23
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
24
+ " │ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ │",
25
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
26
+ " │ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ │",
27
+ " ┌────┴──────────────────────────────────────┴────┐",
28
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
29
+ " │ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ │",
30
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
31
+ " │ ┌──────────────┐ │",
32
+ " │ │ ════════ │ │",
33
+ " └───────┴──────────────┴───────┘",
34
+ "",
35
+ " ██╗███╗ ██╗██████╗ ██╗ ██████╗ ██████╗ ██╗ ██╗ ██████╗ ",
36
+ " ██║████╗ ██║██╔══██╗██║██╔════╝ ██╔═══██╗ ██║ ██║██╔═══██╗",
37
+ " ██║██╔██╗ ██║██║ ██║██║██║ ███╗██║ ██║ ███████║██║ ██║",
38
+ " ██║██║╚██╗██║██║ ██║██║██║ ██║██║ ██║ ██╔══██║██║▄▄ ██║",
39
+ " ██║██║ ╚████║██████╔╝██║╚██████╔╝╚██████╔╝ ██║ ██║╚██████╔╝",
40
+ " ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══▀▀═╝ ",
41
+ "",
42
+ ` Personal OS for AI Workers v${VERSION}`,
43
+ "",
44
+ ];
45
+ }
46
+ /**
47
+ * Raw compact banner lines without ANSI codes — testable.
48
+ */
49
+ export function compactBannerLines() {
50
+ return [
51
+ "",
52
+ " ┌────────────┐",
53
+ " │ ╔════════╗ │",
54
+ " │ ║INDIGOHQ║ │",
55
+ " │ ╚════════╝ │",
56
+ " ┌────┴────────────┴────┐",
57
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
58
+ " │ ░░ ▓▓ ░░ ▓▓ ░░ │",
59
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
60
+ " │ ░░ ▓▓ ░░ ▓▓ ░░ │",
61
+ " │ ▓▓ ░░ ▓▓ ░░ ▓▓ │",
62
+ " │ ┌──────┐ │",
63
+ " │ │ ════ │ │",
64
+ " └────┴──────┴────────┘",
65
+ "",
66
+ " ██╗██╗ ██╗ ██████╗ ",
67
+ " ██║██║ ██║██╔═══██╗",
68
+ " ██║███████║██║ ██║",
69
+ " ██║██╔══██║██║▄▄ ██║",
70
+ " ██║██║ ██║╚██████╔╝",
71
+ " ╚═╝╚═╝ ╚═╝ ╚══▀▀═╝",
72
+ "",
73
+ " Personal OS for AI Workers",
74
+ ` v${VERSION}`,
75
+ "",
76
+ ];
77
+ }
78
+ /**
79
+ * Full-width ASCII art banner (80 cols) — retro office building + INDIGO HQ
80
+ */
81
+ export function banner() {
82
+ const b = chalk.cyan; // building structure
83
+ const bd = chalk.cyanBright; // building highlights
84
+ const w = chalk.blueBright; // windows (lit)
85
+ const wd = chalk.blue; // windows (dark)
86
+ const t = chalk.bold.whiteBright; // title text
87
+ const dim = chalk.dim;
88
+ const lines = [
89
+ "",
90
+ b(" ┌──────────┐"),
91
+ b(" │") + bd(" ╔══════╗") + b("│"),
92
+ b(" │") + bd(" ║INDIGO║") + b("│"),
93
+ b(" │") + bd(" ║ HQ ║") + b("│"),
94
+ b(" │") + bd(" ╚══════╝") + b("│"),
95
+ b(" ┌────┴──────────┴────┐"),
96
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
97
+ b(" │") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + b("│"),
98
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
99
+ b(" ┌────┴────────────────────┴────┐"),
100
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
101
+ b(" │") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + b("│"),
102
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
103
+ b(" ┌────┴─────────────────────────────┴────┐"),
104
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
105
+ b(" │") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + b("│"),
106
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
107
+ b(" │") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + b("│"),
108
+ b(" ┌────┴──────────────────────────────────────┴────┐"),
109
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
110
+ b(" │") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + b("│"),
111
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
112
+ b(" │") + wd(" ") + b("┌──────────────┐") + wd(" ") + b("│"),
113
+ b(" │") + wd(" ") + b("│") + bd(" ════════ ") + b("│") + wd(" ") + b("│"),
114
+ b(" └───────┴──────────────┴───────┘"),
115
+ "",
116
+ t(" ██╗███╗ ██╗██████╗ ██╗ ██████╗ ██████╗ ██╗ ██╗ ██████╗ "),
117
+ t(" ██║████╗ ██║██╔══██╗██║██╔════╝ ██╔═══██╗ ██║ ██║██╔═══██╗"),
118
+ t(" ██║██╔██╗ ██║██║ ██║██║██║ ███╗██║ ██║ ███████║██║ ██║"),
119
+ t(" ██║██║╚██╗██║██║ ██║██║██║ ██║██║ ██║ ██╔══██║██║▄▄ ██║"),
120
+ t(" ██║██║ ╚████║██████╔╝██║╚██████╔╝╚██████╔╝ ██║ ██║╚██████╔╝"),
121
+ t(" ╚═╝╚═╝ ╚═══╝╚═════╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══▀▀═╝ "),
122
+ "",
123
+ dim(" Personal OS for AI Workers") + dim(` v${VERSION}`),
124
+ "",
125
+ ];
126
+ for (const line of lines) {
127
+ console.log(line);
128
+ }
129
+ }
130
+ /**
131
+ * Compact banner for narrow terminals (< 80 cols)
132
+ */
133
+ export function compactBanner() {
134
+ const b = chalk.cyan;
135
+ const bd = chalk.cyanBright;
136
+ const w = chalk.blueBright;
137
+ const wd = chalk.blue;
138
+ const t = chalk.bold.whiteBright;
139
+ const dim = chalk.dim;
140
+ const lines = [
141
+ "",
142
+ b(" ┌────────────┐"),
143
+ b(" │") + bd(" ╔════════╗ ") + b("│"),
144
+ b(" │") + bd(" ║INDIGOHQ║ ") + b("│"),
145
+ b(" │") + bd(" ╚════════╝ ") + b("│"),
146
+ b(" ┌────┴────────────┴────┐"),
147
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
148
+ b(" │") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + b("│"),
149
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
150
+ b(" │") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + b("│"),
151
+ b(" │") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + wd(" ░░ ") + w(" ▓▓ ") + b("│"),
152
+ b(" │") + wd(" ") + b("┌──────┐") + wd(" ") + b("│"),
153
+ b(" │") + wd(" ") + b("│") + bd(" ════ ") + b("│") + wd(" ") + b("│"),
154
+ b(" └────┴──────┴────────┘"),
155
+ "",
156
+ t(" ██╗██╗ ██╗ ██████╗ "),
157
+ t(" ██║██║ ██║██╔═══██╗"),
158
+ t(" ██║███████║██║ ██║"),
159
+ t(" ██║██╔══██║██║▄▄ ██║"),
160
+ t(" ██║██║ ██║╚██████╔╝"),
161
+ t(" ╚═╝╚═╝ ╚═╝ ╚══▀▀═╝"),
162
+ "",
163
+ dim(" Personal OS for AI Workers"),
164
+ dim(` v${VERSION}`),
165
+ "",
166
+ ];
167
+ for (const line of lines) {
168
+ console.log(line);
169
+ }
170
+ }
171
+ //# sourceMappingURL=art.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"art.js","sourceRoot":"","sources":["../src/art.ts"],"names":[],"mappings":"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"}
package/dist/auth.d.ts CHANGED
@@ -1,32 +1,69 @@
1
1
  /**
2
- * Auth utilities for create-hq OAuth PKCE flow for Clerk (US-008)
2
+ * GitHub App device flow auth for create-hq.
3
3
  *
4
- * Reuses the same patterns as hq-cli/src/utils/auth.ts and
5
- * hq-cli/src/utils/token-store.ts but bundled inline so create-hq
6
- * has no dependency on @indigoai-us/hq-cli.
4
+ * Talks directly to github.com no backend involved.
5
+ *
6
+ * Flow:
7
+ * 1. POST github.com/login/device/code with our App's client_id
8
+ * 2. Display user_code, open verification_uri in browser
9
+ * 3. Poll github.com/login/oauth/access_token at the GitHub-specified interval
10
+ * 4. On success: GET api.github.com/user → store { access_token, login, id, name, email }
11
+ *
12
+ * Token is stored at ~/.hq/credentials.json (mode 0600). Tokens are
13
+ * GitHub App user-to-server tokens (ghu_…), so they ignore OAuth scopes —
14
+ * permissions are configured on the App settings page.
7
15
  *
8
16
  * Token values are NEVER written to stdout or logs.
9
17
  */
10
- export interface AuthToken {
11
- clerk_session_token: string;
12
- user_id: string;
13
- email: string;
14
- expires_at: string;
18
+ /** hq-team-sync GitHub App client ID (public — safe to commit). */
19
+ export declare const HQ_GITHUB_APP_CLIENT_ID = "Iv23liSdkCBQYhrNcRmI";
20
+ export declare const HQ_GITHUB_APP_SLUG = "hq-team-sync";
21
+ /** Stored credentials for the authenticated GitHub user. */
22
+ export interface GitHubAuth {
23
+ /** ghu_ user-to-server token from GitHub App device flow. */
24
+ access_token: string;
25
+ /** GitHub login (username). */
26
+ login: string;
27
+ /** GitHub numeric user ID. */
28
+ id: number;
29
+ /** Display name (may be null on GitHub, fall back to login). */
30
+ name: string | null;
31
+ /** Public email (may be null if user has it private). */
32
+ email: string | null;
33
+ /** ISO timestamp the token was issued. */
34
+ issued_at: string;
15
35
  }
16
- /** Save auth token to ~/.hq/auth.json with 0600 permissions. */
17
- export declare function saveToken(token: AuthToken): void;
18
- /** Load auth token from ~/.hq/auth.json. Returns null if missing/invalid. */
19
- export declare function loadToken(): AuthToken | null;
20
- /** Check if a token is expired or within 5 minutes of expiry. */
21
- export declare function isTokenExpired(token: AuthToken): boolean;
22
36
  /**
23
- * Start the OAuth PKCE auth flow:
24
- * 1. Generate PKCE code_verifier + code_challenge
25
- * 2. Start local HTTP server on a random port for the callback
26
- * 3. Open browser to Clerk auth URL
27
- * 4. Wait for callback with auth code
28
- * 5. Exchange code for token via registry /auth/token endpoint
29
- * 6. Save token and return AuthToken
37
+ * Backwards-compat alias used by older modules. Will be removed once all
38
+ * callers have migrated. New code should use GitHubAuth.
39
+ */
40
+ export type AuthToken = GitHubAuth;
41
+ /** Save credentials to ~/.hq/credentials.json with 0600 perms. */
42
+ export declare function saveGitHubAuth(auth: GitHubAuth): void;
43
+ /** Load credentials, or null if missing/invalid. */
44
+ export declare function loadGitHubAuth(): GitHubAuth | null;
45
+ /** Remove stored credentials. */
46
+ export declare function clearGitHubAuth(): void;
47
+ /**
48
+ * Quick liveness probe — does the stored token still work?
49
+ * Calls api.github.com/user with the token; returns true on 200.
50
+ */
51
+ export declare function isGitHubAuthValid(auth: GitHubAuth): Promise<boolean>;
52
+ /** Open a URL in the user's default browser. Best-effort, never throws. */
53
+ export declare function openBrowser(url: string): void;
54
+ /**
55
+ * Run the GitHub App device authorization flow.
56
+ *
57
+ * Throws on:
58
+ * - Network errors talking to github.com
59
+ * - User-denied authorization (access_denied)
60
+ * - Device code expiration
61
+ * - Failure to fetch the user profile
62
+ */
63
+ export declare function startGitHubDeviceFlow(): Promise<GitHubAuth>;
64
+ /**
65
+ * Authenticated fetch against api.github.com. Throws on non-2xx with
66
+ * the response body included for diagnostics.
30
67
  */
31
- export declare function startAuthFlow(registryUrl: string): Promise<AuthToken>;
68
+ export declare function githubApi<T>(pathname: string, auth: GitHubAuth, init?: RequestInit): Promise<T>;
32
69
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,MAAM,WAAW,SAAS;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAIhD;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,IAAI,SAAS,GAAG,IAAI,CAqB5C;AAED,iEAAiE;AACjE,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAIxD;AA0BD;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAkG3E"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAUH,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAC9D,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAWjD,4DAA4D;AAC5D,MAAM,WAAW,UAAU;IACzB,6DAA6D;IAC7D,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,yDAAyD;IACzD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC;AAkCnC,kEAAkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,CAKrD;AAED,oDAAoD;AACpD,wBAAgB,cAAc,IAAI,UAAU,GAAG,IAAI,CAelD;AAED,iCAAiC;AACjC,wBAAgB,eAAe,IAAI,IAAI,CAQtC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAc1E;AAID,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAkB7C;AAQD;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,UAAU,CAAC,CAyHjE;AAID;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,IAAI,GAAE,WAAgB,GACrB,OAAO,CAAC,CAAC,CAAC,CAwBZ"}