@dyrra/protocol 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,357 @@
1
+ import { z } from "zod";
2
+ import * as A from "./actions.js";
3
+ import * as C from "./common.js";
4
+ import * as E from "./errors.js";
5
+ import * as S from "./screen.js";
6
+ import * as Sy from "./system.js";
7
+ import * as R from "./rpc.js";
8
+ import * as Api from "./api.js";
9
+ /**
10
+ * Все именованные схемы протокола. Из этого списка генерируются
11
+ * JSON Schema, OpenAPI и Swift-типы — руками типы не дублировать (ТЗ 6).
12
+ */
13
+ export const NAMED_SCHEMAS = {
14
+ Scope: C.Scope,
15
+ MachineKind: C.MachineKind,
16
+ Availability: C.Availability,
17
+ ReportedAvailability: C.ReportedAvailability,
18
+ DisplayInfo: C.DisplayInfo,
19
+ Permissions: C.Permissions,
20
+ MachineStatus: C.MachineStatus,
21
+ DeliveryOptions: C.DeliveryOptions,
22
+ ErrorCode: E.ErrorCode,
23
+ ApiError: E.ApiError,
24
+ MouseButton: A.MouseButton,
25
+ Modifier: A.Modifier,
26
+ Action: A.Action,
27
+ ScreenshotRequest: S.ScreenshotRequest,
28
+ Screenshot: S.Screenshot,
29
+ UiTreeScope: S.UiTreeScope,
30
+ UiTreeRequest: S.UiTreeRequest,
31
+ UiTreeApp: S.UiTreeApp,
32
+ UiElement: S.UiElement,
33
+ UiTree: S.UiTree,
34
+ ShellRequest: Sy.ShellRequest,
35
+ ShellResult: Sy.ShellResult,
36
+ FileUploadBegin: Sy.FileUploadBegin,
37
+ FileStat: Sy.FileStat,
38
+ AppRef: Sy.AppRef,
39
+ RunningApp: Sy.RunningApp,
40
+ WindowInfo: Sy.WindowInfo,
41
+ OpenUrlRequest: Sy.OpenUrlRequest,
42
+ ClipboardText: Sy.ClipboardText,
43
+ CommandStatus: Sy.CommandStatus,
44
+ QueuedCommand: Sy.QueuedCommand,
45
+ RpcMethod: R.RpcMethod,
46
+ RpcRequest: R.RpcRequest,
47
+ RpcResponse: R.RpcResponse,
48
+ MachineEventType: R.MachineEventType,
49
+ MachineEvent: R.MachineEvent,
50
+ Heartbeat: R.Heartbeat,
51
+ ConnectionGrant: R.ConnectionGrant,
52
+ CreateEndUserRequest: Api.CreateEndUserRequest,
53
+ EndUser: Api.EndUser,
54
+ CreateLinkSessionRequest: Api.CreateLinkSessionRequest,
55
+ LinkSession: Api.LinkSession,
56
+ Connection: Api.Connection,
57
+ CloudTerm: Api.CloudTerm,
58
+ CloudHardware: Api.CloudHardware,
59
+ BillingPackage: Api.BillingPackage,
60
+ Subscription: Api.Subscription,
61
+ CreateCloudMacRequest: Api.CreateCloudMacRequest,
62
+ CloudMacQuote: Api.CloudMacQuote,
63
+ CloudMac: Api.CloudMac,
64
+ Job: Api.Job,
65
+ Recording: Api.Recording,
66
+ WebhookEventType: Api.WebhookEventType,
67
+ WebhookEvent: Api.WebhookEvent,
68
+ };
69
+ const TARGET_ERRORS = [
70
+ "machine_offline",
71
+ "machine_unavailable",
72
+ "machine_paused",
73
+ "machine_busy",
74
+ "permission_missing",
75
+ "scope_denied",
76
+ "hidden_app_active",
77
+ "denied_by_user",
78
+ "confirmation_timeout",
79
+ "app_update_required",
80
+ ];
81
+ const BASE_ERRORS = ["unauthorized", "forbidden", "not_found", "rate_limited"];
82
+ /** Таблица маршрутов публичного API v1 (ТЗ 8). Из неё строится OpenAPI. */
83
+ export const ROUTES = [
84
+ {
85
+ method: "post",
86
+ path: "/v1/end-users",
87
+ operationId: "createEndUser",
88
+ summary: "Создать пользователя платформы",
89
+ tag: "end-users",
90
+ body: Api.CreateEndUserRequest,
91
+ response: Api.EndUser,
92
+ status: 201,
93
+ errors: [...BASE_ERRORS, "invalid_request"],
94
+ },
95
+ {
96
+ method: "get",
97
+ path: "/v1/end-users/{id}",
98
+ operationId: "getEndUser",
99
+ summary: "Получить пользователя платформы",
100
+ tag: "end-users",
101
+ response: Api.EndUser,
102
+ errors: BASE_ERRORS,
103
+ },
104
+ {
105
+ method: "post",
106
+ path: "/v1/link-sessions",
107
+ operationId: "createLinkSession",
108
+ summary: "Создать сессию подключения Mac",
109
+ tag: "link",
110
+ body: Api.CreateLinkSessionRequest,
111
+ response: Api.LinkSession,
112
+ status: 201,
113
+ errors: [...BASE_ERRORS, "invalid_request"],
114
+ },
115
+ {
116
+ method: "get",
117
+ path: "/v1/connections",
118
+ operationId: "listConnections",
119
+ summary: "Список подключений",
120
+ tag: "connections",
121
+ response: z.object({ data: z.array(Api.Connection) }),
122
+ errors: BASE_ERRORS,
123
+ },
124
+ {
125
+ method: "get",
126
+ path: "/v1/connections/{connectionId}",
127
+ operationId: "getConnection",
128
+ summary: "Подключение и состояние Mac",
129
+ tag: "connections",
130
+ response: Api.Connection,
131
+ errors: BASE_ERRORS,
132
+ },
133
+ {
134
+ method: "delete",
135
+ path: "/v1/connections/{connectionId}",
136
+ operationId: "revokeConnection",
137
+ summary: "Отключить Mac от платформы",
138
+ tag: "connections",
139
+ response: z.object({ ok: z.literal(true) }),
140
+ errors: BASE_ERRORS,
141
+ },
142
+ {
143
+ method: "post",
144
+ path: "/v1/targets/{target}/screenshot",
145
+ operationId: "screenshot",
146
+ summary: "Снимок экрана",
147
+ tag: "control",
148
+ scope: "screen",
149
+ body: S.ScreenshotRequest,
150
+ response: S.Screenshot,
151
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS],
152
+ },
153
+ {
154
+ method: "post",
155
+ path: "/v1/targets/{target}/actions",
156
+ operationId: "performActions",
157
+ summary: "Выполнить действия ввода",
158
+ tag: "control",
159
+ scope: "input",
160
+ body: z.object({
161
+ actions: z.array(A.Action).min(1).max(A.MAX_ACTIONS_PER_BATCH),
162
+ screenshotAfter: S.ScreenshotRequest.optional(),
163
+ expectBundleId: z
164
+ .string()
165
+ .min(1)
166
+ .max(255)
167
+ .optional()
168
+ .meta({
169
+ description: "Приложение, в котором должна идти серия. Перед каждым действием Mac сверяет, " +
170
+ "что активно именно оно, иначе серия останавливается с app_not_frontmost.",
171
+ }),
172
+ }),
173
+ response: z.object({
174
+ ok: z.boolean(),
175
+ screenshot: S.Screenshot.nullable(),
176
+ failedIndex: z.number().int().optional(),
177
+ }),
178
+ errors: [
179
+ ...BASE_ERRORS,
180
+ ...TARGET_ERRORS,
181
+ "invalid_request",
182
+ "snapshot_expired",
183
+ "app_not_frontmost",
184
+ ],
185
+ },
186
+ {
187
+ method: "post",
188
+ path: "/v1/targets/{target}/ui-tree",
189
+ operationId: "uiTree",
190
+ summary: "Структура экрана элементами",
191
+ tag: "control",
192
+ scope: "screen",
193
+ body: S.UiTreeRequest,
194
+ response: S.UiTree,
195
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS],
196
+ },
197
+ {
198
+ method: "get",
199
+ path: "/v1/targets/{target}/cursor",
200
+ operationId: "cursorPosition",
201
+ summary: "Позиция курсора",
202
+ tag: "control",
203
+ scope: "screen",
204
+ response: z.object({ x: z.number(), y: z.number() }),
205
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS],
206
+ },
207
+ {
208
+ method: "post",
209
+ path: "/v1/targets/{target}/shell",
210
+ operationId: "runShell",
211
+ summary: "Выполнить команду в терминале",
212
+ tag: "control",
213
+ scope: "shell",
214
+ body: Sy.ShellRequest,
215
+ response: Sy.ShellResult,
216
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS, "timeout"],
217
+ },
218
+ {
219
+ method: "post",
220
+ path: "/v1/targets/{target}/apps/open",
221
+ operationId: "openApp",
222
+ summary: "Открыть приложение",
223
+ tag: "native",
224
+ scope: "input",
225
+ body: Sy.AppRef,
226
+ response: z.object({
227
+ ok: z.literal(true),
228
+ bundleId: z.string().optional(),
229
+ name: z.string().optional(),
230
+ }),
231
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS, "app_not_frontmost"],
232
+ },
233
+ {
234
+ method: "get",
235
+ path: "/v1/targets/{target}/apps",
236
+ operationId: "listApps",
237
+ summary: "Запущенные приложения",
238
+ tag: "native",
239
+ scope: "screen",
240
+ response: z.object({ data: z.array(Sy.RunningApp) }),
241
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS],
242
+ },
243
+ {
244
+ method: "get",
245
+ path: "/v1/targets/{target}/windows",
246
+ operationId: "listWindows",
247
+ summary: "Список окон",
248
+ tag: "native",
249
+ scope: "screen",
250
+ response: z.object({ data: z.array(Sy.WindowInfo) }),
251
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS],
252
+ },
253
+ {
254
+ method: "post",
255
+ path: "/v1/targets/{target}/urls/open",
256
+ operationId: "openUrl",
257
+ summary: "Открыть ссылку",
258
+ tag: "native",
259
+ scope: "input",
260
+ body: Sy.OpenUrlRequest,
261
+ response: z.object({ ok: z.literal(true) }),
262
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS],
263
+ },
264
+ {
265
+ method: "get",
266
+ path: "/v1/targets/{target}/clipboard",
267
+ operationId: "getClipboard",
268
+ summary: "Прочитать буфер обмена",
269
+ tag: "native",
270
+ scope: "clipboard",
271
+ response: Sy.ClipboardText,
272
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS],
273
+ },
274
+ {
275
+ method: "put",
276
+ path: "/v1/targets/{target}/clipboard",
277
+ operationId: "setClipboard",
278
+ summary: "Записать в буфер обмена",
279
+ tag: "native",
280
+ scope: "clipboard",
281
+ body: Sy.ClipboardText,
282
+ response: z.object({ ok: z.literal(true) }),
283
+ errors: [...BASE_ERRORS, ...TARGET_ERRORS],
284
+ },
285
+ {
286
+ method: "get",
287
+ path: "/v1/commands/{commandId}",
288
+ operationId: "getCommand",
289
+ summary: "Статус команды из очереди",
290
+ tag: "commands",
291
+ response: Sy.QueuedCommand,
292
+ errors: BASE_ERRORS,
293
+ },
294
+ {
295
+ method: "delete",
296
+ path: "/v1/commands/{commandId}",
297
+ operationId: "cancelCommand",
298
+ summary: "Отменить команду в очереди",
299
+ tag: "commands",
300
+ response: Sy.QueuedCommand,
301
+ errors: BASE_ERRORS,
302
+ },
303
+ {
304
+ method: "get",
305
+ path: "/v1/subscription",
306
+ operationId: "getSubscription",
307
+ summary: "Текущий пакет активных Mac и ссылки на переход",
308
+ tag: "billing",
309
+ response: Api.Subscription,
310
+ errors: BASE_ERRORS,
311
+ },
312
+ {
313
+ method: "post",
314
+ path: "/v1/cloud-macs",
315
+ operationId: "createCloudMac",
316
+ summary: "Взять облачный Mac (только разработка и тесты)",
317
+ tag: "cloud",
318
+ body: Api.CreateCloudMacRequest,
319
+ response: Api.CloudMac,
320
+ status: 201,
321
+ // Конфигурации по запросу аренду не создают: 202 и заявка (ТЗ 4.2).
322
+ altResponse: {
323
+ status: 202,
324
+ schema: Api.CloudMacQuote,
325
+ description: "Конфигурация по запросу: создана заявка, аренды нет",
326
+ },
327
+ errors: [...BASE_ERRORS, "invalid_request", "payment_required"],
328
+ },
329
+ {
330
+ method: "get",
331
+ path: "/v1/cloud-macs",
332
+ operationId: "listCloudMacs",
333
+ summary: "Список облачных Mac",
334
+ tag: "cloud",
335
+ response: z.object({ data: z.array(Api.CloudMac) }),
336
+ errors: BASE_ERRORS,
337
+ },
338
+ {
339
+ method: "get",
340
+ path: "/v1/cloud-macs/{id}",
341
+ operationId: "getCloudMac",
342
+ summary: "Облачный Mac",
343
+ tag: "cloud",
344
+ response: Api.CloudMac,
345
+ errors: BASE_ERRORS,
346
+ },
347
+ {
348
+ method: "delete",
349
+ path: "/v1/cloud-macs/{id}",
350
+ operationId: "endCloudMac",
351
+ summary: "Завершить аренду (машина освобождается не раньше 24 ч)",
352
+ tag: "cloud",
353
+ response: Api.CloudMac,
354
+ errors: [...BASE_ERRORS, "lease_not_active"],
355
+ },
356
+ ];
357
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,CAAC,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;IACd,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;IAC5B,oBAAoB,EAAE,CAAC,CAAC,oBAAoB;IAC5C,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,aAAa,EAAE,CAAC,CAAC,aAAa;IAC9B,eAAe,EAAE,CAAC,CAAC,eAAe;IAElC,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;IAEpB,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;IACpB,MAAM,EAAE,CAAC,CAAC,MAAM;IAEhB,iBAAiB,EAAE,CAAC,CAAC,iBAAiB;IACtC,UAAU,EAAE,CAAC,CAAC,UAAU;IACxB,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,aAAa,EAAE,CAAC,CAAC,aAAa;IAC9B,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,MAAM,EAAE,CAAC,CAAC,MAAM;IAEhB,YAAY,EAAE,EAAE,CAAC,YAAY;IAC7B,WAAW,EAAE,EAAE,CAAC,WAAW;IAC3B,eAAe,EAAE,EAAE,CAAC,eAAe;IACnC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IACrB,MAAM,EAAE,EAAE,CAAC,MAAM;IACjB,UAAU,EAAE,EAAE,CAAC,UAAU;IACzB,UAAU,EAAE,EAAE,CAAC,UAAU;IACzB,cAAc,EAAE,EAAE,CAAC,cAAc;IACjC,aAAa,EAAE,EAAE,CAAC,aAAa;IAC/B,aAAa,EAAE,EAAE,CAAC,aAAa;IAC/B,aAAa,EAAE,EAAE,CAAC,aAAa;IAE/B,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,UAAU,EAAE,CAAC,CAAC,UAAU;IACxB,WAAW,EAAE,CAAC,CAAC,WAAW;IAC1B,gBAAgB,EAAE,CAAC,CAAC,gBAAgB;IACpC,YAAY,EAAE,CAAC,CAAC,YAAY;IAC5B,SAAS,EAAE,CAAC,CAAC,SAAS;IACtB,eAAe,EAAE,CAAC,CAAC,eAAe;IAElC,oBAAoB,EAAE,GAAG,CAAC,oBAAoB;IAC9C,OAAO,EAAE,GAAG,CAAC,OAAO;IACpB,wBAAwB,EAAE,GAAG,CAAC,wBAAwB;IACtD,WAAW,EAAE,GAAG,CAAC,WAAW;IAC5B,UAAU,EAAE,GAAG,CAAC,UAAU;IAC1B,SAAS,EAAE,GAAG,CAAC,SAAS;IACxB,aAAa,EAAE,GAAG,CAAC,aAAa;IAChC,cAAc,EAAE,GAAG,CAAC,cAAc;IAClC,YAAY,EAAE,GAAG,CAAC,YAAY;IAC9B,qBAAqB,EAAE,GAAG,CAAC,qBAAqB;IAChD,aAAa,EAAE,GAAG,CAAC,aAAa;IAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;IACtB,GAAG,EAAE,GAAG,CAAC,GAAG;IACZ,SAAS,EAAE,GAAG,CAAC,SAAS;IACxB,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;IACtC,YAAY,EAAE,GAAG,CAAC,YAAY;CACtB,CAAC;AAqBX,MAAM,aAAa,GAAkB;IACnC,iBAAiB;IACjB,qBAAqB;IACrB,gBAAgB;IAChB,cAAc;IACd,oBAAoB;IACpB,cAAc;IACd,mBAAmB;IACnB,gBAAgB;IAChB,sBAAsB;IACtB,qBAAqB;CACtB,CAAC;AAEF,MAAM,WAAW,GAAkB,CAAC,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;AAE9F,2EAA2E;AAC3E,MAAM,CAAC,MAAM,MAAM,GAAe;IAChC;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,gCAAgC;QACzC,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,GAAG,CAAC,oBAAoB;QAC9B,QAAQ,EAAE,GAAG,CAAC,OAAO;QACrB,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,iBAAiB,CAAC;KAC5C;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,iCAAiC;QAC1C,GAAG,EAAE,WAAW;QAChB,QAAQ,EAAE,GAAG,CAAC,OAAO;QACrB,MAAM,EAAE,WAAW;KACpB;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,mBAAmB;QACzB,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,gCAAgC;QACzC,GAAG,EAAE,MAAM;QACX,IAAI,EAAE,GAAG,CAAC,wBAAwB;QAClC,QAAQ,EAAE,GAAG,CAAC,WAAW;QACzB,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,iBAAiB,CAAC;KAC5C;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,oBAAoB;QAC7B,GAAG,EAAE,aAAa;QAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QACrD,MAAM,EAAE,WAAW;KACpB;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,6BAA6B;QACtC,GAAG,EAAE,aAAa;QAClB,QAAQ,EAAE,GAAG,CAAC,UAAU;QACxB,MAAM,EAAE,WAAW;KACpB;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,4BAA4B;QACrC,GAAG,EAAE,aAAa;QAClB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,EAAE,WAAW;KACpB;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iCAAiC;QACvC,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,eAAe;QACxB,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,CAAC,CAAC,iBAAiB;QACzB,QAAQ,EAAE,CAAC,CAAC,UAAU;QACtB,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC;KAC3C;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,0BAA0B;QACnC,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACb,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB,CAAC;YAC9D,eAAe,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAC/C,cAAc,EAAE,CAAC;iBACd,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,IAAI,CAAC;gBACJ,WAAW,EACT,+EAA+E;oBAC/E,0EAA0E;aAC7E,CAAC;SACL,CAAC;QACF,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE;YACf,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE;YACnC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;SACzC,CAAC;QACF,MAAM,EAAE;YACN,GAAG,WAAW;YACd,GAAG,aAAa;YAChB,iBAAiB;YACjB,kBAAkB;YAClB,mBAAmB;SACpB;KACF;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,QAAQ;QACrB,OAAO,EAAE,6BAA6B;QACtC,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,QAAQ;QACf,IAAI,EAAE,CAAC,CAAC,aAAa;QACrB,QAAQ,EAAE,CAAC,CAAC,MAAM;QAClB,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC;KAC3C;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,6BAA6B;QACnC,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,iBAAiB;QAC1B,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACpD,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC;KAC3C;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,+BAA+B;QACxC,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,EAAE,CAAC,YAAY;QACrB,QAAQ,EAAE,EAAE,CAAC,WAAW;QACxB,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,EAAE,SAAS,CAAC;KACtD;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,oBAAoB;QAC7B,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,EAAE,CAAC,MAAM;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B,CAAC;QACF,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,EAAE,mBAAmB,CAAC;KAChE;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,UAAU;QACvB,OAAO,EAAE,uBAAuB;QAChC,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC;KAC3C;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,8BAA8B;QACpC,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,aAAa;QACtB,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,QAAQ;QACf,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QACpD,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC;KAC3C;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,SAAS;QACtB,OAAO,EAAE,gBAAgB;QACzB,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,EAAE,CAAC,cAAc;QACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC;KAC3C;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,wBAAwB;QACjC,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,EAAE,CAAC,aAAa;QAC1B,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC;KAC3C;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,gCAAgC;QACtC,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,yBAAyB;QAClC,GAAG,EAAE,QAAQ;QACb,KAAK,EAAE,WAAW;QAClB,IAAI,EAAE,EAAE,CAAC,aAAa;QACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,GAAG,aAAa,CAAC;KAC3C;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,2BAA2B;QACpC,GAAG,EAAE,UAAU;QACf,QAAQ,EAAE,EAAE,CAAC,aAAa;QAC1B,MAAM,EAAE,WAAW;KACpB;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,0BAA0B;QAChC,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,4BAA4B;QACrC,GAAG,EAAE,UAAU;QACf,QAAQ,EAAE,EAAE,CAAC,aAAa;QAC1B,MAAM,EAAE,WAAW;KACpB;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,gDAAgD;QACzD,GAAG,EAAE,SAAS;QACd,QAAQ,EAAE,GAAG,CAAC,YAAY;QAC1B,MAAM,EAAE,WAAW;KACpB;IACD;QACE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,gBAAgB;QAC7B,OAAO,EAAE,gDAAgD;QACzD,GAAG,EAAE,OAAO;QACZ,IAAI,EAAE,GAAG,CAAC,qBAAqB;QAC/B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG;QACX,oEAAoE;QACpE,WAAW,EAAE;YACX,MAAM,EAAE,GAAG;YACX,MAAM,EAAE,GAAG,CAAC,aAAa;YACzB,WAAW,EAAE,qDAAqD;SACnE;QACD,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,iBAAiB,EAAE,kBAAkB,CAAC;KAChE;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,eAAe;QAC5B,OAAO,EAAE,qBAAqB;QAC9B,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,MAAM,EAAE,WAAW;KACpB;IACD;QACE,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,cAAc;QACvB,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,WAAW;KACpB;IACD;QACE,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,wDAAwD;QACjE,GAAG,EAAE,OAAO;QACZ,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,CAAC,GAAG,WAAW,EAAE,kBAAkB,CAAC;KAC7C;CACF,CAAC"}