@lotte-innovate/ui-component-test 0.1.76 → 0.1.78

Sign up to get free protection for your applications and to get access to all the features.
Files changed (574) hide show
  1. package/README.md +9 -11
  2. package/dist/globals.css +2 -2
  3. package/dist/lib/_virtual/index.mjs +1 -1
  4. package/dist/lib/_virtual/index2.mjs +1 -1
  5. package/dist/lib/_virtual/index3.mjs +1 -1
  6. package/dist/lib/_virtual/react-is.development.mjs +2 -0
  7. package/dist/lib/_virtual/react-is.development.mjs.map +1 -0
  8. package/dist/lib/_virtual/react-is.production.min.mjs +2 -0
  9. package/dist/lib/_virtual/react-is.production.min.mjs.map +1 -0
  10. package/dist/lib/components/Editor/index.d.ts +10 -5
  11. package/dist/lib/components/Editor/index.js +50 -6
  12. package/dist/lib/components/Footer/index.js +8 -1
  13. package/dist/lib/components/Gnb/GnbInfo.js +1 -0
  14. package/dist/lib/components/Gnb/GnbLogo.js +3 -4
  15. package/dist/lib/components/Gnb/GnbMenu.js +1 -0
  16. package/dist/lib/components/Gnb/GnbRoot.js +4 -2
  17. package/dist/lib/components/Grid/Pagination.d.ts +2 -0
  18. package/dist/lib/components/Grid/Pagination.js +17 -0
  19. package/dist/lib/components/Grid/index.d.ts +1 -2
  20. package/dist/lib/components/Grid/index.js +40 -47
  21. package/dist/lib/components/Grid/useGrid.d.ts +1 -1
  22. package/dist/lib/components/Grid/useGrid.js +19 -11
  23. package/dist/lib/components/Slider/index.d.ts +2 -1
  24. package/dist/lib/components/index.d.ts +2 -1
  25. package/dist/lib/components/index.js +3 -1
  26. package/dist/lib/dist/lib/components/BarChart/index.mjs.map +1 -1
  27. package/dist/lib/dist/lib/components/Breadcrumb/BreadcrumbEllipsis.mjs.map +1 -1
  28. package/dist/lib/dist/lib/components/Breadcrumb/BreadcrumbItem.mjs.map +1 -1
  29. package/dist/lib/dist/lib/components/Breadcrumb/BreadcrumbLink.mjs.map +1 -1
  30. package/dist/lib/dist/lib/components/Breadcrumb/BreadcrumbList.mjs.map +1 -1
  31. package/dist/lib/dist/lib/components/Breadcrumb/BreadcrumbPage.mjs.map +1 -1
  32. package/dist/lib/dist/lib/components/Breadcrumb/BreadcrumbSeparator.mjs.map +1 -1
  33. package/dist/lib/dist/lib/components/BubbleChart/index.mjs.map +1 -1
  34. package/dist/lib/dist/lib/components/ContextMenu/ContextMenuGroup.mjs.map +1 -1
  35. package/dist/lib/dist/lib/components/ContextMenu/ContextMenuSeparator.mjs.map +1 -1
  36. package/dist/lib/dist/lib/components/ContextMenu/ContextMenuTrigger.mjs.map +1 -1
  37. package/dist/lib/dist/lib/components/Dialog/DialogTrigger.mjs.map +1 -1
  38. package/dist/lib/dist/lib/components/DoughnutChart/index.mjs.map +1 -1
  39. package/dist/lib/dist/lib/components/DropdownMenu/DropdonMenuRadioGroup.mjs.map +1 -1
  40. package/dist/lib/dist/lib/components/DropdownMenu/DropdownMenuSeparator.mjs.map +1 -1
  41. package/dist/lib/dist/lib/components/DropdownMenu/DropdownMenuSub.mjs.map +1 -1
  42. package/dist/lib/dist/lib/components/Editor/index.mjs +1 -1
  43. package/dist/lib/dist/lib/components/Footer/index.mjs +1 -1
  44. package/dist/lib/dist/lib/components/Gnb/GnbInfo.mjs +1 -0
  45. package/dist/lib/dist/lib/components/Gnb/GnbInfo.mjs.map +1 -1
  46. package/dist/lib/dist/lib/components/Gnb/GnbLogo.mjs +1 -1
  47. package/dist/lib/dist/lib/components/Gnb/GnbLogo.mjs.map +1 -1
  48. package/dist/lib/dist/lib/components/Gnb/GnbMenu.mjs +2 -1
  49. package/dist/lib/dist/lib/components/Gnb/GnbMenu.mjs.map +1 -1
  50. package/dist/lib/dist/lib/components/Gnb/GnbRoot.mjs +1 -1
  51. package/dist/lib/dist/lib/components/Grid/Pagination.mjs +2 -0
  52. package/dist/lib/dist/lib/components/Grid/Pagination.mjs.map +1 -0
  53. package/dist/lib/dist/lib/components/Grid/index.mjs +3 -0
  54. package/dist/lib/dist/lib/components/Grid/index.mjs.map +1 -0
  55. package/dist/lib/dist/lib/components/Grid/useGrid.mjs +3 -0
  56. package/dist/lib/dist/lib/components/Grid/useGrid.mjs.map +1 -0
  57. package/dist/lib/dist/lib/components/HoverCard/HoverCardTrigger.mjs.map +1 -1
  58. package/dist/lib/dist/lib/components/LineChart/index.mjs.map +1 -1
  59. package/dist/lib/dist/lib/components/Menubar/MenubarMenu.mjs.map +1 -1
  60. package/dist/lib/dist/lib/components/Menubar/MenubarSeparator.mjs.map +1 -1
  61. package/dist/lib/dist/lib/components/Menubar/MenubarSub.mjs.map +1 -1
  62. package/dist/lib/dist/lib/components/NavigationMenu/NavigationMenuIndicator.mjs.map +1 -1
  63. package/dist/lib/dist/lib/components/NavigationMenu/NavigationMenuItem.mjs.map +1 -1
  64. package/dist/lib/dist/lib/components/PieChart/index.mjs.map +1 -1
  65. package/dist/lib/dist/lib/components/Popover/PopoverTrigger.mjs.map +1 -1
  66. package/dist/lib/dist/lib/components/RadarChart/index.mjs.map +1 -1
  67. package/dist/lib/dist/lib/components/SegmentedControl/SegmentedControlItem.mjs.map +1 -1
  68. package/dist/lib/dist/lib/constants.mjs +1 -1
  69. package/dist/lib/dist/lib/constants.mjs.map +1 -1
  70. package/dist/lib/dist/lib/index.mjs +1 -1
  71. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/ScriptLoader2.mjs +2 -0
  72. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/ScriptLoader2.mjs.map +1 -0
  73. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/TinyMCE.mjs +2 -0
  74. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/TinyMCE.mjs.map +1 -0
  75. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/Utils.mjs +2 -0
  76. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/Utils.mjs.map +1 -0
  77. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/Editor.mjs +2 -0
  78. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/Editor.mjs.map +1 -0
  79. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/EditorPropTypes.mjs +2 -0
  80. package/dist/lib/node_modules/@tinymce/tinymce-react/lib/es2015/main/ts/components/EditorPropTypes.mjs.map +1 -0
  81. package/dist/lib/node_modules/marked/lib/marked.esm.mjs +2 -0
  82. package/dist/lib/node_modules/marked/lib/marked.esm.mjs.map +1 -0
  83. package/dist/lib/node_modules/object-assign/index.mjs +7 -0
  84. package/dist/lib/node_modules/object-assign/index.mjs.map +1 -0
  85. package/dist/lib/node_modules/prop-types/checkPropTypes.mjs +2 -0
  86. package/dist/lib/node_modules/prop-types/checkPropTypes.mjs.map +1 -0
  87. package/dist/lib/node_modules/prop-types/factoryWithThrowingShims.mjs +2 -0
  88. package/dist/lib/node_modules/prop-types/factoryWithThrowingShims.mjs.map +1 -0
  89. package/dist/lib/node_modules/prop-types/factoryWithTypeCheckers.mjs +2 -0
  90. package/dist/lib/node_modules/prop-types/factoryWithTypeCheckers.mjs.map +1 -0
  91. package/dist/lib/node_modules/prop-types/index.mjs +2 -0
  92. package/dist/lib/node_modules/prop-types/index.mjs.map +1 -0
  93. package/dist/lib/node_modules/prop-types/lib/ReactPropTypesSecret.mjs +2 -0
  94. package/dist/lib/node_modules/prop-types/lib/ReactPropTypesSecret.mjs.map +1 -0
  95. package/dist/lib/node_modules/prop-types/lib/has.mjs +2 -0
  96. package/dist/lib/node_modules/prop-types/lib/has.mjs.map +1 -0
  97. package/dist/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.mjs +10 -0
  98. package/dist/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.mjs.map +1 -0
  99. package/dist/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.mjs +10 -0
  100. package/dist/lib/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.mjs.map +1 -0
  101. package/dist/lib/node_modules/prop-types/node_modules/react-is/index.mjs +2 -0
  102. package/dist/lib/node_modules/prop-types/node_modules/react-is/index.mjs.map +1 -0
  103. package/dist/lib/tsconfig.tsbuildinfo +1 -1
  104. package/dist/lib/types.d.ts +2 -1
  105. package/dist/tsconfig.tsbuildinfo +1 -1
  106. package/package.json +7 -6
  107. package/public/tinymce/CHANGELOG.md +3453 -0
  108. package/public/tinymce/README.md +73 -0
  109. package/public/tinymce/bower.json +27 -0
  110. package/public/tinymce/composer.json +52 -0
  111. package/public/tinymce/icons/default/icons.js +194 -0
  112. package/public/tinymce/icons/default/icons.min.js +1 -0
  113. package/public/tinymce/icons/default/index.js +7 -0
  114. package/public/tinymce/license.txt +21 -0
  115. package/public/tinymce/models/dom/index.js +7 -0
  116. package/public/tinymce/models/dom/model.js +8040 -0
  117. package/public/tinymce/models/dom/model.min.js +4 -0
  118. package/public/tinymce/package.json +32 -0
  119. package/public/tinymce/plugins/advlist/index.js +7 -0
  120. package/public/tinymce/plugins/advlist/plugin.js +259 -0
  121. package/public/tinymce/plugins/advlist/plugin.min.js +4 -0
  122. package/public/tinymce/plugins/autolink/index.js +7 -0
  123. package/public/tinymce/plugins/autolink/plugin.js +228 -0
  124. package/public/tinymce/plugins/autolink/plugin.min.js +4 -0
  125. package/public/tinymce/plugins/code/index.js +7 -0
  126. package/public/tinymce/plugins/code/plugin.js +85 -0
  127. package/public/tinymce/plugins/code/plugin.min.js +4 -0
  128. package/public/tinymce/plugins/codesample/index.js +7 -0
  129. package/public/tinymce/plugins/codesample/plugin.js +2463 -0
  130. package/public/tinymce/plugins/codesample/plugin.min.js +4 -0
  131. package/public/tinymce/plugins/image/index.js +7 -0
  132. package/public/tinymce/plugins/image/plugin.js +1505 -0
  133. package/public/tinymce/plugins/image/plugin.min.js +4 -0
  134. package/public/tinymce/plugins/link/index.js +7 -0
  135. package/public/tinymce/plugins/link/plugin.js +1242 -0
  136. package/public/tinymce/plugins/link/plugin.min.js +4 -0
  137. package/public/tinymce/plugins/lists/index.js +7 -0
  138. package/public/tinymce/plugins/lists/plugin.js +2172 -0
  139. package/public/tinymce/plugins/lists/plugin.min.js +4 -0
  140. package/public/tinymce/plugins/table/index.js +7 -0
  141. package/public/tinymce/plugins/table/plugin.js +3462 -0
  142. package/public/tinymce/plugins/table/plugin.min.js +4 -0
  143. package/public/tinymce/skins/content/dark/content.css +66 -0
  144. package/public/tinymce/skins/content/dark/content.js +2 -0
  145. package/public/tinymce/skins/content/dark/content.min.css +1 -0
  146. package/public/tinymce/skins/content/default/content.css +61 -0
  147. package/public/tinymce/skins/content/default/content.js +2 -0
  148. package/public/tinymce/skins/content/default/content.min.css +1 -0
  149. package/public/tinymce/skins/content/document/content.js +2 -0
  150. package/public/tinymce/skins/content/document/content.min.css +1 -0
  151. package/public/tinymce/skins/content/tinymce-5/content.js +2 -0
  152. package/public/tinymce/skins/content/tinymce-5/content.min.css +1 -0
  153. package/public/tinymce/skins/content/tinymce-5-dark/content.js +2 -0
  154. package/public/tinymce/skins/content/tinymce-5-dark/content.min.css +1 -0
  155. package/public/tinymce/skins/content/writer/content.js +2 -0
  156. package/public/tinymce/skins/content/writer/content.min.css +1 -0
  157. package/public/tinymce/skins/ui/oxide/content.css +785 -0
  158. package/public/tinymce/skins/ui/oxide/content.inline.css +779 -0
  159. package/public/tinymce/skins/ui/oxide/content.inline.js +2 -0
  160. package/public/tinymce/skins/ui/oxide/content.inline.min.css +1 -0
  161. package/public/tinymce/skins/ui/oxide/content.js +2 -0
  162. package/public/tinymce/skins/ui/oxide/content.min.css +1 -0
  163. package/public/tinymce/skins/ui/oxide/skin.css +3763 -0
  164. package/public/tinymce/skins/ui/oxide/skin.js +2 -0
  165. package/public/tinymce/skins/ui/oxide/skin.min.css +1 -0
  166. package/public/tinymce/skins/ui/oxide/skin.shadowdom.css +30 -0
  167. package/public/tinymce/skins/ui/oxide/skin.shadowdom.js +2 -0
  168. package/public/tinymce/skins/ui/oxide/skin.shadowdom.min.css +1 -0
  169. package/public/tinymce/skins/ui/oxide-dark/content.css +766 -0
  170. package/public/tinymce/skins/ui/oxide-dark/content.inline.css +779 -0
  171. package/public/tinymce/skins/ui/oxide-dark/content.inline.js +2 -0
  172. package/public/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -0
  173. package/public/tinymce/skins/ui/oxide-dark/content.js +2 -0
  174. package/public/tinymce/skins/ui/oxide-dark/content.min.css +1 -0
  175. package/public/tinymce/skins/ui/oxide-dark/skin.css +3766 -0
  176. package/public/tinymce/skins/ui/oxide-dark/skin.js +2 -0
  177. package/public/tinymce/skins/ui/oxide-dark/skin.min.css +1 -0
  178. package/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.css +30 -0
  179. package/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.js +2 -0
  180. package/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -0
  181. package/public/tinymce/skins/ui/tinymce-5/content.inline.js +2 -0
  182. package/public/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -0
  183. package/public/tinymce/skins/ui/tinymce-5/content.js +2 -0
  184. package/public/tinymce/skins/ui/tinymce-5/content.min.css +1 -0
  185. package/public/tinymce/skins/ui/tinymce-5/skin.js +2 -0
  186. package/public/tinymce/skins/ui/tinymce-5/skin.min.css +1 -0
  187. package/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.js +2 -0
  188. package/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.css +1 -0
  189. package/public/tinymce/skins/ui/tinymce-5-dark/content.inline.js +2 -0
  190. package/public/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -0
  191. package/public/tinymce/skins/ui/tinymce-5-dark/content.js +2 -0
  192. package/public/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -0
  193. package/public/tinymce/skins/ui/tinymce-5-dark/skin.js +2 -0
  194. package/public/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -0
  195. package/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.js +2 -0
  196. package/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.css +1 -0
  197. package/public/tinymce/themes/silver/index.js +7 -0
  198. package/public/tinymce/themes/silver/theme.js +30775 -0
  199. package/public/tinymce/themes/silver/theme.min.js +384 -0
  200. package/public/tinymce/tinymce.d.ts +3238 -0
  201. package/public/tinymce/tinymce.js +31779 -0
  202. package/public/tinymce/tinymce.min.js +384 -0
  203. package/dist/lib/_virtual/_commonjsHelpers.mjs +0 -2
  204. package/dist/lib/_virtual/_commonjsHelpers.mjs.map +0 -1
  205. package/dist/lib/_virtual/_interop_require_default.mjs +0 -2
  206. package/dist/lib/_virtual/_interop_require_default.mjs.map +0 -1
  207. package/dist/lib/_virtual/_interop_require_wildcard.mjs +0 -2
  208. package/dist/lib/_virtual/_interop_require_wildcard.mjs.map +0 -1
  209. package/dist/lib/_virtual/action-async-storage.external.mjs +0 -2
  210. package/dist/lib/_virtual/action-async-storage.external.mjs.map +0 -1
  211. package/dist/lib/_virtual/add-base-path.mjs +0 -2
  212. package/dist/lib/_virtual/add-base-path.mjs.map +0 -1
  213. package/dist/lib/_virtual/add-locale.mjs +0 -2
  214. package/dist/lib/_virtual/add-locale.mjs.map +0 -1
  215. package/dist/lib/_virtual/add-locale2.mjs +0 -2
  216. package/dist/lib/_virtual/add-locale2.mjs.map +0 -1
  217. package/dist/lib/_virtual/add-path-prefix.mjs +0 -2
  218. package/dist/lib/_virtual/add-path-prefix.mjs.map +0 -1
  219. package/dist/lib/_virtual/amp-context.shared-runtime.mjs +0 -2
  220. package/dist/lib/_virtual/amp-context.shared-runtime.mjs.map +0 -1
  221. package/dist/lib/_virtual/amp-mode.mjs +0 -2
  222. package/dist/lib/_virtual/amp-mode.mjs.map +0 -1
  223. package/dist/lib/_virtual/app-paths.mjs +0 -2
  224. package/dist/lib/_virtual/app-paths.mjs.map +0 -1
  225. package/dist/lib/_virtual/app-router-context.shared-runtime.mjs +0 -2
  226. package/dist/lib/_virtual/app-router-context.shared-runtime.mjs.map +0 -1
  227. package/dist/lib/_virtual/async-local-storage.mjs +0 -2
  228. package/dist/lib/_virtual/async-local-storage.mjs.map +0 -1
  229. package/dist/lib/_virtual/bailout-to-client-rendering.mjs +0 -2
  230. package/dist/lib/_virtual/bailout-to-client-rendering.mjs.map +0 -1
  231. package/dist/lib/_virtual/bailout-to-csr.mjs +0 -2
  232. package/dist/lib/_virtual/bailout-to-csr.mjs.map +0 -1
  233. package/dist/lib/_virtual/client-hook-in-server-component-error.mjs +0 -2
  234. package/dist/lib/_virtual/client-hook-in-server-component-error.mjs.map +0 -1
  235. package/dist/lib/_virtual/detect-domain-locale.mjs +0 -2
  236. package/dist/lib/_virtual/detect-domain-locale.mjs.map +0 -1
  237. package/dist/lib/_virtual/detect-domain-locale2.mjs +0 -2
  238. package/dist/lib/_virtual/detect-domain-locale2.mjs.map +0 -1
  239. package/dist/lib/_virtual/ensure-leading-slash.mjs +0 -2
  240. package/dist/lib/_virtual/ensure-leading-slash.mjs.map +0 -1
  241. package/dist/lib/_virtual/escape-regexp.mjs +0 -2
  242. package/dist/lib/_virtual/escape-regexp.mjs.map +0 -1
  243. package/dist/lib/_virtual/format-url.mjs +0 -2
  244. package/dist/lib/_virtual/format-url.mjs.map +0 -1
  245. package/dist/lib/_virtual/get-domain-locale.mjs +0 -2
  246. package/dist/lib/_virtual/get-domain-locale.mjs.map +0 -1
  247. package/dist/lib/_virtual/get-img-props.mjs +0 -2
  248. package/dist/lib/_virtual/get-img-props.mjs.map +0 -1
  249. package/dist/lib/_virtual/get-segment-value.mjs +0 -2
  250. package/dist/lib/_virtual/get-segment-value.mjs.map +0 -1
  251. package/dist/lib/_virtual/has-base-path.mjs +0 -2
  252. package/dist/lib/_virtual/has-base-path.mjs.map +0 -1
  253. package/dist/lib/_virtual/head-manager-context.shared-runtime.mjs +0 -2
  254. package/dist/lib/_virtual/head-manager-context.shared-runtime.mjs.map +0 -1
  255. package/dist/lib/_virtual/head.mjs +0 -2
  256. package/dist/lib/_virtual/head.mjs.map +0 -1
  257. package/dist/lib/_virtual/hooks-client-context.shared-runtime.mjs +0 -2
  258. package/dist/lib/_virtual/hooks-client-context.shared-runtime.mjs.map +0 -1
  259. package/dist/lib/_virtual/image-blur-svg.mjs +0 -2
  260. package/dist/lib/_virtual/image-blur-svg.mjs.map +0 -1
  261. package/dist/lib/_virtual/image-component.mjs +0 -2
  262. package/dist/lib/_virtual/image-component.mjs.map +0 -1
  263. package/dist/lib/_virtual/image-config-context.shared-runtime.mjs +0 -2
  264. package/dist/lib/_virtual/image-config-context.shared-runtime.mjs.map +0 -1
  265. package/dist/lib/_virtual/image-config.mjs +0 -2
  266. package/dist/lib/_virtual/image-config.mjs.map +0 -1
  267. package/dist/lib/_virtual/image-external.mjs +0 -2
  268. package/dist/lib/_virtual/image-external.mjs.map +0 -1
  269. package/dist/lib/_virtual/image-loader.mjs +0 -2
  270. package/dist/lib/_virtual/image-loader.mjs.map +0 -1
  271. package/dist/lib/_virtual/image.mjs +0 -2
  272. package/dist/lib/_virtual/image.mjs.map +0 -1
  273. package/dist/lib/_virtual/index4.mjs +0 -2
  274. package/dist/lib/_virtual/index4.mjs.map +0 -1
  275. package/dist/lib/_virtual/index5.mjs +0 -2
  276. package/dist/lib/_virtual/index5.mjs.map +0 -1
  277. package/dist/lib/_virtual/index6.mjs +0 -2
  278. package/dist/lib/_virtual/index6.mjs.map +0 -1
  279. package/dist/lib/_virtual/index7.mjs +0 -2
  280. package/dist/lib/_virtual/index7.mjs.map +0 -1
  281. package/dist/lib/_virtual/index8.mjs +0 -2
  282. package/dist/lib/_virtual/index8.mjs.map +0 -1
  283. package/dist/lib/_virtual/index9.mjs +0 -2
  284. package/dist/lib/_virtual/index9.mjs.map +0 -1
  285. package/dist/lib/_virtual/interception-routes.mjs +0 -2
  286. package/dist/lib/_virtual/interception-routes.mjs.map +0 -1
  287. package/dist/lib/_virtual/interpolate-as.mjs +0 -2
  288. package/dist/lib/_virtual/interpolate-as.mjs.map +0 -1
  289. package/dist/lib/_virtual/is-dynamic.mjs +0 -2
  290. package/dist/lib/_virtual/is-dynamic.mjs.map +0 -1
  291. package/dist/lib/_virtual/is-local-url.mjs +0 -2
  292. package/dist/lib/_virtual/is-local-url.mjs.map +0 -1
  293. package/dist/lib/_virtual/link.mjs +0 -2
  294. package/dist/lib/_virtual/link.mjs.map +0 -1
  295. package/dist/lib/_virtual/link2.mjs +0 -2
  296. package/dist/lib/_virtual/link2.mjs.map +0 -1
  297. package/dist/lib/_virtual/match-remote-pattern.mjs +0 -2
  298. package/dist/lib/_virtual/match-remote-pattern.mjs.map +0 -1
  299. package/dist/lib/_virtual/navigation.mjs +0 -2
  300. package/dist/lib/_virtual/navigation.mjs.map +0 -1
  301. package/dist/lib/_virtual/navigation2.mjs +0 -2
  302. package/dist/lib/_virtual/navigation2.mjs.map +0 -1
  303. package/dist/lib/_virtual/normalize-locale-path.mjs +0 -2
  304. package/dist/lib/_virtual/normalize-locale-path.mjs.map +0 -1
  305. package/dist/lib/_virtual/normalize-locale-path2.mjs +0 -2
  306. package/dist/lib/_virtual/normalize-locale-path2.mjs.map +0 -1
  307. package/dist/lib/_virtual/normalize-trailing-slash.mjs +0 -2
  308. package/dist/lib/_virtual/normalize-trailing-slash.mjs.map +0 -1
  309. package/dist/lib/_virtual/not-found.mjs +0 -2
  310. package/dist/lib/_virtual/not-found.mjs.map +0 -1
  311. package/dist/lib/_virtual/omit.mjs +0 -2
  312. package/dist/lib/_virtual/omit.mjs.map +0 -1
  313. package/dist/lib/_virtual/parse-path.mjs +0 -2
  314. package/dist/lib/_virtual/parse-path.mjs.map +0 -1
  315. package/dist/lib/_virtual/path-has-prefix.mjs +0 -2
  316. package/dist/lib/_virtual/path-has-prefix.mjs.map +0 -1
  317. package/dist/lib/_virtual/querystring.mjs +0 -2
  318. package/dist/lib/_virtual/querystring.mjs.map +0 -1
  319. package/dist/lib/_virtual/redirect-status-code.mjs +0 -2
  320. package/dist/lib/_virtual/redirect-status-code.mjs.map +0 -1
  321. package/dist/lib/_virtual/redirect.mjs +0 -2
  322. package/dist/lib/_virtual/redirect.mjs.map +0 -1
  323. package/dist/lib/_virtual/remove-trailing-slash.mjs +0 -2
  324. package/dist/lib/_virtual/remove-trailing-slash.mjs.map +0 -1
  325. package/dist/lib/_virtual/request-async-storage.external.mjs +0 -2
  326. package/dist/lib/_virtual/request-async-storage.external.mjs.map +0 -1
  327. package/dist/lib/_virtual/request-idle-callback.mjs +0 -2
  328. package/dist/lib/_virtual/request-idle-callback.mjs.map +0 -1
  329. package/dist/lib/_virtual/resolve-href.mjs +0 -2
  330. package/dist/lib/_virtual/resolve-href.mjs.map +0 -1
  331. package/dist/lib/_virtual/route-matcher.mjs +0 -2
  332. package/dist/lib/_virtual/route-matcher.mjs.map +0 -1
  333. package/dist/lib/_virtual/route-regex.mjs +0 -2
  334. package/dist/lib/_virtual/route-regex.mjs.map +0 -1
  335. package/dist/lib/_virtual/router-context.shared-runtime.mjs +0 -2
  336. package/dist/lib/_virtual/router-context.shared-runtime.mjs.map +0 -1
  337. package/dist/lib/_virtual/router-reducer-types.mjs +0 -2
  338. package/dist/lib/_virtual/router-reducer-types.mjs.map +0 -1
  339. package/dist/lib/_virtual/segment.mjs +0 -2
  340. package/dist/lib/_virtual/segment.mjs.map +0 -1
  341. package/dist/lib/_virtual/server-inserted-html.shared-runtime.mjs +0 -2
  342. package/dist/lib/_virtual/server-inserted-html.shared-runtime.mjs.map +0 -1
  343. package/dist/lib/_virtual/side-effect.mjs +0 -2
  344. package/dist/lib/_virtual/side-effect.mjs.map +0 -1
  345. package/dist/lib/_virtual/sorted-routes.mjs +0 -2
  346. package/dist/lib/_virtual/sorted-routes.mjs.map +0 -1
  347. package/dist/lib/_virtual/static-generation-async-storage.external.mjs +0 -2
  348. package/dist/lib/_virtual/static-generation-async-storage.external.mjs.map +0 -1
  349. package/dist/lib/_virtual/toastui-editor-plugin-color-syntax.mjs +0 -2
  350. package/dist/lib/_virtual/toastui-editor-plugin-color-syntax.mjs.map +0 -1
  351. package/dist/lib/_virtual/toastui-editor-plugin-color-syntax2.mjs +0 -2
  352. package/dist/lib/_virtual/toastui-editor-plugin-color-syntax2.mjs.map +0 -1
  353. package/dist/lib/_virtual/toastui-editor-viewer.mjs +0 -2
  354. package/dist/lib/_virtual/toastui-editor-viewer.mjs.map +0 -1
  355. package/dist/lib/_virtual/toastui-editor-viewer2.mjs +0 -2
  356. package/dist/lib/_virtual/toastui-editor-viewer2.mjs.map +0 -1
  357. package/dist/lib/_virtual/tui-color-picker.mjs +0 -2
  358. package/dist/lib/_virtual/tui-color-picker.mjs.map +0 -1
  359. package/dist/lib/_virtual/use-intersection.mjs +0 -2
  360. package/dist/lib/_virtual/use-intersection.mjs.map +0 -1
  361. package/dist/lib/_virtual/utils.mjs +0 -2
  362. package/dist/lib/_virtual/utils.mjs.map +0 -1
  363. package/dist/lib/_virtual/warn-once.mjs +0 -2
  364. package/dist/lib/_virtual/warn-once.mjs.map +0 -1
  365. package/dist/lib/dist/lib/components/Timeline/TimelineConnector.mjs +0 -2
  366. package/dist/lib/dist/lib/components/Timeline/TimelineConnector.mjs.map +0 -1
  367. package/dist/lib/dist/lib/components/Timeline/TimelineContent.mjs +0 -2
  368. package/dist/lib/dist/lib/components/Timeline/TimelineContent.mjs.map +0 -1
  369. package/dist/lib/dist/lib/components/Timeline/TimelineDescription.mjs +0 -2
  370. package/dist/lib/dist/lib/components/Timeline/TimelineDescription.mjs.map +0 -1
  371. package/dist/lib/dist/lib/components/Timeline/TimelineHeader.mjs +0 -2
  372. package/dist/lib/dist/lib/components/Timeline/TimelineHeader.mjs.map +0 -1
  373. package/dist/lib/dist/lib/components/Timeline/TimelineIcon.mjs +0 -2
  374. package/dist/lib/dist/lib/components/Timeline/TimelineIcon.mjs.map +0 -1
  375. package/dist/lib/dist/lib/components/Timeline/TimelineItem.mjs +0 -2
  376. package/dist/lib/dist/lib/components/Timeline/TimelineItem.mjs.map +0 -1
  377. package/dist/lib/dist/lib/components/Timeline/TimelineRoot.mjs +0 -3
  378. package/dist/lib/dist/lib/components/Timeline/TimelineRoot.mjs.map +0 -1
  379. package/dist/lib/dist/lib/components/Timeline/TimelineTime.mjs +0 -2
  380. package/dist/lib/dist/lib/components/Timeline/TimelineTime.mjs.map +0 -1
  381. package/dist/lib/dist/lib/components/Timeline/TimelineTitle.mjs +0 -2
  382. package/dist/lib/dist/lib/components/Timeline/TimelineTitle.mjs.map +0 -1
  383. package/dist/lib/dist/lib/components/Timeline/index.mjs +0 -2
  384. package/dist/lib/dist/lib/components/Timeline/index.mjs.map +0 -1
  385. package/dist/lib/node_modules/@swc/helpers/cjs/_interop_require_default.mjs +0 -2
  386. package/dist/lib/node_modules/@swc/helpers/cjs/_interop_require_default.mjs.map +0 -1
  387. package/dist/lib/node_modules/@swc/helpers/cjs/_interop_require_wildcard.mjs +0 -2
  388. package/dist/lib/node_modules/@swc/helpers/cjs/_interop_require_wildcard.mjs.map +0 -1
  389. package/dist/lib/node_modules/@toast-ui/editor/dist/esm/index.mjs +0 -37
  390. package/dist/lib/node_modules/@toast-ui/editor/dist/esm/index.mjs.map +0 -1
  391. package/dist/lib/node_modules/@toast-ui/editor/dist/toastui-editor-viewer.mjs +0 -24
  392. package/dist/lib/node_modules/@toast-ui/editor/dist/toastui-editor-viewer.mjs.map +0 -1
  393. package/dist/lib/node_modules/@toast-ui/editor-plugin-color-syntax/dist/toastui-editor-plugin-color-syntax.mjs +0 -8
  394. package/dist/lib/node_modules/@toast-ui/editor-plugin-color-syntax/dist/toastui-editor-plugin-color-syntax.mjs.map +0 -1
  395. package/dist/lib/node_modules/@toast-ui/react-editor/dist/esm/index.mjs +0 -22
  396. package/dist/lib/node_modules/@toast-ui/react-editor/dist/esm/index.mjs.map +0 -1
  397. package/dist/lib/node_modules/next/dist/client/add-base-path.mjs +0 -2
  398. package/dist/lib/node_modules/next/dist/client/add-base-path.mjs.map +0 -1
  399. package/dist/lib/node_modules/next/dist/client/add-locale.mjs +0 -2
  400. package/dist/lib/node_modules/next/dist/client/add-locale.mjs.map +0 -1
  401. package/dist/lib/node_modules/next/dist/client/components/action-async-storage.external.mjs +0 -2
  402. package/dist/lib/node_modules/next/dist/client/components/action-async-storage.external.mjs.map +0 -1
  403. package/dist/lib/node_modules/next/dist/client/components/async-local-storage.mjs +0 -2
  404. package/dist/lib/node_modules/next/dist/client/components/async-local-storage.mjs.map +0 -1
  405. package/dist/lib/node_modules/next/dist/client/components/bailout-to-client-rendering.mjs +0 -2
  406. package/dist/lib/node_modules/next/dist/client/components/bailout-to-client-rendering.mjs.map +0 -1
  407. package/dist/lib/node_modules/next/dist/client/components/client-hook-in-server-component-error.mjs +0 -2
  408. package/dist/lib/node_modules/next/dist/client/components/client-hook-in-server-component-error.mjs.map +0 -1
  409. package/dist/lib/node_modules/next/dist/client/components/navigation.mjs +0 -2
  410. package/dist/lib/node_modules/next/dist/client/components/navigation.mjs.map +0 -1
  411. package/dist/lib/node_modules/next/dist/client/components/not-found.mjs +0 -2
  412. package/dist/lib/node_modules/next/dist/client/components/not-found.mjs.map +0 -1
  413. package/dist/lib/node_modules/next/dist/client/components/redirect-status-code.mjs +0 -2
  414. package/dist/lib/node_modules/next/dist/client/components/redirect-status-code.mjs.map +0 -1
  415. package/dist/lib/node_modules/next/dist/client/components/redirect.mjs +0 -2
  416. package/dist/lib/node_modules/next/dist/client/components/redirect.mjs.map +0 -1
  417. package/dist/lib/node_modules/next/dist/client/components/request-async-storage.external.mjs +0 -2
  418. package/dist/lib/node_modules/next/dist/client/components/request-async-storage.external.mjs.map +0 -1
  419. package/dist/lib/node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.mjs +0 -2
  420. package/dist/lib/node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.mjs.map +0 -1
  421. package/dist/lib/node_modules/next/dist/client/components/router-reducer/router-reducer-types.mjs +0 -2
  422. package/dist/lib/node_modules/next/dist/client/components/router-reducer/router-reducer-types.mjs.map +0 -1
  423. package/dist/lib/node_modules/next/dist/client/components/static-generation-async-storage.external.mjs +0 -2
  424. package/dist/lib/node_modules/next/dist/client/components/static-generation-async-storage.external.mjs.map +0 -1
  425. package/dist/lib/node_modules/next/dist/client/detect-domain-locale.mjs +0 -2
  426. package/dist/lib/node_modules/next/dist/client/detect-domain-locale.mjs.map +0 -1
  427. package/dist/lib/node_modules/next/dist/client/get-domain-locale.mjs +0 -2
  428. package/dist/lib/node_modules/next/dist/client/get-domain-locale.mjs.map +0 -1
  429. package/dist/lib/node_modules/next/dist/client/has-base-path.mjs +0 -2
  430. package/dist/lib/node_modules/next/dist/client/has-base-path.mjs.map +0 -1
  431. package/dist/lib/node_modules/next/dist/client/image-component.mjs +0 -2
  432. package/dist/lib/node_modules/next/dist/client/image-component.mjs.map +0 -1
  433. package/dist/lib/node_modules/next/dist/client/link.mjs +0 -2
  434. package/dist/lib/node_modules/next/dist/client/link.mjs.map +0 -1
  435. package/dist/lib/node_modules/next/dist/client/normalize-locale-path.mjs +0 -2
  436. package/dist/lib/node_modules/next/dist/client/normalize-locale-path.mjs.map +0 -1
  437. package/dist/lib/node_modules/next/dist/client/normalize-trailing-slash.mjs +0 -2
  438. package/dist/lib/node_modules/next/dist/client/normalize-trailing-slash.mjs.map +0 -1
  439. package/dist/lib/node_modules/next/dist/client/request-idle-callback.mjs +0 -2
  440. package/dist/lib/node_modules/next/dist/client/request-idle-callback.mjs.map +0 -1
  441. package/dist/lib/node_modules/next/dist/client/resolve-href.mjs +0 -2
  442. package/dist/lib/node_modules/next/dist/client/resolve-href.mjs.map +0 -1
  443. package/dist/lib/node_modules/next/dist/client/use-intersection.mjs +0 -2
  444. package/dist/lib/node_modules/next/dist/client/use-intersection.mjs.map +0 -1
  445. package/dist/lib/node_modules/next/dist/compiled/micromatch/index.mjs +0 -23
  446. package/dist/lib/node_modules/next/dist/compiled/micromatch/index.mjs.map +0 -1
  447. package/dist/lib/node_modules/next/dist/server/future/helpers/interception-routes.mjs +0 -2
  448. package/dist/lib/node_modules/next/dist/server/future/helpers/interception-routes.mjs.map +0 -1
  449. package/dist/lib/node_modules/next/dist/shared/lib/amp-context.shared-runtime.mjs +0 -2
  450. package/dist/lib/node_modules/next/dist/shared/lib/amp-context.shared-runtime.mjs.map +0 -1
  451. package/dist/lib/node_modules/next/dist/shared/lib/amp-mode.mjs +0 -2
  452. package/dist/lib/node_modules/next/dist/shared/lib/amp-mode.mjs.map +0 -1
  453. package/dist/lib/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.mjs +0 -2
  454. package/dist/lib/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.mjs.map +0 -1
  455. package/dist/lib/node_modules/next/dist/shared/lib/escape-regexp.mjs +0 -2
  456. package/dist/lib/node_modules/next/dist/shared/lib/escape-regexp.mjs.map +0 -1
  457. package/dist/lib/node_modules/next/dist/shared/lib/get-img-props.mjs +0 -2
  458. package/dist/lib/node_modules/next/dist/shared/lib/get-img-props.mjs.map +0 -1
  459. package/dist/lib/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.mjs +0 -2
  460. package/dist/lib/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.mjs.map +0 -1
  461. package/dist/lib/node_modules/next/dist/shared/lib/head.mjs +0 -2
  462. package/dist/lib/node_modules/next/dist/shared/lib/head.mjs.map +0 -1
  463. package/dist/lib/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.mjs +0 -2
  464. package/dist/lib/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.mjs.map +0 -1
  465. package/dist/lib/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.mjs +0 -2
  466. package/dist/lib/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.mjs.map +0 -1
  467. package/dist/lib/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.mjs +0 -2
  468. package/dist/lib/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.mjs.map +0 -1
  469. package/dist/lib/node_modules/next/dist/shared/lib/image-blur-svg.mjs +0 -2
  470. package/dist/lib/node_modules/next/dist/shared/lib/image-blur-svg.mjs.map +0 -1
  471. package/dist/lib/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.mjs +0 -2
  472. package/dist/lib/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.mjs.map +0 -1
  473. package/dist/lib/node_modules/next/dist/shared/lib/image-config.mjs +0 -2
  474. package/dist/lib/node_modules/next/dist/shared/lib/image-config.mjs.map +0 -1
  475. package/dist/lib/node_modules/next/dist/shared/lib/image-external.mjs +0 -2
  476. package/dist/lib/node_modules/next/dist/shared/lib/image-external.mjs.map +0 -1
  477. package/dist/lib/node_modules/next/dist/shared/lib/image-loader.mjs +0 -2
  478. package/dist/lib/node_modules/next/dist/shared/lib/image-loader.mjs.map +0 -1
  479. package/dist/lib/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.mjs +0 -2
  480. package/dist/lib/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.mjs.map +0 -1
  481. package/dist/lib/node_modules/next/dist/shared/lib/match-remote-pattern.mjs +0 -2
  482. package/dist/lib/node_modules/next/dist/shared/lib/match-remote-pattern.mjs.map +0 -1
  483. package/dist/lib/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.mjs +0 -2
  484. package/dist/lib/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.mjs.map +0 -1
  485. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/add-locale.mjs +0 -2
  486. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/add-locale.mjs.map +0 -1
  487. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.mjs +0 -2
  488. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.mjs.map +0 -1
  489. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/app-paths.mjs +0 -2
  490. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/app-paths.mjs.map +0 -1
  491. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/format-url.mjs +0 -2
  492. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/format-url.mjs.map +0 -1
  493. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/index.mjs +0 -2
  494. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/index.mjs.map +0 -1
  495. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/interpolate-as.mjs +0 -2
  496. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/interpolate-as.mjs.map +0 -1
  497. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/is-dynamic.mjs +0 -2
  498. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/is-dynamic.mjs.map +0 -1
  499. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/is-local-url.mjs +0 -2
  500. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/is-local-url.mjs.map +0 -1
  501. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/omit.mjs +0 -2
  502. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/omit.mjs.map +0 -1
  503. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/parse-path.mjs +0 -2
  504. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/parse-path.mjs.map +0 -1
  505. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.mjs +0 -2
  506. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.mjs.map +0 -1
  507. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/querystring.mjs +0 -2
  508. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/querystring.mjs.map +0 -1
  509. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.mjs +0 -2
  510. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.mjs.map +0 -1
  511. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/route-matcher.mjs +0 -2
  512. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/route-matcher.mjs.map +0 -1
  513. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/route-regex.mjs +0 -2
  514. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/route-regex.mjs.map +0 -1
  515. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/sorted-routes.mjs +0 -2
  516. package/dist/lib/node_modules/next/dist/shared/lib/router/utils/sorted-routes.mjs.map +0 -1
  517. package/dist/lib/node_modules/next/dist/shared/lib/router-context.shared-runtime.mjs +0 -2
  518. package/dist/lib/node_modules/next/dist/shared/lib/router-context.shared-runtime.mjs.map +0 -1
  519. package/dist/lib/node_modules/next/dist/shared/lib/segment.mjs +0 -2
  520. package/dist/lib/node_modules/next/dist/shared/lib/segment.mjs.map +0 -1
  521. package/dist/lib/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.mjs +0 -2
  522. package/dist/lib/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.mjs.map +0 -1
  523. package/dist/lib/node_modules/next/dist/shared/lib/side-effect.mjs +0 -2
  524. package/dist/lib/node_modules/next/dist/shared/lib/side-effect.mjs.map +0 -1
  525. package/dist/lib/node_modules/next/dist/shared/lib/utils/warn-once.mjs +0 -2
  526. package/dist/lib/node_modules/next/dist/shared/lib/utils/warn-once.mjs.map +0 -1
  527. package/dist/lib/node_modules/next/dist/shared/lib/utils.mjs +0 -2
  528. package/dist/lib/node_modules/next/dist/shared/lib/utils.mjs.map +0 -1
  529. package/dist/lib/node_modules/next/image.mjs +0 -2
  530. package/dist/lib/node_modules/next/image.mjs.map +0 -1
  531. package/dist/lib/node_modules/next/link.mjs +0 -2
  532. package/dist/lib/node_modules/next/link.mjs.map +0 -1
  533. package/dist/lib/node_modules/next/navigation.mjs +0 -2
  534. package/dist/lib/node_modules/next/navigation.mjs.map +0 -1
  535. package/dist/lib/node_modules/orderedmap/dist/index.mjs +0 -2
  536. package/dist/lib/node_modules/orderedmap/dist/index.mjs.map +0 -1
  537. package/dist/lib/node_modules/orderedmap/dist/index2.mjs +0 -2
  538. package/dist/lib/node_modules/orderedmap/dist/index2.mjs.map +0 -1
  539. package/dist/lib/node_modules/prosemirror-commands/dist/index.mjs +0 -2
  540. package/dist/lib/node_modules/prosemirror-commands/dist/index.mjs.map +0 -1
  541. package/dist/lib/node_modules/prosemirror-history/dist/index.mjs +0 -2
  542. package/dist/lib/node_modules/prosemirror-history/dist/index.mjs.map +0 -1
  543. package/dist/lib/node_modules/prosemirror-inputrules/dist/index.mjs +0 -2
  544. package/dist/lib/node_modules/prosemirror-inputrules/dist/index.mjs.map +0 -1
  545. package/dist/lib/node_modules/prosemirror-inputrules/dist/index2.mjs +0 -2
  546. package/dist/lib/node_modules/prosemirror-inputrules/dist/index2.mjs.map +0 -1
  547. package/dist/lib/node_modules/prosemirror-keymap/dist/index.mjs +0 -2
  548. package/dist/lib/node_modules/prosemirror-keymap/dist/index.mjs.map +0 -1
  549. package/dist/lib/node_modules/prosemirror-keymap/dist/index2.mjs +0 -2
  550. package/dist/lib/node_modules/prosemirror-keymap/dist/index2.mjs.map +0 -1
  551. package/dist/lib/node_modules/prosemirror-model/dist/index.mjs +0 -2
  552. package/dist/lib/node_modules/prosemirror-model/dist/index.mjs.map +0 -1
  553. package/dist/lib/node_modules/prosemirror-model/dist/index2.mjs +0 -2
  554. package/dist/lib/node_modules/prosemirror-model/dist/index2.mjs.map +0 -1
  555. package/dist/lib/node_modules/prosemirror-state/dist/index.mjs +0 -2
  556. package/dist/lib/node_modules/prosemirror-state/dist/index.mjs.map +0 -1
  557. package/dist/lib/node_modules/prosemirror-state/dist/index2.mjs +0 -2
  558. package/dist/lib/node_modules/prosemirror-state/dist/index2.mjs.map +0 -1
  559. package/dist/lib/node_modules/prosemirror-transform/dist/index.mjs +0 -2
  560. package/dist/lib/node_modules/prosemirror-transform/dist/index.mjs.map +0 -1
  561. package/dist/lib/node_modules/prosemirror-transform/dist/index2.mjs +0 -2
  562. package/dist/lib/node_modules/prosemirror-transform/dist/index2.mjs.map +0 -1
  563. package/dist/lib/node_modules/prosemirror-view/dist/index.mjs +0 -2
  564. package/dist/lib/node_modules/prosemirror-view/dist/index.mjs.map +0 -1
  565. package/dist/lib/node_modules/prosemirror-view/dist/index2.mjs +0 -2
  566. package/dist/lib/node_modules/prosemirror-view/dist/index2.mjs.map +0 -1
  567. package/dist/lib/node_modules/rope-sequence/dist/index.mjs +0 -2
  568. package/dist/lib/node_modules/rope-sequence/dist/index.mjs.map +0 -1
  569. package/dist/lib/node_modules/tui-color-picker/dist/tui-color-picker.mjs +0 -10
  570. package/dist/lib/node_modules/tui-color-picker/dist/tui-color-picker.mjs.map +0 -1
  571. package/dist/lib/node_modules/w3c-keyname/index.mjs +0 -2
  572. package/dist/lib/node_modules/w3c-keyname/index.mjs.map +0 -1
  573. package/dist/lib/node_modules/w3c-keyname/index2.mjs +0 -2
  574. package/dist/lib/node_modules/w3c-keyname/index2.mjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"toastui-editor-viewer.mjs","sources":["../../../../../../node_modules/@toast-ui/editor/dist/toastui-editor-viewer.js"],"sourcesContent":["/*!\n * @toast-ui/editor\n * @version 3.2.2 | Fri Feb 17 2023\n * @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"prosemirror-inputrules\"), require(\"prosemirror-keymap\"), require(\"prosemirror-model\"), require(\"prosemirror-state\"), require(\"prosemirror-view\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"prosemirror-inputrules\", \"prosemirror-keymap\", \"prosemirror-model\", \"prosemirror-state\", \"prosemirror-view\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"toastui\"] = factory(require(\"prosemirror-inputrules\"), require(\"prosemirror-keymap\"), require(\"prosemirror-model\"), require(\"prosemirror-state\"), require(\"prosemirror-view\"));\n\telse\n\t\troot[\"toastui\"] = root[\"toastui\"] || {}, root[\"toastui\"][\"Editor\"] = factory(root[undefined], root[undefined], root[undefined], root[undefined], root[undefined]);\n})(self, function(__WEBPACK_EXTERNAL_MODULE__479__, __WEBPACK_EXTERNAL_MODULE__481__, __WEBPACK_EXTERNAL_MODULE__43__, __WEBPACK_EXTERNAL_MODULE__814__, __WEBPACK_EXTERNAL_MODULE__311__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 368:\n/***/ (function(module) {\n\n/*! @license DOMPurify 2.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.3.3/LICENSE */\n\n(function (global, factory) {\n true ? module.exports = factory() :\n 0;\n}(this, function () { 'use strict';\n\n function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var hasOwnProperty = Object.hasOwnProperty,\n setPrototypeOf = Object.setPrototypeOf,\n isFrozen = Object.isFrozen,\n getPrototypeOf = Object.getPrototypeOf,\n getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n var freeze = Object.freeze,\n seal = Object.seal,\n create = Object.create; // eslint-disable-line import/no-mutable-exports\n\n var _ref = typeof Reflect !== 'undefined' && Reflect,\n apply = _ref.apply,\n construct = _ref.construct;\n\n if (!apply) {\n apply = function apply(fun, thisValue, args) {\n return fun.apply(thisValue, args);\n };\n }\n\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n\n if (!construct) {\n construct = function construct(Func, args) {\n return new (Function.prototype.bind.apply(Func, [null].concat(_toConsumableArray(args))))();\n };\n }\n\n var arrayForEach = unapply(Array.prototype.forEach);\n var arrayPop = unapply(Array.prototype.pop);\n var arrayPush = unapply(Array.prototype.push);\n\n var stringToLowerCase = unapply(String.prototype.toLowerCase);\n var stringMatch = unapply(String.prototype.match);\n var stringReplace = unapply(String.prototype.replace);\n var stringIndexOf = unapply(String.prototype.indexOf);\n var stringTrim = unapply(String.prototype.trim);\n\n var regExpTest = unapply(RegExp.prototype.test);\n\n var typeErrorCreate = unconstruct(TypeError);\n\n function unapply(func) {\n return function (thisArg) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return apply(func, thisArg, args);\n };\n }\n\n function unconstruct(func) {\n return function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return construct(func, args);\n };\n }\n\n /* Add properties to a lookup table */\n function addToSet(set, array) {\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n\n var l = array.length;\n while (l--) {\n var element = array[l];\n if (typeof element === 'string') {\n var lcElement = stringToLowerCase(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n\n element = lcElement;\n }\n }\n\n set[element] = true;\n }\n\n return set;\n }\n\n /* Shallow clone an object */\n function clone(object) {\n var newObject = create(null);\n\n var property = void 0;\n for (property in object) {\n if (apply(hasOwnProperty, object, [property])) {\n newObject[property] = object[property];\n }\n }\n\n return newObject;\n }\n\n /* IE10 doesn't support __lookupGetter__ so lets'\n * simulate it. It also automatically checks\n * if the prop is function or getter and behaves\n * accordingly. */\n function lookupGetter(object, prop) {\n while (object !== null) {\n var desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n\n object = getPrototypeOf(object);\n }\n\n function fallbackValue(element) {\n console.warn('fallback value for', element);\n return null;\n }\n\n return fallbackValue;\n }\n\n var html = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'section', 'select', 'shadow', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n\n // SVG\n var svg = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n\n var svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n var svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'fedropshadow', 'feimage', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n\n var mathMl = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover']);\n\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n var mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n\n var text = freeze(['#text']);\n\n var html$1 = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'pattern', 'placeholder', 'playsinline', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'xmlns', 'slot']);\n\n var svg$1 = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'targetx', 'targety', 'transform', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n\n var mathMl$1 = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n\n var xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n var MUSTACHE_EXPR = seal(/\\{\\{[\\s\\S]*|[\\s\\S]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n var ERB_EXPR = seal(/<%[\\s\\S]*|[\\s\\S]*%>/gm);\n var DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]/); // eslint-disable-line no-useless-escape\n var ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n var IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n var IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n var ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n function _toConsumableArray$1(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n var getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param {?TrustedTypePolicyFactory} trustedTypes The policy factory.\n * @param {Document} document The document object (to determine policy name suffix)\n * @return {?TrustedTypePolicy} The policy created (or null, if Trusted Types\n * are not supported).\n */\n var _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, document) {\n if ((typeof trustedTypes === 'undefined' ? 'undefined' : _typeof(trustedTypes)) !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n var suffix = null;\n var ATTR_NAME = 'data-tt-policy-suffix';\n if (document.currentScript && document.currentScript.hasAttribute(ATTR_NAME)) {\n suffix = document.currentScript.getAttribute(ATTR_NAME);\n }\n\n var policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML: function createHTML(html$$1) {\n return html$$1;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n\n function createDOMPurify() {\n var window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n\n var DOMPurify = function DOMPurify(root) {\n return createDOMPurify(root);\n };\n\n /**\n * Version label, exposed for easier checks\n * if DOMPurify is up to date or not\n */\n DOMPurify.version = '2.3.3';\n\n /**\n * Array of elements that DOMPurify removed during sanitation.\n * Empty if nothing was removed.\n */\n DOMPurify.removed = [];\n\n if (!window || !window.document || window.document.nodeType !== 9) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n\n return DOMPurify;\n }\n\n var originalDocument = window.document;\n\n var document = window.document;\n var DocumentFragment = window.DocumentFragment,\n HTMLTemplateElement = window.HTMLTemplateElement,\n Node = window.Node,\n Element = window.Element,\n NodeFilter = window.NodeFilter,\n _window$NamedNodeMap = window.NamedNodeMap,\n NamedNodeMap = _window$NamedNodeMap === undefined ? window.NamedNodeMap || window.MozNamedAttrMap : _window$NamedNodeMap,\n Text = window.Text,\n Comment = window.Comment,\n DOMParser = window.DOMParser,\n trustedTypes = window.trustedTypes;\n\n\n var ElementPrototype = Element.prototype;\n\n var cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n var getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n var getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n var getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n var template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n\n var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);\n var emptyHTML = trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML('') : '';\n\n var _document = document,\n implementation = _document.implementation,\n createNodeIterator = _document.createNodeIterator,\n createDocumentFragment = _document.createDocumentFragment,\n getElementsByTagName = _document.getElementsByTagName;\n var importNode = originalDocument.importNode;\n\n\n var documentMode = {};\n try {\n documentMode = clone(document).documentMode ? document.documentMode : {};\n } catch (_) {}\n\n var hooks = {};\n\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof getParentNode === 'function' && implementation && typeof implementation.createHTMLDocument !== 'undefined' && documentMode !== 9;\n\n var MUSTACHE_EXPR$$1 = MUSTACHE_EXPR,\n ERB_EXPR$$1 = ERB_EXPR,\n DATA_ATTR$$1 = DATA_ATTR,\n ARIA_ATTR$$1 = ARIA_ATTR,\n IS_SCRIPT_OR_DATA$$1 = IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE$$1 = ATTR_WHITESPACE;\n var IS_ALLOWED_URI$$1 = IS_ALLOWED_URI;\n\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n\n /* allowed element names */\n\n var ALLOWED_TAGS = null;\n var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(html), _toConsumableArray$1(svg), _toConsumableArray$1(svgFilters), _toConsumableArray$1(mathMl), _toConsumableArray$1(text)));\n\n /* Allowed attribute names */\n var ALLOWED_ATTR = null;\n var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray$1(html$1), _toConsumableArray$1(svg$1), _toConsumableArray$1(mathMl$1), _toConsumableArray$1(xml)));\n\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n var FORBID_TAGS = null;\n\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n var FORBID_ATTR = null;\n\n /* Decide if ARIA attributes are okay */\n var ALLOW_ARIA_ATTR = true;\n\n /* Decide if custom data attributes are okay */\n var ALLOW_DATA_ATTR = true;\n\n /* Decide if unknown protocols are okay */\n var ALLOW_UNKNOWN_PROTOCOLS = false;\n\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n var SAFE_FOR_TEMPLATES = false;\n\n /* Decide if document with <html>... should be returned */\n var WHOLE_DOCUMENT = false;\n\n /* Track whether config is already set on this instance of DOMPurify. */\n var SET_CONFIG = false;\n\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n var FORCE_BODY = false;\n\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n var RETURN_DOM = false;\n\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n var RETURN_DOM_FRAGMENT = false;\n\n /* If `RETURN_DOM` or `RETURN_DOM_FRAGMENT` is enabled, decide if the returned DOM\n * `Node` is imported into the current `Document`. If this flag is not enabled the\n * `Node` will belong (its ownerDocument) to a fresh `HTMLDocument`, created by\n * DOMPurify.\n *\n * This defaults to `true` starting DOMPurify 2.2.0. Note that setting it to `false`\n * might cause XSS from attacks hidden in closed shadowroots in case the browser\n * supports Declarative Shadow: DOM https://web.dev/declarative-shadow-dom/\n */\n var RETURN_DOM_IMPORT = true;\n\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n var RETURN_TRUSTED_TYPE = false;\n\n /* Output should be free from DOM clobbering attacks? */\n var SANITIZE_DOM = true;\n\n /* Keep element content when removing element? */\n var KEEP_CONTENT = true;\n\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n var IN_PLACE = false;\n\n /* Allow usage of profiles like html, svg and mathMl */\n var USE_PROFILES = {};\n\n /* Tags to ignore content of when KEEP_CONTENT is true */\n var FORBID_CONTENTS = null;\n var DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n\n /* Tags that are safe for data: URIs */\n var DATA_URI_TAGS = null;\n var DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n\n /* Attributes safe for values like \"javascript:\" */\n var URI_SAFE_ATTRIBUTES = null;\n var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n\n var MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n var NAMESPACE = HTML_NAMESPACE;\n var IS_EMPTY_INPUT = false;\n\n /* Parsing of strict XHTML documents */\n var PARSER_MEDIA_TYPE = void 0;\n var SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n var DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n var transformCaseFunc = void 0;\n\n /* Keep a reference to config to pass to hooks */\n var CONFIG = null;\n\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n\n var formElement = document.createElement('form');\n\n /**\n * _parseConfig\n *\n * @param {Object} cfg optional config literal\n */\n // eslint-disable-next-line complexity\n var _parseConfig = function _parseConfig(cfg) {\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n\n /* Shield configuration object from tampering */\n if (!cfg || (typeof cfg === 'undefined' ? 'undefined' : _typeof(cfg)) !== 'object') {\n cfg = {};\n }\n\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n\n /* Set configuration parameters */\n ALLOWED_TAGS = 'ALLOWED_TAGS' in cfg ? addToSet({}, cfg.ALLOWED_TAGS) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = 'ALLOWED_ATTR' in cfg ? addToSet({}, cfg.ALLOWED_ATTR) : DEFAULT_ALLOWED_ATTR;\n URI_SAFE_ATTRIBUTES = 'ADD_URI_SAFE_ATTR' in cfg ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = 'ADD_DATA_URI_TAGS' in cfg ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = 'FORBID_CONTENTS' in cfg ? addToSet({}, cfg.FORBID_CONTENTS) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = 'FORBID_TAGS' in cfg ? addToSet({}, cfg.FORBID_TAGS) : {};\n FORBID_ATTR = 'FORBID_ATTR' in cfg ? addToSet({}, cfg.FORBID_ATTR) : {};\n USE_PROFILES = 'USE_PROFILES' in cfg ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_DOM_IMPORT = cfg.RETURN_DOM_IMPORT !== false; // Default true\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$$1;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;\n\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? function (x) {\n return x;\n } : stringToLowerCase;\n\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray$1(text)));\n ALLOWED_ATTR = [];\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html);\n addToSet(ALLOWED_ATTR, html$1);\n }\n\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl);\n addToSet(ALLOWED_ATTR, mathMl$1);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS);\n }\n\n if (cfg.ADD_ATTR) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR);\n }\n\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR);\n }\n\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS);\n }\n\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n\n CONFIG = cfg;\n };\n\n var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n\n var HTML_INTEGRATION_POINTS = addToSet({}, ['foreignobject', 'desc', 'title', 'annotation-xml']);\n\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n var ALL_SVG_TAGS = addToSet({}, svg);\n addToSet(ALL_SVG_TAGS, svgFilters);\n addToSet(ALL_SVG_TAGS, svgDisallowed);\n\n var ALL_MATHML_TAGS = addToSet({}, mathMl);\n addToSet(ALL_MATHML_TAGS, mathMlDisallowed);\n\n /**\n *\n *\n * @param {Element} element a DOM element whose namespace is being checked\n * @returns {boolean} Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n var _checkValidNamespace = function _checkValidNamespace(element) {\n var parent = getParentNode(element);\n\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: HTML_NAMESPACE,\n tagName: 'template'\n };\n }\n\n var tagName = stringToLowerCase(element.tagName);\n var parentTagName = stringToLowerCase(parent.tagName);\n\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via <svg>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n\n // The only way to switch from MathML to SVG is via\n // svg if parent is either <annotation-xml> or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via <math>. If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n\n // The only way to switch from SVG to MathML is via\n // <math> and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erronously deleted from\n // HTML namespace.\n var commonSvgAndHTMLElements = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (commonSvgAndHTMLElements[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG or MathML). Return false just in case.\n return false;\n };\n\n /**\n * _forceRemove\n *\n * @param {Node} node a DOM node\n */\n var _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, { element: node });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n node.parentNode.removeChild(node);\n } catch (_) {\n try {\n node.outerHTML = emptyHTML;\n } catch (_) {\n node.remove();\n }\n }\n };\n\n /**\n * _removeAttribute\n *\n * @param {String} name an Attribute name\n * @param {Node} node a DOM node\n */\n var _removeAttribute = function _removeAttribute(name, node) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: node.getAttributeNode(name),\n from: node\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: node\n });\n }\n\n node.removeAttribute(name);\n\n // We void attribute values for unremovable \"is\"\" attributes\n if (name === 'is' && !ALLOWED_ATTR[name]) {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(node);\n } catch (_) {}\n } else {\n try {\n node.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n\n /**\n * _initDocument\n *\n * @param {String} dirty a string of dirty markup\n * @return {Document} a DOM, filled with the dirty markup\n */\n var _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n var doc = void 0;\n var leadingWhitespace = void 0;\n\n if (FORCE_BODY) {\n dirty = '<remove></remove>' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n var matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml') {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\n }\n\n var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? '' : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n\n var body = doc.body || doc.documentElement;\n\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n\n /**\n * _createIterator\n *\n * @param {Document} root document/fragment to create iterator for\n * @return {Iterator} iterator instance\n */\n var _createIterator = function _createIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root, NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT, null, false);\n };\n\n /**\n * _isClobbered\n *\n * @param {Node} elm element to check for clobbering attacks\n * @return {Boolean} true if clobbered, false if safe\n */\n var _isClobbered = function _isClobbered(elm) {\n if (elm instanceof Text || elm instanceof Comment) {\n return false;\n }\n\n if (typeof elm.nodeName !== 'string' || typeof elm.textContent !== 'string' || typeof elm.removeChild !== 'function' || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== 'function' || typeof elm.setAttribute !== 'function' || typeof elm.namespaceURI !== 'string' || typeof elm.insertBefore !== 'function') {\n return true;\n }\n\n return false;\n };\n\n /**\n * _isNode\n *\n * @param {Node} obj object to check whether it's a DOM node\n * @return {Boolean} true is object is a DOM node\n */\n var _isNode = function _isNode(object) {\n return (typeof Node === 'undefined' ? 'undefined' : _typeof(Node)) === 'object' ? object instanceof Node : object && (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && typeof object.nodeType === 'number' && typeof object.nodeName === 'string';\n };\n\n /**\n * _executeHook\n * Execute user configurable hooks\n *\n * @param {String} entryPoint Name of the hook's entry point\n * @param {Node} currentNode node to work on with the hook\n * @param {Object} data additional hook parameters\n */\n var _executeHook = function _executeHook(entryPoint, currentNode, data) {\n if (!hooks[entryPoint]) {\n return;\n }\n\n arrayForEach(hooks[entryPoint], function (hook) {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n };\n\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n *\n * @param {Node} currentNode to check for permission to exist\n * @return {Boolean} true if node was killed, false if left alive\n */\n var _sanitizeElements = function _sanitizeElements(currentNode) {\n var content = void 0;\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeElements', currentNode, null);\n\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check if tagname contains Unicode */\n if (stringMatch(currentNode.nodeName, /[\\u0080-\\uFFFF]/)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Now let's check the element's type and name */\n var tagName = transformCaseFunc(currentNode.nodeName);\n\n /* Execute a hook if present */\n _executeHook('uponSanitizeElement', currentNode, {\n tagName: tagName,\n allowedTags: ALLOWED_TAGS\n });\n\n /* Detect mXSS attempts abusing namespace confusion */\n if (!_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\\w]/g, currentNode.innerHTML) && regExpTest(/<[/\\w]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Mitigate a problem with templates inside select */\n if (tagName === 'select' && regExpTest(/<template/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Remove element if anything forbids its presence */\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n var parentNode = getParentNode(currentNode) || currentNode.parentNode;\n var childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n\n if (childNodes && parentNode) {\n var childCount = childNodes.length;\n\n for (var i = childCount - 1; i >= 0; --i) {\n parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));\n }\n }\n }\n\n _forceRemove(currentNode);\n return true;\n }\n\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n\n if ((tagName === 'noscript' || tagName === 'noembed') && regExpTest(/<\\/no(script|embed)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {\n /* Get the element's text content */\n content = currentNode.textContent;\n content = stringReplace(content, MUSTACHE_EXPR$$1, ' ');\n content = stringReplace(content, ERB_EXPR$$1, ' ');\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, { element: currentNode.cloneNode() });\n currentNode.textContent = content;\n }\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeElements', currentNode, null);\n\n return false;\n };\n\n /**\n * _isValidAttribute\n *\n * @param {string} lcTag Lowercase tag name of containing element.\n * @param {string} lcName Lowercase attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n var _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$$1, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$$1, lcName)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n return false;\n\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$$1, stringReplace(value, ATTR_WHITESPACE$$1, ''))) ; else if (!value) ; else {\n return false;\n }\n\n return true;\n };\n\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param {Node} currentNode to sanitize\n */\n var _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n var attr = void 0;\n var value = void 0;\n var lcName = void 0;\n var l = void 0;\n /* Execute a hook if present */\n _executeHook('beforeSanitizeAttributes', currentNode, null);\n\n var attributes = currentNode.attributes;\n\n /* Check if we have attributes; if not we might have a text node */\n\n if (!attributes) {\n return;\n }\n\n var hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR\n };\n l = attributes.length;\n\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n attr = attributes[l];\n var _attr = attr,\n name = _attr.name,\n namespaceURI = _attr.namespaceURI;\n\n value = stringTrim(attr.value);\n lcName = transformCaseFunc(name);\n\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHook('uponSanitizeAttribute', currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n\n /* Remove attribute */\n _removeAttribute(name, currentNode);\n\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n continue;\n }\n\n /* Work around a security issue in jQuery 3.0 */\n if (regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n value = stringReplace(value, MUSTACHE_EXPR$$1, ' ');\n value = stringReplace(value, ERB_EXPR$$1, ' ');\n }\n\n /* Is `value` valid for this attribute? */\n var lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n continue;\n }\n\n /* Handle invalid data-* attribute set by try-catching it */\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n\n arrayPop(DOMPurify.removed);\n } catch (_) {}\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeAttributes', currentNode, null);\n };\n\n /**\n * _sanitizeShadowDOM\n *\n * @param {DocumentFragment} fragment to iterate over recursively\n */\n var _sanitizeShadowDOM = function _sanitizeShadowDOM(fragment) {\n var shadowNode = void 0;\n var shadowIterator = _createIterator(fragment);\n\n /* Execute a hook if present */\n _executeHook('beforeSanitizeShadowDOM', fragment, null);\n\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHook('uponSanitizeShadowNode', shadowNode, null);\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(shadowNode)) {\n continue;\n }\n\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(shadowNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(shadowNode);\n }\n\n /* Execute a hook if present */\n _executeHook('afterSanitizeShadowDOM', fragment, null);\n };\n\n /**\n * Sanitize\n * Public method providing core sanitation functionality\n *\n * @param {String|Node} dirty string or DOM node\n * @param {Object} configuration object\n */\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty, cfg) {\n var body = void 0;\n var importedNode = void 0;\n var currentNode = void 0;\n var oldNode = void 0;\n var returnNode = void 0;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '<!-->';\n }\n\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n // eslint-disable-next-line no-negated-condition\n if (typeof dirty.toString !== 'function') {\n throw typeErrorCreate('toString is not a function');\n } else {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n }\n\n /* Check we can run. Otherwise fall back or ignore */\n if (!DOMPurify.isSupported) {\n if (_typeof(window.toStaticHTML) === 'object' || typeof window.toStaticHTML === 'function') {\n if (typeof dirty === 'string') {\n return window.toStaticHTML(dirty);\n }\n\n if (_isNode(dirty)) {\n return window.toStaticHTML(dirty.outerHTML);\n }\n }\n\n return dirty;\n }\n\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n\n /* Clean up removed elements */\n DOMPurify.removed = [];\n\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n\n if (IN_PLACE) ; else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('<!---->');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === 1 && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : emptyHTML;\n }\n }\n\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n\n /* Get node iterator */\n var nodeIterator = _createIterator(IN_PLACE ? dirty : body);\n\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Fix IE's strange behavior with manipulated textNodes #89 */\n if (currentNode.nodeType === 3 && currentNode === oldNode) {\n continue;\n }\n\n /* Sanitize tags and elements */\n if (_sanitizeElements(currentNode)) {\n continue;\n }\n\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM(currentNode.content);\n }\n\n /* Check attributes, sanitize if necessary */\n _sanitizeAttributes(currentNode);\n\n oldNode = currentNode;\n }\n\n oldNode = null;\n\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n\n if (RETURN_DOM_IMPORT) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n\n return returnNode;\n }\n\n var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$$1, ' ');\n serializedHTML = stringReplace(serializedHTML, ERB_EXPR$$1, ' ');\n }\n\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n\n /**\n * Public method to set the configuration once\n * setConfig\n *\n * @param {Object} cfg configuration object\n */\n DOMPurify.setConfig = function (cfg) {\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n\n /**\n * Public method to remove the configuration\n * clearConfig\n *\n */\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n\n /**\n * Public method to check if an attribute value is valid.\n * Uses last set config, if any. Otherwise, uses config defaults.\n * isValidAttribute\n *\n * @param {string} tag Tag name of containing element.\n * @param {string} attr Attribute name.\n * @param {string} value Attribute value.\n * @return {Boolean} Returns true if `value` is valid. Otherwise, returns false.\n */\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n\n var lcTag = transformCaseFunc(tag);\n var lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n\n /**\n * AddHook\n * Public method to add DOMPurify hooks\n *\n * @param {String} entryPoint entry point for the hook to add\n * @param {Function} hookFunction function to execute\n */\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n\n hooks[entryPoint] = hooks[entryPoint] || [];\n arrayPush(hooks[entryPoint], hookFunction);\n };\n\n /**\n * RemoveHook\n * Public method to remove a DOMPurify hook at a given entryPoint\n * (pops it from the stack of hooks if more are present)\n *\n * @param {String} entryPoint entry point for the hook to remove\n */\n DOMPurify.removeHook = function (entryPoint) {\n if (hooks[entryPoint]) {\n arrayPop(hooks[entryPoint]);\n }\n };\n\n /**\n * RemoveHooks\n * Public method to remove all DOMPurify hooks at a given entryPoint\n *\n * @param {String} entryPoint entry point for the hooks to remove\n */\n DOMPurify.removeHooks = function (entryPoint) {\n if (hooks[entryPoint]) {\n hooks[entryPoint] = [];\n }\n };\n\n /**\n * RemoveAllHooks\n * Public method to remove all DOMPurify hooks\n *\n */\n DOMPurify.removeAllHooks = function () {\n hooks = {};\n };\n\n return DOMPurify;\n }\n\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n\n\n/***/ }),\n\n/***/ 928:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/* eslint-disable complexity */\n/**\n * @fileoverview Returns the first index at which a given element can be found in the array.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isArray = __webpack_require__(322);\n\n/**\n * @module array\n */\n\n/**\n * Returns the first index at which a given element can be found in the array\n * from start index(default 0), or -1 if it is not present.\n * It compares searchElement to elements of the Array using strict equality\n * (the same method used by the ===, or triple-equals, operator).\n * @param {*} searchElement Element to locate in the array\n * @param {Array} array Array that will be traversed.\n * @param {number} startIndex Start index in array for searching (default 0)\n * @returns {number} the First index at which a given element, or -1 if it is not present\n * @memberof module:array\n * @example\n * // ES6\n * import inArray from 'tui-code-snippet/array/inArray';\n * \n * // CommonJS\n * const inArray = require('tui-code-snippet/array/inArray');\n *\n * const arr = ['one', 'two', 'three', 'four'];\n * const idx1 = inArray('one', arr, 3); // -1\n * const idx2 = inArray('one', arr); // 0\n */\nfunction inArray(searchElement, array, startIndex) {\n var i;\n var length;\n startIndex = startIndex || 0;\n\n if (!isArray(array)) {\n return -1;\n }\n\n if (Array.prototype.indexOf) {\n return Array.prototype.indexOf.call(array, searchElement, startIndex);\n }\n\n length = array.length;\n for (i = startIndex; startIndex >= 0 && i < length; i += 1) {\n if (array[i] === searchElement) {\n return i;\n }\n }\n\n return -1;\n}\n\nmodule.exports = inArray;\n\n\n/***/ }),\n\n/***/ 690:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Execute the provided callback once for each property of object(or element of array) which actually exist.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isArray = __webpack_require__(322);\nvar forEachArray = __webpack_require__(893);\nvar forEachOwnProperties = __webpack_require__(956);\n\n/**\n * @module collection\n */\n\n/**\n * Execute the provided callback once for each property of object(or element of array) which actually exist.\n * If the object is Array-like object(ex-arguments object), It needs to transform to Array.(see 'ex2' of example).\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the property(or The value of the element)\n * 2) The name of the property(or The index of the element)\n * 3) The object being traversed\n * @param {Object} obj The object that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * // ES6\n * import forEach from 'tui-code-snippet/collection/forEach'; \n * \n * // CommonJS\n * const forEach = require('tui-code-snippet/collection/forEach'); \n *\n * let sum = 0;\n *\n * forEach([1,2,3], function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n *\n * // In case of Array-like object\n * const array = Array.prototype.slice.call(arrayLike); // change to array\n * forEach(array, function(value){\n * sum += value;\n * });\n */\nfunction forEach(obj, iteratee, context) {\n if (isArray(obj)) {\n forEachArray(obj, iteratee, context);\n } else {\n forEachOwnProperties(obj, iteratee, context);\n }\n}\n\nmodule.exports = forEach;\n\n\n/***/ }),\n\n/***/ 893:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Execute the provided callback once for each element present in the array(or Array-like object) in ascending order.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Execute the provided callback once for each element present\n * in the array(or Array-like object) in ascending order.\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the element\n * 2) The index of the element\n * 3) The array(or Array-like object) being traversed\n * @param {Array|Arguments|NodeList} arr The array(or Array-like object) that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * // ES6\n * import forEachArray from 'tui-code-snippet/collection/forEachArray';\n * \n * // CommonJS\n * const forEachArray = require('tui-code-snippet/collection/forEachArray'); \n *\n * let sum = 0;\n *\n * forEachArray([1,2,3], function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n */\nfunction forEachArray(arr, iteratee, context) {\n var index = 0;\n var len = arr.length;\n\n context = context || null;\n\n for (; index < len; index += 1) {\n if (iteratee.call(context, arr[index], index, arr) === false) {\n break;\n }\n }\n}\n\nmodule.exports = forEachArray;\n\n\n/***/ }),\n\n/***/ 956:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Execute the provided callback once for each property of object which actually exist.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Execute the provided callback once for each property of object which actually exist.\n * If the callback function returns false, the loop will be stopped.\n * Callback function(iteratee) is invoked with three arguments:\n * 1) The value of the property\n * 2) The name of the property\n * 3) The object being traversed\n * @param {Object} obj The object that will be traversed\n * @param {function} iteratee Callback function\n * @param {Object} [context] Context(this) of callback function\n * @memberof module:collection\n * @example\n * // ES6\n * import forEachOwnProperties from 'tui-code-snippet/collection/forEachOwnProperties';\n * \n * // CommonJS\n * const forEachOwnProperties = require('tui-code-snippet/collection/forEachOwnProperties'); \n *\n * let sum = 0;\n *\n * forEachOwnProperties({a:1,b:2,c:3}, function(value){\n * sum += value;\n * });\n * alert(sum); // 6\n */\nfunction forEachOwnProperties(obj, iteratee, context) {\n var key;\n\n context = context || null;\n\n for (key in obj) {\n if (obj.hasOwnProperty(key)) {\n if (iteratee.call(context, obj[key], key, obj) === false) {\n break;\n }\n }\n }\n}\n\nmodule.exports = forEachOwnProperties;\n\n\n/***/ }),\n\n/***/ 990:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Transform the Array-like object to Array.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar forEachArray = __webpack_require__(893);\n\n/**\n * Transform the Array-like object to Array.\n * In low IE (below 8), Array.prototype.slice.call is not perfect. So, try-catch statement is used.\n * @param {*} arrayLike Array-like object\n * @returns {Array} Array\n * @memberof module:collection\n * @example\n * // ES6\n * import toArray from 'tui-code-snippet/collection/toArray'; \n * \n * // CommonJS\n * const toArray = require('tui-code-snippet/collection/toArray'); \n *\n * const arrayLike = {\n * 0: 'one',\n * 1: 'two',\n * 2: 'three',\n * 3: 'four',\n * length: 4\n * };\n * const result = toArray(arrayLike);\n *\n * alert(result instanceof Array); // true\n * alert(result); // one,two,three,four\n */\nfunction toArray(arrayLike) {\n var arr;\n try {\n arr = Array.prototype.slice.call(arrayLike);\n } catch (e) {\n arr = [];\n forEachArray(arrayLike, function(value) {\n arr.push(value);\n });\n }\n\n return arr;\n}\n\nmodule.exports = toArray;\n\n\n/***/ }),\n\n/***/ 755:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Get event collection for specific HTML element\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar EVENT_KEY = '_feEventKey';\n\n/**\n * Get event collection for specific HTML element\n * @param {HTMLElement} element - HTML element\n * @param {string} type - event type\n * @returns {array}\n * @private\n */\nfunction safeEvent(element, type) {\n var events = element[EVENT_KEY];\n var handlers;\n\n if (!events) {\n events = element[EVENT_KEY] = {};\n }\n\n handlers = events[type];\n if (!handlers) {\n handlers = events[type] = [];\n }\n\n return handlers;\n}\n\nmodule.exports = safeEvent;\n\n\n/***/ }),\n\n/***/ 349:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Unbind DOM events\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isString = __webpack_require__(758);\nvar forEach = __webpack_require__(690);\n\nvar safeEvent = __webpack_require__(755);\n\n/**\n * Unbind DOM events\n * If a handler function is not passed, remove all events of that type.\n * @param {HTMLElement} element - element to unbind events\n * @param {(string|object)} types - Space splitted events names or eventName:handler object\n * @param {function} [handler] - handler function\n * @memberof module:domEvent\n * @example\n * // Following the example of domEvent#on\n * \n * // Unbind one event from an element.\n * off(div, 'click', toggle);\n * \n * // Unbind multiple events with a same handler from multiple elements at once.\n * // Use event names splitted by a space.\n * off(element, 'mouseenter mouseleave', changeColor);\n * \n * // Unbind multiple events with different handlers from an element at once.\n * // Use an object which of key is an event name and value is a handler function.\n * off(div, {\n * keydown: highlight,\n * keyup: dehighlight\n * });\n * \n * // Unbind events without handlers.\n * off(div, 'drag');\n */\nfunction off(element, types, handler) {\n if (isString(types)) {\n forEach(types.split(/\\s+/g), function(type) {\n unbindEvent(element, type, handler);\n });\n\n return;\n }\n\n forEach(types, function(func, type) {\n unbindEvent(element, type, func);\n });\n}\n\n/**\n * Unbind DOM events\n * If a handler function is not passed, remove all events of that type.\n * @param {HTMLElement} element - element to unbind events\n * @param {string} type - events name\n * @param {function} [handler] - handler function\n * @private\n */\nfunction unbindEvent(element, type, handler) {\n var events = safeEvent(element, type);\n var index;\n\n if (!handler) {\n forEach(events, function(item) {\n removeHandler(element, type, item.wrappedHandler);\n });\n events.splice(0, events.length);\n } else {\n forEach(events, function(item, idx) {\n if (handler === item.handler) {\n removeHandler(element, type, item.wrappedHandler);\n index = idx;\n\n return false;\n }\n\n return true;\n });\n events.splice(index, 1);\n }\n}\n\n/**\n * Remove an event handler\n * @param {HTMLElement} element - An element to remove an event\n * @param {string} type - event type\n * @param {function} handler - event handler\n * @private\n */\nfunction removeHandler(element, type, handler) {\n if ('removeEventListener' in element) {\n element.removeEventListener(type, handler);\n } else if ('detachEvent' in element) {\n element.detachEvent('on' + type, handler);\n }\n}\n\nmodule.exports = off;\n\n\n/***/ }),\n\n/***/ 348:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Bind DOM events\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isString = __webpack_require__(758);\nvar forEach = __webpack_require__(690);\n\nvar safeEvent = __webpack_require__(755);\n\n/**\n * Bind DOM events.\n * @param {HTMLElement} element - element to bind events\n * @param {(string|object)} types - Space splitted events names or eventName:handler object\n * @param {(function|object)} handler - handler function or context for handler method\n * @param {object} [context] context - context for handler method.\n * @memberof module:domEvent\n * @example\n * const div = document.querySelector('div');\n * \n * // Bind one event to an element.\n * on(div, 'click', toggle);\n * \n * // Bind multiple events with a same handler to multiple elements at once.\n * // Use event names splitted by a space.\n * on(div, 'mouseenter mouseleave', changeColor);\n * \n * // Bind multiple events with different handlers to an element at once.\n * // Use an object which of key is an event name and value is a handler function.\n * on(div, {\n * keydown: highlight,\n * keyup: dehighlight\n * });\n * \n * // Set a context for handler method.\n * const name = 'global';\n * const repository = {name: 'CodeSnippet'};\n * on(div, 'drag', function() {\n * console.log(this.name);\n * }, repository);\n * // Result when you drag a div: \"CodeSnippet\"\n */\nfunction on(element, types, handler, context) {\n if (isString(types)) {\n forEach(types.split(/\\s+/g), function(type) {\n bindEvent(element, type, handler, context);\n });\n\n return;\n }\n\n forEach(types, function(func, type) {\n bindEvent(element, type, func, handler);\n });\n}\n\n/**\n * Bind DOM events\n * @param {HTMLElement} element - element to bind events\n * @param {string} type - events name\n * @param {function} handler - handler function or context for handler method\n * @param {object} [context] context - context for handler method.\n * @private\n */\nfunction bindEvent(element, type, handler, context) {\n /**\n * Event handler\n * @param {Event} e - event object\n */\n function eventHandler(e) {\n handler.call(context || element, e || window.event);\n }\n\n if ('addEventListener' in element) {\n element.addEventListener(type, eventHandler);\n } else if ('attachEvent' in element) {\n element.attachEvent('on' + type, eventHandler);\n }\n memorizeHandler(element, type, handler, eventHandler);\n}\n\n/**\n * Memorize DOM event handler for unbinding.\n * @param {HTMLElement} element - element to bind events\n * @param {string} type - events name\n * @param {function} handler - handler function that user passed at on() use\n * @param {function} wrappedHandler - handler function that wrapped by domevent for implementing some features\n * @private\n */\nfunction memorizeHandler(element, type, handler, wrappedHandler) {\n var events = safeEvent(element, type);\n var existInEvents = false;\n\n forEach(events, function(obj) {\n if (obj.handler === handler) {\n existInEvents = true;\n\n return false;\n }\n\n return true;\n });\n\n if (!existInEvents) {\n events.push({\n handler: handler,\n wrappedHandler: wrappedHandler\n });\n }\n}\n\nmodule.exports = on;\n\n\n/***/ }),\n\n/***/ 24:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Set className value\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isArray = __webpack_require__(322);\nvar isUndefined = __webpack_require__(929);\n\n/**\n * Set className value\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {(string|string[])} cssClass - class names\n * @private\n */\nfunction setClassName(element, cssClass) {\n cssClass = isArray(cssClass) ? cssClass.join(' ') : cssClass;\n\n cssClass = cssClass.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n if (isUndefined(element.className.baseVal)) {\n element.className = cssClass;\n\n return;\n }\n\n element.className.baseVal = cssClass;\n}\n\nmodule.exports = setClassName;\n\n\n/***/ }),\n\n/***/ 204:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Add css class to element\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar forEach = __webpack_require__(690);\nvar inArray = __webpack_require__(928);\nvar getClass = __webpack_require__(902);\nvar setClassName = __webpack_require__(24);\n\n/**\n * domUtil module\n * @module domUtil\n */\n\n/**\n * Add css class to element\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {...string} cssClass - css classes to add\n * @memberof module:domUtil\n */\nfunction addClass(element) {\n var cssClass = Array.prototype.slice.call(arguments, 1);\n var classList = element.classList;\n var newClass = [];\n var origin;\n\n if (classList) {\n forEach(cssClass, function(name) {\n element.classList.add(name);\n });\n\n return;\n }\n\n origin = getClass(element);\n\n if (origin) {\n cssClass = [].concat(origin.split(/\\s+/), cssClass);\n }\n\n forEach(cssClass, function(cls) {\n if (inArray(cls, newClass) < 0) {\n newClass.push(cls);\n }\n });\n\n setClassName(element, newClass);\n}\n\nmodule.exports = addClass;\n\n\n/***/ }),\n\n/***/ 522:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Setting element style\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isString = __webpack_require__(758);\nvar forEach = __webpack_require__(690);\n\n/**\n * Setting element style\n * @param {(HTMLElement|SVGElement)} element - element to setting style\n * @param {(string|object)} key - style prop name or {prop: value} pair object\n * @param {string} [value] - style value\n * @memberof module:domUtil\n */\nfunction css(element, key, value) {\n var style = element.style;\n\n if (isString(key)) {\n style[key] = value;\n\n return;\n }\n\n forEach(key, function(v, k) {\n style[k] = v;\n });\n}\n\nmodule.exports = css;\n\n\n/***/ }),\n\n/***/ 902:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Get HTML element's design classes.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isUndefined = __webpack_require__(929);\n\n/**\n * Get HTML element's design classes.\n * @param {(HTMLElement|SVGElement)} element target element\n * @returns {string} element css class name\n * @memberof module:domUtil\n */\nfunction getClass(element) {\n if (!element || !element.className) {\n return '';\n }\n\n if (isUndefined(element.className.baseVal)) {\n return element.className;\n }\n\n return element.className.baseVal;\n}\n\nmodule.exports = getClass;\n\n\n/***/ }),\n\n/***/ 714:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check element has specific css class\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar inArray = __webpack_require__(928);\nvar getClass = __webpack_require__(902);\n\n/**\n * Check element has specific css class\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {string} cssClass - css class\n * @returns {boolean}\n * @memberof module:domUtil\n */\nfunction hasClass(element, cssClass) {\n var origin;\n\n if (element.classList) {\n return element.classList.contains(cssClass);\n }\n\n origin = getClass(element).split(/\\s+/);\n\n return inArray(cssClass, origin) > -1;\n}\n\nmodule.exports = hasClass;\n\n\n/***/ }),\n\n/***/ 471:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check element match selector\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar inArray = __webpack_require__(928);\nvar toArray = __webpack_require__(990);\n\nvar elProto = Element.prototype;\nvar matchSelector = elProto.matches ||\n elProto.webkitMatchesSelector ||\n elProto.mozMatchesSelector ||\n elProto.msMatchesSelector ||\n function(selector) {\n var doc = this.document || this.ownerDocument;\n\n return inArray(this, toArray(doc.querySelectorAll(selector))) > -1;\n };\n\n/**\n * Check element match selector\n * @param {HTMLElement} element - element to check\n * @param {string} selector - selector to check\n * @returns {boolean} is selector matched to element?\n * @memberof module:domUtil\n */\nfunction matches(element, selector) {\n return matchSelector.call(element, selector);\n}\n\nmodule.exports = matches;\n\n\n/***/ }),\n\n/***/ 462:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Remove css class from element\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar forEachArray = __webpack_require__(893);\nvar inArray = __webpack_require__(928);\nvar getClass = __webpack_require__(902);\nvar setClassName = __webpack_require__(24);\n\n/**\n * Remove css class from element\n * @param {(HTMLElement|SVGElement)} element - target element\n * @param {...string} cssClass - css classes to remove\n * @memberof module:domUtil\n */\nfunction removeClass(element) {\n var cssClass = Array.prototype.slice.call(arguments, 1);\n var classList = element.classList;\n var origin, newClass;\n\n if (classList) {\n forEachArray(cssClass, function(name) {\n classList.remove(name);\n });\n\n return;\n }\n\n origin = getClass(element).split(/\\s+/);\n newClass = [];\n forEachArray(origin, function(name) {\n if (inArray(name, cssClass) < 0) {\n newClass.push(name);\n }\n });\n\n setClassName(element, newClass);\n}\n\nmodule.exports = removeClass;\n\n\n/***/ }),\n\n/***/ 969:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Extend the target object from other objects.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * @module object\n */\n\n/**\n * Extend the target object from other objects.\n * @param {object} target - Object that will be extended\n * @param {...object} objects - Objects as sources\n * @returns {object} Extended object\n * @memberof module:object\n */\nfunction extend(target, objects) { // eslint-disable-line no-unused-vars\n var hasOwnProp = Object.prototype.hasOwnProperty;\n var source, prop, i, len;\n\n for (i = 1, len = arguments.length; i < len; i += 1) {\n source = arguments[i];\n for (prop in source) {\n if (hasOwnProp.call(source, prop)) {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\n\nmodule.exports = extend;\n\n\n/***/ }),\n\n/***/ 254:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Request image ping.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar forEachOwnProperties = __webpack_require__(956);\n\n/**\n * @module request\n */\n\n/**\n * Request image ping.\n * @param {String} url url for ping request\n * @param {Object} trackingInfo infos for make query string\n * @returns {HTMLElement}\n * @memberof module:request\n * @example\n * // ES6\n * import imagePing from 'tui-code-snippet/request/imagePing';\n * \n * // CommonJS\n * const imagePing = require('tui-code-snippet/request/imagePing');\n *\n * imagePing('https://www.google-analytics.com/collect', {\n * v: 1,\n * t: 'event',\n * tid: 'trackingid',\n * cid: 'cid',\n * dp: 'dp',\n * dh: 'dh'\n * });\n */\nfunction imagePing(url, trackingInfo) {\n var trackingElement = document.createElement('img');\n var queryString = '';\n forEachOwnProperties(trackingInfo, function(value, key) {\n queryString += '&' + key + '=' + value;\n });\n queryString = queryString.substring(1);\n\n trackingElement.src = url + '?' + queryString;\n\n trackingElement.style.display = 'none';\n document.body.appendChild(trackingElement);\n document.body.removeChild(trackingElement);\n\n return trackingElement;\n}\n\nmodule.exports = imagePing;\n\n\n/***/ }),\n\n/***/ 391:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Send hostname on DOMContentLoaded.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isUndefined = __webpack_require__(929);\nvar imagePing = __webpack_require__(254);\n\nvar ms7days = 7 * 24 * 60 * 60 * 1000;\n\n/**\n * Check if the date has passed 7 days\n * @param {number} date - milliseconds\n * @returns {boolean}\n * @private\n */\nfunction isExpired(date) {\n var now = new Date().getTime();\n\n return now - date > ms7days;\n}\n\n/**\n * Send hostname on DOMContentLoaded.\n * To prevent hostname set tui.usageStatistics to false.\n * @param {string} appName - application name\n * @param {string} trackingId - GA tracking ID\n * @ignore\n */\nfunction sendHostname(appName, trackingId) {\n var url = 'https://www.google-analytics.com/collect';\n var hostname = location.hostname;\n var hitType = 'event';\n var eventCategory = 'use';\n var applicationKeyForStorage = 'TOAST UI ' + appName + ' for ' + hostname + ': Statistics';\n var date = window.localStorage.getItem(applicationKeyForStorage);\n\n // skip if the flag is defined and is set to false explicitly\n if (!isUndefined(window.tui) && window.tui.usageStatistics === false) {\n return;\n }\n\n // skip if not pass seven days old\n if (date && !isExpired(date)) {\n return;\n }\n\n window.localStorage.setItem(applicationKeyForStorage, new Date().getTime());\n\n setTimeout(function() {\n if (document.readyState === 'interactive' || document.readyState === 'complete') {\n imagePing(url, {\n v: 1,\n t: hitType,\n tid: trackingId,\n cid: hostname,\n dp: hostname,\n dh: appName,\n el: appName,\n ec: eventCategory\n });\n }\n }, 1000);\n}\n\nmodule.exports = sendHostname;\n\n\n/***/ }),\n\n/***/ 322:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is an instance of Array or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is an instance of Array or not.\n * If the given variable is an instance of Array, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is array instance?\n * @memberof module:type\n */\nfunction isArray(obj) {\n return obj instanceof Array;\n}\n\nmodule.exports = isArray;\n\n\n/***/ }),\n\n/***/ 65:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is existing or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isUndefined = __webpack_require__(929);\nvar isNull = __webpack_require__(934);\n\n/**\n * Check whether the given variable is existing or not.\n * If the given variable is not null and not undefined, returns true.\n * @param {*} param - Target for checking\n * @returns {boolean} Is existy?\n * @memberof module:type\n * @example\n * // ES6\n * import isExisty from 'tui-code-snippet/type/isExisty');\n * \n * // CommonJS\n * const isExisty = require('tui-code-snippet/type/isExisty');\n *\n * isExisty(''); //true\n * isExisty(0); //true\n * isExisty([]); //true\n * isExisty({}); //true\n * isExisty(null); //false\n * isExisty(undefined); //false\n*/\nfunction isExisty(param) {\n return !isUndefined(param) && !isNull(param);\n}\n\nmodule.exports = isExisty;\n\n\n/***/ }),\n\n/***/ 404:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is falsy or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isTruthy = __webpack_require__(790);\n\n/**\n * Check whether the given variable is falsy or not.\n * If the given variable is null or undefined or false, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is falsy?\n * @memberof module:type\n */\nfunction isFalsy(obj) {\n return !isTruthy(obj);\n}\n\nmodule.exports = isFalsy;\n\n\n/***/ }),\n\n/***/ 294:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is a function or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is a function or not.\n * If the given variable is a function, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is function?\n * @memberof module:type\n */\nfunction isFunction(obj) {\n return obj instanceof Function;\n}\n\nmodule.exports = isFunction;\n\n\n/***/ }),\n\n/***/ 934:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is null or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is null or not.\n * If the given variable(arguments[0]) is null, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is null?\n * @memberof module:type\n */\nfunction isNull(obj) {\n return obj === null;\n}\n\nmodule.exports = isNull;\n\n\n/***/ }),\n\n/***/ 758:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is a string or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is a string or not.\n * If the given variable is a string, return true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is string?\n * @memberof module:type\n */\nfunction isString(obj) {\n return typeof obj === 'string' || obj instanceof String;\n}\n\nmodule.exports = isString;\n\n\n/***/ }),\n\n/***/ 790:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is truthy or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\nvar isExisty = __webpack_require__(65);\n\n/**\n * Check whether the given variable is truthy or not.\n * If the given variable is not null or not undefined or not false, returns true.\n * (It regards 0 as true)\n * @param {*} obj - Target for checking\n * @returns {boolean} Is truthy?\n * @memberof module:type\n */\nfunction isTruthy(obj) {\n return isExisty(obj) && obj !== false;\n}\n\nmodule.exports = isTruthy;\n\n\n/***/ }),\n\n/***/ 929:\n/***/ (function(module) {\n\n\"use strict\";\n/**\n * @fileoverview Check whether the given variable is undefined or not.\n * @author NHN FE Development Lab <dl_javascript@nhn.com>\n */\n\n\n\n/**\n * Check whether the given variable is undefined or not.\n * If the given variable is undefined, returns true.\n * @param {*} obj - Target for checking\n * @returns {boolean} Is undefined?\n * @memberof module:type\n */\nfunction isUndefined(obj) {\n return obj === undefined; // eslint-disable-line no-undefined\n}\n\nmodule.exports = isUndefined;\n\n\n/***/ }),\n\n/***/ 479:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__479__;\n\n/***/ }),\n\n/***/ 481:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__481__;\n\n/***/ }),\n\n/***/ 43:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__43__;\n\n/***/ }),\n\n/***/ 814:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__814__;\n\n/***/ }),\n\n/***/ 311:\n/***/ (function(module) {\n\n\"use strict\";\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__311__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/global */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.g = (function() {\n/******/ \t\t\tif (typeof globalThis === 'object') return globalThis;\n/******/ \t\t\ttry {\n/******/ \t\t\t\treturn this || new Function('return this')();\n/******/ \t\t\t} catch (e) {\n/******/ \t\t\t\tif (typeof window === 'object') return window;\n/******/ \t\t\t}\n/******/ \t\t})();\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be in strict mode.\n!function() {\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ indexViewer; }\n});\n\n;// CONCATENATED MODULE: ../../node_modules/tslib/tslib.es6.js\n/*! *****************************************************************************\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 */\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\nfunction __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\nvar tslib_es6_assign = function() {\r\n tslib_es6_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 tslib_es6_assign.apply(this, arguments);\r\n}\r\n\r\nfunction __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\nfunction __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\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __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\nfunction __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 (_) 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\nvar __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __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\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __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\nfunction __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: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __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\nfunction __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\nfunction __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\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __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\nfunction __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\n;// CONCATENATED MODULE: ../../libs/toastmark/dist/esm/index.js\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise */\nvar esm_extendStatics = function (d, b) {\n esm_extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b)\n if (Object.prototype.hasOwnProperty.call(b, p))\n d[p] = b[p]; };\n return esm_extendStatics(d, b);\n};\nfunction esm_extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n esm_extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\nvar esm_assign = function () {\n esm_assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s)\n if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return esm_assign.apply(this, arguments);\n};\nfunction esm_spreadArray(to, from, pack) {\n if (pack || arguments.length === 2)\n for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar)\n ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};\nvar encodeCache = {};\n// Create a lookup array where anything but characters in `chars` string\n// and alphanumeric chars is percent-encoded.\n//\nfunction getEncodeCache(exclude) {\n var i, ch, cache = encodeCache[exclude];\n if (cache) {\n return cache;\n }\n cache = encodeCache[exclude] = [];\n for (i = 0; i < 128; i++) {\n ch = String.fromCharCode(i);\n if (/^[0-9a-z]$/i.test(ch)) {\n // always allow unencoded alphanumeric characters\n cache.push(ch);\n }\n else {\n cache.push('%' + ('0' + i.toString(16).toUpperCase()).slice(-2));\n }\n }\n for (i = 0; i < exclude.length; i++) {\n cache[exclude.charCodeAt(i)] = exclude[i];\n }\n return cache;\n}\n// Encode unsafe characters with percent-encoding, skipping already\n// encoded sequences.\n//\n// - string - string to encode\n// - exclude - list of characters to ignore (in addition to a-zA-Z0-9)\n// - keepEscaped - don't encode '%' in a correct escape sequence (default: true)\n//\nfunction encode$1(string, exclude, keepEscaped) {\n var i, l, code, nextCode, cache, result = '';\n if (typeof exclude !== 'string') {\n // encode(string, keepEscaped)\n keepEscaped = exclude;\n exclude = encode$1.defaultChars;\n }\n if (typeof keepEscaped === 'undefined') {\n keepEscaped = true;\n }\n cache = getEncodeCache(exclude);\n for (i = 0, l = string.length; i < l; i++) {\n code = string.charCodeAt(i);\n if (keepEscaped && code === 0x25 /* % */ && i + 2 < l) {\n if (/^[0-9a-f]{2}$/i.test(string.slice(i + 1, i + 3))) {\n result += string.slice(i, i + 3);\n i += 2;\n continue;\n }\n }\n if (code < 128) {\n result += cache[code];\n continue;\n }\n if (code >= 0xD800 && code <= 0xDFFF) {\n if (code >= 0xD800 && code <= 0xDBFF && i + 1 < l) {\n nextCode = string.charCodeAt(i + 1);\n if (nextCode >= 0xDC00 && nextCode <= 0xDFFF) {\n result += encodeURIComponent(string[i] + string[i + 1]);\n i++;\n continue;\n }\n }\n result += '%EF%BF%BD';\n continue;\n }\n result += encodeURIComponent(string[i]);\n }\n return result;\n}\nencode$1.defaultChars = \";/?:@&=+$,-_.!~*'()#\";\nencode$1.componentChars = \"-_.!~*'()\";\nvar encode_1 = encode$1;\nvar lib = {};\nvar decode = {};\nvar Aacute$1 = \"Á\";\nvar aacute$1 = \"á\";\nvar Abreve = \"Ă\";\nvar abreve = \"ă\";\nvar ac = \"∾\";\nvar acd = \"∿\";\nvar acE = \"∾̳\";\nvar Acirc$1 = \"Â\";\nvar acirc$1 = \"â\";\nvar acute$1 = \"´\";\nvar Acy = \"А\";\nvar acy = \"а\";\nvar AElig$1 = \"Æ\";\nvar aelig$1 = \"æ\";\nvar af = \"⁡\";\nvar Afr = \"𝔄\";\nvar afr = \"𝔞\";\nvar Agrave$1 = \"À\";\nvar agrave$1 = \"à\";\nvar alefsym = \"ℵ\";\nvar aleph = \"ℵ\";\nvar Alpha = \"Α\";\nvar alpha = \"α\";\nvar Amacr = \"Ā\";\nvar amacr = \"ā\";\nvar amalg = \"⨿\";\nvar amp$2 = \"&\";\nvar AMP$1 = \"&\";\nvar andand = \"⩕\";\nvar And = \"⩓\";\nvar and = \"∧\";\nvar andd = \"⩜\";\nvar andslope = \"⩘\";\nvar andv = \"⩚\";\nvar ang = \"∠\";\nvar ange = \"⦤\";\nvar angle = \"∠\";\nvar angmsdaa = \"⦨\";\nvar angmsdab = \"⦩\";\nvar angmsdac = \"⦪\";\nvar angmsdad = \"⦫\";\nvar angmsdae = \"⦬\";\nvar angmsdaf = \"⦭\";\nvar angmsdag = \"⦮\";\nvar angmsdah = \"⦯\";\nvar angmsd = \"∡\";\nvar angrt = \"∟\";\nvar angrtvb = \"⊾\";\nvar angrtvbd = \"⦝\";\nvar angsph = \"∢\";\nvar angst = \"Å\";\nvar angzarr = \"⍼\";\nvar Aogon = \"Ą\";\nvar aogon = \"ą\";\nvar Aopf = \"𝔸\";\nvar aopf = \"𝕒\";\nvar apacir = \"⩯\";\nvar ap = \"≈\";\nvar apE = \"⩰\";\nvar ape = \"≊\";\nvar apid = \"≋\";\nvar apos$1 = \"'\";\nvar ApplyFunction = \"⁡\";\nvar approx = \"≈\";\nvar approxeq = \"≊\";\nvar Aring$1 = \"Å\";\nvar aring$1 = \"å\";\nvar Ascr = \"𝒜\";\nvar ascr = \"𝒶\";\nvar Assign = \"≔\";\nvar ast = \"*\";\nvar asymp = \"≈\";\nvar asympeq = \"≍\";\nvar Atilde$1 = \"Ã\";\nvar atilde$1 = \"ã\";\nvar Auml$1 = \"Ä\";\nvar auml$1 = \"ä\";\nvar awconint = \"∳\";\nvar awint = \"⨑\";\nvar backcong = \"≌\";\nvar backepsilon = \"϶\";\nvar backprime = \"‵\";\nvar backsim = \"∽\";\nvar backsimeq = \"⋍\";\nvar Backslash = \"∖\";\nvar Barv = \"⫧\";\nvar barvee = \"⊽\";\nvar barwed = \"⌅\";\nvar Barwed = \"⌆\";\nvar barwedge = \"⌅\";\nvar bbrk = \"⎵\";\nvar bbrktbrk = \"⎶\";\nvar bcong = \"≌\";\nvar Bcy = \"Б\";\nvar bcy = \"б\";\nvar bdquo = \"„\";\nvar becaus = \"∵\";\nvar because = \"∵\";\nvar Because = \"∵\";\nvar bemptyv = \"⦰\";\nvar bepsi = \"϶\";\nvar bernou = \"ℬ\";\nvar Bernoullis = \"ℬ\";\nvar Beta = \"Β\";\nvar beta = \"β\";\nvar beth = \"ℶ\";\nvar between = \"≬\";\nvar Bfr = \"𝔅\";\nvar bfr = \"𝔟\";\nvar bigcap = \"⋂\";\nvar bigcirc = \"◯\";\nvar bigcup = \"⋃\";\nvar bigodot = \"⨀\";\nvar bigoplus = \"⨁\";\nvar bigotimes = \"⨂\";\nvar bigsqcup = \"⨆\";\nvar bigstar = \"★\";\nvar bigtriangledown = \"▽\";\nvar bigtriangleup = \"△\";\nvar biguplus = \"⨄\";\nvar bigvee = \"⋁\";\nvar bigwedge = \"⋀\";\nvar bkarow = \"⤍\";\nvar blacklozenge = \"⧫\";\nvar blacksquare = \"▪\";\nvar blacktriangle = \"▴\";\nvar blacktriangledown = \"▾\";\nvar blacktriangleleft = \"◂\";\nvar blacktriangleright = \"▸\";\nvar blank = \"␣\";\nvar blk12 = \"▒\";\nvar blk14 = \"░\";\nvar blk34 = \"▓\";\nvar block = \"█\";\nvar bne = \"=⃥\";\nvar bnequiv = \"≡⃥\";\nvar bNot = \"⫭\";\nvar bnot = \"⌐\";\nvar Bopf = \"𝔹\";\nvar bopf = \"𝕓\";\nvar bot = \"⊥\";\nvar bottom = \"⊥\";\nvar bowtie = \"⋈\";\nvar boxbox = \"⧉\";\nvar boxdl = \"┐\";\nvar boxdL = \"╕\";\nvar boxDl = \"╖\";\nvar boxDL = \"╗\";\nvar boxdr = \"┌\";\nvar boxdR = \"╒\";\nvar boxDr = \"╓\";\nvar boxDR = \"╔\";\nvar boxh = \"─\";\nvar boxH = \"═\";\nvar boxhd = \"┬\";\nvar boxHd = \"╤\";\nvar boxhD = \"╥\";\nvar boxHD = \"╦\";\nvar boxhu = \"┴\";\nvar boxHu = \"╧\";\nvar boxhU = \"╨\";\nvar boxHU = \"╩\";\nvar boxminus = \"⊟\";\nvar boxplus = \"⊞\";\nvar boxtimes = \"⊠\";\nvar boxul = \"┘\";\nvar boxuL = \"╛\";\nvar boxUl = \"╜\";\nvar boxUL = \"╝\";\nvar boxur = \"└\";\nvar boxuR = \"╘\";\nvar boxUr = \"╙\";\nvar boxUR = \"╚\";\nvar boxv = \"│\";\nvar boxV = \"║\";\nvar boxvh = \"┼\";\nvar boxvH = \"╪\";\nvar boxVh = \"╫\";\nvar boxVH = \"╬\";\nvar boxvl = \"┤\";\nvar boxvL = \"╡\";\nvar boxVl = \"╢\";\nvar boxVL = \"╣\";\nvar boxvr = \"├\";\nvar boxvR = \"╞\";\nvar boxVr = \"╟\";\nvar boxVR = \"╠\";\nvar bprime = \"‵\";\nvar breve = \"˘\";\nvar Breve = \"˘\";\nvar brvbar$1 = \"¦\";\nvar bscr = \"𝒷\";\nvar Bscr = \"ℬ\";\nvar bsemi = \"⁏\";\nvar bsim = \"∽\";\nvar bsime = \"⋍\";\nvar bsolb = \"⧅\";\nvar bsol = \"\\\\\";\nvar bsolhsub = \"⟈\";\nvar bull = \"•\";\nvar bullet = \"•\";\nvar bump = \"≎\";\nvar bumpE = \"⪮\";\nvar bumpe = \"≏\";\nvar Bumpeq = \"≎\";\nvar bumpeq = \"≏\";\nvar Cacute = \"Ć\";\nvar cacute = \"ć\";\nvar capand = \"⩄\";\nvar capbrcup = \"⩉\";\nvar capcap = \"⩋\";\nvar cap = \"∩\";\nvar Cap = \"⋒\";\nvar capcup = \"⩇\";\nvar capdot = \"⩀\";\nvar CapitalDifferentialD = \"ⅅ\";\nvar caps = \"∩︀\";\nvar caret = \"⁁\";\nvar caron = \"ˇ\";\nvar Cayleys = \"ℭ\";\nvar ccaps = \"⩍\";\nvar Ccaron = \"Č\";\nvar ccaron = \"č\";\nvar Ccedil$1 = \"Ç\";\nvar ccedil$1 = \"ç\";\nvar Ccirc = \"Ĉ\";\nvar ccirc = \"ĉ\";\nvar Cconint = \"∰\";\nvar ccups = \"⩌\";\nvar ccupssm = \"⩐\";\nvar Cdot = \"Ċ\";\nvar cdot = \"ċ\";\nvar cedil$1 = \"¸\";\nvar Cedilla = \"¸\";\nvar cemptyv = \"⦲\";\nvar cent$1 = \"¢\";\nvar centerdot = \"·\";\nvar CenterDot = \"·\";\nvar cfr = \"𝔠\";\nvar Cfr = \"ℭ\";\nvar CHcy = \"Ч\";\nvar chcy = \"ч\";\nvar check = \"✓\";\nvar checkmark = \"✓\";\nvar Chi = \"Χ\";\nvar chi = \"χ\";\nvar circ = \"ˆ\";\nvar circeq = \"≗\";\nvar circlearrowleft = \"↺\";\nvar circlearrowright = \"↻\";\nvar circledast = \"⊛\";\nvar circledcirc = \"⊚\";\nvar circleddash = \"⊝\";\nvar CircleDot = \"⊙\";\nvar circledR = \"®\";\nvar circledS = \"Ⓢ\";\nvar CircleMinus = \"⊖\";\nvar CirclePlus = \"⊕\";\nvar CircleTimes = \"⊗\";\nvar cir = \"○\";\nvar cirE = \"⧃\";\nvar cire = \"≗\";\nvar cirfnint = \"⨐\";\nvar cirmid = \"⫯\";\nvar cirscir = \"⧂\";\nvar ClockwiseContourIntegral = \"∲\";\nvar CloseCurlyDoubleQuote = \"”\";\nvar CloseCurlyQuote = \"’\";\nvar clubs = \"♣\";\nvar clubsuit = \"♣\";\nvar colon = \":\";\nvar Colon = \"∷\";\nvar Colone = \"⩴\";\nvar colone = \"≔\";\nvar coloneq = \"≔\";\nvar comma = \",\";\nvar commat = \"@\";\nvar comp = \"∁\";\nvar compfn = \"∘\";\nvar complement = \"∁\";\nvar complexes = \"ℂ\";\nvar cong = \"≅\";\nvar congdot = \"⩭\";\nvar Congruent = \"≡\";\nvar conint = \"∮\";\nvar Conint = \"∯\";\nvar ContourIntegral = \"∮\";\nvar copf = \"𝕔\";\nvar Copf = \"ℂ\";\nvar coprod = \"∐\";\nvar Coproduct = \"∐\";\nvar copy$1 = \"©\";\nvar COPY$1 = \"©\";\nvar copysr = \"℗\";\nvar CounterClockwiseContourIntegral = \"∳\";\nvar crarr = \"↵\";\nvar cross = \"✗\";\nvar Cross = \"⨯\";\nvar Cscr = \"𝒞\";\nvar cscr = \"𝒸\";\nvar csub = \"⫏\";\nvar csube = \"⫑\";\nvar csup = \"⫐\";\nvar csupe = \"⫒\";\nvar ctdot = \"⋯\";\nvar cudarrl = \"⤸\";\nvar cudarrr = \"⤵\";\nvar cuepr = \"⋞\";\nvar cuesc = \"⋟\";\nvar cularr = \"↶\";\nvar cularrp = \"⤽\";\nvar cupbrcap = \"⩈\";\nvar cupcap = \"⩆\";\nvar CupCap = \"≍\";\nvar cup = \"∪\";\nvar Cup = \"⋓\";\nvar cupcup = \"⩊\";\nvar cupdot = \"⊍\";\nvar cupor = \"⩅\";\nvar cups = \"∪︀\";\nvar curarr = \"↷\";\nvar curarrm = \"⤼\";\nvar curlyeqprec = \"⋞\";\nvar curlyeqsucc = \"⋟\";\nvar curlyvee = \"⋎\";\nvar curlywedge = \"⋏\";\nvar curren$1 = \"¤\";\nvar curvearrowleft = \"↶\";\nvar curvearrowright = \"↷\";\nvar cuvee = \"⋎\";\nvar cuwed = \"⋏\";\nvar cwconint = \"∲\";\nvar cwint = \"∱\";\nvar cylcty = \"⌭\";\nvar dagger = \"†\";\nvar Dagger = \"‡\";\nvar daleth = \"ℸ\";\nvar darr = \"↓\";\nvar Darr = \"↡\";\nvar dArr = \"⇓\";\nvar dash = \"‐\";\nvar Dashv = \"⫤\";\nvar dashv = \"⊣\";\nvar dbkarow = \"⤏\";\nvar dblac = \"˝\";\nvar Dcaron = \"Ď\";\nvar dcaron = \"ď\";\nvar Dcy = \"Д\";\nvar dcy = \"д\";\nvar ddagger = \"‡\";\nvar ddarr = \"⇊\";\nvar DD = \"ⅅ\";\nvar dd = \"ⅆ\";\nvar DDotrahd = \"⤑\";\nvar ddotseq = \"⩷\";\nvar deg$1 = \"°\";\nvar Del = \"∇\";\nvar Delta = \"Δ\";\nvar delta = \"δ\";\nvar demptyv = \"⦱\";\nvar dfisht = \"⥿\";\nvar Dfr = \"𝔇\";\nvar dfr = \"𝔡\";\nvar dHar = \"⥥\";\nvar dharl = \"⇃\";\nvar dharr = \"⇂\";\nvar DiacriticalAcute = \"´\";\nvar DiacriticalDot = \"˙\";\nvar DiacriticalDoubleAcute = \"˝\";\nvar DiacriticalGrave = \"`\";\nvar DiacriticalTilde = \"˜\";\nvar diam = \"⋄\";\nvar diamond = \"⋄\";\nvar Diamond = \"⋄\";\nvar diamondsuit = \"♦\";\nvar diams = \"♦\";\nvar die = \"¨\";\nvar DifferentialD = \"ⅆ\";\nvar digamma = \"ϝ\";\nvar disin = \"⋲\";\nvar div = \"÷\";\nvar divide$1 = \"÷\";\nvar divideontimes = \"⋇\";\nvar divonx = \"⋇\";\nvar DJcy = \"Ђ\";\nvar djcy = \"ђ\";\nvar dlcorn = \"⌞\";\nvar dlcrop = \"⌍\";\nvar dollar = \"$\";\nvar Dopf = \"𝔻\";\nvar dopf = \"𝕕\";\nvar Dot = \"¨\";\nvar dot = \"˙\";\nvar DotDot = \"⃜\";\nvar doteq = \"≐\";\nvar doteqdot = \"≑\";\nvar DotEqual = \"≐\";\nvar dotminus = \"∸\";\nvar dotplus = \"∔\";\nvar dotsquare = \"⊡\";\nvar doublebarwedge = \"⌆\";\nvar DoubleContourIntegral = \"∯\";\nvar DoubleDot = \"¨\";\nvar DoubleDownArrow = \"⇓\";\nvar DoubleLeftArrow = \"⇐\";\nvar DoubleLeftRightArrow = \"⇔\";\nvar DoubleLeftTee = \"⫤\";\nvar DoubleLongLeftArrow = \"⟸\";\nvar DoubleLongLeftRightArrow = \"⟺\";\nvar DoubleLongRightArrow = \"⟹\";\nvar DoubleRightArrow = \"⇒\";\nvar DoubleRightTee = \"⊨\";\nvar DoubleUpArrow = \"⇑\";\nvar DoubleUpDownArrow = \"⇕\";\nvar DoubleVerticalBar = \"∥\";\nvar DownArrowBar = \"⤓\";\nvar downarrow = \"↓\";\nvar DownArrow = \"↓\";\nvar Downarrow = \"⇓\";\nvar DownArrowUpArrow = \"⇵\";\nvar DownBreve = \"̑\";\nvar downdownarrows = \"⇊\";\nvar downharpoonleft = \"⇃\";\nvar downharpoonright = \"⇂\";\nvar DownLeftRightVector = \"⥐\";\nvar DownLeftTeeVector = \"⥞\";\nvar DownLeftVectorBar = \"⥖\";\nvar DownLeftVector = \"↽\";\nvar DownRightTeeVector = \"⥟\";\nvar DownRightVectorBar = \"⥗\";\nvar DownRightVector = \"⇁\";\nvar DownTeeArrow = \"↧\";\nvar DownTee = \"⊤\";\nvar drbkarow = \"⤐\";\nvar drcorn = \"⌟\";\nvar drcrop = \"⌌\";\nvar Dscr = \"𝒟\";\nvar dscr = \"𝒹\";\nvar DScy = \"Ѕ\";\nvar dscy = \"ѕ\";\nvar dsol = \"⧶\";\nvar Dstrok = \"Đ\";\nvar dstrok = \"đ\";\nvar dtdot = \"⋱\";\nvar dtri = \"▿\";\nvar dtrif = \"▾\";\nvar duarr = \"⇵\";\nvar duhar = \"⥯\";\nvar dwangle = \"⦦\";\nvar DZcy = \"Џ\";\nvar dzcy = \"џ\";\nvar dzigrarr = \"⟿\";\nvar Eacute$1 = \"É\";\nvar eacute$1 = \"é\";\nvar easter = \"⩮\";\nvar Ecaron = \"Ě\";\nvar ecaron = \"ě\";\nvar Ecirc$1 = \"Ê\";\nvar ecirc$1 = \"ê\";\nvar ecir = \"≖\";\nvar ecolon = \"≕\";\nvar Ecy = \"Э\";\nvar ecy = \"э\";\nvar eDDot = \"⩷\";\nvar Edot = \"Ė\";\nvar edot = \"ė\";\nvar eDot = \"≑\";\nvar ee = \"ⅇ\";\nvar efDot = \"≒\";\nvar Efr = \"𝔈\";\nvar efr = \"𝔢\";\nvar eg = \"⪚\";\nvar Egrave$1 = \"È\";\nvar egrave$1 = \"è\";\nvar egs = \"⪖\";\nvar egsdot = \"⪘\";\nvar el = \"⪙\";\nvar Element = \"∈\";\nvar elinters = \"⏧\";\nvar ell = \"ℓ\";\nvar els = \"⪕\";\nvar elsdot = \"⪗\";\nvar Emacr = \"Ē\";\nvar emacr = \"ē\";\nvar empty = \"∅\";\nvar emptyset = \"∅\";\nvar EmptySmallSquare = \"◻\";\nvar emptyv = \"∅\";\nvar EmptyVerySmallSquare = \"▫\";\nvar emsp13 = \" \";\nvar emsp14 = \" \";\nvar emsp = \" \";\nvar ENG = \"Ŋ\";\nvar eng = \"ŋ\";\nvar ensp = \" \";\nvar Eogon = \"Ę\";\nvar eogon = \"ę\";\nvar Eopf = \"𝔼\";\nvar eopf = \"𝕖\";\nvar epar = \"⋕\";\nvar eparsl = \"⧣\";\nvar eplus = \"⩱\";\nvar epsi = \"ε\";\nvar Epsilon = \"Ε\";\nvar epsilon = \"ε\";\nvar epsiv = \"ϵ\";\nvar eqcirc = \"≖\";\nvar eqcolon = \"≕\";\nvar eqsim = \"≂\";\nvar eqslantgtr = \"⪖\";\nvar eqslantless = \"⪕\";\nvar Equal = \"⩵\";\nvar equals = \"=\";\nvar EqualTilde = \"≂\";\nvar equest = \"≟\";\nvar Equilibrium = \"⇌\";\nvar equiv = \"≡\";\nvar equivDD = \"⩸\";\nvar eqvparsl = \"⧥\";\nvar erarr = \"⥱\";\nvar erDot = \"≓\";\nvar escr = \"ℯ\";\nvar Escr = \"ℰ\";\nvar esdot = \"≐\";\nvar Esim = \"⩳\";\nvar esim = \"≂\";\nvar Eta = \"Η\";\nvar eta = \"η\";\nvar ETH$1 = \"Ð\";\nvar eth$1 = \"ð\";\nvar Euml$1 = \"Ë\";\nvar euml$1 = \"ë\";\nvar euro = \"€\";\nvar excl = \"!\";\nvar exist = \"∃\";\nvar Exists = \"∃\";\nvar expectation = \"ℰ\";\nvar exponentiale = \"ⅇ\";\nvar ExponentialE = \"ⅇ\";\nvar fallingdotseq = \"≒\";\nvar Fcy = \"Ф\";\nvar fcy = \"ф\";\nvar female = \"♀\";\nvar ffilig = \"ffi\";\nvar fflig = \"ff\";\nvar ffllig = \"ffl\";\nvar Ffr = \"𝔉\";\nvar ffr = \"𝔣\";\nvar filig = \"fi\";\nvar FilledSmallSquare = \"◼\";\nvar FilledVerySmallSquare = \"▪\";\nvar fjlig = \"fj\";\nvar flat = \"♭\";\nvar fllig = \"fl\";\nvar fltns = \"▱\";\nvar fnof = \"ƒ\";\nvar Fopf = \"𝔽\";\nvar fopf = \"𝕗\";\nvar forall = \"∀\";\nvar ForAll = \"∀\";\nvar fork = \"⋔\";\nvar forkv = \"⫙\";\nvar Fouriertrf = \"ℱ\";\nvar fpartint = \"⨍\";\nvar frac12$1 = \"½\";\nvar frac13 = \"⅓\";\nvar frac14$1 = \"¼\";\nvar frac15 = \"⅕\";\nvar frac16 = \"⅙\";\nvar frac18 = \"⅛\";\nvar frac23 = \"⅔\";\nvar frac25 = \"⅖\";\nvar frac34$1 = \"¾\";\nvar frac35 = \"⅗\";\nvar frac38 = \"⅜\";\nvar frac45 = \"⅘\";\nvar frac56 = \"⅚\";\nvar frac58 = \"⅝\";\nvar frac78 = \"⅞\";\nvar frasl = \"⁄\";\nvar frown = \"⌢\";\nvar fscr = \"𝒻\";\nvar Fscr = \"ℱ\";\nvar gacute = \"ǵ\";\nvar Gamma = \"Γ\";\nvar gamma = \"γ\";\nvar Gammad = \"Ϝ\";\nvar gammad = \"ϝ\";\nvar gap = \"⪆\";\nvar Gbreve = \"Ğ\";\nvar gbreve = \"ğ\";\nvar Gcedil = \"Ģ\";\nvar Gcirc = \"Ĝ\";\nvar gcirc = \"ĝ\";\nvar Gcy = \"Г\";\nvar gcy = \"г\";\nvar Gdot = \"Ġ\";\nvar gdot = \"ġ\";\nvar ge = \"≥\";\nvar gE = \"≧\";\nvar gEl = \"⪌\";\nvar gel = \"⋛\";\nvar geq = \"≥\";\nvar geqq = \"≧\";\nvar geqslant = \"⩾\";\nvar gescc = \"⪩\";\nvar ges = \"⩾\";\nvar gesdot = \"⪀\";\nvar gesdoto = \"⪂\";\nvar gesdotol = \"⪄\";\nvar gesl = \"⋛︀\";\nvar gesles = \"⪔\";\nvar Gfr = \"𝔊\";\nvar gfr = \"𝔤\";\nvar gg = \"≫\";\nvar Gg = \"⋙\";\nvar ggg = \"⋙\";\nvar gimel = \"ℷ\";\nvar GJcy = \"Ѓ\";\nvar gjcy = \"ѓ\";\nvar gla = \"⪥\";\nvar gl = \"≷\";\nvar glE = \"⪒\";\nvar glj = \"⪤\";\nvar gnap = \"⪊\";\nvar gnapprox = \"⪊\";\nvar gne = \"⪈\";\nvar gnE = \"≩\";\nvar gneq = \"⪈\";\nvar gneqq = \"≩\";\nvar gnsim = \"⋧\";\nvar Gopf = \"𝔾\";\nvar gopf = \"𝕘\";\nvar grave = \"`\";\nvar GreaterEqual = \"≥\";\nvar GreaterEqualLess = \"⋛\";\nvar GreaterFullEqual = \"≧\";\nvar GreaterGreater = \"⪢\";\nvar GreaterLess = \"≷\";\nvar GreaterSlantEqual = \"⩾\";\nvar GreaterTilde = \"≳\";\nvar Gscr = \"𝒢\";\nvar gscr = \"ℊ\";\nvar gsim = \"≳\";\nvar gsime = \"⪎\";\nvar gsiml = \"⪐\";\nvar gtcc = \"⪧\";\nvar gtcir = \"⩺\";\nvar gt$2 = \">\";\nvar GT$1 = \">\";\nvar Gt = \"≫\";\nvar gtdot = \"⋗\";\nvar gtlPar = \"⦕\";\nvar gtquest = \"⩼\";\nvar gtrapprox = \"⪆\";\nvar gtrarr = \"⥸\";\nvar gtrdot = \"⋗\";\nvar gtreqless = \"⋛\";\nvar gtreqqless = \"⪌\";\nvar gtrless = \"≷\";\nvar gtrsim = \"≳\";\nvar gvertneqq = \"≩︀\";\nvar gvnE = \"≩︀\";\nvar Hacek = \"ˇ\";\nvar hairsp = \" \";\nvar half = \"½\";\nvar hamilt = \"ℋ\";\nvar HARDcy = \"Ъ\";\nvar hardcy = \"ъ\";\nvar harrcir = \"⥈\";\nvar harr = \"↔\";\nvar hArr = \"⇔\";\nvar harrw = \"↭\";\nvar Hat = \"^\";\nvar hbar = \"ℏ\";\nvar Hcirc = \"Ĥ\";\nvar hcirc = \"ĥ\";\nvar hearts = \"♥\";\nvar heartsuit = \"♥\";\nvar hellip = \"…\";\nvar hercon = \"⊹\";\nvar hfr = \"𝔥\";\nvar Hfr = \"ℌ\";\nvar HilbertSpace = \"ℋ\";\nvar hksearow = \"⤥\";\nvar hkswarow = \"⤦\";\nvar hoarr = \"⇿\";\nvar homtht = \"∻\";\nvar hookleftarrow = \"↩\";\nvar hookrightarrow = \"↪\";\nvar hopf = \"𝕙\";\nvar Hopf = \"ℍ\";\nvar horbar = \"―\";\nvar HorizontalLine = \"─\";\nvar hscr = \"𝒽\";\nvar Hscr = \"ℋ\";\nvar hslash = \"ℏ\";\nvar Hstrok = \"Ħ\";\nvar hstrok = \"ħ\";\nvar HumpDownHump = \"≎\";\nvar HumpEqual = \"≏\";\nvar hybull = \"⁃\";\nvar hyphen = \"‐\";\nvar Iacute$1 = \"Í\";\nvar iacute$1 = \"í\";\nvar ic = \"⁣\";\nvar Icirc$1 = \"Î\";\nvar icirc$1 = \"î\";\nvar Icy = \"И\";\nvar icy = \"и\";\nvar Idot = \"İ\";\nvar IEcy = \"Е\";\nvar iecy = \"е\";\nvar iexcl$1 = \"¡\";\nvar iff = \"⇔\";\nvar ifr = \"𝔦\";\nvar Ifr = \"ℑ\";\nvar Igrave$1 = \"Ì\";\nvar igrave$1 = \"ì\";\nvar ii = \"ⅈ\";\nvar iiiint = \"⨌\";\nvar iiint = \"∭\";\nvar iinfin = \"⧜\";\nvar iiota = \"℩\";\nvar IJlig = \"IJ\";\nvar ijlig = \"ij\";\nvar Imacr = \"Ī\";\nvar imacr = \"ī\";\nvar esm_image = \"ℑ\";\nvar ImaginaryI = \"ⅈ\";\nvar imagline = \"ℐ\";\nvar imagpart = \"ℑ\";\nvar imath = \"ı\";\nvar Im = \"ℑ\";\nvar imof = \"⊷\";\nvar imped = \"Ƶ\";\nvar Implies = \"⇒\";\nvar incare = \"℅\";\nvar infin = \"∞\";\nvar infintie = \"⧝\";\nvar inodot = \"ı\";\nvar intcal = \"⊺\";\nvar esm_int = \"∫\";\nvar Int = \"∬\";\nvar integers = \"ℤ\";\nvar Integral = \"∫\";\nvar intercal = \"⊺\";\nvar Intersection = \"⋂\";\nvar intlarhk = \"⨗\";\nvar intprod = \"⨼\";\nvar InvisibleComma = \"⁣\";\nvar InvisibleTimes = \"⁢\";\nvar IOcy = \"Ё\";\nvar iocy = \"ё\";\nvar Iogon = \"Į\";\nvar iogon = \"į\";\nvar Iopf = \"𝕀\";\nvar iopf = \"𝕚\";\nvar Iota = \"Ι\";\nvar iota = \"ι\";\nvar iprod = \"⨼\";\nvar iquest$1 = \"¿\";\nvar iscr = \"𝒾\";\nvar Iscr = \"ℐ\";\nvar isin = \"∈\";\nvar isindot = \"⋵\";\nvar isinE = \"⋹\";\nvar isins = \"⋴\";\nvar isinsv = \"⋳\";\nvar isinv = \"∈\";\nvar it = \"⁢\";\nvar Itilde = \"Ĩ\";\nvar itilde = \"ĩ\";\nvar Iukcy = \"І\";\nvar iukcy = \"і\";\nvar Iuml$1 = \"Ï\";\nvar iuml$1 = \"ï\";\nvar Jcirc = \"Ĵ\";\nvar jcirc = \"ĵ\";\nvar Jcy = \"Й\";\nvar jcy = \"й\";\nvar Jfr = \"𝔍\";\nvar jfr = \"𝔧\";\nvar jmath = \"ȷ\";\nvar Jopf = \"𝕁\";\nvar jopf = \"𝕛\";\nvar Jscr = \"𝒥\";\nvar jscr = \"𝒿\";\nvar Jsercy = \"Ј\";\nvar jsercy = \"ј\";\nvar Jukcy = \"Є\";\nvar jukcy = \"є\";\nvar Kappa = \"Κ\";\nvar kappa = \"κ\";\nvar kappav = \"ϰ\";\nvar Kcedil = \"Ķ\";\nvar kcedil = \"ķ\";\nvar Kcy = \"К\";\nvar kcy = \"к\";\nvar Kfr = \"𝔎\";\nvar kfr = \"𝔨\";\nvar kgreen = \"ĸ\";\nvar KHcy = \"Х\";\nvar khcy = \"х\";\nvar KJcy = \"Ќ\";\nvar kjcy = \"ќ\";\nvar Kopf = \"𝕂\";\nvar kopf = \"𝕜\";\nvar Kscr = \"𝒦\";\nvar kscr = \"𝓀\";\nvar lAarr = \"⇚\";\nvar Lacute = \"Ĺ\";\nvar lacute = \"ĺ\";\nvar laemptyv = \"⦴\";\nvar lagran = \"ℒ\";\nvar Lambda = \"Λ\";\nvar lambda = \"λ\";\nvar lang = \"⟨\";\nvar Lang = \"⟪\";\nvar langd = \"⦑\";\nvar langle = \"⟨\";\nvar lap = \"⪅\";\nvar Laplacetrf = \"ℒ\";\nvar laquo$1 = \"«\";\nvar larrb = \"⇤\";\nvar larrbfs = \"⤟\";\nvar larr = \"←\";\nvar Larr = \"↞\";\nvar lArr = \"⇐\";\nvar larrfs = \"⤝\";\nvar larrhk = \"↩\";\nvar larrlp = \"↫\";\nvar larrpl = \"⤹\";\nvar larrsim = \"⥳\";\nvar larrtl = \"↢\";\nvar latail = \"⤙\";\nvar lAtail = \"⤛\";\nvar lat = \"⪫\";\nvar late = \"⪭\";\nvar lates = \"⪭︀\";\nvar lbarr = \"⤌\";\nvar lBarr = \"⤎\";\nvar lbbrk = \"❲\";\nvar lbrace = \"{\";\nvar lbrack = \"[\";\nvar lbrke = \"⦋\";\nvar lbrksld = \"⦏\";\nvar lbrkslu = \"⦍\";\nvar Lcaron = \"Ľ\";\nvar lcaron = \"ľ\";\nvar Lcedil = \"Ļ\";\nvar lcedil = \"ļ\";\nvar lceil = \"⌈\";\nvar lcub = \"{\";\nvar Lcy = \"Л\";\nvar lcy = \"л\";\nvar ldca = \"⤶\";\nvar ldquo = \"“\";\nvar ldquor = \"„\";\nvar ldrdhar = \"⥧\";\nvar ldrushar = \"⥋\";\nvar ldsh = \"↲\";\nvar le = \"≤\";\nvar lE = \"≦\";\nvar LeftAngleBracket = \"⟨\";\nvar LeftArrowBar = \"⇤\";\nvar leftarrow = \"←\";\nvar LeftArrow = \"←\";\nvar Leftarrow = \"⇐\";\nvar LeftArrowRightArrow = \"⇆\";\nvar leftarrowtail = \"↢\";\nvar LeftCeiling = \"⌈\";\nvar LeftDoubleBracket = \"⟦\";\nvar LeftDownTeeVector = \"⥡\";\nvar LeftDownVectorBar = \"⥙\";\nvar LeftDownVector = \"⇃\";\nvar LeftFloor = \"⌊\";\nvar leftharpoondown = \"↽\";\nvar leftharpoonup = \"↼\";\nvar leftleftarrows = \"⇇\";\nvar leftrightarrow = \"↔\";\nvar LeftRightArrow = \"↔\";\nvar Leftrightarrow = \"⇔\";\nvar leftrightarrows = \"⇆\";\nvar leftrightharpoons = \"⇋\";\nvar leftrightsquigarrow = \"↭\";\nvar LeftRightVector = \"⥎\";\nvar LeftTeeArrow = \"↤\";\nvar LeftTee = \"⊣\";\nvar LeftTeeVector = \"⥚\";\nvar leftthreetimes = \"⋋\";\nvar LeftTriangleBar = \"⧏\";\nvar LeftTriangle = \"⊲\";\nvar LeftTriangleEqual = \"⊴\";\nvar LeftUpDownVector = \"⥑\";\nvar LeftUpTeeVector = \"⥠\";\nvar LeftUpVectorBar = \"⥘\";\nvar LeftUpVector = \"↿\";\nvar LeftVectorBar = \"⥒\";\nvar LeftVector = \"↼\";\nvar lEg = \"⪋\";\nvar leg = \"⋚\";\nvar leq = \"≤\";\nvar leqq = \"≦\";\nvar leqslant = \"⩽\";\nvar lescc = \"⪨\";\nvar les = \"⩽\";\nvar lesdot = \"⩿\";\nvar lesdoto = \"⪁\";\nvar lesdotor = \"⪃\";\nvar lesg = \"⋚︀\";\nvar lesges = \"⪓\";\nvar lessapprox = \"⪅\";\nvar lessdot = \"⋖\";\nvar lesseqgtr = \"⋚\";\nvar lesseqqgtr = \"⪋\";\nvar LessEqualGreater = \"⋚\";\nvar LessFullEqual = \"≦\";\nvar LessGreater = \"≶\";\nvar lessgtr = \"≶\";\nvar LessLess = \"⪡\";\nvar lesssim = \"≲\";\nvar LessSlantEqual = \"⩽\";\nvar LessTilde = \"≲\";\nvar lfisht = \"⥼\";\nvar lfloor = \"⌊\";\nvar Lfr = \"𝔏\";\nvar lfr = \"𝔩\";\nvar lg = \"≶\";\nvar lgE = \"⪑\";\nvar lHar = \"⥢\";\nvar lhard = \"↽\";\nvar lharu = \"↼\";\nvar lharul = \"⥪\";\nvar lhblk = \"▄\";\nvar LJcy = \"Љ\";\nvar ljcy = \"љ\";\nvar llarr = \"⇇\";\nvar ll = \"≪\";\nvar Ll = \"⋘\";\nvar llcorner = \"⌞\";\nvar Lleftarrow = \"⇚\";\nvar llhard = \"⥫\";\nvar lltri = \"◺\";\nvar Lmidot = \"Ŀ\";\nvar lmidot = \"ŀ\";\nvar lmoustache = \"⎰\";\nvar lmoust = \"⎰\";\nvar lnap = \"⪉\";\nvar lnapprox = \"⪉\";\nvar lne = \"⪇\";\nvar lnE = \"≨\";\nvar lneq = \"⪇\";\nvar lneqq = \"≨\";\nvar lnsim = \"⋦\";\nvar loang = \"⟬\";\nvar loarr = \"⇽\";\nvar lobrk = \"⟦\";\nvar longleftarrow = \"⟵\";\nvar LongLeftArrow = \"⟵\";\nvar Longleftarrow = \"⟸\";\nvar longleftrightarrow = \"⟷\";\nvar LongLeftRightArrow = \"⟷\";\nvar Longleftrightarrow = \"⟺\";\nvar longmapsto = \"⟼\";\nvar longrightarrow = \"⟶\";\nvar LongRightArrow = \"⟶\";\nvar Longrightarrow = \"⟹\";\nvar looparrowleft = \"↫\";\nvar looparrowright = \"↬\";\nvar lopar = \"⦅\";\nvar Lopf = \"𝕃\";\nvar lopf = \"𝕝\";\nvar loplus = \"⨭\";\nvar lotimes = \"⨴\";\nvar lowast = \"∗\";\nvar lowbar = \"_\";\nvar LowerLeftArrow = \"↙\";\nvar LowerRightArrow = \"↘\";\nvar loz = \"◊\";\nvar lozenge = \"◊\";\nvar lozf = \"⧫\";\nvar lpar = \"(\";\nvar lparlt = \"⦓\";\nvar lrarr = \"⇆\";\nvar lrcorner = \"⌟\";\nvar lrhar = \"⇋\";\nvar lrhard = \"⥭\";\nvar lrm = \"‎\";\nvar lrtri = \"⊿\";\nvar lsaquo = \"‹\";\nvar lscr = \"𝓁\";\nvar Lscr = \"ℒ\";\nvar lsh = \"↰\";\nvar Lsh = \"↰\";\nvar lsim = \"≲\";\nvar lsime = \"⪍\";\nvar lsimg = \"⪏\";\nvar lsqb = \"[\";\nvar lsquo = \"‘\";\nvar lsquor = \"‚\";\nvar Lstrok = \"Ł\";\nvar lstrok = \"ł\";\nvar ltcc = \"⪦\";\nvar ltcir = \"⩹\";\nvar lt$2 = \"<\";\nvar LT$1 = \"<\";\nvar Lt = \"≪\";\nvar ltdot = \"⋖\";\nvar lthree = \"⋋\";\nvar ltimes = \"⋉\";\nvar ltlarr = \"⥶\";\nvar ltquest = \"⩻\";\nvar ltri = \"◃\";\nvar ltrie = \"⊴\";\nvar ltrif = \"◂\";\nvar ltrPar = \"⦖\";\nvar lurdshar = \"⥊\";\nvar luruhar = \"⥦\";\nvar lvertneqq = \"≨︀\";\nvar lvnE = \"≨︀\";\nvar macr$1 = \"¯\";\nvar male = \"♂\";\nvar malt = \"✠\";\nvar maltese = \"✠\";\nvar map = \"↦\";\nvar mapsto = \"↦\";\nvar mapstodown = \"↧\";\nvar mapstoleft = \"↤\";\nvar mapstoup = \"↥\";\nvar marker = \"▮\";\nvar mcomma = \"⨩\";\nvar Mcy = \"М\";\nvar mcy = \"м\";\nvar mdash = \"—\";\nvar mDDot = \"∺\";\nvar measuredangle = \"∡\";\nvar MediumSpace = \" \";\nvar Mellintrf = \"ℳ\";\nvar Mfr = \"𝔐\";\nvar mfr = \"𝔪\";\nvar mho = \"℧\";\nvar micro$1 = \"µ\";\nvar midast = \"*\";\nvar midcir = \"⫰\";\nvar mid = \"∣\";\nvar middot$1 = \"·\";\nvar minusb = \"⊟\";\nvar minus = \"−\";\nvar minusd = \"∸\";\nvar minusdu = \"⨪\";\nvar MinusPlus = \"∓\";\nvar mlcp = \"⫛\";\nvar mldr = \"…\";\nvar mnplus = \"∓\";\nvar models = \"⊧\";\nvar Mopf = \"𝕄\";\nvar mopf = \"𝕞\";\nvar mp = \"∓\";\nvar mscr = \"𝓂\";\nvar Mscr = \"ℳ\";\nvar mstpos = \"∾\";\nvar Mu = \"Μ\";\nvar mu = \"μ\";\nvar multimap = \"⊸\";\nvar mumap = \"⊸\";\nvar nabla = \"∇\";\nvar Nacute = \"Ń\";\nvar nacute = \"ń\";\nvar nang = \"∠⃒\";\nvar nap = \"≉\";\nvar napE = \"⩰̸\";\nvar napid = \"≋̸\";\nvar napos = \"ʼn\";\nvar napprox = \"≉\";\nvar natural = \"♮\";\nvar naturals = \"ℕ\";\nvar natur = \"♮\";\nvar nbsp$1 = \" \";\nvar nbump = \"≎̸\";\nvar nbumpe = \"≏̸\";\nvar ncap = \"⩃\";\nvar Ncaron = \"Ň\";\nvar ncaron = \"ň\";\nvar Ncedil = \"Ņ\";\nvar ncedil = \"ņ\";\nvar ncong = \"≇\";\nvar ncongdot = \"⩭̸\";\nvar ncup = \"⩂\";\nvar Ncy = \"Н\";\nvar ncy = \"н\";\nvar ndash = \"–\";\nvar nearhk = \"⤤\";\nvar nearr = \"↗\";\nvar neArr = \"⇗\";\nvar nearrow = \"↗\";\nvar ne = \"≠\";\nvar nedot = \"≐̸\";\nvar NegativeMediumSpace = \"​\";\nvar NegativeThickSpace = \"​\";\nvar NegativeThinSpace = \"​\";\nvar NegativeVeryThinSpace = \"​\";\nvar nequiv = \"≢\";\nvar nesear = \"⤨\";\nvar nesim = \"≂̸\";\nvar NestedGreaterGreater = \"≫\";\nvar NestedLessLess = \"≪\";\nvar NewLine = \"\\n\";\nvar nexist = \"∄\";\nvar nexists = \"∄\";\nvar Nfr = \"𝔑\";\nvar nfr = \"𝔫\";\nvar ngE = \"≧̸\";\nvar nge = \"≱\";\nvar ngeq = \"≱\";\nvar ngeqq = \"≧̸\";\nvar ngeqslant = \"⩾̸\";\nvar nges = \"⩾̸\";\nvar nGg = \"⋙̸\";\nvar ngsim = \"≵\";\nvar nGt = \"≫⃒\";\nvar ngt = \"≯\";\nvar ngtr = \"≯\";\nvar nGtv = \"≫̸\";\nvar nharr = \"↮\";\nvar nhArr = \"⇎\";\nvar nhpar = \"⫲\";\nvar ni = \"∋\";\nvar nis = \"⋼\";\nvar nisd = \"⋺\";\nvar niv = \"∋\";\nvar NJcy = \"Њ\";\nvar njcy = \"њ\";\nvar nlarr = \"↚\";\nvar nlArr = \"⇍\";\nvar nldr = \"‥\";\nvar nlE = \"≦̸\";\nvar nle = \"≰\";\nvar nleftarrow = \"↚\";\nvar nLeftarrow = \"⇍\";\nvar nleftrightarrow = \"↮\";\nvar nLeftrightarrow = \"⇎\";\nvar nleq = \"≰\";\nvar nleqq = \"≦̸\";\nvar nleqslant = \"⩽̸\";\nvar nles = \"⩽̸\";\nvar nless = \"≮\";\nvar nLl = \"⋘̸\";\nvar nlsim = \"≴\";\nvar nLt = \"≪⃒\";\nvar nlt = \"≮\";\nvar nltri = \"⋪\";\nvar nltrie = \"⋬\";\nvar nLtv = \"≪̸\";\nvar nmid = \"∤\";\nvar NoBreak = \"⁠\";\nvar NonBreakingSpace = \" \";\nvar nopf = \"𝕟\";\nvar Nopf = \"ℕ\";\nvar Not = \"⫬\";\nvar not$1 = \"¬\";\nvar NotCongruent = \"≢\";\nvar NotCupCap = \"≭\";\nvar NotDoubleVerticalBar = \"∦\";\nvar NotElement = \"∉\";\nvar NotEqual = \"≠\";\nvar NotEqualTilde = \"≂̸\";\nvar NotExists = \"∄\";\nvar NotGreater = \"≯\";\nvar NotGreaterEqual = \"≱\";\nvar NotGreaterFullEqual = \"≧̸\";\nvar NotGreaterGreater = \"≫̸\";\nvar NotGreaterLess = \"≹\";\nvar NotGreaterSlantEqual = \"⩾̸\";\nvar NotGreaterTilde = \"≵\";\nvar NotHumpDownHump = \"≎̸\";\nvar NotHumpEqual = \"≏̸\";\nvar notin = \"∉\";\nvar notindot = \"⋵̸\";\nvar notinE = \"⋹̸\";\nvar notinva = \"∉\";\nvar notinvb = \"⋷\";\nvar notinvc = \"⋶\";\nvar NotLeftTriangleBar = \"⧏̸\";\nvar NotLeftTriangle = \"⋪\";\nvar NotLeftTriangleEqual = \"⋬\";\nvar NotLess = \"≮\";\nvar NotLessEqual = \"≰\";\nvar NotLessGreater = \"≸\";\nvar NotLessLess = \"≪̸\";\nvar NotLessSlantEqual = \"⩽̸\";\nvar NotLessTilde = \"≴\";\nvar NotNestedGreaterGreater = \"⪢̸\";\nvar NotNestedLessLess = \"⪡̸\";\nvar notni = \"∌\";\nvar notniva = \"∌\";\nvar notnivb = \"⋾\";\nvar notnivc = \"⋽\";\nvar NotPrecedes = \"⊀\";\nvar NotPrecedesEqual = \"⪯̸\";\nvar NotPrecedesSlantEqual = \"⋠\";\nvar NotReverseElement = \"∌\";\nvar NotRightTriangleBar = \"⧐̸\";\nvar NotRightTriangle = \"⋫\";\nvar NotRightTriangleEqual = \"⋭\";\nvar NotSquareSubset = \"⊏̸\";\nvar NotSquareSubsetEqual = \"⋢\";\nvar NotSquareSuperset = \"⊐̸\";\nvar NotSquareSupersetEqual = \"⋣\";\nvar NotSubset = \"⊂⃒\";\nvar NotSubsetEqual = \"⊈\";\nvar NotSucceeds = \"⊁\";\nvar NotSucceedsEqual = \"⪰̸\";\nvar NotSucceedsSlantEqual = \"⋡\";\nvar NotSucceedsTilde = \"≿̸\";\nvar NotSuperset = \"⊃⃒\";\nvar NotSupersetEqual = \"⊉\";\nvar NotTilde = \"≁\";\nvar NotTildeEqual = \"≄\";\nvar NotTildeFullEqual = \"≇\";\nvar NotTildeTilde = \"≉\";\nvar NotVerticalBar = \"∤\";\nvar nparallel = \"∦\";\nvar npar = \"∦\";\nvar nparsl = \"⫽⃥\";\nvar npart = \"∂̸\";\nvar npolint = \"⨔\";\nvar npr = \"⊀\";\nvar nprcue = \"⋠\";\nvar nprec = \"⊀\";\nvar npreceq = \"⪯̸\";\nvar npre = \"⪯̸\";\nvar nrarrc = \"⤳̸\";\nvar nrarr = \"↛\";\nvar nrArr = \"⇏\";\nvar nrarrw = \"↝̸\";\nvar nrightarrow = \"↛\";\nvar nRightarrow = \"⇏\";\nvar nrtri = \"⋫\";\nvar nrtrie = \"⋭\";\nvar nsc = \"⊁\";\nvar nsccue = \"⋡\";\nvar nsce = \"⪰̸\";\nvar Nscr = \"𝒩\";\nvar nscr = \"𝓃\";\nvar nshortmid = \"∤\";\nvar nshortparallel = \"∦\";\nvar nsim = \"≁\";\nvar nsime = \"≄\";\nvar nsimeq = \"≄\";\nvar nsmid = \"∤\";\nvar nspar = \"∦\";\nvar nsqsube = \"⋢\";\nvar nsqsupe = \"⋣\";\nvar nsub = \"⊄\";\nvar nsubE = \"⫅̸\";\nvar nsube = \"⊈\";\nvar nsubset = \"⊂⃒\";\nvar nsubseteq = \"⊈\";\nvar nsubseteqq = \"⫅̸\";\nvar nsucc = \"⊁\";\nvar nsucceq = \"⪰̸\";\nvar nsup = \"⊅\";\nvar nsupE = \"⫆̸\";\nvar nsupe = \"⊉\";\nvar nsupset = \"⊃⃒\";\nvar nsupseteq = \"⊉\";\nvar nsupseteqq = \"⫆̸\";\nvar ntgl = \"≹\";\nvar Ntilde$1 = \"Ñ\";\nvar ntilde$1 = \"ñ\";\nvar ntlg = \"≸\";\nvar ntriangleleft = \"⋪\";\nvar ntrianglelefteq = \"⋬\";\nvar ntriangleright = \"⋫\";\nvar ntrianglerighteq = \"⋭\";\nvar Nu = \"Ν\";\nvar nu = \"ν\";\nvar num = \"#\";\nvar numero = \"№\";\nvar numsp = \" \";\nvar nvap = \"≍⃒\";\nvar nvdash = \"⊬\";\nvar nvDash = \"⊭\";\nvar nVdash = \"⊮\";\nvar nVDash = \"⊯\";\nvar nvge = \"≥⃒\";\nvar nvgt = \">⃒\";\nvar nvHarr = \"⤄\";\nvar nvinfin = \"⧞\";\nvar nvlArr = \"⤂\";\nvar nvle = \"≤⃒\";\nvar nvlt = \"<⃒\";\nvar nvltrie = \"⊴⃒\";\nvar nvrArr = \"⤃\";\nvar nvrtrie = \"⊵⃒\";\nvar nvsim = \"∼⃒\";\nvar nwarhk = \"⤣\";\nvar nwarr = \"↖\";\nvar nwArr = \"⇖\";\nvar nwarrow = \"↖\";\nvar nwnear = \"⤧\";\nvar Oacute$1 = \"Ó\";\nvar oacute$1 = \"ó\";\nvar oast = \"⊛\";\nvar Ocirc$1 = \"Ô\";\nvar ocirc$1 = \"ô\";\nvar ocir = \"⊚\";\nvar Ocy = \"О\";\nvar ocy = \"о\";\nvar odash = \"⊝\";\nvar Odblac = \"Ő\";\nvar odblac = \"ő\";\nvar odiv = \"⨸\";\nvar odot = \"⊙\";\nvar odsold = \"⦼\";\nvar OElig = \"Œ\";\nvar oelig = \"œ\";\nvar ofcir = \"⦿\";\nvar Ofr = \"𝔒\";\nvar ofr = \"𝔬\";\nvar ogon = \"˛\";\nvar Ograve$1 = \"Ò\";\nvar ograve$1 = \"ò\";\nvar ogt = \"⧁\";\nvar ohbar = \"⦵\";\nvar ohm = \"Ω\";\nvar oint = \"∮\";\nvar olarr = \"↺\";\nvar olcir = \"⦾\";\nvar olcross = \"⦻\";\nvar oline = \"‾\";\nvar olt = \"⧀\";\nvar Omacr = \"Ō\";\nvar omacr = \"ō\";\nvar Omega = \"Ω\";\nvar omega = \"ω\";\nvar Omicron = \"Ο\";\nvar omicron = \"ο\";\nvar omid = \"⦶\";\nvar ominus = \"⊖\";\nvar Oopf = \"𝕆\";\nvar oopf = \"𝕠\";\nvar opar = \"⦷\";\nvar OpenCurlyDoubleQuote = \"“\";\nvar OpenCurlyQuote = \"‘\";\nvar operp = \"⦹\";\nvar oplus = \"⊕\";\nvar orarr = \"↻\";\nvar Or = \"⩔\";\nvar or = \"∨\";\nvar ord = \"⩝\";\nvar order = \"ℴ\";\nvar orderof = \"ℴ\";\nvar ordf$1 = \"ª\";\nvar ordm$1 = \"º\";\nvar origof = \"⊶\";\nvar oror = \"⩖\";\nvar orslope = \"⩗\";\nvar orv = \"⩛\";\nvar oS = \"Ⓢ\";\nvar Oscr = \"𝒪\";\nvar oscr = \"ℴ\";\nvar Oslash$1 = \"Ø\";\nvar oslash$1 = \"ø\";\nvar osol = \"⊘\";\nvar Otilde$1 = \"Õ\";\nvar otilde$1 = \"õ\";\nvar otimesas = \"⨶\";\nvar Otimes = \"⨷\";\nvar otimes = \"⊗\";\nvar Ouml$1 = \"Ö\";\nvar ouml$1 = \"ö\";\nvar ovbar = \"⌽\";\nvar OverBar = \"‾\";\nvar OverBrace = \"⏞\";\nvar OverBracket = \"⎴\";\nvar OverParenthesis = \"⏜\";\nvar para$1 = \"¶\";\nvar parallel = \"∥\";\nvar par = \"∥\";\nvar parsim = \"⫳\";\nvar parsl = \"⫽\";\nvar part = \"∂\";\nvar PartialD = \"∂\";\nvar Pcy = \"П\";\nvar pcy = \"п\";\nvar percnt = \"%\";\nvar period = \".\";\nvar permil = \"‰\";\nvar perp = \"⊥\";\nvar pertenk = \"‱\";\nvar Pfr = \"𝔓\";\nvar pfr = \"𝔭\";\nvar Phi = \"Φ\";\nvar phi = \"φ\";\nvar phiv = \"ϕ\";\nvar phmmat = \"ℳ\";\nvar phone = \"☎\";\nvar Pi = \"Π\";\nvar pi = \"π\";\nvar pitchfork = \"⋔\";\nvar piv = \"ϖ\";\nvar planck = \"ℏ\";\nvar planckh = \"ℎ\";\nvar plankv = \"ℏ\";\nvar plusacir = \"⨣\";\nvar plusb = \"⊞\";\nvar pluscir = \"⨢\";\nvar plus = \"+\";\nvar plusdo = \"∔\";\nvar plusdu = \"⨥\";\nvar pluse = \"⩲\";\nvar PlusMinus = \"±\";\nvar plusmn$1 = \"±\";\nvar plussim = \"⨦\";\nvar plustwo = \"⨧\";\nvar pm = \"±\";\nvar Poincareplane = \"ℌ\";\nvar pointint = \"⨕\";\nvar popf = \"𝕡\";\nvar Popf = \"ℙ\";\nvar pound$1 = \"£\";\nvar prap = \"⪷\";\nvar Pr = \"⪻\";\nvar pr = \"≺\";\nvar prcue = \"≼\";\nvar precapprox = \"⪷\";\nvar prec = \"≺\";\nvar preccurlyeq = \"≼\";\nvar Precedes = \"≺\";\nvar PrecedesEqual = \"⪯\";\nvar PrecedesSlantEqual = \"≼\";\nvar PrecedesTilde = \"≾\";\nvar preceq = \"⪯\";\nvar precnapprox = \"⪹\";\nvar precneqq = \"⪵\";\nvar precnsim = \"⋨\";\nvar pre = \"⪯\";\nvar prE = \"⪳\";\nvar precsim = \"≾\";\nvar prime = \"′\";\nvar Prime = \"″\";\nvar primes = \"ℙ\";\nvar prnap = \"⪹\";\nvar prnE = \"⪵\";\nvar prnsim = \"⋨\";\nvar prod = \"∏\";\nvar Product = \"∏\";\nvar profalar = \"⌮\";\nvar profline = \"⌒\";\nvar profsurf = \"⌓\";\nvar prop = \"∝\";\nvar Proportional = \"∝\";\nvar Proportion = \"∷\";\nvar propto = \"∝\";\nvar prsim = \"≾\";\nvar prurel = \"⊰\";\nvar Pscr = \"𝒫\";\nvar pscr = \"𝓅\";\nvar Psi = \"Ψ\";\nvar psi = \"ψ\";\nvar puncsp = \" \";\nvar Qfr = \"𝔔\";\nvar qfr = \"𝔮\";\nvar qint = \"⨌\";\nvar qopf = \"𝕢\";\nvar Qopf = \"ℚ\";\nvar qprime = \"⁗\";\nvar Qscr = \"𝒬\";\nvar qscr = \"𝓆\";\nvar quaternions = \"ℍ\";\nvar quatint = \"⨖\";\nvar quest = \"?\";\nvar questeq = \"≟\";\nvar quot$2 = \"\\\"\";\nvar QUOT$1 = \"\\\"\";\nvar rAarr = \"⇛\";\nvar race = \"∽̱\";\nvar Racute = \"Ŕ\";\nvar racute = \"ŕ\";\nvar radic = \"√\";\nvar raemptyv = \"⦳\";\nvar rang = \"⟩\";\nvar Rang = \"⟫\";\nvar rangd = \"⦒\";\nvar range = \"⦥\";\nvar rangle = \"⟩\";\nvar raquo$1 = \"»\";\nvar rarrap = \"⥵\";\nvar rarrb = \"⇥\";\nvar rarrbfs = \"⤠\";\nvar rarrc = \"⤳\";\nvar rarr = \"→\";\nvar Rarr = \"↠\";\nvar rArr = \"⇒\";\nvar rarrfs = \"⤞\";\nvar rarrhk = \"↪\";\nvar rarrlp = \"↬\";\nvar rarrpl = \"⥅\";\nvar rarrsim = \"⥴\";\nvar Rarrtl = \"⤖\";\nvar rarrtl = \"↣\";\nvar rarrw = \"↝\";\nvar ratail = \"⤚\";\nvar rAtail = \"⤜\";\nvar ratio = \"∶\";\nvar rationals = \"ℚ\";\nvar rbarr = \"⤍\";\nvar rBarr = \"⤏\";\nvar RBarr = \"⤐\";\nvar rbbrk = \"❳\";\nvar rbrace = \"}\";\nvar rbrack = \"]\";\nvar rbrke = \"⦌\";\nvar rbrksld = \"⦎\";\nvar rbrkslu = \"⦐\";\nvar Rcaron = \"Ř\";\nvar rcaron = \"ř\";\nvar Rcedil = \"Ŗ\";\nvar rcedil = \"ŗ\";\nvar rceil = \"⌉\";\nvar rcub = \"}\";\nvar Rcy = \"Р\";\nvar rcy = \"р\";\nvar rdca = \"⤷\";\nvar rdldhar = \"⥩\";\nvar rdquo = \"”\";\nvar rdquor = \"”\";\nvar rdsh = \"↳\";\nvar real = \"ℜ\";\nvar realine = \"ℛ\";\nvar realpart = \"ℜ\";\nvar reals = \"ℝ\";\nvar Re = \"ℜ\";\nvar rect = \"▭\";\nvar reg$1 = \"®\";\nvar REG$1 = \"®\";\nvar ReverseElement = \"∋\";\nvar ReverseEquilibrium = \"⇋\";\nvar ReverseUpEquilibrium = \"⥯\";\nvar rfisht = \"⥽\";\nvar rfloor = \"⌋\";\nvar rfr = \"𝔯\";\nvar Rfr = \"ℜ\";\nvar rHar = \"⥤\";\nvar rhard = \"⇁\";\nvar rharu = \"⇀\";\nvar rharul = \"⥬\";\nvar Rho = \"Ρ\";\nvar rho = \"ρ\";\nvar rhov = \"ϱ\";\nvar RightAngleBracket = \"⟩\";\nvar RightArrowBar = \"⇥\";\nvar rightarrow = \"→\";\nvar RightArrow = \"→\";\nvar Rightarrow = \"⇒\";\nvar RightArrowLeftArrow = \"⇄\";\nvar rightarrowtail = \"↣\";\nvar RightCeiling = \"⌉\";\nvar RightDoubleBracket = \"⟧\";\nvar RightDownTeeVector = \"⥝\";\nvar RightDownVectorBar = \"⥕\";\nvar RightDownVector = \"⇂\";\nvar RightFloor = \"⌋\";\nvar rightharpoondown = \"⇁\";\nvar rightharpoonup = \"⇀\";\nvar rightleftarrows = \"⇄\";\nvar rightleftharpoons = \"⇌\";\nvar rightrightarrows = \"⇉\";\nvar rightsquigarrow = \"↝\";\nvar RightTeeArrow = \"↦\";\nvar RightTee = \"⊢\";\nvar RightTeeVector = \"⥛\";\nvar rightthreetimes = \"⋌\";\nvar RightTriangleBar = \"⧐\";\nvar RightTriangle = \"⊳\";\nvar RightTriangleEqual = \"⊵\";\nvar RightUpDownVector = \"⥏\";\nvar RightUpTeeVector = \"⥜\";\nvar RightUpVectorBar = \"⥔\";\nvar RightUpVector = \"↾\";\nvar RightVectorBar = \"⥓\";\nvar RightVector = \"⇀\";\nvar ring = \"˚\";\nvar risingdotseq = \"≓\";\nvar rlarr = \"⇄\";\nvar rlhar = \"⇌\";\nvar rlm = \"‏\";\nvar rmoustache = \"⎱\";\nvar rmoust = \"⎱\";\nvar rnmid = \"⫮\";\nvar roang = \"⟭\";\nvar roarr = \"⇾\";\nvar robrk = \"⟧\";\nvar ropar = \"⦆\";\nvar ropf = \"𝕣\";\nvar Ropf = \"ℝ\";\nvar roplus = \"⨮\";\nvar rotimes = \"⨵\";\nvar RoundImplies = \"⥰\";\nvar rpar = \")\";\nvar rpargt = \"⦔\";\nvar rppolint = \"⨒\";\nvar rrarr = \"⇉\";\nvar Rrightarrow = \"⇛\";\nvar rsaquo = \"›\";\nvar rscr = \"𝓇\";\nvar Rscr = \"ℛ\";\nvar rsh = \"↱\";\nvar Rsh = \"↱\";\nvar rsqb = \"]\";\nvar rsquo = \"’\";\nvar rsquor = \"’\";\nvar rthree = \"⋌\";\nvar rtimes = \"⋊\";\nvar rtri = \"▹\";\nvar rtrie = \"⊵\";\nvar rtrif = \"▸\";\nvar rtriltri = \"⧎\";\nvar RuleDelayed = \"⧴\";\nvar ruluhar = \"⥨\";\nvar rx = \"℞\";\nvar Sacute = \"Ś\";\nvar sacute = \"ś\";\nvar sbquo = \"‚\";\nvar scap = \"⪸\";\nvar Scaron = \"Š\";\nvar scaron = \"š\";\nvar Sc = \"⪼\";\nvar sc = \"≻\";\nvar sccue = \"≽\";\nvar sce = \"⪰\";\nvar scE = \"⪴\";\nvar Scedil = \"Ş\";\nvar scedil = \"ş\";\nvar Scirc = \"Ŝ\";\nvar scirc = \"ŝ\";\nvar scnap = \"⪺\";\nvar scnE = \"⪶\";\nvar scnsim = \"⋩\";\nvar scpolint = \"⨓\";\nvar scsim = \"≿\";\nvar Scy = \"С\";\nvar scy = \"с\";\nvar sdotb = \"⊡\";\nvar sdot = \"⋅\";\nvar sdote = \"⩦\";\nvar searhk = \"⤥\";\nvar searr = \"↘\";\nvar seArr = \"⇘\";\nvar searrow = \"↘\";\nvar sect$1 = \"§\";\nvar semi = \";\";\nvar seswar = \"⤩\";\nvar setminus = \"∖\";\nvar setmn = \"∖\";\nvar sext = \"✶\";\nvar Sfr = \"𝔖\";\nvar sfr = \"𝔰\";\nvar sfrown = \"⌢\";\nvar sharp = \"♯\";\nvar SHCHcy = \"Щ\";\nvar shchcy = \"щ\";\nvar SHcy = \"Ш\";\nvar shcy = \"ш\";\nvar ShortDownArrow = \"↓\";\nvar ShortLeftArrow = \"←\";\nvar shortmid = \"∣\";\nvar shortparallel = \"∥\";\nvar ShortRightArrow = \"→\";\nvar ShortUpArrow = \"↑\";\nvar shy$1 = \"­\";\nvar Sigma = \"Σ\";\nvar sigma = \"σ\";\nvar sigmaf = \"ς\";\nvar sigmav = \"ς\";\nvar sim = \"∼\";\nvar simdot = \"⩪\";\nvar sime = \"≃\";\nvar simeq = \"≃\";\nvar simg = \"⪞\";\nvar simgE = \"⪠\";\nvar siml = \"⪝\";\nvar simlE = \"⪟\";\nvar simne = \"≆\";\nvar simplus = \"⨤\";\nvar simrarr = \"⥲\";\nvar slarr = \"←\";\nvar SmallCircle = \"∘\";\nvar smallsetminus = \"∖\";\nvar smashp = \"⨳\";\nvar smeparsl = \"⧤\";\nvar smid = \"∣\";\nvar smile = \"⌣\";\nvar smt = \"⪪\";\nvar smte = \"⪬\";\nvar smtes = \"⪬︀\";\nvar SOFTcy = \"Ь\";\nvar softcy = \"ь\";\nvar solbar = \"⌿\";\nvar solb = \"⧄\";\nvar sol = \"/\";\nvar Sopf = \"𝕊\";\nvar sopf = \"𝕤\";\nvar spades = \"♠\";\nvar spadesuit = \"♠\";\nvar spar = \"∥\";\nvar sqcap = \"⊓\";\nvar sqcaps = \"⊓︀\";\nvar sqcup = \"⊔\";\nvar sqcups = \"⊔︀\";\nvar Sqrt = \"√\";\nvar sqsub = \"⊏\";\nvar sqsube = \"⊑\";\nvar sqsubset = \"⊏\";\nvar sqsubseteq = \"⊑\";\nvar sqsup = \"⊐\";\nvar sqsupe = \"⊒\";\nvar sqsupset = \"⊐\";\nvar sqsupseteq = \"⊒\";\nvar square = \"□\";\nvar Square = \"□\";\nvar SquareIntersection = \"⊓\";\nvar SquareSubset = \"⊏\";\nvar SquareSubsetEqual = \"⊑\";\nvar SquareSuperset = \"⊐\";\nvar SquareSupersetEqual = \"⊒\";\nvar SquareUnion = \"⊔\";\nvar squarf = \"▪\";\nvar squ = \"□\";\nvar squf = \"▪\";\nvar srarr = \"→\";\nvar Sscr = \"𝒮\";\nvar sscr = \"𝓈\";\nvar ssetmn = \"∖\";\nvar ssmile = \"⌣\";\nvar sstarf = \"⋆\";\nvar Star = \"⋆\";\nvar star = \"☆\";\nvar starf = \"★\";\nvar straightepsilon = \"ϵ\";\nvar straightphi = \"ϕ\";\nvar strns = \"¯\";\nvar sub = \"⊂\";\nvar Sub = \"⋐\";\nvar subdot = \"⪽\";\nvar subE = \"⫅\";\nvar sube = \"⊆\";\nvar subedot = \"⫃\";\nvar submult = \"⫁\";\nvar subnE = \"⫋\";\nvar subne = \"⊊\";\nvar subplus = \"⪿\";\nvar subrarr = \"⥹\";\nvar subset = \"⊂\";\nvar Subset = \"⋐\";\nvar subseteq = \"⊆\";\nvar subseteqq = \"⫅\";\nvar SubsetEqual = \"⊆\";\nvar subsetneq = \"⊊\";\nvar subsetneqq = \"⫋\";\nvar subsim = \"⫇\";\nvar subsub = \"⫕\";\nvar subsup = \"⫓\";\nvar succapprox = \"⪸\";\nvar succ = \"≻\";\nvar succcurlyeq = \"≽\";\nvar Succeeds = \"≻\";\nvar SucceedsEqual = \"⪰\";\nvar SucceedsSlantEqual = \"≽\";\nvar SucceedsTilde = \"≿\";\nvar succeq = \"⪰\";\nvar succnapprox = \"⪺\";\nvar succneqq = \"⪶\";\nvar succnsim = \"⋩\";\nvar succsim = \"≿\";\nvar SuchThat = \"∋\";\nvar sum = \"∑\";\nvar Sum = \"∑\";\nvar sung = \"♪\";\nvar sup1$1 = \"¹\";\nvar sup2$1 = \"²\";\nvar sup3$1 = \"³\";\nvar sup = \"⊃\";\nvar Sup = \"⋑\";\nvar supdot = \"⪾\";\nvar supdsub = \"⫘\";\nvar supE = \"⫆\";\nvar supe = \"⊇\";\nvar supedot = \"⫄\";\nvar Superset = \"⊃\";\nvar SupersetEqual = \"⊇\";\nvar suphsol = \"⟉\";\nvar suphsub = \"⫗\";\nvar suplarr = \"⥻\";\nvar supmult = \"⫂\";\nvar supnE = \"⫌\";\nvar supne = \"⊋\";\nvar supplus = \"⫀\";\nvar supset = \"⊃\";\nvar Supset = \"⋑\";\nvar supseteq = \"⊇\";\nvar supseteqq = \"⫆\";\nvar supsetneq = \"⊋\";\nvar supsetneqq = \"⫌\";\nvar supsim = \"⫈\";\nvar supsub = \"⫔\";\nvar supsup = \"⫖\";\nvar swarhk = \"⤦\";\nvar swarr = \"↙\";\nvar swArr = \"⇙\";\nvar swarrow = \"↙\";\nvar swnwar = \"⤪\";\nvar szlig$1 = \"ß\";\nvar Tab = \"\\t\";\nvar target = \"⌖\";\nvar Tau = \"Τ\";\nvar tau = \"τ\";\nvar tbrk = \"⎴\";\nvar Tcaron = \"Ť\";\nvar tcaron = \"ť\";\nvar Tcedil = \"Ţ\";\nvar tcedil = \"ţ\";\nvar Tcy = \"Т\";\nvar tcy = \"т\";\nvar tdot = \"⃛\";\nvar telrec = \"⌕\";\nvar Tfr = \"𝔗\";\nvar tfr = \"𝔱\";\nvar there4 = \"∴\";\nvar therefore = \"∴\";\nvar Therefore = \"∴\";\nvar Theta = \"Θ\";\nvar theta = \"θ\";\nvar thetasym = \"ϑ\";\nvar thetav = \"ϑ\";\nvar thickapprox = \"≈\";\nvar thicksim = \"∼\";\nvar ThickSpace = \"  \";\nvar ThinSpace = \" \";\nvar thinsp = \" \";\nvar thkap = \"≈\";\nvar thksim = \"∼\";\nvar THORN$1 = \"Þ\";\nvar thorn$1 = \"þ\";\nvar tilde = \"˜\";\nvar Tilde = \"∼\";\nvar TildeEqual = \"≃\";\nvar TildeFullEqual = \"≅\";\nvar TildeTilde = \"≈\";\nvar timesbar = \"⨱\";\nvar timesb = \"⊠\";\nvar times$1 = \"×\";\nvar timesd = \"⨰\";\nvar tint = \"∭\";\nvar toea = \"⤨\";\nvar topbot = \"⌶\";\nvar topcir = \"⫱\";\nvar esm_top = \"⊤\";\nvar Topf = \"𝕋\";\nvar topf = \"𝕥\";\nvar topfork = \"⫚\";\nvar tosa = \"⤩\";\nvar tprime = \"‴\";\nvar trade = \"™\";\nvar TRADE = \"™\";\nvar triangle = \"▵\";\nvar triangledown = \"▿\";\nvar triangleleft = \"◃\";\nvar trianglelefteq = \"⊴\";\nvar triangleq = \"≜\";\nvar triangleright = \"▹\";\nvar trianglerighteq = \"⊵\";\nvar tridot = \"◬\";\nvar trie = \"≜\";\nvar triminus = \"⨺\";\nvar TripleDot = \"⃛\";\nvar triplus = \"⨹\";\nvar trisb = \"⧍\";\nvar tritime = \"⨻\";\nvar trpezium = \"⏢\";\nvar Tscr = \"𝒯\";\nvar tscr = \"𝓉\";\nvar TScy = \"Ц\";\nvar tscy = \"ц\";\nvar TSHcy = \"Ћ\";\nvar tshcy = \"ћ\";\nvar Tstrok = \"Ŧ\";\nvar tstrok = \"ŧ\";\nvar twixt = \"≬\";\nvar twoheadleftarrow = \"↞\";\nvar twoheadrightarrow = \"↠\";\nvar Uacute$1 = \"Ú\";\nvar uacute$1 = \"ú\";\nvar uarr = \"↑\";\nvar Uarr = \"↟\";\nvar uArr = \"⇑\";\nvar Uarrocir = \"⥉\";\nvar Ubrcy = \"Ў\";\nvar ubrcy = \"ў\";\nvar Ubreve = \"Ŭ\";\nvar ubreve = \"ŭ\";\nvar Ucirc$1 = \"Û\";\nvar ucirc$1 = \"û\";\nvar Ucy = \"У\";\nvar ucy = \"у\";\nvar udarr = \"⇅\";\nvar Udblac = \"Ű\";\nvar udblac = \"ű\";\nvar udhar = \"⥮\";\nvar ufisht = \"⥾\";\nvar Ufr = \"𝔘\";\nvar ufr = \"𝔲\";\nvar Ugrave$1 = \"Ù\";\nvar ugrave$1 = \"ù\";\nvar uHar = \"⥣\";\nvar uharl = \"↿\";\nvar uharr = \"↾\";\nvar uhblk = \"▀\";\nvar ulcorn = \"⌜\";\nvar ulcorner = \"⌜\";\nvar ulcrop = \"⌏\";\nvar ultri = \"◸\";\nvar Umacr = \"Ū\";\nvar umacr = \"ū\";\nvar uml$1 = \"¨\";\nvar UnderBar = \"_\";\nvar UnderBrace = \"⏟\";\nvar UnderBracket = \"⎵\";\nvar UnderParenthesis = \"⏝\";\nvar Union = \"⋃\";\nvar UnionPlus = \"⊎\";\nvar Uogon = \"Ų\";\nvar uogon = \"ų\";\nvar Uopf = \"𝕌\";\nvar uopf = \"𝕦\";\nvar UpArrowBar = \"⤒\";\nvar uparrow = \"↑\";\nvar UpArrow = \"↑\";\nvar Uparrow = \"⇑\";\nvar UpArrowDownArrow = \"⇅\";\nvar updownarrow = \"↕\";\nvar UpDownArrow = \"↕\";\nvar Updownarrow = \"⇕\";\nvar UpEquilibrium = \"⥮\";\nvar upharpoonleft = \"↿\";\nvar upharpoonright = \"↾\";\nvar uplus = \"⊎\";\nvar UpperLeftArrow = \"↖\";\nvar UpperRightArrow = \"↗\";\nvar upsi = \"υ\";\nvar Upsi = \"ϒ\";\nvar upsih = \"ϒ\";\nvar Upsilon = \"Υ\";\nvar upsilon = \"υ\";\nvar UpTeeArrow = \"↥\";\nvar UpTee = \"⊥\";\nvar upuparrows = \"⇈\";\nvar urcorn = \"⌝\";\nvar urcorner = \"⌝\";\nvar urcrop = \"⌎\";\nvar Uring = \"Ů\";\nvar uring = \"ů\";\nvar urtri = \"◹\";\nvar Uscr = \"𝒰\";\nvar uscr = \"𝓊\";\nvar utdot = \"⋰\";\nvar Utilde = \"Ũ\";\nvar utilde = \"ũ\";\nvar utri = \"▵\";\nvar utrif = \"▴\";\nvar uuarr = \"⇈\";\nvar Uuml$1 = \"Ü\";\nvar uuml$1 = \"ü\";\nvar uwangle = \"⦧\";\nvar vangrt = \"⦜\";\nvar varepsilon = \"ϵ\";\nvar varkappa = \"ϰ\";\nvar varnothing = \"∅\";\nvar varphi = \"ϕ\";\nvar varpi = \"ϖ\";\nvar varpropto = \"∝\";\nvar varr = \"↕\";\nvar vArr = \"⇕\";\nvar varrho = \"ϱ\";\nvar varsigma = \"ς\";\nvar varsubsetneq = \"⊊︀\";\nvar varsubsetneqq = \"⫋︀\";\nvar varsupsetneq = \"⊋︀\";\nvar varsupsetneqq = \"⫌︀\";\nvar vartheta = \"ϑ\";\nvar vartriangleleft = \"⊲\";\nvar vartriangleright = \"⊳\";\nvar vBar = \"⫨\";\nvar Vbar = \"⫫\";\nvar vBarv = \"⫩\";\nvar Vcy = \"В\";\nvar vcy = \"в\";\nvar vdash = \"⊢\";\nvar vDash = \"⊨\";\nvar Vdash = \"⊩\";\nvar VDash = \"⊫\";\nvar Vdashl = \"⫦\";\nvar veebar = \"⊻\";\nvar vee = \"∨\";\nvar Vee = \"⋁\";\nvar veeeq = \"≚\";\nvar vellip = \"⋮\";\nvar verbar = \"|\";\nvar Verbar = \"‖\";\nvar vert = \"|\";\nvar Vert = \"‖\";\nvar VerticalBar = \"∣\";\nvar VerticalLine = \"|\";\nvar VerticalSeparator = \"❘\";\nvar VerticalTilde = \"≀\";\nvar VeryThinSpace = \" \";\nvar Vfr = \"𝔙\";\nvar vfr = \"𝔳\";\nvar vltri = \"⊲\";\nvar vnsub = \"⊂⃒\";\nvar vnsup = \"⊃⃒\";\nvar Vopf = \"𝕍\";\nvar vopf = \"𝕧\";\nvar vprop = \"∝\";\nvar vrtri = \"⊳\";\nvar Vscr = \"𝒱\";\nvar vscr = \"𝓋\";\nvar vsubnE = \"⫋︀\";\nvar vsubne = \"⊊︀\";\nvar vsupnE = \"⫌︀\";\nvar vsupne = \"⊋︀\";\nvar Vvdash = \"⊪\";\nvar vzigzag = \"⦚\";\nvar Wcirc = \"Ŵ\";\nvar wcirc = \"ŵ\";\nvar wedbar = \"⩟\";\nvar wedge = \"∧\";\nvar Wedge = \"⋀\";\nvar wedgeq = \"≙\";\nvar weierp = \"℘\";\nvar Wfr = \"𝔚\";\nvar wfr = \"𝔴\";\nvar Wopf = \"𝕎\";\nvar wopf = \"𝕨\";\nvar wp = \"℘\";\nvar wr = \"≀\";\nvar wreath = \"≀\";\nvar Wscr = \"𝒲\";\nvar wscr = \"𝓌\";\nvar xcap = \"⋂\";\nvar xcirc = \"◯\";\nvar xcup = \"⋃\";\nvar xdtri = \"▽\";\nvar Xfr = \"𝔛\";\nvar xfr = \"𝔵\";\nvar xharr = \"⟷\";\nvar xhArr = \"⟺\";\nvar Xi = \"Ξ\";\nvar xi = \"ξ\";\nvar xlarr = \"⟵\";\nvar xlArr = \"⟸\";\nvar xmap = \"⟼\";\nvar xnis = \"⋻\";\nvar xodot = \"⨀\";\nvar Xopf = \"𝕏\";\nvar xopf = \"𝕩\";\nvar xoplus = \"⨁\";\nvar xotime = \"⨂\";\nvar xrarr = \"⟶\";\nvar xrArr = \"⟹\";\nvar Xscr = \"𝒳\";\nvar xscr = \"𝓍\";\nvar xsqcup = \"⨆\";\nvar xuplus = \"⨄\";\nvar xutri = \"△\";\nvar xvee = \"⋁\";\nvar xwedge = \"⋀\";\nvar Yacute$1 = \"Ý\";\nvar yacute$1 = \"ý\";\nvar YAcy = \"Я\";\nvar yacy = \"я\";\nvar Ycirc = \"Ŷ\";\nvar ycirc = \"ŷ\";\nvar Ycy = \"Ы\";\nvar ycy = \"ы\";\nvar yen$1 = \"¥\";\nvar Yfr = \"𝔜\";\nvar yfr = \"𝔶\";\nvar YIcy = \"Ї\";\nvar yicy = \"ї\";\nvar Yopf = \"𝕐\";\nvar yopf = \"𝕪\";\nvar Yscr = \"𝒴\";\nvar yscr = \"𝓎\";\nvar YUcy = \"Ю\";\nvar yucy = \"ю\";\nvar yuml$1 = \"ÿ\";\nvar Yuml = \"Ÿ\";\nvar Zacute = \"Ź\";\nvar zacute = \"ź\";\nvar Zcaron = \"Ž\";\nvar zcaron = \"ž\";\nvar Zcy = \"З\";\nvar zcy = \"з\";\nvar Zdot = \"Ż\";\nvar zdot = \"ż\";\nvar zeetrf = \"ℨ\";\nvar ZeroWidthSpace = \"​\";\nvar Zeta = \"Ζ\";\nvar zeta = \"ζ\";\nvar zfr = \"𝔷\";\nvar Zfr = \"ℨ\";\nvar ZHcy = \"Ж\";\nvar zhcy = \"ж\";\nvar zigrarr = \"⇝\";\nvar zopf = \"𝕫\";\nvar Zopf = \"ℤ\";\nvar Zscr = \"𝒵\";\nvar zscr = \"𝓏\";\nvar zwj = \"‍\";\nvar zwnj = \"‌\";\nvar require$$1$1 = {\n Aacute: Aacute$1,\n aacute: aacute$1,\n Abreve: Abreve,\n abreve: abreve,\n ac: ac,\n acd: acd,\n acE: acE,\n Acirc: Acirc$1,\n acirc: acirc$1,\n acute: acute$1,\n Acy: Acy,\n acy: acy,\n AElig: AElig$1,\n aelig: aelig$1,\n af: af,\n Afr: Afr,\n afr: afr,\n Agrave: Agrave$1,\n agrave: agrave$1,\n alefsym: alefsym,\n aleph: aleph,\n Alpha: Alpha,\n alpha: alpha,\n Amacr: Amacr,\n amacr: amacr,\n amalg: amalg,\n amp: amp$2,\n AMP: AMP$1,\n andand: andand,\n And: And,\n and: and,\n andd: andd,\n andslope: andslope,\n andv: andv,\n ang: ang,\n ange: ange,\n angle: angle,\n angmsdaa: angmsdaa,\n angmsdab: angmsdab,\n angmsdac: angmsdac,\n angmsdad: angmsdad,\n angmsdae: angmsdae,\n angmsdaf: angmsdaf,\n angmsdag: angmsdag,\n angmsdah: angmsdah,\n angmsd: angmsd,\n angrt: angrt,\n angrtvb: angrtvb,\n angrtvbd: angrtvbd,\n angsph: angsph,\n angst: angst,\n angzarr: angzarr,\n Aogon: Aogon,\n aogon: aogon,\n Aopf: Aopf,\n aopf: aopf,\n apacir: apacir,\n ap: ap,\n apE: apE,\n ape: ape,\n apid: apid,\n apos: apos$1,\n ApplyFunction: ApplyFunction,\n approx: approx,\n approxeq: approxeq,\n Aring: Aring$1,\n aring: aring$1,\n Ascr: Ascr,\n ascr: ascr,\n Assign: Assign,\n ast: ast,\n asymp: asymp,\n asympeq: asympeq,\n Atilde: Atilde$1,\n atilde: atilde$1,\n Auml: Auml$1,\n auml: auml$1,\n awconint: awconint,\n awint: awint,\n backcong: backcong,\n backepsilon: backepsilon,\n backprime: backprime,\n backsim: backsim,\n backsimeq: backsimeq,\n Backslash: Backslash,\n Barv: Barv,\n barvee: barvee,\n barwed: barwed,\n Barwed: Barwed,\n barwedge: barwedge,\n bbrk: bbrk,\n bbrktbrk: bbrktbrk,\n bcong: bcong,\n Bcy: Bcy,\n bcy: bcy,\n bdquo: bdquo,\n becaus: becaus,\n because: because,\n Because: Because,\n bemptyv: bemptyv,\n bepsi: bepsi,\n bernou: bernou,\n Bernoullis: Bernoullis,\n Beta: Beta,\n beta: beta,\n beth: beth,\n between: between,\n Bfr: Bfr,\n bfr: bfr,\n bigcap: bigcap,\n bigcirc: bigcirc,\n bigcup: bigcup,\n bigodot: bigodot,\n bigoplus: bigoplus,\n bigotimes: bigotimes,\n bigsqcup: bigsqcup,\n bigstar: bigstar,\n bigtriangledown: bigtriangledown,\n bigtriangleup: bigtriangleup,\n biguplus: biguplus,\n bigvee: bigvee,\n bigwedge: bigwedge,\n bkarow: bkarow,\n blacklozenge: blacklozenge,\n blacksquare: blacksquare,\n blacktriangle: blacktriangle,\n blacktriangledown: blacktriangledown,\n blacktriangleleft: blacktriangleleft,\n blacktriangleright: blacktriangleright,\n blank: blank,\n blk12: blk12,\n blk14: blk14,\n blk34: blk34,\n block: block,\n bne: bne,\n bnequiv: bnequiv,\n bNot: bNot,\n bnot: bnot,\n Bopf: Bopf,\n bopf: bopf,\n bot: bot,\n bottom: bottom,\n bowtie: bowtie,\n boxbox: boxbox,\n boxdl: boxdl,\n boxdL: boxdL,\n boxDl: boxDl,\n boxDL: boxDL,\n boxdr: boxdr,\n boxdR: boxdR,\n boxDr: boxDr,\n boxDR: boxDR,\n boxh: boxh,\n boxH: boxH,\n boxhd: boxhd,\n boxHd: boxHd,\n boxhD: boxhD,\n boxHD: boxHD,\n boxhu: boxhu,\n boxHu: boxHu,\n boxhU: boxhU,\n boxHU: boxHU,\n boxminus: boxminus,\n boxplus: boxplus,\n boxtimes: boxtimes,\n boxul: boxul,\n boxuL: boxuL,\n boxUl: boxUl,\n boxUL: boxUL,\n boxur: boxur,\n boxuR: boxuR,\n boxUr: boxUr,\n boxUR: boxUR,\n boxv: boxv,\n boxV: boxV,\n boxvh: boxvh,\n boxvH: boxvH,\n boxVh: boxVh,\n boxVH: boxVH,\n boxvl: boxvl,\n boxvL: boxvL,\n boxVl: boxVl,\n boxVL: boxVL,\n boxvr: boxvr,\n boxvR: boxvR,\n boxVr: boxVr,\n boxVR: boxVR,\n bprime: bprime,\n breve: breve,\n Breve: Breve,\n brvbar: brvbar$1,\n bscr: bscr,\n Bscr: Bscr,\n bsemi: bsemi,\n bsim: bsim,\n bsime: bsime,\n bsolb: bsolb,\n bsol: bsol,\n bsolhsub: bsolhsub,\n bull: bull,\n bullet: bullet,\n bump: bump,\n bumpE: bumpE,\n bumpe: bumpe,\n Bumpeq: Bumpeq,\n bumpeq: bumpeq,\n Cacute: Cacute,\n cacute: cacute,\n capand: capand,\n capbrcup: capbrcup,\n capcap: capcap,\n cap: cap,\n Cap: Cap,\n capcup: capcup,\n capdot: capdot,\n CapitalDifferentialD: CapitalDifferentialD,\n caps: caps,\n caret: caret,\n caron: caron,\n Cayleys: Cayleys,\n ccaps: ccaps,\n Ccaron: Ccaron,\n ccaron: ccaron,\n Ccedil: Ccedil$1,\n ccedil: ccedil$1,\n Ccirc: Ccirc,\n ccirc: ccirc,\n Cconint: Cconint,\n ccups: ccups,\n ccupssm: ccupssm,\n Cdot: Cdot,\n cdot: cdot,\n cedil: cedil$1,\n Cedilla: Cedilla,\n cemptyv: cemptyv,\n cent: cent$1,\n centerdot: centerdot,\n CenterDot: CenterDot,\n cfr: cfr,\n Cfr: Cfr,\n CHcy: CHcy,\n chcy: chcy,\n check: check,\n checkmark: checkmark,\n Chi: Chi,\n chi: chi,\n circ: circ,\n circeq: circeq,\n circlearrowleft: circlearrowleft,\n circlearrowright: circlearrowright,\n circledast: circledast,\n circledcirc: circledcirc,\n circleddash: circleddash,\n CircleDot: CircleDot,\n circledR: circledR,\n circledS: circledS,\n CircleMinus: CircleMinus,\n CirclePlus: CirclePlus,\n CircleTimes: CircleTimes,\n cir: cir,\n cirE: cirE,\n cire: cire,\n cirfnint: cirfnint,\n cirmid: cirmid,\n cirscir: cirscir,\n ClockwiseContourIntegral: ClockwiseContourIntegral,\n CloseCurlyDoubleQuote: CloseCurlyDoubleQuote,\n CloseCurlyQuote: CloseCurlyQuote,\n clubs: clubs,\n clubsuit: clubsuit,\n colon: colon,\n Colon: Colon,\n Colone: Colone,\n colone: colone,\n coloneq: coloneq,\n comma: comma,\n commat: commat,\n comp: comp,\n compfn: compfn,\n complement: complement,\n complexes: complexes,\n cong: cong,\n congdot: congdot,\n Congruent: Congruent,\n conint: conint,\n Conint: Conint,\n ContourIntegral: ContourIntegral,\n copf: copf,\n Copf: Copf,\n coprod: coprod,\n Coproduct: Coproduct,\n copy: copy$1,\n COPY: COPY$1,\n copysr: copysr,\n CounterClockwiseContourIntegral: CounterClockwiseContourIntegral,\n crarr: crarr,\n cross: cross,\n Cross: Cross,\n Cscr: Cscr,\n cscr: cscr,\n csub: csub,\n csube: csube,\n csup: csup,\n csupe: csupe,\n ctdot: ctdot,\n cudarrl: cudarrl,\n cudarrr: cudarrr,\n cuepr: cuepr,\n cuesc: cuesc,\n cularr: cularr,\n cularrp: cularrp,\n cupbrcap: cupbrcap,\n cupcap: cupcap,\n CupCap: CupCap,\n cup: cup,\n Cup: Cup,\n cupcup: cupcup,\n cupdot: cupdot,\n cupor: cupor,\n cups: cups,\n curarr: curarr,\n curarrm: curarrm,\n curlyeqprec: curlyeqprec,\n curlyeqsucc: curlyeqsucc,\n curlyvee: curlyvee,\n curlywedge: curlywedge,\n curren: curren$1,\n curvearrowleft: curvearrowleft,\n curvearrowright: curvearrowright,\n cuvee: cuvee,\n cuwed: cuwed,\n cwconint: cwconint,\n cwint: cwint,\n cylcty: cylcty,\n dagger: dagger,\n Dagger: Dagger,\n daleth: daleth,\n darr: darr,\n Darr: Darr,\n dArr: dArr,\n dash: dash,\n Dashv: Dashv,\n dashv: dashv,\n dbkarow: dbkarow,\n dblac: dblac,\n Dcaron: Dcaron,\n dcaron: dcaron,\n Dcy: Dcy,\n dcy: dcy,\n ddagger: ddagger,\n ddarr: ddarr,\n DD: DD,\n dd: dd,\n DDotrahd: DDotrahd,\n ddotseq: ddotseq,\n deg: deg$1,\n Del: Del,\n Delta: Delta,\n delta: delta,\n demptyv: demptyv,\n dfisht: dfisht,\n Dfr: Dfr,\n dfr: dfr,\n dHar: dHar,\n dharl: dharl,\n dharr: dharr,\n DiacriticalAcute: DiacriticalAcute,\n DiacriticalDot: DiacriticalDot,\n DiacriticalDoubleAcute: DiacriticalDoubleAcute,\n DiacriticalGrave: DiacriticalGrave,\n DiacriticalTilde: DiacriticalTilde,\n diam: diam,\n diamond: diamond,\n Diamond: Diamond,\n diamondsuit: diamondsuit,\n diams: diams,\n die: die,\n DifferentialD: DifferentialD,\n digamma: digamma,\n disin: disin,\n div: div,\n divide: divide$1,\n divideontimes: divideontimes,\n divonx: divonx,\n DJcy: DJcy,\n djcy: djcy,\n dlcorn: dlcorn,\n dlcrop: dlcrop,\n dollar: dollar,\n Dopf: Dopf,\n dopf: dopf,\n Dot: Dot,\n dot: dot,\n DotDot: DotDot,\n doteq: doteq,\n doteqdot: doteqdot,\n DotEqual: DotEqual,\n dotminus: dotminus,\n dotplus: dotplus,\n dotsquare: dotsquare,\n doublebarwedge: doublebarwedge,\n DoubleContourIntegral: DoubleContourIntegral,\n DoubleDot: DoubleDot,\n DoubleDownArrow: DoubleDownArrow,\n DoubleLeftArrow: DoubleLeftArrow,\n DoubleLeftRightArrow: DoubleLeftRightArrow,\n DoubleLeftTee: DoubleLeftTee,\n DoubleLongLeftArrow: DoubleLongLeftArrow,\n DoubleLongLeftRightArrow: DoubleLongLeftRightArrow,\n DoubleLongRightArrow: DoubleLongRightArrow,\n DoubleRightArrow: DoubleRightArrow,\n DoubleRightTee: DoubleRightTee,\n DoubleUpArrow: DoubleUpArrow,\n DoubleUpDownArrow: DoubleUpDownArrow,\n DoubleVerticalBar: DoubleVerticalBar,\n DownArrowBar: DownArrowBar,\n downarrow: downarrow,\n DownArrow: DownArrow,\n Downarrow: Downarrow,\n DownArrowUpArrow: DownArrowUpArrow,\n DownBreve: DownBreve,\n downdownarrows: downdownarrows,\n downharpoonleft: downharpoonleft,\n downharpoonright: downharpoonright,\n DownLeftRightVector: DownLeftRightVector,\n DownLeftTeeVector: DownLeftTeeVector,\n DownLeftVectorBar: DownLeftVectorBar,\n DownLeftVector: DownLeftVector,\n DownRightTeeVector: DownRightTeeVector,\n DownRightVectorBar: DownRightVectorBar,\n DownRightVector: DownRightVector,\n DownTeeArrow: DownTeeArrow,\n DownTee: DownTee,\n drbkarow: drbkarow,\n drcorn: drcorn,\n drcrop: drcrop,\n Dscr: Dscr,\n dscr: dscr,\n DScy: DScy,\n dscy: dscy,\n dsol: dsol,\n Dstrok: Dstrok,\n dstrok: dstrok,\n dtdot: dtdot,\n dtri: dtri,\n dtrif: dtrif,\n duarr: duarr,\n duhar: duhar,\n dwangle: dwangle,\n DZcy: DZcy,\n dzcy: dzcy,\n dzigrarr: dzigrarr,\n Eacute: Eacute$1,\n eacute: eacute$1,\n easter: easter,\n Ecaron: Ecaron,\n ecaron: ecaron,\n Ecirc: Ecirc$1,\n ecirc: ecirc$1,\n ecir: ecir,\n ecolon: ecolon,\n Ecy: Ecy,\n ecy: ecy,\n eDDot: eDDot,\n Edot: Edot,\n edot: edot,\n eDot: eDot,\n ee: ee,\n efDot: efDot,\n Efr: Efr,\n efr: efr,\n eg: eg,\n Egrave: Egrave$1,\n egrave: egrave$1,\n egs: egs,\n egsdot: egsdot,\n el: el,\n Element: Element,\n elinters: elinters,\n ell: ell,\n els: els,\n elsdot: elsdot,\n Emacr: Emacr,\n emacr: emacr,\n empty: empty,\n emptyset: emptyset,\n EmptySmallSquare: EmptySmallSquare,\n emptyv: emptyv,\n EmptyVerySmallSquare: EmptyVerySmallSquare,\n emsp13: emsp13,\n emsp14: emsp14,\n emsp: emsp,\n ENG: ENG,\n eng: eng,\n ensp: ensp,\n Eogon: Eogon,\n eogon: eogon,\n Eopf: Eopf,\n eopf: eopf,\n epar: epar,\n eparsl: eparsl,\n eplus: eplus,\n epsi: epsi,\n Epsilon: Epsilon,\n epsilon: epsilon,\n epsiv: epsiv,\n eqcirc: eqcirc,\n eqcolon: eqcolon,\n eqsim: eqsim,\n eqslantgtr: eqslantgtr,\n eqslantless: eqslantless,\n Equal: Equal,\n equals: equals,\n EqualTilde: EqualTilde,\n equest: equest,\n Equilibrium: Equilibrium,\n equiv: equiv,\n equivDD: equivDD,\n eqvparsl: eqvparsl,\n erarr: erarr,\n erDot: erDot,\n escr: escr,\n Escr: Escr,\n esdot: esdot,\n Esim: Esim,\n esim: esim,\n Eta: Eta,\n eta: eta,\n ETH: ETH$1,\n eth: eth$1,\n Euml: Euml$1,\n euml: euml$1,\n euro: euro,\n excl: excl,\n exist: exist,\n Exists: Exists,\n expectation: expectation,\n exponentiale: exponentiale,\n ExponentialE: ExponentialE,\n fallingdotseq: fallingdotseq,\n Fcy: Fcy,\n fcy: fcy,\n female: female,\n ffilig: ffilig,\n fflig: fflig,\n ffllig: ffllig,\n Ffr: Ffr,\n ffr: ffr,\n filig: filig,\n FilledSmallSquare: FilledSmallSquare,\n FilledVerySmallSquare: FilledVerySmallSquare,\n fjlig: fjlig,\n flat: flat,\n fllig: fllig,\n fltns: fltns,\n fnof: fnof,\n Fopf: Fopf,\n fopf: fopf,\n forall: forall,\n ForAll: ForAll,\n fork: fork,\n forkv: forkv,\n Fouriertrf: Fouriertrf,\n fpartint: fpartint,\n frac12: frac12$1,\n frac13: frac13,\n frac14: frac14$1,\n frac15: frac15,\n frac16: frac16,\n frac18: frac18,\n frac23: frac23,\n frac25: frac25,\n frac34: frac34$1,\n frac35: frac35,\n frac38: frac38,\n frac45: frac45,\n frac56: frac56,\n frac58: frac58,\n frac78: frac78,\n frasl: frasl,\n frown: frown,\n fscr: fscr,\n Fscr: Fscr,\n gacute: gacute,\n Gamma: Gamma,\n gamma: gamma,\n Gammad: Gammad,\n gammad: gammad,\n gap: gap,\n Gbreve: Gbreve,\n gbreve: gbreve,\n Gcedil: Gcedil,\n Gcirc: Gcirc,\n gcirc: gcirc,\n Gcy: Gcy,\n gcy: gcy,\n Gdot: Gdot,\n gdot: gdot,\n ge: ge,\n gE: gE,\n gEl: gEl,\n gel: gel,\n geq: geq,\n geqq: geqq,\n geqslant: geqslant,\n gescc: gescc,\n ges: ges,\n gesdot: gesdot,\n gesdoto: gesdoto,\n gesdotol: gesdotol,\n gesl: gesl,\n gesles: gesles,\n Gfr: Gfr,\n gfr: gfr,\n gg: gg,\n Gg: Gg,\n ggg: ggg,\n gimel: gimel,\n GJcy: GJcy,\n gjcy: gjcy,\n gla: gla,\n gl: gl,\n glE: glE,\n glj: glj,\n gnap: gnap,\n gnapprox: gnapprox,\n gne: gne,\n gnE: gnE,\n gneq: gneq,\n gneqq: gneqq,\n gnsim: gnsim,\n Gopf: Gopf,\n gopf: gopf,\n grave: grave,\n GreaterEqual: GreaterEqual,\n GreaterEqualLess: GreaterEqualLess,\n GreaterFullEqual: GreaterFullEqual,\n GreaterGreater: GreaterGreater,\n GreaterLess: GreaterLess,\n GreaterSlantEqual: GreaterSlantEqual,\n GreaterTilde: GreaterTilde,\n Gscr: Gscr,\n gscr: gscr,\n gsim: gsim,\n gsime: gsime,\n gsiml: gsiml,\n gtcc: gtcc,\n gtcir: gtcir,\n gt: gt$2,\n GT: GT$1,\n Gt: Gt,\n gtdot: gtdot,\n gtlPar: gtlPar,\n gtquest: gtquest,\n gtrapprox: gtrapprox,\n gtrarr: gtrarr,\n gtrdot: gtrdot,\n gtreqless: gtreqless,\n gtreqqless: gtreqqless,\n gtrless: gtrless,\n gtrsim: gtrsim,\n gvertneqq: gvertneqq,\n gvnE: gvnE,\n Hacek: Hacek,\n hairsp: hairsp,\n half: half,\n hamilt: hamilt,\n HARDcy: HARDcy,\n hardcy: hardcy,\n harrcir: harrcir,\n harr: harr,\n hArr: hArr,\n harrw: harrw,\n Hat: Hat,\n hbar: hbar,\n Hcirc: Hcirc,\n hcirc: hcirc,\n hearts: hearts,\n heartsuit: heartsuit,\n hellip: hellip,\n hercon: hercon,\n hfr: hfr,\n Hfr: Hfr,\n HilbertSpace: HilbertSpace,\n hksearow: hksearow,\n hkswarow: hkswarow,\n hoarr: hoarr,\n homtht: homtht,\n hookleftarrow: hookleftarrow,\n hookrightarrow: hookrightarrow,\n hopf: hopf,\n Hopf: Hopf,\n horbar: horbar,\n HorizontalLine: HorizontalLine,\n hscr: hscr,\n Hscr: Hscr,\n hslash: hslash,\n Hstrok: Hstrok,\n hstrok: hstrok,\n HumpDownHump: HumpDownHump,\n HumpEqual: HumpEqual,\n hybull: hybull,\n hyphen: hyphen,\n Iacute: Iacute$1,\n iacute: iacute$1,\n ic: ic,\n Icirc: Icirc$1,\n icirc: icirc$1,\n Icy: Icy,\n icy: icy,\n Idot: Idot,\n IEcy: IEcy,\n iecy: iecy,\n iexcl: iexcl$1,\n iff: iff,\n ifr: ifr,\n Ifr: Ifr,\n Igrave: Igrave$1,\n igrave: igrave$1,\n ii: ii,\n iiiint: iiiint,\n iiint: iiint,\n iinfin: iinfin,\n iiota: iiota,\n IJlig: IJlig,\n ijlig: ijlig,\n Imacr: Imacr,\n imacr: imacr,\n image: esm_image,\n ImaginaryI: ImaginaryI,\n imagline: imagline,\n imagpart: imagpart,\n imath: imath,\n Im: Im,\n imof: imof,\n imped: imped,\n Implies: Implies,\n incare: incare,\n \"in\": \"∈\",\n infin: infin,\n infintie: infintie,\n inodot: inodot,\n intcal: intcal,\n int: esm_int,\n Int: Int,\n integers: integers,\n Integral: Integral,\n intercal: intercal,\n Intersection: Intersection,\n intlarhk: intlarhk,\n intprod: intprod,\n InvisibleComma: InvisibleComma,\n InvisibleTimes: InvisibleTimes,\n IOcy: IOcy,\n iocy: iocy,\n Iogon: Iogon,\n iogon: iogon,\n Iopf: Iopf,\n iopf: iopf,\n Iota: Iota,\n iota: iota,\n iprod: iprod,\n iquest: iquest$1,\n iscr: iscr,\n Iscr: Iscr,\n isin: isin,\n isindot: isindot,\n isinE: isinE,\n isins: isins,\n isinsv: isinsv,\n isinv: isinv,\n it: it,\n Itilde: Itilde,\n itilde: itilde,\n Iukcy: Iukcy,\n iukcy: iukcy,\n Iuml: Iuml$1,\n iuml: iuml$1,\n Jcirc: Jcirc,\n jcirc: jcirc,\n Jcy: Jcy,\n jcy: jcy,\n Jfr: Jfr,\n jfr: jfr,\n jmath: jmath,\n Jopf: Jopf,\n jopf: jopf,\n Jscr: Jscr,\n jscr: jscr,\n Jsercy: Jsercy,\n jsercy: jsercy,\n Jukcy: Jukcy,\n jukcy: jukcy,\n Kappa: Kappa,\n kappa: kappa,\n kappav: kappav,\n Kcedil: Kcedil,\n kcedil: kcedil,\n Kcy: Kcy,\n kcy: kcy,\n Kfr: Kfr,\n kfr: kfr,\n kgreen: kgreen,\n KHcy: KHcy,\n khcy: khcy,\n KJcy: KJcy,\n kjcy: kjcy,\n Kopf: Kopf,\n kopf: kopf,\n Kscr: Kscr,\n kscr: kscr,\n lAarr: lAarr,\n Lacute: Lacute,\n lacute: lacute,\n laemptyv: laemptyv,\n lagran: lagran,\n Lambda: Lambda,\n lambda: lambda,\n lang: lang,\n Lang: Lang,\n langd: langd,\n langle: langle,\n lap: lap,\n Laplacetrf: Laplacetrf,\n laquo: laquo$1,\n larrb: larrb,\n larrbfs: larrbfs,\n larr: larr,\n Larr: Larr,\n lArr: lArr,\n larrfs: larrfs,\n larrhk: larrhk,\n larrlp: larrlp,\n larrpl: larrpl,\n larrsim: larrsim,\n larrtl: larrtl,\n latail: latail,\n lAtail: lAtail,\n lat: lat,\n late: late,\n lates: lates,\n lbarr: lbarr,\n lBarr: lBarr,\n lbbrk: lbbrk,\n lbrace: lbrace,\n lbrack: lbrack,\n lbrke: lbrke,\n lbrksld: lbrksld,\n lbrkslu: lbrkslu,\n Lcaron: Lcaron,\n lcaron: lcaron,\n Lcedil: Lcedil,\n lcedil: lcedil,\n lceil: lceil,\n lcub: lcub,\n Lcy: Lcy,\n lcy: lcy,\n ldca: ldca,\n ldquo: ldquo,\n ldquor: ldquor,\n ldrdhar: ldrdhar,\n ldrushar: ldrushar,\n ldsh: ldsh,\n le: le,\n lE: lE,\n LeftAngleBracket: LeftAngleBracket,\n LeftArrowBar: LeftArrowBar,\n leftarrow: leftarrow,\n LeftArrow: LeftArrow,\n Leftarrow: Leftarrow,\n LeftArrowRightArrow: LeftArrowRightArrow,\n leftarrowtail: leftarrowtail,\n LeftCeiling: LeftCeiling,\n LeftDoubleBracket: LeftDoubleBracket,\n LeftDownTeeVector: LeftDownTeeVector,\n LeftDownVectorBar: LeftDownVectorBar,\n LeftDownVector: LeftDownVector,\n LeftFloor: LeftFloor,\n leftharpoondown: leftharpoondown,\n leftharpoonup: leftharpoonup,\n leftleftarrows: leftleftarrows,\n leftrightarrow: leftrightarrow,\n LeftRightArrow: LeftRightArrow,\n Leftrightarrow: Leftrightarrow,\n leftrightarrows: leftrightarrows,\n leftrightharpoons: leftrightharpoons,\n leftrightsquigarrow: leftrightsquigarrow,\n LeftRightVector: LeftRightVector,\n LeftTeeArrow: LeftTeeArrow,\n LeftTee: LeftTee,\n LeftTeeVector: LeftTeeVector,\n leftthreetimes: leftthreetimes,\n LeftTriangleBar: LeftTriangleBar,\n LeftTriangle: LeftTriangle,\n LeftTriangleEqual: LeftTriangleEqual,\n LeftUpDownVector: LeftUpDownVector,\n LeftUpTeeVector: LeftUpTeeVector,\n LeftUpVectorBar: LeftUpVectorBar,\n LeftUpVector: LeftUpVector,\n LeftVectorBar: LeftVectorBar,\n LeftVector: LeftVector,\n lEg: lEg,\n leg: leg,\n leq: leq,\n leqq: leqq,\n leqslant: leqslant,\n lescc: lescc,\n les: les,\n lesdot: lesdot,\n lesdoto: lesdoto,\n lesdotor: lesdotor,\n lesg: lesg,\n lesges: lesges,\n lessapprox: lessapprox,\n lessdot: lessdot,\n lesseqgtr: lesseqgtr,\n lesseqqgtr: lesseqqgtr,\n LessEqualGreater: LessEqualGreater,\n LessFullEqual: LessFullEqual,\n LessGreater: LessGreater,\n lessgtr: lessgtr,\n LessLess: LessLess,\n lesssim: lesssim,\n LessSlantEqual: LessSlantEqual,\n LessTilde: LessTilde,\n lfisht: lfisht,\n lfloor: lfloor,\n Lfr: Lfr,\n lfr: lfr,\n lg: lg,\n lgE: lgE,\n lHar: lHar,\n lhard: lhard,\n lharu: lharu,\n lharul: lharul,\n lhblk: lhblk,\n LJcy: LJcy,\n ljcy: ljcy,\n llarr: llarr,\n ll: ll,\n Ll: Ll,\n llcorner: llcorner,\n Lleftarrow: Lleftarrow,\n llhard: llhard,\n lltri: lltri,\n Lmidot: Lmidot,\n lmidot: lmidot,\n lmoustache: lmoustache,\n lmoust: lmoust,\n lnap: lnap,\n lnapprox: lnapprox,\n lne: lne,\n lnE: lnE,\n lneq: lneq,\n lneqq: lneqq,\n lnsim: lnsim,\n loang: loang,\n loarr: loarr,\n lobrk: lobrk,\n longleftarrow: longleftarrow,\n LongLeftArrow: LongLeftArrow,\n Longleftarrow: Longleftarrow,\n longleftrightarrow: longleftrightarrow,\n LongLeftRightArrow: LongLeftRightArrow,\n Longleftrightarrow: Longleftrightarrow,\n longmapsto: longmapsto,\n longrightarrow: longrightarrow,\n LongRightArrow: LongRightArrow,\n Longrightarrow: Longrightarrow,\n looparrowleft: looparrowleft,\n looparrowright: looparrowright,\n lopar: lopar,\n Lopf: Lopf,\n lopf: lopf,\n loplus: loplus,\n lotimes: lotimes,\n lowast: lowast,\n lowbar: lowbar,\n LowerLeftArrow: LowerLeftArrow,\n LowerRightArrow: LowerRightArrow,\n loz: loz,\n lozenge: lozenge,\n lozf: lozf,\n lpar: lpar,\n lparlt: lparlt,\n lrarr: lrarr,\n lrcorner: lrcorner,\n lrhar: lrhar,\n lrhard: lrhard,\n lrm: lrm,\n lrtri: lrtri,\n lsaquo: lsaquo,\n lscr: lscr,\n Lscr: Lscr,\n lsh: lsh,\n Lsh: Lsh,\n lsim: lsim,\n lsime: lsime,\n lsimg: lsimg,\n lsqb: lsqb,\n lsquo: lsquo,\n lsquor: lsquor,\n Lstrok: Lstrok,\n lstrok: lstrok,\n ltcc: ltcc,\n ltcir: ltcir,\n lt: lt$2,\n LT: LT$1,\n Lt: Lt,\n ltdot: ltdot,\n lthree: lthree,\n ltimes: ltimes,\n ltlarr: ltlarr,\n ltquest: ltquest,\n ltri: ltri,\n ltrie: ltrie,\n ltrif: ltrif,\n ltrPar: ltrPar,\n lurdshar: lurdshar,\n luruhar: luruhar,\n lvertneqq: lvertneqq,\n lvnE: lvnE,\n macr: macr$1,\n male: male,\n malt: malt,\n maltese: maltese,\n \"Map\": \"⤅\",\n map: map,\n mapsto: mapsto,\n mapstodown: mapstodown,\n mapstoleft: mapstoleft,\n mapstoup: mapstoup,\n marker: marker,\n mcomma: mcomma,\n Mcy: Mcy,\n mcy: mcy,\n mdash: mdash,\n mDDot: mDDot,\n measuredangle: measuredangle,\n MediumSpace: MediumSpace,\n Mellintrf: Mellintrf,\n Mfr: Mfr,\n mfr: mfr,\n mho: mho,\n micro: micro$1,\n midast: midast,\n midcir: midcir,\n mid: mid,\n middot: middot$1,\n minusb: minusb,\n minus: minus,\n minusd: minusd,\n minusdu: minusdu,\n MinusPlus: MinusPlus,\n mlcp: mlcp,\n mldr: mldr,\n mnplus: mnplus,\n models: models,\n Mopf: Mopf,\n mopf: mopf,\n mp: mp,\n mscr: mscr,\n Mscr: Mscr,\n mstpos: mstpos,\n Mu: Mu,\n mu: mu,\n multimap: multimap,\n mumap: mumap,\n nabla: nabla,\n Nacute: Nacute,\n nacute: nacute,\n nang: nang,\n nap: nap,\n napE: napE,\n napid: napid,\n napos: napos,\n napprox: napprox,\n natural: natural,\n naturals: naturals,\n natur: natur,\n nbsp: nbsp$1,\n nbump: nbump,\n nbumpe: nbumpe,\n ncap: ncap,\n Ncaron: Ncaron,\n ncaron: ncaron,\n Ncedil: Ncedil,\n ncedil: ncedil,\n ncong: ncong,\n ncongdot: ncongdot,\n ncup: ncup,\n Ncy: Ncy,\n ncy: ncy,\n ndash: ndash,\n nearhk: nearhk,\n nearr: nearr,\n neArr: neArr,\n nearrow: nearrow,\n ne: ne,\n nedot: nedot,\n NegativeMediumSpace: NegativeMediumSpace,\n NegativeThickSpace: NegativeThickSpace,\n NegativeThinSpace: NegativeThinSpace,\n NegativeVeryThinSpace: NegativeVeryThinSpace,\n nequiv: nequiv,\n nesear: nesear,\n nesim: nesim,\n NestedGreaterGreater: NestedGreaterGreater,\n NestedLessLess: NestedLessLess,\n NewLine: NewLine,\n nexist: nexist,\n nexists: nexists,\n Nfr: Nfr,\n nfr: nfr,\n ngE: ngE,\n nge: nge,\n ngeq: ngeq,\n ngeqq: ngeqq,\n ngeqslant: ngeqslant,\n nges: nges,\n nGg: nGg,\n ngsim: ngsim,\n nGt: nGt,\n ngt: ngt,\n ngtr: ngtr,\n nGtv: nGtv,\n nharr: nharr,\n nhArr: nhArr,\n nhpar: nhpar,\n ni: ni,\n nis: nis,\n nisd: nisd,\n niv: niv,\n NJcy: NJcy,\n njcy: njcy,\n nlarr: nlarr,\n nlArr: nlArr,\n nldr: nldr,\n nlE: nlE,\n nle: nle,\n nleftarrow: nleftarrow,\n nLeftarrow: nLeftarrow,\n nleftrightarrow: nleftrightarrow,\n nLeftrightarrow: nLeftrightarrow,\n nleq: nleq,\n nleqq: nleqq,\n nleqslant: nleqslant,\n nles: nles,\n nless: nless,\n nLl: nLl,\n nlsim: nlsim,\n nLt: nLt,\n nlt: nlt,\n nltri: nltri,\n nltrie: nltrie,\n nLtv: nLtv,\n nmid: nmid,\n NoBreak: NoBreak,\n NonBreakingSpace: NonBreakingSpace,\n nopf: nopf,\n Nopf: Nopf,\n Not: Not,\n not: not$1,\n NotCongruent: NotCongruent,\n NotCupCap: NotCupCap,\n NotDoubleVerticalBar: NotDoubleVerticalBar,\n NotElement: NotElement,\n NotEqual: NotEqual,\n NotEqualTilde: NotEqualTilde,\n NotExists: NotExists,\n NotGreater: NotGreater,\n NotGreaterEqual: NotGreaterEqual,\n NotGreaterFullEqual: NotGreaterFullEqual,\n NotGreaterGreater: NotGreaterGreater,\n NotGreaterLess: NotGreaterLess,\n NotGreaterSlantEqual: NotGreaterSlantEqual,\n NotGreaterTilde: NotGreaterTilde,\n NotHumpDownHump: NotHumpDownHump,\n NotHumpEqual: NotHumpEqual,\n notin: notin,\n notindot: notindot,\n notinE: notinE,\n notinva: notinva,\n notinvb: notinvb,\n notinvc: notinvc,\n NotLeftTriangleBar: NotLeftTriangleBar,\n NotLeftTriangle: NotLeftTriangle,\n NotLeftTriangleEqual: NotLeftTriangleEqual,\n NotLess: NotLess,\n NotLessEqual: NotLessEqual,\n NotLessGreater: NotLessGreater,\n NotLessLess: NotLessLess,\n NotLessSlantEqual: NotLessSlantEqual,\n NotLessTilde: NotLessTilde,\n NotNestedGreaterGreater: NotNestedGreaterGreater,\n NotNestedLessLess: NotNestedLessLess,\n notni: notni,\n notniva: notniva,\n notnivb: notnivb,\n notnivc: notnivc,\n NotPrecedes: NotPrecedes,\n NotPrecedesEqual: NotPrecedesEqual,\n NotPrecedesSlantEqual: NotPrecedesSlantEqual,\n NotReverseElement: NotReverseElement,\n NotRightTriangleBar: NotRightTriangleBar,\n NotRightTriangle: NotRightTriangle,\n NotRightTriangleEqual: NotRightTriangleEqual,\n NotSquareSubset: NotSquareSubset,\n NotSquareSubsetEqual: NotSquareSubsetEqual,\n NotSquareSuperset: NotSquareSuperset,\n NotSquareSupersetEqual: NotSquareSupersetEqual,\n NotSubset: NotSubset,\n NotSubsetEqual: NotSubsetEqual,\n NotSucceeds: NotSucceeds,\n NotSucceedsEqual: NotSucceedsEqual,\n NotSucceedsSlantEqual: NotSucceedsSlantEqual,\n NotSucceedsTilde: NotSucceedsTilde,\n NotSuperset: NotSuperset,\n NotSupersetEqual: NotSupersetEqual,\n NotTilde: NotTilde,\n NotTildeEqual: NotTildeEqual,\n NotTildeFullEqual: NotTildeFullEqual,\n NotTildeTilde: NotTildeTilde,\n NotVerticalBar: NotVerticalBar,\n nparallel: nparallel,\n npar: npar,\n nparsl: nparsl,\n npart: npart,\n npolint: npolint,\n npr: npr,\n nprcue: nprcue,\n nprec: nprec,\n npreceq: npreceq,\n npre: npre,\n nrarrc: nrarrc,\n nrarr: nrarr,\n nrArr: nrArr,\n nrarrw: nrarrw,\n nrightarrow: nrightarrow,\n nRightarrow: nRightarrow,\n nrtri: nrtri,\n nrtrie: nrtrie,\n nsc: nsc,\n nsccue: nsccue,\n nsce: nsce,\n Nscr: Nscr,\n nscr: nscr,\n nshortmid: nshortmid,\n nshortparallel: nshortparallel,\n nsim: nsim,\n nsime: nsime,\n nsimeq: nsimeq,\n nsmid: nsmid,\n nspar: nspar,\n nsqsube: nsqsube,\n nsqsupe: nsqsupe,\n nsub: nsub,\n nsubE: nsubE,\n nsube: nsube,\n nsubset: nsubset,\n nsubseteq: nsubseteq,\n nsubseteqq: nsubseteqq,\n nsucc: nsucc,\n nsucceq: nsucceq,\n nsup: nsup,\n nsupE: nsupE,\n nsupe: nsupe,\n nsupset: nsupset,\n nsupseteq: nsupseteq,\n nsupseteqq: nsupseteqq,\n ntgl: ntgl,\n Ntilde: Ntilde$1,\n ntilde: ntilde$1,\n ntlg: ntlg,\n ntriangleleft: ntriangleleft,\n ntrianglelefteq: ntrianglelefteq,\n ntriangleright: ntriangleright,\n ntrianglerighteq: ntrianglerighteq,\n Nu: Nu,\n nu: nu,\n num: num,\n numero: numero,\n numsp: numsp,\n nvap: nvap,\n nvdash: nvdash,\n nvDash: nvDash,\n nVdash: nVdash,\n nVDash: nVDash,\n nvge: nvge,\n nvgt: nvgt,\n nvHarr: nvHarr,\n nvinfin: nvinfin,\n nvlArr: nvlArr,\n nvle: nvle,\n nvlt: nvlt,\n nvltrie: nvltrie,\n nvrArr: nvrArr,\n nvrtrie: nvrtrie,\n nvsim: nvsim,\n nwarhk: nwarhk,\n nwarr: nwarr,\n nwArr: nwArr,\n nwarrow: nwarrow,\n nwnear: nwnear,\n Oacute: Oacute$1,\n oacute: oacute$1,\n oast: oast,\n Ocirc: Ocirc$1,\n ocirc: ocirc$1,\n ocir: ocir,\n Ocy: Ocy,\n ocy: ocy,\n odash: odash,\n Odblac: Odblac,\n odblac: odblac,\n odiv: odiv,\n odot: odot,\n odsold: odsold,\n OElig: OElig,\n oelig: oelig,\n ofcir: ofcir,\n Ofr: Ofr,\n ofr: ofr,\n ogon: ogon,\n Ograve: Ograve$1,\n ograve: ograve$1,\n ogt: ogt,\n ohbar: ohbar,\n ohm: ohm,\n oint: oint,\n olarr: olarr,\n olcir: olcir,\n olcross: olcross,\n oline: oline,\n olt: olt,\n Omacr: Omacr,\n omacr: omacr,\n Omega: Omega,\n omega: omega,\n Omicron: Omicron,\n omicron: omicron,\n omid: omid,\n ominus: ominus,\n Oopf: Oopf,\n oopf: oopf,\n opar: opar,\n OpenCurlyDoubleQuote: OpenCurlyDoubleQuote,\n OpenCurlyQuote: OpenCurlyQuote,\n operp: operp,\n oplus: oplus,\n orarr: orarr,\n Or: Or,\n or: or,\n ord: ord,\n order: order,\n orderof: orderof,\n ordf: ordf$1,\n ordm: ordm$1,\n origof: origof,\n oror: oror,\n orslope: orslope,\n orv: orv,\n oS: oS,\n Oscr: Oscr,\n oscr: oscr,\n Oslash: Oslash$1,\n oslash: oslash$1,\n osol: osol,\n Otilde: Otilde$1,\n otilde: otilde$1,\n otimesas: otimesas,\n Otimes: Otimes,\n otimes: otimes,\n Ouml: Ouml$1,\n ouml: ouml$1,\n ovbar: ovbar,\n OverBar: OverBar,\n OverBrace: OverBrace,\n OverBracket: OverBracket,\n OverParenthesis: OverParenthesis,\n para: para$1,\n parallel: parallel,\n par: par,\n parsim: parsim,\n parsl: parsl,\n part: part,\n PartialD: PartialD,\n Pcy: Pcy,\n pcy: pcy,\n percnt: percnt,\n period: period,\n permil: permil,\n perp: perp,\n pertenk: pertenk,\n Pfr: Pfr,\n pfr: pfr,\n Phi: Phi,\n phi: phi,\n phiv: phiv,\n phmmat: phmmat,\n phone: phone,\n Pi: Pi,\n pi: pi,\n pitchfork: pitchfork,\n piv: piv,\n planck: planck,\n planckh: planckh,\n plankv: plankv,\n plusacir: plusacir,\n plusb: plusb,\n pluscir: pluscir,\n plus: plus,\n plusdo: plusdo,\n plusdu: plusdu,\n pluse: pluse,\n PlusMinus: PlusMinus,\n plusmn: plusmn$1,\n plussim: plussim,\n plustwo: plustwo,\n pm: pm,\n Poincareplane: Poincareplane,\n pointint: pointint,\n popf: popf,\n Popf: Popf,\n pound: pound$1,\n prap: prap,\n Pr: Pr,\n pr: pr,\n prcue: prcue,\n precapprox: precapprox,\n prec: prec,\n preccurlyeq: preccurlyeq,\n Precedes: Precedes,\n PrecedesEqual: PrecedesEqual,\n PrecedesSlantEqual: PrecedesSlantEqual,\n PrecedesTilde: PrecedesTilde,\n preceq: preceq,\n precnapprox: precnapprox,\n precneqq: precneqq,\n precnsim: precnsim,\n pre: pre,\n prE: prE,\n precsim: precsim,\n prime: prime,\n Prime: Prime,\n primes: primes,\n prnap: prnap,\n prnE: prnE,\n prnsim: prnsim,\n prod: prod,\n Product: Product,\n profalar: profalar,\n profline: profline,\n profsurf: profsurf,\n prop: prop,\n Proportional: Proportional,\n Proportion: Proportion,\n propto: propto,\n prsim: prsim,\n prurel: prurel,\n Pscr: Pscr,\n pscr: pscr,\n Psi: Psi,\n psi: psi,\n puncsp: puncsp,\n Qfr: Qfr,\n qfr: qfr,\n qint: qint,\n qopf: qopf,\n Qopf: Qopf,\n qprime: qprime,\n Qscr: Qscr,\n qscr: qscr,\n quaternions: quaternions,\n quatint: quatint,\n quest: quest,\n questeq: questeq,\n quot: quot$2,\n QUOT: QUOT$1,\n rAarr: rAarr,\n race: race,\n Racute: Racute,\n racute: racute,\n radic: radic,\n raemptyv: raemptyv,\n rang: rang,\n Rang: Rang,\n rangd: rangd,\n range: range,\n rangle: rangle,\n raquo: raquo$1,\n rarrap: rarrap,\n rarrb: rarrb,\n rarrbfs: rarrbfs,\n rarrc: rarrc,\n rarr: rarr,\n Rarr: Rarr,\n rArr: rArr,\n rarrfs: rarrfs,\n rarrhk: rarrhk,\n rarrlp: rarrlp,\n rarrpl: rarrpl,\n rarrsim: rarrsim,\n Rarrtl: Rarrtl,\n rarrtl: rarrtl,\n rarrw: rarrw,\n ratail: ratail,\n rAtail: rAtail,\n ratio: ratio,\n rationals: rationals,\n rbarr: rbarr,\n rBarr: rBarr,\n RBarr: RBarr,\n rbbrk: rbbrk,\n rbrace: rbrace,\n rbrack: rbrack,\n rbrke: rbrke,\n rbrksld: rbrksld,\n rbrkslu: rbrkslu,\n Rcaron: Rcaron,\n rcaron: rcaron,\n Rcedil: Rcedil,\n rcedil: rcedil,\n rceil: rceil,\n rcub: rcub,\n Rcy: Rcy,\n rcy: rcy,\n rdca: rdca,\n rdldhar: rdldhar,\n rdquo: rdquo,\n rdquor: rdquor,\n rdsh: rdsh,\n real: real,\n realine: realine,\n realpart: realpart,\n reals: reals,\n Re: Re,\n rect: rect,\n reg: reg$1,\n REG: REG$1,\n ReverseElement: ReverseElement,\n ReverseEquilibrium: ReverseEquilibrium,\n ReverseUpEquilibrium: ReverseUpEquilibrium,\n rfisht: rfisht,\n rfloor: rfloor,\n rfr: rfr,\n Rfr: Rfr,\n rHar: rHar,\n rhard: rhard,\n rharu: rharu,\n rharul: rharul,\n Rho: Rho,\n rho: rho,\n rhov: rhov,\n RightAngleBracket: RightAngleBracket,\n RightArrowBar: RightArrowBar,\n rightarrow: rightarrow,\n RightArrow: RightArrow,\n Rightarrow: Rightarrow,\n RightArrowLeftArrow: RightArrowLeftArrow,\n rightarrowtail: rightarrowtail,\n RightCeiling: RightCeiling,\n RightDoubleBracket: RightDoubleBracket,\n RightDownTeeVector: RightDownTeeVector,\n RightDownVectorBar: RightDownVectorBar,\n RightDownVector: RightDownVector,\n RightFloor: RightFloor,\n rightharpoondown: rightharpoondown,\n rightharpoonup: rightharpoonup,\n rightleftarrows: rightleftarrows,\n rightleftharpoons: rightleftharpoons,\n rightrightarrows: rightrightarrows,\n rightsquigarrow: rightsquigarrow,\n RightTeeArrow: RightTeeArrow,\n RightTee: RightTee,\n RightTeeVector: RightTeeVector,\n rightthreetimes: rightthreetimes,\n RightTriangleBar: RightTriangleBar,\n RightTriangle: RightTriangle,\n RightTriangleEqual: RightTriangleEqual,\n RightUpDownVector: RightUpDownVector,\n RightUpTeeVector: RightUpTeeVector,\n RightUpVectorBar: RightUpVectorBar,\n RightUpVector: RightUpVector,\n RightVectorBar: RightVectorBar,\n RightVector: RightVector,\n ring: ring,\n risingdotseq: risingdotseq,\n rlarr: rlarr,\n rlhar: rlhar,\n rlm: rlm,\n rmoustache: rmoustache,\n rmoust: rmoust,\n rnmid: rnmid,\n roang: roang,\n roarr: roarr,\n robrk: robrk,\n ropar: ropar,\n ropf: ropf,\n Ropf: Ropf,\n roplus: roplus,\n rotimes: rotimes,\n RoundImplies: RoundImplies,\n rpar: rpar,\n rpargt: rpargt,\n rppolint: rppolint,\n rrarr: rrarr,\n Rrightarrow: Rrightarrow,\n rsaquo: rsaquo,\n rscr: rscr,\n Rscr: Rscr,\n rsh: rsh,\n Rsh: Rsh,\n rsqb: rsqb,\n rsquo: rsquo,\n rsquor: rsquor,\n rthree: rthree,\n rtimes: rtimes,\n rtri: rtri,\n rtrie: rtrie,\n rtrif: rtrif,\n rtriltri: rtriltri,\n RuleDelayed: RuleDelayed,\n ruluhar: ruluhar,\n rx: rx,\n Sacute: Sacute,\n sacute: sacute,\n sbquo: sbquo,\n scap: scap,\n Scaron: Scaron,\n scaron: scaron,\n Sc: Sc,\n sc: sc,\n sccue: sccue,\n sce: sce,\n scE: scE,\n Scedil: Scedil,\n scedil: scedil,\n Scirc: Scirc,\n scirc: scirc,\n scnap: scnap,\n scnE: scnE,\n scnsim: scnsim,\n scpolint: scpolint,\n scsim: scsim,\n Scy: Scy,\n scy: scy,\n sdotb: sdotb,\n sdot: sdot,\n sdote: sdote,\n searhk: searhk,\n searr: searr,\n seArr: seArr,\n searrow: searrow,\n sect: sect$1,\n semi: semi,\n seswar: seswar,\n setminus: setminus,\n setmn: setmn,\n sext: sext,\n Sfr: Sfr,\n sfr: sfr,\n sfrown: sfrown,\n sharp: sharp,\n SHCHcy: SHCHcy,\n shchcy: shchcy,\n SHcy: SHcy,\n shcy: shcy,\n ShortDownArrow: ShortDownArrow,\n ShortLeftArrow: ShortLeftArrow,\n shortmid: shortmid,\n shortparallel: shortparallel,\n ShortRightArrow: ShortRightArrow,\n ShortUpArrow: ShortUpArrow,\n shy: shy$1,\n Sigma: Sigma,\n sigma: sigma,\n sigmaf: sigmaf,\n sigmav: sigmav,\n sim: sim,\n simdot: simdot,\n sime: sime,\n simeq: simeq,\n simg: simg,\n simgE: simgE,\n siml: siml,\n simlE: simlE,\n simne: simne,\n simplus: simplus,\n simrarr: simrarr,\n slarr: slarr,\n SmallCircle: SmallCircle,\n smallsetminus: smallsetminus,\n smashp: smashp,\n smeparsl: smeparsl,\n smid: smid,\n smile: smile,\n smt: smt,\n smte: smte,\n smtes: smtes,\n SOFTcy: SOFTcy,\n softcy: softcy,\n solbar: solbar,\n solb: solb,\n sol: sol,\n Sopf: Sopf,\n sopf: sopf,\n spades: spades,\n spadesuit: spadesuit,\n spar: spar,\n sqcap: sqcap,\n sqcaps: sqcaps,\n sqcup: sqcup,\n sqcups: sqcups,\n Sqrt: Sqrt,\n sqsub: sqsub,\n sqsube: sqsube,\n sqsubset: sqsubset,\n sqsubseteq: sqsubseteq,\n sqsup: sqsup,\n sqsupe: sqsupe,\n sqsupset: sqsupset,\n sqsupseteq: sqsupseteq,\n square: square,\n Square: Square,\n SquareIntersection: SquareIntersection,\n SquareSubset: SquareSubset,\n SquareSubsetEqual: SquareSubsetEqual,\n SquareSuperset: SquareSuperset,\n SquareSupersetEqual: SquareSupersetEqual,\n SquareUnion: SquareUnion,\n squarf: squarf,\n squ: squ,\n squf: squf,\n srarr: srarr,\n Sscr: Sscr,\n sscr: sscr,\n ssetmn: ssetmn,\n ssmile: ssmile,\n sstarf: sstarf,\n Star: Star,\n star: star,\n starf: starf,\n straightepsilon: straightepsilon,\n straightphi: straightphi,\n strns: strns,\n sub: sub,\n Sub: Sub,\n subdot: subdot,\n subE: subE,\n sube: sube,\n subedot: subedot,\n submult: submult,\n subnE: subnE,\n subne: subne,\n subplus: subplus,\n subrarr: subrarr,\n subset: subset,\n Subset: Subset,\n subseteq: subseteq,\n subseteqq: subseteqq,\n SubsetEqual: SubsetEqual,\n subsetneq: subsetneq,\n subsetneqq: subsetneqq,\n subsim: subsim,\n subsub: subsub,\n subsup: subsup,\n succapprox: succapprox,\n succ: succ,\n succcurlyeq: succcurlyeq,\n Succeeds: Succeeds,\n SucceedsEqual: SucceedsEqual,\n SucceedsSlantEqual: SucceedsSlantEqual,\n SucceedsTilde: SucceedsTilde,\n succeq: succeq,\n succnapprox: succnapprox,\n succneqq: succneqq,\n succnsim: succnsim,\n succsim: succsim,\n SuchThat: SuchThat,\n sum: sum,\n Sum: Sum,\n sung: sung,\n sup1: sup1$1,\n sup2: sup2$1,\n sup3: sup3$1,\n sup: sup,\n Sup: Sup,\n supdot: supdot,\n supdsub: supdsub,\n supE: supE,\n supe: supe,\n supedot: supedot,\n Superset: Superset,\n SupersetEqual: SupersetEqual,\n suphsol: suphsol,\n suphsub: suphsub,\n suplarr: suplarr,\n supmult: supmult,\n supnE: supnE,\n supne: supne,\n supplus: supplus,\n supset: supset,\n Supset: Supset,\n supseteq: supseteq,\n supseteqq: supseteqq,\n supsetneq: supsetneq,\n supsetneqq: supsetneqq,\n supsim: supsim,\n supsub: supsub,\n supsup: supsup,\n swarhk: swarhk,\n swarr: swarr,\n swArr: swArr,\n swarrow: swarrow,\n swnwar: swnwar,\n szlig: szlig$1,\n Tab: Tab,\n target: target,\n Tau: Tau,\n tau: tau,\n tbrk: tbrk,\n Tcaron: Tcaron,\n tcaron: tcaron,\n Tcedil: Tcedil,\n tcedil: tcedil,\n Tcy: Tcy,\n tcy: tcy,\n tdot: tdot,\n telrec: telrec,\n Tfr: Tfr,\n tfr: tfr,\n there4: there4,\n therefore: therefore,\n Therefore: Therefore,\n Theta: Theta,\n theta: theta,\n thetasym: thetasym,\n thetav: thetav,\n thickapprox: thickapprox,\n thicksim: thicksim,\n ThickSpace: ThickSpace,\n ThinSpace: ThinSpace,\n thinsp: thinsp,\n thkap: thkap,\n thksim: thksim,\n THORN: THORN$1,\n thorn: thorn$1,\n tilde: tilde,\n Tilde: Tilde,\n TildeEqual: TildeEqual,\n TildeFullEqual: TildeFullEqual,\n TildeTilde: TildeTilde,\n timesbar: timesbar,\n timesb: timesb,\n times: times$1,\n timesd: timesd,\n tint: tint,\n toea: toea,\n topbot: topbot,\n topcir: topcir,\n top: esm_top,\n Topf: Topf,\n topf: topf,\n topfork: topfork,\n tosa: tosa,\n tprime: tprime,\n trade: trade,\n TRADE: TRADE,\n triangle: triangle,\n triangledown: triangledown,\n triangleleft: triangleleft,\n trianglelefteq: trianglelefteq,\n triangleq: triangleq,\n triangleright: triangleright,\n trianglerighteq: trianglerighteq,\n tridot: tridot,\n trie: trie,\n triminus: triminus,\n TripleDot: TripleDot,\n triplus: triplus,\n trisb: trisb,\n tritime: tritime,\n trpezium: trpezium,\n Tscr: Tscr,\n tscr: tscr,\n TScy: TScy,\n tscy: tscy,\n TSHcy: TSHcy,\n tshcy: tshcy,\n Tstrok: Tstrok,\n tstrok: tstrok,\n twixt: twixt,\n twoheadleftarrow: twoheadleftarrow,\n twoheadrightarrow: twoheadrightarrow,\n Uacute: Uacute$1,\n uacute: uacute$1,\n uarr: uarr,\n Uarr: Uarr,\n uArr: uArr,\n Uarrocir: Uarrocir,\n Ubrcy: Ubrcy,\n ubrcy: ubrcy,\n Ubreve: Ubreve,\n ubreve: ubreve,\n Ucirc: Ucirc$1,\n ucirc: ucirc$1,\n Ucy: Ucy,\n ucy: ucy,\n udarr: udarr,\n Udblac: Udblac,\n udblac: udblac,\n udhar: udhar,\n ufisht: ufisht,\n Ufr: Ufr,\n ufr: ufr,\n Ugrave: Ugrave$1,\n ugrave: ugrave$1,\n uHar: uHar,\n uharl: uharl,\n uharr: uharr,\n uhblk: uhblk,\n ulcorn: ulcorn,\n ulcorner: ulcorner,\n ulcrop: ulcrop,\n ultri: ultri,\n Umacr: Umacr,\n umacr: umacr,\n uml: uml$1,\n UnderBar: UnderBar,\n UnderBrace: UnderBrace,\n UnderBracket: UnderBracket,\n UnderParenthesis: UnderParenthesis,\n Union: Union,\n UnionPlus: UnionPlus,\n Uogon: Uogon,\n uogon: uogon,\n Uopf: Uopf,\n uopf: uopf,\n UpArrowBar: UpArrowBar,\n uparrow: uparrow,\n UpArrow: UpArrow,\n Uparrow: Uparrow,\n UpArrowDownArrow: UpArrowDownArrow,\n updownarrow: updownarrow,\n UpDownArrow: UpDownArrow,\n Updownarrow: Updownarrow,\n UpEquilibrium: UpEquilibrium,\n upharpoonleft: upharpoonleft,\n upharpoonright: upharpoonright,\n uplus: uplus,\n UpperLeftArrow: UpperLeftArrow,\n UpperRightArrow: UpperRightArrow,\n upsi: upsi,\n Upsi: Upsi,\n upsih: upsih,\n Upsilon: Upsilon,\n upsilon: upsilon,\n UpTeeArrow: UpTeeArrow,\n UpTee: UpTee,\n upuparrows: upuparrows,\n urcorn: urcorn,\n urcorner: urcorner,\n urcrop: urcrop,\n Uring: Uring,\n uring: uring,\n urtri: urtri,\n Uscr: Uscr,\n uscr: uscr,\n utdot: utdot,\n Utilde: Utilde,\n utilde: utilde,\n utri: utri,\n utrif: utrif,\n uuarr: uuarr,\n Uuml: Uuml$1,\n uuml: uuml$1,\n uwangle: uwangle,\n vangrt: vangrt,\n varepsilon: varepsilon,\n varkappa: varkappa,\n varnothing: varnothing,\n varphi: varphi,\n varpi: varpi,\n varpropto: varpropto,\n varr: varr,\n vArr: vArr,\n varrho: varrho,\n varsigma: varsigma,\n varsubsetneq: varsubsetneq,\n varsubsetneqq: varsubsetneqq,\n varsupsetneq: varsupsetneq,\n varsupsetneqq: varsupsetneqq,\n vartheta: vartheta,\n vartriangleleft: vartriangleleft,\n vartriangleright: vartriangleright,\n vBar: vBar,\n Vbar: Vbar,\n vBarv: vBarv,\n Vcy: Vcy,\n vcy: vcy,\n vdash: vdash,\n vDash: vDash,\n Vdash: Vdash,\n VDash: VDash,\n Vdashl: Vdashl,\n veebar: veebar,\n vee: vee,\n Vee: Vee,\n veeeq: veeeq,\n vellip: vellip,\n verbar: verbar,\n Verbar: Verbar,\n vert: vert,\n Vert: Vert,\n VerticalBar: VerticalBar,\n VerticalLine: VerticalLine,\n VerticalSeparator: VerticalSeparator,\n VerticalTilde: VerticalTilde,\n VeryThinSpace: VeryThinSpace,\n Vfr: Vfr,\n vfr: vfr,\n vltri: vltri,\n vnsub: vnsub,\n vnsup: vnsup,\n Vopf: Vopf,\n vopf: vopf,\n vprop: vprop,\n vrtri: vrtri,\n Vscr: Vscr,\n vscr: vscr,\n vsubnE: vsubnE,\n vsubne: vsubne,\n vsupnE: vsupnE,\n vsupne: vsupne,\n Vvdash: Vvdash,\n vzigzag: vzigzag,\n Wcirc: Wcirc,\n wcirc: wcirc,\n wedbar: wedbar,\n wedge: wedge,\n Wedge: Wedge,\n wedgeq: wedgeq,\n weierp: weierp,\n Wfr: Wfr,\n wfr: wfr,\n Wopf: Wopf,\n wopf: wopf,\n wp: wp,\n wr: wr,\n wreath: wreath,\n Wscr: Wscr,\n wscr: wscr,\n xcap: xcap,\n xcirc: xcirc,\n xcup: xcup,\n xdtri: xdtri,\n Xfr: Xfr,\n xfr: xfr,\n xharr: xharr,\n xhArr: xhArr,\n Xi: Xi,\n xi: xi,\n xlarr: xlarr,\n xlArr: xlArr,\n xmap: xmap,\n xnis: xnis,\n xodot: xodot,\n Xopf: Xopf,\n xopf: xopf,\n xoplus: xoplus,\n xotime: xotime,\n xrarr: xrarr,\n xrArr: xrArr,\n Xscr: Xscr,\n xscr: xscr,\n xsqcup: xsqcup,\n xuplus: xuplus,\n xutri: xutri,\n xvee: xvee,\n xwedge: xwedge,\n Yacute: Yacute$1,\n yacute: yacute$1,\n YAcy: YAcy,\n yacy: yacy,\n Ycirc: Ycirc,\n ycirc: ycirc,\n Ycy: Ycy,\n ycy: ycy,\n yen: yen$1,\n Yfr: Yfr,\n yfr: yfr,\n YIcy: YIcy,\n yicy: yicy,\n Yopf: Yopf,\n yopf: yopf,\n Yscr: Yscr,\n yscr: yscr,\n YUcy: YUcy,\n yucy: yucy,\n yuml: yuml$1,\n Yuml: Yuml,\n Zacute: Zacute,\n zacute: zacute,\n Zcaron: Zcaron,\n zcaron: zcaron,\n Zcy: Zcy,\n zcy: zcy,\n Zdot: Zdot,\n zdot: zdot,\n zeetrf: zeetrf,\n ZeroWidthSpace: ZeroWidthSpace,\n Zeta: Zeta,\n zeta: zeta,\n zfr: zfr,\n Zfr: Zfr,\n ZHcy: ZHcy,\n zhcy: zhcy,\n zigrarr: zigrarr,\n zopf: zopf,\n Zopf: Zopf,\n Zscr: Zscr,\n zscr: zscr,\n zwj: zwj,\n zwnj: zwnj\n};\nvar Aacute = \"Á\";\nvar aacute = \"á\";\nvar Acirc = \"Â\";\nvar acirc = \"â\";\nvar acute = \"´\";\nvar AElig = \"Æ\";\nvar aelig = \"æ\";\nvar Agrave = \"À\";\nvar agrave = \"à\";\nvar amp$1 = \"&\";\nvar AMP = \"&\";\nvar Aring = \"Å\";\nvar aring = \"å\";\nvar Atilde = \"Ã\";\nvar atilde = \"ã\";\nvar Auml = \"Ä\";\nvar auml = \"ä\";\nvar brvbar = \"¦\";\nvar Ccedil = \"Ç\";\nvar ccedil = \"ç\";\nvar cedil = \"¸\";\nvar cent = \"¢\";\nvar copy = \"©\";\nvar COPY = \"©\";\nvar curren = \"¤\";\nvar deg = \"°\";\nvar divide = \"÷\";\nvar Eacute = \"É\";\nvar eacute = \"é\";\nvar Ecirc = \"Ê\";\nvar ecirc = \"ê\";\nvar Egrave = \"È\";\nvar egrave = \"è\";\nvar ETH = \"Ð\";\nvar eth = \"ð\";\nvar Euml = \"Ë\";\nvar euml = \"ë\";\nvar frac12 = \"½\";\nvar frac14 = \"¼\";\nvar frac34 = \"¾\";\nvar gt$1 = \">\";\nvar GT = \">\";\nvar Iacute = \"Í\";\nvar iacute = \"í\";\nvar Icirc = \"Î\";\nvar icirc = \"î\";\nvar iexcl = \"¡\";\nvar Igrave = \"Ì\";\nvar igrave = \"ì\";\nvar iquest = \"¿\";\nvar Iuml = \"Ï\";\nvar iuml = \"ï\";\nvar laquo = \"«\";\nvar lt$1 = \"<\";\nvar LT = \"<\";\nvar macr = \"¯\";\nvar micro = \"µ\";\nvar middot = \"·\";\nvar nbsp = \" \";\nvar not = \"¬\";\nvar Ntilde = \"Ñ\";\nvar ntilde = \"ñ\";\nvar Oacute = \"Ó\";\nvar oacute = \"ó\";\nvar Ocirc = \"Ô\";\nvar ocirc = \"ô\";\nvar Ograve = \"Ò\";\nvar ograve = \"ò\";\nvar ordf = \"ª\";\nvar ordm = \"º\";\nvar Oslash = \"Ø\";\nvar oslash = \"ø\";\nvar Otilde = \"Õ\";\nvar otilde = \"õ\";\nvar Ouml = \"Ö\";\nvar ouml = \"ö\";\nvar para = \"¶\";\nvar plusmn = \"±\";\nvar pound = \"£\";\nvar quot$1 = \"\\\"\";\nvar QUOT = \"\\\"\";\nvar raquo = \"»\";\nvar reg = \"®\";\nvar REG = \"®\";\nvar sect = \"§\";\nvar shy = \"­\";\nvar sup1 = \"¹\";\nvar sup2 = \"²\";\nvar sup3 = \"³\";\nvar szlig = \"ß\";\nvar THORN = \"Þ\";\nvar thorn = \"þ\";\nvar times = \"×\";\nvar Uacute = \"Ú\";\nvar uacute = \"ú\";\nvar Ucirc = \"Û\";\nvar ucirc = \"û\";\nvar Ugrave = \"Ù\";\nvar ugrave = \"ù\";\nvar uml = \"¨\";\nvar Uuml = \"Ü\";\nvar uuml = \"ü\";\nvar Yacute = \"Ý\";\nvar yacute = \"ý\";\nvar yen = \"¥\";\nvar yuml = \"ÿ\";\nvar require$$1 = {\n Aacute: Aacute,\n aacute: aacute,\n Acirc: Acirc,\n acirc: acirc,\n acute: acute,\n AElig: AElig,\n aelig: aelig,\n Agrave: Agrave,\n agrave: agrave,\n amp: amp$1,\n AMP: AMP,\n Aring: Aring,\n aring: aring,\n Atilde: Atilde,\n atilde: atilde,\n Auml: Auml,\n auml: auml,\n brvbar: brvbar,\n Ccedil: Ccedil,\n ccedil: ccedil,\n cedil: cedil,\n cent: cent,\n copy: copy,\n COPY: COPY,\n curren: curren,\n deg: deg,\n divide: divide,\n Eacute: Eacute,\n eacute: eacute,\n Ecirc: Ecirc,\n ecirc: ecirc,\n Egrave: Egrave,\n egrave: egrave,\n ETH: ETH,\n eth: eth,\n Euml: Euml,\n euml: euml,\n frac12: frac12,\n frac14: frac14,\n frac34: frac34,\n gt: gt$1,\n GT: GT,\n Iacute: Iacute,\n iacute: iacute,\n Icirc: Icirc,\n icirc: icirc,\n iexcl: iexcl,\n Igrave: Igrave,\n igrave: igrave,\n iquest: iquest,\n Iuml: Iuml,\n iuml: iuml,\n laquo: laquo,\n lt: lt$1,\n LT: LT,\n macr: macr,\n micro: micro,\n middot: middot,\n nbsp: nbsp,\n not: not,\n Ntilde: Ntilde,\n ntilde: ntilde,\n Oacute: Oacute,\n oacute: oacute,\n Ocirc: Ocirc,\n ocirc: ocirc,\n Ograve: Ograve,\n ograve: ograve,\n ordf: ordf,\n ordm: ordm,\n Oslash: Oslash,\n oslash: oslash,\n Otilde: Otilde,\n otilde: otilde,\n Ouml: Ouml,\n ouml: ouml,\n para: para,\n plusmn: plusmn,\n pound: pound,\n quot: quot$1,\n QUOT: QUOT,\n raquo: raquo,\n reg: reg,\n REG: REG,\n sect: sect,\n shy: shy,\n sup1: sup1,\n sup2: sup2,\n sup3: sup3,\n szlig: szlig,\n THORN: THORN,\n thorn: thorn,\n times: times,\n Uacute: Uacute,\n uacute: uacute,\n Ucirc: Ucirc,\n ucirc: ucirc,\n Ugrave: Ugrave,\n ugrave: ugrave,\n uml: uml,\n Uuml: Uuml,\n uuml: uuml,\n Yacute: Yacute,\n yacute: yacute,\n yen: yen,\n yuml: yuml\n};\nvar amp = \"&\";\nvar apos = \"'\";\nvar gt = \">\";\nvar lt = \"<\";\nvar quot = \"\\\"\";\nvar require$$0$1 = {\n amp: amp,\n apos: apos,\n gt: gt,\n lt: lt,\n quot: quot\n};\nvar decode_codepoint = {};\nvar require$$0 = {\n \"0\": 65533,\n \"128\": 8364,\n \"130\": 8218,\n \"131\": 402,\n \"132\": 8222,\n \"133\": 8230,\n \"134\": 8224,\n \"135\": 8225,\n \"136\": 710,\n \"137\": 8240,\n \"138\": 352,\n \"139\": 8249,\n \"140\": 338,\n \"142\": 381,\n \"145\": 8216,\n \"146\": 8217,\n \"147\": 8220,\n \"148\": 8221,\n \"149\": 8226,\n \"150\": 8211,\n \"151\": 8212,\n \"152\": 732,\n \"153\": 8482,\n \"154\": 353,\n \"155\": 8250,\n \"156\": 339,\n \"158\": 382,\n \"159\": 376\n};\nvar __importDefault$2 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(decode_codepoint, \"__esModule\", { value: true });\nvar decode_json_1 = __importDefault$2(require$$0);\n// Adapted from https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\nvar fromCodePoint$2 = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.fromCodePoint ||\n function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n };\nfunction decodeCodePoint(codePoint) {\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n if (codePoint in decode_json_1.default) {\n codePoint = decode_json_1.default[codePoint];\n }\n return fromCodePoint$2(codePoint);\n}\ndecode_codepoint.default = decodeCodePoint;\nvar __importDefault$1 = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(decode, \"__esModule\", { value: true });\ndecode.decodeHTML = decode.decodeHTMLStrict = decode.decodeXML = void 0;\nvar entities_json_1$1 = __importDefault$1(require$$1$1);\nvar legacy_json_1 = __importDefault$1(require$$1);\nvar xml_json_1$1 = __importDefault$1(require$$0$1);\nvar decode_codepoint_1 = __importDefault$1(decode_codepoint);\nvar strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\\da-fA-F]+|#\\d+);/g;\ndecode.decodeXML = getStrictDecoder(xml_json_1$1.default);\ndecode.decodeHTMLStrict = getStrictDecoder(entities_json_1$1.default);\nfunction getStrictDecoder(map) {\n var replace = getReplacer(map);\n return function (str) { return String(str).replace(strictEntityRe, replace); };\n}\nvar sorter = function (a, b) { return (a < b ? 1 : -1); };\ndecode.decodeHTML = (function () {\n var legacy = Object.keys(legacy_json_1.default).sort(sorter);\n var keys = Object.keys(entities_json_1$1.default).sort(sorter);\n for (var i = 0, j = 0; i < keys.length; i++) {\n if (legacy[j] === keys[i]) {\n keys[i] += \";?\";\n j++;\n }\n else {\n keys[i] += \";\";\n }\n }\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\");\n var replace = getReplacer(entities_json_1$1.default);\n function replacer(str) {\n if (str.substr(-1) !== \";\")\n str += \";\";\n return replace(str);\n }\n // TODO consider creating a merged map\n return function (str) { return String(str).replace(re, replacer); };\n})();\nfunction getReplacer(map) {\n return function replace(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n if (secondChar === \"X\" || secondChar === \"x\") {\n return decode_codepoint_1.default(parseInt(str.substr(3), 16));\n }\n return decode_codepoint_1.default(parseInt(str.substr(2), 10));\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return map[str.slice(1, -1)] || str;\n };\n}\nvar encode = {};\nvar esm_importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(encode, \"__esModule\", { value: true });\nencode.escapeUTF8 = encode.escape = encode.encodeNonAsciiHTML = encode.encodeHTML = encode.encodeXML = void 0;\nvar xml_json_1 = esm_importDefault(require$$0$1);\nvar inverseXML = getInverseObj(xml_json_1.default);\nvar xmlReplacer = getInverseReplacer(inverseXML);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nencode.encodeXML = getASCIIEncoder(inverseXML);\nvar entities_json_1 = esm_importDefault(require$$1$1);\nvar inverseHTML = getInverseObj(entities_json_1.default);\nvar htmlReplacer = getInverseReplacer(inverseHTML);\n/**\n * Encodes all entities and non-ASCII characters in the input.\n *\n * This includes characters that are valid ASCII characters in HTML documents.\n * For example `#` will be encoded as `&num;`. To get a more compact output,\n * consider using the `encodeNonAsciiHTML` function.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nencode.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `&#xfc;`) will be used.\n */\nencode.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML);\nfunction getInverseObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce(function (inverse, name) {\n inverse[obj[name]] = \"&\" + name + \";\";\n return inverse;\n }, {});\n}\nfunction getInverseReplacer(inverse) {\n var single = [];\n var multiple = [];\n for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n if (k.length === 1) {\n // Add value to single array\n single.push(\"\\\\\" + k);\n }\n else {\n // Add value to multiple array\n multiple.push(k);\n }\n }\n // Add ranges to single characters.\n single.sort();\n for (var start = 0; start < single.length - 1; start++) {\n // Find the end of a run of characters\n var end = start;\n while (end < single.length - 1 &&\n single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {\n end += 1;\n }\n var count = 1 + end - start;\n // We want to replace at least three characters\n if (count < 3)\n continue;\n single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n multiple.unshift(\"[\" + single.join(\"\") + \"]\");\n return new RegExp(multiple.join(\"|\"), \"g\");\n}\n// /[^\\0-\\x7F]/gu\nvar reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g;\nvar getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n function (str) { return str.codePointAt(0); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c) {\n return (c.charCodeAt(0) - 0xd800) * 0x400 +\n c.charCodeAt(1) -\n 0xdc00 +\n 0x10000;\n };\nfunction singleCharReplacer(c) {\n return \"&#x\" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0))\n .toString(16)\n .toUpperCase() + \";\";\n}\nfunction getInverse(inverse, re) {\n return function (data) {\n return data\n .replace(re, function (name) { return inverse[name]; })\n .replace(reNonASCII, singleCharReplacer);\n };\n}\nvar reEscapeChars = new RegExp(xmlReplacer.source + \"|\" + reNonASCII.source, \"g\");\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `&#xfc;`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nfunction esm_escape(data) {\n return data.replace(reEscapeChars, singleCharReplacer);\n}\nencode.escape = esm_escape;\n/**\n * Encodes all characters not valid in XML documents using numeric hexadecimal\n * reference (eg. `&#xfc;`).\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nfunction escapeUTF8(data) {\n return data.replace(xmlReplacer, singleCharReplacer);\n}\nencode.escapeUTF8 = escapeUTF8;\nfunction getASCIIEncoder(obj) {\n return function (data) {\n return data.replace(reEscapeChars, function (c) { return obj[c] || singleCharReplacer(c); });\n };\n}\n(function (exports) {\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0;\n var decode_1 = decode;\n var encode_1 = encode;\n /**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeXML` or `decodeHTML` directly.\n */\n function decode$1(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);\n }\n exports.decode = decode$1;\n /**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeHTMLStrict` or `decodeXML` directly.\n */\n function decodeStrict(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);\n }\n exports.decodeStrict = decodeStrict;\n /**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `encodeHTML`, `encodeXML` or `encodeNonAsciiHTML` directly.\n */\n function encode$1(data, level) {\n return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);\n }\n exports.encode = encode$1;\n var encode_2 = encode;\n Object.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return encode_2.encodeXML; } });\n Object.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\n Object.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_2.encodeNonAsciiHTML; } });\n Object.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return encode_2.escape; } });\n Object.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return encode_2.escapeUTF8; } });\n // Legacy aliases (deprecated)\n Object.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\n Object.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\n var decode_2 = decode;\n Object.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\n Object.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\n Object.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n // Legacy aliases (deprecated)\n Object.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\n Object.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\n Object.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n Object.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n Object.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\n}(lib));\nvar ENTITY = '&(?:#x[a-f0-9]{1,6}|#[0-9]{1,7}|[a-z][a-z0-9]{1,31});';\nvar C_BACKSLASH$1 = 92;\nvar reBackslashOrAmp = /[\\\\&]/;\nvar ESCAPABLE = '[!\"#$%&\\'()*+,./:;<=>?@[\\\\\\\\\\\\]^_`{|}~-]';\nvar reEntityOrEscapedChar = new RegExp(\"\\\\\\\\\" + ESCAPABLE + \"|\" + ENTITY, 'gi');\nvar XMLSPECIAL = '[&<>\"]';\nvar reXmlSpecial = new RegExp(XMLSPECIAL, 'g');\nvar unescapeChar = function (s) {\n if (s.charCodeAt(0) === C_BACKSLASH$1) {\n return s.charAt(1);\n }\n return lib.decodeHTML(s);\n};\n// Replace entities and backslash escapes with literal characters.\nfunction unescapeString(s) {\n if (reBackslashOrAmp.test(s)) {\n return s.replace(reEntityOrEscapedChar, unescapeChar);\n }\n return s;\n}\nfunction normalizeURI(uri) {\n try {\n return encode_1(uri);\n }\n catch (err) {\n return uri;\n }\n}\nfunction replaceUnsafeChar(s) {\n switch (s) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n default:\n return s;\n }\n}\nfunction escapeXml(s) {\n if (reXmlSpecial.test(s)) {\n return s.replace(reXmlSpecial, replaceUnsafeChar);\n }\n return s;\n}\nfunction repeat(str, count) {\n var arr = [];\n for (var i = 0; i < count; i++) {\n arr.push(str);\n }\n return arr.join('');\n}\nfunction isEmpty(str) {\n if (!str) {\n return true;\n }\n return !/[^ \\t]+/.test(str);\n}\nvar NodeWalker = /** @class */ (function () {\n function NodeWalker(root) {\n this.current = root;\n this.root = root;\n this.entering = true;\n }\n NodeWalker.prototype.next = function () {\n var cur = this.current;\n var entering = this.entering;\n if (cur === null) {\n return null;\n }\n var container = isContainer(cur);\n if (entering && container) {\n if (cur.firstChild) {\n this.current = cur.firstChild;\n this.entering = true;\n }\n else {\n // stay on node but exit\n this.entering = false;\n }\n }\n else if (cur === this.root) {\n this.current = null;\n }\n else if (cur.next === null) {\n this.current = cur.parent;\n this.entering = false;\n }\n else {\n this.current = cur.next;\n this.entering = true;\n }\n return { entering: entering, node: cur };\n };\n NodeWalker.prototype.resumeAt = function (node, entering) {\n this.current = node;\n this.entering = entering === true;\n };\n return NodeWalker;\n}());\nfunction isContainer(node) {\n switch (node.type) {\n case 'document':\n case 'blockQuote':\n case 'list':\n case 'item':\n case 'paragraph':\n case 'heading':\n case 'emph':\n case 'strong':\n case 'strike':\n case 'link':\n case 'image':\n case 'table':\n case 'tableHead':\n case 'tableBody':\n case 'tableRow':\n case 'tableCell':\n case 'tableDelimRow':\n case 'customInline':\n return true;\n default:\n return false;\n }\n}\nvar lastNodeId = 1;\nvar nodeMap = {};\nfunction getNodeById(id) {\n return nodeMap[id];\n}\nfunction removeNodeById(id) {\n delete nodeMap[id];\n}\nfunction removeAllNode() {\n nodeMap = {};\n}\nvar esm_Node = /** @class */ (function () {\n function Node(nodeType, sourcepos) {\n this.parent = null;\n this.prev = null;\n this.next = null;\n // only for container node\n this.firstChild = null;\n this.lastChild = null;\n // only for leaf node\n this.literal = null;\n if (nodeType === 'document') {\n this.id = -1;\n }\n else {\n this.id = lastNodeId++;\n }\n this.type = nodeType;\n this.sourcepos = sourcepos;\n nodeMap[this.id] = this;\n }\n Node.prototype.isContainer = function () {\n return isContainer(this);\n };\n Node.prototype.unlink = function () {\n if (this.prev) {\n this.prev.next = this.next;\n }\n else if (this.parent) {\n this.parent.firstChild = this.next;\n }\n if (this.next) {\n this.next.prev = this.prev;\n }\n else if (this.parent) {\n this.parent.lastChild = this.prev;\n }\n this.parent = null;\n this.next = null;\n this.prev = null;\n };\n Node.prototype.replaceWith = function (node) {\n this.insertBefore(node);\n this.unlink();\n };\n Node.prototype.insertAfter = function (sibling) {\n sibling.unlink();\n sibling.next = this.next;\n if (sibling.next) {\n sibling.next.prev = sibling;\n }\n sibling.prev = this;\n this.next = sibling;\n if (this.parent) {\n sibling.parent = this.parent;\n if (!sibling.next) {\n sibling.parent.lastChild = sibling;\n }\n }\n };\n Node.prototype.insertBefore = function (sibling) {\n sibling.unlink();\n sibling.prev = this.prev;\n if (sibling.prev) {\n sibling.prev.next = sibling;\n }\n sibling.next = this;\n this.prev = sibling;\n sibling.parent = this.parent;\n if (!sibling.prev) {\n sibling.parent.firstChild = sibling;\n }\n };\n Node.prototype.appendChild = function (child) {\n child.unlink();\n child.parent = this;\n if (this.lastChild) {\n this.lastChild.next = child;\n child.prev = this.lastChild;\n this.lastChild = child;\n }\n else {\n this.firstChild = child;\n this.lastChild = child;\n }\n };\n Node.prototype.prependChild = function (child) {\n child.unlink();\n child.parent = this;\n if (this.firstChild) {\n this.firstChild.prev = child;\n child.next = this.firstChild;\n this.firstChild = child;\n }\n else {\n this.firstChild = child;\n this.lastChild = child;\n }\n };\n Node.prototype.walker = function () {\n return new NodeWalker(this);\n };\n return Node;\n}());\nvar BlockNode = /** @class */ (function (_super) {\n esm_extends(BlockNode, _super);\n function BlockNode(nodeType, sourcepos) {\n var _this = _super.call(this, nodeType, sourcepos) || this;\n // temporal data (for parsing)\n _this.open = true;\n _this.lineOffsets = null;\n _this.stringContent = null;\n _this.lastLineBlank = false;\n _this.lastLineChecked = false;\n _this.type = nodeType;\n return _this;\n }\n return BlockNode;\n}(esm_Node));\nvar ListNode = /** @class */ (function (_super) {\n esm_extends(ListNode, _super);\n function ListNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.listData = null;\n return _this;\n }\n return ListNode;\n}(BlockNode));\nvar HeadingNode = /** @class */ (function (_super) {\n esm_extends(HeadingNode, _super);\n function HeadingNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.level = 0;\n _this.headingType = 'atx';\n return _this;\n }\n return HeadingNode;\n}(BlockNode));\nvar CodeBlockNode = /** @class */ (function (_super) {\n esm_extends(CodeBlockNode, _super);\n function CodeBlockNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isFenced = false;\n _this.fenceChar = null;\n _this.fenceLength = 0;\n _this.fenceOffset = -1;\n _this.info = null;\n _this.infoPadding = 0;\n return _this;\n }\n return CodeBlockNode;\n}(BlockNode));\nvar TableNode = /** @class */ (function (_super) {\n esm_extends(TableNode, _super);\n function TableNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.columns = [];\n return _this;\n }\n return TableNode;\n}(BlockNode));\nvar TableCellNode = /** @class */ (function (_super) {\n esm_extends(TableCellNode, _super);\n function TableCellNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.startIdx = 0;\n _this.endIdx = 0;\n _this.paddingLeft = 0;\n _this.paddingRight = 0;\n _this.ignored = false;\n return _this;\n }\n return TableCellNode;\n}(BlockNode));\nvar RefDefNode = /** @class */ (function (_super) {\n esm_extends(RefDefNode, _super);\n function RefDefNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.title = '';\n _this.dest = '';\n _this.label = '';\n return _this;\n }\n return RefDefNode;\n}(BlockNode));\nvar CustomBlockNode = /** @class */ (function (_super) {\n esm_extends(CustomBlockNode, _super);\n function CustomBlockNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.syntaxLength = 0;\n _this.offset = -1;\n _this.info = '';\n return _this;\n }\n return CustomBlockNode;\n}(BlockNode));\nvar HtmlBlockNode = /** @class */ (function (_super) {\n esm_extends(HtmlBlockNode, _super);\n function HtmlBlockNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.htmlBlockType = -1;\n return _this;\n }\n return HtmlBlockNode;\n}(BlockNode));\nvar LinkNode = /** @class */ (function (_super) {\n esm_extends(LinkNode, _super);\n function LinkNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.destination = null;\n _this.title = null;\n _this.extendedAutolink = false;\n return _this;\n }\n return LinkNode;\n}(esm_Node));\nvar CodeNode = /** @class */ (function (_super) {\n esm_extends(CodeNode, _super);\n function CodeNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.tickCount = 0;\n return _this;\n }\n return CodeNode;\n}(esm_Node));\nvar CustomInlineNode = /** @class */ (function (_super) {\n esm_extends(CustomInlineNode, _super);\n function CustomInlineNode() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.info = '';\n return _this;\n }\n return CustomInlineNode;\n}(esm_Node));\nfunction createNode(type, sourcepos) {\n switch (type) {\n case 'heading':\n return new HeadingNode(type, sourcepos);\n case 'list':\n case 'item':\n return new ListNode(type, sourcepos);\n case 'link':\n case 'image':\n return new LinkNode(type, sourcepos);\n case 'codeBlock':\n return new CodeBlockNode(type, sourcepos);\n case 'htmlBlock':\n return new HtmlBlockNode(type, sourcepos);\n case 'table':\n return new TableNode(type, sourcepos);\n case 'tableCell':\n return new TableCellNode(type, sourcepos);\n case 'document':\n case 'paragraph':\n case 'blockQuote':\n case 'thematicBreak':\n case 'tableRow':\n case 'tableBody':\n case 'tableHead':\n case 'frontMatter':\n return new BlockNode(type, sourcepos);\n case 'code':\n return new CodeNode(type, sourcepos);\n case 'refDef':\n return new RefDefNode(type, sourcepos);\n case 'customBlock':\n return new CustomBlockNode(type, sourcepos);\n case 'customInline':\n return new CustomInlineNode(type, sourcepos);\n default:\n return new esm_Node(type, sourcepos);\n }\n}\nfunction isCodeBlock(node) {\n return node.type === 'codeBlock';\n}\nfunction isHtmlBlock(node) {\n return node.type === 'htmlBlock';\n}\nfunction isHeading(node) {\n return node.type === 'heading';\n}\nfunction isList(node) {\n return node.type === 'list';\n}\nfunction isTable(node) {\n return node.type === 'table';\n}\nfunction isRefDef(node) {\n return node.type === 'refDef';\n}\nfunction isCustomBlock(node) {\n return node.type === 'customBlock';\n}\nfunction isCustomInline(node) {\n return node.type === 'customInline';\n}\nfunction esm_text(s, sourcepos) {\n var node = createNode('text', sourcepos);\n node.literal = s;\n return node;\n}\nvar TAGNAME = '[A-Za-z][A-Za-z0-9-]*';\nvar ATTRIBUTENAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar UNQUOTEDVALUE = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar SINGLEQUOTEDVALUE = \"'[^']*'\";\nvar DOUBLEQUOTEDVALUE = '\"[^\"]*\"';\nvar ATTRIBUTEVALUE = \"(?:\" + UNQUOTEDVALUE + \"|\" + SINGLEQUOTEDVALUE + \"|\" + DOUBLEQUOTEDVALUE + \")\";\nvar ATTRIBUTEVALUESPEC = \"\" + '(?:\\\\s*=\\\\s*' + ATTRIBUTEVALUE + \")\";\nvar ATTRIBUTE = \"\" + '(?:\\\\s+' + ATTRIBUTENAME + ATTRIBUTEVALUESPEC + \"?)\";\nvar OPENTAG = \"<\" + TAGNAME + ATTRIBUTE + \"*\\\\s*/?>\";\nvar CLOSETAG = \"</\" + TAGNAME + \"\\\\s*[>]\";\nvar HTMLCOMMENT = '<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->';\nvar PROCESSINGINSTRUCTION = '[<][?].*?[?][>]';\nvar DECLARATION = '<![A-Z]+\\\\s+[^>]*>';\nvar CDATA = '<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>';\nvar HTMLTAG = \"(?:\" + OPENTAG + \"|\" + CLOSETAG + \"|\" + HTMLCOMMENT + \"|\" + PROCESSINGINSTRUCTION + \"|\" + DECLARATION + \"|\" + CDATA + \")\";\nvar reHtmlTag = new RegExp(\"^\" + HTMLTAG, 'i');\n// derived from https://github.com/mathiasbynens/String.fromCodePoint\n/*! http://mths.be/fromcodepoint v0.2.1 by @mathias */\nvar fromCodePoint;\nif (String.fromCodePoint) {\n fromCodePoint = function (_) {\n try {\n return String.fromCodePoint(_);\n }\n catch (e) {\n if (e instanceof RangeError) {\n return String.fromCharCode(0xfffd);\n }\n throw e;\n }\n };\n}\nelse {\n var stringFromCharCode_1 = String.fromCharCode;\n var floor_1 = Math.floor;\n fromCodePoint = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = args.length;\n if (!length) {\n return '';\n }\n var result = '';\n while (++index < length) {\n var codePoint = Number(args[index]);\n if (!isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10ffff || // not a valid Unicode code point\n floor_1(codePoint) !== codePoint // not an integer\n ) {\n return String.fromCharCode(0xfffd);\n }\n if (codePoint <= 0xffff) {\n // BMP code point\n codeUnits.push(codePoint);\n }\n else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xd800;\n lowSurrogate = (codePoint % 0x400) + 0xdc00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode_1.apply(void 0, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n}\nvar fromCodePoint$1 = fromCodePoint;\nvar DOMAIN = '(?:[w-]+.)*[A-Za-z0-9-]+.[A-Za-z0-9-]+';\nvar PATH = '[^<\\\\s]*[^<?!.,:*_?~\\\\s]';\nvar EMAIL = '[\\\\w.+-]+@(?:[\\\\w-]+\\\\.)+[\\\\w-]+';\nfunction trimUnmatchedTrailingParens(source) {\n var trailingParen = /\\)+$/.exec(source);\n if (trailingParen) {\n var count = 0;\n for (var _i = 0, source_1 = source; _i < source_1.length; _i++) {\n var ch = source_1[_i];\n if (ch === '(') {\n if (count < 0) {\n count = 1;\n }\n else {\n count += 1;\n }\n }\n else if (ch === ')') {\n count -= 1;\n }\n }\n if (count < 0) {\n var trimCount = Math.min(-count, trailingParen[0].length);\n return source.substring(0, source.length - trimCount);\n }\n }\n return source;\n}\nfunction trimTrailingEntity(source) {\n return source.replace(/&[A-Za-z0-9]+;$/, '');\n}\nfunction parseEmailLink(source) {\n var reEmailLink = new RegExp(EMAIL, 'g');\n var result = [];\n var m;\n while ((m = reEmailLink.exec(source))) {\n var text_1 = m[0];\n if (!/[_-]+$/.test(text_1)) {\n result.push({\n text: text_1,\n range: [m.index, m.index + text_1.length - 1],\n url: \"mailto:\" + text_1,\n });\n }\n }\n return result;\n}\nfunction parseUrlLink(source) {\n var reWwwAutolink = new RegExp(\"(www|https?://).\" + DOMAIN + PATH, 'g');\n var result = [];\n var m;\n while ((m = reWwwAutolink.exec(source))) {\n var text_2 = trimTrailingEntity(trimUnmatchedTrailingParens(m[0]));\n var scheme = m[1] === 'www' ? 'http://' : '';\n result.push({\n text: text_2,\n range: [m.index, m.index + text_2.length - 1],\n url: \"\" + scheme + text_2,\n });\n }\n return result;\n}\nfunction baseAutolinkParser(source) {\n return esm_spreadArray(esm_spreadArray([], parseUrlLink(source)), parseEmailLink(source)).sort(function (a, b) { return a.range[0] - b.range[0]; });\n}\nfunction convertExtAutoLinks(walker, autolinkParser) {\n if (typeof autolinkParser === 'boolean') {\n autolinkParser = baseAutolinkParser;\n }\n var event;\n var _loop_1 = function () {\n var entering = event.entering, node = event.node;\n if (entering && node.type === 'text' && node.parent.type !== 'link') {\n var literal = node.literal;\n var linkInfos = autolinkParser(literal);\n if (!linkInfos || !linkInfos.length) {\n return \"continue\";\n }\n var lastIdx = 0;\n var _a = node.sourcepos[0], lineNum_1 = _a[0], chPos_1 = _a[1];\n var sourcepos = function (startIdx, endIdx) {\n return [\n [lineNum_1, chPos_1 + startIdx],\n [lineNum_1, chPos_1 + endIdx],\n ];\n };\n var newNodes = [];\n for (var _i = 0, linkInfos_1 = linkInfos; _i < linkInfos_1.length; _i++) {\n var _b = linkInfos_1[_i], range = _b.range, url = _b.url, linkText = _b.text;\n if (range[0] > lastIdx) {\n newNodes.push(esm_text(literal.substring(lastIdx, range[0]), sourcepos(lastIdx, range[0] - 1)));\n }\n var linkNode = createNode('link', sourcepos.apply(void 0, range));\n linkNode.appendChild(esm_text(linkText, sourcepos.apply(void 0, range)));\n linkNode.destination = url;\n linkNode.extendedAutolink = true;\n newNodes.push(linkNode);\n lastIdx = range[1] + 1;\n }\n if (lastIdx < literal.length) {\n newNodes.push(esm_text(literal.substring(lastIdx), sourcepos(lastIdx, literal.length - 1)));\n }\n for (var _c = 0, newNodes_1 = newNodes; _c < newNodes_1.length; _c++) {\n var newNode = newNodes_1[_c];\n node.insertBefore(newNode);\n }\n node.unlink();\n }\n };\n while ((event = walker.next())) {\n _loop_1();\n }\n}\nfunction last(arr) {\n return arr[arr.length - 1];\n}\n// normalize a reference in reference link (remove []s, trim,\n// collapse internal space, unicode case fold.\n// See commonmark/commonmark.js#168.\nfunction normalizeReference(str) {\n return str\n .slice(1, str.length - 1)\n .trim()\n .replace(/[ \\t\\r\\n]+/, ' ')\n .toLowerCase()\n .toUpperCase();\n}\nfunction iterateObject(obj, iteratee) {\n Object.keys(obj).forEach(function (key) {\n iteratee(key, obj[key]);\n });\n}\nfunction omit(obj) {\n var propNames = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n propNames[_i - 1] = arguments[_i];\n }\n var resultMap = esm_assign({}, obj);\n propNames.forEach(function (key) {\n delete resultMap[key];\n });\n return resultMap;\n}\nfunction isEmptyObj(obj) {\n return !Object.keys(obj).length;\n}\nfunction clearObj(obj) {\n Object.keys(obj).forEach(function (key) {\n delete obj[key];\n });\n}\nvar C_NEWLINE = 10;\nvar C_ASTERISK = 42;\nvar C_UNDERSCORE = 95;\nvar C_BACKTICK = 96;\nvar C_OPEN_BRACKET$1 = 91;\nvar C_CLOSE_BRACKET = 93;\nvar C_TILDE = 126;\nvar C_LESSTHAN$1 = 60;\nvar C_BANG = 33;\nvar C_BACKSLASH = 92;\nvar C_AMPERSAND = 38;\nvar C_OPEN_PAREN = 40;\nvar C_CLOSE_PAREN = 41;\nvar C_COLON = 58;\nvar C_SINGLEQUOTE = 39;\nvar C_DOUBLEQUOTE = 34;\nvar C_DOLLAR = 36;\n// Some regexps used in inline parser:\nvar ESCAPED_CHAR = \"\\\\\\\\\" + ESCAPABLE;\nvar rePunctuation = new RegExp(/[!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~\\xA1\\xA7\\xAB\\xB6\\xB7\\xBB\\xBF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E42\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]|\\uD800[\\uDD00-\\uDD02\\uDF9F\\uDFD0]|\\uD801\\uDD6F|\\uD802[\\uDC57\\uDD1F\\uDD3F\\uDE50-\\uDE58\\uDE7F\\uDEF0-\\uDEF6\\uDF39-\\uDF3F\\uDF99-\\uDF9C]|\\uD804[\\uDC47-\\uDC4D\\uDCBB\\uDCBC\\uDCBE-\\uDCC1\\uDD40-\\uDD43\\uDD74\\uDD75\\uDDC5-\\uDDC9\\uDDCD\\uDDDB\\uDDDD-\\uDDDF\\uDE38-\\uDE3D\\uDEA9]|\\uD805[\\uDCC6\\uDDC1-\\uDDD7\\uDE41-\\uDE43\\uDF3C-\\uDF3E]|\\uD809[\\uDC70-\\uDC74]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37-\\uDF3B\\uDF44]|\\uD82F\\uDC9F|\\uD836[\\uDE87-\\uDE8B]/);\nvar reLinkTitle = new RegExp(\"^(?:\\\"(\" + ESCAPED_CHAR + \"|[^\\\"\\\\x00])*\\\"\" +\n \"|\" +\n (\"'(\" + ESCAPED_CHAR + \"|[^'\\\\x00])*'\") +\n \"|\" +\n (\"\\\\((\" + ESCAPED_CHAR + \"|[^()\\\\x00])*\\\\))\"));\nvar reLinkDestinationBraces = /^(?:<(?:[^<>\\n\\\\\\x00]|\\\\.)*>)/;\nvar reEscapable = new RegExp(\"^\" + ESCAPABLE);\nvar reEntityHere = new RegExp(\"^\" + ENTITY, 'i');\nvar reTicks = /`+/;\nvar reTicksHere = /^`+/;\nvar reEllipses = /\\.\\.\\./g;\nvar reDash = /--+/g;\nvar reEmailAutolink = /^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/;\nvar reAutolink = /^<[A-Za-z][A-Za-z0-9.+-]{1,31}:[^<>\\x00-\\x20]*>/i;\nvar reSpnl = /^ *(?:\\n *)?/;\nvar reWhitespaceChar = /^[ \\t\\n\\x0b\\x0c\\x0d]/;\nvar reUnicodeWhitespaceChar = /^\\s/;\nvar reFinalSpace = / *$/;\nvar reInitialSpace = /^ */;\nvar reSpaceAtEndOfLine = /^ *(?:\\n|$)/;\nvar reLinkLabel = /^\\[(?:[^\\\\\\[\\]]|\\\\.){0,1000}\\]/;\n// Matches a string of non-special characters.\nvar reMain = /^[^\\n`\\[\\]\\\\!<&*_'\"~$]+/m;\nvar InlineParser = /** @class */ (function () {\n function InlineParser(options) {\n // An InlineParser keeps track of a subject (a string to be parsed)\n // and a position in that subject.\n this.subject = '';\n this.delimiters = null; // used by handleDelim method\n this.brackets = null;\n this.pos = 0;\n this.lineStartNum = 0;\n this.lineIdx = 0;\n this.lineOffsets = [0];\n this.linePosOffset = 0;\n this.refMap = {};\n this.refLinkCandidateMap = {};\n this.refDefCandidateMap = {};\n this.options = options;\n }\n InlineParser.prototype.sourcepos = function (start, end) {\n var linePosOffset = this.linePosOffset + this.lineOffsets[this.lineIdx];\n var lineNum = this.lineStartNum + this.lineIdx;\n var startpos = [lineNum, start + linePosOffset];\n if (typeof end === 'number') {\n return [startpos, [lineNum, end + linePosOffset]];\n }\n return startpos;\n };\n InlineParser.prototype.nextLine = function () {\n this.lineIdx += 1;\n this.linePosOffset = -this.pos;\n };\n // If re matches at current position in the subject, advance\n // position in subject and return the match; otherwise return null.\n InlineParser.prototype.match = function (re) {\n var m = re.exec(this.subject.slice(this.pos));\n if (m === null) {\n return null;\n }\n this.pos += m.index + m[0].length;\n return m[0];\n };\n // Returns the code for the character at the current subject position, or -1\n // there are no more characters.\n InlineParser.prototype.peek = function () {\n if (this.pos < this.subject.length) {\n return this.subject.charCodeAt(this.pos);\n }\n return -1;\n };\n // Parse zero or more space characters, including at most one newline\n InlineParser.prototype.spnl = function () {\n this.match(reSpnl);\n return true;\n };\n // All of the parsers below try to match something at the current position\n // in the subject. If they succeed in matching anything, they\n // return the inline matched, advancing the subject.\n // Attempt to parse backticks, adding either a backtick code span or a\n // literal sequence of backticks.\n InlineParser.prototype.parseBackticks = function (block) {\n var startpos = this.pos + 1;\n var ticks = this.match(reTicksHere);\n if (ticks === null) {\n return false;\n }\n var afterOpenTicks = this.pos;\n var matched;\n while ((matched = this.match(reTicks)) !== null) {\n if (matched === ticks) {\n var contents = this.subject.slice(afterOpenTicks, this.pos - ticks.length);\n var sourcepos = this.sourcepos(startpos, this.pos);\n var lines = contents.split('\\n');\n if (lines.length > 1) {\n var lastLine = last(lines);\n this.lineIdx += lines.length - 1;\n this.linePosOffset = -(this.pos - lastLine.length - ticks.length);\n sourcepos[1] = this.sourcepos(this.pos);\n contents = lines.join(' ');\n }\n var node = createNode('code', sourcepos);\n if (contents.length > 0 &&\n contents.match(/[^ ]/) !== null &&\n contents[0] == ' ' &&\n contents[contents.length - 1] == ' ') {\n node.literal = contents.slice(1, contents.length - 1);\n }\n else {\n node.literal = contents;\n }\n node.tickCount = ticks.length;\n block.appendChild(node);\n return true;\n }\n }\n // If we got here, we didn't match a closing backtick sequence.\n this.pos = afterOpenTicks;\n block.appendChild(esm_text(ticks, this.sourcepos(startpos, this.pos - 1)));\n return true;\n };\n // Parse a backslash-escaped special character, adding either the escaped\n // character, a hard line break (if the backslash is followed by a newline),\n // or a literal backslash to the block's children. Assumes current character\n // is a backslash.\n InlineParser.prototype.parseBackslash = function (block) {\n var subj = this.subject;\n var node;\n this.pos += 1;\n var startpos = this.pos;\n if (this.peek() === C_NEWLINE) {\n this.pos += 1;\n node = createNode('linebreak', this.sourcepos(this.pos - 1, this.pos));\n block.appendChild(node);\n this.nextLine();\n }\n else if (reEscapable.test(subj.charAt(this.pos))) {\n block.appendChild(esm_text(subj.charAt(this.pos), this.sourcepos(startpos, this.pos)));\n this.pos += 1;\n }\n else {\n block.appendChild(esm_text('\\\\', this.sourcepos(startpos, startpos)));\n }\n return true;\n };\n // Attempt to parse an autolink (URL or email in pointy brackets).\n InlineParser.prototype.parseAutolink = function (block) {\n var m;\n var dest;\n var node;\n var startpos = this.pos + 1;\n if ((m = this.match(reEmailAutolink))) {\n dest = m.slice(1, m.length - 1);\n node = createNode('link', this.sourcepos(startpos, this.pos));\n node.destination = normalizeURI(\"mailto:\" + dest);\n node.title = '';\n node.appendChild(esm_text(dest, this.sourcepos(startpos + 1, this.pos - 1)));\n block.appendChild(node);\n return true;\n }\n if ((m = this.match(reAutolink))) {\n dest = m.slice(1, m.length - 1);\n node = createNode('link', this.sourcepos(startpos, this.pos));\n node.destination = normalizeURI(dest);\n node.title = '';\n node.appendChild(esm_text(dest, this.sourcepos(startpos + 1, this.pos - 1)));\n block.appendChild(node);\n return true;\n }\n return false;\n };\n // Attempt to parse a raw HTML tag.\n InlineParser.prototype.parseHtmlTag = function (block) {\n var startpos = this.pos + 1;\n var m = this.match(reHtmlTag);\n if (m === null) {\n return false;\n }\n var node = createNode('htmlInline', this.sourcepos(startpos, this.pos));\n node.literal = m;\n block.appendChild(node);\n return true;\n };\n // Scan a sequence of characters with code cc, and return information about\n // the number of delimiters and whether they are positioned such that\n // they can open and/or close emphasis or strong emphasis. A utility\n // function for strong/emph parsing.\n InlineParser.prototype.scanDelims = function (cc) {\n var numdelims = 0;\n var startpos = this.pos;\n if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {\n numdelims++;\n this.pos++;\n }\n else {\n while (this.peek() === cc) {\n numdelims++;\n this.pos++;\n }\n }\n if (numdelims === 0 || (numdelims < 2 && (cc === C_TILDE || cc === C_DOLLAR))) {\n this.pos = startpos;\n return null;\n }\n var charBefore = startpos === 0 ? '\\n' : this.subject.charAt(startpos - 1);\n var ccAfter = this.peek();\n var charAfter;\n if (ccAfter === -1) {\n charAfter = '\\n';\n }\n else {\n charAfter = fromCodePoint$1(ccAfter);\n }\n var afterIsWhitespace = reUnicodeWhitespaceChar.test(charAfter);\n var afterIsPunctuation = rePunctuation.test(charAfter);\n var beforeIsWhitespace = reUnicodeWhitespaceChar.test(charBefore);\n var beforeIsPunctuation = rePunctuation.test(charBefore);\n var leftFlanking = !afterIsWhitespace && (!afterIsPunctuation || beforeIsWhitespace || beforeIsPunctuation);\n var rightFlanking = !beforeIsWhitespace && (!beforeIsPunctuation || afterIsWhitespace || afterIsPunctuation);\n var canOpen;\n var canClose;\n if (cc === C_UNDERSCORE) {\n canOpen = leftFlanking && (!rightFlanking || beforeIsPunctuation);\n canClose = rightFlanking && (!leftFlanking || afterIsPunctuation);\n }\n else if (cc === C_SINGLEQUOTE || cc === C_DOUBLEQUOTE) {\n canOpen = leftFlanking && !rightFlanking;\n canClose = rightFlanking;\n }\n else if (cc === C_DOLLAR) {\n canOpen = !afterIsWhitespace;\n canClose = !beforeIsWhitespace;\n }\n else {\n canOpen = leftFlanking;\n canClose = rightFlanking;\n }\n this.pos = startpos;\n return { numdelims: numdelims, canOpen: canOpen, canClose: canClose };\n };\n // Handle a delimiter marker for emphasis or a quote.\n InlineParser.prototype.handleDelim = function (cc, block) {\n var res = this.scanDelims(cc);\n if (!res) {\n return false;\n }\n var numdelims = res.numdelims;\n var startpos = this.pos + 1;\n var contents;\n this.pos += numdelims;\n if (cc === C_SINGLEQUOTE) {\n contents = '\\u2019';\n }\n else if (cc === C_DOUBLEQUOTE) {\n contents = '\\u201C';\n }\n else {\n contents = this.subject.slice(startpos - 1, this.pos);\n }\n var node = esm_text(contents, this.sourcepos(startpos, this.pos));\n block.appendChild(node);\n // Add entry to stack for this opener\n if ((res.canOpen || res.canClose) &&\n (this.options.smart || (cc !== C_SINGLEQUOTE && cc !== C_DOUBLEQUOTE))) {\n this.delimiters = {\n cc: cc,\n numdelims: numdelims,\n origdelims: numdelims,\n node: node,\n previous: this.delimiters,\n next: null,\n canOpen: res.canOpen,\n canClose: res.canClose,\n };\n if (this.delimiters.previous) {\n this.delimiters.previous.next = this.delimiters;\n }\n }\n return true;\n };\n InlineParser.prototype.removeDelimiter = function (delim) {\n if (delim.previous !== null) {\n delim.previous.next = delim.next;\n }\n if (delim.next === null) {\n // top of stack\n this.delimiters = delim.previous;\n }\n else {\n delim.next.previous = delim.previous;\n }\n };\n InlineParser.prototype.removeDelimitersBetween = function (bottom, top) {\n if (bottom.next !== top) {\n bottom.next = top;\n top.previous = bottom;\n }\n };\n /**\n * Process all delimiters - emphasis, strong emphasis, strikethrough(gfm)\n * If the smart punctuation options is true,\n * convert single/double quotes to corresponding unicode characters.\n **/\n InlineParser.prototype.processEmphasis = function (stackBottom) {\n var _a;\n var opener;\n var closer;\n var oldCloser;\n var openerInl, closerInl;\n var openerFound;\n var oddMatch = false;\n var openersBottom = (_a = {},\n _a[C_UNDERSCORE] = [stackBottom, stackBottom, stackBottom],\n _a[C_ASTERISK] = [stackBottom, stackBottom, stackBottom],\n _a[C_SINGLEQUOTE] = [stackBottom],\n _a[C_DOUBLEQUOTE] = [stackBottom],\n _a[C_TILDE] = [stackBottom],\n _a[C_DOLLAR] = [stackBottom],\n _a);\n // find first closer above stackBottom:\n closer = this.delimiters;\n while (closer !== null && closer.previous !== stackBottom) {\n closer = closer.previous;\n }\n // move forward, looking for closers, and handling each\n while (closer !== null) {\n var closercc = closer.cc;\n var closerEmph = closercc === C_UNDERSCORE || closercc === C_ASTERISK;\n if (!closer.canClose) {\n closer = closer.next;\n }\n else {\n // found emphasis closer. now look back for first matching opener:\n opener = closer.previous;\n openerFound = false;\n while (opener !== null &&\n opener !== stackBottom &&\n opener !== openersBottom[closercc][closerEmph ? closer.origdelims % 3 : 0]) {\n oddMatch =\n closerEmph &&\n (closer.canOpen || opener.canClose) &&\n closer.origdelims % 3 !== 0 &&\n (opener.origdelims + closer.origdelims) % 3 === 0;\n if (opener.cc === closer.cc && opener.canOpen && !oddMatch) {\n openerFound = true;\n break;\n }\n opener = opener.previous;\n }\n oldCloser = closer;\n if (closerEmph || closercc === C_TILDE || closercc === C_DOLLAR) {\n if (!openerFound) {\n closer = closer.next;\n }\n else if (opener) {\n // (null opener check for type narrowing)\n // calculate actual number of delimiters used from closer\n var useDelims = closer.numdelims >= 2 && opener.numdelims >= 2 ? 2 : 1;\n var emptyDelims = closerEmph ? 0 : 1;\n openerInl = opener.node;\n closerInl = closer.node;\n // build contents for new emph element\n var nodeType = closerEmph\n ? useDelims === 1\n ? 'emph'\n : 'strong'\n : 'strike';\n if (closercc === C_DOLLAR) {\n nodeType = 'customInline';\n }\n var newNode = createNode(nodeType);\n var openerEndPos = openerInl.sourcepos[1];\n var closerStartPos = closerInl.sourcepos[0];\n newNode.sourcepos = [\n [openerEndPos[0], openerEndPos[1] - useDelims + 1],\n [closerStartPos[0], closerStartPos[1] + useDelims - 1],\n ];\n openerInl.sourcepos[1][1] -= useDelims;\n closerInl.sourcepos[0][1] += useDelims;\n openerInl.literal = openerInl.literal.slice(useDelims);\n closerInl.literal = closerInl.literal.slice(useDelims);\n opener.numdelims -= useDelims;\n closer.numdelims -= useDelims;\n // remove used delimiters from stack elts and inlines\n var tmp = openerInl.next;\n var next = void 0;\n while (tmp && tmp !== closerInl) {\n next = tmp.next;\n tmp.unlink();\n newNode.appendChild(tmp);\n tmp = next;\n }\n // build custom inline node\n if (closercc === C_DOLLAR) {\n var textNode = newNode.firstChild;\n var literal = textNode.literal || '';\n var info = literal.split(/\\s/)[0];\n newNode.info = info;\n if (literal.length <= info.length) {\n textNode.unlink();\n }\n else {\n textNode.sourcepos[0][1] += info.length;\n textNode.literal = literal.replace(info + \" \", '');\n }\n }\n openerInl.insertAfter(newNode);\n // remove elts between opener and closer in delimiters stack\n this.removeDelimitersBetween(opener, closer);\n // if opener has 0 delims, remove it and the inline\n // if opener has 1 delims and character is tilde, remove delimiter only\n if (opener.numdelims <= emptyDelims) {\n if (opener.numdelims === 0) {\n openerInl.unlink();\n }\n this.removeDelimiter(opener);\n }\n // if closer has 0 delims, remove it and the inline\n // if closer has 1 delims and character is tilde, remove delimiter only\n if (closer.numdelims <= emptyDelims) {\n if (closer.numdelims === 0) {\n closerInl.unlink();\n }\n var tempstack = closer.next;\n this.removeDelimiter(closer);\n closer = tempstack;\n }\n }\n }\n else if (closercc === C_SINGLEQUOTE) {\n closer.node.literal = '\\u2019';\n if (openerFound) {\n opener.node.literal = '\\u2018';\n }\n closer = closer.next;\n }\n else if (closercc === C_DOUBLEQUOTE) {\n closer.node.literal = '\\u201D';\n if (openerFound) {\n opener.node.literal = '\\u201C';\n }\n closer = closer.next;\n }\n if (!openerFound) {\n // Set lower bound for future searches for openers:\n openersBottom[closercc][closerEmph ? oldCloser.origdelims % 3 : 0] = oldCloser.previous;\n if (!oldCloser.canOpen) {\n // We can remove a closer that can't be an opener,\n // once we've seen there's no matching opener:\n this.removeDelimiter(oldCloser);\n }\n }\n }\n }\n // remove all delimiters\n while (this.delimiters !== null && this.delimiters !== stackBottom) {\n this.removeDelimiter(this.delimiters);\n }\n };\n // Attempt to parse link title (sans quotes), returning the string\n // or null if no match.\n InlineParser.prototype.parseLinkTitle = function () {\n var title = this.match(reLinkTitle);\n if (title === null) {\n return null;\n }\n // chop off quotes from title and unescape:\n return unescapeString(title.substr(1, title.length - 2));\n };\n // Attempt to parse link destination, returning the string or null if no match.\n InlineParser.prototype.parseLinkDestination = function () {\n var res = this.match(reLinkDestinationBraces);\n if (res === null) {\n if (this.peek() === C_LESSTHAN$1) {\n return null;\n }\n // @TODO handrolled parser; res should be null or the string\n var savepos = this.pos;\n var openparens = 0;\n var c = void 0;\n while ((c = this.peek()) !== -1) {\n if (c === C_BACKSLASH && reEscapable.test(this.subject.charAt(this.pos + 1))) {\n this.pos += 1;\n if (this.peek() !== -1) {\n this.pos += 1;\n }\n }\n else if (c === C_OPEN_PAREN) {\n this.pos += 1;\n openparens += 1;\n }\n else if (c === C_CLOSE_PAREN) {\n if (openparens < 1) {\n break;\n }\n else {\n this.pos += 1;\n openparens -= 1;\n }\n }\n else if (reWhitespaceChar.exec(fromCodePoint$1(c)) !== null) {\n break;\n }\n else {\n this.pos += 1;\n }\n }\n if (this.pos === savepos && c !== C_CLOSE_PAREN) {\n return null;\n }\n if (openparens !== 0) {\n return null;\n }\n res = this.subject.substr(savepos, this.pos - savepos);\n return normalizeURI(unescapeString(res));\n } // chop off surrounding <..>:\n return normalizeURI(unescapeString(res.substr(1, res.length - 2)));\n };\n // Attempt to parse a link label, returning number of characters parsed.\n InlineParser.prototype.parseLinkLabel = function () {\n var m = this.match(reLinkLabel);\n if (m === null || m.length > 1001) {\n return 0;\n }\n return m.length;\n };\n // Add open bracket to delimiter stack and add a text node to block's children.\n InlineParser.prototype.parseOpenBracket = function (block) {\n var startpos = this.pos;\n this.pos += 1;\n var node = esm_text('[', this.sourcepos(this.pos, this.pos));\n block.appendChild(node);\n // Add entry to stack for this opener\n this.addBracket(node, startpos, false);\n return true;\n };\n // IF next character is [, and ! delimiter to delimiter stack and\n // add a text node to block's children. Otherwise just add a text node.\n InlineParser.prototype.parseBang = function (block) {\n var startpos = this.pos;\n this.pos += 1;\n if (this.peek() === C_OPEN_BRACKET$1) {\n this.pos += 1;\n var node = esm_text('![', this.sourcepos(this.pos - 1, this.pos));\n block.appendChild(node);\n // Add entry to stack for this opener\n this.addBracket(node, startpos + 1, true);\n }\n else {\n var node = esm_text('!', this.sourcepos(this.pos, this.pos));\n block.appendChild(node);\n }\n return true;\n };\n // Try to match close bracket against an opening in the delimiter\n // stack. Add either a link or image, or a plain [ character,\n // to block's children. If there is a matching delimiter,\n // remove it from the delimiter stack.\n InlineParser.prototype.parseCloseBracket = function (block) {\n var dest = null;\n var title = null;\n var matched = false;\n this.pos += 1;\n var startpos = this.pos;\n // get last [ or ![\n var opener = this.brackets;\n if (opener === null) {\n // no matched opener, just return a literal\n block.appendChild(esm_text(']', this.sourcepos(startpos, startpos)));\n return true;\n }\n if (!opener.active) {\n // no matched opener, just return a literal\n block.appendChild(esm_text(']', this.sourcepos(startpos, startpos)));\n // take opener off brackets stack\n this.removeBracket();\n return true;\n }\n // If we got here, open is a potential opener\n var isImage = opener.image;\n // Check to see if we have a link/image\n var savepos = this.pos;\n // Inline link?\n if (this.peek() === C_OPEN_PAREN) {\n this.pos++;\n if (this.spnl() &&\n (dest = this.parseLinkDestination()) !== null &&\n this.spnl() &&\n // make sure there's a space before the title:\n ((reWhitespaceChar.test(this.subject.charAt(this.pos - 1)) &&\n (title = this.parseLinkTitle())) ||\n true) &&\n this.spnl() &&\n this.peek() === C_CLOSE_PAREN) {\n this.pos += 1;\n matched = true;\n }\n else {\n this.pos = savepos;\n }\n }\n var refLabel = '';\n if (!matched) {\n // Next, see if there's a link label\n var beforelabel = this.pos;\n var n = this.parseLinkLabel();\n if (n > 2) {\n refLabel = this.subject.slice(beforelabel, beforelabel + n);\n }\n else if (!opener.bracketAfter) {\n // Empty or missing second label means to use the first label as the reference.\n // The reference must not contain a bracket. If we know there's a bracket, we don't even bother checking it.\n refLabel = this.subject.slice(opener.index, startpos);\n }\n if (n === 0) {\n // If shortcut reference link, rewind before spaces we skipped.\n this.pos = savepos;\n }\n if (refLabel) {\n refLabel = normalizeReference(refLabel);\n // lookup rawlabel in refMap\n var link = this.refMap[refLabel];\n if (link) {\n dest = link.destination;\n title = link.title;\n matched = true;\n }\n }\n }\n if (matched) {\n var node = createNode(isImage ? 'image' : 'link');\n node.destination = dest;\n node.title = title || '';\n node.sourcepos = [opener.startpos, this.sourcepos(this.pos)];\n var tmp = opener.node.next;\n var next = void 0;\n while (tmp) {\n next = tmp.next;\n tmp.unlink();\n node.appendChild(tmp);\n tmp = next;\n }\n block.appendChild(node);\n this.processEmphasis(opener.previousDelimiter);\n this.removeBracket();\n opener.node.unlink();\n // We remove this bracket and processEmphasis will remove later delimiters.\n // Now, for a link, we also deactivate earlier link openers.\n // (no links in links)\n if (!isImage) {\n opener = this.brackets;\n while (opener !== null) {\n if (!opener.image) {\n opener.active = false; // deactivate this opener\n }\n opener = opener.previous;\n }\n }\n if (this.options.referenceDefinition) {\n this.refLinkCandidateMap[block.id] = { node: block, refLabel: refLabel };\n }\n return true;\n } // no match\n this.removeBracket(); // remove this opener from stack\n this.pos = startpos;\n block.appendChild(esm_text(']', this.sourcepos(startpos, startpos)));\n if (this.options.referenceDefinition) {\n this.refLinkCandidateMap[block.id] = { node: block, refLabel: refLabel };\n }\n return true;\n };\n InlineParser.prototype.addBracket = function (node, index, image) {\n if (this.brackets !== null) {\n this.brackets.bracketAfter = true;\n }\n this.brackets = {\n node: node,\n startpos: this.sourcepos(index + (image ? 0 : 1)),\n previous: this.brackets,\n previousDelimiter: this.delimiters,\n index: index,\n image: image,\n active: true,\n };\n };\n InlineParser.prototype.removeBracket = function () {\n if (this.brackets) {\n this.brackets = this.brackets.previous;\n }\n };\n // Attempt to parse an entity.\n InlineParser.prototype.parseEntity = function (block) {\n var m;\n var startpos = this.pos + 1;\n if ((m = this.match(reEntityHere))) {\n block.appendChild(esm_text(lib.decodeHTML(m), this.sourcepos(startpos, this.pos)));\n return true;\n }\n return false;\n };\n // Parse a run of ordinary characters, or a single character with\n // a special meaning in markdown, as a plain string.\n InlineParser.prototype.parseString = function (block) {\n var m;\n var startpos = this.pos + 1;\n if ((m = this.match(reMain))) {\n if (this.options.smart) {\n var lit = m.replace(reEllipses, '\\u2026').replace(reDash, function (chars) {\n var enCount = 0;\n var emCount = 0;\n if (chars.length % 3 === 0) {\n // If divisible by 3, use all em dashes\n emCount = chars.length / 3;\n }\n else if (chars.length % 2 === 0) {\n // If divisible by 2, use all en dashes\n enCount = chars.length / 2;\n }\n else if (chars.length % 3 === 2) {\n // If 2 extra dashes, use en dash for last 2; em dashes for rest\n enCount = 1;\n emCount = (chars.length - 2) / 3;\n }\n else {\n // Use en dashes for last 4 hyphens; em dashes for rest\n enCount = 2;\n emCount = (chars.length - 4) / 3;\n }\n return repeat('\\u2014', emCount) + repeat('\\u2013', enCount);\n });\n block.appendChild(esm_text(lit, this.sourcepos(startpos, this.pos)));\n }\n else {\n var node = esm_text(m, this.sourcepos(startpos, this.pos));\n block.appendChild(node);\n }\n return true;\n }\n return false;\n };\n // Parse a newline. If it was preceded by two spaces, return a hard\n // line break; otherwise a soft line break.\n InlineParser.prototype.parseNewline = function (block) {\n this.pos += 1; // assume we're at a \\n\n // check previous node for trailing spaces\n var lastc = block.lastChild;\n if (lastc && lastc.type === 'text' && lastc.literal[lastc.literal.length - 1] === ' ') {\n var hardbreak = lastc.literal[lastc.literal.length - 2] === ' ';\n var litLen = lastc.literal.length;\n lastc.literal = lastc.literal.replace(reFinalSpace, '');\n var finalSpaceLen = litLen - lastc.literal.length;\n lastc.sourcepos[1][1] -= finalSpaceLen;\n block.appendChild(createNode(hardbreak ? 'linebreak' : 'softbreak', this.sourcepos(this.pos - finalSpaceLen, this.pos)));\n }\n else {\n block.appendChild(createNode('softbreak', this.sourcepos(this.pos, this.pos)));\n }\n this.nextLine();\n this.match(reInitialSpace); // gobble leading spaces in next line\n return true;\n };\n // Attempt to parse a link reference, modifying refmap.\n InlineParser.prototype.parseReference = function (block, refMap) {\n if (!this.options.referenceDefinition) {\n return 0;\n }\n this.subject = block.stringContent;\n this.pos = 0;\n var title = null;\n var startpos = this.pos;\n // label:\n var matchChars = this.parseLinkLabel();\n if (matchChars === 0) {\n return 0;\n }\n var rawlabel = this.subject.substr(0, matchChars);\n // colon:\n if (this.peek() === C_COLON) {\n this.pos++;\n }\n else {\n this.pos = startpos;\n return 0;\n }\n // link url\n this.spnl();\n var dest = this.parseLinkDestination();\n if (dest === null) {\n this.pos = startpos;\n return 0;\n }\n var beforetitle = this.pos;\n this.spnl();\n if (this.pos !== beforetitle) {\n title = this.parseLinkTitle();\n }\n if (title === null) {\n title = '';\n // rewind before spaces\n this.pos = beforetitle;\n }\n // make sure we're at line end:\n var atLineEnd = true;\n if (this.match(reSpaceAtEndOfLine) === null) {\n if (title === '') {\n atLineEnd = false;\n }\n else {\n // the potential title we found is not at the line end,\n // but it could still be a legal link reference if we\n // discard the title\n title = '';\n // rewind before spaces\n this.pos = beforetitle;\n // and instead check if the link URL is at the line end\n atLineEnd = this.match(reSpaceAtEndOfLine) !== null;\n }\n }\n if (!atLineEnd) {\n this.pos = startpos;\n return 0;\n }\n var normalLabel = normalizeReference(rawlabel);\n if (normalLabel === '') {\n // label must contain non-whitespace characters\n this.pos = startpos;\n return 0;\n }\n var sourcepos = this.getReferenceDefSourcepos(block);\n block.sourcepos[0][0] = sourcepos[1][0] + 1;\n var node = createNode('refDef', sourcepos);\n node.title = title;\n node.dest = dest;\n node.label = normalLabel;\n block.insertBefore(node);\n if (!refMap[normalLabel]) {\n refMap[normalLabel] = createRefDefState(node);\n }\n else {\n this.refDefCandidateMap[node.id] = node;\n }\n return this.pos - startpos;\n };\n InlineParser.prototype.mergeTextNodes = function (walker) {\n var event;\n var textNodes = [];\n while ((event = walker.next())) {\n var entering = event.entering, node = event.node;\n if (entering && node.type === 'text') {\n textNodes.push(node);\n }\n else if (textNodes.length === 1) {\n textNodes = [];\n }\n else if (textNodes.length > 1) {\n var firstNode = textNodes[0];\n var lastNode = textNodes[textNodes.length - 1];\n if (firstNode.sourcepos && lastNode.sourcepos) {\n firstNode.sourcepos[1] = lastNode.sourcepos[1];\n }\n firstNode.next = lastNode.next;\n if (firstNode.next) {\n firstNode.next.prev = firstNode;\n }\n for (var i = 1; i < textNodes.length; i += 1) {\n firstNode.literal += textNodes[i].literal;\n textNodes[i].unlink();\n }\n textNodes = [];\n }\n }\n };\n InlineParser.prototype.getReferenceDefSourcepos = function (block) {\n var lines = block.stringContent.split(/\\n|\\r\\n/);\n var passedUrlLine = false;\n var quotationCount = 0;\n var lastLineOffset = { line: 0, ch: 0 };\n for (var i = 0; i < lines.length; i += 1) {\n var line = lines[i];\n if (reWhitespaceChar.test(line)) {\n break;\n }\n if (/\\:/.test(line) && quotationCount === 0) {\n if (passedUrlLine) {\n break;\n }\n var lineOffset = line.indexOf(':') === line.length - 1 ? i + 1 : i;\n lastLineOffset = { line: lineOffset, ch: lines[lineOffset].length };\n passedUrlLine = true;\n }\n // should consider extendable title\n var matched = line.match(/'|\"/g);\n if (matched) {\n quotationCount += matched.length;\n }\n if (quotationCount === 2) {\n lastLineOffset = { line: i, ch: line.length };\n break;\n }\n }\n return [\n [block.sourcepos[0][0], block.sourcepos[0][1]],\n [block.sourcepos[0][0] + lastLineOffset.line, lastLineOffset.ch],\n ];\n };\n // Parse the next inline element in subject, advancing subject position.\n // On success, add the result to block's children and return true.\n // On failure, return false.\n InlineParser.prototype.parseInline = function (block) {\n var _a;\n var res = false;\n var c = this.peek();\n if (c === -1) {\n return false;\n }\n switch (c) {\n case C_NEWLINE:\n res = this.parseNewline(block);\n break;\n case C_BACKSLASH:\n res = this.parseBackslash(block);\n break;\n case C_BACKTICK:\n res = this.parseBackticks(block);\n break;\n case C_ASTERISK:\n case C_UNDERSCORE:\n case C_TILDE:\n case C_DOLLAR:\n res = this.handleDelim(c, block);\n break;\n case C_SINGLEQUOTE:\n case C_DOUBLEQUOTE:\n res = !!((_a = this.options) === null || _a === void 0 ? void 0 : _a.smart) && this.handleDelim(c, block);\n break;\n case C_OPEN_BRACKET$1:\n res = this.parseOpenBracket(block);\n break;\n case C_BANG:\n res = this.parseBang(block);\n break;\n case C_CLOSE_BRACKET:\n res = this.parseCloseBracket(block);\n break;\n case C_LESSTHAN$1:\n res = this.parseAutolink(block) || this.parseHtmlTag(block);\n break;\n case C_AMPERSAND:\n if (!block.disabledEntityParse) {\n res = this.parseEntity(block);\n }\n break;\n default:\n res = this.parseString(block);\n break;\n }\n if (!res) {\n this.pos += 1;\n block.appendChild(esm_text(fromCodePoint$1(c), this.sourcepos(this.pos, this.pos + 1)));\n }\n return true;\n };\n // Parse string content in block into inline children,\n // using refmap to resolve references.\n InlineParser.prototype.parse = function (block) {\n this.subject = block.stringContent.trim();\n this.pos = 0;\n this.delimiters = null;\n this.brackets = null;\n this.lineOffsets = block.lineOffsets || [0];\n this.lineIdx = 0;\n this.linePosOffset = 0;\n this.lineStartNum = block.sourcepos[0][0];\n if (isHeading(block)) {\n this.lineOffsets[0] += block.level + 1;\n }\n while (this.parseInline(block)) { }\n block.stringContent = null; // allow raw string to be garbage collected\n this.processEmphasis(null);\n this.mergeTextNodes(block.walker());\n var _a = this.options, extendedAutolinks = _a.extendedAutolinks, customParser = _a.customParser;\n if (extendedAutolinks) {\n convertExtAutoLinks(block.walker(), extendedAutolinks);\n }\n if (customParser && block.firstChild) {\n var event_1;\n var walker = block.firstChild.walker();\n while ((event_1 = walker.next())) {\n var node = event_1.node, entering = event_1.entering;\n if (customParser[node.type]) {\n customParser[node.type](node, { entering: entering, options: this.options });\n }\n }\n }\n };\n return InlineParser;\n}());\nvar reTaskListItemMarker = /^\\[([ \\txX])\\][ \\t]+/;\n// finalize for block handler\nfunction taskListItemFinalize(_, block) {\n if (block.firstChild && block.firstChild.type === 'paragraph') {\n var p = block.firstChild;\n var m = p.stringContent.match(reTaskListItemMarker);\n if (m) {\n var mLen = m[0].length;\n p.stringContent = p.stringContent.substring(mLen - 1);\n p.sourcepos[0][1] += mLen;\n p.lineOffsets[0] += mLen;\n block.listData.task = true;\n block.listData.checked = /[xX]/.test(m[1]);\n }\n }\n}\nvar table = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableHead' || t === 'tableBody';\n },\n acceptsLines: false,\n};\nvar tableBody$1 = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableRow';\n },\n acceptsLines: false,\n};\nvar tableHead$1 = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableRow' || t === 'tableDelimRow';\n },\n acceptsLines: false,\n};\nvar tableDelimRow = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableDelimCell';\n },\n acceptsLines: false,\n};\nvar tableDelimCell = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar tableRow = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t === 'tableCell';\n },\n acceptsLines: false,\n};\nvar tableCell = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar CODE_INDENT = 4;\nvar C_TAB = 9;\nvar C_GREATERTHAN = 62;\nvar C_LESSTHAN = 60;\nvar C_SPACE = 32;\nvar C_OPEN_BRACKET = 91;\nvar reNonSpace = /[^ \\t\\f\\v\\r\\n]/;\nvar reClosingCodeFence = /^(?:`{3,}|~{3,})(?= *$)/;\n// Returns true if block ends with a blank line, descending if needed\n// into lists and sublists.\nfunction endsWithBlankLine(block) {\n var curBlock = block;\n while (curBlock) {\n if (curBlock.lastLineBlank) {\n return true;\n }\n var t = curBlock.type;\n if (!curBlock.lastLineChecked && (t === 'list' || t === 'item')) {\n curBlock.lastLineChecked = true;\n curBlock = curBlock.lastChild;\n }\n else {\n curBlock.lastLineChecked = true;\n break;\n }\n }\n return false;\n}\nfunction peek(ln, pos) {\n if (pos < ln.length) {\n return ln.charCodeAt(pos);\n }\n return -1;\n}\n// Returns true if string contains only space characters.\nfunction isBlank(s) {\n return !reNonSpace.test(s);\n}\nfunction isSpaceOrTab(c) {\n return c === C_SPACE || c === C_TAB;\n}\nvar reClosingCustomBlock = /^\\$\\$$/;\nvar customBlock$1 = {\n continue: function (parser, container) {\n var line = parser.currentLine;\n var match = line.match(reClosingCustomBlock);\n if (match) {\n // closing custom block\n parser.lastLineLength = match[0].length;\n parser.finalize(container, parser.lineNumber);\n return 2 /* Finished */;\n }\n // skip optional spaces of custom block offset\n var i = container.offset;\n while (i > 0 && isSpaceOrTab(peek(line, parser.offset))) {\n parser.advanceOffset(1, true);\n i--;\n }\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n if (block.stringContent === null) {\n return;\n }\n // first line becomes info string\n var content = block.stringContent;\n var newlinePos = content.indexOf('\\n');\n var firstLine = content.slice(0, newlinePos);\n var rest = content.slice(newlinePos + 1);\n var infoString = firstLine.match(/^(\\s*)(.*)/);\n block.info = unescapeString(infoString[2].trim());\n block.literal = rest;\n block.stringContent = null;\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar noop = {\n continue: function () {\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar document$1 = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t !== 'item';\n },\n acceptsLines: false,\n};\nvar list = {\n continue: function () {\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n var item = block.firstChild;\n while (item) {\n // check for non-final list item ending with blank line:\n if (endsWithBlankLine(item) && item.next) {\n block.listData.tight = false;\n break;\n }\n // recurse into children of list item, to see if there are\n // spaces between any of them:\n var subitem = item.firstChild;\n while (subitem) {\n if (endsWithBlankLine(subitem) && (item.next || subitem.next)) {\n block.listData.tight = false;\n break;\n }\n subitem = subitem.next;\n }\n item = item.next;\n }\n },\n canContain: function (t) {\n return t === 'item';\n },\n acceptsLines: false,\n};\nvar blockQuote$1 = {\n continue: function (parser) {\n var ln = parser.currentLine;\n if (!parser.indented && peek(ln, parser.nextNonspace) === C_GREATERTHAN) {\n parser.advanceNextNonspace();\n parser.advanceOffset(1, false);\n if (isSpaceOrTab(peek(ln, parser.offset))) {\n parser.advanceOffset(1, true);\n }\n }\n else {\n return 1 /* Stop */;\n }\n return 0 /* Go */;\n },\n finalize: function () { },\n canContain: function (t) {\n return t !== 'item';\n },\n acceptsLines: false,\n};\nvar item = {\n continue: function (parser, container) {\n if (parser.blank) {\n if (container.firstChild === null) {\n // Blank line after empty list item\n return 1 /* Stop */;\n }\n parser.advanceNextNonspace();\n }\n else if (parser.indent >= container.listData.markerOffset + container.listData.padding) {\n parser.advanceOffset(container.listData.markerOffset + container.listData.padding, true);\n }\n else {\n return 1 /* Stop */;\n }\n return 0 /* Go */;\n },\n finalize: taskListItemFinalize,\n canContain: function (t) {\n return t !== 'item';\n },\n acceptsLines: false,\n};\nvar heading = {\n continue: function () {\n // a heading can never container > 1 line, so fail to match:\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar thematicBreak$1 = {\n continue: function () {\n // a thematic break can never container > 1 line, so fail to match:\n return 1 /* Stop */;\n },\n finalize: function () { },\n canContain: function () {\n return false;\n },\n acceptsLines: false,\n};\nvar codeBlock = {\n continue: function (parser, container) {\n var ln = parser.currentLine;\n var indent = parser.indent;\n if (container.isFenced) {\n // fenced\n var match = indent <= 3 &&\n ln.charAt(parser.nextNonspace) === container.fenceChar &&\n ln.slice(parser.nextNonspace).match(reClosingCodeFence);\n if (match && match[0].length >= container.fenceLength) {\n // closing fence - we're at end of line, so we can return\n parser.lastLineLength = parser.offset + indent + match[0].length;\n parser.finalize(container, parser.lineNumber);\n return 2 /* Finished */;\n }\n // skip optional spaces of fence offset\n var i = container.fenceOffset;\n while (i > 0 && isSpaceOrTab(peek(ln, parser.offset))) {\n parser.advanceOffset(1, true);\n i--;\n }\n }\n else {\n // indented\n if (indent >= CODE_INDENT) {\n parser.advanceOffset(CODE_INDENT, true);\n }\n else if (parser.blank) {\n parser.advanceNextNonspace();\n }\n else {\n return 1 /* Stop */;\n }\n }\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n var _a;\n if (block.stringContent === null) {\n return;\n }\n if (block.isFenced) {\n // fenced\n // first line becomes info string\n var content = block.stringContent;\n var newlinePos = content.indexOf('\\n');\n var firstLine = content.slice(0, newlinePos);\n var rest = content.slice(newlinePos + 1);\n var infoString = firstLine.match(/^(\\s*)(.*)/);\n block.infoPadding = infoString[1].length;\n block.info = unescapeString(infoString[2].trim());\n block.literal = rest;\n }\n else {\n // indented\n block.literal = (_a = block.stringContent) === null || _a === void 0 ? void 0 : _a.replace(/(\\n *)+$/, '\\n');\n }\n block.stringContent = null; // allow GC\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar htmlBlock$1 = {\n continue: function (parser, container) {\n return parser.blank && (container.htmlBlockType === 6 || container.htmlBlockType === 7)\n ? 1 /* Stop */\n : 0 /* Go */;\n },\n finalize: function (_, block) {\n var _a;\n block.literal = ((_a = block.stringContent) === null || _a === void 0 ? void 0 : _a.replace(/(\\n *)+$/, '')) || null;\n block.stringContent = null; // allow GC\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar paragraph = {\n continue: function (parser) {\n return parser.blank ? 1 /* Stop */ : 0 /* Go */;\n },\n finalize: function (parser, block) {\n if (block.stringContent === null) {\n return;\n }\n var pos;\n var hasReferenceDefs = false;\n // try parsing the beginning as link reference definitions:\n while (peek(block.stringContent, 0) === C_OPEN_BRACKET &&\n (pos = parser.inlineParser.parseReference(block, parser.refMap))) {\n block.stringContent = block.stringContent.slice(pos);\n hasReferenceDefs = true;\n }\n if (hasReferenceDefs && isBlank(block.stringContent)) {\n block.unlink();\n }\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar refDef = noop;\nvar frontMatter$2 = noop;\nvar blockHandlers = {\n document: document$1,\n list: list,\n blockQuote: blockQuote$1,\n item: item,\n heading: heading,\n thematicBreak: thematicBreak$1,\n codeBlock: codeBlock,\n htmlBlock: htmlBlock$1,\n paragraph: paragraph,\n table: table,\n tableBody: tableBody$1,\n tableHead: tableHead$1,\n tableRow: tableRow,\n tableCell: tableCell,\n tableDelimRow: tableDelimRow,\n tableDelimCell: tableDelimCell,\n refDef: refDef,\n customBlock: customBlock$1,\n frontMatter: frontMatter$2,\n};\nfunction parseRowContent(content) {\n var startIdx = 0;\n var offset = 0;\n var cells = [];\n for (var i = 0; i < content.length; i += 1) {\n if (content[i] === '|' && content[i - 1] !== '\\\\') {\n var cell = content.substring(startIdx, i);\n if (startIdx === 0 && isEmpty(cell)) {\n offset = i + 1;\n }\n else {\n cells.push(cell);\n }\n startIdx = i + 1;\n }\n }\n if (startIdx < content.length) {\n var cell = content.substring(startIdx, content.length);\n if (!isEmpty(cell)) {\n cells.push(cell);\n }\n }\n return [offset, cells];\n}\nfunction generateTableCells(cellType, contents, lineNum, chPos) {\n var cells = [];\n for (var _i = 0, contents_1 = contents; _i < contents_1.length; _i++) {\n var content = contents_1[_i];\n var preSpaces = content.match(/^[ \\t]+/);\n var paddingLeft = preSpaces ? preSpaces[0].length : 0;\n var paddingRight = void 0, trimmed = void 0;\n if (paddingLeft === content.length) {\n paddingLeft = 0;\n paddingRight = 0;\n trimmed = '';\n }\n else {\n var postSpaces = content.match(/[ \\t]+$/);\n paddingRight = postSpaces ? postSpaces[0].length : 0;\n trimmed = content.slice(paddingLeft, content.length - paddingRight);\n }\n var chPosStart = chPos + paddingLeft;\n var tableCell = createNode(cellType, [\n [lineNum, chPos],\n [lineNum, chPos + content.length - 1],\n ]);\n tableCell.stringContent = trimmed.replace(/\\\\\\|/g, '|'); // replace esacped pipe(\\|)\n tableCell.startIdx = cells.length;\n tableCell.endIdx = cells.length;\n tableCell.lineOffsets = [chPosStart - 1];\n tableCell.paddingLeft = paddingLeft;\n tableCell.paddingRight = paddingRight;\n cells.push(tableCell);\n chPos += content.length + 1;\n }\n return cells;\n}\nfunction getColumnFromDelimCell(cellNode) {\n var align = null;\n var content = cellNode.stringContent;\n var firstCh = content[0];\n var lastCh = content[content.length - 1];\n if (lastCh === ':') {\n align = firstCh === ':' ? 'center' : 'right';\n }\n else if (firstCh === ':') {\n align = 'left';\n }\n return { align: align };\n}\nvar tableHead = function (parser, container) {\n var stringContent = container.stringContent;\n if (container.type === 'paragraph' && !parser.indented && !parser.blank) {\n var lastNewLineIdx = stringContent.length - 1;\n var lastLineStartIdx = stringContent.lastIndexOf('\\n', lastNewLineIdx - 1) + 1;\n var headerContent = stringContent.slice(lastLineStartIdx, lastNewLineIdx);\n var delimContent = parser.currentLine.slice(parser.nextNonspace);\n var _a = parseRowContent(headerContent), headerOffset = _a[0], headerCells = _a[1];\n var _b = parseRowContent(delimContent), delimOffset = _b[0], delimCells = _b[1];\n var reValidDelimCell_1 = /^[ \\t]*:?-+:?[ \\t]*$/;\n if (\n // not checking if the number of header cells and delimiter cells are the same\n // to consider the case of merged-column (via plugin)\n !headerCells.length ||\n !delimCells.length ||\n delimCells.some(function (cell) { return !reValidDelimCell_1.test(cell); }) ||\n // to prevent to regard setTextHeading as tabel delim cell with 'disallowDeepHeading' option\n (delimCells.length === 1 && delimContent.indexOf('|') !== 0)) {\n return 0 /* None */;\n }\n var lineOffsets = container.lineOffsets;\n var firstLineNum = parser.lineNumber - 1;\n var firstLineStart = last(lineOffsets) + 1;\n var table = createNode('table', [\n [firstLineNum, firstLineStart],\n [parser.lineNumber, parser.offset],\n ]);\n // eslint-disable-next-line arrow-body-style\n table.columns = delimCells.map(function () { return ({ align: null }); });\n container.insertAfter(table);\n if (lineOffsets.length === 1) {\n container.unlink();\n }\n else {\n container.stringContent = stringContent.slice(0, lastLineStartIdx);\n var paraLastLineStartIdx = stringContent.lastIndexOf('\\n', lastLineStartIdx - 2) + 1;\n var paraLastLineLen = lastLineStartIdx - paraLastLineStartIdx - 1;\n parser.lastLineLength = lineOffsets[lineOffsets.length - 2] + paraLastLineLen;\n parser.finalize(container, firstLineNum - 1);\n }\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n var tableHead_1 = createNode('tableHead', [\n [firstLineNum, firstLineStart],\n [parser.lineNumber, parser.offset],\n ]);\n table.appendChild(tableHead_1);\n var tableHeadRow_1 = createNode('tableRow', [\n [firstLineNum, firstLineStart],\n [firstLineNum, firstLineStart + headerContent.length - 1],\n ]);\n var tableDelimRow_1 = createNode('tableDelimRow', [\n [parser.lineNumber, parser.nextNonspace + 1],\n [parser.lineNumber, parser.offset],\n ]);\n tableHead_1.appendChild(tableHeadRow_1);\n tableHead_1.appendChild(tableDelimRow_1);\n generateTableCells('tableCell', headerCells, firstLineNum, firstLineStart + headerOffset).forEach(function (cellNode) {\n tableHeadRow_1.appendChild(cellNode);\n });\n var delimCellNodes = generateTableCells('tableDelimCell', delimCells, parser.lineNumber, parser.nextNonspace + 1 + delimOffset);\n delimCellNodes.forEach(function (cellNode) {\n tableDelimRow_1.appendChild(cellNode);\n });\n table.columns = delimCellNodes.map(getColumnFromDelimCell);\n parser.tip = table;\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar tableBody = function (parser, container) {\n if ((container.type !== 'table' && container.type !== 'tableBody') ||\n (!parser.blank && parser.currentLine.indexOf('|') === -1)) {\n return 0 /* None */;\n }\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n if (parser.blank) {\n var table_1 = container;\n if (container.type === 'tableBody') {\n table_1 = container.parent;\n parser.finalize(container, parser.lineNumber - 1);\n }\n parser.finalize(table_1, parser.lineNumber - 1);\n return 0 /* None */;\n }\n var tableBody = container;\n if (container.type === 'table') {\n tableBody = parser.addChild('tableBody', parser.nextNonspace);\n tableBody.stringContent = null;\n }\n var tableRow = createNode('tableRow', [\n [parser.lineNumber, parser.nextNonspace + 1],\n [parser.lineNumber, parser.currentLine.length],\n ]);\n tableBody.appendChild(tableRow);\n var table = tableBody.parent;\n var content = parser.currentLine.slice(parser.nextNonspace);\n var _a = parseRowContent(content), offset = _a[0], cellContents = _a[1];\n generateTableCells('tableCell', cellContents, parser.lineNumber, parser.nextNonspace + 1 + offset).forEach(function (cellNode, idx) {\n if (idx >= table.columns.length) {\n cellNode.ignored = true;\n }\n tableRow.appendChild(cellNode);\n });\n return 2 /* Leaf */;\n};\nvar reCustomBlock = /^(\\$\\$)(\\s*[a-zA-Z])+/;\nvar reCanBeCustomInline = /^(\\$\\$)(\\s*[a-zA-Z])+.*(\\$\\$)/;\nvar customBlock = function (parser) {\n var match;\n if (!parser.indented &&\n !reCanBeCustomInline.test(parser.currentLine) &&\n (match = parser.currentLine.match(reCustomBlock))) {\n var syntaxLength = match[1].length;\n parser.closeUnmatchedBlocks();\n var container = parser.addChild('customBlock', parser.nextNonspace);\n container.syntaxLength = syntaxLength;\n container.offset = parser.indent;\n parser.advanceNextNonspace();\n parser.advanceOffset(syntaxLength, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar reCodeFence = /^`{3,}(?!.*`)|^~{3,}/;\nvar reHtmlBlockOpen = [\n /./,\n /^<(?:script|pre|style)(?:\\s|>|$)/i,\n /^<!--/,\n /^<[?]/,\n /^<![A-Z]/,\n /^<!\\[CDATA\\[/,\n /^<[/]?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[123456]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\\s|[/]?[>]|$)/i,\n new RegExp(\"^(?:\" + OPENTAG + \"|\" + CLOSETAG + \")\\\\s*$\", 'i'),\n];\nvar reSetextHeadingLine = /^(?:=+|-+)[ \\t]*$/;\nvar reATXHeadingMarker = /^#{1,6}(?:[ \\t]+|$)/;\nvar reThematicBreak = /^(?:(?:\\*[ \\t]*){3,}|(?:_[ \\t]*){3,}|(?:-[ \\t]*){3,})[ \\t]*$/;\nvar reBulletListMarker = /^[*+-]/;\nvar reOrderedListMarker = /^(\\d{1,9})([.)])/;\n// Parse a list marker and return data on the marker (type,\n// start, delimiter, bullet character, padding) or null.\nfunction parseListMarker(parser, container) {\n var rest = parser.currentLine.slice(parser.nextNonspace);\n var match;\n var nextc;\n var data = {\n type: 'bullet',\n tight: true,\n bulletChar: '',\n start: 0,\n delimiter: '',\n padding: 0,\n markerOffset: parser.indent,\n // GFM: Task List Item\n task: false,\n checked: false,\n };\n if (parser.indent >= 4) {\n return null;\n }\n if ((match = rest.match(reBulletListMarker))) {\n data.type = 'bullet';\n data.bulletChar = match[0][0];\n }\n else if ((match = rest.match(reOrderedListMarker)) &&\n (container.type !== 'paragraph' || match[1] === '1')) {\n data.type = 'ordered';\n data.start = parseInt(match[1], 10);\n data.delimiter = match[2];\n }\n else {\n return null;\n }\n // make sure we have spaces after\n nextc = peek(parser.currentLine, parser.nextNonspace + match[0].length);\n if (!(nextc === -1 || nextc === C_TAB || nextc === C_SPACE)) {\n return null;\n }\n // if it interrupts paragraph, make sure first line isn't blank\n if (container.type === 'paragraph' &&\n !parser.currentLine.slice(parser.nextNonspace + match[0].length).match(reNonSpace)) {\n return null;\n }\n // we've got a match! advance offset and calculate padding\n parser.advanceNextNonspace(); // to start of marker\n parser.advanceOffset(match[0].length, true); // to end of marker\n var spacesStartCol = parser.column;\n var spacesStartOffset = parser.offset;\n do {\n parser.advanceOffset(1, true);\n nextc = peek(parser.currentLine, parser.offset);\n } while (parser.column - spacesStartCol < 5 && isSpaceOrTab(nextc));\n var blankItem = peek(parser.currentLine, parser.offset) === -1;\n var spacesAfterMarker = parser.column - spacesStartCol;\n if (spacesAfterMarker >= 5 || spacesAfterMarker < 1 || blankItem) {\n data.padding = match[0].length + 1;\n parser.column = spacesStartCol;\n parser.offset = spacesStartOffset;\n if (isSpaceOrTab(peek(parser.currentLine, parser.offset))) {\n parser.advanceOffset(1, true);\n }\n }\n else {\n data.padding = match[0].length + spacesAfterMarker;\n }\n return data;\n}\n// Returns true if the two list items are of the same type,\n// with the same delimiter and bullet character. This is used\n// in agglomerating list items into lists.\nfunction listsMatch(listData, itemData) {\n return (listData.type === itemData.type &&\n listData.delimiter === itemData.delimiter &&\n listData.bulletChar === itemData.bulletChar);\n}\nfunction isDisallowedDeepHeading(parser, node) {\n return parser.options.disallowDeepHeading && (node.type === 'blockQuote' || node.type === 'item');\n}\nvar blockQuote = function (parser) {\n if (!parser.indented && peek(parser.currentLine, parser.nextNonspace) === C_GREATERTHAN) {\n parser.advanceNextNonspace();\n parser.advanceOffset(1, false);\n // optional following space\n if (isSpaceOrTab(peek(parser.currentLine, parser.offset))) {\n parser.advanceOffset(1, true);\n }\n parser.closeUnmatchedBlocks();\n parser.addChild('blockQuote', parser.nextNonspace);\n return 1 /* Container */;\n }\n return 0 /* None */;\n};\nvar atxHeading = function (parser, container) {\n var match;\n if (!parser.indented &&\n // The nested Heading is disallowed in list and blockquote with 'disallowDeepHeading' option\n !isDisallowedDeepHeading(parser, container) &&\n (match = parser.currentLine.slice(parser.nextNonspace).match(reATXHeadingMarker))) {\n parser.advanceNextNonspace();\n parser.advanceOffset(match[0].length, false);\n parser.closeUnmatchedBlocks();\n var heading = parser.addChild('heading', parser.nextNonspace);\n heading.level = match[0].trim().length; // number of #s\n heading.headingType = 'atx';\n // remove trailing ###s:\n heading.stringContent = parser.currentLine\n .slice(parser.offset)\n .replace(/^[ \\t]*#+[ \\t]*$/, '')\n .replace(/[ \\t]+#+[ \\t]*$/, '');\n parser.advanceOffset(parser.currentLine.length - parser.offset);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar fencedCodeBlock = function (parser) {\n var match;\n if (!parser.indented &&\n (match = parser.currentLine.slice(parser.nextNonspace).match(reCodeFence))) {\n var fenceLength = match[0].length;\n parser.closeUnmatchedBlocks();\n var container = parser.addChild('codeBlock', parser.nextNonspace);\n container.isFenced = true;\n container.fenceLength = fenceLength;\n container.fenceChar = match[0][0];\n container.fenceOffset = parser.indent;\n parser.advanceNextNonspace();\n parser.advanceOffset(fenceLength, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar htmlBlock = function (parser, container) {\n if (!parser.indented && peek(parser.currentLine, parser.nextNonspace) === C_LESSTHAN) {\n var s = parser.currentLine.slice(parser.nextNonspace);\n var disallowedTags = parser.options.disallowedHtmlBlockTags;\n var blockType = void 0;\n for (blockType = 1; blockType <= 7; blockType++) {\n var matched = s.match(reHtmlBlockOpen[blockType]);\n if (matched) {\n if (blockType === 7) {\n if (container.type === 'paragraph') {\n return 0 /* None */;\n }\n if (disallowedTags.length > 0) {\n var reDisallowedTags = new RegExp(\"</?(?:\" + disallowedTags.join('|') + \")\", 'i');\n if (reDisallowedTags.test(matched[0])) {\n return 0 /* None */;\n }\n }\n }\n parser.closeUnmatchedBlocks();\n // We don't adjust parser.offset;\n // spaces are part of the HTML block:\n var b = parser.addChild('htmlBlock', parser.offset);\n b.htmlBlockType = blockType;\n return 2 /* Leaf */;\n }\n }\n }\n return 0 /* None */;\n};\nvar seTextHeading = function (parser, container) {\n var match;\n if (container.stringContent !== null &&\n !parser.indented &&\n container.type === 'paragraph' &&\n // The nested Heading is disallowed in list and blockquote with 'disallowDeepHeading' option\n !isDisallowedDeepHeading(parser, container.parent) &&\n (match = parser.currentLine.slice(parser.nextNonspace).match(reSetextHeadingLine))) {\n parser.closeUnmatchedBlocks();\n // resolve reference link definitions\n var pos = void 0;\n while (peek(container.stringContent, 0) === C_OPEN_BRACKET &&\n (pos = parser.inlineParser.parseReference(container, parser.refMap))) {\n container.stringContent = container.stringContent.slice(pos);\n }\n if (container.stringContent.length > 0) {\n var heading = createNode('heading', container.sourcepos);\n heading.level = match[0][0] === '=' ? 1 : 2;\n heading.headingType = 'setext';\n heading.stringContent = container.stringContent;\n container.insertAfter(heading);\n container.unlink();\n parser.tip = heading;\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n }\n return 0 /* None */;\n};\nvar thematicBreak = function (parser) {\n if (!parser.indented && reThematicBreak.test(parser.currentLine.slice(parser.nextNonspace))) {\n parser.closeUnmatchedBlocks();\n parser.addChild('thematicBreak', parser.nextNonspace);\n parser.advanceOffset(parser.currentLine.length - parser.offset, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar listItem = function (parser, container) {\n var data;\n var currNode = container;\n if ((!parser.indented || container.type === 'list') &&\n (data = parseListMarker(parser, currNode))) {\n parser.closeUnmatchedBlocks();\n // add the list if needed\n if (parser.tip.type !== 'list' || !listsMatch(currNode.listData, data)) {\n currNode = parser.addChild('list', parser.nextNonspace);\n currNode.listData = data;\n }\n // add the list item\n currNode = parser.addChild('item', parser.nextNonspace);\n currNode.listData = data;\n return 1 /* Container */;\n }\n return 0 /* None */;\n};\n// indented code block\nvar indentedCodeBlock = function (parser) {\n if (parser.indented && parser.tip.type !== 'paragraph' && !parser.blank) {\n // indented code\n parser.advanceOffset(CODE_INDENT, true);\n parser.closeUnmatchedBlocks();\n parser.addChild('codeBlock', parser.offset);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar blockStarts = [\n blockQuote,\n atxHeading,\n fencedCodeBlock,\n htmlBlock,\n seTextHeading,\n thematicBreak,\n listItem,\n indentedCodeBlock,\n tableHead,\n tableBody,\n customBlock,\n];\n// `---` for YAML, `+++` for TOML, `;;;` for JSON\nvar reFrontMatter = /^(-{3}|\\+{3}|;{3})$/;\nvar frontMatter$1 = function (parser, container) {\n var currentLine = parser.currentLine, lineNumber = parser.lineNumber, indented = parser.indented;\n if (lineNumber === 1 &&\n !indented &&\n container.type === 'document' &&\n reFrontMatter.test(currentLine)) {\n parser.closeUnmatchedBlocks();\n var frontMatter_1 = parser.addChild('frontMatter', parser.nextNonspace);\n frontMatter_1.stringContent = currentLine;\n parser.advanceNextNonspace();\n parser.advanceOffset(currentLine.length, false);\n return 2 /* Leaf */;\n }\n return 0 /* None */;\n};\nvar frontMatter = {\n continue: function (parser, container) {\n var line = parser.currentLine;\n var match = line.match(reFrontMatter);\n if (container.type === 'frontMatter' && match) {\n container.stringContent += line;\n parser.lastLineLength = match[0].length;\n parser.finalize(container, parser.lineNumber);\n return 2 /* Finished */;\n }\n return 0 /* Go */;\n },\n finalize: function (_, block) {\n if (block.stringContent === null) {\n return;\n }\n block.literal = block.stringContent;\n block.stringContent = null;\n },\n canContain: function () {\n return false;\n },\n acceptsLines: true,\n};\nvar reHtmlBlockClose = [\n /./,\n /<\\/(?:script|pre|style)>/i,\n /-->/,\n /\\?>/,\n />/,\n /\\]\\]>/,\n];\nvar reMaybeSpecial = /^[#`~*+_=<>0-9-;$]/;\nvar reLineEnding$1 = /\\r\\n|\\n|\\r/;\nfunction esm_document() {\n return createNode('document', [\n [1, 1],\n [0, 0],\n ]);\n}\nvar defaultOptions$1 = {\n smart: false,\n tagFilter: false,\n extendedAutolinks: false,\n disallowedHtmlBlockTags: [],\n referenceDefinition: false,\n disallowDeepHeading: false,\n customParser: null,\n frontMatter: false,\n};\nvar Parser = /** @class */ (function () {\n function Parser(options) {\n this.options = esm_assign(esm_assign({}, defaultOptions$1), options);\n this.doc = esm_document();\n this.tip = this.doc;\n this.oldtip = this.doc;\n this.lineNumber = 0;\n this.offset = 0;\n this.column = 0;\n this.nextNonspace = 0;\n this.nextNonspaceColumn = 0;\n this.indent = 0;\n this.currentLine = '';\n this.indented = false;\n this.blank = false;\n this.partiallyConsumedTab = false;\n this.allClosed = true;\n this.lastMatchedContainer = this.doc;\n this.refMap = {};\n this.refLinkCandidateMap = {};\n this.refDefCandidateMap = {};\n this.lastLineLength = 0;\n this.lines = [];\n if (this.options.frontMatter) {\n blockHandlers.frontMatter = frontMatter;\n blockStarts.unshift(frontMatter$1);\n }\n this.inlineParser = new InlineParser(this.options);\n }\n Parser.prototype.advanceOffset = function (count, columns) {\n if (columns === void 0) {\n columns = false;\n }\n var currentLine = this.currentLine;\n var charsToTab, charsToAdvance;\n var c;\n while (count > 0 && (c = currentLine[this.offset])) {\n if (c === '\\t') {\n charsToTab = 4 - (this.column % 4);\n if (columns) {\n this.partiallyConsumedTab = charsToTab > count;\n charsToAdvance = charsToTab > count ? count : charsToTab;\n this.column += charsToAdvance;\n this.offset += this.partiallyConsumedTab ? 0 : 1;\n count -= charsToAdvance;\n }\n else {\n this.partiallyConsumedTab = false;\n this.column += charsToTab;\n this.offset += 1;\n count -= 1;\n }\n }\n else {\n this.partiallyConsumedTab = false;\n this.offset += 1;\n this.column += 1; // assume ascii; block starts are ascii\n count -= 1;\n }\n }\n };\n Parser.prototype.advanceNextNonspace = function () {\n this.offset = this.nextNonspace;\n this.column = this.nextNonspaceColumn;\n this.partiallyConsumedTab = false;\n };\n Parser.prototype.findNextNonspace = function () {\n var currentLine = this.currentLine;\n var i = this.offset;\n var cols = this.column;\n var c;\n while ((c = currentLine.charAt(i)) !== '') {\n if (c === ' ') {\n i++;\n cols++;\n }\n else if (c === '\\t') {\n i++;\n cols += 4 - (cols % 4);\n }\n else {\n break;\n }\n }\n this.blank = c === '\\n' || c === '\\r' || c === '';\n this.nextNonspace = i;\n this.nextNonspaceColumn = cols;\n this.indent = this.nextNonspaceColumn - this.column;\n this.indented = this.indent >= CODE_INDENT;\n };\n // Add a line to the block at the tip. We assume the tip\n // can accept lines -- that check should be done before calling this.\n Parser.prototype.addLine = function () {\n if (this.partiallyConsumedTab) {\n this.offset += 1; // skip over tab\n // add space characters:\n var charsToTab = 4 - (this.column % 4);\n this.tip.stringContent += repeat(' ', charsToTab);\n }\n if (this.tip.lineOffsets) {\n this.tip.lineOffsets.push(this.offset);\n }\n else {\n this.tip.lineOffsets = [this.offset];\n }\n this.tip.stringContent += this.currentLine.slice(this.offset) + \"\\n\";\n };\n // Add block of type tag as a child of the tip. If the tip can't\n // accept children, close and finalize it and try its parent,\n // and so on til we find a block that can accept children.\n Parser.prototype.addChild = function (tag, offset) {\n while (!blockHandlers[this.tip.type].canContain(tag)) {\n this.finalize(this.tip, this.lineNumber - 1);\n }\n var columnNumber = offset + 1; // offset 0 = column 1\n var newBlock = createNode(tag, [\n [this.lineNumber, columnNumber],\n [0, 0],\n ]);\n newBlock.stringContent = '';\n this.tip.appendChild(newBlock);\n this.tip = newBlock;\n return newBlock;\n };\n // Finalize and close any unmatched blocks.\n Parser.prototype.closeUnmatchedBlocks = function () {\n if (!this.allClosed) {\n // finalize any blocks not matched\n while (this.oldtip !== this.lastMatchedContainer) {\n var parent_1 = this.oldtip.parent;\n this.finalize(this.oldtip, this.lineNumber - 1);\n this.oldtip = parent_1;\n }\n this.allClosed = true;\n }\n };\n // Finalize a block. Close it and do any necessary postprocessing,\n // e.g. creating stringContent from strings, setting the 'tight'\n // or 'loose' status of a list, and parsing the beginnings\n // of paragraphs for reference definitions. Reset the tip to the\n // parent of the closed block.\n Parser.prototype.finalize = function (block, lineNumber) {\n var above = block.parent;\n block.open = false;\n block.sourcepos[1] = [lineNumber, this.lastLineLength];\n blockHandlers[block.type].finalize(this, block);\n this.tip = above;\n };\n // Walk through a block & children recursively, parsing string content\n // into inline content where appropriate.\n Parser.prototype.processInlines = function (block) {\n var event;\n var customParser = this.options.customParser;\n var walker = block.walker();\n this.inlineParser.refMap = this.refMap;\n this.inlineParser.refLinkCandidateMap = this.refLinkCandidateMap;\n this.inlineParser.refDefCandidateMap = this.refDefCandidateMap;\n this.inlineParser.options = this.options;\n while ((event = walker.next())) {\n var node = event.node, entering = event.entering;\n var t = node.type;\n if (customParser && customParser[t]) {\n customParser[t](node, { entering: entering, options: this.options });\n }\n if (!entering &&\n (t === 'paragraph' ||\n t === 'heading' ||\n (t === 'tableCell' && !node.ignored))) {\n this.inlineParser.parse(node);\n }\n }\n };\n // Analyze a line of text and update the document appropriately.\n // We parse markdown text by calling this on each line of input,\n // then finalizing the document.\n Parser.prototype.incorporateLine = function (ln) {\n var container = this.doc;\n this.oldtip = this.tip;\n this.offset = 0;\n this.column = 0;\n this.blank = false;\n this.partiallyConsumedTab = false;\n this.lineNumber += 1;\n // replace NUL characters for security\n if (ln.indexOf('\\u0000') !== -1) {\n ln = ln.replace(/\\0/g, '\\uFFFD');\n }\n this.currentLine = ln;\n // For each containing block, try to parse the associated line start.\n // Bail out on failure: container will point to the last matching block.\n // Set allMatched to false if not all containers match.\n var allMatched = true;\n var lastChild;\n while ((lastChild = container.lastChild) && lastChild.open) {\n container = lastChild;\n this.findNextNonspace();\n switch (blockHandlers[container.type]['continue'](this, container)) {\n case 0 /* Go */: // we've matched, keep going\n break;\n case 1 /* Stop */: // we've failed to match a block\n allMatched = false;\n break;\n case 2 /* Finished */: // we've hit end of line for fenced code close and can return\n this.lastLineLength = ln.length;\n return;\n default:\n throw new Error('continue returned illegal value, must be 0, 1, or 2');\n }\n if (!allMatched) {\n container = container.parent; // back up to last matching block\n break;\n }\n }\n this.allClosed = container === this.oldtip;\n this.lastMatchedContainer = container;\n var matchedLeaf = container.type !== 'paragraph' && blockHandlers[container.type].acceptsLines;\n var blockStartsLen = blockStarts.length;\n // Unless last matched container is a code block, try new container starts,\n // adding children to the last matched container:\n while (!matchedLeaf) {\n this.findNextNonspace();\n // this is a little performance optimization:\n if (container.type !== 'table' &&\n container.type !== 'tableBody' &&\n container.type !== 'paragraph' &&\n !this.indented &&\n !reMaybeSpecial.test(ln.slice(this.nextNonspace))) {\n this.advanceNextNonspace();\n break;\n }\n var i = 0;\n while (i < blockStartsLen) {\n var res = blockStarts[i](this, container);\n if (res === 1 /* Container */) {\n container = this.tip;\n break;\n }\n else if (res === 2 /* Leaf */) {\n container = this.tip;\n matchedLeaf = true;\n break;\n }\n else {\n i++;\n }\n }\n if (i === blockStartsLen) {\n // nothing matched\n this.advanceNextNonspace();\n break;\n }\n }\n // What remains at the offset is a text line. Add the text to the\n // appropriate container.\n // First check for a lazy paragraph continuation:\n if (!this.allClosed && !this.blank && this.tip.type === 'paragraph') {\n // lazy paragraph continuation\n this.addLine();\n }\n else {\n // not a lazy continuation\n // finalize any blocks not matched\n this.closeUnmatchedBlocks();\n if (this.blank && container.lastChild) {\n container.lastChild.lastLineBlank = true;\n }\n var t = container.type;\n // Block quote lines are never blank as they start with >\n // and we don't count blanks in fenced code for purposes of tight/loose\n // lists or breaking out of lists. We also don't set _lastLineBlank\n // on an empty list item, or if we just closed a fenced block.\n var lastLineBlank = this.blank &&\n !(t === 'blockQuote' ||\n (isCodeBlock(container) && container.isFenced) ||\n (t === 'item' && !container.firstChild && container.sourcepos[0][0] === this.lineNumber));\n // propagate lastLineBlank up through parents:\n var cont = container;\n while (cont) {\n cont.lastLineBlank = lastLineBlank;\n cont = cont.parent;\n }\n if (blockHandlers[t].acceptsLines) {\n this.addLine();\n // if HtmlBlock, check for end condition\n if (isHtmlBlock(container) &&\n container.htmlBlockType >= 1 &&\n container.htmlBlockType <= 5 &&\n reHtmlBlockClose[container.htmlBlockType].test(this.currentLine.slice(this.offset))) {\n this.lastLineLength = ln.length;\n this.finalize(container, this.lineNumber);\n }\n }\n else if (this.offset < ln.length && !this.blank) {\n // create paragraph container for line\n container = this.addChild('paragraph', this.offset);\n this.advanceNextNonspace();\n this.addLine();\n }\n }\n this.lastLineLength = ln.length;\n };\n // The main parsing function. Returns a parsed document AST.\n Parser.prototype.parse = function (input, lineTexts) {\n this.doc = esm_document();\n this.tip = this.doc;\n this.lineNumber = 0;\n this.lastLineLength = 0;\n this.offset = 0;\n this.column = 0;\n this.lastMatchedContainer = this.doc;\n this.currentLine = '';\n var lines = input.split(reLineEnding$1);\n var len = lines.length;\n this.lines = lineTexts ? lineTexts : lines;\n if (this.options.referenceDefinition) {\n this.clearRefMaps();\n }\n if (input.charCodeAt(input.length - 1) === C_NEWLINE) {\n // ignore last blank line created by final newline\n len -= 1;\n }\n for (var i = 0; i < len; i++) {\n this.incorporateLine(lines[i]);\n }\n while (this.tip) {\n this.finalize(this.tip, len);\n }\n this.processInlines(this.doc);\n return this.doc;\n };\n Parser.prototype.partialParseStart = function (lineNumber, lines) {\n this.doc = esm_document();\n this.tip = this.doc;\n this.lineNumber = lineNumber - 1;\n this.lastLineLength = 0;\n this.offset = 0;\n this.column = 0;\n this.lastMatchedContainer = this.doc;\n this.currentLine = '';\n var len = lines.length;\n for (var i = 0; i < len; i++) {\n this.incorporateLine(lines[i]);\n }\n return this.doc;\n };\n Parser.prototype.partialParseExtends = function (lines) {\n for (var i = 0; i < lines.length; i++) {\n this.incorporateLine(lines[i]);\n }\n };\n Parser.prototype.partialParseFinish = function () {\n while (this.tip) {\n this.finalize(this.tip, this.lineNumber);\n }\n this.processInlines(this.doc);\n };\n Parser.prototype.setRefMaps = function (refMap, refLinkCandidateMap, refDefCandidateMap) {\n this.refMap = refMap;\n this.refLinkCandidateMap = refLinkCandidateMap;\n this.refDefCandidateMap = refDefCandidateMap;\n };\n Parser.prototype.clearRefMaps = function () {\n [this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap].forEach(function (map) {\n clearObj(map);\n });\n };\n return Parser;\n}());\nfunction comparePos(p1, p2) {\n if (p1[0] < p2[0]) {\n return 1 /* LT */;\n }\n if (p1[0] > p2[0]) {\n return -1 /* GT */;\n }\n if (p1[1] < p2[1]) {\n return 1 /* LT */;\n }\n if (p1[1] > p2[1]) {\n return -1 /* GT */;\n }\n return 0 /* EQ */;\n}\nfunction compareRangeAndPos(_a, pos) {\n var startPos = _a[0], endPos = _a[1];\n if (comparePos(endPos, pos) === 1 /* LT */) {\n return 1 /* LT */;\n }\n if (comparePos(startPos, pos) === -1 /* GT */) {\n return -1 /* GT */;\n }\n return 0 /* EQ */;\n}\nfunction removeNextUntil(node, last) {\n if (node.parent !== last.parent || node === last) {\n return;\n }\n var next = node.next;\n while (next && next !== last) {\n var temp = next.next;\n for (var _i = 0, _a = ['parent', 'prev', 'next']; _i < _a.length; _i++) {\n var type = _a[_i];\n if (next[type]) {\n removeNodeById(next[type].id);\n next[type] = null;\n }\n }\n next = temp;\n }\n node.next = last.next;\n if (last.next) {\n last.next.prev = node;\n }\n else {\n node.parent.lastChild = node;\n }\n}\nfunction getChildNodes(parent) {\n var nodes = [];\n var curr = parent.firstChild;\n while (curr) {\n nodes.push(curr);\n curr = curr.next;\n }\n return nodes;\n}\nfunction insertNodesBefore(target, nodes) {\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var node = nodes_1[_i];\n target.insertBefore(node);\n }\n}\nfunction prependChildNodes(parent, nodes) {\n for (var i = nodes.length - 1; i >= 0; i -= 1) {\n parent.prependChild(nodes[i]);\n }\n}\nfunction updateNextLineNumbers(base, diff) {\n if (!base || !base.parent || diff === 0) {\n return;\n }\n var walker = base.parent.walker();\n walker.resumeAt(base, true);\n var event;\n while ((event = walker.next())) {\n var node = event.node, entering = event.entering;\n if (entering) {\n node.sourcepos[0][0] += diff;\n node.sourcepos[1][0] += diff;\n }\n }\n}\nfunction compareRangeAndLine(_a, line) {\n var startPos = _a[0], endPos = _a[1];\n if (endPos[0] < line) {\n return 1 /* LT */;\n }\n if (startPos[0] > line) {\n return -1 /* GT */;\n }\n return 0 /* EQ */;\n}\nfunction findChildNodeAtLine(parent, line) {\n var node = parent.firstChild;\n while (node) {\n var comp = compareRangeAndLine(node.sourcepos, line);\n if (comp === 0 /* EQ */) {\n return node;\n }\n if (comp === -1 /* GT */) {\n // To consider that top line is blank line\n return node.prev || node;\n }\n node = node.next;\n }\n return parent.lastChild;\n}\nfunction lastLeafNode(node) {\n while (node.lastChild) {\n node = node.lastChild;\n }\n return node;\n}\nfunction sameLineTopAncestor(node) {\n while (node.parent &&\n node.parent.type !== 'document' &&\n node.parent.sourcepos[0][0] === node.sourcepos[0][0]) {\n node = node.parent;\n }\n return node;\n}\nfunction findFirstNodeAtLine(parent, line) {\n var node = parent.firstChild;\n var prev = null;\n while (node) {\n var comp = compareRangeAndLine(node.sourcepos, line);\n if (comp === 0 /* EQ */) {\n if (node.sourcepos[0][0] === line || !node.firstChild) {\n return node;\n }\n prev = node;\n node = node.firstChild;\n }\n else if (comp === -1 /* GT */) {\n break;\n }\n else {\n prev = node;\n node = node.next;\n }\n }\n if (prev) {\n return sameLineTopAncestor(lastLeafNode(prev));\n }\n return null;\n}\nfunction findNodeAtPosition(parent, pos) {\n var node = parent;\n var prev = null;\n while (node) {\n var comp = compareRangeAndPos(node.sourcepos, pos);\n if (comp === 0 /* EQ */) {\n if (node.firstChild) {\n prev = node;\n node = node.firstChild;\n }\n else {\n return node;\n }\n }\n else if (comp === -1 /* GT */) {\n return prev;\n }\n else if (node.next) {\n node = node.next;\n }\n else {\n return prev;\n }\n }\n return node;\n}\nfunction findNodeById(id) {\n return getNodeById(id) || null;\n}\nfunction invokeNextUntil(callback, start, end) {\n if (end === void 0) {\n end = null;\n }\n if (start) {\n var walker = start.walker();\n while (start && start !== end) {\n callback(start);\n var next = walker.next();\n if (next) {\n start = next.node;\n }\n else {\n break;\n }\n }\n }\n}\nfunction isUnlinked(id) {\n var node = findNodeById(id);\n if (!node) {\n return true;\n }\n while (node && node.type !== 'document') {\n // eslint-disable-next-line no-loop-func\n if (!node.parent && !node.prev && !node.next) {\n return true;\n }\n node = node.parent;\n }\n return false;\n}\nvar reLineEnding = /\\r\\n|\\n|\\r/;\nfunction canBeContinuedListItem(lineText) {\n var spaceMatch = lineText.match(/^[ \\t]+/);\n if (spaceMatch && (spaceMatch[0].length >= 2 || /\\t/.test(spaceMatch[0]))) {\n return true;\n }\n var leftTrimmed = spaceMatch ? lineText.slice(spaceMatch.length) : lineText;\n return reBulletListMarker.test(leftTrimmed) || reOrderedListMarker.test(leftTrimmed);\n}\nfunction canBeContinuedTableBody(lineText) {\n return !isBlank(lineText) && lineText.indexOf('|') !== -1;\n}\nfunction createRefDefState(node) {\n var id = node.id, title = node.title, sourcepos = node.sourcepos, dest = node.dest;\n return {\n id: id,\n title: title,\n sourcepos: sourcepos,\n unlinked: false,\n destination: dest,\n };\n}\nvar ToastMark = /** @class */ (function () {\n function ToastMark(contents, options) {\n this.refMap = {};\n this.refLinkCandidateMap = {};\n this.refDefCandidateMap = {};\n this.referenceDefinition = !!(options === null || options === void 0 ? void 0 : options.referenceDefinition);\n this.parser = new Parser(options);\n this.parser.setRefMaps(this.refMap, this.refLinkCandidateMap, this.refDefCandidateMap);\n this.eventHandlerMap = { change: [] };\n contents = contents || '';\n this.lineTexts = contents.split(reLineEnding);\n this.root = this.parser.parse(contents, this.lineTexts);\n }\n ToastMark.prototype.updateLineTexts = function (startPos, endPos, newText) {\n var _a;\n var startLine = startPos[0], startCol = startPos[1];\n var endLine = endPos[0], endCol = endPos[1];\n var newLines = newText.split(reLineEnding);\n var newLineLen = newLines.length;\n var startLineText = this.lineTexts[startLine - 1];\n var endLineText = this.lineTexts[endLine - 1];\n newLines[0] = startLineText.slice(0, startCol - 1) + newLines[0];\n newLines[newLineLen - 1] = newLines[newLineLen - 1] + endLineText.slice(endCol - 1);\n var removedLineLen = endLine - startLine + 1;\n (_a = this.lineTexts).splice.apply(_a, esm_spreadArray([startLine - 1, removedLineLen], newLines));\n return newLineLen - removedLineLen;\n };\n ToastMark.prototype.updateRootNodeState = function () {\n if (this.lineTexts.length === 1 && this.lineTexts[0] === '') {\n this.root.lastLineBlank = true;\n this.root.sourcepos = [\n [1, 1],\n [1, 0],\n ];\n return;\n }\n if (this.root.lastChild) {\n this.root.lastLineBlank = this.root.lastChild.lastLineBlank;\n }\n var lineTexts = this.lineTexts;\n var idx = lineTexts.length - 1;\n while (lineTexts[idx] === '') {\n idx -= 1;\n }\n if (lineTexts.length - 2 > idx) {\n idx += 1;\n }\n this.root.sourcepos[1] = [idx + 1, lineTexts[idx].length];\n };\n ToastMark.prototype.replaceRangeNodes = function (startNode, endNode, newNodes) {\n if (!startNode) {\n if (endNode) {\n insertNodesBefore(endNode, newNodes);\n removeNodeById(endNode.id);\n endNode.unlink();\n }\n else {\n prependChildNodes(this.root, newNodes);\n }\n }\n else {\n insertNodesBefore(startNode, newNodes);\n removeNextUntil(startNode, endNode);\n [startNode.id, endNode.id].forEach(function (id) { return removeNodeById(id); });\n startNode.unlink();\n }\n };\n ToastMark.prototype.getNodeRange = function (startPos, endPos) {\n var startNode = findChildNodeAtLine(this.root, startPos[0]);\n var endNode = findChildNodeAtLine(this.root, endPos[0]);\n // extend node range to include a following block which doesn't have preceding blank line\n if (endNode && endNode.next && endPos[0] + 1 === endNode.next.sourcepos[0][0]) {\n endNode = endNode.next;\n }\n return [startNode, endNode];\n };\n ToastMark.prototype.trigger = function (eventName, param) {\n this.eventHandlerMap[eventName].forEach(function (handler) {\n handler(param);\n });\n };\n ToastMark.prototype.extendEndLine = function (line) {\n while (this.lineTexts[line] === '') {\n line += 1;\n }\n return line;\n };\n ToastMark.prototype.parseRange = function (startNode, endNode, startLine, endLine) {\n // extends starting range if the first node can be a continued list item\n if (startNode &&\n startNode.prev &&\n ((isList(startNode.prev) && canBeContinuedListItem(this.lineTexts[startLine - 1])) ||\n (isTable(startNode.prev) && canBeContinuedTableBody(this.lineTexts[startLine - 1])))) {\n startNode = startNode.prev;\n startLine = startNode.sourcepos[0][0];\n }\n var editedLines = this.lineTexts.slice(startLine - 1, endLine);\n var root = this.parser.partialParseStart(startLine, editedLines);\n // extends ending range if the following node can be a fenced code block or a continued list item\n var nextNode = endNode ? endNode.next : this.root.firstChild;\n var lastChild = root.lastChild;\n var isOpenedLastChildCodeBlock = lastChild && isCodeBlock(lastChild) && lastChild.open;\n var isOpenedLastChildCustomBlock = lastChild && isCustomBlock(lastChild) && lastChild.open;\n var isLastChildList = lastChild && isList(lastChild);\n while (((isOpenedLastChildCodeBlock || isOpenedLastChildCustomBlock) && nextNode) ||\n (isLastChildList && nextNode && (nextNode.type === 'list' || nextNode.sourcepos[0][1] >= 2))) {\n var newEndLine = this.extendEndLine(nextNode.sourcepos[1][0]);\n this.parser.partialParseExtends(this.lineTexts.slice(endLine, newEndLine));\n if (!startNode) {\n startNode = endNode;\n }\n endNode = nextNode;\n endLine = newEndLine;\n nextNode = nextNode.next;\n }\n this.parser.partialParseFinish();\n var newNodes = getChildNodes(root);\n return { newNodes: newNodes, extStartNode: startNode, extEndNode: endNode };\n };\n ToastMark.prototype.getRemovedNodeRange = function (extStartNode, extEndNode) {\n if (!extStartNode ||\n (extStartNode && isRefDef(extStartNode)) ||\n (extEndNode && isRefDef(extEndNode))) {\n return null;\n }\n return {\n id: [extStartNode.id, extEndNode.id],\n line: [extStartNode.sourcepos[0][0] - 1, extEndNode.sourcepos[1][0] - 1],\n };\n };\n ToastMark.prototype.markDeletedRefMap = function (extStartNode, extEndNode) {\n var _this = this;\n if (!isEmptyObj(this.refMap)) {\n var markDeleted = function (node) {\n if (isRefDef(node)) {\n var refDefState = _this.refMap[node.label];\n if (refDefState && node.id === refDefState.id) {\n refDefState.unlinked = true;\n }\n }\n };\n if (extStartNode) {\n invokeNextUntil(markDeleted, extStartNode.parent, extEndNode);\n }\n if (extEndNode) {\n invokeNextUntil(markDeleted, extEndNode);\n }\n }\n };\n ToastMark.prototype.replaceWithNewRefDefState = function (nodes) {\n var _this = this;\n if (!isEmptyObj(this.refMap)) {\n var replaceWith_1 = function (node) {\n if (isRefDef(node)) {\n var label = node.label;\n var refDefState = _this.refMap[label];\n if (!refDefState || refDefState.unlinked) {\n _this.refMap[label] = createRefDefState(node);\n }\n }\n };\n nodes.forEach(function (node) {\n invokeNextUntil(replaceWith_1, node);\n });\n }\n };\n ToastMark.prototype.replaceWithRefDefCandidate = function () {\n var _this = this;\n if (!isEmptyObj(this.refDefCandidateMap)) {\n iterateObject(this.refDefCandidateMap, function (_, candidate) {\n var label = candidate.label, sourcepos = candidate.sourcepos;\n var refDefState = _this.refMap[label];\n if (!refDefState ||\n refDefState.unlinked ||\n refDefState.sourcepos[0][0] > sourcepos[0][0]) {\n _this.refMap[label] = createRefDefState(candidate);\n }\n });\n }\n };\n ToastMark.prototype.getRangeWithRefDef = function (startLine, endLine, startNode, endNode, lineDiff) {\n if (this.referenceDefinition && !isEmptyObj(this.refMap)) {\n var prevNode = findChildNodeAtLine(this.root, startLine - 1);\n var nextNode = findChildNodeAtLine(this.root, endLine + 1);\n if (prevNode && isRefDef(prevNode) && prevNode !== startNode && prevNode !== endNode) {\n startNode = prevNode;\n startLine = startNode.sourcepos[0][0];\n }\n if (nextNode && isRefDef(nextNode) && nextNode !== startNode && nextNode !== endNode) {\n endNode = nextNode;\n endLine = this.extendEndLine(endNode.sourcepos[1][0] + lineDiff);\n }\n }\n return [startNode, endNode, startLine, endLine];\n };\n ToastMark.prototype.parse = function (startPos, endPos, lineDiff) {\n if (lineDiff === void 0) {\n lineDiff = 0;\n }\n var range = this.getNodeRange(startPos, endPos);\n var startNode = range[0], endNode = range[1];\n var startLine = startNode ? Math.min(startNode.sourcepos[0][0], startPos[0]) : startPos[0];\n var endLine = this.extendEndLine((endNode ? Math.max(endNode.sourcepos[1][0], endPos[0]) : endPos[0]) + lineDiff);\n var parseResult = this.parseRange.apply(this, this.getRangeWithRefDef(startLine, endLine, startNode, endNode, lineDiff));\n var newNodes = parseResult.newNodes, extStartNode = parseResult.extStartNode, extEndNode = parseResult.extEndNode;\n var removedNodeRange = this.getRemovedNodeRange(extStartNode, extEndNode);\n var nextNode = extEndNode ? extEndNode.next : this.root.firstChild;\n if (this.referenceDefinition) {\n this.markDeletedRefMap(extStartNode, extEndNode);\n this.replaceRangeNodes(extStartNode, extEndNode, newNodes);\n this.replaceWithNewRefDefState(newNodes);\n }\n else {\n this.replaceRangeNodes(extStartNode, extEndNode, newNodes);\n }\n return { nodes: newNodes, removedNodeRange: removedNodeRange, nextNode: nextNode };\n };\n ToastMark.prototype.parseRefLink = function () {\n var _this = this;\n var result = [];\n if (!isEmptyObj(this.refMap)) {\n iterateObject(this.refMap, function (label, value) {\n if (value.unlinked) {\n delete _this.refMap[label];\n }\n iterateObject(_this.refLinkCandidateMap, function (_, candidate) {\n var node = candidate.node, refLabel = candidate.refLabel;\n if (refLabel === label) {\n result.push(_this.parse(node.sourcepos[0], node.sourcepos[1]));\n }\n });\n });\n }\n return result;\n };\n ToastMark.prototype.removeUnlinkedCandidate = function () {\n if (!isEmptyObj(this.refDefCandidateMap)) {\n [this.refLinkCandidateMap, this.refDefCandidateMap].forEach(function (candidateMap) {\n iterateObject(candidateMap, function (id) {\n if (isUnlinked(id)) {\n delete candidateMap[id];\n }\n });\n });\n }\n };\n ToastMark.prototype.editMarkdown = function (startPos, endPos, newText) {\n var lineDiff = this.updateLineTexts(startPos, endPos, newText);\n var parseResult = this.parse(startPos, endPos, lineDiff);\n var editResult = omit(parseResult, 'nextNode');\n updateNextLineNumbers(parseResult.nextNode, lineDiff);\n this.updateRootNodeState();\n var result = [editResult];\n if (this.referenceDefinition) {\n this.removeUnlinkedCandidate();\n this.replaceWithRefDefCandidate();\n result = result.concat(this.parseRefLink());\n }\n this.trigger('change', result);\n return result;\n };\n ToastMark.prototype.getLineTexts = function () {\n return this.lineTexts;\n };\n ToastMark.prototype.getRootNode = function () {\n return this.root;\n };\n ToastMark.prototype.findNodeAtPosition = function (pos) {\n var node = findNodeAtPosition(this.root, pos);\n if (!node || node === this.root) {\n return null;\n }\n return node;\n };\n ToastMark.prototype.findFirstNodeAtLine = function (line) {\n return findFirstNodeAtLine(this.root, line);\n };\n ToastMark.prototype.on = function (eventName, callback) {\n this.eventHandlerMap[eventName].push(callback);\n };\n ToastMark.prototype.off = function (eventName, callback) {\n var handlers = this.eventHandlerMap[eventName];\n var idx = handlers.indexOf(callback);\n handlers.splice(idx, 1);\n };\n ToastMark.prototype.findNodeById = function (id) {\n return findNodeById(id);\n };\n ToastMark.prototype.removeAllNode = function () {\n removeAllNode();\n };\n return ToastMark;\n}());\nvar disallowedTags = [\n 'title',\n 'textarea',\n 'style',\n 'xmp',\n 'iframe',\n 'noembed',\n 'noframes',\n 'script',\n 'plaintext',\n];\nvar reDisallowedTag = new RegExp(\"<(/?(?:\" + disallowedTags.join('|') + \")[^>]*>)\", 'ig');\nfunction filterDisallowedTags(str) {\n if (reDisallowedTag.test(str)) {\n return str.replace(reDisallowedTag, function (_, group) { return \"&lt;\" + group; });\n }\n return str;\n}\nvar baseConvertors = {\n heading: function (node, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: \"h\" + node.level,\n outerNewLine: true,\n };\n },\n text: function (node) {\n return {\n type: 'text',\n content: node.literal,\n };\n },\n softbreak: function (_, _a) {\n var options = _a.options;\n return {\n type: 'html',\n content: options.softbreak,\n };\n },\n linebreak: function () {\n return {\n type: 'html',\n content: '<br />\\n',\n };\n },\n emph: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'em',\n };\n },\n strong: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'strong',\n };\n },\n paragraph: function (node, _a) {\n var _b;\n var entering = _a.entering;\n var grandparent = (_b = node.parent) === null || _b === void 0 ? void 0 : _b.parent;\n if (grandparent && grandparent.type === 'list') {\n if (grandparent.listData.tight) {\n return null;\n }\n }\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'p',\n outerNewLine: true,\n };\n },\n thematicBreak: function () {\n return {\n type: 'openTag',\n tagName: 'hr',\n outerNewLine: true,\n selfClose: true,\n };\n },\n blockQuote: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'blockquote',\n outerNewLine: true,\n innerNewLine: true,\n };\n },\n list: function (node, _a) {\n var entering = _a.entering;\n var _b = node.listData, type = _b.type, start = _b.start;\n var tagName = type === 'bullet' ? 'ul' : 'ol';\n var attributes = {};\n if (tagName === 'ol' && start !== null && start !== 1) {\n attributes.start = start.toString();\n }\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: tagName,\n attributes: attributes,\n outerNewLine: true,\n };\n },\n item: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'li',\n outerNewLine: true,\n };\n },\n htmlInline: function (node, _a) {\n var options = _a.options;\n var content = options.tagFilter ? filterDisallowedTags(node.literal) : node.literal;\n return { type: 'html', content: content };\n },\n htmlBlock: function (node, _a) {\n var options = _a.options;\n var content = options.tagFilter ? filterDisallowedTags(node.literal) : node.literal;\n if (options.nodeId) {\n return [\n { type: 'openTag', tagName: 'div', outerNewLine: true },\n { type: 'html', content: content },\n { type: 'closeTag', tagName: 'div', outerNewLine: true },\n ];\n }\n return { type: 'html', content: content, outerNewLine: true };\n },\n code: function (node) {\n return [\n { type: 'openTag', tagName: 'code' },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n ];\n },\n codeBlock: function (node) {\n var infoStr = node.info;\n var infoWords = infoStr ? infoStr.split(/\\s+/) : [];\n var codeClassNames = [];\n if (infoWords.length > 0 && infoWords[0].length > 0) {\n codeClassNames.push(\"language-\" + escapeXml(infoWords[0]));\n }\n return [\n { type: 'openTag', tagName: 'pre', outerNewLine: true },\n { type: 'openTag', tagName: 'code', classNames: codeClassNames },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n { type: 'closeTag', tagName: 'pre', outerNewLine: true },\n ];\n },\n link: function (node, _a) {\n var entering = _a.entering;\n if (entering) {\n var _b = node, title = _b.title, destination = _b.destination;\n return {\n type: 'openTag',\n tagName: 'a',\n attributes: esm_assign({ href: escapeXml(destination) }, (title && { title: escapeXml(title) })),\n };\n }\n return { type: 'closeTag', tagName: 'a' };\n },\n image: function (node, _a) {\n var getChildrenText = _a.getChildrenText, skipChildren = _a.skipChildren;\n var _b = node, title = _b.title, destination = _b.destination;\n skipChildren();\n return {\n type: 'openTag',\n tagName: 'img',\n selfClose: true,\n attributes: esm_assign({ src: escapeXml(destination), alt: getChildrenText(node) }, (title && { title: escapeXml(title) })),\n };\n },\n customBlock: function (node, context, convertors) {\n var info = node.info.trim().toLowerCase();\n var customConvertor = convertors[info];\n if (customConvertor) {\n try {\n return customConvertor(node, context);\n }\n catch (e) {\n console.warn(\"[@toast-ui/editor] - The error occurred when \" + info + \" block node was parsed in markdown renderer: \" + e);\n }\n }\n return [\n { type: 'openTag', tagName: 'div', outerNewLine: true },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'div', outerNewLine: true },\n ];\n },\n frontMatter: function (node) {\n return [\n {\n type: 'openTag',\n tagName: 'div',\n outerNewLine: true,\n // Because front matter is metadata, it should not be render.\n attributes: { style: 'white-space: pre; display: none;' },\n },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'div', outerNewLine: true },\n ];\n },\n customInline: function (node, context, convertors) {\n var _a = node, info = _a.info, firstChild = _a.firstChild;\n var nomalizedInfo = info.trim().toLowerCase();\n var customConvertor = convertors[nomalizedInfo];\n var entering = context.entering;\n if (customConvertor) {\n try {\n return customConvertor(node, context);\n }\n catch (e) {\n console.warn(\"[@toast-ui/editor] - The error occurred when \" + nomalizedInfo + \" inline node was parsed in markdown renderer: \" + e);\n }\n }\n return entering\n ? [\n { type: 'openTag', tagName: 'span' },\n { type: 'text', content: \"$$\" + info + (firstChild ? ' ' : '') },\n ]\n : [\n { type: 'text', content: '$$' },\n { type: 'closeTag', tagName: 'span' },\n ];\n },\n};\nvar gfmConvertors = {\n strike: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'del',\n };\n },\n item: function (node, _a) {\n var entering = _a.entering;\n var _b = node.listData, checked = _b.checked, task = _b.task;\n if (entering) {\n var itemTag = {\n type: 'openTag',\n tagName: 'li',\n outerNewLine: true,\n };\n if (task) {\n return [\n itemTag,\n {\n type: 'openTag',\n tagName: 'input',\n selfClose: true,\n attributes: esm_assign(esm_assign({}, (checked && { checked: '' })), { disabled: '', type: 'checkbox' }),\n },\n {\n type: 'text',\n content: ' ',\n },\n ];\n }\n return itemTag;\n }\n return {\n type: 'closeTag',\n tagName: 'li',\n outerNewLine: true,\n };\n },\n table: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'table',\n outerNewLine: true,\n };\n },\n tableHead: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'thead',\n outerNewLine: true,\n };\n },\n tableBody: function (_, _a) {\n var entering = _a.entering;\n return {\n type: entering ? 'openTag' : 'closeTag',\n tagName: 'tbody',\n outerNewLine: true,\n };\n },\n tableRow: function (node, _a) {\n var entering = _a.entering;\n if (entering) {\n return {\n type: 'openTag',\n tagName: 'tr',\n outerNewLine: true,\n };\n }\n var result = [];\n if (node.lastChild) {\n var columnLen = node.parent.parent.columns.length;\n var lastColIdx = node.lastChild.endIdx;\n for (var i = lastColIdx + 1; i < columnLen; i += 1) {\n result.push({\n type: 'openTag',\n tagName: 'td',\n outerNewLine: true,\n }, {\n type: 'closeTag',\n tagName: 'td',\n outerNewLine: true,\n });\n }\n }\n result.push({\n type: 'closeTag',\n tagName: 'tr',\n outerNewLine: true,\n });\n return result;\n },\n tableCell: function (node, _a) {\n var entering = _a.entering;\n if (node.ignored) {\n return {\n type: 'text',\n content: '',\n };\n }\n var tablePart = node.parent.parent;\n var tagName = tablePart.type === 'tableHead' ? 'th' : 'td';\n var table = tablePart.parent;\n var columnInfo = table.columns[node.startIdx];\n var attributes = (columnInfo === null || columnInfo === void 0 ? void 0 : columnInfo.align) ? { align: columnInfo.align } : null;\n if (entering) {\n return esm_assign({ type: 'openTag', tagName: tagName, outerNewLine: true }, (attributes && { attributes: attributes }));\n }\n return {\n type: 'closeTag',\n tagName: tagName,\n outerNewLine: true,\n };\n },\n};\nvar defaultOptions = {\n softbreak: '\\n',\n gfm: false,\n tagFilter: false,\n nodeId: false,\n};\nfunction getChildrenText(node) {\n var buffer = [];\n var walker = node.walker();\n var event = null;\n while ((event = walker.next())) {\n var node_1 = event.node;\n if (node_1.type === 'text') {\n buffer.push(node_1.literal);\n }\n }\n return buffer.join('');\n}\nvar Renderer = /** @class */ (function () {\n function Renderer(customOptions) {\n this.buffer = [];\n this.options = esm_assign(esm_assign({}, defaultOptions), customOptions);\n this.convertors = this.createConvertors();\n delete this.options.convertors;\n }\n Renderer.prototype.createConvertors = function () {\n var convertors = esm_assign({}, baseConvertors);\n if (this.options.gfm) {\n convertors = esm_assign(esm_assign({}, convertors), gfmConvertors);\n }\n if (this.options.convertors) {\n var customConvertors_1 = this.options.convertors;\n var nodeTypes = Object.keys(customConvertors_1);\n var defaultConvertors_1 = esm_assign(esm_assign({}, baseConvertors), gfmConvertors);\n nodeTypes.forEach(function (nodeType) {\n var orgConvertor = convertors[nodeType];\n var convertor = customConvertors_1[nodeType];\n var convertorType = Object.keys(defaultConvertors_1).indexOf(nodeType) === -1\n ? nodeType.toLowerCase()\n : nodeType;\n if (orgConvertor) {\n convertors[convertorType] = function (node, context, convertors) {\n context.origin = function () { return orgConvertor(node, context, convertors); };\n return convertor(node, context);\n };\n }\n else {\n convertors[convertorType] = convertor;\n }\n });\n }\n return convertors;\n };\n Renderer.prototype.getConvertors = function () {\n return this.convertors;\n };\n Renderer.prototype.getOptions = function () {\n return this.options;\n };\n Renderer.prototype.render = function (rootNode) {\n var _this = this;\n this.buffer = [];\n var walker = rootNode.walker();\n var event = null;\n var _loop_1 = function () {\n var node = event.node, entering = event.entering;\n var convertor = this_1.convertors[node.type];\n if (!convertor) {\n return \"continue\";\n }\n var skipped = false;\n var context = {\n entering: entering,\n leaf: !isContainer(node),\n options: this_1.options,\n getChildrenText: getChildrenText,\n skipChildren: function () {\n skipped = true;\n },\n };\n var converted = isCustomBlock(node) || isCustomInline(node)\n ? convertor(node, context, this_1.convertors)\n : convertor(node, context);\n if (converted) {\n var htmlNodes = Array.isArray(converted) ? converted : [converted];\n htmlNodes.forEach(function (htmlNode, index) {\n if (htmlNode.type === 'openTag' && _this.options.nodeId && index === 0) {\n if (!htmlNode.attributes) {\n htmlNode.attributes = {};\n }\n htmlNode.attributes['data-nodeid'] = String(node.id);\n }\n _this.renderHTMLNode(htmlNode);\n });\n if (skipped) {\n walker.resumeAt(node, false);\n walker.next();\n }\n }\n };\n var this_1 = this;\n while ((event = walker.next())) {\n _loop_1();\n }\n this.addNewLine();\n return this.buffer.join('');\n };\n Renderer.prototype.renderHTMLNode = function (node) {\n switch (node.type) {\n case 'openTag':\n case 'closeTag':\n this.renderElementNode(node);\n break;\n case 'text':\n this.renderTextNode(node);\n break;\n case 'html':\n this.renderRawHtmlNode(node);\n break;\n // no-default-case\n }\n };\n Renderer.prototype.generateOpenTagString = function (node) {\n var _this = this;\n var tagName = node.tagName, classNames = node.classNames, attributes = node.attributes;\n this.buffer.push(\"<\" + tagName);\n if (classNames && classNames.length > 0) {\n this.buffer.push(\" class=\\\"\" + classNames.join(' ') + \"\\\"\");\n }\n if (attributes) {\n Object.keys(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n _this.buffer.push(\" \" + attrName + \"=\\\"\" + attrValue + \"\\\"\");\n });\n }\n if (node.selfClose) {\n this.buffer.push(' /');\n }\n this.buffer.push('>');\n };\n Renderer.prototype.generateCloseTagString = function (_a) {\n var tagName = _a.tagName;\n this.buffer.push(\"</\" + tagName + \">\");\n };\n Renderer.prototype.addNewLine = function () {\n if (this.buffer.length && last(last(this.buffer)) !== '\\n') {\n this.buffer.push('\\n');\n }\n };\n Renderer.prototype.addOuterNewLine = function (node) {\n if (node.outerNewLine) {\n this.addNewLine();\n }\n };\n Renderer.prototype.addInnerNewLine = function (node) {\n if (node.innerNewLine) {\n this.addNewLine();\n }\n };\n Renderer.prototype.renderTextNode = function (node) {\n this.buffer.push(escapeXml(node.content));\n };\n Renderer.prototype.renderRawHtmlNode = function (node) {\n this.addOuterNewLine(node);\n this.buffer.push(node.content);\n this.addOuterNewLine(node);\n };\n Renderer.prototype.renderElementNode = function (node) {\n if (node.type === 'openTag') {\n this.addOuterNewLine(node);\n this.generateOpenTagString(node);\n if (node.selfClose) {\n this.addOuterNewLine(node);\n }\n else {\n this.addInnerNewLine(node);\n }\n }\n else {\n this.addInnerNewLine(node);\n this.generateCloseTagString(node);\n this.addOuterNewLine(node);\n }\n };\n return Renderer;\n}());\n\n\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/collection/forEachOwnProperties.js\nvar collection_forEachOwnProperties = __webpack_require__(956);\nvar forEachOwnProperties_default = /*#__PURE__*/__webpack_require__.n(collection_forEachOwnProperties);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/object/extend.js\nvar extend = __webpack_require__(969);\nvar extend_default = /*#__PURE__*/__webpack_require__.n(extend);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domEvent/on.js\nvar on = __webpack_require__(348);\nvar on_default = /*#__PURE__*/__webpack_require__.n(on);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domEvent/off.js\nvar off = __webpack_require__(349);\nvar off_default = /*#__PURE__*/__webpack_require__.n(off);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/addClass.js\nvar addClass = __webpack_require__(204);\nvar addClass_default = /*#__PURE__*/__webpack_require__.n(addClass);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/removeClass.js\nvar removeClass = __webpack_require__(462);\nvar removeClass_default = /*#__PURE__*/__webpack_require__.n(removeClass);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/css.js\nvar css = __webpack_require__(522);\nvar css_default = /*#__PURE__*/__webpack_require__.n(css);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/collection/toArray.js\nvar collection_toArray = __webpack_require__(990);\nvar toArray_default = /*#__PURE__*/__webpack_require__.n(collection_toArray);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isArray.js\nvar type_isArray = __webpack_require__(322);\nvar isArray_default = /*#__PURE__*/__webpack_require__.n(type_isArray);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isString.js\nvar type_isString = __webpack_require__(758);\nvar isString_default = /*#__PURE__*/__webpack_require__.n(type_isString);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isUndefined.js\nvar type_isUndefined = __webpack_require__(929);\nvar isUndefined_default = /*#__PURE__*/__webpack_require__.n(type_isUndefined);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/hasClass.js\nvar hasClass = __webpack_require__(714);\nvar hasClass_default = /*#__PURE__*/__webpack_require__.n(hasClass);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/domUtil/matches.js\nvar domUtil_matches = __webpack_require__(471);\n;// CONCATENATED MODULE: ./src/utils/constants.ts\nvar TAG_NAME = '[A-Za-z][A-Za-z0-9-]*';\nvar ATTRIBUTE_NAME = '[a-zA-Z_:][a-zA-Z0-9:._-]*';\nvar UNQUOTED_VALUE = '[^\"\\'=<>`\\\\x00-\\\\x20]+';\nvar SINGLE_QUOTED_VALUE = \"'[^']*'\";\nvar DOUBLE_QUOTED_VALUE = '\"[^\"]*\"';\nvar ATTRIBUTE_VALUE = \"(?:\" + UNQUOTED_VALUE + \"|\" + SINGLE_QUOTED_VALUE + \"|\" + DOUBLE_QUOTED_VALUE + \")\";\nvar ATTRIBUTE_VALUE_SPEC = \"\" + '(?:\\\\s*=\\\\s*' + ATTRIBUTE_VALUE + \")\";\nvar constants_ATTRIBUTE = \"\" + '(?:\\\\s+' + ATTRIBUTE_NAME + ATTRIBUTE_VALUE_SPEC + \"?)\";\nvar constants_OPEN_TAG = \"<(\" + TAG_NAME + \")(\" + constants_ATTRIBUTE + \")*\\\\s*/?>\";\nvar CLOSE_TAG = \"</(\" + TAG_NAME + \")\\\\s*[>]\";\nvar constants_HTML_TAG = \"(?:\" + constants_OPEN_TAG + \"|\" + CLOSE_TAG + \")\";\nvar reHTMLTag = new RegExp(\"^\" + constants_HTML_TAG, 'i');\nvar constants_reBR = /<br\\s*\\/*>/i;\nvar reHTMLComment = /<! ---->|<!--(?:-?[^>-])(?:-?[^-])*-->/;\nvar constants_ALTERNATIVE_TAG_FOR_BR = '</p><p>';\n\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isNull.js\nvar type_isNull = __webpack_require__(934);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/request/sendHostname.js\nvar request_sendHostname = __webpack_require__(391);\n;// CONCATENATED MODULE: ./src/utils/common.ts\n\n\n\n\n\nvar isMac = /Mac/.test(navigator.platform);\nvar reSpaceMoreThanOne = /[\\u0020]+/g;\nvar common_reEscapeChars = /[>(){}[\\]+-.!#|]/g;\nvar reEscapeHTML = /<([a-zA-Z_][a-zA-Z0-9\\-._]*)(\\s|[^\\\\>])*\\/?>|<(\\/)([a-zA-Z_][a-zA-Z0-9\\-._]*)\\s*\\/?>|<!--[^-]+-->|<([a-zA-Z_][a-zA-Z0-9\\-.:/]*)>/g;\nvar reEscapeBackSlash = /\\\\[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\\\\]/g;\nvar reEscapePairedChars = /[*_~`]/g;\nvar reMdImageSyntax = /!\\[.*\\]\\(.*\\)/g;\nvar reEscapedCharInLinkSyntax = /[[\\]]/g;\nvar reEscapeBackSlashInSentence = /(?:^|[^\\\\])\\\\(?!\\\\)/g;\nvar common_XMLSPECIAL = '[&<>\"]';\nvar common_reXmlSpecial = new RegExp(common_XMLSPECIAL, 'g');\nfunction common_replaceUnsafeChar(char) {\n switch (char) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n default:\n return char;\n }\n}\nfunction common_escapeXml(text) {\n if (common_reXmlSpecial.test(text)) {\n return text.replace(common_reXmlSpecial, common_replaceUnsafeChar);\n }\n return text;\n}\nfunction sendHostName() {\n sendHostname('editor', 'UA-129966929-1');\n}\nfunction common_includes(arr, targetItem) {\n return arr.indexOf(targetItem) !== -1;\n}\nvar availableLinkAttributes = ['rel', 'target', 'hreflang', 'type'];\nvar reMarkdownTextToEscapeMap = {\n codeblock: /(^ {4}[^\\n]+\\n*)+/,\n thematicBreak: /^ *((\\* *){3,}|(- *){3,} *|(_ *){3,}) */,\n atxHeading: /^(#{1,6}) +[\\s\\S]+/,\n seTextheading: /^([^\\n]+)\\n *(=|-){2,} */,\n blockquote: /^( *>[^\\n]+.*)+/,\n list: /^ *(\\*+|-+|\\d+\\.) [\\s\\S]+/,\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +[\"(]([^\\n]+)[\")])? */,\n link: /!?\\[.*\\]\\(.*\\)/,\n reflink: /!?\\[.*\\]\\s*\\[([^\\]]*)\\]/,\n verticalBar: /\\u007C/,\n fencedCodeblock: /^((`|~){3,})/,\n};\nfunction sanitizeLinkAttribute(attribute) {\n if (!attribute) {\n return null;\n }\n var linkAttributes = {};\n availableLinkAttributes.forEach(function (key) {\n if (!isUndefined_default()(attribute[key])) {\n linkAttributes[key] = attribute[key];\n }\n });\n return linkAttributes;\n}\nfunction common_repeat(text, count) {\n var result = '';\n for (var i = 0; i < count; i += 1) {\n result += text;\n }\n return result;\n}\nfunction isNeedEscapeText(text) {\n var needEscape = false;\n forEachOwnProperties(reMarkdownTextToEscapeMap, function (reMarkdownTextToEscape) {\n if (reMarkdownTextToEscape.test(text)) {\n needEscape = true;\n }\n return !needEscape;\n });\n return needEscape;\n}\nfunction escapeTextForLink(text) {\n var imageSyntaxRanges = [];\n var result = reMdImageSyntax.exec(text);\n while (result) {\n imageSyntaxRanges.push([result.index, result.index + result[0].length]);\n result = reMdImageSyntax.exec(text);\n }\n return text.replace(reEscapedCharInLinkSyntax, function (matched, offset) {\n var isDelimiter = imageSyntaxRanges.some(function (range) { return offset > range[0] && offset < range[1]; });\n return isDelimiter ? matched : \"\\\\\" + matched;\n });\n}\nfunction common_escape(text) {\n var aheadReplacer = function (matched) { return \"\\\\\" + matched; };\n var behindReplacer = function (matched) { return matched + \"\\\\\"; };\n var escapedText = text.replace(reSpaceMoreThanOne, ' ');\n if (reEscapeBackSlash.test(escapedText)) {\n escapedText = escapedText.replace(reEscapeBackSlash, aheadReplacer);\n }\n if (reEscapeBackSlashInSentence.test(escapedText)) {\n escapedText = escapedText.replace(reEscapeBackSlashInSentence, behindReplacer);\n }\n escapedText = escapedText.replace(reEscapePairedChars, aheadReplacer);\n if (reEscapeHTML.test(escapedText)) {\n escapedText = escapedText.replace(reEscapeHTML, aheadReplacer);\n }\n if (isNeedEscapeText(escapedText)) {\n escapedText = escapedText.replace(common_reEscapeChars, aheadReplacer);\n }\n return escapedText;\n}\nfunction quote(text) {\n var result;\n if (text.indexOf('\"') === -1) {\n result = '\"\"';\n }\n else {\n result = text.indexOf(\"'\") === -1 ? \"''\" : '()';\n }\n return result[0] + text + result[1];\n}\nfunction common_isNil(value) {\n return isNull(value) || isUndefined(value);\n}\nfunction shallowEqual(o1, o2) {\n if (o1 === null && o1 === o2) {\n return true;\n }\n if (typeof o1 !== 'object' || typeof o2 !== 'object' || common_isNil(o1) || common_isNil(o2)) {\n return o1 === o2;\n }\n for (var key in o1) {\n if (o1[key] !== o2[key]) {\n return false;\n }\n }\n for (var key in o2) {\n if (!(key in o1)) {\n return false;\n }\n }\n return true;\n}\nfunction common_last(arr) {\n return arr[arr.length - 1];\n}\nfunction common_between(value, min, max) {\n return value >= min && value <= max;\n}\nfunction isObject(obj) {\n return typeof obj === 'object' && obj !== null;\n}\nfunction deepMergedCopy(targetObj, obj) {\n var resultObj = tslib_es6_assign({}, targetObj);\n if (targetObj && obj) {\n Object.keys(obj).forEach(function (prop) {\n if (isObject(resultObj[prop])) {\n if (Array.isArray(obj[prop])) {\n resultObj[prop] = deepCopyArray(obj[prop]);\n }\n else if (resultObj.hasOwnProperty(prop)) {\n resultObj[prop] = deepMergedCopy(resultObj[prop], obj[prop]);\n }\n else {\n resultObj[prop] = deepCopy(obj[prop]);\n }\n }\n else {\n resultObj[prop] = obj[prop];\n }\n });\n }\n return resultObj;\n}\nfunction deepCopyArray(items) {\n return items.map(function (item) {\n if (isObject(item)) {\n return Array.isArray(item) ? deepCopyArray(item) : deepCopy(item);\n }\n return item;\n });\n}\nfunction deepCopy(obj) {\n var keys = Object.keys(obj);\n if (!keys.length) {\n return obj;\n }\n return keys.reduce(function (acc, prop) {\n if (isObject(obj[prop])) {\n acc[prop] = Array.isArray(obj[prop]) ? deepCopyArray(obj[prop]) : deepCopy(obj[prop]);\n }\n else {\n acc[prop] = obj[prop];\n }\n return acc;\n }, {});\n}\nfunction common_assign(targetObj, obj) {\n if (obj === void 0) { obj = {}; }\n Object.keys(obj).forEach(function (prop) {\n if (targetObj.hasOwnProperty(prop) && typeof targetObj[prop] === 'object') {\n if (Array.isArray(obj[prop])) {\n targetObj[prop] = obj[prop];\n }\n else {\n common_assign(targetObj[prop], obj[prop]);\n }\n }\n else {\n targetObj[prop] = obj[prop];\n }\n });\n return targetObj;\n}\nfunction getSortedNumPair(valueA, valueB) {\n return valueA > valueB ? [valueB, valueA] : [valueA, valueB];\n}\n\n;// CONCATENATED MODULE: ./src/utils/dom.ts\n\n\n\n\n\n\n\n\n\n\nfunction isPositionInBox(style, offsetX, offsetY) {\n var left = parseInt(style.left, 10);\n var top = parseInt(style.top, 10);\n var width = parseInt(style.width, 10) + parseInt(style.paddingLeft, 10) + parseInt(style.paddingRight, 10);\n var height = parseInt(style.height, 10) + parseInt(style.paddingTop, 10) + parseInt(style.paddingBottom, 10);\n return offsetX >= left && offsetX <= left + width && offsetY >= top && offsetY <= top + height;\n}\nvar CLS_PREFIX = 'toastui-editor-';\nfunction cls() {\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n var result = [];\n for (var _a = 0, names_1 = names; _a < names_1.length; _a++) {\n var name = names_1[_a];\n var className = void 0;\n if (Array.isArray(name)) {\n className = name[0] ? name[1] : null;\n }\n else {\n className = name;\n }\n if (className) {\n result.push(\"\" + CLS_PREFIX + className);\n }\n }\n return result.join(' ');\n}\nfunction clsWithMdPrefix() {\n var names = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n names[_i] = arguments[_i];\n }\n return names.map(function (className) { return CLS_PREFIX + \"md-\" + className; }).join(' ');\n}\nfunction isTextNode(node) {\n return (node === null || node === void 0 ? void 0 : node.nodeType) === Node.TEXT_NODE;\n}\nfunction isElemNode(node) {\n return node && node.nodeType === Node.ELEMENT_NODE;\n}\nfunction findNodes(element, selector) {\n var nodeList = toArray(element.querySelectorAll(selector));\n if (nodeList.length) {\n return nodeList;\n }\n return [];\n}\nfunction appendNodes(node, nodesToAppend) {\n nodesToAppend = isArray(nodesToAppend) ? toArray(nodesToAppend) : [nodesToAppend];\n nodesToAppend.forEach(function (nodeToAppend) {\n node.appendChild(nodeToAppend);\n });\n}\nfunction insertBeforeNode(insertedNode, node) {\n if (node.parentNode) {\n node.parentNode.insertBefore(insertedNode, node);\n }\n}\nfunction removeNode(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction unwrapNode(node) {\n var result = [];\n while (node.firstChild) {\n result.push(node.firstChild);\n if (node.parentNode) {\n node.parentNode.insertBefore(node.firstChild, node);\n }\n }\n removeNode(node);\n return result;\n}\nfunction toggleClass(element, className, state) {\n if (isUndefined_default()(state)) {\n state = !hasClass_default()(element, className);\n }\n var toggleFn = state ? (addClass_default()) : (removeClass_default());\n toggleFn(element, className);\n}\nfunction createElementWith(contents, target) {\n var container = document.createElement('div');\n if (isString_default()(contents)) {\n container.innerHTML = contents;\n }\n else {\n container.appendChild(contents);\n }\n var firstChild = container.firstChild;\n if (target) {\n target.appendChild(firstChild);\n }\n return firstChild;\n}\nfunction getOuterWidth(el) {\n var computed = window.getComputedStyle(el);\n return (['margin-left', 'margin-right'].reduce(function (acc, type) { return acc + parseInt(computed.getPropertyValue(type), 10); }, 0) + el.offsetWidth);\n}\nfunction closest(node, found) {\n var condition;\n if (isString(found)) {\n condition = function (target) { return matches(target, found); };\n }\n else {\n condition = function (target) { return target === found; };\n }\n while (node && node !== document) {\n if (isElemNode(node) && condition(node)) {\n return node;\n }\n node = node.parentNode;\n }\n return null;\n}\nfunction getTotalOffset(el, root) {\n var offsetTop = 0;\n var offsetLeft = 0;\n while (el && el !== root) {\n var top = el.offsetTop, left = el.offsetLeft, offsetParent = el.offsetParent;\n offsetTop += top;\n offsetLeft += left;\n if (offsetParent === root.offsetParent) {\n break;\n }\n el = el.offsetParent;\n }\n return { offsetTop: offsetTop, offsetLeft: offsetLeft };\n}\nfunction finalizeHtml(html, needHtmlText) {\n var result;\n if (needHtmlText) {\n result = html.innerHTML;\n }\n else {\n var frag = document.createDocumentFragment();\n var childNodes = toArray(html.childNodes);\n var length = childNodes.length;\n for (var i = 0; i < length; i += 1) {\n frag.appendChild(childNodes[i]);\n }\n result = frag;\n }\n return result;\n}\nfunction dom_empty(node) {\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n}\nfunction appendNode(node, appended) {\n if (isString(appended)) {\n node.insertAdjacentHTML('beforeend', appended);\n }\n else {\n var nodes = appended.length\n ? toArray(appended)\n : [appended];\n for (var i = 0, len = nodes.length; i < len; i += 1) {\n node.appendChild(nodes[i]);\n }\n }\n}\nfunction prependNode(node, appended) {\n if (isString(appended)) {\n node.insertAdjacentHTML('afterbegin', appended);\n }\n else {\n var nodes = appended.length\n ? toArray(appended)\n : [appended];\n for (var i = nodes.length - 1, len = 0; i >= len; i -= 1) {\n node.insertBefore(nodes[i], node.firstChild);\n }\n }\n}\nfunction setAttributes(attributes, element) {\n Object.keys(attributes).forEach(function (attrName) {\n if (isNil(attributes[attrName])) {\n element.removeAttribute(attrName);\n }\n else {\n element.setAttribute(attrName, attributes[attrName]);\n }\n });\n}\nfunction replaceBRWithEmptyBlock(html) {\n // remove br in paragraph to compatible with markdown\n var replacedHTML = html.replace(/<p><br\\s*\\/*><\\/p>/gi, '<p></p>');\n var reHTMLTag = new RegExp(HTML_TAG, 'ig');\n var htmlTagMatched = replacedHTML.match(reHTMLTag);\n htmlTagMatched === null || htmlTagMatched === void 0 ? void 0 : htmlTagMatched.forEach(function (htmlTag, index) {\n if (reBR.test(htmlTag)) {\n var alternativeTag = ALTERNATIVE_TAG_FOR_BR;\n if (index) {\n var prevTag = htmlTagMatched[index - 1];\n var openTagMatched = prevTag.match(OPEN_TAG);\n if (openTagMatched && !/br/i.test(openTagMatched[1])) {\n var tagName = openTagMatched[1];\n alternativeTag = \"</\" + tagName + \"><\" + tagName + \">\";\n }\n }\n replacedHTML = replacedHTML.replace(reBR, alternativeTag);\n }\n });\n return replacedHTML;\n}\nfunction removeProseMirrorHackNodes(html) {\n var reProseMirrorImage = /<img class=\"ProseMirror-separator\" alt=\"\">/g;\n var reProseMirrorTrailingBreak = / class=\"ProseMirror-trailingBreak\"/g;\n var resultHTML = html;\n resultHTML = resultHTML.replace(reProseMirrorImage, '');\n resultHTML = resultHTML.replace(reProseMirrorTrailingBreak, '');\n return resultHTML;\n}\n\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isFunction.js\nvar isFunction = __webpack_require__(294);\nvar isFunction_default = /*#__PURE__*/__webpack_require__.n(isFunction);\n;// CONCATENATED MODULE: ./src/utils/markdown.ts\n\nfunction hasSpecificTypeAncestor(mdNode) {\n var types = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n types[_i - 1] = arguments[_i];\n }\n while (mdNode && mdNode.parent && mdNode.parent.type !== 'document') {\n if (includes(types, mdNode.parent.type)) {\n return true;\n }\n mdNode = mdNode.parent;\n }\n return false;\n}\nfunction markdown_getMdStartLine(mdNode) {\n return mdNode.sourcepos[0][0];\n}\nfunction markdown_getMdEndLine(mdNode) {\n return mdNode.sourcepos[1][0];\n}\nfunction getMdStartCh(mdNode) {\n return mdNode.sourcepos[0][1];\n}\nfunction getMdEndCh(mdNode) {\n return mdNode.sourcepos[1][1];\n}\nfunction isMultiLineNode(mdNode) {\n var type = mdNode.type;\n return type === 'codeBlock' || type === 'paragraph';\n}\nfunction isHTMLNode(mdNode) {\n var type = mdNode.type;\n return type === 'htmlBlock' || type === 'htmlInline';\n}\nfunction markdown_isStyledInlineNode(mdNode) {\n var type = mdNode.type;\n return (type === 'strike' ||\n type === 'strong' ||\n type === 'emph' ||\n type === 'code' ||\n type === 'link' ||\n type === 'image');\n}\nfunction isCodeBlockNode(mdNode) {\n return mdNode && mdNode.type === 'codeBlock';\n}\nfunction isCustomBlockNode(mdNode) {\n return mdNode && mdNode.type === 'customBlock';\n}\nfunction isListNode(mdNode) {\n return mdNode && (mdNode.type === 'item' || mdNode.type === 'list');\n}\nfunction isOrderedListNode(mdNode) {\n return isListNode(mdNode) && mdNode.listData.type === 'ordered';\n}\nfunction isBulletListNode(mdNode) {\n return isListNode(mdNode) && mdNode.listData.type !== 'ordered';\n}\nfunction isTableCellNode(mdNode) {\n return mdNode && (mdNode.type === 'tableCell' || mdNode.type === 'tableDelimCell');\n}\nfunction isInlineNode(mdNode) {\n switch (mdNode.type) {\n case 'code':\n case 'text':\n case 'emph':\n case 'strong':\n case 'strike':\n case 'link':\n case 'image':\n case 'htmlInline':\n case 'linebreak':\n case 'softbreak':\n case 'customInline':\n return true;\n default:\n return false;\n }\n}\nfunction findClosestNode(mdNode, condition, includeSelf) {\n if (includeSelf === void 0) { includeSelf = true; }\n mdNode = includeSelf ? mdNode : mdNode.parent;\n while (mdNode && mdNode.type !== 'document') {\n if (condition(mdNode)) {\n return mdNode;\n }\n mdNode = mdNode.parent;\n }\n return null;\n}\nfunction traverseParentNodes(mdNode, iteratee, includeSelf) {\n if (includeSelf === void 0) { includeSelf = true; }\n mdNode = includeSelf ? mdNode : mdNode.parent;\n while (mdNode && mdNode.type !== 'document') {\n iteratee(mdNode);\n mdNode = mdNode.parent;\n }\n}\nfunction addOffsetPos(originPos, offset) {\n return [originPos[0], originPos[1] + offset];\n}\nfunction setOffsetPos(originPos, newOffset) {\n return [originPos[0], newOffset];\n}\nfunction getInlineMarkdownText(mdNode) {\n var text = mdNode.firstChild.literal;\n switch (mdNode.type) {\n case 'emph':\n return \"*\" + text + \"*\";\n case 'strong':\n return \"**\" + text + \"**\";\n case 'strike':\n return \"~~\" + text + \"~~\";\n case 'code':\n return \"`\" + text + \"`\";\n case 'link':\n case 'image':\n /* eslint-disable no-case-declarations */\n var _a = mdNode, destination = _a.destination, title = _a.title;\n var delim = mdNode.type === 'link' ? '' : '!';\n return delim + \"[\" + text + \"](\" + destination + (title ? \" \\\"\" + title + \"\\\"\" : '') + \")\";\n default:\n return null;\n }\n}\nfunction markdown_isContainer(node) {\n switch (node.type) {\n case 'document':\n case 'blockQuote':\n case 'list':\n case 'item':\n case 'paragraph':\n case 'heading':\n case 'emph':\n case 'strong':\n case 'strike':\n case 'link':\n case 'image':\n case 'table':\n case 'tableHead':\n case 'tableBody':\n case 'tableRow':\n case 'tableCell':\n case 'tableDelimRow':\n case 'customInline':\n return true;\n default:\n return false;\n }\n}\nfunction markdown_getChildrenText(node) {\n var buffer = [];\n var walker = node.walker();\n var event = null;\n while ((event = walker.next())) {\n var childNode = event.node;\n if (childNode.type === 'text') {\n buffer.push(childNode.literal);\n }\n }\n return buffer.join('');\n}\n\n;// CONCATENATED MODULE: ./src/widget/rules.ts\n\nvar widgetRules = (/* unused pure expression or super */ null && ([]));\nvar widgetRuleMap = {};\nvar reWidgetPrefix = /\\$\\$widget\\d+\\s/;\nfunction unwrapWidgetSyntax(text) {\n var index = text.search(reWidgetPrefix);\n if (index !== -1) {\n var rest = text.substring(index);\n var replaced = rest.replace(reWidgetPrefix, '').replace('$$', '');\n text = text.substring(0, index);\n text += unwrapWidgetSyntax(replaced);\n }\n return text;\n}\nfunction createWidgetContent(info, text) {\n return \"$$\" + info + \" \" + text + \"$$\";\n}\nfunction widgetToDOM(info, text) {\n var _a = widgetRuleMap[info], rule = _a.rule, toDOM = _a.toDOM;\n var matches = unwrapWidgetSyntax(text).match(rule);\n if (matches) {\n text = matches[0];\n }\n return toDOM(text);\n}\nfunction getWidgetRules() {\n return widgetRules;\n}\nfunction setWidgetRules(rules) {\n widgetRules = rules;\n widgetRules.forEach(function (rule, index) {\n widgetRuleMap[\"widget\" + index] = rule;\n });\n}\nfunction mergeNodes(nodes, text, schema, ruleIndex) {\n return nodes.concat(createNodesWithWidget(text, schema, ruleIndex));\n}\n/**\n * create nodes with plain text and replace text matched to the widget rules with the widget node\n * For example, in case the text and widget rules as below\n *\n * text: $test plain text #test\n * widget rules: [{ rule: /$.+/ }, { rule: /#.+/ }]\n *\n * The creating node process is recursive and is as follows.\n *\n * in first widget rule(/$.+/)\n * $test -> widget node\n * plain text -> match with next widget rule\n * #test -> match with next widget rule\n *\n * in second widget rule(/#.+/)\n * plain text -> text node(no rule for matching)\n * #test -> widget node\n */\nfunction createNodesWithWidget(text, schema, ruleIndex) {\n if (ruleIndex === void 0) { ruleIndex = 0; }\n var nodes = [];\n var rule = (widgetRules[ruleIndex] || {}).rule;\n var nextRuleIndex = ruleIndex + 1;\n text = unwrapWidgetSyntax(text);\n if (rule && rule.test(text)) {\n var index = void 0;\n while ((index = text.search(rule)) !== -1) {\n var prev = text.substring(0, index);\n // get widget node on first splitted text using next widget rule\n if (prev) {\n nodes = mergeNodes(nodes, prev, schema, nextRuleIndex);\n }\n // build widget node using current widget rule\n text = text.substring(index);\n var literal = text.match(rule)[0];\n var info = \"widget\" + ruleIndex;\n nodes.push(schema.nodes.widget.create({ info: info }, schema.text(createWidgetContent(info, literal))));\n text = text.substring(literal.length);\n }\n // get widget node on last splitted text using next widget rule\n if (text) {\n nodes = mergeNodes(nodes, text, schema, nextRuleIndex);\n }\n }\n else if (text) {\n nodes =\n ruleIndex < widgetRules.length - 1\n ? mergeNodes(nodes, text, schema, nextRuleIndex)\n : [schema.text(text)];\n }\n return nodes;\n}\nfunction getWidgetContent(widgetNode) {\n var event;\n var text = '';\n var walker = widgetNode.walker();\n while ((event = walker.next())) {\n var node = event.node, entering = event.entering;\n if (entering) {\n if (node !== widgetNode && node.type !== 'text') {\n text += getInlineMarkdownText(node);\n // skip the children\n walker.resumeAt(widgetNode, false);\n walker.next();\n }\n else if (node.type === 'text') {\n text += node.literal;\n }\n }\n }\n return text;\n}\n\n// EXTERNAL MODULE: ../../node_modules/dompurify/dist/purify.js\nvar purify = __webpack_require__(368);\nvar purify_default = /*#__PURE__*/__webpack_require__.n(purify);\n;// CONCATENATED MODULE: ./src/sanitizer/htmlSanitizer.ts\n\n\n\nvar CAN_BE_WHITE_TAG_LIST = ['iframe', 'embed'];\nvar whiteTagList = [];\nfunction htmlSanitizer_registerTagWhitelistIfPossible(tagName) {\n if (common_includes(CAN_BE_WHITE_TAG_LIST, tagName)) {\n whiteTagList.push(tagName.toLowerCase());\n }\n}\nfunction sanitizeHTML(html, options) {\n return purify_default().sanitize(html, tslib_es6_assign({ ADD_TAGS: whiteTagList, ADD_ATTR: ['rel', 'target', 'hreflang', 'type'], FORBID_TAGS: [\n 'input',\n 'script',\n 'textarea',\n 'form',\n 'button',\n 'select',\n 'meta',\n 'style',\n 'link',\n 'title',\n 'object',\n 'base',\n ] }, options));\n}\n\n;// CONCATENATED MODULE: ./src/wysiwyg/nodes/html.ts\n\n\n\n\nfunction getChildrenHTML(node, typeName) {\n return node\n .literal.replace(new RegExp(\"(<\\\\s*\" + typeName + \"[^>]*>)|(</\" + typeName + \"\\\\s*[>])\", 'ig'), '')\n .trim();\n}\nfunction getHTMLAttrsByHTMLString(html) {\n html = html.match(reHTMLTag)[0];\n var attrs = html.match(new RegExp(constants_ATTRIBUTE, 'g'));\n return attrs\n ? attrs.reduce(function (acc, attr) {\n var _a = attr.trim().split('='), name = _a[0], values = _a.slice(1);\n if (values.length) {\n acc[name] = values.join('=').replace(/'|\"/g, '').trim();\n }\n return acc;\n }, {})\n : {};\n}\nfunction getHTMLAttrs(dom) {\n return toArray_default()(dom.attributes).reduce(function (acc, attr) {\n acc[attr.nodeName] = attr.nodeValue;\n return acc;\n }, {});\n}\nfunction sanitizeDOM(node, typeName, sanitizer, wwToDOMAdaptor) {\n var dom = wwToDOMAdaptor.getToDOMNode(typeName)(node);\n var html = sanitizer(dom.outerHTML);\n var container = document.createElement('div');\n container.innerHTML = html;\n dom = container.firstChild;\n var htmlAttrs = getHTMLAttrs(dom);\n return { dom: dom, htmlAttrs: htmlAttrs };\n}\nvar schemaFactory = {\n htmlBlock: function (typeName, sanitizeHTML, wwToDOMAdaptor) {\n return {\n atom: true,\n content: 'block+',\n group: 'block',\n attrs: {\n htmlAttrs: { default: {} },\n childrenHTML: { default: '' },\n htmlBlock: { default: true },\n },\n parseDOM: [\n {\n tag: typeName,\n getAttrs: function (dom) {\n return {\n htmlAttrs: getHTMLAttrs(dom),\n childrenHTML: dom.innerHTML,\n };\n },\n },\n ],\n toDOM: function (node) {\n var _a = sanitizeDOM(node, typeName, sanitizeHTML, wwToDOMAdaptor), dom = _a.dom, htmlAttrs = _a.htmlAttrs;\n htmlAttrs.class = htmlAttrs.class ? htmlAttrs.class + \" html-block\" : 'html-block';\n return __spreadArray([typeName, htmlAttrs], toArray_default()(dom.childNodes));\n },\n };\n },\n htmlInline: function (typeName, sanitizeHTML, wwToDOMAdaptor) {\n return {\n attrs: {\n htmlAttrs: { default: {} },\n htmlInline: { default: true },\n },\n parseDOM: [\n {\n tag: typeName,\n getAttrs: function (dom) {\n return {\n htmlAttrs: getHTMLAttrs(dom),\n };\n },\n },\n ],\n toDOM: function (node) {\n var htmlAttrs = sanitizeDOM(node, typeName, sanitizeHTML, wwToDOMAdaptor).htmlAttrs;\n return [typeName, htmlAttrs, 0];\n },\n };\n },\n};\nfunction createHTMLSchemaMap(convertorMap, sanitizeHTML, wwToDOMAdaptor) {\n var htmlSchemaMap = { nodes: {}, marks: {} };\n ['htmlBlock', 'htmlInline'].forEach(function (htmlType) {\n if (convertorMap[htmlType]) {\n Object.keys(convertorMap[htmlType]).forEach(function (type) {\n var targetType = htmlType === 'htmlBlock' ? 'nodes' : 'marks';\n // register tag white list for preventing to remove the html in sanitizer\n registerTagWhitelistIfPossible(type);\n htmlSchemaMap[targetType][type] = schemaFactory[htmlType](type, sanitizeHTML, wwToDOMAdaptor);\n });\n }\n });\n return htmlSchemaMap;\n}\n\n;// CONCATENATED MODULE: ./src/markdown/htmlRenderConvertors.ts\n\n\n\n\n\n\nvar reCloseTag = /^\\s*<\\s*\\//;\nvar htmlRenderConvertors_baseConvertors = {\n paragraph: function (_, _a) {\n var entering = _a.entering, origin = _a.origin, options = _a.options;\n if (options.nodeId) {\n return {\n type: entering ? 'openTag' : 'closeTag',\n outerNewLine: true,\n tagName: 'p',\n };\n }\n return origin();\n },\n softbreak: function (node) {\n var isPrevNodeHTML = node.prev && node.prev.type === 'htmlInline';\n var isPrevBR = isPrevNodeHTML && /<br ?\\/?>/.test(node.prev.literal);\n var content = isPrevBR ? '\\n' : '<br>\\n';\n return { type: 'html', content: content };\n },\n item: function (node, _a) {\n var entering = _a.entering;\n if (entering) {\n var attributes = {};\n var classNames = [];\n if (node.listData.task) {\n attributes['data-task'] = '';\n classNames.push('task-list-item');\n if (node.listData.checked) {\n classNames.push('checked');\n attributes['data-task-checked'] = '';\n }\n }\n return {\n type: 'openTag',\n tagName: 'li',\n classNames: classNames,\n attributes: attributes,\n outerNewLine: true,\n };\n }\n return {\n type: 'closeTag',\n tagName: 'li',\n outerNewLine: true,\n };\n },\n code: function (node) {\n var attributes = { 'data-backticks': String(node.tickCount) };\n return [\n { type: 'openTag', tagName: 'code', attributes: attributes },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n ];\n },\n codeBlock: function (node) {\n var _a = node, fenceLength = _a.fenceLength, info = _a.info;\n var infoWords = info ? info.split(/\\s+/) : [];\n var preClasses = [];\n var codeAttrs = {};\n if (fenceLength > 3) {\n codeAttrs['data-backticks'] = fenceLength;\n }\n if (infoWords.length > 0 && infoWords[0].length > 0) {\n var lang = infoWords[0];\n preClasses.push(\"lang-\" + lang);\n codeAttrs['data-language'] = lang;\n }\n return [\n { type: 'openTag', tagName: 'pre', classNames: preClasses },\n { type: 'openTag', tagName: 'code', attributes: codeAttrs },\n { type: 'text', content: node.literal },\n { type: 'closeTag', tagName: 'code' },\n { type: 'closeTag', tagName: 'pre' },\n ];\n },\n customInline: function (node, _a) {\n var origin = _a.origin, entering = _a.entering, skipChildren = _a.skipChildren;\n var info = node.info;\n if (info.indexOf('widget') !== -1 && entering) {\n skipChildren();\n var content = getWidgetContent(node);\n var htmlInline = widgetToDOM(info, content).outerHTML;\n return [\n { type: 'openTag', tagName: 'span', classNames: ['tui-widget'] },\n { type: 'html', content: htmlInline },\n { type: 'closeTag', tagName: 'span' },\n ];\n }\n return origin();\n },\n};\nfunction getHTMLRenderConvertors(linkAttributes, customConvertors) {\n var convertors = tslib_es6_assign({}, htmlRenderConvertors_baseConvertors);\n if (linkAttributes) {\n convertors.link = function (_, _a) {\n var entering = _a.entering, origin = _a.origin;\n var result = origin();\n if (entering) {\n result.attributes = tslib_es6_assign(tslib_es6_assign({}, result.attributes), linkAttributes);\n }\n return result;\n };\n }\n if (customConvertors) {\n Object.keys(customConvertors).forEach(function (nodeType) {\n var orgConvertor = convertors[nodeType];\n var customConvertor = customConvertors[nodeType];\n if (orgConvertor && isFunction_default()(customConvertor)) {\n convertors[nodeType] = function (node, context) {\n var newContext = tslib_es6_assign({}, context);\n newContext.origin = function () { return orgConvertor(node, context); };\n return customConvertor(node, newContext);\n };\n }\n else if (common_includes(['htmlBlock', 'htmlInline'], nodeType) && !isFunction_default()(customConvertor)) {\n convertors[nodeType] = function (node, context) {\n var matched = node.literal.match(reHTMLTag);\n if (matched) {\n var rootHTML = matched[0], openTagName = matched[1], closeTagName = matched[3];\n var typeName = (openTagName || closeTagName).toLowerCase();\n var htmlConvertor = customConvertor[typeName];\n var childrenHTML = getChildrenHTML(node, typeName);\n if (htmlConvertor) {\n // copy for preventing to overwrite the originial property\n var newNode = tslib_es6_assign({}, node);\n newNode.attrs = getHTMLAttrsByHTMLString(rootHTML);\n newNode.childrenHTML = childrenHTML;\n newNode.type = typeName;\n context.entering = !reCloseTag.test(node.literal);\n return htmlConvertor(newNode, context);\n }\n }\n return context.origin();\n };\n }\n else {\n convertors[nodeType] = customConvertor;\n }\n });\n }\n return convertors;\n}\n\n;// CONCATENATED MODULE: ./src/markdown/scroll/dom.ts\n\n\nvar nestableTypes = (/* unused pure expression or super */ null && (['list', 'item', 'blockQuote']));\nvar nestableTagNames = ['UL', 'OL', 'BLOCKQUOTE'];\nfunction isBlankLine(doc, index) {\n var _a;\n var pmNode = doc.child(index);\n return !pmNode.childCount || (pmNode.childCount === 1 && !((_a = pmNode.firstChild.text) === null || _a === void 0 ? void 0 : _a.trim()));\n}\nfunction getEditorRangeHeightInfo(doc, mdNode, children) {\n var start = getMdStartLine(mdNode) - 1;\n var end = getMdEndLine(mdNode) - 1;\n var rect = children[start].getBoundingClientRect();\n var height = children[end].offsetTop -\n children[start].offsetTop +\n children[end].clientHeight;\n return {\n height: height <= 0\n ? children[start].clientHeight\n : height + getBlankLinesHeight(doc, children, Math.min(end + 1, doc.childCount - 1)),\n rect: rect,\n };\n}\nfunction getBlankLinesHeight(doc, children, start) {\n var end = doc.childCount - 1;\n var height = 0;\n while (start <= end && isBlankLine(doc, start)) {\n height += children[start].clientHeight;\n start += 1;\n }\n return height;\n}\nfunction findAncestorHavingId(el, root) {\n while (!el.getAttribute('data-nodeid') && el.parentElement !== root) {\n el = el.parentElement;\n }\n return el;\n}\nfunction dom_getTotalOffsetTop(el, root) {\n var offsetTop = 0;\n while (el && el !== root) {\n if (!common_includes(nestableTagNames, el.tagName)) {\n offsetTop += el.offsetTop;\n }\n if (el.offsetParent === root.offsetParent) {\n break;\n }\n el = el.parentElement;\n }\n return offsetTop;\n}\nfunction findAdjacentElementToScrollTop(scrollTop, root) {\n var el = root;\n var prev = null;\n while (el) {\n var firstElementChild = el.firstElementChild;\n if (!firstElementChild) {\n break;\n }\n var lastSibling = findLastSiblingElementToScrollTop(firstElementChild, scrollTop, dom_getTotalOffsetTop(el, root));\n prev = el;\n el = lastSibling;\n }\n var adjacentEl = el || prev;\n return adjacentEl === root ? null : adjacentEl;\n}\nfunction findLastSiblingElementToScrollTop(el, scrollTop, offsetTop) {\n if (el && scrollTop > offsetTop + el.offsetTop) {\n return (findLastSiblingElementToScrollTop(el.nextElementSibling, scrollTop, offsetTop) || el);\n }\n return null;\n}\nfunction getAdditionalPos(scrollTop, offsetTop, height, targetNodeHeight) {\n var ratio = Math.min((scrollTop - offsetTop) / height, 1);\n return ratio * targetNodeHeight;\n}\nfunction getParentNodeObj(previewContent, mdNode) {\n var el = previewContent.querySelector(\"[data-nodeid=\\\"\" + mdNode.id + \"\\\"]\");\n while (!el || isStyledInlineNode(mdNode)) {\n mdNode = mdNode.parent;\n el = previewContent.querySelector(\"[data-nodeid=\\\"\" + mdNode.id + \"\\\"]\");\n }\n return getNonNestableNodeObj({ mdNode: mdNode, el: el });\n}\nfunction getNonNestableNodeObj(_a) {\n var mdNode = _a.mdNode, el = _a.el;\n while ((includes(nestableTypes, mdNode.type) || mdNode.type === 'table') && mdNode.firstChild) {\n mdNode = mdNode.firstChild;\n el = el.firstElementChild;\n }\n return { mdNode: mdNode, el: el };\n}\n\n;// CONCATENATED MODULE: ./src/markdown/scroll/offset.ts\n\n\nvar offsetInfoMap = {};\nfunction setHeight(id, height) {\n offsetInfoMap[id] = offsetInfoMap[id] || {};\n offsetInfoMap[id].height = height;\n}\nfunction setOffsetTop(id, offsetTop) {\n offsetInfoMap[id] = offsetInfoMap[id] || {};\n offsetInfoMap[id].offsetTop = offsetTop;\n}\nfunction getHeight(id) {\n return offsetInfoMap[id] && offsetInfoMap[id].height;\n}\nfunction getOffsetTop(id) {\n return offsetInfoMap[id] && offsetInfoMap[id].offsetTop;\n}\nfunction removeOffsetInfoByNode(node) {\n if (node) {\n delete offsetInfoMap[Number(node.getAttribute('data-nodeid'))];\n toArray_default()(node.children).forEach(function (child) {\n removeOffsetInfoByNode(child);\n });\n }\n}\nfunction getAndSaveOffsetInfo(node, root, mdNodeId) {\n var cachedHeight = getHeight(mdNodeId);\n var cachedTop = getOffsetTop(mdNodeId);\n var nodeHeight = cachedHeight || node.clientHeight;\n var offsetTop = cachedTop || getTotalOffsetTop(node, root) || node.offsetTop;\n if (!cachedHeight) {\n setHeight(mdNodeId, nodeHeight);\n }\n if (!cachedTop) {\n setOffsetTop(mdNodeId, offsetTop);\n }\n return { nodeHeight: nodeHeight, offsetTop: offsetTop };\n}\n\n;// CONCATENATED MODULE: ./src/markdown/mdPreview.ts\n\n\n\n\n\n\n\n\n\n\n\nvar CLASS_HIGHLIGHT = cls('md-preview-highlight');\nfunction findTableCell(tableRow, chOffset) {\n var cell = tableRow.firstChild;\n while (cell && cell.next) {\n if (getMdStartCh(cell.next) > chOffset + 1) {\n break;\n }\n cell = cell.next;\n }\n return cell;\n}\n/**\n * Class Markdown Preview\n * @param {HTMLElement} el - base element\n * @param {eventEmitter} eventEmitter - event manager\n * @param {object} options\n * @param {boolean} options.isViewer - true for view-only mode\n * @param {boolean} options.highlight - true for using live-highlight feature\n * @param {object} opitons.linkAttributes - attributes for link element\n * @param {object} opitons.customHTMLRenderer - map of custom HTML render functions\n *\n * @ignore\n */\nvar MarkdownPreview = /** @class */ (function () {\n function MarkdownPreview(eventEmitter, options) {\n var el = document.createElement('div');\n this.el = el;\n this.eventEmitter = eventEmitter;\n this.isViewer = !!options.isViewer;\n this.el.className = cls('md-preview');\n var linkAttributes = options.linkAttributes, customHTMLRenderer = options.customHTMLRenderer, sanitizer = options.sanitizer, _a = options.highlight, highlight = _a === void 0 ? false : _a;\n this.renderer = new Renderer({\n gfm: true,\n nodeId: true,\n convertors: getHTMLRenderConvertors(linkAttributes, customHTMLRenderer),\n });\n this.cursorNodeId = null;\n this.sanitizer = sanitizer;\n this.initEvent(highlight);\n this.initContentSection();\n // To prevent overflowing contents in the viewer\n if (this.isViewer) {\n this.previewContent.style.overflowWrap = 'break-word';\n }\n }\n MarkdownPreview.prototype.initContentSection = function () {\n this.previewContent = createElementWith(\"<div class=\\\"\" + cls('contents') + \"\\\"></div>\");\n if (!this.isViewer) {\n this.el.appendChild(this.previewContent);\n }\n };\n MarkdownPreview.prototype.toggleActive = function (active) {\n toggleClass(this.el, 'active', active);\n };\n MarkdownPreview.prototype.initEvent = function (highlight) {\n var _this = this;\n this.eventEmitter.listen('updatePreview', this.update.bind(this));\n if (this.isViewer) {\n return;\n }\n if (highlight) {\n this.eventEmitter.listen('changeToolbarState', function (_a) {\n var mdNode = _a.mdNode, cursorPos = _a.cursorPos;\n _this.updateCursorNode(mdNode, cursorPos);\n });\n this.eventEmitter.listen('blur', function () {\n _this.removeHighlight();\n });\n }\n on_default()(this.el, 'scroll', function (event) {\n _this.eventEmitter.emit('scroll', 'preview', findAdjacentElementToScrollTop(event.target.scrollTop, _this.previewContent));\n });\n this.eventEmitter.listen('changePreviewTabPreview', function () { return _this.toggleActive(true); });\n this.eventEmitter.listen('changePreviewTabWrite', function () { return _this.toggleActive(false); });\n };\n MarkdownPreview.prototype.removeHighlight = function () {\n if (this.cursorNodeId) {\n var currentEl = this.getElementByNodeId(this.cursorNodeId);\n if (currentEl) {\n removeClass_default()(currentEl, CLASS_HIGHLIGHT);\n }\n }\n };\n MarkdownPreview.prototype.updateCursorNode = function (cursorNode, cursorPos) {\n if (cursorNode) {\n cursorNode = findClosestNode(cursorNode, function (mdNode) { return !isInlineNode(mdNode); });\n if (cursorNode.type === 'tableRow') {\n cursorNode = findTableCell(cursorNode, cursorPos[1]);\n }\n else if (cursorNode.type === 'tableBody') {\n // empty line next to table\n cursorNode = null;\n }\n }\n var cursorNodeId = cursorNode ? cursorNode.id : null;\n if (this.cursorNodeId === cursorNodeId) {\n return;\n }\n var oldEL = this.getElementByNodeId(this.cursorNodeId);\n var newEL = this.getElementByNodeId(cursorNodeId);\n if (oldEL) {\n removeClass_default()(oldEL, CLASS_HIGHLIGHT);\n }\n if (newEL) {\n addClass_default()(newEL, CLASS_HIGHLIGHT);\n }\n this.cursorNodeId = cursorNodeId;\n };\n MarkdownPreview.prototype.getElementByNodeId = function (nodeId) {\n return nodeId\n ? this.previewContent.querySelector(\"[data-nodeid=\\\"\" + nodeId + \"\\\"]\")\n : null;\n };\n MarkdownPreview.prototype.update = function (changed) {\n var _this = this;\n changed.forEach(function (editResult) { return _this.replaceRangeNodes(editResult); });\n this.eventEmitter.emit('afterPreviewRender', this);\n };\n MarkdownPreview.prototype.replaceRangeNodes = function (editResult) {\n var _this = this;\n var nodes = editResult.nodes, removedNodeRange = editResult.removedNodeRange;\n var contentEl = this.previewContent;\n var newHtml = this.eventEmitter.emitReduce('beforePreviewRender', this.sanitizer(nodes.map(function (node) { return _this.renderer.render(node); }).join('')));\n if (!removedNodeRange) {\n contentEl.insertAdjacentHTML('afterbegin', newHtml);\n }\n else {\n var _a = removedNodeRange.id, startNodeId = _a[0], endNodeId = _a[1];\n var startEl = this.getElementByNodeId(startNodeId);\n var endEl = this.getElementByNodeId(endNodeId);\n if (startEl) {\n startEl.insertAdjacentHTML('beforebegin', newHtml);\n var el = startEl;\n while (el && el !== endEl) {\n var nextEl = el.nextElementSibling;\n removeNode(el);\n removeOffsetInfoByNode(el);\n el = nextEl;\n }\n if (el === null || el === void 0 ? void 0 : el.parentNode) {\n removeNode(el);\n removeOffsetInfoByNode(el);\n }\n }\n }\n };\n MarkdownPreview.prototype.getRenderer = function () {\n return this.renderer;\n };\n MarkdownPreview.prototype.destroy = function () {\n off_default()(this.el, 'scroll');\n this.el = null;\n };\n MarkdownPreview.prototype.getElement = function () {\n return this.el;\n };\n MarkdownPreview.prototype.getHTML = function () {\n return removeProseMirrorHackNodes(this.previewContent.innerHTML);\n };\n MarkdownPreview.prototype.setHTML = function (html) {\n this.previewContent.innerHTML = html;\n };\n MarkdownPreview.prototype.setHeight = function (height) {\n css_default()(this.el, { height: height + \"px\" });\n };\n MarkdownPreview.prototype.setMinHeight = function (minHeight) {\n css_default()(this.el, { minHeight: minHeight + \"px\" });\n };\n return MarkdownPreview;\n}());\n/* harmony default export */ var mdPreview = (MarkdownPreview);\n\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-state\",\"commonjs2\":\"prosemirror-state\",\"amd\":\"prosemirror-state\"}\nvar external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_ = __webpack_require__(814);\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-inputrules\",\"commonjs2\":\"prosemirror-inputrules\",\"amd\":\"prosemirror-inputrules\"}\nvar external_commonjs_prosemirror_inputrules_commonjs2_prosemirror_inputrules_amd_prosemirror_inputrules_ = __webpack_require__(479);\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-view\",\"commonjs2\":\"prosemirror-view\",\"amd\":\"prosemirror-view\"}\nvar external_commonjs_prosemirror_view_commonjs2_prosemirror_view_amd_prosemirror_view_ = __webpack_require__(311);\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-keymap\",\"commonjs2\":\"prosemirror-keymap\",\"amd\":\"prosemirror-keymap\"}\nvar external_commonjs_prosemirror_keymap_commonjs2_prosemirror_keymap_amd_prosemirror_keymap_ = __webpack_require__(481);\n// EXTERNAL MODULE: external {\"commonjs\":\"prosemirror-model\",\"commonjs2\":\"prosemirror-model\",\"amd\":\"prosemirror-model\"}\nvar external_commonjs_prosemirror_model_commonjs2_prosemirror_model_amd_prosemirror_model_ = __webpack_require__(43);\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/array/inArray.js\nvar inArray = __webpack_require__(928);\nvar inArray_default = /*#__PURE__*/__webpack_require__.n(inArray);\n;// CONCATENATED MODULE: ./src/utils/map.ts\n\n/**\n * @class\n * @ignore\n * @classdesc ES6 Map\n */\nvar map_Map = /** @class */ (function () {\n function Map() {\n this.keys = [];\n this.values = [];\n }\n Map.prototype.getKeyIndex = function (key) {\n return inArray_default()(key, this.keys);\n };\n Map.prototype.get = function (key) {\n return this.values[this.getKeyIndex(key)];\n };\n Map.prototype.set = function (key, value) {\n var keyIndex = this.getKeyIndex(key);\n if (keyIndex > -1) {\n this.values[keyIndex] = value;\n }\n else {\n this.keys.push(key);\n this.values.push(value);\n }\n return this;\n };\n Map.prototype.has = function (key) {\n return this.getKeyIndex(key) > -1;\n };\n Map.prototype.delete = function (key) {\n var keyIndex = this.getKeyIndex(key);\n if (keyIndex > -1) {\n this.keys.splice(keyIndex, 1);\n this.values.splice(keyIndex, 1);\n return true;\n }\n return false;\n };\n Map.prototype.forEach = function (callback, thisArg) {\n var _this = this;\n if (thisArg === void 0) { thisArg = this; }\n this.values.forEach(function (value, index) {\n if (value && _this.keys[index]) {\n callback.call(thisArg, value, _this.keys[index], _this);\n }\n });\n };\n Map.prototype.clear = function () {\n this.keys = [];\n this.values = [];\n };\n return Map;\n}());\n/* harmony default export */ var utils_map = (map_Map);\n\n;// CONCATENATED MODULE: ./src/i18n/i18n.ts\n/**\n * @fileoverview Implements i18n\n * @author NHN Cloud FE Development Lab <dl_javascript@nhn.com>\n */\n\n\nvar DEFAULT_CODE = 'en-US';\n/**\n * Class I18n\n * @ignore\n */\nvar I18n = /** @class */ (function () {\n function I18n() {\n this.code = DEFAULT_CODE;\n this.langs = new utils_map();\n }\n I18n.prototype.setCode = function (code) {\n this.code = code || DEFAULT_CODE;\n };\n /**\n * Set language set\n * @param {string|string[]} codes locale code\n * @param {object} data language set\n */\n I18n.prototype.setLanguage = function (codes, data) {\n var _this = this;\n codes = [].concat(codes);\n codes.forEach(function (code) {\n if (!_this.langs.has(code)) {\n _this.langs.set(code, data);\n }\n else {\n var langData = _this.langs.get(code);\n _this.langs.set(code, extend_default()(langData, data));\n }\n });\n };\n I18n.prototype.get = function (key, code) {\n if (!code) {\n code = this.code;\n }\n var langSet = this.langs.get(code);\n if (!langSet) {\n langSet = this.langs.get(DEFAULT_CODE);\n }\n var text = langSet[key];\n if (!text) {\n throw new Error(\"There is no text key \\\"\" + key + \"\\\" in \" + code);\n }\n return text;\n };\n return I18n;\n}());\n\n/* harmony default export */ var i18n = (new I18n());\n\n;// CONCATENATED MODULE: ./src/wysiwyg/helper/node.ts\n\n\nfunction findNodeBy(pos, condition) {\n var depth = pos.depth;\n while (depth) {\n var node = pos.node(depth);\n if (condition(node, depth)) {\n return {\n node: node,\n depth: depth,\n offset: depth > 0 ? pos.before(depth) : 0,\n };\n }\n depth -= 1;\n }\n return null;\n}\nfunction node_isListNode(_a) {\n var type = _a.type;\n return type.name === 'bulletList' || type.name === 'orderedList';\n}\nfunction isInListNode(pos) {\n return !!findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'listItem' || type.name === 'bulletList' || type.name === 'orderedList';\n });\n}\nfunction isInTableNode(pos) {\n return !!findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'tableHeadCell' || type.name === 'tableBodyCell';\n });\n}\nfunction findListItem(pos) {\n return findNodeBy(pos, function (_a) {\n var type = _a.type;\n return type.name === 'listItem';\n });\n}\nfunction createDOMInfoParsedRawHTML(tag) {\n return {\n tag: tag,\n getAttrs: function (dom) {\n var rawHTML = dom.getAttribute('data-raw-html');\n return __assign({}, (rawHTML && { rawHTML: rawHTML }));\n },\n };\n}\nfunction createCellAttrs(attrs) {\n return Object.keys(attrs).reduce(function (acc, attrName) {\n if (attrName !== 'rawHTML' && attrs[attrName]) {\n attrName = attrName === 'className' ? 'class' : attrName;\n acc[attrName] = attrs[attrName];\n }\n return acc;\n }, {});\n}\nfunction createParsedCellDOM(tag) {\n return {\n tag: tag,\n getAttrs: function (dom) {\n return ['rawHTML', 'colspan', 'rowspan', 'extended'].reduce(function (acc, attrName) {\n var attrNameInDOM = attrName === 'rawHTML' ? 'data-raw-html' : attrName;\n var attrValue = dom.getAttribute(attrNameInDOM);\n if (attrValue) {\n acc[attrName] = includes(['rawHTML', 'extended'], attrName)\n ? attrValue\n : Number(attrValue);\n }\n return acc;\n }, {});\n },\n };\n}\nfunction getDefaultCustomAttrs() {\n return {\n htmlAttrs: { default: null },\n classNames: { default: null },\n };\n}\nfunction getCustomAttrs(attrs) {\n var htmlAttrs = attrs.htmlAttrs, classNames = attrs.classNames;\n return __assign(__assign({}, htmlAttrs), { class: classNames ? classNames.join(' ') : null });\n}\n\n;// CONCATENATED MODULE: ./src/wysiwyg/helper/tableOffsetMap.ts\n\n\nvar cache = new Map();\n/* eslint-disable @typescript-eslint/no-unused-vars */\nvar TableOffsetMap = /** @class */ (function () {\n function TableOffsetMap(table, tableRows, tableStartPos, rowInfo) {\n this.table = table;\n this.tableRows = tableRows;\n this.tableStartPos = tableStartPos;\n this.rowInfo = rowInfo;\n }\n TableOffsetMap.create = function (cellPos) {\n var table = findNodeBy(cellPos, function (_a) {\n var type = _a.type;\n return type.name === 'table';\n });\n if (table) {\n var node = table.node, depth = table.depth, offset = table.offset;\n var cached = cache.get(node);\n if ((cached === null || cached === void 0 ? void 0 : cached.tableStartPos) === offset + 1) {\n return cached;\n }\n var rows_1 = [];\n var tablePos = cellPos.start(depth);\n var thead = node.child(0);\n var tbody = node.child(1);\n var theadCellInfo = createOffsetMap(thead, tablePos);\n var tbodyCellInfo = createOffsetMap(tbody, tablePos + thead.nodeSize);\n thead.forEach(function (row) { return rows_1.push(row); });\n tbody.forEach(function (row) { return rows_1.push(row); });\n var map = new TableOffsetMap(node, rows_1, tablePos, theadCellInfo.concat(tbodyCellInfo));\n cache.set(node, map);\n return map;\n }\n return null;\n };\n Object.defineProperty(TableOffsetMap.prototype, \"totalRowCount\", {\n get: function () {\n return this.rowInfo.length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableOffsetMap.prototype, \"totalColumnCount\", {\n get: function () {\n return this.rowInfo[0].length;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableOffsetMap.prototype, \"tableStartOffset\", {\n get: function () {\n return this.tableStartPos;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(TableOffsetMap.prototype, \"tableEndOffset\", {\n get: function () {\n return this.tableStartPos + this.table.nodeSize - 1;\n },\n enumerable: false,\n configurable: true\n });\n TableOffsetMap.prototype.getCellInfo = function (rowIdx, colIdx) {\n return this.rowInfo[rowIdx][colIdx];\n };\n TableOffsetMap.prototype.posAt = function (rowIdx, colIdx) {\n for (var i = 0, rowStart = this.tableStartPos;; i += 1) {\n var rowEnd = rowStart + this.tableRows[i].nodeSize;\n if (i === rowIdx) {\n var index = colIdx;\n // Skip the cells from previous row(via rowspan)\n while (index < this.totalColumnCount && this.rowInfo[i][index].offset < rowStart) {\n index += 1;\n }\n return index === this.totalColumnCount ? rowEnd : this.rowInfo[i][index].offset;\n }\n rowStart = rowEnd;\n }\n };\n TableOffsetMap.prototype.getNodeAndPos = function (rowIdx, colIdx) {\n var cellInfo = this.rowInfo[rowIdx][colIdx];\n return {\n node: this.table.nodeAt(cellInfo.offset - this.tableStartOffset),\n pos: cellInfo.offset,\n };\n };\n TableOffsetMap.prototype.extendedRowspan = function (rowIdx, colIdx) {\n return false;\n };\n TableOffsetMap.prototype.extendedColspan = function (rowIdx, colIdx) {\n return false;\n };\n TableOffsetMap.prototype.getRowspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.getColspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.decreaseColspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.decreaseRowspanCount = function (rowIdx, colIdx) {\n return 0;\n };\n TableOffsetMap.prototype.getColspanStartInfo = function (rowIdx, colIdx) {\n return null;\n };\n TableOffsetMap.prototype.getRowspanStartInfo = function (rowIdx, colIdx) {\n return null;\n };\n TableOffsetMap.prototype.getCellStartOffset = function (rowIdx, colIdx) {\n var offset = this.rowInfo[rowIdx][colIdx].offset;\n return this.extendedRowspan(rowIdx, colIdx) ? this.posAt(rowIdx, colIdx) : offset;\n };\n TableOffsetMap.prototype.getCellEndOffset = function (rowIdx, colIdx) {\n var _a = this.rowInfo[rowIdx][colIdx], offset = _a.offset, nodeSize = _a.nodeSize;\n return this.extendedRowspan(rowIdx, colIdx) ? this.posAt(rowIdx, colIdx) : offset + nodeSize;\n };\n TableOffsetMap.prototype.getCellIndex = function (cellPos) {\n for (var rowIdx = 0; rowIdx < this.totalRowCount; rowIdx += 1) {\n var rowInfo = this.rowInfo[rowIdx];\n for (var colIdx = 0; colIdx < this.totalColumnCount; colIdx += 1) {\n if (rowInfo[colIdx].offset + 1 > cellPos.pos) {\n return [rowIdx, colIdx];\n }\n }\n }\n return [0, 0];\n };\n TableOffsetMap.prototype.getRectOffsets = function (startCellPos, endCellPos) {\n var _a, _b, _c;\n if (endCellPos === void 0) { endCellPos = startCellPos; }\n if (startCellPos.pos > endCellPos.pos) {\n _a = [endCellPos, startCellPos], startCellPos = _a[0], endCellPos = _a[1];\n }\n var _d = this.getCellIndex(startCellPos), startRowIdx = _d[0], startColIdx = _d[1];\n var _e = this.getCellIndex(endCellPos), endRowIdx = _e[0], endColIdx = _e[1];\n _b = getSortedNumPair(startRowIdx, endRowIdx), startRowIdx = _b[0], endRowIdx = _b[1];\n _c = getSortedNumPair(startColIdx, endColIdx), startColIdx = _c[0], endColIdx = _c[1];\n return this.getSpannedOffsets({ startRowIdx: startRowIdx, startColIdx: startColIdx, endRowIdx: endRowIdx, endColIdx: endColIdx });\n };\n TableOffsetMap.prototype.getSpannedOffsets = function (selectionInfo) {\n return selectionInfo;\n };\n return TableOffsetMap;\n}());\n\n/* eslint-enable @typescript-eslint/no-unused-vars */\nvar createOffsetMap = function (headOrBody, startOffset) {\n var cellInfoMatrix = [];\n headOrBody.forEach(function (row, rowOffset) {\n // get row index based on table(not table head or table body)\n var rowInfo = { rowspanMap: {}, colspanMap: {}, length: 0 };\n row.forEach(function (_a, cellOffset) {\n var nodeSize = _a.nodeSize;\n var colIdx = 0;\n while (rowInfo[colIdx]) {\n colIdx += 1;\n }\n rowInfo[colIdx] = {\n // 2 is the sum of the front and back positions of the tag\n offset: startOffset + rowOffset + cellOffset + 2,\n nodeSize: nodeSize,\n };\n rowInfo.length += 1;\n });\n cellInfoMatrix.push(rowInfo);\n });\n return cellInfoMatrix;\n};\nfunction mixinTableOffsetMapPrototype(offsetMapMixin, createOffsetMapMixin) {\n common_assign(TableOffsetMap.prototype, offsetMapMixin);\n createOffsetMap = createOffsetMapMixin;\n return TableOffsetMap;\n}\n\n;// CONCATENATED MODULE: ./src/helper/plugin.ts\n\n\n\n\n\n\n\n\n\n\nfunction execPlugin(pluginInfo) {\n var plugin = pluginInfo.plugin, eventEmitter = pluginInfo.eventEmitter, usageStatistics = pluginInfo.usageStatistics, instance = pluginInfo.instance;\n var pmState = { Plugin: external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_.Plugin, PluginKey: external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_.PluginKey, Selection: external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_.Selection, TextSelection: external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_.TextSelection };\n var pmView = { Decoration: external_commonjs_prosemirror_view_commonjs2_prosemirror_view_amd_prosemirror_view_.Decoration, DecorationSet: external_commonjs_prosemirror_view_commonjs2_prosemirror_view_amd_prosemirror_view_.DecorationSet };\n var pmModel = { Fragment: external_commonjs_prosemirror_model_commonjs2_prosemirror_model_amd_prosemirror_model_.Fragment };\n var pmRules = { InputRule: external_commonjs_prosemirror_inputrules_commonjs2_prosemirror_inputrules_amd_prosemirror_inputrules_.InputRule, inputRules: external_commonjs_prosemirror_inputrules_commonjs2_prosemirror_inputrules_amd_prosemirror_inputrules_.inputRules, undoInputRule: external_commonjs_prosemirror_inputrules_commonjs2_prosemirror_inputrules_amd_prosemirror_inputrules_.undoInputRule };\n var pmKeymap = { keymap: external_commonjs_prosemirror_keymap_commonjs2_prosemirror_keymap_amd_prosemirror_keymap_.keymap };\n var context = {\n eventEmitter: eventEmitter,\n usageStatistics: usageStatistics,\n instance: instance,\n pmState: pmState,\n pmView: pmView,\n pmModel: pmModel,\n pmRules: pmRules,\n pmKeymap: pmKeymap,\n i18n: i18n,\n };\n if (isArray_default()(plugin)) {\n var pluginFn = plugin[0], _a = plugin[1], options = _a === void 0 ? {} : _a;\n return pluginFn(context, options);\n }\n return plugin(context);\n}\nfunction getPluginInfo(pluginsInfo) {\n var plugins = pluginsInfo.plugins, eventEmitter = pluginsInfo.eventEmitter, usageStatistics = pluginsInfo.usageStatistics, instance = pluginsInfo.instance;\n eventEmitter.listen('mixinTableOffsetMapPrototype', mixinTableOffsetMapPrototype);\n return (plugins !== null && plugins !== void 0 ? plugins : []).reduce(function (acc, plugin) {\n var pluginInfoResult = execPlugin({\n plugin: plugin,\n eventEmitter: eventEmitter,\n usageStatistics: usageStatistics,\n instance: instance,\n });\n if (!pluginInfoResult) {\n throw new Error('The return value of the executed plugin is empty.');\n }\n var markdownParsers = pluginInfoResult.markdownParsers, toHTMLRenderers = pluginInfoResult.toHTMLRenderers, toMarkdownRenderers = pluginInfoResult.toMarkdownRenderers, markdownPlugins = pluginInfoResult.markdownPlugins, wysiwygPlugins = pluginInfoResult.wysiwygPlugins, wysiwygNodeViews = pluginInfoResult.wysiwygNodeViews, markdownCommands = pluginInfoResult.markdownCommands, wysiwygCommands = pluginInfoResult.wysiwygCommands, toolbarItems = pluginInfoResult.toolbarItems;\n if (toHTMLRenderers) {\n acc.toHTMLRenderers = deepMergedCopy(acc.toHTMLRenderers, toHTMLRenderers);\n }\n if (toMarkdownRenderers) {\n acc.toMarkdownRenderers = deepMergedCopy(acc.toMarkdownRenderers, toMarkdownRenderers);\n }\n if (markdownPlugins) {\n acc.mdPlugins = acc.mdPlugins.concat(markdownPlugins);\n }\n if (wysiwygPlugins) {\n acc.wwPlugins = acc.wwPlugins.concat(wysiwygPlugins);\n }\n if (wysiwygNodeViews) {\n acc.wwNodeViews = tslib_es6_assign(tslib_es6_assign({}, acc.wwNodeViews), wysiwygNodeViews);\n }\n if (markdownCommands) {\n acc.mdCommands = tslib_es6_assign(tslib_es6_assign({}, acc.mdCommands), markdownCommands);\n }\n if (wysiwygCommands) {\n acc.wwCommands = tslib_es6_assign(tslib_es6_assign({}, acc.wwCommands), wysiwygCommands);\n }\n if (toolbarItems) {\n acc.toolbarItems = acc.toolbarItems.concat(toolbarItems);\n }\n if (markdownParsers) {\n acc.markdownParsers = tslib_es6_assign(tslib_es6_assign({}, acc.markdownParsers), markdownParsers);\n }\n return acc;\n }, {\n toHTMLRenderers: {},\n toMarkdownRenderers: {},\n mdPlugins: [],\n wwPlugins: [],\n wwNodeViews: {},\n mdCommands: {},\n wwCommands: {},\n toolbarItems: [],\n markdownParsers: {},\n });\n}\n\n// EXTERNAL MODULE: ../../node_modules/tui-code-snippet/type/isFalsy.js\nvar isFalsy = __webpack_require__(404);\nvar isFalsy_default = /*#__PURE__*/__webpack_require__.n(isFalsy);\n;// CONCATENATED MODULE: ./src/event/eventEmitter.ts\n\n\n\n\nvar eventTypeList = [\n 'afterPreviewRender',\n 'updatePreview',\n 'changeMode',\n 'needChangeMode',\n 'command',\n 'changePreviewStyle',\n 'changePreviewTabPreview',\n 'changePreviewTabWrite',\n 'scroll',\n 'contextmenu',\n 'show',\n 'hide',\n 'changeLanguage',\n 'changeToolbarState',\n 'toggleScrollSync',\n 'mixinTableOffsetMapPrototype',\n 'setFocusedNode',\n 'removePopupWidget',\n 'query',\n // provide event for user\n 'openPopup',\n 'closePopup',\n 'addImageBlobHook',\n 'beforePreviewRender',\n 'beforeConvertWysiwygToMarkdown',\n 'load',\n 'loadUI',\n 'change',\n 'caretChange',\n 'destroy',\n 'focus',\n 'blur',\n 'keydown',\n 'keyup',\n];\n/**\n * Class EventEmitter\n * @ignore\n */\nvar EventEmitter = /** @class */ (function () {\n function EventEmitter() {\n var _this = this;\n this.events = new utils_map();\n this.eventTypes = eventTypeList.reduce(function (types, type) {\n return tslib_es6_assign(tslib_es6_assign({}, types), { type: type });\n }, {});\n this.hold = false;\n eventTypeList.forEach(function (eventType) {\n _this.addEventType(eventType);\n });\n }\n /**\n * Listen event and bind event handler\n * @param {string} type Event type string\n * @param {function} handler Event handler\n */\n EventEmitter.prototype.listen = function (type, handler) {\n var typeInfo = this.getTypeInfo(type);\n var eventHandlers = this.events.get(typeInfo.type) || [];\n if (!this.hasEventType(typeInfo.type)) {\n throw new Error(\"There is no event type \" + typeInfo.type);\n }\n if (typeInfo.namespace) {\n handler.namespace = typeInfo.namespace;\n }\n eventHandlers.push(handler);\n this.events.set(typeInfo.type, eventHandlers);\n };\n /**\n * Emit event\n * @param {string} eventName Event name to emit\n * @returns {Array}\n */\n EventEmitter.prototype.emit = function (type) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var typeInfo = this.getTypeInfo(type);\n var eventHandlers = this.events.get(typeInfo.type);\n var results = [];\n if (!this.hold && eventHandlers) {\n eventHandlers.forEach(function (handler) {\n var result = handler.apply(void 0, args);\n if (!isUndefined_default()(result)) {\n results.push(result);\n }\n });\n }\n return results;\n };\n /**\n * Emit given event and return result\n * @param {string} eventName Event name to emit\n * @param {any} source Source to change\n * @returns {string}\n */\n EventEmitter.prototype.emitReduce = function (type, source) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n var eventHandlers = this.events.get(type);\n if (!this.hold && eventHandlers) {\n eventHandlers.forEach(function (handler) {\n var result = handler.apply(void 0, __spreadArray([source], args));\n if (!isFalsy_default()(result)) {\n source = result;\n }\n });\n }\n return source;\n };\n /**\n * Get event type and namespace\n * @param {string} type Event type name\n * @returns {{type: string, namespace: string}}\n * @private\n */\n EventEmitter.prototype.getTypeInfo = function (type) {\n var splited = type.split('.');\n return {\n type: splited[0],\n namespace: splited[1],\n };\n };\n /**\n * Check whether event type exists or not\n * @param {string} type Event type name\n * @returns {boolean}\n * @private\n */\n EventEmitter.prototype.hasEventType = function (type) {\n return !isUndefined_default()(this.eventTypes[this.getTypeInfo(type).type]);\n };\n /**\n * Add event type when given event not exists\n * @param {string} type Event type name\n */\n EventEmitter.prototype.addEventType = function (type) {\n if (this.hasEventType(type)) {\n throw new Error(\"There is already have event type \" + type);\n }\n this.eventTypes[type] = type;\n };\n /**\n * Remove event handler from given event type\n * @param {string} eventType Event type name\n * @param {function} [handler] - registered event handler\n */\n EventEmitter.prototype.removeEventHandler = function (eventType, handler) {\n var _this = this;\n var _a = this.getTypeInfo(eventType), type = _a.type, namespace = _a.namespace;\n if (type && handler) {\n this.removeEventHandlerWithHandler(type, handler);\n }\n else if (type && !namespace) {\n this.events.delete(type);\n }\n else if (!type && namespace) {\n this.events.forEach(function (_, evtType) {\n _this.removeEventHandlerWithTypeInfo(evtType, namespace);\n });\n }\n else if (type && namespace) {\n this.removeEventHandlerWithTypeInfo(type, namespace);\n }\n };\n /**\n * Remove event handler with event handler\n * @param {string} type - event type name\n * @param {function} handler - event handler\n * @private\n */\n EventEmitter.prototype.removeEventHandlerWithHandler = function (type, handler) {\n var eventHandlers = this.events.get(type);\n if (eventHandlers) {\n var handlerIndex = eventHandlers.indexOf(handler);\n if (eventHandlers.indexOf(handler) >= 0) {\n eventHandlers.splice(handlerIndex, 1);\n }\n }\n };\n /**\n * Remove event handler with event type information\n * @param {string} type Event type name\n * @param {string} namespace Event namespace\n * @private\n */\n EventEmitter.prototype.removeEventHandlerWithTypeInfo = function (type, namespace) {\n var handlersToSurvive = [];\n var eventHandlers = this.events.get(type);\n if (!eventHandlers) {\n return;\n }\n eventHandlers.map(function (handler) {\n if (handler.namespace !== namespace) {\n handlersToSurvive.push(handler);\n }\n return null;\n });\n this.events.set(type, handlersToSurvive);\n };\n EventEmitter.prototype.getEvents = function () {\n return this.events;\n };\n EventEmitter.prototype.holdEventInvoke = function (fn) {\n this.hold = true;\n fn();\n this.hold = false;\n };\n return EventEmitter;\n}());\n/* harmony default export */ var eventEmitter = (EventEmitter);\n\n;// CONCATENATED MODULE: ./src/viewer.ts\n\n\n\n\n\n\n\n\n\n\n\n\nvar TASK_ATTR_NAME = 'data-task';\nvar DISABLED_TASK_ATTR_NAME = 'data-task-disabled';\nvar TASK_CHECKED_CLASS_NAME = 'checked';\nfunction registerHTMLTagToWhitelist(convertorMap) {\n ['htmlBlock', 'htmlInline'].forEach(function (htmlType) {\n if (convertorMap[htmlType]) {\n // register tag white list for preventing to remove the html in sanitizer\n Object.keys(convertorMap[htmlType]).forEach(function (type) { return htmlSanitizer_registerTagWhitelistIfPossible(type); });\n }\n });\n}\n/**\n * Class ToastUIEditorViewer\n * @param {object} options Option object\n * @param {HTMLElement} options.el - container element\n * @param {string} [options.initialValue] Editor's initial value\n * @param {Object} [options.events] - Events\n * @param {function} [options.events.load] - It would be emitted when editor fully load\n * @param {function} [options.events.change] - It would be emitted when content changed\n * @param {function} [options.events.caretChange] - It would be emitted when format change by cursor position\n * @param {function} [options.events.focus] - It would be emitted when editor get focus\n * @param {function} [options.events.blur] - It would be emitted when editor loose focus\n * @param {Array.<function|Array>} [options.plugins] - Array of plugins. A plugin can be either a function or an array in the form of [function, options].\n * @param {Object} [options.extendedAutolinks] - Using extended Autolinks specified in GFM spec\n * @param {Object} [options.linkAttributes] - Attributes of anchor element that should be rel, target, hreflang, type\n * @param {Object} [options.customHTMLRenderer=null] - Object containing custom renderer functions correspond to change markdown node to preview HTML or wysiwyg node\n * @param {boolean} [options.referenceDefinition=false] - whether use the specification of link reference definition\n * @param {function} [options.customHTMLSanitizer=null] - custom HTML sanitizer\n * @param {boolean} [options.frontMatter=false] - whether use the front matter\n * @param {string} [options.theme] - The theme to style the viewer with. The default is included in toastui-editor.css.\n */\nvar ToastUIEditorViewer = /** @class */ (function () {\n function ToastUIEditorViewer(options) {\n var _this = this;\n this.options = extend_default()({\n linkAttributes: null,\n extendedAutolinks: false,\n customHTMLRenderer: null,\n referenceDefinition: false,\n customHTMLSanitizer: null,\n frontMatter: false,\n usageStatistics: true,\n theme: 'light',\n }, options);\n this.eventEmitter = new eventEmitter();\n var linkAttributes = sanitizeLinkAttribute(this.options.linkAttributes);\n var _a = getPluginInfo({\n plugins: this.options.plugins,\n eventEmitter: this.eventEmitter,\n usageStatistics: this.options.usageStatistics,\n instance: this,\n }) || {}, toHTMLRenderers = _a.toHTMLRenderers, markdownParsers = _a.markdownParsers;\n var _b = this.options, customHTMLRenderer = _b.customHTMLRenderer, extendedAutolinks = _b.extendedAutolinks, referenceDefinition = _b.referenceDefinition, frontMatter = _b.frontMatter, customHTMLSanitizer = _b.customHTMLSanitizer;\n var rendererOptions = {\n linkAttributes: linkAttributes,\n customHTMLRenderer: tslib_es6_assign(tslib_es6_assign({}, toHTMLRenderers), customHTMLRenderer),\n extendedAutolinks: extendedAutolinks,\n referenceDefinition: referenceDefinition,\n frontMatter: frontMatter,\n sanitizer: customHTMLSanitizer || sanitizeHTML,\n };\n registerHTMLTagToWhitelist(rendererOptions.customHTMLRenderer);\n if (this.options.events) {\n forEachOwnProperties_default()(this.options.events, function (fn, key) {\n _this.on(key, fn);\n });\n }\n var _c = this.options, el = _c.el, initialValue = _c.initialValue, theme = _c.theme;\n var existingHTML = el.innerHTML;\n if (theme !== 'light') {\n el.classList.add(cls(theme));\n }\n el.innerHTML = '';\n this.toastMark = new ToastMark('', {\n disallowedHtmlBlockTags: ['br', 'img'],\n extendedAutolinks: extendedAutolinks,\n referenceDefinition: referenceDefinition,\n disallowDeepHeading: true,\n frontMatter: frontMatter,\n customParser: markdownParsers,\n });\n this.preview = new mdPreview(this.eventEmitter, tslib_es6_assign(tslib_es6_assign({}, rendererOptions), { isViewer: true }));\n on_default()(this.preview.previewContent, 'mousedown', this.toggleTask.bind(this));\n if (initialValue) {\n this.setMarkdown(initialValue);\n }\n else if (existingHTML) {\n this.preview.setHTML(existingHTML);\n }\n el.appendChild(this.preview.previewContent);\n this.eventEmitter.emit('load', this);\n }\n /**\n * Toggle task by detecting mousedown event.\n * @param {MouseEvent} ev - event\n * @private\n */\n ToastUIEditorViewer.prototype.toggleTask = function (ev) {\n var element = ev.target;\n var style = getComputedStyle(element, ':before');\n if (!element.hasAttribute(DISABLED_TASK_ATTR_NAME) &&\n element.hasAttribute(TASK_ATTR_NAME) &&\n isPositionInBox(style, ev.offsetX, ev.offsetY)) {\n toggleClass(element, TASK_CHECKED_CLASS_NAME);\n this.eventEmitter.emit('change', {\n source: 'viewer',\n date: ev,\n });\n }\n };\n /**\n * Set content for preview\n * @param {string} markdown Markdown text\n */\n ToastUIEditorViewer.prototype.setMarkdown = function (markdown) {\n var lineTexts = this.toastMark.getLineTexts();\n var length = lineTexts.length;\n var lastLine = common_last(lineTexts);\n var endSourcepos = [length, lastLine.length + 1];\n var editResult = this.toastMark.editMarkdown([1, 1], endSourcepos, markdown || '');\n this.eventEmitter.emit('updatePreview', editResult);\n };\n /**\n * Bind eventHandler to event type\n * @param {string} type Event type\n * @param {function} handler Event handler\n */\n ToastUIEditorViewer.prototype.on = function (type, handler) {\n this.eventEmitter.listen(type, handler);\n };\n /**\n * Unbind eventHandler from event type\n * @param {string} type Event type\n */\n ToastUIEditorViewer.prototype.off = function (type) {\n this.eventEmitter.removeEventHandler(type);\n };\n /**\n * Add hook to TUIEditor event\n * @param {string} type Event type\n * @param {function} handler Event handler\n */\n ToastUIEditorViewer.prototype.addHook = function (type, handler) {\n this.eventEmitter.removeEventHandler(type);\n this.eventEmitter.listen(type, handler);\n };\n /**\n * Remove Viewer preview from document\n */\n ToastUIEditorViewer.prototype.destroy = function () {\n off_default()(this.preview.el, 'mousedown', this.toggleTask.bind(this));\n this.preview.destroy();\n this.eventEmitter.emit('destroy');\n };\n /**\n * Return true\n * @returns {boolean}\n */\n ToastUIEditorViewer.prototype.isViewer = function () {\n return true;\n };\n /**\n * Return false\n * @returns {boolean}\n */\n ToastUIEditorViewer.prototype.isMarkdownMode = function () {\n return false;\n };\n /**\n * Return false\n * @returns {boolean}\n */\n ToastUIEditorViewer.prototype.isWysiwygMode = function () {\n return false;\n };\n return ToastUIEditorViewer;\n}());\n/* harmony default export */ var viewer = (ToastUIEditorViewer);\n\n;// CONCATENATED MODULE: ./src/indexViewer.ts\n\n\n/* harmony default export */ var indexViewer = (viewer);\n\n}();\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["self","factory","__WEBPACK_EXTERNAL_MODULE__479__","__WEBPACK_EXTERNAL_MODULE__481__","__WEBPACK_EXTERNAL_MODULE__43__","__WEBPACK_EXTERNAL_MODULE__814__","__WEBPACK_EXTERNAL_MODULE__311__","__webpack_modules__","module","exports","_toConsumableArray","arr","Array","isArray","i","arr2","length","from","hasOwnProperty","Object","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","_ref","Reflect","apply","construct","fun","thisValue","args","x","Func","Function","prototype","bind","concat","arrayForEach","unapply","forEach","arrayPop","pop","arrayPush","push","stringToLowerCase","String","toLowerCase","stringMatch","match","stringReplace","replace","stringIndexOf","indexOf","stringTrim","trim","regExpTest","RegExp","test","typeErrorCreate","unconstruct","TypeError","func","thisArg","_len","arguments","_key","_len2","_key2","addToSet","set","array","l","element","lcElement","clone","object","newObject","property","lookupGetter","prop","desc","get","value","fallbackValue","console","warn","html","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","text","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","Symbol","iterator","obj","constructor","_toConsumableArray$1","getGlobal","window","_createTrustedTypesPolicy","trustedTypes","document","createPolicy","suffix","ATTR_NAME","currentScript","hasAttribute","getAttribute","policyName","createHTML","html$$1","_","createDOMPurify","undefined","DOMPurify","root","version","removed","nodeType","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","Text","Comment","DOMParser","ElementPrototype","cloneNode","getNextSibling","getChildNodes","getParentNode","template","createElement","content","ownerDocument","trustedTypesPolicy","emptyHTML","RETURN_TRUSTED_TYPE","_document","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","documentMode","hooks","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_DOM_IMPORT","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","transformCaseFunc","CONFIG","formElement","_parseConfig","cfg","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","namespaceURI","parentTagName","Boolean","commonSvgAndHTMLElements","_forceRemove","node","parentNode","removeChild","outerHTML","remove","_removeAttribute","name","attribute","getAttributeNode","removeAttribute","setAttribute","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","parseFromString","documentElement","createDocument","innerHTML","body","insertBefore","createTextNode","childNodes","call","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","elm","nodeName","textContent","attributes","_isNode","_executeHook","entryPoint","currentNode","data","hook","_sanitizeElements","allowedTags","firstElementChild","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attr","hookEvent","attrName","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","sanitize","importedNode","oldNode","returnNode","toString","toStaticHTML","appendChild","firstChild","nodeIterator","serializedHTML","setConfig","clearConfig","isValidAttribute","tag","addHook","hookFunction","removeHook","removeHooks","removeAllHooks","__unused_webpack_exports","__webpack_require__","searchElement","startIndex","forEachArray","forEachOwnProperties","iteratee","context","index","len","key","arrayLike","slice","e","EVENT_KEY","type","handlers","events","isString","safeEvent","unbindEvent","handler","item","idx","removeHandler","wrappedHandler","splice","removeEventListener","detachEvent","types","split","bindEvent","eventHandler","event","addEventListener","attachEvent","existInEvents","memorizeHandler","isUndefined","cssClass","join","className","baseVal","inArray","getClass","setClassName","origin","classList","newClass","add","cls","style","v","k","contains","toArray","elProto","matchSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","selector","this","querySelectorAll","target","objects","source","hasOwnProp","url","trackingInfo","trackingElement","queryString","substring","src","display","imagePing","ms7days","appName","trackingId","hostname","location","applicationKeyForStorage","date","localStorage","getItem","tui","usageStatistics","Date","getTime","isExpired","setItem","setTimeout","readyState","t","tid","cid","dp","dh","el","ec","isNull","param","isTruthy","isExisty","__webpack_module_cache__","moduleId","cachedModule","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","g","globalThis","__webpack_exports__","default","indexViewer","tslib_es6_assign","assign","s","p","esm_extendStatics","b","__proto__","esm_extends","__","esm_assign","esm_spreadArray","to","pack","ar","commonjsGlobal","encodeCache","encode$1","string","exclude","keepEscaped","code","nextCode","cache","result","defaultChars","ch","fromCharCode","toUpperCase","charCodeAt","getEncodeCache","encodeURIComponent","componentChars","encode_1","lib","decode","require$$1$1","Aacute","aacute","Abreve","abreve","ac","acd","acE","Acirc","acirc","acute","Acy","acy","AElig","aelig","af","Afr","afr","Agrave","agrave","alefsym","aleph","Alpha","alpha","Amacr","amacr","amalg","amp","AMP","andand","And","and","andd","andslope","andv","ang","ange","angle","angmsdaa","angmsdab","angmsdac","angmsdad","angmsdae","angmsdaf","angmsdag","angmsdah","angmsd","angrt","angrtvb","angrtvbd","angsph","angst","angzarr","Aogon","aogon","Aopf","aopf","apacir","ap","apE","ape","apid","apos","ApplyFunction","approx","approxeq","Aring","aring","Ascr","ascr","Assign","ast","asymp","asympeq","Atilde","atilde","Auml","auml","awconint","awint","backcong","backepsilon","backprime","backsim","backsimeq","Backslash","Barv","barvee","barwed","Barwed","barwedge","bbrk","bbrktbrk","bcong","Bcy","bcy","bdquo","becaus","because","Because","bemptyv","bepsi","bernou","Bernoullis","Beta","beta","beth","between","Bfr","bfr","bigcap","bigcirc","bigcup","bigodot","bigoplus","bigotimes","bigsqcup","bigstar","bigtriangledown","bigtriangleup","biguplus","bigvee","bigwedge","bkarow","blacklozenge","blacksquare","blacktriangle","blacktriangledown","blacktriangleleft","blacktriangleright","blank","blk12","blk14","blk34","block","bne","bnequiv","bNot","bnot","Bopf","bopf","bot","bottom","bowtie","boxbox","boxdl","boxdL","boxDl","boxDL","boxdr","boxdR","boxDr","boxDR","boxh","boxH","boxhd","boxHd","boxhD","boxHD","boxhu","boxHu","boxhU","boxHU","boxminus","boxplus","boxtimes","boxul","boxuL","boxUl","boxUL","boxur","boxuR","boxUr","boxUR","boxv","boxV","boxvh","boxvH","boxVh","boxVH","boxvl","boxvL","boxVl","boxVL","boxvr","boxvR","boxVr","boxVR","bprime","breve","Breve","brvbar","bscr","Bscr","bsemi","bsim","bsime","bsolb","bsol","bsolhsub","bull","bullet","bump","bumpE","bumpe","Bumpeq","bumpeq","Cacute","cacute","capand","capbrcup","capcap","cap","Cap","capcup","capdot","CapitalDifferentialD","caps","caret","caron","Cayleys","ccaps","Ccaron","ccaron","Ccedil","ccedil","Ccirc","ccirc","Cconint","ccups","ccupssm","Cdot","cdot","cedil","Cedilla","cemptyv","cent","centerdot","CenterDot","cfr","Cfr","CHcy","chcy","check","checkmark","Chi","chi","circ","circeq","circlearrowleft","circlearrowright","circledast","circledcirc","circleddash","CircleDot","circledR","circledS","CircleMinus","CirclePlus","CircleTimes","cir","cirE","cire","cirfnint","cirmid","cirscir","ClockwiseContourIntegral","CloseCurlyDoubleQuote","CloseCurlyQuote","clubs","clubsuit","colon","Colon","Colone","colone","coloneq","comma","commat","comp","compfn","complement","complexes","cong","congdot","Congruent","conint","Conint","ContourIntegral","copf","Copf","coprod","Coproduct","copy","COPY","copysr","CounterClockwiseContourIntegral","crarr","cross","Cross","Cscr","cscr","csub","csube","csup","csupe","ctdot","cudarrl","cudarrr","cuepr","cuesc","cularr","cularrp","cupbrcap","cupcap","CupCap","cup","Cup","cupcup","cupdot","cupor","cups","curarr","curarrm","curlyeqprec","curlyeqsucc","curlyvee","curlywedge","curren","curvearrowleft","curvearrowright","cuvee","cuwed","cwconint","cwint","cylcty","dagger","Dagger","daleth","darr","Darr","dArr","dash","Dashv","dashv","dbkarow","dblac","Dcaron","dcaron","Dcy","dcy","ddagger","ddarr","DD","dd","DDotrahd","ddotseq","deg","Del","Delta","delta","demptyv","dfisht","Dfr","dfr","dHar","dharl","dharr","DiacriticalAcute","DiacriticalDot","DiacriticalDoubleAcute","DiacriticalGrave","DiacriticalTilde","diam","diamond","Diamond","diamondsuit","diams","die","DifferentialD","digamma","disin","div","divide","divideontimes","divonx","DJcy","djcy","dlcorn","dlcrop","dollar","Dopf","dopf","Dot","dot","DotDot","doteq","doteqdot","DotEqual","dotminus","dotplus","dotsquare","doublebarwedge","DoubleContourIntegral","DoubleDot","DoubleDownArrow","DoubleLeftArrow","DoubleLeftRightArrow","DoubleLeftTee","DoubleLongLeftArrow","DoubleLongLeftRightArrow","DoubleLongRightArrow","DoubleRightArrow","DoubleRightTee","DoubleUpArrow","DoubleUpDownArrow","DoubleVerticalBar","DownArrowBar","downarrow","DownArrow","Downarrow","DownArrowUpArrow","DownBreve","downdownarrows","downharpoonleft","downharpoonright","DownLeftRightVector","DownLeftTeeVector","DownLeftVectorBar","DownLeftVector","DownRightTeeVector","DownRightVectorBar","DownRightVector","DownTeeArrow","DownTee","drbkarow","drcorn","drcrop","Dscr","dscr","DScy","dscy","dsol","Dstrok","dstrok","dtdot","dtri","dtrif","duarr","duhar","dwangle","DZcy","dzcy","dzigrarr","Eacute","eacute","easter","Ecaron","ecaron","Ecirc","ecirc","ecir","ecolon","Ecy","ecy","eDDot","Edot","edot","eDot","ee","efDot","Efr","efr","eg","Egrave","egrave","egs","egsdot","elinters","ell","els","elsdot","Emacr","emacr","empty","emptyset","EmptySmallSquare","emptyv","EmptyVerySmallSquare","emsp13","emsp14","emsp","ENG","eng","ensp","Eogon","eogon","Eopf","eopf","epar","eparsl","eplus","epsi","Epsilon","epsilon","epsiv","eqcirc","eqcolon","eqsim","eqslantgtr","eqslantless","Equal","equals","EqualTilde","equest","Equilibrium","equiv","equivDD","eqvparsl","erarr","erDot","escr","Escr","esdot","Esim","esim","Eta","eta","ETH","eth","Euml","euml","euro","excl","exist","Exists","expectation","exponentiale","ExponentialE","fallingdotseq","Fcy","fcy","female","ffilig","fflig","ffllig","Ffr","ffr","filig","FilledSmallSquare","FilledVerySmallSquare","fjlig","flat","fllig","fltns","fnof","Fopf","fopf","forall","ForAll","fork","forkv","Fouriertrf","fpartint","frac12","frac13","frac14","frac15","frac16","frac18","frac23","frac25","frac34","frac35","frac38","frac45","frac56","frac58","frac78","frasl","frown","fscr","Fscr","gacute","Gamma","gamma","Gammad","gammad","gap","Gbreve","gbreve","Gcedil","Gcirc","gcirc","Gcy","gcy","Gdot","gdot","ge","gE","gEl","gel","geq","geqq","geqslant","gescc","ges","gesdot","gesdoto","gesdotol","gesl","gesles","Gfr","gfr","gg","Gg","ggg","gimel","GJcy","gjcy","gla","gl","glE","glj","gnap","gnapprox","gne","gnE","gneq","gneqq","gnsim","Gopf","gopf","grave","GreaterEqual","GreaterEqualLess","GreaterFullEqual","GreaterGreater","GreaterLess","GreaterSlantEqual","GreaterTilde","Gscr","gscr","gsim","gsime","gsiml","gtcc","gtcir","gt","GT","Gt","gtdot","gtlPar","gtquest","gtrapprox","gtrarr","gtrdot","gtreqless","gtreqqless","gtrless","gtrsim","gvertneqq","gvnE","Hacek","hairsp","half","hamilt","HARDcy","hardcy","harrcir","harr","hArr","harrw","Hat","hbar","Hcirc","hcirc","hearts","heartsuit","hellip","hercon","hfr","Hfr","HilbertSpace","hksearow","hkswarow","hoarr","homtht","hookleftarrow","hookrightarrow","hopf","Hopf","horbar","HorizontalLine","hscr","Hscr","hslash","Hstrok","hstrok","HumpDownHump","HumpEqual","hybull","hyphen","Iacute","iacute","ic","Icirc","icirc","Icy","icy","Idot","IEcy","iecy","iexcl","iff","ifr","Ifr","Igrave","igrave","ii","iiiint","iiint","iinfin","iiota","IJlig","ijlig","Imacr","imacr","image","ImaginaryI","imagline","imagpart","imath","Im","imof","imped","Implies","incare","in","infin","infintie","inodot","intcal","int","Int","integers","Integral","intercal","Intersection","intlarhk","intprod","InvisibleComma","InvisibleTimes","IOcy","iocy","Iogon","iogon","Iopf","iopf","Iota","iota","iprod","iquest","iscr","Iscr","isin","isindot","isinE","isins","isinsv","isinv","it","Itilde","itilde","Iukcy","iukcy","Iuml","iuml","Jcirc","jcirc","Jcy","jcy","Jfr","jfr","jmath","Jopf","jopf","Jscr","jscr","Jsercy","jsercy","Jukcy","jukcy","Kappa","kappa","kappav","Kcedil","kcedil","Kcy","kcy","Kfr","kfr","kgreen","KHcy","khcy","KJcy","kjcy","Kopf","kopf","Kscr","kscr","lAarr","Lacute","lacute","laemptyv","lagran","Lambda","lambda","lang","Lang","langd","langle","lap","Laplacetrf","laquo","larrb","larrbfs","larr","Larr","lArr","larrfs","larrhk","larrlp","larrpl","larrsim","larrtl","latail","lAtail","lat","late","lates","lbarr","lBarr","lbbrk","lbrace","lbrack","lbrke","lbrksld","lbrkslu","Lcaron","lcaron","Lcedil","lcedil","lceil","lcub","Lcy","lcy","ldca","ldquo","ldquor","ldrdhar","ldrushar","ldsh","le","lE","LeftAngleBracket","LeftArrowBar","leftarrow","LeftArrow","Leftarrow","LeftArrowRightArrow","leftarrowtail","LeftCeiling","LeftDoubleBracket","LeftDownTeeVector","LeftDownVectorBar","LeftDownVector","LeftFloor","leftharpoondown","leftharpoonup","leftleftarrows","leftrightarrow","LeftRightArrow","Leftrightarrow","leftrightarrows","leftrightharpoons","leftrightsquigarrow","LeftRightVector","LeftTeeArrow","LeftTee","LeftTeeVector","leftthreetimes","LeftTriangleBar","LeftTriangle","LeftTriangleEqual","LeftUpDownVector","LeftUpTeeVector","LeftUpVectorBar","LeftUpVector","LeftVectorBar","LeftVector","lEg","leg","leq","leqq","leqslant","lescc","les","lesdot","lesdoto","lesdotor","lesg","lesges","lessapprox","lessdot","lesseqgtr","lesseqqgtr","LessEqualGreater","LessFullEqual","LessGreater","lessgtr","LessLess","lesssim","LessSlantEqual","LessTilde","lfisht","lfloor","Lfr","lfr","lg","lgE","lHar","lhard","lharu","lharul","lhblk","LJcy","ljcy","llarr","ll","Ll","llcorner","Lleftarrow","llhard","lltri","Lmidot","lmidot","lmoustache","lmoust","lnap","lnapprox","lne","lnE","lneq","lneqq","lnsim","loang","loarr","lobrk","longleftarrow","LongLeftArrow","Longleftarrow","longleftrightarrow","LongLeftRightArrow","Longleftrightarrow","longmapsto","longrightarrow","LongRightArrow","Longrightarrow","looparrowleft","looparrowright","lopar","Lopf","lopf","loplus","lotimes","lowast","lowbar","LowerLeftArrow","LowerRightArrow","loz","lozenge","lozf","lpar","lparlt","lrarr","lrcorner","lrhar","lrhard","lrm","lrtri","lsaquo","lscr","Lscr","lsh","Lsh","lsim","lsime","lsimg","lsqb","lsquo","lsquor","Lstrok","lstrok","ltcc","ltcir","lt","LT","Lt","ltdot","lthree","ltimes","ltlarr","ltquest","ltri","ltrie","ltrif","ltrPar","lurdshar","luruhar","lvertneqq","lvnE","macr","male","malt","maltese","Map","map","mapsto","mapstodown","mapstoleft","mapstoup","marker","mcomma","Mcy","mcy","mdash","mDDot","measuredangle","MediumSpace","Mellintrf","Mfr","mfr","mho","micro","midast","midcir","mid","middot","minusb","minus","minusd","minusdu","MinusPlus","mlcp","mldr","mnplus","models","Mopf","mopf","mp","mscr","Mscr","mstpos","Mu","mu","multimap","mumap","nabla","Nacute","nacute","nang","nap","napE","napid","napos","napprox","natural","naturals","natur","nbsp","nbump","nbumpe","ncap","Ncaron","ncaron","Ncedil","ncedil","ncong","ncongdot","ncup","Ncy","ncy","ndash","nearhk","nearr","neArr","nearrow","ne","nedot","NegativeMediumSpace","NegativeThickSpace","NegativeThinSpace","NegativeVeryThinSpace","nequiv","nesear","nesim","NestedGreaterGreater","NestedLessLess","NewLine","nexist","nexists","Nfr","nfr","ngE","nge","ngeq","ngeqq","ngeqslant","nges","nGg","ngsim","nGt","ngt","ngtr","nGtv","nharr","nhArr","nhpar","ni","nis","nisd","niv","NJcy","njcy","nlarr","nlArr","nldr","nlE","nle","nleftarrow","nLeftarrow","nleftrightarrow","nLeftrightarrow","nleq","nleqq","nleqslant","nles","nless","nLl","nlsim","nLt","nlt","nltri","nltrie","nLtv","nmid","NoBreak","NonBreakingSpace","nopf","Nopf","Not","not","NotCongruent","NotCupCap","NotDoubleVerticalBar","NotElement","NotEqual","NotEqualTilde","NotExists","NotGreater","NotGreaterEqual","NotGreaterFullEqual","NotGreaterGreater","NotGreaterLess","NotGreaterSlantEqual","NotGreaterTilde","NotHumpDownHump","NotHumpEqual","notin","notindot","notinE","notinva","notinvb","notinvc","NotLeftTriangleBar","NotLeftTriangle","NotLeftTriangleEqual","NotLess","NotLessEqual","NotLessGreater","NotLessLess","NotLessSlantEqual","NotLessTilde","NotNestedGreaterGreater","NotNestedLessLess","notni","notniva","notnivb","notnivc","NotPrecedes","NotPrecedesEqual","NotPrecedesSlantEqual","NotReverseElement","NotRightTriangleBar","NotRightTriangle","NotRightTriangleEqual","NotSquareSubset","NotSquareSubsetEqual","NotSquareSuperset","NotSquareSupersetEqual","NotSubset","NotSubsetEqual","NotSucceeds","NotSucceedsEqual","NotSucceedsSlantEqual","NotSucceedsTilde","NotSuperset","NotSupersetEqual","NotTilde","NotTildeEqual","NotTildeFullEqual","NotTildeTilde","NotVerticalBar","nparallel","npar","nparsl","npart","npolint","npr","nprcue","nprec","npreceq","npre","nrarrc","nrarr","nrArr","nrarrw","nrightarrow","nRightarrow","nrtri","nrtrie","nsc","nsccue","nsce","Nscr","nscr","nshortmid","nshortparallel","nsim","nsime","nsimeq","nsmid","nspar","nsqsube","nsqsupe","nsub","nsubE","nsube","nsubset","nsubseteq","nsubseteqq","nsucc","nsucceq","nsup","nsupE","nsupe","nsupset","nsupseteq","nsupseteqq","ntgl","Ntilde","ntilde","ntlg","ntriangleleft","ntrianglelefteq","ntriangleright","ntrianglerighteq","Nu","nu","num","numero","numsp","nvap","nvdash","nvDash","nVdash","nVDash","nvge","nvgt","nvHarr","nvinfin","nvlArr","nvle","nvlt","nvltrie","nvrArr","nvrtrie","nvsim","nwarhk","nwarr","nwArr","nwarrow","nwnear","Oacute","oacute","oast","Ocirc","ocirc","ocir","Ocy","ocy","odash","Odblac","odblac","odiv","odot","odsold","OElig","oelig","ofcir","Ofr","ofr","ogon","Ograve","ograve","ogt","ohbar","ohm","oint","olarr","olcir","olcross","oline","olt","Omacr","omacr","Omega","omega","Omicron","omicron","omid","ominus","Oopf","oopf","opar","OpenCurlyDoubleQuote","OpenCurlyQuote","operp","oplus","orarr","Or","or","ord","order","orderof","ordf","ordm","origof","oror","orslope","orv","oS","Oscr","oscr","Oslash","oslash","osol","Otilde","otilde","otimesas","Otimes","otimes","Ouml","ouml","ovbar","OverBar","OverBrace","OverBracket","OverParenthesis","para","parallel","par","parsim","parsl","part","PartialD","Pcy","pcy","percnt","period","permil","perp","pertenk","Pfr","pfr","Phi","phi","phiv","phmmat","phone","Pi","pi","pitchfork","piv","planck","planckh","plankv","plusacir","plusb","pluscir","plus","plusdo","plusdu","pluse","PlusMinus","plusmn","plussim","plustwo","pm","Poincareplane","pointint","popf","Popf","pound","prap","Pr","pr","prcue","precapprox","prec","preccurlyeq","Precedes","PrecedesEqual","PrecedesSlantEqual","PrecedesTilde","preceq","precnapprox","precneqq","precnsim","pre","prE","precsim","prime","Prime","primes","prnap","prnE","prnsim","prod","Product","profalar","profline","profsurf","Proportional","Proportion","propto","prsim","prurel","Pscr","pscr","Psi","psi","puncsp","Qfr","qfr","qint","qopf","Qopf","qprime","Qscr","qscr","quaternions","quatint","quest","questeq","quot","QUOT","rAarr","race","Racute","racute","radic","raemptyv","rang","Rang","rangd","range","rangle","raquo","rarrap","rarrb","rarrbfs","rarrc","rarr","Rarr","rArr","rarrfs","rarrhk","rarrlp","rarrpl","rarrsim","Rarrtl","rarrtl","rarrw","ratail","rAtail","ratio","rationals","rbarr","rBarr","RBarr","rbbrk","rbrace","rbrack","rbrke","rbrksld","rbrkslu","Rcaron","rcaron","Rcedil","rcedil","rceil","rcub","Rcy","rcy","rdca","rdldhar","rdquo","rdquor","rdsh","real","realine","realpart","reals","Re","rect","reg","REG","ReverseElement","ReverseEquilibrium","ReverseUpEquilibrium","rfisht","rfloor","rfr","Rfr","rHar","rhard","rharu","rharul","Rho","rho","rhov","RightAngleBracket","RightArrowBar","rightarrow","RightArrow","Rightarrow","RightArrowLeftArrow","rightarrowtail","RightCeiling","RightDoubleBracket","RightDownTeeVector","RightDownVectorBar","RightDownVector","RightFloor","rightharpoondown","rightharpoonup","rightleftarrows","rightleftharpoons","rightrightarrows","rightsquigarrow","RightTeeArrow","RightTee","RightTeeVector","rightthreetimes","RightTriangleBar","RightTriangle","RightTriangleEqual","RightUpDownVector","RightUpTeeVector","RightUpVectorBar","RightUpVector","RightVectorBar","RightVector","ring","risingdotseq","rlarr","rlhar","rlm","rmoustache","rmoust","rnmid","roang","roarr","robrk","ropar","ropf","Ropf","roplus","rotimes","RoundImplies","rpar","rpargt","rppolint","rrarr","Rrightarrow","rsaquo","rscr","Rscr","rsh","Rsh","rsqb","rsquo","rsquor","rthree","rtimes","rtri","rtrie","rtrif","rtriltri","RuleDelayed","ruluhar","rx","Sacute","sacute","sbquo","scap","Scaron","scaron","Sc","sc","sccue","sce","scE","Scedil","scedil","Scirc","scirc","scnap","scnE","scnsim","scpolint","scsim","Scy","scy","sdotb","sdot","sdote","searhk","searr","seArr","searrow","sect","semi","seswar","setminus","setmn","sext","Sfr","sfr","sfrown","sharp","SHCHcy","shchcy","SHcy","shcy","ShortDownArrow","ShortLeftArrow","shortmid","shortparallel","ShortRightArrow","ShortUpArrow","shy","Sigma","sigma","sigmaf","sigmav","sim","simdot","sime","simeq","simg","simgE","siml","simlE","simne","simplus","simrarr","slarr","SmallCircle","smallsetminus","smashp","smeparsl","smid","smile","smt","smte","smtes","SOFTcy","softcy","solbar","solb","sol","Sopf","sopf","spades","spadesuit","spar","sqcap","sqcaps","sqcup","sqcups","Sqrt","sqsub","sqsube","sqsubset","sqsubseteq","sqsup","sqsupe","sqsupset","sqsupseteq","square","Square","SquareIntersection","SquareSubset","SquareSubsetEqual","SquareSuperset","SquareSupersetEqual","SquareUnion","squarf","squ","squf","srarr","Sscr","sscr","ssetmn","ssmile","sstarf","Star","star","starf","straightepsilon","straightphi","strns","sub","Sub","subdot","subE","sube","subedot","submult","subnE","subne","subplus","subrarr","subset","Subset","subseteq","subseteqq","SubsetEqual","subsetneq","subsetneqq","subsim","subsub","subsup","succapprox","succ","succcurlyeq","Succeeds","SucceedsEqual","SucceedsSlantEqual","SucceedsTilde","succeq","succnapprox","succneqq","succnsim","succsim","SuchThat","sum","Sum","sung","sup1","sup2","sup3","sup","Sup","supdot","supdsub","supE","supe","supedot","Superset","SupersetEqual","suphsol","suphsub","suplarr","supmult","supnE","supne","supplus","supset","Supset","supseteq","supseteqq","supsetneq","supsetneqq","supsim","supsub","supsup","swarhk","swarr","swArr","swarrow","swnwar","szlig","Tab","Tau","tau","tbrk","Tcaron","tcaron","Tcedil","tcedil","Tcy","tcy","tdot","telrec","Tfr","tfr","there4","therefore","Therefore","Theta","theta","thetasym","thetav","thickapprox","thicksim","ThickSpace","ThinSpace","thinsp","thkap","thksim","THORN","thorn","tilde","Tilde","TildeEqual","TildeFullEqual","TildeTilde","timesbar","timesb","times","timesd","tint","toea","topbot","topcir","top","Topf","topf","topfork","tosa","tprime","trade","TRADE","triangle","triangledown","triangleleft","trianglelefteq","triangleq","triangleright","trianglerighteq","tridot","trie","triminus","TripleDot","triplus","trisb","tritime","trpezium","Tscr","tscr","TScy","tscy","TSHcy","tshcy","Tstrok","tstrok","twixt","twoheadleftarrow","twoheadrightarrow","Uacute","uacute","uarr","Uarr","uArr","Uarrocir","Ubrcy","ubrcy","Ubreve","ubreve","Ucirc","ucirc","Ucy","ucy","udarr","Udblac","udblac","udhar","ufisht","Ufr","ufr","Ugrave","ugrave","uHar","uharl","uharr","uhblk","ulcorn","ulcorner","ulcrop","ultri","Umacr","umacr","uml","UnderBar","UnderBrace","UnderBracket","UnderParenthesis","Union","UnionPlus","Uogon","uogon","Uopf","uopf","UpArrowBar","uparrow","UpArrow","Uparrow","UpArrowDownArrow","updownarrow","UpDownArrow","Updownarrow","UpEquilibrium","upharpoonleft","upharpoonright","uplus","UpperLeftArrow","UpperRightArrow","upsi","Upsi","upsih","Upsilon","upsilon","UpTeeArrow","UpTee","upuparrows","urcorn","urcorner","urcrop","Uring","uring","urtri","Uscr","uscr","utdot","Utilde","utilde","utri","utrif","uuarr","Uuml","uuml","uwangle","vangrt","varepsilon","varkappa","varnothing","varphi","varpi","varpropto","varr","vArr","varrho","varsigma","varsubsetneq","varsubsetneqq","varsupsetneq","varsupsetneqq","vartheta","vartriangleleft","vartriangleright","vBar","Vbar","vBarv","Vcy","vcy","vdash","vDash","Vdash","VDash","Vdashl","veebar","vee","Vee","veeeq","vellip","verbar","Verbar","vert","Vert","VerticalBar","VerticalLine","VerticalSeparator","VerticalTilde","VeryThinSpace","Vfr","vfr","vltri","vnsub","vnsup","Vopf","vopf","vprop","vrtri","Vscr","vscr","vsubnE","vsubne","vsupnE","vsupne","Vvdash","vzigzag","Wcirc","wcirc","wedbar","wedge","Wedge","wedgeq","weierp","Wfr","wfr","Wopf","wopf","wp","wr","wreath","Wscr","wscr","xcap","xcirc","xcup","xdtri","Xfr","xfr","xharr","xhArr","Xi","xi","xlarr","xlArr","xmap","xnis","xodot","Xopf","xopf","xoplus","xotime","xrarr","xrArr","Xscr","xscr","xsqcup","xuplus","xutri","xvee","xwedge","Yacute","yacute","YAcy","yacy","Ycirc","ycirc","Ycy","ycy","yen","Yfr","yfr","YIcy","yicy","Yopf","yopf","Yscr","yscr","YUcy","yucy","yuml","Yuml","Zacute","zacute","Zcaron","zcaron","Zcy","zcy","Zdot","zdot","zeetrf","ZeroWidthSpace","Zeta","zeta","zfr","Zfr","ZHcy","zhcy","zigrarr","zopf","Zopf","Zscr","zscr","zwj","zwnj","require$$1","require$$0$1","decode_codepoint","__importDefault$2","__importDefault","mod","decode_json_1","fromCodePoint$2","fromCodePoint","codePoint","output","__importDefault$1","decodeHTML","decodeHTMLStrict","decodeXML","entities_json_1$1","legacy_json_1","xml_json_1$1","decode_codepoint_1","strictEntityRe","getStrictDecoder","getReplacer","str","sorter","charAt","secondChar","parseInt","substr","legacy","keys","sort","j","re","replacer","encode","esm_importDefault","escapeUTF8","escape","encodeNonAsciiHTML","encodeHTML","encodeXML","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getASCIIEncoder","inverse","inverseHTML","htmlReplacer","reduce","single","multiple","_i","_a","start","end","count","unshift","reNonASCII","singleCharReplacer","getCodePoint","codePointAt","c","reEscapeChars","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","decode_1","level","encode_2","decode_2","ENTITY","reBackslashOrAmp","ESCAPABLE","reEntityOrEscapedChar","reXmlSpecial","unescapeChar","unescapeString","normalizeURI","uri","err","replaceUnsafeChar","escapeXml","repeat","isEmpty","NodeWalker","current","entering","next","cur","container","isContainer","resumeAt","lastNodeId","nodeMap","removeNodeById","id","esm_Node","sourcepos","prev","lastChild","literal","unlink","replaceWith","insertAfter","sibling","child","prependChild","walker","BlockNode","_super","_this","open","lineOffsets","stringContent","lastLineBlank","lastLineChecked","ListNode","listData","HeadingNode","headingType","CodeBlockNode","isFenced","fenceChar","fenceLength","fenceOffset","info","infoPadding","TableNode","columns","TableCellNode","startIdx","endIdx","paddingLeft","paddingRight","ignored","RefDefNode","title","dest","label","CustomBlockNode","syntaxLength","offset","HtmlBlockNode","htmlBlockType","LinkNode","destination","extendedAutolink","CodeNode","tickCount","CustomInlineNode","createNode","isCodeBlock","isList","isRefDef","isCustomBlock","esm_text","TAGNAME","OPENTAG","CLOSETAG","reHtmlTag","RangeError","stringFromCharCode_1","floor_1","Math","floor","highSurrogate","lowSurrogate","codeUnits","Number","isFinite","fromCodePoint$1","DOMAIN","PATH","EMAIL","trimUnmatchedTrailingParens","trailingParen","exec","source_1","trimCount","min","trimTrailingEntity","baseAutolinkParser","m","reWwwAutolink","text_2","scheme","parseUrlLink","reEmailLink","text_1","parseEmailLink","last","normalizeReference","iterateObject","isEmptyObj","C_TILDE","C_SINGLEQUOTE","C_DOUBLEQUOTE","C_DOLLAR","ESCAPED_CHAR","rePunctuation","reLinkTitle","reLinkDestinationBraces","reEscapable","reEntityHere","reTicks","reTicksHere","reEllipses","reDash","reEmailAutolink","reAutolink","reSpnl","reWhitespaceChar","reUnicodeWhitespaceChar","reFinalSpace","reInitialSpace","reSpaceAtEndOfLine","reLinkLabel","reMain","InlineParser","options","subject","delimiters","brackets","pos","lineStartNum","lineIdx","linePosOffset","refMap","refLinkCandidateMap","refDefCandidateMap","lineNum","startpos","nextLine","peek","spnl","parseBackticks","ticks","matched","afterOpenTicks","contents","lines","lastLine","parseBackslash","subj","parseAutolink","parseHtmlTag","scanDelims","cc","numdelims","charAfter","charBefore","ccAfter","canOpen","canClose","afterIsWhitespace","afterIsPunctuation","beforeIsWhitespace","beforeIsPunctuation","leftFlanking","rightFlanking","handleDelim","res","smart","origdelims","previous","removeDelimiter","delim","removeDelimitersBetween","processEmphasis","stackBottom","opener","closer","oldCloser","openerInl","closerInl","openerFound","oddMatch","openersBottom","closercc","closerEmph","useDelims","emptyDelims","newNode","openerEndPos","closerStartPos","tmp","textNode","tempstack","parseLinkTitle","parseLinkDestination","savepos","openparens","parseLinkLabel","parseOpenBracket","addBracket","parseBang","parseCloseBracket","active","removeBracket","isImage","refLabel","beforelabel","bracketAfter","link","previousDelimiter","referenceDefinition","parseEntity","parseString","lit","chars","enCount","emCount","parseNewline","lastc","hardbreak","litLen","finalSpaceLen","parseReference","matchChars","rawlabel","beforetitle","atLineEnd","normalLabel","getReferenceDefSourcepos","createRefDefState","mergeTextNodes","textNodes","firstNode","lastNode","passedUrlLine","quotationCount","lastLineOffset","line","lineOffset","parseInline","disabledEntityParse","parse","isHeading","extendedAutolinks","customParser","autolinkParser","_loop_1","linkInfos","lastIdx","lineNum_1","chPos_1","newNodes","linkInfos_1","_b","linkText","linkNode","_c","newNodes_1","convertExtAutoLinks","event_1","reTaskListItemMarker","C_TAB","C_SPACE","reNonSpace","reClosingCodeFence","endsWithBlankLine","curBlock","ln","isBlank","isSpaceOrTab","reClosingCustomBlock","customBlock$1","continue","parser","currentLine","lastLineLength","finalize","lineNumber","advanceOffset","newlinePos","firstLine","rest","infoString","canContain","acceptsLines","noop","list","tight","subitem","advanceNextNonspace","indent","markerOffset","padding","mLen","task","checked","codeBlock","nextNonspace","paragraph","hasReferenceDefs","inlineParser","blockHandlers","blockQuote","indented","heading","thematicBreak","htmlBlock","tableBody","tableHead","tableRow","tableCell","tableDelimRow","tableDelimCell","refDef","customBlock","frontMatter","parseRowContent","cells","cell","generateTableCells","cellType","chPos","contents_1","preSpaces","trimmed","postSpaces","chPosStart","getColumnFromDelimCell","cellNode","align","firstCh","reCustomBlock","reCanBeCustomInline","reCodeFence","reHtmlBlockOpen","reSetextHeadingLine","reATXHeadingMarker","reThematicBreak","reBulletListMarker","reOrderedListMarker","isDisallowedDeepHeading","disallowDeepHeading","blockStarts","closeUnmatchedBlocks","addChild","disallowedTags","disallowedHtmlBlockTags","blockType","tip","itemData","currNode","nextc","bulletChar","delimiter","spacesStartCol","column","spacesStartOffset","blankItem","spacesAfterMarker","parseListMarker","lastNewLineIdx","lastLineStartIdx","lastIndexOf","headerContent","delimContent","headerOffset","headerCells","delimOffset","delimCells","reValidDelimCell_1","some","firstLineNum","firstLineStart","paraLastLineLen","tableHead_1","tableHeadRow_1","tableDelimRow_1","delimCellNodes","table_1","reFrontMatter","frontMatter$1","reHtmlBlockClose","reMaybeSpecial","reLineEnding$1","esm_document","defaultOptions$1","tagFilter","Parser","oldtip","nextNonspaceColumn","partiallyConsumedTab","allClosed","lastMatchedContainer","charsToTab","charsToAdvance","findNextNonspace","cols","addLine","columnNumber","newBlock","parent_1","above","processInlines","incorporateLine","allMatched","Error","matchedLeaf","blockStartsLen","cont","input","lineTexts","clearRefMaps","partialParseStart","partialParseExtends","partialParseFinish","setRefMaps","comparePos","p1","p2","compareRangeAndPos","startPos","insertNodesBefore","nodes","nodes_1","compareRangeAndLine","findChildNodeAtLine","findNodeById","getNodeById","invokeNextUntil","callback","reLineEnding","unlinked","ToastMark","eventHandlerMap","change","updateLineTexts","endPos","newText","startLine","startCol","endLine","endCol","newLines","newLineLen","startLineText","endLineText","removedLineLen","updateRootNodeState","replaceRangeNodes","startNode","endNode","temp","removeNextUntil","prependChildNodes","getNodeRange","trigger","eventName","extendEndLine","parseRange","lineText","spaceMatch","leftTrimmed","canBeContinuedListItem","editedLines","isOpenedLastChildCodeBlock","isOpenedLastChildCustomBlock","isLastChildList","newEndLine","curr","extStartNode","extEndNode","getRemovedNodeRange","markDeletedRefMap","markDeleted","refDefState","replaceWithNewRefDefState","replaceWith_1","replaceWithRefDefCandidate","candidate","getRangeWithRefDef","lineDiff","prevNode","max","parseResult","removedNodeRange","parseRefLink","removeUnlinkedCandidate","candidateMap","isUnlinked","editMarkdown","editResult","propNames","resultMap","omit","base","diff","updateNextLineNumbers","getLineTexts","getRootNode","findNodeAtPosition","findFirstNodeAtLine","sameLineTopAncestor","lastLeafNode","on","off","removeAllNode","reDisallowedTag","filterDisallowedTags","group","baseConvertors","outerNewLine","softbreak","linebreak","emph","strong","grandparent","selfClose","innerNewLine","htmlInline","nodeId","infoStr","infoWords","codeClassNames","classNames","href","getChildrenText","skipChildren","alt","convertors","customConvertor","customInline","nomalizedInfo","gfmConvertors","strike","itemTag","disabled","columnLen","tablePart","columnInfo","defaultOptions","gfm","buffer","node_1","Renderer","customOptions","createConvertors","customConvertors_1","nodeTypes","defaultConvertors_1","orgConvertor","convertor","convertorType","getConvertors","getOptions","render","rootNode","this_1","skipped","leaf","converted","isCustomInline","htmlNode","renderHTMLNode","addNewLine","renderElementNode","renderTextNode","renderRawHtmlNode","generateOpenTagString","generateCloseTagString","addOuterNewLine","addInnerNewLine","collection_forEachOwnProperties","forEachOwnProperties_default","extend","extend_default","on_default","off_default","addClass","addClass_default","removeClass","removeClass_default","css","css_default","collection_toArray","toArray_default","type_isArray","isArray_default","type_isString","isString_default","type_isUndefined","isUndefined_default","hasClass","hasClass_default","TAG_NAME","constants_ATTRIBUTE","reHTMLTag","common_includes","targetItem","availableLinkAttributes","isObject","deepMergedCopy","targetObj","resultObj","deepCopyArray","deepCopy","items","acc","common_assign","getSortedNumPair","valueA","valueB","names","names_1","removeNode","toggleClass","state","isFunction","isFunction_default","getInlineMarkdownText","mdNode","widgetRuleMap","reWidgetPrefix","unwrapWidgetSyntax","search","replaced","widgetToDOM","rule","toDOM","purify","purify_default","CAN_BE_WHITE_TAG_LIST","whiteTagList","sanitizeHTML","reCloseTag","htmlRenderConvertors_baseConvertors","preClasses","codeAttrs","widgetNode","getWidgetContent","getHTMLRenderConvertors","linkAttributes","customConvertors","newContext","attrs","rootHTML","openTagName","closeTagName","typeName","htmlConvertor","childrenHTML","getChildrenHTML","values","nestableTagNames","dom_getTotalOffsetTop","offsetTop","offsetParent","parentElement","findLastSiblingElementToScrollTop","scrollTop","nextElementSibling","offsetInfoMap","removeOffsetInfoByNode","children","CLASS_HIGHLIGHT","MarkdownPreview","eventEmitter","isViewer","customHTMLRenderer","sanitizer","highlight","renderer","cursorNodeId","initEvent","initContentSection","previewContent","overflowWrap","toggleActive","listen","update","cursorPos","updateCursorNode","removeHighlight","emit","adjacentEl","findAdjacentElementToScrollTop","currentEl","getElementByNodeId","cursorNode","condition","includeSelf","findClosestNode","isInlineNode","chOffset","findTableCell","oldEL","newEL","querySelector","changed","contentEl","newHtml","emitReduce","startNodeId","endNodeId","startEl","endEl","insertAdjacentHTML","nextEl","getRenderer","destroy","getElement","getHTML","setHTML","setHeight","height","setMinHeight","minHeight","mdPreview","external_commonjs_prosemirror_state_commonjs2_prosemirror_state_amd_prosemirror_state_","external_commonjs_prosemirror_inputrules_commonjs2_prosemirror_inputrules_amd_prosemirror_inputrules_","external_commonjs_prosemirror_view_commonjs2_prosemirror_view_amd_prosemirror_view_","external_commonjs_prosemirror_keymap_commonjs2_prosemirror_keymap_amd_prosemirror_keymap_","external_commonjs_prosemirror_model_commonjs2_prosemirror_model_amd_prosemirror_model_","inArray_default","utils_map","getKeyIndex","keyIndex","has","delete","clear","DEFAULT_CODE","i18n","I18n","langs","setCode","setLanguage","codes","langData","langSet","TableOffsetMap","tableRows","tableStartPos","rowInfo","cellPos","depth","before","findNodeBy","cached","rows_1","tablePos","thead","theadCellInfo","createOffsetMap","tbodyCellInfo","nodeSize","row","configurable","getCellInfo","rowIdx","colIdx","posAt","rowStart","rowEnd","totalColumnCount","getNodeAndPos","cellInfo","nodeAt","tableStartOffset","extendedRowspan","extendedColspan","getRowspanCount","getColspanCount","decreaseColspanCount","decreaseRowspanCount","getColspanStartInfo","getRowspanStartInfo","getCellStartOffset","getCellEndOffset","getCellIndex","totalRowCount","getRectOffsets","startCellPos","endCellPos","_d","startRowIdx","startColIdx","_e","endRowIdx","endColIdx","getSpannedOffsets","selectionInfo","headOrBody","startOffset","cellInfoMatrix","rowOffset","rowspanMap","colspanMap","cellOffset","mixinTableOffsetMapPrototype","offsetMapMixin","createOffsetMapMixin","getPluginInfo","pluginsInfo","plugins","instance","plugin","pluginInfoResult","pluginInfo","pmState","Plugin","PluginKey","Selection","TextSelection","pmView","Decoration","DecorationSet","pmModel","Fragment","pmRules","InputRule","inputRules","undoInputRule","pmKeymap","keymap","pluginFn","execPlugin","markdownParsers","toHTMLRenderers","toMarkdownRenderers","markdownPlugins","wysiwygPlugins","wysiwygNodeViews","markdownCommands","wysiwygCommands","toolbarItems","mdPlugins","wwPlugins","wwNodeViews","mdCommands","wwCommands","isFalsy","isFalsy_default","eventTypeList","EventEmitter","eventTypes","hold","eventType","addEventType","typeInfo","getTypeInfo","eventHandlers","hasEventType","namespace","results","__spreadArray","splited","removeEventHandler","removeEventHandlerWithHandler","evtType","removeEventHandlerWithTypeInfo","handlerIndex","handlersToSurvive","getEvents","holdEventInvoke","fn","registerHTMLTagToWhitelist","convertorMap","htmlType","ToastUIEditorViewer","customHTMLSanitizer","theme","sanitizeLinkAttribute","rendererOptions","initialValue","existingHTML","toastMark","preview","toggleTask","setMarkdown","ev","getComputedStyle","offsetX","offsetY","left","width","paddingTop","paddingBottom","isPositionInBox","markdown","endSourcepos","isMarkdownMode","isWysiwygMode","require$$0","require$$2","require$$3","require$$4"],"mappings":"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","x_google_ignoreList":[0]}