@mulmoclaude/collection-plugin 0.2.2 → 0.4.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 (135) hide show
  1. package/dist/chunk-CKQMccvm.cjs +28 -0
  2. package/dist/core/actionVisible.d.ts +1 -0
  3. package/dist/core/actionVisible.d.ts.map +1 -0
  4. package/dist/core/calendarGrid.d.ts +1 -0
  5. package/dist/core/calendarGrid.d.ts.map +1 -0
  6. package/dist/core/deriveAll.d.ts +2 -1
  7. package/dist/core/deriveAll.d.ts.map +1 -0
  8. package/dist/core/derivedFormula.d.ts +1 -0
  9. package/dist/core/derivedFormula.d.ts.map +1 -0
  10. package/dist/core/draft.d.ts +3 -2
  11. package/dist/core/draft.d.ts.map +1 -0
  12. package/dist/core/enumColors.d.ts +2 -1
  13. package/dist/core/enumColors.d.ts.map +1 -0
  14. package/dist/core/errorMessage.d.ts +5 -0
  15. package/dist/core/errorMessage.d.ts.map +1 -0
  16. package/dist/core/itemLabel.d.ts +2 -1
  17. package/dist/core/itemLabel.d.ts.map +1 -0
  18. package/dist/core/presentCollection.d.ts +2 -1
  19. package/dist/core/presentCollection.d.ts.map +1 -0
  20. package/dist/core/promptSafety.d.ts +2 -0
  21. package/dist/core/promptSafety.d.ts.map +1 -0
  22. package/dist/core/schema.d.ts +1 -0
  23. package/dist/core/schema.d.ts.map +1 -0
  24. package/dist/core/shortHexId.d.ts +9 -0
  25. package/dist/core/shortHexId.d.ts.map +1 -0
  26. package/dist/core/sortItems.d.ts +2 -1
  27. package/dist/core/sortItems.d.ts.map +1 -0
  28. package/dist/core/uiTypes.d.ts +54 -1
  29. package/dist/core/uiTypes.d.ts.map +1 -0
  30. package/dist/{deriveAll-B5spcUIb.js → deriveAll-BHcs1erT.js} +2 -20
  31. package/dist/deriveAll-BHcs1erT.js.map +1 -0
  32. package/dist/{deriveAll-Do0v6Xjb.cjs → deriveAll-BJ0Lvm1Q.cjs} +1 -31
  33. package/dist/deriveAll-BJ0Lvm1Q.cjs.map +1 -0
  34. package/dist/index.cjs +49 -712
  35. package/dist/index.cjs.map +1 -1
  36. package/dist/index.d.ts +15 -11
  37. package/dist/index.d.ts.map +1 -0
  38. package/dist/index.js +4 -670
  39. package/dist/index.js.map +1 -1
  40. package/dist/promptSafety-BSO2gdsg.cjs +961 -0
  41. package/dist/promptSafety-BSO2gdsg.cjs.map +1 -0
  42. package/dist/promptSafety-DShN_VCG.js +698 -0
  43. package/dist/promptSafety-DShN_VCG.js.map +1 -0
  44. package/dist/schema-DyfSfVzh.js +21 -0
  45. package/dist/schema-DyfSfVzh.js.map +1 -0
  46. package/dist/schema-LrmrgW12.cjs +32 -0
  47. package/dist/schema-LrmrgW12.cjs.map +1 -0
  48. package/dist/server/atomic.d.ts +1 -0
  49. package/dist/server/atomic.d.ts.map +1 -0
  50. package/dist/server/delete.d.ts +2 -1
  51. package/dist/server/delete.d.ts.map +1 -0
  52. package/dist/server/derive.d.ts +4 -3
  53. package/dist/server/derive.d.ts.map +1 -0
  54. package/dist/server/discoveredCollection.d.ts +2 -1
  55. package/dist/server/discoveredCollection.d.ts.map +1 -0
  56. package/dist/server/discovery.d.ts +4 -3
  57. package/dist/server/discovery.d.ts.map +1 -0
  58. package/dist/server/host.d.ts +1 -0
  59. package/dist/server/host.d.ts.map +1 -0
  60. package/dist/server/index.d.ts +12 -11
  61. package/dist/server/index.d.ts.map +1 -0
  62. package/dist/server/io.d.ts +3 -2
  63. package/dist/server/io.d.ts.map +1 -0
  64. package/dist/server/paths.d.ts +1 -0
  65. package/dist/server/paths.d.ts.map +1 -0
  66. package/dist/server/spawn.d.ts +3 -2
  67. package/dist/server/spawn.d.ts.map +1 -0
  68. package/dist/server/templatePath.d.ts +1 -0
  69. package/dist/server/templatePath.d.ts.map +1 -0
  70. package/dist/server/util.d.ts +1 -0
  71. package/dist/server/util.d.ts.map +1 -0
  72. package/dist/server/validate.d.ts +3 -2
  73. package/dist/server/validate.d.ts.map +1 -0
  74. package/dist/server/views.d.ts +3 -2
  75. package/dist/server/views.d.ts.map +1 -0
  76. package/dist/server.cjs +6 -26
  77. package/dist/server.cjs.map +1 -1
  78. package/dist/server.js +2 -1
  79. package/dist/server.js.map +1 -1
  80. package/dist/style.css +2664 -0
  81. package/dist/vue/collectionViewMode.d.ts +12 -0
  82. package/dist/vue/collectionViewMode.d.ts.map +1 -0
  83. package/dist/vue/components/CollectionCalendarView.vue.d.ts +27 -0
  84. package/dist/vue/components/CollectionCalendarView.vue.d.ts.map +1 -0
  85. package/dist/vue/components/CollectionCustomView.vue.d.ts +9 -0
  86. package/dist/vue/components/CollectionCustomView.vue.d.ts.map +1 -0
  87. package/dist/vue/components/CollectionDayView.vue.d.ts +40 -0
  88. package/dist/vue/components/CollectionDayView.vue.d.ts.map +1 -0
  89. package/dist/vue/components/CollectionEmbedView.vue.d.ts +9 -0
  90. package/dist/vue/components/CollectionEmbedView.vue.d.ts.map +1 -0
  91. package/dist/vue/components/CollectionKanbanView.vue.d.ts +23 -0
  92. package/dist/vue/components/CollectionKanbanView.vue.d.ts.map +1 -0
  93. package/dist/vue/components/CollectionRecordModal.vue.d.ts +18 -0
  94. package/dist/vue/components/CollectionRecordModal.vue.d.ts.map +1 -0
  95. package/dist/vue/components/CollectionRecordPanel.vue.d.ts +46 -0
  96. package/dist/vue/components/CollectionRecordPanel.vue.d.ts.map +1 -0
  97. package/dist/vue/components/CollectionView.vue.d.ts +41 -0
  98. package/dist/vue/components/CollectionView.vue.d.ts.map +1 -0
  99. package/dist/vue/components/CollectionViewConfigModal.vue.d.ts +16 -0
  100. package/dist/vue/components/CollectionViewConfigModal.vue.d.ts.map +1 -0
  101. package/dist/vue/components/CollectionsIndexView.vue.d.ts +4 -0
  102. package/dist/vue/components/CollectionsIndexView.vue.d.ts.map +1 -0
  103. package/dist/vue/components/FeedsView.vue.d.ts +4 -0
  104. package/dist/vue/components/FeedsView.vue.d.ts.map +1 -0
  105. package/dist/vue/index.d.ts +16 -0
  106. package/dist/vue/index.d.ts.map +1 -0
  107. package/dist/vue/lang/de.d.ts +4 -0
  108. package/dist/vue/lang/de.d.ts.map +1 -0
  109. package/dist/vue/lang/en.d.ts +98 -0
  110. package/dist/vue/lang/en.d.ts.map +1 -0
  111. package/dist/vue/lang/es.d.ts +4 -0
  112. package/dist/vue/lang/es.d.ts.map +1 -0
  113. package/dist/vue/lang/fr.d.ts +4 -0
  114. package/dist/vue/lang/fr.d.ts.map +1 -0
  115. package/dist/vue/lang/index.d.ts +111 -0
  116. package/dist/vue/lang/index.d.ts.map +1 -0
  117. package/dist/vue/lang/ja.d.ts +4 -0
  118. package/dist/vue/lang/ja.d.ts.map +1 -0
  119. package/dist/vue/lang/ko.d.ts +4 -0
  120. package/dist/vue/lang/ko.d.ts.map +1 -0
  121. package/dist/vue/lang/ptBR.d.ts +4 -0
  122. package/dist/vue/lang/ptBR.d.ts.map +1 -0
  123. package/dist/vue/lang/zh.d.ts +4 -0
  124. package/dist/vue/lang/zh.d.ts.map +1 -0
  125. package/dist/vue/uiContext.d.ts +169 -0
  126. package/dist/vue/uiContext.d.ts.map +1 -0
  127. package/dist/vue/useCollectionRendering.d.ts +30 -0
  128. package/dist/vue/useCollectionRendering.d.ts.map +1 -0
  129. package/dist/vue.cjs +4713 -0
  130. package/dist/vue.cjs.map +1 -0
  131. package/dist/vue.js +4693 -0
  132. package/dist/vue.js.map +1 -0
  133. package/package.json +21 -6
  134. package/dist/deriveAll-B5spcUIb.js.map +0 -1
  135. package/dist/deriveAll-Do0v6Xjb.cjs.map +0 -1
@@ -0,0 +1,169 @@
1
+ import type { Component } from "vue";
2
+ import type { CollectionDetailResponse, ItemMutationResponse, CollectionNotifySeverity, CollectionsListResponse, FeedsListResponse, CollectionShortcutInfo } from "../core/uiTypes";
3
+ import type { CollectionItem } from "../core/schema";
4
+ /** Result of a host data fetch — structurally a subset of the host's own
5
+ * `ApiResult` (so the host can pass `apiGet` straight through). The view layer
6
+ * treats `ok: false` as a skip, never throwing on one failed target. */
7
+ export type CollectionFetchResult<T> = {
8
+ ok: true;
9
+ data: T;
10
+ } | {
11
+ ok: false;
12
+ };
13
+ /** Result of a host write (delete / create / update / action) — the normalised
14
+ * `ApiResult` shape, so the host passes `apiDelete`/`apiPost`/… straight through.
15
+ * Carries the host's error string on failure for inline display. */
16
+ export type CollectionMutationResult = {
17
+ ok: true;
18
+ } | {
19
+ ok: false;
20
+ error: string;
21
+ };
22
+ /** Full host `ApiResult<T>` (data on success, error + HTTP status on failure) —
23
+ * matches the host's `ApiResult` exactly, so `apiGet`/`apiPost`/`apiPut` pass
24
+ * straight through. `status` lets the view distinguish 404 (not-found) from a
25
+ * generic failure. */
26
+ export type CollectionApiResult<T> = {
27
+ ok: true;
28
+ data: T;
29
+ } | {
30
+ ok: false;
31
+ error: string;
32
+ status: number;
33
+ };
34
+ /** A collection / item action's result — a seed prompt + role for a new chat. */
35
+ export interface CollectionActionResult {
36
+ prompt: string;
37
+ role: string;
38
+ }
39
+ /** A feed refresh's result — counts + per-source errors. */
40
+ export interface CollectionRefreshResult {
41
+ refreshed: boolean;
42
+ written: number;
43
+ errors: string[];
44
+ }
45
+ /** Scoped capability token for a sandboxed custom view (mirrors the host's mint
46
+ * response) — the iframe reads/writes the collection through it. */
47
+ export interface CollectionViewToken {
48
+ token: string;
49
+ exp: number;
50
+ dataUrl: string;
51
+ capabilities: string[];
52
+ }
53
+ /** Result of fetching a custom view's HTML — status-only failure (the host
54
+ * attaches the global bearer; a non-2xx is surfaced as `HTTP <status>`). */
55
+ export type CollectionViewHtmlResult = {
56
+ ok: true;
57
+ html: string;
58
+ } | {
59
+ ok: false;
60
+ status: number;
61
+ };
62
+ /** Inputs the host needs to wrap a custom view's HTML into a sandboxed srcdoc
63
+ * (token + data URL injected, CSP applied — the host owns the CSP policy). */
64
+ export interface CollectionViewSrcdocBoot {
65
+ slug: string;
66
+ token: string;
67
+ dataUrl: string;
68
+ origin: string;
69
+ }
70
+ /** Options for the host's confirm dialog — structurally matches the host's own
71
+ * `ConfirmOptions`, so `confirm` can forward to `useConfirm().openConfirm`. */
72
+ export interface CollectionConfirmOptions {
73
+ message: string;
74
+ confirmText?: string;
75
+ cancelText?: string;
76
+ variant?: "primary" | "success" | "danger";
77
+ }
78
+ export interface CollectionUi {
79
+ /** Fetch a collection's detail (schema + records) by slug — backs both the
80
+ * View's own load (reads `status` for 404 → not-found) and ref/embed
81
+ * resolution (treats `!ok` as a skip). Replaces `apiGet(…collections.detail)`. */
82
+ fetchCollectionDetail: (slug: string) => Promise<CollectionApiResult<CollectionDetailResponse>>;
83
+ /** Browser-loadable URL for a file/image asset value (an html/svg artifact),
84
+ * or null when the value isn't a renderable asset path. Replaces
85
+ * `isValidFilePath` + `htmlPreviewUrlFor`/`svgPreviewUrlFor`. */
86
+ fileAssetUrl: (value: unknown) => string | null;
87
+ /** In-app File-Explorer route for a workspace file path (the fallback for
88
+ * `file` values that aren't a directly-served artifact), or null when the
89
+ * value isn't a valid in-workspace path. */
90
+ fileRoutePath: (value: unknown) => string | null;
91
+ /** Browser `<img src>` for a stored image value (a workspace file path), via
92
+ * the host's raw-file endpoint. Replaces the host's `resolveImageSrc`. */
93
+ imageSrc: (imageData: string) => string;
94
+ /** Open the host's confirm dialog; resolves true if confirmed. Replaces
95
+ * `useConfirm().openConfirm`. */
96
+ confirm: (options: CollectionConfirmOptions) => Promise<boolean>;
97
+ /** Delete a collection's custom view by id. Replaces the host's
98
+ * `apiDelete(API_ROUTES.collections.viewDelete)`. */
99
+ deleteView: (slug: string, viewId: string) => Promise<CollectionMutationResult>;
100
+ /** Mint a scoped capability token for a custom view (host: `apiPost` over
101
+ * `API_ROUTES.collections.viewToken`). */
102
+ mintViewToken: (slug: string, viewId: string) => Promise<CollectionApiResult<CollectionViewToken>>;
103
+ /** Fetch a custom view's raw HTML (host: `apiFetchRaw` over
104
+ * `API_ROUTES.collections.viewFile`, global bearer attached). */
105
+ fetchViewHtml: (slug: string, viewId: string) => Promise<CollectionViewHtmlResult>;
106
+ /** Wrap a custom view's HTML in a sandboxed `<iframe srcdoc>` with the token +
107
+ * data URL injected and the host's CSP applied. Replaces the host's
108
+ * `buildCustomViewSrcdoc`. */
109
+ buildViewSrcdoc: (html: string, boot: CollectionViewSrcdocBoot) => string;
110
+ /** Create a record (`apiPost` over `…collections.items`). */
111
+ createItem: (slug: string, record: CollectionItem) => Promise<CollectionApiResult<ItemMutationResponse>>;
112
+ /** Update a record (`apiPut` over `…collections.item`). */
113
+ updateItem: (slug: string, itemId: string, record: CollectionItem) => Promise<CollectionApiResult<ItemMutationResponse>>;
114
+ /** Delete a record (`apiDelete` over `…collections.item`). */
115
+ deleteItem: (slug: string, itemId: string) => Promise<CollectionMutationResult>;
116
+ /** Delete a whole collection (`apiDelete` over `…collections.detail`). */
117
+ deleteCollection: (slug: string) => Promise<CollectionMutationResult>;
118
+ /** Delete a feed via the project-scope feed-delete route (`…feeds.detail`). */
119
+ deleteFeed: (slug: string) => Promise<CollectionMutationResult>;
120
+ /** Run a per-record action (`apiPost` over `…collections.itemAction`). */
121
+ runItemAction: (slug: string, itemId: string, actionId: string) => Promise<CollectionApiResult<CollectionActionResult>>;
122
+ /** Run a collection-level action (`apiPost` over `…collections.collectionAction`). */
123
+ runCollectionAction: (slug: string, actionId: string) => Promise<CollectionApiResult<CollectionActionResult>>;
124
+ /** Refresh a feed-backed collection (`apiPost` over `…collections.refresh`). */
125
+ refreshCollection: (slug: string) => Promise<CollectionApiResult<CollectionRefreshResult>>;
126
+ /** Current route's `:slug` param (standalone page), or undefined. */
127
+ routeSlug: () => string | undefined;
128
+ /** Current route's `?selected=` query (deep-linked record), or undefined. */
129
+ routeSelectedId: () => string | undefined;
130
+ /** True when the standalone page is the feeds route (vs collections). */
131
+ isFeedRoute: () => boolean;
132
+ /** Set/clear the `?selected=` deep-link (router.replace, no history entry). */
133
+ setSelectedId: (itemId: string | null) => void;
134
+ /** Navigate to the collections / feeds index after a delete. */
135
+ gotoIndex: (kind: "collection" | "feed") => void;
136
+ /** Navigate to a specific collection / feed detail page (from an index card). */
137
+ gotoDetail: (kind: "collection" | "feed", slug: string) => void;
138
+ /** List skill-backed collections (`apiGet` over `…collections.list`). */
139
+ listCollections: () => Promise<CollectionApiResult<CollectionsListResponse>>;
140
+ /** List feed-backed collections (`apiGet` over `…feeds.list`). */
141
+ listFeeds: () => Promise<CollectionApiResult<FeedsListResponse>>;
142
+ /** Bulk-reconcile pinned launcher shortcuts of one kind against the
143
+ * authoritative list — prune dead slugs, refresh stale labels
144
+ * (`useShortcuts().reconcile`). */
145
+ reconcileShortcuts: (kind: "collection" | "feed", live: CollectionShortcutInfo[]) => Promise<void>;
146
+ /** Start a new chat with a seed prompt + role (host: `useAppApi().startNewChat`). */
147
+ startChat: (prompt: string, role: string) => void;
148
+ /** The host's active i18n locale tag (e.g. "en", "ja"), read reactively — the
149
+ * plugin syncs its own self-contained i18n instance to it. */
150
+ localeTag: () => string;
151
+ /** The host's "general" role id, for chats seeded without a specific role. */
152
+ generalRoleId: string;
153
+ /** The host's "personal" role id (the feed-add chat seeds into it). */
154
+ personalRoleId: string;
155
+ /** Remove a pinned launcher shortcut for a 404'd collection/feed
156
+ * (`useShortcuts().unpin`). */
157
+ unpin: (kind: "collection" | "feed", slug: string) => Promise<boolean>;
158
+ /** Active-notification severity per record id, for accenting flagged rows/cards
159
+ * (`collectionNotifiedSeverities` over the host's live notifier entries). */
160
+ notifiedSeverities: (slug: string) => Map<string, CollectionNotifySeverity>;
161
+ /** The host's pin/unpin toggle (couples to the host's shortcut store + is
162
+ * shared with other host views), rendered in the View header via
163
+ * `<component :is>`. Props: `kind`, `slug`, `title`, `icon`. */
164
+ pinToggle: Component;
165
+ }
166
+ /** Wire the collection view layer to a host. Call once at app startup. */
167
+ export declare function configureCollectionUi(capabilities: CollectionUi): void;
168
+ export declare function collectionUi(): CollectionUi;
169
+ //# sourceMappingURL=uiContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uiContext.d.ts","sourceRoot":"","sources":["../../src/vue/uiContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type ComputedRef, type Ref } from "vue";
2
+ import type { CollectionDetail, CollectionItem, CollectionSchema, CollectionFieldSpec as FieldSpec, CollectionFieldType as FieldType } from "../core/schema";
3
+ import type { EmbedCache, EmbedView, RefCache, RefOption, RefRecordCache } from "../core/uiTypes";
4
+ export interface CollectionRendering {
5
+ refCache: Ref<RefCache>;
6
+ refRecordCache: Ref<RefRecordCache>;
7
+ embedCache: Ref<EmbedCache>;
8
+ resetLinkedCaches: () => void;
9
+ loadLinkedCollections: (schema: CollectionSchema, expectedSlug: string) => Promise<void>;
10
+ refDisplay: (targetSlug: string, itemSlug: string) => string;
11
+ refOptions: (targetSlug: string) => RefOption[];
12
+ embedViews: ComputedRef<Record<string, EmbedView>>;
13
+ resolveCurrency: (field: FieldSpec, record: CollectionItem | null | undefined) => string | undefined;
14
+ currencySymbol: (currency: string | undefined) => string;
15
+ formatMoney: (value: unknown, currency: string | undefined, displayLocale: string) => string;
16
+ formatCell: (value: unknown, type: FieldType) => string;
17
+ detailText: (value: unknown) => string;
18
+ isExternalUrl: (value: unknown) => boolean;
19
+ artifactUrl: (value: unknown) => string | null;
20
+ fileRoutePath: (value: unknown) => string | null;
21
+ tableRows: (value: unknown) => Record<string, unknown>[];
22
+ hasTableRows: (value: unknown) => boolean;
23
+ formatSubCell: (subField: FieldSpec, value: unknown, record: CollectionItem | null) => string;
24
+ inputTypeFor: (type: FieldType) => string;
25
+ deriveAll: (schema: CollectionSchema, base: CollectionItem, refRecords: RefRecordCache) => CollectionItem;
26
+ evaluateDerivedAgainstItem: (field: FieldSpec, fieldKey: string, item: CollectionItem) => number | null;
27
+ derivedDisplay: (field: FieldSpec, computedValue: unknown, record: CollectionItem | null) => string;
28
+ }
29
+ export declare function useCollectionRendering(collection: Ref<CollectionDetail | null>, locale: Ref<string>): CollectionRendering;
30
+ //# sourceMappingURL=useCollectionRendering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCollectionRendering.d.ts","sourceRoot":"","sources":["../../src/vue/useCollectionRendering.ts"],"names":[],"mappings":"AASA,OAAO,EAAiB,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAGhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,IAAI,SAAS,EAAE,mBAAmB,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7J,OAAO,KAAK,EAEV,UAAU,EAEV,SAAS,EACT,QAAQ,EAER,SAAS,EACT,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,cAAc,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IAC5B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,qBAAqB,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACzF,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7D,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAChD,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACnD,eAAe,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;IACrG,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,aAAa,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7F,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;IACxD,UAAU,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACvC,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC3C,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,IAAI,CAAC;IACjD,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACzD,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAC1C,aAAa,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC;IAC9F,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;IAC1C,SAAS,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,KAAK,cAAc,CAAC;IAC1G,0BAA0B,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,KAAK,MAAM,GAAG,IAAI,CAAC;IACxG,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,KAAK,MAAM,CAAC;CACrG;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,mBAAmB,CAiRzH"}