@structured-world/gitlab-mcp 6.3.1 → 6.4.1

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.
@@ -42,86 +42,72 @@ const schema_readonly_1 = require("./schema-readonly");
42
42
  const schema_1 = require("./schema");
43
43
  const gitlab_api_1 = require("../../utils/gitlab-api");
44
44
  const namespace_1 = require("../../utils/namespace");
45
+ const utils_1 = require("../utils");
45
46
  exports.wikiToolRegistry = new Map([
46
47
  [
47
- "list_wiki_pages",
48
+ "browse_wiki",
48
49
  {
49
- name: "list_wiki_pages",
50
- description: "BROWSE: Explore all wiki pages in project or group documentation. Use when: Discovering available guides and documentation, Understanding project knowledge base structure, Finding existing pages before creating new ones. Wiki provides collaborative documentation separate from code repository. Returns page titles, slugs, content formats, and creation dates.",
51
- inputSchema: z.toJSONSchema(schema_readonly_1.ListWikiPagesSchema),
50
+ name: "browse_wiki",
51
+ description: 'BROWSE wiki pages. Actions: "list" shows all wiki pages in project/group, "get" retrieves single wiki page content by slug.',
52
+ inputSchema: z.toJSONSchema(schema_readonly_1.BrowseWikiSchema),
52
53
  handler: async (args) => {
53
- const options = schema_readonly_1.ListWikiPagesSchema.parse(args);
54
- const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(options.namespace);
55
- return gitlab_api_1.gitlab.get(`${entityType}/${encodedPath}/wikis`, {
56
- query: (0, gitlab_api_1.toQuery)(options, ["namespace"]),
57
- });
54
+ const input = schema_readonly_1.BrowseWikiSchema.parse(args);
55
+ const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(input.namespace);
56
+ switch (input.action) {
57
+ case "list": {
58
+ const { action: _action, namespace: _namespace, ...rest } = input;
59
+ const query = (0, gitlab_api_1.toQuery)(rest, []);
60
+ return gitlab_api_1.gitlab.get(`${entityType}/${encodedPath}/wikis`, { query });
61
+ }
62
+ case "get": {
63
+ (0, utils_1.assertDefined)(input.slug, "slug");
64
+ return gitlab_api_1.gitlab.get(`${entityType}/${encodedPath}/wikis/${encodeURIComponent(input.slug)}`);
65
+ }
66
+ default:
67
+ throw new Error(`Unknown action: ${input.action}`);
68
+ }
58
69
  },
59
70
  },
60
71
  ],
61
72
  [
62
- "get_wiki_page",
73
+ "manage_wiki",
63
74
  {
64
- name: "get_wiki_page",
65
- description: "READ: Get complete wiki page content and metadata by slug. Use when: Reading technical documentation and guides, Accessing project knowledge base content, Getting full markdown with formatting. Returns complete page content, metadata, edit history, and author information. Perfect for content analysis and documentation review.",
66
- inputSchema: z.toJSONSchema(schema_readonly_1.GetWikiPageSchema),
75
+ name: "manage_wiki",
76
+ description: 'MANAGE wiki pages. Actions: "create" adds new wiki page, "update" modifies existing page, "delete" removes wiki page permanently.',
77
+ inputSchema: z.toJSONSchema(schema_1.ManageWikiSchema),
67
78
  handler: async (args) => {
68
- const options = schema_readonly_1.GetWikiPageSchema.parse(args);
69
- const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(options.namespace);
70
- return gitlab_api_1.gitlab.get(`${entityType}/${encodedPath}/wikis/${encodeURIComponent(options.slug)}`);
71
- },
72
- },
73
- ],
74
- [
75
- "create_wiki_page",
76
- {
77
- name: "create_wiki_page",
78
- description: "CREATE: Add new documentation page to project or group wiki. Use when: Adding technical documentation, user guides, or FAQs, Creating project knowledge base content, Establishing team documentation standards. Check list_wiki_pages FIRST to avoid duplicate topics. Supports GitLab Flavored Markdown with extensions. Creates version-controlled documentation.",
79
- inputSchema: z.toJSONSchema(schema_1.CreateWikiPageSchema),
80
- handler: async (args) => {
81
- const options = schema_1.CreateWikiPageSchema.parse(args);
82
- const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(options.namespace);
83
- const { namespace: _namespace, ...body } = options;
84
- return gitlab_api_1.gitlab.post(`${entityType}/${encodedPath}/wikis`, {
85
- body,
86
- contentType: "json",
87
- });
88
- },
89
- },
90
- ],
91
- [
92
- "update_wiki_page",
93
- {
94
- name: "update_wiki_page",
95
- description: "UPDATE: Modify existing wiki page content or properties. Use when: Updating documentation with new information, Fixing errors or improving clarity, Reorganizing content structure. Maintains complete version history with change tracking. Supports collaborative editing with author attribution and diff viewing.",
96
- inputSchema: z.toJSONSchema(schema_1.UpdateWikiPageSchema),
97
- handler: async (args) => {
98
- const options = schema_1.UpdateWikiPageSchema.parse(args);
99
- const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(options.namespace);
100
- const { namespace: _namespace, slug, ...body } = options;
101
- return gitlab_api_1.gitlab.put(`${entityType}/${encodedPath}/wikis/${encodeURIComponent(slug)}`, {
102
- body,
103
- contentType: "json",
104
- });
105
- },
106
- },
107
- ],
108
- [
109
- "delete_wiki_page",
110
- {
111
- name: "delete_wiki_page",
112
- description: "DELETE: Permanently remove wiki page from documentation. Use when: Cleaning up outdated or obsolete content, Removing duplicate or incorrect pages, Reorganizing wiki structure. WARNING: Deletes page and ALL version history permanently - cannot be undone. Consider archiving important content first.",
113
- inputSchema: z.toJSONSchema(schema_1.DeleteWikiPageSchema),
114
- handler: async (args) => {
115
- const options = schema_1.DeleteWikiPageSchema.parse(args);
116
- const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(options.namespace);
117
- await gitlab_api_1.gitlab.delete(`${entityType}/${encodedPath}/wikis/${encodeURIComponent(options.slug)}`);
118
- return { deleted: true };
79
+ const input = schema_1.ManageWikiSchema.parse(args);
80
+ const { entityType, encodedPath } = await (0, namespace_1.resolveNamespaceForAPI)(input.namespace);
81
+ switch (input.action) {
82
+ case "create": {
83
+ const { action: _action, namespace: _namespace, ...body } = input;
84
+ return gitlab_api_1.gitlab.post(`${entityType}/${encodedPath}/wikis`, {
85
+ body,
86
+ contentType: "json",
87
+ });
88
+ }
89
+ case "update": {
90
+ (0, utils_1.assertDefined)(input.slug, "slug");
91
+ const { action: _action, namespace: _namespace, slug, ...body } = input;
92
+ return gitlab_api_1.gitlab.put(`${entityType}/${encodedPath}/wikis/${encodeURIComponent(slug)}`, {
93
+ body,
94
+ contentType: "json",
95
+ });
96
+ }
97
+ case "delete": {
98
+ (0, utils_1.assertDefined)(input.slug, "slug");
99
+ await gitlab_api_1.gitlab.delete(`${entityType}/${encodedPath}/wikis/${encodeURIComponent(input.slug)}`);
100
+ return { deleted: true };
101
+ }
102
+ default:
103
+ throw new Error(`Unknown action: ${input.action}`);
104
+ }
119
105
  },
120
106
  },
121
107
  ],
122
108
  ]);
123
109
  function getWikiReadOnlyToolNames() {
124
- return ["list_wiki_pages", "get_wiki_page"];
110
+ return ["browse_wiki"];
125
111
  }
126
112
  function getWikiToolDefinitions() {
127
113
  return Array.from(exports.wikiToolRegistry.values());
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/wiki/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/entities/wiki/registry.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import { z } from "zod";
2
- export declare const ListWikiPagesSchema: z.ZodObject<{
2
+ export declare const BrowseWikiSchema: z.ZodObject<{
3
+ action: z.ZodEnum<{
4
+ list: "list";
5
+ get: "get";
6
+ }>;
3
7
  namespace: z.ZodString;
8
+ slug: z.ZodOptional<z.ZodString>;
4
9
  with_content: z.ZodOptional<z.ZodPipe<z.ZodTransform<boolean, unknown>, z.ZodBoolean>>;
10
+ per_page: z.ZodOptional<z.ZodNumber>;
5
11
  page: z.ZodOptional<z.ZodNumber>;
6
- per_page: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
7
- }, z.core.$strip>;
8
- export declare const GetWikiPageSchema: z.ZodObject<{
9
- namespace: z.ZodString;
10
- slug: z.ZodString;
11
12
  }, z.core.$strip>;
12
13
  export declare const GitLabWikiPageSchema: z.ZodObject<{
13
14
  title: z.ZodString;
@@ -17,6 +18,5 @@ export declare const GitLabWikiPageSchema: z.ZodObject<{
17
18
  created_at: z.ZodOptional<z.ZodString>;
18
19
  updated_at: z.ZodOptional<z.ZodString>;
19
20
  }, z.core.$strip>;
20
- export type ListWikiPagesOptions = z.infer<typeof ListWikiPagesSchema>;
21
- export type GetWikiPageOptions = z.infer<typeof GetWikiPageSchema>;
21
+ export type BrowseWikiInput = z.infer<typeof BrowseWikiSchema>;
22
22
  export type GitLabWikiPage = z.infer<typeof GitLabWikiPageSchema>;
@@ -1,18 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GitLabWikiPageSchema = exports.GetWikiPageSchema = exports.ListWikiPagesSchema = void 0;
3
+ exports.GitLabWikiPageSchema = exports.BrowseWikiSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- const shared_1 = require("../shared");
6
5
  const utils_1 = require("../utils");
7
- exports.ListWikiPagesSchema = zod_1.z
6
+ exports.BrowseWikiSchema = zod_1.z
8
7
  .object({
9
- namespace: zod_1.z.string().describe("Namespace path (group or project) to list wiki pages from"),
10
- with_content: utils_1.flexibleBoolean.optional().describe("Include content of the wiki pages"),
8
+ action: zod_1.z.enum(["list", "get"]).describe("Action to perform"),
9
+ namespace: zod_1.z.string().describe("Namespace path (group or project)"),
10
+ slug: zod_1.z
11
+ .string()
12
+ .optional()
13
+ .describe("URL-encoded slug of the wiki page. Required for 'get' action."),
14
+ with_content: utils_1.flexibleBoolean
15
+ .optional()
16
+ .describe("For 'list': include content of the wiki pages"),
17
+ per_page: zod_1.z.number().optional().describe("Number of items per page"),
18
+ page: zod_1.z.number().optional().describe("Page number"),
11
19
  })
12
- .merge(shared_1.PaginationOptionsSchema);
13
- exports.GetWikiPageSchema = zod_1.z.object({
14
- namespace: zod_1.z.string().describe("Namespace path (group or project) containing the wiki page"),
15
- slug: zod_1.z.string().describe("URL-encoded slug of the wiki page"),
20
+ .refine(data => data.action !== "get" || data.slug !== undefined, {
21
+ message: "slug is required for 'get' action",
22
+ path: ["slug"],
16
23
  });
17
24
  exports.GitLabWikiPageSchema = zod_1.z.object({
18
25
  title: zod_1.z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"schema-readonly.js","sourceRoot":"","sources":["../../../../src/entities/wiki/schema-readonly.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,sCAAoD;AACpD,oCAA2C;AAG9B,QAAA,mBAAmB,GAAG,OAAC;KACjC,MAAM,CAAC;IACN,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;IAC3F,YAAY,EAAE,uBAAe,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CACvF,CAAC;KACD,KAAK,CAAC,gCAAuB,CAAC,CAAC;AAErB,QAAA,iBAAiB,GAAG,OAAC,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC5F,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC/D,CAAC,CAAC;AAGU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"schema-readonly.js","sourceRoot":"","sources":["../../../../src/entities/wiki/schema-readonly.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oCAA2C;AAS9B,QAAA,gBAAgB,GAAG,OAAC;KAC9B,MAAM,CAAC;IACN,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC7D,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAEnE,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;IAE5E,YAAY,EAAE,uBAAe;SAC1B,QAAQ,EAAE;SACV,QAAQ,CAAC,+CAA+C,CAAC;IAE5D,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACpE,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;CACpD,CAAC;KACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;IAChE,OAAO,EAAE,mCAAmC;IAC5C,IAAI,EAAE,CAAC,MAAM,CAAC;CACf,CAAC,CAAC;AAMQ,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE;IAClB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAClC,CAAC,CAAC"}
@@ -1,21 +1,19 @@
1
1
  import { z } from "zod";
2
- export declare const CreateWikiPageSchema: z.ZodObject<{
2
+ export declare const ManageWikiSchema: z.ZodObject<{
3
+ action: z.ZodEnum<{
4
+ create: "create";
5
+ update: "update";
6
+ delete: "delete";
7
+ }>;
3
8
  namespace: z.ZodString;
4
- title: z.ZodString;
5
- content: z.ZodString;
6
- format: z.ZodOptional<z.ZodString>;
7
- }, z.core.$strip>;
8
- export declare const UpdateWikiPageSchema: z.ZodObject<{
9
- namespace: z.ZodString;
10
- slug: z.ZodString;
9
+ slug: z.ZodOptional<z.ZodString>;
11
10
  title: z.ZodOptional<z.ZodString>;
12
11
  content: z.ZodOptional<z.ZodString>;
13
- format: z.ZodOptional<z.ZodString>;
14
- }, z.core.$strip>;
15
- export declare const DeleteWikiPageSchema: z.ZodObject<{
16
- namespace: z.ZodString;
17
- slug: z.ZodString;
12
+ format: z.ZodOptional<z.ZodEnum<{
13
+ markdown: "markdown";
14
+ rdoc: "rdoc";
15
+ asciidoc: "asciidoc";
16
+ org: "org";
17
+ }>>;
18
18
  }, z.core.$strip>;
19
- export type CreateWikiPageOptions = z.infer<typeof CreateWikiPageSchema>;
20
- export type UpdateWikiPageOptions = z.infer<typeof UpdateWikiPageSchema>;
21
- export type DeleteWikiPageOptions = z.infer<typeof DeleteWikiPageSchema>;
19
+ export type ManageWikiInput = z.infer<typeof ManageWikiSchema>;
@@ -1,22 +1,35 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DeleteWikiPageSchema = exports.UpdateWikiPageSchema = exports.CreateWikiPageSchema = void 0;
3
+ exports.ManageWikiSchema = void 0;
4
4
  const zod_1 = require("zod");
5
- exports.CreateWikiPageSchema = zod_1.z.object({
6
- namespace: zod_1.z.string().describe("Namespace path (group or project) to create wiki page in"),
7
- title: zod_1.z.string().describe("Title of the wiki page"),
8
- content: zod_1.z.string().describe("Content of the wiki page"),
9
- format: zod_1.z.string().optional().describe("Content format, e.g., markdown, rdoc"),
10
- });
11
- exports.UpdateWikiPageSchema = zod_1.z.object({
12
- namespace: zod_1.z.string().describe("Namespace path (group or project) containing the wiki page"),
13
- slug: zod_1.z.string().describe("URL-encoded slug of the wiki page"),
14
- title: zod_1.z.string().optional().describe("New title of the wiki page"),
15
- content: zod_1.z.string().optional().describe("New content of the wiki page"),
16
- format: zod_1.z.string().optional().describe("Content format, e.g., markdown, rdoc"),
17
- });
18
- exports.DeleteWikiPageSchema = zod_1.z.object({
19
- namespace: zod_1.z.string().describe("Namespace path (group or project) containing the wiki page"),
20
- slug: zod_1.z.string().describe("URL-encoded slug of the wiki page"),
5
+ exports.ManageWikiSchema = zod_1.z
6
+ .object({
7
+ action: zod_1.z.enum(["create", "update", "delete"]).describe("Action to perform"),
8
+ namespace: zod_1.z.string().describe("Namespace path (group or project)"),
9
+ slug: zod_1.z
10
+ .string()
11
+ .optional()
12
+ .describe("URL-encoded slug of the wiki page. Required for 'update' and 'delete' actions."),
13
+ title: zod_1.z.string().optional().describe("Title of the wiki page. Required for 'create' action."),
14
+ content: zod_1.z
15
+ .string()
16
+ .optional()
17
+ .describe("Content of the wiki page. Required for 'create' action."),
18
+ format: zod_1.z
19
+ .enum(["markdown", "rdoc", "asciidoc", "org"])
20
+ .optional()
21
+ .describe("Content format (markdown, rdoc, asciidoc, org). Defaults to markdown."),
22
+ })
23
+ .refine(data => data.action === "create" || data.slug !== undefined, {
24
+ message: "slug is required for 'update' and 'delete' actions",
25
+ path: ["slug"],
26
+ })
27
+ .refine(data => data.action !== "create" || data.title !== undefined, {
28
+ message: "title is required for 'create' action",
29
+ path: ["title"],
30
+ })
31
+ .refine(data => data.action !== "create" || data.content !== undefined, {
32
+ message: "content is required for 'create' action",
33
+ path: ["content"],
21
34
  });
22
35
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/entities/wiki/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAGX,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IAC1F,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACpD,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACxD,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAC/E,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC5F,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC9D,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IACnE,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACvE,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAC/E,CAAC,CAAC;AAEU,QAAA,oBAAoB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC5F,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;CAC/D,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../src/entities/wiki/schema.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AASX,QAAA,gBAAgB,GAAG,OAAC;KAC9B,MAAM,CAAC;IACN,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAC5E,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAEnE,IAAI,EAAE,OAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gFAAgF,CAAC;IAE7F,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IAC9F,OAAO,EAAE,OAAC;SACP,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yDAAyD,CAAC;IACtE,MAAM,EAAE,OAAC;SACN,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;SAC7C,QAAQ,EAAE;SACV,QAAQ,CAAC,uEAAuE,CAAC;CACrF,CAAC;KACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;IACnE,OAAO,EAAE,oDAAoD;IAC7D,IAAI,EAAE,CAAC,MAAM,CAAC;CACf,CAAC;KACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;IACpE,OAAO,EAAE,uCAAuC;IAChD,IAAI,EAAE,CAAC,OAAO,CAAC;CAChB,CAAC;KACD,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;IACtE,OAAO,EAAE,yCAAyC;IAClD,IAAI,EAAE,CAAC,SAAS,CAAC;CAClB,CAAC,CAAC"}