@kortix/sdk 0.12.2 → 0.12.3
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/cache/idb-sync-cache.d.ts.map +1 -1
- package/dist/browser/cache/idb-sync-cache.js +26 -8
- package/dist/browser/cache/idb-sync-cache.js.map +1 -1
- package/dist/browser/stores/sync-store.d.ts +12 -0
- package/dist/browser/stores/sync-store.d.ts.map +1 -1
- package/dist/browser/stores/sync-store.js +193 -40
- package/dist/browser/stores/sync-store.js.map +1 -1
- package/dist/core/client/kortix.d.ts +18 -0
- package/dist/core/client/kortix.d.ts.map +1 -1
- package/dist/core/client/kortix.js +12 -0
- package/dist/core/client/kortix.js.map +1 -1
- package/dist/core/files/client.d.ts +10 -0
- package/dist/core/files/client.d.ts.map +1 -1
- package/dist/core/files/client.js +52 -1
- package/dist/core/files/client.js.map +1 -1
- package/dist/core/http/api-client.d.ts +16 -0
- package/dist/core/http/api-client.d.ts.map +1 -1
- package/dist/core/http/api-client.js +32 -1
- package/dist/core/http/api-client.js.map +1 -1
- package/dist/core/http/auth.d.ts +7 -0
- package/dist/core/http/auth.d.ts.map +1 -1
- package/dist/core/http/auth.js +4 -2
- package/dist/core/http/auth.js.map +1 -1
- package/dist/core/rest/projects-client/projects.d.ts +1 -1
- package/dist/core/rest/projects-client/projects.d.ts.map +1 -1
- package/dist/core/rest/projects-client/projects.js.map +1 -1
- package/dist/core/rest/projects-client/sessions.d.ts +94 -0
- package/dist/core/rest/projects-client/sessions.d.ts.map +1 -1
- package/dist/core/rest/projects-client/sessions.js +30 -0
- package/dist/core/rest/projects-client/sessions.js.map +1 -1
- package/dist/core/rest/projects-client/setup-links.d.ts +2 -0
- package/dist/core/rest/projects-client/setup-links.d.ts.map +1 -1
- package/dist/core/rest/projects-client/setup-links.js.map +1 -1
- package/dist/core/runtime/client.d.ts +19 -5
- package/dist/core/runtime/client.d.ts.map +1 -1
- package/dist/core/runtime/client.js +53 -11
- package/dist/core/runtime/client.js.map +1 -1
- package/dist/core/session/message-queue.d.ts +114 -0
- package/dist/core/session/message-queue.d.ts.map +1 -0
- package/dist/core/session/message-queue.js +155 -0
- package/dist/core/session/message-queue.js.map +1 -0
- package/dist/core/session/send-queue.d.ts +70 -0
- package/dist/core/session/send-queue.d.ts.map +1 -0
- package/dist/core/session/send-queue.js +116 -0
- package/dist/core/session/send-queue.js.map +1 -0
- package/dist/kortix.esm.min.js +15 -15
- package/dist/kortix.global.js +15 -15
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -1
- package/dist/react/index.js.map +1 -1
- package/dist/react/use-model-defaults.d.ts.map +1 -1
- package/dist/react/use-model-defaults.js +27 -0
- package/dist/react/use-model-defaults.js.map +1 -1
- package/dist/react/use-session-send.d.ts +21 -0
- package/dist/react/use-session-send.d.ts.map +1 -1
- package/dist/react/use-session-send.js +28 -0
- package/dist/react/use-session-send.js.map +1 -1
- package/dist/react/use-session.d.ts.map +1 -1
- package/dist/react/use-session.js +35 -0
- package/dist/react/use-session.js.map +1 -1
- package/package.json +9 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idb-sync-cache.d.ts","sourceRoot":"","sources":["../../../src/browser/cache/idb-sync-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"idb-sync-cache.d.ts","sourceRoot":"","sources":["../../../src/browser/cache/idb-sync-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqIH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,GAAG,EAAE,EACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,EAC5B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAef;AAED,wBAAgB,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAK9C;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;CAAE,GAAG,IAAI,CAAC,CA4BnE;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBlE;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC,CAgB1D;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA6BnD"}
|
|
@@ -12,14 +12,29 @@ const DB_VERSION = 2;
|
|
|
12
12
|
const STORE_NAME = 'sessions';
|
|
13
13
|
const MAX_CACHED_SESSIONS = 50;
|
|
14
14
|
const MAX_SESSION_AGE_MS = 7 * 24 * 60 * 60 * 1000; // 7 days
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
return
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
15
|
+
let cacheScopePromise = null;
|
|
16
|
+
function getCurrentCacheScope() {
|
|
17
|
+
if (cacheScopePromise)
|
|
18
|
+
return cacheScopePromise;
|
|
19
|
+
const pending = (async () => {
|
|
20
|
+
try {
|
|
21
|
+
const userId = (await platformConfig().getUserId?.()) ?? null;
|
|
22
|
+
return userId ? `user:${userId}` : null;
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
})();
|
|
28
|
+
cacheScopePromise = pending;
|
|
29
|
+
// Authentication can hydrate after the first cache access. Retain a real
|
|
30
|
+
// user scope for this browser session, but let an unauthenticated lookup be
|
|
31
|
+
// retried instead of pinning `null` until reload.
|
|
32
|
+
void pending.then((scope) => {
|
|
33
|
+
if (!scope && cacheScopePromise === pending) {
|
|
34
|
+
cacheScopePromise = null;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
return pending;
|
|
23
38
|
}
|
|
24
39
|
let dbPromise = null;
|
|
25
40
|
function openDB() {
|
|
@@ -184,6 +199,9 @@ export async function deleteSessionFromIDB(sessionId, kortixSessionScope) {
|
|
|
184
199
|
}
|
|
185
200
|
}
|
|
186
201
|
export async function clearSessionIDBCache() {
|
|
202
|
+
// The host calls this on sign-out and account changes. Invalidate identity
|
|
203
|
+
// before touching IndexedDB so the next write cannot reuse the previous user.
|
|
204
|
+
cacheScopePromise = null;
|
|
187
205
|
try {
|
|
188
206
|
pendingWrites.clear();
|
|
189
207
|
if (flushTimer) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"idb-sync-cache.js","sourceRoot":"","sources":["../../../src/browser/cache/idb-sync-cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,MAAM,OAAO,GAAG,sBAAsB,CAAC;AACvC,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAY7D,
|
|
1
|
+
{"version":3,"file":"idb-sync-cache.js","sourceRoot":"","sources":["../../../src/browser/cache/idb-sync-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,18 @@ interface SyncState {
|
|
|
21
21
|
setTodo: (sessionID: string, todos: Todo[]) => void;
|
|
22
22
|
optimisticAdd: (sessionID: string, message: Message, messageParts: Part[]) => void;
|
|
23
23
|
optimisticRemove: (sessionID: string, messageID: string) => void;
|
|
24
|
+
/**
|
|
25
|
+
* Mark an optimistic message as actually POSTed to the server.
|
|
26
|
+
*
|
|
27
|
+
* Until this is called the message is `pending`: the server has never been
|
|
28
|
+
* told about it, so it cannot be a duplicate of anything the server returns.
|
|
29
|
+
* {@link SyncState.hydrate} relies on that to tell "still uploading" apart
|
|
30
|
+
* from "already echoed" — see the two-pass correlation there.
|
|
31
|
+
*
|
|
32
|
+
* Callers that never call this lose only the ordinal fallback; exact
|
|
33
|
+
* part-id correlation still supersedes their messages normally.
|
|
34
|
+
*/
|
|
35
|
+
markOptimisticDispatched: (sessionID: string, messageID: string) => void;
|
|
24
36
|
clearOptimisticMessages: (sessionID: string) => void;
|
|
25
37
|
/** True when the session's message list still holds an unconfirmed optimistic
|
|
26
38
|
* message — lets the SSE reconciler avoid idling+clearing a brand-new session
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-store.d.ts","sourceRoot":"","sources":["../../../src/browser/stores/sync-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,OAAO,EACP,KAAK,IAAI,aAAa,EACtB,IAAI,EAEJ,aAAa,EAEb,IAAI,EACJ,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAE7C,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAKnF,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAC/B,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC;AAe/C,UAAU,SAAS;IAElB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAG9B,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7D,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpD,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD,cAAc,EAAE,CACf,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,KACT,IAAI,CAAC;IACV,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC9D,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IACxD,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACpD,aAAa,EAAE,CACd,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,IAAI,EAAE,KAChB,IAAI,CAAC;IACV,gBAAgB,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,uBAAuB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD;;+DAE2D;IAC3D,qBAAqB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACtD,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,CACR,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,IAAI,EAAE,CAAA;KAAE,CAAC,KACzC,IAAI,CAAC;IACV,KAAK,EAAE,MAAM,IAAI,CAAC;IAGlB,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,gBAAgB,EAAE,CAAC;IAIvD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACxC;
|
|
1
|
+
{"version":3,"file":"sync-store.d.ts","sourceRoot":"","sources":["../../../src/browser/stores/sync-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,43 @@ function isTextLikePart(part) {
|
|
|
14
14
|
// Store Implementation
|
|
15
15
|
// Track optimistic message IDs so we can remove them when the server sends
|
|
16
16
|
// the real user message (which has a different, server-generated ID).
|
|
17
|
-
|
|
17
|
+
// Keyed by session, like every other field in this store. It used to be one
|
|
18
|
+
// process-wide `Set<string>` shared by every session in the tab, and
|
|
19
|
+
// `clearSession` never released its entries — so ids accumulated for the
|
|
20
|
+
// lifetime of the tab, and a leaked id made `hydrate` skip parts for any real
|
|
21
|
+
// message that happened to reuse it (`if (isOptimistic(...)) continue`).
|
|
22
|
+
const optimisticIds = new Map();
|
|
23
|
+
// Optimistic ids whose prompt has actually been POSTed. An optimistic message
|
|
24
|
+
// starts `pending` (absent here) and becomes `dispatched` when the send goes
|
|
25
|
+
// out. `hydrate` never lets a `pending` message be superseded by an ordinal
|
|
26
|
+
// match: the server has not been told it exists, so nothing the server returns
|
|
27
|
+
// can be a copy of it.
|
|
28
|
+
const dispatchedOptimisticIds = new Map();
|
|
29
|
+
function trackId(store, sessionID, messageID) {
|
|
30
|
+
const bucket = store.get(sessionID);
|
|
31
|
+
if (bucket)
|
|
32
|
+
bucket.add(messageID);
|
|
33
|
+
else
|
|
34
|
+
store.set(sessionID, new Set([messageID]));
|
|
35
|
+
}
|
|
36
|
+
function untrackId(store, sessionID, messageID) {
|
|
37
|
+
const bucket = store.get(sessionID);
|
|
38
|
+
if (!bucket)
|
|
39
|
+
return;
|
|
40
|
+
bucket.delete(messageID);
|
|
41
|
+
if (bucket.size === 0)
|
|
42
|
+
store.delete(sessionID);
|
|
43
|
+
}
|
|
44
|
+
function hasTrackedId(store, sessionID, messageID) {
|
|
45
|
+
return store.get(sessionID)?.has(messageID) ?? false;
|
|
46
|
+
}
|
|
47
|
+
/** Release every id this session was tracking — called from `clearSession`. */
|
|
48
|
+
function forgetSessionIds(sessionID) {
|
|
49
|
+
optimisticIds.delete(sessionID);
|
|
50
|
+
dispatchedOptimisticIds.delete(sessionID);
|
|
51
|
+
}
|
|
52
|
+
const isOptimistic = (sessionID, messageID) => hasTrackedId(optimisticIds, sessionID, messageID);
|
|
53
|
+
const isDispatched = (sessionID, messageID) => hasTrackedId(dispatchedOptimisticIds, sessionID, messageID);
|
|
18
54
|
// Track message IDs where optimistic parts were bridged to the real message.
|
|
19
55
|
// When the first real part arrives for a bridged message, the bridged parts
|
|
20
56
|
// are cleared so optimistic and real parts don't co-exist (which would
|
|
@@ -208,7 +244,7 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
208
244
|
todos: { ...s.todos, [sessionID]: todos },
|
|
209
245
|
})),
|
|
210
246
|
optimisticAdd: (sessionID, message, messageParts) => {
|
|
211
|
-
optimisticIds
|
|
247
|
+
trackId(optimisticIds, sessionID, message.id);
|
|
212
248
|
set((s) => {
|
|
213
249
|
const list = s.messages[sessionID] ?? [];
|
|
214
250
|
// Always append optimistic messages at the end of the list.
|
|
@@ -226,8 +262,13 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
226
262
|
};
|
|
227
263
|
});
|
|
228
264
|
},
|
|
265
|
+
markOptimisticDispatched: (sessionID, messageID) => {
|
|
266
|
+
if (isOptimistic(sessionID, messageID))
|
|
267
|
+
trackId(dispatchedOptimisticIds, sessionID, messageID);
|
|
268
|
+
},
|
|
229
269
|
optimisticRemove: (sessionID, messageID) => {
|
|
230
|
-
optimisticIds
|
|
270
|
+
untrackId(optimisticIds, sessionID, messageID);
|
|
271
|
+
untrackId(dispatchedOptimisticIds, sessionID, messageID);
|
|
231
272
|
set((s) => {
|
|
232
273
|
const list = s.messages[sessionID];
|
|
233
274
|
if (!list)
|
|
@@ -252,12 +293,14 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
252
293
|
if (!list)
|
|
253
294
|
return s;
|
|
254
295
|
const optIds = list
|
|
255
|
-
.filter((m) =>
|
|
296
|
+
.filter((m) => isOptimistic(sessionID, m.id))
|
|
256
297
|
.map((m) => m.id);
|
|
257
298
|
if (optIds.length === 0)
|
|
258
299
|
return s;
|
|
259
|
-
for (const id of optIds)
|
|
260
|
-
optimisticIds
|
|
300
|
+
for (const id of optIds) {
|
|
301
|
+
untrackId(optimisticIds, sessionID, id);
|
|
302
|
+
untrackId(dispatchedOptimisticIds, sessionID, id);
|
|
303
|
+
}
|
|
261
304
|
const filtered = list.filter((m) => !optIds.includes(m.id));
|
|
262
305
|
const newParts = { ...s.parts };
|
|
263
306
|
for (const id of optIds)
|
|
@@ -269,6 +312,9 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
269
312
|
});
|
|
270
313
|
},
|
|
271
314
|
clearSession: (sessionID) => set((s) => {
|
|
315
|
+
// Release this session's optimistic tracking along with its messages.
|
|
316
|
+
// Skipping it is what let ids accumulate for the lifetime of the tab.
|
|
317
|
+
forgetSessionIds(sessionID);
|
|
272
318
|
const existingMessages = s.messages[sessionID] ?? [];
|
|
273
319
|
const nextParts = { ...s.parts };
|
|
274
320
|
for (const message of existingMessages)
|
|
@@ -293,11 +339,40 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
293
339
|
const existing = s.messages[sessionID] ?? [];
|
|
294
340
|
const merged = [];
|
|
295
341
|
const seen = new Set();
|
|
296
|
-
//
|
|
297
|
-
//
|
|
298
|
-
//
|
|
299
|
-
//
|
|
300
|
-
|
|
342
|
+
// Which optimistic user messages has the server actually echoed?
|
|
343
|
+
//
|
|
344
|
+
// This test used to be EXISTENTIAL: "if this page holds any real user
|
|
345
|
+
// message at all, every optimistic user message is a duplicate". In an
|
|
346
|
+
// ongoing conversation that is always true — the page is full of
|
|
347
|
+
// earlier turns — so a message sent one second ago, which the server
|
|
348
|
+
// had provably never received, was deleted along with its text. The
|
|
349
|
+
// window was wide open by construction: the rehydrate that calls this
|
|
350
|
+
// only runs for sessions whose status is `busy`, and the optimistic
|
|
351
|
+
// add is what sets `busy`. Sending armed the thing that deleted the
|
|
352
|
+
// send.
|
|
353
|
+
//
|
|
354
|
+
// The rule is now identity-based, in two passes.
|
|
355
|
+
const existingIds = new Set(existing.map((m) => m.id));
|
|
356
|
+
// Pass 0 — candidate echoes. A real user message we have NEVER seen
|
|
357
|
+
// before may be the server's copy of something still in flight. One we
|
|
358
|
+
// already held is history, and history cannot supersede the present.
|
|
359
|
+
// This single condition is what fixes the reported bug.
|
|
360
|
+
const candidateEchoes = incoming.filter((m) => m.role === "user" &&
|
|
361
|
+
!isOptimistic(sessionID, m.id) &&
|
|
362
|
+
!existingIds.has(m.id));
|
|
363
|
+
const unclaimedEchoes = new Set(candidateEchoes.map((m) => m.id));
|
|
364
|
+
// Pass 1 — exact correlation by part id. Hosts generate the text part
|
|
365
|
+
// id up front and send it WITH the prompt precisely so the echo
|
|
366
|
+
// updates the same part, which makes this an identity match rather
|
|
367
|
+
// than a guess.
|
|
368
|
+
const echoByPartId = new Map();
|
|
369
|
+
for (const echo of candidateEchoes) {
|
|
370
|
+
const entry = msgs.find((m) => m.info.id === echo.id);
|
|
371
|
+
for (const p of entry?.parts ?? []) {
|
|
372
|
+
if (p?.id)
|
|
373
|
+
echoByPartId.set(p.id, echo.id);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
301
376
|
// Start with all incoming messages
|
|
302
377
|
for (const m of incoming) {
|
|
303
378
|
merged.push(m);
|
|
@@ -308,16 +383,28 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
308
383
|
// non-optimistic ones are inserted at their sorted position.
|
|
309
384
|
const deferredOptimistic = [];
|
|
310
385
|
const supersededOptimistic = [];
|
|
386
|
+
/** optimistic id → the incoming message that superseded it. */
|
|
387
|
+
const supersededBy = new Map();
|
|
388
|
+
const unmatchedOptimisticUsers = [];
|
|
311
389
|
for (const m of existing) {
|
|
312
390
|
if (!seen.has(m.id)) {
|
|
313
|
-
if (
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
391
|
+
if (isOptimistic(sessionID, m.id)) {
|
|
392
|
+
if (m.role !== "user") {
|
|
393
|
+
deferredOptimistic.push(m);
|
|
394
|
+
continue;
|
|
395
|
+
}
|
|
396
|
+
const echoId = (s.parts[m.id] ?? [])
|
|
397
|
+
.map((p) => echoByPartId.get(p.id))
|
|
398
|
+
.find((id) => !!id);
|
|
399
|
+
if (echoId) {
|
|
317
400
|
supersededOptimistic.push(m.id);
|
|
401
|
+
supersededBy.set(m.id, echoId);
|
|
402
|
+
unclaimedEchoes.delete(echoId);
|
|
318
403
|
}
|
|
319
404
|
else {
|
|
320
|
-
|
|
405
|
+
// Undecided until pass 2 — it may still pair with an
|
|
406
|
+
// echo whose parts the server has not persisted yet.
|
|
407
|
+
unmatchedOptimisticUsers.push(m);
|
|
321
408
|
}
|
|
322
409
|
}
|
|
323
410
|
else {
|
|
@@ -326,9 +413,31 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
326
413
|
}
|
|
327
414
|
}
|
|
328
415
|
}
|
|
416
|
+
// Pass 2 — ordinal fallback, for an echo the server accepted but whose
|
|
417
|
+
// parts have not landed yet (no part ids to match on). Restricted to
|
|
418
|
+
// DISPATCHED messages: one that has not been POSTed cannot be a
|
|
419
|
+
// duplicate of anything the server holds, so it is never eligible.
|
|
420
|
+
// That restriction is what keeps a message sent from another tab from
|
|
421
|
+
// consuming this tab's in-flight bubble.
|
|
422
|
+
const claimable = candidateEchoes.filter((m) => unclaimedEchoes.has(m.id));
|
|
423
|
+
let next = 0;
|
|
424
|
+
for (const m of unmatchedOptimisticUsers) {
|
|
425
|
+
const echo = isDispatched(sessionID, m.id)
|
|
426
|
+
? claimable[next]
|
|
427
|
+
: undefined;
|
|
428
|
+
if (echo) {
|
|
429
|
+
next += 1;
|
|
430
|
+
supersededOptimistic.push(m.id);
|
|
431
|
+
supersededBy.set(m.id, echo.id);
|
|
432
|
+
}
|
|
433
|
+
else {
|
|
434
|
+
deferredOptimistic.push(m);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
329
437
|
// Clean up superseded optimistic IDs
|
|
330
438
|
for (const id of supersededOptimistic) {
|
|
331
|
-
optimisticIds
|
|
439
|
+
untrackId(optimisticIds, sessionID, id);
|
|
440
|
+
untrackId(dispatchedOptimisticIds, sessionID, id);
|
|
332
441
|
}
|
|
333
442
|
// Append surviving optimistic messages at the end
|
|
334
443
|
for (const m of deferredOptimistic) {
|
|
@@ -345,29 +454,29 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
345
454
|
// Mirrors the message.updated SSE handler (see above) — without
|
|
346
455
|
// this, a fetch/hydrate that races ahead of parts persistence
|
|
347
456
|
// would drop the user's text and render an empty bubble.
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
let bridge;
|
|
457
|
+
// Bridge along the pairing established above, not to "whichever real
|
|
458
|
+
// user message came first". With more than one message in flight the
|
|
459
|
+
// first-match version could graft one message's text onto another's
|
|
460
|
+
// bubble; `supersededBy` names the exact echo each optimistic message
|
|
461
|
+
// lost to.
|
|
354
462
|
for (const id of supersededOptimistic) {
|
|
355
|
-
|
|
356
|
-
|
|
463
|
+
const echoId = supersededBy.get(id);
|
|
464
|
+
const bridge = newParts[id];
|
|
357
465
|
delete newParts[id];
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
466
|
+
if (!echoId || !bridge?.length)
|
|
467
|
+
continue;
|
|
468
|
+
const echoEntry = msgs.find((m) => m.info.id === echoId);
|
|
469
|
+
const serverHasParts = (echoEntry?.parts?.length ?? 0) > 0;
|
|
470
|
+
if (serverHasParts || newParts[echoId]?.length)
|
|
471
|
+
continue;
|
|
472
|
+
newParts[echoId] = bridge;
|
|
473
|
+
bridgedPartIds.add(echoId);
|
|
365
474
|
}
|
|
366
475
|
for (const m of msgs) {
|
|
367
476
|
if (!m?.info?.id)
|
|
368
477
|
continue;
|
|
369
478
|
const mid = m.info.id;
|
|
370
|
-
if (
|
|
479
|
+
if (isOptimistic(sessionID, mid))
|
|
371
480
|
continue; // Don't touch optimistic parts
|
|
372
481
|
const inParts = m.parts
|
|
373
482
|
.filter((p) => !!p?.id)
|
|
@@ -421,6 +530,7 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
421
530
|
}),
|
|
422
531
|
reset: () => {
|
|
423
532
|
optimisticIds.clear();
|
|
533
|
+
dispatchedOptimisticIds.clear();
|
|
424
534
|
bridgedPartIds.clear();
|
|
425
535
|
set({
|
|
426
536
|
messages: {},
|
|
@@ -435,7 +545,7 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
435
545
|
const list = get().messages[sessionID];
|
|
436
546
|
if (!list || list.length === 0)
|
|
437
547
|
return false;
|
|
438
|
-
return list.some((m) =>
|
|
548
|
+
return list.some((m) => isOptimistic(sessionID, m.id));
|
|
439
549
|
},
|
|
440
550
|
getMessages: (sessionID) => {
|
|
441
551
|
const s = get();
|
|
@@ -459,16 +569,59 @@ export const useSyncStore = create()((set, get) => ({
|
|
|
459
569
|
// optimistic message(s) in a SINGLE atomic set() call.
|
|
460
570
|
// This prevents the intermediate render where the user bubble
|
|
461
571
|
// vanishes (optimistic removed) before the real one appears.
|
|
462
|
-
if (info.role === "user" && !
|
|
572
|
+
if (info.role === "user" && !isOptimistic(info.sessionID, info.id)) {
|
|
463
573
|
const msgs = get().messages[info.sessionID];
|
|
464
574
|
if (msgs) {
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
575
|
+
// ONE confirmation retires ONE optimistic message.
|
|
576
|
+
//
|
|
577
|
+
// This used to retire every optimistic user message in the
|
|
578
|
+
// session. With a single send in flight that is correct, and
|
|
579
|
+
// is the whole point of this branch — it swaps the bubble in
|
|
580
|
+
// one `set()` so the user never sees it blink. With two in
|
|
581
|
+
// flight it took the innocent one with it: confirm the plain
|
|
582
|
+
// message and the one still uploading its attachment vanished
|
|
583
|
+
// too. Same defect `hydrate` had, on the SSE path.
|
|
584
|
+
//
|
|
585
|
+
// Correlate the same way `hydrate` does: exact part id first
|
|
586
|
+
// (hosts send the client-generated id WITH the prompt), then
|
|
587
|
+
// the oldest dispatched message as a fallback for a
|
|
588
|
+
// confirmation that carries no parts yet.
|
|
589
|
+
const state = get();
|
|
590
|
+
const optimisticUsers = msgs.filter((m) => m.role === "user" && isOptimistic(info.sessionID, m.id));
|
|
591
|
+
const incomingPartIds = new Set((state.parts[info.id] ?? []).map((p) => p.id));
|
|
592
|
+
const byPartId = optimisticUsers.find((m) => (state.parts[m.id] ?? []).some((p) => incomingPartIds.has(p.id)));
|
|
593
|
+
// The fallback requires `dispatched`, matching `hydrate`.
|
|
594
|
+
//
|
|
595
|
+
// It briefly did not: "with exactly one optimistic message in
|
|
596
|
+
// flight there is nothing to be ambiguous about, so retire it".
|
|
597
|
+
// That had a hole. A SECOND TAB on the same session produces a
|
|
598
|
+
// `message.updated` for a message that is not ours, and the one
|
|
599
|
+
// message we do have in flight may still be uploading — so the
|
|
600
|
+
// single-in-flight rule handed the other tab's confirmation our
|
|
601
|
+
// un-sent message and deleted it. Exactly the bug this whole
|
|
602
|
+
// change set exists to fix, through a side door.
|
|
603
|
+
//
|
|
604
|
+
// The argument for being generous was that a host which calls
|
|
605
|
+
// `beginOptimisticSend` and then POSTs by hand, never marking
|
|
606
|
+
// dispatch, would keep its bubble forever. That is checkable
|
|
607
|
+
// rather than hypothetical: `optimisticAdd` has exactly one
|
|
608
|
+
// caller, and every send path through this SDK
|
|
609
|
+
// (`sendAndRecover`, `replayStartStash`, `useSession.sendParts`)
|
|
610
|
+
// marks dispatch. Losing a message the user typed is worse than
|
|
611
|
+
// a double bubble on a host that does not exist.
|
|
612
|
+
//
|
|
613
|
+
// Note this fallback is the LIVE path here, not part-id
|
|
614
|
+
// matching: at `message.updated` time the confirmed message
|
|
615
|
+
// usually has no parts in the store yet (they arrive separately
|
|
616
|
+
// via `message.part.updated`).
|
|
617
|
+
const matched = byPartId ?? optimisticUsers.find((m) => isDispatched(info.sessionID, m.id));
|
|
618
|
+
const optIds = matched ? [matched.id] : [];
|
|
468
619
|
if (optIds.length > 0) {
|
|
469
620
|
// Clean up optimistic tracking
|
|
470
|
-
for (const id of optIds)
|
|
471
|
-
optimisticIds.
|
|
621
|
+
for (const id of optIds) {
|
|
622
|
+
untrackId(optimisticIds, info.sessionID, id);
|
|
623
|
+
untrackId(dispatchedOptimisticIds, info.sessionID, id);
|
|
624
|
+
}
|
|
472
625
|
// Atomic: remove optimistic + insert real in one set()
|
|
473
626
|
set((s) => {
|
|
474
627
|
const list = s.messages[info.sessionID] ?? [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-store.js","sourceRoot":"","sources":["../../../src/browser/stores/sync-store.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAWb,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAG7D,4EAA4E;AAC5E,6EAA6E;AAC7E,sCAAsC;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;AAQ/B,SAAS,cAAc,CAAC,IAAU;IACjC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;AAC1D,CAAC;AAuDD,+EAA+E;AAC/E,uBAAuB;AACvB,2EAA2E;AAC3E,sEAAsE;AACtE,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;AACxC,6EAA6E;AAC7E,4EAA4E;AAC5E,uEAAuE;AACvE,kCAAkC;AAClC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;AAEzC,wDAAwD;AACxD,wEAAwE;AACxE,4EAA4E;AAC5E,4DAA4D;AAC5D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;AAE3C,+EAA+E;AAE/E,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,EAAa,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9D,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,EAAE;IACT,aAAa,EAAE,EAAE;IACjB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IAET,eAAe;IACf,IAAI,QAAQ;QACX,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,2BAA2B;IAE3B,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CACrC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACzC,wDAAwD;QACxD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5D,gEAAgE;QAChE,2DAA2D;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;QACtE,IAAI,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;YAC7B,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3D,CAAC;QACD,kEAAkE;QAClE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;YAC1B,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QAC3D,CAAC;QACD,6DAA6D;QAC7D,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QACtC,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;IAC3D,CAAC,CAAC;IAEH,aAAa,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE,CACvC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QACpB,mEAAmE;QACnE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,SAAS,CAAC;YACjE,CAAC,CAAC,MAAM,CAAC,KAAK;YACd,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;QAC7C,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACpB,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;QACjD,OAAO;YACN,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE;YAC9C,KAAK,EAAE,SAAS;SAChB,CAAC;IACH,CAAC,CAAC;IAEH,UAAU,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,iEAAiE;QACjE,4DAA4D;QAC5D,IAAI,IAAY,CAAC;QACjB,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,gEAAgE;YAChE,kEAAkE;YAClE,gEAAgE;YAChE,6CAA6C;YAC7C,MAAM,QAAQ,GAAG,IAAyC,CAAC;YAC3D,MAAM,kBAAkB,GACvB,QAAQ,EAAE,IAAI,KAAK,MAAM;gBACzB,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;gBACjC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1B,IAAI,kBAAkB,EAAE,CAAC;gBACxB,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjC,IAAI,GAAG,EAAE,CAAC;gBACV,aAAa,GAAG,IAAI,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACP,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACjC,CAAC;QACF,CAAC;aAAM,CAAC;YACP,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAChC,MAAM,cAAc,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YAC5C,MAAM,kBAAkB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,mBAAmB,GAAG,cAAc,IAAI,kBAAkB,CAAC;YACjE,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACnD,MAAM,YAAY,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAE3D,iEAAiE;YACjE,+CAA+C;YAC/C,mEAAmE;YACnE,+DAA+D;YAC/D,gEAAgE;YAChE,4DAA4D;YAC5D,2CAA2C;YAC3C,IACC,mBAAmB;gBACnB,QAAQ,KAAK,IAAI;gBACjB,YAAY,KAAK,IAAI;gBACrB,QAAQ,CAAC,MAAM,GAAG,CAAC,EAClB,CAAC;gBACF,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACzD,IAAI,CAAC,cAAc,EAAE,CAAC;oBACrB,8DAA8D;oBAC9D,6DAA6D;oBAC7D,gDAAgD;oBAChD,IAAI,CAAC,aAAa;wBAAE,OAAO,CAAC,CAAC;oBAC7B,kEAAkE;oBAClE,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;oBACvB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;oBAC1B,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;gBACrD,CAAC;YACF,CAAC;QACF,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QAC3B,CAAC;aAAM,CAAC;YACP,4DAA4D;YAC5D,8DAA8D;YAC9D,gEAAgE;YAChE,8DAA8D;YAC9D,6DAA6D;YAC7D,6DAA6D;YAC7D,8CAA8C;YAC7C,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5D,0DAA0D;gBAC1D,2DAA2D;gBAC3D,oCAAoC;gBACpC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACxC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC5C,OAAO,CAAC,CAAC;oBACV,CAAC;gBACF,CAAC;YACF,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;IACrD,CAAC,CAAC;IAEH,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI;YAAE,OAAO,CAAC,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;YACjD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;IACrD,CAAC,CAAC;IAEH,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACnD,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACxD,IAAI,CAAC,MAAM,CAAC,KAAK;gBAAE,OAAO,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YACvB,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,QAAQ,GAAI,IAAgC,CAAC,KAAK,CAE5C,CAAC;YACZ,IAAgC,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAY,CAAC;YAClC,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE;KAC1D,CAAC,CAAC;IAEJ,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE;KACzC,CAAC,CAAC;IAEJ,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE;KACzC,CAAC,CAAC;IAEJ,aAAa,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE;QACnD,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACzC,4DAA4D;YAC5D,oEAAoE;YACpE,kEAAkE;YAClE,mEAAmE;YACnE,gEAAgE;YAChE,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,YAAY;iBACzB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;iBACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3D,OAAO;gBACN,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE;gBAClD,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;aAC3C,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,gBAAgB,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,EAAE;QAC1C,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC;YACpB,iEAAiE;YACjE,gDAAgD;YAChD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC;YACtD,IAAI,GAAG,KAAK,CAAC,CAAC;gBAAE,OAAO,CAAC,CAAC;YACzB,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3B,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACxB,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC;YACjD,OAAO;gBACN,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE;gBAClD,KAAK,EAAE,SAAS;aAChB,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,uBAAuB,EAAE,CAAC,SAAS,EAAE,EAAE;QACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,IAAI;iBACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;iBACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,CAAC,CAAC;YAClC,KAAK,MAAM,EAAE,IAAI,MAAM;gBAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;YAChC,KAAK,MAAM,EAAE,IAAI,MAAM;gBAAE,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC7C,OAAO;gBACN,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE;gBAClD,KAAK,EAAE,QAAQ;aACf,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC;IAED,YAAY,EAAE,CAAC,SAAS,EAAE,EAAE,CAC3B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,gBAAgB,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QACjC,KAAK,MAAM,OAAO,IAAI,gBAAgB;YAAE,OAAO,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrE,OAAO;YACN,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE;YAC5C,KAAK,EAAE,SAAS;YAChB,aAAa,EAAE,EAAE,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,EAAmB,EAAE;YACrF,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE;YACtC,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE;SACtC,CAAC;IACH,CAAC,CAAC;IAEH,OAAO,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,GAAG,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CACpC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI;aACnB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;aAC5B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aAClB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAElC,qEAAqE;QACrE,wEAAwE;QACxE,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAoB,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,kEAAkE;QAClE,+DAA+D;QAC/D,+DAA+D;QAC/D,uEAAuE;QACvE,MAAM,sBAAsB,GAAG,QAAQ,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACpD,CAAC;QAEF,mCAAmC;QACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChB,CAAC;QACD,2EAA2E;QAC3E,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,kBAAkB,GAAoB,EAAE,CAAC;QAC/C,MAAM,oBAAoB,GAAa,EAAE,CAAC;QAC1C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrB,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7B,sDAAsD;oBACtD,oDAAoD;oBACpD,IAAI,sBAAsB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBACjD,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACP,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;oBAC5B,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACF,CAAC;QACF,CAAC;QACD,qCAAqC;QACrC,KAAK,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;YACvC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,kDAAkD;QAClD,KAAK,MAAM,CAAC,IAAI,kBAAkB,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC;QAED,uDAAuD;QACvD,qEAAqE;QACrE,yEAAyE;QACzE,oEAAoE;QACpE,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;QAChC,mEAAmE;QACnE,gEAAgE;QAChE,gEAAgE;QAChE,8DAA8D;QAC9D,yDAAyD;QACzD,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAChC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACpD,CAAC;QACF,MAAM,aAAa,GAAG,WAAW;YAChC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,CAAC;YAChD,CAAC,CAAC,SAAS,CAAC;QACb,MAAM,sBAAsB,GAC3B,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,MAA0B,CAAC;QAC/B,KAAK,MAAM,EAAE,IAAI,oBAAoB,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM;gBAAE,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3D,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;QACrB,CAAC;QACD,IACC,MAAM;YACN,WAAW;YACX,CAAC,sBAAsB;YACvB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,EAChC,CAAC;YACF,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;YAClC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QACpC,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;gBAAE,SAAS;YAC3B,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,+BAA+B;YAErE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK;iBACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;iBACtB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,oEAAoE;YACpE,sEAAsE;YACtE,oEAAoE;YACpE,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnD,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC3B,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBACxB,SAAS;YACV,CAAC;YACD,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,QAAQ,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;gBACxB,SAAS;YACV,CAAC;YACD,gEAAgE;YAChE,wEAAwE;YACxE,4DAA4D;YAC5D,6DAA6D;YAC7D,mDAAmD;YACnD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/B,IAAI,CAAC,GAAG;oBAAE,OAAO,GAAG,CAAC;gBACrB,oEAAoE;gBACpE,6DAA6D;gBAC7D,+DAA+D;gBAC/D,IACC,cAAc,CAAC,GAAG,CAAC;oBACnB,cAAc,CAAC,GAAG,CAAC;oBACnB,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,EAChC,CAAC;oBACF,OAAO,GAAG,CAAC;gBACZ,CAAC;gBACD,OAAO,GAAG,CAAC;YACZ,CAAC,CAAC,CAAC;YACH,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACxD,IAAI,CAAC,CAAC,CAAC,KAAK;oBAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACjD,CAAC;YACD,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;QAC5B,CAAC;QACD,OAAO;YACN,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE;YAChD,KAAK,EAAE,QAAQ;SACf,CAAC;IACH,CAAC,CAAC;IAEH,KAAK,EAAE,GAAG,EAAE;QACX,aAAa,CAAC,KAAK,EAAE,CAAC;QACtB,cAAc,CAAC,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC;YACH,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,EAAE;YACjB,KAAK,EAAE,EAAE;YACT,KAAK,EAAE,EAAE;SACT,CAAC,CAAC;IACJ,CAAC;IAED,oEAAoE;IAEpE,qBAAqB,EAAE,CAAC,SAAS,EAAE,EAAE;QACpC,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,WAAW,EAAE,CAAC,SAAS,EAAE,EAAE;QAC1B,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI;YACJ,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE;SAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iEAAiE;IAEjE,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QACrB,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC;QACpB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACxB,MAAM,IAAI,GAAI,KAAK,CAAC,UAAgC,CAAC,IAAI,CAAC;gBAC1D,IAAI,CAAC,IAAI,EAAE,SAAS;oBAAE,OAAO;gBAC5B,iEAAiE;gBAClE,uDAAuD;gBACvD,8DAA8D;gBAC9D,6DAA6D;gBAC7D,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;oBACzD,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAC5C,IAAI,IAAI,EAAE,CAAC;wBACV,MAAM,MAAM,GAAG,IAAI;6BACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;6BAC3D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBACnB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACvB,+BAA+B;4BAC/B,KAAK,MAAM,EAAE,IAAI,MAAM;gCAAE,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BAClD,uDAAuD;4BACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gCACT,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;gCAC9C,sCAAsC;gCACtC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gCAC3D,6CAA6C;gCAC7C,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gCACvD,MAAM,IAAI,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;gCAC1B,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;oCACb,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;gCACtB,CAAC;qCAAM,CAAC;oCACP,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;gCAC/B,CAAC;gCACD,oDAAoD;gCACpD,qDAAqD;gCACrD,qDAAqD;gCACrD,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;gCAChC,IAAI,MAA0B,CAAC;gCAC/B,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;oCACzB,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;wCACrC,MAAM,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;oCACvB,CAAC;oCACD,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC;gCACrB,CAAC;gCACD,IAAI,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;oCAC1C,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;oCAC3B,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAC7B,CAAC;gCACD,OAAO;oCACN,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE;oCACnD,KAAK,EAAE,QAAQ;iCACf,CAAC;4BACH,CAAC,CAAC,CAAC;4BACH,OAAO;wBACR,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC1C,OAAO;YACR,CAAC;YACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACxB,MAAM,KAAK,GAAG,KAAK,CAAC,UAGnB,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,SAAS;oBAAE,OAAO;gBACjD,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACtD,OAAO;YACR,CAAC;YACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC7B,MAAM,IAAI,GAAI,KAAK,CAAC,UAA6B,CAAC,IAAI,CAAC;gBACvD,IAAI,CAAC,IAAI,EAAE,SAAS;oBAAE,OAAO;gBAE7B,MAAM,cAAc,GAClB,KAAK,CAAC,UAAqC,EAAE,SAAS,CAAC;gBACzD,IAAI,iBAAiB,GACpB,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC;gBAElC,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACxB,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;oBACpC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;wBACxD,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;4BAChD,iBAAiB,GAAG,GAAG,CAAC;4BACxB,MAAM;wBACP,CAAC;oBACF,CAAC;gBACF,CAAC;gBAED,MAAM,YAAY,GAAG,iBAAiB;oBACrC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;oBACnC,CAAC,CAAC,SAAS,CAAC;gBACb,MAAM,QAAQ,GAAG,YAAY,IAAI,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1F,MAAM,MAAM,GAAG,YAAY,IAAI,CAC9B,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC;oBACnF,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAAC,CACjD,CAAC;gBACF,IAAI,CAAC,MAAM,IAAI,iBAAiB,EAAE,CAAC;oBAClC,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE;wBACtC,EAAE,EAAE,IAAI,CAAC,SAAS;wBAClB,SAAS,EAAE,iBAAiB;wBAC5B,IAAI,EAAE,WAAW;qBACN,CAAC,CAAC;gBACf,CAAC;gBAED,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBACvC,IAAI,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1B,IAAI,CAAC,iBAAiB;wBAAE,OAAO;oBAC/B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,IAAI,CACtD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,SAAS,CAC9B,CAAC;oBACF,gBAAgB,CACf,iBAAiB,EACjB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,IAAI,EACT,OAAO,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAC5D,CAAC;gBACH,CAAC;gBACD,OAAO;YACR,CAAC;YACD,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,UAAmD,CAAC;gBACxE,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM;oBAAE,OAAO;gBAC9C,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChD,OAAO;YACR,CAAC;YACD,KAAK,oBAAoB,CAAC,CAAC,CAAC;gBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,UAMnB,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK;oBAAE,OAAO;gBAE9D,oDAAoD;gBACpD,4DAA4D;gBAC5D,yDAAyD;gBACzD,4DAA4D;gBAC5D,6CAA6C;gBAC7C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9C,MAAM,UAAU,GAAG,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC3E,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,oDAAoD;oBACpD,qDAAqD;oBACrD,mDAAmD;oBACnD,oDAAoD;oBACpD,sDAAsD;oBACtD,gDAAgD;oBAChD,oDAAoD;oBACpD,sCAAsC;oBACtC,iDAAiD;oBACjD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;wBACrB,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBACrD,MAAM,UAAU,GAAG,YAAY,EAAE,IAAI,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CACxB,CAAC;wBACF,MAAM,SAAS,GAAG,YAAY,EAAE,IAAI,CACnC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,CAC/B,CAAC;wBACF,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC;4BAC9B,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE;gCACpC,EAAE,EAAE,KAAK,CAAC,SAAS;gCACnB,SAAS,EAAE,KAAK,CAAC,SAAS;gCAC1B,IAAI,EAAE,WAAW;6BACN,CAAC,CAAC;wBACf,CAAC;oBACF,CAAC;oBACD,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,EAAE;wBACjC,EAAE,EAAE,KAAK,CAAC,MAAM;wBAChB,SAAS,EAAE,KAAK,CAAC,SAAS;wBAC1B,IAAI,EAAE,MAAM;wBACZ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE;qBACE,CAAC,CAAC;gBACvB,CAAC;gBAED,KAAK,CAAC,cAAc,CACnB,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,MAAM,EACZ,KAAK,CAAC,KAAK,EACX,KAAK,CAAC,KAAK,CACX,CAAC;gBACF,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,MAAM,CAC5B,CAAC;oBACF,IAAI,OAAO,IAAI,cAAc,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACnE,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CACpD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,CAC/B,CAAC;wBACF,gBAAgB,CACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,MAAM,EACZ,OAAO,CAAC,IAAI,EACZ,OAAO,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAC5D,CAAC;oBACH,CAAC;gBACF,CAAC;gBACD,OAAO;YACR,CAAC;YACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,KAAK,CAAC,UAGnB,CAAC;gBACF,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,MAAM;oBAClC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChD,OAAO;YACR,CAAC;YACF,KAAK,cAAc,CAAC,CAAC,CAAC;gBACrB,MAAM,SAAS,GAAI,KAAK,CAAC,UAAoC,CAAC,SAAS,CAAC;gBACxE,IAAI,SAAS;oBAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC5D,sDAAsD;gBACtD,wDAAwD;gBACxD,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBACzB,OAAO;YACR,CAAC;YACD,KAAK,eAAe,CAAC,CAAC,CAAC;gBACtB,MAAM,KAAK,GAAG,KAAK,CAAC,UAA0D,CAAC;gBAC/E,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK;oBAAE,OAAO;gBAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC;gBAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC1B,qDAAqD;gBACrD,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;gBACvC,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAEzB,qEAAqE;gBACrE,oEAAoE;gBACpE,qDAAqD;gBACrD,gEAAgE;gBAChE,mEAAmE;gBACnE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;oBACT,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;oBACnC,uDAAuD;oBACvD,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;4BAC9B,IAAI,GAAG,CAAC,KAAK;gCAAE,OAAO,CAAC,CAAC,CAAC,oBAAoB;4BAC7C,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;4BACvB,8DAA8D;4BAC9D,qEAAqE;4BACrE,kEAAkE;4BAClE,sCAAsC;4BACtC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,KAAK,EAAgB,CAAC;4BAC1C,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;wBACrD,CAAC;oBACF,CAAC;oBAED,+DAA+D;oBAC/D,2DAA2D;oBAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;oBAClC,MAAM,OAAO,GAAY;wBACxB,EAAE,EAAE,MAAM;wBACV,SAAS,EAAE,GAAG;wBACd,IAAI,EAAE,WAAW;wBACjB,KAAK;qBACM,CAAC;oBACb,OAAO;wBACN,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,EAAE;qBACtD,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACR,CAAC;YACA,KAAK,cAAc,CAAC,CAAC,CAAC;gBACrB,MAAM,KAAK,GAAG,KAAK,CAAC,UAGnB,CAAC;gBACF,IAAI,KAAK,CAAC,SAAS;oBAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAChE,OAAO;YACR,CAAC;YACD,KAAK,cAAc,CAAC,CAAC,CAAC;gBACrB,MAAM,KAAK,GAAG,KAAK,CAAC,UAAkD,CAAC;gBACvE,IAAI,KAAK,CAAC,SAAS;oBAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjE,OAAO;YACR,CAAC;YACD;gBACC,OAAO;QACT,CAAC;IACF,CAAC;CACD,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"sync-store.js","sourceRoot":"","sources":["../../../src/browser/stores/sync-store.ts"],"names":[],"mappings":"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"}
|