@liforma/publisher 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/README.md +23 -6
  2. package/dist/createPublisher.d.ts +20 -350
  3. package/dist/createPublisher.d.ts.map +1 -1
  4. package/dist/createPublisher.js +17 -316
  5. package/dist/createPublisher.js.map +1 -1
  6. package/dist/index.d.ts +10 -3
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/jobs.d.ts +11 -13
  10. package/dist/jobs.d.ts.map +1 -1
  11. package/dist/jobs.js +10 -23
  12. package/dist/jobs.js.map +1 -1
  13. package/dist/options.d.ts +11 -0
  14. package/dist/options.d.ts.map +1 -0
  15. package/dist/options.js +2 -0
  16. package/dist/options.js.map +1 -0
  17. package/dist/publishStart.d.ts +7 -0
  18. package/dist/publishStart.d.ts.map +1 -0
  19. package/dist/publishStart.js +10 -0
  20. package/dist/publishStart.js.map +1 -0
  21. package/dist/resources/avatars.d.ts +8 -0
  22. package/dist/resources/avatars.d.ts.map +1 -0
  23. package/dist/resources/avatars.js +11 -0
  24. package/dist/resources/avatars.js.map +1 -0
  25. package/dist/resources/backdrops.d.ts +25 -0
  26. package/dist/resources/backdrops.d.ts.map +1 -0
  27. package/dist/resources/backdrops.js +62 -0
  28. package/dist/resources/backdrops.js.map +1 -0
  29. package/dist/resources/characters.d.ts +40 -0
  30. package/dist/resources/characters.d.ts.map +1 -0
  31. package/dist/resources/characters.js +71 -0
  32. package/dist/resources/characters.js.map +1 -0
  33. package/dist/resources/clothes.d.ts +28 -0
  34. package/dist/resources/clothes.d.ts.map +1 -0
  35. package/dist/resources/clothes.js +55 -0
  36. package/dist/resources/clothes.js.map +1 -0
  37. package/dist/resources/experiences.d.ts +36 -0
  38. package/dist/resources/experiences.d.ts.map +1 -0
  39. package/dist/resources/experiences.js +71 -0
  40. package/dist/resources/experiences.js.map +1 -0
  41. package/dist/resources/hair.d.ts +19 -0
  42. package/dist/resources/hair.d.ts.map +1 -0
  43. package/dist/resources/hair.js +43 -0
  44. package/dist/resources/hair.js.map +1 -0
  45. package/dist/resources/sets.d.ts +22 -0
  46. package/dist/resources/sets.d.ts.map +1 -0
  47. package/dist/resources/sets.js +49 -0
  48. package/dist/resources/sets.js.map +1 -0
  49. package/dist/schemas.d.ts +700 -20
  50. package/dist/schemas.d.ts.map +1 -1
  51. package/dist/schemas.js +62 -4
  52. package/dist/schemas.js.map +1 -1
  53. package/dist/spatial.d.ts +3 -0
  54. package/dist/spatial.d.ts.map +1 -0
  55. package/dist/spatial.js +13 -0
  56. package/dist/spatial.js.map +1 -0
  57. package/dist/validate.d.ts +3 -0
  58. package/dist/validate.d.ts.map +1 -0
  59. package/dist/validate.js +13 -0
  60. package/dist/validate.js.map +1 -0
  61. package/dist/version.d.ts +1 -1
  62. package/dist/version.js +1 -1
  63. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @liforma/publisher
2
2
 
3
- Server SDK for the Liforma Publisher API — upload images, create locations, wrap places, create clothes/hair/characters, and publish experiences.
3
+ Server SDK for the Liforma Publisher API — upload images, create backdrops, wrap sets, create clothes/hair/characters, and publish experiences.
4
4
 
5
5
  ```bash
6
6
  npm install @liforma/publisher
@@ -15,15 +15,32 @@ const publisher = createPublisher(process.env.LIFORMA_PROJECT_ID!, {
15
15
  });
16
16
 
17
17
  const background = await publisher.uploadImage(lobbyPng, { contentType: 'image/png' });
18
- const location = await publisher.createLocation({ name: 'Hotel lobby', image: background });
19
- const place = await publisher.createPlace({ name: 'Hotel lobby', locationId: location.id });
18
+ const backdrop = await publisher.backdrops.create({ name: 'Hotel lobby', image: background });
19
+ const set = await publisher.sets.create({ name: 'Hotel lobby', backdropId: backdrop.id });
20
20
  ```
21
21
 
22
- Reload with `getCharacter`, `getPlace`, `getExperience`, and `getLocation`. GET still works after archive and includes public `status`. Edit drafts with `update*` — `updateExperience` does not publish. Archive with `archive*`, undo with `restore*`, and permanently remove with `delete*` only after archive. Pass `forceNew: true` on plate creates to skip content-addressed reuse.
22
+ Resource clients follow one shape:
23
23
 
24
- Long-running creates poll durable Publisher jobs. Use `start*` to keep the job handle, `jobs.wait(jobId)` to resume polling, `jobs.watch(jobId)` for progress, and `jobs.retry(jobId)` after a failed job. Polling a job may resume serverless processing.
24
+ ```ts
25
+ publisher.characters.create(input)
26
+ publisher.characters.get(id)
27
+ publisher.characters.update(id, patch)
28
+ publisher.characters.archive(id)
29
+ publisher.characters.restore(id)
30
+ publisher.characters.delete(id)
31
+ ```
32
+
33
+ Job-backed resources (backdrops, clothes, hair) also expose `startCreate()`, which returns a `PublishJob`. `create()` is the convenience path: start → `jobs.wait` → `get(targetId)`.
34
+
35
+ ```ts
36
+ const job = await publisher.backdrops.startCreate(input, { signal });
37
+ const completed = await publisher.jobs.wait(job.id, { signal });
38
+ const backdrop = await publisher.backdrops.get(completed.targetId, { signal });
39
+ ```
40
+
41
+ `jobs.wait()` returns the completed job, not the resource. `jobs.watch()` is an async iterator and takes `{ signal, timeoutMs }` only. Aborting an SDK request stops local waiting; it does **not** cancel a durable publishing job.
25
42
 
26
- `jobs.wait` and `jobs.watch` throw `LiformaPublisherError` for failed or incomplete jobs. `error.job` contains the typed last job. `JOB_WAIT_TIMEOUT` only stops local waiting and is not retryable; resume explicitly with `jobs.wait(jobId)`. HTTP retries are bounded, honor `Retry-After`, and apply only to GET/PATCH, retry-safe job/upload operations, and the presigned upload PUT—not resource creates.
43
+ `delete()` returns `{ deleted: true, id }` and is allowed only after archive, when no historical parent still references the item. GET still works after archive and includes public `status`. Pass `forceNew: true` on plate creates to skip content-addressed reuse.
27
44
 
28
45
  Experience responses describe the current draft. Use `hasPublishedRevision` and `hasUnpublishedChanges`; `published` is a deprecated 0.x compatibility alias.
29
46
 
@@ -1,369 +1,39 @@
1
- import { type WaitOptions } from './jobs.js';
2
- import { type Avatar, type PersonaEthnicity, type PersonaGender, type PublishJob, type CharacterResource, type ClothesResource, type CreateClothesPublishResponse, type CreateHairPublishResponse, type CreateLocationPublishResponse, type ExperienceResource, type HairResource, type LocationResource, type PlaceResource } from './schemas.js';
3
- import type { ImageBytes } from './hash.js';
1
+ import { type JobsClient } from './jobs.js';
2
+ import { type AvatarsClient } from './resources/avatars.js';
3
+ import { type BackdropsClient } from './resources/backdrops.js';
4
+ import { type CharactersClient } from './resources/characters.js';
5
+ import { type ClothesClient } from './resources/clothes.js';
6
+ import { type ExperiencesClient } from './resources/experiences.js';
7
+ import { type HairClient } from './resources/hair.js';
8
+ import { type SetsClient } from './resources/sets.js';
4
9
  import { type RetryPolicy } from './retry.js';
5
- import { type UploadedImage } from './upload.js';
10
+ import type { ImageBytes } from './hash.js';
6
11
  export type CreatePublisherOptions = {
7
12
  readonly apiKey?: string;
8
13
  readonly baseUrl?: string;
9
14
  readonly fetch?: typeof fetch;
10
15
  readonly retryPolicy?: RetryPolicy;
11
16
  };
12
- export type BackgroundMode = 'remove' | 'transparent';
13
- export type PollableCreateOptions = WaitOptions & {
14
- readonly externalId?: string;
15
- readonly forceNew?: boolean;
16
- };
17
- export type CreateClothesInput = PollableCreateOptions & {
18
- readonly avatarId: string;
19
- readonly image: UploadedImage | string;
20
- readonly name?: string;
21
- readonly backgroundMode?: BackgroundMode;
22
- };
23
- export type CreateHairInput = CreateClothesInput;
24
- export type CreateLocationInput = PollableCreateOptions & {
25
- readonly name: string;
26
- readonly image: UploadedImage | string;
27
- readonly depth?: {
28
- readonly image: UploadedImage | string;
29
- readonly depthMapType?: 'disparity';
30
- readonly metersPerDepth?: number;
31
- };
32
- };
33
- export type CreatePlaceInput = {
34
- readonly locationId: string;
35
- readonly name?: string;
36
- readonly externalId?: string;
37
- readonly signal?: AbortSignal;
38
- };
39
- export type CreateCharacterInput = {
40
- readonly avatarId: string;
41
- readonly name: string;
42
- readonly voice: string;
43
- readonly sttLang: string;
44
- readonly clothesId?: string;
45
- readonly hairId?: string;
46
- readonly personality?: string;
47
- readonly generalInstructions?: string;
48
- readonly gender?: PersonaGender;
49
- readonly age?: number;
50
- readonly ethnicity?: PersonaEthnicity;
51
- readonly externalId?: string;
52
- readonly signal?: AbortSignal;
53
- };
54
- export type CreateExperienceInput = {
55
- readonly title: string;
56
- readonly characterId: string;
57
- readonly placeId: string;
58
- readonly slug?: string;
59
- readonly attributes?: Record<string, string>;
60
- readonly startingMessage?: string;
61
- readonly systemInstructions?: string;
62
- readonly introduction?: string;
63
- readonly publish?: boolean;
64
- readonly externalId?: string;
65
- readonly signal?: AbortSignal;
66
- };
67
- export type UpdateCharacterInput = {
68
- readonly avatarId?: string;
69
- readonly name?: string;
70
- readonly voice?: string;
71
- readonly sttLang?: string;
72
- readonly clothesId?: string | null;
73
- readonly hairId?: string | null;
74
- readonly personality?: string | null;
75
- readonly generalInstructions?: string | null;
76
- readonly gender?: PersonaGender | null;
77
- readonly age?: number | null;
78
- readonly ethnicity?: PersonaEthnicity | null;
79
- readonly signal?: AbortSignal;
80
- };
81
- export type UpdatePlaceInput = {
82
- readonly name?: string;
83
- readonly locationId?: string;
84
- readonly signal?: AbortSignal;
85
- };
86
- export type UpdateHairInput = {
87
- readonly name: string;
88
- readonly signal?: AbortSignal;
89
- };
90
- export type UpdateClothesInput = {
91
- readonly name: string;
92
- readonly signal?: AbortSignal;
93
- };
94
- export type UpdateExperienceInput = {
95
- readonly title?: string;
96
- readonly slug?: string;
97
- readonly attributes?: Record<string, string>;
98
- readonly characterId?: string;
99
- readonly placeId?: string;
100
- readonly startingMessage?: string;
101
- readonly systemInstructions?: string;
102
- readonly introduction?: string;
103
- readonly signal?: AbortSignal;
104
- };
17
+ export type { AvatarsClient, BackdropsClient, CharactersClient, ClothesClient, ExperiencesClient, HairClient, JobsClient, SetsClient };
105
18
  export declare function createPublisher(projectId: string, options?: CreatePublisherOptions): {
106
19
  projectId: string;
107
20
  baseUrl: string;
108
21
  uploadImage: (input: ImageBytes, uploadOptions: {
109
22
  contentType: string;
110
23
  signal?: AbortSignal;
111
- }) => Promise<UploadedImage>;
24
+ }) => Promise<import("./upload.js").UploadedImage>;
112
25
  uploadDepthMap: (input: ImageBytes, uploadOptions: {
113
26
  contentType: string;
114
27
  signal?: AbortSignal;
115
- }) => Promise<UploadedImage>;
116
- listAvatars: (signal?: AbortSignal) => Promise<Avatar[]>;
117
- startClothes: (input: CreateClothesInput) => Promise<CreateClothesPublishResponse>;
118
- createClothes: (input: CreateClothesInput) => Promise<ClothesResource>;
119
- getClothes: (clothesId: string, signal?: AbortSignal) => Promise<{
120
- kind: "clothes";
121
- id: string;
122
- avatarId: string;
123
- name: string;
124
- status: "processing" | "ready" | "failed" | "archived";
125
- source: string;
126
- externalId: string | null;
127
- createdAt: string;
128
- updatedAt: string;
129
- }>;
130
- updateClothes: (clothesId: string, input: UpdateClothesInput) => Promise<ClothesResource>;
131
- startHair: (input: CreateHairInput) => Promise<CreateHairPublishResponse>;
132
- createHair: (input: CreateHairInput) => Promise<HairResource>;
133
- getHair: (hairId: string, signal?: AbortSignal) => Promise<{
134
- kind: "hair";
135
- id: string;
136
- avatarId: string;
137
- name: string;
138
- status: "processing" | "ready" | "failed" | "archived";
139
- source: string;
140
- externalId: string | null;
141
- createdAt: string;
142
- updatedAt: string;
143
- }>;
144
- updateHair: (hairId: string, input: UpdateHairInput) => Promise<HairResource>;
145
- startLocation: (input: CreateLocationInput) => Promise<CreateLocationPublishResponse>;
146
- createLocation: (input: CreateLocationInput) => Promise<LocationResource>;
147
- getLocation: (locationId: string, signal?: AbortSignal) => Promise<{
148
- kind: "location";
149
- id: string;
150
- status: "processing" | "ready" | "failed" | "archived";
151
- name: string;
152
- depthEncoding: string | null;
153
- externalId: string | null;
154
- style?: string | null | undefined;
155
- }>;
156
- getPlace: (placeId: string, signal?: AbortSignal) => Promise<{
157
- id: string;
158
- name: string;
159
- locationId: string;
160
- status: "archived" | "active";
161
- externalId: string | null;
162
- createdAt: string;
163
- updatedAt: string;
164
- style?: string | null | undefined;
165
- }>;
166
- createPlace: (input: CreatePlaceInput) => Promise<PlaceResource>;
167
- getCharacter: (characterId: string, signal?: AbortSignal) => Promise<{
168
- id: string;
169
- projectId: string;
170
- name: string;
171
- avatarId: string;
172
- voice: string;
173
- sttLang: string;
174
- clothesId: string | null;
175
- hairId: string | null;
176
- personality: string | null;
177
- generalInstructions: string | null;
178
- status: "archived" | "active";
179
- externalId: string | null;
180
- createdAt: string;
181
- updatedAt: string;
182
- gender?: "female" | "male" | "non-binary" | null | undefined;
183
- age?: number | null | undefined;
184
- ethnicity?: "african" | "east-asian" | "european" | "indigenous" | "mediterranean" | "middle-eastern" | "mixed" | "north-african" | "pacific-islander" | "south-asian" | "southeast-asian" | null | undefined;
185
- style?: string | null | undefined;
186
- }>;
187
- createCharacter: (input: CreateCharacterInput) => Promise<CharacterResource>;
188
- updateCharacter: (characterId: string, input: UpdateCharacterInput) => Promise<CharacterResource>;
189
- updatePlace: (placeId: string, input: UpdatePlaceInput) => Promise<PlaceResource>;
190
- createExperience: (input: CreateExperienceInput) => Promise<ExperienceResource>;
191
- getExperience: (experienceId: string, signal?: AbortSignal) => Promise<ExperienceResource>;
192
- updateExperience: (experienceId: string, input: UpdateExperienceInput) => Promise<ExperienceResource>;
193
- publishExperience: (experienceId: string, signal?: AbortSignal) => Promise<ExperienceResource>;
194
- archiveExperience: (experienceId: string, signal?: AbortSignal) => Promise<ExperienceResource>;
195
- restoreExperience: (experienceId: string, signal?: AbortSignal) => Promise<ExperienceResource>;
196
- deleteExperience: (experienceId: string, signal?: AbortSignal) => Promise<{
197
- deleted: true;
198
- id: string;
199
- }>;
200
- archiveCharacter: (characterId: string, signal?: AbortSignal) => Promise<CharacterResource>;
201
- restoreCharacter: (characterId: string, signal?: AbortSignal) => Promise<CharacterResource>;
202
- deleteCharacter: (characterId: string, signal?: AbortSignal) => Promise<{
203
- deleted: true;
204
- id: string;
205
- }>;
206
- archivePlace: (placeId: string, signal?: AbortSignal) => Promise<PlaceResource>;
207
- restorePlace: (placeId: string, signal?: AbortSignal) => Promise<PlaceResource>;
208
- deletePlace: (placeId: string, signal?: AbortSignal) => Promise<{
209
- deleted: true;
210
- id: string;
211
- }>;
212
- archiveLocation: (locationId: string, signal?: AbortSignal) => Promise<LocationResource>;
213
- restoreLocation: (locationId: string, signal?: AbortSignal) => Promise<LocationResource>;
214
- deleteLocation: (locationId: string, signal?: AbortSignal) => Promise<{
215
- deleted: true;
216
- id: string;
217
- }>;
218
- archiveClothes: (clothesId: string, signal?: AbortSignal) => Promise<ClothesResource>;
219
- restoreClothes: (clothesId: string, signal?: AbortSignal) => Promise<ClothesResource>;
220
- deleteClothes: (clothesId: string, signal?: AbortSignal) => Promise<{
221
- deleted: true;
222
- id: string;
223
- }>;
224
- archiveHair: (hairId: string, signal?: AbortSignal) => Promise<HairResource>;
225
- restoreHair: (hairId: string, signal?: AbortSignal) => Promise<HairResource>;
226
- deleteHair: (hairId: string, signal?: AbortSignal) => Promise<{
227
- deleted: true;
228
- id: string;
229
- }>;
230
- jobs: {
231
- get: (jobId: string, signal?: AbortSignal) => Promise<{
232
- id: string;
233
- status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
234
- kind: "clothes" | "hair" | "location";
235
- pollUrl: string;
236
- targetId: string;
237
- requiredOk: boolean;
238
- stage: string | null;
239
- progress: {
240
- requiredVerified: number;
241
- requiredTotal: number;
242
- };
243
- error: {
244
- code: string;
245
- message: string;
246
- } | null;
247
- }>;
248
- wait: (jobId: string, waitOptions?: WaitOptions) => Promise<{
249
- id: string;
250
- status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
251
- kind: "clothes" | "hair" | "location";
252
- pollUrl: string;
253
- targetId: string;
254
- requiredOk: boolean;
255
- stage: string | null;
256
- progress: {
257
- requiredVerified: number;
258
- requiredTotal: number;
259
- };
260
- error: {
261
- code: string;
262
- message: string;
263
- } | null;
264
- }>;
265
- watch: (jobId: string, waitOptions?: WaitOptions) => AsyncGenerator<{
266
- id: string;
267
- status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
268
- kind: "clothes" | "hair" | "location";
269
- pollUrl: string;
270
- targetId: string;
271
- requiredOk: boolean;
272
- stage: string | null;
273
- progress: {
274
- requiredVerified: number;
275
- requiredTotal: number;
276
- };
277
- error: {
278
- code: string;
279
- message: string;
280
- } | null;
281
- }, {
282
- id: string;
283
- status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
284
- kind: "clothes" | "hair" | "location";
285
- pollUrl: string;
286
- targetId: string;
287
- requiredOk: boolean;
288
- stage: string | null;
289
- progress: {
290
- requiredVerified: number;
291
- requiredTotal: number;
292
- };
293
- error: {
294
- code: string;
295
- message: string;
296
- } | null;
297
- }, void>;
298
- retry: (jobId: string, signal?: AbortSignal) => Promise<{
299
- job: {
300
- id: string;
301
- status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
302
- kind: "clothes" | "hair" | "location";
303
- pollUrl: string;
304
- targetId: string;
305
- requiredOk: boolean;
306
- stage: string | null;
307
- progress: {
308
- requiredVerified: number;
309
- requiredTotal: number;
310
- };
311
- error: {
312
- code: string;
313
- message: string;
314
- } | null;
315
- };
316
- clothes: {
317
- id: string;
318
- status: "processing" | "ready" | "failed";
319
- };
320
- } | {
321
- job: {
322
- id: string;
323
- status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
324
- kind: "clothes" | "hair" | "location";
325
- pollUrl: string;
326
- targetId: string;
327
- requiredOk: boolean;
328
- stage: string | null;
329
- progress: {
330
- requiredVerified: number;
331
- requiredTotal: number;
332
- };
333
- error: {
334
- code: string;
335
- message: string;
336
- } | null;
337
- };
338
- hair: {
339
- id: string;
340
- status: "processing" | "ready" | "failed";
341
- };
342
- } | {
343
- job: {
344
- id: string;
345
- status: "failed" | "queued" | "running" | "waiting_processor" | "succeeded";
346
- kind: "clothes" | "hair" | "location";
347
- pollUrl: string;
348
- targetId: string;
349
- requiredOk: boolean;
350
- stage: string | null;
351
- progress: {
352
- requiredVerified: number;
353
- requiredTotal: number;
354
- };
355
- error: {
356
- code: string;
357
- message: string;
358
- } | null;
359
- };
360
- location: {
361
- id: string;
362
- status: "processing" | "ready" | "failed";
363
- };
364
- }>;
365
- };
28
+ }) => Promise<import("./upload.js").UploadedImage>;
29
+ avatars: AvatarsClient;
30
+ characters: CharactersClient;
31
+ experiences: ExperiencesClient;
32
+ sets: SetsClient;
33
+ backdrops: BackdropsClient;
34
+ clothes: ClothesClient;
35
+ hair: HairClient;
36
+ jobs: JobsClient;
366
37
  };
367
38
  export type Publisher = ReturnType<typeof createPublisher>;
368
- export type { PublishJob, UploadedImage, WaitOptions };
369
39
  //# sourceMappingURL=createPublisher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createPublisher.d.ts","sourceRoot":"","sources":["../src/createPublisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createPublisher.d.ts","sourceRoot":"","sources":["../src/createPublisher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAC9D,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAA2B,KAAK,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC7F,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5C,MAAM,MAAM,sBAAsB,GAAG;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAC9B,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;CACnC,CAAC;AAEF,YAAY,EACX,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,UAAU,EACV,CAAC;AAiBF,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B;;;yBAOhE,UAAU,iBAAiB;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;4BAIrF,UAAU,iBACF;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;;;;;;;;;EAY9D;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}