@cyanheads/pubmed-mcp-server 2.10.20 → 2.10.22

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 (110) hide show
  1. package/AGENTS.md +3 -3
  2. package/CLAUDE.md +3 -3
  3. package/Dockerfile +3 -3
  4. package/README.md +14 -11
  5. package/changelog/2.10.x/2.10.21.md +42 -0
  6. package/changelog/2.10.x/2.10.22.md +44 -0
  7. package/dist/index.js +1 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/mcp-server/tools/definitions/_budget.d.ts +35 -6
  10. package/dist/mcp-server/tools/definitions/_budget.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/_budget.js +26 -3
  12. package/dist/mcp-server/tools/definitions/_budget.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/_notices.d.ts +33 -0
  14. package/dist/mcp-server/tools/definitions/_notices.d.ts.map +1 -0
  15. package/dist/mcp-server/tools/definitions/_notices.js +35 -0
  16. package/dist/mcp-server/tools/definitions/_notices.js.map +1 -0
  17. package/dist/mcp-server/tools/definitions/_schemas.d.ts +14 -0
  18. package/dist/mcp-server/tools/definitions/_schemas.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/_schemas.js +9 -0
  20. package/dist/mcp-server/tools/definitions/_schemas.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/fetch-articles.tool.d.ts +11 -0
  22. package/dist/mcp-server/tools/definitions/fetch-articles.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/fetch-articles.tool.js +64 -19
  24. package/dist/mcp-server/tools/definitions/fetch-articles.tool.js.map +1 -1
  25. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts +22 -4
  26. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js +386 -167
  28. package/dist/mcp-server/tools/definitions/fetch-fulltext.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/format-citations.tool.d.ts +12 -0
  30. package/dist/mcp-server/tools/definitions/format-citations.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/format-citations.tool.js +41 -8
  32. package/dist/mcp-server/tools/definitions/format-citations.tool.js.map +1 -1
  33. package/dist/mcp-server/tools/definitions/lookup-citation.tool.d.ts.map +1 -1
  34. package/dist/mcp-server/tools/definitions/lookup-citation.tool.js +8 -6
  35. package/dist/mcp-server/tools/definitions/lookup-citation.tool.js.map +1 -1
  36. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.d.ts +1 -1
  37. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.d.ts.map +1 -1
  38. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.js +66 -76
  39. package/dist/mcp-server/tools/definitions/lookup-mesh.tool.js.map +1 -1
  40. package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.d.ts +6 -5
  41. package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.d.ts.map +1 -1
  42. package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.js +11 -18
  43. package/dist/mcp-server/tools/definitions/pubmed-europepmc-fetch.tool.js.map +1 -1
  44. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.d.ts +4 -4
  45. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.d.ts.map +1 -1
  46. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js +9 -8
  47. package/dist/mcp-server/tools/definitions/pubmed-europepmc-search.tool.js.map +1 -1
  48. package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts +4 -4
  49. package/dist/mcp-server/tools/definitions/spell-check.tool.d.ts.map +1 -1
  50. package/dist/mcp-server/tools/definitions/spell-check.tool.js +12 -8
  51. package/dist/mcp-server/tools/definitions/spell-check.tool.js.map +1 -1
  52. package/dist/services/error-contracts.d.ts +1 -1
  53. package/dist/services/error-contracts.d.ts.map +1 -1
  54. package/dist/services/error-contracts.js +1 -1
  55. package/dist/services/error-contracts.js.map +1 -1
  56. package/dist/services/europe-pmc/api-client.d.ts.map +1 -1
  57. package/dist/services/europe-pmc/api-client.js +4 -3
  58. package/dist/services/europe-pmc/api-client.js.map +1 -1
  59. package/dist/services/europe-pmc/europe-pmc-service.d.ts +31 -11
  60. package/dist/services/europe-pmc/europe-pmc-service.d.ts.map +1 -1
  61. package/dist/services/europe-pmc/europe-pmc-service.js +122 -47
  62. package/dist/services/europe-pmc/europe-pmc-service.js.map +1 -1
  63. package/dist/services/europe-pmc/types.d.ts +5 -1
  64. package/dist/services/europe-pmc/types.d.ts.map +1 -1
  65. package/dist/services/fetch-redaction.d.ts +23 -0
  66. package/dist/services/fetch-redaction.d.ts.map +1 -0
  67. package/dist/services/fetch-redaction.js +62 -0
  68. package/dist/services/fetch-redaction.js.map +1 -0
  69. package/dist/services/ncbi/api-client.d.ts +3 -0
  70. package/dist/services/ncbi/api-client.d.ts.map +1 -1
  71. package/dist/services/ncbi/api-client.js +21 -8
  72. package/dist/services/ncbi/api-client.js.map +1 -1
  73. package/dist/services/ncbi/formatting/citation-formatter.d.ts +19 -3
  74. package/dist/services/ncbi/formatting/citation-formatter.d.ts.map +1 -1
  75. package/dist/services/ncbi/formatting/citation-formatter.js +410 -138
  76. package/dist/services/ncbi/formatting/citation-formatter.js.map +1 -1
  77. package/dist/services/ncbi/ncbi-service.d.ts +22 -0
  78. package/dist/services/ncbi/ncbi-service.d.ts.map +1 -1
  79. package/dist/services/ncbi/ncbi-service.js +115 -18
  80. package/dist/services/ncbi/ncbi-service.js.map +1 -1
  81. package/dist/services/ncbi/parsing/article-parser.d.ts.map +1 -1
  82. package/dist/services/ncbi/parsing/article-parser.js +89 -36
  83. package/dist/services/ncbi/parsing/article-parser.js.map +1 -1
  84. package/dist/services/ncbi/parsing/pmc-article-parser.d.ts +13 -8
  85. package/dist/services/ncbi/parsing/pmc-article-parser.d.ts.map +1 -1
  86. package/dist/services/ncbi/parsing/pmc-article-parser.js +326 -72
  87. package/dist/services/ncbi/parsing/pmc-article-parser.js.map +1 -1
  88. package/dist/services/ncbi/parsing/pmc-xml-helpers.d.ts +42 -0
  89. package/dist/services/ncbi/parsing/pmc-xml-helpers.d.ts.map +1 -1
  90. package/dist/services/ncbi/parsing/pmc-xml-helpers.js +275 -12
  91. package/dist/services/ncbi/parsing/pmc-xml-helpers.js.map +1 -1
  92. package/dist/services/ncbi/parsing/text-helpers.d.ts +10 -0
  93. package/dist/services/ncbi/parsing/text-helpers.d.ts.map +1 -1
  94. package/dist/services/ncbi/parsing/text-helpers.js +19 -0
  95. package/dist/services/ncbi/parsing/text-helpers.js.map +1 -1
  96. package/dist/services/ncbi/response-handler.d.ts +0 -11
  97. package/dist/services/ncbi/response-handler.d.ts.map +1 -1
  98. package/dist/services/ncbi/response-handler.js +24 -33
  99. package/dist/services/ncbi/response-handler.js.map +1 -1
  100. package/dist/services/ncbi/types.d.ts +72 -32
  101. package/dist/services/ncbi/types.d.ts.map +1 -1
  102. package/dist/services/openalex/api-client.d.ts.map +1 -1
  103. package/dist/services/openalex/api-client.js +4 -3
  104. package/dist/services/openalex/api-client.js.map +1 -1
  105. package/dist/services/unpaywall/unpaywall-service.d.ts +3 -0
  106. package/dist/services/unpaywall/unpaywall-service.d.ts.map +1 -1
  107. package/dist/services/unpaywall/unpaywall-service.js +18 -8
  108. package/dist/services/unpaywall/unpaywall-service.js.map +1 -1
  109. package/package.json +7 -7
  110. package/server.json +3 -3
@@ -5,6 +5,46 @@
5
5
  */
6
6
  import { decodeHtmlEntities } from './text-helpers.js';
7
7
  import { ensureArray, getAttribute, getOptionalAttribute, getOptionalText, getText, } from './xml-helpers.js';
8
+ /**
9
+ * An article's deduplicated affiliation list: one index per distinct text, a new
10
+ * text appended at the end. Seeded with an existing list, it continues that
11
+ * list's numbering, so the seed's indices never move.
12
+ */
13
+ function affiliationIndex(seed = []) {
14
+ const list = [...seed];
15
+ const indexOf = new Map(list.map((text, index) => [text, index]));
16
+ return {
17
+ list,
18
+ /** Indices of one contributor's `AffiliationInfo` texts, in order. */
19
+ of(infos) {
20
+ const indices = [];
21
+ for (const info of ensureArray(infos)) {
22
+ const text = getText(info?.Affiliation);
23
+ if (!text)
24
+ continue;
25
+ let index = indexOf.get(text);
26
+ if (index === undefined) {
27
+ index = list.length;
28
+ list.push(text);
29
+ indexOf.set(text, index);
30
+ }
31
+ indices.push(index);
32
+ }
33
+ return indices;
34
+ },
35
+ };
36
+ }
37
+ /** The first ORCID among a contributor's `Identifier` elements (`Source="ORCID"`). */
38
+ function extractOrcid(identifiers) {
39
+ for (const id of ensureArray(identifiers)) {
40
+ if (getAttribute(id, 'Source') === 'ORCID') {
41
+ const value = getText(id);
42
+ if (value)
43
+ return value;
44
+ }
45
+ }
46
+ return;
47
+ }
8
48
  /**
9
49
  * Extracts and formats author information from XML, deduplicating affiliations.
10
50
  * Affiliations are collected into a single array; each author references them by index.
@@ -15,41 +55,14 @@ import { ensureArray, getAttribute, getOptionalAttribute, getOptionalText, getTe
15
55
  export function extractAuthors(authorListXml) {
16
56
  if (!authorListXml)
17
57
  return { authors: [], affiliations: [] };
18
- const affiliationMap = new Map();
19
- const affiliationList = [];
20
- function getAffiliationIndex(text) {
21
- const existing = affiliationMap.get(text);
22
- if (existing !== undefined)
23
- return existing;
24
- const idx = affiliationList.length;
25
- affiliationList.push(text);
26
- affiliationMap.set(text, idx);
27
- return idx;
28
- }
58
+ const affiliations = affiliationIndex();
29
59
  const xmlAuthors = ensureArray(authorListXml.Author);
30
60
  const authors = xmlAuthors.map((auth) => {
31
- // Collect all affiliations for this author, deduplicated at article level.
32
61
  // A collective author carries its own `AffiliationInfo` too. (#212)
33
- const authorAffiliationInfos = ensureArray(auth.AffiliationInfo);
34
- const indices = [];
35
- for (const info of authorAffiliationInfos) {
36
- const text = getText(info?.Affiliation);
37
- if (text)
38
- indices.push(getAffiliationIndex(text));
39
- }
40
- // Extract ORCID from Identifier elements with Source="ORCID"
41
- let orcid;
42
- const identifiers = ensureArray(auth.Identifier);
43
- for (const id of identifiers) {
44
- if (getAttribute(id, 'Source') === 'ORCID') {
45
- const val = getText(id);
46
- if (val) {
47
- orcid = val;
48
- break;
49
- }
50
- }
51
- }
62
+ const indices = affiliations.of(auth.AffiliationInfo);
63
+ const orcid = extractOrcid(auth.Identifier);
52
64
  const collectiveName = getText(auth.CollectiveName);
65
+ const suffix = getOptionalText(auth.Suffix);
53
66
  return {
54
67
  ...(collectiveName
55
68
  ? { collectiveName }
@@ -57,12 +70,45 @@ export function extractAuthors(authorListXml) {
57
70
  lastName: getText(auth.LastName),
58
71
  firstName: getText(auth.ForeName), // XML uses ForeName
59
72
  initials: getText(auth.Initials),
73
+ ...(suffix && { suffix }),
60
74
  }),
61
75
  ...(indices.length > 0 && { affiliationIndices: indices }),
62
76
  ...(orcid && { orcid }),
63
77
  };
64
78
  });
65
- return { authors, affiliations: affiliationList };
79
+ return { authors, affiliations: affiliations.list };
80
+ }
81
+ /**
82
+ * Extracts the members of a collective author from every `InvestigatorList`,
83
+ * flattened in upstream order and uncapped. Investigator affiliations join the
84
+ * article's deduplicated list after the authors' entries, so an author's indices
85
+ * never shift. A name part the record lacks is omitted, `Suffix` included.
86
+ * (#216, #226)
87
+ * @param investigatorListsXml - The record's `InvestigatorList` elements.
88
+ * @param authorAffiliations - The authors' affiliations, from {@link extractAuthors}.
89
+ * @returns The investigators, and the affiliation list extended with theirs.
90
+ */
91
+ function extractInvestigators(investigatorListsXml, authorAffiliations) {
92
+ const affiliations = affiliationIndex(authorAffiliations);
93
+ const investigators = ensureArray(investigatorListsXml)
94
+ .flatMap((list) => ensureArray(list.Investigator))
95
+ .map((inv) => {
96
+ const lastName = getOptionalText(inv.LastName);
97
+ const firstName = getOptionalText(inv.ForeName);
98
+ const initials = getOptionalText(inv.Initials);
99
+ const suffix = getOptionalText(inv.Suffix);
100
+ const indices = affiliations.of(inv.AffiliationInfo);
101
+ const orcid = extractOrcid(inv.Identifier);
102
+ return {
103
+ ...(lastName && { lastName }),
104
+ ...(firstName && { firstName }),
105
+ ...(initials && { initials }),
106
+ ...(suffix && { suffix }),
107
+ ...(indices.length > 0 && { affiliationIndices: indices }),
108
+ ...(orcid && { orcid }),
109
+ };
110
+ });
111
+ return { investigators, affiliations: affiliations.list };
66
112
  }
67
113
  /**
68
114
  * Picks the electronic article locator from an Article's `ELocationID` list —
@@ -112,7 +158,9 @@ export function extractJournalInfo(journalXml, articleXml) {
112
158
  const isoAbbreviation = getOptionalText(journalXml.ISOAbbreviation);
113
159
  const volume = getOptionalText(journalXml.JournalIssue?.Volume);
114
160
  const issue = getOptionalText(journalXml.JournalIssue?.Issue);
115
- const pages = getOptionalText(articleXml?.Pagination?.MedlinePgn);
161
+ const medlinePgn = getOptionalText(articleXml?.Pagination?.MedlinePgn);
162
+ // NCBI writes the literal `None` where a record has no pagination. (#248)
163
+ const pages = medlinePgn === 'None' ? undefined : medlinePgn;
116
164
  const publicationDate = {
117
165
  ...(year && { year }),
118
166
  ...(month && { month }),
@@ -400,13 +448,16 @@ export function extractArticleDates(articleXml) {
400
448
  export function parseFullArticle(xmlArticle, options = {}) {
401
449
  const medlineCitation = xmlArticle.MedlineCitation;
402
450
  const article = medlineCitation?.Article;
403
- const { includeMesh = true, includeGrants = false } = options;
451
+ const { includeMesh = true, includeGrants = false, includeInvestigators = false } = options;
404
452
  const abstractText = extractAbstractText(article?.Abstract);
405
453
  const journalInfo = extractJournalInfo(article?.Journal, article);
406
454
  const pubmedDataArticleIdList = xmlArticle.PubmedData?.ArticleIdList;
407
455
  const doi = extractDoi(article, pubmedDataArticleIdList);
408
456
  const pmcId = extractPmcId(article, pubmedDataArticleIdList);
409
- const { authors, affiliations } = extractAuthors(article?.AuthorList);
457
+ const { authors, affiliations: authorAffiliations } = extractAuthors(article?.AuthorList);
458
+ const { investigators, affiliations } = includeInvestigators
459
+ ? extractInvestigators(medlineCitation?.InvestigatorList, authorAffiliations)
460
+ : { investigators: [], affiliations: authorAffiliations };
410
461
  const publicationTypes = extractPublicationTypes(article?.PublicationTypeList);
411
462
  const commentsCorrections = extractCommentsCorrections(medlineCitation?.CommentsCorrectionsList);
412
463
  const keywords = extractKeywords(medlineCitation?.KeywordList ?? article?.KeywordList);
@@ -420,6 +471,7 @@ export function parseFullArticle(xmlArticle, options = {}) {
420
471
  ...(abstractText !== undefined && { abstractText }),
421
472
  ...(affiliations.length > 0 && { affiliations }),
422
473
  authors,
474
+ ...(investigators.length > 0 && { investigators }),
423
475
  ...(journalInfo !== undefined && { journalInfo }),
424
476
  ...(publicationTypes.length > 0 && { publicationTypes }),
425
477
  ...(commentsCorrections.length > 0 && { commentsCorrections }),
@@ -471,10 +523,11 @@ function mergeAuthorLists(lists) {
471
523
  export function extractBookInfo(bookDocumentXml) {
472
524
  const book = bookDocumentXml.Book;
473
525
  const editorLists = ensureArray(book?.AuthorList).filter((list) => getAttribute(list, 'Type') === 'editors');
474
- const editors = extractAuthors(mergeAuthorLists(editorLists)).authors.map(({ lastName, firstName, initials, collectiveName }) => ({
526
+ const editors = extractAuthors(mergeAuthorLists(editorLists)).authors.map(({ lastName, firstName, initials, suffix, collectiveName }) => ({
475
527
  ...(lastName && { lastName }),
476
528
  ...(firstName && { firstName }),
477
529
  ...(initials && { initials }),
530
+ ...(suffix && { suffix }),
478
531
  ...(collectiveName && { collectiveName }),
479
532
  }));
480
533
  const isbns = ensureArray(book?.Isbn)
@@ -1 +1 @@
1
- {"version":3,"file":"article-parser.js","sourceRoot":"","sources":["../../../../src/services/ncbi/parsing/article-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"article-parser.js","sourceRoot":"","sources":["../../../../src/services/ncbi/parsing/article-parser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsCH,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,eAAe,EACf,OAAO,GACR,MAAM,kBAAkB,CAAC;AAU1B;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,IAAI,GAAsB,EAAE;IACpD,MAAM,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IACvB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO;QACL,IAAI;QACJ,sEAAsE;QACtE,EAAE,CAAC,KAAmC;YACpC,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBACxC,IAAI,CAAC,IAAI;oBAAE,SAAS;gBACpB,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;oBACxB,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;oBACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAChB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC3B,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,sFAAsF;AACtF,SAAS,YAAY,CAAC,WAAoC;IACxD,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QAC1C,IAAI,YAAY,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,OAAO,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO;AACT,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,aAA6B;IAC1D,IAAI,CAAC,aAAa;QAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAE7D,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,MAAM,UAAU,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAe,EAAuB,EAAE;QACtE,oEAAoE;QACpE,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtD,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,OAAO;YACL,GAAG,CAAC,cAAc;gBAChB,CAAC,CAAC,EAAE,cAAc,EAAE;gBACpB,CAAC,CAAC;oBACE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAChC,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,oBAAoB;oBACvD,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAChC,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;iBAC1B,CAAC;YACN,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC;YAC1D,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,oBAAoB,CAC3B,oBAA4D,EAC5D,kBAAqC;IAErC,MAAM,YAAY,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;IAC1D,MAAM,aAAa,GAAG,WAAW,CAAC,oBAAoB,CAAC;SACpD,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACjD,GAAG,CAAC,CAAC,GAAG,EAAsB,EAAE;QAC/B,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QACrD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC3C,OAAO;YACL,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC7B,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;YAC/B,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC7B,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC;YAC1D,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;SACxB,CAAC;IACJ,CAAC,CAAC,CAAC;IACL,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,kBAAkB,CAAC,UAAuB;IACjD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,MAAM,CAC5D,CAAC,IAAI,EAAE,EAAE,CACP,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK;QACvC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG;QACrC,eAAe,CAAC,IAAI,CAAC,CACxB,CAAC;IACF,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAClG,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtD,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAuB,EACvB,UAAuB;IAEvB,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3F,gDAAgD;IAChD,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC;IACpC,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACvC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC;IAC5E,MAAM,KAAK,GAAG,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7E,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/C,kFAAkF;IAClF,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAChD,MAAM,eAAe,GAAG,eAAe,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,UAAU,GAAG,eAAe,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IACvE,0EAA0E;IAC1E,MAAM,KAAK,GAAG,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IAC7D,MAAM,eAAe,GAAG;QACtB,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;QACrB,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;QACnB,GAAG,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,CAAC;KACpC,CAAC;IAEF,OAAO;QACL,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,CAAC;QAC3C,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;QACrB,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,OAAO,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;QAC9C,GAAG,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;QACvD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC;KACpE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,kBAAuC;IACtE,IAAI,CAAC,kBAAkB;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,YAAY,GAAG,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACjE,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,EAAkB,EAAE,EAAE;QAC7C,MAAM,iBAAiB,GAAG,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC,KAAK,GAAG,CAAC;QAClF,MAAM,WAAW,GAAG,YAAY,CAAC,EAAE,EAAE,cAAc,CAAC,KAAK,GAAG,CAAC;QAC7D,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;QAE3D,2CAA2C;QAC3C,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;QACpD,MAAM,UAAU,GAA0B,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACpE,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YACrB,MAAM,EAAE,GAAG,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YACjC,OAAO;gBACL,aAAa,EAAE,IAAI;gBACnB,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;gBAC9B,YAAY,EAAE,YAAY,CAAC,CAAC,EAAE,cAAc,CAAC,KAAK,GAAG;aACxB,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,MAAM,mBAAmB,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QAEnE,OAAO;YACL,cAAc,EAAE,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC;YAC1C,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;YACrC,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC;YAC5C,YAAY,EAAE,WAAW,IAAI,iBAAiB,IAAI,mBAAmB;SACtE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,YAA2B;IACvD,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAW,EAAe,EAAE;QAC7C,mEAAmE;QACnE,yEAAyE;QACzE,2EAA2E;QAC3E,oEAAoE;QACpE,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACvD,OAAO;YACL,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;YAC3B,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;YACzB,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;SAC5B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CACxB,UAAuB,EACvB,uBAA0C;IAE1C,IAAI,CAAC,UAAU;QAAE,OAAO;IAExB,0BAA0B;IAC1B,MAAM,YAAY,GAAG,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACzD,uBAAuB;IACvB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,IAAI,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,GAAG,EAAE,CAAC;YACrF,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IACD,qCAAqC;IACrC,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACpE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,IAAI,uBAAuB,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,WAAW,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,GAAG;oBAAE,OAAO,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;AACT,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAC1B,UAAuB,EACvB,uBAA0C;IAE1C,8BAA8B;IAC9B,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;IACrE,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;YAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YACzB,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,uBAAuB,EAAE,CAAC;QAC5B,MAAM,aAAa,GAAG,WAAW,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACrE,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,YAAY,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;gBACzB,IAAI,GAAG;oBAAE,OAAO,GAAG,CAAC;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;AACT,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,sBAA+C;IACrF,IAAI,CAAC,sBAAsB;QAAE,OAAO,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACrE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAsB,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,0BAA0B,CACxC,0BAAuD;IAEvD,OAAO,WAAW,CAAC,0BAA0B,EAAE,mBAAmB,CAAC;SAChE,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,OAAO,CAAC;SAC7D,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;YACL,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;YACvC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YACnC,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACrB,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;SACtB,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,eAAmD;IACjF,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,WAAW,CAAC,eAAe,CAAC,CAAC;IAC3C,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,MAAM,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAiB,EAAE,CAAC;YAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,WAAoC;IACtE,IAAI,CAAC,WAAW,EAAE,YAAY;QAAE,OAAO;IAEvC,MAAM,aAAa,GAAG,WAAW,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IAC5D,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEvC,MAAM,cAAc,GAAG,aAAa;SACjC,GAAG,CAAC,CAAC,EAA4B,EAAE,EAAE;QACpC,gDAAgD;QAChD,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,mDAAmD;QACnD,MAAM,WAAW,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB;QACvD,MAAM,KAAK,GAAG,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QACxC,IAAI,KAAK,IAAI,WAAW,EAAE,CAAC;YACzB,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC;QAClD,CAAC;QACD,OAAO,WAAW,CAAC,IAAI,EAAE,CAAC;IAC5B,CAAC,CAAC;SACD,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,yDAAyD;IAE7E,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAExC,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,CAAC,oCAAoC;AAC9F,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,kBAAuC;IACjE,IAAI,CAAC,kBAAkB,EAAE,IAAI;QAAE,OAAO;IACtC,OAAO,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAC1C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAuB;IACzD,IAAI,CAAC,UAAU,EAAE,WAAW;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC5D,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,EAAkB,EAAE,EAAE,CAAC,CAAC;QAClD,QAAQ,EAAE,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC;QACtC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC;QACtB,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC;QACxB,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,CAAC;KACrB,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAA4B,EAC5B,OAAO,GAA4B,EAAE;IAErC,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;IACnD,MAAM,OAAO,GAAG,eAAe,EAAE,OAAO,CAAC;IACzC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,aAAa,GAAG,KAAK,EAAE,oBAAoB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAE5F,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAClE,MAAM,uBAAuB,GAAG,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC;IACrE,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACzD,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAC7D,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,GAAG,cAAc,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1F,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,GAAG,oBAAoB;QAC1D,CAAC,CAAC,oBAAoB,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,CAAC;QAC7E,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;IAE5D,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC/E,MAAM,mBAAmB,GAAG,0BAA0B,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC;IACjG,MAAM,QAAQ,GAAG,eAAe,CAAC,eAAe,EAAE,WAAW,IAAI,OAAO,EAAE,WAAW,CAAC,CAAC;IACvF,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,OAAO;QACL,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,WAAW,CAAC,eAAe,CAAC,IAAI,EAAE;QACxC,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC;QACrC,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;QACnD,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QAChD,OAAO;QACP,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC;QAClD,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;QACjD,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC;QACxD,GAAG,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC;QAC9D,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;QACxC,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QACrE,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QACrE,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;QACjC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;QACrC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,uFAAuF;AACvF,SAAS,WAAW,CAAC,OAAoB;IACvC,IAAI,CAAC,OAAO;QAAE,OAAO;IACrB,OAAO,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,6DAA6D;AAC7D,SAAS,aAAa,CACpB,SAAuC,EACvC,MAAc;IAEd,KAAK,MAAM,SAAS,IAAI,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC;QAC1D,IAAI,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,MAAM,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IACD,OAAO;AACT,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,KAAsB;IAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAClE,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,eAAgC;IAC9D,MAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC;IAClC,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CACtD,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,SAAS,CACnD,CAAC;IACF,MAAM,OAAO,GAAuB,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAC3F,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9D,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,CAAC;QAC7B,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,GAAG,CAAC,cAAc,IAAI,EAAE,cAAc,EAAE,CAAC;KAC1C,CAAC,CACH,CAAC;IAEF,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;SAClC,GAAG,CAAC,eAAe,CAAC;SACpB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC;SAC3C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,KAAK,CAAC;SACzD,GAAG,CAAC,eAAe,CAAC;SACpB,IAAI,CAAC,OAAO,CAAC,CAAC;IAEjB,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;IAClE,MAAM,iBAAiB,GAAG,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAC9E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,eAAe,GAAG,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,aAAa,CAAC,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAEhF,OAAO;QACL,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC;QACvB,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;QAC/B,GAAG,CAAC,iBAAiB,IAAI,EAAE,iBAAiB,EAAE,CAAC;QAC/C,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3B,GAAG,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC;QACvC,GAAG,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,CAAC;QACjC,GAAG,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,CAAC;QACzB,GAAG,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,CAAC;QAC3B,GAAG,CAAC,eAAe,IAAI,EAAE,eAAe,EAAE,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QAClC,GAAG,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QAChC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;QACtC,GAAG,CAAC,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC;KAChC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,cAAoC;IACvE,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,CAAC;IACjD,MAAM,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;IAE3C,MAAM,YAAY,GAAG,eAAe,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACjE,MAAM,eAAe,GAAG,WAAW,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,MAAM,CACxE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,SAAS,CACnD,CAAC;IACF,MAAM,cAAc,GAAG,cAAc,CAAC,gBAAgB,CAAC,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM;QAC7D,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACjE,MAAM,QAAQ,GAAG,eAAe,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC5D,MAAM,gBAAgB,GAAG,WAAW,CAAC,YAAY,EAAE,eAAe,CAAC;SAChE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SAClC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,YAAY,GAChB;QACE,CAAC,kBAAkB,EAAE,YAAY,EAAE,gBAAgB,CAAC;QACpD,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC;KAE7C,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAuB,EAAE;QACrD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,8EAA8E;QAC9E,8EAA8E;QAC9E,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7F,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GACP,aAAa,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,CAAC;QACjD,aAAa,CAAC,cAAc,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IAErE,MAAM,KAAK,GAAG,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC;IAEzC,OAAO;QACL,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM;QAClD,IAAI,EAAE,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC;QACjC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;QACrC,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC;QACnD,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;QAChD,OAAO;QACP,IAAI;QACJ,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,gBAAgB,EAAE,CAAC;QACxD,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;QACxC,GAAG,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,CAAC;QACjC,GAAG,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;KACjD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAC7B,UAA2C,EAC3C,OAAO,GAA4B,EAAE;IAErC,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;YAC/B,KAAK,MAAM,UAAU,IAAI,WAAW,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC/D,IAAI,UAAU,EAAE,eAAe;oBAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;aAAM,IAAI,MAAM,KAAK,mBAAmB,EAAE,CAAC;YAC1C,KAAK,MAAM,cAAc,IAAI,WAAW,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACvE,IAAI,cAAc,EAAE,YAAY;oBAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -9,7 +9,11 @@
9
9
  */
10
10
  import type { ParsedPmcArticle, ParsedPmcAsset, ParsedPmcAuthor, ParsedPmcReference, ParsedPmcSection, ParsedPmcTable } from '../types.js';
11
11
  import { type JatsNode } from './pmc-xml-helpers.js';
12
- /** Extract authors from a single `<contrib-group>` node. Non-author contributors are skipped. */
12
+ /**
13
+ * Extract authors from a single `<contrib-group>` node. Non-author contributors
14
+ * are skipped. A name part the deposit lacks is omitted; a `<suffix>` is kept
15
+ * verbatim (`IV`, never rewritten to `4th`). (#226)
16
+ */
13
17
  export declare function extractJatsAuthors(contribGroup: JatsNode | undefined): ParsedPmcAuthor[];
14
18
  /**
15
19
  * Extract body sections from a `<body>` node, walking children in document order.
@@ -40,10 +44,10 @@ export declare function extractBodySections(body: JatsNode | undefined): ParsedP
40
44
  * The walk covers the whole article rather than `<body>` alone: about a quarter
41
45
  * of real tables sit in `<floats-group>`, `<back>/<sec>`, `<table-wrap-group>`
42
46
  * or `<app-group>/<app>`, so a body-scoped extractor drops them. Each table
43
- * names the innermost enclosing `<sec>` wherever that sits — a back-matter or
44
- * appendix section counts, and naming it is the reader's only positional cue
45
- * there. Only a table inside no `<sec>` at all, such as a `<floats-group>`
46
- * deposit, carries no section name.
47
+ * names the innermost enclosing section wherever that sits — a back-matter
48
+ * `<sec>`, `<app>`, `<notes>` or `<fn-group>` counts, and naming it is the
49
+ * reader's only positional cue there. Only a table inside no section at all,
50
+ * such as a `<floats-group>` deposit, carries no section name. (#206)
47
51
  *
48
52
  * Only XHTML `<tr>`/`<td>`/`<th>` bodies are read. **Decision, not an
49
53
  * oversight:** across a 283-table survey of open-access records, 276 were XHTML,
@@ -71,9 +75,10 @@ export declare const MAX_TABLE_COLUMNS = 512;
71
75
  * supplementary material sit outside `<body>` entirely — `<floats-group>`
72
76
  * deposits, `<back>/<sec>` and `<app-group>/<app>` placements, and figures
73
77
  * hanging off the abstract in `<front>`. Each asset names the innermost
74
- * enclosing `<sec>` wherever that sits, an untitled one inheriting its parent's
75
- * title, so the reader keeps a positional cue; an asset inside no `<sec>` at all
76
- * carries no section name. (#130)
78
+ * enclosing section wherever that sits — a back-matter element read as one
79
+ * included — an untitled `<sec>` inheriting its parent's title, so the reader
80
+ * keeps a positional cue; an asset inside no section at all carries no section
81
+ * name. (#130, #206)
77
82
  */
78
83
  export declare function extractPmcAssets(root: JatsNode | undefined): ParsedPmcAsset[];
79
84
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pmc-article-parser.d.ts","sourceRoot":"","sources":["../../../../src/services/ncbi/parsing/pmc-article-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EAEd,eAAe,EAEf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,EAQL,KAAK,QAAQ,EAUd,MAAM,sBAAsB,CAAC;AAkI9B,iGAAiG;AACjG,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,EAAE,CA0BxF;AAusBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,gBAAgB,EAAE,CA+BlF;AA4HD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,cAAc,EAAE,CAO7E;AAsFD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAoGrC;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,cAAc,EAAE,CAQ7E;AAqRD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,kBAAkB,EAAE,CAsClF;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,QAAQ,GAAG,gBAAgB,CA+CvE"}
1
+ {"version":3,"file":"pmc-article-parser.d.ts","sourceRoot":"","sources":["../../../../src/services/ncbi/parsing/pmc-article-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EAEd,eAAe,EAEf,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EAEf,MAAM,aAAa,CAAC;AACrB,OAAO,EAUL,KAAK,QAAQ,EAWd,MAAM,sBAAsB,CAAC;AAkI9B;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,QAAQ,GAAG,SAAS,GAAG,eAAe,EAAE,CA4BxF;AA4wBD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,gBAAgB,EAAE,CAElF;AA6SD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,cAAc,EAAE,CAO7E;AAgGD;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAoGrC;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,cAAc,EAAE,CAQ7E;AA8TD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,kBAAkB,EAAE,CAsClF;AAID;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,QAAQ,GAAG,gBAAgB,CAkDvE"}