@workglow/ai 0.0.71 → 0.0.73
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/dist/browser.js +1632 -283
- package/dist/browser.js.map +20 -8
- package/dist/bun.js +1632 -283
- package/dist/bun.js.map +20 -8
- package/dist/node.js +1632 -283
- package/dist/node.js.map +20 -8
- package/dist/task/BackgroundRemovalTask.d.ts +351 -0
- package/dist/task/BackgroundRemovalTask.d.ts.map +1 -0
- package/dist/task/FaceDetectorTask.d.ts +520 -0
- package/dist/task/FaceDetectorTask.d.ts.map +1 -0
- package/dist/task/FaceLandmarkerTask.d.ts +549 -0
- package/dist/task/FaceLandmarkerTask.d.ts.map +1 -0
- package/dist/task/GestureRecognizerTask.d.ts +629 -0
- package/dist/task/GestureRecognizerTask.d.ts.map +1 -0
- package/dist/task/HandLandmarkerTask.d.ts +576 -0
- package/dist/task/HandLandmarkerTask.d.ts.map +1 -0
- package/dist/task/ImageClassificationTask.d.ts +410 -0
- package/dist/task/ImageClassificationTask.d.ts.map +1 -0
- package/dist/task/ImageEmbeddingTask.d.ts +503 -0
- package/dist/task/ImageEmbeddingTask.d.ts.map +1 -0
- package/dist/task/ImageSegmentationTask.d.ts +423 -0
- package/dist/task/ImageSegmentationTask.d.ts.map +1 -0
- package/dist/task/ImageToTextTask.d.ts +355 -0
- package/dist/task/ImageToTextTask.d.ts.map +1 -0
- package/dist/task/ObjectDetectionTask.d.ts +476 -0
- package/dist/task/ObjectDetectionTask.d.ts.map +1 -0
- package/dist/task/PoseLandmarkerTask.d.ts +637 -0
- package/dist/task/PoseLandmarkerTask.d.ts.map +1 -0
- package/dist/task/{TextClassifierTask.d.ts → TextClassificationTask.d.ts} +23 -12
- package/dist/task/TextClassificationTask.d.ts.map +1 -0
- package/dist/task/TextFillMaskTask.d.ts.map +1 -1
- package/dist/task/TextNamedEntityRecognitionTask.d.ts.map +1 -1
- package/dist/task/base/AiTask.d.ts.map +1 -1
- package/dist/task/base/AiTaskSchemas.d.ts +153 -0
- package/dist/task/base/AiTaskSchemas.d.ts.map +1 -1
- package/dist/task/base/AiVisionTask.d.ts +33 -0
- package/dist/task/base/AiVisionTask.d.ts.map +1 -0
- package/dist/task/index.d.ts +12 -1
- package/dist/task/index.d.ts.map +1 -1
- package/package.json +9 -9
- package/dist/task/TextClassifierTask.d.ts.map +0 -1
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { CreateWorkflow, JobQueueTaskConfig } from "@workglow/task-graph";
|
|
7
|
+
import { DataPortSchema, FromSchema } from "@workglow/util";
|
|
8
|
+
import { DeReplicateFromSchema } from "./base/AiTaskSchemas";
|
|
9
|
+
import { AiVisionTask } from "./base/AiVisionTask";
|
|
10
|
+
export declare const ImageClassificationInputSchema: {
|
|
11
|
+
readonly type: "object";
|
|
12
|
+
readonly properties: {
|
|
13
|
+
readonly image: {
|
|
14
|
+
readonly "x-replicate": true;
|
|
15
|
+
readonly format?: string | undefined;
|
|
16
|
+
readonly oneOf: readonly [{
|
|
17
|
+
readonly oneOf: readonly [{
|
|
18
|
+
readonly type: "string";
|
|
19
|
+
readonly title: "Image Data";
|
|
20
|
+
readonly description: "Image as data-uri";
|
|
21
|
+
}, {
|
|
22
|
+
readonly type: "object";
|
|
23
|
+
readonly additionalProperties: false;
|
|
24
|
+
readonly properties: {
|
|
25
|
+
readonly data: {
|
|
26
|
+
readonly oneOf: readonly [{
|
|
27
|
+
readonly type: "object";
|
|
28
|
+
readonly format: "image:ImageBitmap";
|
|
29
|
+
readonly title: "ImageBitmap";
|
|
30
|
+
}, {
|
|
31
|
+
readonly type: "object";
|
|
32
|
+
readonly format: "image:OffscreenCanvas";
|
|
33
|
+
readonly title: "OffscreenCanvas";
|
|
34
|
+
}, {
|
|
35
|
+
readonly type: "object";
|
|
36
|
+
readonly format: "image:VideoFrame";
|
|
37
|
+
readonly title: "VideoFrame";
|
|
38
|
+
}, {
|
|
39
|
+
readonly type: "object";
|
|
40
|
+
readonly properties: {
|
|
41
|
+
readonly data: {
|
|
42
|
+
readonly type: "array";
|
|
43
|
+
readonly items: {
|
|
44
|
+
readonly type: "number";
|
|
45
|
+
readonly format: "Uint8Clamped";
|
|
46
|
+
};
|
|
47
|
+
readonly format: "Uint8ClampedArray";
|
|
48
|
+
readonly title: "Data";
|
|
49
|
+
readonly description: "Data of the image";
|
|
50
|
+
};
|
|
51
|
+
readonly width: {
|
|
52
|
+
readonly type: "number";
|
|
53
|
+
readonly title: "Width";
|
|
54
|
+
readonly description: "Width of the image";
|
|
55
|
+
};
|
|
56
|
+
readonly height: {
|
|
57
|
+
readonly type: "number";
|
|
58
|
+
readonly title: "Height";
|
|
59
|
+
readonly description: "Height of the image";
|
|
60
|
+
};
|
|
61
|
+
readonly channels: {
|
|
62
|
+
readonly type: "number";
|
|
63
|
+
readonly title: "Channels";
|
|
64
|
+
readonly description: "Channels of the image";
|
|
65
|
+
};
|
|
66
|
+
readonly rawChannels: {
|
|
67
|
+
readonly type: "number";
|
|
68
|
+
readonly title: "Raw Channels";
|
|
69
|
+
readonly description: "Raw channels of the image";
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
readonly additionalProperties: false;
|
|
73
|
+
readonly required: readonly ["data", "width", "height", "channels"];
|
|
74
|
+
readonly format: "image:ImageBinary";
|
|
75
|
+
readonly title: "ImageBinary";
|
|
76
|
+
}];
|
|
77
|
+
};
|
|
78
|
+
readonly width: {
|
|
79
|
+
readonly type: "number";
|
|
80
|
+
readonly title: "Width";
|
|
81
|
+
readonly description: "Width of the image";
|
|
82
|
+
};
|
|
83
|
+
readonly height: {
|
|
84
|
+
readonly type: "number";
|
|
85
|
+
readonly title: "Height";
|
|
86
|
+
readonly description: "Height of the image";
|
|
87
|
+
};
|
|
88
|
+
readonly channels: {
|
|
89
|
+
readonly type: "number";
|
|
90
|
+
readonly title: "Channels";
|
|
91
|
+
readonly description: "Channels of the image";
|
|
92
|
+
readonly minimum: 1;
|
|
93
|
+
readonly maximum: 4;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
readonly required: readonly ["data", "width", "height", "channels"];
|
|
97
|
+
}];
|
|
98
|
+
readonly title: "Image";
|
|
99
|
+
readonly description: "Image as URL or base64-encoded data";
|
|
100
|
+
}, {
|
|
101
|
+
readonly type: "array";
|
|
102
|
+
readonly items: {
|
|
103
|
+
readonly oneOf: readonly [{
|
|
104
|
+
readonly type: "string";
|
|
105
|
+
readonly title: "Image Data";
|
|
106
|
+
readonly description: "Image as data-uri";
|
|
107
|
+
}, {
|
|
108
|
+
readonly type: "object";
|
|
109
|
+
readonly additionalProperties: false;
|
|
110
|
+
readonly properties: {
|
|
111
|
+
readonly data: {
|
|
112
|
+
readonly oneOf: readonly [{
|
|
113
|
+
readonly type: "object";
|
|
114
|
+
readonly format: "image:ImageBitmap";
|
|
115
|
+
readonly title: "ImageBitmap";
|
|
116
|
+
}, {
|
|
117
|
+
readonly type: "object";
|
|
118
|
+
readonly format: "image:OffscreenCanvas";
|
|
119
|
+
readonly title: "OffscreenCanvas";
|
|
120
|
+
}, {
|
|
121
|
+
readonly type: "object";
|
|
122
|
+
readonly format: "image:VideoFrame";
|
|
123
|
+
readonly title: "VideoFrame";
|
|
124
|
+
}, {
|
|
125
|
+
readonly type: "object";
|
|
126
|
+
readonly properties: {
|
|
127
|
+
readonly data: {
|
|
128
|
+
readonly type: "array";
|
|
129
|
+
readonly items: {
|
|
130
|
+
readonly type: "number";
|
|
131
|
+
readonly format: "Uint8Clamped";
|
|
132
|
+
};
|
|
133
|
+
readonly format: "Uint8ClampedArray";
|
|
134
|
+
readonly title: "Data";
|
|
135
|
+
readonly description: "Data of the image";
|
|
136
|
+
};
|
|
137
|
+
readonly width: {
|
|
138
|
+
readonly type: "number";
|
|
139
|
+
readonly title: "Width";
|
|
140
|
+
readonly description: "Width of the image";
|
|
141
|
+
};
|
|
142
|
+
readonly height: {
|
|
143
|
+
readonly type: "number";
|
|
144
|
+
readonly title: "Height";
|
|
145
|
+
readonly description: "Height of the image";
|
|
146
|
+
};
|
|
147
|
+
readonly channels: {
|
|
148
|
+
readonly type: "number";
|
|
149
|
+
readonly title: "Channels";
|
|
150
|
+
readonly description: "Channels of the image";
|
|
151
|
+
};
|
|
152
|
+
readonly rawChannels: {
|
|
153
|
+
readonly type: "number";
|
|
154
|
+
readonly title: "Raw Channels";
|
|
155
|
+
readonly description: "Raw channels of the image";
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
readonly additionalProperties: false;
|
|
159
|
+
readonly required: readonly ["data", "width", "height", "channels"];
|
|
160
|
+
readonly format: "image:ImageBinary";
|
|
161
|
+
readonly title: "ImageBinary";
|
|
162
|
+
}];
|
|
163
|
+
};
|
|
164
|
+
readonly width: {
|
|
165
|
+
readonly type: "number";
|
|
166
|
+
readonly title: "Width";
|
|
167
|
+
readonly description: "Width of the image";
|
|
168
|
+
};
|
|
169
|
+
readonly height: {
|
|
170
|
+
readonly type: "number";
|
|
171
|
+
readonly title: "Height";
|
|
172
|
+
readonly description: "Height of the image";
|
|
173
|
+
};
|
|
174
|
+
readonly channels: {
|
|
175
|
+
readonly type: "number";
|
|
176
|
+
readonly title: "Channels";
|
|
177
|
+
readonly description: "Channels of the image";
|
|
178
|
+
readonly minimum: 1;
|
|
179
|
+
readonly maximum: 4;
|
|
180
|
+
};
|
|
181
|
+
};
|
|
182
|
+
readonly required: readonly ["data", "width", "height", "channels"];
|
|
183
|
+
}];
|
|
184
|
+
readonly title: "Image";
|
|
185
|
+
readonly description: "Image as URL or base64-encoded data";
|
|
186
|
+
};
|
|
187
|
+
}];
|
|
188
|
+
readonly title: string | undefined;
|
|
189
|
+
readonly description: string | undefined;
|
|
190
|
+
};
|
|
191
|
+
readonly model: {
|
|
192
|
+
readonly "x-replicate": true;
|
|
193
|
+
readonly format?: string | undefined;
|
|
194
|
+
readonly oneOf: readonly [{
|
|
195
|
+
readonly oneOf: readonly [{
|
|
196
|
+
readonly title: "Model";
|
|
197
|
+
readonly description: `The model ${string}`;
|
|
198
|
+
} & {
|
|
199
|
+
readonly format: import(".").TypeModelSemantic;
|
|
200
|
+
readonly type: "string";
|
|
201
|
+
}, {
|
|
202
|
+
readonly type: "object";
|
|
203
|
+
readonly properties: {
|
|
204
|
+
readonly model_id: {
|
|
205
|
+
readonly type: "string";
|
|
206
|
+
};
|
|
207
|
+
readonly tasks: {
|
|
208
|
+
readonly type: "array";
|
|
209
|
+
readonly items: {
|
|
210
|
+
readonly type: "string";
|
|
211
|
+
};
|
|
212
|
+
};
|
|
213
|
+
readonly title: {
|
|
214
|
+
readonly type: "string";
|
|
215
|
+
};
|
|
216
|
+
readonly description: {
|
|
217
|
+
readonly type: "string";
|
|
218
|
+
};
|
|
219
|
+
readonly provider: {
|
|
220
|
+
readonly type: "string";
|
|
221
|
+
};
|
|
222
|
+
readonly providerConfig: {
|
|
223
|
+
readonly type: "object";
|
|
224
|
+
readonly default: {};
|
|
225
|
+
};
|
|
226
|
+
readonly metadata: {
|
|
227
|
+
readonly type: "object";
|
|
228
|
+
readonly default: {};
|
|
229
|
+
};
|
|
230
|
+
};
|
|
231
|
+
readonly required: readonly ["model_id", "tasks", "provider", "title", "description", "providerConfig", "metadata"];
|
|
232
|
+
readonly format: "model";
|
|
233
|
+
readonly additionalProperties: false;
|
|
234
|
+
} & {
|
|
235
|
+
readonly format: import(".").TypeModelSemantic;
|
|
236
|
+
}];
|
|
237
|
+
} & {
|
|
238
|
+
readonly format: import(".").TypeModelSemantic;
|
|
239
|
+
}, {
|
|
240
|
+
readonly type: "array";
|
|
241
|
+
readonly items: {
|
|
242
|
+
readonly oneOf: readonly [{
|
|
243
|
+
readonly title: "Model";
|
|
244
|
+
readonly description: `The model ${string}`;
|
|
245
|
+
} & {
|
|
246
|
+
readonly format: import(".").TypeModelSemantic;
|
|
247
|
+
readonly type: "string";
|
|
248
|
+
}, {
|
|
249
|
+
readonly type: "object";
|
|
250
|
+
readonly properties: {
|
|
251
|
+
readonly model_id: {
|
|
252
|
+
readonly type: "string";
|
|
253
|
+
};
|
|
254
|
+
readonly tasks: {
|
|
255
|
+
readonly type: "array";
|
|
256
|
+
readonly items: {
|
|
257
|
+
readonly type: "string";
|
|
258
|
+
};
|
|
259
|
+
};
|
|
260
|
+
readonly title: {
|
|
261
|
+
readonly type: "string";
|
|
262
|
+
};
|
|
263
|
+
readonly description: {
|
|
264
|
+
readonly type: "string";
|
|
265
|
+
};
|
|
266
|
+
readonly provider: {
|
|
267
|
+
readonly type: "string";
|
|
268
|
+
};
|
|
269
|
+
readonly providerConfig: {
|
|
270
|
+
readonly type: "object";
|
|
271
|
+
readonly default: {};
|
|
272
|
+
};
|
|
273
|
+
readonly metadata: {
|
|
274
|
+
readonly type: "object";
|
|
275
|
+
readonly default: {};
|
|
276
|
+
};
|
|
277
|
+
};
|
|
278
|
+
readonly required: readonly ["model_id", "tasks", "provider", "title", "description", "providerConfig", "metadata"];
|
|
279
|
+
readonly format: "model";
|
|
280
|
+
readonly additionalProperties: false;
|
|
281
|
+
} & {
|
|
282
|
+
readonly format: import(".").TypeModelSemantic;
|
|
283
|
+
}];
|
|
284
|
+
} & {
|
|
285
|
+
readonly format: import(".").TypeModelSemantic;
|
|
286
|
+
};
|
|
287
|
+
}];
|
|
288
|
+
readonly title: string | undefined;
|
|
289
|
+
readonly description: string | undefined;
|
|
290
|
+
};
|
|
291
|
+
readonly categories: {
|
|
292
|
+
readonly type: "array";
|
|
293
|
+
readonly items: {
|
|
294
|
+
readonly type: "string";
|
|
295
|
+
};
|
|
296
|
+
readonly title: "Categories";
|
|
297
|
+
readonly description: "List of candidate categories (optional, if provided uses zero-shot classification)";
|
|
298
|
+
readonly "x-ui-group": "Configuration";
|
|
299
|
+
};
|
|
300
|
+
readonly maxCategories: {
|
|
301
|
+
readonly type: "number";
|
|
302
|
+
readonly minimum: 1;
|
|
303
|
+
readonly maximum: 1000;
|
|
304
|
+
readonly default: 5;
|
|
305
|
+
readonly title: "Max Categories";
|
|
306
|
+
readonly description: "The maximum number of categories to return";
|
|
307
|
+
readonly "x-ui-group": "Configuration";
|
|
308
|
+
};
|
|
309
|
+
};
|
|
310
|
+
readonly required: readonly ["image", "model"];
|
|
311
|
+
readonly additionalProperties: false;
|
|
312
|
+
};
|
|
313
|
+
export declare const ImageClassificationOutputSchema: {
|
|
314
|
+
readonly type: "object";
|
|
315
|
+
readonly properties: {
|
|
316
|
+
readonly categories: {
|
|
317
|
+
readonly oneOf: readonly [{
|
|
318
|
+
readonly type: "array";
|
|
319
|
+
readonly items: {
|
|
320
|
+
readonly type: "object";
|
|
321
|
+
readonly properties: {
|
|
322
|
+
readonly label: {
|
|
323
|
+
readonly type: "string";
|
|
324
|
+
readonly title: "Label";
|
|
325
|
+
readonly description: "Category label";
|
|
326
|
+
};
|
|
327
|
+
readonly score: {
|
|
328
|
+
readonly type: "number";
|
|
329
|
+
readonly title: "Confidence Score";
|
|
330
|
+
readonly description: "Confidence score between 0 and 1";
|
|
331
|
+
readonly minimum: 0;
|
|
332
|
+
readonly maximum: 1;
|
|
333
|
+
};
|
|
334
|
+
};
|
|
335
|
+
readonly required: readonly ["label", "score"];
|
|
336
|
+
readonly additionalProperties: false;
|
|
337
|
+
readonly title: "Category";
|
|
338
|
+
readonly description: "Classification category with label and score";
|
|
339
|
+
};
|
|
340
|
+
}, {
|
|
341
|
+
readonly type: "array";
|
|
342
|
+
readonly items: {
|
|
343
|
+
readonly type: "array";
|
|
344
|
+
readonly items: {
|
|
345
|
+
readonly type: "object";
|
|
346
|
+
readonly properties: {
|
|
347
|
+
readonly label: {
|
|
348
|
+
readonly type: "string";
|
|
349
|
+
readonly title: "Label";
|
|
350
|
+
readonly description: "Category label";
|
|
351
|
+
};
|
|
352
|
+
readonly score: {
|
|
353
|
+
readonly type: "number";
|
|
354
|
+
readonly title: "Confidence Score";
|
|
355
|
+
readonly description: "Confidence score between 0 and 1";
|
|
356
|
+
readonly minimum: 0;
|
|
357
|
+
readonly maximum: 1;
|
|
358
|
+
};
|
|
359
|
+
};
|
|
360
|
+
readonly required: readonly ["label", "score"];
|
|
361
|
+
readonly additionalProperties: false;
|
|
362
|
+
readonly title: "Category";
|
|
363
|
+
readonly description: "Classification category with label and score";
|
|
364
|
+
};
|
|
365
|
+
};
|
|
366
|
+
}];
|
|
367
|
+
readonly title: "Categories";
|
|
368
|
+
readonly description: "The classification categories with their scores";
|
|
369
|
+
};
|
|
370
|
+
};
|
|
371
|
+
readonly required: readonly ["categories"];
|
|
372
|
+
readonly additionalProperties: false;
|
|
373
|
+
};
|
|
374
|
+
export type ImageClassificationTaskInput = FromSchema<typeof ImageClassificationInputSchema>;
|
|
375
|
+
export type ImageClassificationTaskOutput = FromSchema<typeof ImageClassificationOutputSchema>;
|
|
376
|
+
export type ImageClassificationTaskExecuteInput = DeReplicateFromSchema<typeof ImageClassificationInputSchema>;
|
|
377
|
+
export type ImageClassificationTaskExecuteOutput = DeReplicateFromSchema<typeof ImageClassificationOutputSchema>;
|
|
378
|
+
/**
|
|
379
|
+
* Classifies images into categories using vision models.
|
|
380
|
+
* Automatically selects between regular and zero-shot classification based on whether categories are provided.
|
|
381
|
+
*/
|
|
382
|
+
export declare class ImageClassificationTask extends AiVisionTask<ImageClassificationTaskInput, ImageClassificationTaskOutput, JobQueueTaskConfig> {
|
|
383
|
+
static type: string;
|
|
384
|
+
static category: string;
|
|
385
|
+
static title: string;
|
|
386
|
+
static description: string;
|
|
387
|
+
static inputSchema(): DataPortSchema;
|
|
388
|
+
static outputSchema(): DataPortSchema;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Convenience function to run image classification tasks.
|
|
392
|
+
* Creates and executes an ImageClassificationTask with the provided input.
|
|
393
|
+
* @param input The input parameters for image classification (image, model, and optional categories)
|
|
394
|
+
* @returns Promise resolving to the classification categories with scores
|
|
395
|
+
*/
|
|
396
|
+
export declare const ImageClassification: (input: ImageClassificationTaskInput, config?: JobQueueTaskConfig) => Promise<{
|
|
397
|
+
categories: {
|
|
398
|
+
score: number;
|
|
399
|
+
label: string;
|
|
400
|
+
}[] | {
|
|
401
|
+
score: number;
|
|
402
|
+
label: string;
|
|
403
|
+
}[][];
|
|
404
|
+
}>;
|
|
405
|
+
declare module "@workglow/task-graph" {
|
|
406
|
+
interface Workflow {
|
|
407
|
+
ImageClassification: CreateWorkflow<ImageClassificationTaskInput, ImageClassificationTaskOutput, JobQueueTaskConfig>;
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
//# sourceMappingURL=ImageClassificationTask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageClassificationTask.d.ts","sourceRoot":"","sources":["../../src/task/ImageClassificationTask.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAA0B,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EACL,qBAAqB,EAKtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BR,CAAC;AAEpC,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcT,CAAC;AAEpC,MAAM,MAAM,4BAA4B,GAAG,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAC;AAC7F,MAAM,MAAM,6BAA6B,GAAG,UAAU,CAAC,OAAO,+BAA+B,CAAC,CAAC;AAC/F,MAAM,MAAM,mCAAmC,GAAG,qBAAqB,CACrE,OAAO,8BAA8B,CACtC,CAAC;AACF,MAAM,MAAM,oCAAoC,GAAG,qBAAqB,CACtE,OAAO,+BAA+B,CACvC,CAAC;AAEF;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,YAAY,CACvD,4BAA4B,EAC5B,6BAA6B,EAC7B,kBAAkB,CACnB;IACC,OAAc,IAAI,SAA6B;IAC/C,OAAc,QAAQ,SAAqB;IAC3C,OAAc,KAAK,SAA0B;IAC7C,OAAc,WAAW,SACkG;WAC7G,WAAW,IAAI,cAAc;WAG7B,YAAY,IAAI,cAAc;CAG7C;AAID;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,OAAO,4BAA4B,EACnC,SAAS,kBAAkB;;;;;;;;EAG5B,CAAC;AAEF,OAAO,QAAQ,sBAAsB,CAAC;IACpC,UAAU,QAAQ;QAChB,mBAAmB,EAAE,cAAc,CACjC,4BAA4B,EAC5B,6BAA6B,EAC7B,kBAAkB,CACnB,CAAC;KACH;CACF"}
|