dwml-ts 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["webpack://webpack/runtime/define_property_getters","webpack://webpack/runtime/has_own_property","webpack://webpack/runtime/make_namespace_object","../src/uni2latex.generated.ts","../src/latex-encode.ts","../src/latex-dict.ts","../src/omml.ts","../src/index.ts"],"sourcesContent":["__webpack_require__.d = (exports, getters, values) => {\n\tvar define = (defs, kind) => {\n\t\tfor(var key in defs) {\n\t\t\tif(__webpack_require__.o(defs, key) && !__webpack_require__.o(exports, key)) {\n\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, [kind]: defs[key] });\n\t\t\t}\n\t\t}\n\t};\n\tdefine(getters, \"get\");\n\tdefine(values, \"value\");\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * Generated from pylatexenc 2.10 `latexencode` builtin uni2latex map.\n * pylatexenc is Copyright (c) Philippe Faist, MIT License.\n * DO NOT EDIT BY HAND - regenerate via scripts/gen_uni2latex.py\n */\nexport const UNI2LATEX: Readonly<Record<number, string>> = {\n 34: \"''\",\n 35: \"\\\\#\",\n 36: \"\\\\$\",\n 37: \"\\\\%\",\n 38: \"\\\\&\",\n 60: \"\\\\ensuremath{<}\",\n 62: \"\\\\ensuremath{>}\",\n 92: \"\\\\textbackslash\",\n 94: \"\\\\textasciicircum\",\n 95: \"\\\\_\",\n 123: \"\\\\{\",\n 125: \"\\\\}\",\n 126: \"\\\\textasciitilde\",\n 160: \"~\",\n 161: \"\\\\textexclamdown\",\n 162: \"\\\\textcent\",\n 163: \"\\\\textsterling\",\n 164: \"\\\\textcurrency\",\n 165: \"\\\\textyen\",\n 166: \"\\\\textbrokenbar\",\n 167: \"\\\\textsection\",\n 168: \"\\\\textasciidieresis\",\n 169: \"\\\\textcopyright\",\n 170: \"\\\\textordfeminine\",\n 171: \"\\\\guillemotleft\",\n 172: \"\\\\textlnot\",\n 173: \"\\\\-\",\n 174: \"\\\\textregistered\",\n 175: \"\\\\textasciimacron\",\n 176: \"\\\\textdegree\",\n 177: \"\\\\ensuremath{\\\\pm}\",\n 178: \"\\\\texttwosuperior\",\n 179: \"\\\\textthreesuperior\",\n 180: \"\\\\textasciiacute\",\n 181: \"\\\\textmu\",\n 182: \"\\\\textparagraph\",\n 183: \"\\\\textperiodcentered\",\n 185: \"\\\\textonesuperior\",\n 186: \"\\\\textordmasculine\",\n 187: \"\\\\guillemotright\",\n 188: \"\\\\textonequarter\",\n 189: \"\\\\textonehalf\",\n 190: \"\\\\textthreequarters\",\n 191: \"\\\\textquestiondown\",\n 192: \"\\\\`A\",\n 193: \"\\\\'A\",\n 194: \"\\\\^A\",\n 195: \"\\\\~A\",\n 196: \"\\\\\\\"A\",\n 197: \"\\\\r{A}\",\n 198: \"\\\\AE\",\n 199: \"\\\\c{C}\",\n 200: \"\\\\`E\",\n 201: \"\\\\'E\",\n 202: \"\\\\^E\",\n 203: \"\\\\\\\"E\",\n 204: \"\\\\`I\",\n 205: \"\\\\'I\",\n 206: \"\\\\^I\",\n 207: \"\\\\\\\"I\",\n 208: \"\\\\DH\",\n 209: \"\\\\~N\",\n 210: \"\\\\`O\",\n 211: \"\\\\'O\",\n 212: \"\\\\^O\",\n 213: \"\\\\~O\",\n 214: \"\\\\\\\"O\",\n 215: \"\\\\texttimes\",\n 216: \"\\\\O\",\n 217: \"\\\\`U\",\n 218: \"\\\\'U\",\n 219: \"\\\\^U\",\n 220: \"\\\\\\\"U\",\n 221: \"\\\\'Y\",\n 222: \"\\\\TH\",\n 223: \"\\\\ss\",\n 224: \"\\\\`a\",\n 225: \"\\\\'a\",\n 226: \"\\\\^a\",\n 227: \"\\\\~a\",\n 228: \"\\\\\\\"a\",\n 229: \"\\\\r{a}\",\n 230: \"\\\\ae\",\n 231: \"\\\\c{c}\",\n 232: \"\\\\`e\",\n 233: \"\\\\'e\",\n 234: \"\\\\^e\",\n 235: \"\\\\\\\"e\",\n 236: \"\\\\`\\\\i\",\n 237: \"\\\\'\\\\i\",\n 238: \"\\\\^\\\\i\",\n 239: \"\\\\\\\"\\\\i\",\n 240: \"\\\\dh\",\n 241: \"\\\\~n\",\n 242: \"\\\\`o\",\n 243: \"\\\\'o\",\n 244: \"\\\\^o\",\n 245: \"\\\\~o\",\n 246: \"\\\\\\\"o\",\n 247: \"\\\\textdiv\",\n 248: \"\\\\o\",\n 249: \"\\\\`u\",\n 250: \"\\\\'u\",\n 251: \"\\\\^u\",\n 252: \"\\\\\\\"u\",\n 253: \"\\\\'y\",\n 254: \"\\\\th\",\n 255: \"\\\\\\\"y\",\n 256: \"\\\\={A}\",\n 257: \"\\\\={a}\",\n 258: \"\\\\u{A}\",\n 259: \"\\\\u{a}\",\n 260: \"\\\\k{A}\",\n 261: \"\\\\k{a}\",\n 262: \"\\\\'C\",\n 263: \"\\\\'c\",\n 264: \"\\\\^{C}\",\n 265: \"\\\\^{c}\",\n 266: \"\\\\.{C}\",\n 267: \"\\\\.{c}\",\n 268: \"\\\\v{C}\",\n 269: \"\\\\v{c}\",\n 270: \"\\\\v{D}\",\n 271: \"\\\\v{d}\",\n 272: \"\\\\DJ\",\n 273: \"\\\\dj\",\n 274: \"\\\\={E}\",\n 275: \"\\\\={e}\",\n 276: \"\\\\u{E}\",\n 277: \"\\\\u{e}\",\n 278: \"\\\\.{E}\",\n 279: \"\\\\.{e}\",\n 280: \"\\\\k{E}\",\n 281: \"\\\\k{e}\",\n 282: \"\\\\v{E}\",\n 283: \"\\\\v{e}\",\n 284: \"\\\\^{G}\",\n 285: \"\\\\^{g}\",\n 286: \"\\\\u{G}\",\n 287: \"\\\\u{g}\",\n 288: \"\\\\.{G}\",\n 289: \"\\\\.{g}\",\n 290: \"\\\\c{G}\",\n 291: \"\\\\c{g}\",\n 292: \"\\\\^{H}\",\n 293: \"\\\\^{h}\",\n 294: \"\\\\={H}\",\n 295: \"\\\\={h}\",\n 296: \"\\\\~{I}\",\n 297: \"\\\\~{i}\",\n 298: \"\\\\={I}\",\n 299: \"\\\\={i}\",\n 300: \"\\\\u{I}\",\n 301: \"\\\\u{i}\",\n 302: \"\\\\k{I}\",\n 303: \"\\\\k{i}\",\n 304: \"\\\\.I\",\n 305: \"\\\\i\",\n 306: \"\\\\IJ\",\n 307: \"\\\\ij\",\n 308: \"\\\\^{J}\",\n 309: \"\\\\^{j}\",\n 310: \"\\\\c{K}\",\n 311: \"\\\\c{k}\",\n 312: \"\\\\textsc{k}\",\n 313: \"\\\\'L\",\n 314: \"\\\\'l\",\n 315: \"\\\\c{L}\",\n 316: \"\\\\c{l}\",\n 317: \"\\\\v{L}\",\n 318: \"\\\\v{l}\",\n 319: \"\\\\.{L}\",\n 320: \"\\\\.{l}\",\n 321: \"\\\\L\",\n 322: \"\\\\l\",\n 323: \"\\\\'N\",\n 324: \"\\\\'n\",\n 325: \"\\\\c{N}\",\n 326: \"\\\\c{n}\",\n 327: \"\\\\v{N}\",\n 328: \"\\\\v{n}\",\n 329: \"\\\\nument{149}\",\n 330: \"\\\\NG\",\n 331: \"\\\\ng\",\n 332: \"\\\\={O}\",\n 333: \"\\\\={o}\",\n 334: \"\\\\u{O}\",\n 335: \"\\\\u{o}\",\n 336: \"\\\\H{O}\",\n 337: \"\\\\H{o}\",\n 338: \"\\\\OE\",\n 339: \"\\\\oe\",\n 340: \"\\\\'R\",\n 341: \"\\\\'r\",\n 342: \"\\\\c{R}\",\n 343: \"\\\\c{r}\",\n 344: \"\\\\v{R}\",\n 345: \"\\\\v{r}\",\n 346: \"\\\\'S\",\n 347: \"\\\\'s\",\n 348: \"\\\\^{S}\",\n 349: \"\\\\^{s}\",\n 350: \"\\\\c{S}\",\n 351: \"\\\\c{s}\",\n 352: \"\\\\v{S}\",\n 353: \"\\\\v{s}\",\n 354: \"\\\\c{T}\",\n 355: \"\\\\c{t}\",\n 356: \"\\\\v{T}\",\n 357: \"\\\\v{t}\",\n 358: \"\\\\={T}\",\n 359: \"\\\\={t}\",\n 360: \"\\\\~{U}\",\n 361: \"\\\\~{u}\",\n 362: \"\\\\={U}\",\n 363: \"\\\\={u}\",\n 364: \"\\\\u{U}\",\n 365: \"\\\\u{u}\",\n 366: \"\\\\r{U}\",\n 367: \"\\\\r{u}\",\n 368: \"\\\\'{U}\",\n 369: \"\\\\'{u}\",\n 370: \"\\\\k{U}\",\n 371: \"\\\\k{u}\",\n 372: \"\\\\^{W}\",\n 373: \"\\\\^{w}\",\n 374: \"\\\\^{Y}\",\n 375: \"\\\\^{y}\",\n 376: \"\\\\\\\"Y\",\n 377: \"\\\\'Z\",\n 378: \"\\\\'z\",\n 379: \"\\\\.Z\",\n 380: \"\\\\.z\",\n 381: \"\\\\v{Z}\",\n 382: \"\\\\v{z}\",\n 402: \"\\\\textflorin\",\n 405: \"\\\\texthvlig\",\n 414: \"\\\\textnrleg\",\n 501: \"\\\\'{g}\",\n 552: \"\\\\c{E}\",\n 553: \"\\\\c{e}\",\n 601: \"\\\\textschwa\",\n 603: \"\\\\varepsilon\",\n 632: \"\\\\textphi\",\n 660: \"\\\\textglotstop\",\n 670: \"\\\\textturnk\",\n 695: \"\\\\textsuperscript{w}\",\n 700: \"'\",\n 710: \"\\\\textasciicircum\",\n 711: \"\\\\textasciicaron\",\n 728: \"\\\\textasciibreve\",\n 729: \"\\\\textperiodcentered\",\n 730: \"\\\\r{}\",\n 731: \"\\\\k{}\",\n 732: \"\\\\textasciitilde\",\n 733: \"\\\\textacutedbl\",\n 775: \"\\\\ensuremath{\\\\dot{}}\",\n 776: \"\\\\ensuremath{\\\\ddot{}}\",\n 902: \"\\\\'{}A\",\n 904: \"\\\\'{}E\",\n 905: \"\\\\'{}H\",\n 906: \"\\\\'{}I\",\n 908: \"\\\\'{}O\",\n 910: \"\\\\'{}Y\",\n 911: \"\\\\'{}\\\\ensuremath{\\\\Omega}\",\n 912: \"\\\\acute{\\\\ddot{\\\\iota}}\",\n 913: \"A\",\n 914: \"B\",\n 915: \"\\\\ensuremath{\\\\Gamma}\",\n 916: \"\\\\ensuremath{\\\\Delta}\",\n 917: \"E\",\n 918: \"Z\",\n 919: \"H\",\n 920: \"\\\\ensuremath{\\\\Theta}\",\n 921: \"I\",\n 922: \"K\",\n 923: \"\\\\ensuremath{\\\\Lambda}\",\n 924: \"M\",\n 925: \"N\",\n 926: \"\\\\ensuremath{\\\\Xi}\",\n 927: \"O\",\n 928: \"\\\\ensuremath{\\\\Pi}\",\n 929: \"P\",\n 931: \"\\\\ensuremath{\\\\Sigma}\",\n 932: \"T\",\n 933: \"\\\\ensuremath{\\\\Upsilon}\",\n 934: \"\\\\ensuremath{\\\\Phi}\",\n 935: \"X\",\n 936: \"\\\\ensuremath{\\\\Psi}\",\n 937: \"\\\\ensuremath{\\\\Omega}\",\n 938: \"\\\\ensuremath{\\\\ddot{I}}\",\n 939: \"\\\\ensuremath{\\\\ddot{Y}}\",\n 940: \"\\\\ensuremath{\\\\acute\\\\alpha}\",\n 941: \"\\\\ensuremath{\\\\acute\\\\epsilon}\",\n 942: \"\\\\ensuremath{\\\\acute\\\\eta}\",\n 943: \"\\\\ensuremath{\\\\acute\\\\iota}\",\n 944: \"\\\\ensuremath{\\\\acute{\\\\ddot{\\\\upsilon}}}\",\n 945: \"\\\\ensuremath{\\\\alpha}\",\n 946: \"\\\\ensuremath{\\\\beta}\",\n 947: \"\\\\ensuremath{\\\\gamma}\",\n 948: \"\\\\ensuremath{\\\\delta}\",\n 949: \"\\\\ensuremath{\\\\varepsilon}\",\n 950: \"\\\\ensuremath{\\\\zeta}\",\n 951: \"\\\\ensuremath{\\\\eta}\",\n 952: \"\\\\ensuremath{\\\\theta}\",\n 953: \"\\\\ensuremath{\\\\iota}\",\n 954: \"\\\\ensuremath{\\\\kappa}\",\n 955: \"\\\\ensuremath{\\\\lambda}\",\n 956: \"\\\\ensuremath{\\\\mu}\",\n 957: \"\\\\ensuremath{\\\\nu}\",\n 958: \"\\\\ensuremath{\\\\xi}\",\n 959: \"o\",\n 960: \"\\\\ensuremath{\\\\pi}\",\n 961: \"\\\\ensuremath{\\\\rho}\",\n 962: \"\\\\ensuremath{\\\\varsigma}\",\n 963: \"\\\\ensuremath{\\\\sigma}\",\n 964: \"\\\\ensuremath{\\\\tau}\",\n 965: \"\\\\ensuremath{\\\\upsilon}\",\n 966: \"\\\\ensuremath{\\\\varphi}\",\n 967: \"\\\\ensuremath{\\\\chi}\",\n 968: \"\\\\ensuremath{\\\\psi}\",\n 969: \"\\\\ensuremath{\\\\omega}\",\n 970: \"\\\\ensuremath{\\\\ddot\\\\iota}\",\n 971: \"\\\\ensuremath{\\\\ddot{\\\\upsilon}}\",\n 972: \"\\\\'{o}\",\n 973: \"\\\\ensuremath{\\\\acute\\\\upsilon}\",\n 974: \"\\\\ensuremath{\\\\acute\\\\omega}\",\n 977: \"\\\\ensuremath{\\\\vartheta}\",\n 978: \"\\\\Upsilon\",\n 981: \"\\\\ensuremath{\\\\phi}\",\n 982: \"\\\\ensuremath{\\\\varpi}\",\n 1008: \"\\\\ensuremath{\\\\varkappa}\",\n 1009: \"\\\\ensuremath{\\\\varrho}\",\n 1013: \"\\\\ensuremath{\\\\epsilon}\",\n 1014: \"\\\\ensuremath{\\\\backepsilon}\",\n 1024: \"\\\\`\\\\CYRE\",\n 1025: \"\\\\CYRYO\",\n 1026: \"\\\\CYRDJE\",\n 1027: \"\\\\`\\\\CYRG\",\n 1028: \"\\\\CYRIE\",\n 1029: \"\\\\CYRDZE\",\n 1030: \"\\\\CYRII\",\n 1031: \"\\\\CYRYI\",\n 1032: \"\\\\CYRJE\",\n 1033: \"\\\\CYRLJE\",\n 1034: \"\\\\CYRNJE\",\n 1035: \"\\\\CYRTSHE\",\n 1036: \"\\\\`\\\\CYRK\",\n 1037: \"\\\\`\\\\CYRI\",\n 1038: \"\\\\CYRUSHRT\",\n 1039: \"\\\\CYRDZHE\",\n 1040: \"\\\\CYRA\",\n 1041: \"\\\\CYRB\",\n 1042: \"\\\\CYRV\",\n 1043: \"\\\\CYRG\",\n 1044: \"\\\\CYRD\",\n 1045: \"\\\\CYRE\",\n 1046: \"\\\\CYRZH\",\n 1047: \"\\\\CYRZ\",\n 1048: \"\\\\CYRI\",\n 1049: \"\\\\CYRISHRT\",\n 1050: \"\\\\CYRK\",\n 1051: \"\\\\CYRL\",\n 1052: \"\\\\CYRM\",\n 1053: \"\\\\CYRN\",\n 1054: \"\\\\CYRO\",\n 1055: \"\\\\CYRP\",\n 1056: \"\\\\CYRR\",\n 1057: \"\\\\CYRS\",\n 1058: \"\\\\CYRT\",\n 1059: \"\\\\CYRU\",\n 1060: \"\\\\CYRF\",\n 1061: \"\\\\CYRH\",\n 1062: \"\\\\CYRC\",\n 1063: \"\\\\CYRCH\",\n 1064: \"\\\\CYRSH\",\n 1065: \"\\\\CYRSHCH\",\n 1066: \"\\\\CYRHRDSN\",\n 1067: \"\\\\CYRERY\",\n 1068: \"\\\\CYRSFTSN\",\n 1069: \"\\\\CYREREV\",\n 1070: \"\\\\CYRYU\",\n 1071: \"\\\\CYRYA\",\n 1072: \"\\\\cyra\",\n 1073: \"\\\\cyrb\",\n 1074: \"\\\\cyrv\",\n 1075: \"\\\\cyrg\",\n 1076: \"\\\\cyrd\",\n 1077: \"\\\\cyre\",\n 1078: \"\\\\cyrzh\",\n 1079: \"\\\\cyrz\",\n 1080: \"\\\\cyri\",\n 1081: \"\\\\cyrishrt\",\n 1082: \"\\\\cyrk\",\n 1083: \"\\\\cyrl\",\n 1084: \"\\\\cyrm\",\n 1085: \"\\\\cyrn\",\n 1086: \"\\\\cyro\",\n 1087: \"\\\\cyrp\",\n 1088: \"\\\\cyrr\",\n 1089: \"\\\\cyrs\",\n 1090: \"\\\\cyrt\",\n 1091: \"\\\\cyru\",\n 1092: \"\\\\cyrf\",\n 1093: \"\\\\cyrh\",\n 1094: \"\\\\cyrc\",\n 1095: \"\\\\cyrch\",\n 1096: \"\\\\cyrsh\",\n 1097: \"\\\\cyrshch\",\n 1098: \"\\\\cyrhrdsn\",\n 1099: \"\\\\cyrery\",\n 1100: \"\\\\cyrsftsn\",\n 1101: \"\\\\cyrerev\",\n 1102: \"\\\\cyryu\",\n 1103: \"\\\\cyrya\",\n 1104: \"\\\\`\\\\cyre\",\n 1105: \"\\\\cyryo\",\n 1106: \"\\\\cyrdje\",\n 1107: \"\\\\`\\\\cyrg\",\n 1108: \"\\\\cyrie\",\n 1109: \"\\\\cyrdze\",\n 1110: \"\\\\cyrii\",\n 1111: \"\\\\cyryi\",\n 1112: \"\\\\cyrje\",\n 1113: \"\\\\cyrlje\",\n 1114: \"\\\\cyrnje\",\n 1115: \"\\\\cyrtshe\",\n 1116: \"\\\\`\\\\cyrk\",\n 1117: \"\\\\`\\\\cyri\",\n 1118: \"\\\\cyrushrt\",\n 1119: \"\\\\cyrdzhe\",\n 1120: \"\\\\cyrchar\\\\CYROMEGA\",\n 1121: \"\\\\cyrchar\\\\cyromega\",\n 1122: \"\\\\CYRYAT\",\n 1123: \"\\\\cyryat\",\n 1124: \"\\\\cyrchar\\\\CYRIOTE\",\n 1125: \"\\\\cyrchar\\\\cyriote\",\n 1126: \"\\\\cyrchar\\\\CYRLYUS\",\n 1127: \"\\\\cyrchar\\\\cyrlyus\",\n 1128: \"\\\\cyrchar\\\\CYRIOTLYUS\",\n 1129: \"\\\\cyrchar\\\\cyriotlyus\",\n 1130: \"\\\\CYRBYUS\",\n 1131: \"\\\\cyrbyus\",\n 1132: \"\\\\cyrchar\\\\CYRIOTBYUS\",\n 1133: \"\\\\cyrchar\\\\cyriotbyus\",\n 1134: \"\\\\cyrchar\\\\CYRKSI\",\n 1135: \"\\\\cyrchar\\\\cyrksi\",\n 1136: \"\\\\cyrchar\\\\CYRPSI\",\n 1137: \"\\\\cyrchar\\\\cyrpsi\",\n 1138: \"\\\\CYRFITA\",\n 1139: \"\\\\cyrfita\",\n 1140: \"\\\\CYRIZH\",\n 1141: \"\\\\cyrizh\",\n 1142: \"\\\\C\\\\CYRIZH\",\n 1143: \"\\\\C\\\\cyrizh\",\n 1144: \"\\\\cyrchar\\\\CYRUK\",\n 1145: \"\\\\cyrchar\\\\cyruk\",\n 1146: \"\\\\cyrchar\\\\CYROMEGARND\",\n 1147: \"\\\\cyrchar\\\\cyromegarnd\",\n 1148: \"\\\\cyrchar\\\\CYROMEGATITLO\",\n 1149: \"\\\\cyrchar\\\\cyromegatitlo\",\n 1150: \"\\\\cyrchar\\\\CYROT\",\n 1151: \"\\\\cyrchar\\\\cyrot\",\n 1152: \"\\\\cyrchar\\\\CYRKOPPA\",\n 1153: \"\\\\cyrchar\\\\cyrkoppa\",\n 1154: \"\\\\cyrchar\\\\cyrthousands\",\n 1160: \"\\\\cyrchar\\\\cyrhundredthousands\",\n 1161: \"\\\\cyrchar\\\\cyrmillions\",\n 1164: \"\\\\CYRSEMISFTSN\",\n 1165: \"\\\\cyrsemisftsn\",\n 1166: \"\\\\CYRRTICK\",\n 1167: \"\\\\cyrrtick\",\n 1168: \"\\\\CYRGUP\",\n 1169: \"\\\\cyrgup\",\n 1170: \"\\\\CYRGHCRS\",\n 1171: \"\\\\cyrghcrs\",\n 1172: \"\\\\CYRGHK\",\n 1173: \"\\\\cyrghk\",\n 1174: \"\\\\CYRZHDSC\",\n 1175: \"\\\\cyrzhdsc\",\n 1176: \"\\\\CYRZDSC\",\n 1177: \"\\\\cyrzdsc\",\n 1178: \"\\\\CYRKDSC\",\n 1179: \"\\\\cyrkdsc\",\n 1180: \"\\\\CYRKVCRS\",\n 1181: \"\\\\cyrkvcrs\",\n 1182: \"\\\\CYRKHCRS\",\n 1183: \"\\\\cyrkhcrs\",\n 1184: \"\\\\CYRKBEAK\",\n 1185: \"\\\\cyrkbeak\",\n 1186: \"\\\\CYRNDSC\",\n 1187: \"\\\\cyrndsc\",\n 1188: \"\\\\CYRNG\",\n 1189: \"\\\\cyrng\",\n 1190: \"\\\\CYRPHK\",\n 1191: \"\\\\cyrphk\",\n 1192: \"\\\\CYRABHHA\",\n 1193: \"\\\\cyrabhha\",\n 1194: \"\\\\CYRSDSC\",\n 1195: \"\\\\cyrsdsc\",\n 1196: \"\\\\CYRTDSC\",\n 1197: \"\\\\cyrtdsc\",\n 1198: \"\\\\CYRY\",\n 1199: \"\\\\cyry\",\n 1200: \"\\\\CYRYHCRS\",\n 1201: \"\\\\cyryhcrs\",\n 1202: \"\\\\CYRHDSC\",\n 1203: \"\\\\cyrhdsc\",\n 1204: \"\\\\CYRTETSE\",\n 1205: \"\\\\cyrtetse\",\n 1206: \"\\\\CYRCHRDSC\",\n 1207: \"\\\\cyrchrdsc\",\n 1208: \"\\\\CYRCHVCRS\",\n 1209: \"\\\\cyrchvcrs\",\n 1210: \"\\\\CYRSHHA\",\n 1211: \"\\\\cyrshha\",\n 1212: \"\\\\CYRABHCH\",\n 1213: \"\\\\cyrabhch\",\n 1214: \"\\\\CYRABHCHDSC\",\n 1215: \"\\\\cyrabhchdsc\",\n 1216: \"\\\\CYRpalochka\",\n 1217: \"\\\\U\\\\CYRZH\",\n 1218: \"\\\\U\\\\cyrzh\",\n 1219: \"\\\\CYRKHK\",\n 1220: \"\\\\cyrkhk\",\n 1221: \"\\\\CYRLDSC\",\n 1222: \"\\\\cyrldsc\",\n 1223: \"\\\\CYRNHK\",\n 1224: \"\\\\cyrnhk\",\n 1227: \"\\\\CYRCHLDSC\",\n 1228: \"\\\\cyrchldsc\",\n 1229: \"\\\\CYRMDSC\",\n 1230: \"\\\\cyrmdsc\",\n 1232: \"\\\\U\\\\CYRA\",\n 1233: \"\\\\U\\\\cyra\",\n 1234: \"\\\\\\\"\\\\CYRA\",\n 1235: \"\\\\\\\"\\\\cyra\",\n 1236: \"\\\\CYRAE\",\n 1237: \"\\\\cyrae\",\n 1238: \"\\\\U\\\\CYRE\",\n 1239: \"\\\\U\\\\cyre\",\n 1240: \"\\\\CYRSCHWA\",\n 1241: \"\\\\cyrschwa\",\n 1242: \"\\\\\\\"\\\\CYRSCHWA\",\n 1243: \"\\\\\\\"\\\\cyrschwa\",\n 1244: \"\\\\\\\"\\\\CYRZH\",\n 1245: \"\\\\\\\"\\\\cyrzh\",\n 1246: \"\\\\\\\"\\\\CYRZ\",\n 1247: \"\\\\\\\"\\\\cyrz\",\n 1248: \"\\\\CYRABHDZE\",\n 1249: \"\\\\cyrabhdze\",\n 1250: \"\\\\=\\\\CYRI\",\n 1251: \"\\\\=\\\\cyri\",\n 1252: \"\\\\\\\"\\\\CYRI\",\n 1253: \"\\\\\\\"\\\\cyri\",\n 1254: \"\\\\\\\"\\\\CYRO\",\n 1255: \"\\\\\\\"\\\\cyro\",\n 1256: \"\\\\CYROTLD\",\n 1257: \"\\\\cyrotld\",\n 1260: \"\\\\\\\"\\\\CYREREV\",\n 1261: \"\\\\\\\"\\\\cyrerev\",\n 1262: \"\\\\=\\\\CYRU\",\n 1263: \"\\\\=\\\\cyru\",\n 1264: \"\\\\\\\"\\\\CYRU\",\n 1265: \"\\\\\\\"\\\\cyru\",\n 1266: \"\\\\H\\\\CYRU\",\n 1267: \"\\\\H\\\\cyru\",\n 1268: \"\\\\\\\"\\\\CYRCH\",\n 1269: \"\\\\\\\"\\\\cyrch\",\n 1270: \"\\\\CYRGDSC\",\n 1271: \"\\\\cyrgdsc\",\n 1272: \"\\\\\\\"\\\\CYRERY\",\n 1273: \"\\\\\\\"\\\\cyrery\",\n 1274: \"\\\\CYRGDSCHCRS\",\n 1275: \"\\\\cyrgdschcrs\",\n 1276: \"\\\\CYRHHK\",\n 1277: \"\\\\cyrhhk\",\n 1278: \"\\\\CYRHHCRS\",\n 1279: \"\\\\cyrhhcrs\",\n 3647: \"\\\\textbaht\",\n 8192: \"\\\\enskip\",\n 8193: \"\\\\quad\",\n 8194: \"\\\\enskip\",\n 8195: \"\\\\quad\",\n 8196: \"\\\\hspace{0.33em}\",\n 8197: \"\\\\hspace{0.25em}\",\n 8198: \"\\\\hspace{0.167em}\",\n 8199: \"~\",\n 8200: \"\\\\;\",\n 8201: \"\\\\,\",\n 8202: \"\\\\hspace{1pt}\",\n 8204: \"\\\\textcompwordmark\",\n 8208: \"-\",\n 8209: \"\\\\nobreakdash-\",\n 8210: \"-\",\n 8211: \"\\\\textendash\",\n 8212: \"\\\\textemdash\",\n 8213: \"\\\\textemdash\",\n 8214: \"\\\\ensuremath{\\\\Vert}\",\n 8216: \"\\\\textquoteleft\",\n 8217: \"\\\\textquoteright\",\n 8218: \"\\\\quotesinglbase\",\n 8220: \"\\\\textquotedblleft\",\n 8221: \"\\\\textquotedblright\",\n 8222: \"\\\\quotedblbase\",\n 8224: \"\\\\textdagger\",\n 8225: \"\\\\textdaggerdbl\",\n 8226: \"\\\\textbullet\",\n 8228: \".\",\n 8229: \"..\",\n 8230: \"\\\\textellipsis\",\n 8240: \"\\\\textperthousand\",\n 8241: \"\\\\textpertenthousand\",\n 8242: \"'\",\n 8243: \"''\",\n 8244: \"'''\",\n 8245: \"\\\\ensuremath{\\\\backprime}\",\n 8249: \"\\\\guilsinglleft\",\n 8250: \"\\\\guilsinglright\",\n 8251: \"\\\\textreferencemark\",\n 8253: \"\\\\textinterrobang\",\n 8260: \"\\\\textfractionsolidus\",\n 8270: \"\\\\textasteriskcentered\",\n 8274: \"\\\\textdiscount\",\n 8279: \"''''\",\n 8287: \"\\\\hspace{0.22em}\",\n 8288: \"\\\\nolinebreak\",\n 8289: \"\",\n 8353: \"\\\\textcolonmonetary\",\n 8356: \"\\\\textlira\",\n 8358: \"\\\\textnaira\",\n 8361: \"\\\\textwon\",\n 8363: \"\\\\textdong\",\n 8364: \"\\\\texteuro\",\n 8369: \"\\\\textpeso\",\n 8450: \"\\\\ensuremath{\\\\mathbb{C}}\",\n 8451: \"\\\\textcelsius\",\n 8457: \"\\\\ensuremath{^\\\\circ}F\",\n 8458: \"\\\\ensuremath{g}\",\n 8459: \"\\\\ensuremath{\\\\mathscr{H}}\",\n 8460: \"\\\\ensuremath{\\\\mathfrak{H}}\",\n 8461: \"\\\\ensuremath{\\\\mathbb{H}}\",\n 8462: \"\\\\ensuremath{h}\",\n 8463: \"\\\\ensuremath{\\\\hbar}\",\n 8464: \"\\\\ensuremath{\\\\mathscr{I}}\",\n 8465: \"\\\\ensuremath{\\\\mathfrak{I}}\",\n 8466: \"\\\\ensuremath{\\\\mathscr{L}}\",\n 8467: \"\\\\ensuremath{\\\\ell}\",\n 8469: \"\\\\ensuremath{\\\\mathbb{N}}\",\n 8470: \"\\\\textnumero\",\n 8471: \"\\\\textcircledP\",\n 8472: \"\\\\ensuremath{\\\\wp}\",\n 8473: \"\\\\ensuremath{\\\\mathbb{P}}\",\n 8474: \"\\\\ensuremath{\\\\mathbb{Q}}\",\n 8475: \"\\\\ensuremath{\\\\mathscr{R}}\",\n 8476: \"\\\\ensuremath{\\\\mathfrak{R}}\",\n 8477: \"\\\\ensuremath{\\\\mathbb{R}}\",\n 8478: \"\\\\textrecipe\",\n 8480: \"\\\\textservicemark\",\n 8482: \"\\\\texttrademark\",\n 8484: \"\\\\ensuremath{\\\\mathbb{Z}}\",\n 8486: \"\\\\textohm\",\n 8487: \"\\\\textmho\",\n 8488: \"\\\\ensuremath{\\\\mathfrak{Z}}\",\n 8490: \"K\",\n 8491: \"\\\\r{A}\",\n 8492: \"\\\\ensuremath{\\\\mathscr{B}}\",\n 8493: \"\\\\ensuremath{\\\\mathfrak{C}}\",\n 8494: \"\\\\textestimated\",\n 8495: \"\\\\ensuremath{e}\",\n 8496: \"\\\\ensuremath{\\\\mathscr{E}}\",\n 8497: \"\\\\ensuremath{\\\\mathscr{F}}\",\n 8499: \"\\\\ensuremath{\\\\mathscr{M}}\",\n 8500: \"\\\\ensuremath{o}\",\n 8501: \"\\\\ensuremath{\\\\aleph}\",\n 8502: \"\\\\ensuremath{\\\\beth}\",\n 8503: \"\\\\ensuremath{\\\\gimel}\",\n 8504: \"\\\\ensuremath{\\\\daleth}\",\n 8531: \"\\\\textfrac{1}{3}\",\n 8532: \"\\\\textfrac{2}{3}\",\n 8533: \"\\\\textfrac{1}{5}\",\n 8534: \"\\\\textfrac{2}{5}\",\n 8535: \"\\\\textfrac{3}{5}\",\n 8536: \"\\\\textfrac{4}{5}\",\n 8537: \"\\\\textfrac{1}{6}\",\n 8538: \"\\\\textfrac{5}{6}\",\n 8539: \"\\\\textfrac{1}{8}\",\n 8540: \"\\\\textfrac{3}{8}\",\n 8541: \"\\\\textfrac{5}{8}\",\n 8542: \"\\\\textfrac{7}{8}\",\n 8592: \"\\\\textleftarrow\",\n 8593: \"\\\\textuparrow\",\n 8594: \"\\\\textrightarrow\",\n 8595: \"\\\\textdownarrow\",\n 8596: \"\\\\ensuremath{\\\\leftrightarrow}\",\n 8597: \"\\\\ensuremath{\\\\updownarrow}\",\n 8598: \"\\\\ensuremath{\\\\nwarrow}\",\n 8599: \"\\\\ensuremath{\\\\nearrow}\",\n 8600: \"\\\\ensuremath{\\\\searrow}\",\n 8601: \"\\\\ensuremath{\\\\swarrow}\",\n 8602: \"\\\\ensuremath{\\\\nleftarrow}\",\n 8603: \"\\\\ensuremath{\\\\nrightarrow}\",\n 8604: \"\\\\ensuremath{\\\\arrowwaveleft}\",\n 8605: \"\\\\ensuremath{\\\\arrowwaveright}\",\n 8606: \"\\\\ensuremath{\\\\twoheadleftarrow}\",\n 8608: \"\\\\ensuremath{\\\\twoheadrightarrow}\",\n 8610: \"\\\\ensuremath{\\\\leftarrowtail}\",\n 8611: \"\\\\ensuremath{\\\\rightarrowtail}\",\n 8614: \"\\\\ensuremath{\\\\mapsto}\",\n 8617: \"\\\\ensuremath{\\\\hookleftarrow}\",\n 8618: \"\\\\ensuremath{\\\\hookrightarrow}\",\n 8619: \"\\\\ensuremath{\\\\looparrowleft}\",\n 8620: \"\\\\ensuremath{\\\\looparrowright}\",\n 8621: \"\\\\ensuremath{\\\\leftrightsquigarrow}\",\n 8622: \"\\\\ensuremath{\\\\nleftrightarrow}\",\n 8624: \"\\\\ensuremath{\\\\Lsh}\",\n 8625: \"\\\\ensuremath{\\\\Rsh}\",\n 8630: \"\\\\ensuremath{\\\\curvearrowleft}\",\n 8631: \"\\\\ensuremath{\\\\curvearrowright}\",\n 8634: \"\\\\ensuremath{\\\\circlearrowleft}\",\n 8635: \"\\\\ensuremath{\\\\circlearrowright}\",\n 8636: \"\\\\ensuremath{\\\\leftharpoonup}\",\n 8637: \"\\\\ensuremath{\\\\leftharpoondown}\",\n 8638: \"\\\\ensuremath{\\\\upharpoonright}\",\n 8639: \"\\\\ensuremath{\\\\upharpoonleft}\",\n 8640: \"\\\\ensuremath{\\\\rightharpoonup}\",\n 8641: \"\\\\ensuremath{\\\\rightharpoondown}\",\n 8642: \"\\\\ensuremath{\\\\downharpoonright}\",\n 8643: \"\\\\ensuremath{\\\\downharpoonleft}\",\n 8644: \"\\\\ensuremath{\\\\rightleftarrows}\",\n 8645: \"\\\\ensuremath{\\\\dblarrowupdown}\",\n 8646: \"\\\\ensuremath{\\\\leftrightarrows}\",\n 8647: \"\\\\ensuremath{\\\\leftleftarrows}\",\n 8648: \"\\\\ensuremath{\\\\upuparrows}\",\n 8649: \"\\\\ensuremath{\\\\rightrightarrows}\",\n 8650: \"\\\\ensuremath{\\\\downdownarrows}\",\n 8651: \"\\\\ensuremath{\\\\leftrightharpoons}\",\n 8652: \"\\\\ensuremath{\\\\rightleftharpoons}\",\n 8653: \"\\\\ensuremath{\\\\nLeftarrow}\",\n 8654: \"\\\\ensuremath{\\\\nLeftrightarrow}\",\n 8655: \"\\\\ensuremath{\\\\nRightarrow}\",\n 8656: \"\\\\ensuremath{\\\\Leftarrow}\",\n 8657: \"\\\\ensuremath{\\\\Uparrow}\",\n 8658: \"\\\\ensuremath{\\\\Rightarrow}\",\n 8659: \"\\\\ensuremath{\\\\Downarrow}\",\n 8660: \"\\\\ensuremath{\\\\Leftrightarrow}\",\n 8661: \"\\\\ensuremath{\\\\Updownarrow}\",\n 8666: \"\\\\ensuremath{\\\\Lleftarrow}\",\n 8667: \"\\\\ensuremath{\\\\Rrightarrow}\",\n 8669: \"\\\\ensuremath{\\\\rightsquigarrow}\",\n 8693: \"\\\\ensuremath{\\\\DownArrowUpArrow}\",\n 8704: \"\\\\ensuremath{\\\\forall}\",\n 8705: \"\\\\ensuremath{\\\\complement}\",\n 8706: \"\\\\ensuremath{\\\\partial}\",\n 8707: \"\\\\ensuremath{\\\\exists}\",\n 8708: \"\\\\ensuremath{\\\\nexists}\",\n 8709: \"\\\\ensuremath{\\\\varnothing}\",\n 8710: \"\\\\ensuremath{\\\\Delta}\",\n 8711: \"\\\\ensuremath{\\\\nabla}\",\n 8712: \"\\\\ensuremath{\\\\in}\",\n 8713: \"\\\\ensuremath{\\\\notin}\",\n 8714: \"\\\\ensuremath{\\\\in}\",\n 8715: \"\\\\ensuremath{\\\\ni}\",\n 8716: \"\\\\ensuremath{\\\\not\\\\ni}\",\n 8717: \"\\\\ensuremath{\\\\ni}\",\n 8718: \"\\\\ensuremath{\\\\blacksquare}\",\n 8719: \"\\\\ensuremath{\\\\prod}\",\n 8720: \"\\\\ensuremath{\\\\coprod}\",\n 8721: \"\\\\ensuremath{\\\\sum}\",\n 8722: \"\\\\ensuremath{-}\",\n 8723: \"\\\\ensuremath{\\\\mp}\",\n 8724: \"\\\\ensuremath{\\\\dotplus}\",\n 8725: \"\\\\ensuremath{/}\",\n 8726: \"\\\\ensuremath{\\\\smallsetminus}\",\n 8727: \"\\\\ensuremath{*}\",\n 8728: \"\\\\ensuremath{\\\\circ}\",\n 8729: \"\\\\ensuremath{\\\\bullet}\",\n 8730: \"\\\\ensuremath{\\\\sqrt{}}\",\n 8731: \"\\\\ensuremath{\\\\sqrt[3]{}}\",\n 8732: \"\\\\ensuremath{\\\\sqrt[4]{}}\",\n 8733: \"\\\\ensuremath{\\\\propto}\",\n 8734: \"\\\\ensuremath{\\\\infty}\",\n 8735: \"\\\\ensuremath{\\\\rightangle}\",\n 8736: \"\\\\ensuremath{\\\\angle}\",\n 8737: \"\\\\ensuremath{\\\\measuredangle}\",\n 8738: \"\\\\ensuremath{\\\\sphericalangle}\",\n 8739: \"\\\\ensuremath{\\\\mid}\",\n 8740: \"\\\\ensuremath{\\\\nmid}\",\n 8741: \"\\\\ensuremath{\\\\parallel}\",\n 8742: \"\\\\ensuremath{\\\\nparallel}\",\n 8743: \"\\\\ensuremath{\\\\wedge}\",\n 8744: \"\\\\ensuremath{\\\\vee}\",\n 8745: \"\\\\ensuremath{\\\\cap}\",\n 8746: \"\\\\ensuremath{\\\\cup}\",\n 8747: \"\\\\ensuremath{\\\\int}\",\n 8748: \"\\\\ensuremath{\\\\iint}\",\n 8749: \"\\\\ensuremath{\\\\iiint}\",\n 8750: \"\\\\ensuremath{\\\\oint}\",\n 8751: \"\\\\ensuremath{\\\\surfintegral}\",\n 8752: \"\\\\ensuremath{\\\\volintegral}\",\n 8753: \"\\\\ensuremath{\\\\clwintegral}\",\n 8756: \"\\\\ensuremath{\\\\therefore}\",\n 8757: \"\\\\ensuremath{\\\\because}\",\n 8758: \"\\\\ensuremath{:}\",\n 8759: \"\\\\ensuremath{::}\",\n 8762: \"\\\\ensuremath{\\\\mathbin{{:}\\\\!\\\\!{-}\\\\!\\\\!{:}}}\",\n 8763: \"\\\\ensuremath{\\\\homothetic}\",\n 8764: \"\\\\ensuremath{\\\\sim}\",\n 8765: \"\\\\ensuremath{\\\\backsim}\",\n 8766: \"\\\\ensuremath{\\\\lazysinv}\",\n 8768: \"\\\\ensuremath{\\\\wr}\",\n 8769: \"\\\\ensuremath{\\\\not\\\\sim}\",\n 8771: \"\\\\ensuremath{\\\\simeq}\",\n 8772: \"\\\\ensuremath{\\\\not\\\\simeq}\",\n 8773: \"\\\\ensuremath{\\\\cong}\",\n 8774: \"\\\\ensuremath{\\\\approxnotequal}\",\n 8775: \"\\\\ensuremath{\\\\not\\\\cong}\",\n 8776: \"\\\\ensuremath{\\\\approx}\",\n 8777: \"\\\\ensuremath{\\\\not\\\\approx}\",\n 8778: \"\\\\ensuremath{\\\\approxeq}\",\n 8779: \"\\\\ensuremath{\\\\tildetrpl}\",\n 8780: \"\\\\ensuremath{\\\\allequal}\",\n 8781: \"\\\\ensuremath{\\\\asymp}\",\n 8782: \"\\\\ensuremath{\\\\Bumpeq}\",\n 8783: \"\\\\ensuremath{\\\\bumpeq}\",\n 8784: \"\\\\ensuremath{\\\\doteq}\",\n 8785: \"\\\\ensuremath{\\\\doteqdot}\",\n 8786: \"\\\\ensuremath{\\\\fallingdotseq}\",\n 8787: \"\\\\ensuremath{\\\\risingdotseq}\",\n 8788: \"\\\\ensuremath{:=}\",\n 8789: \"\\\\ensuremath{=:}\",\n 8790: \"\\\\ensuremath{\\\\eqcirc}\",\n 8791: \"\\\\ensuremath{\\\\circeq}\",\n 8793: \"\\\\ensuremath{\\\\estimates}\",\n 8795: \"\\\\ensuremath{\\\\starequal}\",\n 8796: \"\\\\ensuremath{\\\\triangleq}\",\n 8800: \"\\\\ensuremath{\\\\neq}\",\n 8801: \"\\\\ensuremath{\\\\equiv}\",\n 8802: \"\\\\ensuremath{\\\\not\\\\equiv}\",\n 8804: \"\\\\ensuremath{\\\\leq}\",\n 8805: \"\\\\ensuremath{\\\\geq}\",\n 8806: \"\\\\ensuremath{\\\\leqq}\",\n 8807: \"\\\\ensuremath{\\\\geqq}\",\n 8808: \"\\\\ensuremath{\\\\lneqq}\",\n 8809: \"\\\\ensuremath{\\\\gneqq}\",\n 8810: \"\\\\ensuremath{\\\\ll}\",\n 8811: \"\\\\ensuremath{\\\\gg}\",\n 8812: \"\\\\ensuremath{\\\\between}\",\n 8813: \"\\\\ensuremath{\\\\not\\\\kern-0.3em\\\\times}\",\n 8814: \"\\\\ensuremath{\\\\nless}\",\n 8815: \"\\\\ensuremath{\\\\ngtr}\",\n 8816: \"\\\\ensuremath{\\\\nleq}\",\n 8817: \"\\\\ensuremath{\\\\ngeq}\",\n 8818: \"\\\\ensuremath{\\\\lesssim}\",\n 8819: \"\\\\ensuremath{\\\\gtrsim}\",\n 8820: \"\\\\ensuremath{\\\\not\\\\lesssim}\",\n 8821: \"\\\\ensuremath{\\\\not\\\\gtrsim}\",\n 8822: \"\\\\ensuremath{\\\\lessgtr}\",\n 8823: \"\\\\ensuremath{\\\\gtrless}\",\n 8824: \"\\\\ensuremath{\\\\notlessgreater}\",\n 8825: \"\\\\ensuremath{\\\\notgreaterless}\",\n 8826: \"\\\\ensuremath{\\\\prec}\",\n 8827: \"\\\\ensuremath{\\\\succ}\",\n 8828: \"\\\\ensuremath{\\\\preceq}\",\n 8829: \"\\\\ensuremath{\\\\succeq}\",\n 8830: \"\\\\ensuremath{\\\\precsim}\",\n 8831: \"\\\\ensuremath{\\\\succsim}\",\n 8832: \"\\\\ensuremath{\\\\nprec}\",\n 8833: \"\\\\ensuremath{\\\\nsucc}\",\n 8834: \"\\\\ensuremath{\\\\subset}\",\n 8835: \"\\\\ensuremath{\\\\supset}\",\n 8836: \"\\\\ensuremath{\\\\not\\\\subset}\",\n 8837: \"\\\\ensuremath{\\\\not\\\\supset}\",\n 8838: \"\\\\ensuremath{\\\\subseteq}\",\n 8839: \"\\\\ensuremath{\\\\supseteq}\",\n 8840: \"\\\\ensuremath{\\\\nsubseteq}\",\n 8841: \"\\\\ensuremath{\\\\nsupseteq}\",\n 8842: \"\\\\ensuremath{\\\\subsetneq}\",\n 8843: \"\\\\ensuremath{\\\\supsetneq}\",\n 8846: \"\\\\ensuremath{\\\\uplus}\",\n 8847: \"\\\\ensuremath{\\\\sqsubset}\",\n 8848: \"\\\\ensuremath{\\\\sqsupset}\",\n 8849: \"\\\\ensuremath{\\\\sqsubseteq}\",\n 8850: \"\\\\ensuremath{\\\\sqsupseteq}\",\n 8851: \"\\\\ensuremath{\\\\sqcap}\",\n 8852: \"\\\\ensuremath{\\\\sqcup}\",\n 8853: \"\\\\ensuremath{\\\\oplus}\",\n 8854: \"\\\\ensuremath{\\\\ominus}\",\n 8855: \"\\\\ensuremath{\\\\otimes}\",\n 8856: \"\\\\ensuremath{\\\\oslash}\",\n 8857: \"\\\\ensuremath{\\\\odot}\",\n 8858: \"\\\\ensuremath{\\\\circledcirc}\",\n 8859: \"\\\\ensuremath{\\\\circledast}\",\n 8861: \"\\\\ensuremath{\\\\circleddash}\",\n 8862: \"\\\\ensuremath{\\\\boxplus}\",\n 8863: \"\\\\ensuremath{\\\\boxminus}\",\n 8864: \"\\\\ensuremath{\\\\boxtimes}\",\n 8865: \"\\\\ensuremath{\\\\boxdot}\",\n 8866: \"\\\\ensuremath{\\\\vdash}\",\n 8867: \"\\\\ensuremath{\\\\dashv}\",\n 8868: \"\\\\ensuremath{\\\\top}\",\n 8869: \"\\\\ensuremath{\\\\perp}\",\n 8871: \"\\\\ensuremath{\\\\truestate}\",\n 8872: \"\\\\ensuremath{\\\\forcesextra}\",\n 8873: \"\\\\ensuremath{\\\\Vdash}\",\n 8874: \"\\\\ensuremath{\\\\Vvdash}\",\n 8875: \"\\\\ensuremath{\\\\VDash}\",\n 8876: \"\\\\ensuremath{\\\\nvdash}\",\n 8877: \"\\\\ensuremath{\\\\nvDash}\",\n 8878: \"\\\\ensuremath{\\\\nVdash}\",\n 8879: \"\\\\ensuremath{\\\\nVDash}\",\n 8882: \"\\\\ensuremath{\\\\vartriangleleft}\",\n 8883: \"\\\\ensuremath{\\\\vartriangleright}\",\n 8884: \"\\\\ensuremath{\\\\trianglelefteq}\",\n 8885: \"\\\\ensuremath{\\\\trianglerighteq}\",\n 8886: \"\\\\ensuremath{\\\\original}\",\n 8887: \"\\\\ensuremath{\\\\image}\",\n 8888: \"\\\\ensuremath{\\\\multimap}\",\n 8889: \"\\\\ensuremath{\\\\hermitconjmatrix}\",\n 8890: \"\\\\ensuremath{\\\\intercal}\",\n 8891: \"\\\\ensuremath{\\\\veebar}\",\n 8894: \"\\\\ensuremath{\\\\rightanglearc}\",\n 8896: \"\\\\ensuremath{\\\\bigwedge}\",\n 8897: \"\\\\ensuremath{\\\\bigvee}\",\n 8898: \"\\\\ensuremath{\\\\bigcap}\",\n 8899: \"\\\\ensuremath{\\\\bigcup}\",\n 8900: \"\\\\ensuremath{\\\\diamond}\",\n 8901: \"\\\\ensuremath{\\\\cdot}\",\n 8902: \"\\\\ensuremath{\\\\star}\",\n 8903: \"\\\\ensuremath{\\\\divideontimes}\",\n 8904: \"\\\\ensuremath{\\\\bowtie}\",\n 8905: \"\\\\ensuremath{\\\\ltimes}\",\n 8906: \"\\\\ensuremath{\\\\rtimes}\",\n 8907: \"\\\\ensuremath{\\\\leftthreetimes}\",\n 8908: \"\\\\ensuremath{\\\\rightthreetimes}\",\n 8909: \"\\\\ensuremath{\\\\backsimeq}\",\n 8910: \"\\\\ensuremath{\\\\curlyvee}\",\n 8911: \"\\\\ensuremath{\\\\curlywedge}\",\n 8912: \"\\\\ensuremath{\\\\Subset}\",\n 8913: \"\\\\ensuremath{\\\\Supset}\",\n 8914: \"\\\\ensuremath{\\\\Cap}\",\n 8915: \"\\\\ensuremath{\\\\Cup}\",\n 8916: \"\\\\ensuremath{\\\\pitchfork}\",\n 8918: \"\\\\ensuremath{\\\\lessdot}\",\n 8919: \"\\\\ensuremath{\\\\gtrdot}\",\n 8920: \"\\\\ensuremath{\\\\verymuchless}\",\n 8921: \"\\\\ensuremath{\\\\verymuchgreater}\",\n 8922: \"\\\\ensuremath{\\\\lesseqgtr}\",\n 8923: \"\\\\ensuremath{\\\\gtreqless}\",\n 8926: \"\\\\ensuremath{\\\\curlyeqprec}\",\n 8927: \"\\\\ensuremath{\\\\curlyeqsucc}\",\n 8930: \"\\\\ensuremath{\\\\not\\\\sqsubseteq}\",\n 8931: \"\\\\ensuremath{\\\\not\\\\sqsupseteq}\",\n 8934: \"\\\\ensuremath{\\\\lnsim}\",\n 8935: \"\\\\ensuremath{\\\\gnsim}\",\n 8936: \"\\\\ensuremath{\\\\precedesnotsimilar}\",\n 8937: \"\\\\ensuremath{\\\\succnsim}\",\n 8938: \"\\\\ensuremath{\\\\ntriangleleft}\",\n 8939: \"\\\\ensuremath{\\\\ntriangleright}\",\n 8940: \"\\\\ensuremath{\\\\ntrianglelefteq}\",\n 8941: \"\\\\ensuremath{\\\\ntrianglerighteq}\",\n 8942: \"\\\\ensuremath{\\\\vdots}\",\n 8943: \"\\\\ensuremath{\\\\cdots}\",\n 8944: \"\\\\ensuremath{\\\\udots}\",\n 8945: \"\\\\ensuremath{\\\\ddots}\",\n 8965: \"\\\\ensuremath{\\\\barwedge}\",\n 8966: \"\\\\ensuremath{\\\\varperspcorrespond}\",\n 8968: \"\\\\ensuremath{\\\\lceil}\",\n 8969: \"\\\\ensuremath{\\\\rceil}\",\n 8970: \"\\\\ensuremath{\\\\lfloor}\",\n 8971: \"\\\\ensuremath{\\\\rfloor}\",\n 8981: \"\\\\ensuremath{\\\\recorder}\",\n 8982: \"\\\\ensuremath{\\\\mathchar\\\"2208}\",\n 8988: \"\\\\ensuremath{\\\\ulcorner}\",\n 8989: \"\\\\ensuremath{\\\\urcorner}\",\n 8990: \"\\\\ensuremath{\\\\llcorner}\",\n 8991: \"\\\\ensuremath{\\\\lrcorner}\",\n 8994: \"\\\\ensuremath{\\\\frown}\",\n 8995: \"\\\\ensuremath{\\\\smile}\",\n 9001: \"\\\\textlangle\",\n 9002: \"\\\\textrangle\",\n 9136: \"\\\\ensuremath{\\\\lmoustache}\",\n 9137: \"\\\\ensuremath{\\\\rmoustache}\",\n 9250: \"\\\\textblank\",\n 9251: \"\\\\textvisiblespace\",\n 9632: \"\\\\ensuremath{\\\\blacksquare}\",\n 9633: \"\\\\ensuremath{\\\\square}\",\n 9642: \"{\\\\small\\\\ensuremath{\\\\blacksquare}}\",\n 9645: \"\\\\fbox{~~}\",\n 9651: \"\\\\ensuremath{\\\\bigtriangleup}\",\n 9652: \"\\\\ensuremath{\\\\blacktriangle}\",\n 9653: \"\\\\ensuremath{\\\\vartriangle}\",\n 9656: \"\\\\ensuremath{\\\\blacktriangleright}\",\n 9657: \"\\\\ensuremath{\\\\triangleright}\",\n 9661: \"\\\\ensuremath{\\\\bigtriangledown}\",\n 9662: \"\\\\ensuremath{\\\\blacktriangledown}\",\n 9663: \"\\\\ensuremath{\\\\triangledown}\",\n 9666: \"\\\\ensuremath{\\\\blacktriangleleft}\",\n 9667: \"\\\\ensuremath{\\\\triangleleft}\",\n 9674: \"\\\\ensuremath{\\\\lozenge}\",\n 9675: \"\\\\ensuremath{\\\\bigcirc}\",\n 9702: \"\\\\textopenbullet\",\n 9711: \"\\\\textbigcircle\",\n 9826: \"\\\\ensuremath{\\\\diamond}\",\n 9833: \"\\\\quarternote\",\n 9834: \"\\\\textmusicalnote\",\n 9837: \"\\\\flat\",\n 9838: \"\\\\natural\",\n 9839: \"\\\\sharp\",\n 10216: \"\\\\ensuremath{\\\\langle}\",\n 10217: \"\\\\ensuremath{\\\\rangle}\",\n 10229: \"\\\\ensuremath{\\\\longleftarrow}\",\n 10230: \"\\\\ensuremath{\\\\longrightarrow}\",\n 10231: \"\\\\ensuremath{\\\\longleftrightarrow}\",\n 10232: \"\\\\ensuremath{\\\\Longleftarrow}\",\n 10233: \"\\\\ensuremath{\\\\Longrightarrow}\",\n 10234: \"\\\\ensuremath{\\\\Longleftrightarrow}\",\n 10236: \"\\\\ensuremath{\\\\longmapsto}\",\n 10239: \"\\\\ensuremath{\\\\sim\\\\joinrel\\\\leadsto}\",\n 10643: \"\\\\ensuremath{<\\\\kern-0.58em(}\",\n 10731: \"\\\\ensuremath{\\\\blacklozenge}\",\n 10767: \"\\\\ensuremath{\\\\clockoint}\",\n 10774: \"\\\\ensuremath{\\\\sqrint}\",\n 10815: \"\\\\ensuremath{\\\\amalg}\",\n 10862: \"\\\\ensuremath{\\\\stackrel{*}{=}}\",\n 10869: \"==\",\n 10877: \"\\\\ensuremath{\\\\leqslant}\",\n 10878: \"\\\\ensuremath{\\\\geqslant}\",\n 10885: \"\\\\ensuremath{\\\\lessapprox}\",\n 10886: \"\\\\ensuremath{\\\\gtrapprox}\",\n 10887: \"\\\\ensuremath{\\\\lneq}\",\n 10888: \"\\\\ensuremath{\\\\gneq}\",\n 10889: \"\\\\ensuremath{\\\\lnapprox}\",\n 10890: \"\\\\ensuremath{\\\\gnapprox}\",\n 10891: \"\\\\ensuremath{\\\\lesseqqgtr}\",\n 10892: \"\\\\ensuremath{\\\\gtreqqless}\",\n 10901: \"\\\\ensuremath{\\\\eqslantless}\",\n 10902: \"\\\\ensuremath{\\\\eqslantgtr}\",\n 10927: \"\\\\ensuremath{\\\\preceq}\",\n 10928: \"\\\\ensuremath{\\\\succeq}\",\n 10933: \"\\\\ensuremath{\\\\precneqq}\",\n 10934: \"\\\\ensuremath{\\\\succneqq}\",\n 10935: \"\\\\ensuremath{\\\\precapprox}\",\n 10936: \"\\\\ensuremath{\\\\succapprox}\",\n 10937: \"\\\\ensuremath{\\\\precnapprox}\",\n 10938: \"\\\\ensuremath{\\\\succnapprox}\",\n 10949: \"\\\\ensuremath{\\\\subseteqq}\",\n 10950: \"\\\\ensuremath{\\\\supseteqq}\",\n 10955: \"\\\\ensuremath{\\\\subsetneqq}\",\n 10956: \"\\\\ensuremath{\\\\supsetneqq}\",\n 11005: \"\\\\ensuremath{{{/}\\\\!\\\\!{/}}}\",\n 12296: \"\\\\ensuremath{\\\\langle}\",\n 12297: \"\\\\ensuremath{\\\\rangle}\",\n 64256: \"ff\",\n 64257: \"fi\",\n 64258: \"fl\",\n 64259: \"ffi\",\n 64260: \"ffl\",\n 119808: \"\\\\ensuremath{\\\\mathbf{A}}\",\n 119809: \"\\\\ensuremath{\\\\mathbf{B}}\",\n 119810: \"\\\\ensuremath{\\\\mathbf{C}}\",\n 119811: \"\\\\ensuremath{\\\\mathbf{D}}\",\n 119812: \"\\\\ensuremath{\\\\mathbf{E}}\",\n 119813: \"\\\\ensuremath{\\\\mathbf{F}}\",\n 119814: \"\\\\ensuremath{\\\\mathbf{G}}\",\n 119815: \"\\\\ensuremath{\\\\mathbf{H}}\",\n 119816: \"\\\\ensuremath{\\\\mathbf{I}}\",\n 119817: \"\\\\ensuremath{\\\\mathbf{J}}\",\n 119818: \"\\\\ensuremath{\\\\mathbf{K}}\",\n 119819: \"\\\\ensuremath{\\\\mathbf{L}}\",\n 119820: \"\\\\ensuremath{\\\\mathbf{M}}\",\n 119821: \"\\\\ensuremath{\\\\mathbf{N}}\",\n 119822: \"\\\\ensuremath{\\\\mathbf{O}}\",\n 119823: \"\\\\ensuremath{\\\\mathbf{P}}\",\n 119824: \"\\\\ensuremath{\\\\mathbf{Q}}\",\n 119825: \"\\\\ensuremath{\\\\mathbf{R}}\",\n 119826: \"\\\\ensuremath{\\\\mathbf{S}}\",\n 119827: \"\\\\ensuremath{\\\\mathbf{T}}\",\n 119828: \"\\\\ensuremath{\\\\mathbf{U}}\",\n 119829: \"\\\\ensuremath{\\\\mathbf{V}}\",\n 119830: \"\\\\ensuremath{\\\\mathbf{W}}\",\n 119831: \"\\\\ensuremath{\\\\mathbf{X}}\",\n 119832: \"\\\\ensuremath{\\\\mathbf{Y}}\",\n 119833: \"\\\\ensuremath{\\\\mathbf{Z}}\",\n 119834: \"\\\\ensuremath{\\\\mathbf{a}}\",\n 119835: \"\\\\ensuremath{\\\\mathbf{b}}\",\n 119836: \"\\\\ensuremath{\\\\mathbf{c}}\",\n 119837: \"\\\\ensuremath{\\\\mathbf{d}}\",\n 119838: \"\\\\ensuremath{\\\\mathbf{e}}\",\n 119839: \"\\\\ensuremath{\\\\mathbf{f}}\",\n 119840: \"\\\\ensuremath{\\\\mathbf{g}}\",\n 119841: \"\\\\ensuremath{\\\\mathbf{h}}\",\n 119842: \"\\\\ensuremath{\\\\mathbf{i}}\",\n 119843: \"\\\\ensuremath{\\\\mathbf{j}}\",\n 119844: \"\\\\ensuremath{\\\\mathbf{k}}\",\n 119845: \"\\\\ensuremath{\\\\mathbf{l}}\",\n 119846: \"\\\\ensuremath{\\\\mathbf{m}}\",\n 119847: \"\\\\ensuremath{\\\\mathbf{n}}\",\n 119848: \"\\\\ensuremath{\\\\mathbf{o}}\",\n 119849: \"\\\\ensuremath{\\\\mathbf{p}}\",\n 119850: \"\\\\ensuremath{\\\\mathbf{q}}\",\n 119851: \"\\\\ensuremath{\\\\mathbf{r}}\",\n 119852: \"\\\\ensuremath{\\\\mathbf{s}}\",\n 119853: \"\\\\ensuremath{\\\\mathbf{t}}\",\n 119854: \"\\\\ensuremath{\\\\mathbf{u}}\",\n 119855: \"\\\\ensuremath{\\\\mathbf{v}}\",\n 119856: \"\\\\ensuremath{\\\\mathbf{w}}\",\n 119857: \"\\\\ensuremath{\\\\mathbf{x}}\",\n 119858: \"\\\\ensuremath{\\\\mathbf{y}}\",\n 119859: \"\\\\ensuremath{\\\\mathbf{z}}\",\n 119860: \"\\\\ensuremath{\\\\mathit{A}}\",\n 119861: \"\\\\ensuremath{\\\\mathit{B}}\",\n 119862: \"\\\\ensuremath{\\\\mathit{C}}\",\n 119863: \"\\\\ensuremath{\\\\mathit{D}}\",\n 119864: \"\\\\ensuremath{\\\\mathit{E}}\",\n 119865: \"\\\\ensuremath{\\\\mathit{F}}\",\n 119866: \"\\\\ensuremath{\\\\mathit{G}}\",\n 119867: \"\\\\ensuremath{\\\\mathit{H}}\",\n 119868: \"\\\\ensuremath{\\\\mathit{I}}\",\n 119869: \"\\\\ensuremath{\\\\mathit{J}}\",\n 119870: \"\\\\ensuremath{\\\\mathit{K}}\",\n 119871: \"\\\\ensuremath{\\\\mathit{L}}\",\n 119872: \"\\\\ensuremath{\\\\mathit{M}}\",\n 119873: \"\\\\ensuremath{\\\\mathit{N}}\",\n 119874: \"\\\\ensuremath{\\\\mathit{O}}\",\n 119875: \"\\\\ensuremath{\\\\mathit{P}}\",\n 119876: \"\\\\ensuremath{\\\\mathit{Q}}\",\n 119877: \"\\\\ensuremath{\\\\mathit{R}}\",\n 119878: \"\\\\ensuremath{\\\\mathit{S}}\",\n 119879: \"\\\\ensuremath{\\\\mathit{T}}\",\n 119880: \"\\\\ensuremath{\\\\mathit{U}}\",\n 119881: \"\\\\ensuremath{\\\\mathit{V}}\",\n 119882: \"\\\\ensuremath{\\\\mathit{W}}\",\n 119883: \"\\\\ensuremath{\\\\mathit{X}}\",\n 119884: \"\\\\ensuremath{\\\\mathit{Y}}\",\n 119885: \"\\\\ensuremath{\\\\mathit{Z}}\",\n 119886: \"\\\\ensuremath{\\\\mathit{a}}\",\n 119887: \"\\\\ensuremath{\\\\mathit{b}}\",\n 119888: \"\\\\ensuremath{\\\\mathit{c}}\",\n 119889: \"\\\\ensuremath{\\\\mathit{d}}\",\n 119890: \"\\\\ensuremath{\\\\mathit{e}}\",\n 119891: \"\\\\ensuremath{\\\\mathit{f}}\",\n 119892: \"\\\\ensuremath{\\\\mathit{g}}\",\n 119893: \"\\\\ensuremath{\\\\mathit{h}}\",\n 119894: \"\\\\ensuremath{\\\\mathit{i}}\",\n 119895: \"\\\\ensuremath{\\\\mathit{j}}\",\n 119896: \"\\\\ensuremath{\\\\mathit{k}}\",\n 119897: \"\\\\ensuremath{\\\\mathit{l}}\",\n 119898: \"\\\\ensuremath{\\\\mathit{m}}\",\n 119899: \"\\\\ensuremath{\\\\mathit{n}}\",\n 119900: \"\\\\ensuremath{\\\\mathit{o}}\",\n 119901: \"\\\\ensuremath{\\\\mathit{p}}\",\n 119902: \"\\\\ensuremath{\\\\mathit{q}}\",\n 119903: \"\\\\ensuremath{\\\\mathit{r}}\",\n 119904: \"\\\\ensuremath{\\\\mathit{s}}\",\n 119905: \"\\\\ensuremath{\\\\mathit{t}}\",\n 119906: \"\\\\ensuremath{\\\\mathit{u}}\",\n 119907: \"\\\\ensuremath{\\\\mathit{v}}\",\n 119908: \"\\\\ensuremath{\\\\mathit{w}}\",\n 119909: \"\\\\ensuremath{\\\\mathit{x}}\",\n 119910: \"\\\\ensuremath{\\\\mathit{y}}\",\n 119911: \"\\\\ensuremath{\\\\mathit{z}}\",\n 119912: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{A}}}\",\n 119913: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{B}}}\",\n 119914: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{C}}}\",\n 119915: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{D}}}\",\n 119916: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{E}}}\",\n 119917: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{F}}}\",\n 119918: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{G}}}\",\n 119919: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{H}}}\",\n 119920: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{I}}}\",\n 119921: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{J}}}\",\n 119922: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{K}}}\",\n 119923: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{L}}}\",\n 119924: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{M}}}\",\n 119925: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{N}}}\",\n 119926: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{O}}}\",\n 119927: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{P}}}\",\n 119928: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{Q}}}\",\n 119929: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{R}}}\",\n 119930: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{S}}}\",\n 119931: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{T}}}\",\n 119932: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{U}}}\",\n 119933: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{V}}}\",\n 119934: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{W}}}\",\n 119935: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{X}}}\",\n 119936: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{Y}}}\",\n 119937: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{Z}}}\",\n 119938: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{a}}}\",\n 119939: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{b}}}\",\n 119940: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{c}}}\",\n 119941: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{d}}}\",\n 119942: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{e}}}\",\n 119943: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{f}}}\",\n 119944: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{g}}}\",\n 119945: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{h}}}\",\n 119946: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{i}}}\",\n 119947: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{j}}}\",\n 119948: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{k}}}\",\n 119949: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{l}}}\",\n 119950: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{m}}}\",\n 119951: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{n}}}\",\n 119952: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{o}}}\",\n 119953: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{p}}}\",\n 119954: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{q}}}\",\n 119955: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{r}}}\",\n 119956: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{s}}}\",\n 119957: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{t}}}\",\n 119958: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{u}}}\",\n 119959: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{v}}}\",\n 119960: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{w}}}\",\n 119961: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{x}}}\",\n 119962: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{y}}}\",\n 119963: \"\\\\ensuremath{\\\\boldsymbol{\\\\mathit{z}}}\",\n 119964: \"\\\\ensuremath{\\\\mathscr{A}}\",\n 119965: \"\\\\ensuremath{\\\\mathscr{B}}\",\n 119966: \"\\\\ensuremath{\\\\mathscr{C}}\",\n 119967: \"\\\\ensuremath{\\\\mathscr{D}}\",\n 119968: \"\\\\ensuremath{\\\\mathscr{E}}\",\n 119969: \"\\\\ensuremath{\\\\mathscr{F}}\",\n 119970: \"\\\\ensuremath{\\\\mathscr{G}}\",\n 119971: \"\\\\ensuremath{\\\\mathscr{H}}\",\n 119972: \"\\\\ensuremath{\\\\mathscr{I}}\",\n 119973: \"\\\\ensuremath{\\\\mathscr{J}}\",\n 119974: \"\\\\ensuremath{\\\\mathscr{K}}\",\n 119975: \"\\\\ensuremath{\\\\mathscr{L}}\",\n 119976: \"\\\\ensuremath{\\\\mathscr{M}}\",\n 119977: \"\\\\ensuremath{\\\\mathscr{N}}\",\n 119978: \"\\\\ensuremath{\\\\mathscr{O}}\",\n 119979: \"\\\\ensuremath{\\\\mathscr{P}}\",\n 119980: \"\\\\ensuremath{\\\\mathscr{Q}}\",\n 119981: \"\\\\ensuremath{\\\\mathscr{R}}\",\n 119982: \"\\\\ensuremath{\\\\mathscr{S}}\",\n 119983: \"\\\\ensuremath{\\\\mathscr{T}}\",\n 119984: \"\\\\ensuremath{\\\\mathscr{U}}\",\n 119985: \"\\\\ensuremath{\\\\mathscr{V}}\",\n 119986: \"\\\\ensuremath{\\\\mathscr{W}}\",\n 119987: \"\\\\ensuremath{\\\\mathscr{X}}\",\n 119988: \"\\\\ensuremath{\\\\mathscr{Y}}\",\n 119989: \"\\\\ensuremath{\\\\mathscr{Z}}\",\n 119990: \"\\\\ensuremath{\\\\mathscr{a}}\",\n 119991: \"\\\\ensuremath{\\\\mathscr{b}}\",\n 119992: \"\\\\ensuremath{\\\\mathscr{c}}\",\n 119993: \"\\\\ensuremath{\\\\mathscr{d}}\",\n 119995: \"\\\\ensuremath{\\\\mathscr{f}}\",\n 119997: \"\\\\ensuremath{\\\\mathscr{h}}\",\n 119998: \"\\\\ensuremath{\\\\mathscr{i}}\",\n 119999: \"\\\\ensuremath{\\\\mathscr{j}}\",\n 120000: \"\\\\ensuremath{\\\\mathscr{k}}\",\n 120001: \"\\\\ensuremath{\\\\mathscr{l}}\",\n 120002: \"\\\\ensuremath{\\\\mathscr{m}}\",\n 120003: \"\\\\ensuremath{\\\\mathscr{n}}\",\n 120005: \"\\\\ensuremath{\\\\mathscr{p}}\",\n 120006: \"\\\\ensuremath{\\\\mathscr{q}}\",\n 120007: \"\\\\ensuremath{\\\\mathscr{r}}\",\n 120008: \"\\\\ensuremath{\\\\mathscr{s}}\",\n 120009: \"\\\\ensuremath{\\\\mathscr{t}}\",\n 120010: \"\\\\ensuremath{\\\\mathscr{u}}\",\n 120011: \"\\\\ensuremath{\\\\mathscr{v}}\",\n 120012: \"\\\\ensuremath{\\\\mathscr{w}}\",\n 120013: \"\\\\ensuremath{\\\\mathscr{x}}\",\n 120014: \"\\\\ensuremath{\\\\mathscr{y}}\",\n 120015: \"\\\\ensuremath{\\\\mathscr{z}}\",\n 120068: \"\\\\ensuremath{\\\\mathfrak{A}}\",\n 120069: \"\\\\ensuremath{\\\\mathfrak{B}}\",\n 120070: \"\\\\ensuremath{\\\\mathfrak{C}}\",\n 120071: \"\\\\ensuremath{\\\\mathfrak{D}}\",\n 120072: \"\\\\ensuremath{\\\\mathfrak{E}}\",\n 120073: \"\\\\ensuremath{\\\\mathfrak{F}}\",\n 120074: \"\\\\ensuremath{\\\\mathfrak{G}}\",\n 120075: \"\\\\ensuremath{\\\\mathfrak{H}}\",\n 120076: \"\\\\ensuremath{\\\\mathfrak{I}}\",\n 120077: \"\\\\ensuremath{\\\\mathfrak{J}}\",\n 120078: \"\\\\ensuremath{\\\\mathfrak{K}}\",\n 120079: \"\\\\ensuremath{\\\\mathfrak{L}}\",\n 120080: \"\\\\ensuremath{\\\\mathfrak{M}}\",\n 120081: \"\\\\ensuremath{\\\\mathfrak{N}}\",\n 120082: \"\\\\ensuremath{\\\\mathfrak{O}}\",\n 120083: \"\\\\ensuremath{\\\\mathfrak{P}}\",\n 120084: \"\\\\ensuremath{\\\\mathfrak{Q}}\",\n 120085: \"\\\\ensuremath{\\\\mathfrak{R}}\",\n 120086: \"\\\\ensuremath{\\\\mathfrak{S}}\",\n 120087: \"\\\\ensuremath{\\\\mathfrak{T}}\",\n 120088: \"\\\\ensuremath{\\\\mathfrak{U}}\",\n 120089: \"\\\\ensuremath{\\\\mathfrak{V}}\",\n 120090: \"\\\\ensuremath{\\\\mathfrak{W}}\",\n 120091: \"\\\\ensuremath{\\\\mathfrak{X}}\",\n 120092: \"\\\\ensuremath{\\\\mathfrak{Y}}\",\n 120093: \"\\\\ensuremath{\\\\mathfrak{Z}}\",\n 120094: \"\\\\ensuremath{\\\\mathfrak{a}}\",\n 120095: \"\\\\ensuremath{\\\\mathfrak{b}}\",\n 120096: \"\\\\ensuremath{\\\\mathfrak{c}}\",\n 120097: \"\\\\ensuremath{\\\\mathfrak{d}}\",\n 120098: \"\\\\ensuremath{\\\\mathfrak{e}}\",\n 120099: \"\\\\ensuremath{\\\\mathfrak{f}}\",\n 120100: \"\\\\ensuremath{\\\\mathfrak{g}}\",\n 120101: \"\\\\ensuremath{\\\\mathfrak{h}}\",\n 120102: \"\\\\ensuremath{\\\\mathfrak{i}}\",\n 120103: \"\\\\ensuremath{\\\\mathfrak{j}}\",\n 120104: \"\\\\ensuremath{\\\\mathfrak{k}}\",\n 120105: \"\\\\ensuremath{\\\\mathfrak{l}}\",\n 120106: \"\\\\ensuremath{\\\\mathfrak{m}}\",\n 120107: \"\\\\ensuremath{\\\\mathfrak{n}}\",\n 120108: \"\\\\ensuremath{\\\\mathfrak{o}}\",\n 120109: \"\\\\ensuremath{\\\\mathfrak{p}}\",\n 120110: \"\\\\ensuremath{\\\\mathfrak{q}}\",\n 120111: \"\\\\ensuremath{\\\\mathfrak{r}}\",\n 120112: \"\\\\ensuremath{\\\\mathfrak{s}}\",\n 120113: \"\\\\ensuremath{\\\\mathfrak{t}}\",\n 120114: \"\\\\ensuremath{\\\\mathfrak{u}}\",\n 120115: \"\\\\ensuremath{\\\\mathfrak{v}}\",\n 120116: \"\\\\ensuremath{\\\\mathfrak{w}}\",\n 120117: \"\\\\ensuremath{\\\\mathfrak{x}}\",\n 120118: \"\\\\ensuremath{\\\\mathfrak{y}}\",\n 120119: \"\\\\ensuremath{\\\\mathfrak{z}}\",\n 120120: \"\\\\ensuremath{\\\\mathbb{A}}\",\n 120121: \"\\\\ensuremath{\\\\mathbb{B}}\",\n 120122: \"\\\\ensuremath{\\\\mathbb{C}}\",\n 120123: \"\\\\ensuremath{\\\\mathbb{D}}\",\n 120124: \"\\\\ensuremath{\\\\mathbb{E}}\",\n 120125: \"\\\\ensuremath{\\\\mathbb{F}}\",\n 120126: \"\\\\ensuremath{\\\\mathbb{G}}\",\n 120127: \"\\\\ensuremath{\\\\mathbb{H}}\",\n 120128: \"\\\\ensuremath{\\\\mathbb{I}}\",\n 120129: \"\\\\ensuremath{\\\\mathbb{J}}\",\n 120130: \"\\\\ensuremath{\\\\mathbb{K}}\",\n 120131: \"\\\\ensuremath{\\\\mathbb{L}}\",\n 120132: \"\\\\ensuremath{\\\\mathbb{M}}\",\n 120133: \"\\\\ensuremath{\\\\mathbb{N}}\",\n 120134: \"\\\\ensuremath{\\\\mathbb{O}}\",\n 120135: \"\\\\ensuremath{\\\\mathbb{P}}\",\n 120136: \"\\\\ensuremath{\\\\mathbb{Q}}\",\n 120137: \"\\\\ensuremath{\\\\mathbb{R}}\",\n 120138: \"\\\\ensuremath{\\\\mathbb{S}}\",\n 120139: \"\\\\ensuremath{\\\\mathbb{T}}\",\n 120140: \"\\\\ensuremath{\\\\mathbb{U}}\",\n 120141: \"\\\\ensuremath{\\\\mathbb{V}}\",\n 120142: \"\\\\ensuremath{\\\\mathbb{W}}\",\n 120143: \"\\\\ensuremath{\\\\mathbb{X}}\",\n 120144: \"\\\\ensuremath{\\\\mathbb{Y}}\",\n 120145: \"\\\\ensuremath{\\\\mathbb{Z}}\",\n 120146: \"\\\\ensuremath{\\\\mathbb{a}}\",\n 120147: \"\\\\ensuremath{\\\\mathbb{b}}\",\n 120148: \"\\\\ensuremath{\\\\mathbb{c}}\",\n 120149: \"\\\\ensuremath{\\\\mathbb{d}}\",\n 120150: \"\\\\ensuremath{\\\\mathbb{e}}\",\n 120151: \"\\\\ensuremath{\\\\mathbb{f}}\",\n 120152: \"\\\\ensuremath{\\\\mathbb{g}}\",\n 120153: \"\\\\ensuremath{\\\\mathbb{h}}\",\n 120154: \"\\\\ensuremath{\\\\mathbb{i}}\",\n 120155: \"\\\\ensuremath{\\\\mathbb{j}}\",\n 120156: \"\\\\ensuremath{\\\\mathbb{k}}\",\n 120157: \"\\\\ensuremath{\\\\mathbb{l}}\",\n 120158: \"\\\\ensuremath{\\\\mathbb{m}}\",\n 120159: \"\\\\ensuremath{\\\\mathbb{n}}\",\n 120160: \"\\\\ensuremath{\\\\mathbb{o}}\",\n 120161: \"\\\\ensuremath{\\\\mathbb{p}}\",\n 120162: \"\\\\ensuremath{\\\\mathbb{q}}\",\n 120163: \"\\\\ensuremath{\\\\mathbb{r}}\",\n 120164: \"\\\\ensuremath{\\\\mathbb{s}}\",\n 120165: \"\\\\ensuremath{\\\\mathbb{t}}\",\n 120166: \"\\\\ensuremath{\\\\mathbb{u}}\",\n 120167: \"\\\\ensuremath{\\\\mathbb{v}}\",\n 120168: \"\\\\ensuremath{\\\\mathbb{w}}\",\n 120169: \"\\\\ensuremath{\\\\mathbb{x}}\",\n 120170: \"\\\\ensuremath{\\\\mathbb{y}}\",\n 120171: \"\\\\ensuremath{\\\\mathbb{z}}\",\n 120224: \"\\\\ensuremath{\\\\mathsf{A}}\",\n 120225: \"\\\\ensuremath{\\\\mathsf{B}}\",\n 120226: \"\\\\ensuremath{\\\\mathsf{C}}\",\n 120227: \"\\\\ensuremath{\\\\mathsf{D}}\",\n 120228: \"\\\\ensuremath{\\\\mathsf{E}}\",\n 120229: \"\\\\ensuremath{\\\\mathsf{F}}\",\n 120230: \"\\\\ensuremath{\\\\mathsf{G}}\",\n 120231: \"\\\\ensuremath{\\\\mathsf{H}}\",\n 120232: \"\\\\ensuremath{\\\\mathsf{I}}\",\n 120233: \"\\\\ensuremath{\\\\mathsf{J}}\",\n 120234: \"\\\\ensuremath{\\\\mathsf{K}}\",\n 120235: \"\\\\ensuremath{\\\\mathsf{L}}\",\n 120236: \"\\\\ensuremath{\\\\mathsf{M}}\",\n 120237: \"\\\\ensuremath{\\\\mathsf{N}}\",\n 120238: \"\\\\ensuremath{\\\\mathsf{O}}\",\n 120239: \"\\\\ensuremath{\\\\mathsf{P}}\",\n 120240: \"\\\\ensuremath{\\\\mathsf{Q}}\",\n 120241: \"\\\\ensuremath{\\\\mathsf{R}}\",\n 120242: \"\\\\ensuremath{\\\\mathsf{S}}\",\n 120243: \"\\\\ensuremath{\\\\mathsf{T}}\",\n 120244: \"\\\\ensuremath{\\\\mathsf{U}}\",\n 120245: \"\\\\ensuremath{\\\\mathsf{V}}\",\n 120246: \"\\\\ensuremath{\\\\mathsf{W}}\",\n 120247: \"\\\\ensuremath{\\\\mathsf{X}}\",\n 120248: \"\\\\ensuremath{\\\\mathsf{Y}}\",\n 120249: \"\\\\ensuremath{\\\\mathsf{Z}}\",\n 120250: \"\\\\ensuremath{\\\\mathsf{a}}\",\n 120251: \"\\\\ensuremath{\\\\mathsf{b}}\",\n 120252: \"\\\\ensuremath{\\\\mathsf{c}}\",\n 120253: \"\\\\ensuremath{\\\\mathsf{d}}\",\n 120254: \"\\\\ensuremath{\\\\mathsf{e}}\",\n 120255: \"\\\\ensuremath{\\\\mathsf{f}}\",\n 120256: \"\\\\ensuremath{\\\\mathsf{g}}\",\n 120257: \"\\\\ensuremath{\\\\mathsf{h}}\",\n 120258: \"\\\\ensuremath{\\\\mathsf{i}}\",\n 120259: \"\\\\ensuremath{\\\\mathsf{j}}\",\n 120260: \"\\\\ensuremath{\\\\mathsf{k}}\",\n 120261: \"\\\\ensuremath{\\\\mathsf{l}}\",\n 120262: \"\\\\ensuremath{\\\\mathsf{m}}\",\n 120263: \"\\\\ensuremath{\\\\mathsf{n}}\",\n 120264: \"\\\\ensuremath{\\\\mathsf{o}}\",\n 120265: \"\\\\ensuremath{\\\\mathsf{p}}\",\n 120266: \"\\\\ensuremath{\\\\mathsf{q}}\",\n 120267: \"\\\\ensuremath{\\\\mathsf{r}}\",\n 120268: \"\\\\ensuremath{\\\\mathsf{s}}\",\n 120269: \"\\\\ensuremath{\\\\mathsf{t}}\",\n 120270: \"\\\\ensuremath{\\\\mathsf{u}}\",\n 120271: \"\\\\ensuremath{\\\\mathsf{v}}\",\n 120272: \"\\\\ensuremath{\\\\mathsf{w}}\",\n 120273: \"\\\\ensuremath{\\\\mathsf{x}}\",\n 120274: \"\\\\ensuremath{\\\\mathsf{y}}\",\n 120275: \"\\\\ensuremath{\\\\mathsf{z}}\",\n 120432: \"\\\\ensuremath{\\\\mathtt{A}}\",\n 120433: \"\\\\ensuremath{\\\\mathtt{B}}\",\n 120434: \"\\\\ensuremath{\\\\mathtt{C}}\",\n 120435: \"\\\\ensuremath{\\\\mathtt{D}}\",\n 120436: \"\\\\ensuremath{\\\\mathtt{E}}\",\n 120437: \"\\\\ensuremath{\\\\mathtt{F}}\",\n 120438: \"\\\\ensuremath{\\\\mathtt{G}}\",\n 120439: \"\\\\ensuremath{\\\\mathtt{H}}\",\n 120440: \"\\\\ensuremath{\\\\mathtt{I}}\",\n 120441: \"\\\\ensuremath{\\\\mathtt{J}}\",\n 120442: \"\\\\ensuremath{\\\\mathtt{K}}\",\n 120443: \"\\\\ensuremath{\\\\mathtt{L}}\",\n 120444: \"\\\\ensuremath{\\\\mathtt{M}}\",\n 120445: \"\\\\ensuremath{\\\\mathtt{N}}\",\n 120446: \"\\\\ensuremath{\\\\mathtt{O}}\",\n 120447: \"\\\\ensuremath{\\\\mathtt{P}}\",\n 120448: \"\\\\ensuremath{\\\\mathtt{Q}}\",\n 120449: \"\\\\ensuremath{\\\\mathtt{R}}\",\n 120450: \"\\\\ensuremath{\\\\mathtt{S}}\",\n 120451: \"\\\\ensuremath{\\\\mathtt{T}}\",\n 120452: \"\\\\ensuremath{\\\\mathtt{U}}\",\n 120453: \"\\\\ensuremath{\\\\mathtt{V}}\",\n 120454: \"\\\\ensuremath{\\\\mathtt{W}}\",\n 120455: \"\\\\ensuremath{\\\\mathtt{X}}\",\n 120456: \"\\\\ensuremath{\\\\mathtt{Y}}\",\n 120457: \"\\\\ensuremath{\\\\mathtt{Z}}\",\n 120458: \"\\\\ensuremath{\\\\mathtt{a}}\",\n 120459: \"\\\\ensuremath{\\\\mathtt{b}}\",\n 120460: \"\\\\ensuremath{\\\\mathtt{c}}\",\n 120461: \"\\\\ensuremath{\\\\mathtt{d}}\",\n 120462: \"\\\\ensuremath{\\\\mathtt{e}}\",\n 120463: \"\\\\ensuremath{\\\\mathtt{f}}\",\n 120464: \"\\\\ensuremath{\\\\mathtt{g}}\",\n 120465: \"\\\\ensuremath{\\\\mathtt{h}}\",\n 120466: \"\\\\ensuremath{\\\\mathtt{i}}\",\n 120467: \"\\\\ensuremath{\\\\mathtt{j}}\",\n 120468: \"\\\\ensuremath{\\\\mathtt{k}}\",\n 120469: \"\\\\ensuremath{\\\\mathtt{l}}\",\n 120470: \"\\\\ensuremath{\\\\mathtt{m}}\",\n 120471: \"\\\\ensuremath{\\\\mathtt{n}}\",\n 120472: \"\\\\ensuremath{\\\\mathtt{o}}\",\n 120473: \"\\\\ensuremath{\\\\mathtt{p}}\",\n 120474: \"\\\\ensuremath{\\\\mathtt{q}}\",\n 120475: \"\\\\ensuremath{\\\\mathtt{r}}\",\n 120476: \"\\\\ensuremath{\\\\mathtt{s}}\",\n 120477: \"\\\\ensuremath{\\\\mathtt{t}}\",\n 120478: \"\\\\ensuremath{\\\\mathtt{u}}\",\n 120479: \"\\\\ensuremath{\\\\mathtt{v}}\",\n 120480: \"\\\\ensuremath{\\\\mathtt{w}}\",\n 120481: \"\\\\ensuremath{\\\\mathtt{x}}\",\n 120482: \"\\\\ensuremath{\\\\mathtt{y}}\",\n 120483: \"\\\\ensuremath{\\\\mathtt{z}}\",\n 120782: \"\\\\ensuremath{\\\\mathbf{0}}\",\n 120783: \"\\\\ensuremath{\\\\mathbf{1}}\",\n 120784: \"\\\\ensuremath{\\\\mathbf{2}}\",\n 120785: \"\\\\ensuremath{\\\\mathbf{3}}\",\n 120786: \"\\\\ensuremath{\\\\mathbf{4}}\",\n 120787: \"\\\\ensuremath{\\\\mathbf{5}}\",\n 120788: \"\\\\ensuremath{\\\\mathbf{6}}\",\n 120789: \"\\\\ensuremath{\\\\mathbf{7}}\",\n 120790: \"\\\\ensuremath{\\\\mathbf{8}}\",\n 120791: \"\\\\ensuremath{\\\\mathbf{9}}\",\n 120792: \"\\\\ensuremath{\\\\mathbb{0}}\",\n 120793: \"\\\\ensuremath{\\\\mathbb{1}}\",\n 120794: \"\\\\ensuremath{\\\\mathbb{2}}\",\n 120795: \"\\\\ensuremath{\\\\mathbb{3}}\",\n 120796: \"\\\\ensuremath{\\\\mathbb{4}}\",\n 120797: \"\\\\ensuremath{\\\\mathbb{5}}\",\n 120798: \"\\\\ensuremath{\\\\mathbb{6}}\",\n 120799: \"\\\\ensuremath{\\\\mathbb{7}}\",\n 120800: \"\\\\ensuremath{\\\\mathbb{8}}\",\n 120801: \"\\\\ensuremath{\\\\mathbb{9}}\",\n 120802: \"\\\\ensuremath{\\\\mathsf{0}}\",\n 120803: \"\\\\ensuremath{\\\\mathsf{1}}\",\n 120804: \"\\\\ensuremath{\\\\mathsf{2}}\",\n 120805: \"\\\\ensuremath{\\\\mathsf{3}}\",\n 120806: \"\\\\ensuremath{\\\\mathsf{4}}\",\n 120807: \"\\\\ensuremath{\\\\mathsf{5}}\",\n 120808: \"\\\\ensuremath{\\\\mathsf{6}}\",\n 120809: \"\\\\ensuremath{\\\\mathsf{7}}\",\n 120810: \"\\\\ensuremath{\\\\mathsf{8}}\",\n 120811: \"\\\\ensuremath{\\\\mathsf{9}}\",\n 120822: \"\\\\ensuremath{\\\\mathtt{0}}\",\n 120823: \"\\\\ensuremath{\\\\mathtt{1}}\",\n 120824: \"\\\\ensuremath{\\\\mathtt{2}}\",\n 120825: \"\\\\ensuremath{\\\\mathtt{3}}\",\n 120826: \"\\\\ensuremath{\\\\mathtt{4}}\",\n 120827: \"\\\\ensuremath{\\\\mathtt{5}}\",\n 120828: \"\\\\ensuremath{\\\\mathtt{6}}\",\n 120829: \"\\\\ensuremath{\\\\mathtt{7}}\",\n 120830: \"\\\\ensuremath{\\\\mathtt{8}}\",\n 120831: \"\\\\ensuremath{\\\\mathtt{9}}\",\n};\n","/**\n * Unicode -> LaTeX encoder.\n *\n * Internalized port of pylatexenc 2.x `latexencode.UnicodeToLatexEncoder`\n * (MIT, (c) Philippe Faist), restricted to the configuration dwml uses:\n * replacement_latex_protection = 'braces-all'\n * unknown_char_policy = 'keep'\n * unknown_char_warning = false\n * non_ascii_only = false\n * conversion_rules = ['defaults']\n *\n * The `braces-all` scheme wraps every rule replacement in curly braces.\n * Unknown characters (no mapping) are kept verbatim.\n */\n\nimport { UNI2LATEX } from './uni2latex.generated';\n\n/**\n * Convert a unicode string to a LaTeX snippet using the default\n * uni2latex map with `braces-all` protection, NFC normalization, and\n * `keep` policy for unknown characters.\n *\n * Iteration is by Unicode code point (matching Python's str indexing),\n * so astral-plane characters (e.g. Mathematical Alphanumeric Symbols\n * U+1D400–U+1D7FF) are treated as single characters.\n */\nexport function unicodeToLatex(input: string): string {\n const s = String(input).normalize('NFC');\n let out = '';\n for (const ch of s) {\n const cp = ch.codePointAt(0)!;\n const repl = UNI2LATEX[cp];\n if (repl !== undefined) {\n out += '{' + repl + '}'; // braces-all protection\n } else if ((cp >= 32 && cp <= 127) || ch === '\\n' || ch === '\\r' || ch === '\\t') {\n out += ch;\n } else {\n out += ch; // unknown_char_policy = 'keep'\n }\n }\n return out;\n}\n","/**\n * LaTeX symbol dictionaries for OMML to LaTeX conversion.\n *\n * References:\n * - http://web.ift.uib.no/Teori/KURS/WRK/TeX/symALL.html\n * - http://en.wikibooks.org/wiki/LaTeX/Mathematics\n * - http://www.ctan.org/tex-archive/macros/latex/contrib/unicode-math\n * - https://github.com/wspr/unicode-math/blob/master/unicode-math-table.tex\n * - https://github.com/transpect/mml2tex (texmap.xml, function-names.xsl)\n */\n\nexport const CHARS: readonly string[] = ['{', '}', '_', '^', '#', '&', '$', '%', '~'];\n\nexport const BLANK = '';\nexport const BACKSLASH = '\\\\';\nexport const ALN = '&';\n\n/** Unicode combining accents -> LaTeX accent commands */\nexport const CHR: Record<string, string> = {\n // Top accents\n '̀': '\\\\grave{{{0}}}',\n '́': '\\\\acute{{{0}}}',\n '̂': '\\\\hat{{{0}}}',\n '̃': '\\\\tilde{{{0}}}',\n '̄': '\\\\bar{{{0}}}',\n '̅': '\\\\overbar{{{0}}}',\n '̆': '\\\\breve{{{0}}}',\n '̇': '\\\\dot{{{0}}}',\n '̈': '\\\\ddot{{{0}}}',\n '̉': '\\\\ovhook{{{0}}}',\n '̊': '\\\\ocirc{{{0}}}}',\n '̌': '\\\\check{{{0}}}}',\n '̐': '\\\\candra{{{0}}}',\n '̒': '\\\\oturnedcomma{{{0}}}',\n '̕': '\\\\ocommatopright{{{0}}}',\n '̚': '\\\\droang{{{0}}}',\n '̸': '\\\\not{{{0}}}',\n '⃝': '\\\\enclosecircle{{{0}}}',\n '⃞': '\\\\enclosesquare{{{0}}}',\n '⃟': '\\\\enclosediamond{{{0}}}',\n '⃤': '\\\\enclosetriangle{{{0}}}',\n '⃐': '\\\\leftharpoonup{{{0}}}',\n '⃑': '\\\\rightharpoonup{{{0}}}',\n '⃒': '\\\\vertoverlay{{{0}}}',\n '⃖': '\\\\LVec{{{0}}}',\n '⃗': '\\\\vec{{{0}}}',\n '⃛': '\\\\dddot{{{0}}}',\n '⃜': '\\\\ddddot{{{0}}}',\n '⃡': '\\\\overleftrightarrow{{{0}}}',\n '⃧': '\\\\annuity{{{0}}}',\n '⃩': '\\\\widebridgeabove{{{0}}}',\n '⃰': '\\\\asteraccent{{{0}}}',\n // Bottom accents\n '̰': '\\\\wideutilde{{{0}}}',\n '̱': '\\\\underbar{{{0}}}',\n '⃨': '\\\\threeunderdot{{{0}}}',\n '⃬': '\\\\underrightharpoondown{{{0}}}',\n '⃭': '\\\\underleftharpoondown{{{0}}}',\n '⃮': '\\\\underleftarrow{{{0}}}',\n '⃯': '\\\\underrightarrow{{{0}}}',\n // Over | group\n '⎴': '\\\\overbracket{{{0}}}',\n '⏜': '\\\\overparen{{{0}}}',\n '⏞': '\\\\overbrace{{{0}}}',\n // Under | group\n '⎵': '\\\\underbracket{{{0}}}',\n '⏝': '\\\\underparen{{{0}}}',\n '⏟': '\\\\underbrace{{{0}}}',\n};\n\n/** Big operators */\nexport const CHR_BO: Record<string, string> = {\n '⅀': '\\\\Bbbsum',\n '∏': '\\\\prod',\n '∐': '\\\\coprod',\n '∑': '\\\\sum',\n '∫': '\\\\int',\n '∬': '\\\\iint',\n '∭': '\\\\iiint',\n '⨌': '\\\\iiiint',\n '∮': '\\\\oint',\n '∯': '\\\\oiint',\n '∰': '\\\\oiiint',\n '⨍': '\\\\fint',\n '⨖': '\\\\sqint',\n '⋀': '\\\\bigwedge',\n '⋁': '\\\\bigvee',\n '⋂': '\\\\bigcap',\n '⋃': '\\\\bigcup',\n '⨀': '\\\\bigodot',\n '⨁': '\\\\bigoplus',\n '⨂': '\\\\bigotimes',\n '⨄': '\\\\biguplus',\n '⨅': '\\\\bigsqcap',\n '⨆': '\\\\bigsqcup',\n '⨉': '\\\\varprod',\n};\n\n/** Unicode math symbols -> LaTeX */\nexport const T: Record<string, string> = {\n '→': '\\\\rightarrow ',\n // Greek letters (bold italic math, U+1D6FC..)\n '𝛼': '\\\\alpha ',\n '𝛽': '\\\\beta ',\n '𝛾': '\\\\gamma ',\n '𝛿': '\\\\delta ',\n '𝜀': '\\\\epsilon ',\n '𝜁': '\\\\zeta ',\n '𝜂': '\\\\eta ',\n '𝜃': '\\\\theta ',\n '𝜄': '\\\\iota ',\n '𝜅': '\\\\kappa ',\n '𝜆': '\\\\lambda ',\n '𝜇': '\\\\mu ',\n '𝜈': '\\\\nu ',\n '𝜉': '\\\\xi ',\n '𝜊': '\\\\omicron ',\n '𝜋': '\\\\pi ',\n '𝜌': '\\\\rho ',\n '𝜍': '\\\\varsigma ',\n '𝜎': '\\\\sigma ',\n '𝜏': '\\\\tau ',\n '𝜐': '\\\\upsilon ',\n '𝜑': '\\\\phi ',\n '𝜒': '\\\\chi ',\n '𝜓': '\\\\psi ',\n '𝜔': '\\\\omega ',\n '𝜕': '\\\\partial ',\n '𝜖': '\\\\varepsilon ',\n '𝜗': '\\\\vartheta ',\n '𝜘': '\\\\varkappa ',\n '𝜙': '\\\\varphi ',\n '𝜚': '\\\\varrho ',\n '𝜛': '\\\\varpi ',\n // Relation symbols\n '←': '\\\\leftarrow ',\n '↑': '\\\\uparrow ',\n '↓': '\\\\downarrow ',\n '↔': '\\\\leftrightarrow ',\n '↕': '\\\\updownarrow ',\n '↖': '\\\\nwarrow ',\n '↗': '\\\\nearrow ',\n '↘': '\\\\searrow ',\n '↙': '\\\\swarrow ',\n '⋮': '\\\\vdots ',\n '⋯': '\\\\cdots ',\n '⋰': '\\\\adots ',\n '⋱': '\\\\ddots ',\n '⇐': '\\\\Leftarrow ',\n '⇒': '\\\\Rightarrow ',\n '⇔': '\\\\Leftrightarrow ',\n '⇑': '\\\\Uparrow ',\n '⇓': '\\\\Downarrow ',\n '⇕': '\\\\Updownarrow ',\n '↦': '\\\\mapsto ',\n // Delimiter symbols (used by doD for begChr/endChr)\n '⟨': '\\\\langle ',\n '⟩': '\\\\rangle ',\n '⌈': '\\\\lceil ',\n '⌉': '\\\\rceil ',\n '⌊': '\\\\lfloor ',\n '⌋': '\\\\rfloor ',\n '‖': '\\\\Vert ',\n '∥': '\\\\parallel ',\n '≠': '\\\\ne ',\n '≤': '\\\\leq ',\n '≥': '\\\\geq ',\n '≦': '\\\\leqq ',\n '≧': '\\\\geqq ',\n '≨': '\\\\lneqq ',\n '≩': '\\\\gneqq ',\n '≪': '\\\\ll ',\n '≫': '\\\\gg ',\n '∈': '\\\\in ',\n '∉': '\\\\notin ',\n '∋': '\\\\ni ',\n '∌': '\\\\nni ',\n // Ordinary symbols\n '∞': '\\\\infty ',\n // Binary relations / operators\n '±': '\\\\pm ',\n '∓': '\\\\mp ',\n '·': '\\\\cdot ',\n '⋅': '\\\\cdot ',\n '×': '\\\\times ',\n '÷': '\\\\div ',\n '∗': '\\\\ast ',\n '∘': '\\\\circ ',\n '∙': '\\\\bullet ',\n '−': '-',\n '<': '<',\n '>': '>',\n '=': '=',\n '≈': '\\\\approx ',\n '≡': '\\\\equiv ',\n '≅': '\\\\cong ',\n '∼': '\\\\sim ',\n '≃': '\\\\simeq ',\n '≐': '\\\\doteq ',\n '∝': '\\\\propto ',\n '∴': '\\\\therefore ',\n '∵': '\\\\because ',\n '∀': '\\\\forall ',\n '∃': '\\\\exists ',\n '∄': '\\\\nexists ',\n '∅': '\\\\emptyset ',\n '∇': '\\\\nabla ',\n '∧': '\\\\wedge ',\n '∨': '\\\\vee ',\n '¬': '\\\\neg ',\n '∩': '\\\\cap ',\n '∪': '\\\\cup ',\n '⊂': '\\\\subset ',\n '⊃': '\\\\supset ',\n '⊆': '\\\\subseteq ',\n '⊇': '\\\\supseteq ',\n '⊕': '\\\\oplus ',\n '⊗': '\\\\otimes ',\n '⊥': '\\\\perp ',\n '°': '\\\\degree ',\n '′': '\\\\prime ',\n '″': '\\\\prime\\\\prime ',\n '…': '\\\\ldots ',\n // Greek letters (plain, U+03B1..) — for run text\n 'α': '\\\\alpha ',\n 'β': '\\\\beta ',\n 'γ': '\\\\gamma ',\n 'δ': '\\\\delta ',\n 'ε': '\\\\epsilon ',\n 'ζ': '\\\\zeta ',\n 'η': '\\\\eta ',\n 'θ': '\\\\theta ',\n 'ι': '\\\\iota ',\n 'κ': '\\\\kappa ',\n 'λ': '\\\\lambda ',\n 'μ': '\\\\mu ',\n 'ν': '\\\\nu ',\n 'ξ': '\\\\xi ',\n 'ο': '\\\\omicron ',\n 'π': '\\\\pi ',\n 'ρ': '\\\\rho ',\n 'ς': '\\\\varsigma ',\n 'σ': '\\\\sigma ',\n 'τ': '\\\\tau ',\n 'υ': '\\\\upsilon ',\n 'φ': '\\\\phi ',\n 'χ': '\\\\chi ',\n 'ψ': '\\\\psi ',\n 'ω': '\\\\omega ',\n '∂': '\\\\partial ',\n 'ϵ': '\\\\epsilon ',\n 'ϑ': '\\\\vartheta ',\n 'ϰ': '\\\\varkappa ',\n 'ϕ': '\\\\phi ',\n 'ϱ': '\\\\varrho ',\n 'ϖ': '\\\\varpi ',\n // Italic, Latin, uppercase (U+1D434..)\n '𝐴': 'A',\n '𝐵': 'B',\n '𝐶': 'C',\n '𝐷': 'D',\n '𝐸': 'E',\n '𝐹': 'F',\n '𝐺': 'G',\n '𝐻': 'H',\n '𝐼': 'I',\n '𝐽': 'J',\n '𝐾': 'K',\n '𝐿': 'L',\n '𝑀': 'M',\n '𝑁': 'N',\n '𝑂': 'O',\n '𝑃': 'P',\n '𝑄': 'Q',\n '𝑅': 'R',\n '𝑆': 'S',\n '𝑇': 'T',\n '𝑈': 'U',\n '𝑉': 'V',\n '𝑊': 'W',\n '𝑋': 'X',\n '𝑌': 'Y',\n '𝑍': 'Z',\n // Italic, Latin, lowercase (U+1D44E..)\n '𝑎': 'a',\n '𝑏': 'b',\n '𝑐': 'c',\n '𝑑': 'd',\n '𝑒': 'e',\n '𝑓': 'f',\n '𝑔': 'g',\n '𝑖': 'i',\n '𝑗': 'j',\n '𝑘': 'k',\n '𝑙': 'l',\n '𝑚': 'm',\n '𝑛': 'n',\n '𝑜': 'o',\n '𝑝': 'p',\n '𝑞': 'q',\n '𝑟': 'r',\n '𝑠': 's',\n '𝑡': 't',\n '𝑢': 'u',\n '𝑣': 'v',\n '𝑤': 'w',\n '𝑥': 'x',\n '𝑦': 'y',\n '𝑧': 'z',\n '𝒉': 'h',\n // Greek letters, uppercase, bold italic (U+1D71C..)\n '𝛢': 'A',\n '𝛣': 'B',\n '𝛤': '\\\\Gamma ',\n '𝛥': '\\\\Delta ',\n '𝛦': 'E',\n '𝛧': 'Z',\n '𝛨': 'H',\n '𝛩': '\\\\Theta ',\n '𝛪': 'I',\n '𝛫': 'K',\n '𝛬': '\\\\Lambda ',\n '𝛭': 'M',\n '𝛮': 'N',\n '𝛯': '\\\\Xi ',\n '𝛰': 'O',\n '𝛱': '\\\\Pi ',\n '𝛲': 'P',\n '𝛴': '\\\\Sigma ',\n '𝛵': 'T',\n '𝛶': '\\\\Upsilon ',\n '𝛷': '\\\\Phi ',\n '𝛸': 'X',\n '𝛹': '\\\\Psi ',\n '𝛺': '\\\\Omega ',\n};\n\n/** Function names (sin, cos, ...) -> LaTeX templates */\nexport const FUNC: Record<string, string> = {\n sin: '\\\\sin({fe})',\n cos: '\\\\cos({fe})',\n tan: '\\\\tan({fe})',\n cot: '\\\\cot({fe})',\n sec: '\\\\sec({fe})',\n csc: '\\\\csc({fe})',\n arcsin: '\\\\arcsin({fe})',\n arccos: '\\\\arccos({fe})',\n arctan: '\\\\arctan({fe})',\n arccot: '\\\\arccot({fe})',\n arcsec: '\\\\arcsec({fe})',\n arccsc: '\\\\arccsc({fe})',\n sinh: '\\\\sinh({fe})',\n cosh: '\\\\cosh({fe})',\n tanh: '\\\\tanh({fe})',\n coth: '\\\\coth({fe})',\n sech: '\\\\sech({fe})',\n csch: '\\\\csch({fe})',\n arcsinh: '\\\\arcsinh({fe})',\n arccosh: '\\\\arccosh({fe})',\n arctanh: '\\\\arctanh({fe})',\n arccoth: '\\\\arccoth({fe})',\n arcsech: '\\\\arcsech({fe})',\n arccsch: '\\\\arccsch({fe})',\n log: '\\\\log{{fe}}',\n ln: '\\\\ln{{fe}}',\n lg: '\\\\lg{{fe}}',\n exp: '\\\\exp({fe})',\n arg: '\\\\arg({fe})',\n deg: '\\\\deg({fe})',\n det: '\\\\det({fe})',\n dim: '\\\\dim({fe})',\n gcd: '\\\\gcd({fe})',\n hom: '\\\\hom({fe})',\n ker: '\\\\ker({fe})',\n mod: '\\\\bmod({fe})',\n Pr: '\\\\Pr({fe})',\n};\n\nexport const FUNC_PLACE = '{fe}';\n\nexport const BRK = '\\\\\\\\';\n\nexport const CHR_DEFAULT: Record<string, string> = {\n ACC_VAL: '\\\\hat{{{0}}}',\n};\n\n/** Bar positions */\nexport const POS: Record<string, string> = {\n top: '\\\\overline{{{0}}}',\n bot: '\\\\underline{{{0}}}',\n};\n\nexport const POS_DEFAULT: Record<string, string> = {\n BAR_VAL: '\\\\overline{{{0}}}',\n};\n\nexport const SUB = '_{{{0}}}';\nexport const SUP = '^{{{0}}}';\n\n/** Fraction types */\nexport const F: Record<string, string> = {\n bar: '\\\\frac{{{num}}}{{{den}}}',\n skw: '^{{{num}}}/_{{{den}}}',\n noBar: '\\\\genfrac{{}}{{}}{{0pt}}{{}}{{{num}}}{{{den}}}',\n lin: '{{{num}}}/{{{den}}}',\n};\nexport const F_DEFAULT = '\\\\frac{{{num}}}{{{den}}}';\n/** Small (inline/text-style) fraction per fPr/smallFrac=on. */\nexport const F_SMALL = '\\\\tfrac{{{num}}}{{{den}}}';\n\nexport const D = '\\\\left{left}{text}\\\\right{right}';\n\nexport const D_DEFAULT: Record<string, string> = {\n left: '(',\n right: ')',\n sep: '|',\n null: '.',\n};\n\n/** Border-box -> boxed content */\nexport const BORDER_BOX = '\\\\boxed{{{0}}}';\n\n/** Phantom: hidden content still occupying space; shown content when show=on. */\nexport const PHANT = '\\\\phantom{{{0}}}';\n\n/** Matrix templates by column justification (mcJc). */\nexport const M_JC: Record<string, string> = {\n left: '\\\\begin{{array}}{{l}}{text}\\\\end{{array}}',\n right: '\\\\begin{{array}}{{r}}{text}\\\\end{{array}}',\n center: '\\\\begin{{matrix}}{text}\\\\end{{matrix}}',\n};\n\nexport const RAD = '\\\\sqrt[{deg}]{{{text}}}';\nexport const RAD_DEFAULT = '\\\\sqrt{{{text}}}';\n\nexport const ARR = '\\\\begin{{array}}{{c}}{text}\\\\end{{array}}';\n\nexport const LIM_FUNC: Record<string, string> = {\n lim: '\\\\lim_{{{lim}}}',\n max: '\\\\max_{{{lim}}}',\n min: '\\\\min_{{{lim}}}',\n sup: '\\\\sup_{{{lim}}}',\n inf: '\\\\inf_{{{lim}}}',\n limsup: '\\\\limsup_{{{lim}}}',\n liminf: '\\\\liminf_{{{lim}}}',\n injlim: '\\\\injlim_{{{lim}}}',\n projlim: '\\\\projlim_{{{lim}}}',\n};\n\nexport const LIM_TO: readonly [string, string] = ['\\\\rightarrow', '\\\\to'];\n\nexport const LIM_UPP = '\\\\overset{{{lim}}}{{{text}}}';\n\nexport const M = '\\\\begin{{matrix}}{text}\\\\end{{matrix}}';\n","/**\n * OMML (Office Math Markup Language) -> LaTeX converter.\n *\n * Port of the Python `dwml` library (Apache-2.0, (c) xiilei) to TypeScript,\n * with 100% output fidelity on the reference fixtures. Namespace handling is\n * prefix-agnostic (matches by local name), and unknown constructs degrade to\n * their concatenated text content instead of throwing.\n *\n * The conversion operates directly on txml `TNode`s (see https://github.com/TobiasNickel/tXml),\n * which PPTist already ships, so a caller can pass already-parsed nodes in\n * without a DOM and without re-parsing.\n */\n\nimport type { TNode } from 'txml/txml';\nimport { unicodeToLatex } from './latex-encode';\nimport {\n CHARS,\n CHR,\n CHR_BO,\n CHR_DEFAULT,\n POS,\n POS_DEFAULT,\n F,\n F_DEFAULT,\n F_SMALL,\n T,\n FUNC,\n D,\n D_DEFAULT,\n BORDER_BOX,\n PHANT,\n RAD,\n RAD_DEFAULT,\n ARR,\n LIM_FUNC,\n LIM_TO,\n LIM_UPP,\n M,\n M_JC,\n BRK,\n BLANK,\n BACKSLASH,\n ALN,\n FUNC_PLACE,\n} from './latex-dict';\n\n/** Options accepted by the conversion entry points. */\nexport interface OmmlToLatexOptions {\n /** Called once per element local-name the converter had to degrade. */\n onUnsupported?: (localName: string) => void;\n}\n\nconst VAL_SUFFIX = 'val';\n\n/** Local name of a tag: strips any namespace prefix (`m:oMath` -> `oMath`). */\nexport function localName(tagName: string): string {\n const idx = tagName.indexOf(':');\n return idx === -1 ? tagName : tagName.slice(idx + 1);\n}\n\nfunction isElement(node: TNode | string): node is TNode {\n return typeof node !== 'string';\n}\n\n/**\n * Concatenated text content of a node (the \"never throw\" degradation target).\n */\nexport function textContent(node: TNode): string {\n let out = '';\n for (const child of node.children) {\n out += typeof child === 'string' ? child : textContent(child);\n }\n return out;\n}\n\n/**\n * Python's `str.format`-style substitution for the small set of templates\n * used by dwml's latex_dict: `{0}` positional and `{name}` named, with `{{`\n * and `}}` escaped braces.\n */\nfunction pyFormat(template: string, positional: string[] = [], named: Record<string, string> = {}): string {\n let out = '';\n let i = 0;\n const n = template.length;\n while (i < n) {\n const ch = template[i]!;\n if (ch === '{') {\n if (template[i + 1] === '{') {\n out += '{';\n i += 2;\n continue;\n }\n const close = template.indexOf('}', i + 1);\n if (close === -1) {\n out += ch;\n i += 1;\n continue;\n }\n const field = template.slice(i + 1, close);\n if (/^\\d+$/.test(field)) {\n out += positional[Number(field)] ?? '';\n } else {\n out += named[field] ?? '';\n }\n i = close + 1;\n continue;\n }\n if (ch === '}' && template[i + 1] === '}') {\n out += '}';\n i += 2;\n continue;\n }\n out += ch;\n i += 1;\n }\n return out;\n}\n\n/**\n * Escape LaTeX-special characters, matching dwml's `escape_latex`:\n * `\\\\` is first collapsed to `\\`, then any CHARS member not preceded by a\n * backslash is prefixed with a backslash.\n */\nexport function escapeLatex(strs: string): string {\n const collapsed = strs.split('\\\\\\\\').join('\\\\');\n let out = '';\n let last: string | null = null;\n for (const c of collapsed) {\n if (CHARS.includes(c) && last !== BACKSLASH) {\n out += BACKSLASH + c;\n } else {\n out += c;\n }\n last = c;\n }\n return out;\n}\n\n/**\n * Lookup a key in a symbol store. `null`/`undefined` key returns `default`;\n * otherwise returns the store value if present, else the key itself\n * (mirrors dwml's `get_val`). An empty `store` means \"no store\" -> key.\n */\nfunction getVal(\n key: string | undefined,\n def?: string,\n store?: Record<string, string>,\n): string | undefined {\n if (key !== undefined) {\n if (!store) return key;\n return store[key] !== undefined ? store[key] : key;\n }\n return def;\n}\n\ntype ProcessedChild = { stag: string; value: unknown; node: TNode };\n\n/**\n * Interpret an ST_OnOff value (§7.1.3.9). OMML emits `on`/`off` or `1`/`0`.\n * `undefined` means \"not specified\" and returns `def`.\n */\nfunction isOn(val: string | undefined, def = false): boolean {\n if (val === undefined) return def;\n const v = val.toLowerCase();\n return v === 'on' || v === '1' || v === 'true';\n}\n\n/** Value tags that contribute to a `*Pr` element's attribute dictionary. */\nconst PR_VAL_TAGS = new Set([\n 'chr',\n 'pos',\n 'begChr',\n 'endChr',\n 'sepChr',\n 'type',\n 'show',\n 'smallFrac',\n 'limLoc',\n 'intLim',\n 'naryLim',\n 'mcJc',\n 'degHide',\n]);\n\n/** Property element (`accPr`, `dPr`, `barPr`, ...) — attributes + inner text. */\nclass Pr {\n text = '';\n private attrs: Record<string, string | undefined> = {};\n\n constructor(elm: TNode, conv: Converter) {\n for (const child of elm.children) {\n if (!isElement(child)) continue;\n const stag = localName(child.tagName);\n if (stag === 'brk') {\n this.attrs['brk'] = BRK;\n this.text += BRK;\n } else if (PR_VAL_TAGS.has(stag)) {\n this.attrs[stag] = getAttr(child, VAL_SUFFIX);\n }\n }\n void conv;\n }\n\n get(name: string): string | undefined {\n return this.attrs[name];\n }\n}\n\n/** Get an attribute by local name (`m:val` / `val` / any re-prefix). */\nfunction getAttr(node: TNode, attrLocal: string): string | undefined {\n for (const key of Object.keys(node.attributes)) {\n if (localName(key) === attrLocal) {\n const v = node.attributes[key];\n return v === null || v === undefined ? undefined : v;\n }\n }\n return undefined;\n}\n\n/**\n * Depth-first search for the first descendant element with the given local\n * name, returning its `attrLocal` attribute value. Used for nested property\n * paths like mPr>mcs>mc>mcPr>mcJc that `Pr` (direct children only) can't reach.\n */\nfunction findDescendantAttr(node: TNode, elemLocal: string, attrLocal: string): string | undefined {\n for (const child of node.children) {\n if (!isElement(child)) continue;\n if (localName(child.tagName) === elemLocal) {\n const v = getAttr(child, attrLocal);\n if (v !== undefined) return v;\n }\n const deep = findDescendantAttr(child, elemLocal, attrLocal);\n if (deep !== undefined) return deep;\n }\n return undefined;\n}\n\nconst DIRECT_TAGS = new Set(['box', 'sSub', 'sSup', 'sSubSup', 'num', 'den', 'deg', 'e']);\nclass Converter {\n private unsupported = new Set<string>();\n\n constructor(private options: OmmlToLatexOptions = {}) {}\n\n convert(node: TNode): string {\n const out = this.oMath(node);\n for (const name of this.unsupported) {\n this.options.onUnsupported?.(name);\n }\n return out;\n }\n\n private noteUnsupported(stag: string): void {\n this.unsupported.add(stag);\n }\n\n /** Convert an `oMath` (or oMath-like) element's children to LaTeX. */\n oMath(elm: TNode): string {\n return this.processChildren(elm);\n }\n\n private processChildrenList(elm: TNode, include?: Set<string>): ProcessedChild[] {\n const out: ProcessedChild[] = [];\n for (const child of elm.children) {\n if (!isElement(child)) continue;\n const stag = localName(child.tagName);\n if (include && !include.has(stag)) continue;\n let value = this.dispatch(stag, child);\n if (value === null || value === undefined) {\n value = this.processUnknown(stag, child);\n if (value === null || value === undefined) continue;\n }\n out.push({ stag, value, node: child });\n }\n return out;\n }\n\n private processChildrenDict(elm: TNode, include?: Set<string>): Record<string, unknown> {\n const dict: Record<string, unknown> = {};\n for (const { stag, value } of this.processChildrenList(elm, include)) {\n dict[stag] = value;\n }\n return dict;\n }\n\n private processChildren(elm: TNode, include?: Set<string>): string {\n let out = '';\n for (const { value } of this.processChildrenList(elm, include)) {\n out += value instanceof Pr ? value.text : String(value);\n }\n return out;\n }\n\n /** Dispatch on local name; returns null when no handler exists. */\n private dispatch(stag: string, elm: TNode): unknown {\n switch (stag) {\n case 'acc': return this.doAcc(elm);\n case 'r': return this.doR(elm);\n case 'bar': return this.doBar(elm);\n case 'sub': return this.doSub(elm);\n case 'sup': return this.doSup(elm);\n case 'f': return this.doF(elm);\n case 'func': return this.doFunc(elm);\n case 'fName': return this.doFName(elm);\n case 'groupChr': return this.doGroupChr(elm);\n case 'd': return this.doD(elm);\n case 'rad': return this.doRad(elm);\n case 'eqArr': return this.doEqArr(elm);\n case 'limLow': return this.doLimLow(elm);\n case 'limUpp': return this.doLimUpp(elm);\n case 'lim': return this.doLim(elm);\n case 'm': return this.doM(elm);\n case 'mr': return this.doMr(elm);\n case 'nary': return this.doNary(elm);\n case 'borderBox': return this.doBorderBox(elm);\n case 'phant': return this.doPhant(elm);\n case 'sPre': return this.doSPre(elm);\n default: return null;\n }\n }\n\n /**\n * Fallback for unhandled tags. Mirrors dwml's `process_unknow` (direct\n * passthrough tags, `*Pr` -> Pr), but degrades anything else to text\n * content instead of dropping it, so conversion never throws.\n */\n private processUnknown(stag: string, elm: TNode): unknown {\n if (DIRECT_TAGS.has(stag)) {\n return this.processChildren(elm);\n }\n if (stag.endsWith('Pr')) {\n return new Pr(elm, this);\n }\n this.noteUnsupported(stag);\n return textContent(elm);\n }\n\n private doAcc(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const pr = c['accPr'] as Pr | undefined;\n const latexS = getVal(pr?.get('chr'), CHR_DEFAULT['ACC_VAL'], CHR) ?? '';\n const e = (c['e'] as string | undefined) ?? '';\n return pyFormat(latexS, [e]);\n }\n\n private doBar(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const pr = c['barPr'] as Pr | undefined;\n const latexS = getVal(pr?.get('pos'), POS_DEFAULT['BAR_VAL'], POS) ?? '';\n const e = (c['e'] as string | undefined) ?? '';\n return (pr?.text ?? '') + pyFormat(latexS, [e]);\n }\n\n private doD(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const pr = c['dPr'] as Pr | undefined;\n const nullChar = D_DEFAULT['null']!;\n const sVal = getVal(pr?.get('begChr'), D_DEFAULT['left'], T);\n const eVal = getVal(pr?.get('endChr'), D_DEFAULT['right'], T);\n const sepVal = getVal(pr?.get('sepChr'), D_DEFAULT['sep'], T);\n // A delimiter may wrap several base arguments (m:e), joined by sepChr.\n const bases = this.processChildrenList(elm, new Set(['e'])).map((x) => String(x.value));\n const sep = sepVal ? escapeLatex(sepVal) : '';\n const text = bases.join(sep);\n return (\n (pr?.text ?? '') +\n pyFormat(D, [], {\n left: !sVal ? nullChar : escapeLatex(sVal),\n text,\n right: !eVal ? nullChar : escapeLatex(eVal),\n })\n );\n }\n\n private doSub(elm: TNode): string {\n return pyFormat(SUB_TEMPLATE, [this.processChildren(elm)]);\n }\n\n private doSup(elm: TNode): string {\n return pyFormat(SUP_TEMPLATE, [this.processChildren(elm)]);\n }\n\n private doF(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const pr = c['fPr'] as Pr | undefined;\n let latexS = getVal(pr?.get('type'), F_DEFAULT, F) ?? '';\n // smallFrac renders the (bar) fraction in inline/text style.\n if (latexS === F_DEFAULT && isOn(pr?.get('smallFrac'))) {\n latexS = F_SMALL;\n }\n const num = (c['num'] as string | undefined) ?? '';\n const den = (c['den'] as string | undefined) ?? '';\n return (pr?.text ?? '') + pyFormat(latexS, [], { num, den });\n }\n\n private doFunc(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const fName = (c['fName'] as string | undefined) ?? '';\n const e = (c['e'] as string | undefined) ?? '';\n return fName.split(FUNC_PLACE).join(e);\n }\n\n private doFName(elm: TNode): string {\n const parts: string[] = [];\n for (const { stag, value } of this.processChildrenList(elm)) {\n if (stag === 'r') {\n const key = String(value).trim();\n if (FUNC[key] !== undefined) {\n parts.push(FUNC[key]!);\n } else {\n // degrade: keep raw text (dwml would raise NotSupport)\n this.noteUnsupported('fName:' + key);\n parts.push(String(value));\n }\n } else {\n parts.push(String(value));\n }\n }\n const joined = parts.join(BLANK);\n return joined.includes(FUNC_PLACE) ? joined : joined + FUNC_PLACE;\n }\n\n private doGroupChr(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const pr = c['groupChrPr'] as Pr | undefined;\n const latexS = getVal(pr?.get('chr'), undefined, CHR) ?? '';\n const e = (c['e'] as string | undefined) ?? '';\n return (pr?.text ?? '') + pyFormat(latexS, [e]);\n }\n\n private doRad(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const text = (c['e'] as string | undefined) ?? '';\n const deg = c['deg'] as string | undefined;\n if (deg) {\n return pyFormat(RAD, [], { deg, text });\n }\n return pyFormat(RAD_DEFAULT, [], { text });\n }\n\n private doEqArr(elm: TNode): string {\n const rows = this.processChildrenList(elm, new Set(['e'])).map((c) => String(c.value));\n return pyFormat(ARR, [], { text: rows.join(BRK) });\n }\n\n private doLimLow(elm: TNode): string {\n const c = this.processChildrenDict(elm, new Set(['e', 'lim']));\n const e = (c['e'] as string | undefined) ?? '';\n const lim = (c['lim'] as string | undefined) ?? '';\n const latexS = LIM_FUNC[e];\n if (!latexS) {\n // degrade (dwml would raise NotSupport)\n this.noteUnsupported('limLow:' + e);\n return e + lim;\n }\n return pyFormat(latexS, [], { lim });\n }\n\n private doLimUpp(elm: TNode): string {\n const c = this.processChildrenDict(elm, new Set(['e', 'lim']));\n const lim = (c['lim'] as string | undefined) ?? '';\n const text = (c['e'] as string | undefined) ?? '';\n return pyFormat(LIM_UPP, [], { lim, text });\n }\n\n private doLim(elm: TNode): string {\n return this.processChildren(elm).split(LIM_TO[0]).join(LIM_TO[1]);\n }\n\n private doM(elm: TNode): string {\n const rows: string[] = [];\n let template = M;\n for (const { stag, value, node } of this.processChildrenList(elm)) {\n if (stag === 'mPr') {\n // Column justification lives at mPr>mcs>mc>mcPr>mcJc (per column).\n // All columns sharing a justification collapse to one array spec.\n const jc = findDescendantAttr(node, 'mcJc', VAL_SUFFIX);\n if (jc && M_JC[jc]) template = M_JC[jc]!;\n continue;\n }\n if (stag === 'mr') rows.push(String(value));\n }\n return pyFormat(template, [], { text: rows.join(BRK) });\n }\n\n private doMr(elm: TNode): string {\n return this.processChildrenList(elm, new Set(['e'])).map((c) => String(c.value)).join(ALN);\n }\n\n private doNary(elm: TNode): string {\n const res: string[] = [];\n let bo = '';\n let limLoc = '';\n for (const { stag, value } of this.processChildrenList(elm)) {\n if (stag === 'naryPr') {\n const pr = value as Pr;\n bo = getVal(pr.get('chr'), undefined, CHR_BO) ?? '';\n // naryLim (per-object) wins; intLim applies to integrals.\n limLoc = pr.get('naryLim') ?? pr.get('limLoc') ?? pr.get('intLim') ?? '';\n } else {\n res.push(String(value));\n }\n }\n // undOvr -> limits above/below the operator; subSup is the default side\n // placement already produced by the dispatched _{...}^{...} children.\n const limits = limLoc === 'undOvr' ? '\\\\limits' : '';\n return bo + limits + res.join(BLANK);\n }\n\n private doBorderBox(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const e = (c['e'] as string | undefined) ?? '';\n return pyFormat(BORDER_BOX, [e]);\n }\n\n private doPhant(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const pr = c['phantPr'] as Pr | undefined;\n const e = (c['e'] as string | undefined) ?? '';\n // Default (show omitted) renders the base visibly; show=off hides it.\n if (isOn(pr?.get('show'), true)) {\n return e;\n }\n return pyFormat(PHANT, [e]);\n }\n\n private doSPre(elm: TNode): string {\n const c = this.processChildrenDict(elm);\n const e = (c['e'] as string | undefined) ?? '';\n // sub/sup arrive already wrapped as _{...} / ^{...} by doSub/doSup;\n // the prescript form places them against an empty base to the left.\n const sub = (c['sub'] as string | undefined) ?? '';\n const sup = (c['sup'] as string | undefined) ?? '';\n return `{}${sub}${sup}{${e}}`;\n }\n\n /**\n * Map a run's text to LaTeX. dwml's `T` dictionary is consulted first\n * (per Unicode code point) so Mathematical Alphanumeric Symbols and math\n * operators map to their clean ASCII / command forms; anything not in `T`\n * falls back to the pylatexenc-derived encoder.\n */\n private processUnicode(s: string): string {\n let out = '';\n for (const ch of s.normalize('NFC')) {\n const mapped = T[ch];\n if (mapped !== undefined) {\n out += mapped;\n } else if (CHARS.includes(ch)) {\n // LaTeX-special char: pass through raw; escape_latex (in do_r)\n // will prefix it with a backslash.\n out += ch;\n } else {\n out += unicodeToLatex(ch);\n }\n }\n return out;\n }\n\n private doR(elm: TNode): string {\n const strs: string[] = [];\n const baseStrs: string[] = [];\n for (const child of elm.children) {\n if (!isElement(child)) continue;\n if (localName(child.tagName) !== 't') continue;\n const s = textContent(child);\n strs.push(this.processUnicode(s));\n baseStrs.push(s);\n }\n let procStr = escapeLatex(strs.join(BLANK));\n const baseProcStr = baseStrs.join(BLANK);\n\n if (!baseProcStr.includes('{') && procStr.includes('\\\\{')) {\n procStr = procStr.split('\\\\{').join('{');\n }\n if (!baseProcStr.includes('}') && procStr.includes('\\\\}')) {\n procStr = procStr.split('\\\\}').join('}');\n }\n return procStr;\n }\n}\n\nconst SUB_TEMPLATE = '_{{{0}}}';\nconst SUP_TEMPLATE = '^{{{0}}}';\n\n/**\n * Convert an already-parsed `oMath` (or oMath-like) node to bare LaTeX.\n * Never throws on unknown constructs.\n */\nexport function ommlNodeToLatex(node: TNode, options: OmmlToLatexOptions = {}): string {\n return new Converter(options).convert(node);\n}\n","/**\n * dwml-ts — MS Office OMML (Office Math Markup Language) -> LaTeX converter.\n *\n * TypeScript port of the Python `dwml` library (Apache-2.0), with 100%\n * output fidelity on the reference fixtures. Pure, synchronous, DOM-free —\n * runs identically in the browser and in Node. Parsing uses txml.\n *\n * Consumer contract:\n * - ommlToLatex(xml) -> convert one OMML fragment string to bare LaTeX\n * - ommlNodeToLatex(node) -> convert an already-parsed txml node\n * - extractOmmlLatex(xml) -> find & convert every m:oMath in any fragment\n *\n * All output is bare LaTeX with no $/$$ delimiters and no trailing whitespace.\n * Unknown constructs degrade per-node to concatenated text (never throws).\n */\n\n// Import the parser-only entry: txml's main entry re-exports the Node\n// transform-stream helper, which drags `node:stream` into browser bundles.\nimport { parse, type TNode } from 'txml/txml';\nimport {\n ommlNodeToLatex,\n localName,\n type OmmlToLatexOptions,\n} from './omml';\n\nexport { ommlNodeToLatex, localName, escapeLatex, textContent } from './omml';\nexport { unicodeToLatex } from './latex-encode';\nexport type { OmmlToLatexOptions } from './omml';\nexport type { TNode };\n\n/**\n * Find all element nodes whose local name matches `name`, depth-first.\n */\nfunction findAll(nodes: (TNode | string)[], name: string, acc: TNode[] = []): TNode[] {\n for (const node of nodes) {\n if (typeof node === 'string') continue;\n if (localName(node.tagName) === name) acc.push(node);\n findAll(node.children, name, acc);\n }\n return acc;\n}\n\nfunction elementChildren(node: TNode): TNode[] {\n return node.children.filter((c): c is TNode => typeof c !== 'string');\n}\n\n/**\n * Normalize an OMML fragment into the list of oMath nodes to convert.\n *\n * Accepts (prefix-agnostic):\n * - a bare `<oMath>` element\n * - an `<oMathPara>` wrapper\n * - an `<a14:m>` / `m` wrapper (PowerPoint's math container)\n * - a whole document/fragment containing oMath elements\n */\nfunction collectOMathNodes(nodes: (TNode | string)[]): TNode[] {\n const elements = nodes.filter((n): n is TNode => typeof n !== 'string');\n\n // Single-root cases.\n if (elements.length === 1) {\n const root = elements[0]!;\n const name = localName(root.tagName);\n if (name === 'oMath') return [root];\n if (name === 'oMathPara' || name === 'm') {\n // unwrap; fall through to a scoped search below.\n const found = findAll(root.children, 'oMath');\n if (found.length > 0) return found;\n // The wrapper itself may contain oMath deeper; already searched.\n return [];\n }\n }\n\n // General case: search the whole forest.\n return findAll(nodes, 'oMath');\n}\n\n/**\n * Convert one OMML fragment to bare LaTeX.\n *\n * Accepts `<m:oMath>`, `<m:oMathPara>` or the `<a14:m>` wrapper as an XML\n * string. Tolerates missing xmlns declarations (fragments sliced out of\n * slide XML). Returns bare LaTeX — no $/$$ delimiters, no trailing\n * whitespace. If the fragment contains multiple oMath elements, their LaTeX\n * is concatenated.\n */\nexport function ommlToLatex(xml: string, options: OmmlToLatexOptions = {}): string {\n const nodes = parse(xml, { decodeEntities: true });\n const omaths = collectOMathNodes(nodes);\n let out = '';\n for (const omath of omaths) {\n out += ommlNodeToLatex(omath, options);\n }\n return out.trim();\n}\n\n/**\n * Find and convert every `oMath` element in any OOXML document or fragment,\n * returning one bare LaTeX string per formula (in document order).\n */\nexport function extractOmmlLatex(xml: string, options: OmmlToLatexOptions = {}): string[] {\n const nodes = parse(xml, { decodeEntities: true });\n return findAll(nodes, 'oMath').map((omath) => ommlNodeToLatex(omath, options).trim());\n}\n\n// Re-export elementChildren for potential node-walking consumers.\nexport { elementChildren };\n"],"names":["__webpack_require__","getters","values","define","defs","kind","key","Object","obj","prop","Symbol","UNI2LATEX","unicodeToLatex","input","s","String","out","ch","cp","repl","undefined","CHARS","CHR","CHR_BO","T","FUNC","CHR_DEFAULT","POS","POS_DEFAULT","F","F_DEFAULT","F_SMALL","D","D_DEFAULT","BORDER_BOX","PHANT","M_JC","RAD","RAD_DEFAULT","ARR","LIM_FUNC","LIM_TO","LIM_UPP","M","VAL_SUFFIX","localName","tagName","idx","isElement","node","textContent","child","pyFormat","template","positional","named","i","n","close","field","Number","escapeLatex","strs","collapsed","last","c","BACKSLASH","getVal","def","store","isOn","val","v","PR_VAL_TAGS","Set","Pr","name","elm","conv","stag","BRK","getAttr","attrLocal","findDescendantAttr","elemLocal","deep","DIRECT_TAGS","Converter","include","value","dict","pr","latexS","e","nullChar","sVal","eVal","sepVal","bases","x","sep","text","SUB_TEMPLATE","SUP_TEMPLATE","num","den","fName","FUNC_PLACE","parts","joined","BLANK","deg","rows","lim","jc","ALN","res","bo","limLoc","limits","sub","sup","mapped","baseStrs","procStr","baseProcStr","options","ommlNodeToLatex","findAll","nodes","acc","elementChildren","collectOMathNodes","elements","root","found","ommlToLatex","xml","parse","omaths","omath","extractOmmlLatex"],"mappings":";;;IAAAA,oBAAoB,CAAC,GAAG,CAAC,UAASC,SAASC;QAC1C,IAAIC,SAAS,CAACC,MAAMC;YACnB,IAAI,IAAIC,OAAOF,KACd,IAAGJ,oBAAoB,CAAC,CAACI,MAAME,QAAQ,CAACN,oBAAoB,CAAC,CAAC,UAASM,MACtEC,OAAO,cAAc,CAAC,UAASD,KAAK;gBAAE,YAAY;gBAAM,CAACD,KAAK,EAAED,IAAI,CAACE,IAAI;YAAC;QAG7E;QACAH,OAAOF,SAAS;QAChBE,OAAOD,QAAQ;IAChB;;;ICVAF,oBAAoB,CAAC,GAAG,CAACQ,KAAKC,OAAUF,OAAO,SAAS,CAAC,cAAc,CAAC,IAAI,CAACC,KAAKC;;;ICClFT,oBAAoB,CAAC,GAAG,CAAC;QACxB,IAAG,AAAkB,MAAlB,OAAOU,UAA0BA,OAAO,WAAW,EACrDH,OAAO,cAAc,CAAC,UAASG,OAAO,WAAW,EAAE;YAAE,OAAO;QAAS;QAEtEH,OAAO,cAAc,CAAC,UAAS,cAAc;YAAE,OAAO;QAAK;IAC5D;;;;;;;;;;;;;;;ACDO,MAAMI,YAA8C;IACzD,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;AACV;ACn9CO,SAASC,eAAeC,KAAa;IAC1C,MAAMC,IAAIC,OAAOF,OAAO,SAAS,CAAC;IAClC,IAAIG,MAAM;IACV,KAAK,MAAMC,MAAMH,EAAG;QAClB,MAAMI,KAAKD,GAAG,WAAW,CAAC;QAC1B,MAAME,OAAOR,SAAS,CAACO,GAAG;QAC1B,IAAIC,AAASC,WAATD,MACFH,OAAO,MAAMG,OAAO;aAEpBH,OAAOC;IAIX;IACA,OAAOD;AACT;AC9BO,MAAMK,QAA2B;IAAC;IAAK;IAAK;IAAK;IAAK;IAAK;IAAK;IAAK;IAAK;CAAI;AAO9E,MAAMC,MAA8B;IAEzC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;AACP;AAGO,MAAMC,SAAiC;IAC5C,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;AACP;AAGO,MAAMC,IAA4B;IACvC,KAAK;IAEL,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,MAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IACN,IAAM;IAEN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,KAAK;IAEL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IAEL,GAAK;IACL,GAAK;IACL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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { TNode } from 'txml';
1
+ import { TNode } from 'txml/txml';
2
2
 
3
3
  export declare function elementChildren(node: TNode): TNode[];
4
4
 
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { parse } from "txml";
1
+ import { parse } from "txml/txml";
2
2
  const UNI2LATEX = {
3
3
  34: "''",
4
4
  35: "\\#",
@@ -1808,7 +1808,32 @@ const T = {
1808
1808
  𝑤: 'w',
1809
1809
  𝑥: 'x',
1810
1810
  𝑦: 'y',
1811
- 𝑧: 'z'
1811
+ 𝑧: 'z',
1812
+ 𝒉: 'h',
1813
+ 𝛢: 'A',
1814
+ 𝛣: 'B',
1815
+ 𝛤: '\\Gamma ',
1816
+ 𝛥: '\\Delta ',
1817
+ 𝛦: 'E',
1818
+ 𝛧: 'Z',
1819
+ 𝛨: 'H',
1820
+ 𝛩: '\\Theta ',
1821
+ 𝛪: 'I',
1822
+ 𝛫: 'K',
1823
+ 𝛬: '\\Lambda ',
1824
+ 𝛭: 'M',
1825
+ 𝛮: 'N',
1826
+ 𝛯: '\\Xi ',
1827
+ 𝛰: 'O',
1828
+ 𝛱: '\\Pi ',
1829
+ 𝛲: 'P',
1830
+ 𝛴: '\\Sigma ',
1831
+ 𝛵: 'T',
1832
+ 𝛶: '\\Upsilon ',
1833
+ 𝛷: '\\Phi ',
1834
+ 𝛸: 'X',
1835
+ 𝛹: '\\Psi ',
1836
+ 𝛺: '\\Omega '
1812
1837
  };
1813
1838
  const FUNC = {
1814
1839
  sin: '\\sin({fe})',
@@ -1866,12 +1891,21 @@ const F = {
1866
1891
  lin: '{{{num}}}/{{{den}}}'
1867
1892
  };
1868
1893
  const F_DEFAULT = '\\frac{{{num}}}{{{den}}}';
1894
+ const F_SMALL = '\\tfrac{{{num}}}{{{den}}}';
1869
1895
  const D = '\\left{left}{text}\\right{right}';
1870
1896
  const D_DEFAULT = {
1871
1897
  left: '(',
1872
1898
  right: ')',
1899
+ sep: '|',
1873
1900
  null: '.'
1874
1901
  };
1902
+ const BORDER_BOX = '\\boxed{{{0}}}';
1903
+ const PHANT = '\\phantom{{{0}}}';
1904
+ const M_JC = {
1905
+ left: '\\begin{{array}}{{l}}{text}\\end{{array}}',
1906
+ right: '\\begin{{array}}{{r}}{text}\\end{{array}}',
1907
+ center: '\\begin{{matrix}}{text}\\end{{matrix}}'
1908
+ };
1875
1909
  const RAD = '\\sqrt[{deg}]{{{text}}}';
1876
1910
  const RAD_DEFAULT = '\\sqrt{{{text}}}';
1877
1911
  const ARR = '\\begin{{array}}{{c}}{text}\\end{{array}}';
@@ -1967,12 +2001,25 @@ function getVal(key, def, store) {
1967
2001
  }
1968
2002
  return def;
1969
2003
  }
2004
+ function isOn(val, def = false) {
2005
+ if (void 0 === val) return def;
2006
+ const v = val.toLowerCase();
2007
+ return 'on' === v || '1' === v || 'true' === v;
2008
+ }
1970
2009
  const PR_VAL_TAGS = new Set([
1971
2010
  'chr',
1972
2011
  'pos',
1973
2012
  'begChr',
1974
2013
  'endChr',
1975
- 'type'
2014
+ 'sepChr',
2015
+ 'type',
2016
+ 'show',
2017
+ 'smallFrac',
2018
+ 'limLoc',
2019
+ 'intLim',
2020
+ 'naryLim',
2021
+ 'mcJc',
2022
+ 'degHide'
1976
2023
  ]);
1977
2024
  class Pr {
1978
2025
  get(name) {
@@ -1997,6 +2044,17 @@ function getAttr(node, attrLocal) {
1997
2044
  return null == v ? void 0 : v;
1998
2045
  }
1999
2046
  }
2047
+ function findDescendantAttr(node, elemLocal, attrLocal) {
2048
+ for (const child of node.children){
2049
+ if (!isElement(child)) continue;
2050
+ if (localName(child.tagName) === elemLocal) {
2051
+ const v = getAttr(child, attrLocal);
2052
+ if (void 0 !== v) return v;
2053
+ }
2054
+ const deep = findDescendantAttr(child, elemLocal, attrLocal);
2055
+ if (void 0 !== deep) return deep;
2056
+ }
2057
+ }
2000
2058
  const DIRECT_TAGS = new Set([
2001
2059
  'box',
2002
2060
  'sSub',
@@ -2086,6 +2144,12 @@ class Converter {
2086
2144
  return this.doMr(elm);
2087
2145
  case 'nary':
2088
2146
  return this.doNary(elm);
2147
+ case 'borderBox':
2148
+ return this.doBorderBox(elm);
2149
+ case 'phant':
2150
+ return this.doPhant(elm);
2151
+ case 'sPre':
2152
+ return this.doSPre(elm);
2089
2153
  default:
2090
2154
  return null;
2091
2155
  }
@@ -2120,7 +2184,12 @@ class Converter {
2120
2184
  const nullChar = D_DEFAULT["null"];
2121
2185
  const sVal = getVal(pr?.get('begChr'), D_DEFAULT.left, T);
2122
2186
  const eVal = getVal(pr?.get('endChr'), D_DEFAULT.right, T);
2123
- const text = c['e'] ?? '';
2187
+ const sepVal = getVal(pr?.get('sepChr'), D_DEFAULT.sep, T);
2188
+ const bases = this.processChildrenList(elm, new Set([
2189
+ 'e'
2190
+ ])).map((x)=>String(x.value));
2191
+ const sep = sepVal ? escapeLatex(sepVal) : '';
2192
+ const text = bases.join(sep);
2124
2193
  return (pr?.text ?? '') + pyFormat(D, [], {
2125
2194
  left: sVal ? escapeLatex(sVal) : nullChar,
2126
2195
  text,
@@ -2140,7 +2209,8 @@ class Converter {
2140
2209
  doF(elm) {
2141
2210
  const c = this.processChildrenDict(elm);
2142
2211
  const pr = c['fPr'];
2143
- const latexS = getVal(pr?.get('type'), F_DEFAULT, F) ?? '';
2212
+ let latexS = getVal(pr?.get('type'), F_DEFAULT, F) ?? '';
2213
+ if (latexS === F_DEFAULT && isOn(pr?.get('smallFrac'))) latexS = F_SMALL;
2144
2214
  const num = c['num'] ?? '';
2145
2215
  const den = c['den'] ?? '';
2146
2216
  return (pr?.text ?? '') + pyFormat(latexS, [], {
@@ -2229,10 +2299,16 @@ class Converter {
2229
2299
  }
2230
2300
  doM(elm) {
2231
2301
  const rows = [];
2232
- for (const { stag, value } of this.processChildrenList(elm))if ('mPr' !== stag) {
2302
+ let template = M;
2303
+ for (const { stag, value, node } of this.processChildrenList(elm)){
2304
+ if ('mPr' === stag) {
2305
+ const jc = findDescendantAttr(node, 'mcJc', VAL_SUFFIX);
2306
+ if (jc && M_JC[jc]) template = M_JC[jc];
2307
+ continue;
2308
+ }
2233
2309
  if ('mr' === stag) rows.push(String(value));
2234
2310
  }
2235
- return pyFormat(M, [], {
2311
+ return pyFormat(template, [], {
2236
2312
  text: rows.join("\\\\")
2237
2313
  });
2238
2314
  }
@@ -2244,9 +2320,37 @@ class Converter {
2244
2320
  doNary(elm) {
2245
2321
  const res = [];
2246
2322
  let bo = '';
2247
- for (const { stag, value } of this.processChildrenList(elm))if ('naryPr' === stag) bo = getVal(value.get('chr'), void 0, CHR_BO) ?? '';
2248
- else res.push(String(value));
2249
- return bo + res.join("");
2323
+ let limLoc = '';
2324
+ for (const { stag, value } of this.processChildrenList(elm))if ('naryPr' === stag) {
2325
+ const pr = value;
2326
+ bo = getVal(pr.get('chr'), void 0, CHR_BO) ?? '';
2327
+ limLoc = pr.get('naryLim') ?? pr.get('limLoc') ?? pr.get('intLim') ?? '';
2328
+ } else res.push(String(value));
2329
+ const limits = 'undOvr' === limLoc ? '\\limits' : '';
2330
+ return bo + limits + res.join("");
2331
+ }
2332
+ doBorderBox(elm) {
2333
+ const c = this.processChildrenDict(elm);
2334
+ const e = c['e'] ?? '';
2335
+ return pyFormat(BORDER_BOX, [
2336
+ e
2337
+ ]);
2338
+ }
2339
+ doPhant(elm) {
2340
+ const c = this.processChildrenDict(elm);
2341
+ const pr = c['phantPr'];
2342
+ const e = c['e'] ?? '';
2343
+ if (isOn(pr?.get('show'), true)) return e;
2344
+ return pyFormat(PHANT, [
2345
+ e
2346
+ ]);
2347
+ }
2348
+ doSPre(elm) {
2349
+ const c = this.processChildrenDict(elm);
2350
+ const e = c['e'] ?? '';
2351
+ const sub = c['sub'] ?? '';
2352
+ const sup = c['sup'] ?? '';
2353
+ return `{}${sub}${sup}{${e}}`;
2250
2354
  }
2251
2355
  processUnicode(s) {
2252
2356
  let out = '';