@vibes.diy/api-types 14.3.138 → 14.3.140

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/app.d.ts CHANGED
@@ -628,18 +628,37 @@ export declare const resGetApplicationChat: import("arktype/internal/variants/ob
628
628
  seq: number;
629
629
  blockNr: number;
630
630
  timestamp: Date | ((In: string) => import("arktype/internal/attributes.ts").To<Date>);
631
- type: "block.toplevel.begin";
632
- sectionId: string;
633
- } | {
634
- blockId: string;
635
- streamId: string;
636
- seq: number;
637
- blockNr: number;
638
- timestamp: Date | ((In: string) => import("arktype/internal/attributes.ts").To<Date>);
639
- lineNr: number;
640
- line: string;
641
- type: "block.toplevel.line";
642
- sectionId: string;
631
+ type: "block.stats";
632
+ stats: {
633
+ toplevel: {
634
+ lines: number;
635
+ bytes: number;
636
+ cnt?: number | undefined;
637
+ };
638
+ code: {
639
+ lines: number;
640
+ bytes: number;
641
+ cnt?: number | undefined;
642
+ };
643
+ image: {
644
+ lines: number;
645
+ bytes: number;
646
+ cnt?: number | undefined;
647
+ };
648
+ total: {
649
+ lines: number;
650
+ bytes: number;
651
+ cnt?: number | undefined;
652
+ };
653
+ };
654
+ usage: {
655
+ prompt_tokens: number;
656
+ completion_tokens: number;
657
+ total_tokens: number;
658
+ model?: string | undefined;
659
+ role?: "agent" | "codegen" | "frontendDraft" | "img" | "mercury" | "research" | "runtime" | undefined;
660
+ reasoningEffort?: string | undefined;
661
+ };
643
662
  } | {
644
663
  blockId: string;
645
664
  streamId: string;
@@ -651,8 +670,14 @@ export declare const resGetApplicationChat: import("arktype/internal/variants/ob
651
670
  bytes: number;
652
671
  cnt?: number | undefined;
653
672
  };
654
- type: "block.toplevel.end";
673
+ type: "block.image";
655
674
  sectionId: string;
675
+ url?: string | undefined;
676
+ uploadId?: string | undefined;
677
+ cid?: string | undefined;
678
+ mimeType?: string | undefined;
679
+ size?: number | undefined;
680
+ docWritten?: boolean | undefined;
656
681
  } | {
657
682
  blockId: string;
658
683
  streamId: string;
@@ -710,56 +735,31 @@ export declare const resGetApplicationChat: import("arktype/internal/variants/ob
710
735
  seq: number;
711
736
  blockNr: number;
712
737
  timestamp: Date | ((In: string) => import("arktype/internal/attributes.ts").To<Date>);
713
- stats: {
714
- lines: number;
715
- bytes: number;
716
- cnt?: number | undefined;
717
- };
718
- type: "block.image";
738
+ type: "block.toplevel.begin";
739
+ sectionId: string;
740
+ } | {
741
+ blockId: string;
742
+ streamId: string;
743
+ seq: number;
744
+ blockNr: number;
745
+ timestamp: Date | ((In: string) => import("arktype/internal/attributes.ts").To<Date>);
746
+ lineNr: number;
747
+ line: string;
748
+ type: "block.toplevel.line";
719
749
  sectionId: string;
720
- url?: string | undefined;
721
- uploadId?: string | undefined;
722
- cid?: string | undefined;
723
- mimeType?: string | undefined;
724
- size?: number | undefined;
725
- docWritten?: boolean | undefined;
726
750
  } | {
727
751
  blockId: string;
728
752
  streamId: string;
729
753
  seq: number;
730
754
  blockNr: number;
731
755
  timestamp: Date | ((In: string) => import("arktype/internal/attributes.ts").To<Date>);
732
- type: "block.stats";
733
756
  stats: {
734
- toplevel: {
735
- lines: number;
736
- bytes: number;
737
- cnt?: number | undefined;
738
- };
739
- code: {
740
- lines: number;
741
- bytes: number;
742
- cnt?: number | undefined;
743
- };
744
- image: {
745
- lines: number;
746
- bytes: number;
747
- cnt?: number | undefined;
748
- };
749
- total: {
750
- lines: number;
751
- bytes: number;
752
- cnt?: number | undefined;
753
- };
754
- };
755
- usage: {
756
- prompt_tokens: number;
757
- completion_tokens: number;
758
- total_tokens: number;
759
- model?: string | undefined;
760
- role?: "agent" | "codegen" | "frontendDraft" | "img" | "mercury" | "research" | "runtime" | undefined;
761
- reasoningEffort?: string | undefined;
757
+ lines: number;
758
+ bytes: number;
759
+ cnt?: number | undefined;
762
760
  };
761
+ type: "block.toplevel.end";
762
+ sectionId: string;
763
763
  } | {
764
764
  streamId: string;
765
765
  chatId: string;
@@ -0,0 +1,21 @@
1
+ import type { PromptAndBlockMsgs } from "./chat.js";
2
+ export declare const CodeLinesMsg: import("arktype/internal/variants/object.ts").ObjectType<{
3
+ type: "block.code.lines";
4
+ sectionId: string;
5
+ lang: string;
6
+ path?: string | undefined;
7
+ blockId: string;
8
+ streamId: string;
9
+ blockNr: number;
10
+ seq: number;
11
+ lineNr: number;
12
+ timestamp: string;
13
+ lines: string[];
14
+ dt?: number[] | undefined;
15
+ }, {}>;
16
+ export type CodeLinesMsg = typeof CodeLinesMsg.infer;
17
+ export type ChatSectionBlock = PromptAndBlockMsgs | CodeLinesMsg;
18
+ export declare function isCodeLinesMsg(msg: unknown): msg is CodeLinesMsg;
19
+ export declare function packChatSectionBlocks<T>(blocks: readonly T[]): (T | CodeLinesMsg)[];
20
+ export declare function expandChatSectionBlocks<T>(blocks: T): T extends readonly unknown[] ? unknown[] : T;
21
+ export declare function readChatSectionBlocks(blocks: unknown): unknown[];
@@ -0,0 +1,177 @@
1
+ import { type } from "arktype";
2
+ import { lazyType } from "./lazy-type.js";
3
+ export const CodeLinesMsg = lazyType(() => type({
4
+ type: "'block.code.lines'",
5
+ sectionId: "string",
6
+ lang: "string",
7
+ "path?": "string",
8
+ blockId: "string",
9
+ streamId: "string",
10
+ blockNr: "number",
11
+ seq: "number",
12
+ lineNr: "number",
13
+ timestamp: "string",
14
+ lines: "string[]",
15
+ "dt?": "number[]",
16
+ }));
17
+ export function isCodeLinesMsg(msg) {
18
+ return (typeof msg === "object" && msg !== null && msg.type === "block.code.lines" && CodeLinesMsg.allows(msg));
19
+ }
20
+ const PACKED_TYPE = "block.code.lines";
21
+ const LINE_TYPE = "block.code.line";
22
+ const LINE_KEYS = new Set([
23
+ "type",
24
+ "sectionId",
25
+ "lang",
26
+ "path",
27
+ "blockId",
28
+ "blockNr",
29
+ "streamId",
30
+ "seq",
31
+ "lineNr",
32
+ "line",
33
+ "timestamp",
34
+ ]);
35
+ function storedTimestamp(value) {
36
+ if (value instanceof Date) {
37
+ const ms = value.getTime();
38
+ return Number.isNaN(ms) ? undefined : { iso: value.toISOString(), ms };
39
+ }
40
+ if (typeof value !== "string")
41
+ return undefined;
42
+ const ms = Date.parse(value);
43
+ if (Number.isNaN(ms))
44
+ return undefined;
45
+ const iso = new Date(ms).toISOString();
46
+ return iso === value ? { iso, ms } : undefined;
47
+ }
48
+ function asPackableLine(msg) {
49
+ if (typeof msg !== "object" || msg === null || Array.isArray(msg))
50
+ return undefined;
51
+ const m = msg;
52
+ if (m.type !== LINE_TYPE)
53
+ return undefined;
54
+ for (const key of Object.keys(m)) {
55
+ if (!LINE_KEYS.has(key))
56
+ return undefined;
57
+ }
58
+ if (typeof m.sectionId !== "string" ||
59
+ typeof m.lang !== "string" ||
60
+ typeof m.blockId !== "string" ||
61
+ typeof m.streamId !== "string" ||
62
+ typeof m.blockNr !== "number" ||
63
+ typeof m.seq !== "number" ||
64
+ typeof m.lineNr !== "number" ||
65
+ typeof m.line !== "string") {
66
+ return undefined;
67
+ }
68
+ if ("path" in m && typeof m.path !== "string")
69
+ return undefined;
70
+ const ts = storedTimestamp(m.timestamp);
71
+ if (ts === undefined)
72
+ return undefined;
73
+ return {
74
+ sectionId: m.sectionId,
75
+ lang: m.lang,
76
+ ...(typeof m.path === "string" ? { path: m.path } : {}),
77
+ blockId: m.blockId,
78
+ blockNr: m.blockNr,
79
+ streamId: m.streamId,
80
+ seq: m.seq,
81
+ lineNr: m.lineNr,
82
+ line: m.line,
83
+ timestamp: ts.iso,
84
+ ms: ts.ms,
85
+ };
86
+ }
87
+ function continuesRun(first, next, i) {
88
+ return (next.sectionId === first.sectionId &&
89
+ next.lang === first.lang &&
90
+ next.path === first.path &&
91
+ next.blockId === first.blockId &&
92
+ next.blockNr === first.blockNr &&
93
+ next.streamId === first.streamId &&
94
+ next.seq === first.seq + i &&
95
+ next.lineNr === first.lineNr + i);
96
+ }
97
+ function packRun(run) {
98
+ const first = run[0];
99
+ const dt = run.map((l) => l.ms - first.ms);
100
+ return {
101
+ type: PACKED_TYPE,
102
+ sectionId: first.sectionId,
103
+ lang: first.lang,
104
+ ...(first.path === undefined ? {} : { path: first.path }),
105
+ blockId: first.blockId,
106
+ blockNr: first.blockNr,
107
+ streamId: first.streamId,
108
+ seq: first.seq,
109
+ lineNr: first.lineNr,
110
+ timestamp: first.timestamp,
111
+ lines: run.map((l) => l.line),
112
+ ...(dt.some((d) => d !== 0) ? { dt } : {}),
113
+ };
114
+ }
115
+ export function packChatSectionBlocks(blocks) {
116
+ const out = [];
117
+ let packed = false;
118
+ let i = 0;
119
+ while (i < blocks.length) {
120
+ const first = asPackableLine(blocks[i]);
121
+ if (first === undefined) {
122
+ out.push(blocks[i]);
123
+ i += 1;
124
+ continue;
125
+ }
126
+ const run = [first];
127
+ let j = i + 1;
128
+ for (; j < blocks.length; j += 1) {
129
+ const next = asPackableLine(blocks[j]);
130
+ if (next === undefined || !continuesRun(first, next, run.length))
131
+ break;
132
+ run.push(next);
133
+ }
134
+ out.push(packRun(run));
135
+ packed = true;
136
+ i = j;
137
+ }
138
+ return packed ? out : blocks;
139
+ }
140
+ function expandPacked(msg) {
141
+ const base = Date.parse(msg.timestamp);
142
+ return msg.lines.map((line, i) => ({
143
+ type: LINE_TYPE,
144
+ sectionId: msg.sectionId,
145
+ lang: msg.lang,
146
+ ...(msg.path === undefined ? {} : { path: msg.path }),
147
+ blockId: msg.blockId,
148
+ blockNr: msg.blockNr,
149
+ streamId: msg.streamId,
150
+ seq: msg.seq + i,
151
+ lineNr: msg.lineNr + i,
152
+ line,
153
+ timestamp: msg.dt === undefined ? msg.timestamp : new Date(base + (msg.dt[i] ?? 0)).toISOString(),
154
+ }));
155
+ }
156
+ export function expandChatSectionBlocks(blocks) {
157
+ if (!Array.isArray(blocks))
158
+ return blocks;
159
+ if (!blocks.some(isCodeLinesMsg))
160
+ return blocks;
161
+ const out = [];
162
+ for (const msg of blocks) {
163
+ if (isCodeLinesMsg(msg)) {
164
+ for (const line of expandPacked(msg))
165
+ out.push(line);
166
+ }
167
+ else {
168
+ out.push(msg);
169
+ }
170
+ }
171
+ return out;
172
+ }
173
+ export function readChatSectionBlocks(blocks) {
174
+ const expanded = expandChatSectionBlocks(blocks);
175
+ return Array.isArray(expanded) ? expanded : [];
176
+ }
177
+ //# sourceMappingURL=chat-section-pack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat-section-pack.js","sourceRoot":"","sources":["../jsr/chat-section-pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAqB1C,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,EAAE,CACxC,IAAI,CAAC;IACH,IAAI,EAAE,oBAAoB;IAC1B,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,QAAQ;IAEjB,GAAG,EAAE,QAAQ;IAEb,MAAM,EAAE,QAAQ;IAEhB,SAAS,EAAE,QAAQ;IACnB,KAAK,EAAE,UAAU;IAEjB,KAAK,EAAE,UAAU;CAClB,CAAC,CACH,CAAC;AAOF,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAK,GAA0B,CAAC,IAAI,KAAK,kBAAkB,IAAI,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAC/H,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,kBAAkB,CAAC;AACvC,MAAM,SAAS,GAAG,iBAAiB,CAAC;AAGpC,MAAM,SAAS,GAAwB,IAAI,GAAG,CAAC;IAC7C,MAAM;IACN,WAAW;IACX,MAAM;IACN,MAAM;IACN,SAAS;IACT,SAAS;IACT,UAAU;IACV,KAAK;IACL,QAAQ;IACR,MAAM;IACN,WAAW;CACZ,CAAC,CAAC;AAsBH,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC;IACzE,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,GAAY;IAClC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACpF,MAAM,CAAC,GAAG,GAA8B,CAAC;IACzC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAC;IAC5C,CAAC;IACD,IACE,OAAO,CAAC,CAAC,SAAS,KAAK,QAAQ;QAC/B,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAC7B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;QAC7B,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ;QACzB,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;QAC5B,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,EAC1B,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,MAAM,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChE,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACxC,IAAI,EAAE,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO;QACL,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvD,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,SAAS,EAAE,EAAE,CAAC,GAAG;QACjB,EAAE,EAAE,EAAE,CAAC,EAAE;KACV,CAAC;AACJ,CAAC;AAGD,SAAS,YAAY,CAAC,KAAmB,EAAE,IAAkB,EAAE,CAAS;IACtE,OAAO,CACL,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;QAClC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QACxB,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI;QACxB,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAC9B,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO;QAC9B,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ;QAChC,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CACjC,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,GAA4B;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3C,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;QACzD,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC;AAaD,MAAM,UAAU,qBAAqB,CAAI,MAAoB;IAC3D,MAAM,GAAG,GAAyB,EAAE,CAAC;IACrC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC,IAAI,CAAC,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAmB,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC;gBAAE,MAAM;YACxE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,IAAI,CAAC;QACd,CAAC,GAAG,CAAC,CAAC;IACR,CAAC;IACD,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,MAAc,CAAC;AACxC,CAAC;AAED,SAAS,YAAY,CAAC,GAAiB;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,GAAG,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;QACrD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;QACtB,IAAI;QACJ,SAAS,EAAE,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;KAClG,CAAC,CAAC,CAAC;AACN,CAAC;AASD,MAAM,UAAU,uBAAuB,CAAI,MAAS;IAElD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAa,CAAC;IACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;QAAE,OAAO,MAAwB,CAAC;IAClE,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,GAAG,IAAI,MAAmB,EAAE,CAAC;QACtC,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAIxB,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,OAAO,GAAU,CAAC;AACpB,CAAC;AAGD,MAAM,UAAU,qBAAqB,CAAC,MAAe;IACnD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC"}