@sendbird/cli 0.0.0-stage → 0.3.0-alpha.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.
- package/.claude-plugin/plugin.json +11 -0
- package/.codex-plugin/plugin.json +33 -0
- package/LICENSE +13 -0
- package/NOTICE.md +1105 -0
- package/PROVENANCE.md +15 -0
- package/README.md +457 -2
- package/dist/acl.d.ts +2 -0
- package/dist/acl.js +12 -0
- package/dist/acl.js.map +1 -0
- package/dist/billing-plan.d.ts +68 -0
- package/dist/billing-plan.js +235 -0
- package/dist/billing-plan.js.map +1 -0
- package/dist/browser.d.ts +1 -0
- package/dist/browser.js +20 -0
- package/dist/browser.js.map +1 -0
- package/dist/calls-catalog.d.ts +79 -0
- package/dist/calls-catalog.js +322 -0
- package/dist/calls-catalog.js.map +1 -0
- package/dist/calls-credits.d.ts +31 -0
- package/dist/calls-credits.js +224 -0
- package/dist/calls-credits.js.map +1 -0
- package/dist/calls-trial.d.ts +45 -0
- package/dist/calls-trial.js +77 -0
- package/dist/calls-trial.js.map +1 -0
- package/dist/calls.d.ts +10 -0
- package/dist/calls.js +470 -0
- package/dist/calls.js.map +1 -0
- package/dist/catalog.d.ts +67 -0
- package/dist/catalog.js +784 -0
- package/dist/catalog.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.js +502 -0
- package/dist/cli.js.map +1 -0
- package/dist/core.d.ts +86 -0
- package/dist/core.js +531 -0
- package/dist/core.js.map +1 -0
- package/dist/diagnostics.d.ts +206 -0
- package/dist/diagnostics.js +664 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/discovery.d.ts +700 -0
- package/dist/discovery.js +838 -0
- package/dist/discovery.js.map +1 -0
- package/dist/docs.d.ts +31 -0
- package/dist/docs.js +137 -0
- package/dist/docs.js.map +1 -0
- package/dist/features.d.ts +131 -0
- package/dist/features.js +227 -0
- package/dist/features.js.map +1 -0
- package/dist/generated-api.d.ts +116 -0
- package/dist/generated-api.js +118 -0
- package/dist/generated-api.js.map +1 -0
- package/dist/human-format.d.ts +40 -0
- package/dist/human-format.js +205 -0
- package/dist/human-format.js.map +1 -0
- package/dist/human-list.d.ts +2 -0
- package/dist/human-list.js +368 -0
- package/dist/human-list.js.map +1 -0
- package/dist/human-output.d.ts +10 -0
- package/dist/human-output.js +1351 -0
- package/dist/human-output.js.map +1 -0
- package/dist/human-pro.d.ts +3 -0
- package/dist/human-pro.js +201 -0
- package/dist/human-pro.js.map +1 -0
- package/dist/human-progress.d.ts +5 -0
- package/dist/human-progress.js +49 -0
- package/dist/human-progress.js.map +1 -0
- package/dist/local.d.ts +42 -0
- package/dist/local.js +707 -0
- package/dist/local.js.map +1 -0
- package/dist/oauth-callback.d.ts +3 -0
- package/dist/oauth-callback.js +66 -0
- package/dist/oauth-callback.js.map +1 -0
- package/dist/oauth-lock.d.ts +6 -0
- package/dist/oauth-lock.js +212 -0
- package/dist/oauth-lock.js.map +1 -0
- package/dist/oauth.d.ts +32 -0
- package/dist/oauth.js +493 -0
- package/dist/oauth.js.map +1 -0
- package/dist/presentation.d.ts +208 -0
- package/dist/presentation.js +156 -0
- package/dist/presentation.js.map +1 -0
- package/dist/pro-api-catalog.d.ts +24 -0
- package/dist/pro-api-catalog.js +619 -0
- package/dist/pro-api-catalog.js.map +1 -0
- package/dist/pro-api.d.ts +10 -0
- package/dist/pro-api.js +338 -0
- package/dist/pro-api.js.map +1 -0
- package/dist/project.d.ts +34 -0
- package/dist/project.js +62 -0
- package/dist/project.js.map +1 -0
- package/dist/recovery.d.ts +41 -0
- package/dist/recovery.js +417 -0
- package/dist/recovery.js.map +1 -0
- package/dist/runner.d.ts +47 -0
- package/dist/runner.js +603 -0
- package/dist/runner.js.map +1 -0
- package/dist/sdk-catalog.d.ts +69 -0
- package/dist/sdk-catalog.js +527 -0
- package/dist/sdk-catalog.js.map +1 -0
- package/dist/sdk-config.d.ts +19 -0
- package/dist/sdk-config.js +85 -0
- package/dist/sdk-config.js.map +1 -0
- package/dist/sdk-dto.d.ts +244 -0
- package/dist/sdk-dto.js +98 -0
- package/dist/sdk-dto.js.map +1 -0
- package/dist/sdk-limits.d.ts +2 -0
- package/dist/sdk-limits.js +3 -0
- package/dist/sdk-limits.js.map +1 -0
- package/dist/sdk-node-file-reader.d.ts +6 -0
- package/dist/sdk-node-file-reader.js +38 -0
- package/dist/sdk-node-file-reader.js.map +1 -0
- package/dist/sdk-pro-catalog.d.ts +22 -0
- package/dist/sdk-pro-catalog.js +234 -0
- package/dist/sdk-pro-catalog.js.map +1 -0
- package/dist/sdk-pro-runtime.d.ts +31 -0
- package/dist/sdk-pro-runtime.js +293 -0
- package/dist/sdk-pro-runtime.js.map +1 -0
- package/dist/sdk-query.d.ts +10 -0
- package/dist/sdk-query.js +29 -0
- package/dist/sdk-query.js.map +1 -0
- package/dist/sdk-runtime.d.ts +15 -0
- package/dist/sdk-runtime.js +685 -0
- package/dist/sdk-runtime.js.map +1 -0
- package/dist/sdk-worker.d.ts +1 -0
- package/dist/sdk-worker.js +26 -0
- package/dist/sdk-worker.js.map +1 -0
- package/dist/sdk.d.ts +29 -0
- package/dist/sdk.js +346 -0
- package/dist/sdk.js.map +1 -0
- package/dist/search-engine.d.ts +17 -0
- package/dist/search-engine.js +54 -0
- package/dist/search-engine.js.map +1 -0
- package/dist/search-intents.d.ts +2 -0
- package/dist/search-intents.js +98 -0
- package/dist/search-intents.js.map +1 -0
- package/dist/search.d.ts +7 -0
- package/dist/search.js +58 -0
- package/dist/search.js.map +1 -0
- package/dist/secret-output.d.ts +2 -0
- package/dist/secret-output.js +108 -0
- package/dist/secret-output.js.map +1 -0
- package/dist/shell.d.ts +3 -0
- package/dist/shell.js +14 -0
- package/dist/shell.js.map +1 -0
- package/dist/skills.d.ts +210 -0
- package/dist/skills.js +374 -0
- package/dist/skills.js.map +1 -0
- package/dist/value-semantics.d.ts +70 -0
- package/dist/value-semantics.js +173 -0
- package/dist/value-semantics.js.map +1 -0
- package/dist/version.d.ts +1 -0
- package/dist/version.js +3 -0
- package/dist/version.js.map +1 -0
- package/dist/windows.d.ts +4 -0
- package/dist/windows.js +136 -0
- package/dist/windows.js.map +1 -0
- package/dist/workflows.d.ts +228 -0
- package/dist/workflows.js +1207 -0
- package/dist/workflows.js.map +1 -0
- package/package.json +86 -4
- package/plugin.json +22 -0
- package/references/agent-guide.json +196 -0
- package/references/commands.md +247 -0
- package/references/dashboard-inventory.json +14796 -0
- package/references/docs-index.json +2709 -0
- package/references/sdk-commands.json +15065 -0
- package/references/workflows.json +1246 -0
- package/skills/sendbird/SKILL.md +96 -0
- package/skills/sendbird/agents/openai.yaml +4 -0
- package/skills/sendbird/references/build-chat-app.md +49 -0
- package/skills/sendbird/references/client-guide.md +34 -0
- package/skills/sendbird/references/client-plugin-bridge.md +77 -0
- package/skills/sendbird/references/client-plugin-install.md +39 -0
- package/skills/sendbird/references/operational-checks.md +35 -0
- package/skills/sendbird/references/pro-capabilities.md +52 -0
- package/skills/sendbird/scripts/client-guide.mjs +283 -0
- package/skills/sendbird/scripts/client-plugin-bridge.mjs +703 -0
- package/skills/sendbird-setup/SKILL.md +18 -0
- package/skills/sendbird-setup/agents/openai.yaml +4 -0
- package/skills/sendbird-setup/references/onboarding.md +73 -0
- package/skills/sendbird-setup/scripts/install-cli.mjs +447 -0
- package/skills/sendbird-setup/scripts/npm-run.mjs +34 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type Definition } from "./catalog.js";
|
|
2
|
+
export type SdkDefinition = Definition & {
|
|
3
|
+
action: string;
|
|
4
|
+
mutates: boolean;
|
|
5
|
+
stream?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare const sdkDefinitions: SdkDefinition[];
|
|
8
|
+
export declare function describeSdk(d: SdkDefinition): {
|
|
9
|
+
transport: string;
|
|
10
|
+
authentication: string;
|
|
11
|
+
mutates: boolean;
|
|
12
|
+
stream: boolean;
|
|
13
|
+
source_url: string;
|
|
14
|
+
example: {
|
|
15
|
+
context: {
|
|
16
|
+
"as-user": string;
|
|
17
|
+
"org-id"?: string | undefined;
|
|
18
|
+
"app-id": string;
|
|
19
|
+
} | {
|
|
20
|
+
"as-user": string;
|
|
21
|
+
"org-id": string;
|
|
22
|
+
} | {
|
|
23
|
+
"as-user": string;
|
|
24
|
+
"org-id"?: undefined;
|
|
25
|
+
};
|
|
26
|
+
command: string;
|
|
27
|
+
params: {
|
|
28
|
+
[x: string]: unknown;
|
|
29
|
+
};
|
|
30
|
+
query: {
|
|
31
|
+
[x: string]: unknown;
|
|
32
|
+
};
|
|
33
|
+
body: Record<string, unknown>;
|
|
34
|
+
};
|
|
35
|
+
private_input_fields?: string[] | undefined;
|
|
36
|
+
params: Record<string, unknown>;
|
|
37
|
+
query: Record<string, unknown>;
|
|
38
|
+
body: Record<string, unknown>;
|
|
39
|
+
response: Record<string, unknown>;
|
|
40
|
+
dangerous: boolean;
|
|
41
|
+
source: [string, string];
|
|
42
|
+
requires_org_context?: boolean | undefined;
|
|
43
|
+
command: string;
|
|
44
|
+
description: string;
|
|
45
|
+
method: string;
|
|
46
|
+
path: string;
|
|
47
|
+
scope: "app" | "org" | undefined;
|
|
48
|
+
};
|
|
49
|
+
export declare function sdkExample(d: SdkDefinition): {
|
|
50
|
+
context: {
|
|
51
|
+
"as-user": string;
|
|
52
|
+
"org-id"?: string | undefined;
|
|
53
|
+
"app-id": string;
|
|
54
|
+
} | {
|
|
55
|
+
"as-user": string;
|
|
56
|
+
"org-id": string;
|
|
57
|
+
} | {
|
|
58
|
+
"as-user": string;
|
|
59
|
+
"org-id"?: undefined;
|
|
60
|
+
};
|
|
61
|
+
command: string;
|
|
62
|
+
params: {
|
|
63
|
+
[x: string]: unknown;
|
|
64
|
+
};
|
|
65
|
+
query: {
|
|
66
|
+
[x: string]: unknown;
|
|
67
|
+
};
|
|
68
|
+
body: Record<string, unknown>;
|
|
69
|
+
};
|
|
@@ -0,0 +1,527 @@
|
|
|
1
|
+
import { proSdkDefinitions, expressiveFields, translationFields, metaArray, } from "./sdk-pro-catalog.js";
|
|
2
|
+
/**
|
|
3
|
+
* Declarative contract for commands executed through the Chat SDK as a user.
|
|
4
|
+
* Keep this separate from Dashboard API definitions: identical resources can
|
|
5
|
+
* have different permissions, inputs, and observable outcomes in each domain.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { SDK_QUERY_PAGE_LIMIT } from "./sdk-limits.js";
|
|
9
|
+
import { describe, exampleFor } from "./catalog.js";
|
|
10
|
+
const text = z.string().min(1);
|
|
11
|
+
const id = z.number().int().positive().max(Number.MAX_SAFE_INTEGER);
|
|
12
|
+
const channel = { type: z.enum(["open", "group", "supergroup"]), id: text };
|
|
13
|
+
const group = { ...channel, type: z.enum(["group", "supergroup"]) };
|
|
14
|
+
const regular = { ...channel, type: z.literal("group") };
|
|
15
|
+
const message = { ...channel, message_id: id };
|
|
16
|
+
const page = {
|
|
17
|
+
before_id: id.optional(),
|
|
18
|
+
before: z
|
|
19
|
+
.number()
|
|
20
|
+
.int()
|
|
21
|
+
.nonnegative()
|
|
22
|
+
.max(Number.MAX_SAFE_INTEGER)
|
|
23
|
+
.optional(),
|
|
24
|
+
limit: z.number().int().min(1).max(100).default(20),
|
|
25
|
+
};
|
|
26
|
+
// SDK query cursors are process-local. A later page is replayed from page 1.
|
|
27
|
+
const queryPage = z
|
|
28
|
+
.number()
|
|
29
|
+
.int()
|
|
30
|
+
.positive()
|
|
31
|
+
.max(SDK_QUERY_PAGE_LIMIT)
|
|
32
|
+
.default(1);
|
|
33
|
+
const groupType = z.enum(["all", "group", "supergroup"]).default("all");
|
|
34
|
+
const countPreference = z.enum([
|
|
35
|
+
"all",
|
|
36
|
+
"unread_message_count_only",
|
|
37
|
+
"unread_mention_count_only",
|
|
38
|
+
"off",
|
|
39
|
+
]);
|
|
40
|
+
const messageBody = {
|
|
41
|
+
...expressiveFields,
|
|
42
|
+
...translationFields,
|
|
43
|
+
poll_id: id.optional(),
|
|
44
|
+
message: text,
|
|
45
|
+
custom_type: z.string().optional(),
|
|
46
|
+
data: z.string().optional(),
|
|
47
|
+
parent_message_id: id.optional(),
|
|
48
|
+
};
|
|
49
|
+
const sdkUser = z.object({
|
|
50
|
+
user_id: text,
|
|
51
|
+
nickname: z.string().optional(),
|
|
52
|
+
connection_status: z.enum(["online", "offline", "nonavailable"]).optional(),
|
|
53
|
+
last_seen_at: z.number().nullable().optional(),
|
|
54
|
+
preferred_languages: z.array(z.string()).nullable().optional(),
|
|
55
|
+
restriction_info: z
|
|
56
|
+
.object({
|
|
57
|
+
type: z.string().nullable(),
|
|
58
|
+
end_at: z.number(),
|
|
59
|
+
description: z.string().nullable(),
|
|
60
|
+
})
|
|
61
|
+
.optional(),
|
|
62
|
+
});
|
|
63
|
+
const sdkMessage = z
|
|
64
|
+
.object({
|
|
65
|
+
message_id: id,
|
|
66
|
+
channel_url: text,
|
|
67
|
+
created_at: z.number(),
|
|
68
|
+
type: z.string(),
|
|
69
|
+
message: z.string().optional(),
|
|
70
|
+
sender: sdkUser.optional(),
|
|
71
|
+
mention_type: z.enum(["users", "channel"]).nullable().optional(),
|
|
72
|
+
mentioned_users: z.array(sdkUser).nullable().optional(),
|
|
73
|
+
mentioned_user_ids: z.array(z.string()).nullable().optional(),
|
|
74
|
+
meta_arrays: z.array(metaArray).optional(),
|
|
75
|
+
poll_id: id.nullable().optional(),
|
|
76
|
+
translations: z.record(z.string(), z.string()).optional(),
|
|
77
|
+
requires_auth: z.boolean().optional(),
|
|
78
|
+
thumbnails: z
|
|
79
|
+
.array(z.object({
|
|
80
|
+
url: z.string(),
|
|
81
|
+
width: z.number(),
|
|
82
|
+
height: z.number(),
|
|
83
|
+
real_width: z.number(),
|
|
84
|
+
real_height: z.number(),
|
|
85
|
+
}))
|
|
86
|
+
.optional(),
|
|
87
|
+
})
|
|
88
|
+
.passthrough();
|
|
89
|
+
const sdkOutputs = {
|
|
90
|
+
status: z.object({ connected: z.boolean(), app_id: text, user: sdkUser }),
|
|
91
|
+
send: sdkMessage,
|
|
92
|
+
file: sdkMessage,
|
|
93
|
+
get: sdkMessage,
|
|
94
|
+
update: sdkMessage,
|
|
95
|
+
reply: sdkMessage,
|
|
96
|
+
list: z.object({
|
|
97
|
+
messages: z.array(sdkMessage),
|
|
98
|
+
next_before_id: id.nullable(),
|
|
99
|
+
pagination: z.string(),
|
|
100
|
+
}),
|
|
101
|
+
thread: z.object({
|
|
102
|
+
parent: sdkMessage,
|
|
103
|
+
messages: z.array(sdkMessage),
|
|
104
|
+
next_before: z.number().nullable(),
|
|
105
|
+
pagination: z.string(),
|
|
106
|
+
note: z.string().optional(),
|
|
107
|
+
}),
|
|
108
|
+
delete: z.object({ deleted: z.boolean(), message_id: id }),
|
|
109
|
+
"reaction-add": z.object({
|
|
110
|
+
message_id: id,
|
|
111
|
+
key: text,
|
|
112
|
+
user_id: text,
|
|
113
|
+
operation: z.string(),
|
|
114
|
+
}),
|
|
115
|
+
"reaction-remove": z.object({
|
|
116
|
+
message_id: id,
|
|
117
|
+
key: text,
|
|
118
|
+
user_id: text,
|
|
119
|
+
operation: z.string(),
|
|
120
|
+
}),
|
|
121
|
+
receipts: z.object({
|
|
122
|
+
message_id: id,
|
|
123
|
+
unread_count: z.number(),
|
|
124
|
+
undelivered_count: z.number(),
|
|
125
|
+
read_members: z.array(sdkUser),
|
|
126
|
+
unread_members: z.array(sdkUser),
|
|
127
|
+
}),
|
|
128
|
+
pin: z.object({ pinned: z.boolean(), message_id: id }),
|
|
129
|
+
unpin: z.object({ pinned: z.boolean(), message_id: id }),
|
|
130
|
+
join: z
|
|
131
|
+
.object({ channel_url: text, name: z.string(), type: text })
|
|
132
|
+
.passthrough(),
|
|
133
|
+
accept: z
|
|
134
|
+
.object({ channel_url: text, name: z.string(), type: text })
|
|
135
|
+
.passthrough(),
|
|
136
|
+
leave: z.object({ left: z.boolean(), channel_url: text }),
|
|
137
|
+
decline: z.object({ declined: z.boolean(), channel_url: text }),
|
|
138
|
+
read: z.object({ read: z.boolean(), channel_url: text }),
|
|
139
|
+
typing: z.object({ typing: z.boolean(), channel_url: text }),
|
|
140
|
+
participants: z.object({
|
|
141
|
+
participants: z.array(sdkUser),
|
|
142
|
+
has_more: z.boolean(),
|
|
143
|
+
page: z.number().int().positive(),
|
|
144
|
+
next_page: z.number().int().positive().nullable(),
|
|
145
|
+
pagination: z.string(),
|
|
146
|
+
}),
|
|
147
|
+
"members-list": z.object({
|
|
148
|
+
members: z.array(sdkUser),
|
|
149
|
+
has_more: z.boolean(),
|
|
150
|
+
page: z.number().int().positive(),
|
|
151
|
+
next_page: z.number().int().positive().nullable(),
|
|
152
|
+
pagination: z.string(),
|
|
153
|
+
}),
|
|
154
|
+
"members-invite": z
|
|
155
|
+
.object({ channel_url: text, name: z.string(), type: text })
|
|
156
|
+
.passthrough(),
|
|
157
|
+
"my-channels-list": z.object({
|
|
158
|
+
channels: z.array(z.object({
|
|
159
|
+
channel_url: text,
|
|
160
|
+
name: z.string(),
|
|
161
|
+
type: z.enum(["group", "supergroup"]),
|
|
162
|
+
last_message_id: id.nullable(),
|
|
163
|
+
sdk_unread_message_count_snapshot: z
|
|
164
|
+
.number()
|
|
165
|
+
.int()
|
|
166
|
+
.nonnegative()
|
|
167
|
+
.nullable(),
|
|
168
|
+
sdk_unread_mention_count_snapshot: z
|
|
169
|
+
.number()
|
|
170
|
+
.int()
|
|
171
|
+
.nonnegative()
|
|
172
|
+
.nullable(),
|
|
173
|
+
my_member_state: z.string(),
|
|
174
|
+
my_count_preference: countPreference,
|
|
175
|
+
member_count: z.number().int().nonnegative(),
|
|
176
|
+
})),
|
|
177
|
+
has_more: z.boolean(),
|
|
178
|
+
page: z.number().int().positive(),
|
|
179
|
+
next_page: z.number().int().positive().nullable(),
|
|
180
|
+
pagination: z.string(),
|
|
181
|
+
filters: z.object({
|
|
182
|
+
type: groupType,
|
|
183
|
+
member_state: z.enum(["all", "joined", "invited"]),
|
|
184
|
+
}),
|
|
185
|
+
unread_count_note: z.string(),
|
|
186
|
+
}),
|
|
187
|
+
"my-channels-unread": z.object({
|
|
188
|
+
type: groupType,
|
|
189
|
+
unread_message_count: z.number().int().nonnegative(),
|
|
190
|
+
}),
|
|
191
|
+
"emoji-list": z.object({
|
|
192
|
+
emoji_hash: z.string(),
|
|
193
|
+
emojis: z.array(z.object({
|
|
194
|
+
key: text,
|
|
195
|
+
url: z.string(),
|
|
196
|
+
category_id: z.number().int(),
|
|
197
|
+
category_name: z.string(),
|
|
198
|
+
})),
|
|
199
|
+
}),
|
|
200
|
+
"invitation-get": z.object({ auto_accept: z.boolean() }),
|
|
201
|
+
"invitation-set": z.object({ auto_accept: z.boolean() }),
|
|
202
|
+
"count-preference-get": z.object({
|
|
203
|
+
channel_url: text,
|
|
204
|
+
type: z.enum(["group", "supergroup"]),
|
|
205
|
+
preference: countPreference,
|
|
206
|
+
}),
|
|
207
|
+
"count-preference-set": z.object({
|
|
208
|
+
channel_url: text,
|
|
209
|
+
type: z.enum(["group", "supergroup"]),
|
|
210
|
+
preference: countPreference,
|
|
211
|
+
}),
|
|
212
|
+
"typing-users": z.object({ channel_url: text, users: z.array(sdkUser) }),
|
|
213
|
+
"counters-get": z.object({
|
|
214
|
+
counters: z.record(z.string(), z.number().int()),
|
|
215
|
+
}),
|
|
216
|
+
"counters-create": z.object({
|
|
217
|
+
counters: z.record(z.string(), z.number().int()),
|
|
218
|
+
}),
|
|
219
|
+
"counters-increase": z.object({
|
|
220
|
+
counters: z.record(z.string(), z.number().int()),
|
|
221
|
+
}),
|
|
222
|
+
"counters-decrease": z.object({
|
|
223
|
+
counters: z.record(z.string(), z.number().int()),
|
|
224
|
+
}),
|
|
225
|
+
"pins-list": z.object({
|
|
226
|
+
messages: z.array(sdkMessage),
|
|
227
|
+
has_more: z.boolean(),
|
|
228
|
+
page: z.number().int().positive(),
|
|
229
|
+
next_page: z.number().int().positive().nullable(),
|
|
230
|
+
pagination: z.string(),
|
|
231
|
+
}),
|
|
232
|
+
"push-get": z.object({ option: text }),
|
|
233
|
+
"push-set": z.object({ option: text }),
|
|
234
|
+
"channel-push-get": z.object({ option: text }),
|
|
235
|
+
"channel-push-set": z.object({ option: text }),
|
|
236
|
+
"snooze-get": z.object({}).passthrough(),
|
|
237
|
+
"snooze-set": z.object({}).passthrough(),
|
|
238
|
+
hide: z.object({}).passthrough(),
|
|
239
|
+
unhide: z.object({}).passthrough(),
|
|
240
|
+
"reset-history": z.object({}).passthrough(),
|
|
241
|
+
"scheduled-create": z.object({
|
|
242
|
+
scheduled_message_id: id,
|
|
243
|
+
scheduled_at: z.number().int().positive(),
|
|
244
|
+
channel_url: text,
|
|
245
|
+
message: z.string().optional(),
|
|
246
|
+
}),
|
|
247
|
+
"scheduled-list": z.object({
|
|
248
|
+
messages: z.array(z.object({
|
|
249
|
+
scheduled_message_id: id,
|
|
250
|
+
scheduled_at: z.number().int().positive(),
|
|
251
|
+
channel_url: text,
|
|
252
|
+
message: z.string().optional(),
|
|
253
|
+
})),
|
|
254
|
+
has_more: z.boolean(),
|
|
255
|
+
page: z.number().int().positive(),
|
|
256
|
+
next_page: z.number().int().positive().nullable(),
|
|
257
|
+
status_filter: z.enum(["all", "pending", "sent", "failed", "canceled"]),
|
|
258
|
+
pagination: z.string().optional(),
|
|
259
|
+
}),
|
|
260
|
+
"scheduled-cancel": z.object({ canceled: z.boolean(), message_id: id }),
|
|
261
|
+
"scheduled-send-now": z.object({ sent: z.boolean(), message_id: id }),
|
|
262
|
+
translate: sdkMessage.extend({
|
|
263
|
+
translations: z.record(z.string(), z.string()),
|
|
264
|
+
}),
|
|
265
|
+
"message-changes": z.object({}).passthrough(),
|
|
266
|
+
"poll-list": z.object({
|
|
267
|
+
polls: z.array(z.object({}).passthrough()),
|
|
268
|
+
has_more: z.boolean(),
|
|
269
|
+
page: z.number().int().positive(),
|
|
270
|
+
next_page: z.number().int().positive().nullable(),
|
|
271
|
+
pagination: z.string().optional(),
|
|
272
|
+
}),
|
|
273
|
+
"poll-vote": z.object({}).passthrough(),
|
|
274
|
+
"poll-option-add": z.object({}).passthrough(),
|
|
275
|
+
"operator-add": z.object({ updated: z.literal(true) }),
|
|
276
|
+
"operator-remove": z.object({ updated: z.literal(true) }),
|
|
277
|
+
mute: z.object({ updated: z.literal(true) }),
|
|
278
|
+
unmute: z.object({ updated: z.literal(true) }),
|
|
279
|
+
ban: z.object({ updated: z.literal(true) }),
|
|
280
|
+
unban: z.object({ updated: z.literal(true) }),
|
|
281
|
+
freeze: z.object({ frozen: z.boolean() }),
|
|
282
|
+
watch: z.object({
|
|
283
|
+
event: z.literal("complete"),
|
|
284
|
+
reason: z.enum(["duration", "interrupted", "event_limit"]),
|
|
285
|
+
events: z.number(),
|
|
286
|
+
}),
|
|
287
|
+
};
|
|
288
|
+
const defs = [];
|
|
289
|
+
function add(name, action, description, params, body, api, mutates = false, danger = false, stream = false) {
|
|
290
|
+
defs.push({
|
|
291
|
+
name,
|
|
292
|
+
action,
|
|
293
|
+
description,
|
|
294
|
+
params,
|
|
295
|
+
body,
|
|
296
|
+
method: "SDK",
|
|
297
|
+
path: api,
|
|
298
|
+
scope: "app",
|
|
299
|
+
response: sdkOutputs[action],
|
|
300
|
+
source: ["@sendbird/chat", api],
|
|
301
|
+
mutates,
|
|
302
|
+
danger,
|
|
303
|
+
stream,
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
add("chat sdk status", "status", "Connect as a Chat user and report the SDK session", z.object({}), undefined, "SendbirdChat.connect");
|
|
307
|
+
add("chat message send", "send", "Send a text message as the connected user", z.object(channel), z.object(messageBody).strict(), "BaseChannel.sendUserMessage", true);
|
|
308
|
+
add("chat message file", "file", "Send a file URL or upload a local file as a file message", z.object(channel), z
|
|
309
|
+
.object({
|
|
310
|
+
...expressiveFields,
|
|
311
|
+
thumbnail_sizes: z
|
|
312
|
+
.array(z
|
|
313
|
+
.object({
|
|
314
|
+
width: z.number().int().positive().max(4096),
|
|
315
|
+
height: z.number().int().positive().max(4096),
|
|
316
|
+
})
|
|
317
|
+
.strict())
|
|
318
|
+
.max(10)
|
|
319
|
+
.optional(),
|
|
320
|
+
file: z.string().optional(),
|
|
321
|
+
file_url: z.url().optional(),
|
|
322
|
+
file_name: z.string().optional(),
|
|
323
|
+
mime_type: z.string().optional(),
|
|
324
|
+
custom_type: z.string().optional(),
|
|
325
|
+
data: z.string().optional(),
|
|
326
|
+
parent_message_id: id.optional(),
|
|
327
|
+
})
|
|
328
|
+
.strict(), "BaseChannel.sendFileMessage", true);
|
|
329
|
+
add("chat message list", "list", "Read a bounded page of channel messages; before is an exclusive millisecond timestamp", z.object(channel), z.object(page).strict(), "BaseChannel.getMessagesByTimestamp");
|
|
330
|
+
add("chat message get", "get", "Get one channel message; to translate it use chat sdk message translate", z.object(message), undefined, "MessageModule.getMessage");
|
|
331
|
+
add("chat message update", "update", "Update your text message subject to SDK permissions", z.object(message), z
|
|
332
|
+
.object({
|
|
333
|
+
...expressiveFields,
|
|
334
|
+
...translationFields,
|
|
335
|
+
message: text,
|
|
336
|
+
data: z.string().optional(),
|
|
337
|
+
custom_type: z.string().optional(),
|
|
338
|
+
})
|
|
339
|
+
.strict(), "BaseChannel.updateUserMessage", true);
|
|
340
|
+
add("chat message delete", "delete", "Delete a message subject to SDK permissions", z.object(message), undefined, "BaseChannel.deleteMessage", true, true);
|
|
341
|
+
add("chat message reply", "reply", "Reply to a message in a Group or Supergroup thread", z.object({ ...group, message_id: id }), z
|
|
342
|
+
.object({
|
|
343
|
+
...expressiveFields,
|
|
344
|
+
...translationFields,
|
|
345
|
+
message: text,
|
|
346
|
+
data: z.string().optional(),
|
|
347
|
+
custom_type: z.string().optional(),
|
|
348
|
+
})
|
|
349
|
+
.strict(), "BaseChannel.sendUserMessage", true);
|
|
350
|
+
add("chat message thread", "thread", "Read replies to a parent message", z.object({ ...group, message_id: id }), z
|
|
351
|
+
.object({
|
|
352
|
+
before: page.before,
|
|
353
|
+
limit: page.limit,
|
|
354
|
+
inclusive: z.boolean().default(true),
|
|
355
|
+
})
|
|
356
|
+
.strict(), "UserMessage.getThreadedMessagesByTimestamp");
|
|
357
|
+
for (const action of ["add", "remove"])
|
|
358
|
+
add(`chat message reaction ${action}`, `reaction-${action}`, `${action === "add" ? "Add" : "Remove"} your reaction on a Group/Supergroup message`, z.object({ ...group, message_id: id }), z.object({ key: text }).strict(), `BaseChannel.${action === "add" ? "addReaction" : "deleteReaction"}`, true);
|
|
359
|
+
add("chat message receipts", "receipts", "Read message read/delivery receipts (regular Group only)", z.object({ ...regular, message_id: id }), undefined, "GroupChannel.getReadMembers");
|
|
360
|
+
for (const action of ["pin", "unpin"])
|
|
361
|
+
add(`chat message ${action}`, action, `${action} a message subject to channel permissions`, z.object({ ...group, message_id: id }), undefined, `BaseChannel.${action}Message`, true);
|
|
362
|
+
add("chat channel join", "join", "Join a public Group/Supergroup channel as the connected user", z.object(group), z.object({ access_code: z.string().optional() }).strict(), "GroupChannel.join", true);
|
|
363
|
+
add("chat channel leave", "leave", "Leave a Group/Supergroup channel as the connected user", z.object(group), undefined, "GroupChannel.leave", true, true);
|
|
364
|
+
add("chat channel invitation accept", "accept", "Accept the connected user’s channel invitation", z.object(group), z.object({ access_code: z.string().optional() }).strict(), "GroupChannel.acceptInvitation", true);
|
|
365
|
+
add("chat channel invitation decline", "decline", "Decline the connected user’s channel invitation", z.object(group), undefined, "GroupChannel.declineInvitation", true, true);
|
|
366
|
+
add("chat channel participants list", "participants", "List currently connected Open-channel participants (one bounded page)", z.object({ ...channel, type: z.literal("open") }), z.object({ limit: page.limit, page: queryPage }).strict(), "OpenChannel.createParticipantListQuery");
|
|
367
|
+
add("chat sdk channel members list", "members-list", "List one bounded page of Group/Supergroup members as the connected user", z.object(group), z.object({ limit: page.limit, page: queryPage }).strict(), "GroupChannel.createMemberListQuery");
|
|
368
|
+
add("chat sdk channel members invite", "members-invite", "Invite users as the connected Group/Supergroup member", z.object(group), z.object({ user_ids: z.array(text).min(1) }).strict(), "GroupChannel.inviteWithUserIds", true);
|
|
369
|
+
add("chat sdk channel my list", "my-channels-list", "List one bounded page of the connected user's Group/Supergroup channels", z.object({}), z
|
|
370
|
+
.object({
|
|
371
|
+
type: groupType,
|
|
372
|
+
member_state: z.enum(["all", "joined", "invited"]).default("all"),
|
|
373
|
+
limit: page.limit,
|
|
374
|
+
page: queryPage,
|
|
375
|
+
})
|
|
376
|
+
.strict(), "GroupChannelModule.createMyGroupChannelListQuery");
|
|
377
|
+
add("chat sdk channel my unread", "my-channels-unread", "Get the connected user's total unread message count by Group/Supergroup type", z.object({}), z.object({ type: groupType }).strict(), "GroupChannelModule.getTotalUnreadMessageCount");
|
|
378
|
+
add("chat sdk emoji list", "emoji-list", "List registered emoji keys for message reactions", z.object({}), undefined, "SendbirdChat.getAllEmoji");
|
|
379
|
+
for (const action of ["get", "set"])
|
|
380
|
+
add(`chat sdk user invitation ${action}`, `invitation-${action}`, `${action === "get" ? "Read" : "Set"} the connected user's automatic Group invitation acceptance`, z.object({}), action === "get"
|
|
381
|
+
? undefined
|
|
382
|
+
: z.object({ auto_accept: z.boolean() }).strict(), action === "get"
|
|
383
|
+
? "SendbirdChat.getChannelInvitationPreference"
|
|
384
|
+
: "SendbirdChat.setChannelInvitationPreference", action === "set");
|
|
385
|
+
for (const action of ["get", "set"])
|
|
386
|
+
add(`chat sdk channel count-preference ${action}`, `count-preference-${action}`, `${action === "get" ? "Read" : "Set"} the connected user's unread count preference for one Group/Supergroup channel`, z.object(group), action === "get"
|
|
387
|
+
? undefined
|
|
388
|
+
: z.object({ preference: countPreference }).strict(), action === "get"
|
|
389
|
+
? "GroupChannel.myCountPreference"
|
|
390
|
+
: "GroupChannel.setMyCountPreference", action === "set");
|
|
391
|
+
add("chat sdk channel typing-users", "typing-users", "List users currently typing in a regular Group channel", z.object(regular), undefined, "GroupChannel.getTypingUsers");
|
|
392
|
+
for (const action of ["get", "create", "increase", "decrease"])
|
|
393
|
+
add(`chat sdk channel counters ${action}`, `counters-${action}`, action === "get"
|
|
394
|
+
? "Read selected channel metacounters as the connected user"
|
|
395
|
+
: action === "create"
|
|
396
|
+
? "Create channel metacounters as the connected user"
|
|
397
|
+
: `${action === "increase" ? "Atomically increase" : "Atomically decrease"} channel metacounters as the connected user`, z.object(channel), action === "get"
|
|
398
|
+
? z.object({ keys: z.array(text).min(1).max(20) }).strict()
|
|
399
|
+
: z
|
|
400
|
+
.object({
|
|
401
|
+
counters: z
|
|
402
|
+
.record(text, z.number().int().positive())
|
|
403
|
+
.refine((value) => Object.keys(value).length > 0, "At least one counter is required"),
|
|
404
|
+
})
|
|
405
|
+
.strict(), action === "get"
|
|
406
|
+
? "BaseChannel.getMetaCounters"
|
|
407
|
+
: `BaseChannel.${action}MetaCounters`, action !== "get");
|
|
408
|
+
add("chat sdk message pins list", "pins-list", "List one bounded page of pinned Group/Supergroup messages", z.object(group), z.object({ limit: page.limit, page: queryPage }).strict(), "GroupChannel.createPinnedMessageListQuery");
|
|
409
|
+
add("chat sdk user push get", "push-get", "Read the connected user's app-wide push preference", z.object({}), undefined, "SendbirdChat.getPushTriggerOption");
|
|
410
|
+
add("chat sdk user push set", "push-set", "Set the connected user's app-wide push preference", z.object({}), z.object({ option: z.enum(["all", "mention_only", "off"]) }).strict(), "SendbirdChat.setPushTriggerOption", true);
|
|
411
|
+
add("chat sdk user snooze get", "snooze-get", "Read the connected user's push snooze period", z.object({}), undefined, "SendbirdChat.getSnoozePeriod");
|
|
412
|
+
add("chat sdk user snooze set", "snooze-set", "Set a snooze window in Unix milliseconds, or disable it while preserving its existing timestamps", z.object({}), z
|
|
413
|
+
.object({
|
|
414
|
+
enabled: z.boolean(),
|
|
415
|
+
start_at: z.number().int().nonnegative().optional(),
|
|
416
|
+
end_at: z.number().int().nonnegative().optional(),
|
|
417
|
+
})
|
|
418
|
+
.strict(), "SendbirdChat.setSnoozePeriod", true);
|
|
419
|
+
for (const action of ["get", "set"])
|
|
420
|
+
add(`chat sdk channel push ${action}`, `channel-push-${action}`, `${action === "get" ? "Read" : "Set"} the connected user's channel push preference`, z.object(group), action === "get"
|
|
421
|
+
? undefined
|
|
422
|
+
: z
|
|
423
|
+
.object({ option: z.enum(["default", "all", "mention_only", "off"]) })
|
|
424
|
+
.strict(), action === "get"
|
|
425
|
+
? "GroupChannel.getMyPushTriggerOption"
|
|
426
|
+
: "GroupChannel.setMyPushTriggerOption", action === "set");
|
|
427
|
+
for (const action of ["hide", "unhide", "reset-history"])
|
|
428
|
+
add(`chat sdk channel ${action}`, action, `${action.replace("-", " ")} the channel for the connected user`, z.object(group), action === "hide"
|
|
429
|
+
? z
|
|
430
|
+
.object({ hide_previous_messages: z.boolean().default(false) })
|
|
431
|
+
.strict()
|
|
432
|
+
: undefined, action === "hide"
|
|
433
|
+
? "GroupChannel.hide"
|
|
434
|
+
: action === "unhide"
|
|
435
|
+
? "GroupChannel.unhide"
|
|
436
|
+
: "GroupChannel.resetMyHistory", true, action !== "unhide");
|
|
437
|
+
add("chat sdk message scheduled create", "scheduled-create", "Schedule a text message in a Group/Supergroup channel; scheduled_at is Unix epoch milliseconds (13 digits), at least 5 minutes ahead", z.object(group), z
|
|
438
|
+
.object({
|
|
439
|
+
message: text,
|
|
440
|
+
scheduled_at: z.number().int().min(1_000_000_000_000, {
|
|
441
|
+
message: "scheduled_at must be Unix epoch milliseconds (13 digits), not seconds; multiply seconds by 1000",
|
|
442
|
+
}),
|
|
443
|
+
custom_type: z.string().optional(),
|
|
444
|
+
data: z.string().optional(),
|
|
445
|
+
})
|
|
446
|
+
.strict(), "GroupChannel.createScheduledUserMessage", true);
|
|
447
|
+
add("chat sdk message scheduled list", "scheduled-list", "List scheduled messages by status; all includes canceled history, pending shows remaining scheduled sends", z.object(group), z
|
|
448
|
+
.object({
|
|
449
|
+
limit: page.limit,
|
|
450
|
+
page: queryPage,
|
|
451
|
+
status: z
|
|
452
|
+
.enum(["all", "pending", "sent", "failed", "canceled"])
|
|
453
|
+
.default("all"),
|
|
454
|
+
})
|
|
455
|
+
.strict(), "GroupChannelModule.createScheduledMessageListQuery");
|
|
456
|
+
for (const action of ["cancel", "send-now"])
|
|
457
|
+
add(`chat sdk message scheduled ${action}`, `scheduled-${action}`, `${action === "cancel" ? "Cancel" : "Send now"} one scheduled message`, z.object({ ...group, message_id: id }), undefined, action === "cancel"
|
|
458
|
+
? "GroupChannel.cancelScheduledMessage"
|
|
459
|
+
: "GroupChannel.sendScheduledMessageNow", true, true);
|
|
460
|
+
add("chat sdk message translate", "translate", "Translate a user message into requested language codes", z.object({ ...channel, message_id: id }), z.object({ languages: z.array(text).min(1).max(10) }).strict(), "BaseChannel.translateUserMessage");
|
|
461
|
+
add("chat sdk message changes", "message-changes", "Read SDK message change logs since a timestamp", z.object(channel), z.object({ since: z.number().int().nonnegative() }).strict(), "BaseChannel.getMessageChangeLogsSinceTimestamp");
|
|
462
|
+
add("chat sdk poll list", "poll-list", "List one bounded page of polls in a Group/Supergroup channel", z.object(group), z.object({ limit: page.limit, page: queryPage }).strict(), "GroupChannel.createPollListQuery");
|
|
463
|
+
add("chat sdk poll vote", "poll-vote", "Vote for poll options as the connected user", z.object(group), z.object({ poll_id: id, option_ids: z.array(id).max(20) }).strict(), "GroupChannel.votePoll", true);
|
|
464
|
+
add("chat sdk poll option add", "poll-option-add", "Add an option to a poll subject to channel permissions", z.object(group), z.object({ poll_id: id, option: text }).strict(), "GroupChannel.addPollOption", true);
|
|
465
|
+
for (const action of ["add", "remove"])
|
|
466
|
+
add(`chat sdk channel operators ${action}`, `operator-${action}`, `${action === "add" ? "Add" : "Remove"} channel operators`, z.object(channel), z.object({ user_ids: z.array(text).min(1) }).strict(), action === "add"
|
|
467
|
+
? "BaseChannel.addOperators"
|
|
468
|
+
: "BaseChannel.removeOperators", true, true);
|
|
469
|
+
for (const action of ["mute", "unmute", "ban", "unban"])
|
|
470
|
+
add(`chat sdk channel moderation ${action}`, action, `${action} a user in a channel subject to operator permissions`, z.object(channel), action === "mute" || action === "ban"
|
|
471
|
+
? z
|
|
472
|
+
.object({
|
|
473
|
+
user_id: text,
|
|
474
|
+
seconds: z.number().int().positive().optional(),
|
|
475
|
+
description: z.string().optional(),
|
|
476
|
+
})
|
|
477
|
+
.strict()
|
|
478
|
+
: z.object({ user_id: text }).strict(), `BaseChannel.${action}UserWithUserId`, true, true);
|
|
479
|
+
for (const action of ["freeze", "unfreeze"])
|
|
480
|
+
add(`chat sdk channel moderation ${action}`, "freeze", `${action} a channel subject to operator permissions`, z.object(channel), z.object({ frozen: z.literal(action === "freeze") }).strict(), `BaseChannel.${action}`, true, true);
|
|
481
|
+
add("chat channel read", "read", "Mark channel messages as read for the connected user", z.object(group), undefined, "GroupChannel.markAsRead", true);
|
|
482
|
+
add("chat channel typing", "typing", "Send a typing indicator for a bounded duration, then stop it (regular Group only)", z.object(regular), z.object({ seconds: z.number().min(1).max(30).default(3) }).strict(), "GroupChannel.startTyping", true);
|
|
483
|
+
add("chat channel watch", "watch", "Stream channel events as NDJSON until duration, event limit or Ctrl+C", z.object(channel), z
|
|
484
|
+
.object({
|
|
485
|
+
seconds: z.number().int().min(1).max(3600).default(60),
|
|
486
|
+
max_events: z.number().int().min(1).max(10000).default(100),
|
|
487
|
+
})
|
|
488
|
+
.strict(), "GroupChannelHandler / OpenChannelHandler", false, false, true);
|
|
489
|
+
export const sdkDefinitions = [
|
|
490
|
+
...defs,
|
|
491
|
+
...proSdkDefinitions(sdkMessage, sdkUser),
|
|
492
|
+
];
|
|
493
|
+
export function describeSdk(d) {
|
|
494
|
+
return {
|
|
495
|
+
...describe(d),
|
|
496
|
+
transport: "chat-sdk",
|
|
497
|
+
authentication: "--as-user USER with CLI OAuth (or explicit --user-token-file / --allow-guest)",
|
|
498
|
+
mutates: d.mutates,
|
|
499
|
+
stream: !!d.stream,
|
|
500
|
+
source_url: "https://sendbird.com/docs/chat/sdk/v4/javascript/overview",
|
|
501
|
+
example: sdkExample(d),
|
|
502
|
+
};
|
|
503
|
+
}
|
|
504
|
+
export function sdkExample(d) {
|
|
505
|
+
const e = exampleFor(d);
|
|
506
|
+
const context = {
|
|
507
|
+
...e.context,
|
|
508
|
+
"as-user": "USER_ID",
|
|
509
|
+
};
|
|
510
|
+
if (d.action === "file")
|
|
511
|
+
e.body = {
|
|
512
|
+
file_url: "https://example.com/photo.png",
|
|
513
|
+
file_name: "photo.png",
|
|
514
|
+
};
|
|
515
|
+
if (["counters-create", "counters-increase", "counters-decrease"].includes(d.action))
|
|
516
|
+
e.body = { counters: { likes: 1 } };
|
|
517
|
+
if (d.action === "counters-get")
|
|
518
|
+
e.body = { keys: ["likes"] };
|
|
519
|
+
if (d.action === "scheduled-create")
|
|
520
|
+
e.body = { ...e.body, scheduled_at: 1_900_000_000_000 };
|
|
521
|
+
if (d.action === "members-invite")
|
|
522
|
+
e.body = { user_ids: ["USER_ID"] };
|
|
523
|
+
if (d.action === "snooze-set")
|
|
524
|
+
e.body = { enabled: true, start_at: 1893456000000, end_at: 1893459600000 };
|
|
525
|
+
return { ...e, context };
|
|
526
|
+
}
|
|
527
|
+
//# sourceMappingURL=sdk-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-catalog.js","sourceRoot":"","sources":["../src/sdk-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,GACV,MAAM,sBAAsB,CAAC;AAC9B;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAmB,QAAQ,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACrE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;AACpE,MAAM,OAAO,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC5E,MAAM,KAAK,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC;AACpE,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;AACzD,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;AAC/C,MAAM,IAAI,GAAG;IACX,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;IACxB,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,EAAE;SACL,WAAW,EAAE;SACb,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC;SAC5B,QAAQ,EAAE;IACb,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CACpD,CAAC;AACF,6EAA6E;AAC7E,MAAM,SAAS,GAAG,CAAC;KAChB,MAAM,EAAE;KACR,GAAG,EAAE;KACL,QAAQ,EAAE;KACV,GAAG,CAAC,oBAAoB,CAAC;KACzB,OAAO,CAAC,CAAC,CAAC,CAAC;AACd,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxE,MAAM,eAAe,GAAG,CAAC,CAAC,IAAI,CAAC;IAC7B,KAAK;IACL,2BAA2B;IAC3B,2BAA2B;IAC3B,KAAK;CACN,CAAC,CAAC;AACH,MAAM,WAAW,GAAG;IAClB,GAAG,gBAAgB;IACnB,GAAG,iBAAiB;IACpB,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE;IACtB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,iBAAiB,EAAE,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC;AAOF,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC;IACvB,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC/B,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC3E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9C,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC9D,gBAAgB,EAAE,CAAC;SAChB,MAAM,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACnC,CAAC;SACD,QAAQ,EAAE;CACd,CAAC,CAAC;AACH,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,CAAC;IACN,UAAU,EAAE,EAAE;IACd,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;IACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE;IAC1B,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAChE,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACvD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC7D,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE;IAC1C,OAAO,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IACjC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzD,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACrC,UAAU,EAAE,CAAC;SACV,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;QACP,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;QACf,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;QACjB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;KACxB,CAAC,CACH;SACA,QAAQ,EAAE;CACd,CAAC;KACD,WAAW,EAAE,CAAC;AACjB,MAAM,UAAU,GAA8B;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACzE,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,UAAU;IACf,MAAM,EAAE,UAAU;IAClB,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7B,cAAc,EAAE,EAAE,CAAC,QAAQ,EAAE;QAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC5B,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IAC1D,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC;QACvB,UAAU,EAAE,EAAE;QACd,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC;IACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC1B,UAAU,EAAE,EAAE;QACd,GAAG,EAAE,IAAI;QACT,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC;IACF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,UAAU,EAAE,EAAE;QACd,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;QACxB,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;QAC7B,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAC9B,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;KACjC,CAAC;IACF,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACxD,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC3D,WAAW,EAAE;IAChB,MAAM,EAAE,CAAC;SACN,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC3D,WAAW,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACzD,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IACxD,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC5D,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAC9B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,CAAC;IACF,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,CAAC;IACF,gBAAgB,EAAE,CAAC;SAChB,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SAC3D,WAAW,EAAE;IAChB,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3B,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,MAAM,CAAC;YACP,WAAW,EAAE,IAAI;YACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;YAChB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACrC,eAAe,EAAE,EAAE,CAAC,QAAQ,EAAE;YAC9B,iCAAiC,EAAE,CAAC;iBACjC,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,QAAQ,EAAE;YACb,iCAAiC,EAAE,CAAC;iBACjC,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,WAAW,EAAE;iBACb,QAAQ,EAAE;YACb,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;YAC3B,mBAAmB,EAAE,eAAe;YACpC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;SAC7C,CAAC,CACH;QACD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YAChB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;SACnD,CAAC;QACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE;KAC9B,CAAC;IACF,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE,SAAS;QACf,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;KACrD,CAAC;IACF,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;QACtB,MAAM,EAAE,CAAC,CAAC,KAAK,CACb,CAAC,CAAC,MAAM,CAAC;YACP,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;YACf,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;YAC7B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;SAC1B,CAAC,CACH;KACF,CAAC;IACF,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IACxD,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IACxD,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC/B,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACrC,UAAU,EAAE,eAAe;KAC5B,CAAC;IACF,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC/B,WAAW,EAAE,IAAI;QACjB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACrC,UAAU,EAAE,eAAe;KAC5B,CAAC;IACF,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACxE,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC;QACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;KACjD,CAAC;IACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC1B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;KACjD,CAAC;IACF,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;KACjD,CAAC;IACF,mBAAmB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC5B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;KACjD,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;QAC7B,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE;KACvB,CAAC;IACF,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACtC,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACtC,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC9C,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACxC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACxC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IAClC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IAC3C,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3B,oBAAoB,EAAE,EAAE;QACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACzC,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/B,CAAC;IACF,gBAAgB,EAAE,CAAC,CAAC,MAAM,CAAC;QACzB,QAAQ,EAAE,CAAC,CAAC,KAAK,CACf,CAAC,CAAC,MAAM,CAAC;YACP,oBAAoB,EAAE,EAAE;YACxB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YACzC,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC/B,CAAC,CACH;QACD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjD,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;QACvE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC;IACF,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACvE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;IACrE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC;QAC3B,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;KAC/C,CAAC;IACF,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAC1C,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE;QACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACjC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAClC,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IACvC,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;IAC7C,cAAc,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACtD,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACzD,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC9C,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;QAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAC1D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;KACnB,CAAC;CACH,CAAC;AACF,MAAM,IAAI,GAAoB,EAAE,CAAC;AACjC,SAAS,GAAG,CACV,IAAY,EACZ,MAAc,EACd,WAAmB,EACnB,MAAmB,EACnB,IAA6B,EAC7B,GAAW,EACX,OAAO,GAAG,KAAK,EACf,MAAM,GAAG,KAAK,EACd,MAAM,GAAG,KAAK;IAEd,IAAI,CAAC,IAAI,CAAC;QACR,IAAI;QACJ,MAAM;QACN,WAAW;QACX,MAAM;QACN,IAAI;QACJ,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,GAAG;QACT,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC;QAC5B,MAAM,EAAE,CAAC,gBAAgB,EAAE,GAAG,CAAC;QAC/B,OAAO;QACP,MAAM;QACN,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AACD,GAAG,CACD,iBAAiB,EACjB,QAAQ,EACR,mDAAmD,EACnD,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EACZ,SAAS,EACT,sBAAsB,CACvB,CAAC;AACF,GAAG,CACD,mBAAmB,EACnB,MAAM,EACN,2CAA2C,EAC3C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAC9B,6BAA6B,EAC7B,IAAI,CACL,CAAC;AACF,GAAG,CACD,mBAAmB,EACnB,MAAM,EACN,0DAA0D,EAC1D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,CAAC;KACE,MAAM,CAAC;IACN,GAAG,gBAAgB;IACnB,eAAe,EAAE,CAAC;SACf,KAAK,CACJ,CAAC;SACE,MAAM,CAAC;QACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;QAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC;KAC9C,CAAC;SACD,MAAM,EAAE,CACZ;SACA,GAAG,CAAC,EAAE,CAAC;SACP,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,QAAQ,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,iBAAiB,EAAE,EAAE,CAAC,QAAQ,EAAE;CACjC,CAAC;KACD,MAAM,EAAE,EACX,6BAA6B,EAC7B,IAAI,CACL,CAAC;AACF,GAAG,CACD,mBAAmB,EACnB,MAAM,EACN,uFAAuF,EACvF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EACvB,oCAAoC,CACrC,CAAC;AACF,GAAG,CACD,kBAAkB,EAClB,KAAK,EACL,yEAAyE,EACzE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,SAAS,EACT,0BAA0B,CAC3B,CAAC;AACF,GAAG,CACD,qBAAqB,EACrB,QAAQ,EACR,qDAAqD,EACrD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,CAAC;KACE,MAAM,CAAC;IACN,GAAG,gBAAgB;IACnB,GAAG,iBAAiB;IACpB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC;KACD,MAAM,EAAE,EACX,+BAA+B,EAC/B,IAAI,CACL,CAAC;AACF,GAAG,CACD,qBAAqB,EACrB,QAAQ,EACR,6CAA6C,EAC7C,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,SAAS,EACT,2BAA2B,EAC3B,IAAI,EACJ,IAAI,CACL,CAAC;AACF,GAAG,CACD,oBAAoB,EACpB,OAAO,EACP,oDAAoD,EACpD,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC;KACE,MAAM,CAAC;IACN,GAAG,gBAAgB;IACnB,GAAG,iBAAiB;IACpB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC;KACD,MAAM,EAAE,EACX,6BAA6B,EAC7B,IAAI,CACL,CAAC;AACF,GAAG,CACD,qBAAqB,EACrB,QAAQ,EACR,kCAAkC,EAClC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC;KACE,MAAM,CAAC;IACN,MAAM,EAAE,IAAI,CAAC,MAAM;IACnB,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;CACrC,CAAC;KACD,MAAM,EAAE,EACX,4CAA4C,CAC7C,CAAC;AACF,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;IACpC,GAAG,CACD,yBAAyB,MAAM,EAAE,EACjC,YAAY,MAAM,EAAE,EACpB,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,8CAA8C,EACpF,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EACtC,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAChC,eAAe,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,EAAE,EACpE,IAAI,CACL,CAAC;AACJ,GAAG,CACD,uBAAuB,EACvB,UAAU,EACV,0DAA0D,EAC1D,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EACxC,SAAS,EACT,6BAA6B,CAC9B,CAAC;AACF,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC;IACnC,GAAG,CACD,gBAAgB,MAAM,EAAE,EACxB,MAAM,EACN,GAAG,MAAM,2CAA2C,EACpD,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EACtC,SAAS,EACT,eAAe,MAAM,SAAS,EAC9B,IAAI,CACL,CAAC;AACJ,GAAG,CACD,mBAAmB,EACnB,MAAM,EACN,8DAA8D,EAC9D,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EACzD,mBAAmB,EACnB,IAAI,CACL,CAAC;AACF,GAAG,CACD,oBAAoB,EACpB,OAAO,EACP,wDAAwD,EACxD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,SAAS,EACT,oBAAoB,EACpB,IAAI,EACJ,IAAI,CACL,CAAC;AACF,GAAG,CACD,gCAAgC,EAChC,QAAQ,EACR,gDAAgD,EAChD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EACzD,+BAA+B,EAC/B,IAAI,CACL,CAAC;AACF,GAAG,CACD,iCAAiC,EACjC,SAAS,EACT,iDAAiD,EACjD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,SAAS,EACT,gCAAgC,EAChC,IAAI,EACJ,IAAI,CACL,CAAC;AACF,GAAG,CACD,gCAAgC,EAChC,cAAc,EACd,uEAAuE,EACvE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EACjD,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EACzD,wCAAwC,CACzC,CAAC;AACF,GAAG,CACD,+BAA+B,EAC/B,cAAc,EACd,yEAAyE,EACzE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EACzD,oCAAoC,CACrC,CAAC;AACF,GAAG,CACD,iCAAiC,EACjC,gBAAgB,EAChB,uDAAuD,EACvD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EACrD,gCAAgC,EAChC,IAAI,CACL,CAAC;AACF,GAAG,CACD,0BAA0B,EAC1B,kBAAkB,EAClB,yEAAyE,EACzE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EACZ,CAAC;KACE,MAAM,CAAC;IACN,IAAI,EAAE,SAAS;IACf,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACjE,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,IAAI,EAAE,SAAS;CAChB,CAAC;KACD,MAAM,EAAE,EACX,kDAAkD,CACnD,CAAC;AACF,GAAG,CACD,4BAA4B,EAC5B,oBAAoB,EACpB,8EAA8E,EAC9E,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EACZ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EACtC,+CAA+C,CAChD,CAAC;AACF,GAAG,CACD,qBAAqB,EACrB,YAAY,EACZ,kDAAkD,EAClD,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EACZ,SAAS,EACT,0BAA0B,CAC3B,CAAC;AACF,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;IACjC,GAAG,CACD,4BAA4B,MAAM,EAAE,EACpC,cAAc,MAAM,EAAE,EACtB,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,6DAA6D,EACjG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EACZ,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EACnD,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,6CAA6C;QAC/C,CAAC,CAAC,6CAA6C,EACjD,MAAM,KAAK,KAAK,CACjB,CAAC;AACJ,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;IACjC,GAAG,CACD,qCAAqC,MAAM,EAAE,EAC7C,oBAAoB,MAAM,EAAE,EAC5B,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,gFAAgF,EACpH,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,EACtD,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,gCAAgC;QAClC,CAAC,CAAC,mCAAmC,EACvC,MAAM,KAAK,KAAK,CACjB,CAAC;AACJ,GAAG,CACD,+BAA+B,EAC/B,cAAc,EACd,wDAAwD,EACxD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,SAAS,EACT,6BAA6B,CAC9B,CAAC;AACF,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC;IAC5D,GAAG,CACD,6BAA6B,MAAM,EAAE,EACrC,YAAY,MAAM,EAAE,EACpB,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,0DAA0D;QAC5D,CAAC,CAAC,MAAM,KAAK,QAAQ;YACnB,CAAC,CAAC,mDAAmD;YACrD,CAAC,CAAC,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,6CAA6C,EAC3H,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE;QAC3D,CAAC,CAAC,CAAC;aACE,MAAM,CAAC;YACN,QAAQ,EAAE,CAAC;iBACR,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;iBACzC,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EACxC,kCAAkC,CACnC;SACJ,CAAC;aACD,MAAM,EAAE,EACf,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,6BAA6B;QAC/B,CAAC,CAAC,eAAe,MAAM,cAAc,EACvC,MAAM,KAAK,KAAK,CACjB,CAAC;AACJ,GAAG,CACD,4BAA4B,EAC5B,WAAW,EACX,2DAA2D,EAC3D,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EACzD,2CAA2C,CAC5C,CAAC;AACF,GAAG,CACD,wBAAwB,EACxB,UAAU,EACV,oDAAoD,EACpD,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EACZ,SAAS,EACT,mCAAmC,CACpC,CAAC;AACF,GAAG,CACD,wBAAwB,EACxB,UAAU,EACV,mDAAmD,EACnD,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EACZ,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EACrE,mCAAmC,EACnC,IAAI,CACL,CAAC;AACF,GAAG,CACD,0BAA0B,EAC1B,YAAY,EACZ,8CAA8C,EAC9C,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EACZ,SAAS,EACT,8BAA8B,CAC/B,CAAC;AACF,GAAG,CACD,0BAA0B,EAC1B,YAAY,EACZ,kGAAkG,EAClG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EACZ,CAAC;KACE,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE;IACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;IACnD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC;KACD,MAAM,EAAE,EACX,8BAA8B,EAC9B,IAAI,CACL,CAAC;AACF,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;IACjC,GAAG,CACD,yBAAyB,MAAM,EAAE,EACjC,gBAAgB,MAAM,EAAE,EACxB,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,+CAA+C,EACnF,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC;aACE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;aACrE,MAAM,EAAE,EACf,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,qCAAqC,EACzC,MAAM,KAAK,KAAK,CACjB,CAAC;AACJ,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC;IACtD,GAAG,CACD,oBAAoB,MAAM,EAAE,EAC5B,MAAM,EACN,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,qCAAqC,EAChE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,MAAM,KAAK,MAAM;QACf,CAAC,CAAC,CAAC;aACE,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;aAC9D,MAAM,EAAE;QACb,CAAC,CAAC,SAAS,EACb,MAAM,KAAK,MAAM;QACf,CAAC,CAAC,mBAAmB;QACrB,CAAC,CAAC,MAAM,KAAK,QAAQ;YACnB,CAAC,CAAC,qBAAqB;YACvB,CAAC,CAAC,6BAA6B,EACnC,IAAI,EACJ,MAAM,KAAK,QAAQ,CACpB,CAAC;AACJ,GAAG,CACD,mCAAmC,EACnC,kBAAkB,EAClB,sIAAsI,EACtI,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC;KACE,MAAM,CAAC;IACN,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,iBAAiB,EAAE;QACpD,OAAO,EACL,iGAAiG;KACpG,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC5B,CAAC;KACD,MAAM,EAAE,EACX,yCAAyC,EACzC,IAAI,CACL,CAAC;AACF,GAAG,CACD,iCAAiC,EACjC,gBAAgB,EAChB,2GAA2G,EAC3G,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC;KACE,MAAM,CAAC;IACN,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;SACtD,OAAO,CAAC,KAAK,CAAC;CAClB,CAAC;KACD,MAAM,EAAE,EACX,oDAAoD,CACrD,CAAC;AACF,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;IACzC,GAAG,CACD,8BAA8B,MAAM,EAAE,EACtC,aAAa,MAAM,EAAE,EACrB,GAAG,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,wBAAwB,EACtE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EACtC,SAAS,EACT,MAAM,KAAK,QAAQ;QACjB,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,sCAAsC,EAC1C,IAAI,EACJ,IAAI,CACL,CAAC;AACJ,GAAG,CACD,4BAA4B,EAC5B,WAAW,EACX,wDAAwD,EACxD,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,EACxC,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAC9D,kCAAkC,CACnC,CAAC;AACF,GAAG,CACD,0BAA0B,EAC1B,iBAAiB,EACjB,gDAAgD,EAChD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAC5D,gDAAgD,CACjD,CAAC;AACF,GAAG,CACD,oBAAoB,EACpB,WAAW,EACX,8DAA8D,EAC9D,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EACzD,kCAAkC,CACnC,CAAC;AACF,GAAG,CACD,oBAAoB,EACpB,WAAW,EACX,6CAA6C,EAC7C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EACnE,uBAAuB,EACvB,IAAI,CACL,CAAC;AACF,GAAG,CACD,0BAA0B,EAC1B,iBAAiB,EACjB,wDAAwD,EACxD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAChD,4BAA4B,EAC5B,IAAI,CACL,CAAC;AACF,KAAK,MAAM,MAAM,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;IACpC,GAAG,CACD,8BAA8B,MAAM,EAAE,EACtC,YAAY,MAAM,EAAE,EACpB,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,oBAAoB,EAC1D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EACrD,MAAM,KAAK,KAAK;QACd,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,6BAA6B,EACjC,IAAI,EACJ,IAAI,CACL,CAAC;AACJ,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;IACrD,GAAG,CACD,+BAA+B,MAAM,EAAE,EACvC,MAAM,EACN,GAAG,MAAM,sDAAsD,EAC/D,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,KAAK;QACnC,CAAC,CAAC,CAAC;aACE,MAAM,CAAC;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;YAC/C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SACnC,CAAC;aACD,MAAM,EAAE;QACb,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EACxC,eAAe,MAAM,gBAAgB,EACrC,IAAI,EACJ,IAAI,CACL,CAAC;AACJ,KAAK,MAAM,MAAM,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC;IACzC,GAAG,CACD,+BAA+B,MAAM,EAAE,EACvC,QAAQ,EACR,GAAG,MAAM,4CAA4C,EACrD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAC7D,eAAe,MAAM,EAAE,EACvB,IAAI,EACJ,IAAI,CACL,CAAC;AACJ,GAAG,CACD,mBAAmB,EACnB,MAAM,EACN,sDAAsD,EACtD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACf,SAAS,EACT,yBAAyB,EACzB,IAAI,CACL,CAAC;AACF,GAAG,CACD,qBAAqB,EACrB,QAAQ,EACR,mFAAmF,EACnF,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EACpE,0BAA0B,EAC1B,IAAI,CACL,CAAC;AACF,GAAG,CACD,oBAAoB,EACpB,OAAO,EACP,uEAAuE,EACvE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACjB,CAAC;KACE,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACtD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;CAC5D,CAAC;KACD,MAAM,EAAE,EACX,0CAA0C,EAC1C,KAAK,EACL,KAAK,EACL,IAAI,CACL,CAAC;AACF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,GAAG,IAAI;IACP,GAAG,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC;CAC1C,CAAC;AACF,MAAM,UAAU,WAAW,CAAC,CAAgB;IAC1C,OAAO;QACL,GAAG,QAAQ,CAAC,CAAC,CAAC;QACd,SAAS,EAAE,UAAU;QACrB,cAAc,EACZ,+EAA+E;QACjF,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;QAClB,UAAU,EAAE,2DAA2D;QACvE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;KACvB,CAAC;AACJ,CAAC;AACD,MAAM,UAAU,UAAU,CAAC,CAAgB;IACzC,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,CAAC,OAAO;QACZ,SAAS,EAAE,SAAS;KACrB,CAAC;IACF,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;QACrB,CAAC,CAAC,IAAI,GAAG;YACP,QAAQ,EAAE,+BAA+B;YACzC,SAAS,EAAE,WAAW;SACvB,CAAC;IACJ,IACE,CAAC,iBAAiB,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CACpE,CAAC,CAAC,MAAM,CACT;QAED,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;IACtC,IAAI,CAAC,CAAC,MAAM,KAAK,cAAc;QAAE,CAAC,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9D,IAAI,CAAC,CAAC,MAAM,KAAK,kBAAkB;QACjC,CAAC,CAAC,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;IAC1D,IAAI,CAAC,CAAC,MAAM,KAAK,gBAAgB;QAAE,CAAC,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC;IACtE,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY;QAC3B,CAAC,CAAC,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;IAC7E,OAAO,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;AAC3B,CAAC"}
|