studiograph 1.3.48-next.48 → 1.3.48-next.49

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 (193) hide show
  1. package/dist/agent/followups.d.ts +34 -0
  2. package/dist/agent/followups.js +52 -0
  3. package/dist/agent/followups.js.map +1 -0
  4. package/dist/agent/orchestrator.js +1 -1
  5. package/dist/agent/orchestrator.js.map +1 -1
  6. package/dist/agent/skill-loader.js +3 -1
  7. package/dist/agent/skill-loader.js.map +1 -1
  8. package/dist/agent/tools/graph-tools.js +35 -9
  9. package/dist/agent/tools/graph-tools.js.map +1 -1
  10. package/dist/agent/tools/message-tools.d.ts +2 -1
  11. package/dist/agent/tools/message-tools.js +8 -6
  12. package/dist/agent/tools/message-tools.js.map +1 -1
  13. package/dist/cli/commands/start.js +122 -45
  14. package/dist/cli/commands/start.js.map +1 -1
  15. package/dist/core/graph.js +14 -4
  16. package/dist/core/graph.js.map +1 -1
  17. package/dist/mcp/tools.js +11 -11
  18. package/dist/mcp/tools.js.map +1 -1
  19. package/dist/server/chrome/chrome.js +17 -1
  20. package/dist/server/index.js +2 -2
  21. package/dist/server/index.js.map +1 -1
  22. package/dist/server/routes/asset-api.js +46 -34
  23. package/dist/server/routes/asset-api.js.map +1 -1
  24. package/dist/server/routes/auth-api.js +91 -2
  25. package/dist/server/routes/auth-api.js.map +1 -1
  26. package/dist/server/routes/chat.js +4 -12
  27. package/dist/server/routes/chat.js.map +1 -1
  28. package/dist/server/routes/git-http.js +10 -16
  29. package/dist/server/routes/git-http.js.map +1 -1
  30. package/dist/server/routes/graph-api.js +80 -28
  31. package/dist/server/routes/graph-api.js.map +1 -1
  32. package/dist/server/routes/insights-api.js +6 -4
  33. package/dist/server/routes/insights-api.js.map +1 -1
  34. package/dist/server/routes/meeting-ingest-api.js +14 -1
  35. package/dist/server/routes/meeting-ingest-api.js.map +1 -1
  36. package/dist/server/routes/messages-api.js +15 -13
  37. package/dist/server/routes/messages-api.js.map +1 -1
  38. package/dist/server/routes/permissions-api.d.ts +5 -4
  39. package/dist/server/routes/permissions-api.js +14 -14
  40. package/dist/server/routes/permissions-api.js.map +1 -1
  41. package/dist/server/routes/workspace-api.d.ts +2 -1
  42. package/dist/server/routes/workspace-api.js +17 -1
  43. package/dist/server/routes/workspace-api.js.map +1 -1
  44. package/dist/server/routes/ws.d.ts +2 -1
  45. package/dist/server/routes/ws.js +52 -9
  46. package/dist/server/routes/ws.js.map +1 -1
  47. package/dist/server/yjs-manager.js +37 -0
  48. package/dist/server/yjs-manager.js.map +1 -1
  49. package/dist/services/access-control.d.ts +7 -3
  50. package/dist/services/access-control.js +30 -3
  51. package/dist/services/access-control.js.map +1 -1
  52. package/dist/services/auth-service.d.ts +16 -0
  53. package/dist/services/auth-service.js +45 -5
  54. package/dist/services/auth-service.js.map +1 -1
  55. package/dist/services/personal-folder.d.ts +25 -0
  56. package/dist/services/personal-folder.js +70 -0
  57. package/dist/services/personal-folder.js.map +1 -1
  58. package/dist/web/_app/immutable/assets/0.D03EHRDg.css +1 -0
  59. package/dist/web/_app/immutable/assets/11.VuZ0yuu4.css +1 -0
  60. package/dist/web/_app/immutable/assets/12.CBEP3aNg.css +1 -0
  61. package/dist/web/_app/immutable/assets/2.aJMJyx3M.css +1 -0
  62. package/dist/web/_app/immutable/assets/3.BbA-zR0F.css +1 -0
  63. package/dist/web/_app/immutable/assets/{4.Bw-eH9Xv.css → 4.BsFe8Ecx.css} +1 -1
  64. package/dist/web/_app/immutable/assets/ChevronLeft.DJHXltBB.css +1 -0
  65. package/dist/web/_app/immutable/assets/StopFilledAlt.kEJgOmBk.css +1 -0
  66. package/dist/web/_app/immutable/assets/ViewToolbar.CV6Us0fJ.css +1 -0
  67. package/dist/web/_app/immutable/assets/WorkspaceView.CFKNfZSY.css +1 -0
  68. package/dist/web/_app/immutable/chunks/{BJVJpWzz.js → 24nU6DRU.js} +1 -1
  69. package/dist/web/_app/immutable/chunks/B24A6jAy.js +6 -0
  70. package/dist/web/_app/immutable/chunks/B8CgkcYZ.js +1 -0
  71. package/dist/web/_app/immutable/chunks/{Bw_Pp-Pz.js → B9qwNmSf.js} +1 -1
  72. package/dist/web/_app/immutable/chunks/BXIcKgYy.js +1 -0
  73. package/dist/web/_app/immutable/chunks/{C7PgRgxX.js → BiMb3uU3.js} +1 -1
  74. package/dist/web/_app/immutable/chunks/C-KRPd1f.js +1 -0
  75. package/dist/web/_app/immutable/chunks/{Ckiai0LF.js → C3QX_pgn.js} +2 -2
  76. package/dist/web/_app/immutable/chunks/C3rmQoP5.js +4 -0
  77. package/dist/web/_app/immutable/chunks/C6NT3aAi.js +2 -0
  78. package/dist/web/_app/immutable/chunks/CBFBKav7.js +1 -0
  79. package/dist/web/_app/immutable/chunks/CH1XwVFs.js +5 -0
  80. package/dist/web/_app/immutable/chunks/{BCJtO6Up.js → CKD7VXBr.js} +1 -1
  81. package/dist/web/_app/immutable/chunks/CLJcKDW0.js +1 -0
  82. package/dist/web/_app/immutable/chunks/CS21N7mS.js +2 -0
  83. package/dist/web/_app/immutable/chunks/CawK5k-Y.js +13 -0
  84. package/dist/web/_app/immutable/chunks/CbhBH-Pr.js +1 -0
  85. package/dist/web/_app/immutable/chunks/CdRP-PQd.js +1 -0
  86. package/dist/web/_app/immutable/chunks/CgtGEUwG.js +1 -0
  87. package/dist/web/_app/immutable/chunks/{Bz0ZjVQE.js → ChqmDGF0.js} +1 -1
  88. package/dist/web/_app/immutable/chunks/CjyOT5ru.js +1 -0
  89. package/dist/web/_app/immutable/chunks/Cm3t5Lw_.js +1 -0
  90. package/dist/web/_app/immutable/chunks/Cq78Q8ao.js +1 -0
  91. package/dist/web/_app/immutable/chunks/CqJvlJ5e.js +1 -0
  92. package/dist/web/_app/immutable/chunks/D-eQH68P.js +1 -0
  93. package/dist/web/_app/immutable/chunks/D6uxAoMD.js +1 -0
  94. package/dist/web/_app/immutable/chunks/{UPEqhJHW.js → D78L3NHT.js} +1 -1
  95. package/dist/web/_app/immutable/chunks/D8l98jpc.js +1 -0
  96. package/dist/web/_app/immutable/chunks/D98nKNS8.js +5 -0
  97. package/dist/web/_app/immutable/chunks/{oIb8yPFh.js → DBrWPzSo.js} +4 -4
  98. package/dist/web/_app/immutable/chunks/DHBDhuM5.js +1 -0
  99. package/dist/web/_app/immutable/chunks/DHZ8iEPd.js +1 -0
  100. package/dist/web/_app/immutable/chunks/DODkJf9W.js +1 -0
  101. package/dist/web/_app/immutable/chunks/DZynkbIh.js +1 -0
  102. package/dist/web/_app/immutable/chunks/Dc-pYwK_.js +1 -0
  103. package/dist/web/_app/immutable/chunks/DiVMY2ie.js +1 -0
  104. package/dist/web/_app/immutable/chunks/DjYhk3V-.js +1 -0
  105. package/dist/web/_app/immutable/chunks/Dk4o-8uR.js +1 -0
  106. package/dist/web/_app/immutable/chunks/QvIJHVST.js +1 -0
  107. package/dist/web/_app/immutable/chunks/VHoDNwgF.js +1 -0
  108. package/dist/web/_app/immutable/chunks/{gZfO0DkI.js → _LqPzIoq.js} +1 -1
  109. package/dist/web/_app/immutable/chunks/{BDtxhI5r.js → _rGNAZ2T.js} +1 -1
  110. package/dist/web/_app/immutable/chunks/bBh4-vdc.js +1 -0
  111. package/dist/web/_app/immutable/chunks/iRhbt-db.js +2 -0
  112. package/dist/web/_app/immutable/chunks/ouoe_5n-.js +3 -0
  113. package/dist/web/_app/immutable/chunks/xUpz_Ego.js +1 -0
  114. package/dist/web/_app/immutable/entry/app.tgSpN2zy.js +2 -0
  115. package/dist/web/_app/immutable/entry/start.CYDu1-na.js +1 -0
  116. package/dist/web/_app/immutable/nodes/0.O_BpuEVv.js +2 -0
  117. package/dist/web/_app/immutable/nodes/1.BCH0rc1N.js +1 -0
  118. package/dist/web/_app/immutable/nodes/10.BdAZrtUP.js +1 -0
  119. package/dist/web/_app/immutable/nodes/11.Dh4nuff7.js +1 -0
  120. package/dist/web/_app/immutable/nodes/12.DRrTb8yT.js +1 -0
  121. package/dist/web/_app/immutable/nodes/2.DhSERXR4.js +268 -0
  122. package/dist/web/_app/immutable/nodes/3.CEgK5MQt.js +5 -0
  123. package/dist/web/_app/immutable/nodes/4.BKj4xQOT.js +11 -0
  124. package/dist/web/_app/immutable/nodes/5.Be1XlKLD.js +1 -0
  125. package/dist/web/_app/immutable/nodes/6.Cen-Be5t.js +1 -0
  126. package/dist/web/_app/immutable/nodes/7.BiEGRqIm.js +1 -0
  127. package/dist/web/_app/immutable/nodes/8.Be00K7Ga.js +1 -0
  128. package/dist/web/_app/immutable/nodes/9.CnZz8P2s.js +1 -0
  129. package/dist/web/_app/version.json +1 -1
  130. package/dist/web/favicon.png +0 -0
  131. package/dist/web/index.html +12 -12
  132. package/package.json +1 -1
  133. package/dist/web/_app/immutable/assets/0.C5UfMb0y.css +0 -1
  134. package/dist/web/_app/immutable/assets/11.BysgAqqA.css +0 -1
  135. package/dist/web/_app/immutable/assets/12.Cv7_3lm3.css +0 -1
  136. package/dist/web/_app/immutable/assets/2.DF2alPoJ.css +0 -1
  137. package/dist/web/_app/immutable/assets/3.K3A_7PML.css +0 -1
  138. package/dist/web/_app/immutable/assets/ChevronLeft.DkKx6zzU.css +0 -1
  139. package/dist/web/_app/immutable/assets/ViewToolbar.SyuJrtFp.css +0 -1
  140. package/dist/web/_app/immutable/assets/WorkspaceView.CFCGULVf.css +0 -1
  141. package/dist/web/_app/immutable/chunks/B-8WiidI.js +0 -1
  142. package/dist/web/_app/immutable/chunks/B0UhiMeL.js +0 -1
  143. package/dist/web/_app/immutable/chunks/B1f42VKu.js +0 -1
  144. package/dist/web/_app/immutable/chunks/B584Plw_.js +0 -2
  145. package/dist/web/_app/immutable/chunks/B9rnDSMy.js +0 -1
  146. package/dist/web/_app/immutable/chunks/BK42PcDI.js +0 -1
  147. package/dist/web/_app/immutable/chunks/BMB60CtO.js +0 -1
  148. package/dist/web/_app/immutable/chunks/BQiOMhgK.js +0 -1
  149. package/dist/web/_app/immutable/chunks/BT1EtT-T.js +0 -4
  150. package/dist/web/_app/immutable/chunks/BUzEKAuP.js +0 -1
  151. package/dist/web/_app/immutable/chunks/BVXp0xQD.js +0 -1
  152. package/dist/web/_app/immutable/chunks/BaMdMBD6.js +0 -1
  153. package/dist/web/_app/immutable/chunks/Bjbdko8J.js +0 -1
  154. package/dist/web/_app/immutable/chunks/BvVwTRB5.js +0 -1
  155. package/dist/web/_app/immutable/chunks/CBiBLuiK.js +0 -1
  156. package/dist/web/_app/immutable/chunks/CH2ArZqX.js +0 -18
  157. package/dist/web/_app/immutable/chunks/COSWCWJc.js +0 -1
  158. package/dist/web/_app/immutable/chunks/CTh3LGxI.js +0 -1
  159. package/dist/web/_app/immutable/chunks/CVWN0my4.js +0 -5
  160. package/dist/web/_app/immutable/chunks/CXKVCl01.js +0 -2
  161. package/dist/web/_app/immutable/chunks/Ca1DAtQh.js +0 -2
  162. package/dist/web/_app/immutable/chunks/CcmvIPLE.js +0 -1
  163. package/dist/web/_app/immutable/chunks/CdbeIqEu.js +0 -1
  164. package/dist/web/_app/immutable/chunks/ChL9MLYT.js +0 -1
  165. package/dist/web/_app/immutable/chunks/CmQUXR-Q.js +0 -1
  166. package/dist/web/_app/immutable/chunks/D3dgfs75.js +0 -1
  167. package/dist/web/_app/immutable/chunks/D4zk90z_.js +0 -1
  168. package/dist/web/_app/immutable/chunks/DFYOFE3o.js +0 -1
  169. package/dist/web/_app/immutable/chunks/DGvzULxd.js +0 -2
  170. package/dist/web/_app/immutable/chunks/DXlELvfC.js +0 -1
  171. package/dist/web/_app/immutable/chunks/DckX78C-.js +0 -1
  172. package/dist/web/_app/immutable/chunks/Derf2KR0.js +0 -1
  173. package/dist/web/_app/immutable/chunks/IWO0A1w9.js +0 -1
  174. package/dist/web/_app/immutable/chunks/PHw7Ht7D.js +0 -1
  175. package/dist/web/_app/immutable/chunks/QtcHHeRi.js +0 -1
  176. package/dist/web/_app/immutable/chunks/_FGjjD9P.js +0 -1
  177. package/dist/web/_app/immutable/chunks/hXfpX92g.js +0 -1
  178. package/dist/web/_app/immutable/chunks/xNAOqGHi.js +0 -3
  179. package/dist/web/_app/immutable/entry/app.DZZk9FhL.js +0 -2
  180. package/dist/web/_app/immutable/entry/start.7xpU_KlK.js +0 -1
  181. package/dist/web/_app/immutable/nodes/0.BoP7EznM.js +0 -2
  182. package/dist/web/_app/immutable/nodes/1.D88C7B3J.js +0 -1
  183. package/dist/web/_app/immutable/nodes/10.-ZvCdP8I.js +0 -1
  184. package/dist/web/_app/immutable/nodes/11.BykVkP_y.js +0 -1
  185. package/dist/web/_app/immutable/nodes/12.D3wEsz-7.js +0 -1
  186. package/dist/web/_app/immutable/nodes/2.CIsXawC1.js +0 -266
  187. package/dist/web/_app/immutable/nodes/3.gLLCp7pi.js +0 -5
  188. package/dist/web/_app/immutable/nodes/4.DBRtBuw0.js +0 -11
  189. package/dist/web/_app/immutable/nodes/5.Cl_maDlW.js +0 -1
  190. package/dist/web/_app/immutable/nodes/6.BcAq3XZ9.js +0 -1
  191. package/dist/web/_app/immutable/nodes/7.BkUvTb7i.js +0 -1
  192. package/dist/web/_app/immutable/nodes/8.C1Hsaxzw.js +0 -1
  193. package/dist/web/_app/immutable/nodes/9.SeWvoOCo.js +0 -1
@@ -16,7 +16,12 @@ function reqGitUser(req) {
16
16
  const user = req.user;
17
17
  if (!user)
18
18
  return undefined;
19
- return { id: String(user.id), name: user.displayName, email: user.email };
19
+ // Use handle (a stable, human-readable, email-free slug) as the identity
20
+ // for created_by / updated_by frontmatter and as the git author. Real
21
+ // emails would land in committed entity content + git history, where
22
+ // they're hard to scrub later — handle keeps the audit trail readable
23
+ // ("christian-marc-schmidt") without the PII exposure.
24
+ return { id: user.handle, name: user.displayName, email: `${user.handle}@studiograph.local` };
20
25
  }
21
26
  /**
22
27
  * Thin Fastify-aware wrappers around the framework-free helpers in
@@ -30,10 +35,10 @@ function getAccessibleRepos(req, workspaceManager, authService) {
30
35
  return access.getAccessibleRepos(reqUser(req), workspaceManager, authService);
31
36
  }
32
37
  function hasRepoAccess(req, repoName, workspaceManager, authService) {
33
- return access.hasRepoAccess(reqUser(req), repoName, authService);
38
+ return access.hasRepoAccess(reqUser(req), repoName, workspaceManager, authService);
34
39
  }
35
- function isFolderAdminOrOwner(req, repoName, authService) {
36
- return access.isFolderAdminOrOwner(reqUser(req), repoName, authService);
40
+ function isFolderAdminOrOwner(req, repoName, workspaceManager, authService) {
41
+ return access.isFolderAdminOrOwner(reqUser(req), repoName, workspaceManager, authService);
37
42
  }
38
43
  function getAccessibleEntityIds(req, workspaceManager, authService) {
39
44
  return access.getAccessibleEntityIds(reqUser(req), workspaceManager, authService);
@@ -57,7 +62,7 @@ function checkEagerSkillPermission(req, entityType, data, repoName, workspaceMan
57
62
  const personalRepo = workspaceManager.getUserPersonalRepo(user.id);
58
63
  if (personalRepo && personalRepo.name === repoName)
59
64
  return null;
60
- if (isFolderAdminOrOwner(req, repoName, authService))
65
+ if (isFolderAdminOrOwner(req, repoName, workspaceManager, authService))
61
66
  return null;
62
67
  return 'Creating an eager skill in a shared folder requires folder admin or workspace owner. Save this skill to your personal folder or set loading to "on-demand".';
63
68
  }
@@ -85,7 +90,7 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
85
90
  });
86
91
  // DELETE /api/repos/:repo — folder admin or workspace owner only.
87
92
  fastify.delete('/api/repos/:repo', async (req, reply) => {
88
- if (!isFolderAdminOrOwner(req, req.params.repo, authService)) {
93
+ if (!isFolderAdminOrOwner(req, req.params.repo, workspaceManager, authService)) {
89
94
  return reply.status(403).send({ error: 'Folder admin access required' });
90
95
  }
91
96
  const { repo } = req.params;
@@ -121,7 +126,7 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
121
126
  });
122
127
  // PATCH /api/repos/:repo — rename/update sync rules. Folder admin or workspace owner only.
123
128
  fastify.patch('/api/repos/:repo', async (req, reply) => {
124
- if (!isFolderAdminOrOwner(req, req.params.repo, authService)) {
129
+ if (!isFolderAdminOrOwner(req, req.params.repo, workspaceManager, authService)) {
125
130
  return reply.status(403).send({ error: 'Folder admin access required' });
126
131
  }
127
132
  const { repo } = req.params;
@@ -240,6 +245,30 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
240
245
  });
241
246
  return reply.send(result);
242
247
  });
248
+ // Build the lightweight summary objects used by /entities?summary=true.
249
+ // Extracted so the per-repo and bulk endpoints share the same shape.
250
+ const EXCLUDED_SUMMARY_FIELDS = new Set([
251
+ 'entity_type', 'entity_id', 'created_by', 'updated_by',
252
+ 'description', 'content', 'context', 'rationale', 'alternatives', 'consequences',
253
+ 'steps', 'guidelines', 'bio', 'agenda', 'summary', 'decision', 'action_items',
254
+ ]);
255
+ function buildSummaries(entities, accessibleIds) {
256
+ return entities.map(e => {
257
+ const extra = Object.fromEntries(Object.entries(e.data ?? {}).filter(([k, v]) => !EXCLUDED_SUMMARY_FIELDS.has(k) && k !== 'name' && k !== 'created_at' && k !== 'updated_at' &&
258
+ (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || Array.isArray(v) || v instanceof Date)));
259
+ return {
260
+ id: e.id,
261
+ entityType: e.entityType,
262
+ data: {
263
+ name: e.data.name,
264
+ created_at: e.data.created_at,
265
+ updated_at: e.data.updated_at,
266
+ ...extra,
267
+ },
268
+ document: { wikilinks: filterWikilinks(e.document?.wikilinks ?? [], accessibleIds) },
269
+ };
270
+ });
271
+ }
243
272
  // GET /api/repos/:repo/entities — list all entities in a repo
244
273
  // ?summary=true returns lightweight objects (no content, minimal data) for sidebar/graph
245
274
  fastify.get('/api/repos/:repo/entities', async (req, reply) => {
@@ -257,27 +286,7 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
257
286
  const entities = graph.search({});
258
287
  const accessibleIds = getAccessibleEntityIds(req, workspaceManager, authService);
259
288
  if (req.query.summary === 'true') {
260
- const EXCLUDED_SUMMARY_FIELDS = new Set([
261
- 'entity_type', 'entity_id', 'created_by', 'updated_by',
262
- 'description', 'content', 'context', 'rationale', 'alternatives', 'consequences',
263
- 'steps', 'guidelines', 'bio', 'agenda', 'summary', 'decision', 'action_items',
264
- ]);
265
- const summaries = entities.map(e => {
266
- const extra = Object.fromEntries(Object.entries(e.data ?? {}).filter(([k, v]) => !EXCLUDED_SUMMARY_FIELDS.has(k) && k !== 'name' && k !== 'created_at' && k !== 'updated_at' &&
267
- (typeof v === 'string' || typeof v === 'number' || typeof v === 'boolean' || Array.isArray(v) || v instanceof Date)));
268
- return {
269
- id: e.id,
270
- entityType: e.entityType,
271
- data: {
272
- name: e.data.name,
273
- created_at: e.data.created_at,
274
- updated_at: e.data.updated_at,
275
- ...extra,
276
- },
277
- document: { wikilinks: filterWikilinks(e.document?.wikilinks ?? [], accessibleIds) },
278
- };
279
- });
280
- return reply.send(summaries);
289
+ return reply.send(buildSummaries(entities, accessibleIds));
281
290
  }
282
291
  // Full response — filter wikilinks in document
283
292
  const filtered = entities.map(e => {
@@ -287,6 +296,49 @@ export async function registerGraphApiRoutes(fastify, workspaceManager, authServ
287
296
  });
288
297
  return reply.send(filtered);
289
298
  });
299
+ // GET /api/workspace/entities?summary=true — bulk entity summaries for ALL
300
+ // accessible repos in a single round-trip. Replaces 15+ parallel
301
+ // /api/repos/:repo/entities?summary=true calls. Important on dev where each
302
+ // request has Vite middleware overhead and the browser's HTTP/1.1 6-slot
303
+ // limit serializes them, blocking other navigation fetches.
304
+ // Response shape: `{ [repoName]: EntitySummary[] }`.
305
+ fastify.get('/api/workspace/entities', async (req, reply) => {
306
+ // Mirror the per-repo endpoint's contract: only summary=true is supported
307
+ // here. Returning full bodies for the whole workspace would be huge and
308
+ // isn't a use case we have today.
309
+ if (req.query.summary !== 'true') {
310
+ return reply.status(400).send({ error: 'summary=true is required for the bulk entities endpoint' });
311
+ }
312
+ const repos = getAccessibleRepos(req, workspaceManager, authService);
313
+ // Single-pass: collect the per-repo entity arrays AND the accessible-ids
314
+ // set in one walk. The previous shape called graph.search({}) twice per
315
+ // repo (once via getAccessibleEntityIds, once in this loop), doubling
316
+ // disk I/O on the most-trafficked endpoint.
317
+ const user = reqUser(req);
318
+ const collectIds = user !== undefined; // unauthenticated → no wikilink filtering
319
+ const accessibleIds = collectIds ? new Set() : null;
320
+ const perRepoEntities = [];
321
+ for (const r of repos) {
322
+ let graph;
323
+ try {
324
+ graph = workspaceManager.getGraph(r.name);
325
+ }
326
+ catch {
327
+ continue;
328
+ } // skip unmounted repos rather than failing the whole request
329
+ const entities = graph.search({});
330
+ perRepoEntities.push({ name: r.name, entities });
331
+ if (accessibleIds) {
332
+ for (const e of entities)
333
+ accessibleIds.add(e.id);
334
+ }
335
+ }
336
+ const result = {};
337
+ for (const { name, entities } of perRepoEntities) {
338
+ result[name] = buildSummaries(entities, accessibleIds);
339
+ }
340
+ return reply.send(result);
341
+ });
290
342
  // GET /api/repos/:repo/entities/:type — list entities of a type
291
343
  fastify.get('/api/repos/:repo/entities/:type', async (req, reply) => {
292
344
  const { repo, type } = req.params;
@@ -1 +1 @@
1
- {"version":3,"file":"graph-api.js","sourceRoot":"","sources":["../../../src/server/routes/graph-api.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAe,gBAAgB,EAAiB,MAAM,gCAAgC,CAAC;AAC9F,OAAO,KAAK,MAAM,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAO5B,gFAAgF;AAChF,SAAS,UAAU,CAAC,GAAmB;IACrC,MAAM,IAAI,GAAI,GAAW,CAAC,IAA4B,CAAC;IACvD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AAC5E,CAAC;AAED;;;;GAIG;AACH,SAAS,OAAO,CAAC,GAAmB;IAClC,OAAQ,GAAW,CAAC,IAA4B,CAAC;AACnD,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAmB,EAAE,gBAAkC,EAAE,WAAwB;IAC3G,OAAO,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;AAChF,CAAC;AAED,SAAS,aAAa,CAAC,GAAmB,EAAE,QAAgB,EAAE,gBAAkC,EAAE,WAAwB;IACxH,OAAO,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,oBAAoB,CAAC,GAAmB,EAAE,QAAgB,EAAE,WAAwB;IAC3F,OAAO,MAAM,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AAC1E,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAmB,EAAE,gBAAkC,EAAE,WAAwB;IAC/G,OAAO,MAAM,CAAC,sBAAsB,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,eAAe,CAAC,SAAmB,EAAE,aAAiC;IAC7E,OAAO,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AAC1D,CAAC;AAED;;;;GAIG;AACH,SAAS,yBAAyB,CAChC,GAAmB,EACnB,UAAkB,EAClB,IAAqC,EACrC,QAAgB,EAChB,gBAAkC,EAClC,WAAwB;IAExB,IAAI,UAAU,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACxC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACnD,MAAM,IAAI,GAAI,GAAW,CAAC,IAA4B,CAAC;IACvD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC,CAAC,sBAAsB;IAC9C,MAAM,YAAY,GAAG,gBAAgB,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,IAAI,YAAY,IAAI,YAAY,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAChE,IAAI,oBAAoB,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,6JAA6J,CAAC;AACvK,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAwB,EACxB,gBAAkC,EAClC,WAAwB,EACxB,KAAa,EACb,cAA+B,EAC/B,UAAuB;IAEvB,gEAAgE;IAChE,4DAA4D;IAC5D,oEAAoE;IACpE,mCAAmC;IACnC,OAAO,CAAC,IAAI,CACV,YAAY,EACZ,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,IAAI,GAAI,GAAW,CAAC,IAA4B,CAAC;QACvD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAS,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,kBAAkB,CACnC,gBAAgB,EAChB,WAAW,EACX,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,EACnC,IAAI,EACJ,KAAK,CACN,CAAC;YACF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IAAI,GAAG,YAAY,mBAAmB,EAAE,CAAC;gBACvC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,GAAG;oBAC9C,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,GAAG;wBAChC,CAAC,CAAC,GAAG,CAAC;gBACR,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAC3D,CAAC;YACD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kEAAkE;IAClE,OAAO,CAAC,MAAM,CACZ,kBAAkB,EAClB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC/D,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;gBACrB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;YACnF,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;YAE1E,qBAAqB;YACrB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAClC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9B,SAAS,CAAC,mBAAmB,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;YAExD,eAAe;YACf,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,gBAAgB,CAAC,YAAY,EAAE,CAAC;YAChC,KAAK,EAAE,SAAS,CAAC;gBACf,IAAI,EAAE,gBAAgB,EAAE,IAAI;gBAC5B,KAAK,EAAG,GAAW,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK;gBAC9C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,2FAA2F;IAC3F,OAAO,CAAC,KAAK,CACX,kBAAkB,EAClB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,IAAI,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAS,CAAC;QACnC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACrF,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+CAA+C,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACnF,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACpG,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,SAAS,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,UAAU,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;YACnF,CAAC;YAED,gBAAgB;YAChB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,EAAE,CAAC;oBAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,OAAO,uBAAuB,EAAE,CAAC,CAAC;gBAC3F,CAAC;gBAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEtC,mBAAmB;gBACnB,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;gBAClE,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBACxB,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC/B,CAAC;gBAED,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC1B,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC;gBAC1B,IAAI,cAAc;oBAAE,UAAU,CAAC,YAAY,GAAG,cAAc,CAAC;gBAE7D,6BAA6B;gBAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;gBACjD,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC3B,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;gBAChF,CAAC;gBAED,4CAA4C;gBAC5C,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,8CAA8C;YAC9C,IAAI,cAAc,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1D,UAAU,CAAC,YAAY,GAAG,cAAc,CAAC;YAC3C,CAAC;YAED,2BAA2B;YAC3B,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC1B,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,CAAC;YAED,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAC9B,SAAS,CAAC,mBAAmB,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;YACxH,gBAAgB,CAAC,YAAY,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mFAAmF;IACnF,yEAAyE;IACzE,yEAAyE;IACzE,wEAAwE;IACxE,yEAAyE;IACzE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7C,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACrE,MAAM,IAAI,GAAI,GAAW,CAAC,IAA4B,CAAC;QACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC7B,MAAM,WAAW,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAChE,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5E,IAAI,WAAW,GAAa,EAAE,CAAC;YAC/B,IAAI,CAAC;gBAAC,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;YAC3G,OAAO,EAAE,GAAG,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;QACjG,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,2EAA2E;IAC3E,0DAA0D;IAC1D,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACrD,MAAM,IAAI,GAAI,GAAW,CAAC,IAA4B,CAAC;QACvD,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACzB,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;YACvD,MAAM,OAAO,GAAI,CAAS,CAAC,QAAQ;gBACjC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAM,CAAS,CAAC,QAAQ,CAAC,EAAE,IAAI;gBAC5D,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;YACpB,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC;gBAAC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,UAAU,CAAC,CAAC;YAC9F,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,YAAY,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI;gBACtC,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,YAAY,EAAE,OAAO,CAAC,MAAM;gBAC5B,WAAW,EAAE,MAAM,CAAC,MAAM;gBAC1B,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI;gBACpG,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;aACzE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,8DAA8D;IAC9D,yFAAyF;IACzF,OAAO,CAAC,GAAG,CACT,2BAA2B,EAC3B,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAClC,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAEjF,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC;gBACtC,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY;gBACtD,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc;gBAChF,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc;aAC9E,CAAC,CAAC;YACH,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAC9B,MAAM,CAAC,OAAO,CAAE,CAAC,CAAC,IAAY,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CACtD,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,YAAY;oBAC3F,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,CACpH,CACF,CAAC;gBACF,OAAO;oBACL,EAAE,EAAE,CAAC,CAAC,EAAE;oBACR,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,IAAI,EAAE;wBACJ,IAAI,EAAG,CAAC,CAAC,IAAY,CAAC,IAAI;wBAC1B,UAAU,EAAG,CAAC,CAAC,IAAY,CAAC,UAAU;wBACtC,UAAU,EAAG,CAAC,CAAC,IAAY,CAAC,UAAU;wBACtC,GAAG,KAAK;qBACT;oBACD,QAAQ,EAAE,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,EAAE,aAAa,CAAC,EAAE;iBACrF,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;QAED,+CAA+C;QAC/C,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAChC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM;gBAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;QAChH,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CACF,CAAC;IAEF,gEAAgE;IAChE,OAAO,CAAC,GAAG,CACT,iCAAiC,EACjC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAkB,EAAE,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAChC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM;gBAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;QAChH,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CACF,CAAC;IAEF,8DAA8D;IAC9D,OAAO,CAAC,GAAG,CACT,qCAAqC,EACrC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,MAAM,CAAC;QACX,IAAI,CAAC;YACH,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAkB,EAAE,EAAE,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,qBAAqB,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;QAED,uEAAuE;QACvE,sEAAsE;QACtE,kDAAkD;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9E,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;YACvC,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;YACjF,OAAO,KAAK,CAAC,IAAI,CAAC;gBAChB,GAAG,MAAM;gBACT,QAAQ,EAAE,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE;aACvG,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;IAEF,0EAA0E;IAC1E,OAAO,CAAC,GAAG,CACT,6CAA6C,EAC7C,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACxE,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QACxE,qDAAqD;QACrD,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,GAAG,CAAC;QACpG,MAAM,QAAQ,GAAG,GAAG,SAAS,IAAI,EAAE,KAAK,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,OAAO,CAAC,GAAG,CACT,gCAAgC,EAChC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CACF,CAAC;IAEF,oEAAoE;IACpE,OAAO,CAAC,GAAG,CAIT,yBAAyB,EACzB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;QAEpC,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC;YAC3B,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,IAA8B;YAC1C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SAC5D,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC/B,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM;gBAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;QAChH,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CACF,CAAC;IAEF,iEAAiE;IACjE,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACrE,MAAM,KAAK,GAAsD,EAAE,CAAC;QACpE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,KAAK,GAA8C,EAAE,CAAC;QAC5D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAEpC,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAElC,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;oBAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;oBACzB,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;wBAAE,SAAS;oBACxD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC3B,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBACtB,KAAK,CAAC,IAAI,CAAC;4BACT,EAAE,EAAE,MAAM;4BACV,IAAI,EAAE,MAAM,CAAC,UAAU;4BACvB,IAAI,EAAE,UAAU,CAAC,IAAI;yBACtB,CAAC,CAAC;oBACL,CAAC;oBAED,6BAA6B;oBAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,SAAS,IAAI,EAAE,CAAC;oBACnD,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;wBAC/B,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;wBAC5E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;4BAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;4BACjB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;wBACzC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,kEAAkE;QAClE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAEzF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,4DAA4D;IAC5D,OAAO,CAAC,GAAG,CAGT,aAAa,EACb,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC;QAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CACxE,CAAC;QAEF,iDAAiD;QACjD,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACxE,IAAI,SAAS,EAAE,CAAC;YACd,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,IAA8B;YAC1C,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,SAAS;SACV,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,sBAAsB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE;YACtC,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,MAAM;gBAAE,OAAO,CAAC,CAAC;YAC7C,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC;QAChH,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC,CACF,CAAC;IAEF,gFAAgF;IAChF,OAAO,CAAC,GAAG,CAIT,qCAAqC,EACrC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,UAAU,GAAG,yBAAyB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAC5G,IAAI,UAAU;YAAE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAErE,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC;YACH,qFAAqF;YACrF,MAAM,iBAAiB,GAAI,GAAG,CAAC,OAAkC,CAAC,qBAAqB,CAAC,CAAC;YACzF,IAAI,iBAAiB,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAkB,EAAE,EAAE,CAAC,CAAC;gBAClD,MAAM,eAAe,GAAI,OAAO,EAAE,IAAgC,EAAE,UAAgC,CAAC;gBACrG,IAAI,eAAe,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;oBAC/E,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+CAA+C,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC7G,CAAC;YACH,CAAC;YAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;gBACjC,UAAU,EAAE,IAAkB;gBAC9B,QAAQ,EAAE,EAAE;gBACZ,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;gBACnB,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO;gBACzB,aAAa,EAAE,UAAU,IAAI,IAAI,EAAE,cAAc;gBACjD,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,CAAC,CAAC,cAAc,EAAE,sCAAsC;aACrE,CAAC,CAAC;YACH,IAAI,cAAc,IAAI,OAAO,EAAE,CAAC;gBAC9B,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAClE,CAAC;YACD,kEAAkE;YAClE,iEAAiE;YACjE,6DAA6D;YAC7D,gEAAgE;YAChE,gEAAgE;YAChE,gEAAgE;YAChE,iEAAiE;YACjE,8DAA8D;YAC9D,KAAK,EAAE,SAAS,CAAC;gBACf,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC9E,KAAK,EAAG,GAAW,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK;gBAC9C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnD,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,wFAAwF;IACxF,OAAO,CAAC,IAAI,CAIV,8BAA8B,EAC9B,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACnE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gDAAgD,EAAE,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC;YACH,yDAAyD;YACzD,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,IAAkB,EAAE,OAAqB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1G,KAAK,EAAE,SAAS,CAAC;gBACf,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC9E,KAAK,EAAG,GAAW,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK;gBAC9C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnD,CAAC,CAAC;YACH,KAAK,EAAE,SAAS,CAAC;gBACf,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;gBACjF,KAAK,EAAG,GAAW,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK;gBAC9C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnD,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,OAAO,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACnE,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,OAAO,CAAC,IAAI,CAIV,yBAAyB,EACzB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QACjE,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC,CAAC;QAC3F,CAAC;QACD,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACzC,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8EAA8E,EAAE,CAAC,CAAC;QAC3H,CAAC;QACD,IAAI,EAAE,KAAK,KAAK,EAAE,CAAC;YACjB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wCAAwC,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,oEAAoE;QACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,qBAAqB,KAAK,+BAA+B,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAC3H,CAAC;QACD,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC;YACH,2EAA2E;YAC3E,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnC,CAAC;YACD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,IAAkB,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YACtF,mEAAmE;YACnE,oEAAoE;YACpE,0BAA0B;YAC1B,MAAM,WAAW,GAAG,uBAAuB,EAAE,WAAW,KAAK,EAAE,CAAC;YAChE,KAAK,MAAM,KAAK,IAAI,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;gBAC3E,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACzD,MAAM,UAAU,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;gBAC5D,CAAC;gBAAC,MAAM,CAAC,CAAC,0BAA0B,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,EAAE,SAAS,CAAC;gBACf,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC9E,KAAK,EAAG,GAAW,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK;gBAC9C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnD,CAAC,CAAC;YACH,KAAK,EAAE,SAAS,CAAC;gBACf,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK;gBACjF,KAAK,EAAG,GAAW,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK;gBAC9C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnD,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7F,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YACnE,OAAO,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC,CACF,CAAC;IAEF,yEAAyE;IACzE,OAAO,CAAC,IAAI,CAIV,2BAA2B,EAC3B,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QACnC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;QAClE,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yDAAyD,EAAE,CAAC,CAAC;QACtG,CAAC;QACD,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,UAAU,kBAAkB,EAAE,CAAC,CAAC;QACzF,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YACnE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,UAAU,kBAAkB,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,IAAI,WAAW,EAAE,WAAW,CAAC;QAC7B,IAAI,CAAC;YACH,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACpD,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC;YACH,sBAAsB;YACtB,IAAI,cAAc;gBAAE,MAAM,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAE3D,qBAAqB;YACrB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,UAAwB,EAAE,QAAQ,CAAC,CAAC;YAEnE,gCAAgC;YAChC,IAAI,CAAC;gBACH,WAAW,CAAC,GAAG,CAAC,UAAwB,EAAE,QAAQ,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,QAAQ,uBAAuB,UAAU,EAAE,EAAE,CAAC,CAAC;YAC5F,CAAC;YAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC;YAElC,mBAAmB;YACnB,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAChC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC,IAA2B,CAAC;YACrF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC;gBACvC,UAAU,EAAE,UAAwB;gBACpC,QAAQ;gBACR,IAAI,EAAE,EAAE,GAAG,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE;gBACrE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,IAAI,EAAE;gBACvC,aAAa,EAAE,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,KAAK,QAAQ,SAAS,UAAU,EAAE;gBACnG,IAAI,EAAE,OAAO;aACd,CAAC,CAAC;YAEH,MAAM,KAAK,GAAI,GAAW,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK,CAAC;YACtD,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAEpC,KAAK,EAAE,SAAS,CAAC;gBACf,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ;gBAChF,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;aACpC,CAAC,CAAC;YAEH,+BAA+B;YAC/B,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,MAAM,WAAW,CAAC,MAAM,CAAC,UAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;gBACjF,KAAK,EAAE,SAAS,CAAC;oBACf,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ;oBAChF,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;iBACpC,CAAC,CAAC;YACL,CAAC;YAED,OAAO,KAAK,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,OAAO;gBACf,MAAM,EAAE,IAAI,UAAU,IAAI,UAAU,IAAI,QAAQ,EAAE;aACnD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,gEAAgE;IAChE,OAAO,CAAC,MAAM,CACZ,qCAAqC,EACrC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QACD,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,MAAM,CAAC,IAAkB,EAAE,EAAE,EAAE,UAAU,IAAI,IAAI,EAAE,cAAc,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAChG,KAAK,EAAE,SAAS,CAAC;gBACf,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC9E,KAAK,EAAG,GAAW,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK;gBAC9C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnD,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,uDAAuD;IACvD,OAAO,CAAC,IAAI,CAIV,2BAA2B,EAC3B,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC;QAEnE,IAAI,CAAC,UAAU,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sCAAsC,EAAE,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,UAAU,GAAG,yBAAyB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,CAAC;QACzG,IAAI,UAAU;YAAE,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;QAErE,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC;gBAChC,UAAU,EAAE,UAAwB;gBACpC,QAAQ;gBACR,IAAI,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE;gBAC/D,OAAO;gBACP,aAAa,EAAE,UAAU,UAAU,IAAI,QAAQ,cAAc;gBAC7D,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC;aACtB,CAAC,CAAC;YACH,KAAK,EAAE,SAAS,CAAC;gBACf,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ;gBACpE,KAAK,EAAG,GAAW,CAAC,IAAI,EAAE,WAAW,IAAI,KAAK;gBAC9C,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACnD,CAAC,CAAC;YACH,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;IACH,CAAC,CACF,CAAC;IAEF,+EAA+E;IAC/E,OAAO,CAAC,IAAI,CACV,yBAAyB,EACzB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1C,CAAC;QACD,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,gBAAgB,IAAI,kBAAkB,EAAE,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACnC,CAAC,CACF,CAAC;IAEF,mEAAmE;IACnE,OAAO,CAAC,IAAI,CACV,yBAAyB,EACzB,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAAuF,CAAC;QACzG,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;QAC1F,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,kCAAkC,CAAC,CAAC;YAC1F,MAAM,OAAO,GAAkF,EAAE,CAAC;YAElG,MAAM,WAAW,GAAG,CAAC,CAAC;YAEtB,KAAK,UAAU,WAAW,CAAC,IAA2C;gBACpE,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACtD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,qBAAqB,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACnG,CAAC;gBAED,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC5D,IAAI,CAAC,IAAI,EAAE,CAAC;wBACV,OAAO,CAAC,IAAI,CAAC,mCAAmC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACjE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,2BAA2B,EAAE,CAAC;oBAC1F,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,MAAM,eAAe,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;oBAE7E,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC;wBACtC,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,cAAc;wBACnB,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;4BAClC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BAClF,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC9D;wBACD,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,kBAAkB,IAAI,CAAC,QAAQ,QAAQ,IAAI,EAAE,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;qBAChI,CAAC,CAAC;oBAEH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;oBAChD,IAAI,UAAU,CAAC,UAAU,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;wBAC1D,OAAO,CAAC,IAAI,CAAC,+BAA+B,IAAI,CAAC,QAAQ,KAAK,UAAU,CAAC,UAAU,IAAI,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;wBACzJ,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,IAAI,yBAAyB,EAAE,CAAC;oBAC7G,CAAC;oBACD,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC;gBACxF,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,mBAAmB,EAAE,CAAC;gBACjG,CAAC;YACH,CAAC;YAED,0CAA0C;YAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC;gBACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC;gBACnD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC/D,OAAO,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;YAChC,CAAC;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,MAAM,CAAC;YACnE,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACnF,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,OAAO;gBACjB,WAAW;gBACX,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,MAAM;gBACzD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAM,CAAC;gBACpE,OAAO;aACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAC5D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CACF,CAAC;IAEF,iGAAiG;IACjG,OAAO,CAAC,IAAI,CACV,mCAAmC,EACnC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2B,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,8BAA8B,EAAE,CAAC,CAAC;QAC3E,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,sBAAsB,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,2CAA2C,CAAC,CAAC;YAE9G,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBAC5B,KAAK,EAAE,4IAA4I;iBACpJ,CAAC,CAAC;YACL,CAAC;YAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YAEhE,6CAA6C;YAC7C,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBAClC,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;oBACzF,GAAG,CAAC,SAAS,CAAC,UAAU,MAAM,CAAC,OAAO,YAAY,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;gBACjH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAC5D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4EAA4E;IAC5E,OAAO,CAAC,IAAI,CACV,gCAAgC,EAChC,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,EAC/B,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,CAAC,EAAE,CAAC;YAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,CAAC,IAA+D,CAAC;QACjF,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/C,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,6CAA6C,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,wCAAwC,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAE3D,6CAA6C;YAC7C,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACvB,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;gBAClC,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,UAAU,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,oBAAoB,EAAE,CAAC;oBACzF,GAAG,CAAC,SAAS,CAAC,UAAU,MAAM,CAAC,OAAO,SAAS,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;gBAC9G,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC5B,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAC5D,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CACF,CAAC;AAEJ,CAAC"}
1
+ {"version":3,"file":"graph-api.js","sourceRoot":"","sources":["../../../src/server/routes/graph-api.ts"],"names":[],"mappings":"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"}
@@ -5,17 +5,19 @@
5
5
  */
6
6
  import { join } from 'path';
7
7
  import { existsSync, readFileSync } from 'fs';
8
+ import * as access from '../../services/access-control.js';
8
9
  import { generateBriefing } from '../../services/briefing.js';
9
10
  function getUserId(req) {
10
11
  return req.user?.id ?? 0;
11
12
  }
12
13
  function getAccessibleRepoNames(req, wm, authService) {
13
- const allRepos = wm.getAllRepoConfigs();
14
14
  const user = req.user;
15
+ // Open mode (no user) keeps the legacy filter that excludes personal folders.
15
16
  if (!user)
16
- return allRepos.filter(r => !r.personal).map(r => r.name);
17
- const allowed = new Set(authService.getUserFolders(user.id));
18
- return allRepos.filter(r => allowed.has(r.name)).map(r => r.name);
17
+ return wm.getAllRepoConfigs().filter(r => !r.personal).map(r => r.name);
18
+ // Authed: delegate to access-control so personal-folder restrictions and
19
+ // owner-on-shared-folder semantics match the HTTP read endpoints.
20
+ return access.getAccessibleRepos(user, wm, authService).map(r => r.name);
19
21
  }
20
22
  export async function registerBriefingApiRoutes(fastify, workspaceManager, authService, workspacePath, wsHub, getTools) {
21
23
  function loadWorkspaceConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"insights-api.js","sourceRoot":"","sources":["../../../src/server/routes/insights-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"insights-api.js","sourceRoot":"","sources":["../../../src/server/routes/insights-api.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  * Thin route that accepts Chrome extension payloads and delegates
8
8
  * to the source-agnostic MeetingProcessor.
9
9
  */
10
+ import * as access from '../../services/access-control.js';
10
11
  import { MeetingProcessor } from '../../services/meeting-processor.js';
11
12
  import { isFeatureEnabled } from '../../core/features.js';
12
13
  // ── Adapter: transform Chrome payload → common MeetingPayload ─────────
@@ -39,7 +40,8 @@ function reqGitUser(req) {
39
40
  const user = req.user;
40
41
  if (!user)
41
42
  return undefined;
42
- return { id: String(user.id), name: user.displayName, email: user.email };
43
+ // Use email as id (see graph-api.ts reqGitUser for rationale).
44
+ return { id: user.email, name: user.displayName, email: user.email };
43
45
  }
44
46
  // ── Route Registration ────────────────────────────────────────────────
45
47
  export async function registerMeetingIngestRoutes(fastify, workspaceManager, authService, wsHub, yjsManager) {
@@ -51,6 +53,13 @@ export async function registerMeetingIngestRoutes(fastify, workspaceManager, aut
51
53
  }
52
54
  const { repo } = req.params;
53
55
  const body = req.body;
56
+ // Access gate: ingest writes to disk + invokes LLM, both as the
57
+ // calling user. Without this, any authenticated user could inject
58
+ // meetings into a folder they don't have access to.
59
+ const user = req.user;
60
+ if (!access.canWriteRepo(user, repo, workspaceManager, authService)) {
61
+ return reply.status(404).send({ error: `Folder "${repo}" not found` });
62
+ }
54
63
  try {
55
64
  workspaceManager.getGraph(repo);
56
65
  }
@@ -95,6 +104,10 @@ export async function registerMeetingIngestRoutes(fastify, workspaceManager, aut
95
104
  return reply.status(403).send({ error: 'Meeting capture is disabled for this workspace' });
96
105
  }
97
106
  const { repo, entityId } = req.params;
107
+ const user = req.user;
108
+ if (!access.hasRepoAccess(user, repo, workspaceManager, authService)) {
109
+ return reply.status(404).send({ error: `Folder "${repo}" not found` });
110
+ }
98
111
  try {
99
112
  const graph = workspaceManager.getGraph(repo);
100
113
  const entity = graph.get('meeting', entityId);
@@ -1 +1 @@
1
- {"version":3,"file":"meeting-ingest-api.js","sourceRoot":"","sources":["../../../src/server/routes/meeting-ingest-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"meeting-ingest-api.js","sourceRoot":"","sources":["../../../src/server/routes/meeting-ingest-api.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * Auth: checks folder access via authService, admin/owner bypass.
6
6
  * @agent mentions trigger async agent invocation in the folder thread.
7
7
  */
8
+ import * as access from '../../services/access-control.js';
8
9
  const AGENT_MENTION_RE = /@agent\b/i;
9
10
  const USER_MENTION_RE = /@([a-z0-9]+)/gi;
10
11
  /** Convert a display name to a mention handle: "Kenton Powell" → "kentonpowell" */
@@ -31,12 +32,12 @@ function detectUserMentions(content, users, senderId) {
31
32
  }
32
33
  return result;
33
34
  }
34
- /** Check if the current user can access a specific folder. */
35
- function hasFolderAccess(req, folder, authService) {
35
+ /** Check if the current user can access a specific folder. Delegates to the
36
+ * shared access-control helper so personal-folder restrictions and
37
+ * workspace-owner-on-shared-folder semantics match the rest of the API. */
38
+ function hasFolderAccess(req, folder, workspaceManager, authService) {
36
39
  const user = req.user;
37
- if (!user)
38
- return true; // API key / open mode
39
- return authService.getUserFolders(user.id).includes(folder);
40
+ return access.hasRepoAccess(user, folder, workspaceManager, authService);
40
41
  }
41
42
  /**
42
43
  * Build conversation context for an @agent invocation.
@@ -215,7 +216,7 @@ export async function registerMessagesApiRoutes(fastify, messageService, authSer
215
216
  if (!workspaceManager.getRepoConfig(folder)) {
216
217
  return reply.status(404).send({ error: `Folder "${folder}" not found` });
217
218
  }
218
- if (!hasFolderAccess(req, folder, authService)) {
219
+ if (!hasFolderAccess(req, folder, workspaceManager, authService)) {
219
220
  return reply.status(403).send({ error: 'Access denied' });
220
221
  }
221
222
  const before = req.query.before ? parseInt(req.query.before, 10) : undefined;
@@ -230,7 +231,7 @@ export async function registerMessagesApiRoutes(fastify, messageService, authSer
230
231
  if (!workspaceManager.getRepoConfig(folder)) {
231
232
  return reply.status(404).send({ error: `Folder "${folder}" not found` });
232
233
  }
233
- if (!hasFolderAccess(req, folder, authService)) {
234
+ if (!hasFolderAccess(req, folder, workspaceManager, authService)) {
234
235
  return reply.status(403).send({ error: 'Access denied' });
235
236
  }
236
237
  const { content, replyToMessageId } = req.body || {};
@@ -270,7 +271,7 @@ export async function registerMessagesApiRoutes(fastify, messageService, authSer
270
271
  if (!workspaceManager.getRepoConfig(folder)) {
271
272
  return reply.status(404).send({ error: `Folder "${folder}" not found` });
272
273
  }
273
- if (!hasFolderAccess(req, folder, authService)) {
274
+ if (!hasFolderAccess(req, folder, workspaceManager, authService)) {
274
275
  return reply.status(403).send({ error: 'Access denied' });
275
276
  }
276
277
  if (!agent) {
@@ -457,7 +458,7 @@ export async function registerMessagesApiRoutes(fastify, messageService, authSer
457
458
  if (!workspaceManager.getRepoConfig(folder)) {
458
459
  return reply.status(404).send({ error: `Folder "${folder}" not found` });
459
460
  }
460
- if (!hasFolderAccess(req, folder, authService)) {
461
+ if (!hasFolderAccess(req, folder, workspaceManager, authService)) {
461
462
  return reply.status(403).send({ error: 'Access denied' });
462
463
  }
463
464
  const { entityType, entityId, messageId } = req.body || {};
@@ -486,7 +487,7 @@ export async function registerMessagesApiRoutes(fastify, messageService, authSer
486
487
  if (!workspaceManager.getRepoConfig(repo)) {
487
488
  return reply.status(404).send({ error: `Folder "${repo}" not found` });
488
489
  }
489
- if (!hasFolderAccess(req, repo, authService)) {
490
+ if (!hasFolderAccess(req, repo, workspaceManager, authService)) {
490
491
  return reply.status(403).send({ error: 'Access denied' });
491
492
  }
492
493
  const result = await undoCapture({
@@ -507,7 +508,7 @@ export async function registerMessagesApiRoutes(fastify, messageService, authSer
507
508
  if (!user) {
508
509
  return reply.status(401).send({ error: 'Authentication required' });
509
510
  }
510
- if (!hasFolderAccess(req, folder, authService)) {
511
+ if (!hasFolderAccess(req, folder, workspaceManager, authService)) {
511
512
  return reply.status(403).send({ error: 'Access denied' });
512
513
  }
513
514
  const { messageId } = req.body || {};
@@ -523,8 +524,9 @@ export async function registerMessagesApiRoutes(fastify, messageService, authSer
523
524
  if (!user) {
524
525
  return reply.send({ unread: {}, workspace: 0 });
525
526
  }
526
- // Folders the user is a member of
527
- const folders = authService.getUserFolders(user.id);
527
+ // Folders the user can access (excludes personal folders of others
528
+ // even when a stale folder_access row exists).
529
+ const folders = access.getAccessibleRepos(user, workspaceManager, authService).map(r => r.name);
528
530
  const unread = messageService.getUnreadCounts(user.id, folders);
529
531
  const workspace = messageService.getWorkspaceUnreadCount(user.id);
530
532
  return reply.send({ unread, workspace });