rotion 0.0.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.
Files changed (1259) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +159 -0
  3. package/dist/exporter/files.d.ts +23 -0
  4. package/dist/exporter/files.js +329 -0
  5. package/dist/exporter/files.js.map +1 -0
  6. package/dist/exporter/index.d.ts +2 -0
  7. package/dist/exporter/index.js +3 -0
  8. package/dist/exporter/index.js.map +1 -0
  9. package/dist/exporter/notion.d.ts +18 -0
  10. package/dist/exporter/notion.js +400 -0
  11. package/dist/exporter/notion.js.map +1 -0
  12. package/dist/exporter/types.d.ts +496 -0
  13. package/dist/exporter/types.js +2 -0
  14. package/dist/exporter/types.js.map +1 -0
  15. package/dist/exporter.backup/files.d.ts +23 -0
  16. package/dist/exporter.backup/files.js +329 -0
  17. package/dist/exporter.backup/files.js.map +1 -0
  18. package/dist/exporter.backup/index.d.ts +2 -0
  19. package/dist/exporter.backup/index.js +3 -0
  20. package/dist/exporter.backup/index.js.map +1 -0
  21. package/dist/exporter.backup/notion.d.ts +18 -0
  22. package/dist/exporter.backup/notion.js +400 -0
  23. package/dist/exporter.backup/notion.js.map +1 -0
  24. package/dist/exporter.backup/types.d.ts +496 -0
  25. package/dist/exporter.backup/types.js +2 -0
  26. package/dist/exporter.backup/types.js.map +1 -0
  27. package/dist/files.d.ts +23 -0
  28. package/dist/index.d.ts +2 -0
  29. package/dist/notion.d.ts +18 -0
  30. package/dist/types.d.ts +496 -0
  31. package/dist/ui/cjs/index.js +19994 -0
  32. package/dist/ui/cjs/index.js.map +1 -0
  33. package/dist/ui/cjs/types/exporter/files.d.ts +23 -0
  34. package/dist/ui/cjs/types/exporter/index.d.ts +2 -0
  35. package/dist/ui/cjs/types/exporter/notion.d.ts +18 -0
  36. package/dist/ui/cjs/types/exporter/types.d.ts +496 -0
  37. package/dist/ui/cjs/types/ui/components/Gallery/Gallery.d.ts +4 -0
  38. package/dist/ui/cjs/types/ui/components/Gallery/Gallery.types.d.ts +14 -0
  39. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCard/GalleryCard.d.ts +4 -0
  40. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCard/GalleryCard.types.d.ts +12 -0
  41. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCard/GalleryHandler.d.ts +4 -0
  42. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCard/GalleryHandler.types.d.ts +5 -0
  43. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCard/GalleryLinkedCard.d.ts +4 -0
  44. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCard/GalleryLinkedCard.types.d.ts +10 -0
  45. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCard/GalleryPreview.d.ts +6 -0
  46. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCard/index.d.ts +2 -0
  47. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.d.ts +4 -0
  48. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.types.d.ts +3 -0
  49. package/dist/ui/cjs/types/ui/components/Gallery/GalleryCheckboxField/index.d.ts +2 -0
  50. package/dist/ui/cjs/types/ui/components/Gallery/GalleryDateField/DateField.types.d.ts +4 -0
  51. package/dist/ui/cjs/types/ui/components/Gallery/GalleryDateField/GalleryDateField.d.ts +4 -0
  52. package/dist/ui/cjs/types/ui/components/Gallery/GalleryDateField/index.d.ts +2 -0
  53. package/dist/ui/cjs/types/ui/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.d.ts +4 -0
  54. package/dist/ui/cjs/types/ui/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.types.d.ts +7 -0
  55. package/dist/ui/cjs/types/ui/components/Gallery/GalleryMultiSelectField/index.d.ts +2 -0
  56. package/dist/ui/cjs/types/ui/components/Gallery/GalleryNumberField/GalleryNumberField.d.ts +4 -0
  57. package/dist/ui/cjs/types/ui/components/Gallery/GalleryNumberField/GalleryNumberField.types.d.ts +4 -0
  58. package/dist/ui/cjs/types/ui/components/Gallery/GalleryNumberField/index.d.ts +2 -0
  59. package/dist/ui/cjs/types/ui/components/Gallery/GalleryRichTextField/RichTextField.d.ts +4 -0
  60. package/dist/ui/cjs/types/ui/components/Gallery/GalleryRichTextField/RichTextField.types.d.ts +4 -0
  61. package/dist/ui/cjs/types/ui/components/Gallery/GalleryRichTextField/index.d.ts +2 -0
  62. package/dist/ui/cjs/types/ui/components/Gallery/GalleryTitleField/GalleryTitleField.d.ts +4 -0
  63. package/dist/ui/cjs/types/ui/components/Gallery/GalleryTitleField/GalleryTitleField.types.d.ts +4 -0
  64. package/dist/ui/cjs/types/ui/components/Gallery/GalleryTitleField/index.d.ts +2 -0
  65. package/dist/ui/cjs/types/ui/components/Gallery/GalleryUrlField/GalleryUrlField.d.ts +4 -0
  66. package/dist/ui/cjs/types/ui/components/Gallery/GalleryUrlField/GalleryUrlField.types.d.ts +3 -0
  67. package/dist/ui/cjs/types/ui/components/Gallery/GalleryUrlField/index.d.ts +2 -0
  68. package/dist/ui/cjs/types/ui/components/Gallery/index.d.ts +2 -0
  69. package/dist/ui/cjs/types/ui/components/List/List.d.ts +4 -0
  70. package/dist/ui/cjs/types/ui/components/List/List.types.d.ts +13 -0
  71. package/dist/ui/cjs/types/ui/components/List/ListCheckboxField/ListCheckboxField.d.ts +4 -0
  72. package/dist/ui/cjs/types/ui/components/List/ListCheckboxField/ListCheckboxField.types.d.ts +3 -0
  73. package/dist/ui/cjs/types/ui/components/List/ListCheckboxField/index.d.ts +2 -0
  74. package/dist/ui/cjs/types/ui/components/List/ListDateField/ListDateField.d.ts +4 -0
  75. package/dist/ui/cjs/types/ui/components/List/ListDateField/ListDateField.types.d.ts +4 -0
  76. package/dist/ui/cjs/types/ui/components/List/ListDateField/index.d.ts +2 -0
  77. package/dist/ui/cjs/types/ui/components/List/ListHandler.d.ts +4 -0
  78. package/dist/ui/cjs/types/ui/components/List/ListHandler.types.d.ts +12 -0
  79. package/dist/ui/cjs/types/ui/components/List/ListMultiSelectField/ListMultiSelectField.d.ts +4 -0
  80. package/dist/ui/cjs/types/ui/components/List/ListMultiSelectField/ListMultiSelectField.types.d.ts +10 -0
  81. package/dist/ui/cjs/types/ui/components/List/ListMultiSelectField/index.d.ts +2 -0
  82. package/dist/ui/cjs/types/ui/components/List/ListNumberField/ListNumberField.d.ts +4 -0
  83. package/dist/ui/cjs/types/ui/components/List/ListNumberField/ListNumberField.types.d.ts +4 -0
  84. package/dist/ui/cjs/types/ui/components/List/ListNumberField/index.d.ts +2 -0
  85. package/dist/ui/cjs/types/ui/components/List/ListRichTextField/ListRichTextField.d.ts +4 -0
  86. package/dist/ui/cjs/types/ui/components/List/ListRichTextField/ListRichTextField.types.d.ts +4 -0
  87. package/dist/ui/cjs/types/ui/components/List/ListRichTextField/index.d.ts +2 -0
  88. package/dist/ui/cjs/types/ui/components/List/ListTitleField/ListTitleField.d.ts +4 -0
  89. package/dist/ui/cjs/types/ui/components/List/ListTitleField/ListTitleField.types.d.ts +11 -0
  90. package/dist/ui/cjs/types/ui/components/List/ListTitleField/index.d.ts +2 -0
  91. package/dist/ui/cjs/types/ui/components/List/ListUrlField/ListUrlField.d.ts +4 -0
  92. package/dist/ui/cjs/types/ui/components/List/ListUrlField/ListUrlField.types.d.ts +3 -0
  93. package/dist/ui/cjs/types/ui/components/List/ListUrlField/index.d.ts +2 -0
  94. package/dist/ui/cjs/types/ui/components/List/index.d.ts +2 -0
  95. package/dist/ui/cjs/types/ui/components/Page/BookmarkBlock/BookmarkBlock.d.ts +4 -0
  96. package/dist/ui/cjs/types/ui/components/Page/BookmarkBlock/BookmarkBlock.types.d.ts +4 -0
  97. package/dist/ui/cjs/types/ui/components/Page/BookmarkBlock/index.d.ts +2 -0
  98. package/dist/ui/cjs/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.d.ts +4 -0
  99. package/dist/ui/cjs/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.types.d.ts +4 -0
  100. package/dist/ui/cjs/types/ui/components/Page/BreadcrumbBlock/index.d.ts +2 -0
  101. package/dist/ui/cjs/types/ui/components/Page/BulletedListBlocks/BulletedListBlocks.d.ts +4 -0
  102. package/dist/ui/cjs/types/ui/components/Page/BulletedListBlocks/BulletedListBlocks.types.d.ts +10 -0
  103. package/dist/ui/cjs/types/ui/components/Page/BulletedListBlocks/index.d.ts +2 -0
  104. package/dist/ui/cjs/types/ui/components/Page/CalloutBlock/CalloutBlock.d.ts +4 -0
  105. package/dist/ui/cjs/types/ui/components/Page/CalloutBlock/CalloutBlock.types.d.ts +4 -0
  106. package/dist/ui/cjs/types/ui/components/Page/CalloutBlock/index.d.ts +2 -0
  107. package/dist/ui/cjs/types/ui/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.d.ts +4 -0
  108. package/dist/ui/cjs/types/ui/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.types.d.ts +14 -0
  109. package/dist/ui/cjs/types/ui/components/Page/ChildDatabaseBlock/index.d.ts +2 -0
  110. package/dist/ui/cjs/types/ui/components/Page/ChildPageBlock/ChildPageBlock.d.ts +4 -0
  111. package/dist/ui/cjs/types/ui/components/Page/ChildPageBlock/ChildPageBlock.types.d.ts +14 -0
  112. package/dist/ui/cjs/types/ui/components/Page/ChildPageBlock/index.d.ts +2 -0
  113. package/dist/ui/cjs/types/ui/components/Page/CodeBlock/Code/Code.d.ts +4 -0
  114. package/dist/ui/cjs/types/ui/components/Page/CodeBlock/Code/Code.types.d.ts +7 -0
  115. package/dist/ui/cjs/types/ui/components/Page/CodeBlock/Code/index.d.ts +2 -0
  116. package/dist/ui/cjs/types/ui/components/Page/CodeBlock/CodeBlock.d.ts +4 -0
  117. package/dist/ui/cjs/types/ui/components/Page/CodeBlock/CodeBlock.types.d.ts +6 -0
  118. package/dist/ui/cjs/types/ui/components/Page/CodeBlock/index.d.ts +2 -0
  119. package/dist/ui/cjs/types/ui/components/Page/ColumnListBlock/ColumnListBlock.d.ts +4 -0
  120. package/dist/ui/cjs/types/ui/components/Page/ColumnListBlock/ColumnListBlock.types.d.ts +10 -0
  121. package/dist/ui/cjs/types/ui/components/Page/ColumnListBlock/index.d.ts +2 -0
  122. package/dist/ui/cjs/types/ui/components/Page/EmbedBlock/EmbedBlock.d.ts +4 -0
  123. package/dist/ui/cjs/types/ui/components/Page/EmbedBlock/EmbedBlock.types.d.ts +4 -0
  124. package/dist/ui/cjs/types/ui/components/Page/EmbedBlock/index.d.ts +2 -0
  125. package/dist/ui/cjs/types/ui/components/Page/EquationBlock/EquationBlock.d.ts +4 -0
  126. package/dist/ui/cjs/types/ui/components/Page/EquationBlock/EquationBlock.types.d.ts +4 -0
  127. package/dist/ui/cjs/types/ui/components/Page/EquationBlock/index.d.ts +2 -0
  128. package/dist/ui/cjs/types/ui/components/Page/FileBlock/FileBlock.d.ts +4 -0
  129. package/dist/ui/cjs/types/ui/components/Page/FileBlock/FileBlock.types.d.ts +4 -0
  130. package/dist/ui/cjs/types/ui/components/Page/FileBlock/index.d.ts +2 -0
  131. package/dist/ui/cjs/types/ui/components/Page/ImageBlock/ImageBlock.d.ts +4 -0
  132. package/dist/ui/cjs/types/ui/components/Page/ImageBlock/ImageBlock.types.d.ts +4 -0
  133. package/dist/ui/cjs/types/ui/components/Page/ImageBlock/index.d.ts +2 -0
  134. package/dist/ui/cjs/types/ui/components/Page/LinkPreviewBlock/LinkPreviewBlock.d.ts +4 -0
  135. package/dist/ui/cjs/types/ui/components/Page/LinkPreviewBlock/LinkPreviewBlock.types.d.ts +4 -0
  136. package/dist/ui/cjs/types/ui/components/Page/LinkPreviewBlock/index.d.ts +2 -0
  137. package/dist/ui/cjs/types/ui/components/Page/ListBlock/ListBlock.d.ts +4 -0
  138. package/dist/ui/cjs/types/ui/components/Page/ListBlock/ListBlock.types.d.ts +12 -0
  139. package/dist/ui/cjs/types/ui/components/Page/ListBlock/index.d.ts +2 -0
  140. package/dist/ui/cjs/types/ui/components/Page/NumberedListBlocks/NumberedListBlocks.d.ts +4 -0
  141. package/dist/ui/cjs/types/ui/components/Page/NumberedListBlocks/NumberedListBlocks.types.d.ts +10 -0
  142. package/dist/ui/cjs/types/ui/components/Page/NumberedListBlocks/index.d.ts +2 -0
  143. package/dist/ui/cjs/types/ui/components/Page/Page.d.ts +4 -0
  144. package/dist/ui/cjs/types/ui/components/Page/Page.types.d.ts +14 -0
  145. package/dist/ui/cjs/types/ui/components/Page/PageHandler.d.ts +15 -0
  146. package/dist/ui/cjs/types/ui/components/Page/PageHandler.types.d.ts +11 -0
  147. package/dist/ui/cjs/types/ui/components/Page/PageIcon/PageIcon.d.ts +6 -0
  148. package/dist/ui/cjs/types/ui/components/Page/PageIcon/index.d.ts +2 -0
  149. package/dist/ui/cjs/types/ui/components/Page/PdfBlock/PdfBlock.d.ts +4 -0
  150. package/dist/ui/cjs/types/ui/components/Page/PdfBlock/PdfBlock.types.d.ts +4 -0
  151. package/dist/ui/cjs/types/ui/components/Page/PdfBlock/index.d.ts +2 -0
  152. package/dist/ui/cjs/types/ui/components/Page/SyncedBlock/SyncedBlock.d.ts +4 -0
  153. package/dist/ui/cjs/types/ui/components/Page/SyncedBlock/SyncedBlock.types.d.ts +4 -0
  154. package/dist/ui/cjs/types/ui/components/Page/SyncedBlock/index.d.ts +2 -0
  155. package/dist/ui/cjs/types/ui/components/Page/TableBlock/TableBlock.d.ts +4 -0
  156. package/dist/ui/cjs/types/ui/components/Page/TableBlock/TableBlock.types.d.ts +13 -0
  157. package/dist/ui/cjs/types/ui/components/Page/TableBlock/index.d.ts +2 -0
  158. package/dist/ui/cjs/types/ui/components/Page/TableOfContentsBlock/TableOfContentsBlock.d.ts +4 -0
  159. package/dist/ui/cjs/types/ui/components/Page/TableOfContentsBlock/TableOfContentsBlock.types.d.ts +4 -0
  160. package/dist/ui/cjs/types/ui/components/Page/TableOfContentsBlock/index.d.ts +2 -0
  161. package/dist/ui/cjs/types/ui/components/Page/TemplateBlock/TemplateBlock.d.ts +4 -0
  162. package/dist/ui/cjs/types/ui/components/Page/TemplateBlock/TemplateBlock.types.d.ts +4 -0
  163. package/dist/ui/cjs/types/ui/components/Page/TemplateBlock/index.d.ts +2 -0
  164. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Annotation/Annotation.d.ts +4 -0
  165. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Annotation/index.d.ts +2 -0
  166. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Equation/Equation.d.ts +4 -0
  167. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Equation/Equation.types.d.ts +6 -0
  168. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Equation/index.d.ts +2 -0
  169. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.d.ts +5 -0
  170. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.types.d.ts +12 -0
  171. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/LinkIfLinked/index.d.ts +2 -0
  172. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Mention/Mention.d.ts +4 -0
  173. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Mention/Mention.types.d.ts +6 -0
  174. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.d.ts +4 -0
  175. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.types.d.ts +4 -0
  176. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Mention/UserMention/index.d.ts +2 -0
  177. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Mention/index.d.ts +2 -0
  178. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/RichText.d.ts +4 -0
  179. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/RichText.types.d.ts +7 -0
  180. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Text/Text.d.ts +4 -0
  181. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Text/Text.types.d.ts +6 -0
  182. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/Text/index.d.ts +2 -0
  183. package/dist/ui/cjs/types/ui/components/Page/TextBlock/RichText/index.d.ts +2 -0
  184. package/dist/ui/cjs/types/ui/components/Page/TextBlock/TextBlock.d.ts +4 -0
  185. package/dist/ui/cjs/types/ui/components/Page/TextBlock/TextBlock.types.d.ts +6 -0
  186. package/dist/ui/cjs/types/ui/components/Page/TextBlock/index.d.ts +2 -0
  187. package/dist/ui/cjs/types/ui/components/Page/ToDoBlock/ToDoBlock.d.ts +4 -0
  188. package/dist/ui/cjs/types/ui/components/Page/ToDoBlock/ToDoBlock.types.d.ts +4 -0
  189. package/dist/ui/cjs/types/ui/components/Page/ToDoBlock/index.d.ts +2 -0
  190. package/dist/ui/cjs/types/ui/components/Page/ToggleBlock/ToggleBlock.d.ts +4 -0
  191. package/dist/ui/cjs/types/ui/components/Page/ToggleBlock/ToggleBlock.types.d.ts +4 -0
  192. package/dist/ui/cjs/types/ui/components/Page/ToggleBlock/index.d.ts +2 -0
  193. package/dist/ui/cjs/types/ui/components/Page/VideoBlock/VideoBlock.d.ts +4 -0
  194. package/dist/ui/cjs/types/ui/components/Page/VideoBlock/VideoBlock.types.d.ts +4 -0
  195. package/dist/ui/cjs/types/ui/components/Page/VideoBlock/index.d.ts +2 -0
  196. package/dist/ui/cjs/types/ui/components/Page/index.d.ts +2 -0
  197. package/dist/ui/cjs/types/ui/components/Table/Table.d.ts +4 -0
  198. package/dist/ui/cjs/types/ui/components/Table/Table.types.d.ts +13 -0
  199. package/dist/ui/cjs/types/ui/components/Table/TableCheckboxField/TableCheckboxField.d.ts +4 -0
  200. package/dist/ui/cjs/types/ui/components/Table/TableCheckboxField/TableCheckboxField.types.d.ts +3 -0
  201. package/dist/ui/cjs/types/ui/components/Table/TableCheckboxField/index.d.ts +2 -0
  202. package/dist/ui/cjs/types/ui/components/Table/TableDateField/TableDateField.d.ts +4 -0
  203. package/dist/ui/cjs/types/ui/components/Table/TableDateField/TableDateField.types.d.ts +4 -0
  204. package/dist/ui/cjs/types/ui/components/Table/TableDateField/index.d.ts +2 -0
  205. package/dist/ui/cjs/types/ui/components/Table/TableHandler.d.ts +4 -0
  206. package/dist/ui/cjs/types/ui/components/Table/TableHandler.types.d.ts +12 -0
  207. package/dist/ui/cjs/types/ui/components/Table/TableIcon/TableIcon.d.ts +4 -0
  208. package/dist/ui/cjs/types/ui/components/Table/TableIcon/TableIcon.types.d.ts +3 -0
  209. package/dist/ui/cjs/types/ui/components/Table/TableIcon/index.d.ts +2 -0
  210. package/dist/ui/cjs/types/ui/components/Table/TableMultiSelectField/TableMultiSelectField.d.ts +4 -0
  211. package/dist/ui/cjs/types/ui/components/Table/TableMultiSelectField/TableMultiSelectField.types.d.ts +7 -0
  212. package/dist/ui/cjs/types/ui/components/Table/TableMultiSelectField/index.d.ts +2 -0
  213. package/dist/ui/cjs/types/ui/components/Table/TableNumberField/TableNumberField.d.ts +4 -0
  214. package/dist/ui/cjs/types/ui/components/Table/TableNumberField/TableNumberField.types.d.ts +4 -0
  215. package/dist/ui/cjs/types/ui/components/Table/TableNumberField/index.d.ts +2 -0
  216. package/dist/ui/cjs/types/ui/components/Table/TablePropertyNameAndIcon.d.ts +4 -0
  217. package/dist/ui/cjs/types/ui/components/Table/TablePropertyNameAndIcon.types.d.ts +5 -0
  218. package/dist/ui/cjs/types/ui/components/Table/TableRichTextField/TableRichTextField.d.ts +4 -0
  219. package/dist/ui/cjs/types/ui/components/Table/TableRichTextField/TableRichTextField.types.d.ts +4 -0
  220. package/dist/ui/cjs/types/ui/components/Table/TableRichTextField/index.d.ts +2 -0
  221. package/dist/ui/cjs/types/ui/components/Table/TableSelectField/TableSelectField.d.ts +4 -0
  222. package/dist/ui/cjs/types/ui/components/Table/TableSelectField/TableSelectField.types.d.ts +7 -0
  223. package/dist/ui/cjs/types/ui/components/Table/TableSelectField/index.d.ts +2 -0
  224. package/dist/ui/cjs/types/ui/components/Table/TableTitleField/TableTitleField.d.ts +4 -0
  225. package/dist/ui/cjs/types/ui/components/Table/TableTitleField/TableTitleField.types.d.ts +11 -0
  226. package/dist/ui/cjs/types/ui/components/Table/TableTitleField/index.d.ts +2 -0
  227. package/dist/ui/cjs/types/ui/components/Table/TableUrlField/TableUrlField.d.ts +4 -0
  228. package/dist/ui/cjs/types/ui/components/Table/TableUrlField/TableUrlField.types.d.ts +3 -0
  229. package/dist/ui/cjs/types/ui/components/Table/TableUrlField/index.d.ts +2 -0
  230. package/dist/ui/cjs/types/ui/components/Table/index.d.ts +2 -0
  231. package/dist/ui/cjs/types/ui/components/index.d.ts +56 -0
  232. package/dist/ui/cjs/types/ui/components/lib.d.ts +13 -0
  233. package/dist/ui/cjs/types/ui/components/types.d.ts +17 -0
  234. package/dist/ui/cjs/types/ui/index.d.ts +1 -0
  235. package/dist/ui/esm/index.js +19934 -0
  236. package/dist/ui/esm/index.js.map +1 -0
  237. package/dist/ui/esm/types/exporter/files.d.ts +23 -0
  238. package/dist/ui/esm/types/exporter/index.d.ts +2 -0
  239. package/dist/ui/esm/types/exporter/notion.d.ts +18 -0
  240. package/dist/ui/esm/types/exporter/types.d.ts +496 -0
  241. package/dist/ui/esm/types/ui/components/Gallery/Gallery.d.ts +4 -0
  242. package/dist/ui/esm/types/ui/components/Gallery/Gallery.types.d.ts +14 -0
  243. package/dist/ui/esm/types/ui/components/Gallery/GalleryCard/GalleryCard.d.ts +4 -0
  244. package/dist/ui/esm/types/ui/components/Gallery/GalleryCard/GalleryCard.types.d.ts +12 -0
  245. package/dist/ui/esm/types/ui/components/Gallery/GalleryCard/GalleryHandler.d.ts +4 -0
  246. package/dist/ui/esm/types/ui/components/Gallery/GalleryCard/GalleryHandler.types.d.ts +5 -0
  247. package/dist/ui/esm/types/ui/components/Gallery/GalleryCard/GalleryLinkedCard.d.ts +4 -0
  248. package/dist/ui/esm/types/ui/components/Gallery/GalleryCard/GalleryLinkedCard.types.d.ts +10 -0
  249. package/dist/ui/esm/types/ui/components/Gallery/GalleryCard/GalleryPreview.d.ts +6 -0
  250. package/dist/ui/esm/types/ui/components/Gallery/GalleryCard/index.d.ts +2 -0
  251. package/dist/ui/esm/types/ui/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.d.ts +4 -0
  252. package/dist/ui/esm/types/ui/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.types.d.ts +3 -0
  253. package/dist/ui/esm/types/ui/components/Gallery/GalleryCheckboxField/index.d.ts +2 -0
  254. package/dist/ui/esm/types/ui/components/Gallery/GalleryDateField/DateField.types.d.ts +4 -0
  255. package/dist/ui/esm/types/ui/components/Gallery/GalleryDateField/GalleryDateField.d.ts +4 -0
  256. package/dist/ui/esm/types/ui/components/Gallery/GalleryDateField/index.d.ts +2 -0
  257. package/dist/ui/esm/types/ui/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.d.ts +4 -0
  258. package/dist/ui/esm/types/ui/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.types.d.ts +7 -0
  259. package/dist/ui/esm/types/ui/components/Gallery/GalleryMultiSelectField/index.d.ts +2 -0
  260. package/dist/ui/esm/types/ui/components/Gallery/GalleryNumberField/GalleryNumberField.d.ts +4 -0
  261. package/dist/ui/esm/types/ui/components/Gallery/GalleryNumberField/GalleryNumberField.types.d.ts +4 -0
  262. package/dist/ui/esm/types/ui/components/Gallery/GalleryNumberField/index.d.ts +2 -0
  263. package/dist/ui/esm/types/ui/components/Gallery/GalleryRichTextField/RichTextField.d.ts +4 -0
  264. package/dist/ui/esm/types/ui/components/Gallery/GalleryRichTextField/RichTextField.types.d.ts +4 -0
  265. package/dist/ui/esm/types/ui/components/Gallery/GalleryRichTextField/index.d.ts +2 -0
  266. package/dist/ui/esm/types/ui/components/Gallery/GalleryTitleField/GalleryTitleField.d.ts +4 -0
  267. package/dist/ui/esm/types/ui/components/Gallery/GalleryTitleField/GalleryTitleField.types.d.ts +4 -0
  268. package/dist/ui/esm/types/ui/components/Gallery/GalleryTitleField/index.d.ts +2 -0
  269. package/dist/ui/esm/types/ui/components/Gallery/GalleryUrlField/GalleryUrlField.d.ts +4 -0
  270. package/dist/ui/esm/types/ui/components/Gallery/GalleryUrlField/GalleryUrlField.types.d.ts +3 -0
  271. package/dist/ui/esm/types/ui/components/Gallery/GalleryUrlField/index.d.ts +2 -0
  272. package/dist/ui/esm/types/ui/components/Gallery/index.d.ts +2 -0
  273. package/dist/ui/esm/types/ui/components/List/List.d.ts +4 -0
  274. package/dist/ui/esm/types/ui/components/List/List.types.d.ts +13 -0
  275. package/dist/ui/esm/types/ui/components/List/ListCheckboxField/ListCheckboxField.d.ts +4 -0
  276. package/dist/ui/esm/types/ui/components/List/ListCheckboxField/ListCheckboxField.types.d.ts +3 -0
  277. package/dist/ui/esm/types/ui/components/List/ListCheckboxField/index.d.ts +2 -0
  278. package/dist/ui/esm/types/ui/components/List/ListDateField/ListDateField.d.ts +4 -0
  279. package/dist/ui/esm/types/ui/components/List/ListDateField/ListDateField.types.d.ts +4 -0
  280. package/dist/ui/esm/types/ui/components/List/ListDateField/index.d.ts +2 -0
  281. package/dist/ui/esm/types/ui/components/List/ListHandler.d.ts +4 -0
  282. package/dist/ui/esm/types/ui/components/List/ListHandler.types.d.ts +12 -0
  283. package/dist/ui/esm/types/ui/components/List/ListMultiSelectField/ListMultiSelectField.d.ts +4 -0
  284. package/dist/ui/esm/types/ui/components/List/ListMultiSelectField/ListMultiSelectField.types.d.ts +10 -0
  285. package/dist/ui/esm/types/ui/components/List/ListMultiSelectField/index.d.ts +2 -0
  286. package/dist/ui/esm/types/ui/components/List/ListNumberField/ListNumberField.d.ts +4 -0
  287. package/dist/ui/esm/types/ui/components/List/ListNumberField/ListNumberField.types.d.ts +4 -0
  288. package/dist/ui/esm/types/ui/components/List/ListNumberField/index.d.ts +2 -0
  289. package/dist/ui/esm/types/ui/components/List/ListRichTextField/ListRichTextField.d.ts +4 -0
  290. package/dist/ui/esm/types/ui/components/List/ListRichTextField/ListRichTextField.types.d.ts +4 -0
  291. package/dist/ui/esm/types/ui/components/List/ListRichTextField/index.d.ts +2 -0
  292. package/dist/ui/esm/types/ui/components/List/ListTitleField/ListTitleField.d.ts +4 -0
  293. package/dist/ui/esm/types/ui/components/List/ListTitleField/ListTitleField.types.d.ts +11 -0
  294. package/dist/ui/esm/types/ui/components/List/ListTitleField/index.d.ts +2 -0
  295. package/dist/ui/esm/types/ui/components/List/ListUrlField/ListUrlField.d.ts +4 -0
  296. package/dist/ui/esm/types/ui/components/List/ListUrlField/ListUrlField.types.d.ts +3 -0
  297. package/dist/ui/esm/types/ui/components/List/ListUrlField/index.d.ts +2 -0
  298. package/dist/ui/esm/types/ui/components/List/index.d.ts +2 -0
  299. package/dist/ui/esm/types/ui/components/Page/BookmarkBlock/BookmarkBlock.d.ts +4 -0
  300. package/dist/ui/esm/types/ui/components/Page/BookmarkBlock/BookmarkBlock.types.d.ts +4 -0
  301. package/dist/ui/esm/types/ui/components/Page/BookmarkBlock/index.d.ts +2 -0
  302. package/dist/ui/esm/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.d.ts +4 -0
  303. package/dist/ui/esm/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.types.d.ts +4 -0
  304. package/dist/ui/esm/types/ui/components/Page/BreadcrumbBlock/index.d.ts +2 -0
  305. package/dist/ui/esm/types/ui/components/Page/BulletedListBlocks/BulletedListBlocks.d.ts +4 -0
  306. package/dist/ui/esm/types/ui/components/Page/BulletedListBlocks/BulletedListBlocks.types.d.ts +10 -0
  307. package/dist/ui/esm/types/ui/components/Page/BulletedListBlocks/index.d.ts +2 -0
  308. package/dist/ui/esm/types/ui/components/Page/CalloutBlock/CalloutBlock.d.ts +4 -0
  309. package/dist/ui/esm/types/ui/components/Page/CalloutBlock/CalloutBlock.types.d.ts +4 -0
  310. package/dist/ui/esm/types/ui/components/Page/CalloutBlock/index.d.ts +2 -0
  311. package/dist/ui/esm/types/ui/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.d.ts +4 -0
  312. package/dist/ui/esm/types/ui/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.types.d.ts +14 -0
  313. package/dist/ui/esm/types/ui/components/Page/ChildDatabaseBlock/index.d.ts +2 -0
  314. package/dist/ui/esm/types/ui/components/Page/ChildPageBlock/ChildPageBlock.d.ts +4 -0
  315. package/dist/ui/esm/types/ui/components/Page/ChildPageBlock/ChildPageBlock.types.d.ts +14 -0
  316. package/dist/ui/esm/types/ui/components/Page/ChildPageBlock/index.d.ts +2 -0
  317. package/dist/ui/esm/types/ui/components/Page/CodeBlock/Code/Code.d.ts +4 -0
  318. package/dist/ui/esm/types/ui/components/Page/CodeBlock/Code/Code.types.d.ts +7 -0
  319. package/dist/ui/esm/types/ui/components/Page/CodeBlock/Code/index.d.ts +2 -0
  320. package/dist/ui/esm/types/ui/components/Page/CodeBlock/CodeBlock.d.ts +4 -0
  321. package/dist/ui/esm/types/ui/components/Page/CodeBlock/CodeBlock.types.d.ts +6 -0
  322. package/dist/ui/esm/types/ui/components/Page/CodeBlock/index.d.ts +2 -0
  323. package/dist/ui/esm/types/ui/components/Page/ColumnListBlock/ColumnListBlock.d.ts +4 -0
  324. package/dist/ui/esm/types/ui/components/Page/ColumnListBlock/ColumnListBlock.types.d.ts +10 -0
  325. package/dist/ui/esm/types/ui/components/Page/ColumnListBlock/index.d.ts +2 -0
  326. package/dist/ui/esm/types/ui/components/Page/EmbedBlock/EmbedBlock.d.ts +4 -0
  327. package/dist/ui/esm/types/ui/components/Page/EmbedBlock/EmbedBlock.types.d.ts +4 -0
  328. package/dist/ui/esm/types/ui/components/Page/EmbedBlock/index.d.ts +2 -0
  329. package/dist/ui/esm/types/ui/components/Page/EquationBlock/EquationBlock.d.ts +4 -0
  330. package/dist/ui/esm/types/ui/components/Page/EquationBlock/EquationBlock.types.d.ts +4 -0
  331. package/dist/ui/esm/types/ui/components/Page/EquationBlock/index.d.ts +2 -0
  332. package/dist/ui/esm/types/ui/components/Page/FileBlock/FileBlock.d.ts +4 -0
  333. package/dist/ui/esm/types/ui/components/Page/FileBlock/FileBlock.types.d.ts +4 -0
  334. package/dist/ui/esm/types/ui/components/Page/FileBlock/index.d.ts +2 -0
  335. package/dist/ui/esm/types/ui/components/Page/ImageBlock/ImageBlock.d.ts +4 -0
  336. package/dist/ui/esm/types/ui/components/Page/ImageBlock/ImageBlock.types.d.ts +4 -0
  337. package/dist/ui/esm/types/ui/components/Page/ImageBlock/index.d.ts +2 -0
  338. package/dist/ui/esm/types/ui/components/Page/LinkPreviewBlock/LinkPreviewBlock.d.ts +4 -0
  339. package/dist/ui/esm/types/ui/components/Page/LinkPreviewBlock/LinkPreviewBlock.types.d.ts +4 -0
  340. package/dist/ui/esm/types/ui/components/Page/LinkPreviewBlock/index.d.ts +2 -0
  341. package/dist/ui/esm/types/ui/components/Page/ListBlock/ListBlock.d.ts +4 -0
  342. package/dist/ui/esm/types/ui/components/Page/ListBlock/ListBlock.types.d.ts +12 -0
  343. package/dist/ui/esm/types/ui/components/Page/ListBlock/index.d.ts +2 -0
  344. package/dist/ui/esm/types/ui/components/Page/NumberedListBlocks/NumberedListBlocks.d.ts +4 -0
  345. package/dist/ui/esm/types/ui/components/Page/NumberedListBlocks/NumberedListBlocks.types.d.ts +10 -0
  346. package/dist/ui/esm/types/ui/components/Page/NumberedListBlocks/index.d.ts +2 -0
  347. package/dist/ui/esm/types/ui/components/Page/Page.d.ts +4 -0
  348. package/dist/ui/esm/types/ui/components/Page/Page.types.d.ts +14 -0
  349. package/dist/ui/esm/types/ui/components/Page/PageHandler.d.ts +15 -0
  350. package/dist/ui/esm/types/ui/components/Page/PageHandler.types.d.ts +11 -0
  351. package/dist/ui/esm/types/ui/components/Page/PageIcon/PageIcon.d.ts +6 -0
  352. package/dist/ui/esm/types/ui/components/Page/PageIcon/index.d.ts +2 -0
  353. package/dist/ui/esm/types/ui/components/Page/PdfBlock/PdfBlock.d.ts +4 -0
  354. package/dist/ui/esm/types/ui/components/Page/PdfBlock/PdfBlock.types.d.ts +4 -0
  355. package/dist/ui/esm/types/ui/components/Page/PdfBlock/index.d.ts +2 -0
  356. package/dist/ui/esm/types/ui/components/Page/SyncedBlock/SyncedBlock.d.ts +4 -0
  357. package/dist/ui/esm/types/ui/components/Page/SyncedBlock/SyncedBlock.types.d.ts +4 -0
  358. package/dist/ui/esm/types/ui/components/Page/SyncedBlock/index.d.ts +2 -0
  359. package/dist/ui/esm/types/ui/components/Page/TableBlock/TableBlock.d.ts +4 -0
  360. package/dist/ui/esm/types/ui/components/Page/TableBlock/TableBlock.types.d.ts +13 -0
  361. package/dist/ui/esm/types/ui/components/Page/TableBlock/index.d.ts +2 -0
  362. package/dist/ui/esm/types/ui/components/Page/TableOfContentsBlock/TableOfContentsBlock.d.ts +4 -0
  363. package/dist/ui/esm/types/ui/components/Page/TableOfContentsBlock/TableOfContentsBlock.types.d.ts +4 -0
  364. package/dist/ui/esm/types/ui/components/Page/TableOfContentsBlock/index.d.ts +2 -0
  365. package/dist/ui/esm/types/ui/components/Page/TemplateBlock/TemplateBlock.d.ts +4 -0
  366. package/dist/ui/esm/types/ui/components/Page/TemplateBlock/TemplateBlock.types.d.ts +4 -0
  367. package/dist/ui/esm/types/ui/components/Page/TemplateBlock/index.d.ts +2 -0
  368. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Annotation/Annotation.d.ts +4 -0
  369. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Annotation/index.d.ts +2 -0
  370. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Equation/Equation.d.ts +4 -0
  371. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Equation/Equation.types.d.ts +6 -0
  372. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Equation/index.d.ts +2 -0
  373. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.d.ts +5 -0
  374. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.types.d.ts +12 -0
  375. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/LinkIfLinked/index.d.ts +2 -0
  376. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Mention/Mention.d.ts +4 -0
  377. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Mention/Mention.types.d.ts +6 -0
  378. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.d.ts +4 -0
  379. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.types.d.ts +4 -0
  380. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Mention/UserMention/index.d.ts +2 -0
  381. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Mention/index.d.ts +2 -0
  382. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/RichText.d.ts +4 -0
  383. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/RichText.types.d.ts +7 -0
  384. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Text/Text.d.ts +4 -0
  385. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Text/Text.types.d.ts +6 -0
  386. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/Text/index.d.ts +2 -0
  387. package/dist/ui/esm/types/ui/components/Page/TextBlock/RichText/index.d.ts +2 -0
  388. package/dist/ui/esm/types/ui/components/Page/TextBlock/TextBlock.d.ts +4 -0
  389. package/dist/ui/esm/types/ui/components/Page/TextBlock/TextBlock.types.d.ts +6 -0
  390. package/dist/ui/esm/types/ui/components/Page/TextBlock/index.d.ts +2 -0
  391. package/dist/ui/esm/types/ui/components/Page/ToDoBlock/ToDoBlock.d.ts +4 -0
  392. package/dist/ui/esm/types/ui/components/Page/ToDoBlock/ToDoBlock.types.d.ts +4 -0
  393. package/dist/ui/esm/types/ui/components/Page/ToDoBlock/index.d.ts +2 -0
  394. package/dist/ui/esm/types/ui/components/Page/ToggleBlock/ToggleBlock.d.ts +4 -0
  395. package/dist/ui/esm/types/ui/components/Page/ToggleBlock/ToggleBlock.types.d.ts +4 -0
  396. package/dist/ui/esm/types/ui/components/Page/ToggleBlock/index.d.ts +2 -0
  397. package/dist/ui/esm/types/ui/components/Page/VideoBlock/VideoBlock.d.ts +4 -0
  398. package/dist/ui/esm/types/ui/components/Page/VideoBlock/VideoBlock.types.d.ts +4 -0
  399. package/dist/ui/esm/types/ui/components/Page/VideoBlock/index.d.ts +2 -0
  400. package/dist/ui/esm/types/ui/components/Page/index.d.ts +2 -0
  401. package/dist/ui/esm/types/ui/components/Table/Table.d.ts +4 -0
  402. package/dist/ui/esm/types/ui/components/Table/Table.types.d.ts +13 -0
  403. package/dist/ui/esm/types/ui/components/Table/TableCheckboxField/TableCheckboxField.d.ts +4 -0
  404. package/dist/ui/esm/types/ui/components/Table/TableCheckboxField/TableCheckboxField.types.d.ts +3 -0
  405. package/dist/ui/esm/types/ui/components/Table/TableCheckboxField/index.d.ts +2 -0
  406. package/dist/ui/esm/types/ui/components/Table/TableDateField/TableDateField.d.ts +4 -0
  407. package/dist/ui/esm/types/ui/components/Table/TableDateField/TableDateField.types.d.ts +4 -0
  408. package/dist/ui/esm/types/ui/components/Table/TableDateField/index.d.ts +2 -0
  409. package/dist/ui/esm/types/ui/components/Table/TableHandler.d.ts +4 -0
  410. package/dist/ui/esm/types/ui/components/Table/TableHandler.types.d.ts +12 -0
  411. package/dist/ui/esm/types/ui/components/Table/TableIcon/TableIcon.d.ts +4 -0
  412. package/dist/ui/esm/types/ui/components/Table/TableIcon/TableIcon.types.d.ts +3 -0
  413. package/dist/ui/esm/types/ui/components/Table/TableIcon/index.d.ts +2 -0
  414. package/dist/ui/esm/types/ui/components/Table/TableMultiSelectField/TableMultiSelectField.d.ts +4 -0
  415. package/dist/ui/esm/types/ui/components/Table/TableMultiSelectField/TableMultiSelectField.types.d.ts +7 -0
  416. package/dist/ui/esm/types/ui/components/Table/TableMultiSelectField/index.d.ts +2 -0
  417. package/dist/ui/esm/types/ui/components/Table/TableNumberField/TableNumberField.d.ts +4 -0
  418. package/dist/ui/esm/types/ui/components/Table/TableNumberField/TableNumberField.types.d.ts +4 -0
  419. package/dist/ui/esm/types/ui/components/Table/TableNumberField/index.d.ts +2 -0
  420. package/dist/ui/esm/types/ui/components/Table/TablePropertyNameAndIcon.d.ts +4 -0
  421. package/dist/ui/esm/types/ui/components/Table/TablePropertyNameAndIcon.types.d.ts +5 -0
  422. package/dist/ui/esm/types/ui/components/Table/TableRichTextField/TableRichTextField.d.ts +4 -0
  423. package/dist/ui/esm/types/ui/components/Table/TableRichTextField/TableRichTextField.types.d.ts +4 -0
  424. package/dist/ui/esm/types/ui/components/Table/TableRichTextField/index.d.ts +2 -0
  425. package/dist/ui/esm/types/ui/components/Table/TableSelectField/TableSelectField.d.ts +4 -0
  426. package/dist/ui/esm/types/ui/components/Table/TableSelectField/TableSelectField.types.d.ts +7 -0
  427. package/dist/ui/esm/types/ui/components/Table/TableSelectField/index.d.ts +2 -0
  428. package/dist/ui/esm/types/ui/components/Table/TableTitleField/TableTitleField.d.ts +4 -0
  429. package/dist/ui/esm/types/ui/components/Table/TableTitleField/TableTitleField.types.d.ts +11 -0
  430. package/dist/ui/esm/types/ui/components/Table/TableTitleField/index.d.ts +2 -0
  431. package/dist/ui/esm/types/ui/components/Table/TableUrlField/TableUrlField.d.ts +4 -0
  432. package/dist/ui/esm/types/ui/components/Table/TableUrlField/TableUrlField.types.d.ts +3 -0
  433. package/dist/ui/esm/types/ui/components/Table/TableUrlField/index.d.ts +2 -0
  434. package/dist/ui/esm/types/ui/components/Table/index.d.ts +2 -0
  435. package/dist/ui/esm/types/ui/components/index.d.ts +56 -0
  436. package/dist/ui/esm/types/ui/components/lib.d.ts +13 -0
  437. package/dist/ui/esm/types/ui/components/types.d.ts +17 -0
  438. package/dist/ui/esm/types/ui/index.d.ts +1 -0
  439. package/dist/ui/styles/base.css +44 -0
  440. package/dist/ui/styles/gallery.css +172 -0
  441. package/dist/ui/styles/list.css +153 -0
  442. package/dist/ui/styles/notionate-dark.css +297 -0
  443. package/dist/ui/styles/notionate.css +5 -0
  444. package/dist/ui/styles/page.css +762 -0
  445. package/dist/ui/styles/table.css +166 -0
  446. package/dist/ui/types.d.ts +693 -0
  447. package/dist/ui/umd/index.js +19998 -0
  448. package/dist/ui/umd/index.js.map +1 -0
  449. package/dist/ui/umd/types/exporter/files.d.ts +23 -0
  450. package/dist/ui/umd/types/exporter/index.d.ts +2 -0
  451. package/dist/ui/umd/types/exporter/notion.d.ts +18 -0
  452. package/dist/ui/umd/types/exporter/types.d.ts +496 -0
  453. package/dist/ui/umd/types/ui/components/Gallery/Gallery.d.ts +4 -0
  454. package/dist/ui/umd/types/ui/components/Gallery/Gallery.types.d.ts +14 -0
  455. package/dist/ui/umd/types/ui/components/Gallery/GalleryCard/GalleryCard.d.ts +4 -0
  456. package/dist/ui/umd/types/ui/components/Gallery/GalleryCard/GalleryCard.types.d.ts +12 -0
  457. package/dist/ui/umd/types/ui/components/Gallery/GalleryCard/GalleryHandler.d.ts +4 -0
  458. package/dist/ui/umd/types/ui/components/Gallery/GalleryCard/GalleryHandler.types.d.ts +5 -0
  459. package/dist/ui/umd/types/ui/components/Gallery/GalleryCard/GalleryLinkedCard.d.ts +4 -0
  460. package/dist/ui/umd/types/ui/components/Gallery/GalleryCard/GalleryLinkedCard.types.d.ts +10 -0
  461. package/dist/ui/umd/types/ui/components/Gallery/GalleryCard/GalleryPreview.d.ts +6 -0
  462. package/dist/ui/umd/types/ui/components/Gallery/GalleryCard/index.d.ts +2 -0
  463. package/dist/ui/umd/types/ui/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.d.ts +4 -0
  464. package/dist/ui/umd/types/ui/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.types.d.ts +3 -0
  465. package/dist/ui/umd/types/ui/components/Gallery/GalleryCheckboxField/index.d.ts +2 -0
  466. package/dist/ui/umd/types/ui/components/Gallery/GalleryDateField/DateField.types.d.ts +4 -0
  467. package/dist/ui/umd/types/ui/components/Gallery/GalleryDateField/GalleryDateField.d.ts +4 -0
  468. package/dist/ui/umd/types/ui/components/Gallery/GalleryDateField/index.d.ts +2 -0
  469. package/dist/ui/umd/types/ui/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.d.ts +4 -0
  470. package/dist/ui/umd/types/ui/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.types.d.ts +7 -0
  471. package/dist/ui/umd/types/ui/components/Gallery/GalleryMultiSelectField/index.d.ts +2 -0
  472. package/dist/ui/umd/types/ui/components/Gallery/GalleryNumberField/GalleryNumberField.d.ts +4 -0
  473. package/dist/ui/umd/types/ui/components/Gallery/GalleryNumberField/GalleryNumberField.types.d.ts +4 -0
  474. package/dist/ui/umd/types/ui/components/Gallery/GalleryNumberField/index.d.ts +2 -0
  475. package/dist/ui/umd/types/ui/components/Gallery/GalleryRichTextField/RichTextField.d.ts +4 -0
  476. package/dist/ui/umd/types/ui/components/Gallery/GalleryRichTextField/RichTextField.types.d.ts +4 -0
  477. package/dist/ui/umd/types/ui/components/Gallery/GalleryRichTextField/index.d.ts +2 -0
  478. package/dist/ui/umd/types/ui/components/Gallery/GalleryTitleField/GalleryTitleField.d.ts +4 -0
  479. package/dist/ui/umd/types/ui/components/Gallery/GalleryTitleField/GalleryTitleField.types.d.ts +4 -0
  480. package/dist/ui/umd/types/ui/components/Gallery/GalleryTitleField/index.d.ts +2 -0
  481. package/dist/ui/umd/types/ui/components/Gallery/GalleryUrlField/GalleryUrlField.d.ts +4 -0
  482. package/dist/ui/umd/types/ui/components/Gallery/GalleryUrlField/GalleryUrlField.types.d.ts +3 -0
  483. package/dist/ui/umd/types/ui/components/Gallery/GalleryUrlField/index.d.ts +2 -0
  484. package/dist/ui/umd/types/ui/components/Gallery/index.d.ts +2 -0
  485. package/dist/ui/umd/types/ui/components/List/List.d.ts +4 -0
  486. package/dist/ui/umd/types/ui/components/List/List.types.d.ts +13 -0
  487. package/dist/ui/umd/types/ui/components/List/ListCheckboxField/ListCheckboxField.d.ts +4 -0
  488. package/dist/ui/umd/types/ui/components/List/ListCheckboxField/ListCheckboxField.types.d.ts +3 -0
  489. package/dist/ui/umd/types/ui/components/List/ListCheckboxField/index.d.ts +2 -0
  490. package/dist/ui/umd/types/ui/components/List/ListDateField/ListDateField.d.ts +4 -0
  491. package/dist/ui/umd/types/ui/components/List/ListDateField/ListDateField.types.d.ts +4 -0
  492. package/dist/ui/umd/types/ui/components/List/ListDateField/index.d.ts +2 -0
  493. package/dist/ui/umd/types/ui/components/List/ListHandler.d.ts +4 -0
  494. package/dist/ui/umd/types/ui/components/List/ListHandler.types.d.ts +12 -0
  495. package/dist/ui/umd/types/ui/components/List/ListMultiSelectField/ListMultiSelectField.d.ts +4 -0
  496. package/dist/ui/umd/types/ui/components/List/ListMultiSelectField/ListMultiSelectField.types.d.ts +10 -0
  497. package/dist/ui/umd/types/ui/components/List/ListMultiSelectField/index.d.ts +2 -0
  498. package/dist/ui/umd/types/ui/components/List/ListNumberField/ListNumberField.d.ts +4 -0
  499. package/dist/ui/umd/types/ui/components/List/ListNumberField/ListNumberField.types.d.ts +4 -0
  500. package/dist/ui/umd/types/ui/components/List/ListNumberField/index.d.ts +2 -0
  501. package/dist/ui/umd/types/ui/components/List/ListRichTextField/ListRichTextField.d.ts +4 -0
  502. package/dist/ui/umd/types/ui/components/List/ListRichTextField/ListRichTextField.types.d.ts +4 -0
  503. package/dist/ui/umd/types/ui/components/List/ListRichTextField/index.d.ts +2 -0
  504. package/dist/ui/umd/types/ui/components/List/ListTitleField/ListTitleField.d.ts +4 -0
  505. package/dist/ui/umd/types/ui/components/List/ListTitleField/ListTitleField.types.d.ts +11 -0
  506. package/dist/ui/umd/types/ui/components/List/ListTitleField/index.d.ts +2 -0
  507. package/dist/ui/umd/types/ui/components/List/ListUrlField/ListUrlField.d.ts +4 -0
  508. package/dist/ui/umd/types/ui/components/List/ListUrlField/ListUrlField.types.d.ts +3 -0
  509. package/dist/ui/umd/types/ui/components/List/ListUrlField/index.d.ts +2 -0
  510. package/dist/ui/umd/types/ui/components/List/index.d.ts +2 -0
  511. package/dist/ui/umd/types/ui/components/Page/BookmarkBlock/BookmarkBlock.d.ts +4 -0
  512. package/dist/ui/umd/types/ui/components/Page/BookmarkBlock/BookmarkBlock.types.d.ts +4 -0
  513. package/dist/ui/umd/types/ui/components/Page/BookmarkBlock/index.d.ts +2 -0
  514. package/dist/ui/umd/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.d.ts +4 -0
  515. package/dist/ui/umd/types/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.types.d.ts +4 -0
  516. package/dist/ui/umd/types/ui/components/Page/BreadcrumbBlock/index.d.ts +2 -0
  517. package/dist/ui/umd/types/ui/components/Page/BulletedListBlocks/BulletedListBlocks.d.ts +4 -0
  518. package/dist/ui/umd/types/ui/components/Page/BulletedListBlocks/BulletedListBlocks.types.d.ts +10 -0
  519. package/dist/ui/umd/types/ui/components/Page/BulletedListBlocks/index.d.ts +2 -0
  520. package/dist/ui/umd/types/ui/components/Page/CalloutBlock/CalloutBlock.d.ts +4 -0
  521. package/dist/ui/umd/types/ui/components/Page/CalloutBlock/CalloutBlock.types.d.ts +4 -0
  522. package/dist/ui/umd/types/ui/components/Page/CalloutBlock/index.d.ts +2 -0
  523. package/dist/ui/umd/types/ui/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.d.ts +4 -0
  524. package/dist/ui/umd/types/ui/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.types.d.ts +14 -0
  525. package/dist/ui/umd/types/ui/components/Page/ChildDatabaseBlock/index.d.ts +2 -0
  526. package/dist/ui/umd/types/ui/components/Page/ChildPageBlock/ChildPageBlock.d.ts +4 -0
  527. package/dist/ui/umd/types/ui/components/Page/ChildPageBlock/ChildPageBlock.types.d.ts +14 -0
  528. package/dist/ui/umd/types/ui/components/Page/ChildPageBlock/index.d.ts +2 -0
  529. package/dist/ui/umd/types/ui/components/Page/CodeBlock/Code/Code.d.ts +4 -0
  530. package/dist/ui/umd/types/ui/components/Page/CodeBlock/Code/Code.types.d.ts +7 -0
  531. package/dist/ui/umd/types/ui/components/Page/CodeBlock/Code/index.d.ts +2 -0
  532. package/dist/ui/umd/types/ui/components/Page/CodeBlock/CodeBlock.d.ts +4 -0
  533. package/dist/ui/umd/types/ui/components/Page/CodeBlock/CodeBlock.types.d.ts +6 -0
  534. package/dist/ui/umd/types/ui/components/Page/CodeBlock/index.d.ts +2 -0
  535. package/dist/ui/umd/types/ui/components/Page/ColumnListBlock/ColumnListBlock.d.ts +4 -0
  536. package/dist/ui/umd/types/ui/components/Page/ColumnListBlock/ColumnListBlock.types.d.ts +10 -0
  537. package/dist/ui/umd/types/ui/components/Page/ColumnListBlock/index.d.ts +2 -0
  538. package/dist/ui/umd/types/ui/components/Page/EmbedBlock/EmbedBlock.d.ts +4 -0
  539. package/dist/ui/umd/types/ui/components/Page/EmbedBlock/EmbedBlock.types.d.ts +4 -0
  540. package/dist/ui/umd/types/ui/components/Page/EmbedBlock/index.d.ts +2 -0
  541. package/dist/ui/umd/types/ui/components/Page/EquationBlock/EquationBlock.d.ts +4 -0
  542. package/dist/ui/umd/types/ui/components/Page/EquationBlock/EquationBlock.types.d.ts +4 -0
  543. package/dist/ui/umd/types/ui/components/Page/EquationBlock/index.d.ts +2 -0
  544. package/dist/ui/umd/types/ui/components/Page/FileBlock/FileBlock.d.ts +4 -0
  545. package/dist/ui/umd/types/ui/components/Page/FileBlock/FileBlock.types.d.ts +4 -0
  546. package/dist/ui/umd/types/ui/components/Page/FileBlock/index.d.ts +2 -0
  547. package/dist/ui/umd/types/ui/components/Page/ImageBlock/ImageBlock.d.ts +4 -0
  548. package/dist/ui/umd/types/ui/components/Page/ImageBlock/ImageBlock.types.d.ts +4 -0
  549. package/dist/ui/umd/types/ui/components/Page/ImageBlock/index.d.ts +2 -0
  550. package/dist/ui/umd/types/ui/components/Page/LinkPreviewBlock/LinkPreviewBlock.d.ts +4 -0
  551. package/dist/ui/umd/types/ui/components/Page/LinkPreviewBlock/LinkPreviewBlock.types.d.ts +4 -0
  552. package/dist/ui/umd/types/ui/components/Page/LinkPreviewBlock/index.d.ts +2 -0
  553. package/dist/ui/umd/types/ui/components/Page/ListBlock/ListBlock.d.ts +4 -0
  554. package/dist/ui/umd/types/ui/components/Page/ListBlock/ListBlock.types.d.ts +12 -0
  555. package/dist/ui/umd/types/ui/components/Page/ListBlock/index.d.ts +2 -0
  556. package/dist/ui/umd/types/ui/components/Page/NumberedListBlocks/NumberedListBlocks.d.ts +4 -0
  557. package/dist/ui/umd/types/ui/components/Page/NumberedListBlocks/NumberedListBlocks.types.d.ts +10 -0
  558. package/dist/ui/umd/types/ui/components/Page/NumberedListBlocks/index.d.ts +2 -0
  559. package/dist/ui/umd/types/ui/components/Page/Page.d.ts +4 -0
  560. package/dist/ui/umd/types/ui/components/Page/Page.types.d.ts +14 -0
  561. package/dist/ui/umd/types/ui/components/Page/PageHandler.d.ts +15 -0
  562. package/dist/ui/umd/types/ui/components/Page/PageHandler.types.d.ts +11 -0
  563. package/dist/ui/umd/types/ui/components/Page/PageIcon/PageIcon.d.ts +6 -0
  564. package/dist/ui/umd/types/ui/components/Page/PageIcon/index.d.ts +2 -0
  565. package/dist/ui/umd/types/ui/components/Page/PdfBlock/PdfBlock.d.ts +4 -0
  566. package/dist/ui/umd/types/ui/components/Page/PdfBlock/PdfBlock.types.d.ts +4 -0
  567. package/dist/ui/umd/types/ui/components/Page/PdfBlock/index.d.ts +2 -0
  568. package/dist/ui/umd/types/ui/components/Page/SyncedBlock/SyncedBlock.d.ts +4 -0
  569. package/dist/ui/umd/types/ui/components/Page/SyncedBlock/SyncedBlock.types.d.ts +4 -0
  570. package/dist/ui/umd/types/ui/components/Page/SyncedBlock/index.d.ts +2 -0
  571. package/dist/ui/umd/types/ui/components/Page/TableBlock/TableBlock.d.ts +4 -0
  572. package/dist/ui/umd/types/ui/components/Page/TableBlock/TableBlock.types.d.ts +13 -0
  573. package/dist/ui/umd/types/ui/components/Page/TableBlock/index.d.ts +2 -0
  574. package/dist/ui/umd/types/ui/components/Page/TableOfContentsBlock/TableOfContentsBlock.d.ts +4 -0
  575. package/dist/ui/umd/types/ui/components/Page/TableOfContentsBlock/TableOfContentsBlock.types.d.ts +4 -0
  576. package/dist/ui/umd/types/ui/components/Page/TableOfContentsBlock/index.d.ts +2 -0
  577. package/dist/ui/umd/types/ui/components/Page/TemplateBlock/TemplateBlock.d.ts +4 -0
  578. package/dist/ui/umd/types/ui/components/Page/TemplateBlock/TemplateBlock.types.d.ts +4 -0
  579. package/dist/ui/umd/types/ui/components/Page/TemplateBlock/index.d.ts +2 -0
  580. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Annotation/Annotation.d.ts +4 -0
  581. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Annotation/index.d.ts +2 -0
  582. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Equation/Equation.d.ts +4 -0
  583. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Equation/Equation.types.d.ts +6 -0
  584. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Equation/index.d.ts +2 -0
  585. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.d.ts +5 -0
  586. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.types.d.ts +12 -0
  587. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/LinkIfLinked/index.d.ts +2 -0
  588. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Mention/Mention.d.ts +4 -0
  589. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Mention/Mention.types.d.ts +6 -0
  590. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.d.ts +4 -0
  591. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.types.d.ts +4 -0
  592. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Mention/UserMention/index.d.ts +2 -0
  593. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Mention/index.d.ts +2 -0
  594. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/RichText.d.ts +4 -0
  595. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/RichText.types.d.ts +7 -0
  596. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Text/Text.d.ts +4 -0
  597. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Text/Text.types.d.ts +6 -0
  598. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/Text/index.d.ts +2 -0
  599. package/dist/ui/umd/types/ui/components/Page/TextBlock/RichText/index.d.ts +2 -0
  600. package/dist/ui/umd/types/ui/components/Page/TextBlock/TextBlock.d.ts +4 -0
  601. package/dist/ui/umd/types/ui/components/Page/TextBlock/TextBlock.types.d.ts +6 -0
  602. package/dist/ui/umd/types/ui/components/Page/TextBlock/index.d.ts +2 -0
  603. package/dist/ui/umd/types/ui/components/Page/ToDoBlock/ToDoBlock.d.ts +4 -0
  604. package/dist/ui/umd/types/ui/components/Page/ToDoBlock/ToDoBlock.types.d.ts +4 -0
  605. package/dist/ui/umd/types/ui/components/Page/ToDoBlock/index.d.ts +2 -0
  606. package/dist/ui/umd/types/ui/components/Page/ToggleBlock/ToggleBlock.d.ts +4 -0
  607. package/dist/ui/umd/types/ui/components/Page/ToggleBlock/ToggleBlock.types.d.ts +4 -0
  608. package/dist/ui/umd/types/ui/components/Page/ToggleBlock/index.d.ts +2 -0
  609. package/dist/ui/umd/types/ui/components/Page/VideoBlock/VideoBlock.d.ts +4 -0
  610. package/dist/ui/umd/types/ui/components/Page/VideoBlock/VideoBlock.types.d.ts +4 -0
  611. package/dist/ui/umd/types/ui/components/Page/VideoBlock/index.d.ts +2 -0
  612. package/dist/ui/umd/types/ui/components/Page/index.d.ts +2 -0
  613. package/dist/ui/umd/types/ui/components/Table/Table.d.ts +4 -0
  614. package/dist/ui/umd/types/ui/components/Table/Table.types.d.ts +13 -0
  615. package/dist/ui/umd/types/ui/components/Table/TableCheckboxField/TableCheckboxField.d.ts +4 -0
  616. package/dist/ui/umd/types/ui/components/Table/TableCheckboxField/TableCheckboxField.types.d.ts +3 -0
  617. package/dist/ui/umd/types/ui/components/Table/TableCheckboxField/index.d.ts +2 -0
  618. package/dist/ui/umd/types/ui/components/Table/TableDateField/TableDateField.d.ts +4 -0
  619. package/dist/ui/umd/types/ui/components/Table/TableDateField/TableDateField.types.d.ts +4 -0
  620. package/dist/ui/umd/types/ui/components/Table/TableDateField/index.d.ts +2 -0
  621. package/dist/ui/umd/types/ui/components/Table/TableHandler.d.ts +4 -0
  622. package/dist/ui/umd/types/ui/components/Table/TableHandler.types.d.ts +12 -0
  623. package/dist/ui/umd/types/ui/components/Table/TableIcon/TableIcon.d.ts +4 -0
  624. package/dist/ui/umd/types/ui/components/Table/TableIcon/TableIcon.types.d.ts +3 -0
  625. package/dist/ui/umd/types/ui/components/Table/TableIcon/index.d.ts +2 -0
  626. package/dist/ui/umd/types/ui/components/Table/TableMultiSelectField/TableMultiSelectField.d.ts +4 -0
  627. package/dist/ui/umd/types/ui/components/Table/TableMultiSelectField/TableMultiSelectField.types.d.ts +7 -0
  628. package/dist/ui/umd/types/ui/components/Table/TableMultiSelectField/index.d.ts +2 -0
  629. package/dist/ui/umd/types/ui/components/Table/TableNumberField/TableNumberField.d.ts +4 -0
  630. package/dist/ui/umd/types/ui/components/Table/TableNumberField/TableNumberField.types.d.ts +4 -0
  631. package/dist/ui/umd/types/ui/components/Table/TableNumberField/index.d.ts +2 -0
  632. package/dist/ui/umd/types/ui/components/Table/TablePropertyNameAndIcon.d.ts +4 -0
  633. package/dist/ui/umd/types/ui/components/Table/TablePropertyNameAndIcon.types.d.ts +5 -0
  634. package/dist/ui/umd/types/ui/components/Table/TableRichTextField/TableRichTextField.d.ts +4 -0
  635. package/dist/ui/umd/types/ui/components/Table/TableRichTextField/TableRichTextField.types.d.ts +4 -0
  636. package/dist/ui/umd/types/ui/components/Table/TableRichTextField/index.d.ts +2 -0
  637. package/dist/ui/umd/types/ui/components/Table/TableSelectField/TableSelectField.d.ts +4 -0
  638. package/dist/ui/umd/types/ui/components/Table/TableSelectField/TableSelectField.types.d.ts +7 -0
  639. package/dist/ui/umd/types/ui/components/Table/TableSelectField/index.d.ts +2 -0
  640. package/dist/ui/umd/types/ui/components/Table/TableTitleField/TableTitleField.d.ts +4 -0
  641. package/dist/ui/umd/types/ui/components/Table/TableTitleField/TableTitleField.types.d.ts +11 -0
  642. package/dist/ui/umd/types/ui/components/Table/TableTitleField/index.d.ts +2 -0
  643. package/dist/ui/umd/types/ui/components/Table/TableUrlField/TableUrlField.d.ts +4 -0
  644. package/dist/ui/umd/types/ui/components/Table/TableUrlField/TableUrlField.types.d.ts +3 -0
  645. package/dist/ui/umd/types/ui/components/Table/TableUrlField/index.d.ts +2 -0
  646. package/dist/ui/umd/types/ui/components/Table/index.d.ts +2 -0
  647. package/dist/ui/umd/types/ui/components/index.d.ts +56 -0
  648. package/dist/ui/umd/types/ui/components/lib.d.ts +13 -0
  649. package/dist/ui/umd/types/ui/components/types.d.ts +17 -0
  650. package/dist/ui/umd/types/ui/index.d.ts +1 -0
  651. package/dist/ui.backup/cjs/index.js +2 -0
  652. package/dist/ui.backup/cjs/index.js.map +1 -0
  653. package/dist/ui.backup/cjs/types/components/Gallery/Gallery.d.ts +4 -0
  654. package/dist/ui.backup/cjs/types/components/Gallery/Gallery.types.d.ts +14 -0
  655. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCard/GalleryCard.d.ts +4 -0
  656. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCard/GalleryCard.types.d.ts +12 -0
  657. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCard/GalleryHandler.d.ts +4 -0
  658. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCard/GalleryHandler.types.d.ts +5 -0
  659. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCard/GalleryLinkedCard.d.ts +4 -0
  660. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCard/GalleryLinkedCard.types.d.ts +10 -0
  661. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCard/GalleryPreview.d.ts +6 -0
  662. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCard/index.d.ts +2 -0
  663. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.d.ts +4 -0
  664. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.types.d.ts +3 -0
  665. package/dist/ui.backup/cjs/types/components/Gallery/GalleryCheckboxField/index.d.ts +2 -0
  666. package/dist/ui.backup/cjs/types/components/Gallery/GalleryDateField/DateField.types.d.ts +4 -0
  667. package/dist/ui.backup/cjs/types/components/Gallery/GalleryDateField/GalleryDateField.d.ts +4 -0
  668. package/dist/ui.backup/cjs/types/components/Gallery/GalleryDateField/index.d.ts +2 -0
  669. package/dist/ui.backup/cjs/types/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.d.ts +4 -0
  670. package/dist/ui.backup/cjs/types/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.types.d.ts +7 -0
  671. package/dist/ui.backup/cjs/types/components/Gallery/GalleryMultiSelectField/index.d.ts +2 -0
  672. package/dist/ui.backup/cjs/types/components/Gallery/GalleryNumberField/GalleryNumberField.d.ts +4 -0
  673. package/dist/ui.backup/cjs/types/components/Gallery/GalleryNumberField/GalleryNumberField.types.d.ts +4 -0
  674. package/dist/ui.backup/cjs/types/components/Gallery/GalleryNumberField/index.d.ts +2 -0
  675. package/dist/ui.backup/cjs/types/components/Gallery/GalleryRichTextField/RichTextField.d.ts +4 -0
  676. package/dist/ui.backup/cjs/types/components/Gallery/GalleryRichTextField/RichTextField.types.d.ts +4 -0
  677. package/dist/ui.backup/cjs/types/components/Gallery/GalleryRichTextField/index.d.ts +2 -0
  678. package/dist/ui.backup/cjs/types/components/Gallery/GalleryTitleField/GalleryTitleField.d.ts +4 -0
  679. package/dist/ui.backup/cjs/types/components/Gallery/GalleryTitleField/GalleryTitleField.types.d.ts +4 -0
  680. package/dist/ui.backup/cjs/types/components/Gallery/GalleryTitleField/index.d.ts +2 -0
  681. package/dist/ui.backup/cjs/types/components/Gallery/GalleryUrlField/GalleryUrlField.d.ts +4 -0
  682. package/dist/ui.backup/cjs/types/components/Gallery/GalleryUrlField/GalleryUrlField.types.d.ts +3 -0
  683. package/dist/ui.backup/cjs/types/components/Gallery/GalleryUrlField/index.d.ts +2 -0
  684. package/dist/ui.backup/cjs/types/components/Gallery/index.d.ts +2 -0
  685. package/dist/ui.backup/cjs/types/components/List/List.d.ts +4 -0
  686. package/dist/ui.backup/cjs/types/components/List/List.types.d.ts +13 -0
  687. package/dist/ui.backup/cjs/types/components/List/ListCheckboxField/ListCheckboxField.d.ts +4 -0
  688. package/dist/ui.backup/cjs/types/components/List/ListCheckboxField/ListCheckboxField.types.d.ts +3 -0
  689. package/dist/ui.backup/cjs/types/components/List/ListCheckboxField/index.d.ts +2 -0
  690. package/dist/ui.backup/cjs/types/components/List/ListDateField/ListDateField.d.ts +4 -0
  691. package/dist/ui.backup/cjs/types/components/List/ListDateField/ListDateField.types.d.ts +4 -0
  692. package/dist/ui.backup/cjs/types/components/List/ListDateField/index.d.ts +2 -0
  693. package/dist/ui.backup/cjs/types/components/List/ListHandler.d.ts +4 -0
  694. package/dist/ui.backup/cjs/types/components/List/ListHandler.types.d.ts +12 -0
  695. package/dist/ui.backup/cjs/types/components/List/ListMultiSelectField/ListMultiSelectField.d.ts +4 -0
  696. package/dist/ui.backup/cjs/types/components/List/ListMultiSelectField/ListMultiSelectField.types.d.ts +10 -0
  697. package/dist/ui.backup/cjs/types/components/List/ListMultiSelectField/index.d.ts +2 -0
  698. package/dist/ui.backup/cjs/types/components/List/ListNumberField/ListNumberField.d.ts +4 -0
  699. package/dist/ui.backup/cjs/types/components/List/ListNumberField/ListNumberField.types.d.ts +4 -0
  700. package/dist/ui.backup/cjs/types/components/List/ListNumberField/index.d.ts +2 -0
  701. package/dist/ui.backup/cjs/types/components/List/ListRichTextField/ListRichTextField.d.ts +4 -0
  702. package/dist/ui.backup/cjs/types/components/List/ListRichTextField/ListRichTextField.types.d.ts +4 -0
  703. package/dist/ui.backup/cjs/types/components/List/ListRichTextField/index.d.ts +2 -0
  704. package/dist/ui.backup/cjs/types/components/List/ListTitleField/ListTitleField.d.ts +4 -0
  705. package/dist/ui.backup/cjs/types/components/List/ListTitleField/ListTitleField.types.d.ts +11 -0
  706. package/dist/ui.backup/cjs/types/components/List/ListTitleField/index.d.ts +2 -0
  707. package/dist/ui.backup/cjs/types/components/List/ListUrlField/ListUrlField.d.ts +4 -0
  708. package/dist/ui.backup/cjs/types/components/List/ListUrlField/ListUrlField.types.d.ts +3 -0
  709. package/dist/ui.backup/cjs/types/components/List/ListUrlField/index.d.ts +2 -0
  710. package/dist/ui.backup/cjs/types/components/List/index.d.ts +2 -0
  711. package/dist/ui.backup/cjs/types/components/Page/BookmarkBlock/BookmarkBlock.d.ts +4 -0
  712. package/dist/ui.backup/cjs/types/components/Page/BookmarkBlock/BookmarkBlock.types.d.ts +4 -0
  713. package/dist/ui.backup/cjs/types/components/Page/BookmarkBlock/index.d.ts +2 -0
  714. package/dist/ui.backup/cjs/types/components/Page/BreadcrumbBlock/BreadcrumbBlock.d.ts +4 -0
  715. package/dist/ui.backup/cjs/types/components/Page/BreadcrumbBlock/BreadcrumbBlock.types.d.ts +4 -0
  716. package/dist/ui.backup/cjs/types/components/Page/BreadcrumbBlock/index.d.ts +2 -0
  717. package/dist/ui.backup/cjs/types/components/Page/BulletedListBlocks/BulletedListBlocks.d.ts +4 -0
  718. package/dist/ui.backup/cjs/types/components/Page/BulletedListBlocks/BulletedListBlocks.types.d.ts +10 -0
  719. package/dist/ui.backup/cjs/types/components/Page/BulletedListBlocks/index.d.ts +2 -0
  720. package/dist/ui.backup/cjs/types/components/Page/CalloutBlock/CalloutBlock.d.ts +4 -0
  721. package/dist/ui.backup/cjs/types/components/Page/CalloutBlock/CalloutBlock.types.d.ts +4 -0
  722. package/dist/ui.backup/cjs/types/components/Page/CalloutBlock/index.d.ts +2 -0
  723. package/dist/ui.backup/cjs/types/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.d.ts +4 -0
  724. package/dist/ui.backup/cjs/types/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.types.d.ts +14 -0
  725. package/dist/ui.backup/cjs/types/components/Page/ChildDatabaseBlock/index.d.ts +2 -0
  726. package/dist/ui.backup/cjs/types/components/Page/ChildPageBlock/ChildPageBlock.d.ts +4 -0
  727. package/dist/ui.backup/cjs/types/components/Page/ChildPageBlock/ChildPageBlock.types.d.ts +14 -0
  728. package/dist/ui.backup/cjs/types/components/Page/ChildPageBlock/index.d.ts +2 -0
  729. package/dist/ui.backup/cjs/types/components/Page/CodeBlock/Code/Code.d.ts +4 -0
  730. package/dist/ui.backup/cjs/types/components/Page/CodeBlock/Code/Code.types.d.ts +7 -0
  731. package/dist/ui.backup/cjs/types/components/Page/CodeBlock/Code/index.d.ts +2 -0
  732. package/dist/ui.backup/cjs/types/components/Page/CodeBlock/CodeBlock.d.ts +4 -0
  733. package/dist/ui.backup/cjs/types/components/Page/CodeBlock/CodeBlock.types.d.ts +6 -0
  734. package/dist/ui.backup/cjs/types/components/Page/CodeBlock/index.d.ts +2 -0
  735. package/dist/ui.backup/cjs/types/components/Page/ColumnListBlock/ColumnListBlock.d.ts +4 -0
  736. package/dist/ui.backup/cjs/types/components/Page/ColumnListBlock/ColumnListBlock.types.d.ts +10 -0
  737. package/dist/ui.backup/cjs/types/components/Page/ColumnListBlock/index.d.ts +2 -0
  738. package/dist/ui.backup/cjs/types/components/Page/EmbedBlock/EmbedBlock.d.ts +4 -0
  739. package/dist/ui.backup/cjs/types/components/Page/EmbedBlock/EmbedBlock.types.d.ts +4 -0
  740. package/dist/ui.backup/cjs/types/components/Page/EmbedBlock/index.d.ts +2 -0
  741. package/dist/ui.backup/cjs/types/components/Page/EquationBlock/EquationBlock.d.ts +4 -0
  742. package/dist/ui.backup/cjs/types/components/Page/EquationBlock/EquationBlock.types.d.ts +4 -0
  743. package/dist/ui.backup/cjs/types/components/Page/EquationBlock/index.d.ts +2 -0
  744. package/dist/ui.backup/cjs/types/components/Page/FileBlock/FileBlock.d.ts +4 -0
  745. package/dist/ui.backup/cjs/types/components/Page/FileBlock/FileBlock.types.d.ts +4 -0
  746. package/dist/ui.backup/cjs/types/components/Page/FileBlock/index.d.ts +2 -0
  747. package/dist/ui.backup/cjs/types/components/Page/ImageBlock/ImageBlock.d.ts +4 -0
  748. package/dist/ui.backup/cjs/types/components/Page/ImageBlock/ImageBlock.types.d.ts +4 -0
  749. package/dist/ui.backup/cjs/types/components/Page/ImageBlock/index.d.ts +2 -0
  750. package/dist/ui.backup/cjs/types/components/Page/LinkPreviewBlock/LinkPreviewBlock.d.ts +4 -0
  751. package/dist/ui.backup/cjs/types/components/Page/LinkPreviewBlock/LinkPreviewBlock.types.d.ts +4 -0
  752. package/dist/ui.backup/cjs/types/components/Page/LinkPreviewBlock/index.d.ts +2 -0
  753. package/dist/ui.backup/cjs/types/components/Page/ListBlock/ListBlock.d.ts +4 -0
  754. package/dist/ui.backup/cjs/types/components/Page/ListBlock/ListBlock.types.d.ts +12 -0
  755. package/dist/ui.backup/cjs/types/components/Page/ListBlock/index.d.ts +2 -0
  756. package/dist/ui.backup/cjs/types/components/Page/NumberedListBlocks/NumberedListBlocks.d.ts +4 -0
  757. package/dist/ui.backup/cjs/types/components/Page/NumberedListBlocks/NumberedListBlocks.types.d.ts +10 -0
  758. package/dist/ui.backup/cjs/types/components/Page/NumberedListBlocks/index.d.ts +2 -0
  759. package/dist/ui.backup/cjs/types/components/Page/Page.d.ts +4 -0
  760. package/dist/ui.backup/cjs/types/components/Page/Page.types.d.ts +14 -0
  761. package/dist/ui.backup/cjs/types/components/Page/PageHandler.d.ts +15 -0
  762. package/dist/ui.backup/cjs/types/components/Page/PageHandler.types.d.ts +11 -0
  763. package/dist/ui.backup/cjs/types/components/Page/PageIcon/PageIcon.d.ts +6 -0
  764. package/dist/ui.backup/cjs/types/components/Page/PageIcon/index.d.ts +2 -0
  765. package/dist/ui.backup/cjs/types/components/Page/PdfBlock/PdfBlock.d.ts +4 -0
  766. package/dist/ui.backup/cjs/types/components/Page/PdfBlock/PdfBlock.types.d.ts +4 -0
  767. package/dist/ui.backup/cjs/types/components/Page/PdfBlock/index.d.ts +2 -0
  768. package/dist/ui.backup/cjs/types/components/Page/SyncedBlock/SyncedBlock.d.ts +4 -0
  769. package/dist/ui.backup/cjs/types/components/Page/SyncedBlock/SyncedBlock.types.d.ts +4 -0
  770. package/dist/ui.backup/cjs/types/components/Page/SyncedBlock/index.d.ts +2 -0
  771. package/dist/ui.backup/cjs/types/components/Page/TableBlock/TableBlock.d.ts +4 -0
  772. package/dist/ui.backup/cjs/types/components/Page/TableBlock/TableBlock.types.d.ts +13 -0
  773. package/dist/ui.backup/cjs/types/components/Page/TableBlock/index.d.ts +2 -0
  774. package/dist/ui.backup/cjs/types/components/Page/TableOfContentsBlock/TableOfContentsBlock.d.ts +4 -0
  775. package/dist/ui.backup/cjs/types/components/Page/TableOfContentsBlock/TableOfContentsBlock.types.d.ts +4 -0
  776. package/dist/ui.backup/cjs/types/components/Page/TableOfContentsBlock/index.d.ts +2 -0
  777. package/dist/ui.backup/cjs/types/components/Page/TemplateBlock/TemplateBlock.d.ts +4 -0
  778. package/dist/ui.backup/cjs/types/components/Page/TemplateBlock/TemplateBlock.types.d.ts +4 -0
  779. package/dist/ui.backup/cjs/types/components/Page/TemplateBlock/index.d.ts +2 -0
  780. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Annotation/Annotation.d.ts +4 -0
  781. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Annotation/index.d.ts +2 -0
  782. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Equation/Equation.d.ts +4 -0
  783. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Equation/Equation.types.d.ts +6 -0
  784. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Equation/index.d.ts +2 -0
  785. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.d.ts +5 -0
  786. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.types.d.ts +12 -0
  787. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/LinkIfLinked/index.d.ts +2 -0
  788. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Mention/Mention.d.ts +4 -0
  789. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Mention/Mention.types.d.ts +6 -0
  790. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.d.ts +4 -0
  791. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.types.d.ts +4 -0
  792. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Mention/UserMention/index.d.ts +2 -0
  793. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Mention/index.d.ts +2 -0
  794. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/RichText.d.ts +4 -0
  795. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/RichText.types.d.ts +7 -0
  796. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Text/Text.d.ts +4 -0
  797. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Text/Text.types.d.ts +6 -0
  798. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/Text/index.d.ts +2 -0
  799. package/dist/ui.backup/cjs/types/components/Page/TextBlock/RichText/index.d.ts +2 -0
  800. package/dist/ui.backup/cjs/types/components/Page/TextBlock/TextBlock.d.ts +4 -0
  801. package/dist/ui.backup/cjs/types/components/Page/TextBlock/TextBlock.types.d.ts +6 -0
  802. package/dist/ui.backup/cjs/types/components/Page/TextBlock/index.d.ts +2 -0
  803. package/dist/ui.backup/cjs/types/components/Page/ToDoBlock/ToDoBlock.d.ts +4 -0
  804. package/dist/ui.backup/cjs/types/components/Page/ToDoBlock/ToDoBlock.types.d.ts +4 -0
  805. package/dist/ui.backup/cjs/types/components/Page/ToDoBlock/index.d.ts +2 -0
  806. package/dist/ui.backup/cjs/types/components/Page/ToggleBlock/ToggleBlock.d.ts +4 -0
  807. package/dist/ui.backup/cjs/types/components/Page/ToggleBlock/ToggleBlock.types.d.ts +4 -0
  808. package/dist/ui.backup/cjs/types/components/Page/ToggleBlock/index.d.ts +2 -0
  809. package/dist/ui.backup/cjs/types/components/Page/VideoBlock/VideoBlock.d.ts +4 -0
  810. package/dist/ui.backup/cjs/types/components/Page/VideoBlock/VideoBlock.types.d.ts +4 -0
  811. package/dist/ui.backup/cjs/types/components/Page/VideoBlock/index.d.ts +2 -0
  812. package/dist/ui.backup/cjs/types/components/Page/index.d.ts +2 -0
  813. package/dist/ui.backup/cjs/types/components/Table/Table.d.ts +4 -0
  814. package/dist/ui.backup/cjs/types/components/Table/Table.types.d.ts +13 -0
  815. package/dist/ui.backup/cjs/types/components/Table/TableCheckboxField/TableCheckboxField.d.ts +4 -0
  816. package/dist/ui.backup/cjs/types/components/Table/TableCheckboxField/TableCheckboxField.types.d.ts +3 -0
  817. package/dist/ui.backup/cjs/types/components/Table/TableCheckboxField/index.d.ts +2 -0
  818. package/dist/ui.backup/cjs/types/components/Table/TableDateField/TableDateField.d.ts +4 -0
  819. package/dist/ui.backup/cjs/types/components/Table/TableDateField/TableDateField.types.d.ts +4 -0
  820. package/dist/ui.backup/cjs/types/components/Table/TableDateField/index.d.ts +2 -0
  821. package/dist/ui.backup/cjs/types/components/Table/TableHandler.d.ts +4 -0
  822. package/dist/ui.backup/cjs/types/components/Table/TableHandler.types.d.ts +12 -0
  823. package/dist/ui.backup/cjs/types/components/Table/TableIcon/TableIcon.d.ts +4 -0
  824. package/dist/ui.backup/cjs/types/components/Table/TableIcon/TableIcon.types.d.ts +3 -0
  825. package/dist/ui.backup/cjs/types/components/Table/TableIcon/index.d.ts +2 -0
  826. package/dist/ui.backup/cjs/types/components/Table/TableMultiSelectField/TableMultiSelectField.d.ts +4 -0
  827. package/dist/ui.backup/cjs/types/components/Table/TableMultiSelectField/TableMultiSelectField.types.d.ts +7 -0
  828. package/dist/ui.backup/cjs/types/components/Table/TableMultiSelectField/index.d.ts +2 -0
  829. package/dist/ui.backup/cjs/types/components/Table/TableNumberField/TableNumberField.d.ts +4 -0
  830. package/dist/ui.backup/cjs/types/components/Table/TableNumberField/TableNumberField.types.d.ts +4 -0
  831. package/dist/ui.backup/cjs/types/components/Table/TableNumberField/index.d.ts +2 -0
  832. package/dist/ui.backup/cjs/types/components/Table/TablePropertyNameAndIcon.d.ts +4 -0
  833. package/dist/ui.backup/cjs/types/components/Table/TablePropertyNameAndIcon.types.d.ts +5 -0
  834. package/dist/ui.backup/cjs/types/components/Table/TableRichTextField/TableRichTextField.d.ts +4 -0
  835. package/dist/ui.backup/cjs/types/components/Table/TableRichTextField/TableRichTextField.types.d.ts +4 -0
  836. package/dist/ui.backup/cjs/types/components/Table/TableRichTextField/index.d.ts +2 -0
  837. package/dist/ui.backup/cjs/types/components/Table/TableSelectField/TableSelectField.d.ts +4 -0
  838. package/dist/ui.backup/cjs/types/components/Table/TableSelectField/TableSelectField.types.d.ts +7 -0
  839. package/dist/ui.backup/cjs/types/components/Table/TableSelectField/index.d.ts +2 -0
  840. package/dist/ui.backup/cjs/types/components/Table/TableTitleField/TableTitleField.d.ts +4 -0
  841. package/dist/ui.backup/cjs/types/components/Table/TableTitleField/TableTitleField.types.d.ts +11 -0
  842. package/dist/ui.backup/cjs/types/components/Table/TableTitleField/index.d.ts +2 -0
  843. package/dist/ui.backup/cjs/types/components/Table/TableUrlField/TableUrlField.d.ts +4 -0
  844. package/dist/ui.backup/cjs/types/components/Table/TableUrlField/TableUrlField.types.d.ts +3 -0
  845. package/dist/ui.backup/cjs/types/components/Table/TableUrlField/index.d.ts +2 -0
  846. package/dist/ui.backup/cjs/types/components/Table/index.d.ts +2 -0
  847. package/dist/ui.backup/cjs/types/components/index.d.ts +56 -0
  848. package/dist/ui.backup/cjs/types/components/lib.d.ts +13 -0
  849. package/dist/ui.backup/cjs/types/components/types.d.ts +17 -0
  850. package/dist/ui.backup/cjs/types/index.d.ts +1 -0
  851. package/dist/ui.backup/esm/index.js +2 -0
  852. package/dist/ui.backup/esm/index.js.map +1 -0
  853. package/dist/ui.backup/esm/types/components/Gallery/Gallery.d.ts +4 -0
  854. package/dist/ui.backup/esm/types/components/Gallery/Gallery.types.d.ts +14 -0
  855. package/dist/ui.backup/esm/types/components/Gallery/GalleryCard/GalleryCard.d.ts +4 -0
  856. package/dist/ui.backup/esm/types/components/Gallery/GalleryCard/GalleryCard.types.d.ts +12 -0
  857. package/dist/ui.backup/esm/types/components/Gallery/GalleryCard/GalleryHandler.d.ts +4 -0
  858. package/dist/ui.backup/esm/types/components/Gallery/GalleryCard/GalleryHandler.types.d.ts +5 -0
  859. package/dist/ui.backup/esm/types/components/Gallery/GalleryCard/GalleryLinkedCard.d.ts +4 -0
  860. package/dist/ui.backup/esm/types/components/Gallery/GalleryCard/GalleryLinkedCard.types.d.ts +10 -0
  861. package/dist/ui.backup/esm/types/components/Gallery/GalleryCard/GalleryPreview.d.ts +6 -0
  862. package/dist/ui.backup/esm/types/components/Gallery/GalleryCard/index.d.ts +2 -0
  863. package/dist/ui.backup/esm/types/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.d.ts +4 -0
  864. package/dist/ui.backup/esm/types/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.types.d.ts +3 -0
  865. package/dist/ui.backup/esm/types/components/Gallery/GalleryCheckboxField/index.d.ts +2 -0
  866. package/dist/ui.backup/esm/types/components/Gallery/GalleryDateField/DateField.types.d.ts +4 -0
  867. package/dist/ui.backup/esm/types/components/Gallery/GalleryDateField/GalleryDateField.d.ts +4 -0
  868. package/dist/ui.backup/esm/types/components/Gallery/GalleryDateField/index.d.ts +2 -0
  869. package/dist/ui.backup/esm/types/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.d.ts +4 -0
  870. package/dist/ui.backup/esm/types/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.types.d.ts +7 -0
  871. package/dist/ui.backup/esm/types/components/Gallery/GalleryMultiSelectField/index.d.ts +2 -0
  872. package/dist/ui.backup/esm/types/components/Gallery/GalleryNumberField/GalleryNumberField.d.ts +4 -0
  873. package/dist/ui.backup/esm/types/components/Gallery/GalleryNumberField/GalleryNumberField.types.d.ts +4 -0
  874. package/dist/ui.backup/esm/types/components/Gallery/GalleryNumberField/index.d.ts +2 -0
  875. package/dist/ui.backup/esm/types/components/Gallery/GalleryRichTextField/RichTextField.d.ts +4 -0
  876. package/dist/ui.backup/esm/types/components/Gallery/GalleryRichTextField/RichTextField.types.d.ts +4 -0
  877. package/dist/ui.backup/esm/types/components/Gallery/GalleryRichTextField/index.d.ts +2 -0
  878. package/dist/ui.backup/esm/types/components/Gallery/GalleryTitleField/GalleryTitleField.d.ts +4 -0
  879. package/dist/ui.backup/esm/types/components/Gallery/GalleryTitleField/GalleryTitleField.types.d.ts +4 -0
  880. package/dist/ui.backup/esm/types/components/Gallery/GalleryTitleField/index.d.ts +2 -0
  881. package/dist/ui.backup/esm/types/components/Gallery/GalleryUrlField/GalleryUrlField.d.ts +4 -0
  882. package/dist/ui.backup/esm/types/components/Gallery/GalleryUrlField/GalleryUrlField.types.d.ts +3 -0
  883. package/dist/ui.backup/esm/types/components/Gallery/GalleryUrlField/index.d.ts +2 -0
  884. package/dist/ui.backup/esm/types/components/Gallery/index.d.ts +2 -0
  885. package/dist/ui.backup/esm/types/components/List/List.d.ts +4 -0
  886. package/dist/ui.backup/esm/types/components/List/List.types.d.ts +13 -0
  887. package/dist/ui.backup/esm/types/components/List/ListCheckboxField/ListCheckboxField.d.ts +4 -0
  888. package/dist/ui.backup/esm/types/components/List/ListCheckboxField/ListCheckboxField.types.d.ts +3 -0
  889. package/dist/ui.backup/esm/types/components/List/ListCheckboxField/index.d.ts +2 -0
  890. package/dist/ui.backup/esm/types/components/List/ListDateField/ListDateField.d.ts +4 -0
  891. package/dist/ui.backup/esm/types/components/List/ListDateField/ListDateField.types.d.ts +4 -0
  892. package/dist/ui.backup/esm/types/components/List/ListDateField/index.d.ts +2 -0
  893. package/dist/ui.backup/esm/types/components/List/ListHandler.d.ts +4 -0
  894. package/dist/ui.backup/esm/types/components/List/ListHandler.types.d.ts +12 -0
  895. package/dist/ui.backup/esm/types/components/List/ListMultiSelectField/ListMultiSelectField.d.ts +4 -0
  896. package/dist/ui.backup/esm/types/components/List/ListMultiSelectField/ListMultiSelectField.types.d.ts +10 -0
  897. package/dist/ui.backup/esm/types/components/List/ListMultiSelectField/index.d.ts +2 -0
  898. package/dist/ui.backup/esm/types/components/List/ListNumberField/ListNumberField.d.ts +4 -0
  899. package/dist/ui.backup/esm/types/components/List/ListNumberField/ListNumberField.types.d.ts +4 -0
  900. package/dist/ui.backup/esm/types/components/List/ListNumberField/index.d.ts +2 -0
  901. package/dist/ui.backup/esm/types/components/List/ListRichTextField/ListRichTextField.d.ts +4 -0
  902. package/dist/ui.backup/esm/types/components/List/ListRichTextField/ListRichTextField.types.d.ts +4 -0
  903. package/dist/ui.backup/esm/types/components/List/ListRichTextField/index.d.ts +2 -0
  904. package/dist/ui.backup/esm/types/components/List/ListTitleField/ListTitleField.d.ts +4 -0
  905. package/dist/ui.backup/esm/types/components/List/ListTitleField/ListTitleField.types.d.ts +11 -0
  906. package/dist/ui.backup/esm/types/components/List/ListTitleField/index.d.ts +2 -0
  907. package/dist/ui.backup/esm/types/components/List/ListUrlField/ListUrlField.d.ts +4 -0
  908. package/dist/ui.backup/esm/types/components/List/ListUrlField/ListUrlField.types.d.ts +3 -0
  909. package/dist/ui.backup/esm/types/components/List/ListUrlField/index.d.ts +2 -0
  910. package/dist/ui.backup/esm/types/components/List/index.d.ts +2 -0
  911. package/dist/ui.backup/esm/types/components/Page/BookmarkBlock/BookmarkBlock.d.ts +4 -0
  912. package/dist/ui.backup/esm/types/components/Page/BookmarkBlock/BookmarkBlock.types.d.ts +4 -0
  913. package/dist/ui.backup/esm/types/components/Page/BookmarkBlock/index.d.ts +2 -0
  914. package/dist/ui.backup/esm/types/components/Page/BreadcrumbBlock/BreadcrumbBlock.d.ts +4 -0
  915. package/dist/ui.backup/esm/types/components/Page/BreadcrumbBlock/BreadcrumbBlock.types.d.ts +4 -0
  916. package/dist/ui.backup/esm/types/components/Page/BreadcrumbBlock/index.d.ts +2 -0
  917. package/dist/ui.backup/esm/types/components/Page/BulletedListBlocks/BulletedListBlocks.d.ts +4 -0
  918. package/dist/ui.backup/esm/types/components/Page/BulletedListBlocks/BulletedListBlocks.types.d.ts +10 -0
  919. package/dist/ui.backup/esm/types/components/Page/BulletedListBlocks/index.d.ts +2 -0
  920. package/dist/ui.backup/esm/types/components/Page/CalloutBlock/CalloutBlock.d.ts +4 -0
  921. package/dist/ui.backup/esm/types/components/Page/CalloutBlock/CalloutBlock.types.d.ts +4 -0
  922. package/dist/ui.backup/esm/types/components/Page/CalloutBlock/index.d.ts +2 -0
  923. package/dist/ui.backup/esm/types/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.d.ts +4 -0
  924. package/dist/ui.backup/esm/types/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.types.d.ts +14 -0
  925. package/dist/ui.backup/esm/types/components/Page/ChildDatabaseBlock/index.d.ts +2 -0
  926. package/dist/ui.backup/esm/types/components/Page/ChildPageBlock/ChildPageBlock.d.ts +4 -0
  927. package/dist/ui.backup/esm/types/components/Page/ChildPageBlock/ChildPageBlock.types.d.ts +14 -0
  928. package/dist/ui.backup/esm/types/components/Page/ChildPageBlock/index.d.ts +2 -0
  929. package/dist/ui.backup/esm/types/components/Page/CodeBlock/Code/Code.d.ts +4 -0
  930. package/dist/ui.backup/esm/types/components/Page/CodeBlock/Code/Code.types.d.ts +7 -0
  931. package/dist/ui.backup/esm/types/components/Page/CodeBlock/Code/index.d.ts +2 -0
  932. package/dist/ui.backup/esm/types/components/Page/CodeBlock/CodeBlock.d.ts +4 -0
  933. package/dist/ui.backup/esm/types/components/Page/CodeBlock/CodeBlock.types.d.ts +6 -0
  934. package/dist/ui.backup/esm/types/components/Page/CodeBlock/index.d.ts +2 -0
  935. package/dist/ui.backup/esm/types/components/Page/ColumnListBlock/ColumnListBlock.d.ts +4 -0
  936. package/dist/ui.backup/esm/types/components/Page/ColumnListBlock/ColumnListBlock.types.d.ts +10 -0
  937. package/dist/ui.backup/esm/types/components/Page/ColumnListBlock/index.d.ts +2 -0
  938. package/dist/ui.backup/esm/types/components/Page/EmbedBlock/EmbedBlock.d.ts +4 -0
  939. package/dist/ui.backup/esm/types/components/Page/EmbedBlock/EmbedBlock.types.d.ts +4 -0
  940. package/dist/ui.backup/esm/types/components/Page/EmbedBlock/index.d.ts +2 -0
  941. package/dist/ui.backup/esm/types/components/Page/EquationBlock/EquationBlock.d.ts +4 -0
  942. package/dist/ui.backup/esm/types/components/Page/EquationBlock/EquationBlock.types.d.ts +4 -0
  943. package/dist/ui.backup/esm/types/components/Page/EquationBlock/index.d.ts +2 -0
  944. package/dist/ui.backup/esm/types/components/Page/FileBlock/FileBlock.d.ts +4 -0
  945. package/dist/ui.backup/esm/types/components/Page/FileBlock/FileBlock.types.d.ts +4 -0
  946. package/dist/ui.backup/esm/types/components/Page/FileBlock/index.d.ts +2 -0
  947. package/dist/ui.backup/esm/types/components/Page/ImageBlock/ImageBlock.d.ts +4 -0
  948. package/dist/ui.backup/esm/types/components/Page/ImageBlock/ImageBlock.types.d.ts +4 -0
  949. package/dist/ui.backup/esm/types/components/Page/ImageBlock/index.d.ts +2 -0
  950. package/dist/ui.backup/esm/types/components/Page/LinkPreviewBlock/LinkPreviewBlock.d.ts +4 -0
  951. package/dist/ui.backup/esm/types/components/Page/LinkPreviewBlock/LinkPreviewBlock.types.d.ts +4 -0
  952. package/dist/ui.backup/esm/types/components/Page/LinkPreviewBlock/index.d.ts +2 -0
  953. package/dist/ui.backup/esm/types/components/Page/ListBlock/ListBlock.d.ts +4 -0
  954. package/dist/ui.backup/esm/types/components/Page/ListBlock/ListBlock.types.d.ts +12 -0
  955. package/dist/ui.backup/esm/types/components/Page/ListBlock/index.d.ts +2 -0
  956. package/dist/ui.backup/esm/types/components/Page/NumberedListBlocks/NumberedListBlocks.d.ts +4 -0
  957. package/dist/ui.backup/esm/types/components/Page/NumberedListBlocks/NumberedListBlocks.types.d.ts +10 -0
  958. package/dist/ui.backup/esm/types/components/Page/NumberedListBlocks/index.d.ts +2 -0
  959. package/dist/ui.backup/esm/types/components/Page/Page.d.ts +4 -0
  960. package/dist/ui.backup/esm/types/components/Page/Page.types.d.ts +14 -0
  961. package/dist/ui.backup/esm/types/components/Page/PageHandler.d.ts +15 -0
  962. package/dist/ui.backup/esm/types/components/Page/PageHandler.types.d.ts +11 -0
  963. package/dist/ui.backup/esm/types/components/Page/PageIcon/PageIcon.d.ts +6 -0
  964. package/dist/ui.backup/esm/types/components/Page/PageIcon/index.d.ts +2 -0
  965. package/dist/ui.backup/esm/types/components/Page/PdfBlock/PdfBlock.d.ts +4 -0
  966. package/dist/ui.backup/esm/types/components/Page/PdfBlock/PdfBlock.types.d.ts +4 -0
  967. package/dist/ui.backup/esm/types/components/Page/PdfBlock/index.d.ts +2 -0
  968. package/dist/ui.backup/esm/types/components/Page/SyncedBlock/SyncedBlock.d.ts +4 -0
  969. package/dist/ui.backup/esm/types/components/Page/SyncedBlock/SyncedBlock.types.d.ts +4 -0
  970. package/dist/ui.backup/esm/types/components/Page/SyncedBlock/index.d.ts +2 -0
  971. package/dist/ui.backup/esm/types/components/Page/TableBlock/TableBlock.d.ts +4 -0
  972. package/dist/ui.backup/esm/types/components/Page/TableBlock/TableBlock.types.d.ts +13 -0
  973. package/dist/ui.backup/esm/types/components/Page/TableBlock/index.d.ts +2 -0
  974. package/dist/ui.backup/esm/types/components/Page/TableOfContentsBlock/TableOfContentsBlock.d.ts +4 -0
  975. package/dist/ui.backup/esm/types/components/Page/TableOfContentsBlock/TableOfContentsBlock.types.d.ts +4 -0
  976. package/dist/ui.backup/esm/types/components/Page/TableOfContentsBlock/index.d.ts +2 -0
  977. package/dist/ui.backup/esm/types/components/Page/TemplateBlock/TemplateBlock.d.ts +4 -0
  978. package/dist/ui.backup/esm/types/components/Page/TemplateBlock/TemplateBlock.types.d.ts +4 -0
  979. package/dist/ui.backup/esm/types/components/Page/TemplateBlock/index.d.ts +2 -0
  980. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Annotation/Annotation.d.ts +4 -0
  981. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Annotation/index.d.ts +2 -0
  982. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Equation/Equation.d.ts +4 -0
  983. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Equation/Equation.types.d.ts +6 -0
  984. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Equation/index.d.ts +2 -0
  985. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.d.ts +5 -0
  986. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.types.d.ts +12 -0
  987. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/LinkIfLinked/index.d.ts +2 -0
  988. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Mention/Mention.d.ts +4 -0
  989. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Mention/Mention.types.d.ts +6 -0
  990. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.d.ts +4 -0
  991. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.types.d.ts +4 -0
  992. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Mention/UserMention/index.d.ts +2 -0
  993. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Mention/index.d.ts +2 -0
  994. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/RichText.d.ts +4 -0
  995. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/RichText.types.d.ts +7 -0
  996. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Text/Text.d.ts +4 -0
  997. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Text/Text.types.d.ts +6 -0
  998. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/Text/index.d.ts +2 -0
  999. package/dist/ui.backup/esm/types/components/Page/TextBlock/RichText/index.d.ts +2 -0
  1000. package/dist/ui.backup/esm/types/components/Page/TextBlock/TextBlock.d.ts +4 -0
  1001. package/dist/ui.backup/esm/types/components/Page/TextBlock/TextBlock.types.d.ts +6 -0
  1002. package/dist/ui.backup/esm/types/components/Page/TextBlock/index.d.ts +2 -0
  1003. package/dist/ui.backup/esm/types/components/Page/ToDoBlock/ToDoBlock.d.ts +4 -0
  1004. package/dist/ui.backup/esm/types/components/Page/ToDoBlock/ToDoBlock.types.d.ts +4 -0
  1005. package/dist/ui.backup/esm/types/components/Page/ToDoBlock/index.d.ts +2 -0
  1006. package/dist/ui.backup/esm/types/components/Page/ToggleBlock/ToggleBlock.d.ts +4 -0
  1007. package/dist/ui.backup/esm/types/components/Page/ToggleBlock/ToggleBlock.types.d.ts +4 -0
  1008. package/dist/ui.backup/esm/types/components/Page/ToggleBlock/index.d.ts +2 -0
  1009. package/dist/ui.backup/esm/types/components/Page/VideoBlock/VideoBlock.d.ts +4 -0
  1010. package/dist/ui.backup/esm/types/components/Page/VideoBlock/VideoBlock.types.d.ts +4 -0
  1011. package/dist/ui.backup/esm/types/components/Page/VideoBlock/index.d.ts +2 -0
  1012. package/dist/ui.backup/esm/types/components/Page/index.d.ts +2 -0
  1013. package/dist/ui.backup/esm/types/components/Table/Table.d.ts +4 -0
  1014. package/dist/ui.backup/esm/types/components/Table/Table.types.d.ts +13 -0
  1015. package/dist/ui.backup/esm/types/components/Table/TableCheckboxField/TableCheckboxField.d.ts +4 -0
  1016. package/dist/ui.backup/esm/types/components/Table/TableCheckboxField/TableCheckboxField.types.d.ts +3 -0
  1017. package/dist/ui.backup/esm/types/components/Table/TableCheckboxField/index.d.ts +2 -0
  1018. package/dist/ui.backup/esm/types/components/Table/TableDateField/TableDateField.d.ts +4 -0
  1019. package/dist/ui.backup/esm/types/components/Table/TableDateField/TableDateField.types.d.ts +4 -0
  1020. package/dist/ui.backup/esm/types/components/Table/TableDateField/index.d.ts +2 -0
  1021. package/dist/ui.backup/esm/types/components/Table/TableHandler.d.ts +4 -0
  1022. package/dist/ui.backup/esm/types/components/Table/TableHandler.types.d.ts +12 -0
  1023. package/dist/ui.backup/esm/types/components/Table/TableIcon/TableIcon.d.ts +4 -0
  1024. package/dist/ui.backup/esm/types/components/Table/TableIcon/TableIcon.types.d.ts +3 -0
  1025. package/dist/ui.backup/esm/types/components/Table/TableIcon/index.d.ts +2 -0
  1026. package/dist/ui.backup/esm/types/components/Table/TableMultiSelectField/TableMultiSelectField.d.ts +4 -0
  1027. package/dist/ui.backup/esm/types/components/Table/TableMultiSelectField/TableMultiSelectField.types.d.ts +7 -0
  1028. package/dist/ui.backup/esm/types/components/Table/TableMultiSelectField/index.d.ts +2 -0
  1029. package/dist/ui.backup/esm/types/components/Table/TableNumberField/TableNumberField.d.ts +4 -0
  1030. package/dist/ui.backup/esm/types/components/Table/TableNumberField/TableNumberField.types.d.ts +4 -0
  1031. package/dist/ui.backup/esm/types/components/Table/TableNumberField/index.d.ts +2 -0
  1032. package/dist/ui.backup/esm/types/components/Table/TablePropertyNameAndIcon.d.ts +4 -0
  1033. package/dist/ui.backup/esm/types/components/Table/TablePropertyNameAndIcon.types.d.ts +5 -0
  1034. package/dist/ui.backup/esm/types/components/Table/TableRichTextField/TableRichTextField.d.ts +4 -0
  1035. package/dist/ui.backup/esm/types/components/Table/TableRichTextField/TableRichTextField.types.d.ts +4 -0
  1036. package/dist/ui.backup/esm/types/components/Table/TableRichTextField/index.d.ts +2 -0
  1037. package/dist/ui.backup/esm/types/components/Table/TableSelectField/TableSelectField.d.ts +4 -0
  1038. package/dist/ui.backup/esm/types/components/Table/TableSelectField/TableSelectField.types.d.ts +7 -0
  1039. package/dist/ui.backup/esm/types/components/Table/TableSelectField/index.d.ts +2 -0
  1040. package/dist/ui.backup/esm/types/components/Table/TableTitleField/TableTitleField.d.ts +4 -0
  1041. package/dist/ui.backup/esm/types/components/Table/TableTitleField/TableTitleField.types.d.ts +11 -0
  1042. package/dist/ui.backup/esm/types/components/Table/TableTitleField/index.d.ts +2 -0
  1043. package/dist/ui.backup/esm/types/components/Table/TableUrlField/TableUrlField.d.ts +4 -0
  1044. package/dist/ui.backup/esm/types/components/Table/TableUrlField/TableUrlField.types.d.ts +3 -0
  1045. package/dist/ui.backup/esm/types/components/Table/TableUrlField/index.d.ts +2 -0
  1046. package/dist/ui.backup/esm/types/components/Table/index.d.ts +2 -0
  1047. package/dist/ui.backup/esm/types/components/index.d.ts +56 -0
  1048. package/dist/ui.backup/esm/types/components/lib.d.ts +13 -0
  1049. package/dist/ui.backup/esm/types/components/types.d.ts +17 -0
  1050. package/dist/ui.backup/esm/types/index.d.ts +1 -0
  1051. package/dist/ui.backup/styles/base.css +44 -0
  1052. package/dist/ui.backup/styles/gallery.css +172 -0
  1053. package/dist/ui.backup/styles/list.css +153 -0
  1054. package/dist/ui.backup/styles/notionate-dark.css +297 -0
  1055. package/dist/ui.backup/styles/notionate.css +5 -0
  1056. package/dist/ui.backup/styles/page.css +762 -0
  1057. package/dist/ui.backup/styles/table.css +166 -0
  1058. package/dist/ui.backup/types.d.ts +421 -0
  1059. package/dist/ui.backup/umd/index.js +2 -0
  1060. package/dist/ui.backup/umd/index.js.map +1 -0
  1061. package/dist/ui.backup/umd/types/components/Gallery/Gallery.d.ts +4 -0
  1062. package/dist/ui.backup/umd/types/components/Gallery/Gallery.types.d.ts +14 -0
  1063. package/dist/ui.backup/umd/types/components/Gallery/GalleryCard/GalleryCard.d.ts +4 -0
  1064. package/dist/ui.backup/umd/types/components/Gallery/GalleryCard/GalleryCard.types.d.ts +12 -0
  1065. package/dist/ui.backup/umd/types/components/Gallery/GalleryCard/GalleryHandler.d.ts +4 -0
  1066. package/dist/ui.backup/umd/types/components/Gallery/GalleryCard/GalleryHandler.types.d.ts +5 -0
  1067. package/dist/ui.backup/umd/types/components/Gallery/GalleryCard/GalleryLinkedCard.d.ts +4 -0
  1068. package/dist/ui.backup/umd/types/components/Gallery/GalleryCard/GalleryLinkedCard.types.d.ts +10 -0
  1069. package/dist/ui.backup/umd/types/components/Gallery/GalleryCard/GalleryPreview.d.ts +6 -0
  1070. package/dist/ui.backup/umd/types/components/Gallery/GalleryCard/index.d.ts +2 -0
  1071. package/dist/ui.backup/umd/types/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.d.ts +4 -0
  1072. package/dist/ui.backup/umd/types/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.types.d.ts +3 -0
  1073. package/dist/ui.backup/umd/types/components/Gallery/GalleryCheckboxField/index.d.ts +2 -0
  1074. package/dist/ui.backup/umd/types/components/Gallery/GalleryDateField/DateField.types.d.ts +4 -0
  1075. package/dist/ui.backup/umd/types/components/Gallery/GalleryDateField/GalleryDateField.d.ts +4 -0
  1076. package/dist/ui.backup/umd/types/components/Gallery/GalleryDateField/index.d.ts +2 -0
  1077. package/dist/ui.backup/umd/types/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.d.ts +4 -0
  1078. package/dist/ui.backup/umd/types/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.types.d.ts +7 -0
  1079. package/dist/ui.backup/umd/types/components/Gallery/GalleryMultiSelectField/index.d.ts +2 -0
  1080. package/dist/ui.backup/umd/types/components/Gallery/GalleryNumberField/GalleryNumberField.d.ts +4 -0
  1081. package/dist/ui.backup/umd/types/components/Gallery/GalleryNumberField/GalleryNumberField.types.d.ts +4 -0
  1082. package/dist/ui.backup/umd/types/components/Gallery/GalleryNumberField/index.d.ts +2 -0
  1083. package/dist/ui.backup/umd/types/components/Gallery/GalleryRichTextField/RichTextField.d.ts +4 -0
  1084. package/dist/ui.backup/umd/types/components/Gallery/GalleryRichTextField/RichTextField.types.d.ts +4 -0
  1085. package/dist/ui.backup/umd/types/components/Gallery/GalleryRichTextField/index.d.ts +2 -0
  1086. package/dist/ui.backup/umd/types/components/Gallery/GalleryTitleField/GalleryTitleField.d.ts +4 -0
  1087. package/dist/ui.backup/umd/types/components/Gallery/GalleryTitleField/GalleryTitleField.types.d.ts +4 -0
  1088. package/dist/ui.backup/umd/types/components/Gallery/GalleryTitleField/index.d.ts +2 -0
  1089. package/dist/ui.backup/umd/types/components/Gallery/GalleryUrlField/GalleryUrlField.d.ts +4 -0
  1090. package/dist/ui.backup/umd/types/components/Gallery/GalleryUrlField/GalleryUrlField.types.d.ts +3 -0
  1091. package/dist/ui.backup/umd/types/components/Gallery/GalleryUrlField/index.d.ts +2 -0
  1092. package/dist/ui.backup/umd/types/components/Gallery/index.d.ts +2 -0
  1093. package/dist/ui.backup/umd/types/components/List/List.d.ts +4 -0
  1094. package/dist/ui.backup/umd/types/components/List/List.types.d.ts +13 -0
  1095. package/dist/ui.backup/umd/types/components/List/ListCheckboxField/ListCheckboxField.d.ts +4 -0
  1096. package/dist/ui.backup/umd/types/components/List/ListCheckboxField/ListCheckboxField.types.d.ts +3 -0
  1097. package/dist/ui.backup/umd/types/components/List/ListCheckboxField/index.d.ts +2 -0
  1098. package/dist/ui.backup/umd/types/components/List/ListDateField/ListDateField.d.ts +4 -0
  1099. package/dist/ui.backup/umd/types/components/List/ListDateField/ListDateField.types.d.ts +4 -0
  1100. package/dist/ui.backup/umd/types/components/List/ListDateField/index.d.ts +2 -0
  1101. package/dist/ui.backup/umd/types/components/List/ListHandler.d.ts +4 -0
  1102. package/dist/ui.backup/umd/types/components/List/ListHandler.types.d.ts +12 -0
  1103. package/dist/ui.backup/umd/types/components/List/ListMultiSelectField/ListMultiSelectField.d.ts +4 -0
  1104. package/dist/ui.backup/umd/types/components/List/ListMultiSelectField/ListMultiSelectField.types.d.ts +10 -0
  1105. package/dist/ui.backup/umd/types/components/List/ListMultiSelectField/index.d.ts +2 -0
  1106. package/dist/ui.backup/umd/types/components/List/ListNumberField/ListNumberField.d.ts +4 -0
  1107. package/dist/ui.backup/umd/types/components/List/ListNumberField/ListNumberField.types.d.ts +4 -0
  1108. package/dist/ui.backup/umd/types/components/List/ListNumberField/index.d.ts +2 -0
  1109. package/dist/ui.backup/umd/types/components/List/ListRichTextField/ListRichTextField.d.ts +4 -0
  1110. package/dist/ui.backup/umd/types/components/List/ListRichTextField/ListRichTextField.types.d.ts +4 -0
  1111. package/dist/ui.backup/umd/types/components/List/ListRichTextField/index.d.ts +2 -0
  1112. package/dist/ui.backup/umd/types/components/List/ListTitleField/ListTitleField.d.ts +4 -0
  1113. package/dist/ui.backup/umd/types/components/List/ListTitleField/ListTitleField.types.d.ts +11 -0
  1114. package/dist/ui.backup/umd/types/components/List/ListTitleField/index.d.ts +2 -0
  1115. package/dist/ui.backup/umd/types/components/List/ListUrlField/ListUrlField.d.ts +4 -0
  1116. package/dist/ui.backup/umd/types/components/List/ListUrlField/ListUrlField.types.d.ts +3 -0
  1117. package/dist/ui.backup/umd/types/components/List/ListUrlField/index.d.ts +2 -0
  1118. package/dist/ui.backup/umd/types/components/List/index.d.ts +2 -0
  1119. package/dist/ui.backup/umd/types/components/Page/BookmarkBlock/BookmarkBlock.d.ts +4 -0
  1120. package/dist/ui.backup/umd/types/components/Page/BookmarkBlock/BookmarkBlock.types.d.ts +4 -0
  1121. package/dist/ui.backup/umd/types/components/Page/BookmarkBlock/index.d.ts +2 -0
  1122. package/dist/ui.backup/umd/types/components/Page/BreadcrumbBlock/BreadcrumbBlock.d.ts +4 -0
  1123. package/dist/ui.backup/umd/types/components/Page/BreadcrumbBlock/BreadcrumbBlock.types.d.ts +4 -0
  1124. package/dist/ui.backup/umd/types/components/Page/BreadcrumbBlock/index.d.ts +2 -0
  1125. package/dist/ui.backup/umd/types/components/Page/BulletedListBlocks/BulletedListBlocks.d.ts +4 -0
  1126. package/dist/ui.backup/umd/types/components/Page/BulletedListBlocks/BulletedListBlocks.types.d.ts +10 -0
  1127. package/dist/ui.backup/umd/types/components/Page/BulletedListBlocks/index.d.ts +2 -0
  1128. package/dist/ui.backup/umd/types/components/Page/CalloutBlock/CalloutBlock.d.ts +4 -0
  1129. package/dist/ui.backup/umd/types/components/Page/CalloutBlock/CalloutBlock.types.d.ts +4 -0
  1130. package/dist/ui.backup/umd/types/components/Page/CalloutBlock/index.d.ts +2 -0
  1131. package/dist/ui.backup/umd/types/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.d.ts +4 -0
  1132. package/dist/ui.backup/umd/types/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.types.d.ts +14 -0
  1133. package/dist/ui.backup/umd/types/components/Page/ChildDatabaseBlock/index.d.ts +2 -0
  1134. package/dist/ui.backup/umd/types/components/Page/ChildPageBlock/ChildPageBlock.d.ts +4 -0
  1135. package/dist/ui.backup/umd/types/components/Page/ChildPageBlock/ChildPageBlock.types.d.ts +14 -0
  1136. package/dist/ui.backup/umd/types/components/Page/ChildPageBlock/index.d.ts +2 -0
  1137. package/dist/ui.backup/umd/types/components/Page/CodeBlock/Code/Code.d.ts +4 -0
  1138. package/dist/ui.backup/umd/types/components/Page/CodeBlock/Code/Code.types.d.ts +7 -0
  1139. package/dist/ui.backup/umd/types/components/Page/CodeBlock/Code/index.d.ts +2 -0
  1140. package/dist/ui.backup/umd/types/components/Page/CodeBlock/CodeBlock.d.ts +4 -0
  1141. package/dist/ui.backup/umd/types/components/Page/CodeBlock/CodeBlock.types.d.ts +6 -0
  1142. package/dist/ui.backup/umd/types/components/Page/CodeBlock/index.d.ts +2 -0
  1143. package/dist/ui.backup/umd/types/components/Page/ColumnListBlock/ColumnListBlock.d.ts +4 -0
  1144. package/dist/ui.backup/umd/types/components/Page/ColumnListBlock/ColumnListBlock.types.d.ts +10 -0
  1145. package/dist/ui.backup/umd/types/components/Page/ColumnListBlock/index.d.ts +2 -0
  1146. package/dist/ui.backup/umd/types/components/Page/EmbedBlock/EmbedBlock.d.ts +4 -0
  1147. package/dist/ui.backup/umd/types/components/Page/EmbedBlock/EmbedBlock.types.d.ts +4 -0
  1148. package/dist/ui.backup/umd/types/components/Page/EmbedBlock/index.d.ts +2 -0
  1149. package/dist/ui.backup/umd/types/components/Page/EquationBlock/EquationBlock.d.ts +4 -0
  1150. package/dist/ui.backup/umd/types/components/Page/EquationBlock/EquationBlock.types.d.ts +4 -0
  1151. package/dist/ui.backup/umd/types/components/Page/EquationBlock/index.d.ts +2 -0
  1152. package/dist/ui.backup/umd/types/components/Page/FileBlock/FileBlock.d.ts +4 -0
  1153. package/dist/ui.backup/umd/types/components/Page/FileBlock/FileBlock.types.d.ts +4 -0
  1154. package/dist/ui.backup/umd/types/components/Page/FileBlock/index.d.ts +2 -0
  1155. package/dist/ui.backup/umd/types/components/Page/ImageBlock/ImageBlock.d.ts +4 -0
  1156. package/dist/ui.backup/umd/types/components/Page/ImageBlock/ImageBlock.types.d.ts +4 -0
  1157. package/dist/ui.backup/umd/types/components/Page/ImageBlock/index.d.ts +2 -0
  1158. package/dist/ui.backup/umd/types/components/Page/LinkPreviewBlock/LinkPreviewBlock.d.ts +4 -0
  1159. package/dist/ui.backup/umd/types/components/Page/LinkPreviewBlock/LinkPreviewBlock.types.d.ts +4 -0
  1160. package/dist/ui.backup/umd/types/components/Page/LinkPreviewBlock/index.d.ts +2 -0
  1161. package/dist/ui.backup/umd/types/components/Page/ListBlock/ListBlock.d.ts +4 -0
  1162. package/dist/ui.backup/umd/types/components/Page/ListBlock/ListBlock.types.d.ts +12 -0
  1163. package/dist/ui.backup/umd/types/components/Page/ListBlock/index.d.ts +2 -0
  1164. package/dist/ui.backup/umd/types/components/Page/NumberedListBlocks/NumberedListBlocks.d.ts +4 -0
  1165. package/dist/ui.backup/umd/types/components/Page/NumberedListBlocks/NumberedListBlocks.types.d.ts +10 -0
  1166. package/dist/ui.backup/umd/types/components/Page/NumberedListBlocks/index.d.ts +2 -0
  1167. package/dist/ui.backup/umd/types/components/Page/Page.d.ts +4 -0
  1168. package/dist/ui.backup/umd/types/components/Page/Page.types.d.ts +14 -0
  1169. package/dist/ui.backup/umd/types/components/Page/PageHandler.d.ts +15 -0
  1170. package/dist/ui.backup/umd/types/components/Page/PageHandler.types.d.ts +11 -0
  1171. package/dist/ui.backup/umd/types/components/Page/PageIcon/PageIcon.d.ts +6 -0
  1172. package/dist/ui.backup/umd/types/components/Page/PageIcon/index.d.ts +2 -0
  1173. package/dist/ui.backup/umd/types/components/Page/PdfBlock/PdfBlock.d.ts +4 -0
  1174. package/dist/ui.backup/umd/types/components/Page/PdfBlock/PdfBlock.types.d.ts +4 -0
  1175. package/dist/ui.backup/umd/types/components/Page/PdfBlock/index.d.ts +2 -0
  1176. package/dist/ui.backup/umd/types/components/Page/SyncedBlock/SyncedBlock.d.ts +4 -0
  1177. package/dist/ui.backup/umd/types/components/Page/SyncedBlock/SyncedBlock.types.d.ts +4 -0
  1178. package/dist/ui.backup/umd/types/components/Page/SyncedBlock/index.d.ts +2 -0
  1179. package/dist/ui.backup/umd/types/components/Page/TableBlock/TableBlock.d.ts +4 -0
  1180. package/dist/ui.backup/umd/types/components/Page/TableBlock/TableBlock.types.d.ts +13 -0
  1181. package/dist/ui.backup/umd/types/components/Page/TableBlock/index.d.ts +2 -0
  1182. package/dist/ui.backup/umd/types/components/Page/TableOfContentsBlock/TableOfContentsBlock.d.ts +4 -0
  1183. package/dist/ui.backup/umd/types/components/Page/TableOfContentsBlock/TableOfContentsBlock.types.d.ts +4 -0
  1184. package/dist/ui.backup/umd/types/components/Page/TableOfContentsBlock/index.d.ts +2 -0
  1185. package/dist/ui.backup/umd/types/components/Page/TemplateBlock/TemplateBlock.d.ts +4 -0
  1186. package/dist/ui.backup/umd/types/components/Page/TemplateBlock/TemplateBlock.types.d.ts +4 -0
  1187. package/dist/ui.backup/umd/types/components/Page/TemplateBlock/index.d.ts +2 -0
  1188. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Annotation/Annotation.d.ts +4 -0
  1189. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Annotation/index.d.ts +2 -0
  1190. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Equation/Equation.d.ts +4 -0
  1191. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Equation/Equation.types.d.ts +6 -0
  1192. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Equation/index.d.ts +2 -0
  1193. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.d.ts +5 -0
  1194. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.types.d.ts +12 -0
  1195. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/LinkIfLinked/index.d.ts +2 -0
  1196. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Mention/Mention.d.ts +4 -0
  1197. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Mention/Mention.types.d.ts +6 -0
  1198. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.d.ts +4 -0
  1199. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.types.d.ts +4 -0
  1200. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Mention/UserMention/index.d.ts +2 -0
  1201. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Mention/index.d.ts +2 -0
  1202. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/RichText.d.ts +4 -0
  1203. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/RichText.types.d.ts +7 -0
  1204. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Text/Text.d.ts +4 -0
  1205. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Text/Text.types.d.ts +6 -0
  1206. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/Text/index.d.ts +2 -0
  1207. package/dist/ui.backup/umd/types/components/Page/TextBlock/RichText/index.d.ts +2 -0
  1208. package/dist/ui.backup/umd/types/components/Page/TextBlock/TextBlock.d.ts +4 -0
  1209. package/dist/ui.backup/umd/types/components/Page/TextBlock/TextBlock.types.d.ts +6 -0
  1210. package/dist/ui.backup/umd/types/components/Page/TextBlock/index.d.ts +2 -0
  1211. package/dist/ui.backup/umd/types/components/Page/ToDoBlock/ToDoBlock.d.ts +4 -0
  1212. package/dist/ui.backup/umd/types/components/Page/ToDoBlock/ToDoBlock.types.d.ts +4 -0
  1213. package/dist/ui.backup/umd/types/components/Page/ToDoBlock/index.d.ts +2 -0
  1214. package/dist/ui.backup/umd/types/components/Page/ToggleBlock/ToggleBlock.d.ts +4 -0
  1215. package/dist/ui.backup/umd/types/components/Page/ToggleBlock/ToggleBlock.types.d.ts +4 -0
  1216. package/dist/ui.backup/umd/types/components/Page/ToggleBlock/index.d.ts +2 -0
  1217. package/dist/ui.backup/umd/types/components/Page/VideoBlock/VideoBlock.d.ts +4 -0
  1218. package/dist/ui.backup/umd/types/components/Page/VideoBlock/VideoBlock.types.d.ts +4 -0
  1219. package/dist/ui.backup/umd/types/components/Page/VideoBlock/index.d.ts +2 -0
  1220. package/dist/ui.backup/umd/types/components/Page/index.d.ts +2 -0
  1221. package/dist/ui.backup/umd/types/components/Table/Table.d.ts +4 -0
  1222. package/dist/ui.backup/umd/types/components/Table/Table.types.d.ts +13 -0
  1223. package/dist/ui.backup/umd/types/components/Table/TableCheckboxField/TableCheckboxField.d.ts +4 -0
  1224. package/dist/ui.backup/umd/types/components/Table/TableCheckboxField/TableCheckboxField.types.d.ts +3 -0
  1225. package/dist/ui.backup/umd/types/components/Table/TableCheckboxField/index.d.ts +2 -0
  1226. package/dist/ui.backup/umd/types/components/Table/TableDateField/TableDateField.d.ts +4 -0
  1227. package/dist/ui.backup/umd/types/components/Table/TableDateField/TableDateField.types.d.ts +4 -0
  1228. package/dist/ui.backup/umd/types/components/Table/TableDateField/index.d.ts +2 -0
  1229. package/dist/ui.backup/umd/types/components/Table/TableHandler.d.ts +4 -0
  1230. package/dist/ui.backup/umd/types/components/Table/TableHandler.types.d.ts +12 -0
  1231. package/dist/ui.backup/umd/types/components/Table/TableIcon/TableIcon.d.ts +4 -0
  1232. package/dist/ui.backup/umd/types/components/Table/TableIcon/TableIcon.types.d.ts +3 -0
  1233. package/dist/ui.backup/umd/types/components/Table/TableIcon/index.d.ts +2 -0
  1234. package/dist/ui.backup/umd/types/components/Table/TableMultiSelectField/TableMultiSelectField.d.ts +4 -0
  1235. package/dist/ui.backup/umd/types/components/Table/TableMultiSelectField/TableMultiSelectField.types.d.ts +7 -0
  1236. package/dist/ui.backup/umd/types/components/Table/TableMultiSelectField/index.d.ts +2 -0
  1237. package/dist/ui.backup/umd/types/components/Table/TableNumberField/TableNumberField.d.ts +4 -0
  1238. package/dist/ui.backup/umd/types/components/Table/TableNumberField/TableNumberField.types.d.ts +4 -0
  1239. package/dist/ui.backup/umd/types/components/Table/TableNumberField/index.d.ts +2 -0
  1240. package/dist/ui.backup/umd/types/components/Table/TablePropertyNameAndIcon.d.ts +4 -0
  1241. package/dist/ui.backup/umd/types/components/Table/TablePropertyNameAndIcon.types.d.ts +5 -0
  1242. package/dist/ui.backup/umd/types/components/Table/TableRichTextField/TableRichTextField.d.ts +4 -0
  1243. package/dist/ui.backup/umd/types/components/Table/TableRichTextField/TableRichTextField.types.d.ts +4 -0
  1244. package/dist/ui.backup/umd/types/components/Table/TableRichTextField/index.d.ts +2 -0
  1245. package/dist/ui.backup/umd/types/components/Table/TableSelectField/TableSelectField.d.ts +4 -0
  1246. package/dist/ui.backup/umd/types/components/Table/TableSelectField/TableSelectField.types.d.ts +7 -0
  1247. package/dist/ui.backup/umd/types/components/Table/TableSelectField/index.d.ts +2 -0
  1248. package/dist/ui.backup/umd/types/components/Table/TableTitleField/TableTitleField.d.ts +4 -0
  1249. package/dist/ui.backup/umd/types/components/Table/TableTitleField/TableTitleField.types.d.ts +11 -0
  1250. package/dist/ui.backup/umd/types/components/Table/TableTitleField/index.d.ts +2 -0
  1251. package/dist/ui.backup/umd/types/components/Table/TableUrlField/TableUrlField.d.ts +4 -0
  1252. package/dist/ui.backup/umd/types/components/Table/TableUrlField/TableUrlField.types.d.ts +3 -0
  1253. package/dist/ui.backup/umd/types/components/Table/TableUrlField/index.d.ts +2 -0
  1254. package/dist/ui.backup/umd/types/components/Table/index.d.ts +2 -0
  1255. package/dist/ui.backup/umd/types/components/index.d.ts +56 -0
  1256. package/dist/ui.backup/umd/types/components/lib.d.ts +13 -0
  1257. package/dist/ui.backup/umd/types/components/types.d.ts +17 -0
  1258. package/dist/ui.backup/umd/types/index.d.ts +1 -0
  1259. package/package.json +133 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/ui/components/Gallery/GalleryTitleField/GalleryTitleField.tsx","../../../../src/ui/components/Gallery/GalleryDateField/GalleryDateField.tsx","../../../../src/ui/components/Page/TextBlock/RichText/Mention/UserMention/UserMention.tsx","../../../../src/ui/components/Page/PageIcon/PageIcon.tsx","../../../../src/ui/components/lib.ts","../../../../src/ui/components/Page/TextBlock/RichText/Mention/Mention.tsx","../../../../src/ui/components/Page/TextBlock/RichText/LinkIfLinked/LinkIfLinked.tsx","../../../../src/ui/components/Page/TextBlock/RichText/Annotation/Annotation.tsx","../../../../src/ui/components/Page/TextBlock/RichText/Text/Text.tsx","../../../node_modules/katex/dist/katex.mjs","../../../../src/ui/components/Page/TextBlock/RichText/Equation/Equation.tsx","../../../../src/ui/components/Page/TextBlock/RichText/RichText.tsx","../../../../src/ui/components/Page/TextBlock/TextBlock.tsx","../../../../src/ui/components/Gallery/GalleryRichTextField/RichTextField.tsx","../../../../src/ui/components/Gallery/GalleryMultiSelectField/GalleryMultiSelectField.tsx","../../../../src/ui/components/Gallery/GalleryUrlField/GalleryUrlField.tsx","../../../../src/ui/components/Gallery/GalleryCheckboxField/GalleryCheckboxField.tsx","../../../../src/ui/components/Gallery/GalleryNumberField/GalleryNumberField.tsx","../../../../src/ui/components/Gallery/GalleryCard/GalleryHandler.tsx","../../../../src/ui/components/Gallery/GalleryCard/GalleryLinkedCard.tsx","../../../../src/ui/components/Gallery/GalleryCard/GalleryPreview.tsx","../../../../src/ui/components/Gallery/GalleryCard/GalleryCard.tsx","../../../../src/ui/components/Gallery/Gallery.tsx","../../../../src/ui/components/List/ListTitleField/ListTitleField.tsx","../../../../src/ui/components/List/ListDateField/ListDateField.tsx","../../../../src/ui/components/List/ListRichTextField/ListRichTextField.tsx","../../../../src/ui/components/List/ListMultiSelectField/ListMultiSelectField.tsx","../../../../src/ui/components/List/ListUrlField/ListUrlField.tsx","../../../../src/ui/components/List/ListCheckboxField/ListCheckboxField.tsx","../../../../src/ui/components/List/ListNumberField/ListNumberField.tsx","../../../../src/ui/components/List/ListHandler.tsx","../../../../src/ui/components/List/List.tsx","../../../../src/ui/components/Table/TableIcon/TableIcon.tsx","../../../../src/ui/components/Table/TablePropertyNameAndIcon.tsx","../../../../src/ui/components/Table/TableTitleField/TableTitleField.tsx","../../../../src/ui/components/Table/TableDateField/TableDateField.tsx","../../../../src/ui/components/Table/TableRichTextField/TableRichTextField.tsx","../../../../src/ui/components/Table/TableMultiSelectField/TableMultiSelectField.tsx","../../../../src/ui/components/Table/TableSelectField/TableSelectField.tsx","../../../../src/ui/components/Table/TableUrlField/TableUrlField.tsx","../../../../src/ui/components/Table/TableCheckboxField/TableCheckboxField.tsx","../../../../src/ui/components/Table/TableNumberField/TableNumberField.tsx","../../../../src/ui/components/Table/TableHandler.tsx","../../../../src/ui/components/Table/Table.tsx","../../../../src/ui/components/Page/BookmarkBlock/BookmarkBlock.tsx","../../../../src/ui/components/Page/BreadcrumbBlock/BreadcrumbBlock.tsx","../../../../src/ui/components/Page/BulletedListBlocks/BulletedListBlocks.tsx","../../../../src/ui/components/Page/CalloutBlock/CalloutBlock.tsx","../../../../src/ui/components/Page/ChildDatabaseBlock/ChildDatabaseBlock.tsx","../../../../src/ui/components/Page/ChildPageBlock/ChildPageBlock.tsx","../../../node_modules/tslib/tslib.es6.js","../../../../src/ui/components/Page/CodeBlock/Code/Code.tsx","../../../../src/ui/components/Page/CodeBlock/CodeBlock.tsx","../../../../src/ui/components/Page/ColumnListBlock/ColumnListBlock.tsx","../../../../src/ui/components/Page/EmbedBlock/EmbedBlock.tsx","../../../../src/ui/components/Page/EquationBlock/EquationBlock.tsx","../../../../src/ui/components/Page/FileBlock/FileBlock.tsx","../../../../src/ui/components/Page/ImageBlock/ImageBlock.tsx","../../../../src/ui/components/Page/LinkPreviewBlock/LinkPreviewBlock.tsx","../../../../src/ui/components/Page/NumberedListBlocks/NumberedListBlocks.tsx","../../../../src/ui/components/Page/PdfBlock/PdfBlock.tsx","../../../../src/ui/components/Page/SyncedBlock/SyncedBlock.tsx","../../../../src/ui/components/Page/TableBlock/TableBlock.tsx","../../../../src/ui/components/Page/TableOfContentsBlock/TableOfContentsBlock.tsx","../../../../src/ui/components/Page/TemplateBlock/TemplateBlock.tsx","../../../../src/ui/components/Page/ToDoBlock/ToDoBlock.tsx","../../../../src/ui/components/Page/ToggleBlock/ToggleBlock.tsx","../../../../src/ui/components/Page/VideoBlock/VideoBlock.tsx","../../../../src/ui/components/Page/PageHandler.tsx","../../../../src/ui/components/Page/ListBlock/ListBlock.tsx","../../../../src/ui/components/Page/Page.tsx"],"sourcesContent":[null,null,null,null,null,null,null,null,null,"/**\n * Lexing or parsing positional information for error reporting.\n * This object is immutable.\n */\nclass SourceLocation {\n // The + prefix indicates that these fields aren't writeable\n // Lexer holding the input string.\n // Start offset, zero-based inclusive.\n // End offset, zero-based exclusive.\n constructor(lexer, start, end) {\n this.lexer = void 0;\n this.start = void 0;\n this.end = void 0;\n this.lexer = lexer;\n this.start = start;\n this.end = end;\n }\n /**\n * Merges two `SourceLocation`s from location providers, given they are\n * provided in order of appearance.\n * - Returns the first one's location if only the first is provided.\n * - Returns a merged range of the first and the last if both are provided\n * and their lexers match.\n * - Otherwise, returns null.\n */\n\n\n static range(first, second) {\n if (!second) {\n return first && first.loc;\n } else if (!first || !first.loc || !second.loc || first.loc.lexer !== second.loc.lexer) {\n return null;\n } else {\n return new SourceLocation(first.loc.lexer, first.loc.start, second.loc.end);\n }\n }\n\n}\n\n/**\n * Interface required to break circular dependency between Token, Lexer, and\n * ParseError.\n */\n\n/**\n * The resulting token returned from `lex`.\n *\n * It consists of the token text plus some position information.\n * The position information is essentially a range in an input string,\n * but instead of referencing the bare input string, we refer to the lexer.\n * That way it is possible to attach extra metadata to the input string,\n * like for example a file name or similar.\n *\n * The position information is optional, so it is OK to construct synthetic\n * tokens if appropriate. Not providing available position information may\n * lead to degraded error reporting, though.\n */\nclass Token {\n // don't expand the token\n // used in \\noexpand\n constructor(text, // the text of this token\n loc) {\n this.text = void 0;\n this.loc = void 0;\n this.noexpand = void 0;\n this.treatAsRelax = void 0;\n this.text = text;\n this.loc = loc;\n }\n /**\n * Given a pair of tokens (this and endToken), compute a `Token` encompassing\n * the whole input range enclosed by these two.\n */\n\n\n range(endToken, // last token of the range, inclusive\n text // the text of the newly constructed token\n ) {\n return new Token(text, SourceLocation.range(this, endToken));\n }\n\n}\n\n/**\n * This is the ParseError class, which is the main error thrown by KaTeX\n * functions when something has gone wrong. This is used to distinguish internal\n * errors from errors in the expression that the user provided.\n *\n * If possible, a caller should provide a Token or ParseNode with information\n * about where in the source string the problem occurred.\n */\nclass ParseError {\n // Error start position based on passed-in Token or ParseNode.\n // Length of affected text based on passed-in Token or ParseNode.\n // The underlying error message without any context added.\n constructor(message, // The error message\n token // An object providing position information\n ) {\n this.name = void 0;\n this.position = void 0;\n this.length = void 0;\n this.rawMessage = void 0;\n var error = \"KaTeX parse error: \" + message;\n var start;\n var end;\n var loc = token && token.loc;\n\n if (loc && loc.start <= loc.end) {\n // If we have the input and a position, make the error a bit fancier\n // Get the input\n var input = loc.lexer.input; // Prepend some information\n\n start = loc.start;\n end = loc.end;\n\n if (start === input.length) {\n error += \" at end of input: \";\n } else {\n error += \" at position \" + (start + 1) + \": \";\n } // Underline token in question using combining underscores\n\n\n var underlined = input.slice(start, end).replace(/[^]/g, \"$&\\u0332\"); // Extract some context from the input and add it to the error\n\n var left;\n\n if (start > 15) {\n left = \"…\" + input.slice(start - 15, start);\n } else {\n left = input.slice(0, start);\n }\n\n var right;\n\n if (end + 15 < input.length) {\n right = input.slice(end, end + 15) + \"…\";\n } else {\n right = input.slice(end);\n }\n\n error += left + underlined + right;\n } // Some hackery to make ParseError a prototype of Error\n // See http://stackoverflow.com/a/8460753\n // $FlowFixMe\n\n\n var self = new Error(error);\n self.name = \"ParseError\"; // $FlowFixMe\n\n self.__proto__ = ParseError.prototype;\n self.position = start;\n\n if (start != null && end != null) {\n self.length = end - start;\n }\n\n self.rawMessage = message;\n return self;\n }\n\n} // $FlowFixMe More hackery\n\n\nParseError.prototype.__proto__ = Error.prototype;\n\n/**\n * This file contains a list of utility functions which are useful in other\n * files.\n */\n\n/**\n * Return whether an element is contained in a list\n */\nvar contains = function contains(list, elem) {\n return list.indexOf(elem) !== -1;\n};\n/**\n * Provide a default value if a setting is undefined\n * NOTE: Couldn't use `T` as the output type due to facebook/flow#5022.\n */\n\n\nvar deflt = function deflt(setting, defaultIfUndefined) {\n return setting === undefined ? defaultIfUndefined : setting;\n}; // hyphenate and escape adapted from Facebook's React under Apache 2 license\n\n\nvar uppercase = /([A-Z])/g;\n\nvar hyphenate = function hyphenate(str) {\n return str.replace(uppercase, \"-$1\").toLowerCase();\n};\n\nvar ESCAPE_LOOKUP = {\n \"&\": \"&amp;\",\n \">\": \"&gt;\",\n \"<\": \"&lt;\",\n \"\\\"\": \"&quot;\",\n \"'\": \"&#x27;\"\n};\nvar ESCAPE_REGEX = /[&><\"']/g;\n/**\n * Escapes text to prevent scripting attacks.\n */\n\nfunction escape(text) {\n return String(text).replace(ESCAPE_REGEX, match => ESCAPE_LOOKUP[match]);\n}\n/**\n * Sometimes we want to pull out the innermost element of a group. In most\n * cases, this will just be the group itself, but when ordgroups and colors have\n * a single element, we want to pull that out.\n */\n\n\nvar getBaseElem = function getBaseElem(group) {\n if (group.type === \"ordgroup\") {\n if (group.body.length === 1) {\n return getBaseElem(group.body[0]);\n } else {\n return group;\n }\n } else if (group.type === \"color\") {\n if (group.body.length === 1) {\n return getBaseElem(group.body[0]);\n } else {\n return group;\n }\n } else if (group.type === \"font\") {\n return getBaseElem(group.body);\n } else {\n return group;\n }\n};\n/**\n * TeXbook algorithms often reference \"character boxes\", which are simply groups\n * with a single character in them. To decide if something is a character box,\n * we find its innermost group, and see if it is a single character.\n */\n\n\nvar isCharacterBox = function isCharacterBox(group) {\n var baseElem = getBaseElem(group); // These are all they types of groups which hold single characters\n\n return baseElem.type === \"mathord\" || baseElem.type === \"textord\" || baseElem.type === \"atom\";\n};\n\nvar assert = function assert(value) {\n if (!value) {\n throw new Error('Expected non-null, but got ' + String(value));\n }\n\n return value;\n};\n/**\n * Return the protocol of a URL, or \"_relative\" if the URL does not specify a\n * protocol (and thus is relative).\n */\n\nvar protocolFromUrl = function protocolFromUrl(url) {\n var protocol = /^\\s*([^\\\\/#]*?)(?::|&#0*58|&#x0*3a)/i.exec(url);\n return protocol != null ? protocol[1] : \"_relative\";\n};\nvar utils = {\n contains,\n deflt,\n escape,\n hyphenate,\n getBaseElem,\n isCharacterBox,\n protocolFromUrl\n};\n\n/* eslint no-console:0 */\n// TODO: automatically generate documentation\n// TODO: check all properties on Settings exist\n// TODO: check the type of a property on Settings matches\nvar SETTINGS_SCHEMA = {\n displayMode: {\n type: \"boolean\",\n description: \"Render math in display mode, which puts the math in \" + \"display style (so \\\\int and \\\\sum are large, for example), and \" + \"centers the math on the page on its own line.\",\n cli: \"-d, --display-mode\"\n },\n output: {\n type: {\n enum: [\"htmlAndMathml\", \"html\", \"mathml\"]\n },\n description: \"Determines the markup language of the output.\",\n cli: \"-F, --format <type>\"\n },\n leqno: {\n type: \"boolean\",\n description: \"Render display math in leqno style (left-justified tags).\"\n },\n fleqn: {\n type: \"boolean\",\n description: \"Render display math flush left.\"\n },\n throwOnError: {\n type: \"boolean\",\n default: true,\n cli: \"-t, --no-throw-on-error\",\n cliDescription: \"Render errors (in the color given by --error-color) ins\" + \"tead of throwing a ParseError exception when encountering an error.\"\n },\n errorColor: {\n type: \"string\",\n default: \"#cc0000\",\n cli: \"-c, --error-color <color>\",\n cliDescription: \"A color string given in the format 'rgb' or 'rrggbb' \" + \"(no #). This option determines the color of errors rendered by the \" + \"-t option.\",\n cliProcessor: color => \"#\" + color\n },\n macros: {\n type: \"object\",\n cli: \"-m, --macro <def>\",\n cliDescription: \"Define custom macro of the form '\\\\foo:expansion' (use \" + \"multiple -m arguments for multiple macros).\",\n cliDefault: [],\n cliProcessor: (def, defs) => {\n defs.push(def);\n return defs;\n }\n },\n minRuleThickness: {\n type: \"number\",\n description: \"Specifies a minimum thickness, in ems, for fraction lines,\" + \" `\\\\sqrt` top lines, `{array}` vertical lines, `\\\\hline`, \" + \"`\\\\hdashline`, `\\\\underline`, `\\\\overline`, and the borders of \" + \"`\\\\fbox`, `\\\\boxed`, and `\\\\fcolorbox`.\",\n processor: t => Math.max(0, t),\n cli: \"--min-rule-thickness <size>\",\n cliProcessor: parseFloat\n },\n colorIsTextColor: {\n type: \"boolean\",\n description: \"Makes \\\\color behave like LaTeX's 2-argument \\\\textcolor, \" + \"instead of LaTeX's one-argument \\\\color mode change.\",\n cli: \"-b, --color-is-text-color\"\n },\n strict: {\n type: [{\n enum: [\"warn\", \"ignore\", \"error\"]\n }, \"boolean\", \"function\"],\n description: \"Turn on strict / LaTeX faithfulness mode, which throws an \" + \"error if the input uses features that are not supported by LaTeX.\",\n cli: \"-S, --strict\",\n cliDefault: false\n },\n trust: {\n type: [\"boolean\", \"function\"],\n description: \"Trust the input, enabling all HTML features such as \\\\url.\",\n cli: \"-T, --trust\"\n },\n maxSize: {\n type: \"number\",\n default: Infinity,\n description: \"If non-zero, all user-specified sizes, e.g. in \" + \"\\\\rule{500em}{500em}, will be capped to maxSize ems. Otherwise, \" + \"elements and spaces can be arbitrarily large\",\n processor: s => Math.max(0, s),\n cli: \"-s, --max-size <n>\",\n cliProcessor: parseInt\n },\n maxExpand: {\n type: \"number\",\n default: 1000,\n description: \"Limit the number of macro expansions to the specified \" + \"number, to prevent e.g. infinite macro loops. If set to Infinity, \" + \"the macro expander will try to fully expand as in LaTeX.\",\n processor: n => Math.max(0, n),\n cli: \"-e, --max-expand <n>\",\n cliProcessor: n => n === \"Infinity\" ? Infinity : parseInt(n)\n },\n globalGroup: {\n type: \"boolean\",\n cli: false\n }\n};\n\nfunction getDefaultValue(schema) {\n if (schema.default) {\n return schema.default;\n }\n\n var type = schema.type;\n var defaultType = Array.isArray(type) ? type[0] : type;\n\n if (typeof defaultType !== 'string') {\n return defaultType.enum[0];\n }\n\n switch (defaultType) {\n case 'boolean':\n return false;\n\n case 'string':\n return '';\n\n case 'number':\n return 0;\n\n case 'object':\n return {};\n }\n}\n/**\n * The main Settings object\n *\n * The current options stored are:\n * - displayMode: Whether the expression should be typeset as inline math\n * (false, the default), meaning that the math starts in\n * \\textstyle and is placed in an inline-block); or as display\n * math (true), meaning that the math starts in \\displaystyle\n * and is placed in a block with vertical margin.\n */\n\n\nclass Settings {\n constructor(options) {\n this.displayMode = void 0;\n this.output = void 0;\n this.leqno = void 0;\n this.fleqn = void 0;\n this.throwOnError = void 0;\n this.errorColor = void 0;\n this.macros = void 0;\n this.minRuleThickness = void 0;\n this.colorIsTextColor = void 0;\n this.strict = void 0;\n this.trust = void 0;\n this.maxSize = void 0;\n this.maxExpand = void 0;\n this.globalGroup = void 0;\n // allow null options\n options = options || {};\n\n for (var prop in SETTINGS_SCHEMA) {\n if (SETTINGS_SCHEMA.hasOwnProperty(prop)) {\n // $FlowFixMe\n var schema = SETTINGS_SCHEMA[prop]; // TODO: validate options\n // $FlowFixMe\n\n this[prop] = options[prop] !== undefined ? schema.processor ? schema.processor(options[prop]) : options[prop] : getDefaultValue(schema);\n }\n }\n }\n /**\n * Report nonstrict (non-LaTeX-compatible) input.\n * Can safely not be called if `this.strict` is false in JavaScript.\n */\n\n\n reportNonstrict(errorCode, errorMsg, token) {\n var strict = this.strict;\n\n if (typeof strict === \"function\") {\n // Allow return value of strict function to be boolean or string\n // (or null/undefined, meaning no further processing).\n strict = strict(errorCode, errorMsg, token);\n }\n\n if (!strict || strict === \"ignore\") {\n return;\n } else if (strict === true || strict === \"error\") {\n throw new ParseError(\"LaTeX-incompatible input and strict mode is set to 'error': \" + (errorMsg + \" [\" + errorCode + \"]\"), token);\n } else if (strict === \"warn\") {\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \" + (errorMsg + \" [\" + errorCode + \"]\"));\n } else {\n // won't happen in type-safe code\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to \" + (\"unrecognized '\" + strict + \"': \" + errorMsg + \" [\" + errorCode + \"]\"));\n }\n }\n /**\n * Check whether to apply strict (LaTeX-adhering) behavior for unusual\n * input (like `\\\\`). Unlike `nonstrict`, will not throw an error;\n * instead, \"error\" translates to a return value of `true`, while \"ignore\"\n * translates to a return value of `false`. May still print a warning:\n * \"warn\" prints a warning and returns `false`.\n * This is for the second category of `errorCode`s listed in the README.\n */\n\n\n useStrictBehavior(errorCode, errorMsg, token) {\n var strict = this.strict;\n\n if (typeof strict === \"function\") {\n // Allow return value of strict function to be boolean or string\n // (or null/undefined, meaning no further processing).\n // But catch any exceptions thrown by function, treating them\n // like \"error\".\n try {\n strict = strict(errorCode, errorMsg, token);\n } catch (error) {\n strict = \"error\";\n }\n }\n\n if (!strict || strict === \"ignore\") {\n return false;\n } else if (strict === true || strict === \"error\") {\n return true;\n } else if (strict === \"warn\") {\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \" + (errorMsg + \" [\" + errorCode + \"]\"));\n return false;\n } else {\n // won't happen in type-safe code\n typeof console !== \"undefined\" && console.warn(\"LaTeX-incompatible input and strict mode is set to \" + (\"unrecognized '\" + strict + \"': \" + errorMsg + \" [\" + errorCode + \"]\"));\n return false;\n }\n }\n /**\n * Check whether to test potentially dangerous input, and return\n * `true` (trusted) or `false` (untrusted). The sole argument `context`\n * should be an object with `command` field specifying the relevant LaTeX\n * command (as a string starting with `\\`), and any other arguments, etc.\n * If `context` has a `url` field, a `protocol` field will automatically\n * get added by this function (changing the specified object).\n */\n\n\n isTrusted(context) {\n if (context.url && !context.protocol) {\n context.protocol = utils.protocolFromUrl(context.url);\n }\n\n var trust = typeof this.trust === \"function\" ? this.trust(context) : this.trust;\n return Boolean(trust);\n }\n\n}\n\n/**\n * This file contains information and classes for the various kinds of styles\n * used in TeX. It provides a generic `Style` class, which holds information\n * about a specific style. It then provides instances of all the different kinds\n * of styles possible, and provides functions to move between them and get\n * information about them.\n */\n\n/**\n * The main style class. Contains a unique id for the style, a size (which is\n * the same for cramped and uncramped version of a style), and a cramped flag.\n */\nclass Style {\n constructor(id, size, cramped) {\n this.id = void 0;\n this.size = void 0;\n this.cramped = void 0;\n this.id = id;\n this.size = size;\n this.cramped = cramped;\n }\n /**\n * Get the style of a superscript given a base in the current style.\n */\n\n\n sup() {\n return styles[sup[this.id]];\n }\n /**\n * Get the style of a subscript given a base in the current style.\n */\n\n\n sub() {\n return styles[sub[this.id]];\n }\n /**\n * Get the style of a fraction numerator given the fraction in the current\n * style.\n */\n\n\n fracNum() {\n return styles[fracNum[this.id]];\n }\n /**\n * Get the style of a fraction denominator given the fraction in the current\n * style.\n */\n\n\n fracDen() {\n return styles[fracDen[this.id]];\n }\n /**\n * Get the cramped version of a style (in particular, cramping a cramped style\n * doesn't change the style).\n */\n\n\n cramp() {\n return styles[cramp[this.id]];\n }\n /**\n * Get a text or display version of this style.\n */\n\n\n text() {\n return styles[text$1[this.id]];\n }\n /**\n * Return true if this style is tightly spaced (scriptstyle/scriptscriptstyle)\n */\n\n\n isTight() {\n return this.size >= 2;\n }\n\n} // Export an interface for type checking, but don't expose the implementation.\n// This way, no more styles can be generated.\n\n\n// IDs of the different styles\nvar D = 0;\nvar Dc = 1;\nvar T = 2;\nvar Tc = 3;\nvar S = 4;\nvar Sc = 5;\nvar SS = 6;\nvar SSc = 7; // Instances of the different styles\n\nvar styles = [new Style(D, 0, false), new Style(Dc, 0, true), new Style(T, 1, false), new Style(Tc, 1, true), new Style(S, 2, false), new Style(Sc, 2, true), new Style(SS, 3, false), new Style(SSc, 3, true)]; // Lookup tables for switching from one style to another\n\nvar sup = [S, Sc, S, Sc, SS, SSc, SS, SSc];\nvar sub = [Sc, Sc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar fracNum = [T, Tc, S, Sc, SS, SSc, SS, SSc];\nvar fracDen = [Tc, Tc, Sc, Sc, SSc, SSc, SSc, SSc];\nvar cramp = [Dc, Dc, Tc, Tc, Sc, Sc, SSc, SSc];\nvar text$1 = [D, Dc, T, Tc, T, Tc, T, Tc]; // We only export some of the styles.\n\nvar Style$1 = {\n DISPLAY: styles[D],\n TEXT: styles[T],\n SCRIPT: styles[S],\n SCRIPTSCRIPT: styles[SS]\n};\n\n/*\n * This file defines the Unicode scripts and script families that we\n * support. To add new scripts or families, just add a new entry to the\n * scriptData array below. Adding scripts to the scriptData array allows\n * characters from that script to appear in \\text{} environments.\n */\n\n/**\n * Each script or script family has a name and an array of blocks.\n * Each block is an array of two numbers which specify the start and\n * end points (inclusive) of a block of Unicode codepoints.\n */\n\n/**\n * Unicode block data for the families of scripts we support in \\text{}.\n * Scripts only need to appear here if they do not have font metrics.\n */\nvar scriptData = [{\n // Latin characters beyond the Latin-1 characters we have metrics for.\n // Needed for Czech, Hungarian and Turkish text, for example.\n name: 'latin',\n blocks: [[0x0100, 0x024f], // Latin Extended-A and Latin Extended-B\n [0x0300, 0x036f] // Combining Diacritical marks\n ]\n}, {\n // The Cyrillic script used by Russian and related languages.\n // A Cyrillic subset used to be supported as explicitly defined\n // symbols in symbols.js\n name: 'cyrillic',\n blocks: [[0x0400, 0x04ff]]\n}, {\n // Armenian\n name: 'armenian',\n blocks: [[0x0530, 0x058F]]\n}, {\n // The Brahmic scripts of South and Southeast Asia\n // Devanagari (0900–097F)\n // Bengali (0980–09FF)\n // Gurmukhi (0A00–0A7F)\n // Gujarati (0A80–0AFF)\n // Oriya (0B00–0B7F)\n // Tamil (0B80–0BFF)\n // Telugu (0C00–0C7F)\n // Kannada (0C80–0CFF)\n // Malayalam (0D00–0D7F)\n // Sinhala (0D80–0DFF)\n // Thai (0E00–0E7F)\n // Lao (0E80–0EFF)\n // Tibetan (0F00–0FFF)\n // Myanmar (1000–109F)\n name: 'brahmic',\n blocks: [[0x0900, 0x109F]]\n}, {\n name: 'georgian',\n blocks: [[0x10A0, 0x10ff]]\n}, {\n // Chinese and Japanese.\n // The \"k\" in cjk is for Korean, but we've separated Korean out\n name: \"cjk\",\n blocks: [[0x3000, 0x30FF], // CJK symbols and punctuation, Hiragana, Katakana\n [0x4E00, 0x9FAF], // CJK ideograms\n [0xFF00, 0xFF60] // Fullwidth punctuation\n // TODO: add halfwidth Katakana and Romanji glyphs\n ]\n}, {\n // Korean\n name: 'hangul',\n blocks: [[0xAC00, 0xD7AF]]\n}];\n/**\n * Given a codepoint, return the name of the script or script family\n * it is from, or null if it is not part of a known block\n */\n\nfunction scriptFromCodepoint(codepoint) {\n for (var i = 0; i < scriptData.length; i++) {\n var script = scriptData[i];\n\n for (var _i = 0; _i < script.blocks.length; _i++) {\n var block = script.blocks[_i];\n\n if (codepoint >= block[0] && codepoint <= block[1]) {\n return script.name;\n }\n }\n }\n\n return null;\n}\n/**\n * A flattened version of all the supported blocks in a single array.\n * This is an optimization to make supportedCodepoint() fast.\n */\n\nvar allBlocks = [];\nscriptData.forEach(s => s.blocks.forEach(b => allBlocks.push(...b)));\n/**\n * Given a codepoint, return true if it falls within one of the\n * scripts or script families defined above and false otherwise.\n *\n * Micro benchmarks shows that this is faster than\n * /[\\u3000-\\u30FF\\u4E00-\\u9FAF\\uFF00-\\uFF60\\uAC00-\\uD7AF\\u0900-\\u109F]/.test()\n * in Firefox, Chrome and Node.\n */\n\nfunction supportedCodepoint(codepoint) {\n for (var i = 0; i < allBlocks.length; i += 2) {\n if (codepoint >= allBlocks[i] && codepoint <= allBlocks[i + 1]) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * This file provides support to domTree.js and delimiter.js.\n * It's a storehouse of path geometry for SVG images.\n */\n// In all paths below, the viewBox-to-em scale is 1000:1.\nvar hLinePad = 80; // padding above a sqrt vinculum. Prevents image cropping.\n// The vinculum of a \\sqrt can be made thicker by a KaTeX rendering option.\n// Think of variable extraVinculum as two detours in the SVG path.\n// The detour begins at the lower left of the area labeled extraVinculum below.\n// The detour proceeds one extraVinculum distance up and slightly to the right,\n// displacing the radiused corner between surd and vinculum. The radius is\n// traversed as usual, then the detour resumes. It goes right, to the end of\n// the very long vinculum, then down one extraVinculum distance,\n// after which it resumes regular path geometry for the radical.\n\n/* vinculum\n /\n /▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒←extraVinculum\n / █████████████████████←0.04em (40 unit) std vinculum thickness\n / /\n / /\n / /\\\n / / surd\n*/\n\nvar sqrtMain = function sqrtMain(extraVinculum, hLinePad) {\n // sqrtMain path geometry is from glyph U221A in the font KaTeX Main\n return \"M95,\" + (622 + extraVinculum + hLinePad) + \"\\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\\nc69,-144,104.5,-217.7,106.5,-221\\nl\" + extraVinculum / 2.075 + \" -\" + extraVinculum + \"\\nc5.3,-9.3,12,-14,20,-14\\nH400000v\" + (40 + extraVinculum) + \"H845.2724\\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\\nM\" + (834 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nvar sqrtSize1 = function sqrtSize1(extraVinculum, hLinePad) {\n // size1 is from glyph U221A in the font KaTeX_Size1-Regular\n return \"M263,\" + (601 + extraVinculum + hLinePad) + \"c0.7,0,18,39.7,52,119\\nc34,79.3,68.167,158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120\\nc340,-704.7,510.7,-1060.3,512,-1067\\nl\" + extraVinculum / 2.084 + \" -\" + extraVinculum + \"\\nc4.7,-7.3,11,-11,19,-11\\nH40000v\" + (40 + extraVinculum) + \"H1012.3\\ns-271.3,567,-271.3,567c-38.7,80.7,-84,175,-136,283c-52,108,-89.167,185.3,-111.5,232\\nc-22.3,46.7,-33.8,70.3,-34.5,71c-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1\\ns-109,-253,-109,-253c-72.7,-168,-109.3,-252,-110,-252c-10.7,8,-22,16.7,-34,26\\nc-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26s76,-59,76,-59s76,-60,76,-60z\\nM\" + (1001 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nvar sqrtSize2 = function sqrtSize2(extraVinculum, hLinePad) {\n // size2 is from glyph U221A in the font KaTeX_Size2-Regular\n return \"M983 \" + (10 + extraVinculum + hLinePad) + \"\\nl\" + extraVinculum / 3.13 + \" -\" + extraVinculum + \"\\nc4,-6.7,10,-10,18,-10 H400000v\" + (40 + extraVinculum) + \"\\nH1013.1s-83.4,268,-264.1,840c-180.7,572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7\\ns-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744\\nc-10,12,-21,25,-33,39s-32,39,-32,39c-6,-5.3,-15,-14,-27,-26s25,-30,25,-30\\nc26.7,-32.7,52,-63,76,-91s52,-60,52,-60s208,722,208,722\\nc56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,-658.5\\nc53.7,-170.3,84.5,-266.8,92.5,-289.5z\\nM\" + (1001 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nvar sqrtSize3 = function sqrtSize3(extraVinculum, hLinePad) {\n // size3 is from glyph U221A in the font KaTeX_Size3-Regular\n return \"M424,\" + (2398 + extraVinculum + hLinePad) + \"\\nc-1.3,-0.7,-38.5,-172,-111.5,-514c-73,-342,-109.8,-513.3,-110.5,-514\\nc0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,25c-5.7,9.3,-9.8,16,-12.5,20\\ns-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,-13s76,-122,76,-122s77,-121,77,-121\\ns209,968,209,968c0,-2,84.7,-361.7,254,-1079c169.3,-717.3,254.7,-1077.7,256,-1081\\nl\" + extraVinculum / 4.223 + \" -\" + extraVinculum + \"c4,-6.7,10,-10,18,-10 H400000\\nv\" + (40 + extraVinculum) + \"H1014.6\\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185\\nc-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2z M\" + (1001 + extraVinculum) + \" \" + hLinePad + \"\\nh400000v\" + (40 + extraVinculum) + \"h-400000z\";\n};\n\nvar sqrtSize4 = function sqrtSize4(extraVinculum, hLinePad) {\n // size4 is from glyph U221A in the font KaTeX_Size4-Regular\n return \"M473,\" + (2713 + extraVinculum + hLinePad) + \"\\nc339.3,-1799.3,509.3,-2700,510,-2702 l\" + extraVinculum / 5.298 + \" -\" + extraVinculum + \"\\nc3.3,-7.3,9.3,-11,18,-11 H400000v\" + (40 + extraVinculum) + \"H1017.7\\ns-90.5,478,-276.2,1466c-185.7,988,-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200\\nc0,-1.3,-5.3,8.7,-16,30c-10.7,21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26\\ns76,-153,76,-153s77,-151,77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,\\n606zM\" + (1001 + extraVinculum) + \" \" + hLinePad + \"h400000v\" + (40 + extraVinculum) + \"H1017.7z\";\n};\n\nvar phasePath = function phasePath(y) {\n var x = y / 2; // x coordinate at top of angle\n\n return \"M400000 \" + y + \" H0 L\" + x + \" 0 l65 45 L145 \" + (y - 80) + \" H400000z\";\n};\n\nvar sqrtTall = function sqrtTall(extraVinculum, hLinePad, viewBoxHeight) {\n // sqrtTall is from glyph U23B7 in the font KaTeX_Size4-Regular\n // One path edge has a variable length. It runs vertically from the vinculum\n // to a point near (14 units) the bottom of the surd. The vinculum\n // is normally 40 units thick. So the length of the line in question is:\n var vertSegment = viewBoxHeight - 54 - hLinePad - extraVinculum;\n return \"M702 \" + (extraVinculum + hLinePad) + \"H400000\" + (40 + extraVinculum) + \"\\nH742v\" + vertSegment + \"l-4 4-4 4c-.667.7 -2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1\\nh-12l-28-84c-16.667-52-96.667 -294.333-240-727l-212 -643 -85 170\\nc-4-3.333-8.333-7.667-13 -13l-13-13l77-155 77-156c66 199.333 139 419.667\\n219 661 l218 661zM702 \" + hLinePad + \"H400000v\" + (40 + extraVinculum) + \"H742z\";\n};\n\nvar sqrtPath = function sqrtPath(size, extraVinculum, viewBoxHeight) {\n extraVinculum = 1000 * extraVinculum; // Convert from document ems to viewBox.\n\n var path = \"\";\n\n switch (size) {\n case \"sqrtMain\":\n path = sqrtMain(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize1\":\n path = sqrtSize1(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize2\":\n path = sqrtSize2(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize3\":\n path = sqrtSize3(extraVinculum, hLinePad);\n break;\n\n case \"sqrtSize4\":\n path = sqrtSize4(extraVinculum, hLinePad);\n break;\n\n case \"sqrtTall\":\n path = sqrtTall(extraVinculum, hLinePad, viewBoxHeight);\n }\n\n return path;\n};\nvar innerPath = function innerPath(name, height) {\n // The inner part of stretchy tall delimiters\n switch (name) {\n case \"\\u239c\":\n return \"M291 0 H417 V\" + height + \" H291z M291 0 H417 V\" + height + \" H291z\";\n\n case \"\\u2223\":\n return \"M145 0 H188 V\" + height + \" H145z M145 0 H188 V\" + height + \" H145z\";\n\n case \"\\u2225\":\n return \"M145 0 H188 V\" + height + \" H145z M145 0 H188 V\" + height + \" H145z\" + (\"M367 0 H410 V\" + height + \" H367z M367 0 H410 V\" + height + \" H367z\");\n\n case \"\\u239f\":\n return \"M457 0 H583 V\" + height + \" H457z M457 0 H583 V\" + height + \" H457z\";\n\n case \"\\u23a2\":\n return \"M319 0 H403 V\" + height + \" H319z M319 0 H403 V\" + height + \" H319z\";\n\n case \"\\u23a5\":\n return \"M263 0 H347 V\" + height + \" H263z M263 0 H347 V\" + height + \" H263z\";\n\n case \"\\u23aa\":\n return \"M384 0 H504 V\" + height + \" H384z M384 0 H504 V\" + height + \" H384z\";\n\n case \"\\u23d0\":\n return \"M312 0 H355 V\" + height + \" H312z M312 0 H355 V\" + height + \" H312z\";\n\n case \"\\u2016\":\n return \"M257 0 H300 V\" + height + \" H257z M257 0 H300 V\" + height + \" H257z\" + (\"M478 0 H521 V\" + height + \" H478z M478 0 H521 V\" + height + \" H478z\");\n\n default:\n return \"\";\n }\n};\nvar path = {\n // The doubleleftarrow geometry is from glyph U+21D0 in the font KaTeX Main\n doubleleftarrow: \"M262 157\\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\\nm8 0v40h399730v-40zm0 194v40h399730v-40z\",\n // doublerightarrow is from glyph U+21D2 in font KaTeX Main\n doublerightarrow: \"M399738 392l\\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z\",\n // leftarrow is from glyph U+2190 in font KaTeX Main\n leftarrow: \"M400000 241H110l3-3c68.7-52.7 113.7-120\\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\\n l-3-3h399890zM100 241v40h399900v-40z\",\n // overbrace is from glyphs U+23A9/23A8/23A7 in font KaTeX_Size4-Regular\n leftbrace: \"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z\",\n leftbraceunder: \"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z\",\n // overgroup is from the MnSymbol package (public domain)\n leftgroup: \"M400000 80\\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\\n 435 0h399565z\",\n leftgroupunder: \"M400000 262\\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\\n 435 219h399565z\",\n // Harpoons are from glyph U+21BD in font KaTeX Main\n leftharpoon: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z\",\n leftharpoonplus: \"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\\nm0 0v40h400000v-40z\",\n leftharpoondown: \"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z\",\n leftharpoondownplus: \"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z\",\n // hook is from glyph U+21A9 in font KaTeX Main\n lefthook: \"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\\n 71.5 23h399859zM103 281v-40h399897v40z\",\n leftlinesegment: \"M40 281 V428 H0 V94 H40 V241 H400000 v40z\\nM40 281 V428 H0 V94 H40 V241 H400000 v40z\",\n leftmapsto: \"M40 281 V448H0V74H40V241H400000v40z\\nM40 281 V448H0V74H40V241H400000v40z\",\n // tofrom is from glyph U+21C4 in font KaTeX AMS Regular\n leftToFrom: \"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z\",\n longequal: \"M0 50 h400000 v40H0z m0 194h40000v40H0z\\nM0 50 h400000 v40H0z m0 194h40000v40H0z\",\n midbrace: \"M200428 334\\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z\",\n midbraceunder: \"M199572 214\\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z\",\n oiintSize1: \"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z\",\n oiintSize2: \"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\\nc0 110 84 276 504 276s502.4-166 502.4-276z\",\n oiiintSize1: \"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z\",\n oiiintSize2: \"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z\",\n rightarrow: \"M0 241v40h399891c-47.3 35.3-84 78-110 128\\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n 151.7 139 205zm0 0v40h399900v-40z\",\n rightbrace: \"M400000 542l\\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z\",\n rightbraceunder: \"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z\",\n rightgroup: \"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\\n 3-1 3-3v-38c-76-158-257-219-435-219H0z\",\n rightgroupunder: \"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z\",\n rightharpoon: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\\n 69.2 92 94.5zm0 0v40h399900v-40z\",\n rightharpoonplus: \"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z\",\n rightharpoondown: \"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z\",\n rightharpoondownplus: \"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\\nm0-194v40h400000v-40zm0 0v40h400000v-40z\",\n righthook: \"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z\",\n rightlinesegment: \"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z\",\n rightToFrom: \"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z\",\n // twoheadleftarrow is from glyph U+219E in font KaTeX AMS Regular\n twoheadleftarrow: \"M0 167c68 40\\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z\",\n twoheadrightarrow: \"M400000 167\\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z\",\n // tilde1 is a modified version of a glyph from the MnSymbol package\n tilde1: \"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\\n-68.267.847-113-73.952-191-73.952z\",\n // ditto tilde2, tilde3, & tilde4\n tilde2: \"M344 55.266c-142 0-300.638 81.316-311.5 86.418\\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z\",\n tilde3: \"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\\n -338 0-409-156.573-744-156.573z\",\n tilde4: \"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\\n -175.236-744-175.236z\",\n // vec is from glyph U+20D7 in font KaTeX Main\n vec: \"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\\nc-16-25.333-24-45-24-59z\",\n // widehat1 is a modified version of a glyph from the MnSymbol package\n widehat1: \"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z\",\n // ditto widehat2, widehat3, & widehat4\n widehat2: \"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n widehat3: \"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n widehat4: \"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",\n // widecheck paths are all inverted versions of widehat\n widecheck1: \"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z\",\n widecheck2: \"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n widecheck3: \"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n widecheck4: \"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",\n // The next ten paths support reaction arrows from the mhchem package.\n // Arrows for \\ce{<-->} are offset from xAxis by 0.22ex, per mhchem in LaTeX\n // baraboveleftarrow is mostly from glyph U+2190 in font KaTeX Main\n baraboveleftarrow: \"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z\",\n // rightarrowabovebar is mostly from glyph U+2192, KaTeX Main\n rightarrowabovebar: \"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z\",\n // The short left harpoon has 0.5em (i.e. 500 units) kern on the left end.\n // Ref from mhchem.sty: \\rlap{\\raisebox{-.22ex}{$\\kern0.5em\n baraboveshortleftharpoon: \"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z\",\n rightharpoonaboveshortbar: \"M0,241 l0,40c399126,0,399993,0,399993,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z\",\n shortbaraboveleftharpoon: \"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z\",\n shortrightharpoonabovebar: \"M53,241l0,40c398570,0,399437,0,399437,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z\"\n};\nvar tallDelim = function tallDelim(label, midHeight) {\n switch (label) {\n case \"lbrack\":\n return \"M403 1759 V84 H666 V0 H319 V1759 v\" + midHeight + \" v1759 h347 v-84\\nH403z M403 1759 V0 H319 V1759 v\" + midHeight + \" v1759 h84z\";\n\n case \"rbrack\":\n return \"M347 1759 V0 H0 V84 H263 V1759 v\" + midHeight + \" v1759 H0 v84 H347z\\nM347 1759 V0 H263 V1759 v\" + midHeight + \" v1759 h84z\";\n\n case \"vert\":\n return \"M145 15 v585 v\" + midHeight + \" v585 c2.667,10,9.667,15,21,15\\nc10,0,16.667,-5,20,-15 v-585 v\" + -midHeight + \" v-585 c-2.667,-10,-9.667,-15,-21,-15\\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v\" + midHeight + \" v585 h43z\";\n\n case \"doublevert\":\n return \"M145 15 v585 v\" + midHeight + \" v585 c2.667,10,9.667,15,21,15\\nc10,0,16.667,-5,20,-15 v-585 v\" + -midHeight + \" v-585 c-2.667,-10,-9.667,-15,-21,-15\\nc-10,0,-16.667,5,-20,15z M188 15 H145 v585 v\" + midHeight + \" v585 h43z\\nM367 15 v585 v\" + midHeight + \" v585 c2.667,10,9.667,15,21,15\\nc10,0,16.667,-5,20,-15 v-585 v\" + -midHeight + \" v-585 c-2.667,-10,-9.667,-15,-21,-15\\nc-10,0,-16.667,5,-20,15z M410 15 H367 v585 v\" + midHeight + \" v585 h43z\";\n\n case \"lfloor\":\n return \"M319 602 V0 H403 V602 v\" + midHeight + \" v1715 h263 v84 H319z\\nMM319 602 V0 H403 V602 v\" + midHeight + \" v1715 H319z\";\n\n case \"rfloor\":\n return \"M319 602 V0 H403 V602 v\" + midHeight + \" v1799 H0 v-84 H319z\\nMM319 602 V0 H403 V602 v\" + midHeight + \" v1715 H319z\";\n\n case \"lceil\":\n return \"M403 1759 V84 H666 V0 H319 V1759 v\" + midHeight + \" v602 h84z\\nM403 1759 V0 H319 V1759 v\" + midHeight + \" v602 h84z\";\n\n case \"rceil\":\n return \"M347 1759 V0 H0 V84 H263 V1759 v\" + midHeight + \" v602 h84z\\nM347 1759 V0 h-84 V1759 v\" + midHeight + \" v602 h84z\";\n\n case \"lparen\":\n return \"M863,9c0,-2,-2,-5,-6,-9c0,0,-17,0,-17,0c-12.7,0,-19.3,0.3,-20,1\\nc-5.3,5.3,-10.3,11,-15,17c-242.7,294.7,-395.3,682,-458,1162c-21.3,163.3,-33.3,349,\\n-36,557 l0,\" + (midHeight + 84) + \"c0.2,6,0,26,0,60c2,159.3,10,310.7,24,454c53.3,528,210,\\n949.7,470,1265c4.7,6,9.7,11.7,15,17c0.7,0.7,7,1,19,1c0,0,18,0,18,0c4,-4,6,-7,6,-9\\nc0,-2.7,-3.3,-8.7,-10,-18c-135.3,-192.7,-235.5,-414.3,-300.5,-665c-65,-250.7,-102.5,\\n-544.7,-112.5,-882c-2,-104,-3,-167,-3,-189\\nl0,-\" + (midHeight + 92) + \"c0,-162.7,5.7,-314,17,-454c20.7,-272,63.7,-513,129,-723c65.3,\\n-210,155.3,-396.3,270,-559c6.7,-9.3,10,-15.3,10,-18z\";\n\n case \"rparen\":\n return \"M76,0c-16.7,0,-25,3,-25,9c0,2,2,6.3,6,13c21.3,28.7,42.3,60.3,\\n63,95c96.7,156.7,172.8,332.5,228.5,527.5c55.7,195,92.8,416.5,111.5,664.5\\nc11.3,139.3,17,290.7,17,454c0,28,1.7,43,3.3,45l0,\" + (midHeight + 9) + \"\\nc-3,4,-3.3,16.7,-3.3,38c0,162,-5.7,313.7,-17,455c-18.7,248,-55.8,469.3,-111.5,664\\nc-55.7,194.7,-131.8,370.3,-228.5,527c-20.7,34.7,-41.7,66.3,-63,95c-2,3.3,-4,7,-6,11\\nc0,7.3,5.7,11,17,11c0,0,11,0,11,0c9.3,0,14.3,-0.3,15,-1c5.3,-5.3,10.3,-11,15,-17\\nc242.7,-294.7,395.3,-681.7,458,-1161c21.3,-164.7,33.3,-350.7,36,-558\\nl0,-\" + (midHeight + 144) + \"c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,\\n-470,-1265c-4.7,-6,-9.7,-11.7,-15,-17c-0.7,-0.7,-6.7,-1,-18,-1z\";\n\n default:\n // We should not ever get here.\n throw new Error(\"Unknown stretchy delimiter.\");\n }\n};\n\n/**\n * This node represents a document fragment, which contains elements, but when\n * placed into the DOM doesn't have any representation itself. It only contains\n * children and doesn't have any DOM node properties.\n */\nclass DocumentFragment {\n // HtmlDomNode\n // Never used; needed for satisfying interface.\n constructor(children) {\n this.children = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n this.children = children;\n this.classes = [];\n this.height = 0;\n this.depth = 0;\n this.maxFontSize = 0;\n this.style = {};\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n /** Convert the fragment into a node. */\n\n\n toNode() {\n var frag = document.createDocumentFragment();\n\n for (var i = 0; i < this.children.length; i++) {\n frag.appendChild(this.children[i].toNode());\n }\n\n return frag;\n }\n /** Convert the fragment into HTML markup. */\n\n\n toMarkup() {\n var markup = \"\"; // Simply concatenate the markup for the children together.\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n return markup;\n }\n /**\n * Converts the math node into a string, similar to innerText. Applies to\n * MathDomNode's only.\n */\n\n\n toText() {\n // To avoid this, we would subclass documentFragment separately for\n // MathML, but polyfills for subclassing is expensive per PR 1469.\n // $FlowFixMe: Only works for ChildType = MathDomNode.\n var toText = child => child.toText();\n\n return this.children.map(toText).join(\"\");\n }\n\n}\n\n// This file is GENERATED by buildMetrics.sh. DO NOT MODIFY.\nvar fontMetricsData = {\n \"AMS-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.68889, 0, 0, 0.72222],\n \"66\": [0, 0.68889, 0, 0, 0.66667],\n \"67\": [0, 0.68889, 0, 0, 0.72222],\n \"68\": [0, 0.68889, 0, 0, 0.72222],\n \"69\": [0, 0.68889, 0, 0, 0.66667],\n \"70\": [0, 0.68889, 0, 0, 0.61111],\n \"71\": [0, 0.68889, 0, 0, 0.77778],\n \"72\": [0, 0.68889, 0, 0, 0.77778],\n \"73\": [0, 0.68889, 0, 0, 0.38889],\n \"74\": [0.16667, 0.68889, 0, 0, 0.5],\n \"75\": [0, 0.68889, 0, 0, 0.77778],\n \"76\": [0, 0.68889, 0, 0, 0.66667],\n \"77\": [0, 0.68889, 0, 0, 0.94445],\n \"78\": [0, 0.68889, 0, 0, 0.72222],\n \"79\": [0.16667, 0.68889, 0, 0, 0.77778],\n \"80\": [0, 0.68889, 0, 0, 0.61111],\n \"81\": [0.16667, 0.68889, 0, 0, 0.77778],\n \"82\": [0, 0.68889, 0, 0, 0.72222],\n \"83\": [0, 0.68889, 0, 0, 0.55556],\n \"84\": [0, 0.68889, 0, 0, 0.66667],\n \"85\": [0, 0.68889, 0, 0, 0.72222],\n \"86\": [0, 0.68889, 0, 0, 0.72222],\n \"87\": [0, 0.68889, 0, 0, 1.0],\n \"88\": [0, 0.68889, 0, 0, 0.72222],\n \"89\": [0, 0.68889, 0, 0, 0.72222],\n \"90\": [0, 0.68889, 0, 0, 0.66667],\n \"107\": [0, 0.68889, 0, 0, 0.55556],\n \"160\": [0, 0, 0, 0, 0.25],\n \"165\": [0, 0.675, 0.025, 0, 0.75],\n \"174\": [0.15559, 0.69224, 0, 0, 0.94666],\n \"240\": [0, 0.68889, 0, 0, 0.55556],\n \"295\": [0, 0.68889, 0, 0, 0.54028],\n \"710\": [0, 0.825, 0, 0, 2.33334],\n \"732\": [0, 0.9, 0, 0, 2.33334],\n \"770\": [0, 0.825, 0, 0, 2.33334],\n \"771\": [0, 0.9, 0, 0, 2.33334],\n \"989\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"1008\": [0, 0.43056, 0.04028, 0, 0.66667],\n \"8245\": [0, 0.54986, 0, 0, 0.275],\n \"8463\": [0, 0.68889, 0, 0, 0.54028],\n \"8487\": [0, 0.68889, 0, 0, 0.72222],\n \"8498\": [0, 0.68889, 0, 0, 0.55556],\n \"8502\": [0, 0.68889, 0, 0, 0.66667],\n \"8503\": [0, 0.68889, 0, 0, 0.44445],\n \"8504\": [0, 0.68889, 0, 0, 0.66667],\n \"8513\": [0, 0.68889, 0, 0, 0.63889],\n \"8592\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8594\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8602\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8603\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8606\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8608\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8610\": [0.01354, 0.52239, 0, 0, 1.11111],\n \"8611\": [0.01354, 0.52239, 0, 0, 1.11111],\n \"8619\": [0, 0.54986, 0, 0, 1.0],\n \"8620\": [0, 0.54986, 0, 0, 1.0],\n \"8621\": [-0.13313, 0.37788, 0, 0, 1.38889],\n \"8622\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8624\": [0, 0.69224, 0, 0, 0.5],\n \"8625\": [0, 0.69224, 0, 0, 0.5],\n \"8630\": [0, 0.43056, 0, 0, 1.0],\n \"8631\": [0, 0.43056, 0, 0, 1.0],\n \"8634\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8635\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8638\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8639\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8642\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8643\": [0.19444, 0.69224, 0, 0, 0.41667],\n \"8644\": [0.1808, 0.675, 0, 0, 1.0],\n \"8646\": [0.1808, 0.675, 0, 0, 1.0],\n \"8647\": [0.1808, 0.675, 0, 0, 1.0],\n \"8648\": [0.19444, 0.69224, 0, 0, 0.83334],\n \"8649\": [0.1808, 0.675, 0, 0, 1.0],\n \"8650\": [0.19444, 0.69224, 0, 0, 0.83334],\n \"8651\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8652\": [0.01354, 0.52239, 0, 0, 1.0],\n \"8653\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8654\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8655\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8666\": [0.13667, 0.63667, 0, 0, 1.0],\n \"8667\": [0.13667, 0.63667, 0, 0, 1.0],\n \"8669\": [-0.13313, 0.37788, 0, 0, 1.0],\n \"8672\": [-0.064, 0.437, 0, 0, 1.334],\n \"8674\": [-0.064, 0.437, 0, 0, 1.334],\n \"8705\": [0, 0.825, 0, 0, 0.5],\n \"8708\": [0, 0.68889, 0, 0, 0.55556],\n \"8709\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8717\": [0, 0.43056, 0, 0, 0.42917],\n \"8722\": [-0.03598, 0.46402, 0, 0, 0.5],\n \"8724\": [0.08198, 0.69224, 0, 0, 0.77778],\n \"8726\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8733\": [0, 0.69224, 0, 0, 0.77778],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8737\": [0, 0.69224, 0, 0, 0.72222],\n \"8738\": [0.03517, 0.52239, 0, 0, 0.72222],\n \"8739\": [0.08167, 0.58167, 0, 0, 0.22222],\n \"8740\": [0.25142, 0.74111, 0, 0, 0.27778],\n \"8741\": [0.08167, 0.58167, 0, 0, 0.38889],\n \"8742\": [0.25142, 0.74111, 0, 0, 0.5],\n \"8756\": [0, 0.69224, 0, 0, 0.66667],\n \"8757\": [0, 0.69224, 0, 0, 0.66667],\n \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8765\": [-0.13313, 0.37788, 0, 0, 0.77778],\n \"8769\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8770\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8774\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n \"8778\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8782\": [0.06062, 0.54986, 0, 0, 0.77778],\n \"8783\": [0.06062, 0.54986, 0, 0, 0.77778],\n \"8785\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8786\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8787\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8790\": [0, 0.69224, 0, 0, 0.77778],\n \"8791\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8796\": [0.08198, 0.91667, 0, 0, 0.77778],\n \"8806\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"8807\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"8808\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"8809\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"8812\": [0.25583, 0.75583, 0, 0, 0.5],\n \"8814\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8815\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8816\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8817\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8818\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8819\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8822\": [0.1808, 0.675, 0, 0, 0.77778],\n \"8823\": [0.1808, 0.675, 0, 0, 0.77778],\n \"8828\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8829\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8830\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8831\": [0.22958, 0.72958, 0, 0, 0.77778],\n \"8832\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8833\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8840\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8841\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8842\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8843\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8847\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8848\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8858\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8859\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8861\": [0.08198, 0.58198, 0, 0, 0.77778],\n \"8862\": [0, 0.675, 0, 0, 0.77778],\n \"8863\": [0, 0.675, 0, 0, 0.77778],\n \"8864\": [0, 0.675, 0, 0, 0.77778],\n \"8865\": [0, 0.675, 0, 0, 0.77778],\n \"8872\": [0, 0.69224, 0, 0, 0.61111],\n \"8873\": [0, 0.69224, 0, 0, 0.72222],\n \"8874\": [0, 0.69224, 0, 0, 0.88889],\n \"8876\": [0, 0.68889, 0, 0, 0.61111],\n \"8877\": [0, 0.68889, 0, 0, 0.61111],\n \"8878\": [0, 0.68889, 0, 0, 0.72222],\n \"8879\": [0, 0.68889, 0, 0, 0.72222],\n \"8882\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8883\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8884\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8885\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8888\": [0, 0.54986, 0, 0, 1.11111],\n \"8890\": [0.19444, 0.43056, 0, 0, 0.55556],\n \"8891\": [0.19444, 0.69224, 0, 0, 0.61111],\n \"8892\": [0.19444, 0.69224, 0, 0, 0.61111],\n \"8901\": [0, 0.54986, 0, 0, 0.27778],\n \"8903\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8905\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8906\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"8907\": [0, 0.69224, 0, 0, 0.77778],\n \"8908\": [0, 0.69224, 0, 0, 0.77778],\n \"8909\": [-0.03598, 0.46402, 0, 0, 0.77778],\n \"8910\": [0, 0.54986, 0, 0, 0.76042],\n \"8911\": [0, 0.54986, 0, 0, 0.76042],\n \"8912\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8913\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"8914\": [0, 0.54986, 0, 0, 0.66667],\n \"8915\": [0, 0.54986, 0, 0, 0.66667],\n \"8916\": [0, 0.69224, 0, 0, 0.66667],\n \"8918\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8919\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8920\": [0.03517, 0.54986, 0, 0, 1.33334],\n \"8921\": [0.03517, 0.54986, 0, 0, 1.33334],\n \"8922\": [0.38569, 0.88569, 0, 0, 0.77778],\n \"8923\": [0.38569, 0.88569, 0, 0, 0.77778],\n \"8926\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8927\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"8928\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8929\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8934\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8935\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8936\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8937\": [0.23222, 0.74111, 0, 0, 0.77778],\n \"8938\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8939\": [0.20576, 0.70576, 0, 0, 0.77778],\n \"8940\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8941\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"8994\": [0.19444, 0.69224, 0, 0, 0.77778],\n \"8995\": [0.19444, 0.69224, 0, 0, 0.77778],\n \"9416\": [0.15559, 0.69224, 0, 0, 0.90222],\n \"9484\": [0, 0.69224, 0, 0, 0.5],\n \"9488\": [0, 0.69224, 0, 0, 0.5],\n \"9492\": [0, 0.37788, 0, 0, 0.5],\n \"9496\": [0, 0.37788, 0, 0, 0.5],\n \"9585\": [0.19444, 0.68889, 0, 0, 0.88889],\n \"9586\": [0.19444, 0.74111, 0, 0, 0.88889],\n \"9632\": [0, 0.675, 0, 0, 0.77778],\n \"9633\": [0, 0.675, 0, 0, 0.77778],\n \"9650\": [0, 0.54986, 0, 0, 0.72222],\n \"9651\": [0, 0.54986, 0, 0, 0.72222],\n \"9654\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"9660\": [0, 0.54986, 0, 0, 0.72222],\n \"9661\": [0, 0.54986, 0, 0, 0.72222],\n \"9664\": [0.03517, 0.54986, 0, 0, 0.77778],\n \"9674\": [0.11111, 0.69224, 0, 0, 0.66667],\n \"9733\": [0.19444, 0.69224, 0, 0, 0.94445],\n \"10003\": [0, 0.69224, 0, 0, 0.83334],\n \"10016\": [0, 0.69224, 0, 0, 0.83334],\n \"10731\": [0.11111, 0.69224, 0, 0, 0.66667],\n \"10846\": [0.19444, 0.75583, 0, 0, 0.61111],\n \"10877\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10878\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10885\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10886\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10887\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10888\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10889\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10890\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10891\": [0.48256, 0.98256, 0, 0, 0.77778],\n \"10892\": [0.48256, 0.98256, 0, 0, 0.77778],\n \"10901\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10902\": [0.13667, 0.63667, 0, 0, 0.77778],\n \"10933\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"10934\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"10935\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10936\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10937\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10938\": [0.26167, 0.75726, 0, 0, 0.77778],\n \"10949\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10950\": [0.25583, 0.75583, 0, 0, 0.77778],\n \"10955\": [0.28481, 0.79383, 0, 0, 0.77778],\n \"10956\": [0.28481, 0.79383, 0, 0, 0.77778],\n \"57350\": [0.08167, 0.58167, 0, 0, 0.22222],\n \"57351\": [0.08167, 0.58167, 0, 0, 0.38889],\n \"57352\": [0.08167, 0.58167, 0, 0, 0.77778],\n \"57353\": [0, 0.43056, 0.04028, 0, 0.66667],\n \"57356\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57357\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57358\": [0.41951, 0.91951, 0, 0, 0.77778],\n \"57359\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"57360\": [0.30274, 0.79383, 0, 0, 0.77778],\n \"57361\": [0.41951, 0.91951, 0, 0, 0.77778],\n \"57366\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57367\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57368\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57369\": [0.25142, 0.75726, 0, 0, 0.77778],\n \"57370\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"57371\": [0.13597, 0.63597, 0, 0, 0.77778]\n },\n \"Caligraphic-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.68333, 0, 0.19445, 0.79847],\n \"66\": [0, 0.68333, 0.03041, 0.13889, 0.65681],\n \"67\": [0, 0.68333, 0.05834, 0.13889, 0.52653],\n \"68\": [0, 0.68333, 0.02778, 0.08334, 0.77139],\n \"69\": [0, 0.68333, 0.08944, 0.11111, 0.52778],\n \"70\": [0, 0.68333, 0.09931, 0.11111, 0.71875],\n \"71\": [0.09722, 0.68333, 0.0593, 0.11111, 0.59487],\n \"72\": [0, 0.68333, 0.00965, 0.11111, 0.84452],\n \"73\": [0, 0.68333, 0.07382, 0, 0.54452],\n \"74\": [0.09722, 0.68333, 0.18472, 0.16667, 0.67778],\n \"75\": [0, 0.68333, 0.01445, 0.05556, 0.76195],\n \"76\": [0, 0.68333, 0, 0.13889, 0.68972],\n \"77\": [0, 0.68333, 0, 0.13889, 1.2009],\n \"78\": [0, 0.68333, 0.14736, 0.08334, 0.82049],\n \"79\": [0, 0.68333, 0.02778, 0.11111, 0.79611],\n \"80\": [0, 0.68333, 0.08222, 0.08334, 0.69556],\n \"81\": [0.09722, 0.68333, 0, 0.11111, 0.81667],\n \"82\": [0, 0.68333, 0, 0.08334, 0.8475],\n \"83\": [0, 0.68333, 0.075, 0.13889, 0.60556],\n \"84\": [0, 0.68333, 0.25417, 0, 0.54464],\n \"85\": [0, 0.68333, 0.09931, 0.08334, 0.62583],\n \"86\": [0, 0.68333, 0.08222, 0, 0.61278],\n \"87\": [0, 0.68333, 0.08222, 0.08334, 0.98778],\n \"88\": [0, 0.68333, 0.14643, 0.13889, 0.7133],\n \"89\": [0.09722, 0.68333, 0.08222, 0.08334, 0.66834],\n \"90\": [0, 0.68333, 0.07944, 0.13889, 0.72473],\n \"160\": [0, 0, 0, 0, 0.25]\n },\n \"Fraktur-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69141, 0, 0, 0.29574],\n \"34\": [0, 0.69141, 0, 0, 0.21471],\n \"38\": [0, 0.69141, 0, 0, 0.73786],\n \"39\": [0, 0.69141, 0, 0, 0.21201],\n \"40\": [0.24982, 0.74947, 0, 0, 0.38865],\n \"41\": [0.24982, 0.74947, 0, 0, 0.38865],\n \"42\": [0, 0.62119, 0, 0, 0.27764],\n \"43\": [0.08319, 0.58283, 0, 0, 0.75623],\n \"44\": [0, 0.10803, 0, 0, 0.27764],\n \"45\": [0.08319, 0.58283, 0, 0, 0.75623],\n \"46\": [0, 0.10803, 0, 0, 0.27764],\n \"47\": [0.24982, 0.74947, 0, 0, 0.50181],\n \"48\": [0, 0.47534, 0, 0, 0.50181],\n \"49\": [0, 0.47534, 0, 0, 0.50181],\n \"50\": [0, 0.47534, 0, 0, 0.50181],\n \"51\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"52\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"53\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"54\": [0, 0.69141, 0, 0, 0.50181],\n \"55\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"56\": [0, 0.69141, 0, 0, 0.50181],\n \"57\": [0.18906, 0.47534, 0, 0, 0.50181],\n \"58\": [0, 0.47534, 0, 0, 0.21606],\n \"59\": [0.12604, 0.47534, 0, 0, 0.21606],\n \"61\": [-0.13099, 0.36866, 0, 0, 0.75623],\n \"63\": [0, 0.69141, 0, 0, 0.36245],\n \"65\": [0, 0.69141, 0, 0, 0.7176],\n \"66\": [0, 0.69141, 0, 0, 0.88397],\n \"67\": [0, 0.69141, 0, 0, 0.61254],\n \"68\": [0, 0.69141, 0, 0, 0.83158],\n \"69\": [0, 0.69141, 0, 0, 0.66278],\n \"70\": [0.12604, 0.69141, 0, 0, 0.61119],\n \"71\": [0, 0.69141, 0, 0, 0.78539],\n \"72\": [0.06302, 0.69141, 0, 0, 0.7203],\n \"73\": [0, 0.69141, 0, 0, 0.55448],\n \"74\": [0.12604, 0.69141, 0, 0, 0.55231],\n \"75\": [0, 0.69141, 0, 0, 0.66845],\n \"76\": [0, 0.69141, 0, 0, 0.66602],\n \"77\": [0, 0.69141, 0, 0, 1.04953],\n \"78\": [0, 0.69141, 0, 0, 0.83212],\n \"79\": [0, 0.69141, 0, 0, 0.82699],\n \"80\": [0.18906, 0.69141, 0, 0, 0.82753],\n \"81\": [0.03781, 0.69141, 0, 0, 0.82699],\n \"82\": [0, 0.69141, 0, 0, 0.82807],\n \"83\": [0, 0.69141, 0, 0, 0.82861],\n \"84\": [0, 0.69141, 0, 0, 0.66899],\n \"85\": [0, 0.69141, 0, 0, 0.64576],\n \"86\": [0, 0.69141, 0, 0, 0.83131],\n \"87\": [0, 0.69141, 0, 0, 1.04602],\n \"88\": [0, 0.69141, 0, 0, 0.71922],\n \"89\": [0.18906, 0.69141, 0, 0, 0.83293],\n \"90\": [0.12604, 0.69141, 0, 0, 0.60201],\n \"91\": [0.24982, 0.74947, 0, 0, 0.27764],\n \"93\": [0.24982, 0.74947, 0, 0, 0.27764],\n \"94\": [0, 0.69141, 0, 0, 0.49965],\n \"97\": [0, 0.47534, 0, 0, 0.50046],\n \"98\": [0, 0.69141, 0, 0, 0.51315],\n \"99\": [0, 0.47534, 0, 0, 0.38946],\n \"100\": [0, 0.62119, 0, 0, 0.49857],\n \"101\": [0, 0.47534, 0, 0, 0.40053],\n \"102\": [0.18906, 0.69141, 0, 0, 0.32626],\n \"103\": [0.18906, 0.47534, 0, 0, 0.5037],\n \"104\": [0.18906, 0.69141, 0, 0, 0.52126],\n \"105\": [0, 0.69141, 0, 0, 0.27899],\n \"106\": [0, 0.69141, 0, 0, 0.28088],\n \"107\": [0, 0.69141, 0, 0, 0.38946],\n \"108\": [0, 0.69141, 0, 0, 0.27953],\n \"109\": [0, 0.47534, 0, 0, 0.76676],\n \"110\": [0, 0.47534, 0, 0, 0.52666],\n \"111\": [0, 0.47534, 0, 0, 0.48885],\n \"112\": [0.18906, 0.52396, 0, 0, 0.50046],\n \"113\": [0.18906, 0.47534, 0, 0, 0.48912],\n \"114\": [0, 0.47534, 0, 0, 0.38919],\n \"115\": [0, 0.47534, 0, 0, 0.44266],\n \"116\": [0, 0.62119, 0, 0, 0.33301],\n \"117\": [0, 0.47534, 0, 0, 0.5172],\n \"118\": [0, 0.52396, 0, 0, 0.5118],\n \"119\": [0, 0.52396, 0, 0, 0.77351],\n \"120\": [0.18906, 0.47534, 0, 0, 0.38865],\n \"121\": [0.18906, 0.47534, 0, 0, 0.49884],\n \"122\": [0.18906, 0.47534, 0, 0, 0.39054],\n \"160\": [0, 0, 0, 0, 0.25],\n \"8216\": [0, 0.69141, 0, 0, 0.21471],\n \"8217\": [0, 0.69141, 0, 0, 0.21471],\n \"58112\": [0, 0.62119, 0, 0, 0.49749],\n \"58113\": [0, 0.62119, 0, 0, 0.4983],\n \"58114\": [0.18906, 0.69141, 0, 0, 0.33328],\n \"58115\": [0.18906, 0.69141, 0, 0, 0.32923],\n \"58116\": [0.18906, 0.47534, 0, 0, 0.50343],\n \"58117\": [0, 0.69141, 0, 0, 0.33301],\n \"58118\": [0, 0.62119, 0, 0, 0.33409],\n \"58119\": [0, 0.47534, 0, 0, 0.50073]\n },\n \"Main-Bold\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.35],\n \"34\": [0, 0.69444, 0, 0, 0.60278],\n \"35\": [0.19444, 0.69444, 0, 0, 0.95833],\n \"36\": [0.05556, 0.75, 0, 0, 0.575],\n \"37\": [0.05556, 0.75, 0, 0, 0.95833],\n \"38\": [0, 0.69444, 0, 0, 0.89444],\n \"39\": [0, 0.69444, 0, 0, 0.31944],\n \"40\": [0.25, 0.75, 0, 0, 0.44722],\n \"41\": [0.25, 0.75, 0, 0, 0.44722],\n \"42\": [0, 0.75, 0, 0, 0.575],\n \"43\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"44\": [0.19444, 0.15556, 0, 0, 0.31944],\n \"45\": [0, 0.44444, 0, 0, 0.38333],\n \"46\": [0, 0.15556, 0, 0, 0.31944],\n \"47\": [0.25, 0.75, 0, 0, 0.575],\n \"48\": [0, 0.64444, 0, 0, 0.575],\n \"49\": [0, 0.64444, 0, 0, 0.575],\n \"50\": [0, 0.64444, 0, 0, 0.575],\n \"51\": [0, 0.64444, 0, 0, 0.575],\n \"52\": [0, 0.64444, 0, 0, 0.575],\n \"53\": [0, 0.64444, 0, 0, 0.575],\n \"54\": [0, 0.64444, 0, 0, 0.575],\n \"55\": [0, 0.64444, 0, 0, 0.575],\n \"56\": [0, 0.64444, 0, 0, 0.575],\n \"57\": [0, 0.64444, 0, 0, 0.575],\n \"58\": [0, 0.44444, 0, 0, 0.31944],\n \"59\": [0.19444, 0.44444, 0, 0, 0.31944],\n \"60\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"61\": [-0.10889, 0.39111, 0, 0, 0.89444],\n \"62\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"63\": [0, 0.69444, 0, 0, 0.54305],\n \"64\": [0, 0.69444, 0, 0, 0.89444],\n \"65\": [0, 0.68611, 0, 0, 0.86944],\n \"66\": [0, 0.68611, 0, 0, 0.81805],\n \"67\": [0, 0.68611, 0, 0, 0.83055],\n \"68\": [0, 0.68611, 0, 0, 0.88194],\n \"69\": [0, 0.68611, 0, 0, 0.75555],\n \"70\": [0, 0.68611, 0, 0, 0.72361],\n \"71\": [0, 0.68611, 0, 0, 0.90416],\n \"72\": [0, 0.68611, 0, 0, 0.9],\n \"73\": [0, 0.68611, 0, 0, 0.43611],\n \"74\": [0, 0.68611, 0, 0, 0.59444],\n \"75\": [0, 0.68611, 0, 0, 0.90138],\n \"76\": [0, 0.68611, 0, 0, 0.69166],\n \"77\": [0, 0.68611, 0, 0, 1.09166],\n \"78\": [0, 0.68611, 0, 0, 0.9],\n \"79\": [0, 0.68611, 0, 0, 0.86388],\n \"80\": [0, 0.68611, 0, 0, 0.78611],\n \"81\": [0.19444, 0.68611, 0, 0, 0.86388],\n \"82\": [0, 0.68611, 0, 0, 0.8625],\n \"83\": [0, 0.68611, 0, 0, 0.63889],\n \"84\": [0, 0.68611, 0, 0, 0.8],\n \"85\": [0, 0.68611, 0, 0, 0.88472],\n \"86\": [0, 0.68611, 0.01597, 0, 0.86944],\n \"87\": [0, 0.68611, 0.01597, 0, 1.18888],\n \"88\": [0, 0.68611, 0, 0, 0.86944],\n \"89\": [0, 0.68611, 0.02875, 0, 0.86944],\n \"90\": [0, 0.68611, 0, 0, 0.70277],\n \"91\": [0.25, 0.75, 0, 0, 0.31944],\n \"92\": [0.25, 0.75, 0, 0, 0.575],\n \"93\": [0.25, 0.75, 0, 0, 0.31944],\n \"94\": [0, 0.69444, 0, 0, 0.575],\n \"95\": [0.31, 0.13444, 0.03194, 0, 0.575],\n \"97\": [0, 0.44444, 0, 0, 0.55902],\n \"98\": [0, 0.69444, 0, 0, 0.63889],\n \"99\": [0, 0.44444, 0, 0, 0.51111],\n \"100\": [0, 0.69444, 0, 0, 0.63889],\n \"101\": [0, 0.44444, 0, 0, 0.52708],\n \"102\": [0, 0.69444, 0.10903, 0, 0.35139],\n \"103\": [0.19444, 0.44444, 0.01597, 0, 0.575],\n \"104\": [0, 0.69444, 0, 0, 0.63889],\n \"105\": [0, 0.69444, 0, 0, 0.31944],\n \"106\": [0.19444, 0.69444, 0, 0, 0.35139],\n \"107\": [0, 0.69444, 0, 0, 0.60694],\n \"108\": [0, 0.69444, 0, 0, 0.31944],\n \"109\": [0, 0.44444, 0, 0, 0.95833],\n \"110\": [0, 0.44444, 0, 0, 0.63889],\n \"111\": [0, 0.44444, 0, 0, 0.575],\n \"112\": [0.19444, 0.44444, 0, 0, 0.63889],\n \"113\": [0.19444, 0.44444, 0, 0, 0.60694],\n \"114\": [0, 0.44444, 0, 0, 0.47361],\n \"115\": [0, 0.44444, 0, 0, 0.45361],\n \"116\": [0, 0.63492, 0, 0, 0.44722],\n \"117\": [0, 0.44444, 0, 0, 0.63889],\n \"118\": [0, 0.44444, 0.01597, 0, 0.60694],\n \"119\": [0, 0.44444, 0.01597, 0, 0.83055],\n \"120\": [0, 0.44444, 0, 0, 0.60694],\n \"121\": [0.19444, 0.44444, 0.01597, 0, 0.60694],\n \"122\": [0, 0.44444, 0, 0, 0.51111],\n \"123\": [0.25, 0.75, 0, 0, 0.575],\n \"124\": [0.25, 0.75, 0, 0, 0.31944],\n \"125\": [0.25, 0.75, 0, 0, 0.575],\n \"126\": [0.35, 0.34444, 0, 0, 0.575],\n \"160\": [0, 0, 0, 0, 0.25],\n \"163\": [0, 0.69444, 0, 0, 0.86853],\n \"168\": [0, 0.69444, 0, 0, 0.575],\n \"172\": [0, 0.44444, 0, 0, 0.76666],\n \"176\": [0, 0.69444, 0, 0, 0.86944],\n \"177\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"184\": [0.17014, 0, 0, 0, 0.51111],\n \"198\": [0, 0.68611, 0, 0, 1.04166],\n \"215\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"216\": [0.04861, 0.73472, 0, 0, 0.89444],\n \"223\": [0, 0.69444, 0, 0, 0.59722],\n \"230\": [0, 0.44444, 0, 0, 0.83055],\n \"247\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"248\": [0.09722, 0.54167, 0, 0, 0.575],\n \"305\": [0, 0.44444, 0, 0, 0.31944],\n \"338\": [0, 0.68611, 0, 0, 1.16944],\n \"339\": [0, 0.44444, 0, 0, 0.89444],\n \"567\": [0.19444, 0.44444, 0, 0, 0.35139],\n \"710\": [0, 0.69444, 0, 0, 0.575],\n \"711\": [0, 0.63194, 0, 0, 0.575],\n \"713\": [0, 0.59611, 0, 0, 0.575],\n \"714\": [0, 0.69444, 0, 0, 0.575],\n \"715\": [0, 0.69444, 0, 0, 0.575],\n \"728\": [0, 0.69444, 0, 0, 0.575],\n \"729\": [0, 0.69444, 0, 0, 0.31944],\n \"730\": [0, 0.69444, 0, 0, 0.86944],\n \"732\": [0, 0.69444, 0, 0, 0.575],\n \"733\": [0, 0.69444, 0, 0, 0.575],\n \"915\": [0, 0.68611, 0, 0, 0.69166],\n \"916\": [0, 0.68611, 0, 0, 0.95833],\n \"920\": [0, 0.68611, 0, 0, 0.89444],\n \"923\": [0, 0.68611, 0, 0, 0.80555],\n \"926\": [0, 0.68611, 0, 0, 0.76666],\n \"928\": [0, 0.68611, 0, 0, 0.9],\n \"931\": [0, 0.68611, 0, 0, 0.83055],\n \"933\": [0, 0.68611, 0, 0, 0.89444],\n \"934\": [0, 0.68611, 0, 0, 0.83055],\n \"936\": [0, 0.68611, 0, 0, 0.89444],\n \"937\": [0, 0.68611, 0, 0, 0.83055],\n \"8211\": [0, 0.44444, 0.03194, 0, 0.575],\n \"8212\": [0, 0.44444, 0.03194, 0, 1.14999],\n \"8216\": [0, 0.69444, 0, 0, 0.31944],\n \"8217\": [0, 0.69444, 0, 0, 0.31944],\n \"8220\": [0, 0.69444, 0, 0, 0.60278],\n \"8221\": [0, 0.69444, 0, 0, 0.60278],\n \"8224\": [0.19444, 0.69444, 0, 0, 0.51111],\n \"8225\": [0.19444, 0.69444, 0, 0, 0.51111],\n \"8242\": [0, 0.55556, 0, 0, 0.34444],\n \"8407\": [0, 0.72444, 0.15486, 0, 0.575],\n \"8463\": [0, 0.69444, 0, 0, 0.66759],\n \"8465\": [0, 0.69444, 0, 0, 0.83055],\n \"8467\": [0, 0.69444, 0, 0, 0.47361],\n \"8472\": [0.19444, 0.44444, 0, 0, 0.74027],\n \"8476\": [0, 0.69444, 0, 0, 0.83055],\n \"8501\": [0, 0.69444, 0, 0, 0.70277],\n \"8592\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8593\": [0.19444, 0.69444, 0, 0, 0.575],\n \"8594\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8595\": [0.19444, 0.69444, 0, 0, 0.575],\n \"8596\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8597\": [0.25, 0.75, 0, 0, 0.575],\n \"8598\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8599\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8600\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8601\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"8636\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8637\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8640\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8641\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8656\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8657\": [0.19444, 0.69444, 0, 0, 0.70277],\n \"8658\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8659\": [0.19444, 0.69444, 0, 0, 0.70277],\n \"8660\": [-0.10889, 0.39111, 0, 0, 1.14999],\n \"8661\": [0.25, 0.75, 0, 0, 0.70277],\n \"8704\": [0, 0.69444, 0, 0, 0.63889],\n \"8706\": [0, 0.69444, 0.06389, 0, 0.62847],\n \"8707\": [0, 0.69444, 0, 0, 0.63889],\n \"8709\": [0.05556, 0.75, 0, 0, 0.575],\n \"8711\": [0, 0.68611, 0, 0, 0.95833],\n \"8712\": [0.08556, 0.58556, 0, 0, 0.76666],\n \"8715\": [0.08556, 0.58556, 0, 0, 0.76666],\n \"8722\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8723\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8725\": [0.25, 0.75, 0, 0, 0.575],\n \"8726\": [0.25, 0.75, 0, 0, 0.575],\n \"8727\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"8728\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8729\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8730\": [0.18, 0.82, 0, 0, 0.95833],\n \"8733\": [0, 0.44444, 0, 0, 0.89444],\n \"8734\": [0, 0.44444, 0, 0, 1.14999],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8739\": [0.25, 0.75, 0, 0, 0.31944],\n \"8741\": [0.25, 0.75, 0, 0, 0.575],\n \"8743\": [0, 0.55556, 0, 0, 0.76666],\n \"8744\": [0, 0.55556, 0, 0, 0.76666],\n \"8745\": [0, 0.55556, 0, 0, 0.76666],\n \"8746\": [0, 0.55556, 0, 0, 0.76666],\n \"8747\": [0.19444, 0.69444, 0.12778, 0, 0.56875],\n \"8764\": [-0.10889, 0.39111, 0, 0, 0.89444],\n \"8768\": [0.19444, 0.69444, 0, 0, 0.31944],\n \"8771\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8773\": [0.027, 0.638, 0, 0, 0.894],\n \"8776\": [0.02444, 0.52444, 0, 0, 0.89444],\n \"8781\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8801\": [0.00222, 0.50222, 0, 0, 0.89444],\n \"8804\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8805\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8810\": [0.08556, 0.58556, 0, 0, 1.14999],\n \"8811\": [0.08556, 0.58556, 0, 0, 1.14999],\n \"8826\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8827\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8834\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8835\": [0.08556, 0.58556, 0, 0, 0.89444],\n \"8838\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8839\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8846\": [0, 0.55556, 0, 0, 0.76666],\n \"8849\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8850\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"8851\": [0, 0.55556, 0, 0, 0.76666],\n \"8852\": [0, 0.55556, 0, 0, 0.76666],\n \"8853\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8854\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8855\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8856\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8857\": [0.13333, 0.63333, 0, 0, 0.89444],\n \"8866\": [0, 0.69444, 0, 0, 0.70277],\n \"8867\": [0, 0.69444, 0, 0, 0.70277],\n \"8868\": [0, 0.69444, 0, 0, 0.89444],\n \"8869\": [0, 0.69444, 0, 0, 0.89444],\n \"8900\": [-0.02639, 0.47361, 0, 0, 0.575],\n \"8901\": [-0.02639, 0.47361, 0, 0, 0.31944],\n \"8902\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"8968\": [0.25, 0.75, 0, 0, 0.51111],\n \"8969\": [0.25, 0.75, 0, 0, 0.51111],\n \"8970\": [0.25, 0.75, 0, 0, 0.51111],\n \"8971\": [0.25, 0.75, 0, 0, 0.51111],\n \"8994\": [-0.13889, 0.36111, 0, 0, 1.14999],\n \"8995\": [-0.13889, 0.36111, 0, 0, 1.14999],\n \"9651\": [0.19444, 0.69444, 0, 0, 1.02222],\n \"9657\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"9661\": [0.19444, 0.69444, 0, 0, 1.02222],\n \"9667\": [-0.02778, 0.47222, 0, 0, 0.575],\n \"9711\": [0.19444, 0.69444, 0, 0, 1.14999],\n \"9824\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9825\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9826\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9827\": [0.12963, 0.69444, 0, 0, 0.89444],\n \"9837\": [0, 0.75, 0, 0, 0.44722],\n \"9838\": [0.19444, 0.69444, 0, 0, 0.44722],\n \"9839\": [0.19444, 0.69444, 0, 0, 0.44722],\n \"10216\": [0.25, 0.75, 0, 0, 0.44722],\n \"10217\": [0.25, 0.75, 0, 0, 0.44722],\n \"10815\": [0, 0.68611, 0, 0, 0.9],\n \"10927\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"10928\": [0.19667, 0.69667, 0, 0, 0.89444],\n \"57376\": [0.19444, 0.69444, 0, 0, 0]\n },\n \"Main-BoldItalic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.11417, 0, 0.38611],\n \"34\": [0, 0.69444, 0.07939, 0, 0.62055],\n \"35\": [0.19444, 0.69444, 0.06833, 0, 0.94444],\n \"37\": [0.05556, 0.75, 0.12861, 0, 0.94444],\n \"38\": [0, 0.69444, 0.08528, 0, 0.88555],\n \"39\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"40\": [0.25, 0.75, 0.15806, 0, 0.47333],\n \"41\": [0.25, 0.75, 0.03306, 0, 0.47333],\n \"42\": [0, 0.75, 0.14333, 0, 0.59111],\n \"43\": [0.10333, 0.60333, 0.03306, 0, 0.88555],\n \"44\": [0.19444, 0.14722, 0, 0, 0.35555],\n \"45\": [0, 0.44444, 0.02611, 0, 0.41444],\n \"46\": [0, 0.14722, 0, 0, 0.35555],\n \"47\": [0.25, 0.75, 0.15806, 0, 0.59111],\n \"48\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"49\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"50\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"51\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"52\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n \"53\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"54\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"55\": [0.19444, 0.64444, 0.13167, 0, 0.59111],\n \"56\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"57\": [0, 0.64444, 0.13167, 0, 0.59111],\n \"58\": [0, 0.44444, 0.06695, 0, 0.35555],\n \"59\": [0.19444, 0.44444, 0.06695, 0, 0.35555],\n \"61\": [-0.10889, 0.39111, 0.06833, 0, 0.88555],\n \"63\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"64\": [0, 0.69444, 0.09208, 0, 0.88555],\n \"65\": [0, 0.68611, 0, 0, 0.86555],\n \"66\": [0, 0.68611, 0.0992, 0, 0.81666],\n \"67\": [0, 0.68611, 0.14208, 0, 0.82666],\n \"68\": [0, 0.68611, 0.09062, 0, 0.87555],\n \"69\": [0, 0.68611, 0.11431, 0, 0.75666],\n \"70\": [0, 0.68611, 0.12903, 0, 0.72722],\n \"71\": [0, 0.68611, 0.07347, 0, 0.89527],\n \"72\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"73\": [0, 0.68611, 0.15681, 0, 0.47166],\n \"74\": [0, 0.68611, 0.145, 0, 0.61055],\n \"75\": [0, 0.68611, 0.14208, 0, 0.89499],\n \"76\": [0, 0.68611, 0, 0, 0.69777],\n \"77\": [0, 0.68611, 0.17208, 0, 1.07277],\n \"78\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"79\": [0, 0.68611, 0.09062, 0, 0.85499],\n \"80\": [0, 0.68611, 0.0992, 0, 0.78721],\n \"81\": [0.19444, 0.68611, 0.09062, 0, 0.85499],\n \"82\": [0, 0.68611, 0.02559, 0, 0.85944],\n \"83\": [0, 0.68611, 0.11264, 0, 0.64999],\n \"84\": [0, 0.68611, 0.12903, 0, 0.7961],\n \"85\": [0, 0.68611, 0.17208, 0, 0.88083],\n \"86\": [0, 0.68611, 0.18625, 0, 0.86555],\n \"87\": [0, 0.68611, 0.18625, 0, 1.15999],\n \"88\": [0, 0.68611, 0.15681, 0, 0.86555],\n \"89\": [0, 0.68611, 0.19803, 0, 0.86555],\n \"90\": [0, 0.68611, 0.14208, 0, 0.70888],\n \"91\": [0.25, 0.75, 0.1875, 0, 0.35611],\n \"93\": [0.25, 0.75, 0.09972, 0, 0.35611],\n \"94\": [0, 0.69444, 0.06709, 0, 0.59111],\n \"95\": [0.31, 0.13444, 0.09811, 0, 0.59111],\n \"97\": [0, 0.44444, 0.09426, 0, 0.59111],\n \"98\": [0, 0.69444, 0.07861, 0, 0.53222],\n \"99\": [0, 0.44444, 0.05222, 0, 0.53222],\n \"100\": [0, 0.69444, 0.10861, 0, 0.59111],\n \"101\": [0, 0.44444, 0.085, 0, 0.53222],\n \"102\": [0.19444, 0.69444, 0.21778, 0, 0.4],\n \"103\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n \"104\": [0, 0.69444, 0.09426, 0, 0.59111],\n \"105\": [0, 0.69326, 0.11387, 0, 0.35555],\n \"106\": [0.19444, 0.69326, 0.1672, 0, 0.35555],\n \"107\": [0, 0.69444, 0.11111, 0, 0.53222],\n \"108\": [0, 0.69444, 0.10861, 0, 0.29666],\n \"109\": [0, 0.44444, 0.09426, 0, 0.94444],\n \"110\": [0, 0.44444, 0.09426, 0, 0.64999],\n \"111\": [0, 0.44444, 0.07861, 0, 0.59111],\n \"112\": [0.19444, 0.44444, 0.07861, 0, 0.59111],\n \"113\": [0.19444, 0.44444, 0.105, 0, 0.53222],\n \"114\": [0, 0.44444, 0.11111, 0, 0.50167],\n \"115\": [0, 0.44444, 0.08167, 0, 0.48694],\n \"116\": [0, 0.63492, 0.09639, 0, 0.385],\n \"117\": [0, 0.44444, 0.09426, 0, 0.62055],\n \"118\": [0, 0.44444, 0.11111, 0, 0.53222],\n \"119\": [0, 0.44444, 0.11111, 0, 0.76777],\n \"120\": [0, 0.44444, 0.12583, 0, 0.56055],\n \"121\": [0.19444, 0.44444, 0.105, 0, 0.56166],\n \"122\": [0, 0.44444, 0.13889, 0, 0.49055],\n \"126\": [0.35, 0.34444, 0.11472, 0, 0.59111],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.69444, 0.11473, 0, 0.59111],\n \"176\": [0, 0.69444, 0, 0, 0.94888],\n \"184\": [0.17014, 0, 0, 0, 0.53222],\n \"198\": [0, 0.68611, 0.11431, 0, 1.02277],\n \"216\": [0.04861, 0.73472, 0.09062, 0, 0.88555],\n \"223\": [0.19444, 0.69444, 0.09736, 0, 0.665],\n \"230\": [0, 0.44444, 0.085, 0, 0.82666],\n \"248\": [0.09722, 0.54167, 0.09458, 0, 0.59111],\n \"305\": [0, 0.44444, 0.09426, 0, 0.35555],\n \"338\": [0, 0.68611, 0.11431, 0, 1.14054],\n \"339\": [0, 0.44444, 0.085, 0, 0.82666],\n \"567\": [0.19444, 0.44444, 0.04611, 0, 0.385],\n \"710\": [0, 0.69444, 0.06709, 0, 0.59111],\n \"711\": [0, 0.63194, 0.08271, 0, 0.59111],\n \"713\": [0, 0.59444, 0.10444, 0, 0.59111],\n \"714\": [0, 0.69444, 0.08528, 0, 0.59111],\n \"715\": [0, 0.69444, 0, 0, 0.59111],\n \"728\": [0, 0.69444, 0.10333, 0, 0.59111],\n \"729\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"730\": [0, 0.69444, 0, 0, 0.94888],\n \"732\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"733\": [0, 0.69444, 0.11472, 0, 0.59111],\n \"915\": [0, 0.68611, 0.12903, 0, 0.69777],\n \"916\": [0, 0.68611, 0, 0, 0.94444],\n \"920\": [0, 0.68611, 0.09062, 0, 0.88555],\n \"923\": [0, 0.68611, 0, 0, 0.80666],\n \"926\": [0, 0.68611, 0.15092, 0, 0.76777],\n \"928\": [0, 0.68611, 0.17208, 0, 0.8961],\n \"931\": [0, 0.68611, 0.11431, 0, 0.82666],\n \"933\": [0, 0.68611, 0.10778, 0, 0.88555],\n \"934\": [0, 0.68611, 0.05632, 0, 0.82666],\n \"936\": [0, 0.68611, 0.10778, 0, 0.88555],\n \"937\": [0, 0.68611, 0.0992, 0, 0.82666],\n \"8211\": [0, 0.44444, 0.09811, 0, 0.59111],\n \"8212\": [0, 0.44444, 0.09811, 0, 1.18221],\n \"8216\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"8217\": [0, 0.69444, 0.12945, 0, 0.35555],\n \"8220\": [0, 0.69444, 0.16772, 0, 0.62055],\n \"8221\": [0, 0.69444, 0.07939, 0, 0.62055]\n },\n \"Main-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"34\": [0, 0.69444, 0.06961, 0, 0.51444],\n \"35\": [0.19444, 0.69444, 0.06616, 0, 0.81777],\n \"37\": [0.05556, 0.75, 0.13639, 0, 0.81777],\n \"38\": [0, 0.69444, 0.09694, 0, 0.76666],\n \"39\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"40\": [0.25, 0.75, 0.16194, 0, 0.40889],\n \"41\": [0.25, 0.75, 0.03694, 0, 0.40889],\n \"42\": [0, 0.75, 0.14917, 0, 0.51111],\n \"43\": [0.05667, 0.56167, 0.03694, 0, 0.76666],\n \"44\": [0.19444, 0.10556, 0, 0, 0.30667],\n \"45\": [0, 0.43056, 0.02826, 0, 0.35778],\n \"46\": [0, 0.10556, 0, 0, 0.30667],\n \"47\": [0.25, 0.75, 0.16194, 0, 0.51111],\n \"48\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"49\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"50\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"51\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"52\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n \"53\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"54\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"55\": [0.19444, 0.64444, 0.13556, 0, 0.51111],\n \"56\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"57\": [0, 0.64444, 0.13556, 0, 0.51111],\n \"58\": [0, 0.43056, 0.0582, 0, 0.30667],\n \"59\": [0.19444, 0.43056, 0.0582, 0, 0.30667],\n \"61\": [-0.13313, 0.36687, 0.06616, 0, 0.76666],\n \"63\": [0, 0.69444, 0.1225, 0, 0.51111],\n \"64\": [0, 0.69444, 0.09597, 0, 0.76666],\n \"65\": [0, 0.68333, 0, 0, 0.74333],\n \"66\": [0, 0.68333, 0.10257, 0, 0.70389],\n \"67\": [0, 0.68333, 0.14528, 0, 0.71555],\n \"68\": [0, 0.68333, 0.09403, 0, 0.755],\n \"69\": [0, 0.68333, 0.12028, 0, 0.67833],\n \"70\": [0, 0.68333, 0.13305, 0, 0.65277],\n \"71\": [0, 0.68333, 0.08722, 0, 0.77361],\n \"72\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"73\": [0, 0.68333, 0.15806, 0, 0.38555],\n \"74\": [0, 0.68333, 0.14028, 0, 0.525],\n \"75\": [0, 0.68333, 0.14528, 0, 0.76888],\n \"76\": [0, 0.68333, 0, 0, 0.62722],\n \"77\": [0, 0.68333, 0.16389, 0, 0.89666],\n \"78\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"79\": [0, 0.68333, 0.09403, 0, 0.76666],\n \"80\": [0, 0.68333, 0.10257, 0, 0.67833],\n \"81\": [0.19444, 0.68333, 0.09403, 0, 0.76666],\n \"82\": [0, 0.68333, 0.03868, 0, 0.72944],\n \"83\": [0, 0.68333, 0.11972, 0, 0.56222],\n \"84\": [0, 0.68333, 0.13305, 0, 0.71555],\n \"85\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"86\": [0, 0.68333, 0.18361, 0, 0.74333],\n \"87\": [0, 0.68333, 0.18361, 0, 0.99888],\n \"88\": [0, 0.68333, 0.15806, 0, 0.74333],\n \"89\": [0, 0.68333, 0.19383, 0, 0.74333],\n \"90\": [0, 0.68333, 0.14528, 0, 0.61333],\n \"91\": [0.25, 0.75, 0.1875, 0, 0.30667],\n \"93\": [0.25, 0.75, 0.10528, 0, 0.30667],\n \"94\": [0, 0.69444, 0.06646, 0, 0.51111],\n \"95\": [0.31, 0.12056, 0.09208, 0, 0.51111],\n \"97\": [0, 0.43056, 0.07671, 0, 0.51111],\n \"98\": [0, 0.69444, 0.06312, 0, 0.46],\n \"99\": [0, 0.43056, 0.05653, 0, 0.46],\n \"100\": [0, 0.69444, 0.10333, 0, 0.51111],\n \"101\": [0, 0.43056, 0.07514, 0, 0.46],\n \"102\": [0.19444, 0.69444, 0.21194, 0, 0.30667],\n \"103\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n \"104\": [0, 0.69444, 0.07671, 0, 0.51111],\n \"105\": [0, 0.65536, 0.1019, 0, 0.30667],\n \"106\": [0.19444, 0.65536, 0.14467, 0, 0.30667],\n \"107\": [0, 0.69444, 0.10764, 0, 0.46],\n \"108\": [0, 0.69444, 0.10333, 0, 0.25555],\n \"109\": [0, 0.43056, 0.07671, 0, 0.81777],\n \"110\": [0, 0.43056, 0.07671, 0, 0.56222],\n \"111\": [0, 0.43056, 0.06312, 0, 0.51111],\n \"112\": [0.19444, 0.43056, 0.06312, 0, 0.51111],\n \"113\": [0.19444, 0.43056, 0.08847, 0, 0.46],\n \"114\": [0, 0.43056, 0.10764, 0, 0.42166],\n \"115\": [0, 0.43056, 0.08208, 0, 0.40889],\n \"116\": [0, 0.61508, 0.09486, 0, 0.33222],\n \"117\": [0, 0.43056, 0.07671, 0, 0.53666],\n \"118\": [0, 0.43056, 0.10764, 0, 0.46],\n \"119\": [0, 0.43056, 0.10764, 0, 0.66444],\n \"120\": [0, 0.43056, 0.12042, 0, 0.46389],\n \"121\": [0.19444, 0.43056, 0.08847, 0, 0.48555],\n \"122\": [0, 0.43056, 0.12292, 0, 0.40889],\n \"126\": [0.35, 0.31786, 0.11585, 0, 0.51111],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.66786, 0.10474, 0, 0.51111],\n \"176\": [0, 0.69444, 0, 0, 0.83129],\n \"184\": [0.17014, 0, 0, 0, 0.46],\n \"198\": [0, 0.68333, 0.12028, 0, 0.88277],\n \"216\": [0.04861, 0.73194, 0.09403, 0, 0.76666],\n \"223\": [0.19444, 0.69444, 0.10514, 0, 0.53666],\n \"230\": [0, 0.43056, 0.07514, 0, 0.71555],\n \"248\": [0.09722, 0.52778, 0.09194, 0, 0.51111],\n \"338\": [0, 0.68333, 0.12028, 0, 0.98499],\n \"339\": [0, 0.43056, 0.07514, 0, 0.71555],\n \"710\": [0, 0.69444, 0.06646, 0, 0.51111],\n \"711\": [0, 0.62847, 0.08295, 0, 0.51111],\n \"713\": [0, 0.56167, 0.10333, 0, 0.51111],\n \"714\": [0, 0.69444, 0.09694, 0, 0.51111],\n \"715\": [0, 0.69444, 0, 0, 0.51111],\n \"728\": [0, 0.69444, 0.10806, 0, 0.51111],\n \"729\": [0, 0.66786, 0.11752, 0, 0.30667],\n \"730\": [0, 0.69444, 0, 0, 0.83129],\n \"732\": [0, 0.66786, 0.11585, 0, 0.51111],\n \"733\": [0, 0.69444, 0.1225, 0, 0.51111],\n \"915\": [0, 0.68333, 0.13305, 0, 0.62722],\n \"916\": [0, 0.68333, 0, 0, 0.81777],\n \"920\": [0, 0.68333, 0.09403, 0, 0.76666],\n \"923\": [0, 0.68333, 0, 0, 0.69222],\n \"926\": [0, 0.68333, 0.15294, 0, 0.66444],\n \"928\": [0, 0.68333, 0.16389, 0, 0.74333],\n \"931\": [0, 0.68333, 0.12028, 0, 0.71555],\n \"933\": [0, 0.68333, 0.11111, 0, 0.76666],\n \"934\": [0, 0.68333, 0.05986, 0, 0.71555],\n \"936\": [0, 0.68333, 0.11111, 0, 0.76666],\n \"937\": [0, 0.68333, 0.10257, 0, 0.71555],\n \"8211\": [0, 0.43056, 0.09208, 0, 0.51111],\n \"8212\": [0, 0.43056, 0.09208, 0, 1.02222],\n \"8216\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"8217\": [0, 0.69444, 0.12417, 0, 0.30667],\n \"8220\": [0, 0.69444, 0.1685, 0, 0.51444],\n \"8221\": [0, 0.69444, 0.06961, 0, 0.51444],\n \"8463\": [0, 0.68889, 0, 0, 0.54028]\n },\n \"Main-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.27778],\n \"34\": [0, 0.69444, 0, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0, 0, 0.5],\n \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n \"38\": [0, 0.69444, 0, 0, 0.77778],\n \"39\": [0, 0.69444, 0, 0, 0.27778],\n \"40\": [0.25, 0.75, 0, 0, 0.38889],\n \"41\": [0.25, 0.75, 0, 0, 0.38889],\n \"42\": [0, 0.75, 0, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"44\": [0.19444, 0.10556, 0, 0, 0.27778],\n \"45\": [0, 0.43056, 0, 0, 0.33333],\n \"46\": [0, 0.10556, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0, 0, 0.5],\n \"48\": [0, 0.64444, 0, 0, 0.5],\n \"49\": [0, 0.64444, 0, 0, 0.5],\n \"50\": [0, 0.64444, 0, 0, 0.5],\n \"51\": [0, 0.64444, 0, 0, 0.5],\n \"52\": [0, 0.64444, 0, 0, 0.5],\n \"53\": [0, 0.64444, 0, 0, 0.5],\n \"54\": [0, 0.64444, 0, 0, 0.5],\n \"55\": [0, 0.64444, 0, 0, 0.5],\n \"56\": [0, 0.64444, 0, 0, 0.5],\n \"57\": [0, 0.64444, 0, 0, 0.5],\n \"58\": [0, 0.43056, 0, 0, 0.27778],\n \"59\": [0.19444, 0.43056, 0, 0, 0.27778],\n \"60\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"61\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"62\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"63\": [0, 0.69444, 0, 0, 0.47222],\n \"64\": [0, 0.69444, 0, 0, 0.77778],\n \"65\": [0, 0.68333, 0, 0, 0.75],\n \"66\": [0, 0.68333, 0, 0, 0.70834],\n \"67\": [0, 0.68333, 0, 0, 0.72222],\n \"68\": [0, 0.68333, 0, 0, 0.76389],\n \"69\": [0, 0.68333, 0, 0, 0.68056],\n \"70\": [0, 0.68333, 0, 0, 0.65278],\n \"71\": [0, 0.68333, 0, 0, 0.78472],\n \"72\": [0, 0.68333, 0, 0, 0.75],\n \"73\": [0, 0.68333, 0, 0, 0.36111],\n \"74\": [0, 0.68333, 0, 0, 0.51389],\n \"75\": [0, 0.68333, 0, 0, 0.77778],\n \"76\": [0, 0.68333, 0, 0, 0.625],\n \"77\": [0, 0.68333, 0, 0, 0.91667],\n \"78\": [0, 0.68333, 0, 0, 0.75],\n \"79\": [0, 0.68333, 0, 0, 0.77778],\n \"80\": [0, 0.68333, 0, 0, 0.68056],\n \"81\": [0.19444, 0.68333, 0, 0, 0.77778],\n \"82\": [0, 0.68333, 0, 0, 0.73611],\n \"83\": [0, 0.68333, 0, 0, 0.55556],\n \"84\": [0, 0.68333, 0, 0, 0.72222],\n \"85\": [0, 0.68333, 0, 0, 0.75],\n \"86\": [0, 0.68333, 0.01389, 0, 0.75],\n \"87\": [0, 0.68333, 0.01389, 0, 1.02778],\n \"88\": [0, 0.68333, 0, 0, 0.75],\n \"89\": [0, 0.68333, 0.025, 0, 0.75],\n \"90\": [0, 0.68333, 0, 0, 0.61111],\n \"91\": [0.25, 0.75, 0, 0, 0.27778],\n \"92\": [0.25, 0.75, 0, 0, 0.5],\n \"93\": [0.25, 0.75, 0, 0, 0.27778],\n \"94\": [0, 0.69444, 0, 0, 0.5],\n \"95\": [0.31, 0.12056, 0.02778, 0, 0.5],\n \"97\": [0, 0.43056, 0, 0, 0.5],\n \"98\": [0, 0.69444, 0, 0, 0.55556],\n \"99\": [0, 0.43056, 0, 0, 0.44445],\n \"100\": [0, 0.69444, 0, 0, 0.55556],\n \"101\": [0, 0.43056, 0, 0, 0.44445],\n \"102\": [0, 0.69444, 0.07778, 0, 0.30556],\n \"103\": [0.19444, 0.43056, 0.01389, 0, 0.5],\n \"104\": [0, 0.69444, 0, 0, 0.55556],\n \"105\": [0, 0.66786, 0, 0, 0.27778],\n \"106\": [0.19444, 0.66786, 0, 0, 0.30556],\n \"107\": [0, 0.69444, 0, 0, 0.52778],\n \"108\": [0, 0.69444, 0, 0, 0.27778],\n \"109\": [0, 0.43056, 0, 0, 0.83334],\n \"110\": [0, 0.43056, 0, 0, 0.55556],\n \"111\": [0, 0.43056, 0, 0, 0.5],\n \"112\": [0.19444, 0.43056, 0, 0, 0.55556],\n \"113\": [0.19444, 0.43056, 0, 0, 0.52778],\n \"114\": [0, 0.43056, 0, 0, 0.39167],\n \"115\": [0, 0.43056, 0, 0, 0.39445],\n \"116\": [0, 0.61508, 0, 0, 0.38889],\n \"117\": [0, 0.43056, 0, 0, 0.55556],\n \"118\": [0, 0.43056, 0.01389, 0, 0.52778],\n \"119\": [0, 0.43056, 0.01389, 0, 0.72222],\n \"120\": [0, 0.43056, 0, 0, 0.52778],\n \"121\": [0.19444, 0.43056, 0.01389, 0, 0.52778],\n \"122\": [0, 0.43056, 0, 0, 0.44445],\n \"123\": [0.25, 0.75, 0, 0, 0.5],\n \"124\": [0.25, 0.75, 0, 0, 0.27778],\n \"125\": [0.25, 0.75, 0, 0, 0.5],\n \"126\": [0.35, 0.31786, 0, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"163\": [0, 0.69444, 0, 0, 0.76909],\n \"167\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"168\": [0, 0.66786, 0, 0, 0.5],\n \"172\": [0, 0.43056, 0, 0, 0.66667],\n \"176\": [0, 0.69444, 0, 0, 0.75],\n \"177\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"182\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"198\": [0, 0.68333, 0, 0, 0.90278],\n \"215\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"216\": [0.04861, 0.73194, 0, 0, 0.77778],\n \"223\": [0, 0.69444, 0, 0, 0.5],\n \"230\": [0, 0.43056, 0, 0, 0.72222],\n \"247\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"248\": [0.09722, 0.52778, 0, 0, 0.5],\n \"305\": [0, 0.43056, 0, 0, 0.27778],\n \"338\": [0, 0.68333, 0, 0, 1.01389],\n \"339\": [0, 0.43056, 0, 0, 0.77778],\n \"567\": [0.19444, 0.43056, 0, 0, 0.30556],\n \"710\": [0, 0.69444, 0, 0, 0.5],\n \"711\": [0, 0.62847, 0, 0, 0.5],\n \"713\": [0, 0.56778, 0, 0, 0.5],\n \"714\": [0, 0.69444, 0, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0, 0, 0.5],\n \"729\": [0, 0.66786, 0, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.75],\n \"732\": [0, 0.66786, 0, 0, 0.5],\n \"733\": [0, 0.69444, 0, 0, 0.5],\n \"915\": [0, 0.68333, 0, 0, 0.625],\n \"916\": [0, 0.68333, 0, 0, 0.83334],\n \"920\": [0, 0.68333, 0, 0, 0.77778],\n \"923\": [0, 0.68333, 0, 0, 0.69445],\n \"926\": [0, 0.68333, 0, 0, 0.66667],\n \"928\": [0, 0.68333, 0, 0, 0.75],\n \"931\": [0, 0.68333, 0, 0, 0.72222],\n \"933\": [0, 0.68333, 0, 0, 0.77778],\n \"934\": [0, 0.68333, 0, 0, 0.72222],\n \"936\": [0, 0.68333, 0, 0, 0.77778],\n \"937\": [0, 0.68333, 0, 0, 0.72222],\n \"8211\": [0, 0.43056, 0.02778, 0, 0.5],\n \"8212\": [0, 0.43056, 0.02778, 0, 1.0],\n \"8216\": [0, 0.69444, 0, 0, 0.27778],\n \"8217\": [0, 0.69444, 0, 0, 0.27778],\n \"8220\": [0, 0.69444, 0, 0, 0.5],\n \"8221\": [0, 0.69444, 0, 0, 0.5],\n \"8224\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"8225\": [0.19444, 0.69444, 0, 0, 0.44445],\n \"8230\": [0, 0.123, 0, 0, 1.172],\n \"8242\": [0, 0.55556, 0, 0, 0.275],\n \"8407\": [0, 0.71444, 0.15382, 0, 0.5],\n \"8463\": [0, 0.68889, 0, 0, 0.54028],\n \"8465\": [0, 0.69444, 0, 0, 0.72222],\n \"8467\": [0, 0.69444, 0, 0.11111, 0.41667],\n \"8472\": [0.19444, 0.43056, 0, 0.11111, 0.63646],\n \"8476\": [0, 0.69444, 0, 0, 0.72222],\n \"8501\": [0, 0.69444, 0, 0, 0.61111],\n \"8592\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8593\": [0.19444, 0.69444, 0, 0, 0.5],\n \"8594\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8595\": [0.19444, 0.69444, 0, 0, 0.5],\n \"8596\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8597\": [0.25, 0.75, 0, 0, 0.5],\n \"8598\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8599\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8600\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8601\": [0.19444, 0.69444, 0, 0, 1.0],\n \"8614\": [0.011, 0.511, 0, 0, 1.0],\n \"8617\": [0.011, 0.511, 0, 0, 1.126],\n \"8618\": [0.011, 0.511, 0, 0, 1.126],\n \"8636\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8637\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8640\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8641\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8652\": [0.011, 0.671, 0, 0, 1.0],\n \"8656\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8657\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"8658\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8659\": [0.19444, 0.69444, 0, 0, 0.61111],\n \"8660\": [-0.13313, 0.36687, 0, 0, 1.0],\n \"8661\": [0.25, 0.75, 0, 0, 0.61111],\n \"8704\": [0, 0.69444, 0, 0, 0.55556],\n \"8706\": [0, 0.69444, 0.05556, 0.08334, 0.5309],\n \"8707\": [0, 0.69444, 0, 0, 0.55556],\n \"8709\": [0.05556, 0.75, 0, 0, 0.5],\n \"8711\": [0, 0.68333, 0, 0, 0.83334],\n \"8712\": [0.0391, 0.5391, 0, 0, 0.66667],\n \"8715\": [0.0391, 0.5391, 0, 0, 0.66667],\n \"8722\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8723\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8725\": [0.25, 0.75, 0, 0, 0.5],\n \"8726\": [0.25, 0.75, 0, 0, 0.5],\n \"8727\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"8728\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8729\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8730\": [0.2, 0.8, 0, 0, 0.83334],\n \"8733\": [0, 0.43056, 0, 0, 0.77778],\n \"8734\": [0, 0.43056, 0, 0, 1.0],\n \"8736\": [0, 0.69224, 0, 0, 0.72222],\n \"8739\": [0.25, 0.75, 0, 0, 0.27778],\n \"8741\": [0.25, 0.75, 0, 0, 0.5],\n \"8743\": [0, 0.55556, 0, 0, 0.66667],\n \"8744\": [0, 0.55556, 0, 0, 0.66667],\n \"8745\": [0, 0.55556, 0, 0, 0.66667],\n \"8746\": [0, 0.55556, 0, 0, 0.66667],\n \"8747\": [0.19444, 0.69444, 0.11111, 0, 0.41667],\n \"8764\": [-0.13313, 0.36687, 0, 0, 0.77778],\n \"8768\": [0.19444, 0.69444, 0, 0, 0.27778],\n \"8771\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8773\": [-0.022, 0.589, 0, 0, 0.778],\n \"8776\": [-0.01688, 0.48312, 0, 0, 0.77778],\n \"8781\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8784\": [-0.133, 0.673, 0, 0, 0.778],\n \"8801\": [-0.03625, 0.46375, 0, 0, 0.77778],\n \"8804\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8805\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8810\": [0.0391, 0.5391, 0, 0, 1.0],\n \"8811\": [0.0391, 0.5391, 0, 0, 1.0],\n \"8826\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8827\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8834\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8835\": [0.0391, 0.5391, 0, 0, 0.77778],\n \"8838\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8839\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8846\": [0, 0.55556, 0, 0, 0.66667],\n \"8849\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8850\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"8851\": [0, 0.55556, 0, 0, 0.66667],\n \"8852\": [0, 0.55556, 0, 0, 0.66667],\n \"8853\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8854\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8855\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8856\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8857\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"8866\": [0, 0.69444, 0, 0, 0.61111],\n \"8867\": [0, 0.69444, 0, 0, 0.61111],\n \"8868\": [0, 0.69444, 0, 0, 0.77778],\n \"8869\": [0, 0.69444, 0, 0, 0.77778],\n \"8872\": [0.249, 0.75, 0, 0, 0.867],\n \"8900\": [-0.05555, 0.44445, 0, 0, 0.5],\n \"8901\": [-0.05555, 0.44445, 0, 0, 0.27778],\n \"8902\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"8904\": [0.005, 0.505, 0, 0, 0.9],\n \"8942\": [0.03, 0.903, 0, 0, 0.278],\n \"8943\": [-0.19, 0.313, 0, 0, 1.172],\n \"8945\": [-0.1, 0.823, 0, 0, 1.282],\n \"8968\": [0.25, 0.75, 0, 0, 0.44445],\n \"8969\": [0.25, 0.75, 0, 0, 0.44445],\n \"8970\": [0.25, 0.75, 0, 0, 0.44445],\n \"8971\": [0.25, 0.75, 0, 0, 0.44445],\n \"8994\": [-0.14236, 0.35764, 0, 0, 1.0],\n \"8995\": [-0.14236, 0.35764, 0, 0, 1.0],\n \"9136\": [0.244, 0.744, 0, 0, 0.412],\n \"9137\": [0.244, 0.745, 0, 0, 0.412],\n \"9651\": [0.19444, 0.69444, 0, 0, 0.88889],\n \"9657\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"9661\": [0.19444, 0.69444, 0, 0, 0.88889],\n \"9667\": [-0.03472, 0.46528, 0, 0, 0.5],\n \"9711\": [0.19444, 0.69444, 0, 0, 1.0],\n \"9824\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9825\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9826\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9827\": [0.12963, 0.69444, 0, 0, 0.77778],\n \"9837\": [0, 0.75, 0, 0, 0.38889],\n \"9838\": [0.19444, 0.69444, 0, 0, 0.38889],\n \"9839\": [0.19444, 0.69444, 0, 0, 0.38889],\n \"10216\": [0.25, 0.75, 0, 0, 0.38889],\n \"10217\": [0.25, 0.75, 0, 0, 0.38889],\n \"10222\": [0.244, 0.744, 0, 0, 0.412],\n \"10223\": [0.244, 0.745, 0, 0, 0.412],\n \"10229\": [0.011, 0.511, 0, 0, 1.609],\n \"10230\": [0.011, 0.511, 0, 0, 1.638],\n \"10231\": [0.011, 0.511, 0, 0, 1.859],\n \"10232\": [0.024, 0.525, 0, 0, 1.609],\n \"10233\": [0.024, 0.525, 0, 0, 1.638],\n \"10234\": [0.024, 0.525, 0, 0, 1.858],\n \"10236\": [0.011, 0.511, 0, 0, 1.638],\n \"10815\": [0, 0.68333, 0, 0, 0.75],\n \"10927\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"10928\": [0.13597, 0.63597, 0, 0, 0.77778],\n \"57376\": [0.19444, 0.69444, 0, 0, 0]\n },\n \"Math-BoldItalic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"48\": [0, 0.44444, 0, 0, 0.575],\n \"49\": [0, 0.44444, 0, 0, 0.575],\n \"50\": [0, 0.44444, 0, 0, 0.575],\n \"51\": [0.19444, 0.44444, 0, 0, 0.575],\n \"52\": [0.19444, 0.44444, 0, 0, 0.575],\n \"53\": [0.19444, 0.44444, 0, 0, 0.575],\n \"54\": [0, 0.64444, 0, 0, 0.575],\n \"55\": [0.19444, 0.44444, 0, 0, 0.575],\n \"56\": [0, 0.64444, 0, 0, 0.575],\n \"57\": [0.19444, 0.44444, 0, 0, 0.575],\n \"65\": [0, 0.68611, 0, 0, 0.86944],\n \"66\": [0, 0.68611, 0.04835, 0, 0.8664],\n \"67\": [0, 0.68611, 0.06979, 0, 0.81694],\n \"68\": [0, 0.68611, 0.03194, 0, 0.93812],\n \"69\": [0, 0.68611, 0.05451, 0, 0.81007],\n \"70\": [0, 0.68611, 0.15972, 0, 0.68889],\n \"71\": [0, 0.68611, 0, 0, 0.88673],\n \"72\": [0, 0.68611, 0.08229, 0, 0.98229],\n \"73\": [0, 0.68611, 0.07778, 0, 0.51111],\n \"74\": [0, 0.68611, 0.10069, 0, 0.63125],\n \"75\": [0, 0.68611, 0.06979, 0, 0.97118],\n \"76\": [0, 0.68611, 0, 0, 0.75555],\n \"77\": [0, 0.68611, 0.11424, 0, 1.14201],\n \"78\": [0, 0.68611, 0.11424, 0, 0.95034],\n \"79\": [0, 0.68611, 0.03194, 0, 0.83666],\n \"80\": [0, 0.68611, 0.15972, 0, 0.72309],\n \"81\": [0.19444, 0.68611, 0, 0, 0.86861],\n \"82\": [0, 0.68611, 0.00421, 0, 0.87235],\n \"83\": [0, 0.68611, 0.05382, 0, 0.69271],\n \"84\": [0, 0.68611, 0.15972, 0, 0.63663],\n \"85\": [0, 0.68611, 0.11424, 0, 0.80027],\n \"86\": [0, 0.68611, 0.25555, 0, 0.67778],\n \"87\": [0, 0.68611, 0.15972, 0, 1.09305],\n \"88\": [0, 0.68611, 0.07778, 0, 0.94722],\n \"89\": [0, 0.68611, 0.25555, 0, 0.67458],\n \"90\": [0, 0.68611, 0.06979, 0, 0.77257],\n \"97\": [0, 0.44444, 0, 0, 0.63287],\n \"98\": [0, 0.69444, 0, 0, 0.52083],\n \"99\": [0, 0.44444, 0, 0, 0.51342],\n \"100\": [0, 0.69444, 0, 0, 0.60972],\n \"101\": [0, 0.44444, 0, 0, 0.55361],\n \"102\": [0.19444, 0.69444, 0.11042, 0, 0.56806],\n \"103\": [0.19444, 0.44444, 0.03704, 0, 0.5449],\n \"104\": [0, 0.69444, 0, 0, 0.66759],\n \"105\": [0, 0.69326, 0, 0, 0.4048],\n \"106\": [0.19444, 0.69326, 0.0622, 0, 0.47083],\n \"107\": [0, 0.69444, 0.01852, 0, 0.6037],\n \"108\": [0, 0.69444, 0.0088, 0, 0.34815],\n \"109\": [0, 0.44444, 0, 0, 1.0324],\n \"110\": [0, 0.44444, 0, 0, 0.71296],\n \"111\": [0, 0.44444, 0, 0, 0.58472],\n \"112\": [0.19444, 0.44444, 0, 0, 0.60092],\n \"113\": [0.19444, 0.44444, 0.03704, 0, 0.54213],\n \"114\": [0, 0.44444, 0.03194, 0, 0.5287],\n \"115\": [0, 0.44444, 0, 0, 0.53125],\n \"116\": [0, 0.63492, 0, 0, 0.41528],\n \"117\": [0, 0.44444, 0, 0, 0.68102],\n \"118\": [0, 0.44444, 0.03704, 0, 0.56666],\n \"119\": [0, 0.44444, 0.02778, 0, 0.83148],\n \"120\": [0, 0.44444, 0, 0, 0.65903],\n \"121\": [0.19444, 0.44444, 0.03704, 0, 0.59028],\n \"122\": [0, 0.44444, 0.04213, 0, 0.55509],\n \"160\": [0, 0, 0, 0, 0.25],\n \"915\": [0, 0.68611, 0.15972, 0, 0.65694],\n \"916\": [0, 0.68611, 0, 0, 0.95833],\n \"920\": [0, 0.68611, 0.03194, 0, 0.86722],\n \"923\": [0, 0.68611, 0, 0, 0.80555],\n \"926\": [0, 0.68611, 0.07458, 0, 0.84125],\n \"928\": [0, 0.68611, 0.08229, 0, 0.98229],\n \"931\": [0, 0.68611, 0.05451, 0, 0.88507],\n \"933\": [0, 0.68611, 0.15972, 0, 0.67083],\n \"934\": [0, 0.68611, 0, 0, 0.76666],\n \"936\": [0, 0.68611, 0.11653, 0, 0.71402],\n \"937\": [0, 0.68611, 0.04835, 0, 0.8789],\n \"945\": [0, 0.44444, 0, 0, 0.76064],\n \"946\": [0.19444, 0.69444, 0.03403, 0, 0.65972],\n \"947\": [0.19444, 0.44444, 0.06389, 0, 0.59003],\n \"948\": [0, 0.69444, 0.03819, 0, 0.52222],\n \"949\": [0, 0.44444, 0, 0, 0.52882],\n \"950\": [0.19444, 0.69444, 0.06215, 0, 0.50833],\n \"951\": [0.19444, 0.44444, 0.03704, 0, 0.6],\n \"952\": [0, 0.69444, 0.03194, 0, 0.5618],\n \"953\": [0, 0.44444, 0, 0, 0.41204],\n \"954\": [0, 0.44444, 0, 0, 0.66759],\n \"955\": [0, 0.69444, 0, 0, 0.67083],\n \"956\": [0.19444, 0.44444, 0, 0, 0.70787],\n \"957\": [0, 0.44444, 0.06898, 0, 0.57685],\n \"958\": [0.19444, 0.69444, 0.03021, 0, 0.50833],\n \"959\": [0, 0.44444, 0, 0, 0.58472],\n \"960\": [0, 0.44444, 0.03704, 0, 0.68241],\n \"961\": [0.19444, 0.44444, 0, 0, 0.6118],\n \"962\": [0.09722, 0.44444, 0.07917, 0, 0.42361],\n \"963\": [0, 0.44444, 0.03704, 0, 0.68588],\n \"964\": [0, 0.44444, 0.13472, 0, 0.52083],\n \"965\": [0, 0.44444, 0.03704, 0, 0.63055],\n \"966\": [0.19444, 0.44444, 0, 0, 0.74722],\n \"967\": [0.19444, 0.44444, 0, 0, 0.71805],\n \"968\": [0.19444, 0.69444, 0.03704, 0, 0.75833],\n \"969\": [0, 0.44444, 0.03704, 0, 0.71782],\n \"977\": [0, 0.69444, 0, 0, 0.69155],\n \"981\": [0.19444, 0.69444, 0, 0, 0.7125],\n \"982\": [0, 0.44444, 0.03194, 0, 0.975],\n \"1009\": [0.19444, 0.44444, 0, 0, 0.6118],\n \"1013\": [0, 0.44444, 0, 0, 0.48333],\n \"57649\": [0, 0.44444, 0, 0, 0.39352],\n \"57911\": [0.19444, 0.44444, 0, 0, 0.43889]\n },\n \"Math-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"48\": [0, 0.43056, 0, 0, 0.5],\n \"49\": [0, 0.43056, 0, 0, 0.5],\n \"50\": [0, 0.43056, 0, 0, 0.5],\n \"51\": [0.19444, 0.43056, 0, 0, 0.5],\n \"52\": [0.19444, 0.43056, 0, 0, 0.5],\n \"53\": [0.19444, 0.43056, 0, 0, 0.5],\n \"54\": [0, 0.64444, 0, 0, 0.5],\n \"55\": [0.19444, 0.43056, 0, 0, 0.5],\n \"56\": [0, 0.64444, 0, 0, 0.5],\n \"57\": [0.19444, 0.43056, 0, 0, 0.5],\n \"65\": [0, 0.68333, 0, 0.13889, 0.75],\n \"66\": [0, 0.68333, 0.05017, 0.08334, 0.75851],\n \"67\": [0, 0.68333, 0.07153, 0.08334, 0.71472],\n \"68\": [0, 0.68333, 0.02778, 0.05556, 0.82792],\n \"69\": [0, 0.68333, 0.05764, 0.08334, 0.7382],\n \"70\": [0, 0.68333, 0.13889, 0.08334, 0.64306],\n \"71\": [0, 0.68333, 0, 0.08334, 0.78625],\n \"72\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n \"73\": [0, 0.68333, 0.07847, 0.11111, 0.43958],\n \"74\": [0, 0.68333, 0.09618, 0.16667, 0.55451],\n \"75\": [0, 0.68333, 0.07153, 0.05556, 0.84931],\n \"76\": [0, 0.68333, 0, 0.02778, 0.68056],\n \"77\": [0, 0.68333, 0.10903, 0.08334, 0.97014],\n \"78\": [0, 0.68333, 0.10903, 0.08334, 0.80347],\n \"79\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n \"80\": [0, 0.68333, 0.13889, 0.08334, 0.64201],\n \"81\": [0.19444, 0.68333, 0, 0.08334, 0.79056],\n \"82\": [0, 0.68333, 0.00773, 0.08334, 0.75929],\n \"83\": [0, 0.68333, 0.05764, 0.08334, 0.6132],\n \"84\": [0, 0.68333, 0.13889, 0.08334, 0.58438],\n \"85\": [0, 0.68333, 0.10903, 0.02778, 0.68278],\n \"86\": [0, 0.68333, 0.22222, 0, 0.58333],\n \"87\": [0, 0.68333, 0.13889, 0, 0.94445],\n \"88\": [0, 0.68333, 0.07847, 0.08334, 0.82847],\n \"89\": [0, 0.68333, 0.22222, 0, 0.58056],\n \"90\": [0, 0.68333, 0.07153, 0.08334, 0.68264],\n \"97\": [0, 0.43056, 0, 0, 0.52859],\n \"98\": [0, 0.69444, 0, 0, 0.42917],\n \"99\": [0, 0.43056, 0, 0.05556, 0.43276],\n \"100\": [0, 0.69444, 0, 0.16667, 0.52049],\n \"101\": [0, 0.43056, 0, 0.05556, 0.46563],\n \"102\": [0.19444, 0.69444, 0.10764, 0.16667, 0.48959],\n \"103\": [0.19444, 0.43056, 0.03588, 0.02778, 0.47697],\n \"104\": [0, 0.69444, 0, 0, 0.57616],\n \"105\": [0, 0.65952, 0, 0, 0.34451],\n \"106\": [0.19444, 0.65952, 0.05724, 0, 0.41181],\n \"107\": [0, 0.69444, 0.03148, 0, 0.5206],\n \"108\": [0, 0.69444, 0.01968, 0.08334, 0.29838],\n \"109\": [0, 0.43056, 0, 0, 0.87801],\n \"110\": [0, 0.43056, 0, 0, 0.60023],\n \"111\": [0, 0.43056, 0, 0.05556, 0.48472],\n \"112\": [0.19444, 0.43056, 0, 0.08334, 0.50313],\n \"113\": [0.19444, 0.43056, 0.03588, 0.08334, 0.44641],\n \"114\": [0, 0.43056, 0.02778, 0.05556, 0.45116],\n \"115\": [0, 0.43056, 0, 0.05556, 0.46875],\n \"116\": [0, 0.61508, 0, 0.08334, 0.36111],\n \"117\": [0, 0.43056, 0, 0.02778, 0.57246],\n \"118\": [0, 0.43056, 0.03588, 0.02778, 0.48472],\n \"119\": [0, 0.43056, 0.02691, 0.08334, 0.71592],\n \"120\": [0, 0.43056, 0, 0.02778, 0.57153],\n \"121\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49028],\n \"122\": [0, 0.43056, 0.04398, 0.05556, 0.46505],\n \"160\": [0, 0, 0, 0, 0.25],\n \"915\": [0, 0.68333, 0.13889, 0.08334, 0.61528],\n \"916\": [0, 0.68333, 0, 0.16667, 0.83334],\n \"920\": [0, 0.68333, 0.02778, 0.08334, 0.76278],\n \"923\": [0, 0.68333, 0, 0.16667, 0.69445],\n \"926\": [0, 0.68333, 0.07569, 0.08334, 0.74236],\n \"928\": [0, 0.68333, 0.08125, 0.05556, 0.83125],\n \"931\": [0, 0.68333, 0.05764, 0.08334, 0.77986],\n \"933\": [0, 0.68333, 0.13889, 0.05556, 0.58333],\n \"934\": [0, 0.68333, 0, 0.08334, 0.66667],\n \"936\": [0, 0.68333, 0.11, 0.05556, 0.61222],\n \"937\": [0, 0.68333, 0.05017, 0.08334, 0.7724],\n \"945\": [0, 0.43056, 0.0037, 0.02778, 0.6397],\n \"946\": [0.19444, 0.69444, 0.05278, 0.08334, 0.56563],\n \"947\": [0.19444, 0.43056, 0.05556, 0, 0.51773],\n \"948\": [0, 0.69444, 0.03785, 0.05556, 0.44444],\n \"949\": [0, 0.43056, 0, 0.08334, 0.46632],\n \"950\": [0.19444, 0.69444, 0.07378, 0.08334, 0.4375],\n \"951\": [0.19444, 0.43056, 0.03588, 0.05556, 0.49653],\n \"952\": [0, 0.69444, 0.02778, 0.08334, 0.46944],\n \"953\": [0, 0.43056, 0, 0.05556, 0.35394],\n \"954\": [0, 0.43056, 0, 0, 0.57616],\n \"955\": [0, 0.69444, 0, 0, 0.58334],\n \"956\": [0.19444, 0.43056, 0, 0.02778, 0.60255],\n \"957\": [0, 0.43056, 0.06366, 0.02778, 0.49398],\n \"958\": [0.19444, 0.69444, 0.04601, 0.11111, 0.4375],\n \"959\": [0, 0.43056, 0, 0.05556, 0.48472],\n \"960\": [0, 0.43056, 0.03588, 0, 0.57003],\n \"961\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n \"962\": [0.09722, 0.43056, 0.07986, 0.08334, 0.36285],\n \"963\": [0, 0.43056, 0.03588, 0, 0.57141],\n \"964\": [0, 0.43056, 0.1132, 0.02778, 0.43715],\n \"965\": [0, 0.43056, 0.03588, 0.02778, 0.54028],\n \"966\": [0.19444, 0.43056, 0, 0.08334, 0.65417],\n \"967\": [0.19444, 0.43056, 0, 0.05556, 0.62569],\n \"968\": [0.19444, 0.69444, 0.03588, 0.11111, 0.65139],\n \"969\": [0, 0.43056, 0.03588, 0, 0.62245],\n \"977\": [0, 0.69444, 0, 0.08334, 0.59144],\n \"981\": [0.19444, 0.69444, 0, 0.08334, 0.59583],\n \"982\": [0, 0.43056, 0.02778, 0, 0.82813],\n \"1009\": [0.19444, 0.43056, 0, 0.08334, 0.51702],\n \"1013\": [0, 0.43056, 0, 0.05556, 0.4059],\n \"57649\": [0, 0.43056, 0, 0.02778, 0.32246],\n \"57911\": [0.19444, 0.43056, 0, 0.08334, 0.38403]\n },\n \"SansSerif-Bold\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.36667],\n \"34\": [0, 0.69444, 0, 0, 0.55834],\n \"35\": [0.19444, 0.69444, 0, 0, 0.91667],\n \"36\": [0.05556, 0.75, 0, 0, 0.55],\n \"37\": [0.05556, 0.75, 0, 0, 1.02912],\n \"38\": [0, 0.69444, 0, 0, 0.83056],\n \"39\": [0, 0.69444, 0, 0, 0.30556],\n \"40\": [0.25, 0.75, 0, 0, 0.42778],\n \"41\": [0.25, 0.75, 0, 0, 0.42778],\n \"42\": [0, 0.75, 0, 0, 0.55],\n \"43\": [0.11667, 0.61667, 0, 0, 0.85556],\n \"44\": [0.10556, 0.13056, 0, 0, 0.30556],\n \"45\": [0, 0.45833, 0, 0, 0.36667],\n \"46\": [0, 0.13056, 0, 0, 0.30556],\n \"47\": [0.25, 0.75, 0, 0, 0.55],\n \"48\": [0, 0.69444, 0, 0, 0.55],\n \"49\": [0, 0.69444, 0, 0, 0.55],\n \"50\": [0, 0.69444, 0, 0, 0.55],\n \"51\": [0, 0.69444, 0, 0, 0.55],\n \"52\": [0, 0.69444, 0, 0, 0.55],\n \"53\": [0, 0.69444, 0, 0, 0.55],\n \"54\": [0, 0.69444, 0, 0, 0.55],\n \"55\": [0, 0.69444, 0, 0, 0.55],\n \"56\": [0, 0.69444, 0, 0, 0.55],\n \"57\": [0, 0.69444, 0, 0, 0.55],\n \"58\": [0, 0.45833, 0, 0, 0.30556],\n \"59\": [0.10556, 0.45833, 0, 0, 0.30556],\n \"61\": [-0.09375, 0.40625, 0, 0, 0.85556],\n \"63\": [0, 0.69444, 0, 0, 0.51945],\n \"64\": [0, 0.69444, 0, 0, 0.73334],\n \"65\": [0, 0.69444, 0, 0, 0.73334],\n \"66\": [0, 0.69444, 0, 0, 0.73334],\n \"67\": [0, 0.69444, 0, 0, 0.70278],\n \"68\": [0, 0.69444, 0, 0, 0.79445],\n \"69\": [0, 0.69444, 0, 0, 0.64167],\n \"70\": [0, 0.69444, 0, 0, 0.61111],\n \"71\": [0, 0.69444, 0, 0, 0.73334],\n \"72\": [0, 0.69444, 0, 0, 0.79445],\n \"73\": [0, 0.69444, 0, 0, 0.33056],\n \"74\": [0, 0.69444, 0, 0, 0.51945],\n \"75\": [0, 0.69444, 0, 0, 0.76389],\n \"76\": [0, 0.69444, 0, 0, 0.58056],\n \"77\": [0, 0.69444, 0, 0, 0.97778],\n \"78\": [0, 0.69444, 0, 0, 0.79445],\n \"79\": [0, 0.69444, 0, 0, 0.79445],\n \"80\": [0, 0.69444, 0, 0, 0.70278],\n \"81\": [0.10556, 0.69444, 0, 0, 0.79445],\n \"82\": [0, 0.69444, 0, 0, 0.70278],\n \"83\": [0, 0.69444, 0, 0, 0.61111],\n \"84\": [0, 0.69444, 0, 0, 0.73334],\n \"85\": [0, 0.69444, 0, 0, 0.76389],\n \"86\": [0, 0.69444, 0.01528, 0, 0.73334],\n \"87\": [0, 0.69444, 0.01528, 0, 1.03889],\n \"88\": [0, 0.69444, 0, 0, 0.73334],\n \"89\": [0, 0.69444, 0.0275, 0, 0.73334],\n \"90\": [0, 0.69444, 0, 0, 0.67223],\n \"91\": [0.25, 0.75, 0, 0, 0.34306],\n \"93\": [0.25, 0.75, 0, 0, 0.34306],\n \"94\": [0, 0.69444, 0, 0, 0.55],\n \"95\": [0.35, 0.10833, 0.03056, 0, 0.55],\n \"97\": [0, 0.45833, 0, 0, 0.525],\n \"98\": [0, 0.69444, 0, 0, 0.56111],\n \"99\": [0, 0.45833, 0, 0, 0.48889],\n \"100\": [0, 0.69444, 0, 0, 0.56111],\n \"101\": [0, 0.45833, 0, 0, 0.51111],\n \"102\": [0, 0.69444, 0.07639, 0, 0.33611],\n \"103\": [0.19444, 0.45833, 0.01528, 0, 0.55],\n \"104\": [0, 0.69444, 0, 0, 0.56111],\n \"105\": [0, 0.69444, 0, 0, 0.25556],\n \"106\": [0.19444, 0.69444, 0, 0, 0.28611],\n \"107\": [0, 0.69444, 0, 0, 0.53056],\n \"108\": [0, 0.69444, 0, 0, 0.25556],\n \"109\": [0, 0.45833, 0, 0, 0.86667],\n \"110\": [0, 0.45833, 0, 0, 0.56111],\n \"111\": [0, 0.45833, 0, 0, 0.55],\n \"112\": [0.19444, 0.45833, 0, 0, 0.56111],\n \"113\": [0.19444, 0.45833, 0, 0, 0.56111],\n \"114\": [0, 0.45833, 0.01528, 0, 0.37222],\n \"115\": [0, 0.45833, 0, 0, 0.42167],\n \"116\": [0, 0.58929, 0, 0, 0.40417],\n \"117\": [0, 0.45833, 0, 0, 0.56111],\n \"118\": [0, 0.45833, 0.01528, 0, 0.5],\n \"119\": [0, 0.45833, 0.01528, 0, 0.74445],\n \"120\": [0, 0.45833, 0, 0, 0.5],\n \"121\": [0.19444, 0.45833, 0.01528, 0, 0.5],\n \"122\": [0, 0.45833, 0, 0, 0.47639],\n \"126\": [0.35, 0.34444, 0, 0, 0.55],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.69444, 0, 0, 0.55],\n \"176\": [0, 0.69444, 0, 0, 0.73334],\n \"180\": [0, 0.69444, 0, 0, 0.55],\n \"184\": [0.17014, 0, 0, 0, 0.48889],\n \"305\": [0, 0.45833, 0, 0, 0.25556],\n \"567\": [0.19444, 0.45833, 0, 0, 0.28611],\n \"710\": [0, 0.69444, 0, 0, 0.55],\n \"711\": [0, 0.63542, 0, 0, 0.55],\n \"713\": [0, 0.63778, 0, 0, 0.55],\n \"728\": [0, 0.69444, 0, 0, 0.55],\n \"729\": [0, 0.69444, 0, 0, 0.30556],\n \"730\": [0, 0.69444, 0, 0, 0.73334],\n \"732\": [0, 0.69444, 0, 0, 0.55],\n \"733\": [0, 0.69444, 0, 0, 0.55],\n \"915\": [0, 0.69444, 0, 0, 0.58056],\n \"916\": [0, 0.69444, 0, 0, 0.91667],\n \"920\": [0, 0.69444, 0, 0, 0.85556],\n \"923\": [0, 0.69444, 0, 0, 0.67223],\n \"926\": [0, 0.69444, 0, 0, 0.73334],\n \"928\": [0, 0.69444, 0, 0, 0.79445],\n \"931\": [0, 0.69444, 0, 0, 0.79445],\n \"933\": [0, 0.69444, 0, 0, 0.85556],\n \"934\": [0, 0.69444, 0, 0, 0.79445],\n \"936\": [0, 0.69444, 0, 0, 0.85556],\n \"937\": [0, 0.69444, 0, 0, 0.79445],\n \"8211\": [0, 0.45833, 0.03056, 0, 0.55],\n \"8212\": [0, 0.45833, 0.03056, 0, 1.10001],\n \"8216\": [0, 0.69444, 0, 0, 0.30556],\n \"8217\": [0, 0.69444, 0, 0, 0.30556],\n \"8220\": [0, 0.69444, 0, 0, 0.55834],\n \"8221\": [0, 0.69444, 0, 0, 0.55834]\n },\n \"SansSerif-Italic\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0.05733, 0, 0.31945],\n \"34\": [0, 0.69444, 0.00316, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0.05087, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0.11156, 0, 0.5],\n \"37\": [0.05556, 0.75, 0.03126, 0, 0.83334],\n \"38\": [0, 0.69444, 0.03058, 0, 0.75834],\n \"39\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"40\": [0.25, 0.75, 0.13164, 0, 0.38889],\n \"41\": [0.25, 0.75, 0.02536, 0, 0.38889],\n \"42\": [0, 0.75, 0.11775, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0.02536, 0, 0.77778],\n \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n \"45\": [0, 0.44444, 0.01946, 0, 0.33333],\n \"46\": [0, 0.08333, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0.13164, 0, 0.5],\n \"48\": [0, 0.65556, 0.11156, 0, 0.5],\n \"49\": [0, 0.65556, 0.11156, 0, 0.5],\n \"50\": [0, 0.65556, 0.11156, 0, 0.5],\n \"51\": [0, 0.65556, 0.11156, 0, 0.5],\n \"52\": [0, 0.65556, 0.11156, 0, 0.5],\n \"53\": [0, 0.65556, 0.11156, 0, 0.5],\n \"54\": [0, 0.65556, 0.11156, 0, 0.5],\n \"55\": [0, 0.65556, 0.11156, 0, 0.5],\n \"56\": [0, 0.65556, 0.11156, 0, 0.5],\n \"57\": [0, 0.65556, 0.11156, 0, 0.5],\n \"58\": [0, 0.44444, 0.02502, 0, 0.27778],\n \"59\": [0.125, 0.44444, 0.02502, 0, 0.27778],\n \"61\": [-0.13, 0.37, 0.05087, 0, 0.77778],\n \"63\": [0, 0.69444, 0.11809, 0, 0.47222],\n \"64\": [0, 0.69444, 0.07555, 0, 0.66667],\n \"65\": [0, 0.69444, 0, 0, 0.66667],\n \"66\": [0, 0.69444, 0.08293, 0, 0.66667],\n \"67\": [0, 0.69444, 0.11983, 0, 0.63889],\n \"68\": [0, 0.69444, 0.07555, 0, 0.72223],\n \"69\": [0, 0.69444, 0.11983, 0, 0.59722],\n \"70\": [0, 0.69444, 0.13372, 0, 0.56945],\n \"71\": [0, 0.69444, 0.11983, 0, 0.66667],\n \"72\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"73\": [0, 0.69444, 0.13372, 0, 0.27778],\n \"74\": [0, 0.69444, 0.08094, 0, 0.47222],\n \"75\": [0, 0.69444, 0.11983, 0, 0.69445],\n \"76\": [0, 0.69444, 0, 0, 0.54167],\n \"77\": [0, 0.69444, 0.08094, 0, 0.875],\n \"78\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"79\": [0, 0.69444, 0.07555, 0, 0.73611],\n \"80\": [0, 0.69444, 0.08293, 0, 0.63889],\n \"81\": [0.125, 0.69444, 0.07555, 0, 0.73611],\n \"82\": [0, 0.69444, 0.08293, 0, 0.64584],\n \"83\": [0, 0.69444, 0.09205, 0, 0.55556],\n \"84\": [0, 0.69444, 0.13372, 0, 0.68056],\n \"85\": [0, 0.69444, 0.08094, 0, 0.6875],\n \"86\": [0, 0.69444, 0.1615, 0, 0.66667],\n \"87\": [0, 0.69444, 0.1615, 0, 0.94445],\n \"88\": [0, 0.69444, 0.13372, 0, 0.66667],\n \"89\": [0, 0.69444, 0.17261, 0, 0.66667],\n \"90\": [0, 0.69444, 0.11983, 0, 0.61111],\n \"91\": [0.25, 0.75, 0.15942, 0, 0.28889],\n \"93\": [0.25, 0.75, 0.08719, 0, 0.28889],\n \"94\": [0, 0.69444, 0.0799, 0, 0.5],\n \"95\": [0.35, 0.09444, 0.08616, 0, 0.5],\n \"97\": [0, 0.44444, 0.00981, 0, 0.48056],\n \"98\": [0, 0.69444, 0.03057, 0, 0.51667],\n \"99\": [0, 0.44444, 0.08336, 0, 0.44445],\n \"100\": [0, 0.69444, 0.09483, 0, 0.51667],\n \"101\": [0, 0.44444, 0.06778, 0, 0.44445],\n \"102\": [0, 0.69444, 0.21705, 0, 0.30556],\n \"103\": [0.19444, 0.44444, 0.10836, 0, 0.5],\n \"104\": [0, 0.69444, 0.01778, 0, 0.51667],\n \"105\": [0, 0.67937, 0.09718, 0, 0.23889],\n \"106\": [0.19444, 0.67937, 0.09162, 0, 0.26667],\n \"107\": [0, 0.69444, 0.08336, 0, 0.48889],\n \"108\": [0, 0.69444, 0.09483, 0, 0.23889],\n \"109\": [0, 0.44444, 0.01778, 0, 0.79445],\n \"110\": [0, 0.44444, 0.01778, 0, 0.51667],\n \"111\": [0, 0.44444, 0.06613, 0, 0.5],\n \"112\": [0.19444, 0.44444, 0.0389, 0, 0.51667],\n \"113\": [0.19444, 0.44444, 0.04169, 0, 0.51667],\n \"114\": [0, 0.44444, 0.10836, 0, 0.34167],\n \"115\": [0, 0.44444, 0.0778, 0, 0.38333],\n \"116\": [0, 0.57143, 0.07225, 0, 0.36111],\n \"117\": [0, 0.44444, 0.04169, 0, 0.51667],\n \"118\": [0, 0.44444, 0.10836, 0, 0.46111],\n \"119\": [0, 0.44444, 0.10836, 0, 0.68334],\n \"120\": [0, 0.44444, 0.09169, 0, 0.46111],\n \"121\": [0.19444, 0.44444, 0.10836, 0, 0.46111],\n \"122\": [0, 0.44444, 0.08752, 0, 0.43472],\n \"126\": [0.35, 0.32659, 0.08826, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.67937, 0.06385, 0, 0.5],\n \"176\": [0, 0.69444, 0, 0, 0.73752],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"305\": [0, 0.44444, 0.04169, 0, 0.23889],\n \"567\": [0.19444, 0.44444, 0.04169, 0, 0.26667],\n \"710\": [0, 0.69444, 0.0799, 0, 0.5],\n \"711\": [0, 0.63194, 0.08432, 0, 0.5],\n \"713\": [0, 0.60889, 0.08776, 0, 0.5],\n \"714\": [0, 0.69444, 0.09205, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0.09483, 0, 0.5],\n \"729\": [0, 0.67937, 0.07774, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.73752],\n \"732\": [0, 0.67659, 0.08826, 0, 0.5],\n \"733\": [0, 0.69444, 0.09205, 0, 0.5],\n \"915\": [0, 0.69444, 0.13372, 0, 0.54167],\n \"916\": [0, 0.69444, 0, 0, 0.83334],\n \"920\": [0, 0.69444, 0.07555, 0, 0.77778],\n \"923\": [0, 0.69444, 0, 0, 0.61111],\n \"926\": [0, 0.69444, 0.12816, 0, 0.66667],\n \"928\": [0, 0.69444, 0.08094, 0, 0.70834],\n \"931\": [0, 0.69444, 0.11983, 0, 0.72222],\n \"933\": [0, 0.69444, 0.09031, 0, 0.77778],\n \"934\": [0, 0.69444, 0.04603, 0, 0.72222],\n \"936\": [0, 0.69444, 0.09031, 0, 0.77778],\n \"937\": [0, 0.69444, 0.08293, 0, 0.72222],\n \"8211\": [0, 0.44444, 0.08616, 0, 0.5],\n \"8212\": [0, 0.44444, 0.08616, 0, 1.0],\n \"8216\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"8217\": [0, 0.69444, 0.07816, 0, 0.27778],\n \"8220\": [0, 0.69444, 0.14205, 0, 0.5],\n \"8221\": [0, 0.69444, 0.00316, 0, 0.5]\n },\n \"SansSerif-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"33\": [0, 0.69444, 0, 0, 0.31945],\n \"34\": [0, 0.69444, 0, 0, 0.5],\n \"35\": [0.19444, 0.69444, 0, 0, 0.83334],\n \"36\": [0.05556, 0.75, 0, 0, 0.5],\n \"37\": [0.05556, 0.75, 0, 0, 0.83334],\n \"38\": [0, 0.69444, 0, 0, 0.75834],\n \"39\": [0, 0.69444, 0, 0, 0.27778],\n \"40\": [0.25, 0.75, 0, 0, 0.38889],\n \"41\": [0.25, 0.75, 0, 0, 0.38889],\n \"42\": [0, 0.75, 0, 0, 0.5],\n \"43\": [0.08333, 0.58333, 0, 0, 0.77778],\n \"44\": [0.125, 0.08333, 0, 0, 0.27778],\n \"45\": [0, 0.44444, 0, 0, 0.33333],\n \"46\": [0, 0.08333, 0, 0, 0.27778],\n \"47\": [0.25, 0.75, 0, 0, 0.5],\n \"48\": [0, 0.65556, 0, 0, 0.5],\n \"49\": [0, 0.65556, 0, 0, 0.5],\n \"50\": [0, 0.65556, 0, 0, 0.5],\n \"51\": [0, 0.65556, 0, 0, 0.5],\n \"52\": [0, 0.65556, 0, 0, 0.5],\n \"53\": [0, 0.65556, 0, 0, 0.5],\n \"54\": [0, 0.65556, 0, 0, 0.5],\n \"55\": [0, 0.65556, 0, 0, 0.5],\n \"56\": [0, 0.65556, 0, 0, 0.5],\n \"57\": [0, 0.65556, 0, 0, 0.5],\n \"58\": [0, 0.44444, 0, 0, 0.27778],\n \"59\": [0.125, 0.44444, 0, 0, 0.27778],\n \"61\": [-0.13, 0.37, 0, 0, 0.77778],\n \"63\": [0, 0.69444, 0, 0, 0.47222],\n \"64\": [0, 0.69444, 0, 0, 0.66667],\n \"65\": [0, 0.69444, 0, 0, 0.66667],\n \"66\": [0, 0.69444, 0, 0, 0.66667],\n \"67\": [0, 0.69444, 0, 0, 0.63889],\n \"68\": [0, 0.69444, 0, 0, 0.72223],\n \"69\": [0, 0.69444, 0, 0, 0.59722],\n \"70\": [0, 0.69444, 0, 0, 0.56945],\n \"71\": [0, 0.69444, 0, 0, 0.66667],\n \"72\": [0, 0.69444, 0, 0, 0.70834],\n \"73\": [0, 0.69444, 0, 0, 0.27778],\n \"74\": [0, 0.69444, 0, 0, 0.47222],\n \"75\": [0, 0.69444, 0, 0, 0.69445],\n \"76\": [0, 0.69444, 0, 0, 0.54167],\n \"77\": [0, 0.69444, 0, 0, 0.875],\n \"78\": [0, 0.69444, 0, 0, 0.70834],\n \"79\": [0, 0.69444, 0, 0, 0.73611],\n \"80\": [0, 0.69444, 0, 0, 0.63889],\n \"81\": [0.125, 0.69444, 0, 0, 0.73611],\n \"82\": [0, 0.69444, 0, 0, 0.64584],\n \"83\": [0, 0.69444, 0, 0, 0.55556],\n \"84\": [0, 0.69444, 0, 0, 0.68056],\n \"85\": [0, 0.69444, 0, 0, 0.6875],\n \"86\": [0, 0.69444, 0.01389, 0, 0.66667],\n \"87\": [0, 0.69444, 0.01389, 0, 0.94445],\n \"88\": [0, 0.69444, 0, 0, 0.66667],\n \"89\": [0, 0.69444, 0.025, 0, 0.66667],\n \"90\": [0, 0.69444, 0, 0, 0.61111],\n \"91\": [0.25, 0.75, 0, 0, 0.28889],\n \"93\": [0.25, 0.75, 0, 0, 0.28889],\n \"94\": [0, 0.69444, 0, 0, 0.5],\n \"95\": [0.35, 0.09444, 0.02778, 0, 0.5],\n \"97\": [0, 0.44444, 0, 0, 0.48056],\n \"98\": [0, 0.69444, 0, 0, 0.51667],\n \"99\": [0, 0.44444, 0, 0, 0.44445],\n \"100\": [0, 0.69444, 0, 0, 0.51667],\n \"101\": [0, 0.44444, 0, 0, 0.44445],\n \"102\": [0, 0.69444, 0.06944, 0, 0.30556],\n \"103\": [0.19444, 0.44444, 0.01389, 0, 0.5],\n \"104\": [0, 0.69444, 0, 0, 0.51667],\n \"105\": [0, 0.67937, 0, 0, 0.23889],\n \"106\": [0.19444, 0.67937, 0, 0, 0.26667],\n \"107\": [0, 0.69444, 0, 0, 0.48889],\n \"108\": [0, 0.69444, 0, 0, 0.23889],\n \"109\": [0, 0.44444, 0, 0, 0.79445],\n \"110\": [0, 0.44444, 0, 0, 0.51667],\n \"111\": [0, 0.44444, 0, 0, 0.5],\n \"112\": [0.19444, 0.44444, 0, 0, 0.51667],\n \"113\": [0.19444, 0.44444, 0, 0, 0.51667],\n \"114\": [0, 0.44444, 0.01389, 0, 0.34167],\n \"115\": [0, 0.44444, 0, 0, 0.38333],\n \"116\": [0, 0.57143, 0, 0, 0.36111],\n \"117\": [0, 0.44444, 0, 0, 0.51667],\n \"118\": [0, 0.44444, 0.01389, 0, 0.46111],\n \"119\": [0, 0.44444, 0.01389, 0, 0.68334],\n \"120\": [0, 0.44444, 0, 0, 0.46111],\n \"121\": [0.19444, 0.44444, 0.01389, 0, 0.46111],\n \"122\": [0, 0.44444, 0, 0, 0.43472],\n \"126\": [0.35, 0.32659, 0, 0, 0.5],\n \"160\": [0, 0, 0, 0, 0.25],\n \"168\": [0, 0.67937, 0, 0, 0.5],\n \"176\": [0, 0.69444, 0, 0, 0.66667],\n \"184\": [0.17014, 0, 0, 0, 0.44445],\n \"305\": [0, 0.44444, 0, 0, 0.23889],\n \"567\": [0.19444, 0.44444, 0, 0, 0.26667],\n \"710\": [0, 0.69444, 0, 0, 0.5],\n \"711\": [0, 0.63194, 0, 0, 0.5],\n \"713\": [0, 0.60889, 0, 0, 0.5],\n \"714\": [0, 0.69444, 0, 0, 0.5],\n \"715\": [0, 0.69444, 0, 0, 0.5],\n \"728\": [0, 0.69444, 0, 0, 0.5],\n \"729\": [0, 0.67937, 0, 0, 0.27778],\n \"730\": [0, 0.69444, 0, 0, 0.66667],\n \"732\": [0, 0.67659, 0, 0, 0.5],\n \"733\": [0, 0.69444, 0, 0, 0.5],\n \"915\": [0, 0.69444, 0, 0, 0.54167],\n \"916\": [0, 0.69444, 0, 0, 0.83334],\n \"920\": [0, 0.69444, 0, 0, 0.77778],\n \"923\": [0, 0.69444, 0, 0, 0.61111],\n \"926\": [0, 0.69444, 0, 0, 0.66667],\n \"928\": [0, 0.69444, 0, 0, 0.70834],\n \"931\": [0, 0.69444, 0, 0, 0.72222],\n \"933\": [0, 0.69444, 0, 0, 0.77778],\n \"934\": [0, 0.69444, 0, 0, 0.72222],\n \"936\": [0, 0.69444, 0, 0, 0.77778],\n \"937\": [0, 0.69444, 0, 0, 0.72222],\n \"8211\": [0, 0.44444, 0.02778, 0, 0.5],\n \"8212\": [0, 0.44444, 0.02778, 0, 1.0],\n \"8216\": [0, 0.69444, 0, 0, 0.27778],\n \"8217\": [0, 0.69444, 0, 0, 0.27778],\n \"8220\": [0, 0.69444, 0, 0, 0.5],\n \"8221\": [0, 0.69444, 0, 0, 0.5]\n },\n \"Script-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"65\": [0, 0.7, 0.22925, 0, 0.80253],\n \"66\": [0, 0.7, 0.04087, 0, 0.90757],\n \"67\": [0, 0.7, 0.1689, 0, 0.66619],\n \"68\": [0, 0.7, 0.09371, 0, 0.77443],\n \"69\": [0, 0.7, 0.18583, 0, 0.56162],\n \"70\": [0, 0.7, 0.13634, 0, 0.89544],\n \"71\": [0, 0.7, 0.17322, 0, 0.60961],\n \"72\": [0, 0.7, 0.29694, 0, 0.96919],\n \"73\": [0, 0.7, 0.19189, 0, 0.80907],\n \"74\": [0.27778, 0.7, 0.19189, 0, 1.05159],\n \"75\": [0, 0.7, 0.31259, 0, 0.91364],\n \"76\": [0, 0.7, 0.19189, 0, 0.87373],\n \"77\": [0, 0.7, 0.15981, 0, 1.08031],\n \"78\": [0, 0.7, 0.3525, 0, 0.9015],\n \"79\": [0, 0.7, 0.08078, 0, 0.73787],\n \"80\": [0, 0.7, 0.08078, 0, 1.01262],\n \"81\": [0, 0.7, 0.03305, 0, 0.88282],\n \"82\": [0, 0.7, 0.06259, 0, 0.85],\n \"83\": [0, 0.7, 0.19189, 0, 0.86767],\n \"84\": [0, 0.7, 0.29087, 0, 0.74697],\n \"85\": [0, 0.7, 0.25815, 0, 0.79996],\n \"86\": [0, 0.7, 0.27523, 0, 0.62204],\n \"87\": [0, 0.7, 0.27523, 0, 0.80532],\n \"88\": [0, 0.7, 0.26006, 0, 0.94445],\n \"89\": [0, 0.7, 0.2939, 0, 0.70961],\n \"90\": [0, 0.7, 0.24037, 0, 0.8212],\n \"160\": [0, 0, 0, 0, 0.25]\n },\n \"Size1-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.35001, 0.85, 0, 0, 0.45834],\n \"41\": [0.35001, 0.85, 0, 0, 0.45834],\n \"47\": [0.35001, 0.85, 0, 0, 0.57778],\n \"91\": [0.35001, 0.85, 0, 0, 0.41667],\n \"92\": [0.35001, 0.85, 0, 0, 0.57778],\n \"93\": [0.35001, 0.85, 0, 0, 0.41667],\n \"123\": [0.35001, 0.85, 0, 0, 0.58334],\n \"125\": [0.35001, 0.85, 0, 0, 0.58334],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.72222, 0, 0, 0.55556],\n \"732\": [0, 0.72222, 0, 0, 0.55556],\n \"770\": [0, 0.72222, 0, 0, 0.55556],\n \"771\": [0, 0.72222, 0, 0, 0.55556],\n \"8214\": [-0.00099, 0.601, 0, 0, 0.77778],\n \"8593\": [1e-05, 0.6, 0, 0, 0.66667],\n \"8595\": [1e-05, 0.6, 0, 0, 0.66667],\n \"8657\": [1e-05, 0.6, 0, 0, 0.77778],\n \"8659\": [1e-05, 0.6, 0, 0, 0.77778],\n \"8719\": [0.25001, 0.75, 0, 0, 0.94445],\n \"8720\": [0.25001, 0.75, 0, 0, 0.94445],\n \"8721\": [0.25001, 0.75, 0, 0, 1.05556],\n \"8730\": [0.35001, 0.85, 0, 0, 1.0],\n \"8739\": [-0.00599, 0.606, 0, 0, 0.33333],\n \"8741\": [-0.00599, 0.606, 0, 0, 0.55556],\n \"8747\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n \"8748\": [0.306, 0.805, 0.19445, 0, 0.47222],\n \"8749\": [0.306, 0.805, 0.19445, 0, 0.47222],\n \"8750\": [0.30612, 0.805, 0.19445, 0, 0.47222],\n \"8896\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8897\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8898\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8899\": [0.25001, 0.75, 0, 0, 0.83334],\n \"8968\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8969\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8970\": [0.35001, 0.85, 0, 0, 0.47222],\n \"8971\": [0.35001, 0.85, 0, 0, 0.47222],\n \"9168\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"10216\": [0.35001, 0.85, 0, 0, 0.47222],\n \"10217\": [0.35001, 0.85, 0, 0, 0.47222],\n \"10752\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10753\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10754\": [0.25001, 0.75, 0, 0, 1.11111],\n \"10756\": [0.25001, 0.75, 0, 0, 0.83334],\n \"10758\": [0.25001, 0.75, 0, 0, 0.83334]\n },\n \"Size2-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.65002, 1.15, 0, 0, 0.59722],\n \"41\": [0.65002, 1.15, 0, 0, 0.59722],\n \"47\": [0.65002, 1.15, 0, 0, 0.81111],\n \"91\": [0.65002, 1.15, 0, 0, 0.47222],\n \"92\": [0.65002, 1.15, 0, 0, 0.81111],\n \"93\": [0.65002, 1.15, 0, 0, 0.47222],\n \"123\": [0.65002, 1.15, 0, 0, 0.66667],\n \"125\": [0.65002, 1.15, 0, 0, 0.66667],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.75, 0, 0, 1.0],\n \"732\": [0, 0.75, 0, 0, 1.0],\n \"770\": [0, 0.75, 0, 0, 1.0],\n \"771\": [0, 0.75, 0, 0, 1.0],\n \"8719\": [0.55001, 1.05, 0, 0, 1.27778],\n \"8720\": [0.55001, 1.05, 0, 0, 1.27778],\n \"8721\": [0.55001, 1.05, 0, 0, 1.44445],\n \"8730\": [0.65002, 1.15, 0, 0, 1.0],\n \"8747\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n \"8748\": [0.862, 1.36, 0.44445, 0, 0.55556],\n \"8749\": [0.862, 1.36, 0.44445, 0, 0.55556],\n \"8750\": [0.86225, 1.36, 0.44445, 0, 0.55556],\n \"8896\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8897\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8898\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8899\": [0.55001, 1.05, 0, 0, 1.11111],\n \"8968\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8969\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8970\": [0.65002, 1.15, 0, 0, 0.52778],\n \"8971\": [0.65002, 1.15, 0, 0, 0.52778],\n \"10216\": [0.65002, 1.15, 0, 0, 0.61111],\n \"10217\": [0.65002, 1.15, 0, 0, 0.61111],\n \"10752\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10753\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10754\": [0.55001, 1.05, 0, 0, 1.51112],\n \"10756\": [0.55001, 1.05, 0, 0, 1.11111],\n \"10758\": [0.55001, 1.05, 0, 0, 1.11111]\n },\n \"Size3-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [0.95003, 1.45, 0, 0, 0.73611],\n \"41\": [0.95003, 1.45, 0, 0, 0.73611],\n \"47\": [0.95003, 1.45, 0, 0, 1.04445],\n \"91\": [0.95003, 1.45, 0, 0, 0.52778],\n \"92\": [0.95003, 1.45, 0, 0, 1.04445],\n \"93\": [0.95003, 1.45, 0, 0, 0.52778],\n \"123\": [0.95003, 1.45, 0, 0, 0.75],\n \"125\": [0.95003, 1.45, 0, 0, 0.75],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.75, 0, 0, 1.44445],\n \"732\": [0, 0.75, 0, 0, 1.44445],\n \"770\": [0, 0.75, 0, 0, 1.44445],\n \"771\": [0, 0.75, 0, 0, 1.44445],\n \"8730\": [0.95003, 1.45, 0, 0, 1.0],\n \"8968\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8969\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8970\": [0.95003, 1.45, 0, 0, 0.58334],\n \"8971\": [0.95003, 1.45, 0, 0, 0.58334],\n \"10216\": [0.95003, 1.45, 0, 0, 0.75],\n \"10217\": [0.95003, 1.45, 0, 0, 0.75]\n },\n \"Size4-Regular\": {\n \"32\": [0, 0, 0, 0, 0.25],\n \"40\": [1.25003, 1.75, 0, 0, 0.79167],\n \"41\": [1.25003, 1.75, 0, 0, 0.79167],\n \"47\": [1.25003, 1.75, 0, 0, 1.27778],\n \"91\": [1.25003, 1.75, 0, 0, 0.58334],\n \"92\": [1.25003, 1.75, 0, 0, 1.27778],\n \"93\": [1.25003, 1.75, 0, 0, 0.58334],\n \"123\": [1.25003, 1.75, 0, 0, 0.80556],\n \"125\": [1.25003, 1.75, 0, 0, 0.80556],\n \"160\": [0, 0, 0, 0, 0.25],\n \"710\": [0, 0.825, 0, 0, 1.8889],\n \"732\": [0, 0.825, 0, 0, 1.8889],\n \"770\": [0, 0.825, 0, 0, 1.8889],\n \"771\": [0, 0.825, 0, 0, 1.8889],\n \"8730\": [1.25003, 1.75, 0, 0, 1.0],\n \"8968\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8969\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8970\": [1.25003, 1.75, 0, 0, 0.63889],\n \"8971\": [1.25003, 1.75, 0, 0, 0.63889],\n \"9115\": [0.64502, 1.155, 0, 0, 0.875],\n \"9116\": [1e-05, 0.6, 0, 0, 0.875],\n \"9117\": [0.64502, 1.155, 0, 0, 0.875],\n \"9118\": [0.64502, 1.155, 0, 0, 0.875],\n \"9119\": [1e-05, 0.6, 0, 0, 0.875],\n \"9120\": [0.64502, 1.155, 0, 0, 0.875],\n \"9121\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9122\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"9123\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9124\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9125\": [-0.00099, 0.601, 0, 0, 0.66667],\n \"9126\": [0.64502, 1.155, 0, 0, 0.66667],\n \"9127\": [1e-05, 0.9, 0, 0, 0.88889],\n \"9128\": [0.65002, 1.15, 0, 0, 0.88889],\n \"9129\": [0.90001, 0, 0, 0, 0.88889],\n \"9130\": [0, 0.3, 0, 0, 0.88889],\n \"9131\": [1e-05, 0.9, 0, 0, 0.88889],\n \"9132\": [0.65002, 1.15, 0, 0, 0.88889],\n \"9133\": [0.90001, 0, 0, 0, 0.88889],\n \"9143\": [0.88502, 0.915, 0, 0, 1.05556],\n \"10216\": [1.25003, 1.75, 0, 0, 0.80556],\n \"10217\": [1.25003, 1.75, 0, 0, 0.80556],\n \"57344\": [-0.00499, 0.605, 0, 0, 1.05556],\n \"57345\": [-0.00499, 0.605, 0, 0, 1.05556],\n \"57680\": [0, 0.12, 0, 0, 0.45],\n \"57681\": [0, 0.12, 0, 0, 0.45],\n \"57682\": [0, 0.12, 0, 0, 0.45],\n \"57683\": [0, 0.12, 0, 0, 0.45]\n },\n \"Typewriter-Regular\": {\n \"32\": [0, 0, 0, 0, 0.525],\n \"33\": [0, 0.61111, 0, 0, 0.525],\n \"34\": [0, 0.61111, 0, 0, 0.525],\n \"35\": [0, 0.61111, 0, 0, 0.525],\n \"36\": [0.08333, 0.69444, 0, 0, 0.525],\n \"37\": [0.08333, 0.69444, 0, 0, 0.525],\n \"38\": [0, 0.61111, 0, 0, 0.525],\n \"39\": [0, 0.61111, 0, 0, 0.525],\n \"40\": [0.08333, 0.69444, 0, 0, 0.525],\n \"41\": [0.08333, 0.69444, 0, 0, 0.525],\n \"42\": [0, 0.52083, 0, 0, 0.525],\n \"43\": [-0.08056, 0.53055, 0, 0, 0.525],\n \"44\": [0.13889, 0.125, 0, 0, 0.525],\n \"45\": [-0.08056, 0.53055, 0, 0, 0.525],\n \"46\": [0, 0.125, 0, 0, 0.525],\n \"47\": [0.08333, 0.69444, 0, 0, 0.525],\n \"48\": [0, 0.61111, 0, 0, 0.525],\n \"49\": [0, 0.61111, 0, 0, 0.525],\n \"50\": [0, 0.61111, 0, 0, 0.525],\n \"51\": [0, 0.61111, 0, 0, 0.525],\n \"52\": [0, 0.61111, 0, 0, 0.525],\n \"53\": [0, 0.61111, 0, 0, 0.525],\n \"54\": [0, 0.61111, 0, 0, 0.525],\n \"55\": [0, 0.61111, 0, 0, 0.525],\n \"56\": [0, 0.61111, 0, 0, 0.525],\n \"57\": [0, 0.61111, 0, 0, 0.525],\n \"58\": [0, 0.43056, 0, 0, 0.525],\n \"59\": [0.13889, 0.43056, 0, 0, 0.525],\n \"60\": [-0.05556, 0.55556, 0, 0, 0.525],\n \"61\": [-0.19549, 0.41562, 0, 0, 0.525],\n \"62\": [-0.05556, 0.55556, 0, 0, 0.525],\n \"63\": [0, 0.61111, 0, 0, 0.525],\n \"64\": [0, 0.61111, 0, 0, 0.525],\n \"65\": [0, 0.61111, 0, 0, 0.525],\n \"66\": [0, 0.61111, 0, 0, 0.525],\n \"67\": [0, 0.61111, 0, 0, 0.525],\n \"68\": [0, 0.61111, 0, 0, 0.525],\n \"69\": [0, 0.61111, 0, 0, 0.525],\n \"70\": [0, 0.61111, 0, 0, 0.525],\n \"71\": [0, 0.61111, 0, 0, 0.525],\n \"72\": [0, 0.61111, 0, 0, 0.525],\n \"73\": [0, 0.61111, 0, 0, 0.525],\n \"74\": [0, 0.61111, 0, 0, 0.525],\n \"75\": [0, 0.61111, 0, 0, 0.525],\n \"76\": [0, 0.61111, 0, 0, 0.525],\n \"77\": [0, 0.61111, 0, 0, 0.525],\n \"78\": [0, 0.61111, 0, 0, 0.525],\n \"79\": [0, 0.61111, 0, 0, 0.525],\n \"80\": [0, 0.61111, 0, 0, 0.525],\n \"81\": [0.13889, 0.61111, 0, 0, 0.525],\n \"82\": [0, 0.61111, 0, 0, 0.525],\n \"83\": [0, 0.61111, 0, 0, 0.525],\n \"84\": [0, 0.61111, 0, 0, 0.525],\n \"85\": [0, 0.61111, 0, 0, 0.525],\n \"86\": [0, 0.61111, 0, 0, 0.525],\n \"87\": [0, 0.61111, 0, 0, 0.525],\n \"88\": [0, 0.61111, 0, 0, 0.525],\n \"89\": [0, 0.61111, 0, 0, 0.525],\n \"90\": [0, 0.61111, 0, 0, 0.525],\n \"91\": [0.08333, 0.69444, 0, 0, 0.525],\n \"92\": [0.08333, 0.69444, 0, 0, 0.525],\n \"93\": [0.08333, 0.69444, 0, 0, 0.525],\n \"94\": [0, 0.61111, 0, 0, 0.525],\n \"95\": [0.09514, 0, 0, 0, 0.525],\n \"96\": [0, 0.61111, 0, 0, 0.525],\n \"97\": [0, 0.43056, 0, 0, 0.525],\n \"98\": [0, 0.61111, 0, 0, 0.525],\n \"99\": [0, 0.43056, 0, 0, 0.525],\n \"100\": [0, 0.61111, 0, 0, 0.525],\n \"101\": [0, 0.43056, 0, 0, 0.525],\n \"102\": [0, 0.61111, 0, 0, 0.525],\n \"103\": [0.22222, 0.43056, 0, 0, 0.525],\n \"104\": [0, 0.61111, 0, 0, 0.525],\n \"105\": [0, 0.61111, 0, 0, 0.525],\n \"106\": [0.22222, 0.61111, 0, 0, 0.525],\n \"107\": [0, 0.61111, 0, 0, 0.525],\n \"108\": [0, 0.61111, 0, 0, 0.525],\n \"109\": [0, 0.43056, 0, 0, 0.525],\n \"110\": [0, 0.43056, 0, 0, 0.525],\n \"111\": [0, 0.43056, 0, 0, 0.525],\n \"112\": [0.22222, 0.43056, 0, 0, 0.525],\n \"113\": [0.22222, 0.43056, 0, 0, 0.525],\n \"114\": [0, 0.43056, 0, 0, 0.525],\n \"115\": [0, 0.43056, 0, 0, 0.525],\n \"116\": [0, 0.55358, 0, 0, 0.525],\n \"117\": [0, 0.43056, 0, 0, 0.525],\n \"118\": [0, 0.43056, 0, 0, 0.525],\n \"119\": [0, 0.43056, 0, 0, 0.525],\n \"120\": [0, 0.43056, 0, 0, 0.525],\n \"121\": [0.22222, 0.43056, 0, 0, 0.525],\n \"122\": [0, 0.43056, 0, 0, 0.525],\n \"123\": [0.08333, 0.69444, 0, 0, 0.525],\n \"124\": [0.08333, 0.69444, 0, 0, 0.525],\n \"125\": [0.08333, 0.69444, 0, 0, 0.525],\n \"126\": [0, 0.61111, 0, 0, 0.525],\n \"127\": [0, 0.61111, 0, 0, 0.525],\n \"160\": [0, 0, 0, 0, 0.525],\n \"176\": [0, 0.61111, 0, 0, 0.525],\n \"184\": [0.19445, 0, 0, 0, 0.525],\n \"305\": [0, 0.43056, 0, 0, 0.525],\n \"567\": [0.22222, 0.43056, 0, 0, 0.525],\n \"711\": [0, 0.56597, 0, 0, 0.525],\n \"713\": [0, 0.56555, 0, 0, 0.525],\n \"714\": [0, 0.61111, 0, 0, 0.525],\n \"715\": [0, 0.61111, 0, 0, 0.525],\n \"728\": [0, 0.61111, 0, 0, 0.525],\n \"730\": [0, 0.61111, 0, 0, 0.525],\n \"770\": [0, 0.61111, 0, 0, 0.525],\n \"771\": [0, 0.61111, 0, 0, 0.525],\n \"776\": [0, 0.61111, 0, 0, 0.525],\n \"915\": [0, 0.61111, 0, 0, 0.525],\n \"916\": [0, 0.61111, 0, 0, 0.525],\n \"920\": [0, 0.61111, 0, 0, 0.525],\n \"923\": [0, 0.61111, 0, 0, 0.525],\n \"926\": [0, 0.61111, 0, 0, 0.525],\n \"928\": [0, 0.61111, 0, 0, 0.525],\n \"931\": [0, 0.61111, 0, 0, 0.525],\n \"933\": [0, 0.61111, 0, 0, 0.525],\n \"934\": [0, 0.61111, 0, 0, 0.525],\n \"936\": [0, 0.61111, 0, 0, 0.525],\n \"937\": [0, 0.61111, 0, 0, 0.525],\n \"8216\": [0, 0.61111, 0, 0, 0.525],\n \"8217\": [0, 0.61111, 0, 0, 0.525],\n \"8242\": [0, 0.61111, 0, 0, 0.525],\n \"9251\": [0.11111, 0.21944, 0, 0, 0.525]\n }\n};\n\n/**\n * This file contains metrics regarding fonts and individual symbols. The sigma\n * and xi variables, as well as the metricMap map contain data extracted from\n * TeX, TeX font metrics, and the TTF files. These data are then exposed via the\n * `metrics` variable and the getCharacterMetrics function.\n */\n// In TeX, there are actually three sets of dimensions, one for each of\n// textstyle (size index 5 and higher: >=9pt), scriptstyle (size index 3 and 4:\n// 7-8pt), and scriptscriptstyle (size index 1 and 2: 5-6pt). These are\n// provided in the arrays below, in that order.\n//\n// The font metrics are stored in fonts cmsy10, cmsy7, and cmsy5 respectively.\n// This was determined by running the following script:\n//\n// latex -interaction=nonstopmode \\\n// '\\documentclass{article}\\usepackage{amsmath}\\begin{document}' \\\n// '$a$ \\expandafter\\show\\the\\textfont2' \\\n// '\\expandafter\\show\\the\\scriptfont2' \\\n// '\\expandafter\\show\\the\\scriptscriptfont2' \\\n// '\\stop'\n//\n// The metrics themselves were retrieved using the following commands:\n//\n// tftopl cmsy10\n// tftopl cmsy7\n// tftopl cmsy5\n//\n// The output of each of these commands is quite lengthy. The only part we\n// care about is the FONTDIMEN section. Each value is measured in EMs.\nvar sigmasAndXis = {\n slant: [0.250, 0.250, 0.250],\n // sigma1\n space: [0.000, 0.000, 0.000],\n // sigma2\n stretch: [0.000, 0.000, 0.000],\n // sigma3\n shrink: [0.000, 0.000, 0.000],\n // sigma4\n xHeight: [0.431, 0.431, 0.431],\n // sigma5\n quad: [1.000, 1.171, 1.472],\n // sigma6\n extraSpace: [0.000, 0.000, 0.000],\n // sigma7\n num1: [0.677, 0.732, 0.925],\n // sigma8\n num2: [0.394, 0.384, 0.387],\n // sigma9\n num3: [0.444, 0.471, 0.504],\n // sigma10\n denom1: [0.686, 0.752, 1.025],\n // sigma11\n denom2: [0.345, 0.344, 0.532],\n // sigma12\n sup1: [0.413, 0.503, 0.504],\n // sigma13\n sup2: [0.363, 0.431, 0.404],\n // sigma14\n sup3: [0.289, 0.286, 0.294],\n // sigma15\n sub1: [0.150, 0.143, 0.200],\n // sigma16\n sub2: [0.247, 0.286, 0.400],\n // sigma17\n supDrop: [0.386, 0.353, 0.494],\n // sigma18\n subDrop: [0.050, 0.071, 0.100],\n // sigma19\n delim1: [2.390, 1.700, 1.980],\n // sigma20\n delim2: [1.010, 1.157, 1.420],\n // sigma21\n axisHeight: [0.250, 0.250, 0.250],\n // sigma22\n // These font metrics are extracted from TeX by using tftopl on cmex10.tfm;\n // they correspond to the font parameters of the extension fonts (family 3).\n // See the TeXbook, page 441. In AMSTeX, the extension fonts scale; to\n // match cmex7, we'd use cmex7.tfm values for script and scriptscript\n // values.\n defaultRuleThickness: [0.04, 0.049, 0.049],\n // xi8; cmex7: 0.049\n bigOpSpacing1: [0.111, 0.111, 0.111],\n // xi9\n bigOpSpacing2: [0.166, 0.166, 0.166],\n // xi10\n bigOpSpacing3: [0.2, 0.2, 0.2],\n // xi11\n bigOpSpacing4: [0.6, 0.611, 0.611],\n // xi12; cmex7: 0.611\n bigOpSpacing5: [0.1, 0.143, 0.143],\n // xi13; cmex7: 0.143\n // The \\sqrt rule width is taken from the height of the surd character.\n // Since we use the same font at all sizes, this thickness doesn't scale.\n sqrtRuleThickness: [0.04, 0.04, 0.04],\n // This value determines how large a pt is, for metrics which are defined\n // in terms of pts.\n // This value is also used in katex.less; if you change it make sure the\n // values match.\n ptPerEm: [10.0, 10.0, 10.0],\n // The space between adjacent `|` columns in an array definition. From\n // `\\showthe\\doublerulesep` in LaTeX. Equals 2.0 / ptPerEm.\n doubleRuleSep: [0.2, 0.2, 0.2],\n // The width of separator lines in {array} environments. From\n // `\\showthe\\arrayrulewidth` in LaTeX. Equals 0.4 / ptPerEm.\n arrayRuleWidth: [0.04, 0.04, 0.04],\n // Two values from LaTeX source2e:\n fboxsep: [0.3, 0.3, 0.3],\n // 3 pt / ptPerEm\n fboxrule: [0.04, 0.04, 0.04] // 0.4 pt / ptPerEm\n\n}; // This map contains a mapping from font name and character code to character\n// should have Latin-1 and Cyrillic characters, but may not depending on the\n// operating system. The metrics do not account for extra height from the\n// accents. In the case of Cyrillic characters which have both ascenders and\n// descenders we prefer approximations with ascenders, primarily to prevent\n// the fraction bar or root line from intersecting the glyph.\n// TODO(kevinb) allow union of multiple glyph metrics for better accuracy.\n\nvar extraCharacterMap = {\n // Latin-1\n 'Å': 'A',\n 'Ð': 'D',\n 'Þ': 'o',\n 'å': 'a',\n 'ð': 'd',\n 'þ': 'o',\n // Cyrillic\n 'А': 'A',\n 'Б': 'B',\n 'В': 'B',\n 'Г': 'F',\n 'Д': 'A',\n 'Е': 'E',\n 'Ж': 'K',\n 'З': '3',\n 'И': 'N',\n 'Й': 'N',\n 'К': 'K',\n 'Л': 'N',\n 'М': 'M',\n 'Н': 'H',\n 'О': 'O',\n 'П': 'N',\n 'Р': 'P',\n 'С': 'C',\n 'Т': 'T',\n 'У': 'y',\n 'Ф': 'O',\n 'Х': 'X',\n 'Ц': 'U',\n 'Ч': 'h',\n 'Ш': 'W',\n 'Щ': 'W',\n 'Ъ': 'B',\n 'Ы': 'X',\n 'Ь': 'B',\n 'Э': '3',\n 'Ю': 'X',\n 'Я': 'R',\n 'а': 'a',\n 'б': 'b',\n 'в': 'a',\n 'г': 'r',\n 'д': 'y',\n 'е': 'e',\n 'ж': 'm',\n 'з': 'e',\n 'и': 'n',\n 'й': 'n',\n 'к': 'n',\n 'л': 'n',\n 'м': 'm',\n 'н': 'n',\n 'о': 'o',\n 'п': 'n',\n 'р': 'p',\n 'с': 'c',\n 'т': 'o',\n 'у': 'y',\n 'ф': 'b',\n 'х': 'x',\n 'ц': 'n',\n 'ч': 'n',\n 'ш': 'w',\n 'щ': 'w',\n 'ъ': 'a',\n 'ы': 'm',\n 'ь': 'a',\n 'э': 'e',\n 'ю': 'm',\n 'я': 'r'\n};\n\n/**\n * This function adds new font metrics to default metricMap\n * It can also override existing metrics\n */\nfunction setFontMetrics(fontName, metrics) {\n fontMetricsData[fontName] = metrics;\n}\n/**\n * This function is a convenience function for looking up information in the\n * metricMap table. It takes a character as a string, and a font.\n *\n * Note: the `width` property may be undefined if fontMetricsData.js wasn't\n * built using `Make extended_metrics`.\n */\n\nfunction getCharacterMetrics(character, font, mode) {\n if (!fontMetricsData[font]) {\n throw new Error(\"Font metrics not found for font: \" + font + \".\");\n }\n\n var ch = character.charCodeAt(0);\n var metrics = fontMetricsData[font][ch];\n\n if (!metrics && character[0] in extraCharacterMap) {\n ch = extraCharacterMap[character[0]].charCodeAt(0);\n metrics = fontMetricsData[font][ch];\n }\n\n if (!metrics && mode === 'text') {\n // We don't typically have font metrics for Asian scripts.\n // But since we support them in text mode, we need to return\n // some sort of metrics.\n // So if the character is in a script we support but we\n // don't have metrics for it, just use the metrics for\n // the Latin capital letter M. This is close enough because\n // we (currently) only care about the height of the glyph\n // not its width.\n if (supportedCodepoint(ch)) {\n metrics = fontMetricsData[font][77]; // 77 is the charcode for 'M'\n }\n }\n\n if (metrics) {\n return {\n depth: metrics[0],\n height: metrics[1],\n italic: metrics[2],\n skew: metrics[3],\n width: metrics[4]\n };\n }\n}\nvar fontMetricsBySizeIndex = {};\n/**\n * Get the font metrics for a given size.\n */\n\nfunction getGlobalMetrics(size) {\n var sizeIndex;\n\n if (size >= 5) {\n sizeIndex = 0;\n } else if (size >= 3) {\n sizeIndex = 1;\n } else {\n sizeIndex = 2;\n }\n\n if (!fontMetricsBySizeIndex[sizeIndex]) {\n var metrics = fontMetricsBySizeIndex[sizeIndex] = {\n cssEmPerMu: sigmasAndXis.quad[sizeIndex] / 18\n };\n\n for (var key in sigmasAndXis) {\n if (sigmasAndXis.hasOwnProperty(key)) {\n metrics[key] = sigmasAndXis[key][sizeIndex];\n }\n }\n }\n\n return fontMetricsBySizeIndex[sizeIndex];\n}\n\n/**\n * This file contains information about the options that the Parser carries\n * around with it while parsing. Data is held in an `Options` object, and when\n * recursing, a new `Options` object can be created with the `.with*` and\n * `.reset` functions.\n */\nvar sizeStyleMap = [// Each element contains [textsize, scriptsize, scriptscriptsize].\n// The size mappings are taken from TeX with \\normalsize=10pt.\n[1, 1, 1], // size1: [5, 5, 5] \\tiny\n[2, 1, 1], // size2: [6, 5, 5]\n[3, 1, 1], // size3: [7, 5, 5] \\scriptsize\n[4, 2, 1], // size4: [8, 6, 5] \\footnotesize\n[5, 2, 1], // size5: [9, 6, 5] \\small\n[6, 3, 1], // size6: [10, 7, 5] \\normalsize\n[7, 4, 2], // size7: [12, 8, 6] \\large\n[8, 6, 3], // size8: [14.4, 10, 7] \\Large\n[9, 7, 6], // size9: [17.28, 12, 10] \\LARGE\n[10, 8, 7], // size10: [20.74, 14.4, 12] \\huge\n[11, 10, 9] // size11: [24.88, 20.74, 17.28] \\HUGE\n];\nvar sizeMultipliers = [// fontMetrics.js:getGlobalMetrics also uses size indexes, so if\n// you change size indexes, change that function.\n0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.44, 1.728, 2.074, 2.488];\n\nvar sizeAtStyle = function sizeAtStyle(size, style) {\n return style.size < 2 ? size : sizeStyleMap[size - 1][style.size - 1];\n}; // In these types, \"\" (empty string) means \"no change\".\n\n\n/**\n * This is the main options class. It contains the current style, size, color,\n * and font.\n *\n * Options objects should not be modified. To create a new Options with\n * different properties, call a `.having*` method.\n */\nclass Options {\n // A font family applies to a group of fonts (i.e. SansSerif), while a font\n // represents a specific font (i.e. SansSerif Bold).\n // See: https://tex.stackexchange.com/questions/22350/difference-between-textrm-and-mathrm\n\n /**\n * The base size index.\n */\n constructor(data) {\n this.style = void 0;\n this.color = void 0;\n this.size = void 0;\n this.textSize = void 0;\n this.phantom = void 0;\n this.font = void 0;\n this.fontFamily = void 0;\n this.fontWeight = void 0;\n this.fontShape = void 0;\n this.sizeMultiplier = void 0;\n this.maxSize = void 0;\n this.minRuleThickness = void 0;\n this._fontMetrics = void 0;\n this.style = data.style;\n this.color = data.color;\n this.size = data.size || Options.BASESIZE;\n this.textSize = data.textSize || this.size;\n this.phantom = !!data.phantom;\n this.font = data.font || \"\";\n this.fontFamily = data.fontFamily || \"\";\n this.fontWeight = data.fontWeight || '';\n this.fontShape = data.fontShape || '';\n this.sizeMultiplier = sizeMultipliers[this.size - 1];\n this.maxSize = data.maxSize;\n this.minRuleThickness = data.minRuleThickness;\n this._fontMetrics = undefined;\n }\n /**\n * Returns a new options object with the same properties as \"this\". Properties\n * from \"extension\" will be copied to the new options object.\n */\n\n\n extend(extension) {\n var data = {\n style: this.style,\n size: this.size,\n textSize: this.textSize,\n color: this.color,\n phantom: this.phantom,\n font: this.font,\n fontFamily: this.fontFamily,\n fontWeight: this.fontWeight,\n fontShape: this.fontShape,\n maxSize: this.maxSize,\n minRuleThickness: this.minRuleThickness\n };\n\n for (var key in extension) {\n if (extension.hasOwnProperty(key)) {\n data[key] = extension[key];\n }\n }\n\n return new Options(data);\n }\n /**\n * Return an options object with the given style. If `this.style === style`,\n * returns `this`.\n */\n\n\n havingStyle(style) {\n if (this.style === style) {\n return this;\n } else {\n return this.extend({\n style: style,\n size: sizeAtStyle(this.textSize, style)\n });\n }\n }\n /**\n * Return an options object with a cramped version of the current style. If\n * the current style is cramped, returns `this`.\n */\n\n\n havingCrampedStyle() {\n return this.havingStyle(this.style.cramp());\n }\n /**\n * Return an options object with the given size and in at least `\\textstyle`.\n * Returns `this` if appropriate.\n */\n\n\n havingSize(size) {\n if (this.size === size && this.textSize === size) {\n return this;\n } else {\n return this.extend({\n style: this.style.text(),\n size: size,\n textSize: size,\n sizeMultiplier: sizeMultipliers[size - 1]\n });\n }\n }\n /**\n * Like `this.havingSize(BASESIZE).havingStyle(style)`. If `style` is omitted,\n * changes to at least `\\textstyle`.\n */\n\n\n havingBaseStyle(style) {\n style = style || this.style.text();\n var wantSize = sizeAtStyle(Options.BASESIZE, style);\n\n if (this.size === wantSize && this.textSize === Options.BASESIZE && this.style === style) {\n return this;\n } else {\n return this.extend({\n style: style,\n size: wantSize\n });\n }\n }\n /**\n * Remove the effect of sizing changes such as \\Huge.\n * Keep the effect of the current style, such as \\scriptstyle.\n */\n\n\n havingBaseSizing() {\n var size;\n\n switch (this.style.id) {\n case 4:\n case 5:\n size = 3; // normalsize in scriptstyle\n\n break;\n\n case 6:\n case 7:\n size = 1; // normalsize in scriptscriptstyle\n\n break;\n\n default:\n size = 6;\n // normalsize in textstyle or displaystyle\n }\n\n return this.extend({\n style: this.style.text(),\n size: size\n });\n }\n /**\n * Create a new options object with the given color.\n */\n\n\n withColor(color) {\n return this.extend({\n color: color\n });\n }\n /**\n * Create a new options object with \"phantom\" set to true.\n */\n\n\n withPhantom() {\n return this.extend({\n phantom: true\n });\n }\n /**\n * Creates a new options object with the given math font or old text font.\n * @type {[type]}\n */\n\n\n withFont(font) {\n return this.extend({\n font\n });\n }\n /**\n * Create a new options objects with the given fontFamily.\n */\n\n\n withTextFontFamily(fontFamily) {\n return this.extend({\n fontFamily,\n font: \"\"\n });\n }\n /**\n * Creates a new options object with the given font weight\n */\n\n\n withTextFontWeight(fontWeight) {\n return this.extend({\n fontWeight,\n font: \"\"\n });\n }\n /**\n * Creates a new options object with the given font weight\n */\n\n\n withTextFontShape(fontShape) {\n return this.extend({\n fontShape,\n font: \"\"\n });\n }\n /**\n * Return the CSS sizing classes required to switch from enclosing options\n * `oldOptions` to `this`. Returns an array of classes.\n */\n\n\n sizingClasses(oldOptions) {\n if (oldOptions.size !== this.size) {\n return [\"sizing\", \"reset-size\" + oldOptions.size, \"size\" + this.size];\n } else {\n return [];\n }\n }\n /**\n * Return the CSS sizing classes required to switch to the base size. Like\n * `this.havingSize(BASESIZE).sizingClasses(this)`.\n */\n\n\n baseSizingClasses() {\n if (this.size !== Options.BASESIZE) {\n return [\"sizing\", \"reset-size\" + this.size, \"size\" + Options.BASESIZE];\n } else {\n return [];\n }\n }\n /**\n * Return the font metrics for this size.\n */\n\n\n fontMetrics() {\n if (!this._fontMetrics) {\n this._fontMetrics = getGlobalMetrics(this.size);\n }\n\n return this._fontMetrics;\n }\n /**\n * Gets the CSS color of the current options object\n */\n\n\n getColor() {\n if (this.phantom) {\n return \"transparent\";\n } else {\n return this.color;\n }\n }\n\n}\n\nOptions.BASESIZE = 6;\n\n/**\n * This file does conversion between units. In particular, it provides\n * calculateSize to convert other units into ems.\n */\n// Thus, multiplying a length by this number converts the length from units\n// into pts. Dividing the result by ptPerEm gives the number of ems\n// *assuming* a font size of ptPerEm (normal size, normal style).\n\nvar ptPerUnit = {\n // https://en.wikibooks.org/wiki/LaTeX/Lengths and\n // https://tex.stackexchange.com/a/8263\n \"pt\": 1,\n // TeX point\n \"mm\": 7227 / 2540,\n // millimeter\n \"cm\": 7227 / 254,\n // centimeter\n \"in\": 72.27,\n // inch\n \"bp\": 803 / 800,\n // big (PostScript) points\n \"pc\": 12,\n // pica\n \"dd\": 1238 / 1157,\n // didot\n \"cc\": 14856 / 1157,\n // cicero (12 didot)\n \"nd\": 685 / 642,\n // new didot\n \"nc\": 1370 / 107,\n // new cicero (12 new didot)\n \"sp\": 1 / 65536,\n // scaled point (TeX's internal smallest unit)\n // https://tex.stackexchange.com/a/41371\n \"px\": 803 / 800 // \\pdfpxdimen defaults to 1 bp in pdfTeX and LuaTeX\n\n}; // Dictionary of relative units, for fast validity testing.\n\nvar relativeUnit = {\n \"ex\": true,\n \"em\": true,\n \"mu\": true\n};\n\n/**\n * Determine whether the specified unit (either a string defining the unit\n * or a \"size\" parse node containing a unit field) is valid.\n */\nvar validUnit = function validUnit(unit) {\n if (typeof unit !== \"string\") {\n unit = unit.unit;\n }\n\n return unit in ptPerUnit || unit in relativeUnit || unit === \"ex\";\n};\n/*\n * Convert a \"size\" parse node (with numeric \"number\" and string \"unit\" fields,\n * as parsed by functions.js argType \"size\") into a CSS em value for the\n * current style/scale. `options` gives the current options.\n */\n\nvar calculateSize = function calculateSize(sizeValue, options) {\n var scale;\n\n if (sizeValue.unit in ptPerUnit) {\n // Absolute units\n scale = ptPerUnit[sizeValue.unit] // Convert unit to pt\n / options.fontMetrics().ptPerEm // Convert pt to CSS em\n / options.sizeMultiplier; // Unscale to make absolute units\n } else if (sizeValue.unit === \"mu\") {\n // `mu` units scale with scriptstyle/scriptscriptstyle.\n scale = options.fontMetrics().cssEmPerMu;\n } else {\n // Other relative units always refer to the *textstyle* font\n // in the current size.\n var unitOptions;\n\n if (options.style.isTight()) {\n // isTight() means current style is script/scriptscript.\n unitOptions = options.havingStyle(options.style.text());\n } else {\n unitOptions = options;\n } // TODO: In TeX these units are relative to the quad of the current\n // *text* font, e.g. cmr10. KaTeX instead uses values from the\n // comparably-sized *Computer Modern symbol* font. At 10pt, these\n // match. At 7pt and 5pt, they differ: cmr7=1.138894, cmsy7=1.170641;\n // cmr5=1.361133, cmsy5=1.472241. Consider $\\scriptsize a\\kern1emb$.\n // TeX \\showlists shows a kern of 1.13889 * fontsize;\n // KaTeX shows a kern of 1.171 * fontsize.\n\n\n if (sizeValue.unit === \"ex\") {\n scale = unitOptions.fontMetrics().xHeight;\n } else if (sizeValue.unit === \"em\") {\n scale = unitOptions.fontMetrics().quad;\n } else {\n throw new ParseError(\"Invalid unit: '\" + sizeValue.unit + \"'\");\n }\n\n if (unitOptions !== options) {\n scale *= unitOptions.sizeMultiplier / options.sizeMultiplier;\n }\n }\n\n return Math.min(sizeValue.number * scale, options.maxSize);\n};\n/**\n * Round `n` to 4 decimal places, or to the nearest 1/10,000th em. See\n * https://github.com/KaTeX/KaTeX/pull/2460.\n */\n\nvar makeEm = function makeEm(n) {\n return +n.toFixed(4) + \"em\";\n};\n\n/**\n * These objects store the data about the DOM nodes we create, as well as some\n * extra data. They can then be transformed into real DOM nodes with the\n * `toNode` function or HTML markup using `toMarkup`. They are useful for both\n * storing extra properties on the nodes, as well as providing a way to easily\n * work with the DOM.\n *\n * Similar functions for working with MathML nodes exist in mathMLTree.js.\n *\n * TODO: refactor `span` and `anchor` into common superclass when\n * target environments support class inheritance\n */\n\n/**\n * Create an HTML className based on a list of classes. In addition to joining\n * with spaces, we also remove empty classes.\n */\nvar createClass = function createClass(classes) {\n return classes.filter(cls => cls).join(\" \");\n};\n\nvar initNode = function initNode(classes, options, style) {\n this.classes = classes || [];\n this.attributes = {};\n this.height = 0;\n this.depth = 0;\n this.maxFontSize = 0;\n this.style = style || {};\n\n if (options) {\n if (options.style.isTight()) {\n this.classes.push(\"mtight\");\n }\n\n var color = options.getColor();\n\n if (color) {\n this.style.color = color;\n }\n }\n};\n/**\n * Convert into an HTML node\n */\n\n\nvar toNode = function toNode(tagName) {\n var node = document.createElement(tagName); // Apply the class\n\n node.className = createClass(this.classes); // Apply inline styles\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n // $FlowFixMe Flow doesn't seem to understand span.style's type.\n node.style[style] = this.style[style];\n }\n } // Apply attributes\n\n\n for (var attr in this.attributes) {\n if (this.attributes.hasOwnProperty(attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n } // Append the children, also as HTML nodes\n\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n};\n/**\n * Convert into an HTML markup string\n */\n\n\nvar toMarkup = function toMarkup(tagName) {\n var markup = \"<\" + tagName; // Add the class\n\n if (this.classes.length) {\n markup += \" class=\\\"\" + utils.escape(createClass(this.classes)) + \"\\\"\";\n }\n\n var styles = \"\"; // Add the styles, after hyphenation\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n } // Add the attributes\n\n\n for (var attr in this.attributes) {\n if (this.attributes.hasOwnProperty(attr)) {\n markup += \" \" + attr + \"=\\\"\" + utils.escape(this.attributes[attr]) + \"\\\"\";\n }\n }\n\n markup += \">\"; // Add the markup of the children, also as markup\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"</\" + tagName + \">\";\n return markup;\n}; // Making the type below exact with all optional fields doesn't work due to\n// - https://github.com/facebook/flow/issues/4582\n// - https://github.com/facebook/flow/issues/5688\n// However, since *all* fields are optional, $Shape<> works as suggested in 5688\n// above.\n// This type does not include all CSS properties. Additional properties should\n// be added as needed.\n\n\n/**\n * This node represents a span node, with a className, a list of children, and\n * an inline style. It also contains information about its height, depth, and\n * maxFontSize.\n *\n * Represents two types with different uses: SvgSpan to wrap an SVG and DomSpan\n * otherwise. This typesafety is important when HTML builders access a span's\n * children.\n */\nclass Span {\n constructor(classes, children, options, style) {\n this.children = void 0;\n this.attributes = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.width = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n initNode.call(this, classes, options, style);\n this.children = children || [];\n }\n /**\n * Sets an arbitrary attribute on the span. Warning: use this wisely. Not\n * all browsers support attributes the same, and having too many custom\n * attributes is probably bad.\n */\n\n\n setAttribute(attribute, value) {\n this.attributes[attribute] = value;\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n\n toNode() {\n return toNode.call(this, \"span\");\n }\n\n toMarkup() {\n return toMarkup.call(this, \"span\");\n }\n\n}\n/**\n * This node represents an anchor (<a>) element with a hyperlink. See `span`\n * for further details.\n */\n\nclass Anchor {\n constructor(href, classes, children, options) {\n this.children = void 0;\n this.attributes = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n initNode.call(this, classes, options);\n this.children = children || [];\n this.setAttribute('href', href);\n }\n\n setAttribute(attribute, value) {\n this.attributes[attribute] = value;\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n\n toNode() {\n return toNode.call(this, \"a\");\n }\n\n toMarkup() {\n return toMarkup.call(this, \"a\");\n }\n\n}\n/**\n * This node represents an image embed (<img>) element.\n */\n\nclass Img {\n constructor(src, alt, style) {\n this.src = void 0;\n this.alt = void 0;\n this.classes = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.maxFontSize = void 0;\n this.style = void 0;\n this.alt = alt;\n this.src = src;\n this.classes = [\"mord\"];\n this.style = style;\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n\n toNode() {\n var node = document.createElement(\"img\");\n node.src = this.src;\n node.alt = this.alt;\n node.className = \"mord\"; // Apply inline styles\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n // $FlowFixMe\n node.style[style] = this.style[style];\n }\n }\n\n return node;\n }\n\n toMarkup() {\n var markup = \"<img src='\" + this.src + \" 'alt='\" + this.alt + \"' \"; // Add the styles, after hyphenation\n\n var styles = \"\";\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n }\n\n markup += \"'/>\";\n return markup;\n }\n\n}\nvar iCombinations = {\n 'î': '\\u0131\\u0302',\n 'ï': '\\u0131\\u0308',\n 'í': '\\u0131\\u0301',\n // 'ī': '\\u0131\\u0304', // enable when we add Extended Latin\n 'ì': '\\u0131\\u0300'\n};\n/**\n * A symbol node contains information about a single symbol. It either renders\n * to a single text node, or a span with a single text node in it, depending on\n * whether it has CSS classes, styles, or needs italic correction.\n */\n\nclass SymbolNode {\n constructor(text, height, depth, italic, skew, width, classes, style) {\n this.text = void 0;\n this.height = void 0;\n this.depth = void 0;\n this.italic = void 0;\n this.skew = void 0;\n this.width = void 0;\n this.maxFontSize = void 0;\n this.classes = void 0;\n this.style = void 0;\n this.text = text;\n this.height = height || 0;\n this.depth = depth || 0;\n this.italic = italic || 0;\n this.skew = skew || 0;\n this.width = width || 0;\n this.classes = classes || [];\n this.style = style || {};\n this.maxFontSize = 0; // Mark text from non-Latin scripts with specific classes so that we\n // can specify which fonts to use. This allows us to render these\n // characters with a serif font in situations where the browser would\n // either default to a sans serif or render a placeholder character.\n // We use CSS class names like cjk_fallback, hangul_fallback and\n // brahmic_fallback. See ./unicodeScripts.js for the set of possible\n // script names\n\n var script = scriptFromCodepoint(this.text.charCodeAt(0));\n\n if (script) {\n this.classes.push(script + \"_fallback\");\n }\n\n if (/[îïíì]/.test(this.text)) {\n // add ī when we add Extended Latin\n this.text = iCombinations[this.text];\n }\n }\n\n hasClass(className) {\n return utils.contains(this.classes, className);\n }\n /**\n * Creates a text node or span from a symbol node. Note that a span is only\n * created if it is needed.\n */\n\n\n toNode() {\n var node = document.createTextNode(this.text);\n var span = null;\n\n if (this.italic > 0) {\n span = document.createElement(\"span\");\n span.style.marginRight = makeEm(this.italic);\n }\n\n if (this.classes.length > 0) {\n span = span || document.createElement(\"span\");\n span.className = createClass(this.classes);\n }\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n span = span || document.createElement(\"span\"); // $FlowFixMe Flow doesn't seem to understand span.style's type.\n\n span.style[style] = this.style[style];\n }\n }\n\n if (span) {\n span.appendChild(node);\n return span;\n } else {\n return node;\n }\n }\n /**\n * Creates markup for a symbol node.\n */\n\n\n toMarkup() {\n // TODO(alpert): More duplication than I'd like from\n // span.prototype.toMarkup and symbolNode.prototype.toNode...\n var needsSpan = false;\n var markup = \"<span\";\n\n if (this.classes.length) {\n needsSpan = true;\n markup += \" class=\\\"\";\n markup += utils.escape(createClass(this.classes));\n markup += \"\\\"\";\n }\n\n var styles = \"\";\n\n if (this.italic > 0) {\n styles += \"margin-right:\" + this.italic + \"em;\";\n }\n\n for (var style in this.style) {\n if (this.style.hasOwnProperty(style)) {\n styles += utils.hyphenate(style) + \":\" + this.style[style] + \";\";\n }\n }\n\n if (styles) {\n needsSpan = true;\n markup += \" style=\\\"\" + utils.escape(styles) + \"\\\"\";\n }\n\n var escaped = utils.escape(this.text);\n\n if (needsSpan) {\n markup += \">\";\n markup += escaped;\n markup += \"</span>\";\n return markup;\n } else {\n return escaped;\n }\n }\n\n}\n/**\n * SVG nodes are used to render stretchy wide elements.\n */\n\nclass SvgNode {\n constructor(children, attributes) {\n this.children = void 0;\n this.attributes = void 0;\n this.children = children || [];\n this.attributes = attributes || {};\n }\n\n toNode() {\n var svgNS = \"http://www.w3.org/2000/svg\";\n var node = document.createElementNS(svgNS, \"svg\"); // Apply attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n }\n\n toMarkup() {\n var markup = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\"\"; // Apply attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"='\" + this.attributes[attr] + \"'\";\n }\n }\n\n markup += \">\";\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"</svg>\";\n return markup;\n }\n\n}\nclass PathNode {\n constructor(pathName, alternate) {\n this.pathName = void 0;\n this.alternate = void 0;\n this.pathName = pathName;\n this.alternate = alternate; // Used only for \\sqrt, \\phase, & tall delims\n }\n\n toNode() {\n var svgNS = \"http://www.w3.org/2000/svg\";\n var node = document.createElementNS(svgNS, \"path\");\n\n if (this.alternate) {\n node.setAttribute(\"d\", this.alternate);\n } else {\n node.setAttribute(\"d\", path[this.pathName]);\n }\n\n return node;\n }\n\n toMarkup() {\n if (this.alternate) {\n return \"<path d='\" + this.alternate + \"'/>\";\n } else {\n return \"<path d='\" + path[this.pathName] + \"'/>\";\n }\n }\n\n}\nclass LineNode {\n constructor(attributes) {\n this.attributes = void 0;\n this.attributes = attributes || {};\n }\n\n toNode() {\n var svgNS = \"http://www.w3.org/2000/svg\";\n var node = document.createElementNS(svgNS, \"line\"); // Apply attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n return node;\n }\n\n toMarkup() {\n var markup = \"<line\";\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"='\" + this.attributes[attr] + \"'\";\n }\n }\n\n markup += \"/>\";\n return markup;\n }\n\n}\nfunction assertSymbolDomNode(group) {\n if (group instanceof SymbolNode) {\n return group;\n } else {\n throw new Error(\"Expected symbolNode but got \" + String(group) + \".\");\n }\n}\nfunction assertSpan(group) {\n if (group instanceof Span) {\n return group;\n } else {\n throw new Error(\"Expected span<HtmlDomNode> but got \" + String(group) + \".\");\n }\n}\n\n/**\n * This file holds a list of all no-argument functions and single-character\n * symbols (like 'a' or ';').\n *\n * For each of the symbols, there are three properties they can have:\n * - font (required): the font to be used for this symbol. Either \"main\" (the\n normal font), or \"ams\" (the ams fonts).\n * - group (required): the ParseNode group type the symbol should have (i.e.\n \"textord\", \"mathord\", etc).\n See https://github.com/KaTeX/KaTeX/wiki/Examining-TeX#group-types\n * - replace: the character that this symbol or function should be\n * replaced with (i.e. \"\\phi\" has a replace value of \"\\u03d5\", the phi\n * character in the main font).\n *\n * The outermost map in the table indicates what mode the symbols should be\n * accepted in (e.g. \"math\" or \"text\").\n */\n// Some of these have a \"-token\" suffix since these are also used as `ParseNode`\n// types for raw text tokens, and we want to avoid conflicts with higher-level\n// `ParseNode` types. These `ParseNode`s are constructed within `Parser` by\n// looking up the `symbols` map.\nvar ATOMS = {\n \"bin\": 1,\n \"close\": 1,\n \"inner\": 1,\n \"open\": 1,\n \"punct\": 1,\n \"rel\": 1\n};\nvar NON_ATOMS = {\n \"accent-token\": 1,\n \"mathord\": 1,\n \"op-token\": 1,\n \"spacing\": 1,\n \"textord\": 1\n};\nvar symbols = {\n \"math\": {},\n \"text\": {}\n};\n/** `acceptUnicodeChar = true` is only applicable if `replace` is set. */\n\nfunction defineSymbol(mode, font, group, replace, name, acceptUnicodeChar) {\n symbols[mode][name] = {\n font,\n group,\n replace\n };\n\n if (acceptUnicodeChar && replace) {\n symbols[mode][replace] = symbols[mode][name];\n }\n} // Some abbreviations for commonly used strings.\n// This helps minify the code, and also spotting typos using jshint.\n// modes:\n\nvar math = \"math\";\nvar text = \"text\"; // fonts:\n\nvar main = \"main\";\nvar ams = \"ams\"; // groups:\n\nvar accent = \"accent-token\";\nvar bin = \"bin\";\nvar close = \"close\";\nvar inner = \"inner\";\nvar mathord = \"mathord\";\nvar op = \"op-token\";\nvar open = \"open\";\nvar punct = \"punct\";\nvar rel = \"rel\";\nvar spacing = \"spacing\";\nvar textord = \"textord\"; // Now comes the symbol table\n// Relation Symbols\n\ndefineSymbol(math, main, rel, \"\\u2261\", \"\\\\equiv\", true);\ndefineSymbol(math, main, rel, \"\\u227a\", \"\\\\prec\", true);\ndefineSymbol(math, main, rel, \"\\u227b\", \"\\\\succ\", true);\ndefineSymbol(math, main, rel, \"\\u223c\", \"\\\\sim\", true);\ndefineSymbol(math, main, rel, \"\\u22a5\", \"\\\\perp\");\ndefineSymbol(math, main, rel, \"\\u2aaf\", \"\\\\preceq\", true);\ndefineSymbol(math, main, rel, \"\\u2ab0\", \"\\\\succeq\", true);\ndefineSymbol(math, main, rel, \"\\u2243\", \"\\\\simeq\", true);\ndefineSymbol(math, main, rel, \"\\u2223\", \"\\\\mid\", true);\ndefineSymbol(math, main, rel, \"\\u226a\", \"\\\\ll\", true);\ndefineSymbol(math, main, rel, \"\\u226b\", \"\\\\gg\", true);\ndefineSymbol(math, main, rel, \"\\u224d\", \"\\\\asymp\", true);\ndefineSymbol(math, main, rel, \"\\u2225\", \"\\\\parallel\");\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\bowtie\", true);\ndefineSymbol(math, main, rel, \"\\u2323\", \"\\\\smile\", true);\ndefineSymbol(math, main, rel, \"\\u2291\", \"\\\\sqsubseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2292\", \"\\\\sqsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2250\", \"\\\\doteq\", true);\ndefineSymbol(math, main, rel, \"\\u2322\", \"\\\\frown\", true);\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\ni\", true);\ndefineSymbol(math, main, rel, \"\\u221d\", \"\\\\propto\", true);\ndefineSymbol(math, main, rel, \"\\u22a2\", \"\\\\vdash\", true);\ndefineSymbol(math, main, rel, \"\\u22a3\", \"\\\\dashv\", true);\ndefineSymbol(math, main, rel, \"\\u220b\", \"\\\\owns\"); // Punctuation\n\ndefineSymbol(math, main, punct, \"\\u002e\", \"\\\\ldotp\");\ndefineSymbol(math, main, punct, \"\\u22c5\", \"\\\\cdotp\"); // Misc Symbols\n\ndefineSymbol(math, main, textord, \"\\u0023\", \"\\\\#\");\ndefineSymbol(text, main, textord, \"\\u0023\", \"\\\\#\");\ndefineSymbol(math, main, textord, \"\\u0026\", \"\\\\&\");\ndefineSymbol(text, main, textord, \"\\u0026\", \"\\\\&\");\ndefineSymbol(math, main, textord, \"\\u2135\", \"\\\\aleph\", true);\ndefineSymbol(math, main, textord, \"\\u2200\", \"\\\\forall\", true);\ndefineSymbol(math, main, textord, \"\\u210f\", \"\\\\hbar\", true);\ndefineSymbol(math, main, textord, \"\\u2203\", \"\\\\exists\", true);\ndefineSymbol(math, main, textord, \"\\u2207\", \"\\\\nabla\", true);\ndefineSymbol(math, main, textord, \"\\u266d\", \"\\\\flat\", true);\ndefineSymbol(math, main, textord, \"\\u2113\", \"\\\\ell\", true);\ndefineSymbol(math, main, textord, \"\\u266e\", \"\\\\natural\", true);\ndefineSymbol(math, main, textord, \"\\u2663\", \"\\\\clubsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2118\", \"\\\\wp\", true);\ndefineSymbol(math, main, textord, \"\\u266f\", \"\\\\sharp\", true);\ndefineSymbol(math, main, textord, \"\\u2662\", \"\\\\diamondsuit\", true);\ndefineSymbol(math, main, textord, \"\\u211c\", \"\\\\Re\", true);\ndefineSymbol(math, main, textord, \"\\u2661\", \"\\\\heartsuit\", true);\ndefineSymbol(math, main, textord, \"\\u2111\", \"\\\\Im\", true);\ndefineSymbol(math, main, textord, \"\\u2660\", \"\\\\spadesuit\", true);\ndefineSymbol(math, main, textord, \"\\u00a7\", \"\\\\S\", true);\ndefineSymbol(text, main, textord, \"\\u00a7\", \"\\\\S\");\ndefineSymbol(math, main, textord, \"\\u00b6\", \"\\\\P\", true);\ndefineSymbol(text, main, textord, \"\\u00b6\", \"\\\\P\"); // Math and Text\n\ndefineSymbol(math, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(text, main, textord, \"\\u2020\", \"\\\\dag\");\ndefineSymbol(text, main, textord, \"\\u2020\", \"\\\\textdagger\");\ndefineSymbol(math, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(text, main, textord, \"\\u2021\", \"\\\\ddag\");\ndefineSymbol(text, main, textord, \"\\u2021\", \"\\\\textdaggerdbl\"); // Large Delimiters\n\ndefineSymbol(math, main, close, \"\\u23b1\", \"\\\\rmoustache\", true);\ndefineSymbol(math, main, open, \"\\u23b0\", \"\\\\lmoustache\", true);\ndefineSymbol(math, main, close, \"\\u27ef\", \"\\\\rgroup\", true);\ndefineSymbol(math, main, open, \"\\u27ee\", \"\\\\lgroup\", true); // Binary Operators\n\ndefineSymbol(math, main, bin, \"\\u2213\", \"\\\\mp\", true);\ndefineSymbol(math, main, bin, \"\\u2296\", \"\\\\ominus\", true);\ndefineSymbol(math, main, bin, \"\\u228e\", \"\\\\uplus\", true);\ndefineSymbol(math, main, bin, \"\\u2293\", \"\\\\sqcap\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"\\\\ast\");\ndefineSymbol(math, main, bin, \"\\u2294\", \"\\\\sqcup\", true);\ndefineSymbol(math, main, bin, \"\\u25ef\", \"\\\\bigcirc\", true);\ndefineSymbol(math, main, bin, \"\\u2219\", \"\\\\bullet\", true);\ndefineSymbol(math, main, bin, \"\\u2021\", \"\\\\ddagger\");\ndefineSymbol(math, main, bin, \"\\u2240\", \"\\\\wr\", true);\ndefineSymbol(math, main, bin, \"\\u2a3f\", \"\\\\amalg\");\ndefineSymbol(math, main, bin, \"\\u0026\", \"\\\\And\"); // from amsmath\n// Arrow Symbols\n\ndefineSymbol(math, main, rel, \"\\u27f5\", \"\\\\longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d0\", \"\\\\Leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f8\", \"\\\\Longleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f6\", \"\\\\longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d2\", \"\\\\Rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f9\", \"\\\\Longrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2194\", \"\\\\leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27f7\", \"\\\\longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d4\", \"\\\\Leftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u27fa\", \"\\\\Longleftrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21a6\", \"\\\\mapsto\", true);\ndefineSymbol(math, main, rel, \"\\u27fc\", \"\\\\longmapsto\", true);\ndefineSymbol(math, main, rel, \"\\u2197\", \"\\\\nearrow\", true);\ndefineSymbol(math, main, rel, \"\\u21a9\", \"\\\\hookleftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21aa\", \"\\\\hookrightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2198\", \"\\\\searrow\", true);\ndefineSymbol(math, main, rel, \"\\u21bc\", \"\\\\leftharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u21c0\", \"\\\\rightharpoonup\", true);\ndefineSymbol(math, main, rel, \"\\u2199\", \"\\\\swarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21bd\", \"\\\\leftharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u21c1\", \"\\\\rightharpoondown\", true);\ndefineSymbol(math, main, rel, \"\\u2196\", \"\\\\nwarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21cc\", \"\\\\rightleftharpoons\", true); // AMS Negated Binary Relations\n\ndefineSymbol(math, ams, rel, \"\\u226e\", \"\\\\nless\", true); // Symbol names preceeded by \"@\" each have a corresponding macro.\n\ndefineSymbol(math, ams, rel, \"\\ue010\", \"\\\\@nleqslant\");\ndefineSymbol(math, ams, rel, \"\\ue011\", \"\\\\@nleqq\");\ndefineSymbol(math, ams, rel, \"\\u2a87\", \"\\\\lneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2268\", \"\\\\lneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue00c\", \"\\\\@lvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e6\", \"\\\\lnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a89\", \"\\\\lnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2280\", \"\\\\nprec\", true); // unicode-math maps \\u22e0 to \\npreccurlyeq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u22e0\", \"\\\\npreceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22e8\", \"\\\\precnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab9\", \"\\\\precnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2241\", \"\\\\nsim\", true);\ndefineSymbol(math, ams, rel, \"\\ue006\", \"\\\\@nshortmid\");\ndefineSymbol(math, ams, rel, \"\\u2224\", \"\\\\nmid\", true);\ndefineSymbol(math, ams, rel, \"\\u22ac\", \"\\\\nvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u22ad\", \"\\\\nvDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22ea\", \"\\\\ntriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22ec\", \"\\\\ntrianglelefteq\", true);\ndefineSymbol(math, ams, rel, \"\\u228a\", \"\\\\subsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\ue01a\", \"\\\\@varsubsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acb\", \"\\\\subsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue017\", \"\\\\@varsubsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u226f\", \"\\\\ngtr\", true);\ndefineSymbol(math, ams, rel, \"\\ue00f\", \"\\\\@ngeqslant\");\ndefineSymbol(math, ams, rel, \"\\ue00e\", \"\\\\@ngeqq\");\ndefineSymbol(math, ams, rel, \"\\u2a88\", \"\\\\gneq\", true);\ndefineSymbol(math, ams, rel, \"\\u2269\", \"\\\\gneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue00d\", \"\\\\@gvertneqq\");\ndefineSymbol(math, ams, rel, \"\\u22e7\", \"\\\\gnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a8a\", \"\\\\gnapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u2281\", \"\\\\nsucc\", true); // unicode-math maps \\u22e1 to \\nsucccurlyeq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u22e1\", \"\\\\nsucceq\", true);\ndefineSymbol(math, ams, rel, \"\\u22e9\", \"\\\\succnsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2aba\", \"\\\\succnapprox\", true); // unicode-math maps \\u2246 to \\simneqq. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u2246\", \"\\\\ncong\", true);\ndefineSymbol(math, ams, rel, \"\\ue007\", \"\\\\@nshortparallel\");\ndefineSymbol(math, ams, rel, \"\\u2226\", \"\\\\nparallel\", true);\ndefineSymbol(math, ams, rel, \"\\u22af\", \"\\\\nVDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22eb\", \"\\\\ntriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22ed\", \"\\\\ntrianglerighteq\", true);\ndefineSymbol(math, ams, rel, \"\\ue018\", \"\\\\@nsupseteqq\");\ndefineSymbol(math, ams, rel, \"\\u228b\", \"\\\\supsetneq\", true);\ndefineSymbol(math, ams, rel, \"\\ue01b\", \"\\\\@varsupsetneq\");\ndefineSymbol(math, ams, rel, \"\\u2acc\", \"\\\\supsetneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue019\", \"\\\\@varsupsetneqq\");\ndefineSymbol(math, ams, rel, \"\\u22ae\", \"\\\\nVdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab5\", \"\\\\precneqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab6\", \"\\\\succneqq\", true);\ndefineSymbol(math, ams, rel, \"\\ue016\", \"\\\\@nsubseteqq\");\ndefineSymbol(math, ams, bin, \"\\u22b4\", \"\\\\unlhd\");\ndefineSymbol(math, ams, bin, \"\\u22b5\", \"\\\\unrhd\"); // AMS Negated Arrows\n\ndefineSymbol(math, ams, rel, \"\\u219a\", \"\\\\nleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219b\", \"\\\\nrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21cd\", \"\\\\nLeftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21cf\", \"\\\\nRightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21ae\", \"\\\\nleftrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21ce\", \"\\\\nLeftrightarrow\", true); // AMS Misc\n\ndefineSymbol(math, ams, rel, \"\\u25b3\", \"\\\\vartriangle\");\ndefineSymbol(math, ams, textord, \"\\u210f\", \"\\\\hslash\");\ndefineSymbol(math, ams, textord, \"\\u25bd\", \"\\\\triangledown\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\lozenge\");\ndefineSymbol(math, ams, textord, \"\\u24c8\", \"\\\\circledS\");\ndefineSymbol(math, ams, textord, \"\\u00ae\", \"\\\\circledR\");\ndefineSymbol(text, ams, textord, \"\\u00ae\", \"\\\\circledR\");\ndefineSymbol(math, ams, textord, \"\\u2221\", \"\\\\measuredangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2204\", \"\\\\nexists\");\ndefineSymbol(math, ams, textord, \"\\u2127\", \"\\\\mho\");\ndefineSymbol(math, ams, textord, \"\\u2132\", \"\\\\Finv\", true);\ndefineSymbol(math, ams, textord, \"\\u2141\", \"\\\\Game\", true);\ndefineSymbol(math, ams, textord, \"\\u2035\", \"\\\\backprime\");\ndefineSymbol(math, ams, textord, \"\\u25b2\", \"\\\\blacktriangle\");\ndefineSymbol(math, ams, textord, \"\\u25bc\", \"\\\\blacktriangledown\");\ndefineSymbol(math, ams, textord, \"\\u25a0\", \"\\\\blacksquare\");\ndefineSymbol(math, ams, textord, \"\\u29eb\", \"\\\\blacklozenge\");\ndefineSymbol(math, ams, textord, \"\\u2605\", \"\\\\bigstar\");\ndefineSymbol(math, ams, textord, \"\\u2222\", \"\\\\sphericalangle\", true);\ndefineSymbol(math, ams, textord, \"\\u2201\", \"\\\\complement\", true); // unicode-math maps U+F0 to \\matheth. We map to AMS function \\eth\n\ndefineSymbol(math, ams, textord, \"\\u00f0\", \"\\\\eth\", true);\ndefineSymbol(text, main, textord, \"\\u00f0\", \"\\u00f0\");\ndefineSymbol(math, ams, textord, \"\\u2571\", \"\\\\diagup\");\ndefineSymbol(math, ams, textord, \"\\u2572\", \"\\\\diagdown\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\square\");\ndefineSymbol(math, ams, textord, \"\\u25a1\", \"\\\\Box\");\ndefineSymbol(math, ams, textord, \"\\u25ca\", \"\\\\Diamond\"); // unicode-math maps U+A5 to \\mathyen. We map to AMS function \\yen\n\ndefineSymbol(math, ams, textord, \"\\u00a5\", \"\\\\yen\", true);\ndefineSymbol(text, ams, textord, \"\\u00a5\", \"\\\\yen\", true);\ndefineSymbol(math, ams, textord, \"\\u2713\", \"\\\\checkmark\", true);\ndefineSymbol(text, ams, textord, \"\\u2713\", \"\\\\checkmark\"); // AMS Hebrew\n\ndefineSymbol(math, ams, textord, \"\\u2136\", \"\\\\beth\", true);\ndefineSymbol(math, ams, textord, \"\\u2138\", \"\\\\daleth\", true);\ndefineSymbol(math, ams, textord, \"\\u2137\", \"\\\\gimel\", true); // AMS Greek\n\ndefineSymbol(math, ams, textord, \"\\u03dd\", \"\\\\digamma\", true);\ndefineSymbol(math, ams, textord, \"\\u03f0\", \"\\\\varkappa\"); // AMS Delimiters\n\ndefineSymbol(math, ams, open, \"\\u250c\", \"\\\\@ulcorner\", true);\ndefineSymbol(math, ams, close, \"\\u2510\", \"\\\\@urcorner\", true);\ndefineSymbol(math, ams, open, \"\\u2514\", \"\\\\@llcorner\", true);\ndefineSymbol(math, ams, close, \"\\u2518\", \"\\\\@lrcorner\", true); // AMS Binary Relations\n\ndefineSymbol(math, ams, rel, \"\\u2266\", \"\\\\leqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2a7d\", \"\\\\leqslant\", true);\ndefineSymbol(math, ams, rel, \"\\u2a95\", \"\\\\eqslantless\", true);\ndefineSymbol(math, ams, rel, \"\\u2272\", \"\\\\lesssim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a85\", \"\\\\lessapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u224a\", \"\\\\approxeq\", true);\ndefineSymbol(math, ams, bin, \"\\u22d6\", \"\\\\lessdot\");\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\lll\", true);\ndefineSymbol(math, ams, rel, \"\\u2276\", \"\\\\lessgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u22da\", \"\\\\lesseqgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2a8b\", \"\\\\lesseqqgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\doteqdot\");\ndefineSymbol(math, ams, rel, \"\\u2253\", \"\\\\risingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u2252\", \"\\\\fallingdotseq\", true);\ndefineSymbol(math, ams, rel, \"\\u223d\", \"\\\\backsim\", true);\ndefineSymbol(math, ams, rel, \"\\u22cd\", \"\\\\backsimeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2ac5\", \"\\\\subseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22d0\", \"\\\\Subset\", true);\ndefineSymbol(math, ams, rel, \"\\u228f\", \"\\\\sqsubset\", true);\ndefineSymbol(math, ams, rel, \"\\u227c\", \"\\\\preccurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22de\", \"\\\\curlyeqprec\", true);\ndefineSymbol(math, ams, rel, \"\\u227e\", \"\\\\precsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab7\", \"\\\\precapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22b2\", \"\\\\vartriangleleft\");\ndefineSymbol(math, ams, rel, \"\\u22b4\", \"\\\\trianglelefteq\");\ndefineSymbol(math, ams, rel, \"\\u22a8\", \"\\\\vDash\", true);\ndefineSymbol(math, ams, rel, \"\\u22aa\", \"\\\\Vvdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2323\", \"\\\\smallsmile\");\ndefineSymbol(math, ams, rel, \"\\u2322\", \"\\\\smallfrown\");\ndefineSymbol(math, ams, rel, \"\\u224f\", \"\\\\bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u224e\", \"\\\\Bumpeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2267\", \"\\\\geqq\", true);\ndefineSymbol(math, ams, rel, \"\\u2a7e\", \"\\\\geqslant\", true);\ndefineSymbol(math, ams, rel, \"\\u2a96\", \"\\\\eqslantgtr\", true);\ndefineSymbol(math, ams, rel, \"\\u2273\", \"\\\\gtrsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2a86\", \"\\\\gtrapprox\", true);\ndefineSymbol(math, ams, bin, \"\\u22d7\", \"\\\\gtrdot\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\ggg\", true);\ndefineSymbol(math, ams, rel, \"\\u2277\", \"\\\\gtrless\", true);\ndefineSymbol(math, ams, rel, \"\\u22db\", \"\\\\gtreqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2a8c\", \"\\\\gtreqqless\", true);\ndefineSymbol(math, ams, rel, \"\\u2256\", \"\\\\eqcirc\", true);\ndefineSymbol(math, ams, rel, \"\\u2257\", \"\\\\circeq\", true);\ndefineSymbol(math, ams, rel, \"\\u225c\", \"\\\\triangleq\", true);\ndefineSymbol(math, ams, rel, \"\\u223c\", \"\\\\thicksim\");\ndefineSymbol(math, ams, rel, \"\\u2248\", \"\\\\thickapprox\");\ndefineSymbol(math, ams, rel, \"\\u2ac6\", \"\\\\supseteqq\", true);\ndefineSymbol(math, ams, rel, \"\\u22d1\", \"\\\\Supset\", true);\ndefineSymbol(math, ams, rel, \"\\u2290\", \"\\\\sqsupset\", true);\ndefineSymbol(math, ams, rel, \"\\u227d\", \"\\\\succcurlyeq\", true);\ndefineSymbol(math, ams, rel, \"\\u22df\", \"\\\\curlyeqsucc\", true);\ndefineSymbol(math, ams, rel, \"\\u227f\", \"\\\\succsim\", true);\ndefineSymbol(math, ams, rel, \"\\u2ab8\", \"\\\\succapprox\", true);\ndefineSymbol(math, ams, rel, \"\\u22b3\", \"\\\\vartriangleright\");\ndefineSymbol(math, ams, rel, \"\\u22b5\", \"\\\\trianglerighteq\");\ndefineSymbol(math, ams, rel, \"\\u22a9\", \"\\\\Vdash\", true);\ndefineSymbol(math, ams, rel, \"\\u2223\", \"\\\\shortmid\");\ndefineSymbol(math, ams, rel, \"\\u2225\", \"\\\\shortparallel\");\ndefineSymbol(math, ams, rel, \"\\u226c\", \"\\\\between\", true);\ndefineSymbol(math, ams, rel, \"\\u22d4\", \"\\\\pitchfork\", true);\ndefineSymbol(math, ams, rel, \"\\u221d\", \"\\\\varpropto\");\ndefineSymbol(math, ams, rel, \"\\u25c0\", \"\\\\blacktriangleleft\"); // unicode-math says that \\therefore is a mathord atom.\n// We kept the amssymb atom type, which is rel.\n\ndefineSymbol(math, ams, rel, \"\\u2234\", \"\\\\therefore\", true);\ndefineSymbol(math, ams, rel, \"\\u220d\", \"\\\\backepsilon\");\ndefineSymbol(math, ams, rel, \"\\u25b6\", \"\\\\blacktriangleright\"); // unicode-math says that \\because is a mathord atom.\n// We kept the amssymb atom type, which is rel.\n\ndefineSymbol(math, ams, rel, \"\\u2235\", \"\\\\because\", true);\ndefineSymbol(math, ams, rel, \"\\u22d8\", \"\\\\llless\");\ndefineSymbol(math, ams, rel, \"\\u22d9\", \"\\\\gggtr\");\ndefineSymbol(math, ams, bin, \"\\u22b2\", \"\\\\lhd\");\ndefineSymbol(math, ams, bin, \"\\u22b3\", \"\\\\rhd\");\ndefineSymbol(math, ams, rel, \"\\u2242\", \"\\\\eqsim\", true);\ndefineSymbol(math, main, rel, \"\\u22c8\", \"\\\\Join\");\ndefineSymbol(math, ams, rel, \"\\u2251\", \"\\\\Doteq\", true); // AMS Binary Operators\n\ndefineSymbol(math, ams, bin, \"\\u2214\", \"\\\\dotplus\", true);\ndefineSymbol(math, ams, bin, \"\\u2216\", \"\\\\smallsetminus\");\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\Cap\", true);\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\Cup\", true);\ndefineSymbol(math, ams, bin, \"\\u2a5e\", \"\\\\doublebarwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u229f\", \"\\\\boxminus\", true);\ndefineSymbol(math, ams, bin, \"\\u229e\", \"\\\\boxplus\", true);\ndefineSymbol(math, ams, bin, \"\\u22c7\", \"\\\\divideontimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22c9\", \"\\\\ltimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22ca\", \"\\\\rtimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22cb\", \"\\\\leftthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22cc\", \"\\\\rightthreetimes\", true);\ndefineSymbol(math, ams, bin, \"\\u22cf\", \"\\\\curlywedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22ce\", \"\\\\curlyvee\", true);\ndefineSymbol(math, ams, bin, \"\\u229d\", \"\\\\circleddash\", true);\ndefineSymbol(math, ams, bin, \"\\u229b\", \"\\\\circledast\", true);\ndefineSymbol(math, ams, bin, \"\\u22c5\", \"\\\\centerdot\");\ndefineSymbol(math, ams, bin, \"\\u22ba\", \"\\\\intercal\", true);\ndefineSymbol(math, ams, bin, \"\\u22d2\", \"\\\\doublecap\");\ndefineSymbol(math, ams, bin, \"\\u22d3\", \"\\\\doublecup\");\ndefineSymbol(math, ams, bin, \"\\u22a0\", \"\\\\boxtimes\", true); // AMS Arrows\n// Note: unicode-math maps \\u21e2 to their own function \\rightdasharrow.\n// We'll map it to AMS function \\dashrightarrow. It produces the same atom.\n\ndefineSymbol(math, ams, rel, \"\\u21e2\", \"\\\\dashrightarrow\", true); // unicode-math maps \\u21e0 to \\leftdasharrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21e0\", \"\\\\dashleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21c7\", \"\\\\leftleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21c6\", \"\\\\leftrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21da\", \"\\\\Lleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u219e\", \"\\\\twoheadleftarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21a2\", \"\\\\leftarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21ab\", \"\\\\looparrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21cb\", \"\\\\leftrightharpoons\", true);\ndefineSymbol(math, ams, rel, \"\\u21b6\", \"\\\\curvearrowleft\", true); // unicode-math maps \\u21ba to \\acwopencirclearrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21ba\", \"\\\\circlearrowleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21b0\", \"\\\\Lsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21c8\", \"\\\\upuparrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21bf\", \"\\\\upharpoonleft\", true);\ndefineSymbol(math, ams, rel, \"\\u21c3\", \"\\\\downharpoonleft\", true);\ndefineSymbol(math, main, rel, \"\\u22b6\", \"\\\\origof\", true); // not in font\n\ndefineSymbol(math, main, rel, \"\\u22b7\", \"\\\\imageof\", true); // not in font\n\ndefineSymbol(math, ams, rel, \"\\u22b8\", \"\\\\multimap\", true);\ndefineSymbol(math, ams, rel, \"\\u21ad\", \"\\\\leftrightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21c9\", \"\\\\rightrightarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21c4\", \"\\\\rightleftarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21a0\", \"\\\\twoheadrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21a3\", \"\\\\rightarrowtail\", true);\ndefineSymbol(math, ams, rel, \"\\u21ac\", \"\\\\looparrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21b7\", \"\\\\curvearrowright\", true); // unicode-math maps \\u21bb to \\cwopencirclearrow. We'll use the AMS synonym.\n\ndefineSymbol(math, ams, rel, \"\\u21bb\", \"\\\\circlearrowright\", true);\ndefineSymbol(math, ams, rel, \"\\u21b1\", \"\\\\Rsh\", true);\ndefineSymbol(math, ams, rel, \"\\u21ca\", \"\\\\downdownarrows\", true);\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\upharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21c2\", \"\\\\downharpoonright\", true);\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\rightsquigarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21dd\", \"\\\\leadsto\");\ndefineSymbol(math, ams, rel, \"\\u21db\", \"\\\\Rrightarrow\", true);\ndefineSymbol(math, ams, rel, \"\\u21be\", \"\\\\restriction\");\ndefineSymbol(math, main, textord, \"\\u2018\", \"`\");\ndefineSymbol(math, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(text, main, textord, \"$\", \"\\\\$\");\ndefineSymbol(text, main, textord, \"$\", \"\\\\textdollar\");\ndefineSymbol(math, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(text, main, textord, \"%\", \"\\\\%\");\ndefineSymbol(math, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(text, main, textord, \"_\", \"\\\\_\");\ndefineSymbol(text, main, textord, \"_\", \"\\\\textunderscore\");\ndefineSymbol(math, main, textord, \"\\u2220\", \"\\\\angle\", true);\ndefineSymbol(math, main, textord, \"\\u221e\", \"\\\\infty\", true);\ndefineSymbol(math, main, textord, \"\\u2032\", \"\\\\prime\");\ndefineSymbol(math, main, textord, \"\\u25b3\", \"\\\\triangle\");\ndefineSymbol(math, main, textord, \"\\u0393\", \"\\\\Gamma\", true);\ndefineSymbol(math, main, textord, \"\\u0394\", \"\\\\Delta\", true);\ndefineSymbol(math, main, textord, \"\\u0398\", \"\\\\Theta\", true);\ndefineSymbol(math, main, textord, \"\\u039b\", \"\\\\Lambda\", true);\ndefineSymbol(math, main, textord, \"\\u039e\", \"\\\\Xi\", true);\ndefineSymbol(math, main, textord, \"\\u03a0\", \"\\\\Pi\", true);\ndefineSymbol(math, main, textord, \"\\u03a3\", \"\\\\Sigma\", true);\ndefineSymbol(math, main, textord, \"\\u03a5\", \"\\\\Upsilon\", true);\ndefineSymbol(math, main, textord, \"\\u03a6\", \"\\\\Phi\", true);\ndefineSymbol(math, main, textord, \"\\u03a8\", \"\\\\Psi\", true);\ndefineSymbol(math, main, textord, \"\\u03a9\", \"\\\\Omega\", true);\ndefineSymbol(math, main, textord, \"A\", \"\\u0391\");\ndefineSymbol(math, main, textord, \"B\", \"\\u0392\");\ndefineSymbol(math, main, textord, \"E\", \"\\u0395\");\ndefineSymbol(math, main, textord, \"Z\", \"\\u0396\");\ndefineSymbol(math, main, textord, \"H\", \"\\u0397\");\ndefineSymbol(math, main, textord, \"I\", \"\\u0399\");\ndefineSymbol(math, main, textord, \"K\", \"\\u039A\");\ndefineSymbol(math, main, textord, \"M\", \"\\u039C\");\ndefineSymbol(math, main, textord, \"N\", \"\\u039D\");\ndefineSymbol(math, main, textord, \"O\", \"\\u039F\");\ndefineSymbol(math, main, textord, \"P\", \"\\u03A1\");\ndefineSymbol(math, main, textord, \"T\", \"\\u03A4\");\ndefineSymbol(math, main, textord, \"X\", \"\\u03A7\");\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\neg\", true);\ndefineSymbol(math, main, textord, \"\\u00ac\", \"\\\\lnot\");\ndefineSymbol(math, main, textord, \"\\u22a4\", \"\\\\top\");\ndefineSymbol(math, main, textord, \"\\u22a5\", \"\\\\bot\");\ndefineSymbol(math, main, textord, \"\\u2205\", \"\\\\emptyset\");\ndefineSymbol(math, ams, textord, \"\\u2205\", \"\\\\varnothing\");\ndefineSymbol(math, main, mathord, \"\\u03b1\", \"\\\\alpha\", true);\ndefineSymbol(math, main, mathord, \"\\u03b2\", \"\\\\beta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b3\", \"\\\\gamma\", true);\ndefineSymbol(math, main, mathord, \"\\u03b4\", \"\\\\delta\", true);\ndefineSymbol(math, main, mathord, \"\\u03f5\", \"\\\\epsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03b6\", \"\\\\zeta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b7\", \"\\\\eta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b8\", \"\\\\theta\", true);\ndefineSymbol(math, main, mathord, \"\\u03b9\", \"\\\\iota\", true);\ndefineSymbol(math, main, mathord, \"\\u03ba\", \"\\\\kappa\", true);\ndefineSymbol(math, main, mathord, \"\\u03bb\", \"\\\\lambda\", true);\ndefineSymbol(math, main, mathord, \"\\u03bc\", \"\\\\mu\", true);\ndefineSymbol(math, main, mathord, \"\\u03bd\", \"\\\\nu\", true);\ndefineSymbol(math, main, mathord, \"\\u03be\", \"\\\\xi\", true);\ndefineSymbol(math, main, mathord, \"\\u03bf\", \"\\\\omicron\", true);\ndefineSymbol(math, main, mathord, \"\\u03c0\", \"\\\\pi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c1\", \"\\\\rho\", true);\ndefineSymbol(math, main, mathord, \"\\u03c3\", \"\\\\sigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03c4\", \"\\\\tau\", true);\ndefineSymbol(math, main, mathord, \"\\u03c5\", \"\\\\upsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03d5\", \"\\\\phi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c7\", \"\\\\chi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c8\", \"\\\\psi\", true);\ndefineSymbol(math, main, mathord, \"\\u03c9\", \"\\\\omega\", true);\ndefineSymbol(math, main, mathord, \"\\u03b5\", \"\\\\varepsilon\", true);\ndefineSymbol(math, main, mathord, \"\\u03d1\", \"\\\\vartheta\", true);\ndefineSymbol(math, main, mathord, \"\\u03d6\", \"\\\\varpi\", true);\ndefineSymbol(math, main, mathord, \"\\u03f1\", \"\\\\varrho\", true);\ndefineSymbol(math, main, mathord, \"\\u03c2\", \"\\\\varsigma\", true);\ndefineSymbol(math, main, mathord, \"\\u03c6\", \"\\\\varphi\", true);\ndefineSymbol(math, main, bin, \"\\u2217\", \"*\", true);\ndefineSymbol(math, main, bin, \"+\", \"+\");\ndefineSymbol(math, main, bin, \"\\u2212\", \"-\", true);\ndefineSymbol(math, main, bin, \"\\u22c5\", \"\\\\cdot\", true);\ndefineSymbol(math, main, bin, \"\\u2218\", \"\\\\circ\", true);\ndefineSymbol(math, main, bin, \"\\u00f7\", \"\\\\div\", true);\ndefineSymbol(math, main, bin, \"\\u00b1\", \"\\\\pm\", true);\ndefineSymbol(math, main, bin, \"\\u00d7\", \"\\\\times\", true);\ndefineSymbol(math, main, bin, \"\\u2229\", \"\\\\cap\", true);\ndefineSymbol(math, main, bin, \"\\u222a\", \"\\\\cup\", true);\ndefineSymbol(math, main, bin, \"\\u2216\", \"\\\\setminus\", true);\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\land\");\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\lor\");\ndefineSymbol(math, main, bin, \"\\u2227\", \"\\\\wedge\", true);\ndefineSymbol(math, main, bin, \"\\u2228\", \"\\\\vee\", true);\ndefineSymbol(math, main, textord, \"\\u221a\", \"\\\\surd\");\ndefineSymbol(math, main, open, \"\\u27e8\", \"\\\\langle\", true);\ndefineSymbol(math, main, open, \"\\u2223\", \"\\\\lvert\");\ndefineSymbol(math, main, open, \"\\u2225\", \"\\\\lVert\");\ndefineSymbol(math, main, close, \"?\", \"?\");\ndefineSymbol(math, main, close, \"!\", \"!\");\ndefineSymbol(math, main, close, \"\\u27e9\", \"\\\\rangle\", true);\ndefineSymbol(math, main, close, \"\\u2223\", \"\\\\rvert\");\ndefineSymbol(math, main, close, \"\\u2225\", \"\\\\rVert\");\ndefineSymbol(math, main, rel, \"=\", \"=\");\ndefineSymbol(math, main, rel, \":\", \":\");\ndefineSymbol(math, main, rel, \"\\u2248\", \"\\\\approx\", true);\ndefineSymbol(math, main, rel, \"\\u2245\", \"\\\\cong\", true);\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\ge\");\ndefineSymbol(math, main, rel, \"\\u2265\", \"\\\\geq\", true);\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\gets\");\ndefineSymbol(math, main, rel, \">\", \"\\\\gt\", true);\ndefineSymbol(math, main, rel, \"\\u2208\", \"\\\\in\", true);\ndefineSymbol(math, main, rel, \"\\ue020\", \"\\\\@not\");\ndefineSymbol(math, main, rel, \"\\u2282\", \"\\\\subset\", true);\ndefineSymbol(math, main, rel, \"\\u2283\", \"\\\\supset\", true);\ndefineSymbol(math, main, rel, \"\\u2286\", \"\\\\subseteq\", true);\ndefineSymbol(math, main, rel, \"\\u2287\", \"\\\\supseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2288\", \"\\\\nsubseteq\", true);\ndefineSymbol(math, ams, rel, \"\\u2289\", \"\\\\nsupseteq\", true);\ndefineSymbol(math, main, rel, \"\\u22a8\", \"\\\\models\");\ndefineSymbol(math, main, rel, \"\\u2190\", \"\\\\leftarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\le\");\ndefineSymbol(math, main, rel, \"\\u2264\", \"\\\\leq\", true);\ndefineSymbol(math, main, rel, \"<\", \"\\\\lt\", true);\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\rightarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2192\", \"\\\\to\");\ndefineSymbol(math, ams, rel, \"\\u2271\", \"\\\\ngeq\", true);\ndefineSymbol(math, ams, rel, \"\\u2270\", \"\\\\nleq\", true);\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\space\"); // Ref: LaTeX Source 2e: \\DeclareRobustCommand{\\nobreakspace}{%\n\ndefineSymbol(math, main, spacing, \"\\u00a0\", \"\\\\nobreakspace\");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"\\\\ \");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \" \");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"\\\\space\");\ndefineSymbol(text, main, spacing, \"\\u00a0\", \"\\\\nobreakspace\");\ndefineSymbol(math, main, spacing, null, \"\\\\nobreak\");\ndefineSymbol(math, main, spacing, null, \"\\\\allowbreak\");\ndefineSymbol(math, main, punct, \",\", \",\");\ndefineSymbol(math, main, punct, \";\", \";\");\ndefineSymbol(math, ams, bin, \"\\u22bc\", \"\\\\barwedge\", true);\ndefineSymbol(math, ams, bin, \"\\u22bb\", \"\\\\veebar\", true);\ndefineSymbol(math, main, bin, \"\\u2299\", \"\\\\odot\", true);\ndefineSymbol(math, main, bin, \"\\u2295\", \"\\\\oplus\", true);\ndefineSymbol(math, main, bin, \"\\u2297\", \"\\\\otimes\", true);\ndefineSymbol(math, main, textord, \"\\u2202\", \"\\\\partial\", true);\ndefineSymbol(math, main, bin, \"\\u2298\", \"\\\\oslash\", true);\ndefineSymbol(math, ams, bin, \"\\u229a\", \"\\\\circledcirc\", true);\ndefineSymbol(math, ams, bin, \"\\u22a1\", \"\\\\boxdot\", true);\ndefineSymbol(math, main, bin, \"\\u25b3\", \"\\\\bigtriangleup\");\ndefineSymbol(math, main, bin, \"\\u25bd\", \"\\\\bigtriangledown\");\ndefineSymbol(math, main, bin, \"\\u2020\", \"\\\\dagger\");\ndefineSymbol(math, main, bin, \"\\u22c4\", \"\\\\diamond\");\ndefineSymbol(math, main, bin, \"\\u22c6\", \"\\\\star\");\ndefineSymbol(math, main, bin, \"\\u25c3\", \"\\\\triangleleft\");\ndefineSymbol(math, main, bin, \"\\u25b9\", \"\\\\triangleright\");\ndefineSymbol(math, main, open, \"{\", \"\\\\{\");\ndefineSymbol(text, main, textord, \"{\", \"\\\\{\");\ndefineSymbol(text, main, textord, \"{\", \"\\\\textbraceleft\");\ndefineSymbol(math, main, close, \"}\", \"\\\\}\");\ndefineSymbol(text, main, textord, \"}\", \"\\\\}\");\ndefineSymbol(text, main, textord, \"}\", \"\\\\textbraceright\");\ndefineSymbol(math, main, open, \"{\", \"\\\\lbrace\");\ndefineSymbol(math, main, close, \"}\", \"\\\\rbrace\");\ndefineSymbol(math, main, open, \"[\", \"\\\\lbrack\", true);\ndefineSymbol(text, main, textord, \"[\", \"\\\\lbrack\", true);\ndefineSymbol(math, main, close, \"]\", \"\\\\rbrack\", true);\ndefineSymbol(text, main, textord, \"]\", \"\\\\rbrack\", true);\ndefineSymbol(math, main, open, \"(\", \"\\\\lparen\", true);\ndefineSymbol(math, main, close, \")\", \"\\\\rparen\", true);\ndefineSymbol(text, main, textord, \"<\", \"\\\\textless\", true); // in T1 fontenc\n\ndefineSymbol(text, main, textord, \">\", \"\\\\textgreater\", true); // in T1 fontenc\n\ndefineSymbol(math, main, open, \"\\u230a\", \"\\\\lfloor\", true);\ndefineSymbol(math, main, close, \"\\u230b\", \"\\\\rfloor\", true);\ndefineSymbol(math, main, open, \"\\u2308\", \"\\\\lceil\", true);\ndefineSymbol(math, main, close, \"\\u2309\", \"\\\\rceil\", true);\ndefineSymbol(math, main, textord, \"\\\\\", \"\\\\backslash\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"|\");\ndefineSymbol(math, main, textord, \"\\u2223\", \"\\\\vert\");\ndefineSymbol(text, main, textord, \"|\", \"\\\\textbar\", true); // in T1 fontenc\n\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\|\");\ndefineSymbol(math, main, textord, \"\\u2225\", \"\\\\Vert\");\ndefineSymbol(text, main, textord, \"\\u2225\", \"\\\\textbardbl\");\ndefineSymbol(text, main, textord, \"~\", \"\\\\textasciitilde\");\ndefineSymbol(text, main, textord, \"\\\\\", \"\\\\textbackslash\");\ndefineSymbol(text, main, textord, \"^\", \"\\\\textasciicircum\");\ndefineSymbol(math, main, rel, \"\\u2191\", \"\\\\uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d1\", \"\\\\Uparrow\", true);\ndefineSymbol(math, main, rel, \"\\u2193\", \"\\\\downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d3\", \"\\\\Downarrow\", true);\ndefineSymbol(math, main, rel, \"\\u2195\", \"\\\\updownarrow\", true);\ndefineSymbol(math, main, rel, \"\\u21d5\", \"\\\\Updownarrow\", true);\ndefineSymbol(math, main, op, \"\\u2210\", \"\\\\coprod\");\ndefineSymbol(math, main, op, \"\\u22c1\", \"\\\\bigvee\");\ndefineSymbol(math, main, op, \"\\u22c0\", \"\\\\bigwedge\");\ndefineSymbol(math, main, op, \"\\u2a04\", \"\\\\biguplus\");\ndefineSymbol(math, main, op, \"\\u22c2\", \"\\\\bigcap\");\ndefineSymbol(math, main, op, \"\\u22c3\", \"\\\\bigcup\");\ndefineSymbol(math, main, op, \"\\u222b\", \"\\\\int\");\ndefineSymbol(math, main, op, \"\\u222b\", \"\\\\intop\");\ndefineSymbol(math, main, op, \"\\u222c\", \"\\\\iint\");\ndefineSymbol(math, main, op, \"\\u222d\", \"\\\\iiint\");\ndefineSymbol(math, main, op, \"\\u220f\", \"\\\\prod\");\ndefineSymbol(math, main, op, \"\\u2211\", \"\\\\sum\");\ndefineSymbol(math, main, op, \"\\u2a02\", \"\\\\bigotimes\");\ndefineSymbol(math, main, op, \"\\u2a01\", \"\\\\bigoplus\");\ndefineSymbol(math, main, op, \"\\u2a00\", \"\\\\bigodot\");\ndefineSymbol(math, main, op, \"\\u222e\", \"\\\\oint\");\ndefineSymbol(math, main, op, \"\\u222f\", \"\\\\oiint\");\ndefineSymbol(math, main, op, \"\\u2230\", \"\\\\oiiint\");\ndefineSymbol(math, main, op, \"\\u2a06\", \"\\\\bigsqcup\");\ndefineSymbol(math, main, op, \"\\u222b\", \"\\\\smallint\");\ndefineSymbol(text, main, inner, \"\\u2026\", \"\\\\textellipsis\");\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\mathellipsis\");\ndefineSymbol(text, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u2026\", \"\\\\ldots\", true);\ndefineSymbol(math, main, inner, \"\\u22ef\", \"\\\\@cdots\", true);\ndefineSymbol(math, main, inner, \"\\u22f1\", \"\\\\ddots\", true);\ndefineSymbol(math, main, textord, \"\\u22ee\", \"\\\\varvdots\"); // \\vdots is a macro\n\ndefineSymbol(math, main, accent, \"\\u02ca\", \"\\\\acute\");\ndefineSymbol(math, main, accent, \"\\u02cb\", \"\\\\grave\");\ndefineSymbol(math, main, accent, \"\\u00a8\", \"\\\\ddot\");\ndefineSymbol(math, main, accent, \"\\u007e\", \"\\\\tilde\");\ndefineSymbol(math, main, accent, \"\\u02c9\", \"\\\\bar\");\ndefineSymbol(math, main, accent, \"\\u02d8\", \"\\\\breve\");\ndefineSymbol(math, main, accent, \"\\u02c7\", \"\\\\check\");\ndefineSymbol(math, main, accent, \"\\u005e\", \"\\\\hat\");\ndefineSymbol(math, main, accent, \"\\u20d7\", \"\\\\vec\");\ndefineSymbol(math, main, accent, \"\\u02d9\", \"\\\\dot\");\ndefineSymbol(math, main, accent, \"\\u02da\", \"\\\\mathring\"); // \\imath and \\jmath should be invariant to \\mathrm, \\mathbf, etc., so use PUA\n\ndefineSymbol(math, main, mathord, \"\\ue131\", \"\\\\@imath\");\ndefineSymbol(math, main, mathord, \"\\ue237\", \"\\\\@jmath\");\ndefineSymbol(math, main, textord, \"\\u0131\", \"\\u0131\");\ndefineSymbol(math, main, textord, \"\\u0237\", \"\\u0237\");\ndefineSymbol(text, main, textord, \"\\u0131\", \"\\\\i\", true);\ndefineSymbol(text, main, textord, \"\\u0237\", \"\\\\j\", true);\ndefineSymbol(text, main, textord, \"\\u00df\", \"\\\\ss\", true);\ndefineSymbol(text, main, textord, \"\\u00e6\", \"\\\\ae\", true);\ndefineSymbol(text, main, textord, \"\\u0153\", \"\\\\oe\", true);\ndefineSymbol(text, main, textord, \"\\u00f8\", \"\\\\o\", true);\ndefineSymbol(text, main, textord, \"\\u00c6\", \"\\\\AE\", true);\ndefineSymbol(text, main, textord, \"\\u0152\", \"\\\\OE\", true);\ndefineSymbol(text, main, textord, \"\\u00d8\", \"\\\\O\", true);\ndefineSymbol(text, main, accent, \"\\u02ca\", \"\\\\'\"); // acute\n\ndefineSymbol(text, main, accent, \"\\u02cb\", \"\\\\`\"); // grave\n\ndefineSymbol(text, main, accent, \"\\u02c6\", \"\\\\^\"); // circumflex\n\ndefineSymbol(text, main, accent, \"\\u02dc\", \"\\\\~\"); // tilde\n\ndefineSymbol(text, main, accent, \"\\u02c9\", \"\\\\=\"); // macron\n\ndefineSymbol(text, main, accent, \"\\u02d8\", \"\\\\u\"); // breve\n\ndefineSymbol(text, main, accent, \"\\u02d9\", \"\\\\.\"); // dot above\n\ndefineSymbol(text, main, accent, \"\\u00b8\", \"\\\\c\"); // cedilla\n\ndefineSymbol(text, main, accent, \"\\u02da\", \"\\\\r\"); // ring above\n\ndefineSymbol(text, main, accent, \"\\u02c7\", \"\\\\v\"); // caron\n\ndefineSymbol(text, main, accent, \"\\u00a8\", '\\\\\"'); // diaresis\n\ndefineSymbol(text, main, accent, \"\\u02dd\", \"\\\\H\"); // double acute\n\ndefineSymbol(text, main, accent, \"\\u25ef\", \"\\\\textcircled\"); // \\bigcirc glyph\n// These ligatures are detected and created in Parser.js's `formLigatures`.\n\nvar ligatures = {\n \"--\": true,\n \"---\": true,\n \"``\": true,\n \"''\": true\n};\ndefineSymbol(text, main, textord, \"\\u2013\", \"--\", true);\ndefineSymbol(text, main, textord, \"\\u2013\", \"\\\\textendash\");\ndefineSymbol(text, main, textord, \"\\u2014\", \"---\", true);\ndefineSymbol(text, main, textord, \"\\u2014\", \"\\\\textemdash\");\ndefineSymbol(text, main, textord, \"\\u2018\", \"`\", true);\ndefineSymbol(text, main, textord, \"\\u2018\", \"\\\\textquoteleft\");\ndefineSymbol(text, main, textord, \"\\u2019\", \"'\", true);\ndefineSymbol(text, main, textord, \"\\u2019\", \"\\\\textquoteright\");\ndefineSymbol(text, main, textord, \"\\u201c\", \"``\", true);\ndefineSymbol(text, main, textord, \"\\u201c\", \"\\\\textquotedblleft\");\ndefineSymbol(text, main, textord, \"\\u201d\", \"''\", true);\ndefineSymbol(text, main, textord, \"\\u201d\", \"\\\\textquotedblright\"); // \\degree from gensymb package\n\ndefineSymbol(math, main, textord, \"\\u00b0\", \"\\\\degree\", true);\ndefineSymbol(text, main, textord, \"\\u00b0\", \"\\\\degree\"); // \\textdegree from inputenc package\n\ndefineSymbol(text, main, textord, \"\\u00b0\", \"\\\\textdegree\", true); // TODO: In LaTeX, \\pounds can generate a different character in text and math\n// mode, but among our fonts, only Main-Regular defines this character \"163\".\n\ndefineSymbol(math, main, textord, \"\\u00a3\", \"\\\\pounds\");\ndefineSymbol(math, main, textord, \"\\u00a3\", \"\\\\mathsterling\", true);\ndefineSymbol(text, main, textord, \"\\u00a3\", \"\\\\pounds\");\ndefineSymbol(text, main, textord, \"\\u00a3\", \"\\\\textsterling\", true);\ndefineSymbol(math, ams, textord, \"\\u2720\", \"\\\\maltese\");\ndefineSymbol(text, ams, textord, \"\\u2720\", \"\\\\maltese\"); // There are lots of symbols which are the same, so we add them in afterwards.\n// All of these are textords in math mode\n\nvar mathTextSymbols = \"0123456789/@.\\\"\";\n\nfor (var i = 0; i < mathTextSymbols.length; i++) {\n var ch = mathTextSymbols.charAt(i);\n defineSymbol(math, main, textord, ch, ch);\n} // All of these are textords in text mode\n\n\nvar textSymbols = \"0123456789!@*()-=+\\\";:?/.,\";\n\nfor (var _i = 0; _i < textSymbols.length; _i++) {\n var _ch = textSymbols.charAt(_i);\n\n defineSymbol(text, main, textord, _ch, _ch);\n} // All of these are textords in text mode, and mathords in math mode\n\n\nvar letters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n\nfor (var _i2 = 0; _i2 < letters.length; _i2++) {\n var _ch2 = letters.charAt(_i2);\n\n defineSymbol(math, main, mathord, _ch2, _ch2);\n defineSymbol(text, main, textord, _ch2, _ch2);\n} // Blackboard bold and script letters in Unicode range\n\n\ndefineSymbol(math, ams, textord, \"C\", \"\\u2102\"); // blackboard bold\n\ndefineSymbol(text, ams, textord, \"C\", \"\\u2102\");\ndefineSymbol(math, ams, textord, \"H\", \"\\u210D\");\ndefineSymbol(text, ams, textord, \"H\", \"\\u210D\");\ndefineSymbol(math, ams, textord, \"N\", \"\\u2115\");\ndefineSymbol(text, ams, textord, \"N\", \"\\u2115\");\ndefineSymbol(math, ams, textord, \"P\", \"\\u2119\");\ndefineSymbol(text, ams, textord, \"P\", \"\\u2119\");\ndefineSymbol(math, ams, textord, \"Q\", \"\\u211A\");\ndefineSymbol(text, ams, textord, \"Q\", \"\\u211A\");\ndefineSymbol(math, ams, textord, \"R\", \"\\u211D\");\ndefineSymbol(text, ams, textord, \"R\", \"\\u211D\");\ndefineSymbol(math, ams, textord, \"Z\", \"\\u2124\");\ndefineSymbol(text, ams, textord, \"Z\", \"\\u2124\");\ndefineSymbol(math, main, mathord, \"h\", \"\\u210E\"); // italic h, Planck constant\n\ndefineSymbol(text, main, mathord, \"h\", \"\\u210E\"); // The next loop loads wide (surrogate pair) characters.\n// We support some letters in the Unicode range U+1D400 to U+1D7FF,\n// Mathematical Alphanumeric Symbols.\n// Some editors do not deal well with wide characters. So don't write the\n// string into this file. Instead, create the string from the surrogate pair.\n\nvar wideChar = \"\";\n\nfor (var _i3 = 0; _i3 < letters.length; _i3++) {\n var _ch3 = letters.charAt(_i3); // The hex numbers in the next line are a surrogate pair.\n // 0xD835 is the high surrogate for all letters in the range we support.\n // 0xDC00 is the low surrogate for bold A.\n\n\n wideChar = String.fromCharCode(0xD835, 0xDC00 + _i3); // A-Z a-z bold\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC34 + _i3); // A-Z a-z italic\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC68 + _i3); // A-Z a-z bold italic\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDD04 + _i3); // A-Z a-z Fractur\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDD6C + _i3); // A-Z a-z bold Fractur\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDDA0 + _i3); // A-Z a-z sans-serif\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDDD4 + _i3); // A-Z a-z sans bold\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDE08 + _i3); // A-Z a-z sans italic\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDE70 + _i3); // A-Z a-z monospace\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n\n if (_i3 < 26) {\n // KaTeX fonts have only capital letters for blackboard bold and script.\n // See exception for k below.\n wideChar = String.fromCharCode(0xD835, 0xDD38 + _i3); // A-Z double struck\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDC9C + _i3); // A-Z script\n\n defineSymbol(math, main, mathord, _ch3, wideChar);\n defineSymbol(text, main, textord, _ch3, wideChar);\n } // TODO: Add bold script when it is supported by a KaTeX font.\n\n} // \"k\" is the only double struck lower case letter in the KaTeX fonts.\n\n\nwideChar = String.fromCharCode(0xD835, 0xDD5C); // k double struck\n\ndefineSymbol(math, main, mathord, \"k\", wideChar);\ndefineSymbol(text, main, textord, \"k\", wideChar); // Next, some wide character numerals\n\nfor (var _i4 = 0; _i4 < 10; _i4++) {\n var _ch4 = _i4.toString();\n\n wideChar = String.fromCharCode(0xD835, 0xDFCE + _i4); // 0-9 bold\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(text, main, textord, _ch4, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFE2 + _i4); // 0-9 sans serif\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(text, main, textord, _ch4, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFEC + _i4); // 0-9 bold sans\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(text, main, textord, _ch4, wideChar);\n wideChar = String.fromCharCode(0xD835, 0xDFF6 + _i4); // 0-9 monospace\n\n defineSymbol(math, main, mathord, _ch4, wideChar);\n defineSymbol(text, main, textord, _ch4, wideChar);\n} // We add these Latin-1 letters as symbols for backwards-compatibility,\n// but they are not actually in the font, nor are they supported by the\n// Unicode accent mechanism, so they fall back to Times font and look ugly.\n// TODO(edemaine): Fix this.\n\n\nvar extraLatin = \"\\u00d0\\u00de\\u00fe\";\n\nfor (var _i5 = 0; _i5 < extraLatin.length; _i5++) {\n var _ch5 = extraLatin.charAt(_i5);\n\n defineSymbol(math, main, mathord, _ch5, _ch5);\n defineSymbol(text, main, textord, _ch5, _ch5);\n}\n\n/**\n * This file provides support for Unicode range U+1D400 to U+1D7FF,\n * Mathematical Alphanumeric Symbols.\n *\n * Function wideCharacterFont takes a wide character as input and returns\n * the font information necessary to render it properly.\n */\n/**\n * Data below is from https://www.unicode.org/charts/PDF/U1D400.pdf\n * That document sorts characters into groups by font type, say bold or italic.\n *\n * In the arrays below, each subarray consists three elements:\n * * The CSS class of that group when in math mode.\n * * The CSS class of that group when in text mode.\n * * The font name, so that KaTeX can get font metrics.\n */\n\nvar wideLatinLetterData = [[\"mathbf\", \"textbf\", \"Main-Bold\"], // A-Z bold upright\n[\"mathbf\", \"textbf\", \"Main-Bold\"], // a-z bold upright\n[\"mathnormal\", \"textit\", \"Math-Italic\"], // A-Z italic\n[\"mathnormal\", \"textit\", \"Math-Italic\"], // a-z italic\n[\"boldsymbol\", \"boldsymbol\", \"Main-BoldItalic\"], // A-Z bold italic\n[\"boldsymbol\", \"boldsymbol\", \"Main-BoldItalic\"], // a-z bold italic\n// Map fancy A-Z letters to script, not calligraphic.\n// This aligns with unicode-math and math fonts (except Cambria Math).\n[\"mathscr\", \"textscr\", \"Script-Regular\"], // A-Z script\n[\"\", \"\", \"\"], // a-z script. No font\n[\"\", \"\", \"\"], // A-Z bold script. No font\n[\"\", \"\", \"\"], // a-z bold script. No font\n[\"mathfrak\", \"textfrak\", \"Fraktur-Regular\"], // A-Z Fraktur\n[\"mathfrak\", \"textfrak\", \"Fraktur-Regular\"], // a-z Fraktur\n[\"mathbb\", \"textbb\", \"AMS-Regular\"], // A-Z double-struck\n[\"mathbb\", \"textbb\", \"AMS-Regular\"], // k double-struck\n// Note that we are using a bold font, but font metrics for regular Fraktur.\n[\"mathboldfrak\", \"textboldfrak\", \"Fraktur-Regular\"], // A-Z bold Fraktur\n[\"mathboldfrak\", \"textboldfrak\", \"Fraktur-Regular\"], // a-z bold Fraktur\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // A-Z sans-serif\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // a-z sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // A-Z bold sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // a-z bold sans-serif\n[\"mathitsf\", \"textitsf\", \"SansSerif-Italic\"], // A-Z italic sans-serif\n[\"mathitsf\", \"textitsf\", \"SansSerif-Italic\"], // a-z italic sans-serif\n[\"\", \"\", \"\"], // A-Z bold italic sans. No font\n[\"\", \"\", \"\"], // a-z bold italic sans. No font\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"], // A-Z monospace\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"] // a-z monospace\n];\nvar wideNumeralData = [[\"mathbf\", \"textbf\", \"Main-Bold\"], // 0-9 bold\n[\"\", \"\", \"\"], // 0-9 double-struck. No KaTeX font.\n[\"mathsf\", \"textsf\", \"SansSerif-Regular\"], // 0-9 sans-serif\n[\"mathboldsf\", \"textboldsf\", \"SansSerif-Bold\"], // 0-9 bold sans-serif\n[\"mathtt\", \"texttt\", \"Typewriter-Regular\"] // 0-9 monospace\n];\nvar wideCharacterFont = function wideCharacterFont(wideChar, mode) {\n // IE doesn't support codePointAt(). So work with the surrogate pair.\n var H = wideChar.charCodeAt(0); // high surrogate\n\n var L = wideChar.charCodeAt(1); // low surrogate\n\n var codePoint = (H - 0xD800) * 0x400 + (L - 0xDC00) + 0x10000;\n var j = mode === \"math\" ? 0 : 1; // column index for CSS class.\n\n if (0x1D400 <= codePoint && codePoint < 0x1D6A4) {\n // wideLatinLetterData contains exactly 26 chars on each row.\n // So we can calculate the relevant row. No traverse necessary.\n var i = Math.floor((codePoint - 0x1D400) / 26);\n return [wideLatinLetterData[i][2], wideLatinLetterData[i][j]];\n } else if (0x1D7CE <= codePoint && codePoint <= 0x1D7FF) {\n // Numerals, ten per row.\n var _i = Math.floor((codePoint - 0x1D7CE) / 10);\n\n return [wideNumeralData[_i][2], wideNumeralData[_i][j]];\n } else if (codePoint === 0x1D6A5 || codePoint === 0x1D6A6) {\n // dotless i or j\n return [wideLatinLetterData[0][2], wideLatinLetterData[0][j]];\n } else if (0x1D6A6 < codePoint && codePoint < 0x1D7CE) {\n // Greek letters. Not supported, yet.\n return [\"\", \"\"];\n } else {\n // We don't support any wide characters outside 1D400–1D7FF.\n throw new ParseError(\"Unsupported character: \" + wideChar);\n }\n};\n\n/* eslint no-console:0 */\n\n/**\n * Looks up the given symbol in fontMetrics, after applying any symbol\n * replacements defined in symbol.js\n */\nvar lookupSymbol = function lookupSymbol(value, // TODO(#963): Use a union type for this.\nfontName, mode) {\n // Replace the value with its replaced value from symbol.js\n if (symbols[mode][value] && symbols[mode][value].replace) {\n value = symbols[mode][value].replace;\n }\n\n return {\n value: value,\n metrics: getCharacterMetrics(value, fontName, mode)\n };\n};\n/**\n * Makes a symbolNode after translation via the list of symbols in symbols.js.\n * Correctly pulls out metrics for the character, and optionally takes a list of\n * classes to be attached to the node.\n *\n * TODO: make argument order closer to makeSpan\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n * TODO(#953): Make `options` mandatory and always pass it in.\n */\n\n\nvar makeSymbol = function makeSymbol(value, fontName, mode, options, classes) {\n var lookup = lookupSymbol(value, fontName, mode);\n var metrics = lookup.metrics;\n value = lookup.value;\n var symbolNode;\n\n if (metrics) {\n var italic = metrics.italic;\n\n if (mode === \"text\" || options && options.font === \"mathit\") {\n italic = 0;\n }\n\n symbolNode = new SymbolNode(value, metrics.height, metrics.depth, italic, metrics.skew, metrics.width, classes);\n } else {\n // TODO(emily): Figure out a good way to only print this in development\n typeof console !== \"undefined\" && console.warn(\"No character metrics \" + (\"for '\" + value + \"' in style '\" + fontName + \"' and mode '\" + mode + \"'\"));\n symbolNode = new SymbolNode(value, 0, 0, 0, 0, 0, classes);\n }\n\n if (options) {\n symbolNode.maxFontSize = options.sizeMultiplier;\n\n if (options.style.isTight()) {\n symbolNode.classes.push(\"mtight\");\n }\n\n var color = options.getColor();\n\n if (color) {\n symbolNode.style.color = color;\n }\n }\n\n return symbolNode;\n};\n/**\n * Makes a symbol in Main-Regular or AMS-Regular.\n * Used for rel, bin, open, close, inner, and punct.\n */\n\n\nvar mathsym = function mathsym(value, mode, options, classes) {\n if (classes === void 0) {\n classes = [];\n }\n\n // Decide what font to render the symbol in by its entry in the symbols\n // table.\n // Have a special case for when the value = \\ because the \\ is used as a\n // textord in unsupported command errors but cannot be parsed as a regular\n // text ordinal and is therefore not present as a symbol in the symbols\n // table for text, as well as a special case for boldsymbol because it\n // can be used for bold + and -\n if (options.font === \"boldsymbol\" && lookupSymbol(value, \"Main-Bold\", mode).metrics) {\n return makeSymbol(value, \"Main-Bold\", mode, options, classes.concat([\"mathbf\"]));\n } else if (value === \"\\\\\" || symbols[mode][value].font === \"main\") {\n return makeSymbol(value, \"Main-Regular\", mode, options, classes);\n } else {\n return makeSymbol(value, \"AMS-Regular\", mode, options, classes.concat([\"amsrm\"]));\n }\n};\n/**\n * Determines which of the two font names (Main-Bold and Math-BoldItalic) and\n * corresponding style tags (mathbf or boldsymbol) to use for font \"boldsymbol\",\n * depending on the symbol. Use this function instead of fontMap for font\n * \"boldsymbol\".\n */\n\n\nvar boldsymbol = function boldsymbol(value, mode, options, classes, type) {\n if (type !== \"textord\" && lookupSymbol(value, \"Math-BoldItalic\", mode).metrics) {\n return {\n fontName: \"Math-BoldItalic\",\n fontClass: \"boldsymbol\"\n };\n } else {\n // Some glyphs do not exist in Math-BoldItalic so we need to use\n // Main-Bold instead.\n return {\n fontName: \"Main-Bold\",\n fontClass: \"mathbf\"\n };\n }\n};\n/**\n * Makes either a mathord or textord in the correct font and color.\n */\n\n\nvar makeOrd = function makeOrd(group, options, type) {\n var mode = group.mode;\n var text = group.text;\n var classes = [\"mord\"]; // Math mode or Old font (i.e. \\rm)\n\n var isFont = mode === \"math\" || mode === \"text\" && options.font;\n var fontOrFamily = isFont ? options.font : options.fontFamily;\n var wideFontName = \"\";\n var wideFontClass = \"\";\n\n if (text.charCodeAt(0) === 0xD835) {\n [wideFontName, wideFontClass] = wideCharacterFont(text, mode);\n }\n\n if (wideFontName.length > 0) {\n // surrogate pairs get special treatment\n return makeSymbol(text, wideFontName, mode, options, classes.concat(wideFontClass));\n } else if (fontOrFamily) {\n var fontName;\n var fontClasses;\n\n if (fontOrFamily === \"boldsymbol\") {\n var fontData = boldsymbol(text, mode, options, classes, type);\n fontName = fontData.fontName;\n fontClasses = [fontData.fontClass];\n } else if (isFont) {\n fontName = fontMap[fontOrFamily].fontName;\n fontClasses = [fontOrFamily];\n } else {\n fontName = retrieveTextFontName(fontOrFamily, options.fontWeight, options.fontShape);\n fontClasses = [fontOrFamily, options.fontWeight, options.fontShape];\n }\n\n if (lookupSymbol(text, fontName, mode).metrics) {\n return makeSymbol(text, fontName, mode, options, classes.concat(fontClasses));\n } else if (ligatures.hasOwnProperty(text) && fontName.slice(0, 10) === \"Typewriter\") {\n // Deconstruct ligatures in monospace fonts (\\texttt, \\tt).\n var parts = [];\n\n for (var i = 0; i < text.length; i++) {\n parts.push(makeSymbol(text[i], fontName, mode, options, classes.concat(fontClasses)));\n }\n\n return makeFragment(parts);\n }\n } // Makes a symbol in the default font for mathords and textords.\n\n\n if (type === \"mathord\") {\n return makeSymbol(text, \"Math-Italic\", mode, options, classes.concat([\"mathnormal\"]));\n } else if (type === \"textord\") {\n var font = symbols[mode][text] && symbols[mode][text].font;\n\n if (font === \"ams\") {\n var _fontName = retrieveTextFontName(\"amsrm\", options.fontWeight, options.fontShape);\n\n return makeSymbol(text, _fontName, mode, options, classes.concat(\"amsrm\", options.fontWeight, options.fontShape));\n } else if (font === \"main\" || !font) {\n var _fontName2 = retrieveTextFontName(\"textrm\", options.fontWeight, options.fontShape);\n\n return makeSymbol(text, _fontName2, mode, options, classes.concat(options.fontWeight, options.fontShape));\n } else {\n // fonts added by plugins\n var _fontName3 = retrieveTextFontName(font, options.fontWeight, options.fontShape); // We add font name as a css class\n\n\n return makeSymbol(text, _fontName3, mode, options, classes.concat(_fontName3, options.fontWeight, options.fontShape));\n }\n } else {\n throw new Error(\"unexpected type: \" + type + \" in makeOrd\");\n }\n};\n/**\n * Returns true if subsequent symbolNodes have the same classes, skew, maxFont,\n * and styles.\n */\n\n\nvar canCombine = (prev, next) => {\n if (createClass(prev.classes) !== createClass(next.classes) || prev.skew !== next.skew || prev.maxFontSize !== next.maxFontSize) {\n return false;\n } // If prev and next both are just \"mbin\"s or \"mord\"s we don't combine them\n // so that the proper spacing can be preserved.\n\n\n if (prev.classes.length === 1) {\n var cls = prev.classes[0];\n\n if (cls === \"mbin\" || cls === \"mord\") {\n return false;\n }\n }\n\n for (var style in prev.style) {\n if (prev.style.hasOwnProperty(style) && prev.style[style] !== next.style[style]) {\n return false;\n }\n }\n\n for (var _style in next.style) {\n if (next.style.hasOwnProperty(_style) && prev.style[_style] !== next.style[_style]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Combine consecutive domTree.symbolNodes into a single symbolNode.\n * Note: this function mutates the argument.\n */\n\n\nvar tryCombineChars = chars => {\n for (var i = 0; i < chars.length - 1; i++) {\n var prev = chars[i];\n var next = chars[i + 1];\n\n if (prev instanceof SymbolNode && next instanceof SymbolNode && canCombine(prev, next)) {\n prev.text += next.text;\n prev.height = Math.max(prev.height, next.height);\n prev.depth = Math.max(prev.depth, next.depth); // Use the last character's italic correction since we use\n // it to add padding to the right of the span created from\n // the combined characters.\n\n prev.italic = next.italic;\n chars.splice(i + 1, 1);\n i--;\n }\n }\n\n return chars;\n};\n/**\n * Calculate the height, depth, and maxFontSize of an element based on its\n * children.\n */\n\n\nvar sizeElementFromChildren = function sizeElementFromChildren(elem) {\n var height = 0;\n var depth = 0;\n var maxFontSize = 0;\n\n for (var i = 0; i < elem.children.length; i++) {\n var child = elem.children[i];\n\n if (child.height > height) {\n height = child.height;\n }\n\n if (child.depth > depth) {\n depth = child.depth;\n }\n\n if (child.maxFontSize > maxFontSize) {\n maxFontSize = child.maxFontSize;\n }\n }\n\n elem.height = height;\n elem.depth = depth;\n elem.maxFontSize = maxFontSize;\n};\n/**\n * Makes a span with the given list of classes, list of children, and options.\n *\n * TODO(#953): Ensure that `options` is always provided (currently some call\n * sites don't pass it) and make the type below mandatory.\n * TODO: add a separate argument for math class (e.g. `mop`, `mbin`), which\n * should if present come first in `classes`.\n */\n\n\nvar makeSpan$2 = function makeSpan(classes, children, options, style) {\n var span = new Span(classes, children, options, style);\n sizeElementFromChildren(span);\n return span;\n}; // SVG one is simpler -- doesn't require height, depth, max-font setting.\n// This is also a separate method for typesafety.\n\n\nvar makeSvgSpan = (classes, children, options, style) => new Span(classes, children, options, style);\n\nvar makeLineSpan = function makeLineSpan(className, options, thickness) {\n var line = makeSpan$2([className], [], options);\n line.height = Math.max(thickness || options.fontMetrics().defaultRuleThickness, options.minRuleThickness);\n line.style.borderBottomWidth = makeEm(line.height);\n line.maxFontSize = 1.0;\n return line;\n};\n/**\n * Makes an anchor with the given href, list of classes, list of children,\n * and options.\n */\n\n\nvar makeAnchor = function makeAnchor(href, classes, children, options) {\n var anchor = new Anchor(href, classes, children, options);\n sizeElementFromChildren(anchor);\n return anchor;\n};\n/**\n * Makes a document fragment with the given list of children.\n */\n\n\nvar makeFragment = function makeFragment(children) {\n var fragment = new DocumentFragment(children);\n sizeElementFromChildren(fragment);\n return fragment;\n};\n/**\n * Wraps group in a span if it's a document fragment, allowing to apply classes\n * and styles\n */\n\n\nvar wrapFragment = function wrapFragment(group, options) {\n if (group instanceof DocumentFragment) {\n return makeSpan$2([], [group], options);\n }\n\n return group;\n}; // These are exact object types to catch typos in the names of the optional fields.\n\n\n// Computes the updated `children` list and the overall depth.\n//\n// This helper function for makeVList makes it easier to enforce type safety by\n// allowing early exits (returns) in the logic.\nvar getVListChildrenAndDepth = function getVListChildrenAndDepth(params) {\n if (params.positionType === \"individualShift\") {\n var oldChildren = params.children;\n var children = [oldChildren[0]]; // Add in kerns to the list of params.children to get each element to be\n // shifted to the correct specified shift\n\n var _depth = -oldChildren[0].shift - oldChildren[0].elem.depth;\n\n var currPos = _depth;\n\n for (var i = 1; i < oldChildren.length; i++) {\n var diff = -oldChildren[i].shift - currPos - oldChildren[i].elem.depth;\n var size = diff - (oldChildren[i - 1].elem.height + oldChildren[i - 1].elem.depth);\n currPos = currPos + diff;\n children.push({\n type: \"kern\",\n size\n });\n children.push(oldChildren[i]);\n }\n\n return {\n children,\n depth: _depth\n };\n }\n\n var depth;\n\n if (params.positionType === \"top\") {\n // We always start at the bottom, so calculate the bottom by adding up\n // all the sizes\n var bottom = params.positionData;\n\n for (var _i = 0; _i < params.children.length; _i++) {\n var child = params.children[_i];\n bottom -= child.type === \"kern\" ? child.size : child.elem.height + child.elem.depth;\n }\n\n depth = bottom;\n } else if (params.positionType === \"bottom\") {\n depth = -params.positionData;\n } else {\n var firstChild = params.children[0];\n\n if (firstChild.type !== \"elem\") {\n throw new Error('First child must have type \"elem\".');\n }\n\n if (params.positionType === \"shift\") {\n depth = -firstChild.elem.depth - params.positionData;\n } else if (params.positionType === \"firstBaseline\") {\n depth = -firstChild.elem.depth;\n } else {\n throw new Error(\"Invalid positionType \" + params.positionType + \".\");\n }\n }\n\n return {\n children: params.children,\n depth\n };\n};\n/**\n * Makes a vertical list by stacking elements and kerns on top of each other.\n * Allows for many different ways of specifying the positioning method.\n *\n * See VListParam documentation above.\n */\n\n\nvar makeVList = function makeVList(params, options) {\n var {\n children,\n depth\n } = getVListChildrenAndDepth(params); // Create a strut that is taller than any list item. The strut is added to\n // each item, where it will determine the item's baseline. Since it has\n // `overflow:hidden`, the strut's top edge will sit on the item's line box's\n // top edge and the strut's bottom edge will sit on the item's baseline,\n // with no additional line-height spacing. This allows the item baseline to\n // be positioned precisely without worrying about font ascent and\n // line-height.\n\n var pstrutSize = 0;\n\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n\n if (child.type === \"elem\") {\n var elem = child.elem;\n pstrutSize = Math.max(pstrutSize, elem.maxFontSize, elem.height);\n }\n }\n\n pstrutSize += 2;\n var pstrut = makeSpan$2([\"pstrut\"], []);\n pstrut.style.height = makeEm(pstrutSize); // Create a new list of actual children at the correct offsets\n\n var realChildren = [];\n var minPos = depth;\n var maxPos = depth;\n var currPos = depth;\n\n for (var _i2 = 0; _i2 < children.length; _i2++) {\n var _child = children[_i2];\n\n if (_child.type === \"kern\") {\n currPos += _child.size;\n } else {\n var _elem = _child.elem;\n var classes = _child.wrapperClasses || [];\n var style = _child.wrapperStyle || {};\n var childWrap = makeSpan$2(classes, [pstrut, _elem], undefined, style);\n childWrap.style.top = makeEm(-pstrutSize - currPos - _elem.depth);\n\n if (_child.marginLeft) {\n childWrap.style.marginLeft = _child.marginLeft;\n }\n\n if (_child.marginRight) {\n childWrap.style.marginRight = _child.marginRight;\n }\n\n realChildren.push(childWrap);\n currPos += _elem.height + _elem.depth;\n }\n\n minPos = Math.min(minPos, currPos);\n maxPos = Math.max(maxPos, currPos);\n } // The vlist contents go in a table-cell with `vertical-align:bottom`.\n // This cell's bottom edge will determine the containing table's baseline\n // without overly expanding the containing line-box.\n\n\n var vlist = makeSpan$2([\"vlist\"], realChildren);\n vlist.style.height = makeEm(maxPos); // A second row is used if necessary to represent the vlist's depth.\n\n var rows;\n\n if (minPos < 0) {\n // We will define depth in an empty span with display: table-cell.\n // It should render with the height that we define. But Chrome, in\n // contenteditable mode only, treats that span as if it contains some\n // text content. And that min-height over-rides our desired height.\n // So we put another empty span inside the depth strut span.\n var emptySpan = makeSpan$2([], []);\n var depthStrut = makeSpan$2([\"vlist\"], [emptySpan]);\n depthStrut.style.height = makeEm(-minPos); // Safari wants the first row to have inline content; otherwise it\n // puts the bottom of the *second* row on the baseline.\n\n var topStrut = makeSpan$2([\"vlist-s\"], [new SymbolNode(\"\\u200b\")]);\n rows = [makeSpan$2([\"vlist-r\"], [vlist, topStrut]), makeSpan$2([\"vlist-r\"], [depthStrut])];\n } else {\n rows = [makeSpan$2([\"vlist-r\"], [vlist])];\n }\n\n var vtable = makeSpan$2([\"vlist-t\"], rows);\n\n if (rows.length === 2) {\n vtable.classes.push(\"vlist-t2\");\n }\n\n vtable.height = maxPos;\n vtable.depth = -minPos;\n return vtable;\n}; // Glue is a concept from TeX which is a flexible space between elements in\n// either a vertical or horizontal list. In KaTeX, at least for now, it's\n// static space between elements in a horizontal layout.\n\n\nvar makeGlue = (measurement, options) => {\n // Make an empty span for the space\n var rule = makeSpan$2([\"mspace\"], [], options);\n var size = calculateSize(measurement, options);\n rule.style.marginRight = makeEm(size);\n return rule;\n}; // Takes font options, and returns the appropriate fontLookup name\n\n\nvar retrieveTextFontName = function retrieveTextFontName(fontFamily, fontWeight, fontShape) {\n var baseFontName = \"\";\n\n switch (fontFamily) {\n case \"amsrm\":\n baseFontName = \"AMS\";\n break;\n\n case \"textrm\":\n baseFontName = \"Main\";\n break;\n\n case \"textsf\":\n baseFontName = \"SansSerif\";\n break;\n\n case \"texttt\":\n baseFontName = \"Typewriter\";\n break;\n\n default:\n baseFontName = fontFamily;\n // use fonts added by a plugin\n }\n\n var fontStylesName;\n\n if (fontWeight === \"textbf\" && fontShape === \"textit\") {\n fontStylesName = \"BoldItalic\";\n } else if (fontWeight === \"textbf\") {\n fontStylesName = \"Bold\";\n } else if (fontWeight === \"textit\") {\n fontStylesName = \"Italic\";\n } else {\n fontStylesName = \"Regular\";\n }\n\n return baseFontName + \"-\" + fontStylesName;\n};\n/**\n * Maps TeX font commands to objects containing:\n * - variant: string used for \"mathvariant\" attribute in buildMathML.js\n * - fontName: the \"style\" parameter to fontMetrics.getCharacterMetrics\n */\n// A map between tex font commands an MathML mathvariant attribute values\n\n\nvar fontMap = {\n // styles\n \"mathbf\": {\n variant: \"bold\",\n fontName: \"Main-Bold\"\n },\n \"mathrm\": {\n variant: \"normal\",\n fontName: \"Main-Regular\"\n },\n \"textit\": {\n variant: \"italic\",\n fontName: \"Main-Italic\"\n },\n \"mathit\": {\n variant: \"italic\",\n fontName: \"Main-Italic\"\n },\n \"mathnormal\": {\n variant: \"italic\",\n fontName: \"Math-Italic\"\n },\n // \"boldsymbol\" is missing because they require the use of multiple fonts:\n // Math-BoldItalic and Main-Bold. This is handled by a special case in\n // makeOrd which ends up calling boldsymbol.\n // families\n \"mathbb\": {\n variant: \"double-struck\",\n fontName: \"AMS-Regular\"\n },\n \"mathcal\": {\n variant: \"script\",\n fontName: \"Caligraphic-Regular\"\n },\n \"mathfrak\": {\n variant: \"fraktur\",\n fontName: \"Fraktur-Regular\"\n },\n \"mathscr\": {\n variant: \"script\",\n fontName: \"Script-Regular\"\n },\n \"mathsf\": {\n variant: \"sans-serif\",\n fontName: \"SansSerif-Regular\"\n },\n \"mathtt\": {\n variant: \"monospace\",\n fontName: \"Typewriter-Regular\"\n }\n};\nvar svgData = {\n // path, width, height\n vec: [\"vec\", 0.471, 0.714],\n // values from the font glyph\n oiintSize1: [\"oiintSize1\", 0.957, 0.499],\n // oval to overlay the integrand\n oiintSize2: [\"oiintSize2\", 1.472, 0.659],\n oiiintSize1: [\"oiiintSize1\", 1.304, 0.499],\n oiiintSize2: [\"oiiintSize2\", 1.98, 0.659]\n};\n\nvar staticSvg = function staticSvg(value, options) {\n // Create a span with inline SVG for the element.\n var [pathName, width, height] = svgData[value];\n var path = new PathNode(pathName);\n var svgNode = new SvgNode([path], {\n \"width\": makeEm(width),\n \"height\": makeEm(height),\n // Override CSS rule `.katex svg { width: 100% }`\n \"style\": \"width:\" + makeEm(width),\n \"viewBox\": \"0 0 \" + 1000 * width + \" \" + 1000 * height,\n \"preserveAspectRatio\": \"xMinYMin\"\n });\n var span = makeSvgSpan([\"overlay\"], [svgNode], options);\n span.height = height;\n span.style.height = makeEm(height);\n span.style.width = makeEm(width);\n return span;\n};\n\nvar buildCommon = {\n fontMap,\n makeSymbol,\n mathsym,\n makeSpan: makeSpan$2,\n makeSvgSpan,\n makeLineSpan,\n makeAnchor,\n makeFragment,\n wrapFragment,\n makeVList,\n makeOrd,\n makeGlue,\n staticSvg,\n svgData,\n tryCombineChars\n};\n\n/**\n * Describes spaces between different classes of atoms.\n */\nvar thinspace = {\n number: 3,\n unit: \"mu\"\n};\nvar mediumspace = {\n number: 4,\n unit: \"mu\"\n};\nvar thickspace = {\n number: 5,\n unit: \"mu\"\n}; // Making the type below exact with all optional fields doesn't work due to\n// - https://github.com/facebook/flow/issues/4582\n// - https://github.com/facebook/flow/issues/5688\n// However, since *all* fields are optional, $Shape<> works as suggested in 5688\n// above.\n\n// Spacing relationships for display and text styles\nvar spacings = {\n mord: {\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n minner: thinspace\n },\n mop: {\n mord: thinspace,\n mop: thinspace,\n mrel: thickspace,\n minner: thinspace\n },\n mbin: {\n mord: mediumspace,\n mop: mediumspace,\n mopen: mediumspace,\n minner: mediumspace\n },\n mrel: {\n mord: thickspace,\n mop: thickspace,\n mopen: thickspace,\n minner: thickspace\n },\n mopen: {},\n mclose: {\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n minner: thinspace\n },\n mpunct: {\n mord: thinspace,\n mop: thinspace,\n mrel: thickspace,\n mopen: thinspace,\n mclose: thinspace,\n mpunct: thinspace,\n minner: thinspace\n },\n minner: {\n mord: thinspace,\n mop: thinspace,\n mbin: mediumspace,\n mrel: thickspace,\n mopen: thinspace,\n mpunct: thinspace,\n minner: thinspace\n }\n}; // Spacing relationships for script and scriptscript styles\n\nvar tightSpacings = {\n mord: {\n mop: thinspace\n },\n mop: {\n mord: thinspace,\n mop: thinspace\n },\n mbin: {},\n mrel: {},\n mopen: {},\n mclose: {\n mop: thinspace\n },\n mpunct: {},\n minner: {\n mop: thinspace\n }\n};\n\n/** Context provided to function handlers for error messages. */\n// Note: reverse the order of the return type union will cause a flow error.\n// See https://github.com/facebook/flow/issues/3663.\n// More general version of `HtmlBuilder` for nodes (e.g. \\sum, accent types)\n// whose presence impacts super/subscripting. In this case, ParseNode<\"supsub\">\n// delegates its HTML building to the HtmlBuilder corresponding to these nodes.\n\n/**\n * Final function spec for use at parse time.\n * This is almost identical to `FunctionPropSpec`, except it\n * 1. includes the function handler, and\n * 2. requires all arguments except argTypes.\n * It is generated by `defineFunction()` below.\n */\n\n/**\n * All registered functions.\n * `functions.js` just exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary.\n */\nvar _functions = {};\n/**\n * All HTML builders. Should be only used in the `define*` and the `build*ML`\n * functions.\n */\n\nvar _htmlGroupBuilders = {};\n/**\n * All MathML builders. Should be only used in the `define*` and the `build*ML`\n * functions.\n */\n\nvar _mathmlGroupBuilders = {};\nfunction defineFunction(_ref) {\n var {\n type,\n names,\n props,\n handler,\n htmlBuilder,\n mathmlBuilder\n } = _ref;\n // Set default values of functions\n var data = {\n type,\n numArgs: props.numArgs,\n argTypes: props.argTypes,\n allowedInArgument: !!props.allowedInArgument,\n allowedInText: !!props.allowedInText,\n allowedInMath: props.allowedInMath === undefined ? true : props.allowedInMath,\n numOptionalArgs: props.numOptionalArgs || 0,\n infix: !!props.infix,\n primitive: !!props.primitive,\n handler: handler\n };\n\n for (var i = 0; i < names.length; ++i) {\n _functions[names[i]] = data;\n }\n\n if (type) {\n if (htmlBuilder) {\n _htmlGroupBuilders[type] = htmlBuilder;\n }\n\n if (mathmlBuilder) {\n _mathmlGroupBuilders[type] = mathmlBuilder;\n }\n }\n}\n/**\n * Use this to register only the HTML and MathML builders for a function (e.g.\n * if the function's ParseNode is generated in Parser.js rather than via a\n * stand-alone handler provided to `defineFunction`).\n */\n\nfunction defineFunctionBuilders(_ref2) {\n var {\n type,\n htmlBuilder,\n mathmlBuilder\n } = _ref2;\n defineFunction({\n type,\n names: [],\n props: {\n numArgs: 0\n },\n\n handler() {\n throw new Error('Should never be called.');\n },\n\n htmlBuilder,\n mathmlBuilder\n });\n}\nvar normalizeArgument = function normalizeArgument(arg) {\n return arg.type === \"ordgroup\" && arg.body.length === 1 ? arg.body[0] : arg;\n}; // Since the corresponding buildHTML/buildMathML function expects a\n// list of elements, we normalize for different kinds of arguments\n\nvar ordargument = function ordargument(arg) {\n return arg.type === \"ordgroup\" ? arg.body : [arg];\n};\n\n/**\n * This file does the main work of building a domTree structure from a parse\n * tree. The entry point is the `buildHTML` function, which takes a parse tree.\n * Then, the buildExpression, buildGroup, and various groupBuilders functions\n * are called, to produce a final HTML tree.\n */\nvar makeSpan$1 = buildCommon.makeSpan; // Binary atoms (first class `mbin`) change into ordinary atoms (`mord`)\n// depending on their surroundings. See TeXbook pg. 442-446, Rules 5 and 6,\n// and the text before Rule 19.\n\nvar binLeftCanceller = [\"leftmost\", \"mbin\", \"mopen\", \"mrel\", \"mop\", \"mpunct\"];\nvar binRightCanceller = [\"rightmost\", \"mrel\", \"mclose\", \"mpunct\"];\nvar styleMap$1 = {\n \"display\": Style$1.DISPLAY,\n \"text\": Style$1.TEXT,\n \"script\": Style$1.SCRIPT,\n \"scriptscript\": Style$1.SCRIPTSCRIPT\n};\nvar DomEnum = {\n mord: \"mord\",\n mop: \"mop\",\n mbin: \"mbin\",\n mrel: \"mrel\",\n mopen: \"mopen\",\n mclose: \"mclose\",\n mpunct: \"mpunct\",\n minner: \"minner\"\n};\n\n/**\n * Take a list of nodes, build them in order, and return a list of the built\n * nodes. documentFragments are flattened into their contents, so the\n * returned list contains no fragments. `isRealGroup` is true if `expression`\n * is a real group (no atoms will be added on either side), as opposed to\n * a partial group (e.g. one created by \\color). `surrounding` is an array\n * consisting type of nodes that will be added to the left and right.\n */\nvar buildExpression$1 = function buildExpression(expression, options, isRealGroup, surrounding) {\n if (surrounding === void 0) {\n surrounding = [null, null];\n }\n\n // Parse expressions into `groups`.\n var groups = [];\n\n for (var i = 0; i < expression.length; i++) {\n var output = buildGroup$1(expression[i], options);\n\n if (output instanceof DocumentFragment) {\n var children = output.children;\n groups.push(...children);\n } else {\n groups.push(output);\n }\n } // Combine consecutive domTree.symbolNodes into a single symbolNode.\n\n\n buildCommon.tryCombineChars(groups); // If `expression` is a partial group, let the parent handle spacings\n // to avoid processing groups multiple times.\n\n if (!isRealGroup) {\n return groups;\n }\n\n var glueOptions = options;\n\n if (expression.length === 1) {\n var node = expression[0];\n\n if (node.type === \"sizing\") {\n glueOptions = options.havingSize(node.size);\n } else if (node.type === \"styling\") {\n glueOptions = options.havingStyle(styleMap$1[node.style]);\n }\n } // Dummy spans for determining spacings between surrounding atoms.\n // If `expression` has no atoms on the left or right, class \"leftmost\"\n // or \"rightmost\", respectively, is used to indicate it.\n\n\n var dummyPrev = makeSpan$1([surrounding[0] || \"leftmost\"], [], options);\n var dummyNext = makeSpan$1([surrounding[1] || \"rightmost\"], [], options); // TODO: These code assumes that a node's math class is the first element\n // of its `classes` array. A later cleanup should ensure this, for\n // instance by changing the signature of `makeSpan`.\n // Before determining what spaces to insert, perform bin cancellation.\n // Binary operators change to ordinary symbols in some contexts.\n\n var isRoot = isRealGroup === \"root\";\n traverseNonSpaceNodes(groups, (node, prev) => {\n var prevType = prev.classes[0];\n var type = node.classes[0];\n\n if (prevType === \"mbin\" && utils.contains(binRightCanceller, type)) {\n prev.classes[0] = \"mord\";\n } else if (type === \"mbin\" && utils.contains(binLeftCanceller, prevType)) {\n node.classes[0] = \"mord\";\n }\n }, {\n node: dummyPrev\n }, dummyNext, isRoot);\n traverseNonSpaceNodes(groups, (node, prev) => {\n var prevType = getTypeOfDomTree(prev);\n var type = getTypeOfDomTree(node); // 'mtight' indicates that the node is script or scriptscript style.\n\n var space = prevType && type ? node.hasClass(\"mtight\") ? tightSpacings[prevType][type] : spacings[prevType][type] : null;\n\n if (space) {\n // Insert glue (spacing) after the `prev`.\n return buildCommon.makeGlue(space, glueOptions);\n }\n }, {\n node: dummyPrev\n }, dummyNext, isRoot);\n return groups;\n}; // Depth-first traverse non-space `nodes`, calling `callback` with the current and\n// previous node as arguments, optionally returning a node to insert after the\n// previous node. `prev` is an object with the previous node and `insertAfter`\n// function to insert after it. `next` is a node that will be added to the right.\n// Used for bin cancellation and inserting spacings.\n\nvar traverseNonSpaceNodes = function traverseNonSpaceNodes(nodes, callback, prev, next, isRoot) {\n if (next) {\n // temporarily append the right node, if exists\n nodes.push(next);\n }\n\n var i = 0;\n\n for (; i < nodes.length; i++) {\n var node = nodes[i];\n var partialGroup = checkPartialGroup(node);\n\n if (partialGroup) {\n // Recursive DFS\n // $FlowFixMe: make nodes a $ReadOnlyArray by returning a new array\n traverseNonSpaceNodes(partialGroup.children, callback, prev, null, isRoot);\n continue;\n } // Ignore explicit spaces (e.g., \\;, \\,) when determining what implicit\n // spacing should go between atoms of different classes\n\n\n var nonspace = !node.hasClass(\"mspace\");\n\n if (nonspace) {\n var result = callback(node, prev.node);\n\n if (result) {\n if (prev.insertAfter) {\n prev.insertAfter(result);\n } else {\n // insert at front\n nodes.unshift(result);\n i++;\n }\n }\n }\n\n if (nonspace) {\n prev.node = node;\n } else if (isRoot && node.hasClass(\"newline\")) {\n prev.node = makeSpan$1([\"leftmost\"]); // treat like beginning of line\n }\n\n prev.insertAfter = (index => n => {\n nodes.splice(index + 1, 0, n);\n i++;\n })(i);\n }\n\n if (next) {\n nodes.pop();\n }\n}; // Check if given node is a partial group, i.e., does not affect spacing around.\n\n\nvar checkPartialGroup = function checkPartialGroup(node) {\n if (node instanceof DocumentFragment || node instanceof Anchor || node instanceof Span && node.hasClass(\"enclosing\")) {\n return node;\n }\n\n return null;\n}; // Return the outermost node of a domTree.\n\n\nvar getOutermostNode = function getOutermostNode(node, side) {\n var partialGroup = checkPartialGroup(node);\n\n if (partialGroup) {\n var children = partialGroup.children;\n\n if (children.length) {\n if (side === \"right\") {\n return getOutermostNode(children[children.length - 1], \"right\");\n } else if (side === \"left\") {\n return getOutermostNode(children[0], \"left\");\n }\n }\n }\n\n return node;\n}; // Return math atom class (mclass) of a domTree.\n// If `side` is given, it will get the type of the outermost node at given side.\n\n\nvar getTypeOfDomTree = function getTypeOfDomTree(node, side) {\n if (!node) {\n return null;\n }\n\n if (side) {\n node = getOutermostNode(node, side);\n } // This makes a lot of assumptions as to where the type of atom\n // appears. We should do a better job of enforcing this.\n\n\n return DomEnum[node.classes[0]] || null;\n};\nvar makeNullDelimiter = function makeNullDelimiter(options, classes) {\n var moreClasses = [\"nulldelimiter\"].concat(options.baseSizingClasses());\n return makeSpan$1(classes.concat(moreClasses));\n};\n/**\n * buildGroup is the function that takes a group and calls the correct groupType\n * function for it. It also handles the interaction of size and style changes\n * between parents and children.\n */\n\nvar buildGroup$1 = function buildGroup(group, options, baseOptions) {\n if (!group) {\n return makeSpan$1();\n }\n\n if (_htmlGroupBuilders[group.type]) {\n // Call the groupBuilders function\n // $FlowFixMe\n var groupNode = _htmlGroupBuilders[group.type](group, options); // If the size changed between the parent and the current group, account\n // for that size difference.\n\n if (baseOptions && options.size !== baseOptions.size) {\n groupNode = makeSpan$1(options.sizingClasses(baseOptions), [groupNode], options);\n var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier;\n groupNode.height *= multiplier;\n groupNode.depth *= multiplier;\n }\n\n return groupNode;\n } else {\n throw new ParseError(\"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n/**\n * Combine an array of HTML DOM nodes (e.g., the output of `buildExpression`)\n * into an unbreakable HTML node of class .base, with proper struts to\n * guarantee correct vertical extent. `buildHTML` calls this repeatedly to\n * make up the entire expression as a sequence of unbreakable units.\n */\n\nfunction buildHTMLUnbreakable(children, options) {\n // Compute height and depth of this chunk.\n var body = makeSpan$1([\"base\"], children, options); // Add strut, which ensures that the top of the HTML element falls at\n // the height of the expression, and the bottom of the HTML element\n // falls at the depth of the expression.\n\n var strut = makeSpan$1([\"strut\"]);\n strut.style.height = makeEm(body.height + body.depth);\n\n if (body.depth) {\n strut.style.verticalAlign = makeEm(-body.depth);\n }\n\n body.children.unshift(strut);\n return body;\n}\n/**\n * Take an entire parse tree, and build it into an appropriate set of HTML\n * nodes.\n */\n\n\nfunction buildHTML(tree, options) {\n // Strip off outer tag wrapper for processing below.\n var tag = null;\n\n if (tree.length === 1 && tree[0].type === \"tag\") {\n tag = tree[0].tag;\n tree = tree[0].body;\n } // Build the expression contained in the tree\n\n\n var expression = buildExpression$1(tree, options, \"root\");\n var eqnNum;\n\n if (expression.length === 2 && expression[1].hasClass(\"tag\")) {\n // An environment with automatic equation numbers, e.g. {gather}.\n eqnNum = expression.pop();\n }\n\n var children = []; // Create one base node for each chunk between potential line breaks.\n // The TeXBook [p.173] says \"A formula will be broken only after a\n // relation symbol like $=$ or $<$ or $\\rightarrow$, or after a binary\n // operation symbol like $+$ or $-$ or $\\times$, where the relation or\n // binary operation is on the ``outer level'' of the formula (i.e., not\n // enclosed in {...} and not part of an \\over construction).\"\n\n var parts = [];\n\n for (var i = 0; i < expression.length; i++) {\n parts.push(expression[i]);\n\n if (expression[i].hasClass(\"mbin\") || expression[i].hasClass(\"mrel\") || expression[i].hasClass(\"allowbreak\")) {\n // Put any post-operator glue on same line as operator.\n // Watch for \\nobreak along the way, and stop at \\newline.\n var nobreak = false;\n\n while (i < expression.length - 1 && expression[i + 1].hasClass(\"mspace\") && !expression[i + 1].hasClass(\"newline\")) {\n i++;\n parts.push(expression[i]);\n\n if (expression[i].hasClass(\"nobreak\")) {\n nobreak = true;\n }\n } // Don't allow break if \\nobreak among the post-operator glue.\n\n\n if (!nobreak) {\n children.push(buildHTMLUnbreakable(parts, options));\n parts = [];\n }\n } else if (expression[i].hasClass(\"newline\")) {\n // Write the line except the newline\n parts.pop();\n\n if (parts.length > 0) {\n children.push(buildHTMLUnbreakable(parts, options));\n parts = [];\n } // Put the newline at the top level\n\n\n children.push(expression[i]);\n }\n }\n\n if (parts.length > 0) {\n children.push(buildHTMLUnbreakable(parts, options));\n } // Now, if there was a tag, build it too and append it as a final child.\n\n\n var tagChild;\n\n if (tag) {\n tagChild = buildHTMLUnbreakable(buildExpression$1(tag, options, true));\n tagChild.classes = [\"tag\"];\n children.push(tagChild);\n } else if (eqnNum) {\n children.push(eqnNum);\n }\n\n var htmlNode = makeSpan$1([\"katex-html\"], children);\n htmlNode.setAttribute(\"aria-hidden\", \"true\"); // Adjust the strut of the tag to be the maximum height of all children\n // (the height of the enclosing htmlNode) for proper vertical alignment.\n\n if (tagChild) {\n var strut = tagChild.children[0];\n strut.style.height = makeEm(htmlNode.height + htmlNode.depth);\n\n if (htmlNode.depth) {\n strut.style.verticalAlign = makeEm(-htmlNode.depth);\n }\n }\n\n return htmlNode;\n}\n\n/**\n * These objects store data about MathML nodes. This is the MathML equivalent\n * of the types in domTree.js. Since MathML handles its own rendering, and\n * since we're mainly using MathML to improve accessibility, we don't manage\n * any of the styling state that the plain DOM nodes do.\n *\n * The `toNode` and `toMarkup` functions work similarly to how they do in\n * domTree.js, creating namespaced DOM nodes and HTML text markup respectively.\n */\nfunction newDocumentFragment(children) {\n return new DocumentFragment(children);\n}\n/**\n * This node represents a general purpose MathML node of any type. The\n * constructor requires the type of node to create (for example, `\"mo\"` or\n * `\"mspace\"`, corresponding to `<mo>` and `<mspace>` tags).\n */\n\nclass MathNode {\n constructor(type, children, classes) {\n this.type = void 0;\n this.attributes = void 0;\n this.children = void 0;\n this.classes = void 0;\n this.type = type;\n this.attributes = {};\n this.children = children || [];\n this.classes = classes || [];\n }\n /**\n * Sets an attribute on a MathML node. MathML depends on attributes to convey a\n * semantic content, so this is used heavily.\n */\n\n\n setAttribute(name, value) {\n this.attributes[name] = value;\n }\n /**\n * Gets an attribute on a MathML node.\n */\n\n\n getAttribute(name) {\n return this.attributes[name];\n }\n /**\n * Converts the math node into a MathML-namespaced DOM element.\n */\n\n\n toNode() {\n var node = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", this.type);\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n node.setAttribute(attr, this.attributes[attr]);\n }\n }\n\n if (this.classes.length > 0) {\n node.className = createClass(this.classes);\n }\n\n for (var i = 0; i < this.children.length; i++) {\n node.appendChild(this.children[i].toNode());\n }\n\n return node;\n }\n /**\n * Converts the math node into an HTML markup string.\n */\n\n\n toMarkup() {\n var markup = \"<\" + this.type; // Add the attributes\n\n for (var attr in this.attributes) {\n if (Object.prototype.hasOwnProperty.call(this.attributes, attr)) {\n markup += \" \" + attr + \"=\\\"\";\n markup += utils.escape(this.attributes[attr]);\n markup += \"\\\"\";\n }\n }\n\n if (this.classes.length > 0) {\n markup += \" class =\\\"\" + utils.escape(createClass(this.classes)) + \"\\\"\";\n }\n\n markup += \">\";\n\n for (var i = 0; i < this.children.length; i++) {\n markup += this.children[i].toMarkup();\n }\n\n markup += \"</\" + this.type + \">\";\n return markup;\n }\n /**\n * Converts the math node into a string, similar to innerText, but escaped.\n */\n\n\n toText() {\n return this.children.map(child => child.toText()).join(\"\");\n }\n\n}\n/**\n * This node represents a piece of text.\n */\n\nclass TextNode {\n constructor(text) {\n this.text = void 0;\n this.text = text;\n }\n /**\n * Converts the text node into a DOM text node.\n */\n\n\n toNode() {\n return document.createTextNode(this.text);\n }\n /**\n * Converts the text node into escaped HTML markup\n * (representing the text itself).\n */\n\n\n toMarkup() {\n return utils.escape(this.toText());\n }\n /**\n * Converts the text node into a string\n * (representing the text itself).\n */\n\n\n toText() {\n return this.text;\n }\n\n}\n/**\n * This node represents a space, but may render as <mspace.../> or as text,\n * depending on the width.\n */\n\nclass SpaceNode {\n /**\n * Create a Space node with width given in CSS ems.\n */\n constructor(width) {\n this.width = void 0;\n this.character = void 0;\n this.width = width; // See https://www.w3.org/TR/2000/WD-MathML2-20000328/chapter6.html\n // for a table of space-like characters. We use Unicode\n // representations instead of &LongNames; as it's not clear how to\n // make the latter via document.createTextNode.\n\n if (width >= 0.05555 && width <= 0.05556) {\n this.character = \"\\u200a\"; // &VeryThinSpace;\n } else if (width >= 0.1666 && width <= 0.1667) {\n this.character = \"\\u2009\"; // &ThinSpace;\n } else if (width >= 0.2222 && width <= 0.2223) {\n this.character = \"\\u2005\"; // &MediumSpace;\n } else if (width >= 0.2777 && width <= 0.2778) {\n this.character = \"\\u2005\\u200a\"; // &ThickSpace;\n } else if (width >= -0.05556 && width <= -0.05555) {\n this.character = \"\\u200a\\u2063\"; // &NegativeVeryThinSpace;\n } else if (width >= -0.1667 && width <= -0.1666) {\n this.character = \"\\u2009\\u2063\"; // &NegativeThinSpace;\n } else if (width >= -0.2223 && width <= -0.2222) {\n this.character = \"\\u205f\\u2063\"; // &NegativeMediumSpace;\n } else if (width >= -0.2778 && width <= -0.2777) {\n this.character = \"\\u2005\\u2063\"; // &NegativeThickSpace;\n } else {\n this.character = null;\n }\n }\n /**\n * Converts the math node into a MathML-namespaced DOM element.\n */\n\n\n toNode() {\n if (this.character) {\n return document.createTextNode(this.character);\n } else {\n var node = document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", \"mspace\");\n node.setAttribute(\"width\", makeEm(this.width));\n return node;\n }\n }\n /**\n * Converts the math node into an HTML markup string.\n */\n\n\n toMarkup() {\n if (this.character) {\n return \"<mtext>\" + this.character + \"</mtext>\";\n } else {\n return \"<mspace width=\\\"\" + makeEm(this.width) + \"\\\"/>\";\n }\n }\n /**\n * Converts the math node into a string, similar to innerText.\n */\n\n\n toText() {\n if (this.character) {\n return this.character;\n } else {\n return \" \";\n }\n }\n\n}\n\nvar mathMLTree = {\n MathNode,\n TextNode,\n SpaceNode,\n newDocumentFragment\n};\n\n/**\n * This file converts a parse tree into a corresponding MathML tree. The main\n * entry point is the `buildMathML` function, which takes a parse tree from the\n * parser.\n */\n\n/**\n * Takes a symbol and converts it into a MathML text node after performing\n * optional replacement from symbols.js.\n */\nvar makeText = function makeText(text, mode, options) {\n if (symbols[mode][text] && symbols[mode][text].replace && text.charCodeAt(0) !== 0xD835 && !(ligatures.hasOwnProperty(text) && options && (options.fontFamily && options.fontFamily.slice(4, 6) === \"tt\" || options.font && options.font.slice(4, 6) === \"tt\"))) {\n text = symbols[mode][text].replace;\n }\n\n return new mathMLTree.TextNode(text);\n};\n/**\n * Wrap the given array of nodes in an <mrow> node if needed, i.e.,\n * unless the array has length 1. Always returns a single node.\n */\n\nvar makeRow = function makeRow(body) {\n if (body.length === 1) {\n return body[0];\n } else {\n return new mathMLTree.MathNode(\"mrow\", body);\n }\n};\n/**\n * Returns the math variant as a string or null if none is required.\n */\n\nvar getVariant = function getVariant(group, options) {\n // Handle \\text... font specifiers as best we can.\n // MathML has a limited list of allowable mathvariant specifiers; see\n // https://www.w3.org/TR/MathML3/chapter3.html#presm.commatt\n if (options.fontFamily === \"texttt\") {\n return \"monospace\";\n } else if (options.fontFamily === \"textsf\") {\n if (options.fontShape === \"textit\" && options.fontWeight === \"textbf\") {\n return \"sans-serif-bold-italic\";\n } else if (options.fontShape === \"textit\") {\n return \"sans-serif-italic\";\n } else if (options.fontWeight === \"textbf\") {\n return \"bold-sans-serif\";\n } else {\n return \"sans-serif\";\n }\n } else if (options.fontShape === \"textit\" && options.fontWeight === \"textbf\") {\n return \"bold-italic\";\n } else if (options.fontShape === \"textit\") {\n return \"italic\";\n } else if (options.fontWeight === \"textbf\") {\n return \"bold\";\n }\n\n var font = options.font;\n\n if (!font || font === \"mathnormal\") {\n return null;\n }\n\n var mode = group.mode;\n\n if (font === \"mathit\") {\n return \"italic\";\n } else if (font === \"boldsymbol\") {\n return group.type === \"textord\" ? \"bold\" : \"bold-italic\";\n } else if (font === \"mathbf\") {\n return \"bold\";\n } else if (font === \"mathbb\") {\n return \"double-struck\";\n } else if (font === \"mathfrak\") {\n return \"fraktur\";\n } else if (font === \"mathscr\" || font === \"mathcal\") {\n // MathML makes no distinction between script and calligraphic\n return \"script\";\n } else if (font === \"mathsf\") {\n return \"sans-serif\";\n } else if (font === \"mathtt\") {\n return \"monospace\";\n }\n\n var text = group.text;\n\n if (utils.contains([\"\\\\imath\", \"\\\\jmath\"], text)) {\n return null;\n }\n\n if (symbols[mode][text] && symbols[mode][text].replace) {\n text = symbols[mode][text].replace;\n }\n\n var fontName = buildCommon.fontMap[font].fontName;\n\n if (getCharacterMetrics(text, fontName, mode)) {\n return buildCommon.fontMap[font].variant;\n }\n\n return null;\n};\n/**\n * Takes a list of nodes, builds them, and returns a list of the generated\n * MathML nodes. Also combine consecutive <mtext> outputs into a single\n * <mtext> tag.\n */\n\nvar buildExpression = function buildExpression(expression, options, isOrdgroup) {\n if (expression.length === 1) {\n var group = buildGroup(expression[0], options);\n\n if (isOrdgroup && group instanceof MathNode && group.type === \"mo\") {\n // When TeX writers want to suppress spacing on an operator,\n // they often put the operator by itself inside braces.\n group.setAttribute(\"lspace\", \"0em\");\n group.setAttribute(\"rspace\", \"0em\");\n }\n\n return [group];\n }\n\n var groups = [];\n var lastGroup;\n\n for (var i = 0; i < expression.length; i++) {\n var _group = buildGroup(expression[i], options);\n\n if (_group instanceof MathNode && lastGroup instanceof MathNode) {\n // Concatenate adjacent <mtext>s\n if (_group.type === 'mtext' && lastGroup.type === 'mtext' && _group.getAttribute('mathvariant') === lastGroup.getAttribute('mathvariant')) {\n lastGroup.children.push(..._group.children);\n continue; // Concatenate adjacent <mn>s\n } else if (_group.type === 'mn' && lastGroup.type === 'mn') {\n lastGroup.children.push(..._group.children);\n continue; // Concatenate <mn>...</mn> followed by <mi>.</mi>\n } else if (_group.type === 'mi' && _group.children.length === 1 && lastGroup.type === 'mn') {\n var child = _group.children[0];\n\n if (child instanceof TextNode && child.text === '.') {\n lastGroup.children.push(..._group.children);\n continue;\n }\n } else if (lastGroup.type === 'mi' && lastGroup.children.length === 1) {\n var lastChild = lastGroup.children[0];\n\n if (lastChild instanceof TextNode && lastChild.text === '\\u0338' && (_group.type === 'mo' || _group.type === 'mi' || _group.type === 'mn')) {\n var _child = _group.children[0];\n\n if (_child instanceof TextNode && _child.text.length > 0) {\n // Overlay with combining character long solidus\n _child.text = _child.text.slice(0, 1) + \"\\u0338\" + _child.text.slice(1);\n groups.pop();\n }\n }\n }\n }\n\n groups.push(_group);\n lastGroup = _group;\n }\n\n return groups;\n};\n/**\n * Equivalent to buildExpression, but wraps the elements in an <mrow>\n * if there's more than one. Returns a single node instead of an array.\n */\n\nvar buildExpressionRow = function buildExpressionRow(expression, options, isOrdgroup) {\n return makeRow(buildExpression(expression, options, isOrdgroup));\n};\n/**\n * Takes a group from the parser and calls the appropriate groupBuilders function\n * on it to produce a MathML node.\n */\n\nvar buildGroup = function buildGroup(group, options) {\n if (!group) {\n return new mathMLTree.MathNode(\"mrow\");\n }\n\n if (_mathmlGroupBuilders[group.type]) {\n // Call the groupBuilders function\n // $FlowFixMe\n var result = _mathmlGroupBuilders[group.type](group, options); // $FlowFixMe\n\n return result;\n } else {\n throw new ParseError(\"Got group of unknown type: '\" + group.type + \"'\");\n }\n};\n/**\n * Takes a full parse tree and settings and builds a MathML representation of\n * it. In particular, we put the elements from building the parse tree into a\n * <semantics> tag so we can also include that TeX source as an annotation.\n *\n * Note that we actually return a domTree element with a `<math>` inside it so\n * we can do appropriate styling.\n */\n\nfunction buildMathML(tree, texExpression, options, isDisplayMode, forMathmlOnly) {\n var expression = buildExpression(tree, options); // TODO: Make a pass thru the MathML similar to buildHTML.traverseNonSpaceNodes\n // and add spacing nodes. This is necessary only adjacent to math operators\n // like \\sin or \\lim or to subsup elements that contain math operators.\n // MathML takes care of the other spacing issues.\n // Wrap up the expression in an mrow so it is presented in the semantics\n // tag correctly, unless it's a single <mrow> or <mtable>.\n\n var wrapper;\n\n if (expression.length === 1 && expression[0] instanceof MathNode && utils.contains([\"mrow\", \"mtable\"], expression[0].type)) {\n wrapper = expression[0];\n } else {\n wrapper = new mathMLTree.MathNode(\"mrow\", expression);\n } // Build a TeX annotation of the source\n\n\n var annotation = new mathMLTree.MathNode(\"annotation\", [new mathMLTree.TextNode(texExpression)]);\n annotation.setAttribute(\"encoding\", \"application/x-tex\");\n var semantics = new mathMLTree.MathNode(\"semantics\", [wrapper, annotation]);\n var math = new mathMLTree.MathNode(\"math\", [semantics]);\n math.setAttribute(\"xmlns\", \"http://www.w3.org/1998/Math/MathML\");\n\n if (isDisplayMode) {\n math.setAttribute(\"display\", \"block\");\n } // You can't style <math> nodes, so we wrap the node in a span.\n // NOTE: The span class is not typed to have <math> nodes as children, and\n // we don't want to make the children type more generic since the children\n // of span are expected to have more fields in `buildHtml` contexts.\n\n\n var wrapperClass = forMathmlOnly ? \"katex\" : \"katex-mathml\"; // $FlowFixMe\n\n return buildCommon.makeSpan([wrapperClass], [math]);\n}\n\nvar optionsFromSettings = function optionsFromSettings(settings) {\n return new Options({\n style: settings.displayMode ? Style$1.DISPLAY : Style$1.TEXT,\n maxSize: settings.maxSize,\n minRuleThickness: settings.minRuleThickness\n });\n};\n\nvar displayWrap = function displayWrap(node, settings) {\n if (settings.displayMode) {\n var classes = [\"katex-display\"];\n\n if (settings.leqno) {\n classes.push(\"leqno\");\n }\n\n if (settings.fleqn) {\n classes.push(\"fleqn\");\n }\n\n node = buildCommon.makeSpan(classes, [node]);\n }\n\n return node;\n};\n\nvar buildTree = function buildTree(tree, expression, settings) {\n var options = optionsFromSettings(settings);\n var katexNode;\n\n if (settings.output === \"mathml\") {\n return buildMathML(tree, expression, options, settings.displayMode, true);\n } else if (settings.output === \"html\") {\n var htmlNode = buildHTML(tree, options);\n katexNode = buildCommon.makeSpan([\"katex\"], [htmlNode]);\n } else {\n var mathMLNode = buildMathML(tree, expression, options, settings.displayMode, false);\n\n var _htmlNode = buildHTML(tree, options);\n\n katexNode = buildCommon.makeSpan([\"katex\"], [mathMLNode, _htmlNode]);\n }\n\n return displayWrap(katexNode, settings);\n};\nvar buildHTMLTree = function buildHTMLTree(tree, expression, settings) {\n var options = optionsFromSettings(settings);\n var htmlNode = buildHTML(tree, options);\n var katexNode = buildCommon.makeSpan([\"katex\"], [htmlNode]);\n return displayWrap(katexNode, settings);\n};\n\n/**\n * This file provides support to buildMathML.js and buildHTML.js\n * for stretchy wide elements rendered from SVG files\n * and other CSS trickery.\n */\nvar stretchyCodePoint = {\n widehat: \"^\",\n widecheck: \"ˇ\",\n widetilde: \"~\",\n utilde: \"~\",\n overleftarrow: \"\\u2190\",\n underleftarrow: \"\\u2190\",\n xleftarrow: \"\\u2190\",\n overrightarrow: \"\\u2192\",\n underrightarrow: \"\\u2192\",\n xrightarrow: \"\\u2192\",\n underbrace: \"\\u23df\",\n overbrace: \"\\u23de\",\n overgroup: \"\\u23e0\",\n undergroup: \"\\u23e1\",\n overleftrightarrow: \"\\u2194\",\n underleftrightarrow: \"\\u2194\",\n xleftrightarrow: \"\\u2194\",\n Overrightarrow: \"\\u21d2\",\n xRightarrow: \"\\u21d2\",\n overleftharpoon: \"\\u21bc\",\n xleftharpoonup: \"\\u21bc\",\n overrightharpoon: \"\\u21c0\",\n xrightharpoonup: \"\\u21c0\",\n xLeftarrow: \"\\u21d0\",\n xLeftrightarrow: \"\\u21d4\",\n xhookleftarrow: \"\\u21a9\",\n xhookrightarrow: \"\\u21aa\",\n xmapsto: \"\\u21a6\",\n xrightharpoondown: \"\\u21c1\",\n xleftharpoondown: \"\\u21bd\",\n xrightleftharpoons: \"\\u21cc\",\n xleftrightharpoons: \"\\u21cb\",\n xtwoheadleftarrow: \"\\u219e\",\n xtwoheadrightarrow: \"\\u21a0\",\n xlongequal: \"=\",\n xtofrom: \"\\u21c4\",\n xrightleftarrows: \"\\u21c4\",\n xrightequilibrium: \"\\u21cc\",\n // Not a perfect match.\n xleftequilibrium: \"\\u21cb\",\n // None better available.\n \"\\\\cdrightarrow\": \"\\u2192\",\n \"\\\\cdleftarrow\": \"\\u2190\",\n \"\\\\cdlongequal\": \"=\"\n};\n\nvar mathMLnode = function mathMLnode(label) {\n var node = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(stretchyCodePoint[label.replace(/^\\\\/, '')])]);\n node.setAttribute(\"stretchy\", \"true\");\n return node;\n}; // Many of the KaTeX SVG images have been adapted from glyphs in KaTeX fonts.\n// Copyright (c) 2009-2010, Design Science, Inc. (<www.mathjax.org>)\n// Copyright (c) 2014-2017 Khan Academy (<www.khanacademy.org>)\n// Licensed under the SIL Open Font License, Version 1.1.\n// See \\nhttp://scripts.sil.org/OFL\n// Very Long SVGs\n// Many of the KaTeX stretchy wide elements use a long SVG image and an\n// overflow: hidden tactic to achieve a stretchy image while avoiding\n// distortion of arrowheads or brace corners.\n// The SVG typically contains a very long (400 em) arrow.\n// The SVG is in a container span that has overflow: hidden, so the span\n// acts like a window that exposes only part of the SVG.\n// The SVG always has a longer, thinner aspect ratio than the container span.\n// After the SVG fills 100% of the height of the container span,\n// there is a long arrow shaft left over. That left-over shaft is not shown.\n// Instead, it is sliced off because the span's CSS has overflow: hidden.\n// Thus, the reader sees an arrow that matches the subject matter width\n// without distortion.\n// Some functions, such as \\cancel, need to vary their aspect ratio. These\n// functions do not get the overflow SVG treatment.\n// Second Brush Stroke\n// Low resolution monitors struggle to display images in fine detail.\n// So browsers apply anti-aliasing. A long straight arrow shaft therefore\n// will sometimes appear as if it has a blurred edge.\n// To mitigate this, these SVG files contain a second \"brush-stroke\" on the\n// arrow shafts. That is, a second long thin rectangular SVG path has been\n// written directly on top of each arrow shaft. This reinforcement causes\n// some of the screen pixels to display as black instead of the anti-aliased\n// gray pixel that a single path would generate. So we get arrow shafts\n// whose edges appear to be sharper.\n// In the katexImagesData object just below, the dimensions all\n// correspond to path geometry inside the relevant SVG.\n// For example, \\overrightarrow uses the same arrowhead as glyph U+2192\n// from the KaTeX Main font. The scaling factor is 1000.\n// That is, inside the font, that arrowhead is 522 units tall, which\n// corresponds to 0.522 em inside the document.\n\n\nvar katexImagesData = {\n // path(s), minWidth, height, align\n overrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n overleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n underrightarrow: [[\"rightarrow\"], 0.888, 522, \"xMaxYMin\"],\n underleftarrow: [[\"leftarrow\"], 0.888, 522, \"xMinYMin\"],\n xrightarrow: [[\"rightarrow\"], 1.469, 522, \"xMaxYMin\"],\n \"\\\\cdrightarrow\": [[\"rightarrow\"], 3.0, 522, \"xMaxYMin\"],\n // CD minwwidth2.5pc\n xleftarrow: [[\"leftarrow\"], 1.469, 522, \"xMinYMin\"],\n \"\\\\cdleftarrow\": [[\"leftarrow\"], 3.0, 522, \"xMinYMin\"],\n Overrightarrow: [[\"doublerightarrow\"], 0.888, 560, \"xMaxYMin\"],\n xRightarrow: [[\"doublerightarrow\"], 1.526, 560, \"xMaxYMin\"],\n xLeftarrow: [[\"doubleleftarrow\"], 1.526, 560, \"xMinYMin\"],\n overleftharpoon: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n xleftharpoonup: [[\"leftharpoon\"], 0.888, 522, \"xMinYMin\"],\n xleftharpoondown: [[\"leftharpoondown\"], 0.888, 522, \"xMinYMin\"],\n overrightharpoon: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n xrightharpoonup: [[\"rightharpoon\"], 0.888, 522, \"xMaxYMin\"],\n xrightharpoondown: [[\"rightharpoondown\"], 0.888, 522, \"xMaxYMin\"],\n xlongequal: [[\"longequal\"], 0.888, 334, \"xMinYMin\"],\n \"\\\\cdlongequal\": [[\"longequal\"], 3.0, 334, \"xMinYMin\"],\n xtwoheadleftarrow: [[\"twoheadleftarrow\"], 0.888, 334, \"xMinYMin\"],\n xtwoheadrightarrow: [[\"twoheadrightarrow\"], 0.888, 334, \"xMaxYMin\"],\n overleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n overbrace: [[\"leftbrace\", \"midbrace\", \"rightbrace\"], 1.6, 548],\n underbrace: [[\"leftbraceunder\", \"midbraceunder\", \"rightbraceunder\"], 1.6, 548],\n underleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 0.888, 522],\n xleftrightarrow: [[\"leftarrow\", \"rightarrow\"], 1.75, 522],\n xLeftrightarrow: [[\"doubleleftarrow\", \"doublerightarrow\"], 1.75, 560],\n xrightleftharpoons: [[\"leftharpoondownplus\", \"rightharpoonplus\"], 1.75, 716],\n xleftrightharpoons: [[\"leftharpoonplus\", \"rightharpoondownplus\"], 1.75, 716],\n xhookleftarrow: [[\"leftarrow\", \"righthook\"], 1.08, 522],\n xhookrightarrow: [[\"lefthook\", \"rightarrow\"], 1.08, 522],\n overlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n underlinesegment: [[\"leftlinesegment\", \"rightlinesegment\"], 0.888, 522],\n overgroup: [[\"leftgroup\", \"rightgroup\"], 0.888, 342],\n undergroup: [[\"leftgroupunder\", \"rightgroupunder\"], 0.888, 342],\n xmapsto: [[\"leftmapsto\", \"rightarrow\"], 1.5, 522],\n xtofrom: [[\"leftToFrom\", \"rightToFrom\"], 1.75, 528],\n // The next three arrows are from the mhchem package.\n // In mhchem.sty, min-length is 2.0em. But these arrows might appear in the\n // document as \\xrightarrow or \\xrightleftharpoons. Those have\n // min-length = 1.75em, so we set min-length on these next three to match.\n xrightleftarrows: [[\"baraboveleftarrow\", \"rightarrowabovebar\"], 1.75, 901],\n xrightequilibrium: [[\"baraboveshortleftharpoon\", \"rightharpoonaboveshortbar\"], 1.75, 716],\n xleftequilibrium: [[\"shortbaraboveleftharpoon\", \"shortrightharpoonabovebar\"], 1.75, 716]\n};\n\nvar groupLength = function groupLength(arg) {\n if (arg.type === \"ordgroup\") {\n return arg.body.length;\n } else {\n return 1;\n }\n};\n\nvar svgSpan = function svgSpan(group, options) {\n // Create a span with inline SVG for the element.\n function buildSvgSpan_() {\n var viewBoxWidth = 400000; // default\n\n var label = group.label.slice(1);\n\n if (utils.contains([\"widehat\", \"widecheck\", \"widetilde\", \"utilde\"], label)) {\n // Each type in the `if` statement corresponds to one of the ParseNode\n // types below. This narrowing is required to access `grp.base`.\n // $FlowFixMe\n var grp = group; // There are four SVG images available for each function.\n // Choose a taller image when there are more characters.\n\n var numChars = groupLength(grp.base);\n var viewBoxHeight;\n var pathName;\n\n var _height;\n\n if (numChars > 5) {\n if (label === \"widehat\" || label === \"widecheck\") {\n viewBoxHeight = 420;\n viewBoxWidth = 2364;\n _height = 0.42;\n pathName = label + \"4\";\n } else {\n viewBoxHeight = 312;\n viewBoxWidth = 2340;\n _height = 0.34;\n pathName = \"tilde4\";\n }\n } else {\n var imgIndex = [1, 1, 2, 2, 3, 3][numChars];\n\n if (label === \"widehat\" || label === \"widecheck\") {\n viewBoxWidth = [0, 1062, 2364, 2364, 2364][imgIndex];\n viewBoxHeight = [0, 239, 300, 360, 420][imgIndex];\n _height = [0, 0.24, 0.3, 0.3, 0.36, 0.42][imgIndex];\n pathName = label + imgIndex;\n } else {\n viewBoxWidth = [0, 600, 1033, 2339, 2340][imgIndex];\n viewBoxHeight = [0, 260, 286, 306, 312][imgIndex];\n _height = [0, 0.26, 0.286, 0.3, 0.306, 0.34][imgIndex];\n pathName = \"tilde\" + imgIndex;\n }\n }\n\n var path = new PathNode(pathName);\n var svgNode = new SvgNode([path], {\n \"width\": \"100%\",\n \"height\": makeEm(_height),\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + viewBoxHeight,\n \"preserveAspectRatio\": \"none\"\n });\n return {\n span: buildCommon.makeSvgSpan([], [svgNode], options),\n minWidth: 0,\n height: _height\n };\n } else {\n var spans = [];\n var data = katexImagesData[label];\n var [paths, _minWidth, _viewBoxHeight] = data;\n\n var _height2 = _viewBoxHeight / 1000;\n\n var numSvgChildren = paths.length;\n var widthClasses;\n var aligns;\n\n if (numSvgChildren === 1) {\n // $FlowFixMe: All these cases must be of the 4-tuple type.\n var align1 = data[3];\n widthClasses = [\"hide-tail\"];\n aligns = [align1];\n } else if (numSvgChildren === 2) {\n widthClasses = [\"halfarrow-left\", \"halfarrow-right\"];\n aligns = [\"xMinYMin\", \"xMaxYMin\"];\n } else if (numSvgChildren === 3) {\n widthClasses = [\"brace-left\", \"brace-center\", \"brace-right\"];\n aligns = [\"xMinYMin\", \"xMidYMin\", \"xMaxYMin\"];\n } else {\n throw new Error(\"Correct katexImagesData or update code here to support\\n \" + numSvgChildren + \" children.\");\n }\n\n for (var i = 0; i < numSvgChildren; i++) {\n var _path = new PathNode(paths[i]);\n\n var _svgNode = new SvgNode([_path], {\n \"width\": \"400em\",\n \"height\": makeEm(_height2),\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + _viewBoxHeight,\n \"preserveAspectRatio\": aligns[i] + \" slice\"\n });\n\n var _span = buildCommon.makeSvgSpan([widthClasses[i]], [_svgNode], options);\n\n if (numSvgChildren === 1) {\n return {\n span: _span,\n minWidth: _minWidth,\n height: _height2\n };\n } else {\n _span.style.height = makeEm(_height2);\n spans.push(_span);\n }\n }\n\n return {\n span: buildCommon.makeSpan([\"stretchy\"], spans, options),\n minWidth: _minWidth,\n height: _height2\n };\n }\n } // buildSvgSpan_()\n\n\n var {\n span,\n minWidth,\n height\n } = buildSvgSpan_(); // Note that we are returning span.depth = 0.\n // Any adjustments relative to the baseline must be done in buildHTML.\n\n span.height = height;\n span.style.height = makeEm(height);\n\n if (minWidth > 0) {\n span.style.minWidth = makeEm(minWidth);\n }\n\n return span;\n};\n\nvar encloseSpan = function encloseSpan(inner, label, topPad, bottomPad, options) {\n // Return an image span for \\cancel, \\bcancel, \\xcancel, \\fbox, or \\angl\n var img;\n var totalHeight = inner.height + inner.depth + topPad + bottomPad;\n\n if (/fbox|color|angl/.test(label)) {\n img = buildCommon.makeSpan([\"stretchy\", label], [], options);\n\n if (label === \"fbox\") {\n var color = options.color && options.getColor();\n\n if (color) {\n img.style.borderColor = color;\n }\n }\n } else {\n // \\cancel, \\bcancel, or \\xcancel\n // Since \\cancel's SVG is inline and it omits the viewBox attribute,\n // its stroke-width will not vary with span area.\n var lines = [];\n\n if (/^[bx]cancel$/.test(label)) {\n lines.push(new LineNode({\n \"x1\": \"0\",\n \"y1\": \"0\",\n \"x2\": \"100%\",\n \"y2\": \"100%\",\n \"stroke-width\": \"0.046em\"\n }));\n }\n\n if (/^x?cancel$/.test(label)) {\n lines.push(new LineNode({\n \"x1\": \"0\",\n \"y1\": \"100%\",\n \"x2\": \"100%\",\n \"y2\": \"0\",\n \"stroke-width\": \"0.046em\"\n }));\n }\n\n var svgNode = new SvgNode(lines, {\n \"width\": \"100%\",\n \"height\": makeEm(totalHeight)\n });\n img = buildCommon.makeSvgSpan([], [svgNode], options);\n }\n\n img.height = totalHeight;\n img.style.height = makeEm(totalHeight);\n return img;\n};\n\nvar stretchy = {\n encloseSpan,\n mathMLnode,\n svgSpan\n};\n\n/**\n * Asserts that the node is of the given type and returns it with stricter\n * typing. Throws if the node's type does not match.\n */\nfunction assertNodeType(node, type) {\n if (!node || node.type !== type) {\n throw new Error(\"Expected node of type \" + type + \", but got \" + (node ? \"node of type \" + node.type : String(node)));\n } // $FlowFixMe, >=0.125\n\n\n return node;\n}\n/**\n * Returns the node more strictly typed iff it is of the given type. Otherwise,\n * returns null.\n */\n\nfunction assertSymbolNodeType(node) {\n var typedNode = checkSymbolNodeType(node);\n\n if (!typedNode) {\n throw new Error(\"Expected node of symbol group type, but got \" + (node ? \"node of type \" + node.type : String(node)));\n }\n\n return typedNode;\n}\n/**\n * Returns the node more strictly typed iff it is of the given type. Otherwise,\n * returns null.\n */\n\nfunction checkSymbolNodeType(node) {\n if (node && (node.type === \"atom\" || NON_ATOMS.hasOwnProperty(node.type))) {\n // $FlowFixMe\n return node;\n }\n\n return null;\n}\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only \"accent\", but\n// also \"supsub\" since an accent can affect super/subscripting.\nvar htmlBuilder$a = (grp, options) => {\n // Accents are handled in the TeXbook pg. 443, rule 12.\n var base;\n var group;\n var supSubGroup;\n\n if (grp && grp.type === \"supsub\") {\n // If our base is a character box, and we have superscripts and\n // subscripts, the supsub will defer to us. In particular, we want\n // to attach the superscripts and subscripts to the inner body (so\n // that the position of the superscripts and subscripts won't be\n // affected by the height of the accent). We accomplish this by\n // sticking the base of the accent into the base of the supsub, and\n // rendering that, while keeping track of where the accent is.\n // The real accent group is the base of the supsub group\n group = assertNodeType(grp.base, \"accent\"); // The character box is the base of the accent group\n\n base = group.base; // Stick the character box into the base of the supsub group\n\n grp.base = base; // Rerender the supsub group with its new base, and store that\n // result.\n\n supSubGroup = assertSpan(buildGroup$1(grp, options)); // reset original base\n\n grp.base = group;\n } else {\n group = assertNodeType(grp, \"accent\");\n base = group.base;\n } // Build the base group\n\n\n var body = buildGroup$1(base, options.havingCrampedStyle()); // Does the accent need to shift for the skew of a character?\n\n var mustShift = group.isShifty && utils.isCharacterBox(base); // Calculate the skew of the accent. This is based on the line \"If the\n // nucleus is not a single character, let s = 0; otherwise set s to the\n // kern amount for the nucleus followed by the \\skewchar of its font.\"\n // Note that our skew metrics are just the kern between each character\n // and the skewchar.\n\n var skew = 0;\n\n if (mustShift) {\n // If the base is a character box, then we want the skew of the\n // innermost character. To do that, we find the innermost character:\n var baseChar = utils.getBaseElem(base); // Then, we render its group to get the symbol inside it\n\n var baseGroup = buildGroup$1(baseChar, options.havingCrampedStyle()); // Finally, we pull the skew off of the symbol.\n\n skew = assertSymbolDomNode(baseGroup).skew; // Note that we now throw away baseGroup, because the layers we\n // removed with getBaseElem might contain things like \\color which\n // we can't get rid of.\n // TODO(emily): Find a better way to get the skew\n }\n\n var accentBelow = group.label === \"\\\\c\"; // calculate the amount of space between the body and the accent\n\n var clearance = accentBelow ? body.height + body.depth : Math.min(body.height, options.fontMetrics().xHeight); // Build the accent\n\n var accentBody;\n\n if (!group.isStretchy) {\n var accent;\n var width;\n\n if (group.label === \"\\\\vec\") {\n // Before version 0.9, \\vec used the combining font glyph U+20D7.\n // But browsers, especially Safari, are not consistent in how they\n // render combining characters when not preceded by a character.\n // So now we use an SVG.\n // If Safari reforms, we should consider reverting to the glyph.\n accent = buildCommon.staticSvg(\"vec\", options);\n width = buildCommon.svgData.vec[1];\n } else {\n accent = buildCommon.makeOrd({\n mode: group.mode,\n text: group.label\n }, options, \"textord\");\n accent = assertSymbolDomNode(accent); // Remove the italic correction of the accent, because it only serves to\n // shift the accent over to a place we don't want.\n\n accent.italic = 0;\n width = accent.width;\n\n if (accentBelow) {\n clearance += accent.depth;\n }\n }\n\n accentBody = buildCommon.makeSpan([\"accent-body\"], [accent]); // \"Full\" accents expand the width of the resulting symbol to be\n // at least the width of the accent, and overlap directly onto the\n // character without any vertical offset.\n\n var accentFull = group.label === \"\\\\textcircled\";\n\n if (accentFull) {\n accentBody.classes.push('accent-full');\n clearance = body.height;\n } // Shift the accent over by the skew.\n\n\n var left = skew; // CSS defines `.katex .accent .accent-body:not(.accent-full) { width: 0 }`\n // so that the accent doesn't contribute to the bounding box.\n // We need to shift the character by its width (effectively half\n // its width) to compensate.\n\n if (!accentFull) {\n left -= width / 2;\n }\n\n accentBody.style.left = makeEm(left); // \\textcircled uses the \\bigcirc glyph, so it needs some\n // vertical adjustment to match LaTeX.\n\n if (group.label === \"\\\\textcircled\") {\n accentBody.style.top = \".2em\";\n }\n\n accentBody = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"kern\",\n size: -clearance\n }, {\n type: \"elem\",\n elem: accentBody\n }]\n }, options);\n } else {\n accentBody = stretchy.svgSpan(group, options);\n accentBody = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"elem\",\n elem: accentBody,\n wrapperClasses: [\"svg-align\"],\n wrapperStyle: skew > 0 ? {\n width: \"calc(100% - \" + makeEm(2 * skew) + \")\",\n marginLeft: makeEm(2 * skew)\n } : undefined\n }]\n }, options);\n }\n\n var accentWrap = buildCommon.makeSpan([\"mord\", \"accent\"], [accentBody], options);\n\n if (supSubGroup) {\n // Here, we replace the \"base\" child of the supsub with our newly\n // generated accent.\n supSubGroup.children[0] = accentWrap; // Since we don't rerun the height calculation after replacing the\n // accent, we manually recalculate height.\n\n supSubGroup.height = Math.max(accentWrap.height, supSubGroup.height); // Accents should always be ords, even when their innards are not.\n\n supSubGroup.classes[0] = \"mord\";\n return supSubGroup;\n } else {\n return accentWrap;\n }\n};\n\nvar mathmlBuilder$9 = (group, options) => {\n var accentNode = group.isStretchy ? stretchy.mathMLnode(group.label) : new mathMLTree.MathNode(\"mo\", [makeText(group.label, group.mode)]);\n var node = new mathMLTree.MathNode(\"mover\", [buildGroup(group.base, options), accentNode]);\n node.setAttribute(\"accent\", \"true\");\n return node;\n};\n\nvar NON_STRETCHY_ACCENT_REGEX = new RegExp([\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\"].map(accent => \"\\\\\" + accent).join(\"|\")); // Accents\n\ndefineFunction({\n type: \"accent\",\n names: [\"\\\\acute\", \"\\\\grave\", \"\\\\ddot\", \"\\\\tilde\", \"\\\\bar\", \"\\\\breve\", \"\\\\check\", \"\\\\hat\", \"\\\\vec\", \"\\\\dot\", \"\\\\mathring\", \"\\\\widecheck\", \"\\\\widehat\", \"\\\\widetilde\", \"\\\\overrightarrow\", \"\\\\overleftarrow\", \"\\\\Overrightarrow\", \"\\\\overleftrightarrow\", \"\\\\overgroup\", \"\\\\overlinesegment\", \"\\\\overleftharpoon\", \"\\\\overrightharpoon\"],\n props: {\n numArgs: 1\n },\n handler: (context, args) => {\n var base = normalizeArgument(args[0]);\n var isStretchy = !NON_STRETCHY_ACCENT_REGEX.test(context.funcName);\n var isShifty = !isStretchy || context.funcName === \"\\\\widehat\" || context.funcName === \"\\\\widetilde\" || context.funcName === \"\\\\widecheck\";\n return {\n type: \"accent\",\n mode: context.parser.mode,\n label: context.funcName,\n isStretchy: isStretchy,\n isShifty: isShifty,\n base: base\n };\n },\n htmlBuilder: htmlBuilder$a,\n mathmlBuilder: mathmlBuilder$9\n}); // Text-mode accents\n\ndefineFunction({\n type: \"accent\",\n names: [\"\\\\'\", \"\\\\`\", \"\\\\^\", \"\\\\~\", \"\\\\=\", \"\\\\u\", \"\\\\.\", '\\\\\"', \"\\\\c\", \"\\\\r\", \"\\\\H\", \"\\\\v\", \"\\\\textcircled\"],\n props: {\n numArgs: 1,\n allowedInText: true,\n allowedInMath: true,\n // unless in strict mode\n argTypes: [\"primitive\"]\n },\n handler: (context, args) => {\n var base = args[0];\n var mode = context.parser.mode;\n\n if (mode === \"math\") {\n context.parser.settings.reportNonstrict(\"mathVsTextAccents\", \"LaTeX's accent \" + context.funcName + \" works only in text mode\");\n mode = \"text\";\n }\n\n return {\n type: \"accent\",\n mode: mode,\n label: context.funcName,\n isStretchy: false,\n isShifty: true,\n base: base\n };\n },\n htmlBuilder: htmlBuilder$a,\n mathmlBuilder: mathmlBuilder$9\n});\n\n// Horizontal overlap functions\ndefineFunction({\n type: \"accentUnder\",\n names: [\"\\\\underleftarrow\", \"\\\\underrightarrow\", \"\\\\underleftrightarrow\", \"\\\\undergroup\", \"\\\\underlinesegment\", \"\\\\utilde\"],\n props: {\n numArgs: 1\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var base = args[0];\n return {\n type: \"accentUnder\",\n mode: parser.mode,\n label: funcName,\n base: base\n };\n },\n htmlBuilder: (group, options) => {\n // Treat under accents much like underlines.\n var innerGroup = buildGroup$1(group.base, options);\n var accentBody = stretchy.svgSpan(group, options);\n var kern = group.label === \"\\\\utilde\" ? 0.12 : 0; // Generate the vlist, with the appropriate kerns\n\n var vlist = buildCommon.makeVList({\n positionType: \"top\",\n positionData: innerGroup.height,\n children: [{\n type: \"elem\",\n elem: accentBody,\n wrapperClasses: [\"svg-align\"]\n }, {\n type: \"kern\",\n size: kern\n }, {\n type: \"elem\",\n elem: innerGroup\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"accentunder\"], [vlist], options);\n },\n mathmlBuilder: (group, options) => {\n var accentNode = stretchy.mathMLnode(group.label);\n var node = new mathMLTree.MathNode(\"munder\", [buildGroup(group.base, options), accentNode]);\n node.setAttribute(\"accentunder\", \"true\");\n return node;\n }\n});\n\n// Helper function\nvar paddedNode = group => {\n var node = new mathMLTree.MathNode(\"mpadded\", group ? [group] : []);\n node.setAttribute(\"width\", \"+0.6em\");\n node.setAttribute(\"lspace\", \"0.3em\");\n return node;\n}; // Stretchy arrows with an optional argument\n\n\ndefineFunction({\n type: \"xArrow\",\n names: [\"\\\\xleftarrow\", \"\\\\xrightarrow\", \"\\\\xLeftarrow\", \"\\\\xRightarrow\", \"\\\\xleftrightarrow\", \"\\\\xLeftrightarrow\", \"\\\\xhookleftarrow\", \"\\\\xhookrightarrow\", \"\\\\xmapsto\", \"\\\\xrightharpoondown\", \"\\\\xrightharpoonup\", \"\\\\xleftharpoondown\", \"\\\\xleftharpoonup\", \"\\\\xrightleftharpoons\", \"\\\\xleftrightharpoons\", \"\\\\xlongequal\", \"\\\\xtwoheadrightarrow\", \"\\\\xtwoheadleftarrow\", \"\\\\xtofrom\", // The next 3 functions are here to support the mhchem extension.\n // Direct use of these functions is discouraged and may break someday.\n \"\\\\xrightleftarrows\", \"\\\\xrightequilibrium\", \"\\\\xleftequilibrium\", // The next 3 functions are here only to support the {CD} environment.\n \"\\\\\\\\cdrightarrow\", \"\\\\\\\\cdleftarrow\", \"\\\\\\\\cdlongequal\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser,\n funcName\n } = _ref;\n return {\n type: \"xArrow\",\n mode: parser.mode,\n label: funcName,\n body: args[0],\n below: optArgs[0]\n };\n },\n\n // Flow is unable to correctly infer the type of `group`, even though it's\n // unambiguously determined from the passed-in `type` above.\n htmlBuilder(group, options) {\n var style = options.style; // Build the argument groups in the appropriate style.\n // Ref: amsmath.dtx: \\hbox{$\\scriptstyle\\mkern#3mu{#6}\\mkern#4mu$}%\n // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n\n var newOptions = options.havingStyle(style.sup());\n var upperGroup = buildCommon.wrapFragment(buildGroup$1(group.body, newOptions, options), options);\n var arrowPrefix = group.label.slice(0, 2) === \"\\\\x\" ? \"x\" : \"cd\";\n upperGroup.classes.push(arrowPrefix + \"-arrow-pad\");\n var lowerGroup;\n\n if (group.below) {\n // Build the lower group\n newOptions = options.havingStyle(style.sub());\n lowerGroup = buildCommon.wrapFragment(buildGroup$1(group.below, newOptions, options), options);\n lowerGroup.classes.push(arrowPrefix + \"-arrow-pad\");\n }\n\n var arrowBody = stretchy.svgSpan(group, options); // Re shift: Note that stretchy.svgSpan returned arrowBody.depth = 0.\n // The point we want on the math axis is at 0.5 * arrowBody.height.\n\n var arrowShift = -options.fontMetrics().axisHeight + 0.5 * arrowBody.height; // 2 mu kern. Ref: amsmath.dtx: #7\\if0#2\\else\\mkern#2mu\\fi\n\n var upperShift = -options.fontMetrics().axisHeight - 0.5 * arrowBody.height - 0.111; // 0.111 em = 2 mu\n\n if (upperGroup.depth > 0.25 || group.label === \"\\\\xleftequilibrium\") {\n upperShift -= upperGroup.depth; // shift up if depth encroaches\n } // Generate the vlist\n\n\n var vlist;\n\n if (lowerGroup) {\n var lowerShift = -options.fontMetrics().axisHeight + lowerGroup.height + 0.5 * arrowBody.height + 0.111;\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: upperGroup,\n shift: upperShift\n }, {\n type: \"elem\",\n elem: arrowBody,\n shift: arrowShift\n }, {\n type: \"elem\",\n elem: lowerGroup,\n shift: lowerShift\n }]\n }, options);\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: upperGroup,\n shift: upperShift\n }, {\n type: \"elem\",\n elem: arrowBody,\n shift: arrowShift\n }]\n }, options);\n } // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n\n vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n return buildCommon.makeSpan([\"mrel\", \"x-arrow\"], [vlist], options);\n },\n\n mathmlBuilder(group, options) {\n var arrowNode = stretchy.mathMLnode(group.label);\n arrowNode.setAttribute(\"minsize\", group.label.charAt(0) === \"x\" ? \"1.75em\" : \"3.0em\");\n var node;\n\n if (group.body) {\n var upperNode = paddedNode(buildGroup(group.body, options));\n\n if (group.below) {\n var lowerNode = paddedNode(buildGroup(group.below, options));\n node = new mathMLTree.MathNode(\"munderover\", [arrowNode, lowerNode, upperNode]);\n } else {\n node = new mathMLTree.MathNode(\"mover\", [arrowNode, upperNode]);\n }\n } else if (group.below) {\n var _lowerNode = paddedNode(buildGroup(group.below, options));\n\n node = new mathMLTree.MathNode(\"munder\", [arrowNode, _lowerNode]);\n } else {\n // This should never happen.\n // Parser.js throws an error if there is no argument.\n node = paddedNode();\n node = new mathMLTree.MathNode(\"mover\", [arrowNode, node]);\n }\n\n return node;\n }\n\n});\n\nvar makeSpan = buildCommon.makeSpan;\n\nfunction htmlBuilder$9(group, options) {\n var elements = buildExpression$1(group.body, options, true);\n return makeSpan([group.mclass], elements, options);\n}\n\nfunction mathmlBuilder$8(group, options) {\n var node;\n var inner = buildExpression(group.body, options);\n\n if (group.mclass === \"minner\") {\n node = new mathMLTree.MathNode(\"mpadded\", inner);\n } else if (group.mclass === \"mord\") {\n if (group.isCharacterBox) {\n node = inner[0];\n node.type = \"mi\";\n } else {\n node = new mathMLTree.MathNode(\"mi\", inner);\n }\n } else {\n if (group.isCharacterBox) {\n node = inner[0];\n node.type = \"mo\";\n } else {\n node = new mathMLTree.MathNode(\"mo\", inner);\n } // Set spacing based on what is the most likely adjacent atom type.\n // See TeXbook p170.\n\n\n if (group.mclass === \"mbin\") {\n node.attributes.lspace = \"0.22em\"; // medium space\n\n node.attributes.rspace = \"0.22em\";\n } else if (group.mclass === \"mpunct\") {\n node.attributes.lspace = \"0em\";\n node.attributes.rspace = \"0.17em\"; // thinspace\n } else if (group.mclass === \"mopen\" || group.mclass === \"mclose\") {\n node.attributes.lspace = \"0em\";\n node.attributes.rspace = \"0em\";\n } else if (group.mclass === \"minner\") {\n node.attributes.lspace = \"0.0556em\"; // 1 mu is the most likely option\n\n node.attributes.width = \"+0.1111em\";\n } // MathML <mo> default space is 5/18 em, so <mrel> needs no action.\n // Ref: https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mo\n\n }\n\n return node;\n} // Math class commands except \\mathop\n\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\mathord\", \"\\\\mathbin\", \"\\\\mathrel\", \"\\\\mathopen\", \"\\\\mathclose\", \"\\\\mathpunct\", \"\\\\mathinner\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n var body = args[0];\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: \"m\" + funcName.slice(5),\n // TODO(kevinb): don't prefix with 'm'\n body: ordargument(body),\n isCharacterBox: utils.isCharacterBox(body)\n };\n },\n\n htmlBuilder: htmlBuilder$9,\n mathmlBuilder: mathmlBuilder$8\n});\nvar binrelClass = arg => {\n // \\binrel@ spacing varies with (bin|rel|ord) of the atom in the argument.\n // (by rendering separately and with {}s before and after, and measuring\n // the change in spacing). We'll do roughly the same by detecting the\n // atom type directly.\n var atom = arg.type === \"ordgroup\" && arg.body.length ? arg.body[0] : arg;\n\n if (atom.type === \"atom\" && (atom.family === \"bin\" || atom.family === \"rel\")) {\n return \"m\" + atom.family;\n } else {\n return \"mord\";\n }\n}; // \\@binrel{x}{y} renders like y but as mbin/mrel/mord if x is mbin/mrel/mord.\n// This is equivalent to \\binrel@{x}\\binrel@@{y} in AMSTeX.\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\@binrel\"],\n props: {\n numArgs: 2\n },\n\n handler(_ref2, args) {\n var {\n parser\n } = _ref2;\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: binrelClass(args[0]),\n body: ordargument(args[1]),\n isCharacterBox: utils.isCharacterBox(args[1])\n };\n }\n\n}); // Build a relation or stacked op by placing one symbol on top of another\n\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\stackrel\", \"\\\\overset\", \"\\\\underset\"],\n props: {\n numArgs: 2\n },\n\n handler(_ref3, args) {\n var {\n parser,\n funcName\n } = _ref3;\n var baseArg = args[1];\n var shiftedArg = args[0];\n var mclass;\n\n if (funcName !== \"\\\\stackrel\") {\n // LaTeX applies \\binrel spacing to \\overset and \\underset.\n mclass = binrelClass(baseArg);\n } else {\n mclass = \"mrel\"; // for \\stackrel\n }\n\n var baseOp = {\n type: \"op\",\n mode: baseArg.mode,\n limits: true,\n alwaysHandleSupSub: true,\n parentIsSupSub: false,\n symbol: false,\n suppressBaseShift: funcName !== \"\\\\stackrel\",\n body: ordargument(baseArg)\n };\n var supsub = {\n type: \"supsub\",\n mode: shiftedArg.mode,\n base: baseOp,\n sup: funcName === \"\\\\underset\" ? null : shiftedArg,\n sub: funcName === \"\\\\underset\" ? shiftedArg : null\n };\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass,\n body: [supsub],\n isCharacterBox: utils.isCharacterBox(supsub)\n };\n },\n\n htmlBuilder: htmlBuilder$9,\n mathmlBuilder: mathmlBuilder$8\n});\n\n// \\pmb is a simulation of bold font.\n// The version of \\pmb in ambsy.sty works by typesetting three copies\n// with small offsets. We use CSS text-shadow.\n// It's a hack. Not as good as a real bold font. Better than nothing.\ndefineFunction({\n type: \"pmb\",\n names: [\"\\\\pmb\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n return {\n type: \"pmb\",\n mode: parser.mode,\n mclass: binrelClass(args[0]),\n body: ordargument(args[0])\n };\n },\n\n htmlBuilder(group, options) {\n var elements = buildExpression$1(group.body, options, true);\n var node = buildCommon.makeSpan([group.mclass], elements, options);\n node.style.textShadow = \"0.02em 0.01em 0.04px\";\n return node;\n },\n\n mathmlBuilder(group, style) {\n var inner = buildExpression(group.body, style); // Wrap with an <mstyle> element.\n\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n node.setAttribute(\"style\", \"text-shadow: 0.02em 0.01em 0.04px\");\n return node;\n }\n\n});\n\nvar cdArrowFunctionName = {\n \">\": \"\\\\\\\\cdrightarrow\",\n \"<\": \"\\\\\\\\cdleftarrow\",\n \"=\": \"\\\\\\\\cdlongequal\",\n \"A\": \"\\\\uparrow\",\n \"V\": \"\\\\downarrow\",\n \"|\": \"\\\\Vert\",\n \".\": \"no arrow\"\n};\n\nvar newCell = () => {\n // Create an empty cell, to be filled below with parse nodes.\n // The parseTree from this module must be constructed like the\n // one created by parseArray(), so an empty CD cell must\n // be a ParseNode<\"styling\">. And CD is always displaystyle.\n // So these values are fixed and flow can do implicit typing.\n return {\n type: \"styling\",\n body: [],\n mode: \"math\",\n style: \"display\"\n };\n};\n\nvar isStartOfArrow = node => {\n return node.type === \"textord\" && node.text === \"@\";\n};\n\nvar isLabelEnd = (node, endChar) => {\n return (node.type === \"mathord\" || node.type === \"atom\") && node.text === endChar;\n};\n\nfunction cdArrow(arrowChar, labels, parser) {\n // Return a parse tree of an arrow and its labels.\n // This acts in a way similar to a macro expansion.\n var funcName = cdArrowFunctionName[arrowChar];\n\n switch (funcName) {\n case \"\\\\\\\\cdrightarrow\":\n case \"\\\\\\\\cdleftarrow\":\n return parser.callFunction(funcName, [labels[0]], [labels[1]]);\n\n case \"\\\\uparrow\":\n case \"\\\\downarrow\":\n {\n var leftLabel = parser.callFunction(\"\\\\\\\\cdleft\", [labels[0]], []);\n var bareArrow = {\n type: \"atom\",\n text: funcName,\n mode: \"math\",\n family: \"rel\"\n };\n var sizedArrow = parser.callFunction(\"\\\\Big\", [bareArrow], []);\n var rightLabel = parser.callFunction(\"\\\\\\\\cdright\", [labels[1]], []);\n var arrowGroup = {\n type: \"ordgroup\",\n mode: \"math\",\n body: [leftLabel, sizedArrow, rightLabel]\n };\n return parser.callFunction(\"\\\\\\\\cdparent\", [arrowGroup], []);\n }\n\n case \"\\\\\\\\cdlongequal\":\n return parser.callFunction(\"\\\\\\\\cdlongequal\", [], []);\n\n case \"\\\\Vert\":\n {\n var arrow = {\n type: \"textord\",\n text: \"\\\\Vert\",\n mode: \"math\"\n };\n return parser.callFunction(\"\\\\Big\", [arrow], []);\n }\n\n default:\n return {\n type: \"textord\",\n text: \" \",\n mode: \"math\"\n };\n }\n}\n\nfunction parseCD(parser) {\n // Get the array's parse nodes with \\\\ temporarily mapped to \\cr.\n var parsedRows = [];\n parser.gullet.beginGroup();\n parser.gullet.macros.set(\"\\\\cr\", \"\\\\\\\\\\\\relax\");\n parser.gullet.beginGroup();\n\n while (true) {\n // eslint-disable-line no-constant-condition\n // Get the parse nodes for the next row.\n parsedRows.push(parser.parseExpression(false, \"\\\\\\\\\"));\n parser.gullet.endGroup();\n parser.gullet.beginGroup();\n var next = parser.fetch().text;\n\n if (next === \"&\" || next === \"\\\\\\\\\") {\n parser.consume();\n } else if (next === \"\\\\end\") {\n if (parsedRows[parsedRows.length - 1].length === 0) {\n parsedRows.pop(); // final row ended in \\\\\n }\n\n break;\n } else {\n throw new ParseError(\"Expected \\\\\\\\ or \\\\cr or \\\\end\", parser.nextToken);\n }\n }\n\n var row = [];\n var body = [row]; // Loop thru the parse nodes. Collect them into cells and arrows.\n\n for (var i = 0; i < parsedRows.length; i++) {\n // Start a new row.\n var rowNodes = parsedRows[i]; // Create the first cell.\n\n var cell = newCell();\n\n for (var j = 0; j < rowNodes.length; j++) {\n if (!isStartOfArrow(rowNodes[j])) {\n // If a parseNode is not an arrow, it goes into a cell.\n cell.body.push(rowNodes[j]);\n } else {\n // Parse node j is an \"@\", the start of an arrow.\n // Before starting on the arrow, push the cell into `row`.\n row.push(cell); // Now collect parseNodes into an arrow.\n // The character after \"@\" defines the arrow type.\n\n j += 1;\n var arrowChar = assertSymbolNodeType(rowNodes[j]).text; // Create two empty label nodes. We may or may not use them.\n\n var labels = new Array(2);\n labels[0] = {\n type: \"ordgroup\",\n mode: \"math\",\n body: []\n };\n labels[1] = {\n type: \"ordgroup\",\n mode: \"math\",\n body: []\n }; // Process the arrow.\n\n if (\"=|.\".indexOf(arrowChar) > -1) ; else if (\"<>AV\".indexOf(arrowChar) > -1) {\n // Four arrows, `@>>>`, `@<<<`, `@AAA`, and `@VVV`, each take\n // two optional labels. E.g. the right-point arrow syntax is\n // really: @>{optional label}>{optional label}>\n // Collect parseNodes into labels.\n for (var labelNum = 0; labelNum < 2; labelNum++) {\n var inLabel = true;\n\n for (var k = j + 1; k < rowNodes.length; k++) {\n if (isLabelEnd(rowNodes[k], arrowChar)) {\n inLabel = false;\n j = k;\n break;\n }\n\n if (isStartOfArrow(rowNodes[k])) {\n throw new ParseError(\"Missing a \" + arrowChar + \" character to complete a CD arrow.\", rowNodes[k]);\n }\n\n labels[labelNum].body.push(rowNodes[k]);\n }\n\n if (inLabel) {\n // isLabelEnd never returned a true.\n throw new ParseError(\"Missing a \" + arrowChar + \" character to complete a CD arrow.\", rowNodes[j]);\n }\n }\n } else {\n throw new ParseError(\"Expected one of \\\"<>AV=|.\\\" after @\", rowNodes[j]);\n } // Now join the arrow to its labels.\n\n\n var arrow = cdArrow(arrowChar, labels, parser); // Wrap the arrow in ParseNode<\"styling\">.\n // This is done to match parseArray() behavior.\n\n var wrappedArrow = {\n type: \"styling\",\n body: [arrow],\n mode: \"math\",\n style: \"display\" // CD is always displaystyle.\n\n };\n row.push(wrappedArrow); // In CD's syntax, cells are implicit. That is, everything that\n // is not an arrow gets collected into a cell. So create an empty\n // cell now. It will collect upcoming parseNodes.\n\n cell = newCell();\n }\n }\n\n if (i % 2 === 0) {\n // Even-numbered rows consist of: cell, arrow, cell, arrow, ... cell\n // The last cell is not yet pushed into `row`, so:\n row.push(cell);\n } else {\n // Odd-numbered rows consist of: vert arrow, empty cell, ... vert arrow\n // Remove the empty cell that was placed at the beginning of `row`.\n row.shift();\n }\n\n row = [];\n body.push(row);\n } // End row group\n\n\n parser.gullet.endGroup(); // End array group defining \\\\\n\n parser.gullet.endGroup(); // define column separation.\n\n var cols = new Array(body[0].length).fill({\n type: \"align\",\n align: \"c\",\n pregap: 0.25,\n // CD package sets \\enskip between columns.\n postgap: 0.25 // So pre and post each get half an \\enskip, i.e. 0.25em.\n\n });\n return {\n type: \"array\",\n mode: \"math\",\n body,\n arraystretch: 1,\n addJot: true,\n rowGaps: [null],\n cols,\n colSeparationType: \"CD\",\n hLinesBeforeRow: new Array(body.length + 1).fill([])\n };\n} // The functions below are not available for general use.\n// They are here only for internal use by the {CD} environment in placing labels\n// next to vertical arrows.\n// We don't need any such functions for horizontal arrows because we can reuse\n// the functionality that already exists for extensible arrows.\n\ndefineFunction({\n type: \"cdlabel\",\n names: [\"\\\\\\\\cdleft\", \"\\\\\\\\cdright\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n return {\n type: \"cdlabel\",\n mode: parser.mode,\n side: funcName.slice(4),\n label: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n var newOptions = options.havingStyle(options.style.sup());\n var label = buildCommon.wrapFragment(buildGroup$1(group.label, newOptions, options), options);\n label.classes.push(\"cd-label-\" + group.side);\n label.style.bottom = makeEm(0.8 - label.depth); // Zero out label height & depth, so vertical align of arrow is set\n // by the arrow height, not by the label.\n\n label.height = 0;\n label.depth = 0;\n return label;\n },\n\n mathmlBuilder(group, options) {\n var label = new mathMLTree.MathNode(\"mrow\", [buildGroup(group.label, options)]);\n label = new mathMLTree.MathNode(\"mpadded\", [label]);\n label.setAttribute(\"width\", \"0\");\n\n if (group.side === \"left\") {\n label.setAttribute(\"lspace\", \"-1width\");\n } // We have to guess at vertical alignment. We know the arrow is 1.8em tall,\n // But we don't know the height or depth of the label.\n\n\n label.setAttribute(\"voffset\", \"0.7em\");\n label = new mathMLTree.MathNode(\"mstyle\", [label]);\n label.setAttribute(\"displaystyle\", \"false\");\n label.setAttribute(\"scriptlevel\", \"1\");\n return label;\n }\n\n});\ndefineFunction({\n type: \"cdlabelparent\",\n names: [\"\\\\\\\\cdparent\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref2, args) {\n var {\n parser\n } = _ref2;\n return {\n type: \"cdlabelparent\",\n mode: parser.mode,\n fragment: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n // Wrap the vertical arrow and its labels.\n // The parent gets position: relative. The child gets position: absolute.\n // So CSS can locate the label correctly.\n var parent = buildCommon.wrapFragment(buildGroup$1(group.fragment, options), options);\n parent.classes.push(\"cd-vert-arrow\");\n return parent;\n },\n\n mathmlBuilder(group, options) {\n return new mathMLTree.MathNode(\"mrow\", [buildGroup(group.fragment, options)]);\n }\n\n});\n\n// {123} and converts into symbol with code 123. It is used by the *macro*\n// \\char defined in macros.js.\n\ndefineFunction({\n type: \"textord\",\n names: [\"\\\\@char\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n var arg = assertNodeType(args[0], \"ordgroup\");\n var group = arg.body;\n var number = \"\";\n\n for (var i = 0; i < group.length; i++) {\n var node = assertNodeType(group[i], \"textord\");\n number += node.text;\n }\n\n var code = parseInt(number);\n var text;\n\n if (isNaN(code)) {\n throw new ParseError(\"\\\\@char has non-numeric argument \" + number); // If we drop IE support, the following code could be replaced with\n // text = String.fromCodePoint(code)\n } else if (code < 0 || code >= 0x10ffff) {\n throw new ParseError(\"\\\\@char with invalid code point \" + number);\n } else if (code <= 0xffff) {\n text = String.fromCharCode(code);\n } else {\n // Astral code point; split into surrogate halves\n code -= 0x10000;\n text = String.fromCharCode((code >> 10) + 0xd800, (code & 0x3ff) + 0xdc00);\n }\n\n return {\n type: \"textord\",\n mode: parser.mode,\n text: text\n };\n }\n\n});\n\nvar htmlBuilder$8 = (group, options) => {\n var elements = buildExpression$1(group.body, options.withColor(group.color), false); // \\color isn't supposed to affect the type of the elements it contains.\n // To accomplish this, we wrap the results in a fragment, so the inner\n // elements will be able to directly interact with their neighbors. For\n // example, `\\color{red}{2 +} 3` has the same spacing as `2 + 3`\n\n return buildCommon.makeFragment(elements);\n};\n\nvar mathmlBuilder$7 = (group, options) => {\n var inner = buildExpression(group.body, options.withColor(group.color));\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n node.setAttribute(\"mathcolor\", group.color);\n return node;\n};\n\ndefineFunction({\n type: \"color\",\n names: [\"\\\\textcolor\"],\n props: {\n numArgs: 2,\n allowedInText: true,\n argTypes: [\"color\", \"original\"]\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n var color = assertNodeType(args[0], \"color-token\").color;\n var body = args[1];\n return {\n type: \"color\",\n mode: parser.mode,\n color,\n body: ordargument(body)\n };\n },\n\n htmlBuilder: htmlBuilder$8,\n mathmlBuilder: mathmlBuilder$7\n});\ndefineFunction({\n type: \"color\",\n names: [\"\\\\color\"],\n props: {\n numArgs: 1,\n allowedInText: true,\n argTypes: [\"color\"]\n },\n\n handler(_ref2, args) {\n var {\n parser,\n breakOnTokenText\n } = _ref2;\n var color = assertNodeType(args[0], \"color-token\").color; // Set macro \\current@color in current namespace to store the current\n // color, mimicking the behavior of color.sty.\n // This is currently used just to correctly color a \\right\n // that follows a \\color command.\n\n parser.gullet.macros.set(\"\\\\current@color\", color); // Parse out the implicit body that should be colored.\n\n var body = parser.parseExpression(true, breakOnTokenText);\n return {\n type: \"color\",\n mode: parser.mode,\n color,\n body\n };\n },\n\n htmlBuilder: htmlBuilder$8,\n mathmlBuilder: mathmlBuilder$7\n});\n\n// Row breaks within tabular environments, and line breaks at top level\n\ndefineFunction({\n type: \"cr\",\n names: [\"\\\\\\\\\"],\n props: {\n numArgs: 0,\n numOptionalArgs: 0,\n allowedInText: true\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser\n } = _ref;\n var size = parser.gullet.future().text === \"[\" ? parser.parseSizeGroup(true) : null;\n var newLine = !parser.settings.displayMode || !parser.settings.useStrictBehavior(\"newLineInDisplayMode\", \"In LaTeX, \\\\\\\\ or \\\\newline \" + \"does nothing in display mode\");\n return {\n type: \"cr\",\n mode: parser.mode,\n newLine,\n size: size && assertNodeType(size, \"size\").value\n };\n },\n\n // The following builders are called only at the top level,\n // not within tabular/array environments.\n htmlBuilder(group, options) {\n var span = buildCommon.makeSpan([\"mspace\"], [], options);\n\n if (group.newLine) {\n span.classes.push(\"newline\");\n\n if (group.size) {\n span.style.marginTop = makeEm(calculateSize(group.size, options));\n }\n }\n\n return span;\n },\n\n mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mspace\");\n\n if (group.newLine) {\n node.setAttribute(\"linebreak\", \"newline\");\n\n if (group.size) {\n node.setAttribute(\"height\", makeEm(calculateSize(group.size, options)));\n }\n }\n\n return node;\n }\n\n});\n\nvar globalMap = {\n \"\\\\global\": \"\\\\global\",\n \"\\\\long\": \"\\\\\\\\globallong\",\n \"\\\\\\\\globallong\": \"\\\\\\\\globallong\",\n \"\\\\def\": \"\\\\gdef\",\n \"\\\\gdef\": \"\\\\gdef\",\n \"\\\\edef\": \"\\\\xdef\",\n \"\\\\xdef\": \"\\\\xdef\",\n \"\\\\let\": \"\\\\\\\\globallet\",\n \"\\\\futurelet\": \"\\\\\\\\globalfuture\"\n};\n\nvar checkControlSequence = tok => {\n var name = tok.text;\n\n if (/^(?:[\\\\{}$&#^_]|EOF)$/.test(name)) {\n throw new ParseError(\"Expected a control sequence\", tok);\n }\n\n return name;\n};\n\nvar getRHS = parser => {\n var tok = parser.gullet.popToken();\n\n if (tok.text === \"=\") {\n // consume optional equals\n tok = parser.gullet.popToken();\n\n if (tok.text === \" \") {\n // consume one optional space\n tok = parser.gullet.popToken();\n }\n }\n\n return tok;\n};\n\nvar letCommand = (parser, name, tok, global) => {\n var macro = parser.gullet.macros.get(tok.text);\n\n if (macro == null) {\n // don't expand it later even if a macro with the same name is defined\n // e.g., \\let\\foo=\\frac \\def\\frac{\\relax} \\frac12\n tok.noexpand = true;\n macro = {\n tokens: [tok],\n numArgs: 0,\n // reproduce the same behavior in expansion\n unexpandable: !parser.gullet.isExpandable(tok.text)\n };\n }\n\n parser.gullet.macros.set(name, macro, global);\n}; // <assignment> -> <non-macro assignment>|<macro assignment>\n// <non-macro assignment> -> <simple assignment>|\\global<non-macro assignment>\n// <macro assignment> -> <definition>|<prefix><macro assignment>\n// <prefix> -> \\global|\\long|\\outer\n\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\global\", \"\\\\long\", \"\\\\\\\\globallong\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n\n handler(_ref) {\n var {\n parser,\n funcName\n } = _ref;\n parser.consumeSpaces();\n var token = parser.fetch();\n\n if (globalMap[token.text]) {\n // KaTeX doesn't have \\par, so ignore \\long\n if (funcName === \"\\\\global\" || funcName === \"\\\\\\\\globallong\") {\n token.text = globalMap[token.text];\n }\n\n return assertNodeType(parser.parseFunction(), \"internal\");\n }\n\n throw new ParseError(\"Invalid token after macro prefix\", token);\n }\n\n}); // Basic support for macro definitions: \\def, \\gdef, \\edef, \\xdef\n// <definition> -> <def><control sequence><definition text>\n// <def> -> \\def|\\gdef|\\edef|\\xdef\n// <definition text> -> <parameter text><left brace><balanced text><right brace>\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\def\", \"\\\\gdef\", \"\\\\edef\", \"\\\\xdef\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref2) {\n var {\n parser,\n funcName\n } = _ref2;\n var tok = parser.gullet.popToken();\n var name = tok.text;\n\n if (/^(?:[\\\\{}$&#^_]|EOF)$/.test(name)) {\n throw new ParseError(\"Expected a control sequence\", tok);\n }\n\n var numArgs = 0;\n var insert;\n var delimiters = [[]]; // <parameter text> contains no braces\n\n while (parser.gullet.future().text !== \"{\") {\n tok = parser.gullet.popToken();\n\n if (tok.text === \"#\") {\n // If the very last character of the <parameter text> is #, so that\n // this # is immediately followed by {, TeX will behave as if the {\n // had been inserted at the right end of both the parameter text\n // and the replacement text.\n if (parser.gullet.future().text === \"{\") {\n insert = parser.gullet.future();\n delimiters[numArgs].push(\"{\");\n break;\n } // A parameter, the first appearance of # must be followed by 1,\n // the next by 2, and so on; up to nine #’s are allowed\n\n\n tok = parser.gullet.popToken();\n\n if (!/^[1-9]$/.test(tok.text)) {\n throw new ParseError(\"Invalid argument number \\\"\" + tok.text + \"\\\"\");\n }\n\n if (parseInt(tok.text) !== numArgs + 1) {\n throw new ParseError(\"Argument number \\\"\" + tok.text + \"\\\" out of order\");\n }\n\n numArgs++;\n delimiters.push([]);\n } else if (tok.text === \"EOF\") {\n throw new ParseError(\"Expected a macro definition\");\n } else {\n delimiters[numArgs].push(tok.text);\n }\n } // replacement text, enclosed in '{' and '}' and properly nested\n\n\n var {\n tokens\n } = parser.gullet.consumeArg();\n\n if (insert) {\n tokens.unshift(insert);\n }\n\n if (funcName === \"\\\\edef\" || funcName === \"\\\\xdef\") {\n tokens = parser.gullet.expandTokens(tokens);\n tokens.reverse(); // to fit in with stack order\n } // Final arg is the expansion of the macro\n\n\n parser.gullet.macros.set(name, {\n tokens,\n numArgs,\n delimiters\n }, funcName === globalMap[funcName]);\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n}); // <simple assignment> -> <let assignment>\n// <let assignment> -> \\futurelet<control sequence><token><token>\n// | \\let<control sequence><equals><one optional space><token>\n// <equals> -> <optional spaces>|<optional spaces>=\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\let\", \"\\\\\\\\globallet\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref3) {\n var {\n parser,\n funcName\n } = _ref3;\n var name = checkControlSequence(parser.gullet.popToken());\n parser.gullet.consumeSpaces();\n var tok = getRHS(parser);\n letCommand(parser, name, tok, funcName === \"\\\\\\\\globallet\");\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n}); // ref: https://www.tug.org/TUGboat/tb09-3/tb22bechtolsheim.pdf\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\futurelet\", \"\\\\\\\\globalfuture\" // can’t be entered directly\n ],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref4) {\n var {\n parser,\n funcName\n } = _ref4;\n var name = checkControlSequence(parser.gullet.popToken());\n var middle = parser.gullet.popToken();\n var tok = parser.gullet.popToken();\n letCommand(parser, name, tok, funcName === \"\\\\\\\\globalfuture\");\n parser.gullet.pushToken(tok);\n parser.gullet.pushToken(middle);\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n});\n\n/**\n * This file deals with creating delimiters of various sizes. The TeXbook\n * discusses these routines on page 441-442, in the \"Another subroutine sets box\n * x to a specified variable delimiter\" paragraph.\n *\n * There are three main routines here. `makeSmallDelim` makes a delimiter in the\n * normal font, but in either text, script, or scriptscript style.\n * `makeLargeDelim` makes a delimiter in textstyle, but in one of the Size1,\n * Size2, Size3, or Size4 fonts. `makeStackedDelim` makes a delimiter out of\n * smaller pieces that are stacked on top of one another.\n *\n * The functions take a parameter `center`, which determines if the delimiter\n * should be centered around the axis.\n *\n * Then, there are three exposed functions. `sizedDelim` makes a delimiter in\n * one of the given sizes. This is used for things like `\\bigl`.\n * `customSizedDelim` makes a delimiter with a given total height+depth. It is\n * called in places like `\\sqrt`. `leftRightDelim` makes an appropriate\n * delimiter which surrounds an expression of a given height an depth. It is\n * used in `\\left` and `\\right`.\n */\n\n/**\n * Get the metrics for a given symbol and font, after transformation (i.e.\n * after following replacement from symbols.js)\n */\nvar getMetrics = function getMetrics(symbol, font, mode) {\n var replace = symbols.math[symbol] && symbols.math[symbol].replace;\n var metrics = getCharacterMetrics(replace || symbol, font, mode);\n\n if (!metrics) {\n throw new Error(\"Unsupported symbol \" + symbol + \" and font size \" + font + \".\");\n }\n\n return metrics;\n};\n/**\n * Puts a delimiter span in a given style, and adds appropriate height, depth,\n * and maxFontSizes.\n */\n\n\nvar styleWrap = function styleWrap(delim, toStyle, options, classes) {\n var newOptions = options.havingBaseStyle(toStyle);\n var span = buildCommon.makeSpan(classes.concat(newOptions.sizingClasses(options)), [delim], options);\n var delimSizeMultiplier = newOptions.sizeMultiplier / options.sizeMultiplier;\n span.height *= delimSizeMultiplier;\n span.depth *= delimSizeMultiplier;\n span.maxFontSize = newOptions.sizeMultiplier;\n return span;\n};\n\nvar centerSpan = function centerSpan(span, options, style) {\n var newOptions = options.havingBaseStyle(style);\n var shift = (1 - options.sizeMultiplier / newOptions.sizeMultiplier) * options.fontMetrics().axisHeight;\n span.classes.push(\"delimcenter\");\n span.style.top = makeEm(shift);\n span.height -= shift;\n span.depth += shift;\n};\n/**\n * Makes a small delimiter. This is a delimiter that comes in the Main-Regular\n * font, but is restyled to either be in textstyle, scriptstyle, or\n * scriptscriptstyle.\n */\n\n\nvar makeSmallDelim = function makeSmallDelim(delim, style, center, options, mode, classes) {\n var text = buildCommon.makeSymbol(delim, \"Main-Regular\", mode, options);\n var span = styleWrap(text, style, options, classes);\n\n if (center) {\n centerSpan(span, options, style);\n }\n\n return span;\n};\n/**\n * Builds a symbol in the given font size (note size is an integer)\n */\n\n\nvar mathrmSize = function mathrmSize(value, size, mode, options) {\n return buildCommon.makeSymbol(value, \"Size\" + size + \"-Regular\", mode, options);\n};\n/**\n * Makes a large delimiter. This is a delimiter that comes in the Size1, Size2,\n * Size3, or Size4 fonts. It is always rendered in textstyle.\n */\n\n\nvar makeLargeDelim = function makeLargeDelim(delim, size, center, options, mode, classes) {\n var inner = mathrmSize(delim, size, mode, options);\n var span = styleWrap(buildCommon.makeSpan([\"delimsizing\", \"size\" + size], [inner], options), Style$1.TEXT, options, classes);\n\n if (center) {\n centerSpan(span, options, Style$1.TEXT);\n }\n\n return span;\n};\n/**\n * Make a span from a font glyph with the given offset and in the given font.\n * This is used in makeStackedDelim to make the stacking pieces for the delimiter.\n */\n\n\nvar makeGlyphSpan = function makeGlyphSpan(symbol, font, mode) {\n var sizeClass; // Apply the correct CSS class to choose the right font.\n\n if (font === \"Size1-Regular\") {\n sizeClass = \"delim-size1\";\n } else\n /* if (font === \"Size4-Regular\") */\n {\n sizeClass = \"delim-size4\";\n }\n\n var corner = buildCommon.makeSpan([\"delimsizinginner\", sizeClass], [buildCommon.makeSpan([], [buildCommon.makeSymbol(symbol, font, mode)])]); // Since this will be passed into `makeVList` in the end, wrap the element\n // in the appropriate tag that VList uses.\n\n return {\n type: \"elem\",\n elem: corner\n };\n};\n\nvar makeInner = function makeInner(ch, height, options) {\n // Create a span with inline SVG for the inner part of a tall stacked delimiter.\n var width = fontMetricsData['Size4-Regular'][ch.charCodeAt(0)] ? fontMetricsData['Size4-Regular'][ch.charCodeAt(0)][4] : fontMetricsData['Size1-Regular'][ch.charCodeAt(0)][4];\n var path = new PathNode(\"inner\", innerPath(ch, Math.round(1000 * height)));\n var svgNode = new SvgNode([path], {\n \"width\": makeEm(width),\n \"height\": makeEm(height),\n // Override CSS rule `.katex svg { width: 100% }`\n \"style\": \"width:\" + makeEm(width),\n \"viewBox\": \"0 0 \" + 1000 * width + \" \" + Math.round(1000 * height),\n \"preserveAspectRatio\": \"xMinYMin\"\n });\n var span = buildCommon.makeSvgSpan([], [svgNode], options);\n span.height = height;\n span.style.height = makeEm(height);\n span.style.width = makeEm(width);\n return {\n type: \"elem\",\n elem: span\n };\n}; // Helpers for makeStackedDelim\n\n\nvar lapInEms = 0.008;\nvar lap = {\n type: \"kern\",\n size: -1 * lapInEms\n};\nvar verts = [\"|\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\vert\"];\nvar doubleVerts = [\"\\\\|\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\Vert\"];\n/**\n * Make a stacked delimiter out of a given delimiter, with the total height at\n * least `heightTotal`. This routine is mentioned on page 442 of the TeXbook.\n */\n\nvar makeStackedDelim = function makeStackedDelim(delim, heightTotal, center, options, mode, classes) {\n // There are four parts, the top, an optional middle, a repeated part, and a\n // bottom.\n var top;\n var middle;\n var repeat;\n var bottom;\n var svgLabel = \"\";\n var viewBoxWidth = 0;\n top = repeat = bottom = delim;\n middle = null; // Also keep track of what font the delimiters are in\n\n var font = \"Size1-Regular\"; // We set the parts and font based on the symbol. Note that we use\n // '\\u23d0' instead of '|' and '\\u2016' instead of '\\\\|' for the\n // repeats of the arrows\n\n if (delim === \"\\\\uparrow\") {\n repeat = bottom = \"\\u23d0\";\n } else if (delim === \"\\\\Uparrow\") {\n repeat = bottom = \"\\u2016\";\n } else if (delim === \"\\\\downarrow\") {\n top = repeat = \"\\u23d0\";\n } else if (delim === \"\\\\Downarrow\") {\n top = repeat = \"\\u2016\";\n } else if (delim === \"\\\\updownarrow\") {\n top = \"\\\\uparrow\";\n repeat = \"\\u23d0\";\n bottom = \"\\\\downarrow\";\n } else if (delim === \"\\\\Updownarrow\") {\n top = \"\\\\Uparrow\";\n repeat = \"\\u2016\";\n bottom = \"\\\\Downarrow\";\n } else if (utils.contains(verts, delim)) {\n repeat = \"\\u2223\";\n svgLabel = \"vert\";\n viewBoxWidth = 333;\n } else if (utils.contains(doubleVerts, delim)) {\n repeat = \"\\u2225\";\n svgLabel = \"doublevert\";\n viewBoxWidth = 556;\n } else if (delim === \"[\" || delim === \"\\\\lbrack\") {\n top = \"\\u23a1\";\n repeat = \"\\u23a2\";\n bottom = \"\\u23a3\";\n font = \"Size4-Regular\";\n svgLabel = \"lbrack\";\n viewBoxWidth = 667;\n } else if (delim === \"]\" || delim === \"\\\\rbrack\") {\n top = \"\\u23a4\";\n repeat = \"\\u23a5\";\n bottom = \"\\u23a6\";\n font = \"Size4-Regular\";\n svgLabel = \"rbrack\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\lfloor\" || delim === \"\\u230a\") {\n repeat = top = \"\\u23a2\";\n bottom = \"\\u23a3\";\n font = \"Size4-Regular\";\n svgLabel = \"lfloor\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\lceil\" || delim === \"\\u2308\") {\n top = \"\\u23a1\";\n repeat = bottom = \"\\u23a2\";\n font = \"Size4-Regular\";\n svgLabel = \"lceil\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\rfloor\" || delim === \"\\u230b\") {\n repeat = top = \"\\u23a5\";\n bottom = \"\\u23a6\";\n font = \"Size4-Regular\";\n svgLabel = \"rfloor\";\n viewBoxWidth = 667;\n } else if (delim === \"\\\\rceil\" || delim === \"\\u2309\") {\n top = \"\\u23a4\";\n repeat = bottom = \"\\u23a5\";\n font = \"Size4-Regular\";\n svgLabel = \"rceil\";\n viewBoxWidth = 667;\n } else if (delim === \"(\" || delim === \"\\\\lparen\") {\n top = \"\\u239b\";\n repeat = \"\\u239c\";\n bottom = \"\\u239d\";\n font = \"Size4-Regular\";\n svgLabel = \"lparen\";\n viewBoxWidth = 875;\n } else if (delim === \")\" || delim === \"\\\\rparen\") {\n top = \"\\u239e\";\n repeat = \"\\u239f\";\n bottom = \"\\u23a0\";\n font = \"Size4-Regular\";\n svgLabel = \"rparen\";\n viewBoxWidth = 875;\n } else if (delim === \"\\\\{\" || delim === \"\\\\lbrace\") {\n top = \"\\u23a7\";\n middle = \"\\u23a8\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\}\" || delim === \"\\\\rbrace\") {\n top = \"\\u23ab\";\n middle = \"\\u23ac\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lgroup\" || delim === \"\\u27ee\") {\n top = \"\\u23a7\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rgroup\" || delim === \"\\u27ef\") {\n top = \"\\u23ab\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\lmoustache\" || delim === \"\\u23b0\") {\n top = \"\\u23a7\";\n bottom = \"\\u23ad\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } else if (delim === \"\\\\rmoustache\" || delim === \"\\u23b1\") {\n top = \"\\u23ab\";\n bottom = \"\\u23a9\";\n repeat = \"\\u23aa\";\n font = \"Size4-Regular\";\n } // Get the metrics of the four sections\n\n\n var topMetrics = getMetrics(top, font, mode);\n var topHeightTotal = topMetrics.height + topMetrics.depth;\n var repeatMetrics = getMetrics(repeat, font, mode);\n var repeatHeightTotal = repeatMetrics.height + repeatMetrics.depth;\n var bottomMetrics = getMetrics(bottom, font, mode);\n var bottomHeightTotal = bottomMetrics.height + bottomMetrics.depth;\n var middleHeightTotal = 0;\n var middleFactor = 1;\n\n if (middle !== null) {\n var middleMetrics = getMetrics(middle, font, mode);\n middleHeightTotal = middleMetrics.height + middleMetrics.depth;\n middleFactor = 2; // repeat symmetrically above and below middle\n } // Calculate the minimal height that the delimiter can have.\n // It is at least the size of the top, bottom, and optional middle combined.\n\n\n var minHeight = topHeightTotal + bottomHeightTotal + middleHeightTotal; // Compute the number of copies of the repeat symbol we will need\n\n var repeatCount = Math.max(0, Math.ceil((heightTotal - minHeight) / (middleFactor * repeatHeightTotal))); // Compute the total height of the delimiter including all the symbols\n\n var realHeightTotal = minHeight + repeatCount * middleFactor * repeatHeightTotal; // The center of the delimiter is placed at the center of the axis. Note\n // that in this context, \"center\" means that the delimiter should be\n // centered around the axis in the current style, while normally it is\n // centered around the axis in textstyle.\n\n var axisHeight = options.fontMetrics().axisHeight;\n\n if (center) {\n axisHeight *= options.sizeMultiplier;\n } // Calculate the depth\n\n\n var depth = realHeightTotal / 2 - axisHeight; // Now, we start building the pieces that will go into the vlist\n // Keep a list of the pieces of the stacked delimiter\n\n var stack = [];\n\n if (svgLabel.length > 0) {\n // Instead of stacking glyphs, create a single SVG.\n // This evades browser problems with imprecise positioning of spans.\n var midHeight = realHeightTotal - topHeightTotal - bottomHeightTotal;\n var viewBoxHeight = Math.round(realHeightTotal * 1000);\n var pathStr = tallDelim(svgLabel, Math.round(midHeight * 1000));\n var path = new PathNode(svgLabel, pathStr);\n var width = (viewBoxWidth / 1000).toFixed(3) + \"em\";\n var height = (viewBoxHeight / 1000).toFixed(3) + \"em\";\n var svg = new SvgNode([path], {\n \"width\": width,\n \"height\": height,\n \"viewBox\": \"0 0 \" + viewBoxWidth + \" \" + viewBoxHeight\n });\n var wrapper = buildCommon.makeSvgSpan([], [svg], options);\n wrapper.height = viewBoxHeight / 1000;\n wrapper.style.width = width;\n wrapper.style.height = height;\n stack.push({\n type: \"elem\",\n elem: wrapper\n });\n } else {\n // Stack glyphs\n // Start by adding the bottom symbol\n stack.push(makeGlyphSpan(bottom, font, mode));\n stack.push(lap); // overlap\n\n if (middle === null) {\n // The middle section will be an SVG. Make it an extra 0.016em tall.\n // We'll overlap by 0.008em at top and bottom.\n var innerHeight = realHeightTotal - topHeightTotal - bottomHeightTotal + 2 * lapInEms;\n stack.push(makeInner(repeat, innerHeight, options));\n } else {\n // When there is a middle bit, we need the middle part and two repeated\n // sections\n var _innerHeight = (realHeightTotal - topHeightTotal - bottomHeightTotal - middleHeightTotal) / 2 + 2 * lapInEms;\n\n stack.push(makeInner(repeat, _innerHeight, options)); // Now insert the middle of the brace.\n\n stack.push(lap);\n stack.push(makeGlyphSpan(middle, font, mode));\n stack.push(lap);\n stack.push(makeInner(repeat, _innerHeight, options));\n } // Add the top symbol\n\n\n stack.push(lap);\n stack.push(makeGlyphSpan(top, font, mode));\n } // Finally, build the vlist\n\n\n var newOptions = options.havingBaseStyle(Style$1.TEXT);\n var inner = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: depth,\n children: stack\n }, newOptions);\n return styleWrap(buildCommon.makeSpan([\"delimsizing\", \"mult\"], [inner], newOptions), Style$1.TEXT, options, classes);\n}; // All surds have 0.08em padding above the vinculum inside the SVG.\n// That keeps browser span height rounding error from pinching the line.\n\n\nvar vbPad = 80; // padding above the surd, measured inside the viewBox.\n\nvar emPad = 0.08; // padding, in ems, measured in the document.\n\nvar sqrtSvg = function sqrtSvg(sqrtName, height, viewBoxHeight, extraVinculum, options) {\n var path = sqrtPath(sqrtName, extraVinculum, viewBoxHeight);\n var pathNode = new PathNode(sqrtName, path);\n var svg = new SvgNode([pathNode], {\n // Note: 1000:1 ratio of viewBox to document em width.\n \"width\": \"400em\",\n \"height\": makeEm(height),\n \"viewBox\": \"0 0 400000 \" + viewBoxHeight,\n \"preserveAspectRatio\": \"xMinYMin slice\"\n });\n return buildCommon.makeSvgSpan([\"hide-tail\"], [svg], options);\n};\n/**\n * Make a sqrt image of the given height,\n */\n\n\nvar makeSqrtImage = function makeSqrtImage(height, options) {\n // Define a newOptions that removes the effect of size changes such as \\Huge.\n // We don't pick different a height surd for \\Huge. For it, we scale up.\n var newOptions = options.havingBaseSizing(); // Pick the desired surd glyph from a sequence of surds.\n\n var delim = traverseSequence(\"\\\\surd\", height * newOptions.sizeMultiplier, stackLargeDelimiterSequence, newOptions);\n var sizeMultiplier = newOptions.sizeMultiplier; // default\n // The standard sqrt SVGs each have a 0.04em thick vinculum.\n // If Settings.minRuleThickness is larger than that, we add extraVinculum.\n\n var extraVinculum = Math.max(0, options.minRuleThickness - options.fontMetrics().sqrtRuleThickness); // Create a span containing an SVG image of a sqrt symbol.\n\n var span;\n var spanHeight = 0;\n var texHeight = 0;\n var viewBoxHeight = 0;\n var advanceWidth; // We create viewBoxes with 80 units of \"padding\" above each surd.\n // Then browser rounding error on the parent span height will not\n // encroach on the ink of the vinculum. But that padding is not\n // included in the TeX-like `height` used for calculation of\n // vertical alignment. So texHeight = span.height < span.style.height.\n\n if (delim.type === \"small\") {\n // Get an SVG that is derived from glyph U+221A in font KaTeX-Main.\n // 1000 unit normal glyph height.\n viewBoxHeight = 1000 + 1000 * extraVinculum + vbPad;\n\n if (height < 1.0) {\n sizeMultiplier = 1.0; // mimic a \\textfont radical\n } else if (height < 1.4) {\n sizeMultiplier = 0.7; // mimic a \\scriptfont radical\n }\n\n spanHeight = (1.0 + extraVinculum + emPad) / sizeMultiplier;\n texHeight = (1.00 + extraVinculum) / sizeMultiplier;\n span = sqrtSvg(\"sqrtMain\", spanHeight, viewBoxHeight, extraVinculum, options);\n span.style.minWidth = \"0.853em\";\n advanceWidth = 0.833 / sizeMultiplier; // from the font.\n } else if (delim.type === \"large\") {\n // These SVGs come from fonts: KaTeX_Size1, _Size2, etc.\n viewBoxHeight = (1000 + vbPad) * sizeToMaxHeight[delim.size];\n texHeight = (sizeToMaxHeight[delim.size] + extraVinculum) / sizeMultiplier;\n spanHeight = (sizeToMaxHeight[delim.size] + extraVinculum + emPad) / sizeMultiplier;\n span = sqrtSvg(\"sqrtSize\" + delim.size, spanHeight, viewBoxHeight, extraVinculum, options);\n span.style.minWidth = \"1.02em\";\n advanceWidth = 1.0 / sizeMultiplier; // 1.0 from the font.\n } else {\n // Tall sqrt. In TeX, this would be stacked using multiple glyphs.\n // We'll use a single SVG to accomplish the same thing.\n spanHeight = height + extraVinculum + emPad;\n texHeight = height + extraVinculum;\n viewBoxHeight = Math.floor(1000 * height + extraVinculum) + vbPad;\n span = sqrtSvg(\"sqrtTall\", spanHeight, viewBoxHeight, extraVinculum, options);\n span.style.minWidth = \"0.742em\";\n advanceWidth = 1.056;\n }\n\n span.height = texHeight;\n span.style.height = makeEm(spanHeight);\n return {\n span,\n advanceWidth,\n // Calculate the actual line width.\n // This actually should depend on the chosen font -- e.g. \\boldmath\n // should use the thicker surd symbols from e.g. KaTeX_Main-Bold, and\n // have thicker rules.\n ruleWidth: (options.fontMetrics().sqrtRuleThickness + extraVinculum) * sizeMultiplier\n };\n}; // There are three kinds of delimiters, delimiters that stack when they become\n// too large\n\n\nvar stackLargeDelimiters = [\"(\", \"\\\\lparen\", \")\", \"\\\\rparen\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\u230a\", \"\\u230b\", \"\\\\lceil\", \"\\\\rceil\", \"\\u2308\", \"\\u2309\", \"\\\\surd\"]; // delimiters that always stack\n\nvar stackAlwaysDelimiters = [\"\\\\uparrow\", \"\\\\downarrow\", \"\\\\updownarrow\", \"\\\\Uparrow\", \"\\\\Downarrow\", \"\\\\Updownarrow\", \"|\", \"\\\\|\", \"\\\\vert\", \"\\\\Vert\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\u27ee\", \"\\u27ef\", \"\\\\lmoustache\", \"\\\\rmoustache\", \"\\u23b0\", \"\\u23b1\"]; // and delimiters that never stack\n\nvar stackNeverDelimiters = [\"<\", \">\", \"\\\\langle\", \"\\\\rangle\", \"/\", \"\\\\backslash\", \"\\\\lt\", \"\\\\gt\"]; // Metrics of the different sizes. Found by looking at TeX's output of\n// $\\bigl| // \\Bigl| \\biggl| \\Biggl| \\showlists$\n// Used to create stacked delimiters of appropriate sizes in makeSizedDelim.\n\nvar sizeToMaxHeight = [0, 1.2, 1.8, 2.4, 3.0];\n/**\n * Used to create a delimiter of a specific size, where `size` is 1, 2, 3, or 4.\n */\n\nvar makeSizedDelim = function makeSizedDelim(delim, size, options, mode, classes) {\n // < and > turn into \\langle and \\rangle in delimiters\n if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27e8\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27e9\") {\n delim = \"\\\\rangle\";\n } // Sized delimiters are never centered.\n\n\n if (utils.contains(stackLargeDelimiters, delim) || utils.contains(stackNeverDelimiters, delim)) {\n return makeLargeDelim(delim, size, false, options, mode, classes);\n } else if (utils.contains(stackAlwaysDelimiters, delim)) {\n return makeStackedDelim(delim, sizeToMaxHeight[size], false, options, mode, classes);\n } else {\n throw new ParseError(\"Illegal delimiter: '\" + delim + \"'\");\n }\n};\n/**\n * There are three different sequences of delimiter sizes that the delimiters\n * follow depending on the kind of delimiter. This is used when creating custom\n * sized delimiters to decide whether to create a small, large, or stacked\n * delimiter.\n *\n * In real TeX, these sequences aren't explicitly defined, but are instead\n * defined inside the font metrics. Since there are only three sequences that\n * are possible for the delimiters that TeX defines, it is easier to just encode\n * them explicitly here.\n */\n\n\n// Delimiters that never stack try small delimiters and large delimiters only\nvar stackNeverDelimiterSequence = [{\n type: \"small\",\n style: Style$1.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: Style$1.SCRIPT\n}, {\n type: \"small\",\n style: Style$1.TEXT\n}, {\n type: \"large\",\n size: 1\n}, {\n type: \"large\",\n size: 2\n}, {\n type: \"large\",\n size: 3\n}, {\n type: \"large\",\n size: 4\n}]; // Delimiters that always stack try the small delimiters first, then stack\n\nvar stackAlwaysDelimiterSequence = [{\n type: \"small\",\n style: Style$1.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: Style$1.SCRIPT\n}, {\n type: \"small\",\n style: Style$1.TEXT\n}, {\n type: \"stack\"\n}]; // Delimiters that stack when large try the small and then large delimiters, and\n// stack afterwards\n\nvar stackLargeDelimiterSequence = [{\n type: \"small\",\n style: Style$1.SCRIPTSCRIPT\n}, {\n type: \"small\",\n style: Style$1.SCRIPT\n}, {\n type: \"small\",\n style: Style$1.TEXT\n}, {\n type: \"large\",\n size: 1\n}, {\n type: \"large\",\n size: 2\n}, {\n type: \"large\",\n size: 3\n}, {\n type: \"large\",\n size: 4\n}, {\n type: \"stack\"\n}];\n/**\n * Get the font used in a delimiter based on what kind of delimiter it is.\n * TODO(#963) Use more specific font family return type once that is introduced.\n */\n\nvar delimTypeToFont = function delimTypeToFont(type) {\n if (type.type === \"small\") {\n return \"Main-Regular\";\n } else if (type.type === \"large\") {\n return \"Size\" + type.size + \"-Regular\";\n } else if (type.type === \"stack\") {\n return \"Size4-Regular\";\n } else {\n throw new Error(\"Add support for delim type '\" + type.type + \"' here.\");\n }\n};\n/**\n * Traverse a sequence of types of delimiters to decide what kind of delimiter\n * should be used to create a delimiter of the given height+depth.\n */\n\n\nvar traverseSequence = function traverseSequence(delim, height, sequence, options) {\n // Here, we choose the index we should start at in the sequences. In smaller\n // sizes (which correspond to larger numbers in style.size) we start earlier\n // in the sequence. Thus, scriptscript starts at index 3-3=0, script starts\n // at index 3-2=1, text starts at 3-1=2, and display starts at min(2,3-0)=2\n var start = Math.min(2, 3 - options.style.size);\n\n for (var i = start; i < sequence.length; i++) {\n if (sequence[i].type === \"stack\") {\n // This is always the last delimiter, so we just break the loop now.\n break;\n }\n\n var metrics = getMetrics(delim, delimTypeToFont(sequence[i]), \"math\");\n var heightDepth = metrics.height + metrics.depth; // Small delimiters are scaled down versions of the same font, so we\n // account for the style change size.\n\n if (sequence[i].type === \"small\") {\n var newOptions = options.havingBaseStyle(sequence[i].style);\n heightDepth *= newOptions.sizeMultiplier;\n } // Check if the delimiter at this size works for the given height.\n\n\n if (heightDepth > height) {\n return sequence[i];\n }\n } // If we reached the end of the sequence, return the last sequence element.\n\n\n return sequence[sequence.length - 1];\n};\n/**\n * Make a delimiter of a given height+depth, with optional centering. Here, we\n * traverse the sequences, and create a delimiter that the sequence tells us to.\n */\n\n\nvar makeCustomSizedDelim = function makeCustomSizedDelim(delim, height, center, options, mode, classes) {\n if (delim === \"<\" || delim === \"\\\\lt\" || delim === \"\\u27e8\") {\n delim = \"\\\\langle\";\n } else if (delim === \">\" || delim === \"\\\\gt\" || delim === \"\\u27e9\") {\n delim = \"\\\\rangle\";\n } // Decide what sequence to use\n\n\n var sequence;\n\n if (utils.contains(stackNeverDelimiters, delim)) {\n sequence = stackNeverDelimiterSequence;\n } else if (utils.contains(stackLargeDelimiters, delim)) {\n sequence = stackLargeDelimiterSequence;\n } else {\n sequence = stackAlwaysDelimiterSequence;\n } // Look through the sequence\n\n\n var delimType = traverseSequence(delim, height, sequence, options); // Get the delimiter from font glyphs.\n // Depending on the sequence element we decided on, call the\n // appropriate function.\n\n if (delimType.type === \"small\") {\n return makeSmallDelim(delim, delimType.style, center, options, mode, classes);\n } else if (delimType.type === \"large\") {\n return makeLargeDelim(delim, delimType.size, center, options, mode, classes);\n } else\n /* if (delimType.type === \"stack\") */\n {\n return makeStackedDelim(delim, height, center, options, mode, classes);\n }\n};\n/**\n * Make a delimiter for use with `\\left` and `\\right`, given a height and depth\n * of an expression that the delimiters surround.\n */\n\n\nvar makeLeftRightDelim = function makeLeftRightDelim(delim, height, depth, options, mode, classes) {\n // We always center \\left/\\right delimiters, so the axis is always shifted\n var axisHeight = options.fontMetrics().axisHeight * options.sizeMultiplier; // Taken from TeX source, tex.web, function make_left_right\n\n var delimiterFactor = 901;\n var delimiterExtend = 5.0 / options.fontMetrics().ptPerEm;\n var maxDistFromAxis = Math.max(height - axisHeight, depth + axisHeight);\n var totalHeight = Math.max( // In real TeX, calculations are done using integral values which are\n // 65536 per pt, or 655360 per em. So, the division here truncates in\n // TeX but doesn't here, producing different results. If we wanted to\n // exactly match TeX's calculation, we could do\n // Math.floor(655360 * maxDistFromAxis / 500) *\n // delimiterFactor / 655360\n // (To see the difference, compare\n // x^{x^{\\left(\\rule{0.1em}{0.68em}\\right)}}\n // in TeX and KaTeX)\n maxDistFromAxis / 500 * delimiterFactor, 2 * maxDistFromAxis - delimiterExtend); // Finally, we defer to `makeCustomSizedDelim` with our calculated total\n // height\n\n return makeCustomSizedDelim(delim, totalHeight, true, options, mode, classes);\n};\n\nvar delimiter = {\n sqrtImage: makeSqrtImage,\n sizedDelim: makeSizedDelim,\n sizeToMaxHeight: sizeToMaxHeight,\n customSizedDelim: makeCustomSizedDelim,\n leftRightDelim: makeLeftRightDelim\n};\n\n// Extra data needed for the delimiter handler down below\nvar delimiterSizes = {\n \"\\\\bigl\": {\n mclass: \"mopen\",\n size: 1\n },\n \"\\\\Bigl\": {\n mclass: \"mopen\",\n size: 2\n },\n \"\\\\biggl\": {\n mclass: \"mopen\",\n size: 3\n },\n \"\\\\Biggl\": {\n mclass: \"mopen\",\n size: 4\n },\n \"\\\\bigr\": {\n mclass: \"mclose\",\n size: 1\n },\n \"\\\\Bigr\": {\n mclass: \"mclose\",\n size: 2\n },\n \"\\\\biggr\": {\n mclass: \"mclose\",\n size: 3\n },\n \"\\\\Biggr\": {\n mclass: \"mclose\",\n size: 4\n },\n \"\\\\bigm\": {\n mclass: \"mrel\",\n size: 1\n },\n \"\\\\Bigm\": {\n mclass: \"mrel\",\n size: 2\n },\n \"\\\\biggm\": {\n mclass: \"mrel\",\n size: 3\n },\n \"\\\\Biggm\": {\n mclass: \"mrel\",\n size: 4\n },\n \"\\\\big\": {\n mclass: \"mord\",\n size: 1\n },\n \"\\\\Big\": {\n mclass: \"mord\",\n size: 2\n },\n \"\\\\bigg\": {\n mclass: \"mord\",\n size: 3\n },\n \"\\\\Bigg\": {\n mclass: \"mord\",\n size: 4\n }\n};\nvar delimiters = [\"(\", \"\\\\lparen\", \")\", \"\\\\rparen\", \"[\", \"\\\\lbrack\", \"]\", \"\\\\rbrack\", \"\\\\{\", \"\\\\lbrace\", \"\\\\}\", \"\\\\rbrace\", \"\\\\lfloor\", \"\\\\rfloor\", \"\\u230a\", \"\\u230b\", \"\\\\lceil\", \"\\\\rceil\", \"\\u2308\", \"\\u2309\", \"<\", \">\", \"\\\\langle\", \"\\u27e8\", \"\\\\rangle\", \"\\u27e9\", \"\\\\lt\", \"\\\\gt\", \"\\\\lvert\", \"\\\\rvert\", \"\\\\lVert\", \"\\\\rVert\", \"\\\\lgroup\", \"\\\\rgroup\", \"\\u27ee\", \"\\u27ef\", \"\\\\lmoustache\", \"\\\\rmoustache\", \"\\u23b0\", \"\\u23b1\", \"/\", \"\\\\backslash\", \"|\", \"\\\\vert\", \"\\\\|\", \"\\\\Vert\", \"\\\\uparrow\", \"\\\\Uparrow\", \"\\\\downarrow\", \"\\\\Downarrow\", \"\\\\updownarrow\", \"\\\\Updownarrow\", \".\"];\n\n// Delimiter functions\nfunction checkDelimiter(delim, context) {\n var symDelim = checkSymbolNodeType(delim);\n\n if (symDelim && utils.contains(delimiters, symDelim.text)) {\n return symDelim;\n } else if (symDelim) {\n throw new ParseError(\"Invalid delimiter '\" + symDelim.text + \"' after '\" + context.funcName + \"'\", delim);\n } else {\n throw new ParseError(\"Invalid delimiter type '\" + delim.type + \"'\", delim);\n }\n}\n\ndefineFunction({\n type: \"delimsizing\",\n names: [\"\\\\bigl\", \"\\\\Bigl\", \"\\\\biggl\", \"\\\\Biggl\", \"\\\\bigr\", \"\\\\Bigr\", \"\\\\biggr\", \"\\\\Biggr\", \"\\\\bigm\", \"\\\\Bigm\", \"\\\\biggm\", \"\\\\Biggm\", \"\\\\big\", \"\\\\Big\", \"\\\\bigg\", \"\\\\Bigg\"],\n props: {\n numArgs: 1,\n argTypes: [\"primitive\"]\n },\n handler: (context, args) => {\n var delim = checkDelimiter(args[0], context);\n return {\n type: \"delimsizing\",\n mode: context.parser.mode,\n size: delimiterSizes[context.funcName].size,\n mclass: delimiterSizes[context.funcName].mclass,\n delim: delim.text\n };\n },\n htmlBuilder: (group, options) => {\n if (group.delim === \".\") {\n // Empty delimiters still count as elements, even though they don't\n // show anything.\n return buildCommon.makeSpan([group.mclass]);\n } // Use delimiter.sizedDelim to generate the delimiter.\n\n\n return delimiter.sizedDelim(group.delim, group.size, options, group.mode, [group.mclass]);\n },\n mathmlBuilder: group => {\n var children = [];\n\n if (group.delim !== \".\") {\n children.push(makeText(group.delim, group.mode));\n }\n\n var node = new mathMLTree.MathNode(\"mo\", children);\n\n if (group.mclass === \"mopen\" || group.mclass === \"mclose\") {\n // Only some of the delimsizing functions act as fences, and they\n // return \"mopen\" or \"mclose\" mclass.\n node.setAttribute(\"fence\", \"true\");\n } else {\n // Explicitly disable fencing if it's not a fence, to override the\n // defaults.\n node.setAttribute(\"fence\", \"false\");\n }\n\n node.setAttribute(\"stretchy\", \"true\");\n var size = makeEm(delimiter.sizeToMaxHeight[group.size]);\n node.setAttribute(\"minsize\", size);\n node.setAttribute(\"maxsize\", size);\n return node;\n }\n});\n\nfunction assertParsed(group) {\n if (!group.body) {\n throw new Error(\"Bug: The leftright ParseNode wasn't fully parsed.\");\n }\n}\n\ndefineFunction({\n type: \"leftright-right\",\n names: [\"\\\\right\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (context, args) => {\n // \\left case below triggers parsing of \\right in\n // `const right = parser.parseFunction();`\n // uses this return value.\n var color = context.parser.gullet.macros.get(\"\\\\current@color\");\n\n if (color && typeof color !== \"string\") {\n throw new ParseError(\"\\\\current@color set to non-string in \\\\right\");\n }\n\n return {\n type: \"leftright-right\",\n mode: context.parser.mode,\n delim: checkDelimiter(args[0], context).text,\n color // undefined if not set via \\color\n\n };\n }\n});\ndefineFunction({\n type: \"leftright\",\n names: [\"\\\\left\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (context, args) => {\n var delim = checkDelimiter(args[0], context);\n var parser = context.parser; // Parse out the implicit body\n\n ++parser.leftrightDepth; // parseExpression stops before '\\\\right'\n\n var body = parser.parseExpression(false);\n --parser.leftrightDepth; // Check the next token\n\n parser.expect(\"\\\\right\", false);\n var right = assertNodeType(parser.parseFunction(), \"leftright-right\");\n return {\n type: \"leftright\",\n mode: parser.mode,\n body,\n left: delim.text,\n right: right.delim,\n rightColor: right.color\n };\n },\n htmlBuilder: (group, options) => {\n assertParsed(group); // Build the inner expression\n\n var inner = buildExpression$1(group.body, options, true, [\"mopen\", \"mclose\"]);\n var innerHeight = 0;\n var innerDepth = 0;\n var hadMiddle = false; // Calculate its height and depth\n\n for (var i = 0; i < inner.length; i++) {\n // Property `isMiddle` not defined on `span`. See comment in\n // \"middle\"'s htmlBuilder.\n // $FlowFixMe\n if (inner[i].isMiddle) {\n hadMiddle = true;\n } else {\n innerHeight = Math.max(inner[i].height, innerHeight);\n innerDepth = Math.max(inner[i].depth, innerDepth);\n }\n } // The size of delimiters is the same, regardless of what style we are\n // in. Thus, to correctly calculate the size of delimiter we need around\n // a group, we scale down the inner size based on the size.\n\n\n innerHeight *= options.sizeMultiplier;\n innerDepth *= options.sizeMultiplier;\n var leftDelim;\n\n if (group.left === \".\") {\n // Empty delimiters in \\left and \\right make null delimiter spaces.\n leftDelim = makeNullDelimiter(options, [\"mopen\"]);\n } else {\n // Otherwise, use leftRightDelim to generate the correct sized\n // delimiter.\n leftDelim = delimiter.leftRightDelim(group.left, innerHeight, innerDepth, options, group.mode, [\"mopen\"]);\n } // Add it to the beginning of the expression\n\n\n inner.unshift(leftDelim); // Handle middle delimiters\n\n if (hadMiddle) {\n for (var _i = 1; _i < inner.length; _i++) {\n var middleDelim = inner[_i]; // Property `isMiddle` not defined on `span`. See comment in\n // \"middle\"'s htmlBuilder.\n // $FlowFixMe\n\n var isMiddle = middleDelim.isMiddle;\n\n if (isMiddle) {\n // Apply the options that were active when \\middle was called\n inner[_i] = delimiter.leftRightDelim(isMiddle.delim, innerHeight, innerDepth, isMiddle.options, group.mode, []);\n }\n }\n }\n\n var rightDelim; // Same for the right delimiter, but using color specified by \\color\n\n if (group.right === \".\") {\n rightDelim = makeNullDelimiter(options, [\"mclose\"]);\n } else {\n var colorOptions = group.rightColor ? options.withColor(group.rightColor) : options;\n rightDelim = delimiter.leftRightDelim(group.right, innerHeight, innerDepth, colorOptions, group.mode, [\"mclose\"]);\n } // Add it to the end of the expression.\n\n\n inner.push(rightDelim);\n return buildCommon.makeSpan([\"minner\"], inner, options);\n },\n mathmlBuilder: (group, options) => {\n assertParsed(group);\n var inner = buildExpression(group.body, options);\n\n if (group.left !== \".\") {\n var leftNode = new mathMLTree.MathNode(\"mo\", [makeText(group.left, group.mode)]);\n leftNode.setAttribute(\"fence\", \"true\");\n inner.unshift(leftNode);\n }\n\n if (group.right !== \".\") {\n var rightNode = new mathMLTree.MathNode(\"mo\", [makeText(group.right, group.mode)]);\n rightNode.setAttribute(\"fence\", \"true\");\n\n if (group.rightColor) {\n rightNode.setAttribute(\"mathcolor\", group.rightColor);\n }\n\n inner.push(rightNode);\n }\n\n return makeRow(inner);\n }\n});\ndefineFunction({\n type: \"middle\",\n names: [\"\\\\middle\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (context, args) => {\n var delim = checkDelimiter(args[0], context);\n\n if (!context.parser.leftrightDepth) {\n throw new ParseError(\"\\\\middle without preceding \\\\left\", delim);\n }\n\n return {\n type: \"middle\",\n mode: context.parser.mode,\n delim: delim.text\n };\n },\n htmlBuilder: (group, options) => {\n var middleDelim;\n\n if (group.delim === \".\") {\n middleDelim = makeNullDelimiter(options, []);\n } else {\n middleDelim = delimiter.sizedDelim(group.delim, 1, options, group.mode, []);\n var isMiddle = {\n delim: group.delim,\n options\n }; // Property `isMiddle` not defined on `span`. It is only used in\n // this file above.\n // TODO: Fix this violation of the `span` type and possibly rename\n // things since `isMiddle` sounds like a boolean, but is a struct.\n // $FlowFixMe\n\n middleDelim.isMiddle = isMiddle;\n }\n\n return middleDelim;\n },\n mathmlBuilder: (group, options) => {\n // A Firefox \\middle will stretch a character vertically only if it\n // is in the fence part of the operator dictionary at:\n // https://www.w3.org/TR/MathML3/appendixc.html.\n // So we need to avoid U+2223 and use plain \"|\" instead.\n var textNode = group.delim === \"\\\\vert\" || group.delim === \"|\" ? makeText(\"|\", \"text\") : makeText(group.delim, group.mode);\n var middleNode = new mathMLTree.MathNode(\"mo\", [textNode]);\n middleNode.setAttribute(\"fence\", \"true\"); // MathML gives 5/18em spacing to each <mo> element.\n // \\middle should get delimiter spacing instead.\n\n middleNode.setAttribute(\"lspace\", \"0.05em\");\n middleNode.setAttribute(\"rspace\", \"0.05em\");\n return middleNode;\n }\n});\n\nvar htmlBuilder$7 = (group, options) => {\n // \\cancel, \\bcancel, \\xcancel, \\sout, \\fbox, \\colorbox, \\fcolorbox, \\phase\n // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n var inner = buildCommon.wrapFragment(buildGroup$1(group.body, options), options);\n var label = group.label.slice(1);\n var scale = options.sizeMultiplier;\n var img;\n var imgShift = 0; // In the LaTeX cancel package, line geometry is slightly different\n // depending on whether the subject is wider than it is tall, or vice versa.\n // We don't know the width of a group, so as a proxy, we test if\n // the subject is a single character. This captures most of the\n // subjects that should get the \"tall\" treatment.\n\n var isSingleChar = utils.isCharacterBox(group.body);\n\n if (label === \"sout\") {\n img = buildCommon.makeSpan([\"stretchy\", \"sout\"]);\n img.height = options.fontMetrics().defaultRuleThickness / scale;\n imgShift = -0.5 * options.fontMetrics().xHeight;\n } else if (label === \"phase\") {\n // Set a couple of dimensions from the steinmetz package.\n var lineWeight = calculateSize({\n number: 0.6,\n unit: \"pt\"\n }, options);\n var clearance = calculateSize({\n number: 0.35,\n unit: \"ex\"\n }, options); // Prevent size changes like \\Huge from affecting line thickness\n\n var newOptions = options.havingBaseSizing();\n scale = scale / newOptions.sizeMultiplier;\n var angleHeight = inner.height + inner.depth + lineWeight + clearance; // Reserve a left pad for the angle.\n\n inner.style.paddingLeft = makeEm(angleHeight / 2 + lineWeight); // Create an SVG\n\n var viewBoxHeight = Math.floor(1000 * angleHeight * scale);\n var path = phasePath(viewBoxHeight);\n var svgNode = new SvgNode([new PathNode(\"phase\", path)], {\n \"width\": \"400em\",\n \"height\": makeEm(viewBoxHeight / 1000),\n \"viewBox\": \"0 0 400000 \" + viewBoxHeight,\n \"preserveAspectRatio\": \"xMinYMin slice\"\n }); // Wrap it in a span with overflow: hidden.\n\n img = buildCommon.makeSvgSpan([\"hide-tail\"], [svgNode], options);\n img.style.height = makeEm(angleHeight);\n imgShift = inner.depth + lineWeight + clearance;\n } else {\n // Add horizontal padding\n if (/cancel/.test(label)) {\n if (!isSingleChar) {\n inner.classes.push(\"cancel-pad\");\n }\n } else if (label === \"angl\") {\n inner.classes.push(\"anglpad\");\n } else {\n inner.classes.push(\"boxpad\");\n } // Add vertical padding\n\n\n var topPad = 0;\n var bottomPad = 0;\n var ruleThickness = 0; // ref: cancel package: \\advance\\totalheight2\\p@ % \"+2\"\n\n if (/box/.test(label)) {\n ruleThickness = Math.max(options.fontMetrics().fboxrule, // default\n options.minRuleThickness // User override.\n );\n topPad = options.fontMetrics().fboxsep + (label === \"colorbox\" ? 0 : ruleThickness);\n bottomPad = topPad;\n } else if (label === \"angl\") {\n ruleThickness = Math.max(options.fontMetrics().defaultRuleThickness, options.minRuleThickness);\n topPad = 4 * ruleThickness; // gap = 3 × line, plus the line itself.\n\n bottomPad = Math.max(0, 0.25 - inner.depth);\n } else {\n topPad = isSingleChar ? 0.2 : 0;\n bottomPad = topPad;\n }\n\n img = stretchy.encloseSpan(inner, label, topPad, bottomPad, options);\n\n if (/fbox|boxed|fcolorbox/.test(label)) {\n img.style.borderStyle = \"solid\";\n img.style.borderWidth = makeEm(ruleThickness);\n } else if (label === \"angl\" && ruleThickness !== 0.049) {\n img.style.borderTopWidth = makeEm(ruleThickness);\n img.style.borderRightWidth = makeEm(ruleThickness);\n }\n\n imgShift = inner.depth + bottomPad;\n\n if (group.backgroundColor) {\n img.style.backgroundColor = group.backgroundColor;\n\n if (group.borderColor) {\n img.style.borderColor = group.borderColor;\n }\n }\n }\n\n var vlist;\n\n if (group.backgroundColor) {\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [// Put the color background behind inner;\n {\n type: \"elem\",\n elem: img,\n shift: imgShift\n }, {\n type: \"elem\",\n elem: inner,\n shift: 0\n }]\n }, options);\n } else {\n var classes = /cancel|phase/.test(label) ? [\"svg-align\"] : [];\n vlist = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [// Write the \\cancel stroke on top of inner.\n {\n type: \"elem\",\n elem: inner,\n shift: 0\n }, {\n type: \"elem\",\n elem: img,\n shift: imgShift,\n wrapperClasses: classes\n }]\n }, options);\n }\n\n if (/cancel/.test(label)) {\n // The cancel package documentation says that cancel lines add their height\n // to the expression, but tests show that isn't how it actually works.\n vlist.height = inner.height;\n vlist.depth = inner.depth;\n }\n\n if (/cancel/.test(label) && !isSingleChar) {\n // cancel does not create horiz space for its line extension.\n return buildCommon.makeSpan([\"mord\", \"cancel-lap\"], [vlist], options);\n } else {\n return buildCommon.makeSpan([\"mord\"], [vlist], options);\n }\n};\n\nvar mathmlBuilder$6 = (group, options) => {\n var fboxsep = 0;\n var node = new mathMLTree.MathNode(group.label.indexOf(\"colorbox\") > -1 ? \"mpadded\" : \"menclose\", [buildGroup(group.body, options)]);\n\n switch (group.label) {\n case \"\\\\cancel\":\n node.setAttribute(\"notation\", \"updiagonalstrike\");\n break;\n\n case \"\\\\bcancel\":\n node.setAttribute(\"notation\", \"downdiagonalstrike\");\n break;\n\n case \"\\\\phase\":\n node.setAttribute(\"notation\", \"phasorangle\");\n break;\n\n case \"\\\\sout\":\n node.setAttribute(\"notation\", \"horizontalstrike\");\n break;\n\n case \"\\\\fbox\":\n node.setAttribute(\"notation\", \"box\");\n break;\n\n case \"\\\\angl\":\n node.setAttribute(\"notation\", \"actuarial\");\n break;\n\n case \"\\\\fcolorbox\":\n case \"\\\\colorbox\":\n // <menclose> doesn't have a good notation option. So use <mpadded>\n // instead. Set some attributes that come included with <menclose>.\n fboxsep = options.fontMetrics().fboxsep * options.fontMetrics().ptPerEm;\n node.setAttribute(\"width\", \"+\" + 2 * fboxsep + \"pt\");\n node.setAttribute(\"height\", \"+\" + 2 * fboxsep + \"pt\");\n node.setAttribute(\"lspace\", fboxsep + \"pt\"); //\n\n node.setAttribute(\"voffset\", fboxsep + \"pt\");\n\n if (group.label === \"\\\\fcolorbox\") {\n var thk = Math.max(options.fontMetrics().fboxrule, // default\n options.minRuleThickness // user override\n );\n node.setAttribute(\"style\", \"border: \" + thk + \"em solid \" + String(group.borderColor));\n }\n\n break;\n\n case \"\\\\xcancel\":\n node.setAttribute(\"notation\", \"updiagonalstrike downdiagonalstrike\");\n break;\n }\n\n if (group.backgroundColor) {\n node.setAttribute(\"mathbackground\", group.backgroundColor);\n }\n\n return node;\n};\n\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\colorbox\"],\n props: {\n numArgs: 2,\n allowedInText: true,\n argTypes: [\"color\", \"text\"]\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser,\n funcName\n } = _ref;\n var color = assertNodeType(args[0], \"color-token\").color;\n var body = args[1];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n backgroundColor: color,\n body\n };\n },\n\n htmlBuilder: htmlBuilder$7,\n mathmlBuilder: mathmlBuilder$6\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\fcolorbox\"],\n props: {\n numArgs: 3,\n allowedInText: true,\n argTypes: [\"color\", \"color\", \"text\"]\n },\n\n handler(_ref2, args, optArgs) {\n var {\n parser,\n funcName\n } = _ref2;\n var borderColor = assertNodeType(args[0], \"color-token\").color;\n var backgroundColor = assertNodeType(args[1], \"color-token\").color;\n var body = args[2];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n backgroundColor,\n borderColor,\n body\n };\n },\n\n htmlBuilder: htmlBuilder$7,\n mathmlBuilder: mathmlBuilder$6\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\fbox\"],\n props: {\n numArgs: 1,\n argTypes: [\"hbox\"],\n allowedInText: true\n },\n\n handler(_ref3, args) {\n var {\n parser\n } = _ref3;\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: \"\\\\fbox\",\n body: args[0]\n };\n }\n\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\cancel\", \"\\\\bcancel\", \"\\\\xcancel\", \"\\\\sout\", \"\\\\phase\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref4, args) {\n var {\n parser,\n funcName\n } = _ref4;\n var body = args[0];\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: funcName,\n body\n };\n },\n\n htmlBuilder: htmlBuilder$7,\n mathmlBuilder: mathmlBuilder$6\n});\ndefineFunction({\n type: \"enclose\",\n names: [\"\\\\angl\"],\n props: {\n numArgs: 1,\n argTypes: [\"hbox\"],\n allowedInText: false\n },\n\n handler(_ref5, args) {\n var {\n parser\n } = _ref5;\n return {\n type: \"enclose\",\n mode: parser.mode,\n label: \"\\\\angl\",\n body: args[0]\n };\n }\n\n});\n\n/**\n * All registered environments.\n * `environments.js` exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary via `environments.js`.\n */\nvar _environments = {};\nfunction defineEnvironment(_ref) {\n var {\n type,\n names,\n props,\n handler,\n htmlBuilder,\n mathmlBuilder\n } = _ref;\n // Set default values of environments.\n var data = {\n type,\n numArgs: props.numArgs || 0,\n allowedInText: false,\n numOptionalArgs: 0,\n handler\n };\n\n for (var i = 0; i < names.length; ++i) {\n // TODO: The value type of _environments should be a type union of all\n // possible `EnvSpec<>` possibilities instead of `EnvSpec<*>`, which is\n // an existential type.\n _environments[names[i]] = data;\n }\n\n if (htmlBuilder) {\n _htmlGroupBuilders[type] = htmlBuilder;\n }\n\n if (mathmlBuilder) {\n _mathmlGroupBuilders[type] = mathmlBuilder;\n }\n}\n\n/**\n * All registered global/built-in macros.\n * `macros.js` exports this same dictionary again and makes it public.\n * `Parser.js` requires this dictionary via `macros.js`.\n */\nvar _macros = {}; // This function might one day accept an additional argument and do more things.\n\nfunction defineMacro(name, body) {\n _macros[name] = body;\n}\n\n// Helper functions\nfunction getHLines(parser) {\n // Return an array. The array length = number of hlines.\n // Each element in the array tells if the line is dashed.\n var hlineInfo = [];\n parser.consumeSpaces();\n var nxt = parser.fetch().text;\n\n if (nxt === \"\\\\relax\") {\n // \\relax is an artifact of the \\cr macro below\n parser.consume();\n parser.consumeSpaces();\n nxt = parser.fetch().text;\n }\n\n while (nxt === \"\\\\hline\" || nxt === \"\\\\hdashline\") {\n parser.consume();\n hlineInfo.push(nxt === \"\\\\hdashline\");\n parser.consumeSpaces();\n nxt = parser.fetch().text;\n }\n\n return hlineInfo;\n}\n\nvar validateAmsEnvironmentContext = context => {\n var settings = context.parser.settings;\n\n if (!settings.displayMode) {\n throw new ParseError(\"{\" + context.envName + \"} can be used only in\" + \" display mode.\");\n }\n}; // autoTag (an argument to parseArray) can be one of three values:\n// * undefined: Regular (not-top-level) array; no tags on each row\n// * true: Automatic equation numbering, overridable by \\tag\n// * false: Tags allowed on each row, but no automatic numbering\n// This function *doesn't* work with the \"split\" environment name.\n\n\nfunction getAutoTag(name) {\n if (name.indexOf(\"ed\") === -1) {\n return name.indexOf(\"*\") === -1;\n } // return undefined;\n\n}\n/**\n * Parse the body of the environment, with rows delimited by \\\\ and\n * columns delimited by &, and create a nested list in row-major order\n * with one group per cell. If given an optional argument style\n * (\"text\", \"display\", etc.), then each cell is cast into that style.\n */\n\n\nfunction parseArray(parser, _ref, style) {\n var {\n hskipBeforeAndAfter,\n addJot,\n cols,\n arraystretch,\n colSeparationType,\n autoTag,\n singleRow,\n emptySingleRow,\n maxNumCols,\n leqno\n } = _ref;\n parser.gullet.beginGroup();\n\n if (!singleRow) {\n // \\cr is equivalent to \\\\ without the optional size argument (see below)\n // TODO: provide helpful error when \\cr is used outside array environment\n parser.gullet.macros.set(\"\\\\cr\", \"\\\\\\\\\\\\relax\");\n } // Get current arraystretch if it's not set by the environment\n\n\n if (!arraystretch) {\n var stretch = parser.gullet.expandMacroAsText(\"\\\\arraystretch\");\n\n if (stretch == null) {\n // Default \\arraystretch from lttab.dtx\n arraystretch = 1;\n } else {\n arraystretch = parseFloat(stretch);\n\n if (!arraystretch || arraystretch < 0) {\n throw new ParseError(\"Invalid \\\\arraystretch: \" + stretch);\n }\n }\n } // Start group for first cell\n\n\n parser.gullet.beginGroup();\n var row = [];\n var body = [row];\n var rowGaps = [];\n var hLinesBeforeRow = [];\n var tags = autoTag != null ? [] : undefined; // amsmath uses \\global\\@eqnswtrue and \\global\\@eqnswfalse to represent\n // whether this row should have an equation number. Simulate this with\n // a \\@eqnsw macro set to 1 or 0.\n\n function beginRow() {\n if (autoTag) {\n parser.gullet.macros.set(\"\\\\@eqnsw\", \"1\", true);\n }\n }\n\n function endRow() {\n if (tags) {\n if (parser.gullet.macros.get(\"\\\\df@tag\")) {\n tags.push(parser.subparse([new Token(\"\\\\df@tag\")]));\n parser.gullet.macros.set(\"\\\\df@tag\", undefined, true);\n } else {\n tags.push(Boolean(autoTag) && parser.gullet.macros.get(\"\\\\@eqnsw\") === \"1\");\n }\n }\n }\n\n beginRow(); // Test for \\hline at the top of the array.\n\n hLinesBeforeRow.push(getHLines(parser));\n\n while (true) {\n // eslint-disable-line no-constant-condition\n // Parse each cell in its own group (namespace)\n var cell = parser.parseExpression(false, singleRow ? \"\\\\end\" : \"\\\\\\\\\");\n parser.gullet.endGroup();\n parser.gullet.beginGroup();\n cell = {\n type: \"ordgroup\",\n mode: parser.mode,\n body: cell\n };\n\n if (style) {\n cell = {\n type: \"styling\",\n mode: parser.mode,\n style,\n body: [cell]\n };\n }\n\n row.push(cell);\n var next = parser.fetch().text;\n\n if (next === \"&\") {\n if (maxNumCols && row.length === maxNumCols) {\n if (singleRow || colSeparationType) {\n // {equation} or {split}\n throw new ParseError(\"Too many tab characters: &\", parser.nextToken);\n } else {\n // {array} environment\n parser.settings.reportNonstrict(\"textEnv\", \"Too few columns \" + \"specified in the {array} column argument.\");\n }\n }\n\n parser.consume();\n } else if (next === \"\\\\end\") {\n endRow(); // Arrays terminate newlines with `\\crcr` which consumes a `\\cr` if\n // the last line is empty. However, AMS environments keep the\n // empty row if it's the only one.\n // NOTE: Currently, `cell` is the last item added into `row`.\n\n if (row.length === 1 && cell.type === \"styling\" && cell.body[0].body.length === 0 && (body.length > 1 || !emptySingleRow)) {\n body.pop();\n }\n\n if (hLinesBeforeRow.length < body.length + 1) {\n hLinesBeforeRow.push([]);\n }\n\n break;\n } else if (next === \"\\\\\\\\\") {\n parser.consume();\n var size = void 0; // \\def\\Let@{\\let\\\\\\math@cr}\n // \\def\\math@cr{...\\math@cr@}\n // \\def\\math@cr@{\\new@ifnextchar[\\math@cr@@{\\math@cr@@[\\z@]}}\n // \\def\\math@cr@@[#1]{...\\math@cr@@@...}\n // \\def\\math@cr@@@{\\cr}\n\n if (parser.gullet.future().text !== \" \") {\n size = parser.parseSizeGroup(true);\n }\n\n rowGaps.push(size ? size.value : null);\n endRow(); // check for \\hline(s) following the row separator\n\n hLinesBeforeRow.push(getHLines(parser));\n row = [];\n body.push(row);\n beginRow();\n } else {\n throw new ParseError(\"Expected & or \\\\\\\\ or \\\\cr or \\\\end\", parser.nextToken);\n }\n } // End cell group\n\n\n parser.gullet.endGroup(); // End array group defining \\cr\n\n parser.gullet.endGroup();\n return {\n type: \"array\",\n mode: parser.mode,\n addJot,\n arraystretch,\n body,\n cols,\n rowGaps,\n hskipBeforeAndAfter,\n hLinesBeforeRow,\n colSeparationType,\n tags,\n leqno\n };\n} // Decides on a style for cells in an array according to whether the given\n// environment name starts with the letter 'd'.\n\n\nfunction dCellStyle(envName) {\n if (envName.slice(0, 1) === \"d\") {\n return \"display\";\n } else {\n return \"text\";\n }\n}\n\nvar htmlBuilder$6 = function htmlBuilder(group, options) {\n var r;\n var c;\n var nr = group.body.length;\n var hLinesBeforeRow = group.hLinesBeforeRow;\n var nc = 0;\n var body = new Array(nr);\n var hlines = [];\n var ruleThickness = Math.max( // From LaTeX \\showthe\\arrayrulewidth. Equals 0.04 em.\n options.fontMetrics().arrayRuleWidth, options.minRuleThickness // User override.\n ); // Horizontal spacing\n\n var pt = 1 / options.fontMetrics().ptPerEm;\n var arraycolsep = 5 * pt; // default value, i.e. \\arraycolsep in article.cls\n\n if (group.colSeparationType && group.colSeparationType === \"small\") {\n // We're in a {smallmatrix}. Default column space is \\thickspace,\n // i.e. 5/18em = 0.2778em, per amsmath.dtx for {smallmatrix}.\n // But that needs adjustment because LaTeX applies \\scriptstyle to the\n // entire array, including the colspace, but this function applies\n // \\scriptstyle only inside each element.\n var localMultiplier = options.havingStyle(Style$1.SCRIPT).sizeMultiplier;\n arraycolsep = 0.2778 * (localMultiplier / options.sizeMultiplier);\n } // Vertical spacing\n\n\n var baselineskip = group.colSeparationType === \"CD\" ? calculateSize({\n number: 3,\n unit: \"ex\"\n }, options) : 12 * pt; // see size10.clo\n // Default \\jot from ltmath.dtx\n // TODO(edemaine): allow overriding \\jot via \\setlength (#687)\n\n var jot = 3 * pt;\n var arrayskip = group.arraystretch * baselineskip;\n var arstrutHeight = 0.7 * arrayskip; // \\strutbox in ltfsstrc.dtx and\n\n var arstrutDepth = 0.3 * arrayskip; // \\@arstrutbox in lttab.dtx\n\n var totalHeight = 0; // Set a position for \\hline(s) at the top of the array, if any.\n\n function setHLinePos(hlinesInGap) {\n for (var i = 0; i < hlinesInGap.length; ++i) {\n if (i > 0) {\n totalHeight += 0.25;\n }\n\n hlines.push({\n pos: totalHeight,\n isDashed: hlinesInGap[i]\n });\n }\n }\n\n setHLinePos(hLinesBeforeRow[0]);\n\n for (r = 0; r < group.body.length; ++r) {\n var inrow = group.body[r];\n var height = arstrutHeight; // \\@array adds an \\@arstrut\n\n var depth = arstrutDepth; // to each tow (via the template)\n\n if (nc < inrow.length) {\n nc = inrow.length;\n }\n\n var outrow = new Array(inrow.length);\n\n for (c = 0; c < inrow.length; ++c) {\n var elt = buildGroup$1(inrow[c], options);\n\n if (depth < elt.depth) {\n depth = elt.depth;\n }\n\n if (height < elt.height) {\n height = elt.height;\n }\n\n outrow[c] = elt;\n }\n\n var rowGap = group.rowGaps[r];\n var gap = 0;\n\n if (rowGap) {\n gap = calculateSize(rowGap, options);\n\n if (gap > 0) {\n // \\@argarraycr\n gap += arstrutDepth;\n\n if (depth < gap) {\n depth = gap; // \\@xargarraycr\n }\n\n gap = 0;\n }\n } // In AMS multiline environments such as aligned and gathered, rows\n // correspond to lines that have additional \\jot added to the\n // \\baselineskip via \\openup.\n\n\n if (group.addJot) {\n depth += jot;\n }\n\n outrow.height = height;\n outrow.depth = depth;\n totalHeight += height;\n outrow.pos = totalHeight;\n totalHeight += depth + gap; // \\@yargarraycr\n\n body[r] = outrow; // Set a position for \\hline(s), if any.\n\n setHLinePos(hLinesBeforeRow[r + 1]);\n }\n\n var offset = totalHeight / 2 + options.fontMetrics().axisHeight;\n var colDescriptions = group.cols || [];\n var cols = [];\n var colSep;\n var colDescrNum;\n var tagSpans = [];\n\n if (group.tags && group.tags.some(tag => tag)) {\n // An environment with manual tags and/or automatic equation numbers.\n // Create node(s), the latter of which trigger CSS counter increment.\n for (r = 0; r < nr; ++r) {\n var rw = body[r];\n var shift = rw.pos - offset;\n var tag = group.tags[r];\n var tagSpan = void 0;\n\n if (tag === true) {\n // automatic numbering\n tagSpan = buildCommon.makeSpan([\"eqn-num\"], [], options);\n } else if (tag === false) {\n // \\nonumber/\\notag or starred environment\n tagSpan = buildCommon.makeSpan([], [], options);\n } else {\n // manual \\tag\n tagSpan = buildCommon.makeSpan([], buildExpression$1(tag, options, true), options);\n }\n\n tagSpan.depth = rw.depth;\n tagSpan.height = rw.height;\n tagSpans.push({\n type: \"elem\",\n elem: tagSpan,\n shift\n });\n }\n }\n\n for (c = 0, colDescrNum = 0; // Continue while either there are more columns or more column\n // descriptions, so trailing separators don't get lost.\n c < nc || colDescrNum < colDescriptions.length; ++c, ++colDescrNum) {\n var colDescr = colDescriptions[colDescrNum] || {};\n var firstSeparator = true;\n\n while (colDescr.type === \"separator\") {\n // If there is more than one separator in a row, add a space\n // between them.\n if (!firstSeparator) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = makeEm(options.fontMetrics().doubleRuleSep);\n cols.push(colSep);\n }\n\n if (colDescr.separator === \"|\" || colDescr.separator === \":\") {\n var lineType = colDescr.separator === \"|\" ? \"solid\" : \"dashed\";\n var separator = buildCommon.makeSpan([\"vertical-separator\"], [], options);\n separator.style.height = makeEm(totalHeight);\n separator.style.borderRightWidth = makeEm(ruleThickness);\n separator.style.borderRightStyle = lineType;\n separator.style.margin = \"0 \" + makeEm(-ruleThickness / 2);\n\n var _shift = totalHeight - offset;\n\n if (_shift) {\n separator.style.verticalAlign = makeEm(-_shift);\n }\n\n cols.push(separator);\n } else {\n throw new ParseError(\"Invalid separator type: \" + colDescr.separator);\n }\n\n colDescrNum++;\n colDescr = colDescriptions[colDescrNum] || {};\n firstSeparator = false;\n }\n\n if (c >= nc) {\n continue;\n }\n\n var sepwidth = void 0;\n\n if (c > 0 || group.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.pregap, arraycolsep);\n\n if (sepwidth !== 0) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = makeEm(sepwidth);\n cols.push(colSep);\n }\n }\n\n var col = [];\n\n for (r = 0; r < nr; ++r) {\n var row = body[r];\n var elem = row[c];\n\n if (!elem) {\n continue;\n }\n\n var _shift2 = row.pos - offset;\n\n elem.depth = row.depth;\n elem.height = row.height;\n col.push({\n type: \"elem\",\n elem: elem,\n shift: _shift2\n });\n }\n\n col = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: col\n }, options);\n col = buildCommon.makeSpan([\"col-align-\" + (colDescr.align || \"c\")], [col]);\n cols.push(col);\n\n if (c < nc - 1 || group.hskipBeforeAndAfter) {\n sepwidth = utils.deflt(colDescr.postgap, arraycolsep);\n\n if (sepwidth !== 0) {\n colSep = buildCommon.makeSpan([\"arraycolsep\"], []);\n colSep.style.width = makeEm(sepwidth);\n cols.push(colSep);\n }\n }\n }\n\n body = buildCommon.makeSpan([\"mtable\"], cols); // Add \\hline(s), if any.\n\n if (hlines.length > 0) {\n var line = buildCommon.makeLineSpan(\"hline\", options, ruleThickness);\n var dashes = buildCommon.makeLineSpan(\"hdashline\", options, ruleThickness);\n var vListElems = [{\n type: \"elem\",\n elem: body,\n shift: 0\n }];\n\n while (hlines.length > 0) {\n var hline = hlines.pop();\n var lineShift = hline.pos - offset;\n\n if (hline.isDashed) {\n vListElems.push({\n type: \"elem\",\n elem: dashes,\n shift: lineShift\n });\n } else {\n vListElems.push({\n type: \"elem\",\n elem: line,\n shift: lineShift\n });\n }\n }\n\n body = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: vListElems\n }, options);\n }\n\n if (tagSpans.length === 0) {\n return buildCommon.makeSpan([\"mord\"], [body], options);\n } else {\n var eqnNumCol = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: tagSpans\n }, options);\n eqnNumCol = buildCommon.makeSpan([\"tag\"], [eqnNumCol], options);\n return buildCommon.makeFragment([body, eqnNumCol]);\n }\n};\n\nvar alignMap = {\n c: \"center \",\n l: \"left \",\n r: \"right \"\n};\n\nvar mathmlBuilder$5 = function mathmlBuilder(group, options) {\n var tbl = [];\n var glue = new mathMLTree.MathNode(\"mtd\", [], [\"mtr-glue\"]);\n var tag = new mathMLTree.MathNode(\"mtd\", [], [\"mml-eqn-num\"]);\n\n for (var i = 0; i < group.body.length; i++) {\n var rw = group.body[i];\n var row = [];\n\n for (var j = 0; j < rw.length; j++) {\n row.push(new mathMLTree.MathNode(\"mtd\", [buildGroup(rw[j], options)]));\n }\n\n if (group.tags && group.tags[i]) {\n row.unshift(glue);\n row.push(glue);\n\n if (group.leqno) {\n row.unshift(tag);\n } else {\n row.push(tag);\n }\n }\n\n tbl.push(new mathMLTree.MathNode(\"mtr\", row));\n }\n\n var table = new mathMLTree.MathNode(\"mtable\", tbl); // Set column alignment, row spacing, column spacing, and\n // array lines by setting attributes on the table element.\n // Set the row spacing. In MathML, we specify a gap distance.\n // We do not use rowGap[] because MathML automatically increases\n // cell height with the height/depth of the element content.\n // LaTeX \\arraystretch multiplies the row baseline-to-baseline distance.\n // We simulate this by adding (arraystretch - 1)em to the gap. This\n // does a reasonable job of adjusting arrays containing 1 em tall content.\n // The 0.16 and 0.09 values are found empirically. They produce an array\n // similar to LaTeX and in which content does not interfere with \\hlines.\n\n var gap = group.arraystretch === 0.5 ? 0.1 // {smallmatrix}, {subarray}\n : 0.16 + group.arraystretch - 1 + (group.addJot ? 0.09 : 0);\n table.setAttribute(\"rowspacing\", makeEm(gap)); // MathML table lines go only between cells.\n // To place a line on an edge we'll use <menclose>, if necessary.\n\n var menclose = \"\";\n var align = \"\";\n\n if (group.cols && group.cols.length > 0) {\n // Find column alignment, column spacing, and vertical lines.\n var cols = group.cols;\n var columnLines = \"\";\n var prevTypeWasAlign = false;\n var iStart = 0;\n var iEnd = cols.length;\n\n if (cols[0].type === \"separator\") {\n menclose += \"top \";\n iStart = 1;\n }\n\n if (cols[cols.length - 1].type === \"separator\") {\n menclose += \"bottom \";\n iEnd -= 1;\n }\n\n for (var _i = iStart; _i < iEnd; _i++) {\n if (cols[_i].type === \"align\") {\n align += alignMap[cols[_i].align];\n\n if (prevTypeWasAlign) {\n columnLines += \"none \";\n }\n\n prevTypeWasAlign = true;\n } else if (cols[_i].type === \"separator\") {\n // MathML accepts only single lines between cells.\n // So we read only the first of consecutive separators.\n if (prevTypeWasAlign) {\n columnLines += cols[_i].separator === \"|\" ? \"solid \" : \"dashed \";\n prevTypeWasAlign = false;\n }\n }\n }\n\n table.setAttribute(\"columnalign\", align.trim());\n\n if (/[sd]/.test(columnLines)) {\n table.setAttribute(\"columnlines\", columnLines.trim());\n }\n } // Set column spacing.\n\n\n if (group.colSeparationType === \"align\") {\n var _cols = group.cols || [];\n\n var spacing = \"\";\n\n for (var _i2 = 1; _i2 < _cols.length; _i2++) {\n spacing += _i2 % 2 ? \"0em \" : \"1em \";\n }\n\n table.setAttribute(\"columnspacing\", spacing.trim());\n } else if (group.colSeparationType === \"alignat\" || group.colSeparationType === \"gather\") {\n table.setAttribute(\"columnspacing\", \"0em\");\n } else if (group.colSeparationType === \"small\") {\n table.setAttribute(\"columnspacing\", \"0.2778em\");\n } else if (group.colSeparationType === \"CD\") {\n table.setAttribute(\"columnspacing\", \"0.5em\");\n } else {\n table.setAttribute(\"columnspacing\", \"1em\");\n } // Address \\hline and \\hdashline\n\n\n var rowLines = \"\";\n var hlines = group.hLinesBeforeRow;\n menclose += hlines[0].length > 0 ? \"left \" : \"\";\n menclose += hlines[hlines.length - 1].length > 0 ? \"right \" : \"\";\n\n for (var _i3 = 1; _i3 < hlines.length - 1; _i3++) {\n rowLines += hlines[_i3].length === 0 ? \"none \" // MathML accepts only a single line between rows. Read one element.\n : hlines[_i3][0] ? \"dashed \" : \"solid \";\n }\n\n if (/[sd]/.test(rowLines)) {\n table.setAttribute(\"rowlines\", rowLines.trim());\n }\n\n if (menclose !== \"\") {\n table = new mathMLTree.MathNode(\"menclose\", [table]);\n table.setAttribute(\"notation\", menclose.trim());\n }\n\n if (group.arraystretch && group.arraystretch < 1) {\n // A small array. Wrap in scriptstyle so row gap is not too large.\n table = new mathMLTree.MathNode(\"mstyle\", [table]);\n table.setAttribute(\"scriptlevel\", \"1\");\n }\n\n return table;\n}; // Convenience function for align, align*, aligned, alignat, alignat*, alignedat.\n\n\nvar alignedHandler = function alignedHandler(context, args) {\n if (context.envName.indexOf(\"ed\") === -1) {\n validateAmsEnvironmentContext(context);\n }\n\n var cols = [];\n var separationType = context.envName.indexOf(\"at\") > -1 ? \"alignat\" : \"align\";\n var isSplit = context.envName === \"split\";\n var res = parseArray(context.parser, {\n cols,\n addJot: true,\n autoTag: isSplit ? undefined : getAutoTag(context.envName),\n emptySingleRow: true,\n colSeparationType: separationType,\n maxNumCols: isSplit ? 2 : undefined,\n leqno: context.parser.settings.leqno\n }, \"display\"); // Determining number of columns.\n // 1. If the first argument is given, we use it as a number of columns,\n // and makes sure that each row doesn't exceed that number.\n // 2. Otherwise, just count number of columns = maximum number\n // of cells in each row (\"aligned\" mode -- isAligned will be true).\n //\n // At the same time, prepend empty group {} at beginning of every second\n // cell in each row (starting with second cell) so that operators become\n // binary. This behavior is implemented in amsmath's \\start@aligned.\n\n var numMaths;\n var numCols = 0;\n var emptyGroup = {\n type: \"ordgroup\",\n mode: context.mode,\n body: []\n };\n\n if (args[0] && args[0].type === \"ordgroup\") {\n var arg0 = \"\";\n\n for (var i = 0; i < args[0].body.length; i++) {\n var textord = assertNodeType(args[0].body[i], \"textord\");\n arg0 += textord.text;\n }\n\n numMaths = Number(arg0);\n numCols = numMaths * 2;\n }\n\n var isAligned = !numCols;\n res.body.forEach(function (row) {\n for (var _i4 = 1; _i4 < row.length; _i4 += 2) {\n // Modify ordgroup node within styling node\n var styling = assertNodeType(row[_i4], \"styling\");\n var ordgroup = assertNodeType(styling.body[0], \"ordgroup\");\n ordgroup.body.unshift(emptyGroup);\n }\n\n if (!isAligned) {\n // Case 1\n var curMaths = row.length / 2;\n\n if (numMaths < curMaths) {\n throw new ParseError(\"Too many math in a row: \" + (\"expected \" + numMaths + \", but got \" + curMaths), row[0]);\n }\n } else if (numCols < row.length) {\n // Case 2\n numCols = row.length;\n }\n }); // Adjusting alignment.\n // In aligned mode, we add one \\qquad between columns;\n // otherwise we add nothing.\n\n for (var _i5 = 0; _i5 < numCols; ++_i5) {\n var align = \"r\";\n var pregap = 0;\n\n if (_i5 % 2 === 1) {\n align = \"l\";\n } else if (_i5 > 0 && isAligned) {\n // \"aligned\" mode.\n pregap = 1; // add one \\quad\n }\n\n cols[_i5] = {\n type: \"align\",\n align: align,\n pregap: pregap,\n postgap: 0\n };\n }\n\n res.colSeparationType = isAligned ? \"align\" : \"alignat\";\n return res;\n}; // Arrays are part of LaTeX, defined in lttab.dtx so its documentation\n// is part of the source2e.pdf file of LaTeX2e source documentation.\n// {darray} is an {array} environment where cells are set in \\displaystyle,\n// as defined in nccmath.sty.\n\n\ndefineEnvironment({\n type: \"array\",\n names: [\"array\", \"darray\"],\n props: {\n numArgs: 1\n },\n\n handler(context, args) {\n // Since no types are specified above, the two possibilities are\n // - The argument is wrapped in {} or [], in which case Parser's\n // parseGroup() returns an \"ordgroup\" wrapping some symbol node.\n // - The argument is a bare symbol node.\n var symNode = checkSymbolNodeType(args[0]);\n var colalign = symNode ? [args[0]] : assertNodeType(args[0], \"ordgroup\").body;\n var cols = colalign.map(function (nde) {\n var node = assertSymbolNodeType(nde);\n var ca = node.text;\n\n if (\"lcr\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca\n };\n } else if (ca === \"|\") {\n return {\n type: \"separator\",\n separator: \"|\"\n };\n } else if (ca === \":\") {\n return {\n type: \"separator\",\n separator: \":\"\n };\n }\n\n throw new ParseError(\"Unknown column alignment: \" + ca, nde);\n });\n var res = {\n cols,\n hskipBeforeAndAfter: true,\n // \\@preamble in lttab.dtx\n maxNumCols: cols.length\n };\n return parseArray(context.parser, res, dCellStyle(context.envName));\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // The matrix environments of amsmath builds on the array environment\n// of LaTeX, which is discussed above.\n// The mathtools package adds starred versions of the same environments.\n// These have an optional argument to choose left|center|right justification.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"matrix\", \"pmatrix\", \"bmatrix\", \"Bmatrix\", \"vmatrix\", \"Vmatrix\", \"matrix*\", \"pmatrix*\", \"bmatrix*\", \"Bmatrix*\", \"vmatrix*\", \"Vmatrix*\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n var delimiters = {\n \"matrix\": null,\n \"pmatrix\": [\"(\", \")\"],\n \"bmatrix\": [\"[\", \"]\"],\n \"Bmatrix\": [\"\\\\{\", \"\\\\}\"],\n \"vmatrix\": [\"|\", \"|\"],\n \"Vmatrix\": [\"\\\\Vert\", \"\\\\Vert\"]\n }[context.envName.replace(\"*\", \"\")]; // \\hskip -\\arraycolsep in amsmath\n\n var colAlign = \"c\";\n var payload = {\n hskipBeforeAndAfter: false,\n cols: [{\n type: \"align\",\n align: colAlign\n }]\n };\n\n if (context.envName.charAt(context.envName.length - 1) === \"*\") {\n // It's one of the mathtools starred functions.\n // Parse the optional alignment argument.\n var parser = context.parser;\n parser.consumeSpaces();\n\n if (parser.fetch().text === \"[\") {\n parser.consume();\n parser.consumeSpaces();\n colAlign = parser.fetch().text;\n\n if (\"lcr\".indexOf(colAlign) === -1) {\n throw new ParseError(\"Expected l or c or r\", parser.nextToken);\n }\n\n parser.consume();\n parser.consumeSpaces();\n parser.expect(\"]\");\n parser.consume();\n payload.cols = [{\n type: \"align\",\n align: colAlign\n }];\n }\n }\n\n var res = parseArray(context.parser, payload, dCellStyle(context.envName)); // Populate cols with the correct number of column alignment specs.\n\n var numCols = Math.max(0, ...res.body.map(row => row.length));\n res.cols = new Array(numCols).fill({\n type: \"align\",\n align: colAlign\n });\n return delimiters ? {\n type: \"leftright\",\n mode: context.mode,\n body: [res],\n left: delimiters[0],\n right: delimiters[1],\n rightColor: undefined // \\right uninfluenced by \\color in array\n\n } : res;\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"smallmatrix\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n var payload = {\n arraystretch: 0.5\n };\n var res = parseArray(context.parser, payload, \"script\");\n res.colSeparationType = \"small\";\n return res;\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"subarray\"],\n props: {\n numArgs: 1\n },\n\n handler(context, args) {\n // Parsing of {subarray} is similar to {array}\n var symNode = checkSymbolNodeType(args[0]);\n var colalign = symNode ? [args[0]] : assertNodeType(args[0], \"ordgroup\").body;\n var cols = colalign.map(function (nde) {\n var node = assertSymbolNodeType(nde);\n var ca = node.text; // {subarray} only recognizes \"l\" & \"c\"\n\n if (\"lc\".indexOf(ca) !== -1) {\n return {\n type: \"align\",\n align: ca\n };\n }\n\n throw new ParseError(\"Unknown column alignment: \" + ca, nde);\n });\n\n if (cols.length > 1) {\n throw new ParseError(\"{subarray} can contain only one column\");\n }\n\n var res = {\n cols,\n hskipBeforeAndAfter: false,\n arraystretch: 0.5\n };\n res = parseArray(context.parser, res, \"script\");\n\n if (res.body.length > 0 && res.body[0].length > 1) {\n throw new ParseError(\"{subarray} can contain only one column\");\n }\n\n return res;\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // A cases environment (in amsmath.sty) is almost equivalent to\n// \\def\\arraystretch{1.2}%\n// \\left\\{\\begin{array}{@{}l@{\\quad}l@{}} … \\end{array}\\right.\n// {dcases} is a {cases} environment where cells are set in \\displaystyle,\n// as defined in mathtools.sty.\n// {rcases} is another mathtools environment. It's brace is on the right side.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"cases\", \"dcases\", \"rcases\", \"drcases\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n var payload = {\n arraystretch: 1.2,\n cols: [{\n type: \"align\",\n align: \"l\",\n pregap: 0,\n // TODO(kevinb) get the current style.\n // For now we use the metrics for TEXT style which is what we were\n // doing before. Before attempting to get the current style we\n // should look at TeX's behavior especially for \\over and matrices.\n postgap: 1.0\n /* 1em quad */\n\n }, {\n type: \"align\",\n align: \"l\",\n pregap: 0,\n postgap: 0\n }]\n };\n var res = parseArray(context.parser, payload, dCellStyle(context.envName));\n return {\n type: \"leftright\",\n mode: context.mode,\n body: [res],\n left: context.envName.indexOf(\"r\") > -1 ? \".\" : \"\\\\{\",\n right: context.envName.indexOf(\"r\") > -1 ? \"\\\\}\" : \".\",\n rightColor: undefined\n };\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // In the align environment, one uses ampersands, &, to specify number of\n// columns in each row, and to locate spacing between each column.\n// align gets automatic numbering. align* and aligned do not.\n// The alignedat environment can be used in math mode.\n// Note that we assume \\nomallineskiplimit to be zero,\n// so that \\strut@ is the same as \\strut.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"align\", \"align*\", \"aligned\", \"split\"],\n props: {\n numArgs: 0\n },\n handler: alignedHandler,\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // A gathered environment is like an array environment with one centered\n// column, but where rows are considered lines so get \\jot line spacing\n// and contents are set in \\displaystyle.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"gathered\", \"gather\", \"gather*\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n if (utils.contains([\"gather\", \"gather*\"], context.envName)) {\n validateAmsEnvironmentContext(context);\n }\n\n var res = {\n cols: [{\n type: \"align\",\n align: \"c\"\n }],\n addJot: true,\n colSeparationType: \"gather\",\n autoTag: getAutoTag(context.envName),\n emptySingleRow: true,\n leqno: context.parser.settings.leqno\n };\n return parseArray(context.parser, res, \"display\");\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n}); // alignat environment is like an align environment, but one must explicitly\n// specify maximum number of columns in each row, and can adjust spacing between\n// each columns.\n\ndefineEnvironment({\n type: \"array\",\n names: [\"alignat\", \"alignat*\", \"alignedat\"],\n props: {\n numArgs: 1\n },\n handler: alignedHandler,\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"equation\", \"equation*\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n validateAmsEnvironmentContext(context);\n var res = {\n autoTag: getAutoTag(context.envName),\n emptySingleRow: true,\n singleRow: true,\n maxNumCols: 1,\n leqno: context.parser.settings.leqno\n };\n return parseArray(context.parser, res, \"display\");\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineEnvironment({\n type: \"array\",\n names: [\"CD\"],\n props: {\n numArgs: 0\n },\n\n handler(context) {\n validateAmsEnvironmentContext(context);\n return parseCD(context.parser);\n },\n\n htmlBuilder: htmlBuilder$6,\n mathmlBuilder: mathmlBuilder$5\n});\ndefineMacro(\"\\\\nonumber\", \"\\\\gdef\\\\@eqnsw{0}\");\ndefineMacro(\"\\\\notag\", \"\\\\nonumber\"); // Catch \\hline outside array environment\n\ndefineFunction({\n type: \"text\",\n // Doesn't matter what this is.\n names: [\"\\\\hline\", \"\\\\hdashline\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: true\n },\n\n handler(context, args) {\n throw new ParseError(context.funcName + \" valid only within array environment\");\n }\n\n});\n\nvar environments = _environments;\n\n// defineEnvironment definitions.\n\ndefineFunction({\n type: \"environment\",\n names: [\"\\\\begin\", \"\\\\end\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"]\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n var nameGroup = args[0];\n\n if (nameGroup.type !== \"ordgroup\") {\n throw new ParseError(\"Invalid environment name\", nameGroup);\n }\n\n var envName = \"\";\n\n for (var i = 0; i < nameGroup.body.length; ++i) {\n envName += assertNodeType(nameGroup.body[i], \"textord\").text;\n }\n\n if (funcName === \"\\\\begin\") {\n // begin...end is similar to left...right\n if (!environments.hasOwnProperty(envName)) {\n throw new ParseError(\"No such environment: \" + envName, nameGroup);\n } // Build the environment object. Arguments and other information will\n // be made available to the begin and end methods using properties.\n\n\n var env = environments[envName];\n var {\n args: _args,\n optArgs\n } = parser.parseArguments(\"\\\\begin{\" + envName + \"}\", env);\n var context = {\n mode: parser.mode,\n envName,\n parser\n };\n var result = env.handler(context, _args, optArgs);\n parser.expect(\"\\\\end\", false);\n var endNameToken = parser.nextToken;\n var end = assertNodeType(parser.parseFunction(), \"environment\");\n\n if (end.name !== envName) {\n throw new ParseError(\"Mismatch: \\\\begin{\" + envName + \"} matched by \\\\end{\" + end.name + \"}\", endNameToken);\n } // $FlowFixMe, \"environment\" handler returns an environment ParseNode\n\n\n return result;\n }\n\n return {\n type: \"environment\",\n mode: parser.mode,\n name: envName,\n nameGroup\n };\n }\n\n});\n\n// TODO(kevinb): implement \\\\sl and \\\\sc\n\nvar htmlBuilder$5 = (group, options) => {\n var font = group.font;\n var newOptions = options.withFont(font);\n return buildGroup$1(group.body, newOptions);\n};\n\nvar mathmlBuilder$4 = (group, options) => {\n var font = group.font;\n var newOptions = options.withFont(font);\n return buildGroup(group.body, newOptions);\n};\n\nvar fontAliases = {\n \"\\\\Bbb\": \"\\\\mathbb\",\n \"\\\\bold\": \"\\\\mathbf\",\n \"\\\\frak\": \"\\\\mathfrak\",\n \"\\\\bm\": \"\\\\boldsymbol\"\n};\ndefineFunction({\n type: \"font\",\n names: [// styles, except \\boldsymbol defined below\n \"\\\\mathrm\", \"\\\\mathit\", \"\\\\mathbf\", \"\\\\mathnormal\", // families\n \"\\\\mathbb\", \"\\\\mathcal\", \"\\\\mathfrak\", \"\\\\mathscr\", \"\\\\mathsf\", \"\\\\mathtt\", // aliases, except \\bm defined below\n \"\\\\Bbb\", \"\\\\bold\", \"\\\\frak\"],\n props: {\n numArgs: 1,\n allowedInArgument: true\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var body = normalizeArgument(args[0]);\n var func = funcName;\n\n if (func in fontAliases) {\n func = fontAliases[func];\n }\n\n return {\n type: \"font\",\n mode: parser.mode,\n font: func.slice(1),\n body\n };\n },\n htmlBuilder: htmlBuilder$5,\n mathmlBuilder: mathmlBuilder$4\n});\ndefineFunction({\n type: \"mclass\",\n names: [\"\\\\boldsymbol\", \"\\\\bm\"],\n props: {\n numArgs: 1\n },\n handler: (_ref2, args) => {\n var {\n parser\n } = _ref2;\n var body = args[0];\n var isCharacterBox = utils.isCharacterBox(body); // amsbsy.sty's \\boldsymbol uses \\binrel spacing to inherit the\n // argument's bin|rel|ord status\n\n return {\n type: \"mclass\",\n mode: parser.mode,\n mclass: binrelClass(body),\n body: [{\n type: \"font\",\n mode: parser.mode,\n font: \"boldsymbol\",\n body\n }],\n isCharacterBox: isCharacterBox\n };\n }\n}); // Old font changing functions\n\ndefineFunction({\n type: \"font\",\n names: [\"\\\\rm\", \"\\\\sf\", \"\\\\tt\", \"\\\\bf\", \"\\\\it\", \"\\\\cal\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: (_ref3, args) => {\n var {\n parser,\n funcName,\n breakOnTokenText\n } = _ref3;\n var {\n mode\n } = parser;\n var body = parser.parseExpression(true, breakOnTokenText);\n var style = \"math\" + funcName.slice(1);\n return {\n type: \"font\",\n mode: mode,\n font: style,\n body: {\n type: \"ordgroup\",\n mode: parser.mode,\n body\n }\n };\n },\n htmlBuilder: htmlBuilder$5,\n mathmlBuilder: mathmlBuilder$4\n});\n\nvar adjustStyle = (size, originalStyle) => {\n // Figure out what style this fraction should be in based on the\n // function used\n var style = originalStyle;\n\n if (size === \"display\") {\n // Get display style as a default.\n // If incoming style is sub/sup, use style.text() to get correct size.\n style = style.id >= Style$1.SCRIPT.id ? style.text() : Style$1.DISPLAY;\n } else if (size === \"text\" && style.size === Style$1.DISPLAY.size) {\n // We're in a \\tfrac but incoming style is displaystyle, so:\n style = Style$1.TEXT;\n } else if (size === \"script\") {\n style = Style$1.SCRIPT;\n } else if (size === \"scriptscript\") {\n style = Style$1.SCRIPTSCRIPT;\n }\n\n return style;\n};\n\nvar htmlBuilder$4 = (group, options) => {\n // Fractions are handled in the TeXbook on pages 444-445, rules 15(a-e).\n var style = adjustStyle(group.size, options.style);\n var nstyle = style.fracNum();\n var dstyle = style.fracDen();\n var newOptions;\n newOptions = options.havingStyle(nstyle);\n var numerm = buildGroup$1(group.numer, newOptions, options);\n\n if (group.continued) {\n // \\cfrac inserts a \\strut into the numerator.\n // Get \\strut dimensions from TeXbook page 353.\n var hStrut = 8.5 / options.fontMetrics().ptPerEm;\n var dStrut = 3.5 / options.fontMetrics().ptPerEm;\n numerm.height = numerm.height < hStrut ? hStrut : numerm.height;\n numerm.depth = numerm.depth < dStrut ? dStrut : numerm.depth;\n }\n\n newOptions = options.havingStyle(dstyle);\n var denomm = buildGroup$1(group.denom, newOptions, options);\n var rule;\n var ruleWidth;\n var ruleSpacing;\n\n if (group.hasBarLine) {\n if (group.barSize) {\n ruleWidth = calculateSize(group.barSize, options);\n rule = buildCommon.makeLineSpan(\"frac-line\", options, ruleWidth);\n } else {\n rule = buildCommon.makeLineSpan(\"frac-line\", options);\n }\n\n ruleWidth = rule.height;\n ruleSpacing = rule.height;\n } else {\n rule = null;\n ruleWidth = 0;\n ruleSpacing = options.fontMetrics().defaultRuleThickness;\n } // Rule 15b\n\n\n var numShift;\n var clearance;\n var denomShift;\n\n if (style.size === Style$1.DISPLAY.size || group.size === \"display\") {\n numShift = options.fontMetrics().num1;\n\n if (ruleWidth > 0) {\n clearance = 3 * ruleSpacing;\n } else {\n clearance = 7 * ruleSpacing;\n }\n\n denomShift = options.fontMetrics().denom1;\n } else {\n if (ruleWidth > 0) {\n numShift = options.fontMetrics().num2;\n clearance = ruleSpacing;\n } else {\n numShift = options.fontMetrics().num3;\n clearance = 3 * ruleSpacing;\n }\n\n denomShift = options.fontMetrics().denom2;\n }\n\n var frac;\n\n if (!rule) {\n // Rule 15c\n var candidateClearance = numShift - numerm.depth - (denomm.height - denomShift);\n\n if (candidateClearance < clearance) {\n numShift += 0.5 * (clearance - candidateClearance);\n denomShift += 0.5 * (clearance - candidateClearance);\n }\n\n frac = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: denomm,\n shift: denomShift\n }, {\n type: \"elem\",\n elem: numerm,\n shift: -numShift\n }]\n }, options);\n } else {\n // Rule 15d\n var axisHeight = options.fontMetrics().axisHeight;\n\n if (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth) < clearance) {\n numShift += clearance - (numShift - numerm.depth - (axisHeight + 0.5 * ruleWidth));\n }\n\n if (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift) < clearance) {\n denomShift += clearance - (axisHeight - 0.5 * ruleWidth - (denomm.height - denomShift));\n }\n\n var midShift = -(axisHeight - 0.5 * ruleWidth);\n frac = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: denomm,\n shift: denomShift\n }, {\n type: \"elem\",\n elem: rule,\n shift: midShift\n }, {\n type: \"elem\",\n elem: numerm,\n shift: -numShift\n }]\n }, options);\n } // Since we manually change the style sometimes (with \\dfrac or \\tfrac),\n // account for the possible size change here.\n\n\n newOptions = options.havingStyle(style);\n frac.height *= newOptions.sizeMultiplier / options.sizeMultiplier;\n frac.depth *= newOptions.sizeMultiplier / options.sizeMultiplier; // Rule 15e\n\n var delimSize;\n\n if (style.size === Style$1.DISPLAY.size) {\n delimSize = options.fontMetrics().delim1;\n } else if (style.size === Style$1.SCRIPTSCRIPT.size) {\n delimSize = options.havingStyle(Style$1.SCRIPT).fontMetrics().delim2;\n } else {\n delimSize = options.fontMetrics().delim2;\n }\n\n var leftDelim;\n var rightDelim;\n\n if (group.leftDelim == null) {\n leftDelim = makeNullDelimiter(options, [\"mopen\"]);\n } else {\n leftDelim = delimiter.customSizedDelim(group.leftDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mopen\"]);\n }\n\n if (group.continued) {\n rightDelim = buildCommon.makeSpan([]); // zero width for \\cfrac\n } else if (group.rightDelim == null) {\n rightDelim = makeNullDelimiter(options, [\"mclose\"]);\n } else {\n rightDelim = delimiter.customSizedDelim(group.rightDelim, delimSize, true, options.havingStyle(style), group.mode, [\"mclose\"]);\n }\n\n return buildCommon.makeSpan([\"mord\"].concat(newOptions.sizingClasses(options)), [leftDelim, buildCommon.makeSpan([\"mfrac\"], [frac]), rightDelim], options);\n};\n\nvar mathmlBuilder$3 = (group, options) => {\n var node = new mathMLTree.MathNode(\"mfrac\", [buildGroup(group.numer, options), buildGroup(group.denom, options)]);\n\n if (!group.hasBarLine) {\n node.setAttribute(\"linethickness\", \"0px\");\n } else if (group.barSize) {\n var ruleWidth = calculateSize(group.barSize, options);\n node.setAttribute(\"linethickness\", makeEm(ruleWidth));\n }\n\n var style = adjustStyle(group.size, options.style);\n\n if (style.size !== options.style.size) {\n node = new mathMLTree.MathNode(\"mstyle\", [node]);\n var isDisplay = style.size === Style$1.DISPLAY.size ? \"true\" : \"false\";\n node.setAttribute(\"displaystyle\", isDisplay);\n node.setAttribute(\"scriptlevel\", \"0\");\n }\n\n if (group.leftDelim != null || group.rightDelim != null) {\n var withDelims = [];\n\n if (group.leftDelim != null) {\n var leftOp = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(group.leftDelim.replace(\"\\\\\", \"\"))]);\n leftOp.setAttribute(\"fence\", \"true\");\n withDelims.push(leftOp);\n }\n\n withDelims.push(node);\n\n if (group.rightDelim != null) {\n var rightOp = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(group.rightDelim.replace(\"\\\\\", \"\"))]);\n rightOp.setAttribute(\"fence\", \"true\");\n withDelims.push(rightOp);\n }\n\n return makeRow(withDelims);\n }\n\n return node;\n};\n\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\dfrac\", \"\\\\frac\", \"\\\\tfrac\", \"\\\\dbinom\", \"\\\\binom\", \"\\\\tbinom\", \"\\\\\\\\atopfrac\", // can’t be entered directly\n \"\\\\\\\\bracefrac\", \"\\\\\\\\brackfrac\" // ditto\n ],\n props: {\n numArgs: 2,\n allowedInArgument: true\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var numer = args[0];\n var denom = args[1];\n var hasBarLine;\n var leftDelim = null;\n var rightDelim = null;\n var size = \"auto\";\n\n switch (funcName) {\n case \"\\\\dfrac\":\n case \"\\\\frac\":\n case \"\\\\tfrac\":\n hasBarLine = true;\n break;\n\n case \"\\\\\\\\atopfrac\":\n hasBarLine = false;\n break;\n\n case \"\\\\dbinom\":\n case \"\\\\binom\":\n case \"\\\\tbinom\":\n hasBarLine = false;\n leftDelim = \"(\";\n rightDelim = \")\";\n break;\n\n case \"\\\\\\\\bracefrac\":\n hasBarLine = false;\n leftDelim = \"\\\\{\";\n rightDelim = \"\\\\}\";\n break;\n\n case \"\\\\\\\\brackfrac\":\n hasBarLine = false;\n leftDelim = \"[\";\n rightDelim = \"]\";\n break;\n\n default:\n throw new Error(\"Unrecognized genfrac command\");\n }\n\n switch (funcName) {\n case \"\\\\dfrac\":\n case \"\\\\dbinom\":\n size = \"display\";\n break;\n\n case \"\\\\tfrac\":\n case \"\\\\tbinom\":\n size = \"text\";\n break;\n }\n\n return {\n type: \"genfrac\",\n mode: parser.mode,\n continued: false,\n numer,\n denom,\n hasBarLine,\n leftDelim,\n rightDelim,\n size,\n barSize: null\n };\n },\n htmlBuilder: htmlBuilder$4,\n mathmlBuilder: mathmlBuilder$3\n});\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\cfrac\"],\n props: {\n numArgs: 2\n },\n handler: (_ref2, args) => {\n var {\n parser,\n funcName\n } = _ref2;\n var numer = args[0];\n var denom = args[1];\n return {\n type: \"genfrac\",\n mode: parser.mode,\n continued: true,\n numer,\n denom,\n hasBarLine: true,\n leftDelim: null,\n rightDelim: null,\n size: \"display\",\n barSize: null\n };\n }\n}); // Infix generalized fractions -- these are not rendered directly, but replaced\n// immediately by one of the variants above.\n\ndefineFunction({\n type: \"infix\",\n names: [\"\\\\over\", \"\\\\choose\", \"\\\\atop\", \"\\\\brace\", \"\\\\brack\"],\n props: {\n numArgs: 0,\n infix: true\n },\n\n handler(_ref3) {\n var {\n parser,\n funcName,\n token\n } = _ref3;\n var replaceWith;\n\n switch (funcName) {\n case \"\\\\over\":\n replaceWith = \"\\\\frac\";\n break;\n\n case \"\\\\choose\":\n replaceWith = \"\\\\binom\";\n break;\n\n case \"\\\\atop\":\n replaceWith = \"\\\\\\\\atopfrac\";\n break;\n\n case \"\\\\brace\":\n replaceWith = \"\\\\\\\\bracefrac\";\n break;\n\n case \"\\\\brack\":\n replaceWith = \"\\\\\\\\brackfrac\";\n break;\n\n default:\n throw new Error(\"Unrecognized infix genfrac command\");\n }\n\n return {\n type: \"infix\",\n mode: parser.mode,\n replaceWith,\n token\n };\n }\n\n});\nvar stylArray = [\"display\", \"text\", \"script\", \"scriptscript\"];\n\nvar delimFromValue = function delimFromValue(delimString) {\n var delim = null;\n\n if (delimString.length > 0) {\n delim = delimString;\n delim = delim === \".\" ? null : delim;\n }\n\n return delim;\n};\n\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\genfrac\"],\n props: {\n numArgs: 6,\n allowedInArgument: true,\n argTypes: [\"math\", \"math\", \"size\", \"text\", \"math\", \"math\"]\n },\n\n handler(_ref4, args) {\n var {\n parser\n } = _ref4;\n var numer = args[4];\n var denom = args[5]; // Look into the parse nodes to get the desired delimiters.\n\n var leftNode = normalizeArgument(args[0]);\n var leftDelim = leftNode.type === \"atom\" && leftNode.family === \"open\" ? delimFromValue(leftNode.text) : null;\n var rightNode = normalizeArgument(args[1]);\n var rightDelim = rightNode.type === \"atom\" && rightNode.family === \"close\" ? delimFromValue(rightNode.text) : null;\n var barNode = assertNodeType(args[2], \"size\");\n var hasBarLine;\n var barSize = null;\n\n if (barNode.isBlank) {\n // \\genfrac acts differently than \\above.\n // \\genfrac treats an empty size group as a signal to use a\n // standard bar size. \\above would see size = 0 and omit the bar.\n hasBarLine = true;\n } else {\n barSize = barNode.value;\n hasBarLine = barSize.number > 0;\n } // Find out if we want displaystyle, textstyle, etc.\n\n\n var size = \"auto\";\n var styl = args[3];\n\n if (styl.type === \"ordgroup\") {\n if (styl.body.length > 0) {\n var textOrd = assertNodeType(styl.body[0], \"textord\");\n size = stylArray[Number(textOrd.text)];\n }\n } else {\n styl = assertNodeType(styl, \"textord\");\n size = stylArray[Number(styl.text)];\n }\n\n return {\n type: \"genfrac\",\n mode: parser.mode,\n numer,\n denom,\n continued: false,\n hasBarLine,\n barSize,\n leftDelim,\n rightDelim,\n size\n };\n },\n\n htmlBuilder: htmlBuilder$4,\n mathmlBuilder: mathmlBuilder$3\n}); // \\above is an infix fraction that also defines a fraction bar size.\n\ndefineFunction({\n type: \"infix\",\n names: [\"\\\\above\"],\n props: {\n numArgs: 1,\n argTypes: [\"size\"],\n infix: true\n },\n\n handler(_ref5, args) {\n var {\n parser,\n funcName,\n token\n } = _ref5;\n return {\n type: \"infix\",\n mode: parser.mode,\n replaceWith: \"\\\\\\\\abovefrac\",\n size: assertNodeType(args[0], \"size\").value,\n token\n };\n }\n\n});\ndefineFunction({\n type: \"genfrac\",\n names: [\"\\\\\\\\abovefrac\"],\n props: {\n numArgs: 3,\n argTypes: [\"math\", \"size\", \"math\"]\n },\n handler: (_ref6, args) => {\n var {\n parser,\n funcName\n } = _ref6;\n var numer = args[0];\n var barSize = assert(assertNodeType(args[1], \"infix\").size);\n var denom = args[2];\n var hasBarLine = barSize.number > 0;\n return {\n type: \"genfrac\",\n mode: parser.mode,\n numer,\n denom,\n continued: false,\n hasBarLine,\n barSize,\n leftDelim: null,\n rightDelim: null,\n size: \"auto\"\n };\n },\n htmlBuilder: htmlBuilder$4,\n mathmlBuilder: mathmlBuilder$3\n});\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only \"horizBrace\", but\n// also \"supsub\" since an over/underbrace can affect super/subscripting.\nvar htmlBuilder$3 = (grp, options) => {\n var style = options.style; // Pull out the `ParseNode<\"horizBrace\">` if `grp` is a \"supsub\" node.\n\n var supSubGroup;\n var group;\n\n if (grp.type === \"supsub\") {\n // Ref: LaTeX source2e: }}}}\\limits}\n // i.e. LaTeX treats the brace similar to an op and passes it\n // with \\limits, so we need to assign supsub style.\n supSubGroup = grp.sup ? buildGroup$1(grp.sup, options.havingStyle(style.sup()), options) : buildGroup$1(grp.sub, options.havingStyle(style.sub()), options);\n group = assertNodeType(grp.base, \"horizBrace\");\n } else {\n group = assertNodeType(grp, \"horizBrace\");\n } // Build the base group\n\n\n var body = buildGroup$1(group.base, options.havingBaseStyle(Style$1.DISPLAY)); // Create the stretchy element\n\n var braceBody = stretchy.svgSpan(group, options); // Generate the vlist, with the appropriate kerns ┏━━━━━━━━┓\n // This first vlist contains the content and the brace: equation\n\n var vlist;\n\n if (group.isOver) {\n vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: body\n }, {\n type: \"kern\",\n size: 0.1\n }, {\n type: \"elem\",\n elem: braceBody\n }]\n }, options); // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n vlist.children[0].children[0].children[1].classes.push(\"svg-align\");\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: body.depth + 0.1 + braceBody.height,\n children: [{\n type: \"elem\",\n elem: braceBody\n }, {\n type: \"kern\",\n size: 0.1\n }, {\n type: \"elem\",\n elem: body\n }]\n }, options); // $FlowFixMe: Replace this with passing \"svg-align\" into makeVList.\n\n vlist.children[0].children[0].children[0].classes.push(\"svg-align\");\n }\n\n if (supSubGroup) {\n // To write the supsub, wrap the first vlist in another vlist:\n // They can't all go in the same vlist, because the note might be\n // wider than the equation. We want the equation to control the\n // brace width.\n // note long note long note\n // ┏━━━━━━━━┓ or ┏━━━┓ not ┏━━━━━━━━━┓\n // equation eqn eqn\n var vSpan = buildCommon.makeSpan([\"mord\", group.isOver ? \"mover\" : \"munder\"], [vlist], options);\n\n if (group.isOver) {\n vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: vSpan\n }, {\n type: \"kern\",\n size: 0.2\n }, {\n type: \"elem\",\n elem: supSubGroup\n }]\n }, options);\n } else {\n vlist = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: vSpan.depth + 0.2 + supSubGroup.height + supSubGroup.depth,\n children: [{\n type: \"elem\",\n elem: supSubGroup\n }, {\n type: \"kern\",\n size: 0.2\n }, {\n type: \"elem\",\n elem: vSpan\n }]\n }, options);\n }\n }\n\n return buildCommon.makeSpan([\"mord\", group.isOver ? \"mover\" : \"munder\"], [vlist], options);\n};\n\nvar mathmlBuilder$2 = (group, options) => {\n var accentNode = stretchy.mathMLnode(group.label);\n return new mathMLTree.MathNode(group.isOver ? \"mover\" : \"munder\", [buildGroup(group.base, options), accentNode]);\n}; // Horizontal stretchy braces\n\n\ndefineFunction({\n type: \"horizBrace\",\n names: [\"\\\\overbrace\", \"\\\\underbrace\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n return {\n type: \"horizBrace\",\n mode: parser.mode,\n label: funcName,\n isOver: /^\\\\over/.test(funcName),\n base: args[0]\n };\n },\n\n htmlBuilder: htmlBuilder$3,\n mathmlBuilder: mathmlBuilder$2\n});\n\ndefineFunction({\n type: \"href\",\n names: [\"\\\\href\"],\n props: {\n numArgs: 2,\n argTypes: [\"url\", \"original\"],\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser\n } = _ref;\n var body = args[1];\n var href = assertNodeType(args[0], \"url\").url;\n\n if (!parser.settings.isTrusted({\n command: \"\\\\href\",\n url: href\n })) {\n return parser.formatUnsupportedCmd(\"\\\\href\");\n }\n\n return {\n type: \"href\",\n mode: parser.mode,\n href,\n body: ordargument(body)\n };\n },\n htmlBuilder: (group, options) => {\n var elements = buildExpression$1(group.body, options, false);\n return buildCommon.makeAnchor(group.href, [], elements, options);\n },\n mathmlBuilder: (group, options) => {\n var math = buildExpressionRow(group.body, options);\n\n if (!(math instanceof MathNode)) {\n math = new MathNode(\"mrow\", [math]);\n }\n\n math.setAttribute(\"href\", group.href);\n return math;\n }\n});\ndefineFunction({\n type: \"href\",\n names: [\"\\\\url\"],\n props: {\n numArgs: 1,\n argTypes: [\"url\"],\n allowedInText: true\n },\n handler: (_ref2, args) => {\n var {\n parser\n } = _ref2;\n var href = assertNodeType(args[0], \"url\").url;\n\n if (!parser.settings.isTrusted({\n command: \"\\\\url\",\n url: href\n })) {\n return parser.formatUnsupportedCmd(\"\\\\url\");\n }\n\n var chars = [];\n\n for (var i = 0; i < href.length; i++) {\n var c = href[i];\n\n if (c === \"~\") {\n c = \"\\\\textasciitilde\";\n }\n\n chars.push({\n type: \"textord\",\n mode: \"text\",\n text: c\n });\n }\n\n var body = {\n type: \"text\",\n mode: parser.mode,\n font: \"\\\\texttt\",\n body: chars\n };\n return {\n type: \"href\",\n mode: parser.mode,\n href,\n body: ordargument(body)\n };\n }\n});\n\n// In LaTeX, \\vcenter can act only on a box, as in\n// \\vcenter{\\hbox{$\\frac{a+b}{\\dfrac{c}{d}}$}}\n// This function by itself doesn't do anything but prevent a soft line break.\n\ndefineFunction({\n type: \"hbox\",\n names: [\"\\\\hbox\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"],\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n return {\n type: \"hbox\",\n mode: parser.mode,\n body: ordargument(args[0])\n };\n },\n\n htmlBuilder(group, options) {\n var elements = buildExpression$1(group.body, options, false);\n return buildCommon.makeFragment(elements);\n },\n\n mathmlBuilder(group, options) {\n return new mathMLTree.MathNode(\"mrow\", buildExpression(group.body, options));\n }\n\n});\n\ndefineFunction({\n type: \"html\",\n names: [\"\\\\htmlClass\", \"\\\\htmlId\", \"\\\\htmlStyle\", \"\\\\htmlData\"],\n props: {\n numArgs: 2,\n argTypes: [\"raw\", \"original\"],\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName,\n token\n } = _ref;\n var value = assertNodeType(args[0], \"raw\").string;\n var body = args[1];\n\n if (parser.settings.strict) {\n parser.settings.reportNonstrict(\"htmlExtension\", \"HTML extension is disabled on strict mode\");\n }\n\n var trustContext;\n var attributes = {};\n\n switch (funcName) {\n case \"\\\\htmlClass\":\n attributes.class = value;\n trustContext = {\n command: \"\\\\htmlClass\",\n class: value\n };\n break;\n\n case \"\\\\htmlId\":\n attributes.id = value;\n trustContext = {\n command: \"\\\\htmlId\",\n id: value\n };\n break;\n\n case \"\\\\htmlStyle\":\n attributes.style = value;\n trustContext = {\n command: \"\\\\htmlStyle\",\n style: value\n };\n break;\n\n case \"\\\\htmlData\":\n {\n var data = value.split(\",\");\n\n for (var i = 0; i < data.length; i++) {\n var keyVal = data[i].split(\"=\");\n\n if (keyVal.length !== 2) {\n throw new ParseError(\"Error parsing key-value for \\\\htmlData\");\n }\n\n attributes[\"data-\" + keyVal[0].trim()] = keyVal[1].trim();\n }\n\n trustContext = {\n command: \"\\\\htmlData\",\n attributes\n };\n break;\n }\n\n default:\n throw new Error(\"Unrecognized html command\");\n }\n\n if (!parser.settings.isTrusted(trustContext)) {\n return parser.formatUnsupportedCmd(funcName);\n }\n\n return {\n type: \"html\",\n mode: parser.mode,\n attributes,\n body: ordargument(body)\n };\n },\n htmlBuilder: (group, options) => {\n var elements = buildExpression$1(group.body, options, false);\n var classes = [\"enclosing\"];\n\n if (group.attributes.class) {\n classes.push(...group.attributes.class.trim().split(/\\s+/));\n }\n\n var span = buildCommon.makeSpan(classes, elements, options);\n\n for (var attr in group.attributes) {\n if (attr !== \"class\" && group.attributes.hasOwnProperty(attr)) {\n span.setAttribute(attr, group.attributes[attr]);\n }\n }\n\n return span;\n },\n mathmlBuilder: (group, options) => {\n return buildExpressionRow(group.body, options);\n }\n});\n\ndefineFunction({\n type: \"htmlmathml\",\n names: [\"\\\\html@mathml\"],\n props: {\n numArgs: 2,\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser\n } = _ref;\n return {\n type: \"htmlmathml\",\n mode: parser.mode,\n html: ordargument(args[0]),\n mathml: ordargument(args[1])\n };\n },\n htmlBuilder: (group, options) => {\n var elements = buildExpression$1(group.html, options, false);\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: (group, options) => {\n return buildExpressionRow(group.mathml, options);\n }\n});\n\nvar sizeData = function sizeData(str) {\n if (/^[-+]? *(\\d+(\\.\\d*)?|\\.\\d+)$/.test(str)) {\n // str is a number with no unit specified.\n // default unit is bp, per graphix package.\n return {\n number: +str,\n unit: \"bp\"\n };\n } else {\n var match = /([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(str);\n\n if (!match) {\n throw new ParseError(\"Invalid size: '\" + str + \"' in \\\\includegraphics\");\n }\n\n var data = {\n number: +(match[1] + match[2]),\n // sign + magnitude, cast to number\n unit: match[3]\n };\n\n if (!validUnit(data)) {\n throw new ParseError(\"Invalid unit: '\" + data.unit + \"' in \\\\includegraphics.\");\n }\n\n return data;\n }\n};\n\ndefineFunction({\n type: \"includegraphics\",\n names: [\"\\\\includegraphics\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1,\n argTypes: [\"raw\", \"url\"],\n allowedInText: false\n },\n handler: (_ref, args, optArgs) => {\n var {\n parser\n } = _ref;\n var width = {\n number: 0,\n unit: \"em\"\n };\n var height = {\n number: 0.9,\n unit: \"em\"\n }; // sorta character sized.\n\n var totalheight = {\n number: 0,\n unit: \"em\"\n };\n var alt = \"\";\n\n if (optArgs[0]) {\n var attributeStr = assertNodeType(optArgs[0], \"raw\").string; // Parser.js does not parse key/value pairs. We get a string.\n\n var attributes = attributeStr.split(\",\");\n\n for (var i = 0; i < attributes.length; i++) {\n var keyVal = attributes[i].split(\"=\");\n\n if (keyVal.length === 2) {\n var str = keyVal[1].trim();\n\n switch (keyVal[0].trim()) {\n case \"alt\":\n alt = str;\n break;\n\n case \"width\":\n width = sizeData(str);\n break;\n\n case \"height\":\n height = sizeData(str);\n break;\n\n case \"totalheight\":\n totalheight = sizeData(str);\n break;\n\n default:\n throw new ParseError(\"Invalid key: '\" + keyVal[0] + \"' in \\\\includegraphics.\");\n }\n }\n }\n }\n\n var src = assertNodeType(args[0], \"url\").url;\n\n if (alt === \"\") {\n // No alt given. Use the file name. Strip away the path.\n alt = src;\n alt = alt.replace(/^.*[\\\\/]/, '');\n alt = alt.substring(0, alt.lastIndexOf('.'));\n }\n\n if (!parser.settings.isTrusted({\n command: \"\\\\includegraphics\",\n url: src\n })) {\n return parser.formatUnsupportedCmd(\"\\\\includegraphics\");\n }\n\n return {\n type: \"includegraphics\",\n mode: parser.mode,\n alt: alt,\n width: width,\n height: height,\n totalheight: totalheight,\n src: src\n };\n },\n htmlBuilder: (group, options) => {\n var height = calculateSize(group.height, options);\n var depth = 0;\n\n if (group.totalheight.number > 0) {\n depth = calculateSize(group.totalheight, options) - height;\n }\n\n var width = 0;\n\n if (group.width.number > 0) {\n width = calculateSize(group.width, options);\n }\n\n var style = {\n height: makeEm(height + depth)\n };\n\n if (width > 0) {\n style.width = makeEm(width);\n }\n\n if (depth > 0) {\n style.verticalAlign = makeEm(-depth);\n }\n\n var node = new Img(group.src, group.alt, style);\n node.height = height;\n node.depth = depth;\n return node;\n },\n mathmlBuilder: (group, options) => {\n var node = new mathMLTree.MathNode(\"mglyph\", []);\n node.setAttribute(\"alt\", group.alt);\n var height = calculateSize(group.height, options);\n var depth = 0;\n\n if (group.totalheight.number > 0) {\n depth = calculateSize(group.totalheight, options) - height;\n node.setAttribute(\"valign\", makeEm(-depth));\n }\n\n node.setAttribute(\"height\", makeEm(height + depth));\n\n if (group.width.number > 0) {\n var width = calculateSize(group.width, options);\n node.setAttribute(\"width\", makeEm(width));\n }\n\n node.setAttribute(\"src\", group.src);\n return node;\n }\n});\n\n// Horizontal spacing commands\n\ndefineFunction({\n type: \"kern\",\n names: [\"\\\\kern\", \"\\\\mkern\", \"\\\\hskip\", \"\\\\mskip\"],\n props: {\n numArgs: 1,\n argTypes: [\"size\"],\n primitive: true,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n var size = assertNodeType(args[0], \"size\");\n\n if (parser.settings.strict) {\n var mathFunction = funcName[1] === 'm'; // \\mkern, \\mskip\n\n var muUnit = size.value.unit === 'mu';\n\n if (mathFunction) {\n if (!muUnit) {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" supports only mu units, \" + (\"not \" + size.value.unit + \" units\"));\n }\n\n if (parser.mode !== \"math\") {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" works only in math mode\");\n }\n } else {\n // !mathFunction\n if (muUnit) {\n parser.settings.reportNonstrict(\"mathVsTextUnits\", \"LaTeX's \" + funcName + \" doesn't support mu units\");\n }\n }\n }\n\n return {\n type: \"kern\",\n mode: parser.mode,\n dimension: size.value\n };\n },\n\n htmlBuilder(group, options) {\n return buildCommon.makeGlue(group.dimension, options);\n },\n\n mathmlBuilder(group, options) {\n var dimension = calculateSize(group.dimension, options);\n return new mathMLTree.SpaceNode(dimension);\n }\n\n});\n\n// Horizontal overlap functions\ndefineFunction({\n type: \"lap\",\n names: [\"\\\\mathllap\", \"\\\\mathrlap\", \"\\\\mathclap\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var body = args[0];\n return {\n type: \"lap\",\n mode: parser.mode,\n alignment: funcName.slice(5),\n body\n };\n },\n htmlBuilder: (group, options) => {\n // mathllap, mathrlap, mathclap\n var inner;\n\n if (group.alignment === \"clap\") {\n // ref: https://www.math.lsu.edu/~aperlis/publications/mathclap/\n inner = buildCommon.makeSpan([], [buildGroup$1(group.body, options)]); // wrap, since CSS will center a .clap > .inner > span\n\n inner = buildCommon.makeSpan([\"inner\"], [inner], options);\n } else {\n inner = buildCommon.makeSpan([\"inner\"], [buildGroup$1(group.body, options)]);\n }\n\n var fix = buildCommon.makeSpan([\"fix\"], []);\n var node = buildCommon.makeSpan([group.alignment], [inner, fix], options); // At this point, we have correctly set horizontal alignment of the\n // two items involved in the lap.\n // Next, use a strut to set the height of the HTML bounding box.\n // Otherwise, a tall argument may be misplaced.\n // This code resolved issue #1153\n\n var strut = buildCommon.makeSpan([\"strut\"]);\n strut.style.height = makeEm(node.height + node.depth);\n\n if (node.depth) {\n strut.style.verticalAlign = makeEm(-node.depth);\n }\n\n node.children.unshift(strut); // Next, prevent vertical misplacement when next to something tall.\n // This code resolves issue #1234\n\n node = buildCommon.makeSpan([\"thinbox\"], [node], options);\n return buildCommon.makeSpan([\"mord\", \"vbox\"], [node], options);\n },\n mathmlBuilder: (group, options) => {\n // mathllap, mathrlap, mathclap\n var node = new mathMLTree.MathNode(\"mpadded\", [buildGroup(group.body, options)]);\n\n if (group.alignment !== \"rlap\") {\n var offset = group.alignment === \"llap\" ? \"-1\" : \"-0.5\";\n node.setAttribute(\"lspace\", offset + \"width\");\n }\n\n node.setAttribute(\"width\", \"0px\");\n return node;\n }\n});\n\ndefineFunction({\n type: \"styling\",\n names: [\"\\\\(\", \"$\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: false\n },\n\n handler(_ref, args) {\n var {\n funcName,\n parser\n } = _ref;\n var outerMode = parser.mode;\n parser.switchMode(\"math\");\n var close = funcName === \"\\\\(\" ? \"\\\\)\" : \"$\";\n var body = parser.parseExpression(false, close);\n parser.expect(close);\n parser.switchMode(outerMode);\n return {\n type: \"styling\",\n mode: parser.mode,\n style: \"text\",\n body\n };\n }\n\n}); // Check for extra closing math delimiters\n\ndefineFunction({\n type: \"text\",\n // Doesn't matter what this is.\n names: [\"\\\\)\", \"\\\\]\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n allowedInMath: false\n },\n\n handler(context, args) {\n throw new ParseError(\"Mismatched \" + context.funcName);\n }\n\n});\n\nvar chooseMathStyle = (group, options) => {\n switch (options.style.size) {\n case Style$1.DISPLAY.size:\n return group.display;\n\n case Style$1.TEXT.size:\n return group.text;\n\n case Style$1.SCRIPT.size:\n return group.script;\n\n case Style$1.SCRIPTSCRIPT.size:\n return group.scriptscript;\n\n default:\n return group.text;\n }\n};\n\ndefineFunction({\n type: \"mathchoice\",\n names: [\"\\\\mathchoice\"],\n props: {\n numArgs: 4,\n primitive: true\n },\n handler: (_ref, args) => {\n var {\n parser\n } = _ref;\n return {\n type: \"mathchoice\",\n mode: parser.mode,\n display: ordargument(args[0]),\n text: ordargument(args[1]),\n script: ordargument(args[2]),\n scriptscript: ordargument(args[3])\n };\n },\n htmlBuilder: (group, options) => {\n var body = chooseMathStyle(group, options);\n var elements = buildExpression$1(body, options, false);\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: (group, options) => {\n var body = chooseMathStyle(group, options);\n return buildExpressionRow(body, options);\n }\n});\n\nvar assembleSupSub = (base, supGroup, subGroup, options, style, slant, baseShift) => {\n base = buildCommon.makeSpan([], [base]);\n var subIsSingleCharacter = subGroup && utils.isCharacterBox(subGroup);\n var sub;\n var sup; // We manually have to handle the superscripts and subscripts. This,\n // aside from the kern calculations, is copied from supsub.\n\n if (supGroup) {\n var elem = buildGroup$1(supGroup, options.havingStyle(style.sup()), options);\n sup = {\n elem,\n kern: Math.max(options.fontMetrics().bigOpSpacing1, options.fontMetrics().bigOpSpacing3 - elem.depth)\n };\n }\n\n if (subGroup) {\n var _elem = buildGroup$1(subGroup, options.havingStyle(style.sub()), options);\n\n sub = {\n elem: _elem,\n kern: Math.max(options.fontMetrics().bigOpSpacing2, options.fontMetrics().bigOpSpacing4 - _elem.height)\n };\n } // Build the final group as a vlist of the possible subscript, base,\n // and possible superscript.\n\n\n var finalGroup;\n\n if (sup && sub) {\n var bottom = options.fontMetrics().bigOpSpacing5 + sub.elem.height + sub.elem.depth + sub.kern + base.depth + baseShift;\n finalGroup = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: bottom,\n children: [{\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }, {\n type: \"elem\",\n elem: sub.elem,\n marginLeft: makeEm(-slant)\n }, {\n type: \"kern\",\n size: sub.kern\n }, {\n type: \"elem\",\n elem: base\n }, {\n type: \"kern\",\n size: sup.kern\n }, {\n type: \"elem\",\n elem: sup.elem,\n marginLeft: makeEm(slant)\n }, {\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }]\n }, options);\n } else if (sub) {\n var top = base.height - baseShift; // Shift the limits by the slant of the symbol. Note\n // that we are supposed to shift the limits by 1/2 of the slant,\n // but since we are centering the limits adding a full slant of\n // margin will shift by 1/2 that.\n\n finalGroup = buildCommon.makeVList({\n positionType: \"top\",\n positionData: top,\n children: [{\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }, {\n type: \"elem\",\n elem: sub.elem,\n marginLeft: makeEm(-slant)\n }, {\n type: \"kern\",\n size: sub.kern\n }, {\n type: \"elem\",\n elem: base\n }]\n }, options);\n } else if (sup) {\n var _bottom = base.depth + baseShift;\n\n finalGroup = buildCommon.makeVList({\n positionType: \"bottom\",\n positionData: _bottom,\n children: [{\n type: \"elem\",\n elem: base\n }, {\n type: \"kern\",\n size: sup.kern\n }, {\n type: \"elem\",\n elem: sup.elem,\n marginLeft: makeEm(slant)\n }, {\n type: \"kern\",\n size: options.fontMetrics().bigOpSpacing5\n }]\n }, options);\n } else {\n // This case probably shouldn't occur (this would mean the\n // supsub was sending us a group with no superscript or\n // subscript) but be safe.\n return base;\n }\n\n var parts = [finalGroup];\n\n if (sub && slant !== 0 && !subIsSingleCharacter) {\n // A negative margin-left was applied to the lower limit.\n // Avoid an overlap by placing a spacer on the left on the group.\n var spacer = buildCommon.makeSpan([\"mspace\"], [], options);\n spacer.style.marginRight = makeEm(slant);\n parts.unshift(spacer);\n }\n\n return buildCommon.makeSpan([\"mop\", \"op-limits\"], parts, options);\n};\n\n// Limits, symbols\n// Most operators have a large successor symbol, but these don't.\nvar noSuccessor = [\"\\\\smallint\"]; // NOTE: Unlike most `htmlBuilder`s, this one handles not only \"op\", but also\n// \"supsub\" since some of them (like \\int) can affect super/subscripting.\n\nvar htmlBuilder$2 = (grp, options) => {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n var supGroup;\n var subGroup;\n var hasLimits = false;\n var group;\n\n if (grp.type === \"supsub\") {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = grp.sup;\n subGroup = grp.sub;\n group = assertNodeType(grp.base, \"op\");\n hasLimits = true;\n } else {\n group = assertNodeType(grp, \"op\");\n }\n\n var style = options.style;\n var large = false;\n\n if (style.size === Style$1.DISPLAY.size && group.symbol && !utils.contains(noSuccessor, group.name)) {\n // Most symbol operators get larger in displaystyle (rule 13)\n large = true;\n }\n\n var base;\n\n if (group.symbol) {\n // If this is a symbol, create the symbol.\n var fontName = large ? \"Size2-Regular\" : \"Size1-Regular\";\n var stash = \"\";\n\n if (group.name === \"\\\\oiint\" || group.name === \"\\\\oiiint\") {\n // No font glyphs yet, so use a glyph w/o the oval.\n // TODO: When font glyphs are available, delete this code.\n stash = group.name.slice(1);\n group.name = stash === \"oiint\" ? \"\\\\iint\" : \"\\\\iiint\";\n }\n\n base = buildCommon.makeSymbol(group.name, fontName, \"math\", options, [\"mop\", \"op-symbol\", large ? \"large-op\" : \"small-op\"]);\n\n if (stash.length > 0) {\n // We're in \\oiint or \\oiiint. Overlay the oval.\n // TODO: When font glyphs are available, delete this code.\n var italic = base.italic;\n var oval = buildCommon.staticSvg(stash + \"Size\" + (large ? \"2\" : \"1\"), options);\n base = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: [{\n type: \"elem\",\n elem: base,\n shift: 0\n }, {\n type: \"elem\",\n elem: oval,\n shift: large ? 0.08 : 0\n }]\n }, options);\n group.name = \"\\\\\" + stash;\n base.classes.unshift(\"mop\"); // $FlowFixMe\n\n base.italic = italic;\n }\n } else if (group.body) {\n // If this is a list, compose that list.\n var inner = buildExpression$1(group.body, options, true);\n\n if (inner.length === 1 && inner[0] instanceof SymbolNode) {\n base = inner[0];\n base.classes[0] = \"mop\"; // replace old mclass\n } else {\n base = buildCommon.makeSpan([\"mop\"], inner, options);\n }\n } else {\n // Otherwise, this is a text operator. Build the text from the\n // operator's name.\n var output = [];\n\n for (var i = 1; i < group.name.length; i++) {\n output.push(buildCommon.mathsym(group.name[i], group.mode, options));\n }\n\n base = buildCommon.makeSpan([\"mop\"], output, options);\n } // If content of op is a single symbol, shift it vertically.\n\n\n var baseShift = 0;\n var slant = 0;\n\n if ((base instanceof SymbolNode || group.name === \"\\\\oiint\" || group.name === \"\\\\oiiint\") && !group.suppressBaseShift) {\n // We suppress the shift of the base of \\overset and \\underset. Otherwise,\n // shift the symbol so its center lies on the axis (rule 13). It\n // appears that our fonts have the centers of the symbols already\n // almost on the axis, so these numbers are very small. Note we\n // don't actually apply this here, but instead it is used either in\n // the vlist creation or separately when there are no limits.\n baseShift = (base.height - base.depth) / 2 - options.fontMetrics().axisHeight; // The slant of the symbol is just its italic correction.\n // $FlowFixMe\n\n slant = base.italic;\n }\n\n if (hasLimits) {\n return assembleSupSub(base, supGroup, subGroup, options, style, slant, baseShift);\n } else {\n if (baseShift) {\n base.style.position = \"relative\";\n base.style.top = makeEm(baseShift);\n }\n\n return base;\n }\n};\n\nvar mathmlBuilder$1 = (group, options) => {\n var node;\n\n if (group.symbol) {\n // This is a symbol. Just add the symbol.\n node = new MathNode(\"mo\", [makeText(group.name, group.mode)]);\n\n if (utils.contains(noSuccessor, group.name)) {\n node.setAttribute(\"largeop\", \"false\");\n }\n } else if (group.body) {\n // This is an operator with children. Add them.\n node = new MathNode(\"mo\", buildExpression(group.body, options));\n } else {\n // This is a text operator. Add all of the characters from the\n // operator's name.\n node = new MathNode(\"mi\", [new TextNode(group.name.slice(1))]); // Append an <mo>&ApplyFunction;</mo>.\n // ref: https://www.w3.org/TR/REC-MathML/chap3_2.html#sec3.2.4\n\n var operator = new MathNode(\"mo\", [makeText(\"\\u2061\", \"text\")]);\n\n if (group.parentIsSupSub) {\n node = new MathNode(\"mrow\", [node, operator]);\n } else {\n node = newDocumentFragment([node, operator]);\n }\n }\n\n return node;\n};\n\nvar singleCharBigOps = {\n \"\\u220F\": \"\\\\prod\",\n \"\\u2210\": \"\\\\coprod\",\n \"\\u2211\": \"\\\\sum\",\n \"\\u22c0\": \"\\\\bigwedge\",\n \"\\u22c1\": \"\\\\bigvee\",\n \"\\u22c2\": \"\\\\bigcap\",\n \"\\u22c3\": \"\\\\bigcup\",\n \"\\u2a00\": \"\\\\bigodot\",\n \"\\u2a01\": \"\\\\bigoplus\",\n \"\\u2a02\": \"\\\\bigotimes\",\n \"\\u2a04\": \"\\\\biguplus\",\n \"\\u2a06\": \"\\\\bigsqcup\"\n};\ndefineFunction({\n type: \"op\",\n names: [\"\\\\coprod\", \"\\\\bigvee\", \"\\\\bigwedge\", \"\\\\biguplus\", \"\\\\bigcap\", \"\\\\bigcup\", \"\\\\intop\", \"\\\\prod\", \"\\\\sum\", \"\\\\bigotimes\", \"\\\\bigoplus\", \"\\\\bigodot\", \"\\\\bigsqcup\", \"\\\\smallint\", \"\\u220F\", \"\\u2210\", \"\\u2211\", \"\\u22c0\", \"\\u22c1\", \"\\u22c2\", \"\\u22c3\", \"\\u2a00\", \"\\u2a01\", \"\\u2a02\", \"\\u2a04\", \"\\u2a06\"],\n props: {\n numArgs: 0\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var fName = funcName;\n\n if (fName.length === 1) {\n fName = singleCharBigOps[fName];\n }\n\n return {\n type: \"op\",\n mode: parser.mode,\n limits: true,\n parentIsSupSub: false,\n symbol: true,\n name: fName\n };\n },\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n}); // Note: calling defineFunction with a type that's already been defined only\n// works because the same htmlBuilder and mathmlBuilder are being used.\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\mathop\"],\n props: {\n numArgs: 1,\n primitive: true\n },\n handler: (_ref2, args) => {\n var {\n parser\n } = _ref2;\n var body = args[0];\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: false,\n body: ordargument(body)\n };\n },\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n}); // There are 2 flags for operators; whether they produce limits in\n// displaystyle, and whether they are symbols and should grow in\n// displaystyle. These four groups cover the four possible choices.\n\nvar singleCharIntegrals = {\n \"\\u222b\": \"\\\\int\",\n \"\\u222c\": \"\\\\iint\",\n \"\\u222d\": \"\\\\iiint\",\n \"\\u222e\": \"\\\\oint\",\n \"\\u222f\": \"\\\\oiint\",\n \"\\u2230\": \"\\\\oiiint\"\n}; // No limits, not symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\arcsin\", \"\\\\arccos\", \"\\\\arctan\", \"\\\\arctg\", \"\\\\arcctg\", \"\\\\arg\", \"\\\\ch\", \"\\\\cos\", \"\\\\cosec\", \"\\\\cosh\", \"\\\\cot\", \"\\\\cotg\", \"\\\\coth\", \"\\\\csc\", \"\\\\ctg\", \"\\\\cth\", \"\\\\deg\", \"\\\\dim\", \"\\\\exp\", \"\\\\hom\", \"\\\\ker\", \"\\\\lg\", \"\\\\ln\", \"\\\\log\", \"\\\\sec\", \"\\\\sin\", \"\\\\sinh\", \"\\\\sh\", \"\\\\tan\", \"\\\\tanh\", \"\\\\tg\", \"\\\\th\"],\n props: {\n numArgs: 0\n },\n\n handler(_ref3) {\n var {\n parser,\n funcName\n } = _ref3;\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: false,\n name: funcName\n };\n },\n\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n}); // Limits, not symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\det\", \"\\\\gcd\", \"\\\\inf\", \"\\\\lim\", \"\\\\max\", \"\\\\min\", \"\\\\Pr\", \"\\\\sup\"],\n props: {\n numArgs: 0\n },\n\n handler(_ref4) {\n var {\n parser,\n funcName\n } = _ref4;\n return {\n type: \"op\",\n mode: parser.mode,\n limits: true,\n parentIsSupSub: false,\n symbol: false,\n name: funcName\n };\n },\n\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n}); // No limits, symbols\n\ndefineFunction({\n type: \"op\",\n names: [\"\\\\int\", \"\\\\iint\", \"\\\\iiint\", \"\\\\oint\", \"\\\\oiint\", \"\\\\oiiint\", \"\\u222b\", \"\\u222c\", \"\\u222d\", \"\\u222e\", \"\\u222f\", \"\\u2230\"],\n props: {\n numArgs: 0\n },\n\n handler(_ref5) {\n var {\n parser,\n funcName\n } = _ref5;\n var fName = funcName;\n\n if (fName.length === 1) {\n fName = singleCharIntegrals[fName];\n }\n\n return {\n type: \"op\",\n mode: parser.mode,\n limits: false,\n parentIsSupSub: false,\n symbol: true,\n name: fName\n };\n },\n\n htmlBuilder: htmlBuilder$2,\n mathmlBuilder: mathmlBuilder$1\n});\n\n// NOTE: Unlike most `htmlBuilder`s, this one handles not only\n// \"operatorname\", but also \"supsub\" since \\operatorname* can\n// affect super/subscripting.\nvar htmlBuilder$1 = (grp, options) => {\n // Operators are handled in the TeXbook pg. 443-444, rule 13(a).\n var supGroup;\n var subGroup;\n var hasLimits = false;\n var group;\n\n if (grp.type === \"supsub\") {\n // If we have limits, supsub will pass us its group to handle. Pull\n // out the superscript and subscript and set the group to the op in\n // its base.\n supGroup = grp.sup;\n subGroup = grp.sub;\n group = assertNodeType(grp.base, \"operatorname\");\n hasLimits = true;\n } else {\n group = assertNodeType(grp, \"operatorname\");\n }\n\n var base;\n\n if (group.body.length > 0) {\n var body = group.body.map(child => {\n // $FlowFixMe: Check if the node has a string `text` property.\n var childText = child.text;\n\n if (typeof childText === \"string\") {\n return {\n type: \"textord\",\n mode: child.mode,\n text: childText\n };\n } else {\n return child;\n }\n }); // Consolidate function names into symbol characters.\n\n var expression = buildExpression$1(body, options.withFont(\"mathrm\"), true);\n\n for (var i = 0; i < expression.length; i++) {\n var child = expression[i];\n\n if (child instanceof SymbolNode) {\n // Per amsopn package,\n // change minus to hyphen and \\ast to asterisk\n child.text = child.text.replace(/\\u2212/, \"-\").replace(/\\u2217/, \"*\");\n }\n }\n\n base = buildCommon.makeSpan([\"mop\"], expression, options);\n } else {\n base = buildCommon.makeSpan([\"mop\"], [], options);\n }\n\n if (hasLimits) {\n return assembleSupSub(base, supGroup, subGroup, options, options.style, 0, 0);\n } else {\n return base;\n }\n};\n\nvar mathmlBuilder = (group, options) => {\n // The steps taken here are similar to the html version.\n var expression = buildExpression(group.body, options.withFont(\"mathrm\")); // Is expression a string or has it something like a fraction?\n\n var isAllString = true; // default\n\n for (var i = 0; i < expression.length; i++) {\n var node = expression[i];\n\n if (node instanceof mathMLTree.SpaceNode) ; else if (node instanceof mathMLTree.MathNode) {\n switch (node.type) {\n case \"mi\":\n case \"mn\":\n case \"ms\":\n case \"mspace\":\n case \"mtext\":\n break;\n // Do nothing yet.\n\n case \"mo\":\n {\n var child = node.children[0];\n\n if (node.children.length === 1 && child instanceof mathMLTree.TextNode) {\n child.text = child.text.replace(/\\u2212/, \"-\").replace(/\\u2217/, \"*\");\n } else {\n isAllString = false;\n }\n\n break;\n }\n\n default:\n isAllString = false;\n }\n } else {\n isAllString = false;\n }\n }\n\n if (isAllString) {\n // Write a single TextNode instead of multiple nested tags.\n var word = expression.map(node => node.toText()).join(\"\");\n expression = [new mathMLTree.TextNode(word)];\n }\n\n var identifier = new mathMLTree.MathNode(\"mi\", expression);\n identifier.setAttribute(\"mathvariant\", \"normal\"); // \\u2061 is the same as &ApplyFunction;\n // ref: https://www.w3schools.com/charsets/ref_html_entities_a.asp\n\n var operator = new mathMLTree.MathNode(\"mo\", [makeText(\"\\u2061\", \"text\")]);\n\n if (group.parentIsSupSub) {\n return new mathMLTree.MathNode(\"mrow\", [identifier, operator]);\n } else {\n return mathMLTree.newDocumentFragment([identifier, operator]);\n }\n}; // \\operatorname\n// amsopn.dtx: \\mathop{#1\\kern\\z@\\operator@font#3}\\newmcodes@\n\n\ndefineFunction({\n type: \"operatorname\",\n names: [\"\\\\operatorname@\", \"\\\\operatornamewithlimits\"],\n props: {\n numArgs: 1\n },\n handler: (_ref, args) => {\n var {\n parser,\n funcName\n } = _ref;\n var body = args[0];\n return {\n type: \"operatorname\",\n mode: parser.mode,\n body: ordargument(body),\n alwaysHandleSupSub: funcName === \"\\\\operatornamewithlimits\",\n limits: false,\n parentIsSupSub: false\n };\n },\n htmlBuilder: htmlBuilder$1,\n mathmlBuilder\n});\ndefineMacro(\"\\\\operatorname\", \"\\\\@ifstar\\\\operatornamewithlimits\\\\operatorname@\");\n\ndefineFunctionBuilders({\n type: \"ordgroup\",\n\n htmlBuilder(group, options) {\n if (group.semisimple) {\n return buildCommon.makeFragment(buildExpression$1(group.body, options, false));\n }\n\n return buildCommon.makeSpan([\"mord\"], buildExpression$1(group.body, options, true), options);\n },\n\n mathmlBuilder(group, options) {\n return buildExpressionRow(group.body, options, true);\n }\n\n});\n\ndefineFunction({\n type: \"overline\",\n names: [\"\\\\overline\"],\n props: {\n numArgs: 1\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n var body = args[0];\n return {\n type: \"overline\",\n mode: parser.mode,\n body\n };\n },\n\n htmlBuilder(group, options) {\n // Overlines are handled in the TeXbook pg 443, Rule 9.\n // Build the inner group in the cramped style.\n var innerGroup = buildGroup$1(group.body, options.havingCrampedStyle()); // Create the line above the body\n\n var line = buildCommon.makeLineSpan(\"overline-line\", options); // Generate the vlist, with the appropriate kerns\n\n var defaultRuleThickness = options.fontMetrics().defaultRuleThickness;\n var vlist = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: innerGroup\n }, {\n type: \"kern\",\n size: 3 * defaultRuleThickness\n }, {\n type: \"elem\",\n elem: line\n }, {\n type: \"kern\",\n size: defaultRuleThickness\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"overline\"], [vlist], options);\n },\n\n mathmlBuilder(group, options) {\n var operator = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n var node = new mathMLTree.MathNode(\"mover\", [buildGroup(group.body, options), operator]);\n node.setAttribute(\"accent\", \"true\");\n return node;\n }\n\n});\n\ndefineFunction({\n type: \"phantom\",\n names: [\"\\\\phantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n parser\n } = _ref;\n var body = args[0];\n return {\n type: \"phantom\",\n mode: parser.mode,\n body: ordargument(body)\n };\n },\n htmlBuilder: (group, options) => {\n var elements = buildExpression$1(group.body, options.withPhantom(), false); // \\phantom isn't supposed to affect the elements it contains.\n // See \"color\" for more details.\n\n return buildCommon.makeFragment(elements);\n },\n mathmlBuilder: (group, options) => {\n var inner = buildExpression(group.body, options);\n return new mathMLTree.MathNode(\"mphantom\", inner);\n }\n});\ndefineFunction({\n type: \"hphantom\",\n names: [\"\\\\hphantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref2, args) => {\n var {\n parser\n } = _ref2;\n var body = args[0];\n return {\n type: \"hphantom\",\n mode: parser.mode,\n body\n };\n },\n htmlBuilder: (group, options) => {\n var node = buildCommon.makeSpan([], [buildGroup$1(group.body, options.withPhantom())]);\n node.height = 0;\n node.depth = 0;\n\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].height = 0;\n node.children[i].depth = 0;\n }\n } // See smash for comment re: use of makeVList\n\n\n node = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: node\n }]\n }, options); // For spacing, TeX treats \\smash as a math group (same spacing as ord).\n\n return buildCommon.makeSpan([\"mord\"], [node], options);\n },\n mathmlBuilder: (group, options) => {\n var inner = buildExpression(ordargument(group.body), options);\n var phantom = new mathMLTree.MathNode(\"mphantom\", inner);\n var node = new mathMLTree.MathNode(\"mpadded\", [phantom]);\n node.setAttribute(\"height\", \"0px\");\n node.setAttribute(\"depth\", \"0px\");\n return node;\n }\n});\ndefineFunction({\n type: \"vphantom\",\n names: [\"\\\\vphantom\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n handler: (_ref3, args) => {\n var {\n parser\n } = _ref3;\n var body = args[0];\n return {\n type: \"vphantom\",\n mode: parser.mode,\n body\n };\n },\n htmlBuilder: (group, options) => {\n var inner = buildCommon.makeSpan([\"inner\"], [buildGroup$1(group.body, options.withPhantom())]);\n var fix = buildCommon.makeSpan([\"fix\"], []);\n return buildCommon.makeSpan([\"mord\", \"rlap\"], [inner, fix], options);\n },\n mathmlBuilder: (group, options) => {\n var inner = buildExpression(ordargument(group.body), options);\n var phantom = new mathMLTree.MathNode(\"mphantom\", inner);\n var node = new mathMLTree.MathNode(\"mpadded\", [phantom]);\n node.setAttribute(\"width\", \"0px\");\n return node;\n }\n});\n\ndefineFunction({\n type: \"raisebox\",\n names: [\"\\\\raisebox\"],\n props: {\n numArgs: 2,\n argTypes: [\"size\", \"hbox\"],\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n var amount = assertNodeType(args[0], \"size\").value;\n var body = args[1];\n return {\n type: \"raisebox\",\n mode: parser.mode,\n dy: amount,\n body\n };\n },\n\n htmlBuilder(group, options) {\n var body = buildGroup$1(group.body, options);\n var dy = calculateSize(group.dy, options);\n return buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -dy,\n children: [{\n type: \"elem\",\n elem: body\n }]\n }, options);\n },\n\n mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mpadded\", [buildGroup(group.body, options)]);\n var dy = group.dy.number + group.dy.unit;\n node.setAttribute(\"voffset\", dy);\n return node;\n }\n\n});\n\ndefineFunction({\n type: \"internal\",\n names: [\"\\\\relax\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n\n handler(_ref) {\n var {\n parser\n } = _ref;\n return {\n type: \"internal\",\n mode: parser.mode\n };\n }\n\n});\n\ndefineFunction({\n type: \"rule\",\n names: [\"\\\\rule\"],\n props: {\n numArgs: 2,\n numOptionalArgs: 1,\n argTypes: [\"size\", \"size\", \"size\"]\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser\n } = _ref;\n var shift = optArgs[0];\n var width = assertNodeType(args[0], \"size\");\n var height = assertNodeType(args[1], \"size\");\n return {\n type: \"rule\",\n mode: parser.mode,\n shift: shift && assertNodeType(shift, \"size\").value,\n width: width.value,\n height: height.value\n };\n },\n\n htmlBuilder(group, options) {\n // Make an empty span for the rule\n var rule = buildCommon.makeSpan([\"mord\", \"rule\"], [], options); // Calculate the shift, width, and height of the rule, and account for units\n\n var width = calculateSize(group.width, options);\n var height = calculateSize(group.height, options);\n var shift = group.shift ? calculateSize(group.shift, options) : 0; // Style the rule to the right size\n\n rule.style.borderRightWidth = makeEm(width);\n rule.style.borderTopWidth = makeEm(height);\n rule.style.bottom = makeEm(shift); // Record the height and width\n\n rule.width = width;\n rule.height = height + shift;\n rule.depth = -shift; // Font size is the number large enough that the browser will\n // reserve at least `absHeight` space above the baseline.\n // The 1.125 factor was empirically determined\n\n rule.maxFontSize = height * 1.125 * options.sizeMultiplier;\n return rule;\n },\n\n mathmlBuilder(group, options) {\n var width = calculateSize(group.width, options);\n var height = calculateSize(group.height, options);\n var shift = group.shift ? calculateSize(group.shift, options) : 0;\n var color = options.color && options.getColor() || \"black\";\n var rule = new mathMLTree.MathNode(\"mspace\");\n rule.setAttribute(\"mathbackground\", color);\n rule.setAttribute(\"width\", makeEm(width));\n rule.setAttribute(\"height\", makeEm(height));\n var wrapper = new mathMLTree.MathNode(\"mpadded\", [rule]);\n\n if (shift >= 0) {\n wrapper.setAttribute(\"height\", makeEm(shift));\n } else {\n wrapper.setAttribute(\"height\", makeEm(shift));\n wrapper.setAttribute(\"depth\", makeEm(-shift));\n }\n\n wrapper.setAttribute(\"voffset\", makeEm(shift));\n return wrapper;\n }\n\n});\n\nfunction sizingGroup(value, options, baseOptions) {\n var inner = buildExpression$1(value, options, false);\n var multiplier = options.sizeMultiplier / baseOptions.sizeMultiplier; // Add size-resetting classes to the inner list and set maxFontSize\n // manually. Handle nested size changes.\n\n for (var i = 0; i < inner.length; i++) {\n var pos = inner[i].classes.indexOf(\"sizing\");\n\n if (pos < 0) {\n Array.prototype.push.apply(inner[i].classes, options.sizingClasses(baseOptions));\n } else if (inner[i].classes[pos + 1] === \"reset-size\" + options.size) {\n // This is a nested size change: e.g., inner[i] is the \"b\" in\n // `\\Huge a \\small b`. Override the old size (the `reset-` class)\n // but not the new size.\n inner[i].classes[pos + 1] = \"reset-size\" + baseOptions.size;\n }\n\n inner[i].height *= multiplier;\n inner[i].depth *= multiplier;\n }\n\n return buildCommon.makeFragment(inner);\n}\nvar sizeFuncs = [\"\\\\tiny\", \"\\\\sixptsize\", \"\\\\scriptsize\", \"\\\\footnotesize\", \"\\\\small\", \"\\\\normalsize\", \"\\\\large\", \"\\\\Large\", \"\\\\LARGE\", \"\\\\huge\", \"\\\\Huge\"];\nvar htmlBuilder = (group, options) => {\n // Handle sizing operators like \\Huge. Real TeX doesn't actually allow\n // these functions inside of math expressions, so we do some special\n // handling.\n var newOptions = options.havingSize(group.size);\n return sizingGroup(group.body, newOptions, options);\n};\ndefineFunction({\n type: \"sizing\",\n names: sizeFuncs,\n props: {\n numArgs: 0,\n allowedInText: true\n },\n handler: (_ref, args) => {\n var {\n breakOnTokenText,\n funcName,\n parser\n } = _ref;\n var body = parser.parseExpression(false, breakOnTokenText);\n return {\n type: \"sizing\",\n mode: parser.mode,\n // Figure out what size to use based on the list of functions above\n size: sizeFuncs.indexOf(funcName) + 1,\n body\n };\n },\n htmlBuilder,\n mathmlBuilder: (group, options) => {\n var newOptions = options.havingSize(group.size);\n var inner = buildExpression(group.body, newOptions);\n var node = new mathMLTree.MathNode(\"mstyle\", inner); // TODO(emily): This doesn't produce the correct size for nested size\n // changes, because we don't keep state of what style we're currently\n // in, so we can't reset the size to normal before changing it. Now\n // that we're passing an options parameter we should be able to fix\n // this.\n\n node.setAttribute(\"mathsize\", makeEm(newOptions.sizeMultiplier));\n return node;\n }\n});\n\n// smash, with optional [tb], as in AMS\ndefineFunction({\n type: \"smash\",\n names: [\"\\\\smash\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1,\n allowedInText: true\n },\n handler: (_ref, args, optArgs) => {\n var {\n parser\n } = _ref;\n var smashHeight = false;\n var smashDepth = false;\n var tbArg = optArgs[0] && assertNodeType(optArgs[0], \"ordgroup\");\n\n if (tbArg) {\n // Optional [tb] argument is engaged.\n // ref: amsmath: \\renewcommand{\\smash}[1][tb]{%\n // def\\mb@t{\\ht}\\def\\mb@b{\\dp}\\def\\mb@tb{\\ht\\z@\\z@\\dp}%\n var letter = \"\";\n\n for (var i = 0; i < tbArg.body.length; ++i) {\n var node = tbArg.body[i]; // $FlowFixMe: Not every node type has a `text` property.\n\n letter = node.text;\n\n if (letter === \"t\") {\n smashHeight = true;\n } else if (letter === \"b\") {\n smashDepth = true;\n } else {\n smashHeight = false;\n smashDepth = false;\n break;\n }\n }\n } else {\n smashHeight = true;\n smashDepth = true;\n }\n\n var body = args[0];\n return {\n type: \"smash\",\n mode: parser.mode,\n body,\n smashHeight,\n smashDepth\n };\n },\n htmlBuilder: (group, options) => {\n var node = buildCommon.makeSpan([], [buildGroup$1(group.body, options)]);\n\n if (!group.smashHeight && !group.smashDepth) {\n return node;\n }\n\n if (group.smashHeight) {\n node.height = 0; // In order to influence makeVList, we have to reset the children.\n\n if (node.children) {\n for (var i = 0; i < node.children.length; i++) {\n node.children[i].height = 0;\n }\n }\n }\n\n if (group.smashDepth) {\n node.depth = 0;\n\n if (node.children) {\n for (var _i = 0; _i < node.children.length; _i++) {\n node.children[_i].depth = 0;\n }\n }\n } // At this point, we've reset the TeX-like height and depth values.\n // But the span still has an HTML line height.\n // makeVList applies \"display: table-cell\", which prevents the browser\n // from acting on that line height. So we'll call makeVList now.\n\n\n var smashedNode = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: node\n }]\n }, options); // For spacing, TeX treats \\hphantom as a math group (same spacing as ord).\n\n return buildCommon.makeSpan([\"mord\"], [smashedNode], options);\n },\n mathmlBuilder: (group, options) => {\n var node = new mathMLTree.MathNode(\"mpadded\", [buildGroup(group.body, options)]);\n\n if (group.smashHeight) {\n node.setAttribute(\"height\", \"0px\");\n }\n\n if (group.smashDepth) {\n node.setAttribute(\"depth\", \"0px\");\n }\n\n return node;\n }\n});\n\ndefineFunction({\n type: \"sqrt\",\n names: [\"\\\\sqrt\"],\n props: {\n numArgs: 1,\n numOptionalArgs: 1\n },\n\n handler(_ref, args, optArgs) {\n var {\n parser\n } = _ref;\n var index = optArgs[0];\n var body = args[0];\n return {\n type: \"sqrt\",\n mode: parser.mode,\n body,\n index\n };\n },\n\n htmlBuilder(group, options) {\n // Square roots are handled in the TeXbook pg. 443, Rule 11.\n // First, we do the same steps as in overline to build the inner group\n // and line\n var inner = buildGroup$1(group.body, options.havingCrampedStyle());\n\n if (inner.height === 0) {\n // Render a small surd.\n inner.height = options.fontMetrics().xHeight;\n } // Some groups can return document fragments. Handle those by wrapping\n // them in a span.\n\n\n inner = buildCommon.wrapFragment(inner, options); // Calculate the minimum size for the \\surd delimiter\n\n var metrics = options.fontMetrics();\n var theta = metrics.defaultRuleThickness;\n var phi = theta;\n\n if (options.style.id < Style$1.TEXT.id) {\n phi = options.fontMetrics().xHeight;\n } // Calculate the clearance between the body and line\n\n\n var lineClearance = theta + phi / 4;\n var minDelimiterHeight = inner.height + inner.depth + lineClearance + theta; // Create a sqrt SVG of the required minimum size\n\n var {\n span: img,\n ruleWidth,\n advanceWidth\n } = delimiter.sqrtImage(minDelimiterHeight, options);\n var delimDepth = img.height - ruleWidth; // Adjust the clearance based on the delimiter size\n\n if (delimDepth > inner.height + inner.depth + lineClearance) {\n lineClearance = (lineClearance + delimDepth - inner.height - inner.depth) / 2;\n } // Shift the sqrt image\n\n\n var imgShift = img.height - inner.height - lineClearance - ruleWidth;\n inner.style.paddingLeft = makeEm(advanceWidth); // Overlay the image and the argument.\n\n var body = buildCommon.makeVList({\n positionType: \"firstBaseline\",\n children: [{\n type: \"elem\",\n elem: inner,\n wrapperClasses: [\"svg-align\"]\n }, {\n type: \"kern\",\n size: -(inner.height + imgShift)\n }, {\n type: \"elem\",\n elem: img\n }, {\n type: \"kern\",\n size: ruleWidth\n }]\n }, options);\n\n if (!group.index) {\n return buildCommon.makeSpan([\"mord\", \"sqrt\"], [body], options);\n } else {\n // Handle the optional root index\n // The index is always in scriptscript style\n var newOptions = options.havingStyle(Style$1.SCRIPTSCRIPT);\n var rootm = buildGroup$1(group.index, newOptions, options); // The amount the index is shifted by. This is taken from the TeX\n // source, in the definition of `\\r@@t`.\n\n var toShift = 0.6 * (body.height - body.depth); // Build a VList with the superscript shifted up correctly\n\n var rootVList = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -toShift,\n children: [{\n type: \"elem\",\n elem: rootm\n }]\n }, options); // Add a class surrounding it so we can add on the appropriate\n // kerning\n\n var rootVListWrap = buildCommon.makeSpan([\"root\"], [rootVList]);\n return buildCommon.makeSpan([\"mord\", \"sqrt\"], [rootVListWrap, body], options);\n }\n },\n\n mathmlBuilder(group, options) {\n var {\n body,\n index\n } = group;\n return index ? new mathMLTree.MathNode(\"mroot\", [buildGroup(body, options), buildGroup(index, options)]) : new mathMLTree.MathNode(\"msqrt\", [buildGroup(body, options)]);\n }\n\n});\n\nvar styleMap = {\n \"display\": Style$1.DISPLAY,\n \"text\": Style$1.TEXT,\n \"script\": Style$1.SCRIPT,\n \"scriptscript\": Style$1.SCRIPTSCRIPT\n};\ndefineFunction({\n type: \"styling\",\n names: [\"\\\\displaystyle\", \"\\\\textstyle\", \"\\\\scriptstyle\", \"\\\\scriptscriptstyle\"],\n props: {\n numArgs: 0,\n allowedInText: true,\n primitive: true\n },\n\n handler(_ref, args) {\n var {\n breakOnTokenText,\n funcName,\n parser\n } = _ref;\n // parse out the implicit body\n var body = parser.parseExpression(true, breakOnTokenText); // TODO: Refactor to avoid duplicating styleMap in multiple places (e.g.\n // here and in buildHTML and de-dupe the enumeration of all the styles).\n // $FlowFixMe: The names above exactly match the styles.\n\n var style = funcName.slice(1, funcName.length - 5);\n return {\n type: \"styling\",\n mode: parser.mode,\n // Figure out what style to use by pulling out the style from\n // the function name\n style,\n body\n };\n },\n\n htmlBuilder(group, options) {\n // Style changes are handled in the TeXbook on pg. 442, Rule 3.\n var newStyle = styleMap[group.style];\n var newOptions = options.havingStyle(newStyle).withFont('');\n return sizingGroup(group.body, newOptions, options);\n },\n\n mathmlBuilder(group, options) {\n // Figure out what style we're changing to.\n var newStyle = styleMap[group.style];\n var newOptions = options.havingStyle(newStyle);\n var inner = buildExpression(group.body, newOptions);\n var node = new mathMLTree.MathNode(\"mstyle\", inner);\n var styleAttributes = {\n \"display\": [\"0\", \"true\"],\n \"text\": [\"0\", \"false\"],\n \"script\": [\"1\", \"false\"],\n \"scriptscript\": [\"2\", \"false\"]\n };\n var attr = styleAttributes[group.style];\n node.setAttribute(\"scriptlevel\", attr[0]);\n node.setAttribute(\"displaystyle\", attr[1]);\n return node;\n }\n\n});\n\n/**\n * Sometimes, groups perform special rules when they have superscripts or\n * subscripts attached to them. This function lets the `supsub` group know that\n * Sometimes, groups perform special rules when they have superscripts or\n * its inner element should handle the superscripts and subscripts instead of\n * handling them itself.\n */\nvar htmlBuilderDelegate = function htmlBuilderDelegate(group, options) {\n var base = group.base;\n\n if (!base) {\n return null;\n } else if (base.type === \"op\") {\n // Operators handle supsubs differently when they have limits\n // (e.g. `\\displaystyle\\sum_2^3`)\n var delegate = base.limits && (options.style.size === Style$1.DISPLAY.size || base.alwaysHandleSupSub);\n return delegate ? htmlBuilder$2 : null;\n } else if (base.type === \"operatorname\") {\n var _delegate = base.alwaysHandleSupSub && (options.style.size === Style$1.DISPLAY.size || base.limits);\n\n return _delegate ? htmlBuilder$1 : null;\n } else if (base.type === \"accent\") {\n return utils.isCharacterBox(base.base) ? htmlBuilder$a : null;\n } else if (base.type === \"horizBrace\") {\n var isSup = !group.sub;\n return isSup === base.isOver ? htmlBuilder$3 : null;\n } else {\n return null;\n }\n}; // Super scripts and subscripts, whose precise placement can depend on other\n// functions that precede them.\n\n\ndefineFunctionBuilders({\n type: \"supsub\",\n\n htmlBuilder(group, options) {\n // Superscript and subscripts are handled in the TeXbook on page\n // 445-446, rules 18(a-f).\n // Here is where we defer to the inner group if it should handle\n // superscripts and subscripts itself.\n var builderDelegate = htmlBuilderDelegate(group, options);\n\n if (builderDelegate) {\n return builderDelegate(group, options);\n }\n\n var {\n base: valueBase,\n sup: valueSup,\n sub: valueSub\n } = group;\n var base = buildGroup$1(valueBase, options);\n var supm;\n var subm;\n var metrics = options.fontMetrics(); // Rule 18a\n\n var supShift = 0;\n var subShift = 0;\n var isCharacterBox = valueBase && utils.isCharacterBox(valueBase);\n\n if (valueSup) {\n var newOptions = options.havingStyle(options.style.sup());\n supm = buildGroup$1(valueSup, newOptions, options);\n\n if (!isCharacterBox) {\n supShift = base.height - newOptions.fontMetrics().supDrop * newOptions.sizeMultiplier / options.sizeMultiplier;\n }\n }\n\n if (valueSub) {\n var _newOptions = options.havingStyle(options.style.sub());\n\n subm = buildGroup$1(valueSub, _newOptions, options);\n\n if (!isCharacterBox) {\n subShift = base.depth + _newOptions.fontMetrics().subDrop * _newOptions.sizeMultiplier / options.sizeMultiplier;\n }\n } // Rule 18c\n\n\n var minSupShift;\n\n if (options.style === Style$1.DISPLAY) {\n minSupShift = metrics.sup1;\n } else if (options.style.cramped) {\n minSupShift = metrics.sup3;\n } else {\n minSupShift = metrics.sup2;\n } // scriptspace is a font-size-independent size, so scale it\n // appropriately for use as the marginRight.\n\n\n var multiplier = options.sizeMultiplier;\n var marginRight = makeEm(0.5 / metrics.ptPerEm / multiplier);\n var marginLeft = null;\n\n if (subm) {\n // Subscripts shouldn't be shifted by the base's italic correction.\n // Account for that by shifting the subscript back the appropriate\n // amount. Note we only do this when the base is a single symbol.\n var isOiint = group.base && group.base.type === \"op\" && group.base.name && (group.base.name === \"\\\\oiint\" || group.base.name === \"\\\\oiiint\");\n\n if (base instanceof SymbolNode || isOiint) {\n // $FlowFixMe\n marginLeft = makeEm(-base.italic);\n }\n }\n\n var supsub;\n\n if (supm && subm) {\n supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n subShift = Math.max(subShift, metrics.sub2);\n var ruleWidth = metrics.defaultRuleThickness; // Rule 18e\n\n var maxWidth = 4 * ruleWidth;\n\n if (supShift - supm.depth - (subm.height - subShift) < maxWidth) {\n subShift = maxWidth - (supShift - supm.depth) + subm.height;\n var psi = 0.8 * metrics.xHeight - (supShift - supm.depth);\n\n if (psi > 0) {\n supShift += psi;\n subShift -= psi;\n }\n }\n\n var vlistElem = [{\n type: \"elem\",\n elem: subm,\n shift: subShift,\n marginRight,\n marginLeft\n }, {\n type: \"elem\",\n elem: supm,\n shift: -supShift,\n marginRight\n }];\n supsub = buildCommon.makeVList({\n positionType: \"individualShift\",\n children: vlistElem\n }, options);\n } else if (subm) {\n // Rule 18b\n subShift = Math.max(subShift, metrics.sub1, subm.height - 0.8 * metrics.xHeight);\n var _vlistElem = [{\n type: \"elem\",\n elem: subm,\n marginLeft,\n marginRight\n }];\n supsub = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: subShift,\n children: _vlistElem\n }, options);\n } else if (supm) {\n // Rule 18c, d\n supShift = Math.max(supShift, minSupShift, supm.depth + 0.25 * metrics.xHeight);\n supsub = buildCommon.makeVList({\n positionType: \"shift\",\n positionData: -supShift,\n children: [{\n type: \"elem\",\n elem: supm,\n marginRight\n }]\n }, options);\n } else {\n throw new Error(\"supsub must have either sup or sub.\");\n } // Wrap the supsub vlist in a span.msupsub to reset text-align.\n\n\n var mclass = getTypeOfDomTree(base, \"right\") || \"mord\";\n return buildCommon.makeSpan([mclass], [base, buildCommon.makeSpan([\"msupsub\"], [supsub])], options);\n },\n\n mathmlBuilder(group, options) {\n // Is the inner group a relevant horizonal brace?\n var isBrace = false;\n var isOver;\n var isSup;\n\n if (group.base && group.base.type === \"horizBrace\") {\n isSup = !!group.sup;\n\n if (isSup === group.base.isOver) {\n isBrace = true;\n isOver = group.base.isOver;\n }\n }\n\n if (group.base && (group.base.type === \"op\" || group.base.type === \"operatorname\")) {\n group.base.parentIsSupSub = true;\n }\n\n var children = [buildGroup(group.base, options)];\n\n if (group.sub) {\n children.push(buildGroup(group.sub, options));\n }\n\n if (group.sup) {\n children.push(buildGroup(group.sup, options));\n }\n\n var nodeType;\n\n if (isBrace) {\n nodeType = isOver ? \"mover\" : \"munder\";\n } else if (!group.sub) {\n var base = group.base;\n\n if (base && base.type === \"op\" && base.limits && (options.style === Style$1.DISPLAY || base.alwaysHandleSupSub)) {\n nodeType = \"mover\";\n } else if (base && base.type === \"operatorname\" && base.alwaysHandleSupSub && (base.limits || options.style === Style$1.DISPLAY)) {\n nodeType = \"mover\";\n } else {\n nodeType = \"msup\";\n }\n } else if (!group.sup) {\n var _base = group.base;\n\n if (_base && _base.type === \"op\" && _base.limits && (options.style === Style$1.DISPLAY || _base.alwaysHandleSupSub)) {\n nodeType = \"munder\";\n } else if (_base && _base.type === \"operatorname\" && _base.alwaysHandleSupSub && (_base.limits || options.style === Style$1.DISPLAY)) {\n nodeType = \"munder\";\n } else {\n nodeType = \"msub\";\n }\n } else {\n var _base2 = group.base;\n\n if (_base2 && _base2.type === \"op\" && _base2.limits && options.style === Style$1.DISPLAY) {\n nodeType = \"munderover\";\n } else if (_base2 && _base2.type === \"operatorname\" && _base2.alwaysHandleSupSub && (options.style === Style$1.DISPLAY || _base2.limits)) {\n nodeType = \"munderover\";\n } else {\n nodeType = \"msubsup\";\n }\n }\n\n return new mathMLTree.MathNode(nodeType, children);\n }\n\n});\n\ndefineFunctionBuilders({\n type: \"atom\",\n\n htmlBuilder(group, options) {\n return buildCommon.mathsym(group.text, group.mode, options, [\"m\" + group.family]);\n },\n\n mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mo\", [makeText(group.text, group.mode)]);\n\n if (group.family === \"bin\") {\n var variant = getVariant(group, options);\n\n if (variant === \"bold-italic\") {\n node.setAttribute(\"mathvariant\", variant);\n }\n } else if (group.family === \"punct\") {\n node.setAttribute(\"separator\", \"true\");\n } else if (group.family === \"open\" || group.family === \"close\") {\n // Delims built here should not stretch vertically.\n // See delimsizing.js for stretchy delims.\n node.setAttribute(\"stretchy\", \"false\");\n }\n\n return node;\n }\n\n});\n\n// \"mathord\" and \"textord\" ParseNodes created in Parser.js from symbol Groups in\n// src/symbols.js.\nvar defaultVariant = {\n \"mi\": \"italic\",\n \"mn\": \"normal\",\n \"mtext\": \"normal\"\n};\ndefineFunctionBuilders({\n type: \"mathord\",\n\n htmlBuilder(group, options) {\n return buildCommon.makeOrd(group, options, \"mathord\");\n },\n\n mathmlBuilder(group, options) {\n var node = new mathMLTree.MathNode(\"mi\", [makeText(group.text, group.mode, options)]);\n var variant = getVariant(group, options) || \"italic\";\n\n if (variant !== defaultVariant[node.type]) {\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n }\n\n});\ndefineFunctionBuilders({\n type: \"textord\",\n\n htmlBuilder(group, options) {\n return buildCommon.makeOrd(group, options, \"textord\");\n },\n\n mathmlBuilder(group, options) {\n var text = makeText(group.text, group.mode, options);\n var variant = getVariant(group, options) || \"normal\";\n var node;\n\n if (group.mode === 'text') {\n node = new mathMLTree.MathNode(\"mtext\", [text]);\n } else if (/[0-9]/.test(group.text)) {\n node = new mathMLTree.MathNode(\"mn\", [text]);\n } else if (group.text === \"\\\\prime\") {\n node = new mathMLTree.MathNode(\"mo\", [text]);\n } else {\n node = new mathMLTree.MathNode(\"mi\", [text]);\n }\n\n if (variant !== defaultVariant[node.type]) {\n node.setAttribute(\"mathvariant\", variant);\n }\n\n return node;\n }\n\n});\n\nvar cssSpace = {\n \"\\\\nobreak\": \"nobreak\",\n \"\\\\allowbreak\": \"allowbreak\"\n}; // A lookup table to determine whether a spacing function/symbol should be\n// treated like a regular space character. If a symbol or command is a key\n// in this table, then it should be a regular space character. Furthermore,\n// the associated value may have a `className` specifying an extra CSS class\n// to add to the created `span`.\n\nvar regularSpace = {\n \" \": {},\n \"\\\\ \": {},\n \"~\": {\n className: \"nobreak\"\n },\n \"\\\\space\": {},\n \"\\\\nobreakspace\": {\n className: \"nobreak\"\n }\n}; // ParseNode<\"spacing\"> created in Parser.js from the \"spacing\" symbol Groups in\n// src/symbols.js.\n\ndefineFunctionBuilders({\n type: \"spacing\",\n\n htmlBuilder(group, options) {\n if (regularSpace.hasOwnProperty(group.text)) {\n var className = regularSpace[group.text].className || \"\"; // Spaces are generated by adding an actual space. Each of these\n // things has an entry in the symbols table, so these will be turned\n // into appropriate outputs.\n\n if (group.mode === \"text\") {\n var ord = buildCommon.makeOrd(group, options, \"textord\");\n ord.classes.push(className);\n return ord;\n } else {\n return buildCommon.makeSpan([\"mspace\", className], [buildCommon.mathsym(group.text, group.mode, options)], options);\n }\n } else if (cssSpace.hasOwnProperty(group.text)) {\n // Spaces based on just a CSS class.\n return buildCommon.makeSpan([\"mspace\", cssSpace[group.text]], [], options);\n } else {\n throw new ParseError(\"Unknown type of space \\\"\" + group.text + \"\\\"\");\n }\n },\n\n mathmlBuilder(group, options) {\n var node;\n\n if (regularSpace.hasOwnProperty(group.text)) {\n node = new mathMLTree.MathNode(\"mtext\", [new mathMLTree.TextNode(\"\\u00a0\")]);\n } else if (cssSpace.hasOwnProperty(group.text)) {\n // CSS-based MathML spaces (\\nobreak, \\allowbreak) are ignored\n return new mathMLTree.MathNode(\"mspace\");\n } else {\n throw new ParseError(\"Unknown type of space \\\"\" + group.text + \"\\\"\");\n }\n\n return node;\n }\n\n});\n\nvar pad = () => {\n var padNode = new mathMLTree.MathNode(\"mtd\", []);\n padNode.setAttribute(\"width\", \"50%\");\n return padNode;\n};\n\ndefineFunctionBuilders({\n type: \"tag\",\n\n mathmlBuilder(group, options) {\n var table = new mathMLTree.MathNode(\"mtable\", [new mathMLTree.MathNode(\"mtr\", [pad(), new mathMLTree.MathNode(\"mtd\", [buildExpressionRow(group.body, options)]), pad(), new mathMLTree.MathNode(\"mtd\", [buildExpressionRow(group.tag, options)])])]);\n table.setAttribute(\"width\", \"100%\");\n return table; // TODO: Left-aligned tags.\n // Currently, the group and options passed here do not contain\n // enough info to set tag alignment. `leqno` is in Settings but it is\n // not passed to Options. On the HTML side, leqno is\n // set by a CSS class applied in buildTree.js. That would have worked\n // in MathML if browsers supported <mlabeledtr>. Since they don't, we\n // need to rewrite the way this function is called.\n }\n\n});\n\nvar textFontFamilies = {\n \"\\\\text\": undefined,\n \"\\\\textrm\": \"textrm\",\n \"\\\\textsf\": \"textsf\",\n \"\\\\texttt\": \"texttt\",\n \"\\\\textnormal\": \"textrm\"\n};\nvar textFontWeights = {\n \"\\\\textbf\": \"textbf\",\n \"\\\\textmd\": \"textmd\"\n};\nvar textFontShapes = {\n \"\\\\textit\": \"textit\",\n \"\\\\textup\": \"textup\"\n};\n\nvar optionsWithFont = (group, options) => {\n var font = group.font; // Checks if the argument is a font family or a font style.\n\n if (!font) {\n return options;\n } else if (textFontFamilies[font]) {\n return options.withTextFontFamily(textFontFamilies[font]);\n } else if (textFontWeights[font]) {\n return options.withTextFontWeight(textFontWeights[font]);\n } else {\n return options.withTextFontShape(textFontShapes[font]);\n }\n};\n\ndefineFunction({\n type: \"text\",\n names: [// Font families\n \"\\\\text\", \"\\\\textrm\", \"\\\\textsf\", \"\\\\texttt\", \"\\\\textnormal\", // Font weights\n \"\\\\textbf\", \"\\\\textmd\", // Font Shapes\n \"\\\\textit\", \"\\\\textup\"],\n props: {\n numArgs: 1,\n argTypes: [\"text\"],\n allowedInArgument: true,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser,\n funcName\n } = _ref;\n var body = args[0];\n return {\n type: \"text\",\n mode: parser.mode,\n body: ordargument(body),\n font: funcName\n };\n },\n\n htmlBuilder(group, options) {\n var newOptions = optionsWithFont(group, options);\n var inner = buildExpression$1(group.body, newOptions, true);\n return buildCommon.makeSpan([\"mord\", \"text\"], inner, newOptions);\n },\n\n mathmlBuilder(group, options) {\n var newOptions = optionsWithFont(group, options);\n return buildExpressionRow(group.body, newOptions);\n }\n\n});\n\ndefineFunction({\n type: \"underline\",\n names: [\"\\\\underline\"],\n props: {\n numArgs: 1,\n allowedInText: true\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n return {\n type: \"underline\",\n mode: parser.mode,\n body: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n // Underlines are handled in the TeXbook pg 443, Rule 10.\n // Build the inner group.\n var innerGroup = buildGroup$1(group.body, options); // Create the line to go below the body\n\n var line = buildCommon.makeLineSpan(\"underline-line\", options); // Generate the vlist, with the appropriate kerns\n\n var defaultRuleThickness = options.fontMetrics().defaultRuleThickness;\n var vlist = buildCommon.makeVList({\n positionType: \"top\",\n positionData: innerGroup.height,\n children: [{\n type: \"kern\",\n size: defaultRuleThickness\n }, {\n type: \"elem\",\n elem: line\n }, {\n type: \"kern\",\n size: 3 * defaultRuleThickness\n }, {\n type: \"elem\",\n elem: innerGroup\n }]\n }, options);\n return buildCommon.makeSpan([\"mord\", \"underline\"], [vlist], options);\n },\n\n mathmlBuilder(group, options) {\n var operator = new mathMLTree.MathNode(\"mo\", [new mathMLTree.TextNode(\"\\u203e\")]);\n operator.setAttribute(\"stretchy\", \"true\");\n var node = new mathMLTree.MathNode(\"munder\", [buildGroup(group.body, options), operator]);\n node.setAttribute(\"accentunder\", \"true\");\n return node;\n }\n\n});\n\ndefineFunction({\n type: \"vcenter\",\n names: [\"\\\\vcenter\"],\n props: {\n numArgs: 1,\n argTypes: [\"original\"],\n // In LaTeX, \\vcenter can act only on a box.\n allowedInText: false\n },\n\n handler(_ref, args) {\n var {\n parser\n } = _ref;\n return {\n type: \"vcenter\",\n mode: parser.mode,\n body: args[0]\n };\n },\n\n htmlBuilder(group, options) {\n var body = buildGroup$1(group.body, options);\n var axisHeight = options.fontMetrics().axisHeight;\n var dy = 0.5 * (body.height - axisHeight - (body.depth + axisHeight));\n return buildCommon.makeVList({\n positionType: \"shift\",\n positionData: dy,\n children: [{\n type: \"elem\",\n elem: body\n }]\n }, options);\n },\n\n mathmlBuilder(group, options) {\n // There is no way to do this in MathML.\n // Write a class as a breadcrumb in case some post-processor wants\n // to perform a vcenter adjustment.\n return new mathMLTree.MathNode(\"mpadded\", [buildGroup(group.body, options)], [\"vcenter\"]);\n }\n\n});\n\ndefineFunction({\n type: \"verb\",\n names: [\"\\\\verb\"],\n props: {\n numArgs: 0,\n allowedInText: true\n },\n\n handler(context, args, optArgs) {\n // \\verb and \\verb* are dealt with directly in Parser.js.\n // If we end up here, it's because of a failure to match the two delimiters\n // in the regex in Lexer.js. LaTeX raises the following error when \\verb is\n // terminated by end of line (or file).\n throw new ParseError(\"\\\\verb ended by end of line instead of matching delimiter\");\n },\n\n htmlBuilder(group, options) {\n var text = makeVerb(group);\n var body = []; // \\verb enters text mode and therefore is sized like \\textstyle\n\n var newOptions = options.havingStyle(options.style.text());\n\n for (var i = 0; i < text.length; i++) {\n var c = text[i];\n\n if (c === '~') {\n c = '\\\\textasciitilde';\n }\n\n body.push(buildCommon.makeSymbol(c, \"Typewriter-Regular\", group.mode, newOptions, [\"mord\", \"texttt\"]));\n }\n\n return buildCommon.makeSpan([\"mord\", \"text\"].concat(newOptions.sizingClasses(options)), buildCommon.tryCombineChars(body), newOptions);\n },\n\n mathmlBuilder(group, options) {\n var text = new mathMLTree.TextNode(makeVerb(group));\n var node = new mathMLTree.MathNode(\"mtext\", [text]);\n node.setAttribute(\"mathvariant\", \"monospace\");\n return node;\n }\n\n});\n/**\n * Converts verb group into body string.\n *\n * \\verb* replaces each space with an open box \\u2423\n * \\verb replaces each space with a no-break space \\xA0\n */\n\nvar makeVerb = group => group.body.replace(/ /g, group.star ? '\\u2423' : '\\xA0');\n\n/** Include this to ensure that all functions are defined. */\nvar functions = _functions;\n\n/**\n * The Lexer class handles tokenizing the input in various ways. Since our\n * parser expects us to be able to backtrack, the lexer allows lexing from any\n * given starting point.\n *\n * Its main exposed function is the `lex` function, which takes a position to\n * lex from and a type of token to lex. It defers to the appropriate `_innerLex`\n * function.\n *\n * The various `_innerLex` functions perform the actual lexing of different\n * kinds.\n */\n\n/* The following tokenRegex\n * - matches typical whitespace (but not NBSP etc.) using its first group\n * - does not match any control character \\x00-\\x1f except whitespace\n * - does not match a bare backslash\n * - matches any ASCII character except those just mentioned\n * - does not match the BMP private use area \\uE000-\\uF8FF\n * - does not match bare surrogate code units\n * - matches any BMP character except for those just described\n * - matches any valid Unicode surrogate pair\n * - matches a backslash followed by one or more whitespace characters\n * - matches a backslash followed by one or more letters then whitespace\n * - matches a backslash followed by any BMP character\n * Capturing groups:\n * [1] regular whitespace\n * [2] backslash followed by whitespace\n * [3] anything else, which may include:\n * [4] left character of \\verb*\n * [5] left character of \\verb\n * [6] backslash followed by word, excluding any trailing whitespace\n * Just because the Lexer matches something doesn't mean it's valid input:\n * If there is no matching function or symbol definition, the Parser will\n * still reject the input.\n */\nvar spaceRegexString = \"[ \\r\\n\\t]\";\nvar controlWordRegexString = \"\\\\\\\\[a-zA-Z@]+\";\nvar controlSymbolRegexString = \"\\\\\\\\[^\\uD800-\\uDFFF]\";\nvar controlWordWhitespaceRegexString = \"(\" + controlWordRegexString + \")\" + spaceRegexString + \"*\";\nvar controlSpaceRegexString = \"\\\\\\\\(\\n|[ \\r\\t]+\\n?)[ \\r\\t]*\";\nvar combiningDiacriticalMarkString = \"[\\u0300-\\u036f]\";\nvar combiningDiacriticalMarksEndRegex = new RegExp(combiningDiacriticalMarkString + \"+$\");\nvar tokenRegexString = \"(\" + spaceRegexString + \"+)|\" + ( // whitespace\ncontrolSpaceRegexString + \"|\") + // \\whitespace\n\"([!-\\\\[\\\\]-\\u2027\\u202A-\\uD7FF\\uF900-\\uFFFF]\" + ( // single codepoint\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\" + ( // surrogate pair\ncombiningDiacriticalMarkString + \"*\") + // ...plus accents\n\"|\\\\\\\\verb\\\\*([^]).*?\\\\4\" + // \\verb*\n\"|\\\\\\\\verb([^*a-zA-Z]).*?\\\\5\" + ( // \\verb unstarred\n\"|\" + controlWordWhitespaceRegexString) + ( // \\macroName + spaces\n\"|\" + controlSymbolRegexString + \")\"); // \\\\, \\', etc.\n\n/** Main Lexer class */\n\nclass Lexer {\n // Category codes. The lexer only supports comment characters (14) for now.\n // MacroExpander additionally distinguishes active (13).\n constructor(input, settings) {\n this.input = void 0;\n this.settings = void 0;\n this.tokenRegex = void 0;\n this.catcodes = void 0;\n // Separate accents from characters\n this.input = input;\n this.settings = settings;\n this.tokenRegex = new RegExp(tokenRegexString, 'g');\n this.catcodes = {\n \"%\": 14,\n // comment character\n \"~\": 13 // active character\n\n };\n }\n\n setCatcode(char, code) {\n this.catcodes[char] = code;\n }\n /**\n * This function lexes a single token.\n */\n\n\n lex() {\n var input = this.input;\n var pos = this.tokenRegex.lastIndex;\n\n if (pos === input.length) {\n return new Token(\"EOF\", new SourceLocation(this, pos, pos));\n }\n\n var match = this.tokenRegex.exec(input);\n\n if (match === null || match.index !== pos) {\n throw new ParseError(\"Unexpected character: '\" + input[pos] + \"'\", new Token(input[pos], new SourceLocation(this, pos, pos + 1)));\n }\n\n var text = match[6] || match[3] || (match[2] ? \"\\\\ \" : \" \");\n\n if (this.catcodes[text] === 14) {\n // comment character\n var nlIndex = input.indexOf('\\n', this.tokenRegex.lastIndex);\n\n if (nlIndex === -1) {\n this.tokenRegex.lastIndex = input.length; // EOF\n\n this.settings.reportNonstrict(\"commentAtEnd\", \"% comment has no terminating newline; LaTeX would \" + \"fail because of commenting the end of math mode (e.g. $)\");\n } else {\n this.tokenRegex.lastIndex = nlIndex + 1;\n }\n\n return this.lex();\n }\n\n return new Token(text, new SourceLocation(this, pos, this.tokenRegex.lastIndex));\n }\n\n}\n\n/**\n * A `Namespace` refers to a space of nameable things like macros or lengths,\n * which can be `set` either globally or local to a nested group, using an\n * undo stack similar to how TeX implements this functionality.\n * Performance-wise, `get` and local `set` take constant time, while global\n * `set` takes time proportional to the depth of group nesting.\n */\nclass Namespace {\n /**\n * Both arguments are optional. The first argument is an object of\n * built-in mappings which never change. The second argument is an object\n * of initial (global-level) mappings, which will constantly change\n * according to any global/top-level `set`s done.\n */\n constructor(builtins, globalMacros) {\n if (builtins === void 0) {\n builtins = {};\n }\n\n if (globalMacros === void 0) {\n globalMacros = {};\n }\n\n this.current = void 0;\n this.builtins = void 0;\n this.undefStack = void 0;\n this.current = globalMacros;\n this.builtins = builtins;\n this.undefStack = [];\n }\n /**\n * Start a new nested group, affecting future local `set`s.\n */\n\n\n beginGroup() {\n this.undefStack.push({});\n }\n /**\n * End current nested group, restoring values before the group began.\n */\n\n\n endGroup() {\n if (this.undefStack.length === 0) {\n throw new ParseError(\"Unbalanced namespace destruction: attempt \" + \"to pop global namespace; please report this as a bug\");\n }\n\n var undefs = this.undefStack.pop();\n\n for (var undef in undefs) {\n if (undefs.hasOwnProperty(undef)) {\n if (undefs[undef] == null) {\n delete this.current[undef];\n } else {\n this.current[undef] = undefs[undef];\n }\n }\n }\n }\n /**\n * Ends all currently nested groups (if any), restoring values before the\n * groups began. Useful in case of an error in the middle of parsing.\n */\n\n\n endGroups() {\n while (this.undefStack.length > 0) {\n this.endGroup();\n }\n }\n /**\n * Detect whether `name` has a definition. Equivalent to\n * `get(name) != null`.\n */\n\n\n has(name) {\n return this.current.hasOwnProperty(name) || this.builtins.hasOwnProperty(name);\n }\n /**\n * Get the current value of a name, or `undefined` if there is no value.\n *\n * Note: Do not use `if (namespace.get(...))` to detect whether a macro\n * is defined, as the definition may be the empty string which evaluates\n * to `false` in JavaScript. Use `if (namespace.get(...) != null)` or\n * `if (namespace.has(...))`.\n */\n\n\n get(name) {\n if (this.current.hasOwnProperty(name)) {\n return this.current[name];\n } else {\n return this.builtins[name];\n }\n }\n /**\n * Set the current value of a name, and optionally set it globally too.\n * Local set() sets the current value and (when appropriate) adds an undo\n * operation to the undo stack. Global set() may change the undo\n * operation at every level, so takes time linear in their number.\n * A value of undefined means to delete existing definitions.\n */\n\n\n set(name, value, global) {\n if (global === void 0) {\n global = false;\n }\n\n if (global) {\n // Global set is equivalent to setting in all groups. Simulate this\n // by destroying any undos currently scheduled for this name,\n // and adding an undo with the *new* value (in case it later gets\n // locally reset within this environment).\n for (var i = 0; i < this.undefStack.length; i++) {\n delete this.undefStack[i][name];\n }\n\n if (this.undefStack.length > 0) {\n this.undefStack[this.undefStack.length - 1][name] = value;\n }\n } else {\n // Undo this set at end of this group (possibly to `undefined`),\n // unless an undo is already in place, in which case that older\n // value is the correct one.\n var top = this.undefStack[this.undefStack.length - 1];\n\n if (top && !top.hasOwnProperty(name)) {\n top[name] = this.current[name];\n }\n }\n\n if (value == null) {\n delete this.current[name];\n } else {\n this.current[name] = value;\n }\n }\n\n}\n\n/**\n * Predefined macros for KaTeX.\n * This can be used to define some commands in terms of others.\n */\nvar macros = _macros;\n// macro tools\n\ndefineMacro(\"\\\\noexpand\", function (context) {\n // The expansion is the token itself; but that token is interpreted\n // as if its meaning were ‘\\relax’ if it is a control sequence that\n // would ordinarily be expanded by TeX’s expansion rules.\n var t = context.popToken();\n\n if (context.isExpandable(t.text)) {\n t.noexpand = true;\n t.treatAsRelax = true;\n }\n\n return {\n tokens: [t],\n numArgs: 0\n };\n});\ndefineMacro(\"\\\\expandafter\", function (context) {\n // TeX first reads the token that comes immediately after \\expandafter,\n // without expanding it; let’s call this token t. Then TeX reads the\n // token that comes after t (and possibly more tokens, if that token\n // has an argument), replacing it by its expansion. Finally TeX puts\n // t back in front of that expansion.\n var t = context.popToken();\n context.expandOnce(true); // expand only an expandable token\n\n return {\n tokens: [t],\n numArgs: 0\n };\n}); // LaTeX's \\@firstoftwo{#1}{#2} expands to #1, skipping #2\n// TeX source: \\long\\def\\@firstoftwo#1#2{#1}\n\ndefineMacro(\"\\\\@firstoftwo\", function (context) {\n var args = context.consumeArgs(2);\n return {\n tokens: args[0],\n numArgs: 0\n };\n}); // LaTeX's \\@secondoftwo{#1}{#2} expands to #2, skipping #1\n// TeX source: \\long\\def\\@secondoftwo#1#2{#2}\n\ndefineMacro(\"\\\\@secondoftwo\", function (context) {\n var args = context.consumeArgs(2);\n return {\n tokens: args[1],\n numArgs: 0\n };\n}); // LaTeX's \\@ifnextchar{#1}{#2}{#3} looks ahead to the next (unexpanded)\n// symbol that isn't a space, consuming any spaces but not consuming the\n// first nonspace character. If that nonspace character matches #1, then\n// the macro expands to #2; otherwise, it expands to #3.\n\ndefineMacro(\"\\\\@ifnextchar\", function (context) {\n var args = context.consumeArgs(3); // symbol, if, else\n\n context.consumeSpaces();\n var nextToken = context.future();\n\n if (args[0].length === 1 && args[0][0].text === nextToken.text) {\n return {\n tokens: args[1],\n numArgs: 0\n };\n } else {\n return {\n tokens: args[2],\n numArgs: 0\n };\n }\n}); // LaTeX's \\@ifstar{#1}{#2} looks ahead to the next (unexpanded) symbol.\n// If it is `*`, then it consumes the symbol, and the macro expands to #1;\n// otherwise, the macro expands to #2 (without consuming the symbol).\n// TeX source: \\def\\@ifstar#1{\\@ifnextchar *{\\@firstoftwo{#1}}}\n\ndefineMacro(\"\\\\@ifstar\", \"\\\\@ifnextchar *{\\\\@firstoftwo{#1}}\"); // LaTeX's \\TextOrMath{#1}{#2} expands to #1 in text mode, #2 in math mode\n\ndefineMacro(\"\\\\TextOrMath\", function (context) {\n var args = context.consumeArgs(2);\n\n if (context.mode === 'text') {\n return {\n tokens: args[0],\n numArgs: 0\n };\n } else {\n return {\n tokens: args[1],\n numArgs: 0\n };\n }\n}); // Lookup table for parsing numbers in base 8 through 16\n\nvar digitToNumber = {\n \"0\": 0,\n \"1\": 1,\n \"2\": 2,\n \"3\": 3,\n \"4\": 4,\n \"5\": 5,\n \"6\": 6,\n \"7\": 7,\n \"8\": 8,\n \"9\": 9,\n \"a\": 10,\n \"A\": 10,\n \"b\": 11,\n \"B\": 11,\n \"c\": 12,\n \"C\": 12,\n \"d\": 13,\n \"D\": 13,\n \"e\": 14,\n \"E\": 14,\n \"f\": 15,\n \"F\": 15\n}; // TeX \\char makes a literal character (catcode 12) using the following forms:\n// (see The TeXBook, p. 43)\n// \\char123 -- decimal\n// \\char'123 -- octal\n// \\char\"123 -- hex\n// \\char`x -- character that can be written (i.e. isn't active)\n// \\char`\\x -- character that cannot be written (e.g. %)\n// These all refer to characters from the font, so we turn them into special\n// calls to a function \\@char dealt with in the Parser.\n\ndefineMacro(\"\\\\char\", function (context) {\n var token = context.popToken();\n var base;\n var number = '';\n\n if (token.text === \"'\") {\n base = 8;\n token = context.popToken();\n } else if (token.text === '\"') {\n base = 16;\n token = context.popToken();\n } else if (token.text === \"`\") {\n token = context.popToken();\n\n if (token.text[0] === \"\\\\\") {\n number = token.text.charCodeAt(1);\n } else if (token.text === \"EOF\") {\n throw new ParseError(\"\\\\char` missing argument\");\n } else {\n number = token.text.charCodeAt(0);\n }\n } else {\n base = 10;\n }\n\n if (base) {\n // Parse a number in the given base, starting with first `token`.\n number = digitToNumber[token.text];\n\n if (number == null || number >= base) {\n throw new ParseError(\"Invalid base-\" + base + \" digit \" + token.text);\n }\n\n var digit;\n\n while ((digit = digitToNumber[context.future().text]) != null && digit < base) {\n number *= base;\n number += digit;\n context.popToken();\n }\n }\n\n return \"\\\\@char{\" + number + \"}\";\n}); // \\newcommand{\\macro}[args]{definition}\n// \\renewcommand{\\macro}[args]{definition}\n// TODO: Optional arguments: \\newcommand{\\macro}[args][default]{definition}\n\nvar newcommand = (context, existsOK, nonexistsOK) => {\n var arg = context.consumeArg().tokens;\n\n if (arg.length !== 1) {\n throw new ParseError(\"\\\\newcommand's first argument must be a macro name\");\n }\n\n var name = arg[0].text;\n var exists = context.isDefined(name);\n\n if (exists && !existsOK) {\n throw new ParseError(\"\\\\newcommand{\" + name + \"} attempting to redefine \" + (name + \"; use \\\\renewcommand\"));\n }\n\n if (!exists && !nonexistsOK) {\n throw new ParseError(\"\\\\renewcommand{\" + name + \"} when command \" + name + \" \" + \"does not yet exist; use \\\\newcommand\");\n }\n\n var numArgs = 0;\n arg = context.consumeArg().tokens;\n\n if (arg.length === 1 && arg[0].text === \"[\") {\n var argText = '';\n var token = context.expandNextToken();\n\n while (token.text !== \"]\" && token.text !== \"EOF\") {\n // TODO: Should properly expand arg, e.g., ignore {}s\n argText += token.text;\n token = context.expandNextToken();\n }\n\n if (!argText.match(/^\\s*[0-9]+\\s*$/)) {\n throw new ParseError(\"Invalid number of arguments: \" + argText);\n }\n\n numArgs = parseInt(argText);\n arg = context.consumeArg().tokens;\n } // Final arg is the expansion of the macro\n\n\n context.macros.set(name, {\n tokens: arg,\n numArgs\n });\n return '';\n};\n\ndefineMacro(\"\\\\newcommand\", context => newcommand(context, false, true));\ndefineMacro(\"\\\\renewcommand\", context => newcommand(context, true, false));\ndefineMacro(\"\\\\providecommand\", context => newcommand(context, true, true)); // terminal (console) tools\n\ndefineMacro(\"\\\\message\", context => {\n var arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console\n\n console.log(arg.reverse().map(token => token.text).join(\"\"));\n return '';\n});\ndefineMacro(\"\\\\errmessage\", context => {\n var arg = context.consumeArgs(1)[0]; // eslint-disable-next-line no-console\n\n console.error(arg.reverse().map(token => token.text).join(\"\"));\n return '';\n});\ndefineMacro(\"\\\\show\", context => {\n var tok = context.popToken();\n var name = tok.text; // eslint-disable-next-line no-console\n\n console.log(tok, context.macros.get(name), functions[name], symbols.math[name], symbols.text[name]);\n return '';\n}); //////////////////////////////////////////////////////////////////////\n// Grouping\n// \\let\\bgroup={ \\let\\egroup=}\n\ndefineMacro(\"\\\\bgroup\", \"{\");\ndefineMacro(\"\\\\egroup\", \"}\"); // Symbols from latex.ltx:\n// \\def~{\\nobreakspace{}}\n// \\def\\lq{`}\n// \\def\\rq{'}\n// \\def \\aa {\\r a}\n// \\def \\AA {\\r A}\n\ndefineMacro(\"~\", \"\\\\nobreakspace\");\ndefineMacro(\"\\\\lq\", \"`\");\ndefineMacro(\"\\\\rq\", \"'\");\ndefineMacro(\"\\\\aa\", \"\\\\r a\");\ndefineMacro(\"\\\\AA\", \"\\\\r A\"); // Copyright (C) and registered (R) symbols. Use raw symbol in MathML.\n// \\DeclareTextCommandDefault{\\textcopyright}{\\textcircled{c}}\n// \\DeclareTextCommandDefault{\\textregistered}{\\textcircled{%\n// \\check@mathfonts\\fontsize\\sf@size\\z@\\math@fontsfalse\\selectfont R}}\n// \\DeclareRobustCommand{\\copyright}{%\n// \\ifmmode{\\nfss@text{\\textcopyright}}\\else\\textcopyright\\fi}\n\ndefineMacro(\"\\\\textcopyright\", \"\\\\html@mathml{\\\\textcircled{c}}{\\\\char`©}\");\ndefineMacro(\"\\\\copyright\", \"\\\\TextOrMath{\\\\textcopyright}{\\\\text{\\\\textcopyright}}\");\ndefineMacro(\"\\\\textregistered\", \"\\\\html@mathml{\\\\textcircled{\\\\scriptsize R}}{\\\\char`®}\"); // Characters omitted from Unicode range 1D400–1D7FF\n\ndefineMacro(\"\\u212C\", \"\\\\mathscr{B}\"); // script\n\ndefineMacro(\"\\u2130\", \"\\\\mathscr{E}\");\ndefineMacro(\"\\u2131\", \"\\\\mathscr{F}\");\ndefineMacro(\"\\u210B\", \"\\\\mathscr{H}\");\ndefineMacro(\"\\u2110\", \"\\\\mathscr{I}\");\ndefineMacro(\"\\u2112\", \"\\\\mathscr{L}\");\ndefineMacro(\"\\u2133\", \"\\\\mathscr{M}\");\ndefineMacro(\"\\u211B\", \"\\\\mathscr{R}\");\ndefineMacro(\"\\u212D\", \"\\\\mathfrak{C}\"); // Fraktur\n\ndefineMacro(\"\\u210C\", \"\\\\mathfrak{H}\");\ndefineMacro(\"\\u2128\", \"\\\\mathfrak{Z}\"); // Define \\Bbbk with a macro that works in both HTML and MathML.\n\ndefineMacro(\"\\\\Bbbk\", \"\\\\Bbb{k}\"); // Unicode middle dot\n// The KaTeX fonts do not contain U+00B7. Instead, \\cdotp displays\n// the dot at U+22C5 and gives it punct spacing.\n\ndefineMacro(\"\\u00b7\", \"\\\\cdotp\"); // \\llap and \\rlap render their contents in text mode\n\ndefineMacro(\"\\\\llap\", \"\\\\mathllap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\rlap\", \"\\\\mathrlap{\\\\textrm{#1}}\");\ndefineMacro(\"\\\\clap\", \"\\\\mathclap{\\\\textrm{#1}}\"); // \\mathstrut from the TeXbook, p 360\n\ndefineMacro(\"\\\\mathstrut\", \"\\\\vphantom{(}\"); // \\underbar from TeXbook p 353\n\ndefineMacro(\"\\\\underbar\", \"\\\\underline{\\\\text{#1}}\"); // \\not is defined by base/fontmath.ltx via\n// \\DeclareMathSymbol{\\not}{\\mathrel}{symbols}{\"36}\n// It's thus treated like a \\mathrel, but defined by a symbol that has zero\n// width but extends to the right. We use \\rlap to get that spacing.\n// For MathML we write U+0338 here. buildMathML.js will then do the overlay.\n\ndefineMacro(\"\\\\not\", '\\\\html@mathml{\\\\mathrel{\\\\mathrlap\\\\@not}}{\\\\char\"338}'); // Negated symbols from base/fontmath.ltx:\n// \\def\\neq{\\not=} \\let\\ne=\\neq\n// \\DeclareRobustCommand\n// \\notin{\\mathrel{\\m@th\\mathpalette\\c@ncel\\in}}\n// \\def\\c@ncel#1#2{\\m@th\\ooalign{$\\hfil#1\\mkern1mu/\\hfil$\\crcr$#1#2$}}\n\ndefineMacro(\"\\\\neq\", \"\\\\html@mathml{\\\\mathrel{\\\\not=}}{\\\\mathrel{\\\\char`≠}}\");\ndefineMacro(\"\\\\ne\", \"\\\\neq\");\ndefineMacro(\"\\u2260\", \"\\\\neq\");\ndefineMacro(\"\\\\notin\", \"\\\\html@mathml{\\\\mathrel{{\\\\in}\\\\mathllap{/\\\\mskip1mu}}}\" + \"{\\\\mathrel{\\\\char`∉}}\");\ndefineMacro(\"\\u2209\", \"\\\\notin\"); // Unicode stacked relations\n\ndefineMacro(\"\\u2258\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\kern{-1em}\\\\raisebox{0.4em}{$\\\\scriptsize\\\\frown$}}\" + \"}{\\\\mathrel{\\\\char`\\u2258}}\");\ndefineMacro(\"\\u2259\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\wedge}{=}}{\\\\mathrel{\\\\char`\\u2258}}\");\ndefineMacro(\"\\u225A\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\vee}{=}}{\\\\mathrel{\\\\char`\\u225A}}\");\ndefineMacro(\"\\u225B\", \"\\\\html@mathml{\\\\stackrel{\\\\scriptsize\\\\star}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225B}}\");\ndefineMacro(\"\\u225D\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{def}}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225D}}\");\ndefineMacro(\"\\u225E\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{m}}{=}}\" + \"{\\\\mathrel{\\\\char`\\u225E}}\");\ndefineMacro(\"\\u225F\", \"\\\\html@mathml{\\\\stackrel{\\\\tiny?}{=}}{\\\\mathrel{\\\\char`\\u225F}}\"); // Misc Unicode\n\ndefineMacro(\"\\u27C2\", \"\\\\perp\");\ndefineMacro(\"\\u203C\", \"\\\\mathclose{!\\\\mkern-0.8mu!}\");\ndefineMacro(\"\\u220C\", \"\\\\notni\");\ndefineMacro(\"\\u231C\", \"\\\\ulcorner\");\ndefineMacro(\"\\u231D\", \"\\\\urcorner\");\ndefineMacro(\"\\u231E\", \"\\\\llcorner\");\ndefineMacro(\"\\u231F\", \"\\\\lrcorner\");\ndefineMacro(\"\\u00A9\", \"\\\\copyright\");\ndefineMacro(\"\\u00AE\", \"\\\\textregistered\");\ndefineMacro(\"\\uFE0F\", \"\\\\textregistered\"); // The KaTeX fonts have corners at codepoints that don't match Unicode.\n// For MathML purposes, use the Unicode code point.\n\ndefineMacro(\"\\\\ulcorner\", \"\\\\html@mathml{\\\\@ulcorner}{\\\\mathop{\\\\char\\\"231c}}\");\ndefineMacro(\"\\\\urcorner\", \"\\\\html@mathml{\\\\@urcorner}{\\\\mathop{\\\\char\\\"231d}}\");\ndefineMacro(\"\\\\llcorner\", \"\\\\html@mathml{\\\\@llcorner}{\\\\mathop{\\\\char\\\"231e}}\");\ndefineMacro(\"\\\\lrcorner\", \"\\\\html@mathml{\\\\@lrcorner}{\\\\mathop{\\\\char\\\"231f}}\"); //////////////////////////////////////////////////////////////////////\n// LaTeX_2ε\n// \\vdots{\\vbox{\\baselineskip4\\p@ \\lineskiplimit\\z@\n// \\kern6\\p@\\hbox{.}\\hbox{.}\\hbox{.}}}\n// We'll call \\varvdots, which gets a glyph from symbols.js.\n// The zero-width rule gets us an equivalent to the vertical 6pt kern.\n\ndefineMacro(\"\\\\vdots\", \"\\\\mathord{\\\\varvdots\\\\rule{0pt}{15pt}}\");\ndefineMacro(\"\\u22ee\", \"\\\\vdots\"); //////////////////////////////////////////////////////////////////////\n// amsmath.sty\n// http://mirrors.concertpass.com/tex-archive/macros/latex/required/amsmath/amsmath.pdf\n// Italic Greek capital letters. AMS defines these with \\DeclareMathSymbol,\n// but they are equivalent to \\mathit{\\Letter}.\n\ndefineMacro(\"\\\\varGamma\", \"\\\\mathit{\\\\Gamma}\");\ndefineMacro(\"\\\\varDelta\", \"\\\\mathit{\\\\Delta}\");\ndefineMacro(\"\\\\varTheta\", \"\\\\mathit{\\\\Theta}\");\ndefineMacro(\"\\\\varLambda\", \"\\\\mathit{\\\\Lambda}\");\ndefineMacro(\"\\\\varXi\", \"\\\\mathit{\\\\Xi}\");\ndefineMacro(\"\\\\varPi\", \"\\\\mathit{\\\\Pi}\");\ndefineMacro(\"\\\\varSigma\", \"\\\\mathit{\\\\Sigma}\");\ndefineMacro(\"\\\\varUpsilon\", \"\\\\mathit{\\\\Upsilon}\");\ndefineMacro(\"\\\\varPhi\", \"\\\\mathit{\\\\Phi}\");\ndefineMacro(\"\\\\varPsi\", \"\\\\mathit{\\\\Psi}\");\ndefineMacro(\"\\\\varOmega\", \"\\\\mathit{\\\\Omega}\"); //\\newcommand{\\substack}[1]{\\subarray{c}#1\\endsubarray}\n\ndefineMacro(\"\\\\substack\", \"\\\\begin{subarray}{c}#1\\\\end{subarray}\"); // \\renewcommand{\\colon}{\\nobreak\\mskip2mu\\mathpunct{}\\nonscript\n// \\mkern-\\thinmuskip{:}\\mskip6muplus1mu\\relax}\n\ndefineMacro(\"\\\\colon\", \"\\\\nobreak\\\\mskip2mu\\\\mathpunct{}\" + \"\\\\mathchoice{\\\\mkern-3mu}{\\\\mkern-3mu}{}{}{:}\\\\mskip6mu\\\\relax\"); // \\newcommand{\\boxed}[1]{\\fbox{\\m@th$\\displaystyle#1$}}\n\ndefineMacro(\"\\\\boxed\", \"\\\\fbox{$\\\\displaystyle{#1}$}\"); // \\def\\iff{\\DOTSB\\;\\Longleftrightarrow\\;}\n// \\def\\implies{\\DOTSB\\;\\Longrightarrow\\;}\n// \\def\\impliedby{\\DOTSB\\;\\Longleftarrow\\;}\n\ndefineMacro(\"\\\\iff\", \"\\\\DOTSB\\\\;\\\\Longleftrightarrow\\\\;\");\ndefineMacro(\"\\\\implies\", \"\\\\DOTSB\\\\;\\\\Longrightarrow\\\\;\");\ndefineMacro(\"\\\\impliedby\", \"\\\\DOTSB\\\\;\\\\Longleftarrow\\\\;\"); // AMSMath's automatic \\dots, based on \\mdots@@ macro.\n\nvar dotsByToken = {\n ',': '\\\\dotsc',\n '\\\\not': '\\\\dotsb',\n // \\keybin@ checks for the following:\n '+': '\\\\dotsb',\n '=': '\\\\dotsb',\n '<': '\\\\dotsb',\n '>': '\\\\dotsb',\n '-': '\\\\dotsb',\n '*': '\\\\dotsb',\n ':': '\\\\dotsb',\n // Symbols whose definition starts with \\DOTSB:\n '\\\\DOTSB': '\\\\dotsb',\n '\\\\coprod': '\\\\dotsb',\n '\\\\bigvee': '\\\\dotsb',\n '\\\\bigwedge': '\\\\dotsb',\n '\\\\biguplus': '\\\\dotsb',\n '\\\\bigcap': '\\\\dotsb',\n '\\\\bigcup': '\\\\dotsb',\n '\\\\prod': '\\\\dotsb',\n '\\\\sum': '\\\\dotsb',\n '\\\\bigotimes': '\\\\dotsb',\n '\\\\bigoplus': '\\\\dotsb',\n '\\\\bigodot': '\\\\dotsb',\n '\\\\bigsqcup': '\\\\dotsb',\n '\\\\And': '\\\\dotsb',\n '\\\\longrightarrow': '\\\\dotsb',\n '\\\\Longrightarrow': '\\\\dotsb',\n '\\\\longleftarrow': '\\\\dotsb',\n '\\\\Longleftarrow': '\\\\dotsb',\n '\\\\longleftrightarrow': '\\\\dotsb',\n '\\\\Longleftrightarrow': '\\\\dotsb',\n '\\\\mapsto': '\\\\dotsb',\n '\\\\longmapsto': '\\\\dotsb',\n '\\\\hookrightarrow': '\\\\dotsb',\n '\\\\doteq': '\\\\dotsb',\n // Symbols whose definition starts with \\mathbin:\n '\\\\mathbin': '\\\\dotsb',\n // Symbols whose definition starts with \\mathrel:\n '\\\\mathrel': '\\\\dotsb',\n '\\\\relbar': '\\\\dotsb',\n '\\\\Relbar': '\\\\dotsb',\n '\\\\xrightarrow': '\\\\dotsb',\n '\\\\xleftarrow': '\\\\dotsb',\n // Symbols whose definition starts with \\DOTSI:\n '\\\\DOTSI': '\\\\dotsi',\n '\\\\int': '\\\\dotsi',\n '\\\\oint': '\\\\dotsi',\n '\\\\iint': '\\\\dotsi',\n '\\\\iiint': '\\\\dotsi',\n '\\\\iiiint': '\\\\dotsi',\n '\\\\idotsint': '\\\\dotsi',\n // Symbols whose definition starts with \\DOTSX:\n '\\\\DOTSX': '\\\\dotsx'\n};\ndefineMacro(\"\\\\dots\", function (context) {\n // TODO: If used in text mode, should expand to \\textellipsis.\n // However, in KaTeX, \\textellipsis and \\ldots behave the same\n // (in text mode), and it's unlikely we'd see any of the math commands\n // that affect the behavior of \\dots when in text mode. So fine for now\n // (until we support \\ifmmode ... \\else ... \\fi).\n var thedots = '\\\\dotso';\n var next = context.expandAfterFuture().text;\n\n if (next in dotsByToken) {\n thedots = dotsByToken[next];\n } else if (next.slice(0, 4) === '\\\\not') {\n thedots = '\\\\dotsb';\n } else if (next in symbols.math) {\n if (utils.contains(['bin', 'rel'], symbols.math[next].group)) {\n thedots = '\\\\dotsb';\n }\n }\n\n return thedots;\n});\nvar spaceAfterDots = {\n // \\rightdelim@ checks for the following:\n ')': true,\n ']': true,\n '\\\\rbrack': true,\n '\\\\}': true,\n '\\\\rbrace': true,\n '\\\\rangle': true,\n '\\\\rceil': true,\n '\\\\rfloor': true,\n '\\\\rgroup': true,\n '\\\\rmoustache': true,\n '\\\\right': true,\n '\\\\bigr': true,\n '\\\\biggr': true,\n '\\\\Bigr': true,\n '\\\\Biggr': true,\n // \\extra@ also tests for the following:\n '$': true,\n // \\extrap@ checks for the following:\n ';': true,\n '.': true,\n ',': true\n};\ndefineMacro(\"\\\\dotso\", function (context) {\n var next = context.future().text;\n\n if (next in spaceAfterDots) {\n return \"\\\\ldots\\\\,\";\n } else {\n return \"\\\\ldots\";\n }\n});\ndefineMacro(\"\\\\dotsc\", function (context) {\n var next = context.future().text; // \\dotsc uses \\extra@ but not \\extrap@, instead specially checking for\n // ';' and '.', but doesn't check for ','.\n\n if (next in spaceAfterDots && next !== ',') {\n return \"\\\\ldots\\\\,\";\n } else {\n return \"\\\\ldots\";\n }\n});\ndefineMacro(\"\\\\cdots\", function (context) {\n var next = context.future().text;\n\n if (next in spaceAfterDots) {\n return \"\\\\@cdots\\\\,\";\n } else {\n return \"\\\\@cdots\";\n }\n});\ndefineMacro(\"\\\\dotsb\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsm\", \"\\\\cdots\");\ndefineMacro(\"\\\\dotsi\", \"\\\\!\\\\cdots\"); // amsmath doesn't actually define \\dotsx, but \\dots followed by a macro\n// starting with \\DOTSX implies \\dotso, and then \\extra@ detects this case\n// and forces the added `\\,`.\n\ndefineMacro(\"\\\\dotsx\", \"\\\\ldots\\\\,\"); // \\let\\DOTSI\\relax\n// \\let\\DOTSB\\relax\n// \\let\\DOTSX\\relax\n\ndefineMacro(\"\\\\DOTSI\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSB\", \"\\\\relax\");\ndefineMacro(\"\\\\DOTSX\", \"\\\\relax\"); // Spacing, based on amsmath.sty's override of LaTeX defaults\n// \\DeclareRobustCommand{\\tmspace}[3]{%\n// \\ifmmode\\mskip#1#2\\else\\kern#1#3\\fi\\relax}\n\ndefineMacro(\"\\\\tmspace\", \"\\\\TextOrMath{\\\\kern#1#3}{\\\\mskip#1#2}\\\\relax\"); // \\renewcommand{\\,}{\\tmspace+\\thinmuskip{.1667em}}\n// TODO: math mode should use \\thinmuskip\n\ndefineMacro(\"\\\\,\", \"\\\\tmspace+{3mu}{.1667em}\"); // \\let\\thinspace\\,\n\ndefineMacro(\"\\\\thinspace\", \"\\\\,\"); // \\def\\>{\\mskip\\medmuskip}\n// \\renewcommand{\\:}{\\tmspace+\\medmuskip{.2222em}}\n// TODO: \\> and math mode of \\: should use \\medmuskip = 4mu plus 2mu minus 4mu\n\ndefineMacro(\"\\\\>\", \"\\\\mskip{4mu}\");\ndefineMacro(\"\\\\:\", \"\\\\tmspace+{4mu}{.2222em}\"); // \\let\\medspace\\:\n\ndefineMacro(\"\\\\medspace\", \"\\\\:\"); // \\renewcommand{\\;}{\\tmspace+\\thickmuskip{.2777em}}\n// TODO: math mode should use \\thickmuskip = 5mu plus 5mu\n\ndefineMacro(\"\\\\;\", \"\\\\tmspace+{5mu}{.2777em}\"); // \\let\\thickspace\\;\n\ndefineMacro(\"\\\\thickspace\", \"\\\\;\"); // \\renewcommand{\\!}{\\tmspace-\\thinmuskip{.1667em}}\n// TODO: math mode should use \\thinmuskip\n\ndefineMacro(\"\\\\!\", \"\\\\tmspace-{3mu}{.1667em}\"); // \\let\\negthinspace\\!\n\ndefineMacro(\"\\\\negthinspace\", \"\\\\!\"); // \\newcommand{\\negmedspace}{\\tmspace-\\medmuskip{.2222em}}\n// TODO: math mode should use \\medmuskip\n\ndefineMacro(\"\\\\negmedspace\", \"\\\\tmspace-{4mu}{.2222em}\"); // \\newcommand{\\negthickspace}{\\tmspace-\\thickmuskip{.2777em}}\n// TODO: math mode should use \\thickmuskip\n\ndefineMacro(\"\\\\negthickspace\", \"\\\\tmspace-{5mu}{.277em}\"); // \\def\\enspace{\\kern.5em }\n\ndefineMacro(\"\\\\enspace\", \"\\\\kern.5em \"); // \\def\\enskip{\\hskip.5em\\relax}\n\ndefineMacro(\"\\\\enskip\", \"\\\\hskip.5em\\\\relax\"); // \\def\\quad{\\hskip1em\\relax}\n\ndefineMacro(\"\\\\quad\", \"\\\\hskip1em\\\\relax\"); // \\def\\qquad{\\hskip2em\\relax}\n\ndefineMacro(\"\\\\qquad\", \"\\\\hskip2em\\\\relax\"); // \\tag@in@display form of \\tag\n\ndefineMacro(\"\\\\tag\", \"\\\\@ifstar\\\\tag@literal\\\\tag@paren\");\ndefineMacro(\"\\\\tag@paren\", \"\\\\tag@literal{({#1})}\");\ndefineMacro(\"\\\\tag@literal\", context => {\n if (context.macros.get(\"\\\\df@tag\")) {\n throw new ParseError(\"Multiple \\\\tag\");\n }\n\n return \"\\\\gdef\\\\df@tag{\\\\text{#1}}\";\n}); // \\renewcommand{\\bmod}{\\nonscript\\mskip-\\medmuskip\\mkern5mu\\mathbin\n// {\\operator@font mod}\\penalty900\n// \\mkern5mu\\nonscript\\mskip-\\medmuskip}\n// \\newcommand{\\pod}[1]{\\allowbreak\n// \\if@display\\mkern18mu\\else\\mkern8mu\\fi(#1)}\n// \\renewcommand{\\pmod}[1]{\\pod{{\\operator@font mod}\\mkern6mu#1}}\n// \\newcommand{\\mod}[1]{\\allowbreak\\if@display\\mkern18mu\n// \\else\\mkern12mu\\fi{\\operator@font mod}\\,\\,#1}\n// TODO: math mode should use \\medmuskip = 4mu plus 2mu minus 4mu\n\ndefineMacro(\"\\\\bmod\", \"\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\" + \"\\\\mathbin{\\\\rm mod}\" + \"\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\");\ndefineMacro(\"\\\\pod\", \"\\\\allowbreak\" + \"\\\\mathchoice{\\\\mkern18mu}{\\\\mkern8mu}{\\\\mkern8mu}{\\\\mkern8mu}(#1)\");\ndefineMacro(\"\\\\pmod\", \"\\\\pod{{\\\\rm mod}\\\\mkern6mu#1}\");\ndefineMacro(\"\\\\mod\", \"\\\\allowbreak\" + \"\\\\mathchoice{\\\\mkern18mu}{\\\\mkern12mu}{\\\\mkern12mu}{\\\\mkern12mu}\" + \"{\\\\rm mod}\\\\,\\\\,#1\"); //////////////////////////////////////////////////////////////////////\n// LaTeX source2e\n// \\expandafter\\let\\expandafter\\@normalcr\n// \\csname\\expandafter\\@gobble\\string\\\\ \\endcsname\n// \\DeclareRobustCommand\\newline{\\@normalcr\\relax}\n\ndefineMacro(\"\\\\newline\", \"\\\\\\\\\\\\relax\"); // \\def\\TeX{T\\kern-.1667em\\lower.5ex\\hbox{E}\\kern-.125emX\\@}\n// TODO: Doesn't normally work in math mode because \\@ fails. KaTeX doesn't\n// support \\@ yet, so that's omitted, and we add \\text so that the result\n// doesn't look funny in math mode.\n\ndefineMacro(\"\\\\TeX\", \"\\\\textrm{\\\\html@mathml{\" + \"T\\\\kern-.1667em\\\\raisebox{-.5ex}{E}\\\\kern-.125emX\" + \"}{TeX}}\"); // \\DeclareRobustCommand{\\LaTeX}{L\\kern-.36em%\n// {\\sbox\\z@ T%\n// \\vbox to\\ht\\z@{\\hbox{\\check@mathfonts\n// \\fontsize\\sf@size\\z@\n// \\math@fontsfalse\\selectfont\n// A}%\n// \\vss}%\n// }%\n// \\kern-.15em%\n// \\TeX}\n// This code aligns the top of the A with the T (from the perspective of TeX's\n// boxes, though visually the A appears to extend above slightly).\n// We compute the corresponding \\raisebox when A is rendered in \\normalsize\n// \\scriptstyle, which has a scale factor of 0.7 (see Options.js).\n\nvar latexRaiseA = makeEm(fontMetricsData['Main-Regular'][\"T\".charCodeAt(0)][1] - 0.7 * fontMetricsData['Main-Regular'][\"A\".charCodeAt(0)][1]);\ndefineMacro(\"\\\\LaTeX\", \"\\\\textrm{\\\\html@mathml{\" + (\"L\\\\kern-.36em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptstyle A}\") + \"\\\\kern-.15em\\\\TeX}{LaTeX}}\"); // New KaTeX logo based on tweaking LaTeX logo\n\ndefineMacro(\"\\\\KaTeX\", \"\\\\textrm{\\\\html@mathml{\" + (\"K\\\\kern-.17em\\\\raisebox{\" + latexRaiseA + \"}{\\\\scriptstyle A}\") + \"\\\\kern-.15em\\\\TeX}{KaTeX}}\"); // \\DeclareRobustCommand\\hspace{\\@ifstar\\@hspacer\\@hspace}\n// \\def\\@hspace#1{\\hskip #1\\relax}\n// \\def\\@hspacer#1{\\vrule \\@width\\z@\\nobreak\n// \\hskip #1\\hskip \\z@skip}\n\ndefineMacro(\"\\\\hspace\", \"\\\\@ifstar\\\\@hspacer\\\\@hspace\");\ndefineMacro(\"\\\\@hspace\", \"\\\\hskip #1\\\\relax\");\ndefineMacro(\"\\\\@hspacer\", \"\\\\rule{0pt}{0pt}\\\\hskip #1\\\\relax\"); //////////////////////////////////////////////////////////////////////\n// mathtools.sty\n//\\providecommand\\ordinarycolon{:}\n\ndefineMacro(\"\\\\ordinarycolon\", \":\"); //\\def\\vcentcolon{\\mathrel{\\mathop\\ordinarycolon}}\n//TODO(edemaine): Not yet centered. Fix via \\raisebox or #726\n\ndefineMacro(\"\\\\vcentcolon\", \"\\\\mathrel{\\\\mathop\\\\ordinarycolon}\"); // \\providecommand*\\dblcolon{\\vcentcolon\\mathrel{\\mkern-.9mu}\\vcentcolon}\n\ndefineMacro(\"\\\\dblcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-.9mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2237}}\"); // \\providecommand*\\coloneqq{\\vcentcolon\\mathrel{\\mkern-1.2mu}=}\n\ndefineMacro(\"\\\\coloneqq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}=}}\" + \"{\\\\mathop{\\\\char\\\"2254}}\"); // ≔\n// \\providecommand*\\Coloneqq{\\dblcolon\\mathrel{\\mkern-1.2mu}=}\n\ndefineMacro(\"\\\\Coloneqq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}=}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"3d}}\"); // \\providecommand*\\coloneq{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\n\ndefineMacro(\"\\\\coloneq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"2212}}\"); // \\providecommand*\\Coloneq{\\dblcolon\\mathrel{\\mkern-1.2mu}\\mathrel{-}}\n\ndefineMacro(\"\\\\Coloneq\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"2212}}\"); // \\providecommand*\\eqqcolon{=\\mathrel{\\mkern-1.2mu}\\vcentcolon}\n\ndefineMacro(\"\\\\eqqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2255}}\"); // ≕\n// \\providecommand*\\Eqqcolon{=\\mathrel{\\mkern-1.2mu}\\dblcolon}\n\ndefineMacro(\"\\\\Eqqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}\" + \"{\\\\mathop{\\\\char\\\"3d\\\\char\\\"2237}}\"); // \\providecommand*\\eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\vcentcolon}\n\ndefineMacro(\"\\\\eqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}\" + \"{\\\\mathop{\\\\char\\\"2239}}\"); // \\providecommand*\\Eqcolon{\\mathrel{-}\\mathrel{\\mkern-1.2mu}\\dblcolon}\n\ndefineMacro(\"\\\\Eqcolon\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}\" + \"{\\\\mathop{\\\\char\\\"2212\\\\char\\\"2237}}\"); // \\providecommand*\\colonapprox{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\approx}\n\ndefineMacro(\"\\\\colonapprox\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"2248}}\"); // \\providecommand*\\Colonapprox{\\dblcolon\\mathrel{\\mkern-1.2mu}\\approx}\n\ndefineMacro(\"\\\\Colonapprox\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"2248}}\"); // \\providecommand*\\colonsim{\\vcentcolon\\mathrel{\\mkern-1.2mu}\\sim}\n\ndefineMacro(\"\\\\colonsim\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}\" + \"{\\\\mathop{\\\\char\\\"3a\\\\char\\\"223c}}\"); // \\providecommand*\\Colonsim{\\dblcolon\\mathrel{\\mkern-1.2mu}\\sim}\n\ndefineMacro(\"\\\\Colonsim\", \"\\\\html@mathml{\" + \"\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}\" + \"{\\\\mathop{\\\\char\\\"2237\\\\char\\\"223c}}\"); // Some Unicode characters are implemented with macros to mathtools functions.\n\ndefineMacro(\"\\u2237\", \"\\\\dblcolon\"); // ::\n\ndefineMacro(\"\\u2239\", \"\\\\eqcolon\"); // -:\n\ndefineMacro(\"\\u2254\", \"\\\\coloneqq\"); // :=\n\ndefineMacro(\"\\u2255\", \"\\\\eqqcolon\"); // =:\n\ndefineMacro(\"\\u2A74\", \"\\\\Coloneqq\"); // ::=\n//////////////////////////////////////////////////////////////////////\n// colonequals.sty\n// Alternate names for mathtools's macros:\n\ndefineMacro(\"\\\\ratio\", \"\\\\vcentcolon\");\ndefineMacro(\"\\\\coloncolon\", \"\\\\dblcolon\");\ndefineMacro(\"\\\\colonequals\", \"\\\\coloneqq\");\ndefineMacro(\"\\\\coloncolonequals\", \"\\\\Coloneqq\");\ndefineMacro(\"\\\\equalscolon\", \"\\\\eqqcolon\");\ndefineMacro(\"\\\\equalscoloncolon\", \"\\\\Eqqcolon\");\ndefineMacro(\"\\\\colonminus\", \"\\\\coloneq\");\ndefineMacro(\"\\\\coloncolonminus\", \"\\\\Coloneq\");\ndefineMacro(\"\\\\minuscolon\", \"\\\\eqcolon\");\ndefineMacro(\"\\\\minuscoloncolon\", \"\\\\Eqcolon\"); // \\colonapprox name is same in mathtools and colonequals.\n\ndefineMacro(\"\\\\coloncolonapprox\", \"\\\\Colonapprox\"); // \\colonsim name is same in mathtools and colonequals.\n\ndefineMacro(\"\\\\coloncolonsim\", \"\\\\Colonsim\"); // Additional macros, implemented by analogy with mathtools definitions:\n\ndefineMacro(\"\\\\simcolon\", \"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\");\ndefineMacro(\"\\\\simcoloncolon\", \"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\");\ndefineMacro(\"\\\\approxcolon\", \"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\");\ndefineMacro(\"\\\\approxcoloncolon\", \"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\"); // Present in newtxmath, pxfonts and txfonts\n\ndefineMacro(\"\\\\notni\", \"\\\\html@mathml{\\\\not\\\\ni}{\\\\mathrel{\\\\char`\\u220C}}\");\ndefineMacro(\"\\\\limsup\", \"\\\\DOTSB\\\\operatorname*{lim\\\\,sup}\");\ndefineMacro(\"\\\\liminf\", \"\\\\DOTSB\\\\operatorname*{lim\\\\,inf}\"); //////////////////////////////////////////////////////////////////////\n// From amsopn.sty\n\ndefineMacro(\"\\\\injlim\", \"\\\\DOTSB\\\\operatorname*{inj\\\\,lim}\");\ndefineMacro(\"\\\\projlim\", \"\\\\DOTSB\\\\operatorname*{proj\\\\,lim}\");\ndefineMacro(\"\\\\varlimsup\", \"\\\\DOTSB\\\\operatorname*{\\\\overline{lim}}\");\ndefineMacro(\"\\\\varliminf\", \"\\\\DOTSB\\\\operatorname*{\\\\underline{lim}}\");\ndefineMacro(\"\\\\varinjlim\", \"\\\\DOTSB\\\\operatorname*{\\\\underrightarrow{lim}}\");\ndefineMacro(\"\\\\varprojlim\", \"\\\\DOTSB\\\\operatorname*{\\\\underleftarrow{lim}}\"); //////////////////////////////////////////////////////////////////////\n// MathML alternates for KaTeX glyphs in the Unicode private area\n\ndefineMacro(\"\\\\gvertneqq\", \"\\\\html@mathml{\\\\@gvertneqq}{\\u2269}\");\ndefineMacro(\"\\\\lvertneqq\", \"\\\\html@mathml{\\\\@lvertneqq}{\\u2268}\");\ndefineMacro(\"\\\\ngeqq\", \"\\\\html@mathml{\\\\@ngeqq}{\\u2271}\");\ndefineMacro(\"\\\\ngeqslant\", \"\\\\html@mathml{\\\\@ngeqslant}{\\u2271}\");\ndefineMacro(\"\\\\nleqq\", \"\\\\html@mathml{\\\\@nleqq}{\\u2270}\");\ndefineMacro(\"\\\\nleqslant\", \"\\\\html@mathml{\\\\@nleqslant}{\\u2270}\");\ndefineMacro(\"\\\\nshortmid\", \"\\\\html@mathml{\\\\@nshortmid}{∤}\");\ndefineMacro(\"\\\\nshortparallel\", \"\\\\html@mathml{\\\\@nshortparallel}{∦}\");\ndefineMacro(\"\\\\nsubseteqq\", \"\\\\html@mathml{\\\\@nsubseteqq}{\\u2288}\");\ndefineMacro(\"\\\\nsupseteqq\", \"\\\\html@mathml{\\\\@nsupseteqq}{\\u2289}\");\ndefineMacro(\"\\\\varsubsetneq\", \"\\\\html@mathml{\\\\@varsubsetneq}{⊊}\");\ndefineMacro(\"\\\\varsubsetneqq\", \"\\\\html@mathml{\\\\@varsubsetneqq}{⫋}\");\ndefineMacro(\"\\\\varsupsetneq\", \"\\\\html@mathml{\\\\@varsupsetneq}{⊋}\");\ndefineMacro(\"\\\\varsupsetneqq\", \"\\\\html@mathml{\\\\@varsupsetneqq}{⫌}\");\ndefineMacro(\"\\\\imath\", \"\\\\html@mathml{\\\\@imath}{\\u0131}\");\ndefineMacro(\"\\\\jmath\", \"\\\\html@mathml{\\\\@jmath}{\\u0237}\"); //////////////////////////////////////////////////////////////////////\n// stmaryrd and semantic\n// The stmaryrd and semantic packages render the next four items by calling a\n// glyph. Those glyphs do not exist in the KaTeX fonts. Hence the macros.\n\ndefineMacro(\"\\\\llbracket\", \"\\\\html@mathml{\" + \"\\\\mathopen{[\\\\mkern-3.2mu[}}\" + \"{\\\\mathopen{\\\\char`\\u27e6}}\");\ndefineMacro(\"\\\\rrbracket\", \"\\\\html@mathml{\" + \"\\\\mathclose{]\\\\mkern-3.2mu]}}\" + \"{\\\\mathclose{\\\\char`\\u27e7}}\");\ndefineMacro(\"\\u27e6\", \"\\\\llbracket\"); // blackboard bold [\n\ndefineMacro(\"\\u27e7\", \"\\\\rrbracket\"); // blackboard bold ]\n\ndefineMacro(\"\\\\lBrace\", \"\\\\html@mathml{\" + \"\\\\mathopen{\\\\{\\\\mkern-3.2mu[}}\" + \"{\\\\mathopen{\\\\char`\\u2983}}\");\ndefineMacro(\"\\\\rBrace\", \"\\\\html@mathml{\" + \"\\\\mathclose{]\\\\mkern-3.2mu\\\\}}}\" + \"{\\\\mathclose{\\\\char`\\u2984}}\");\ndefineMacro(\"\\u2983\", \"\\\\lBrace\"); // blackboard bold {\n\ndefineMacro(\"\\u2984\", \"\\\\rBrace\"); // blackboard bold }\n// TODO: Create variable sized versions of the last two items. I believe that\n// will require new font glyphs.\n// The stmaryrd function `\\minuso` provides a \"Plimsoll\" symbol that\n// superimposes the characters \\circ and \\mathminus. Used in chemistry.\n\ndefineMacro(\"\\\\minuso\", \"\\\\mathbin{\\\\html@mathml{\" + \"{\\\\mathrlap{\\\\mathchoice{\\\\kern{0.145em}}{\\\\kern{0.145em}}\" + \"{\\\\kern{0.1015em}}{\\\\kern{0.0725em}}\\\\circ}{-}}}\" + \"{\\\\char`⦵}}\");\ndefineMacro(\"⦵\", \"\\\\minuso\"); //////////////////////////////////////////////////////////////////////\n// texvc.sty\n// The texvc package contains macros available in mediawiki pages.\n// We omit the functions deprecated at\n// https://en.wikipedia.org/wiki/Help:Displaying_a_formula#Deprecated_syntax\n// We also omit texvc's \\O, which conflicts with \\text{\\O}\n\ndefineMacro(\"\\\\darr\", \"\\\\downarrow\");\ndefineMacro(\"\\\\dArr\", \"\\\\Downarrow\");\ndefineMacro(\"\\\\Darr\", \"\\\\Downarrow\");\ndefineMacro(\"\\\\lang\", \"\\\\langle\");\ndefineMacro(\"\\\\rang\", \"\\\\rangle\");\ndefineMacro(\"\\\\uarr\", \"\\\\uparrow\");\ndefineMacro(\"\\\\uArr\", \"\\\\Uparrow\");\ndefineMacro(\"\\\\Uarr\", \"\\\\Uparrow\");\ndefineMacro(\"\\\\N\", \"\\\\mathbb{N}\");\ndefineMacro(\"\\\\R\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Z\", \"\\\\mathbb{Z}\");\ndefineMacro(\"\\\\alef\", \"\\\\aleph\");\ndefineMacro(\"\\\\alefsym\", \"\\\\aleph\");\ndefineMacro(\"\\\\Alpha\", \"\\\\mathrm{A}\");\ndefineMacro(\"\\\\Beta\", \"\\\\mathrm{B}\");\ndefineMacro(\"\\\\bull\", \"\\\\bullet\");\ndefineMacro(\"\\\\Chi\", \"\\\\mathrm{X}\");\ndefineMacro(\"\\\\clubs\", \"\\\\clubsuit\");\ndefineMacro(\"\\\\cnums\", \"\\\\mathbb{C}\");\ndefineMacro(\"\\\\Complex\", \"\\\\mathbb{C}\");\ndefineMacro(\"\\\\Dagger\", \"\\\\ddagger\");\ndefineMacro(\"\\\\diamonds\", \"\\\\diamondsuit\");\ndefineMacro(\"\\\\empty\", \"\\\\emptyset\");\ndefineMacro(\"\\\\Epsilon\", \"\\\\mathrm{E}\");\ndefineMacro(\"\\\\Eta\", \"\\\\mathrm{H}\");\ndefineMacro(\"\\\\exist\", \"\\\\exists\");\ndefineMacro(\"\\\\harr\", \"\\\\leftrightarrow\");\ndefineMacro(\"\\\\hArr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Harr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\hearts\", \"\\\\heartsuit\");\ndefineMacro(\"\\\\image\", \"\\\\Im\");\ndefineMacro(\"\\\\infin\", \"\\\\infty\");\ndefineMacro(\"\\\\Iota\", \"\\\\mathrm{I}\");\ndefineMacro(\"\\\\isin\", \"\\\\in\");\ndefineMacro(\"\\\\Kappa\", \"\\\\mathrm{K}\");\ndefineMacro(\"\\\\larr\", \"\\\\leftarrow\");\ndefineMacro(\"\\\\lArr\", \"\\\\Leftarrow\");\ndefineMacro(\"\\\\Larr\", \"\\\\Leftarrow\");\ndefineMacro(\"\\\\lrarr\", \"\\\\leftrightarrow\");\ndefineMacro(\"\\\\lrArr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Lrarr\", \"\\\\Leftrightarrow\");\ndefineMacro(\"\\\\Mu\", \"\\\\mathrm{M}\");\ndefineMacro(\"\\\\natnums\", \"\\\\mathbb{N}\");\ndefineMacro(\"\\\\Nu\", \"\\\\mathrm{N}\");\ndefineMacro(\"\\\\Omicron\", \"\\\\mathrm{O}\");\ndefineMacro(\"\\\\plusmn\", \"\\\\pm\");\ndefineMacro(\"\\\\rarr\", \"\\\\rightarrow\");\ndefineMacro(\"\\\\rArr\", \"\\\\Rightarrow\");\ndefineMacro(\"\\\\Rarr\", \"\\\\Rightarrow\");\ndefineMacro(\"\\\\real\", \"\\\\Re\");\ndefineMacro(\"\\\\reals\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Reals\", \"\\\\mathbb{R}\");\ndefineMacro(\"\\\\Rho\", \"\\\\mathrm{P}\");\ndefineMacro(\"\\\\sdot\", \"\\\\cdot\");\ndefineMacro(\"\\\\sect\", \"\\\\S\");\ndefineMacro(\"\\\\spades\", \"\\\\spadesuit\");\ndefineMacro(\"\\\\sub\", \"\\\\subset\");\ndefineMacro(\"\\\\sube\", \"\\\\subseteq\");\ndefineMacro(\"\\\\supe\", \"\\\\supseteq\");\ndefineMacro(\"\\\\Tau\", \"\\\\mathrm{T}\");\ndefineMacro(\"\\\\thetasym\", \"\\\\vartheta\"); // TODO: defineMacro(\"\\\\varcoppa\", \"\\\\\\mbox{\\\\coppa}\");\n\ndefineMacro(\"\\\\weierp\", \"\\\\wp\");\ndefineMacro(\"\\\\Zeta\", \"\\\\mathrm{Z}\"); //////////////////////////////////////////////////////////////////////\n// statmath.sty\n// https://ctan.math.illinois.edu/macros/latex/contrib/statmath/statmath.pdf\n\ndefineMacro(\"\\\\argmin\", \"\\\\DOTSB\\\\operatorname*{arg\\\\,min}\");\ndefineMacro(\"\\\\argmax\", \"\\\\DOTSB\\\\operatorname*{arg\\\\,max}\");\ndefineMacro(\"\\\\plim\", \"\\\\DOTSB\\\\mathop{\\\\operatorname{plim}}\\\\limits\"); //////////////////////////////////////////////////////////////////////\n// braket.sty\n// http://ctan.math.washington.edu/tex-archive/macros/latex/contrib/braket/braket.pdf\n\ndefineMacro(\"\\\\bra\", \"\\\\mathinner{\\\\langle{#1}|}\");\ndefineMacro(\"\\\\ket\", \"\\\\mathinner{|{#1}\\\\rangle}\");\ndefineMacro(\"\\\\braket\", \"\\\\mathinner{\\\\langle{#1}\\\\rangle}\");\ndefineMacro(\"\\\\Bra\", \"\\\\left\\\\langle#1\\\\right|\");\ndefineMacro(\"\\\\Ket\", \"\\\\left|#1\\\\right\\\\rangle\");\n\nvar braketHelper = one => context => {\n var left = context.consumeArg().tokens;\n var middle = context.consumeArg().tokens;\n var middleDouble = context.consumeArg().tokens;\n var right = context.consumeArg().tokens;\n var oldMiddle = context.macros.get(\"|\");\n var oldMiddleDouble = context.macros.get(\"\\\\|\");\n context.macros.beginGroup();\n\n var midMacro = double => context => {\n if (one) {\n // Only modify the first instance of | or \\|\n context.macros.set(\"|\", oldMiddle);\n\n if (middleDouble.length) {\n context.macros.set(\"\\\\|\", oldMiddleDouble);\n }\n }\n\n var doubled = double;\n\n if (!double && middleDouble.length) {\n // Mimic \\@ifnextchar\n var nextToken = context.future();\n\n if (nextToken.text === \"|\") {\n context.popToken();\n doubled = true;\n }\n }\n\n return {\n tokens: doubled ? middleDouble : middle,\n numArgs: 0\n };\n };\n\n context.macros.set(\"|\", midMacro(false));\n\n if (middleDouble.length) {\n context.macros.set(\"\\\\|\", midMacro(true));\n }\n\n var arg = context.consumeArg().tokens;\n var expanded = context.expandTokens([...right, ...arg, ...left // reversed\n ]);\n context.macros.endGroup();\n return {\n tokens: expanded.reverse(),\n numArgs: 0\n };\n};\n\ndefineMacro(\"\\\\bra@ket\", braketHelper(false));\ndefineMacro(\"\\\\bra@set\", braketHelper(true));\ndefineMacro(\"\\\\Braket\", \"\\\\bra@ket{\\\\left\\\\langle}\" + \"{\\\\,\\\\middle\\\\vert\\\\,}{\\\\,\\\\middle\\\\vert\\\\,}{\\\\right\\\\rangle}\");\ndefineMacro(\"\\\\Set\", \"\\\\bra@set{\\\\left\\\\{\\\\:}\" + \"{\\\\;\\\\middle\\\\vert\\\\;}{\\\\;\\\\middle\\\\Vert\\\\;}{\\\\:\\\\right\\\\}}\");\ndefineMacro(\"\\\\set\", \"\\\\bra@set{\\\\{\\\\,}{\\\\mid}{}{\\\\,\\\\}}\"); // has no support for special || or \\|\n//////////////////////////////////////////////////////////////////////\n// actuarialangle.dtx\n\ndefineMacro(\"\\\\angln\", \"{\\\\angl n}\"); // Custom Khan Academy colors, should be moved to an optional package\n\ndefineMacro(\"\\\\blue\", \"\\\\textcolor{##6495ed}{#1}\");\ndefineMacro(\"\\\\orange\", \"\\\\textcolor{##ffa500}{#1}\");\ndefineMacro(\"\\\\pink\", \"\\\\textcolor{##ff00af}{#1}\");\ndefineMacro(\"\\\\red\", \"\\\\textcolor{##df0030}{#1}\");\ndefineMacro(\"\\\\green\", \"\\\\textcolor{##28ae7b}{#1}\");\ndefineMacro(\"\\\\gray\", \"\\\\textcolor{gray}{#1}\");\ndefineMacro(\"\\\\purple\", \"\\\\textcolor{##9d38bd}{#1}\");\ndefineMacro(\"\\\\blueA\", \"\\\\textcolor{##ccfaff}{#1}\");\ndefineMacro(\"\\\\blueB\", \"\\\\textcolor{##80f6ff}{#1}\");\ndefineMacro(\"\\\\blueC\", \"\\\\textcolor{##63d9ea}{#1}\");\ndefineMacro(\"\\\\blueD\", \"\\\\textcolor{##11accd}{#1}\");\ndefineMacro(\"\\\\blueE\", \"\\\\textcolor{##0c7f99}{#1}\");\ndefineMacro(\"\\\\tealA\", \"\\\\textcolor{##94fff5}{#1}\");\ndefineMacro(\"\\\\tealB\", \"\\\\textcolor{##26edd5}{#1}\");\ndefineMacro(\"\\\\tealC\", \"\\\\textcolor{##01d1c1}{#1}\");\ndefineMacro(\"\\\\tealD\", \"\\\\textcolor{##01a995}{#1}\");\ndefineMacro(\"\\\\tealE\", \"\\\\textcolor{##208170}{#1}\");\ndefineMacro(\"\\\\greenA\", \"\\\\textcolor{##b6ffb0}{#1}\");\ndefineMacro(\"\\\\greenB\", \"\\\\textcolor{##8af281}{#1}\");\ndefineMacro(\"\\\\greenC\", \"\\\\textcolor{##74cf70}{#1}\");\ndefineMacro(\"\\\\greenD\", \"\\\\textcolor{##1fab54}{#1}\");\ndefineMacro(\"\\\\greenE\", \"\\\\textcolor{##0d923f}{#1}\");\ndefineMacro(\"\\\\goldA\", \"\\\\textcolor{##ffd0a9}{#1}\");\ndefineMacro(\"\\\\goldB\", \"\\\\textcolor{##ffbb71}{#1}\");\ndefineMacro(\"\\\\goldC\", \"\\\\textcolor{##ff9c39}{#1}\");\ndefineMacro(\"\\\\goldD\", \"\\\\textcolor{##e07d10}{#1}\");\ndefineMacro(\"\\\\goldE\", \"\\\\textcolor{##a75a05}{#1}\");\ndefineMacro(\"\\\\redA\", \"\\\\textcolor{##fca9a9}{#1}\");\ndefineMacro(\"\\\\redB\", \"\\\\textcolor{##ff8482}{#1}\");\ndefineMacro(\"\\\\redC\", \"\\\\textcolor{##f9685d}{#1}\");\ndefineMacro(\"\\\\redD\", \"\\\\textcolor{##e84d39}{#1}\");\ndefineMacro(\"\\\\redE\", \"\\\\textcolor{##bc2612}{#1}\");\ndefineMacro(\"\\\\maroonA\", \"\\\\textcolor{##ffbde0}{#1}\");\ndefineMacro(\"\\\\maroonB\", \"\\\\textcolor{##ff92c6}{#1}\");\ndefineMacro(\"\\\\maroonC\", \"\\\\textcolor{##ed5fa6}{#1}\");\ndefineMacro(\"\\\\maroonD\", \"\\\\textcolor{##ca337c}{#1}\");\ndefineMacro(\"\\\\maroonE\", \"\\\\textcolor{##9e034e}{#1}\");\ndefineMacro(\"\\\\purpleA\", \"\\\\textcolor{##ddd7ff}{#1}\");\ndefineMacro(\"\\\\purpleB\", \"\\\\textcolor{##c6b9fc}{#1}\");\ndefineMacro(\"\\\\purpleC\", \"\\\\textcolor{##aa87ff}{#1}\");\ndefineMacro(\"\\\\purpleD\", \"\\\\textcolor{##7854ab}{#1}\");\ndefineMacro(\"\\\\purpleE\", \"\\\\textcolor{##543b78}{#1}\");\ndefineMacro(\"\\\\mintA\", \"\\\\textcolor{##f5f9e8}{#1}\");\ndefineMacro(\"\\\\mintB\", \"\\\\textcolor{##edf2df}{#1}\");\ndefineMacro(\"\\\\mintC\", \"\\\\textcolor{##e0e5cc}{#1}\");\ndefineMacro(\"\\\\grayA\", \"\\\\textcolor{##f6f7f7}{#1}\");\ndefineMacro(\"\\\\grayB\", \"\\\\textcolor{##f0f1f2}{#1}\");\ndefineMacro(\"\\\\grayC\", \"\\\\textcolor{##e3e5e6}{#1}\");\ndefineMacro(\"\\\\grayD\", \"\\\\textcolor{##d6d8da}{#1}\");\ndefineMacro(\"\\\\grayE\", \"\\\\textcolor{##babec2}{#1}\");\ndefineMacro(\"\\\\grayF\", \"\\\\textcolor{##888d93}{#1}\");\ndefineMacro(\"\\\\grayG\", \"\\\\textcolor{##626569}{#1}\");\ndefineMacro(\"\\\\grayH\", \"\\\\textcolor{##3b3e40}{#1}\");\ndefineMacro(\"\\\\grayI\", \"\\\\textcolor{##21242c}{#1}\");\ndefineMacro(\"\\\\kaBlue\", \"\\\\textcolor{##314453}{#1}\");\ndefineMacro(\"\\\\kaGreen\", \"\\\\textcolor{##71B307}{#1}\");\n\n/**\n * This file contains the “gullet” where macros are expanded\n * until only non-macro tokens remain.\n */\n// List of commands that act like macros but aren't defined as a macro,\n// function, or symbol. Used in `isDefined`.\nvar implicitCommands = {\n \"^\": true,\n // Parser.js\n \"_\": true,\n // Parser.js\n \"\\\\limits\": true,\n // Parser.js\n \"\\\\nolimits\": true // Parser.js\n\n};\nclass MacroExpander {\n constructor(input, settings, mode) {\n this.settings = void 0;\n this.expansionCount = void 0;\n this.lexer = void 0;\n this.macros = void 0;\n this.stack = void 0;\n this.mode = void 0;\n this.settings = settings;\n this.expansionCount = 0;\n this.feed(input); // Make new global namespace\n\n this.macros = new Namespace(macros, settings.macros);\n this.mode = mode;\n this.stack = []; // contains tokens in REVERSE order\n }\n /**\n * Feed a new input string to the same MacroExpander\n * (with existing macros etc.).\n */\n\n\n feed(input) {\n this.lexer = new Lexer(input, this.settings);\n }\n /**\n * Switches between \"text\" and \"math\" modes.\n */\n\n\n switchMode(newMode) {\n this.mode = newMode;\n }\n /**\n * Start a new group nesting within all namespaces.\n */\n\n\n beginGroup() {\n this.macros.beginGroup();\n }\n /**\n * End current group nesting within all namespaces.\n */\n\n\n endGroup() {\n this.macros.endGroup();\n }\n /**\n * Ends all currently nested groups (if any), restoring values before the\n * groups began. Useful in case of an error in the middle of parsing.\n */\n\n\n endGroups() {\n this.macros.endGroups();\n }\n /**\n * Returns the topmost token on the stack, without expanding it.\n * Similar in behavior to TeX's `\\futurelet`.\n */\n\n\n future() {\n if (this.stack.length === 0) {\n this.pushToken(this.lexer.lex());\n }\n\n return this.stack[this.stack.length - 1];\n }\n /**\n * Remove and return the next unexpanded token.\n */\n\n\n popToken() {\n this.future(); // ensure non-empty stack\n\n return this.stack.pop();\n }\n /**\n * Add a given token to the token stack. In particular, this get be used\n * to put back a token returned from one of the other methods.\n */\n\n\n pushToken(token) {\n this.stack.push(token);\n }\n /**\n * Append an array of tokens to the token stack.\n */\n\n\n pushTokens(tokens) {\n this.stack.push(...tokens);\n }\n /**\n * Find an macro argument without expanding tokens and append the array of\n * tokens to the token stack. Uses Token as a container for the result.\n */\n\n\n scanArgument(isOptional) {\n var start;\n var end;\n var tokens;\n\n if (isOptional) {\n this.consumeSpaces(); // \\@ifnextchar gobbles any space following it\n\n if (this.future().text !== \"[\") {\n return null;\n }\n\n start = this.popToken(); // don't include [ in tokens\n\n ({\n tokens,\n end\n } = this.consumeArg([\"]\"]));\n } else {\n ({\n tokens,\n start,\n end\n } = this.consumeArg());\n } // indicate the end of an argument\n\n\n this.pushToken(new Token(\"EOF\", end.loc));\n this.pushTokens(tokens);\n return start.range(end, \"\");\n }\n /**\n * Consume all following space tokens, without expansion.\n */\n\n\n consumeSpaces() {\n for (;;) {\n var token = this.future();\n\n if (token.text === \" \") {\n this.stack.pop();\n } else {\n break;\n }\n }\n }\n /**\n * Consume an argument from the token stream, and return the resulting array\n * of tokens and start/end token.\n */\n\n\n consumeArg(delims) {\n // The argument for a delimited parameter is the shortest (possibly\n // empty) sequence of tokens with properly nested {...} groups that is\n // followed ... by this particular list of non-parameter tokens.\n // The argument for an undelimited parameter is the next nonblank\n // token, unless that token is ‘{’, when the argument will be the\n // entire {...} group that follows.\n var tokens = [];\n var isDelimited = delims && delims.length > 0;\n\n if (!isDelimited) {\n // Ignore spaces between arguments. As the TeXbook says:\n // \"After you have said ‘\\def\\row#1#2{...}’, you are allowed to\n // put spaces between the arguments (e.g., ‘\\row x n’), because\n // TeX doesn’t use single spaces as undelimited arguments.\"\n this.consumeSpaces();\n }\n\n var start = this.future();\n var tok;\n var depth = 0;\n var match = 0;\n\n do {\n tok = this.popToken();\n tokens.push(tok);\n\n if (tok.text === \"{\") {\n ++depth;\n } else if (tok.text === \"}\") {\n --depth;\n\n if (depth === -1) {\n throw new ParseError(\"Extra }\", tok);\n }\n } else if (tok.text === \"EOF\") {\n throw new ParseError(\"Unexpected end of input in a macro argument\" + \", expected '\" + (delims && isDelimited ? delims[match] : \"}\") + \"'\", tok);\n }\n\n if (delims && isDelimited) {\n if ((depth === 0 || depth === 1 && delims[match] === \"{\") && tok.text === delims[match]) {\n ++match;\n\n if (match === delims.length) {\n // don't include delims in tokens\n tokens.splice(-match, match);\n break;\n }\n } else {\n match = 0;\n }\n }\n } while (depth !== 0 || isDelimited); // If the argument found ... has the form ‘{<nested tokens>}’,\n // ... the outermost braces enclosing the argument are removed\n\n\n if (start.text === \"{\" && tokens[tokens.length - 1].text === \"}\") {\n tokens.pop();\n tokens.shift();\n }\n\n tokens.reverse(); // to fit in with stack order\n\n return {\n tokens,\n start,\n end: tok\n };\n }\n /**\n * Consume the specified number of (delimited) arguments from the token\n * stream and return the resulting array of arguments.\n */\n\n\n consumeArgs(numArgs, delimiters) {\n if (delimiters) {\n if (delimiters.length !== numArgs + 1) {\n throw new ParseError(\"The length of delimiters doesn't match the number of args!\");\n }\n\n var delims = delimiters[0];\n\n for (var i = 0; i < delims.length; i++) {\n var tok = this.popToken();\n\n if (delims[i] !== tok.text) {\n throw new ParseError(\"Use of the macro doesn't match its definition\", tok);\n }\n }\n }\n\n var args = [];\n\n for (var _i = 0; _i < numArgs; _i++) {\n args.push(this.consumeArg(delimiters && delimiters[_i + 1]).tokens);\n }\n\n return args;\n }\n /**\n * Expand the next token only once if possible.\n *\n * If the token is expanded, the resulting tokens will be pushed onto\n * the stack in reverse order, and the number of such tokens will be\n * returned. This number might be zero or positive.\n *\n * If not, the return value is `false`, and the next token remains at the\n * top of the stack.\n *\n * In either case, the next token will be on the top of the stack,\n * or the stack will be empty (in case of empty expansion\n * and no other tokens).\n *\n * Used to implement `expandAfterFuture` and `expandNextToken`.\n *\n * If expandableOnly, only expandable tokens are expanded and\n * an undefined control sequence results in an error.\n */\n\n\n expandOnce(expandableOnly) {\n var topToken = this.popToken();\n var name = topToken.text;\n var expansion = !topToken.noexpand ? this._getExpansion(name) : null;\n\n if (expansion == null || expandableOnly && expansion.unexpandable) {\n if (expandableOnly && expansion == null && name[0] === \"\\\\\" && !this.isDefined(name)) {\n throw new ParseError(\"Undefined control sequence: \" + name);\n }\n\n this.pushToken(topToken);\n return false;\n }\n\n this.expansionCount++;\n\n if (this.expansionCount > this.settings.maxExpand) {\n throw new ParseError(\"Too many expansions: infinite loop or \" + \"need to increase maxExpand setting\");\n }\n\n var tokens = expansion.tokens;\n var args = this.consumeArgs(expansion.numArgs, expansion.delimiters);\n\n if (expansion.numArgs) {\n // paste arguments in place of the placeholders\n tokens = tokens.slice(); // make a shallow copy\n\n for (var i = tokens.length - 1; i >= 0; --i) {\n var tok = tokens[i];\n\n if (tok.text === \"#\") {\n if (i === 0) {\n throw new ParseError(\"Incomplete placeholder at end of macro body\", tok);\n }\n\n tok = tokens[--i]; // next token on stack\n\n if (tok.text === \"#\") {\n // ## → #\n tokens.splice(i + 1, 1); // drop first #\n } else if (/^[1-9]$/.test(tok.text)) {\n // replace the placeholder with the indicated argument\n tokens.splice(i, 2, ...args[+tok.text - 1]);\n } else {\n throw new ParseError(\"Not a valid argument number\", tok);\n }\n }\n }\n } // Concatenate expansion onto top of stack.\n\n\n this.pushTokens(tokens);\n return tokens.length;\n }\n /**\n * Expand the next token only once (if possible), and return the resulting\n * top token on the stack (without removing anything from the stack).\n * Similar in behavior to TeX's `\\expandafter\\futurelet`.\n * Equivalent to expandOnce() followed by future().\n */\n\n\n expandAfterFuture() {\n this.expandOnce();\n return this.future();\n }\n /**\n * Recursively expand first token, then return first non-expandable token.\n */\n\n\n expandNextToken() {\n for (;;) {\n if (this.expandOnce() === false) {\n // fully expanded\n var token = this.stack.pop(); // the token after \\noexpand is interpreted as if its meaning\n // were ‘\\relax’\n\n if (token.treatAsRelax) {\n token.text = \"\\\\relax\";\n }\n\n return token;\n }\n } // Flow unable to figure out that this pathway is impossible.\n // https://github.com/facebook/flow/issues/4808\n\n\n throw new Error(); // eslint-disable-line no-unreachable\n }\n /**\n * Fully expand the given macro name and return the resulting list of\n * tokens, or return `undefined` if no such macro is defined.\n */\n\n\n expandMacro(name) {\n return this.macros.has(name) ? this.expandTokens([new Token(name)]) : undefined;\n }\n /**\n * Fully expand the given token stream and return the resulting list of\n * tokens. Note that the input tokens are in reverse order, but the\n * output tokens are in forward order.\n */\n\n\n expandTokens(tokens) {\n var output = [];\n var oldStackLength = this.stack.length;\n this.pushTokens(tokens);\n\n while (this.stack.length > oldStackLength) {\n // Expand only expandable tokens\n if (this.expandOnce(true) === false) {\n // fully expanded\n var token = this.stack.pop();\n\n if (token.treatAsRelax) {\n // the expansion of \\noexpand is the token itself\n token.noexpand = false;\n token.treatAsRelax = false;\n }\n\n output.push(token);\n }\n }\n\n return output;\n }\n /**\n * Fully expand the given macro name and return the result as a string,\n * or return `undefined` if no such macro is defined.\n */\n\n\n expandMacroAsText(name) {\n var tokens = this.expandMacro(name);\n\n if (tokens) {\n return tokens.map(token => token.text).join(\"\");\n } else {\n return tokens;\n }\n }\n /**\n * Returns the expanded macro as a reversed array of tokens and a macro\n * argument count. Or returns `null` if no such macro.\n */\n\n\n _getExpansion(name) {\n var definition = this.macros.get(name);\n\n if (definition == null) {\n // mainly checking for undefined here\n return definition;\n } // If a single character has an associated catcode other than 13\n // (active character), then don't expand it.\n\n\n if (name.length === 1) {\n var catcode = this.lexer.catcodes[name];\n\n if (catcode != null && catcode !== 13) {\n return;\n }\n }\n\n var expansion = typeof definition === \"function\" ? definition(this) : definition;\n\n if (typeof expansion === \"string\") {\n var numArgs = 0;\n\n if (expansion.indexOf(\"#\") !== -1) {\n var stripped = expansion.replace(/##/g, \"\");\n\n while (stripped.indexOf(\"#\" + (numArgs + 1)) !== -1) {\n ++numArgs;\n }\n }\n\n var bodyLexer = new Lexer(expansion, this.settings);\n var tokens = [];\n var tok = bodyLexer.lex();\n\n while (tok.text !== \"EOF\") {\n tokens.push(tok);\n tok = bodyLexer.lex();\n }\n\n tokens.reverse(); // to fit in with stack using push and pop\n\n var expanded = {\n tokens,\n numArgs\n };\n return expanded;\n }\n\n return expansion;\n }\n /**\n * Determine whether a command is currently \"defined\" (has some\n * functionality), meaning that it's a macro (in the current group),\n * a function, a symbol, or one of the special commands listed in\n * `implicitCommands`.\n */\n\n\n isDefined(name) {\n return this.macros.has(name) || functions.hasOwnProperty(name) || symbols.math.hasOwnProperty(name) || symbols.text.hasOwnProperty(name) || implicitCommands.hasOwnProperty(name);\n }\n /**\n * Determine whether a command is expandable.\n */\n\n\n isExpandable(name) {\n var macro = this.macros.get(name);\n return macro != null ? typeof macro === \"string\" || typeof macro === \"function\" || !macro.unexpandable : functions.hasOwnProperty(name) && !functions[name].primitive;\n }\n\n}\n\n// Helpers for Parser.js handling of Unicode (sub|super)script characters.\nvar unicodeSubRegEx = /^[₊₋₌₍₎₀₁₂₃₄₅₆₇₈₉ₐₑₕᵢⱼₖₗₘₙₒₚᵣₛₜᵤᵥₓᵦᵧᵨᵩᵪ]/;\nvar uSubsAndSups = Object.freeze({\n '₊': '+',\n '₋': '-',\n '₌': '=',\n '₍': '(',\n '₎': ')',\n '₀': '0',\n '₁': '1',\n '₂': '2',\n '₃': '3',\n '₄': '4',\n '₅': '5',\n '₆': '6',\n '₇': '7',\n '₈': '8',\n '₉': '9',\n '\\u2090': 'a',\n '\\u2091': 'e',\n '\\u2095': 'h',\n '\\u1D62': 'i',\n '\\u2C7C': 'j',\n '\\u2096': 'k',\n '\\u2097': 'l',\n '\\u2098': 'm',\n '\\u2099': 'n',\n '\\u2092': 'o',\n '\\u209A': 'p',\n '\\u1D63': 'r',\n '\\u209B': 's',\n '\\u209C': 't',\n '\\u1D64': 'u',\n '\\u1D65': 'v',\n '\\u2093': 'x',\n '\\u1D66': 'β',\n '\\u1D67': 'γ',\n '\\u1D68': 'ρ',\n '\\u1D69': '\\u03d5',\n '\\u1D6A': 'χ',\n '⁺': '+',\n '⁻': '-',\n '⁼': '=',\n '⁽': '(',\n '⁾': ')',\n '⁰': '0',\n '¹': '1',\n '²': '2',\n '³': '3',\n '⁴': '4',\n '⁵': '5',\n '⁶': '6',\n '⁷': '7',\n '⁸': '8',\n '⁹': '9',\n '\\u1D2C': 'A',\n '\\u1D2E': 'B',\n '\\u1D30': 'D',\n '\\u1D31': 'E',\n '\\u1D33': 'G',\n '\\u1D34': 'H',\n '\\u1D35': 'I',\n '\\u1D36': 'J',\n '\\u1D37': 'K',\n '\\u1D38': 'L',\n '\\u1D39': 'M',\n '\\u1D3A': 'N',\n '\\u1D3C': 'O',\n '\\u1D3E': 'P',\n '\\u1D3F': 'R',\n '\\u1D40': 'T',\n '\\u1D41': 'U',\n '\\u2C7D': 'V',\n '\\u1D42': 'W',\n '\\u1D43': 'a',\n '\\u1D47': 'b',\n '\\u1D9C': 'c',\n '\\u1D48': 'd',\n '\\u1D49': 'e',\n '\\u1DA0': 'f',\n '\\u1D4D': 'g',\n '\\u02B0': 'h',\n '\\u2071': 'i',\n '\\u02B2': 'j',\n '\\u1D4F': 'k',\n '\\u02E1': 'l',\n '\\u1D50': 'm',\n '\\u207F': 'n',\n '\\u1D52': 'o',\n '\\u1D56': 'p',\n '\\u02B3': 'r',\n '\\u02E2': 's',\n '\\u1D57': 't',\n '\\u1D58': 'u',\n '\\u1D5B': 'v',\n '\\u02B7': 'w',\n '\\u02E3': 'x',\n '\\u02B8': 'y',\n '\\u1DBB': 'z',\n '\\u1D5D': 'β',\n '\\u1D5E': 'γ',\n '\\u1D5F': 'δ',\n '\\u1D60': '\\u03d5',\n '\\u1D61': 'χ',\n '\\u1DBF': 'θ'\n});\n\n/* eslint no-constant-condition:0 */\n\nvar unicodeAccents = {\n \"́\": {\n \"text\": \"\\\\'\",\n \"math\": \"\\\\acute\"\n },\n \"̀\": {\n \"text\": \"\\\\`\",\n \"math\": \"\\\\grave\"\n },\n \"̈\": {\n \"text\": \"\\\\\\\"\",\n \"math\": \"\\\\ddot\"\n },\n \"̃\": {\n \"text\": \"\\\\~\",\n \"math\": \"\\\\tilde\"\n },\n \"̄\": {\n \"text\": \"\\\\=\",\n \"math\": \"\\\\bar\"\n },\n \"̆\": {\n \"text\": \"\\\\u\",\n \"math\": \"\\\\breve\"\n },\n \"̌\": {\n \"text\": \"\\\\v\",\n \"math\": \"\\\\check\"\n },\n \"̂\": {\n \"text\": \"\\\\^\",\n \"math\": \"\\\\hat\"\n },\n \"̇\": {\n \"text\": \"\\\\.\",\n \"math\": \"\\\\dot\"\n },\n \"̊\": {\n \"text\": \"\\\\r\",\n \"math\": \"\\\\mathring\"\n },\n \"̋\": {\n \"text\": \"\\\\H\"\n },\n \"̧\": {\n \"text\": \"\\\\c\"\n }\n};\nvar unicodeSymbols = {\n \"á\": \"á\",\n \"à\": \"à\",\n \"ä\": \"ä\",\n \"ǟ\": \"ǟ\",\n \"ã\": \"ã\",\n \"ā\": \"ā\",\n \"ă\": \"ă\",\n \"ắ\": \"ắ\",\n \"ằ\": \"ằ\",\n \"ẵ\": \"ẵ\",\n \"ǎ\": \"ǎ\",\n \"â\": \"â\",\n \"ấ\": \"ấ\",\n \"ầ\": \"ầ\",\n \"ẫ\": \"ẫ\",\n \"ȧ\": \"ȧ\",\n \"ǡ\": \"ǡ\",\n \"å\": \"å\",\n \"ǻ\": \"ǻ\",\n \"ḃ\": \"ḃ\",\n \"ć\": \"ć\",\n \"ḉ\": \"ḉ\",\n \"č\": \"č\",\n \"ĉ\": \"ĉ\",\n \"ċ\": \"ċ\",\n \"ç\": \"ç\",\n \"ď\": \"ď\",\n \"ḋ\": \"ḋ\",\n \"ḑ\": \"ḑ\",\n \"é\": \"é\",\n \"è\": \"è\",\n \"ë\": \"ë\",\n \"ẽ\": \"ẽ\",\n \"ē\": \"ē\",\n \"ḗ\": \"ḗ\",\n \"ḕ\": \"ḕ\",\n \"ĕ\": \"ĕ\",\n \"ḝ\": \"ḝ\",\n \"ě\": \"ě\",\n \"ê\": \"ê\",\n \"ế\": \"ế\",\n \"ề\": \"ề\",\n \"ễ\": \"ễ\",\n \"ė\": \"ė\",\n \"ȩ\": \"ȩ\",\n \"ḟ\": \"ḟ\",\n \"ǵ\": \"ǵ\",\n \"ḡ\": \"ḡ\",\n \"ğ\": \"ğ\",\n \"ǧ\": \"ǧ\",\n \"ĝ\": \"ĝ\",\n \"ġ\": \"ġ\",\n \"ģ\": \"ģ\",\n \"ḧ\": \"ḧ\",\n \"ȟ\": \"ȟ\",\n \"ĥ\": \"ĥ\",\n \"ḣ\": \"ḣ\",\n \"ḩ\": \"ḩ\",\n \"í\": \"í\",\n \"ì\": \"ì\",\n \"ï\": \"ï\",\n \"ḯ\": \"ḯ\",\n \"ĩ\": \"ĩ\",\n \"ī\": \"ī\",\n \"ĭ\": \"ĭ\",\n \"ǐ\": \"ǐ\",\n \"î\": \"î\",\n \"ǰ\": \"ǰ\",\n \"ĵ\": \"ĵ\",\n \"ḱ\": \"ḱ\",\n \"ǩ\": \"ǩ\",\n \"ķ\": \"ķ\",\n \"ĺ\": \"ĺ\",\n \"ľ\": \"ľ\",\n \"ļ\": \"ļ\",\n \"ḿ\": \"ḿ\",\n \"ṁ\": \"ṁ\",\n \"ń\": \"ń\",\n \"ǹ\": \"ǹ\",\n \"ñ\": \"ñ\",\n \"ň\": \"ň\",\n \"ṅ\": \"ṅ\",\n \"ņ\": \"ņ\",\n \"ó\": \"ó\",\n \"ò\": \"ò\",\n \"ö\": \"ö\",\n \"ȫ\": \"ȫ\",\n \"õ\": \"õ\",\n \"ṍ\": \"ṍ\",\n \"ṏ\": \"ṏ\",\n \"ȭ\": \"ȭ\",\n \"ō\": \"ō\",\n \"ṓ\": \"ṓ\",\n \"ṑ\": \"ṑ\",\n \"ŏ\": \"ŏ\",\n \"ǒ\": \"ǒ\",\n \"ô\": \"ô\",\n \"ố\": \"ố\",\n \"ồ\": \"ồ\",\n \"ỗ\": \"ỗ\",\n \"ȯ\": \"ȯ\",\n \"ȱ\": \"ȱ\",\n \"ő\": \"ő\",\n \"ṕ\": \"ṕ\",\n \"ṗ\": \"ṗ\",\n \"ŕ\": \"ŕ\",\n \"ř\": \"ř\",\n \"ṙ\": \"ṙ\",\n \"ŗ\": \"ŗ\",\n \"ś\": \"ś\",\n \"ṥ\": \"ṥ\",\n \"š\": \"š\",\n \"ṧ\": \"ṧ\",\n \"ŝ\": \"ŝ\",\n \"ṡ\": \"ṡ\",\n \"ş\": \"ş\",\n \"ẗ\": \"ẗ\",\n \"ť\": \"ť\",\n \"ṫ\": \"ṫ\",\n \"ţ\": \"ţ\",\n \"ú\": \"ú\",\n \"ù\": \"ù\",\n \"ü\": \"ü\",\n \"ǘ\": \"ǘ\",\n \"ǜ\": \"ǜ\",\n \"ǖ\": \"ǖ\",\n \"ǚ\": \"ǚ\",\n \"ũ\": \"ũ\",\n \"ṹ\": \"ṹ\",\n \"ū\": \"ū\",\n \"ṻ\": \"ṻ\",\n \"ŭ\": \"ŭ\",\n \"ǔ\": \"ǔ\",\n \"û\": \"û\",\n \"ů\": \"ů\",\n \"ű\": \"ű\",\n \"ṽ\": \"ṽ\",\n \"ẃ\": \"ẃ\",\n \"ẁ\": \"ẁ\",\n \"ẅ\": \"ẅ\",\n \"ŵ\": \"ŵ\",\n \"ẇ\": \"ẇ\",\n \"ẘ\": \"ẘ\",\n \"ẍ\": \"ẍ\",\n \"ẋ\": \"ẋ\",\n \"ý\": \"ý\",\n \"ỳ\": \"ỳ\",\n \"ÿ\": \"ÿ\",\n \"ỹ\": \"ỹ\",\n \"ȳ\": \"ȳ\",\n \"ŷ\": \"ŷ\",\n \"ẏ\": \"ẏ\",\n \"ẙ\": \"ẙ\",\n \"ź\": \"ź\",\n \"ž\": \"ž\",\n \"ẑ\": \"ẑ\",\n \"ż\": \"ż\",\n \"Á\": \"Á\",\n \"À\": \"À\",\n \"Ä\": \"Ä\",\n \"Ǟ\": \"Ǟ\",\n \"Ã\": \"Ã\",\n \"Ā\": \"Ā\",\n \"Ă\": \"Ă\",\n \"Ắ\": \"Ắ\",\n \"Ằ\": \"Ằ\",\n \"Ẵ\": \"Ẵ\",\n \"Ǎ\": \"Ǎ\",\n \"Â\": \"Â\",\n \"Ấ\": \"Ấ\",\n \"Ầ\": \"Ầ\",\n \"Ẫ\": \"Ẫ\",\n \"Ȧ\": \"Ȧ\",\n \"Ǡ\": \"Ǡ\",\n \"Å\": \"Å\",\n \"Ǻ\": \"Ǻ\",\n \"Ḃ\": \"Ḃ\",\n \"Ć\": \"Ć\",\n \"Ḉ\": \"Ḉ\",\n \"Č\": \"Č\",\n \"Ĉ\": \"Ĉ\",\n \"Ċ\": \"Ċ\",\n \"Ç\": \"Ç\",\n \"Ď\": \"Ď\",\n \"Ḋ\": \"Ḋ\",\n \"Ḑ\": \"Ḑ\",\n \"É\": \"É\",\n \"È\": \"È\",\n \"Ë\": \"Ë\",\n \"Ẽ\": \"Ẽ\",\n \"Ē\": \"Ē\",\n \"Ḗ\": \"Ḗ\",\n \"Ḕ\": \"Ḕ\",\n \"Ĕ\": \"Ĕ\",\n \"Ḝ\": \"Ḝ\",\n \"Ě\": \"Ě\",\n \"Ê\": \"Ê\",\n \"Ế\": \"Ế\",\n \"Ề\": \"Ề\",\n \"Ễ\": \"Ễ\",\n \"Ė\": \"Ė\",\n \"Ȩ\": \"Ȩ\",\n \"Ḟ\": \"Ḟ\",\n \"Ǵ\": \"Ǵ\",\n \"Ḡ\": \"Ḡ\",\n \"Ğ\": \"Ğ\",\n \"Ǧ\": \"Ǧ\",\n \"Ĝ\": \"Ĝ\",\n \"Ġ\": \"Ġ\",\n \"Ģ\": \"Ģ\",\n \"Ḧ\": \"Ḧ\",\n \"Ȟ\": \"Ȟ\",\n \"Ĥ\": \"Ĥ\",\n \"Ḣ\": \"Ḣ\",\n \"Ḩ\": \"Ḩ\",\n \"Í\": \"Í\",\n \"Ì\": \"Ì\",\n \"Ï\": \"Ï\",\n \"Ḯ\": \"Ḯ\",\n \"Ĩ\": \"Ĩ\",\n \"Ī\": \"Ī\",\n \"Ĭ\": \"Ĭ\",\n \"Ǐ\": \"Ǐ\",\n \"Î\": \"Î\",\n \"İ\": \"İ\",\n \"Ĵ\": \"Ĵ\",\n \"Ḱ\": \"Ḱ\",\n \"Ǩ\": \"Ǩ\",\n \"Ķ\": \"Ķ\",\n \"Ĺ\": \"Ĺ\",\n \"Ľ\": \"Ľ\",\n \"Ļ\": \"Ļ\",\n \"Ḿ\": \"Ḿ\",\n \"Ṁ\": \"Ṁ\",\n \"Ń\": \"Ń\",\n \"Ǹ\": \"Ǹ\",\n \"Ñ\": \"Ñ\",\n \"Ň\": \"Ň\",\n \"Ṅ\": \"Ṅ\",\n \"Ņ\": \"Ņ\",\n \"Ó\": \"Ó\",\n \"Ò\": \"Ò\",\n \"Ö\": \"Ö\",\n \"Ȫ\": \"Ȫ\",\n \"Õ\": \"Õ\",\n \"Ṍ\": \"Ṍ\",\n \"Ṏ\": \"Ṏ\",\n \"Ȭ\": \"Ȭ\",\n \"Ō\": \"Ō\",\n \"Ṓ\": \"Ṓ\",\n \"Ṑ\": \"Ṑ\",\n \"Ŏ\": \"Ŏ\",\n \"Ǒ\": \"Ǒ\",\n \"Ô\": \"Ô\",\n \"Ố\": \"Ố\",\n \"Ồ\": \"Ồ\",\n \"Ỗ\": \"Ỗ\",\n \"Ȯ\": \"Ȯ\",\n \"Ȱ\": \"Ȱ\",\n \"Ő\": \"Ő\",\n \"Ṕ\": \"Ṕ\",\n \"Ṗ\": \"Ṗ\",\n \"Ŕ\": \"Ŕ\",\n \"Ř\": \"Ř\",\n \"Ṙ\": \"Ṙ\",\n \"Ŗ\": \"Ŗ\",\n \"Ś\": \"Ś\",\n \"Ṥ\": \"Ṥ\",\n \"Š\": \"Š\",\n \"Ṧ\": \"Ṧ\",\n \"Ŝ\": \"Ŝ\",\n \"Ṡ\": \"Ṡ\",\n \"Ş\": \"Ş\",\n \"Ť\": \"Ť\",\n \"Ṫ\": \"Ṫ\",\n \"Ţ\": \"Ţ\",\n \"Ú\": \"Ú\",\n \"Ù\": \"Ù\",\n \"Ü\": \"Ü\",\n \"Ǘ\": \"Ǘ\",\n \"Ǜ\": \"Ǜ\",\n \"Ǖ\": \"Ǖ\",\n \"Ǚ\": \"Ǚ\",\n \"Ũ\": \"Ũ\",\n \"Ṹ\": \"Ṹ\",\n \"Ū\": \"Ū\",\n \"Ṻ\": \"Ṻ\",\n \"Ŭ\": \"Ŭ\",\n \"Ǔ\": \"Ǔ\",\n \"Û\": \"Û\",\n \"Ů\": \"Ů\",\n \"Ű\": \"Ű\",\n \"Ṽ\": \"Ṽ\",\n \"Ẃ\": \"Ẃ\",\n \"Ẁ\": \"Ẁ\",\n \"Ẅ\": \"Ẅ\",\n \"Ŵ\": \"Ŵ\",\n \"Ẇ\": \"Ẇ\",\n \"Ẍ\": \"Ẍ\",\n \"Ẋ\": \"Ẋ\",\n \"Ý\": \"Ý\",\n \"Ỳ\": \"Ỳ\",\n \"Ÿ\": \"Ÿ\",\n \"Ỹ\": \"Ỹ\",\n \"Ȳ\": \"Ȳ\",\n \"Ŷ\": \"Ŷ\",\n \"Ẏ\": \"Ẏ\",\n \"Ź\": \"Ź\",\n \"Ž\": \"Ž\",\n \"Ẑ\": \"Ẑ\",\n \"Ż\": \"Ż\",\n \"ά\": \"ά\",\n \"ὰ\": \"ὰ\",\n \"ᾱ\": \"ᾱ\",\n \"ᾰ\": \"ᾰ\",\n \"έ\": \"έ\",\n \"ὲ\": \"ὲ\",\n \"ή\": \"ή\",\n \"ὴ\": \"ὴ\",\n \"ί\": \"ί\",\n \"ὶ\": \"ὶ\",\n \"ϊ\": \"ϊ\",\n \"ΐ\": \"ΐ\",\n \"ῒ\": \"ῒ\",\n \"ῑ\": \"ῑ\",\n \"ῐ\": \"ῐ\",\n \"ό\": \"ό\",\n \"ὸ\": \"ὸ\",\n \"ύ\": \"ύ\",\n \"ὺ\": \"ὺ\",\n \"ϋ\": \"ϋ\",\n \"ΰ\": \"ΰ\",\n \"ῢ\": \"ῢ\",\n \"ῡ\": \"ῡ\",\n \"ῠ\": \"ῠ\",\n \"ώ\": \"ώ\",\n \"ὼ\": \"ὼ\",\n \"Ύ\": \"Ύ\",\n \"Ὺ\": \"Ὺ\",\n \"Ϋ\": \"Ϋ\",\n \"Ῡ\": \"Ῡ\",\n \"Ῠ\": \"Ῠ\",\n \"Ώ\": \"Ώ\",\n \"Ὼ\": \"Ὼ\"\n};\n\n/**\n * This file contains the parser used to parse out a TeX expression from the\n * input. Since TeX isn't context-free, standard parsers don't work particularly\n * well.\n *\n * The strategy of this parser is as such:\n *\n * The main functions (the `.parse...` ones) take a position in the current\n * parse string to parse tokens from. The lexer (found in Lexer.js, stored at\n * this.gullet.lexer) also supports pulling out tokens at arbitrary places. When\n * individual tokens are needed at a position, the lexer is called to pull out a\n * token, which is then used.\n *\n * The parser has a property called \"mode\" indicating the mode that\n * the parser is currently in. Currently it has to be one of \"math\" or\n * \"text\", which denotes whether the current environment is a math-y\n * one or a text-y one (e.g. inside \\text). Currently, this serves to\n * limit the functions which can be used in text mode.\n *\n * The main functions then return an object which contains the useful data that\n * was parsed at its given point, and a new position at the end of the parsed\n * data. The main functions can call each other and continue the parsing by\n * using the returned position as a new starting point.\n *\n * There are also extra `.handle...` functions, which pull out some reused\n * functionality into self-contained functions.\n *\n * The functions return ParseNodes.\n */\nclass Parser {\n constructor(input, settings) {\n this.mode = void 0;\n this.gullet = void 0;\n this.settings = void 0;\n this.leftrightDepth = void 0;\n this.nextToken = void 0;\n // Start in math mode\n this.mode = \"math\"; // Create a new macro expander (gullet) and (indirectly via that) also a\n // new lexer (mouth) for this parser (stomach, in the language of TeX)\n\n this.gullet = new MacroExpander(input, settings, this.mode); // Store the settings for use in parsing\n\n this.settings = settings; // Count leftright depth (for \\middle errors)\n\n this.leftrightDepth = 0;\n }\n /**\n * Checks a result to make sure it has the right type, and throws an\n * appropriate error otherwise.\n */\n\n\n expect(text, consume) {\n if (consume === void 0) {\n consume = true;\n }\n\n if (this.fetch().text !== text) {\n throw new ParseError(\"Expected '\" + text + \"', got '\" + this.fetch().text + \"'\", this.fetch());\n }\n\n if (consume) {\n this.consume();\n }\n }\n /**\n * Discards the current lookahead token, considering it consumed.\n */\n\n\n consume() {\n this.nextToken = null;\n }\n /**\n * Return the current lookahead token, or if there isn't one (at the\n * beginning, or if the previous lookahead token was consume()d),\n * fetch the next token as the new lookahead token and return it.\n */\n\n\n fetch() {\n if (this.nextToken == null) {\n this.nextToken = this.gullet.expandNextToken();\n }\n\n return this.nextToken;\n }\n /**\n * Switches between \"text\" and \"math\" modes.\n */\n\n\n switchMode(newMode) {\n this.mode = newMode;\n this.gullet.switchMode(newMode);\n }\n /**\n * Main parsing function, which parses an entire input.\n */\n\n\n parse() {\n if (!this.settings.globalGroup) {\n // Create a group namespace for the math expression.\n // (LaTeX creates a new group for every $...$, $$...$$, \\[...\\].)\n this.gullet.beginGroup();\n } // Use old \\color behavior (same as LaTeX's \\textcolor) if requested.\n // We do this within the group for the math expression, so it doesn't\n // pollute settings.macros.\n\n\n if (this.settings.colorIsTextColor) {\n this.gullet.macros.set(\"\\\\color\", \"\\\\textcolor\");\n }\n\n try {\n // Try to parse the input\n var parse = this.parseExpression(false); // If we succeeded, make sure there's an EOF at the end\n\n this.expect(\"EOF\"); // End the group namespace for the expression\n\n if (!this.settings.globalGroup) {\n this.gullet.endGroup();\n }\n\n return parse; // Close any leftover groups in case of a parse error.\n } finally {\n this.gullet.endGroups();\n }\n }\n /**\n * Fully parse a separate sequence of tokens as a separate job.\n * Tokens should be specified in reverse order, as in a MacroDefinition.\n */\n\n\n subparse(tokens) {\n // Save the next token from the current job.\n var oldToken = this.nextToken;\n this.consume(); // Run the new job, terminating it with an excess '}'\n\n this.gullet.pushToken(new Token(\"}\"));\n this.gullet.pushTokens(tokens);\n var parse = this.parseExpression(false);\n this.expect(\"}\"); // Restore the next token from the current job.\n\n this.nextToken = oldToken;\n return parse;\n }\n\n /**\n * Parses an \"expression\", which is a list of atoms.\n *\n * `breakOnInfix`: Should the parsing stop when we hit infix nodes? This\n * happens when functions have higher precedence han infix\n * nodes in implicit parses.\n *\n * `breakOnTokenText`: The text of the token that the expression should end\n * with, or `null` if something else should end the\n * expression.\n */\n parseExpression(breakOnInfix, breakOnTokenText) {\n var body = []; // Keep adding atoms to the body until we can't parse any more atoms (either\n // we reached the end, a }, or a \\right)\n\n while (true) {\n // Ignore spaces in math mode\n if (this.mode === \"math\") {\n this.consumeSpaces();\n }\n\n var lex = this.fetch();\n\n if (Parser.endOfExpression.indexOf(lex.text) !== -1) {\n break;\n }\n\n if (breakOnTokenText && lex.text === breakOnTokenText) {\n break;\n }\n\n if (breakOnInfix && functions[lex.text] && functions[lex.text].infix) {\n break;\n }\n\n var atom = this.parseAtom(breakOnTokenText);\n\n if (!atom) {\n break;\n } else if (atom.type === \"internal\") {\n continue;\n }\n\n body.push(atom);\n }\n\n if (this.mode === \"text\") {\n this.formLigatures(body);\n }\n\n return this.handleInfixNodes(body);\n }\n /**\n * Rewrites infix operators such as \\over with corresponding commands such\n * as \\frac.\n *\n * There can only be one infix operator per group. If there's more than one\n * then the expression is ambiguous. This can be resolved by adding {}.\n */\n\n\n handleInfixNodes(body) {\n var overIndex = -1;\n var funcName;\n\n for (var i = 0; i < body.length; i++) {\n if (body[i].type === \"infix\") {\n if (overIndex !== -1) {\n throw new ParseError(\"only one infix operator per group\", body[i].token);\n }\n\n overIndex = i;\n funcName = body[i].replaceWith;\n }\n }\n\n if (overIndex !== -1 && funcName) {\n var numerNode;\n var denomNode;\n var numerBody = body.slice(0, overIndex);\n var denomBody = body.slice(overIndex + 1);\n\n if (numerBody.length === 1 && numerBody[0].type === \"ordgroup\") {\n numerNode = numerBody[0];\n } else {\n numerNode = {\n type: \"ordgroup\",\n mode: this.mode,\n body: numerBody\n };\n }\n\n if (denomBody.length === 1 && denomBody[0].type === \"ordgroup\") {\n denomNode = denomBody[0];\n } else {\n denomNode = {\n type: \"ordgroup\",\n mode: this.mode,\n body: denomBody\n };\n }\n\n var node;\n\n if (funcName === \"\\\\\\\\abovefrac\") {\n node = this.callFunction(funcName, [numerNode, body[overIndex], denomNode], []);\n } else {\n node = this.callFunction(funcName, [numerNode, denomNode], []);\n }\n\n return [node];\n } else {\n return body;\n }\n }\n /**\n * Handle a subscript or superscript with nice errors.\n */\n\n\n handleSupSubscript(name // For error reporting.\n ) {\n var symbolToken = this.fetch();\n var symbol = symbolToken.text;\n this.consume();\n this.consumeSpaces(); // ignore spaces before sup/subscript argument\n\n var group = this.parseGroup(name);\n\n if (!group) {\n throw new ParseError(\"Expected group after '\" + symbol + \"'\", symbolToken);\n }\n\n return group;\n }\n /**\n * Converts the textual input of an unsupported command into a text node\n * contained within a color node whose color is determined by errorColor\n */\n\n\n formatUnsupportedCmd(text) {\n var textordArray = [];\n\n for (var i = 0; i < text.length; i++) {\n textordArray.push({\n type: \"textord\",\n mode: \"text\",\n text: text[i]\n });\n }\n\n var textNode = {\n type: \"text\",\n mode: this.mode,\n body: textordArray\n };\n var colorNode = {\n type: \"color\",\n mode: this.mode,\n color: this.settings.errorColor,\n body: [textNode]\n };\n return colorNode;\n }\n /**\n * Parses a group with optional super/subscripts.\n */\n\n\n parseAtom(breakOnTokenText) {\n // The body of an atom is an implicit group, so that things like\n // \\left(x\\right)^2 work correctly.\n var base = this.parseGroup(\"atom\", breakOnTokenText); // In text mode, we don't have superscripts or subscripts\n\n if (this.mode === \"text\") {\n return base;\n } // Note that base may be empty (i.e. null) at this point.\n\n\n var superscript;\n var subscript;\n\n while (true) {\n // Guaranteed in math mode, so eat any spaces first.\n this.consumeSpaces(); // Lex the first token\n\n var lex = this.fetch();\n\n if (lex.text === \"\\\\limits\" || lex.text === \"\\\\nolimits\") {\n // We got a limit control\n if (base && base.type === \"op\") {\n var limits = lex.text === \"\\\\limits\";\n base.limits = limits;\n base.alwaysHandleSupSub = true;\n } else if (base && base.type === \"operatorname\") {\n if (base.alwaysHandleSupSub) {\n base.limits = lex.text === \"\\\\limits\";\n }\n } else {\n throw new ParseError(\"Limit controls must follow a math operator\", lex);\n }\n\n this.consume();\n } else if (lex.text === \"^\") {\n // We got a superscript start\n if (superscript) {\n throw new ParseError(\"Double superscript\", lex);\n }\n\n superscript = this.handleSupSubscript(\"superscript\");\n } else if (lex.text === \"_\") {\n // We got a subscript start\n if (subscript) {\n throw new ParseError(\"Double subscript\", lex);\n }\n\n subscript = this.handleSupSubscript(\"subscript\");\n } else if (lex.text === \"'\") {\n // We got a prime\n if (superscript) {\n throw new ParseError(\"Double superscript\", lex);\n }\n\n var prime = {\n type: \"textord\",\n mode: this.mode,\n text: \"\\\\prime\"\n }; // Many primes can be grouped together, so we handle this here\n\n var primes = [prime];\n this.consume(); // Keep lexing tokens until we get something that's not a prime\n\n while (this.fetch().text === \"'\") {\n // For each one, add another prime to the list\n primes.push(prime);\n this.consume();\n } // If there's a superscript following the primes, combine that\n // superscript in with the primes.\n\n\n if (this.fetch().text === \"^\") {\n primes.push(this.handleSupSubscript(\"superscript\"));\n } // Put everything into an ordgroup as the superscript\n\n\n superscript = {\n type: \"ordgroup\",\n mode: this.mode,\n body: primes\n };\n } else if (uSubsAndSups[lex.text]) {\n // A Unicode subscript or superscript character.\n // We treat these similarly to the unicode-math package.\n // So we render a string of Unicode (sub|super)scripts the\n // same as a (sub|super)script of regular characters.\n var str = uSubsAndSups[lex.text];\n var isSub = unicodeSubRegEx.test(lex.text);\n this.consume(); // Continue fetching tokens to fill out the string.\n\n while (true) {\n var token = this.fetch().text;\n\n if (!uSubsAndSups[token]) {\n break;\n }\n\n if (unicodeSubRegEx.test(token) !== isSub) {\n break;\n }\n\n this.consume();\n str += uSubsAndSups[token];\n } // Now create a (sub|super)script.\n\n\n var body = new Parser(str, this.settings).parse();\n\n if (isSub) {\n subscript = {\n type: \"ordgroup\",\n mode: \"math\",\n body\n };\n } else {\n superscript = {\n type: \"ordgroup\",\n mode: \"math\",\n body\n };\n }\n } else {\n // If it wasn't ^, _, or ', stop parsing super/subscripts\n break;\n }\n } // Base must be set if superscript or subscript are set per logic above,\n // but need to check here for type check to pass.\n\n\n if (superscript || subscript) {\n // If we got either a superscript or subscript, create a supsub\n return {\n type: \"supsub\",\n mode: this.mode,\n base: base,\n sup: superscript,\n sub: subscript\n };\n } else {\n // Otherwise return the original body\n return base;\n }\n }\n /**\n * Parses an entire function, including its base and all of its arguments.\n */\n\n\n parseFunction(breakOnTokenText, name // For determining its context\n ) {\n var token = this.fetch();\n var func = token.text;\n var funcData = functions[func];\n\n if (!funcData) {\n return null;\n }\n\n this.consume(); // consume command token\n\n if (name && name !== \"atom\" && !funcData.allowedInArgument) {\n throw new ParseError(\"Got function '\" + func + \"' with no arguments\" + (name ? \" as \" + name : \"\"), token);\n } else if (this.mode === \"text\" && !funcData.allowedInText) {\n throw new ParseError(\"Can't use function '\" + func + \"' in text mode\", token);\n } else if (this.mode === \"math\" && funcData.allowedInMath === false) {\n throw new ParseError(\"Can't use function '\" + func + \"' in math mode\", token);\n }\n\n var {\n args,\n optArgs\n } = this.parseArguments(func, funcData);\n return this.callFunction(func, args, optArgs, token, breakOnTokenText);\n }\n /**\n * Call a function handler with a suitable context and arguments.\n */\n\n\n callFunction(name, args, optArgs, token, breakOnTokenText) {\n var context = {\n funcName: name,\n parser: this,\n token,\n breakOnTokenText\n };\n var func = functions[name];\n\n if (func && func.handler) {\n return func.handler(context, args, optArgs);\n } else {\n throw new ParseError(\"No function handler for \" + name);\n }\n }\n /**\n * Parses the arguments of a function or environment\n */\n\n\n parseArguments(func, // Should look like \"\\name\" or \"\\begin{name}\".\n funcData) {\n var totalArgs = funcData.numArgs + funcData.numOptionalArgs;\n\n if (totalArgs === 0) {\n return {\n args: [],\n optArgs: []\n };\n }\n\n var args = [];\n var optArgs = [];\n\n for (var i = 0; i < totalArgs; i++) {\n var argType = funcData.argTypes && funcData.argTypes[i];\n var isOptional = i < funcData.numOptionalArgs;\n\n if (funcData.primitive && argType == null || // \\sqrt expands into primitive if optional argument doesn't exist\n funcData.type === \"sqrt\" && i === 1 && optArgs[0] == null) {\n argType = \"primitive\";\n }\n\n var arg = this.parseGroupOfType(\"argument to '\" + func + \"'\", argType, isOptional);\n\n if (isOptional) {\n optArgs.push(arg);\n } else if (arg != null) {\n args.push(arg);\n } else {\n // should be unreachable\n throw new ParseError(\"Null argument, please report this as a bug\");\n }\n }\n\n return {\n args,\n optArgs\n };\n }\n /**\n * Parses a group when the mode is changing.\n */\n\n\n parseGroupOfType(name, type, optional) {\n switch (type) {\n case \"color\":\n return this.parseColorGroup(optional);\n\n case \"size\":\n return this.parseSizeGroup(optional);\n\n case \"url\":\n return this.parseUrlGroup(optional);\n\n case \"math\":\n case \"text\":\n return this.parseArgumentGroup(optional, type);\n\n case \"hbox\":\n {\n // hbox argument type wraps the argument in the equivalent of\n // \\hbox, which is like \\text but switching to \\textstyle size.\n var group = this.parseArgumentGroup(optional, \"text\");\n return group != null ? {\n type: \"styling\",\n mode: group.mode,\n body: [group],\n style: \"text\" // simulate \\textstyle\n\n } : null;\n }\n\n case \"raw\":\n {\n var token = this.parseStringGroup(\"raw\", optional);\n return token != null ? {\n type: \"raw\",\n mode: \"text\",\n string: token.text\n } : null;\n }\n\n case \"primitive\":\n {\n if (optional) {\n throw new ParseError(\"A primitive argument cannot be optional\");\n }\n\n var _group = this.parseGroup(name);\n\n if (_group == null) {\n throw new ParseError(\"Expected group as \" + name, this.fetch());\n }\n\n return _group;\n }\n\n case \"original\":\n case null:\n case undefined:\n return this.parseArgumentGroup(optional);\n\n default:\n throw new ParseError(\"Unknown group type as \" + name, this.fetch());\n }\n }\n /**\n * Discard any space tokens, fetching the next non-space token.\n */\n\n\n consumeSpaces() {\n while (this.fetch().text === \" \") {\n this.consume();\n }\n }\n /**\n * Parses a group, essentially returning the string formed by the\n * brace-enclosed tokens plus some position information.\n */\n\n\n parseStringGroup(modeName, // Used to describe the mode in error messages.\n optional) {\n var argToken = this.gullet.scanArgument(optional);\n\n if (argToken == null) {\n return null;\n }\n\n var str = \"\";\n var nextToken;\n\n while ((nextToken = this.fetch()).text !== \"EOF\") {\n str += nextToken.text;\n this.consume();\n }\n\n this.consume(); // consume the end of the argument\n\n argToken.text = str;\n return argToken;\n }\n /**\n * Parses a regex-delimited group: the largest sequence of tokens\n * whose concatenated strings match `regex`. Returns the string\n * formed by the tokens plus some position information.\n */\n\n\n parseRegexGroup(regex, modeName // Used to describe the mode in error messages.\n ) {\n var firstToken = this.fetch();\n var lastToken = firstToken;\n var str = \"\";\n var nextToken;\n\n while ((nextToken = this.fetch()).text !== \"EOF\" && regex.test(str + nextToken.text)) {\n lastToken = nextToken;\n str += lastToken.text;\n this.consume();\n }\n\n if (str === \"\") {\n throw new ParseError(\"Invalid \" + modeName + \": '\" + firstToken.text + \"'\", firstToken);\n }\n\n return firstToken.range(lastToken, str);\n }\n /**\n * Parses a color description.\n */\n\n\n parseColorGroup(optional) {\n var res = this.parseStringGroup(\"color\", optional);\n\n if (res == null) {\n return null;\n }\n\n var match = /^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(res.text);\n\n if (!match) {\n throw new ParseError(\"Invalid color: '\" + res.text + \"'\", res);\n }\n\n var color = match[0];\n\n if (/^[0-9a-f]{6}$/i.test(color)) {\n // We allow a 6-digit HTML color spec without a leading \"#\".\n // This follows the xcolor package's HTML color model.\n // Predefined color names are all missed by this RegEx pattern.\n color = \"#\" + color;\n }\n\n return {\n type: \"color-token\",\n mode: this.mode,\n color\n };\n }\n /**\n * Parses a size specification, consisting of magnitude and unit.\n */\n\n\n parseSizeGroup(optional) {\n var res;\n var isBlank = false; // don't expand before parseStringGroup\n\n this.gullet.consumeSpaces();\n\n if (!optional && this.gullet.future().text !== \"{\") {\n res = this.parseRegexGroup(/^[-+]? *(?:$|\\d+|\\d+\\.\\d*|\\.\\d*) *[a-z]{0,2} *$/, \"size\");\n } else {\n res = this.parseStringGroup(\"size\", optional);\n }\n\n if (!res) {\n return null;\n }\n\n if (!optional && res.text.length === 0) {\n // Because we've tested for what is !optional, this block won't\n // affect \\kern, \\hspace, etc. It will capture the mandatory arguments\n // to \\genfrac and \\above.\n res.text = \"0pt\"; // Enable \\above{}\n\n isBlank = true; // This is here specifically for \\genfrac\n }\n\n var match = /([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(res.text);\n\n if (!match) {\n throw new ParseError(\"Invalid size: '\" + res.text + \"'\", res);\n }\n\n var data = {\n number: +(match[1] + match[2]),\n // sign + magnitude, cast to number\n unit: match[3]\n };\n\n if (!validUnit(data)) {\n throw new ParseError(\"Invalid unit: '\" + data.unit + \"'\", res);\n }\n\n return {\n type: \"size\",\n mode: this.mode,\n value: data,\n isBlank\n };\n }\n /**\n * Parses an URL, checking escaped letters and allowed protocols,\n * and setting the catcode of % as an active character (as in \\hyperref).\n */\n\n\n parseUrlGroup(optional) {\n this.gullet.lexer.setCatcode(\"%\", 13); // active character\n\n this.gullet.lexer.setCatcode(\"~\", 12); // other character\n\n var res = this.parseStringGroup(\"url\", optional);\n this.gullet.lexer.setCatcode(\"%\", 14); // comment character\n\n this.gullet.lexer.setCatcode(\"~\", 13); // active character\n\n if (res == null) {\n return null;\n } // hyperref package allows backslashes alone in href, but doesn't\n // generate valid links in such cases; we interpret this as\n // \"undefined\" behaviour, and keep them as-is. Some browser will\n // replace backslashes with forward slashes.\n\n\n var url = res.text.replace(/\\\\([#$%&~_^{}])/g, '$1');\n return {\n type: \"url\",\n mode: this.mode,\n url\n };\n }\n /**\n * Parses an argument with the mode specified.\n */\n\n\n parseArgumentGroup(optional, mode) {\n var argToken = this.gullet.scanArgument(optional);\n\n if (argToken == null) {\n return null;\n }\n\n var outerMode = this.mode;\n\n if (mode) {\n // Switch to specified mode\n this.switchMode(mode);\n }\n\n this.gullet.beginGroup();\n var expression = this.parseExpression(false, \"EOF\"); // TODO: find an alternative way to denote the end\n\n this.expect(\"EOF\"); // expect the end of the argument\n\n this.gullet.endGroup();\n var result = {\n type: \"ordgroup\",\n mode: this.mode,\n loc: argToken.loc,\n body: expression\n };\n\n if (mode) {\n // Switch mode back\n this.switchMode(outerMode);\n }\n\n return result;\n }\n /**\n * Parses an ordinary group, which is either a single nucleus (like \"x\")\n * or an expression in braces (like \"{x+y}\") or an implicit group, a group\n * that starts at the current position, and ends right before a higher explicit\n * group ends, or at EOF.\n */\n\n\n parseGroup(name, // For error reporting.\n breakOnTokenText) {\n var firstToken = this.fetch();\n var text = firstToken.text;\n var result; // Try to parse an open brace or \\begingroup\n\n if (text === \"{\" || text === \"\\\\begingroup\") {\n this.consume();\n var groupEnd = text === \"{\" ? \"}\" : \"\\\\endgroup\";\n this.gullet.beginGroup(); // If we get a brace, parse an expression\n\n var expression = this.parseExpression(false, groupEnd);\n var lastToken = this.fetch();\n this.expect(groupEnd); // Check that we got a matching closing brace\n\n this.gullet.endGroup();\n result = {\n type: \"ordgroup\",\n mode: this.mode,\n loc: SourceLocation.range(firstToken, lastToken),\n body: expression,\n // A group formed by \\begingroup...\\endgroup is a semi-simple group\n // which doesn't affect spacing in math mode, i.e., is transparent.\n // https://tex.stackexchange.com/questions/1930/when-should-one-\n // use-begingroup-instead-of-bgroup\n semisimple: text === \"\\\\begingroup\" || undefined\n };\n } else {\n // If there exists a function with this name, parse the function.\n // Otherwise, just return a nucleus\n result = this.parseFunction(breakOnTokenText, name) || this.parseSymbol();\n\n if (result == null && text[0] === \"\\\\\" && !implicitCommands.hasOwnProperty(text)) {\n if (this.settings.throwOnError) {\n throw new ParseError(\"Undefined control sequence: \" + text, firstToken);\n }\n\n result = this.formatUnsupportedCmd(text);\n this.consume();\n }\n }\n\n return result;\n }\n /**\n * Form ligature-like combinations of characters for text mode.\n * This includes inputs like \"--\", \"---\", \"``\" and \"''\".\n * The result will simply replace multiple textord nodes with a single\n * character in each value by a single textord node having multiple\n * characters in its value. The representation is still ASCII source.\n * The group will be modified in place.\n */\n\n\n formLigatures(group) {\n var n = group.length - 1;\n\n for (var i = 0; i < n; ++i) {\n var a = group[i]; // $FlowFixMe: Not every node type has a `text` property.\n\n var v = a.text;\n\n if (v === \"-\" && group[i + 1].text === \"-\") {\n if (i + 1 < n && group[i + 2].text === \"-\") {\n group.splice(i, 3, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 2]),\n text: \"---\"\n });\n n -= 2;\n } else {\n group.splice(i, 2, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 1]),\n text: \"--\"\n });\n n -= 1;\n }\n }\n\n if ((v === \"'\" || v === \"`\") && group[i + 1].text === v) {\n group.splice(i, 2, {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(a, group[i + 1]),\n text: v + v\n });\n n -= 1;\n }\n }\n }\n /**\n * Parse a single symbol out of the string. Here, we handle single character\n * symbols and special functions like \\verb.\n */\n\n\n parseSymbol() {\n var nucleus = this.fetch();\n var text = nucleus.text;\n\n if (/^\\\\verb[^a-zA-Z]/.test(text)) {\n this.consume();\n var arg = text.slice(5);\n var star = arg.charAt(0) === \"*\";\n\n if (star) {\n arg = arg.slice(1);\n } // Lexer's tokenRegex is constructed to always have matching\n // first/last characters.\n\n\n if (arg.length < 2 || arg.charAt(0) !== arg.slice(-1)) {\n throw new ParseError(\"\\\\verb assertion failed --\\n please report what input caused this bug\");\n }\n\n arg = arg.slice(1, -1); // remove first and last char\n\n return {\n type: \"verb\",\n mode: \"text\",\n body: arg,\n star\n };\n } // At this point, we should have a symbol, possibly with accents.\n // First expand any accented base symbol according to unicodeSymbols.\n\n\n if (unicodeSymbols.hasOwnProperty(text[0]) && !symbols[this.mode][text[0]]) {\n // This behavior is not strict (XeTeX-compatible) in math mode.\n if (this.settings.strict && this.mode === \"math\") {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Accented Unicode text character \\\"\" + text[0] + \"\\\" used in \" + \"math mode\", nucleus);\n }\n\n text = unicodeSymbols[text[0]] + text.slice(1);\n } // Strip off any combining characters\n\n\n var match = combiningDiacriticalMarksEndRegex.exec(text);\n\n if (match) {\n text = text.substring(0, match.index);\n\n if (text === 'i') {\n text = '\\u0131'; // dotless i, in math and text mode\n } else if (text === 'j') {\n text = '\\u0237'; // dotless j, in math and text mode\n }\n } // Recognize base symbol\n\n\n var symbol;\n\n if (symbols[this.mode][text]) {\n if (this.settings.strict && this.mode === 'math' && extraLatin.indexOf(text) >= 0) {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Latin-1/Unicode text character \\\"\" + text[0] + \"\\\" used in \" + \"math mode\", nucleus);\n }\n\n var group = symbols[this.mode][text].group;\n var loc = SourceLocation.range(nucleus);\n var s;\n\n if (ATOMS.hasOwnProperty(group)) {\n // $FlowFixMe\n var family = group;\n s = {\n type: \"atom\",\n mode: this.mode,\n family,\n loc,\n text\n };\n } else {\n // $FlowFixMe\n s = {\n type: group,\n mode: this.mode,\n loc,\n text\n };\n } // $FlowFixMe\n\n\n symbol = s;\n } else if (text.charCodeAt(0) >= 0x80) {\n // no symbol for e.g. ^\n if (this.settings.strict) {\n if (!supportedCodepoint(text.charCodeAt(0))) {\n this.settings.reportNonstrict(\"unknownSymbol\", \"Unrecognized Unicode character \\\"\" + text[0] + \"\\\"\" + (\" (\" + text.charCodeAt(0) + \")\"), nucleus);\n } else if (this.mode === \"math\") {\n this.settings.reportNonstrict(\"unicodeTextInMathMode\", \"Unicode text character \\\"\" + text[0] + \"\\\" used in math mode\", nucleus);\n }\n } // All nonmathematical Unicode characters are rendered as if they\n // are in text mode (wrapped in \\text) because that's what it\n // takes to render them in LaTeX. Setting `mode: this.mode` is\n // another natural choice (the user requested math mode), but\n // this makes it more difficult for getCharacterMetrics() to\n // distinguish Unicode characters without metrics and those for\n // which we want to simulate the letter M.\n\n\n symbol = {\n type: \"textord\",\n mode: \"text\",\n loc: SourceLocation.range(nucleus),\n text\n };\n } else {\n return null; // EOF, ^, _, {, }, etc.\n }\n\n this.consume(); // Transform combining characters into accents\n\n if (match) {\n for (var i = 0; i < match[0].length; i++) {\n var accent = match[0][i];\n\n if (!unicodeAccents[accent]) {\n throw new ParseError(\"Unknown accent ' \" + accent + \"'\", nucleus);\n }\n\n var command = unicodeAccents[accent][this.mode] || unicodeAccents[accent].text;\n\n if (!command) {\n throw new ParseError(\"Accent \" + accent + \" unsupported in \" + this.mode + \" mode\", nucleus);\n }\n\n symbol = {\n type: \"accent\",\n mode: this.mode,\n loc: SourceLocation.range(nucleus),\n label: command,\n isStretchy: false,\n isShifty: true,\n // $FlowFixMe\n base: symbol\n };\n }\n } // $FlowFixMe\n\n\n return symbol;\n }\n\n}\nParser.endOfExpression = [\"}\", \"\\\\endgroup\", \"\\\\end\", \"\\\\right\", \"&\"];\n\n/**\n * Provides a single function for parsing an expression using a Parser\n * TODO(emily): Remove this\n */\n\n/**\n * Parses an expression using a Parser, then returns the parsed result.\n */\nvar parseTree = function parseTree(toParse, settings) {\n if (!(typeof toParse === 'string' || toParse instanceof String)) {\n throw new TypeError('KaTeX can only parse string typed expression');\n }\n\n var parser = new Parser(toParse, settings); // Blank out any \\df@tag to avoid spurious \"Duplicate \\tag\" errors\n\n delete parser.gullet.macros.current[\"\\\\df@tag\"];\n var tree = parser.parse(); // Prevent a color definition from persisting between calls to katex.render().\n\n delete parser.gullet.macros.current[\"\\\\current@color\"];\n delete parser.gullet.macros.current[\"\\\\color\"]; // If the input used \\tag, it will set the \\df@tag macro to the tag.\n // In this case, we separately parse the tag and wrap the tree.\n\n if (parser.gullet.macros.get(\"\\\\df@tag\")) {\n if (!settings.displayMode) {\n throw new ParseError(\"\\\\tag works only in display equations\");\n }\n\n tree = [{\n type: \"tag\",\n mode: \"text\",\n body: tree,\n tag: parser.subparse([new Token(\"\\\\df@tag\")])\n }];\n }\n\n return tree;\n};\n\n/* eslint no-console:0 */\n\n/**\n * Parse and build an expression, and place that expression in the DOM node\n * given.\n */\nvar render = function render(expression, baseNode, options) {\n baseNode.textContent = \"\";\n var node = renderToDomTree(expression, options).toNode();\n baseNode.appendChild(node);\n}; // KaTeX's styles don't work properly in quirks mode. Print out an error, and\n// disable rendering.\n\n\nif (typeof document !== \"undefined\") {\n if (document.compatMode !== \"CSS1Compat\") {\n typeof console !== \"undefined\" && console.warn(\"Warning: KaTeX doesn't work in quirks mode. Make sure your \" + \"website has a suitable doctype.\");\n\n render = function render() {\n throw new ParseError(\"KaTeX doesn't work in quirks mode.\");\n };\n }\n}\n/**\n * Parse and build an expression, and return the markup for that.\n */\n\n\nvar renderToString = function renderToString(expression, options) {\n var markup = renderToDomTree(expression, options).toMarkup();\n return markup;\n};\n/**\n * Parse an expression and return the parse tree.\n */\n\n\nvar generateParseTree = function generateParseTree(expression, options) {\n var settings = new Settings(options);\n return parseTree(expression, settings);\n};\n/**\n * If the given error is a KaTeX ParseError and options.throwOnError is false,\n * renders the invalid LaTeX as a span with hover title giving the KaTeX\n * error message. Otherwise, simply throws the error.\n */\n\n\nvar renderError = function renderError(error, expression, options) {\n if (options.throwOnError || !(error instanceof ParseError)) {\n throw error;\n }\n\n var node = buildCommon.makeSpan([\"katex-error\"], [new SymbolNode(expression)]);\n node.setAttribute(\"title\", error.toString());\n node.setAttribute(\"style\", \"color:\" + options.errorColor);\n return node;\n};\n/**\n * Generates and returns the katex build tree. This is used for advanced\n * use cases (like rendering to custom output).\n */\n\n\nvar renderToDomTree = function renderToDomTree(expression, options) {\n var settings = new Settings(options);\n\n try {\n var tree = parseTree(expression, settings);\n return buildTree(tree, expression, settings);\n } catch (error) {\n return renderError(error, expression, settings);\n }\n};\n/**\n * Generates and returns the katex build tree, with just HTML (no MathML).\n * This is used for advanced use cases (like rendering to custom output).\n */\n\n\nvar renderToHTMLTree = function renderToHTMLTree(expression, options) {\n var settings = new Settings(options);\n\n try {\n var tree = parseTree(expression, settings);\n return buildHTMLTree(tree, expression, settings);\n } catch (error) {\n return renderError(error, expression, settings);\n }\n};\n\nvar katex = {\n /**\n * Current KaTeX version\n */\n version: \"0.16.9\",\n\n /**\n * Renders the given LaTeX into an HTML+MathML combination, and adds\n * it as a child to the specified DOM node.\n */\n render,\n\n /**\n * Renders the given LaTeX into an HTML+MathML combination string,\n * for sending to the client.\n */\n renderToString,\n\n /**\n * KaTeX error, usually during parsing.\n */\n ParseError,\n\n /**\n * The shema of Settings\n */\n SETTINGS_SCHEMA,\n\n /**\n * Parses the given LaTeX into KaTeX's internal parse tree structure,\n * without rendering to HTML or MathML.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __parse: generateParseTree,\n\n /**\n * Renders the given LaTeX into an HTML+MathML internal DOM tree\n * representation, without flattening that representation to a string.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __renderToDomTree: renderToDomTree,\n\n /**\n * Renders the given LaTeX into an HTML internal DOM tree representation,\n * without MathML and without flattening that representation to a string.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __renderToHTMLTree: renderToHTMLTree,\n\n /**\n * extends internal font metrics object with a new object\n * each key in the new object represents a font name\n */\n __setFontMetrics: setFontMetrics,\n\n /**\n * adds a new symbol to builtin symbols table\n */\n __defineSymbol: defineSymbol,\n\n /**\n * adds a new function to builtin function list,\n * which directly produce parse tree elements\n * and have their own html/mathml builders\n */\n __defineFunction: defineFunction,\n\n /**\n * adds a new macro to builtin macro list\n */\n __defineMacro: defineMacro,\n\n /**\n * Expose the dom tree node types, which can be useful for type checking nodes.\n *\n * NOTE: This method is not currently recommended for public use.\n * The internal tree representation is unstable and is very likely\n * to change. Use at your own risk.\n */\n __domTree: {\n Span,\n Anchor,\n SymbolNode,\n SvgNode,\n PathNode,\n LineNode\n }\n};\n\nexport { katex as default };\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n function next() {\r\n while (env.stack.length) {\r\n var rec = env.stack.pop();\r\n try {\r\n var result = rec.dispose && rec.dispose.call(rec.value);\r\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n};\r\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["useState","useMemo","Katex","PropertyNameAndIcon","useEffect","Handler"],"mappings":"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AE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,C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AC;IAC1C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,GAAG;IACH,EAAE,qBAAqB,EAAE;IACzB,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC;IACtD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACvD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;IAC/C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;IAChD,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACvD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC7B,GAAG;IACH,EAAE,iBAAiB,EAAE;IACrB,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACpC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACrC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,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;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OA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KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAA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OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE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E,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC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AC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,I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E,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC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IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,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AAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;I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CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC;IAChD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACjD,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACxD,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACxD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACxD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IACxD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAA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C,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,C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,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAA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I,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC/C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAA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E,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAClD,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACrC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACnC,GAAG;IACH,EAAE,gBAAgB,EAAE;IACpB,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC;IACrC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC;IACpC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC7B,GAAG;IACH,EAAE,eAAe,EAAE;IACnB,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACjD,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC/C,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC/C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IACjD,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,GAAG;IACH,EAAE,eAAe,EAAE;IACnB,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAC/B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAC/B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAC/B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAC/B,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAChD,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAC9C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC;IAChD,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,GAAG;IACH,EAAE,eAAe,EAAE;IACnB,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACtC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACxC,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IACxC,GAAG;IACH,EAAE,eAAe,EAAE;IACnB,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC5B,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACxC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IACtC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACrC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC5C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC1C,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC3C,IAAI,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,IAAI,OAAO,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;IAClC,GAAG;IACH,EAAE,oBAAoB,EAAE;IACxB,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC7B,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACjC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACzC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC9B,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;IACpC,IAAI,KAAK,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE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AAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,E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V,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,GAAG,EAAE,GAAG;IACV,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IACf,EAAE,QAAQ,EAAE,GAAG;IAC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Z,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,KAAK;IACZ,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IACX,EAAE,GAAG,EAAE,IAAI;IAC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","x_google_ignoreList":[9,50]}